@depup/stripe 21.0.0-depup.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.
- package/CHANGELOG.md +4529 -0
- package/LICENSE +20 -0
- package/OPENAPI_VERSION +1 -0
- package/README.md +25 -0
- package/VERSION +1 -0
- package/changes.json +5 -0
- package/cjs/Decimal.js +854 -0
- package/cjs/Error.js +284 -0
- package/cjs/RequestSender.js +469 -0
- package/cjs/ResourceNamespace.js +21 -0
- package/cjs/StripeContext.js +56 -0
- package/cjs/StripeEmitter.js +46 -0
- package/cjs/StripeMethod.js +36 -0
- package/cjs/StripeResource.js +188 -0
- package/cjs/V2Coercion.js +109 -0
- package/cjs/Webhooks.js +225 -0
- package/cjs/apiVersion.js +6 -0
- package/cjs/autoPagination.js +294 -0
- package/cjs/crypto/CryptoProvider.js +51 -0
- package/cjs/crypto/NodeCryptoProvider.js +30 -0
- package/cjs/crypto/SubtleCryptoProvider.js +51 -0
- package/cjs/multipart.js +61 -0
- package/cjs/net/FetchHttpClient.js +145 -0
- package/cjs/net/HttpClient.js +53 -0
- package/cjs/net/NodeHttpClient.js +108 -0
- package/cjs/package.json +1 -0
- package/cjs/platform/NodePlatformFunctions.js +98 -0
- package/cjs/platform/PlatformFunctions.js +98 -0
- package/cjs/platform/WebPlatformFunctions.js +38 -0
- package/cjs/resources/AccountLinks.js +9 -0
- package/cjs/resources/AccountSessions.js +9 -0
- package/cjs/resources/Accounts.js +101 -0
- package/cjs/resources/ApplePayDomains.js +22 -0
- package/cjs/resources/ApplicationFees.js +34 -0
- package/cjs/resources/Apps/Secrets.js +19 -0
- package/cjs/resources/Balance.js +9 -0
- package/cjs/resources/BalanceSettings.js +10 -0
- package/cjs/resources/BalanceTransactions.js +17 -0
- package/cjs/resources/Billing/Alerts.js +27 -0
- package/cjs/resources/Billing/CreditBalanceSummary.js +12 -0
- package/cjs/resources/Billing/CreditBalanceTransactions.js +17 -0
- package/cjs/resources/Billing/CreditGrants.js +30 -0
- package/cjs/resources/Billing/MeterEventAdjustments.js +12 -0
- package/cjs/resources/Billing/MeterEvents.js +9 -0
- package/cjs/resources/Billing/Meters.js +29 -0
- package/cjs/resources/BillingPortal/Configurations.js +25 -0
- package/cjs/resources/BillingPortal/Sessions.js +12 -0
- package/cjs/resources/Charges.js +25 -0
- package/cjs/resources/Checkout/Sessions.js +538 -0
- package/cjs/resources/Climate/Orders.js +61 -0
- package/cjs/resources/Climate/Products.js +33 -0
- package/cjs/resources/Climate/Suppliers.js +17 -0
- package/cjs/resources/ConfirmationTokens.js +12 -0
- package/cjs/resources/CountrySpecs.js +17 -0
- package/cjs/resources/Coupons.js +17 -0
- package/cjs/resources/CreditNotes.js +253 -0
- package/cjs/resources/CustomerSessions.js +9 -0
- package/cjs/resources/Customers.js +581 -0
- package/cjs/resources/Disputes.js +19 -0
- package/cjs/resources/Entitlements/ActiveEntitlements.js +17 -0
- package/cjs/resources/Entitlements/Features.js +22 -0
- package/cjs/resources/EphemeralKeys.js +18 -0
- package/cjs/resources/Events.js +14 -0
- package/cjs/resources/ExchangeRates.js +17 -0
- package/cjs/resources/FileLinks.js +16 -0
- package/cjs/resources/Files.js +24 -0
- package/cjs/resources/FinancialConnections/Accounts.js +38 -0
- package/cjs/resources/FinancialConnections/Sessions.js +16 -0
- package/cjs/resources/FinancialConnections/Transactions.js +17 -0
- package/cjs/resources/Forwarding/Requests.js +18 -0
- package/cjs/resources/Identity/VerificationReports.js +17 -0
- package/cjs/resources/Identity/VerificationSessions.js +33 -0
- package/cjs/resources/InvoiceItems.js +131 -0
- package/cjs/resources/InvoicePayments.js +17 -0
- package/cjs/resources/InvoiceRenderingTemplates.js +25 -0
- package/cjs/resources/Invoices.js +776 -0
- package/cjs/resources/Issuing/Authorizations.js +847 -0
- package/cjs/resources/Issuing/Cardholders.js +22 -0
- package/cjs/resources/Issuing/Cards.js +16 -0
- package/cjs/resources/Issuing/Disputes.js +26 -0
- package/cjs/resources/Issuing/PersonalizationDesigns.js +25 -0
- package/cjs/resources/Issuing/PhysicalBundles.js +17 -0
- package/cjs/resources/Issuing/Tokens.js +21 -0
- package/cjs/resources/Issuing/Transactions.js +275 -0
- package/cjs/resources/Mandates.js +9 -0
- package/cjs/resources/OAuth.js +44 -0
- package/cjs/resources/PaymentAttemptRecords.js +17 -0
- package/cjs/resources/PaymentIntents.js +56 -0
- package/cjs/resources/PaymentLinks.js +420 -0
- package/cjs/resources/PaymentMethodConfigurations.js +25 -0
- package/cjs/resources/PaymentMethodDomains.js +29 -0
- package/cjs/resources/PaymentMethods.js +30 -0
- package/cjs/resources/PaymentRecords.js +37 -0
- package/cjs/resources/Payouts.js +24 -0
- package/cjs/resources/Plans.js +141 -0
- package/cjs/resources/Prices.js +346 -0
- package/cjs/resources/Products.js +72 -0
- package/cjs/resources/PromotionCodes.js +22 -0
- package/cjs/resources/Quotes.js +825 -0
- package/cjs/resources/Radar/EarlyFraudWarnings.js +17 -0
- package/cjs/resources/Radar/PaymentEvaluations.js +12 -0
- package/cjs/resources/Radar/ValueListItems.js +25 -0
- package/cjs/resources/Radar/ValueLists.js +26 -0
- package/cjs/resources/Refunds.js +20 -0
- package/cjs/resources/Reporting/ReportRuns.js +18 -0
- package/cjs/resources/Reporting/ReportTypes.js +17 -0
- package/cjs/resources/Reviews.js +18 -0
- package/cjs/resources/SetupAttempts.js +13 -0
- package/cjs/resources/SetupIntents.js +34 -0
- package/cjs/resources/ShippingRates.js +22 -0
- package/cjs/resources/Sigma/ScheduledQueryRuns.js +17 -0
- package/cjs/resources/Sources.js +20 -0
- package/cjs/resources/SubscriptionItems.js +378 -0
- package/cjs/resources/SubscriptionSchedules.js +107 -0
- package/cjs/resources/Subscriptions.js +888 -0
- package/cjs/resources/Tax/Associations.js +9 -0
- package/cjs/resources/Tax/Calculations.js +18 -0
- package/cjs/resources/Tax/Registrations.js +22 -0
- package/cjs/resources/Tax/Settings.js +10 -0
- package/cjs/resources/Tax/Transactions.js +25 -0
- package/cjs/resources/TaxCodes.js +14 -0
- package/cjs/resources/TaxIds.js +16 -0
- package/cjs/resources/TaxRates.js +16 -0
- package/cjs/resources/Terminal/Configurations.js +29 -0
- package/cjs/resources/Terminal/ConnectionTokens.js +12 -0
- package/cjs/resources/Terminal/Locations.js +26 -0
- package/cjs/resources/Terminal/OnboardingLinks.js +12 -0
- package/cjs/resources/Terminal/Readers.js +58 -0
- package/cjs/resources/TestHelpers/ConfirmationTokens.js +12 -0
- package/cjs/resources/TestHelpers/Customers.js +12 -0
- package/cjs/resources/TestHelpers/Issuing/Authorizations.js +1293 -0
- package/cjs/resources/TestHelpers/Issuing/Cards.js +28 -0
- package/cjs/resources/TestHelpers/Issuing/PersonalizationDesigns.js +20 -0
- package/cjs/resources/TestHelpers/Issuing/Transactions.js +364 -0
- package/cjs/resources/TestHelpers/Refunds.js +12 -0
- package/cjs/resources/TestHelpers/Terminal/Readers.js +20 -0
- package/cjs/resources/TestHelpers/TestClocks.js +29 -0
- package/cjs/resources/TestHelpers/Treasury/InboundTransfers.js +20 -0
- package/cjs/resources/TestHelpers/Treasury/OutboundPayments.js +24 -0
- package/cjs/resources/TestHelpers/Treasury/OutboundTransfers.js +24 -0
- package/cjs/resources/TestHelpers/Treasury/ReceivedCredits.js +12 -0
- package/cjs/resources/TestHelpers/Treasury/ReceivedDebits.js +12 -0
- package/cjs/resources/Tokens.js +10 -0
- package/cjs/resources/Topups.js +17 -0
- package/cjs/resources/Transfers.js +33 -0
- package/cjs/resources/Treasury/CreditReversals.js +21 -0
- package/cjs/resources/Treasury/DebitReversals.js +21 -0
- package/cjs/resources/Treasury/FinancialAccounts.js +37 -0
- package/cjs/resources/Treasury/InboundTransfers.js +25 -0
- package/cjs/resources/Treasury/OutboundPayments.js +25 -0
- package/cjs/resources/Treasury/OutboundTransfers.js +25 -0
- package/cjs/resources/Treasury/ReceivedCredits.js +17 -0
- package/cjs/resources/Treasury/ReceivedDebits.js +17 -0
- package/cjs/resources/Treasury/TransactionEntries.js +393 -0
- package/cjs/resources/Treasury/Transactions.js +447 -0
- package/cjs/resources/V2/Billing/MeterEventAdjustments.js +12 -0
- package/cjs/resources/V2/Billing/MeterEventSession.js +12 -0
- package/cjs/resources/V2/Billing/MeterEventStream.js +13 -0
- package/cjs/resources/V2/Billing/MeterEvents.js +9 -0
- package/cjs/resources/V2/Core/AccountLinks.js +9 -0
- package/cjs/resources/V2/Core/AccountTokens.js +35 -0
- package/cjs/resources/V2/Core/Accounts/PersonTokens.js +25 -0
- package/cjs/resources/V2/Core/Accounts/Persons.js +91 -0
- package/cjs/resources/V2/Core/Accounts.js +177 -0
- package/cjs/resources/V2/Core/EventDestinations.js +41 -0
- package/cjs/resources/V2/Core/Events.js +66 -0
- package/cjs/resources/WebhookEndpoints.js +26 -0
- package/cjs/resources.js +324 -0
- package/cjs/stripe.cjs.node.js +13 -0
- package/cjs/stripe.cjs.worker.js +13 -0
- package/cjs/stripe.core.js +412 -0
- package/cjs/utils.js +477 -0
- package/esm/Decimal.js +850 -0
- package/esm/Error.js +259 -0
- package/esm/RequestSender.js +465 -0
- package/esm/ResourceNamespace.js +17 -0
- package/esm/StripeContext.js +52 -0
- package/esm/StripeEmitter.js +42 -0
- package/esm/StripeMethod.js +32 -0
- package/esm/StripeResource.js +185 -0
- package/esm/V2Coercion.js +104 -0
- package/esm/Webhooks.js +221 -0
- package/esm/apiVersion.js +3 -0
- package/esm/autoPagination.js +290 -0
- package/esm/crypto/CryptoProvider.js +46 -0
- package/esm/crypto/NodeCryptoProvider.js +26 -0
- package/esm/crypto/SubtleCryptoProvider.js +47 -0
- package/esm/multipart.js +57 -0
- package/esm/net/FetchHttpClient.js +140 -0
- package/esm/net/HttpClient.js +48 -0
- package/esm/net/NodeHttpClient.js +103 -0
- package/esm/package.json +1 -0
- package/esm/platform/NodePlatformFunctions.js +94 -0
- package/esm/platform/PlatformFunctions.js +94 -0
- package/esm/platform/WebPlatformFunctions.js +34 -0
- package/esm/resources/AccountLinks.js +6 -0
- package/esm/resources/AccountSessions.js +6 -0
- package/esm/resources/Accounts.js +98 -0
- package/esm/resources/ApplePayDomains.js +19 -0
- package/esm/resources/ApplicationFees.js +31 -0
- package/esm/resources/Apps/Secrets.js +16 -0
- package/esm/resources/Balance.js +6 -0
- package/esm/resources/BalanceSettings.js +7 -0
- package/esm/resources/BalanceTransactions.js +14 -0
- package/esm/resources/Billing/Alerts.js +24 -0
- package/esm/resources/Billing/CreditBalanceSummary.js +9 -0
- package/esm/resources/Billing/CreditBalanceTransactions.js +14 -0
- package/esm/resources/Billing/CreditGrants.js +27 -0
- package/esm/resources/Billing/MeterEventAdjustments.js +9 -0
- package/esm/resources/Billing/MeterEvents.js +6 -0
- package/esm/resources/Billing/Meters.js +26 -0
- package/esm/resources/BillingPortal/Configurations.js +22 -0
- package/esm/resources/BillingPortal/Sessions.js +9 -0
- package/esm/resources/Charges.js +22 -0
- package/esm/resources/Checkout/Sessions.js +535 -0
- package/esm/resources/Climate/Orders.js +58 -0
- package/esm/resources/Climate/Products.js +30 -0
- package/esm/resources/Climate/Suppliers.js +14 -0
- package/esm/resources/ConfirmationTokens.js +9 -0
- package/esm/resources/CountrySpecs.js +14 -0
- package/esm/resources/Coupons.js +14 -0
- package/esm/resources/CreditNotes.js +250 -0
- package/esm/resources/CustomerSessions.js +6 -0
- package/esm/resources/Customers.js +578 -0
- package/esm/resources/Disputes.js +16 -0
- package/esm/resources/Entitlements/ActiveEntitlements.js +14 -0
- package/esm/resources/Entitlements/Features.js +19 -0
- package/esm/resources/EphemeralKeys.js +15 -0
- package/esm/resources/Events.js +11 -0
- package/esm/resources/ExchangeRates.js +14 -0
- package/esm/resources/FileLinks.js +13 -0
- package/esm/resources/Files.js +21 -0
- package/esm/resources/FinancialConnections/Accounts.js +35 -0
- package/esm/resources/FinancialConnections/Sessions.js +13 -0
- package/esm/resources/FinancialConnections/Transactions.js +14 -0
- package/esm/resources/Forwarding/Requests.js +15 -0
- package/esm/resources/Identity/VerificationReports.js +14 -0
- package/esm/resources/Identity/VerificationSessions.js +30 -0
- package/esm/resources/InvoiceItems.js +128 -0
- package/esm/resources/InvoicePayments.js +14 -0
- package/esm/resources/InvoiceRenderingTemplates.js +22 -0
- package/esm/resources/Invoices.js +773 -0
- package/esm/resources/Issuing/Authorizations.js +844 -0
- package/esm/resources/Issuing/Cardholders.js +19 -0
- package/esm/resources/Issuing/Cards.js +13 -0
- package/esm/resources/Issuing/Disputes.js +23 -0
- package/esm/resources/Issuing/PersonalizationDesigns.js +22 -0
- package/esm/resources/Issuing/PhysicalBundles.js +14 -0
- package/esm/resources/Issuing/Tokens.js +18 -0
- package/esm/resources/Issuing/Transactions.js +272 -0
- package/esm/resources/Mandates.js +6 -0
- package/esm/resources/OAuth.js +42 -0
- package/esm/resources/PaymentAttemptRecords.js +14 -0
- package/esm/resources/PaymentIntents.js +53 -0
- package/esm/resources/PaymentLinks.js +417 -0
- package/esm/resources/PaymentMethodConfigurations.js +22 -0
- package/esm/resources/PaymentMethodDomains.js +26 -0
- package/esm/resources/PaymentMethods.js +27 -0
- package/esm/resources/PaymentRecords.js +34 -0
- package/esm/resources/Payouts.js +21 -0
- package/esm/resources/Plans.js +138 -0
- package/esm/resources/Prices.js +343 -0
- package/esm/resources/Products.js +69 -0
- package/esm/resources/PromotionCodes.js +19 -0
- package/esm/resources/Quotes.js +822 -0
- package/esm/resources/Radar/EarlyFraudWarnings.js +14 -0
- package/esm/resources/Radar/PaymentEvaluations.js +9 -0
- package/esm/resources/Radar/ValueListItems.js +22 -0
- package/esm/resources/Radar/ValueLists.js +23 -0
- package/esm/resources/Refunds.js +17 -0
- package/esm/resources/Reporting/ReportRuns.js +15 -0
- package/esm/resources/Reporting/ReportTypes.js +14 -0
- package/esm/resources/Reviews.js +15 -0
- package/esm/resources/SetupAttempts.js +10 -0
- package/esm/resources/SetupIntents.js +31 -0
- package/esm/resources/ShippingRates.js +19 -0
- package/esm/resources/Sigma/ScheduledQueryRuns.js +14 -0
- package/esm/resources/Sources.js +17 -0
- package/esm/resources/SubscriptionItems.js +375 -0
- package/esm/resources/SubscriptionSchedules.js +104 -0
- package/esm/resources/Subscriptions.js +885 -0
- package/esm/resources/Tax/Associations.js +6 -0
- package/esm/resources/Tax/Calculations.js +15 -0
- package/esm/resources/Tax/Registrations.js +19 -0
- package/esm/resources/Tax/Settings.js +7 -0
- package/esm/resources/Tax/Transactions.js +22 -0
- package/esm/resources/TaxCodes.js +11 -0
- package/esm/resources/TaxIds.js +13 -0
- package/esm/resources/TaxRates.js +13 -0
- package/esm/resources/Terminal/Configurations.js +26 -0
- package/esm/resources/Terminal/ConnectionTokens.js +9 -0
- package/esm/resources/Terminal/Locations.js +23 -0
- package/esm/resources/Terminal/OnboardingLinks.js +9 -0
- package/esm/resources/Terminal/Readers.js +55 -0
- package/esm/resources/TestHelpers/ConfirmationTokens.js +9 -0
- package/esm/resources/TestHelpers/Customers.js +9 -0
- package/esm/resources/TestHelpers/Issuing/Authorizations.js +1290 -0
- package/esm/resources/TestHelpers/Issuing/Cards.js +25 -0
- package/esm/resources/TestHelpers/Issuing/PersonalizationDesigns.js +17 -0
- package/esm/resources/TestHelpers/Issuing/Transactions.js +361 -0
- package/esm/resources/TestHelpers/Refunds.js +9 -0
- package/esm/resources/TestHelpers/Terminal/Readers.js +17 -0
- package/esm/resources/TestHelpers/TestClocks.js +26 -0
- package/esm/resources/TestHelpers/Treasury/InboundTransfers.js +17 -0
- package/esm/resources/TestHelpers/Treasury/OutboundPayments.js +21 -0
- package/esm/resources/TestHelpers/Treasury/OutboundTransfers.js +21 -0
- package/esm/resources/TestHelpers/Treasury/ReceivedCredits.js +9 -0
- package/esm/resources/TestHelpers/Treasury/ReceivedDebits.js +9 -0
- package/esm/resources/Tokens.js +7 -0
- package/esm/resources/Topups.js +14 -0
- package/esm/resources/Transfers.js +30 -0
- package/esm/resources/Treasury/CreditReversals.js +18 -0
- package/esm/resources/Treasury/DebitReversals.js +18 -0
- package/esm/resources/Treasury/FinancialAccounts.js +34 -0
- package/esm/resources/Treasury/InboundTransfers.js +22 -0
- package/esm/resources/Treasury/OutboundPayments.js +22 -0
- package/esm/resources/Treasury/OutboundTransfers.js +22 -0
- package/esm/resources/Treasury/ReceivedCredits.js +14 -0
- package/esm/resources/Treasury/ReceivedDebits.js +14 -0
- package/esm/resources/Treasury/TransactionEntries.js +390 -0
- package/esm/resources/Treasury/Transactions.js +444 -0
- package/esm/resources/V2/Billing/MeterEventAdjustments.js +9 -0
- package/esm/resources/V2/Billing/MeterEventSession.js +9 -0
- package/esm/resources/V2/Billing/MeterEventStream.js +10 -0
- package/esm/resources/V2/Billing/MeterEvents.js +6 -0
- package/esm/resources/V2/Core/AccountLinks.js +6 -0
- package/esm/resources/V2/Core/AccountTokens.js +32 -0
- package/esm/resources/V2/Core/Accounts/PersonTokens.js +22 -0
- package/esm/resources/V2/Core/Accounts/Persons.js +88 -0
- package/esm/resources/V2/Core/Accounts.js +174 -0
- package/esm/resources/V2/Core/EventDestinations.js +38 -0
- package/esm/resources/V2/Core/Events.js +63 -0
- package/esm/resources/WebhookEndpoints.js +23 -0
- package/esm/resources.js +263 -0
- package/esm/stripe.core.js +408 -0
- package/esm/stripe.esm.node.js +5 -0
- package/esm/stripe.esm.worker.js +5 -0
- package/esm/utils.js +450 -0
- package/package.json +110 -0
- package/types/.eslintrc.js +22 -0
- package/types/AccountLinks.d.ts +33 -0
- package/types/AccountLinksResource.d.ts +78 -0
- package/types/AccountSessions.d.ts +578 -0
- package/types/AccountSessionsResource.d.ts +677 -0
- package/types/Accounts.d.ts +1736 -0
- package/types/AccountsResource.d.ts +5312 -0
- package/types/ApplePayDomains.d.ts +57 -0
- package/types/ApplePayDomainsResource.d.ts +77 -0
- package/types/ApplicationFees.d.ts +108 -0
- package/types/ApplicationFeesResource.d.ts +162 -0
- package/types/Applications.d.ts +55 -0
- package/types/Apps/Secrets.d.ts +80 -0
- package/types/Apps/SecretsResource.d.ts +186 -0
- package/types/Balance.d.ts +343 -0
- package/types/BalanceResource.d.ts +26 -0
- package/types/BalanceSettings.d.ts +103 -0
- package/types/BalanceSettingsResource.d.ts +124 -0
- package/types/BalanceTransactionSources.d.ts +23 -0
- package/types/BalanceTransactions.d.ts +176 -0
- package/types/BalanceTransactionsResource.d.ts +72 -0
- package/types/BankAccounts.d.ts +433 -0
- package/types/Billing/AlertTriggereds.d.ts +42 -0
- package/types/Billing/Alerts.d.ts +84 -0
- package/types/Billing/AlertsResource.d.ts +183 -0
- package/types/Billing/CreditBalanceSummary.d.ts +99 -0
- package/types/Billing/CreditBalanceSummaryResource.d.ts +83 -0
- package/types/Billing/CreditBalanceTransactions.d.ts +178 -0
- package/types/Billing/CreditBalanceTransactionsResource.d.ts +62 -0
- package/types/Billing/CreditGrants.d.ts +150 -0
- package/types/Billing/CreditGrantsResource.d.ts +248 -0
- package/types/Billing/MeterEventAdjustments.d.ts +53 -0
- package/types/Billing/MeterEventAdjustmentsResource.d.ts +48 -0
- package/types/Billing/MeterEventSummaries.d.ts +50 -0
- package/types/Billing/MeterEvents.d.ts +49 -0
- package/types/Billing/MeterEventsResource.d.ts +46 -0
- package/types/Billing/Meters.d.ts +110 -0
- package/types/Billing/MetersResource.d.ts +234 -0
- package/types/BillingPortal/Configurations.d.ts +319 -0
- package/types/BillingPortal/ConfigurationsResource.d.ts +679 -0
- package/types/BillingPortal/Sessions.d.ts +293 -0
- package/types/BillingPortal/SessionsResource.d.ts +273 -0
- package/types/Capabilities.d.ts +422 -0
- package/types/Cards.d.ts +225 -0
- package/types/CashBalances.d.ts +57 -0
- package/types/Charges.d.ts +2646 -0
- package/types/ChargesResource.d.ts +426 -0
- package/types/Checkout/Sessions.d.ts +2878 -0
- package/types/Checkout/SessionsResource.d.ts +4027 -0
- package/types/Climate/Orders.d.ts +197 -0
- package/types/Climate/OrdersResource.d.ts +159 -0
- package/types/Climate/Products.d.ts +81 -0
- package/types/Climate/ProductsResource.d.ts +45 -0
- package/types/Climate/Suppliers.d.ts +82 -0
- package/types/Climate/SuppliersResource.d.ts +45 -0
- package/types/ConfirmationTokens.d.ts +1755 -0
- package/types/ConfirmationTokensResource.d.ts +27 -0
- package/types/ConnectCollectionTransfers.d.ts +40 -0
- package/types/CountrySpecs.d.ts +88 -0
- package/types/CountrySpecsResource.d.ts +43 -0
- package/types/Coupons.d.ts +139 -0
- package/types/CouponsResource.d.ts +203 -0
- package/types/CreditNoteLineItems.d.ts +195 -0
- package/types/CreditNotes.d.ts +408 -0
- package/types/CreditNotesResource.d.ts +765 -0
- package/types/CustomerBalanceTransactions.d.ts +106 -0
- package/types/CustomerCashBalanceTransactions.d.ts +230 -0
- package/types/CustomerSessions.d.ts +283 -0
- package/types/CustomerSessionsResource.d.ts +263 -0
- package/types/CustomerSources.d.ts +9 -0
- package/types/Customers.d.ts +326 -0
- package/types/CustomersResource.d.ts +1554 -0
- package/types/Discounts.d.ts +175 -0
- package/types/Disputes.d.ts +519 -0
- package/types/DisputesResource.d.ts +384 -0
- package/types/Entitlements/ActiveEntitlementSummaries.d.ts +32 -0
- package/types/Entitlements/ActiveEntitlements.d.ts +37 -0
- package/types/Entitlements/ActiveEntitlementsResource.d.ts +49 -0
- package/types/Entitlements/Features.d.ts +48 -0
- package/types/Entitlements/FeaturesResource.d.ts +118 -0
- package/types/EphemeralKeys.d.ts +40 -0
- package/types/EphemeralKeysResource.d.ts +65 -0
- package/types/Errors.d.ts +356 -0
- package/types/EventTypes.d.ts +4443 -0
- package/types/Events.d.ts +373 -0
- package/types/EventsResource.d.ts +63 -0
- package/types/ExchangeRates.d.ts +54 -0
- package/types/ExchangeRatesResource.d.ts +49 -0
- package/types/ExternalAccounts.d.ts +9 -0
- package/types/FeeRefunds.d.ts +54 -0
- package/types/FileLinks.d.ts +57 -0
- package/types/FileLinksResource.d.ts +114 -0
- package/types/Files.d.ts +96 -0
- package/types/FilesResource.d.ts +146 -0
- package/types/FinancialConnections/AccountOwners.d.ts +52 -0
- package/types/FinancialConnections/AccountOwnerships.d.ts +32 -0
- package/types/FinancialConnections/Accounts.d.ts +325 -0
- package/types/FinancialConnections/AccountsResource.d.ts +184 -0
- package/types/FinancialConnections/Sessions.d.ts +113 -0
- package/types/FinancialConnections/SessionsResource.d.ts +128 -0
- package/types/FinancialConnections/Transactions.d.ts +85 -0
- package/types/FinancialConnections/TransactionsResource.d.ts +68 -0
- package/types/Forwarding/Requests.d.ts +165 -0
- package/types/Forwarding/RequestsResource.d.ts +127 -0
- package/types/FundingInstructions.d.ts +297 -0
- package/types/Identity/VerificationReports.d.ts +487 -0
- package/types/Identity/VerificationReportsResource.d.ts +71 -0
- package/types/Identity/VerificationSessions.d.ts +352 -0
- package/types/Identity/VerificationSessionsResource.d.ts +366 -0
- package/types/InvoiceItems.d.ts +240 -0
- package/types/InvoiceItemsResource.d.ts +424 -0
- package/types/InvoiceLineItems.d.ts +366 -0
- package/types/InvoicePayments.d.ts +111 -0
- package/types/InvoicePaymentsResource.d.ts +88 -0
- package/types/InvoiceRenderingTemplates.d.ts +55 -0
- package/types/InvoiceRenderingTemplatesResource.d.ts +93 -0
- package/types/Invoices.d.ts +1650 -0
- package/types/InvoicesResource.d.ts +4196 -0
- package/types/Issuing/Authorizations.d.ts +689 -0
- package/types/Issuing/AuthorizationsResource.d.ts +151 -0
- package/types/Issuing/Cardholders.d.ts +1184 -0
- package/types/Issuing/CardholdersResource.d.ts +2411 -0
- package/types/Issuing/Cards.d.ts +1312 -0
- package/types/Issuing/CardsResource.d.ts +2371 -0
- package/types/Issuing/Disputes.d.ts +383 -0
- package/types/Issuing/DisputesResource.d.ts +776 -0
- package/types/Issuing/PersonalizationDesigns.d.ts +142 -0
- package/types/Issuing/PersonalizationDesignsResource.d.ts +253 -0
- package/types/Issuing/PhysicalBundles.d.ts +75 -0
- package/types/Issuing/PhysicalBundlesResource.d.ts +63 -0
- package/types/Issuing/Tokens.d.ts +273 -0
- package/types/Issuing/TokensResource.d.ts +88 -0
- package/types/Issuing/Transactions.d.ts +479 -0
- package/types/Issuing/TransactionsResource.d.ts +92 -0
- package/types/LineItems.d.ts +145 -0
- package/types/LoginLinks.d.ts +26 -0
- package/types/Mandates.d.ts +373 -0
- package/types/MandatesResource.d.ts +27 -0
- package/types/OAuth.d.ts +355 -0
- package/types/PaymentAttemptRecords.d.ts +2438 -0
- package/types/PaymentAttemptRecordsResource.d.ts +57 -0
- package/types/PaymentIntentAmountDetailsLineItems.d.ts +126 -0
- package/types/PaymentIntents.d.ts +3162 -0
- package/types/PaymentIntentsResource.d.ts +11473 -0
- package/types/PaymentLinks.d.ts +1051 -0
- package/types/PaymentLinksResource.d.ts +2334 -0
- package/types/PaymentMethodConfigurations.d.ts +2045 -0
- package/types/PaymentMethodConfigurationsResource.d.ts +2958 -0
- package/types/PaymentMethodDomains.d.ts +213 -0
- package/types/PaymentMethodDomainsResource.d.ts +126 -0
- package/types/PaymentMethods.d.ts +1645 -0
- package/types/PaymentMethodsResource.d.ts +1223 -0
- package/types/PaymentRecords.d.ts +2438 -0
- package/types/PaymentRecordsResource.d.ts +657 -0
- package/types/Payouts.d.ts +177 -0
- package/types/PayoutsResource.d.ts +201 -0
- package/types/Persons.d.ts +824 -0
- package/types/Plans.d.ts +195 -0
- package/types/PlansResource.d.ts +303 -0
- package/types/Prices.d.ts +325 -0
- package/types/PricesResource.d.ts +607 -0
- package/types/ProductFeatures.d.ts +57 -0
- package/types/Products.d.ts +170 -0
- package/types/ProductsResource.d.ts +616 -0
- package/types/PromotionCodes.d.ts +125 -0
- package/types/PromotionCodesResource.d.ts +233 -0
- package/types/Quotes.d.ts +690 -0
- package/types/QuotesResource.d.ts +898 -0
- package/types/Radar/EarlyFraudWarnings.d.ts +55 -0
- package/types/Radar/EarlyFraudWarningsResource.d.ts +64 -0
- package/types/Radar/PaymentEvaluations.d.ts +580 -0
- package/types/Radar/PaymentEvaluationsResource.d.ts +208 -0
- package/types/Radar/ValueListItems.d.ts +74 -0
- package/types/Radar/ValueListItemsResource.d.ts +99 -0
- package/types/Radar/ValueLists.d.ts +104 -0
- package/types/Radar/ValueListsResource.d.ts +156 -0
- package/types/Refunds.d.ts +487 -0
- package/types/RefundsResource.d.ts +187 -0
- package/types/Reporting/ReportRuns.d.ts +115 -0
- package/types/Reporting/ReportRunsResource.d.ts +763 -0
- package/types/Reporting/ReportTypes.d.ts +64 -0
- package/types/Reporting/ReportTypesResource.d.ts +47 -0
- package/types/Reserve/Holds.d.ts +104 -0
- package/types/Reserve/Plans.d.ts +103 -0
- package/types/Reserve/Releases.d.ts +105 -0
- package/types/ReserveTransactions.d.ts +32 -0
- package/types/Reviews.d.ts +146 -0
- package/types/ReviewsResource.d.ts +68 -0
- package/types/SetupAttempts.d.ts +878 -0
- package/types/SetupAttemptsResource.d.ts +35 -0
- package/types/SetupIntents.d.ts +1105 -0
- package/types/SetupIntentsResource.d.ts +5251 -0
- package/types/ShippingRates.d.ts +155 -0
- package/types/ShippingRatesResource.d.ts +262 -0
- package/types/Sigma/ScheduledQueryRuns.d.ts +76 -0
- package/types/Sigma/ScheduledQueryRunsResource.d.ts +47 -0
- package/types/SourceMandateNotifications.d.ts +105 -0
- package/types/SourceTransactions.d.ts +203 -0
- package/types/Sources.d.ts +746 -0
- package/types/SourcesResource.d.ts +611 -0
- package/types/SubscriptionItems.d.ts +122 -0
- package/types/SubscriptionItemsResource.d.ts +441 -0
- package/types/SubscriptionSchedules.d.ts +687 -0
- package/types/SubscriptionSchedulesResource.d.ts +1565 -0
- package/types/Subscriptions.d.ts +852 -0
- package/types/SubscriptionsResource.d.ts +2326 -0
- package/types/Tax/Associations.d.ts +82 -0
- package/types/Tax/AssociationsResource.d.ts +29 -0
- package/types/Tax/CalculationLineItems.d.ts +187 -0
- package/types/Tax/Calculations.d.ts +511 -0
- package/types/Tax/CalculationsResource.d.ts +406 -0
- package/types/Tax/Registrations.d.ts +1710 -0
- package/types/Tax/RegistrationsResource.d.ts +2583 -0
- package/types/Tax/Settings.d.ts +86 -0
- package/types/Tax/SettingsResource.d.ts +77 -0
- package/types/Tax/TransactionLineItems.d.ts +90 -0
- package/types/Tax/Transactions.d.ts +418 -0
- package/types/Tax/TransactionsResource.d.ts +182 -0
- package/types/TaxCodes.d.ts +30 -0
- package/types/TaxCodesResource.d.ts +43 -0
- package/types/TaxDeductedAtSources.d.ts +35 -0
- package/types/TaxIds.d.ts +262 -0
- package/types/TaxIdsResource.d.ts +263 -0
- package/types/TaxRates.d.ts +144 -0
- package/types/TaxRatesResource.d.ts +215 -0
- package/types/Terminal/Configurations.d.ts +630 -0
- package/types/Terminal/ConfigurationsResource.d.ts +1469 -0
- package/types/Terminal/ConnectionTokens.d.ts +29 -0
- package/types/Terminal/ConnectionTokensResource.d.ts +32 -0
- package/types/Terminal/Locations.d.ts +166 -0
- package/types/Terminal/LocationsResource.d.ts +233 -0
- package/types/Terminal/OnboardingLinks.d.ts +57 -0
- package/types/Terminal/OnboardingLinksResource.d.ts +62 -0
- package/types/Terminal/Readers.d.ts +676 -0
- package/types/Terminal/ReadersResource.d.ts +665 -0
- package/types/TestHelpers/ConfirmationTokensResource.d.ts +936 -0
- package/types/TestHelpers/CustomersResource.d.ts +40 -0
- package/types/TestHelpers/Issuing/AuthorizationsResource.d.ts +1404 -0
- package/types/TestHelpers/Issuing/CardsResource.d.ts +121 -0
- package/types/TestHelpers/Issuing/PersonalizationDesignsResource.d.ts +113 -0
- package/types/TestHelpers/Issuing/TransactionsResource.d.ts +1354 -0
- package/types/TestHelpers/RefundsResource.d.ts +29 -0
- package/types/TestHelpers/Terminal/ReadersResource.d.ts +151 -0
- package/types/TestHelpers/TestClocks.d.ts +98 -0
- package/types/TestHelpers/TestClocksResource.d.ts +108 -0
- package/types/TestHelpers/Treasury/InboundTransfersResource.d.ts +108 -0
- package/types/TestHelpers/Treasury/OutboundPaymentsResource.d.ts +175 -0
- package/types/TestHelpers/Treasury/OutboundTransfersResource.d.ts +175 -0
- package/types/TestHelpers/Treasury/ReceivedCreditsResource.d.ts +93 -0
- package/types/TestHelpers/Treasury/ReceivedDebitsResource.d.ts +91 -0
- package/types/Tokens.d.ts +84 -0
- package/types/TokensResource.d.ts +1086 -0
- package/types/Topups.d.ts +103 -0
- package/types/TopupsResource.d.ts +158 -0
- package/types/TransferReversals.d.ts +72 -0
- package/types/Transfers.d.ts +104 -0
- package/types/TransfersResource.d.ts +260 -0
- package/types/Treasury/CreditReversals.d.ts +92 -0
- package/types/Treasury/CreditReversalsResource.d.ts +88 -0
- package/types/Treasury/DebitReversals.d.ts +104 -0
- package/types/Treasury/DebitReversalsResource.d.ts +95 -0
- package/types/Treasury/FinancialAccountFeatures.d.ts +623 -0
- package/types/Treasury/FinancialAccounts.d.ts +250 -0
- package/types/Treasury/FinancialAccountsResource.d.ts +733 -0
- package/types/Treasury/InboundTransfers.d.ts +235 -0
- package/types/Treasury/InboundTransfersResource.d.ts +128 -0
- package/types/Treasury/OutboundPayments.d.ts +324 -0
- package/types/Treasury/OutboundPaymentsResource.d.ts +285 -0
- package/types/Treasury/OutboundTransfers.d.ts +299 -0
- package/types/Treasury/OutboundTransfersResource.d.ts +179 -0
- package/types/Treasury/ReceivedCredits.d.ts +279 -0
- package/types/Treasury/ReceivedCreditsResource.d.ts +79 -0
- package/types/Treasury/ReceivedDebits.d.ts +227 -0
- package/types/Treasury/ReceivedDebitsResource.d.ts +58 -0
- package/types/Treasury/TransactionEntries.d.ts +203 -0
- package/types/Treasury/TransactionEntriesResource.d.ts +70 -0
- package/types/Treasury/Transactions.d.ts +202 -0
- package/types/Treasury/TransactionsResource.d.ts +82 -0
- package/types/UpcomingInvoices.d.ts +5 -0
- package/types/V2/Billing/MeterEventAdjustments.d.ts +65 -0
- package/types/V2/Billing/MeterEventAdjustmentsResource.d.ts +47 -0
- package/types/V2/Billing/MeterEventSessionResource.d.ts +26 -0
- package/types/V2/Billing/MeterEventSessions.d.ts +45 -0
- package/types/V2/Billing/MeterEventStreamResource.d.ts +62 -0
- package/types/V2/Billing/MeterEvents.d.ts +55 -0
- package/types/V2/Billing/MeterEventsResource.d.ts +52 -0
- package/types/V2/Core/AccountLinks.d.ts +160 -0
- package/types/V2/Core/AccountLinksResource.d.ts +145 -0
- package/types/V2/Core/AccountPersonTokens.d.ts +44 -0
- package/types/V2/Core/AccountPersons.d.ts +661 -0
- package/types/V2/Core/AccountTokens.d.ts +44 -0
- package/types/V2/Core/AccountTokensResource.d.ts +1149 -0
- package/types/V2/Core/Accounts/PersonTokensResource.d.ts +556 -0
- package/types/V2/Core/Accounts/PersonsResource.d.ts +1260 -0
- package/types/V2/Core/Accounts.d.ts +5422 -0
- package/types/V2/Core/AccountsResource.d.ts +5042 -0
- package/types/V2/Core/EventDestinations.d.ts +168 -0
- package/types/V2/Core/EventDestinationsResource.d.ts +278 -0
- package/types/V2/Core/EventTypes.d.ts +798 -0
- package/types/V2/Core/Events.d.ts +86 -0
- package/types/V2/Core/EventsResource.d.ts +63 -0
- package/types/V2/DeletedObject.d.ts +22 -0
- package/types/V2/EventMisc.d.ts +80 -0
- package/types/WebhookEndpoints.d.ts +101 -0
- package/types/WebhookEndpointsResource.d.ts +798 -0
- package/types/Webhooks.d.ts +164 -0
- package/types/apiVersion.d.ts +4 -0
- package/types/crypto/crypto.d.ts +59 -0
- package/types/index.d.ts +596 -0
- package/types/lib.d.ts +420 -0
- package/types/net/net.d.ts +99 -0
- package/types/shared.d.ts +178 -0
- package/types/test/.eslintrc.js +6 -0
- package/types/test/tsconfig.json +67 -0
- package/types/test/typescriptTest.ts +357 -0
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import { getDataFromArgs, getOptionsFromArgs, makeURLInterpolator, protoExtend, queryStringifyRequestData, } from './utils.js';
|
|
2
|
+
import { stripeMethod } from './StripeMethod.js';
|
|
3
|
+
import { coerceV2RequestData, coerceV2ResponseData } from './V2Coercion.js';
|
|
4
|
+
// Provide extension mechanism for Stripe Resource Sub-Classes
|
|
5
|
+
StripeResource.extend = protoExtend;
|
|
6
|
+
// Expose method-creator
|
|
7
|
+
StripeResource.method = stripeMethod;
|
|
8
|
+
StripeResource.MAX_BUFFERED_REQUEST_METRICS = 100;
|
|
9
|
+
/**
|
|
10
|
+
* Encapsulates request logic for a Stripe Resource
|
|
11
|
+
*/
|
|
12
|
+
function StripeResource(stripe, deprecatedUrlData) {
|
|
13
|
+
this._stripe = stripe;
|
|
14
|
+
if (deprecatedUrlData) {
|
|
15
|
+
throw new Error('Support for curried url params was dropped in stripe-node v7.0.0. Instead, pass two ids.');
|
|
16
|
+
}
|
|
17
|
+
this.basePath = makeURLInterpolator(
|
|
18
|
+
// @ts-ignore changing type of basePath
|
|
19
|
+
this.basePath || stripe.getApiField('basePath'));
|
|
20
|
+
// @ts-ignore changing type of path
|
|
21
|
+
this.resourcePath = this.path;
|
|
22
|
+
// @ts-ignore changing type of path
|
|
23
|
+
this.path = makeURLInterpolator(this.path);
|
|
24
|
+
this.initialize(...arguments);
|
|
25
|
+
}
|
|
26
|
+
StripeResource.prototype = {
|
|
27
|
+
_stripe: null,
|
|
28
|
+
// @ts-ignore the type of path changes in ctor
|
|
29
|
+
path: '',
|
|
30
|
+
resourcePath: '',
|
|
31
|
+
// Methods that don't use the API's default '/v1' path can override it with this setting.
|
|
32
|
+
basePath: null,
|
|
33
|
+
initialize() { },
|
|
34
|
+
// Function to override the default data processor. This allows full control
|
|
35
|
+
// over how a StripeResource's request data will get converted into an HTTP
|
|
36
|
+
// body. This is useful for non-standard HTTP requests. The function should
|
|
37
|
+
// take method name, data, and headers as arguments.
|
|
38
|
+
requestDataProcessor: null,
|
|
39
|
+
// Function to add a validation checks before sending the request, errors should
|
|
40
|
+
// be thrown, and they will be passed to the callback/promise.
|
|
41
|
+
validateRequest: null,
|
|
42
|
+
createFullPath(commandPath, urlData) {
|
|
43
|
+
const urlParts = [this.basePath(urlData), this.path(urlData)];
|
|
44
|
+
if (typeof commandPath === 'function') {
|
|
45
|
+
const computedCommandPath = commandPath(urlData);
|
|
46
|
+
// If we have no actual command path, we just omit it to avoid adding a
|
|
47
|
+
// trailing slash. This is important for top-level listing requests, which
|
|
48
|
+
// do not have a command path.
|
|
49
|
+
if (computedCommandPath) {
|
|
50
|
+
urlParts.push(computedCommandPath);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
urlParts.push(commandPath);
|
|
55
|
+
}
|
|
56
|
+
return this._joinUrlParts(urlParts);
|
|
57
|
+
},
|
|
58
|
+
// Creates a relative resource path with symbols left in (unlike
|
|
59
|
+
// createFullPath which takes some data to replace them with). For example it
|
|
60
|
+
// might produce: /invoices/{id}
|
|
61
|
+
createResourcePathWithSymbols(pathWithSymbols) {
|
|
62
|
+
// If there is no path beyond the resource path, we want to produce just
|
|
63
|
+
// /<resource path> rather than /<resource path>/.
|
|
64
|
+
if (pathWithSymbols) {
|
|
65
|
+
return `/${this._joinUrlParts([this.resourcePath, pathWithSymbols])}`;
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
return `/${this.resourcePath}`;
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
_joinUrlParts(parts) {
|
|
72
|
+
// Replace any accidentally doubled up slashes. This previously used
|
|
73
|
+
// path.join, which would do this as well. Unfortunately we need to do this
|
|
74
|
+
// as the functions for creating paths are technically part of the public
|
|
75
|
+
// interface and so we need to preserve backwards compatibility.
|
|
76
|
+
return parts.join('/').replace(/\/{2,}/g, '/');
|
|
77
|
+
},
|
|
78
|
+
_getRequestOpts(requestArgs, spec, overrideData) {
|
|
79
|
+
// Extract spec values with defaults.
|
|
80
|
+
const requestMethod = (spec.method || 'GET').toUpperCase();
|
|
81
|
+
const usage = spec.usage || [];
|
|
82
|
+
const urlParams = spec.urlParams || [];
|
|
83
|
+
const encode = spec.encode || ((data) => data);
|
|
84
|
+
const isUsingFullPath = !!spec.fullPath;
|
|
85
|
+
const commandPath = makeURLInterpolator(isUsingFullPath ? spec.fullPath : spec.path || '');
|
|
86
|
+
// When using fullPath, we ignore the resource path as it should already be
|
|
87
|
+
// fully qualified.
|
|
88
|
+
const path = isUsingFullPath
|
|
89
|
+
? spec.fullPath
|
|
90
|
+
: this.createResourcePathWithSymbols(spec.path);
|
|
91
|
+
// Don't mutate args externally.
|
|
92
|
+
const args = [].slice.call(requestArgs);
|
|
93
|
+
// Generate and validate url params.
|
|
94
|
+
const urlData = urlParams.reduce((urlData, param) => {
|
|
95
|
+
const arg = args.shift();
|
|
96
|
+
if (typeof arg !== 'string') {
|
|
97
|
+
throw new Error(`Stripe: Argument "${param}" must be a string, but got: ${arg} (on API request to \`${requestMethod} ${path}\`)`);
|
|
98
|
+
}
|
|
99
|
+
urlData[param] = arg;
|
|
100
|
+
return urlData;
|
|
101
|
+
}, {});
|
|
102
|
+
// Pull request data and options (headers, auth) from args.
|
|
103
|
+
const dataFromArgs = getDataFromArgs(args);
|
|
104
|
+
const data = encode(Object.assign({}, dataFromArgs, overrideData));
|
|
105
|
+
const options = getOptionsFromArgs(args);
|
|
106
|
+
const host = options.host || spec.host;
|
|
107
|
+
const streaming = !!spec.streaming || !!options.streaming;
|
|
108
|
+
// Validate that there are no more args.
|
|
109
|
+
if (args.filter((x) => x != null).length) {
|
|
110
|
+
throw new Error(`Stripe: Unknown arguments (${args}). Did you mean to pass an options object? See https://github.com/stripe/stripe-node/wiki/Passing-Options. (on API request to ${requestMethod} \`${path}\`)`);
|
|
111
|
+
}
|
|
112
|
+
// When using full path, we can just invoke the URL interpolator directly
|
|
113
|
+
// as we don't need to use the resource to create a full path.
|
|
114
|
+
const requestPath = isUsingFullPath
|
|
115
|
+
? commandPath(urlData)
|
|
116
|
+
: this.createFullPath(commandPath, urlData);
|
|
117
|
+
const headers = Object.assign(options.headers, spec.headers);
|
|
118
|
+
if (spec.validator) {
|
|
119
|
+
spec.validator(data, { headers });
|
|
120
|
+
}
|
|
121
|
+
const dataInQuery = spec.method === 'GET' || spec.method === 'DELETE';
|
|
122
|
+
const bodyData = dataInQuery ? null : data;
|
|
123
|
+
const queryData = dataInQuery ? data : {};
|
|
124
|
+
return {
|
|
125
|
+
requestMethod,
|
|
126
|
+
requestPath,
|
|
127
|
+
bodyData,
|
|
128
|
+
queryData,
|
|
129
|
+
authenticator: options.authenticator ?? null,
|
|
130
|
+
headers,
|
|
131
|
+
host: host ?? null,
|
|
132
|
+
streaming,
|
|
133
|
+
settings: options.settings,
|
|
134
|
+
usage,
|
|
135
|
+
};
|
|
136
|
+
},
|
|
137
|
+
_makeRequest(requestArgs, spec, overrideData) {
|
|
138
|
+
return new Promise((resolve, reject) => {
|
|
139
|
+
let opts;
|
|
140
|
+
try {
|
|
141
|
+
opts = this._getRequestOpts(requestArgs, spec, overrideData);
|
|
142
|
+
}
|
|
143
|
+
catch (err) {
|
|
144
|
+
reject(err);
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
// Coerce int64_string/decimal_string fields in request body: number/Decimal → string
|
|
148
|
+
if (spec.requestSchema && opts.bodyData) {
|
|
149
|
+
opts.bodyData = coerceV2RequestData(opts.bodyData, spec.requestSchema);
|
|
150
|
+
}
|
|
151
|
+
function requestCallback(err, response) {
|
|
152
|
+
if (err) {
|
|
153
|
+
reject(err);
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
// Coerce int64_string/decimal_string fields in response: string → bigint/Decimal
|
|
157
|
+
try {
|
|
158
|
+
if (spec.responseSchema) {
|
|
159
|
+
coerceV2ResponseData(response, spec.responseSchema);
|
|
160
|
+
}
|
|
161
|
+
resolve(spec.transformResponseData
|
|
162
|
+
? spec.transformResponseData(response)
|
|
163
|
+
: response);
|
|
164
|
+
}
|
|
165
|
+
catch (e) {
|
|
166
|
+
reject(e);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
const emptyQuery = Object.keys(opts.queryData).length === 0;
|
|
171
|
+
const path = [
|
|
172
|
+
opts.requestPath,
|
|
173
|
+
emptyQuery ? '' : '?',
|
|
174
|
+
queryStringifyRequestData(opts.queryData),
|
|
175
|
+
].join('');
|
|
176
|
+
const { headers, settings } = opts;
|
|
177
|
+
this._stripe._requestSender._request(opts.requestMethod, opts.host, path, opts.bodyData, opts.authenticator, {
|
|
178
|
+
headers,
|
|
179
|
+
settings,
|
|
180
|
+
streaming: opts.streaming,
|
|
181
|
+
}, opts.usage, requestCallback, this.requestDataProcessor?.bind(this));
|
|
182
|
+
});
|
|
183
|
+
},
|
|
184
|
+
};
|
|
185
|
+
export { StripeResource };
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { Decimal } from './Decimal.js';
|
|
2
|
+
/**
|
|
3
|
+
* Coerces outbound V2 request data by converting bigint (or number)
|
|
4
|
+
* int64_string fields to strings, matching the wire format expected by the API.
|
|
5
|
+
*
|
|
6
|
+
* Walks the schema tree and only touches fields that are marked as
|
|
7
|
+
* int64_string. All other values are left unchanged.
|
|
8
|
+
*/
|
|
9
|
+
export const coerceV2RequestData = (data, schema) => {
|
|
10
|
+
if (data == null) {
|
|
11
|
+
return data;
|
|
12
|
+
}
|
|
13
|
+
switch (schema.kind) {
|
|
14
|
+
case 'int64_string':
|
|
15
|
+
return typeof data === 'bigint' || typeof data === 'number'
|
|
16
|
+
? String(data)
|
|
17
|
+
: data;
|
|
18
|
+
case 'decimal_string':
|
|
19
|
+
// Duck-type check: Decimal instances have toFixed() and isZero() methods.
|
|
20
|
+
return typeof data.toFixed === 'function' &&
|
|
21
|
+
typeof data.isZero === 'function'
|
|
22
|
+
? data.toString()
|
|
23
|
+
: data;
|
|
24
|
+
case 'object': {
|
|
25
|
+
if (typeof data !== 'object' || Array.isArray(data)) {
|
|
26
|
+
return data;
|
|
27
|
+
}
|
|
28
|
+
const obj = data;
|
|
29
|
+
const result = {};
|
|
30
|
+
for (const key of Object.keys(obj)) {
|
|
31
|
+
const fieldSchema = schema.fields[key];
|
|
32
|
+
result[key] = fieldSchema
|
|
33
|
+
? coerceV2RequestData(obj[key], fieldSchema)
|
|
34
|
+
: obj[key];
|
|
35
|
+
}
|
|
36
|
+
return result;
|
|
37
|
+
}
|
|
38
|
+
case 'array': {
|
|
39
|
+
if (!Array.isArray(data)) {
|
|
40
|
+
return data;
|
|
41
|
+
}
|
|
42
|
+
return data.map((element) => coerceV2RequestData(element, schema.element));
|
|
43
|
+
}
|
|
44
|
+
case 'nullable':
|
|
45
|
+
return coerceV2RequestData(data, schema.inner);
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Coerces inbound V2 response data by converting string int64_string fields
|
|
50
|
+
* to bigints, matching the SDK's public type contract.
|
|
51
|
+
*
|
|
52
|
+
* Walks the schema tree and only touches fields that are marked as
|
|
53
|
+
* int64_string. All other values are left unchanged.
|
|
54
|
+
*/
|
|
55
|
+
export const coerceV2ResponseData = (data, schema) => {
|
|
56
|
+
if (data == null) {
|
|
57
|
+
return data;
|
|
58
|
+
}
|
|
59
|
+
switch (schema.kind) {
|
|
60
|
+
case 'int64_string':
|
|
61
|
+
if (typeof data === 'string') {
|
|
62
|
+
try {
|
|
63
|
+
return BigInt(data);
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
throw new Error(`Failed to coerce int64_string value: expected an integer string, got '${data}'`);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return data;
|
|
70
|
+
case 'decimal_string':
|
|
71
|
+
if (typeof data === 'string') {
|
|
72
|
+
try {
|
|
73
|
+
return Decimal.from(data);
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
throw new Error(`Failed to coerce decimal_string value: expected a decimal string, got '${data}'`);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return data;
|
|
80
|
+
case 'object': {
|
|
81
|
+
if (typeof data !== 'object' || Array.isArray(data)) {
|
|
82
|
+
return data;
|
|
83
|
+
}
|
|
84
|
+
const obj = data;
|
|
85
|
+
for (const key of Object.keys(schema.fields)) {
|
|
86
|
+
if (key in obj) {
|
|
87
|
+
obj[key] = coerceV2ResponseData(obj[key], schema.fields[key]);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return obj;
|
|
91
|
+
}
|
|
92
|
+
case 'array': {
|
|
93
|
+
if (!Array.isArray(data)) {
|
|
94
|
+
return data;
|
|
95
|
+
}
|
|
96
|
+
for (let i = 0; i < data.length; i++) {
|
|
97
|
+
data[i] = coerceV2ResponseData(data[i], schema.element);
|
|
98
|
+
}
|
|
99
|
+
return data;
|
|
100
|
+
}
|
|
101
|
+
case 'nullable':
|
|
102
|
+
return coerceV2ResponseData(data, schema.inner);
|
|
103
|
+
}
|
|
104
|
+
};
|
package/esm/Webhooks.js
ADDED
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
import { StripeError, StripeSignatureVerificationError } from './Error.js';
|
|
2
|
+
import { CryptoProviderOnlySupportsAsyncError, } from './crypto/CryptoProvider.js';
|
|
3
|
+
export function createWebhooks(platformFunctions) {
|
|
4
|
+
const Webhook = {
|
|
5
|
+
DEFAULT_TOLERANCE: 300,
|
|
6
|
+
signature: null,
|
|
7
|
+
constructEvent(payload, header, secret, tolerance, cryptoProvider, receivedAt) {
|
|
8
|
+
try {
|
|
9
|
+
if (!this.signature) {
|
|
10
|
+
throw new Error('ERR: missing signature helper, unable to verify');
|
|
11
|
+
}
|
|
12
|
+
this.signature.verifyHeader(payload, header, secret, tolerance || Webhook.DEFAULT_TOLERANCE, cryptoProvider, receivedAt);
|
|
13
|
+
}
|
|
14
|
+
catch (e) {
|
|
15
|
+
if (e instanceof CryptoProviderOnlySupportsAsyncError) {
|
|
16
|
+
e.message +=
|
|
17
|
+
'\nUse `await constructEventAsync(...)` instead of `constructEvent(...)`';
|
|
18
|
+
}
|
|
19
|
+
throw e;
|
|
20
|
+
}
|
|
21
|
+
const jsonPayload = payload instanceof Uint8Array
|
|
22
|
+
? JSON.parse(new TextDecoder('utf8').decode(payload))
|
|
23
|
+
: JSON.parse(payload);
|
|
24
|
+
if (jsonPayload && jsonPayload.object === 'v2.core.event') {
|
|
25
|
+
throw new Error('You passed an event notification to stripe.webhooks.constructEvent, which expects a webhook payload. Use stripe.parseEventNotification instead.');
|
|
26
|
+
}
|
|
27
|
+
return jsonPayload;
|
|
28
|
+
},
|
|
29
|
+
async constructEventAsync(payload, header, secret, tolerance, cryptoProvider, receivedAt) {
|
|
30
|
+
if (!this.signature) {
|
|
31
|
+
throw new Error('ERR: missing signature helper, unable to verify');
|
|
32
|
+
}
|
|
33
|
+
await this.signature.verifyHeaderAsync(payload, header, secret, tolerance || Webhook.DEFAULT_TOLERANCE, cryptoProvider, receivedAt);
|
|
34
|
+
const jsonPayload = payload instanceof Uint8Array
|
|
35
|
+
? JSON.parse(new TextDecoder('utf8').decode(payload))
|
|
36
|
+
: JSON.parse(payload);
|
|
37
|
+
if (jsonPayload && jsonPayload.object === 'v2.core.event') {
|
|
38
|
+
throw new Error('You passed an event notification to stripe.webhooks.constructEvent, which expects a webhook payload. Use stripe.parseEventNotification instead.');
|
|
39
|
+
}
|
|
40
|
+
return jsonPayload;
|
|
41
|
+
},
|
|
42
|
+
/**
|
|
43
|
+
* Generates a header to be used for webhook mocking
|
|
44
|
+
*
|
|
45
|
+
* @typedef {object} opts
|
|
46
|
+
* @property {number} timestamp - Timestamp of the header. Defaults to Date.now()
|
|
47
|
+
* @property {string} payload - JSON stringified payload object, containing the 'id' and 'object' parameters
|
|
48
|
+
* @property {string} secret - Stripe webhook secret 'whsec_...'
|
|
49
|
+
* @property {string} scheme - Version of API to hit. Defaults to 'v1'.
|
|
50
|
+
* @property {string} signature - Computed webhook signature
|
|
51
|
+
* @property {CryptoProvider} cryptoProvider - Crypto provider to use for computing the signature if none was provided. Defaults to NodeCryptoProvider.
|
|
52
|
+
*/
|
|
53
|
+
generateTestHeaderString: function (opts) {
|
|
54
|
+
const preparedOpts = prepareOptions(opts);
|
|
55
|
+
const signature = preparedOpts.signature ||
|
|
56
|
+
preparedOpts.cryptoProvider.computeHMACSignature(preparedOpts.payloadString, preparedOpts.secret);
|
|
57
|
+
return preparedOpts.generateHeaderString(signature);
|
|
58
|
+
},
|
|
59
|
+
generateTestHeaderStringAsync: async function (opts) {
|
|
60
|
+
const preparedOpts = prepareOptions(opts);
|
|
61
|
+
const signature = preparedOpts.signature ||
|
|
62
|
+
(await preparedOpts.cryptoProvider.computeHMACSignatureAsync(preparedOpts.payloadString, preparedOpts.secret));
|
|
63
|
+
return preparedOpts.generateHeaderString(signature);
|
|
64
|
+
},
|
|
65
|
+
};
|
|
66
|
+
const signature = {
|
|
67
|
+
EXPECTED_SCHEME: 'v1',
|
|
68
|
+
verifyHeader(encodedPayload, encodedHeader, secret, tolerance, cryptoProvider, receivedAt) {
|
|
69
|
+
const { decodedHeader: header, decodedPayload: payload, details, suspectPayloadType, } = parseEventDetails(encodedPayload, encodedHeader, this.EXPECTED_SCHEME);
|
|
70
|
+
const secretContainsWhitespace = /\s/.test(secret);
|
|
71
|
+
cryptoProvider = cryptoProvider || getCryptoProvider();
|
|
72
|
+
const expectedSignature = cryptoProvider.computeHMACSignature(makeHMACContent(payload, details), secret);
|
|
73
|
+
validateComputedSignature(payload, header, details, expectedSignature, tolerance, suspectPayloadType, secretContainsWhitespace, receivedAt);
|
|
74
|
+
return true;
|
|
75
|
+
},
|
|
76
|
+
async verifyHeaderAsync(encodedPayload, encodedHeader, secret, tolerance, cryptoProvider, receivedAt) {
|
|
77
|
+
const { decodedHeader: header, decodedPayload: payload, details, suspectPayloadType, } = parseEventDetails(encodedPayload, encodedHeader, this.EXPECTED_SCHEME);
|
|
78
|
+
const secretContainsWhitespace = /\s/.test(secret);
|
|
79
|
+
cryptoProvider = cryptoProvider || getCryptoProvider();
|
|
80
|
+
const expectedSignature = await cryptoProvider.computeHMACSignatureAsync(makeHMACContent(payload, details), secret);
|
|
81
|
+
return validateComputedSignature(payload, header, details, expectedSignature, tolerance, suspectPayloadType, secretContainsWhitespace, receivedAt);
|
|
82
|
+
},
|
|
83
|
+
};
|
|
84
|
+
function makeHMACContent(payload, details) {
|
|
85
|
+
return `${details.timestamp}.${payload}`;
|
|
86
|
+
}
|
|
87
|
+
function parseEventDetails(encodedPayload, encodedHeader, expectedScheme) {
|
|
88
|
+
if (!encodedPayload) {
|
|
89
|
+
throw new StripeSignatureVerificationError(encodedHeader, encodedPayload, {
|
|
90
|
+
message: 'No webhook payload was provided.',
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
const suspectPayloadType = typeof encodedPayload != 'string' &&
|
|
94
|
+
!(encodedPayload instanceof Uint8Array);
|
|
95
|
+
const textDecoder = new TextDecoder('utf8');
|
|
96
|
+
const decodedPayload = encodedPayload instanceof Uint8Array
|
|
97
|
+
? textDecoder.decode(encodedPayload)
|
|
98
|
+
: encodedPayload;
|
|
99
|
+
// Express's type for `Request#headers` is `string | []string`
|
|
100
|
+
// which is because the `set-cookie` header is an array,
|
|
101
|
+
// but no other headers are an array (docs: https://nodejs.org/api/http.html#http_message_headers)
|
|
102
|
+
// (Express's Request class is an extension of http.IncomingMessage, and doesn't appear to be relevantly modified: https://github.com/expressjs/express/blob/master/lib/request.js#L31)
|
|
103
|
+
if (Array.isArray(encodedHeader)) {
|
|
104
|
+
throw new Error('Unexpected: An array was passed as a header, which should not be possible for the stripe-signature header.');
|
|
105
|
+
}
|
|
106
|
+
if (encodedHeader == null || encodedHeader == '') {
|
|
107
|
+
throw new StripeSignatureVerificationError(encodedHeader, encodedPayload, {
|
|
108
|
+
message: 'No stripe-signature header value was provided.',
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
const decodedHeader = encodedHeader instanceof Uint8Array
|
|
112
|
+
? textDecoder.decode(encodedHeader)
|
|
113
|
+
: encodedHeader;
|
|
114
|
+
const details = parseHeader(decodedHeader, expectedScheme);
|
|
115
|
+
if (!details || details.timestamp === -1) {
|
|
116
|
+
throw new StripeSignatureVerificationError(decodedHeader, decodedPayload, {
|
|
117
|
+
message: 'Unable to extract timestamp and signatures from header',
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
if (!details.signatures.length) {
|
|
121
|
+
throw new StripeSignatureVerificationError(decodedHeader, decodedPayload, {
|
|
122
|
+
message: 'No signatures found with expected scheme',
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
return {
|
|
126
|
+
decodedPayload,
|
|
127
|
+
decodedHeader,
|
|
128
|
+
details,
|
|
129
|
+
suspectPayloadType,
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
function validateComputedSignature(payload, header, details, expectedSignature, tolerance, suspectPayloadType, secretContainsWhitespace, receivedAt) {
|
|
133
|
+
const signatureFound = !!details.signatures.filter(platformFunctions.secureCompare.bind(platformFunctions, expectedSignature)).length;
|
|
134
|
+
const docsLocation = '\nLearn more about webhook signing and explore webhook integration examples for various frameworks at ' +
|
|
135
|
+
'https://docs.stripe.com/webhooks/signature';
|
|
136
|
+
const whitespaceMessage = secretContainsWhitespace
|
|
137
|
+
? '\n\nNote: The provided signing secret contains whitespace. This often indicates an extra newline or space is in the value'
|
|
138
|
+
: '';
|
|
139
|
+
if (!signatureFound) {
|
|
140
|
+
if (suspectPayloadType) {
|
|
141
|
+
throw new StripeSignatureVerificationError(header, payload, {
|
|
142
|
+
message: 'Webhook payload must be provided as a string or a Buffer (https://nodejs.org/api/buffer.html) instance representing the _raw_ request body.' +
|
|
143
|
+
'Payload was provided as a parsed JavaScript object instead. \n' +
|
|
144
|
+
'Signature verification is impossible without access to the original signed material. \n' +
|
|
145
|
+
docsLocation +
|
|
146
|
+
'\n' +
|
|
147
|
+
whitespaceMessage,
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
throw new StripeSignatureVerificationError(header, payload, {
|
|
151
|
+
message: 'No signatures found matching the expected signature for payload.' +
|
|
152
|
+
' Are you passing the raw request body you received from Stripe? \n' +
|
|
153
|
+
' If a webhook request is being forwarded by a third-party tool,' +
|
|
154
|
+
' ensure that the exact request body, including JSON formatting and new line style, is preserved.\n' +
|
|
155
|
+
docsLocation +
|
|
156
|
+
'\n' +
|
|
157
|
+
whitespaceMessage,
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
const timestampAge = Math.floor((typeof receivedAt === 'number' ? receivedAt : Date.now()) / 1000) - details.timestamp;
|
|
161
|
+
if (tolerance > 0 && timestampAge > tolerance) {
|
|
162
|
+
throw new StripeSignatureVerificationError(header, payload, {
|
|
163
|
+
message: 'Timestamp outside the tolerance zone',
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
return true;
|
|
167
|
+
}
|
|
168
|
+
function parseHeader(header, scheme) {
|
|
169
|
+
if (typeof header !== 'string') {
|
|
170
|
+
return null;
|
|
171
|
+
}
|
|
172
|
+
return header.split(',').reduce((accum, item) => {
|
|
173
|
+
const kv = item.split('=');
|
|
174
|
+
if (kv[0] === 't') {
|
|
175
|
+
accum.timestamp = parseInt(kv[1], 10);
|
|
176
|
+
}
|
|
177
|
+
if (kv[0] === scheme) {
|
|
178
|
+
accum.signatures.push(kv[1]);
|
|
179
|
+
}
|
|
180
|
+
return accum;
|
|
181
|
+
}, {
|
|
182
|
+
timestamp: -1,
|
|
183
|
+
signatures: [],
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
let webhooksCryptoProviderInstance = null;
|
|
187
|
+
/**
|
|
188
|
+
* Lazily instantiate a CryptoProvider instance. This is a stateless object
|
|
189
|
+
* so a singleton can be used here.
|
|
190
|
+
*/
|
|
191
|
+
function getCryptoProvider() {
|
|
192
|
+
if (!webhooksCryptoProviderInstance) {
|
|
193
|
+
webhooksCryptoProviderInstance = platformFunctions.createDefaultCryptoProvider();
|
|
194
|
+
}
|
|
195
|
+
return webhooksCryptoProviderInstance;
|
|
196
|
+
}
|
|
197
|
+
function prepareOptions(opts) {
|
|
198
|
+
if (!opts) {
|
|
199
|
+
throw new StripeError({
|
|
200
|
+
message: 'Options are required',
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
const timestamp = Math.floor(opts.timestamp) || Math.floor(Date.now() / 1000);
|
|
204
|
+
const scheme = opts.scheme || signature.EXPECTED_SCHEME;
|
|
205
|
+
const cryptoProvider = opts.cryptoProvider || getCryptoProvider();
|
|
206
|
+
const payloadString = `${timestamp}.${opts.payload}`;
|
|
207
|
+
const generateHeaderString = (signature) => {
|
|
208
|
+
return `t=${timestamp},${scheme}=${signature}`;
|
|
209
|
+
};
|
|
210
|
+
return {
|
|
211
|
+
...opts,
|
|
212
|
+
timestamp,
|
|
213
|
+
scheme,
|
|
214
|
+
cryptoProvider,
|
|
215
|
+
payloadString,
|
|
216
|
+
generateHeaderString,
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
Webhook.signature = signature;
|
|
220
|
+
return Webhook;
|
|
221
|
+
}
|