@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.
Files changed (654) hide show
  1. package/CHANGELOG.md +4529 -0
  2. package/LICENSE +20 -0
  3. package/OPENAPI_VERSION +1 -0
  4. package/README.md +25 -0
  5. package/VERSION +1 -0
  6. package/changes.json +5 -0
  7. package/cjs/Decimal.js +854 -0
  8. package/cjs/Error.js +284 -0
  9. package/cjs/RequestSender.js +469 -0
  10. package/cjs/ResourceNamespace.js +21 -0
  11. package/cjs/StripeContext.js +56 -0
  12. package/cjs/StripeEmitter.js +46 -0
  13. package/cjs/StripeMethod.js +36 -0
  14. package/cjs/StripeResource.js +188 -0
  15. package/cjs/V2Coercion.js +109 -0
  16. package/cjs/Webhooks.js +225 -0
  17. package/cjs/apiVersion.js +6 -0
  18. package/cjs/autoPagination.js +294 -0
  19. package/cjs/crypto/CryptoProvider.js +51 -0
  20. package/cjs/crypto/NodeCryptoProvider.js +30 -0
  21. package/cjs/crypto/SubtleCryptoProvider.js +51 -0
  22. package/cjs/multipart.js +61 -0
  23. package/cjs/net/FetchHttpClient.js +145 -0
  24. package/cjs/net/HttpClient.js +53 -0
  25. package/cjs/net/NodeHttpClient.js +108 -0
  26. package/cjs/package.json +1 -0
  27. package/cjs/platform/NodePlatformFunctions.js +98 -0
  28. package/cjs/platform/PlatformFunctions.js +98 -0
  29. package/cjs/platform/WebPlatformFunctions.js +38 -0
  30. package/cjs/resources/AccountLinks.js +9 -0
  31. package/cjs/resources/AccountSessions.js +9 -0
  32. package/cjs/resources/Accounts.js +101 -0
  33. package/cjs/resources/ApplePayDomains.js +22 -0
  34. package/cjs/resources/ApplicationFees.js +34 -0
  35. package/cjs/resources/Apps/Secrets.js +19 -0
  36. package/cjs/resources/Balance.js +9 -0
  37. package/cjs/resources/BalanceSettings.js +10 -0
  38. package/cjs/resources/BalanceTransactions.js +17 -0
  39. package/cjs/resources/Billing/Alerts.js +27 -0
  40. package/cjs/resources/Billing/CreditBalanceSummary.js +12 -0
  41. package/cjs/resources/Billing/CreditBalanceTransactions.js +17 -0
  42. package/cjs/resources/Billing/CreditGrants.js +30 -0
  43. package/cjs/resources/Billing/MeterEventAdjustments.js +12 -0
  44. package/cjs/resources/Billing/MeterEvents.js +9 -0
  45. package/cjs/resources/Billing/Meters.js +29 -0
  46. package/cjs/resources/BillingPortal/Configurations.js +25 -0
  47. package/cjs/resources/BillingPortal/Sessions.js +12 -0
  48. package/cjs/resources/Charges.js +25 -0
  49. package/cjs/resources/Checkout/Sessions.js +538 -0
  50. package/cjs/resources/Climate/Orders.js +61 -0
  51. package/cjs/resources/Climate/Products.js +33 -0
  52. package/cjs/resources/Climate/Suppliers.js +17 -0
  53. package/cjs/resources/ConfirmationTokens.js +12 -0
  54. package/cjs/resources/CountrySpecs.js +17 -0
  55. package/cjs/resources/Coupons.js +17 -0
  56. package/cjs/resources/CreditNotes.js +253 -0
  57. package/cjs/resources/CustomerSessions.js +9 -0
  58. package/cjs/resources/Customers.js +581 -0
  59. package/cjs/resources/Disputes.js +19 -0
  60. package/cjs/resources/Entitlements/ActiveEntitlements.js +17 -0
  61. package/cjs/resources/Entitlements/Features.js +22 -0
  62. package/cjs/resources/EphemeralKeys.js +18 -0
  63. package/cjs/resources/Events.js +14 -0
  64. package/cjs/resources/ExchangeRates.js +17 -0
  65. package/cjs/resources/FileLinks.js +16 -0
  66. package/cjs/resources/Files.js +24 -0
  67. package/cjs/resources/FinancialConnections/Accounts.js +38 -0
  68. package/cjs/resources/FinancialConnections/Sessions.js +16 -0
  69. package/cjs/resources/FinancialConnections/Transactions.js +17 -0
  70. package/cjs/resources/Forwarding/Requests.js +18 -0
  71. package/cjs/resources/Identity/VerificationReports.js +17 -0
  72. package/cjs/resources/Identity/VerificationSessions.js +33 -0
  73. package/cjs/resources/InvoiceItems.js +131 -0
  74. package/cjs/resources/InvoicePayments.js +17 -0
  75. package/cjs/resources/InvoiceRenderingTemplates.js +25 -0
  76. package/cjs/resources/Invoices.js +776 -0
  77. package/cjs/resources/Issuing/Authorizations.js +847 -0
  78. package/cjs/resources/Issuing/Cardholders.js +22 -0
  79. package/cjs/resources/Issuing/Cards.js +16 -0
  80. package/cjs/resources/Issuing/Disputes.js +26 -0
  81. package/cjs/resources/Issuing/PersonalizationDesigns.js +25 -0
  82. package/cjs/resources/Issuing/PhysicalBundles.js +17 -0
  83. package/cjs/resources/Issuing/Tokens.js +21 -0
  84. package/cjs/resources/Issuing/Transactions.js +275 -0
  85. package/cjs/resources/Mandates.js +9 -0
  86. package/cjs/resources/OAuth.js +44 -0
  87. package/cjs/resources/PaymentAttemptRecords.js +17 -0
  88. package/cjs/resources/PaymentIntents.js +56 -0
  89. package/cjs/resources/PaymentLinks.js +420 -0
  90. package/cjs/resources/PaymentMethodConfigurations.js +25 -0
  91. package/cjs/resources/PaymentMethodDomains.js +29 -0
  92. package/cjs/resources/PaymentMethods.js +30 -0
  93. package/cjs/resources/PaymentRecords.js +37 -0
  94. package/cjs/resources/Payouts.js +24 -0
  95. package/cjs/resources/Plans.js +141 -0
  96. package/cjs/resources/Prices.js +346 -0
  97. package/cjs/resources/Products.js +72 -0
  98. package/cjs/resources/PromotionCodes.js +22 -0
  99. package/cjs/resources/Quotes.js +825 -0
  100. package/cjs/resources/Radar/EarlyFraudWarnings.js +17 -0
  101. package/cjs/resources/Radar/PaymentEvaluations.js +12 -0
  102. package/cjs/resources/Radar/ValueListItems.js +25 -0
  103. package/cjs/resources/Radar/ValueLists.js +26 -0
  104. package/cjs/resources/Refunds.js +20 -0
  105. package/cjs/resources/Reporting/ReportRuns.js +18 -0
  106. package/cjs/resources/Reporting/ReportTypes.js +17 -0
  107. package/cjs/resources/Reviews.js +18 -0
  108. package/cjs/resources/SetupAttempts.js +13 -0
  109. package/cjs/resources/SetupIntents.js +34 -0
  110. package/cjs/resources/ShippingRates.js +22 -0
  111. package/cjs/resources/Sigma/ScheduledQueryRuns.js +17 -0
  112. package/cjs/resources/Sources.js +20 -0
  113. package/cjs/resources/SubscriptionItems.js +378 -0
  114. package/cjs/resources/SubscriptionSchedules.js +107 -0
  115. package/cjs/resources/Subscriptions.js +888 -0
  116. package/cjs/resources/Tax/Associations.js +9 -0
  117. package/cjs/resources/Tax/Calculations.js +18 -0
  118. package/cjs/resources/Tax/Registrations.js +22 -0
  119. package/cjs/resources/Tax/Settings.js +10 -0
  120. package/cjs/resources/Tax/Transactions.js +25 -0
  121. package/cjs/resources/TaxCodes.js +14 -0
  122. package/cjs/resources/TaxIds.js +16 -0
  123. package/cjs/resources/TaxRates.js +16 -0
  124. package/cjs/resources/Terminal/Configurations.js +29 -0
  125. package/cjs/resources/Terminal/ConnectionTokens.js +12 -0
  126. package/cjs/resources/Terminal/Locations.js +26 -0
  127. package/cjs/resources/Terminal/OnboardingLinks.js +12 -0
  128. package/cjs/resources/Terminal/Readers.js +58 -0
  129. package/cjs/resources/TestHelpers/ConfirmationTokens.js +12 -0
  130. package/cjs/resources/TestHelpers/Customers.js +12 -0
  131. package/cjs/resources/TestHelpers/Issuing/Authorizations.js +1293 -0
  132. package/cjs/resources/TestHelpers/Issuing/Cards.js +28 -0
  133. package/cjs/resources/TestHelpers/Issuing/PersonalizationDesigns.js +20 -0
  134. package/cjs/resources/TestHelpers/Issuing/Transactions.js +364 -0
  135. package/cjs/resources/TestHelpers/Refunds.js +12 -0
  136. package/cjs/resources/TestHelpers/Terminal/Readers.js +20 -0
  137. package/cjs/resources/TestHelpers/TestClocks.js +29 -0
  138. package/cjs/resources/TestHelpers/Treasury/InboundTransfers.js +20 -0
  139. package/cjs/resources/TestHelpers/Treasury/OutboundPayments.js +24 -0
  140. package/cjs/resources/TestHelpers/Treasury/OutboundTransfers.js +24 -0
  141. package/cjs/resources/TestHelpers/Treasury/ReceivedCredits.js +12 -0
  142. package/cjs/resources/TestHelpers/Treasury/ReceivedDebits.js +12 -0
  143. package/cjs/resources/Tokens.js +10 -0
  144. package/cjs/resources/Topups.js +17 -0
  145. package/cjs/resources/Transfers.js +33 -0
  146. package/cjs/resources/Treasury/CreditReversals.js +21 -0
  147. package/cjs/resources/Treasury/DebitReversals.js +21 -0
  148. package/cjs/resources/Treasury/FinancialAccounts.js +37 -0
  149. package/cjs/resources/Treasury/InboundTransfers.js +25 -0
  150. package/cjs/resources/Treasury/OutboundPayments.js +25 -0
  151. package/cjs/resources/Treasury/OutboundTransfers.js +25 -0
  152. package/cjs/resources/Treasury/ReceivedCredits.js +17 -0
  153. package/cjs/resources/Treasury/ReceivedDebits.js +17 -0
  154. package/cjs/resources/Treasury/TransactionEntries.js +393 -0
  155. package/cjs/resources/Treasury/Transactions.js +447 -0
  156. package/cjs/resources/V2/Billing/MeterEventAdjustments.js +12 -0
  157. package/cjs/resources/V2/Billing/MeterEventSession.js +12 -0
  158. package/cjs/resources/V2/Billing/MeterEventStream.js +13 -0
  159. package/cjs/resources/V2/Billing/MeterEvents.js +9 -0
  160. package/cjs/resources/V2/Core/AccountLinks.js +9 -0
  161. package/cjs/resources/V2/Core/AccountTokens.js +35 -0
  162. package/cjs/resources/V2/Core/Accounts/PersonTokens.js +25 -0
  163. package/cjs/resources/V2/Core/Accounts/Persons.js +91 -0
  164. package/cjs/resources/V2/Core/Accounts.js +177 -0
  165. package/cjs/resources/V2/Core/EventDestinations.js +41 -0
  166. package/cjs/resources/V2/Core/Events.js +66 -0
  167. package/cjs/resources/WebhookEndpoints.js +26 -0
  168. package/cjs/resources.js +324 -0
  169. package/cjs/stripe.cjs.node.js +13 -0
  170. package/cjs/stripe.cjs.worker.js +13 -0
  171. package/cjs/stripe.core.js +412 -0
  172. package/cjs/utils.js +477 -0
  173. package/esm/Decimal.js +850 -0
  174. package/esm/Error.js +259 -0
  175. package/esm/RequestSender.js +465 -0
  176. package/esm/ResourceNamespace.js +17 -0
  177. package/esm/StripeContext.js +52 -0
  178. package/esm/StripeEmitter.js +42 -0
  179. package/esm/StripeMethod.js +32 -0
  180. package/esm/StripeResource.js +185 -0
  181. package/esm/V2Coercion.js +104 -0
  182. package/esm/Webhooks.js +221 -0
  183. package/esm/apiVersion.js +3 -0
  184. package/esm/autoPagination.js +290 -0
  185. package/esm/crypto/CryptoProvider.js +46 -0
  186. package/esm/crypto/NodeCryptoProvider.js +26 -0
  187. package/esm/crypto/SubtleCryptoProvider.js +47 -0
  188. package/esm/multipart.js +57 -0
  189. package/esm/net/FetchHttpClient.js +140 -0
  190. package/esm/net/HttpClient.js +48 -0
  191. package/esm/net/NodeHttpClient.js +103 -0
  192. package/esm/package.json +1 -0
  193. package/esm/platform/NodePlatformFunctions.js +94 -0
  194. package/esm/platform/PlatformFunctions.js +94 -0
  195. package/esm/platform/WebPlatformFunctions.js +34 -0
  196. package/esm/resources/AccountLinks.js +6 -0
  197. package/esm/resources/AccountSessions.js +6 -0
  198. package/esm/resources/Accounts.js +98 -0
  199. package/esm/resources/ApplePayDomains.js +19 -0
  200. package/esm/resources/ApplicationFees.js +31 -0
  201. package/esm/resources/Apps/Secrets.js +16 -0
  202. package/esm/resources/Balance.js +6 -0
  203. package/esm/resources/BalanceSettings.js +7 -0
  204. package/esm/resources/BalanceTransactions.js +14 -0
  205. package/esm/resources/Billing/Alerts.js +24 -0
  206. package/esm/resources/Billing/CreditBalanceSummary.js +9 -0
  207. package/esm/resources/Billing/CreditBalanceTransactions.js +14 -0
  208. package/esm/resources/Billing/CreditGrants.js +27 -0
  209. package/esm/resources/Billing/MeterEventAdjustments.js +9 -0
  210. package/esm/resources/Billing/MeterEvents.js +6 -0
  211. package/esm/resources/Billing/Meters.js +26 -0
  212. package/esm/resources/BillingPortal/Configurations.js +22 -0
  213. package/esm/resources/BillingPortal/Sessions.js +9 -0
  214. package/esm/resources/Charges.js +22 -0
  215. package/esm/resources/Checkout/Sessions.js +535 -0
  216. package/esm/resources/Climate/Orders.js +58 -0
  217. package/esm/resources/Climate/Products.js +30 -0
  218. package/esm/resources/Climate/Suppliers.js +14 -0
  219. package/esm/resources/ConfirmationTokens.js +9 -0
  220. package/esm/resources/CountrySpecs.js +14 -0
  221. package/esm/resources/Coupons.js +14 -0
  222. package/esm/resources/CreditNotes.js +250 -0
  223. package/esm/resources/CustomerSessions.js +6 -0
  224. package/esm/resources/Customers.js +578 -0
  225. package/esm/resources/Disputes.js +16 -0
  226. package/esm/resources/Entitlements/ActiveEntitlements.js +14 -0
  227. package/esm/resources/Entitlements/Features.js +19 -0
  228. package/esm/resources/EphemeralKeys.js +15 -0
  229. package/esm/resources/Events.js +11 -0
  230. package/esm/resources/ExchangeRates.js +14 -0
  231. package/esm/resources/FileLinks.js +13 -0
  232. package/esm/resources/Files.js +21 -0
  233. package/esm/resources/FinancialConnections/Accounts.js +35 -0
  234. package/esm/resources/FinancialConnections/Sessions.js +13 -0
  235. package/esm/resources/FinancialConnections/Transactions.js +14 -0
  236. package/esm/resources/Forwarding/Requests.js +15 -0
  237. package/esm/resources/Identity/VerificationReports.js +14 -0
  238. package/esm/resources/Identity/VerificationSessions.js +30 -0
  239. package/esm/resources/InvoiceItems.js +128 -0
  240. package/esm/resources/InvoicePayments.js +14 -0
  241. package/esm/resources/InvoiceRenderingTemplates.js +22 -0
  242. package/esm/resources/Invoices.js +773 -0
  243. package/esm/resources/Issuing/Authorizations.js +844 -0
  244. package/esm/resources/Issuing/Cardholders.js +19 -0
  245. package/esm/resources/Issuing/Cards.js +13 -0
  246. package/esm/resources/Issuing/Disputes.js +23 -0
  247. package/esm/resources/Issuing/PersonalizationDesigns.js +22 -0
  248. package/esm/resources/Issuing/PhysicalBundles.js +14 -0
  249. package/esm/resources/Issuing/Tokens.js +18 -0
  250. package/esm/resources/Issuing/Transactions.js +272 -0
  251. package/esm/resources/Mandates.js +6 -0
  252. package/esm/resources/OAuth.js +42 -0
  253. package/esm/resources/PaymentAttemptRecords.js +14 -0
  254. package/esm/resources/PaymentIntents.js +53 -0
  255. package/esm/resources/PaymentLinks.js +417 -0
  256. package/esm/resources/PaymentMethodConfigurations.js +22 -0
  257. package/esm/resources/PaymentMethodDomains.js +26 -0
  258. package/esm/resources/PaymentMethods.js +27 -0
  259. package/esm/resources/PaymentRecords.js +34 -0
  260. package/esm/resources/Payouts.js +21 -0
  261. package/esm/resources/Plans.js +138 -0
  262. package/esm/resources/Prices.js +343 -0
  263. package/esm/resources/Products.js +69 -0
  264. package/esm/resources/PromotionCodes.js +19 -0
  265. package/esm/resources/Quotes.js +822 -0
  266. package/esm/resources/Radar/EarlyFraudWarnings.js +14 -0
  267. package/esm/resources/Radar/PaymentEvaluations.js +9 -0
  268. package/esm/resources/Radar/ValueListItems.js +22 -0
  269. package/esm/resources/Radar/ValueLists.js +23 -0
  270. package/esm/resources/Refunds.js +17 -0
  271. package/esm/resources/Reporting/ReportRuns.js +15 -0
  272. package/esm/resources/Reporting/ReportTypes.js +14 -0
  273. package/esm/resources/Reviews.js +15 -0
  274. package/esm/resources/SetupAttempts.js +10 -0
  275. package/esm/resources/SetupIntents.js +31 -0
  276. package/esm/resources/ShippingRates.js +19 -0
  277. package/esm/resources/Sigma/ScheduledQueryRuns.js +14 -0
  278. package/esm/resources/Sources.js +17 -0
  279. package/esm/resources/SubscriptionItems.js +375 -0
  280. package/esm/resources/SubscriptionSchedules.js +104 -0
  281. package/esm/resources/Subscriptions.js +885 -0
  282. package/esm/resources/Tax/Associations.js +6 -0
  283. package/esm/resources/Tax/Calculations.js +15 -0
  284. package/esm/resources/Tax/Registrations.js +19 -0
  285. package/esm/resources/Tax/Settings.js +7 -0
  286. package/esm/resources/Tax/Transactions.js +22 -0
  287. package/esm/resources/TaxCodes.js +11 -0
  288. package/esm/resources/TaxIds.js +13 -0
  289. package/esm/resources/TaxRates.js +13 -0
  290. package/esm/resources/Terminal/Configurations.js +26 -0
  291. package/esm/resources/Terminal/ConnectionTokens.js +9 -0
  292. package/esm/resources/Terminal/Locations.js +23 -0
  293. package/esm/resources/Terminal/OnboardingLinks.js +9 -0
  294. package/esm/resources/Terminal/Readers.js +55 -0
  295. package/esm/resources/TestHelpers/ConfirmationTokens.js +9 -0
  296. package/esm/resources/TestHelpers/Customers.js +9 -0
  297. package/esm/resources/TestHelpers/Issuing/Authorizations.js +1290 -0
  298. package/esm/resources/TestHelpers/Issuing/Cards.js +25 -0
  299. package/esm/resources/TestHelpers/Issuing/PersonalizationDesigns.js +17 -0
  300. package/esm/resources/TestHelpers/Issuing/Transactions.js +361 -0
  301. package/esm/resources/TestHelpers/Refunds.js +9 -0
  302. package/esm/resources/TestHelpers/Terminal/Readers.js +17 -0
  303. package/esm/resources/TestHelpers/TestClocks.js +26 -0
  304. package/esm/resources/TestHelpers/Treasury/InboundTransfers.js +17 -0
  305. package/esm/resources/TestHelpers/Treasury/OutboundPayments.js +21 -0
  306. package/esm/resources/TestHelpers/Treasury/OutboundTransfers.js +21 -0
  307. package/esm/resources/TestHelpers/Treasury/ReceivedCredits.js +9 -0
  308. package/esm/resources/TestHelpers/Treasury/ReceivedDebits.js +9 -0
  309. package/esm/resources/Tokens.js +7 -0
  310. package/esm/resources/Topups.js +14 -0
  311. package/esm/resources/Transfers.js +30 -0
  312. package/esm/resources/Treasury/CreditReversals.js +18 -0
  313. package/esm/resources/Treasury/DebitReversals.js +18 -0
  314. package/esm/resources/Treasury/FinancialAccounts.js +34 -0
  315. package/esm/resources/Treasury/InboundTransfers.js +22 -0
  316. package/esm/resources/Treasury/OutboundPayments.js +22 -0
  317. package/esm/resources/Treasury/OutboundTransfers.js +22 -0
  318. package/esm/resources/Treasury/ReceivedCredits.js +14 -0
  319. package/esm/resources/Treasury/ReceivedDebits.js +14 -0
  320. package/esm/resources/Treasury/TransactionEntries.js +390 -0
  321. package/esm/resources/Treasury/Transactions.js +444 -0
  322. package/esm/resources/V2/Billing/MeterEventAdjustments.js +9 -0
  323. package/esm/resources/V2/Billing/MeterEventSession.js +9 -0
  324. package/esm/resources/V2/Billing/MeterEventStream.js +10 -0
  325. package/esm/resources/V2/Billing/MeterEvents.js +6 -0
  326. package/esm/resources/V2/Core/AccountLinks.js +6 -0
  327. package/esm/resources/V2/Core/AccountTokens.js +32 -0
  328. package/esm/resources/V2/Core/Accounts/PersonTokens.js +22 -0
  329. package/esm/resources/V2/Core/Accounts/Persons.js +88 -0
  330. package/esm/resources/V2/Core/Accounts.js +174 -0
  331. package/esm/resources/V2/Core/EventDestinations.js +38 -0
  332. package/esm/resources/V2/Core/Events.js +63 -0
  333. package/esm/resources/WebhookEndpoints.js +23 -0
  334. package/esm/resources.js +263 -0
  335. package/esm/stripe.core.js +408 -0
  336. package/esm/stripe.esm.node.js +5 -0
  337. package/esm/stripe.esm.worker.js +5 -0
  338. package/esm/utils.js +450 -0
  339. package/package.json +110 -0
  340. package/types/.eslintrc.js +22 -0
  341. package/types/AccountLinks.d.ts +33 -0
  342. package/types/AccountLinksResource.d.ts +78 -0
  343. package/types/AccountSessions.d.ts +578 -0
  344. package/types/AccountSessionsResource.d.ts +677 -0
  345. package/types/Accounts.d.ts +1736 -0
  346. package/types/AccountsResource.d.ts +5312 -0
  347. package/types/ApplePayDomains.d.ts +57 -0
  348. package/types/ApplePayDomainsResource.d.ts +77 -0
  349. package/types/ApplicationFees.d.ts +108 -0
  350. package/types/ApplicationFeesResource.d.ts +162 -0
  351. package/types/Applications.d.ts +55 -0
  352. package/types/Apps/Secrets.d.ts +80 -0
  353. package/types/Apps/SecretsResource.d.ts +186 -0
  354. package/types/Balance.d.ts +343 -0
  355. package/types/BalanceResource.d.ts +26 -0
  356. package/types/BalanceSettings.d.ts +103 -0
  357. package/types/BalanceSettingsResource.d.ts +124 -0
  358. package/types/BalanceTransactionSources.d.ts +23 -0
  359. package/types/BalanceTransactions.d.ts +176 -0
  360. package/types/BalanceTransactionsResource.d.ts +72 -0
  361. package/types/BankAccounts.d.ts +433 -0
  362. package/types/Billing/AlertTriggereds.d.ts +42 -0
  363. package/types/Billing/Alerts.d.ts +84 -0
  364. package/types/Billing/AlertsResource.d.ts +183 -0
  365. package/types/Billing/CreditBalanceSummary.d.ts +99 -0
  366. package/types/Billing/CreditBalanceSummaryResource.d.ts +83 -0
  367. package/types/Billing/CreditBalanceTransactions.d.ts +178 -0
  368. package/types/Billing/CreditBalanceTransactionsResource.d.ts +62 -0
  369. package/types/Billing/CreditGrants.d.ts +150 -0
  370. package/types/Billing/CreditGrantsResource.d.ts +248 -0
  371. package/types/Billing/MeterEventAdjustments.d.ts +53 -0
  372. package/types/Billing/MeterEventAdjustmentsResource.d.ts +48 -0
  373. package/types/Billing/MeterEventSummaries.d.ts +50 -0
  374. package/types/Billing/MeterEvents.d.ts +49 -0
  375. package/types/Billing/MeterEventsResource.d.ts +46 -0
  376. package/types/Billing/Meters.d.ts +110 -0
  377. package/types/Billing/MetersResource.d.ts +234 -0
  378. package/types/BillingPortal/Configurations.d.ts +319 -0
  379. package/types/BillingPortal/ConfigurationsResource.d.ts +679 -0
  380. package/types/BillingPortal/Sessions.d.ts +293 -0
  381. package/types/BillingPortal/SessionsResource.d.ts +273 -0
  382. package/types/Capabilities.d.ts +422 -0
  383. package/types/Cards.d.ts +225 -0
  384. package/types/CashBalances.d.ts +57 -0
  385. package/types/Charges.d.ts +2646 -0
  386. package/types/ChargesResource.d.ts +426 -0
  387. package/types/Checkout/Sessions.d.ts +2878 -0
  388. package/types/Checkout/SessionsResource.d.ts +4027 -0
  389. package/types/Climate/Orders.d.ts +197 -0
  390. package/types/Climate/OrdersResource.d.ts +159 -0
  391. package/types/Climate/Products.d.ts +81 -0
  392. package/types/Climate/ProductsResource.d.ts +45 -0
  393. package/types/Climate/Suppliers.d.ts +82 -0
  394. package/types/Climate/SuppliersResource.d.ts +45 -0
  395. package/types/ConfirmationTokens.d.ts +1755 -0
  396. package/types/ConfirmationTokensResource.d.ts +27 -0
  397. package/types/ConnectCollectionTransfers.d.ts +40 -0
  398. package/types/CountrySpecs.d.ts +88 -0
  399. package/types/CountrySpecsResource.d.ts +43 -0
  400. package/types/Coupons.d.ts +139 -0
  401. package/types/CouponsResource.d.ts +203 -0
  402. package/types/CreditNoteLineItems.d.ts +195 -0
  403. package/types/CreditNotes.d.ts +408 -0
  404. package/types/CreditNotesResource.d.ts +765 -0
  405. package/types/CustomerBalanceTransactions.d.ts +106 -0
  406. package/types/CustomerCashBalanceTransactions.d.ts +230 -0
  407. package/types/CustomerSessions.d.ts +283 -0
  408. package/types/CustomerSessionsResource.d.ts +263 -0
  409. package/types/CustomerSources.d.ts +9 -0
  410. package/types/Customers.d.ts +326 -0
  411. package/types/CustomersResource.d.ts +1554 -0
  412. package/types/Discounts.d.ts +175 -0
  413. package/types/Disputes.d.ts +519 -0
  414. package/types/DisputesResource.d.ts +384 -0
  415. package/types/Entitlements/ActiveEntitlementSummaries.d.ts +32 -0
  416. package/types/Entitlements/ActiveEntitlements.d.ts +37 -0
  417. package/types/Entitlements/ActiveEntitlementsResource.d.ts +49 -0
  418. package/types/Entitlements/Features.d.ts +48 -0
  419. package/types/Entitlements/FeaturesResource.d.ts +118 -0
  420. package/types/EphemeralKeys.d.ts +40 -0
  421. package/types/EphemeralKeysResource.d.ts +65 -0
  422. package/types/Errors.d.ts +356 -0
  423. package/types/EventTypes.d.ts +4443 -0
  424. package/types/Events.d.ts +373 -0
  425. package/types/EventsResource.d.ts +63 -0
  426. package/types/ExchangeRates.d.ts +54 -0
  427. package/types/ExchangeRatesResource.d.ts +49 -0
  428. package/types/ExternalAccounts.d.ts +9 -0
  429. package/types/FeeRefunds.d.ts +54 -0
  430. package/types/FileLinks.d.ts +57 -0
  431. package/types/FileLinksResource.d.ts +114 -0
  432. package/types/Files.d.ts +96 -0
  433. package/types/FilesResource.d.ts +146 -0
  434. package/types/FinancialConnections/AccountOwners.d.ts +52 -0
  435. package/types/FinancialConnections/AccountOwnerships.d.ts +32 -0
  436. package/types/FinancialConnections/Accounts.d.ts +325 -0
  437. package/types/FinancialConnections/AccountsResource.d.ts +184 -0
  438. package/types/FinancialConnections/Sessions.d.ts +113 -0
  439. package/types/FinancialConnections/SessionsResource.d.ts +128 -0
  440. package/types/FinancialConnections/Transactions.d.ts +85 -0
  441. package/types/FinancialConnections/TransactionsResource.d.ts +68 -0
  442. package/types/Forwarding/Requests.d.ts +165 -0
  443. package/types/Forwarding/RequestsResource.d.ts +127 -0
  444. package/types/FundingInstructions.d.ts +297 -0
  445. package/types/Identity/VerificationReports.d.ts +487 -0
  446. package/types/Identity/VerificationReportsResource.d.ts +71 -0
  447. package/types/Identity/VerificationSessions.d.ts +352 -0
  448. package/types/Identity/VerificationSessionsResource.d.ts +366 -0
  449. package/types/InvoiceItems.d.ts +240 -0
  450. package/types/InvoiceItemsResource.d.ts +424 -0
  451. package/types/InvoiceLineItems.d.ts +366 -0
  452. package/types/InvoicePayments.d.ts +111 -0
  453. package/types/InvoicePaymentsResource.d.ts +88 -0
  454. package/types/InvoiceRenderingTemplates.d.ts +55 -0
  455. package/types/InvoiceRenderingTemplatesResource.d.ts +93 -0
  456. package/types/Invoices.d.ts +1650 -0
  457. package/types/InvoicesResource.d.ts +4196 -0
  458. package/types/Issuing/Authorizations.d.ts +689 -0
  459. package/types/Issuing/AuthorizationsResource.d.ts +151 -0
  460. package/types/Issuing/Cardholders.d.ts +1184 -0
  461. package/types/Issuing/CardholdersResource.d.ts +2411 -0
  462. package/types/Issuing/Cards.d.ts +1312 -0
  463. package/types/Issuing/CardsResource.d.ts +2371 -0
  464. package/types/Issuing/Disputes.d.ts +383 -0
  465. package/types/Issuing/DisputesResource.d.ts +776 -0
  466. package/types/Issuing/PersonalizationDesigns.d.ts +142 -0
  467. package/types/Issuing/PersonalizationDesignsResource.d.ts +253 -0
  468. package/types/Issuing/PhysicalBundles.d.ts +75 -0
  469. package/types/Issuing/PhysicalBundlesResource.d.ts +63 -0
  470. package/types/Issuing/Tokens.d.ts +273 -0
  471. package/types/Issuing/TokensResource.d.ts +88 -0
  472. package/types/Issuing/Transactions.d.ts +479 -0
  473. package/types/Issuing/TransactionsResource.d.ts +92 -0
  474. package/types/LineItems.d.ts +145 -0
  475. package/types/LoginLinks.d.ts +26 -0
  476. package/types/Mandates.d.ts +373 -0
  477. package/types/MandatesResource.d.ts +27 -0
  478. package/types/OAuth.d.ts +355 -0
  479. package/types/PaymentAttemptRecords.d.ts +2438 -0
  480. package/types/PaymentAttemptRecordsResource.d.ts +57 -0
  481. package/types/PaymentIntentAmountDetailsLineItems.d.ts +126 -0
  482. package/types/PaymentIntents.d.ts +3162 -0
  483. package/types/PaymentIntentsResource.d.ts +11473 -0
  484. package/types/PaymentLinks.d.ts +1051 -0
  485. package/types/PaymentLinksResource.d.ts +2334 -0
  486. package/types/PaymentMethodConfigurations.d.ts +2045 -0
  487. package/types/PaymentMethodConfigurationsResource.d.ts +2958 -0
  488. package/types/PaymentMethodDomains.d.ts +213 -0
  489. package/types/PaymentMethodDomainsResource.d.ts +126 -0
  490. package/types/PaymentMethods.d.ts +1645 -0
  491. package/types/PaymentMethodsResource.d.ts +1223 -0
  492. package/types/PaymentRecords.d.ts +2438 -0
  493. package/types/PaymentRecordsResource.d.ts +657 -0
  494. package/types/Payouts.d.ts +177 -0
  495. package/types/PayoutsResource.d.ts +201 -0
  496. package/types/Persons.d.ts +824 -0
  497. package/types/Plans.d.ts +195 -0
  498. package/types/PlansResource.d.ts +303 -0
  499. package/types/Prices.d.ts +325 -0
  500. package/types/PricesResource.d.ts +607 -0
  501. package/types/ProductFeatures.d.ts +57 -0
  502. package/types/Products.d.ts +170 -0
  503. package/types/ProductsResource.d.ts +616 -0
  504. package/types/PromotionCodes.d.ts +125 -0
  505. package/types/PromotionCodesResource.d.ts +233 -0
  506. package/types/Quotes.d.ts +690 -0
  507. package/types/QuotesResource.d.ts +898 -0
  508. package/types/Radar/EarlyFraudWarnings.d.ts +55 -0
  509. package/types/Radar/EarlyFraudWarningsResource.d.ts +64 -0
  510. package/types/Radar/PaymentEvaluations.d.ts +580 -0
  511. package/types/Radar/PaymentEvaluationsResource.d.ts +208 -0
  512. package/types/Radar/ValueListItems.d.ts +74 -0
  513. package/types/Radar/ValueListItemsResource.d.ts +99 -0
  514. package/types/Radar/ValueLists.d.ts +104 -0
  515. package/types/Radar/ValueListsResource.d.ts +156 -0
  516. package/types/Refunds.d.ts +487 -0
  517. package/types/RefundsResource.d.ts +187 -0
  518. package/types/Reporting/ReportRuns.d.ts +115 -0
  519. package/types/Reporting/ReportRunsResource.d.ts +763 -0
  520. package/types/Reporting/ReportTypes.d.ts +64 -0
  521. package/types/Reporting/ReportTypesResource.d.ts +47 -0
  522. package/types/Reserve/Holds.d.ts +104 -0
  523. package/types/Reserve/Plans.d.ts +103 -0
  524. package/types/Reserve/Releases.d.ts +105 -0
  525. package/types/ReserveTransactions.d.ts +32 -0
  526. package/types/Reviews.d.ts +146 -0
  527. package/types/ReviewsResource.d.ts +68 -0
  528. package/types/SetupAttempts.d.ts +878 -0
  529. package/types/SetupAttemptsResource.d.ts +35 -0
  530. package/types/SetupIntents.d.ts +1105 -0
  531. package/types/SetupIntentsResource.d.ts +5251 -0
  532. package/types/ShippingRates.d.ts +155 -0
  533. package/types/ShippingRatesResource.d.ts +262 -0
  534. package/types/Sigma/ScheduledQueryRuns.d.ts +76 -0
  535. package/types/Sigma/ScheduledQueryRunsResource.d.ts +47 -0
  536. package/types/SourceMandateNotifications.d.ts +105 -0
  537. package/types/SourceTransactions.d.ts +203 -0
  538. package/types/Sources.d.ts +746 -0
  539. package/types/SourcesResource.d.ts +611 -0
  540. package/types/SubscriptionItems.d.ts +122 -0
  541. package/types/SubscriptionItemsResource.d.ts +441 -0
  542. package/types/SubscriptionSchedules.d.ts +687 -0
  543. package/types/SubscriptionSchedulesResource.d.ts +1565 -0
  544. package/types/Subscriptions.d.ts +852 -0
  545. package/types/SubscriptionsResource.d.ts +2326 -0
  546. package/types/Tax/Associations.d.ts +82 -0
  547. package/types/Tax/AssociationsResource.d.ts +29 -0
  548. package/types/Tax/CalculationLineItems.d.ts +187 -0
  549. package/types/Tax/Calculations.d.ts +511 -0
  550. package/types/Tax/CalculationsResource.d.ts +406 -0
  551. package/types/Tax/Registrations.d.ts +1710 -0
  552. package/types/Tax/RegistrationsResource.d.ts +2583 -0
  553. package/types/Tax/Settings.d.ts +86 -0
  554. package/types/Tax/SettingsResource.d.ts +77 -0
  555. package/types/Tax/TransactionLineItems.d.ts +90 -0
  556. package/types/Tax/Transactions.d.ts +418 -0
  557. package/types/Tax/TransactionsResource.d.ts +182 -0
  558. package/types/TaxCodes.d.ts +30 -0
  559. package/types/TaxCodesResource.d.ts +43 -0
  560. package/types/TaxDeductedAtSources.d.ts +35 -0
  561. package/types/TaxIds.d.ts +262 -0
  562. package/types/TaxIdsResource.d.ts +263 -0
  563. package/types/TaxRates.d.ts +144 -0
  564. package/types/TaxRatesResource.d.ts +215 -0
  565. package/types/Terminal/Configurations.d.ts +630 -0
  566. package/types/Terminal/ConfigurationsResource.d.ts +1469 -0
  567. package/types/Terminal/ConnectionTokens.d.ts +29 -0
  568. package/types/Terminal/ConnectionTokensResource.d.ts +32 -0
  569. package/types/Terminal/Locations.d.ts +166 -0
  570. package/types/Terminal/LocationsResource.d.ts +233 -0
  571. package/types/Terminal/OnboardingLinks.d.ts +57 -0
  572. package/types/Terminal/OnboardingLinksResource.d.ts +62 -0
  573. package/types/Terminal/Readers.d.ts +676 -0
  574. package/types/Terminal/ReadersResource.d.ts +665 -0
  575. package/types/TestHelpers/ConfirmationTokensResource.d.ts +936 -0
  576. package/types/TestHelpers/CustomersResource.d.ts +40 -0
  577. package/types/TestHelpers/Issuing/AuthorizationsResource.d.ts +1404 -0
  578. package/types/TestHelpers/Issuing/CardsResource.d.ts +121 -0
  579. package/types/TestHelpers/Issuing/PersonalizationDesignsResource.d.ts +113 -0
  580. package/types/TestHelpers/Issuing/TransactionsResource.d.ts +1354 -0
  581. package/types/TestHelpers/RefundsResource.d.ts +29 -0
  582. package/types/TestHelpers/Terminal/ReadersResource.d.ts +151 -0
  583. package/types/TestHelpers/TestClocks.d.ts +98 -0
  584. package/types/TestHelpers/TestClocksResource.d.ts +108 -0
  585. package/types/TestHelpers/Treasury/InboundTransfersResource.d.ts +108 -0
  586. package/types/TestHelpers/Treasury/OutboundPaymentsResource.d.ts +175 -0
  587. package/types/TestHelpers/Treasury/OutboundTransfersResource.d.ts +175 -0
  588. package/types/TestHelpers/Treasury/ReceivedCreditsResource.d.ts +93 -0
  589. package/types/TestHelpers/Treasury/ReceivedDebitsResource.d.ts +91 -0
  590. package/types/Tokens.d.ts +84 -0
  591. package/types/TokensResource.d.ts +1086 -0
  592. package/types/Topups.d.ts +103 -0
  593. package/types/TopupsResource.d.ts +158 -0
  594. package/types/TransferReversals.d.ts +72 -0
  595. package/types/Transfers.d.ts +104 -0
  596. package/types/TransfersResource.d.ts +260 -0
  597. package/types/Treasury/CreditReversals.d.ts +92 -0
  598. package/types/Treasury/CreditReversalsResource.d.ts +88 -0
  599. package/types/Treasury/DebitReversals.d.ts +104 -0
  600. package/types/Treasury/DebitReversalsResource.d.ts +95 -0
  601. package/types/Treasury/FinancialAccountFeatures.d.ts +623 -0
  602. package/types/Treasury/FinancialAccounts.d.ts +250 -0
  603. package/types/Treasury/FinancialAccountsResource.d.ts +733 -0
  604. package/types/Treasury/InboundTransfers.d.ts +235 -0
  605. package/types/Treasury/InboundTransfersResource.d.ts +128 -0
  606. package/types/Treasury/OutboundPayments.d.ts +324 -0
  607. package/types/Treasury/OutboundPaymentsResource.d.ts +285 -0
  608. package/types/Treasury/OutboundTransfers.d.ts +299 -0
  609. package/types/Treasury/OutboundTransfersResource.d.ts +179 -0
  610. package/types/Treasury/ReceivedCredits.d.ts +279 -0
  611. package/types/Treasury/ReceivedCreditsResource.d.ts +79 -0
  612. package/types/Treasury/ReceivedDebits.d.ts +227 -0
  613. package/types/Treasury/ReceivedDebitsResource.d.ts +58 -0
  614. package/types/Treasury/TransactionEntries.d.ts +203 -0
  615. package/types/Treasury/TransactionEntriesResource.d.ts +70 -0
  616. package/types/Treasury/Transactions.d.ts +202 -0
  617. package/types/Treasury/TransactionsResource.d.ts +82 -0
  618. package/types/UpcomingInvoices.d.ts +5 -0
  619. package/types/V2/Billing/MeterEventAdjustments.d.ts +65 -0
  620. package/types/V2/Billing/MeterEventAdjustmentsResource.d.ts +47 -0
  621. package/types/V2/Billing/MeterEventSessionResource.d.ts +26 -0
  622. package/types/V2/Billing/MeterEventSessions.d.ts +45 -0
  623. package/types/V2/Billing/MeterEventStreamResource.d.ts +62 -0
  624. package/types/V2/Billing/MeterEvents.d.ts +55 -0
  625. package/types/V2/Billing/MeterEventsResource.d.ts +52 -0
  626. package/types/V2/Core/AccountLinks.d.ts +160 -0
  627. package/types/V2/Core/AccountLinksResource.d.ts +145 -0
  628. package/types/V2/Core/AccountPersonTokens.d.ts +44 -0
  629. package/types/V2/Core/AccountPersons.d.ts +661 -0
  630. package/types/V2/Core/AccountTokens.d.ts +44 -0
  631. package/types/V2/Core/AccountTokensResource.d.ts +1149 -0
  632. package/types/V2/Core/Accounts/PersonTokensResource.d.ts +556 -0
  633. package/types/V2/Core/Accounts/PersonsResource.d.ts +1260 -0
  634. package/types/V2/Core/Accounts.d.ts +5422 -0
  635. package/types/V2/Core/AccountsResource.d.ts +5042 -0
  636. package/types/V2/Core/EventDestinations.d.ts +168 -0
  637. package/types/V2/Core/EventDestinationsResource.d.ts +278 -0
  638. package/types/V2/Core/EventTypes.d.ts +798 -0
  639. package/types/V2/Core/Events.d.ts +86 -0
  640. package/types/V2/Core/EventsResource.d.ts +63 -0
  641. package/types/V2/DeletedObject.d.ts +22 -0
  642. package/types/V2/EventMisc.d.ts +80 -0
  643. package/types/WebhookEndpoints.d.ts +101 -0
  644. package/types/WebhookEndpointsResource.d.ts +798 -0
  645. package/types/Webhooks.d.ts +164 -0
  646. package/types/apiVersion.d.ts +4 -0
  647. package/types/crypto/crypto.d.ts +59 -0
  648. package/types/index.d.ts +596 -0
  649. package/types/lib.d.ts +420 -0
  650. package/types/net/net.d.ts +99 -0
  651. package/types/shared.d.ts +178 -0
  652. package/types/test/.eslintrc.js +6 -0
  653. package/types/test/tsconfig.json +67 -0
  654. package/types/test/typescriptTest.ts +357 -0
@@ -0,0 +1,469 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RequestSender = void 0;
4
+ const Error_js_1 = require("./Error.js");
5
+ const HttpClient_js_1 = require("./net/HttpClient.js");
6
+ const utils_js_1 = require("./utils.js");
7
+ const MAX_RETRY_AFTER_WAIT = 60;
8
+ class RequestSender {
9
+ constructor(stripe, maxBufferedRequestMetric) {
10
+ this._stripe = stripe;
11
+ this._maxBufferedRequestMetric = maxBufferedRequestMetric;
12
+ }
13
+ _normalizeStripeContext(optsContext, clientContext) {
14
+ if (optsContext) {
15
+ return optsContext.toString() || null; // return null for empty strings
16
+ }
17
+ return clientContext?.toString() || null; // return null for empty strings
18
+ }
19
+ _addHeadersDirectlyToObject(obj, headers) {
20
+ // For convenience, make some headers easily accessible on
21
+ // lastResponse.
22
+ // NOTE: Stripe responds with lowercase header names/keys.
23
+ obj.requestId = headers['request-id'];
24
+ obj.stripeAccount = obj.stripeAccount || headers['stripe-account'];
25
+ obj.apiVersion = obj.apiVersion || headers['stripe-version'];
26
+ obj.idempotencyKey = obj.idempotencyKey || headers['idempotency-key'];
27
+ }
28
+ _makeResponseEvent(requestEvent, statusCode, headers) {
29
+ const requestEndTime = Date.now();
30
+ const requestDurationMs = requestEndTime - requestEvent.request_start_time;
31
+ return (0, utils_js_1.removeNullish)({
32
+ api_version: headers['stripe-version'],
33
+ account: headers['stripe-account'],
34
+ idempotency_key: headers['idempotency-key'],
35
+ method: requestEvent.method,
36
+ path: requestEvent.path,
37
+ status: statusCode,
38
+ request_id: this._getRequestId(headers),
39
+ elapsed: requestDurationMs,
40
+ request_start_time: requestEvent.request_start_time,
41
+ request_end_time: requestEndTime,
42
+ });
43
+ }
44
+ _getRequestId(headers) {
45
+ return headers['request-id'];
46
+ }
47
+ /**
48
+ * Used by methods with spec.streaming === true. For these methods, we do not
49
+ * buffer successful responses into memory or do parse them into stripe
50
+ * objects, we delegate that all of that to the user and pass back the raw
51
+ * http.Response object to the callback.
52
+ *
53
+ * (Unsuccessful responses shouldn't make it here, they should
54
+ * still be buffered/parsed and handled by _jsonResponseHandler -- see
55
+ * makeRequest)
56
+ */
57
+ _streamingResponseHandler(requestEvent, usage, callback) {
58
+ return (res) => {
59
+ const headers = res.getHeaders();
60
+ const streamCompleteCallback = () => {
61
+ const responseEvent = this._makeResponseEvent(requestEvent, res.getStatusCode(), headers);
62
+ this._stripe._emitter.emit('response', responseEvent);
63
+ this._recordRequestMetrics(this._getRequestId(headers), responseEvent.elapsed, usage);
64
+ };
65
+ const stream = res.toStream(streamCompleteCallback);
66
+ // This is here for backwards compatibility, as the stream is a raw
67
+ // HTTP response in Node and the legacy behavior was to mutate this
68
+ // response.
69
+ this._addHeadersDirectlyToObject(stream, headers);
70
+ return callback(null, stream);
71
+ };
72
+ }
73
+ /**
74
+ * Default handler for Stripe responses. Buffers the response into memory,
75
+ * parses the JSON and returns it (i.e. passes it to the callback) if there
76
+ * is no "error" field. Otherwise constructs/passes an appropriate Error.
77
+ */
78
+ _jsonResponseHandler(requestEvent, apiMode, usage, callback) {
79
+ return (res) => {
80
+ const headers = res.getHeaders();
81
+ const requestId = this._getRequestId(headers);
82
+ const statusCode = res.getStatusCode();
83
+ const responseEvent = this._makeResponseEvent(requestEvent, statusCode, headers);
84
+ this._stripe._emitter.emit('response', responseEvent);
85
+ res
86
+ .toJSON()
87
+ .then((jsonResponse) => {
88
+ if (jsonResponse.error) {
89
+ const isOAuth = typeof jsonResponse.error === 'string';
90
+ if (isOAuth) {
91
+ jsonResponse.error = {
92
+ type: jsonResponse.error,
93
+ message: jsonResponse.error_description,
94
+ };
95
+ }
96
+ jsonResponse.error.headers = headers;
97
+ jsonResponse.error.statusCode = statusCode;
98
+ jsonResponse.error.requestId = requestId;
99
+ let err;
100
+ if (isOAuth) {
101
+ err = (0, Error_js_1.generateOAuthError)(jsonResponse.error);
102
+ }
103
+ else if (apiMode === 'v2') {
104
+ err = (0, Error_js_1.generateV2Error)(jsonResponse.error);
105
+ }
106
+ else {
107
+ err = (0, Error_js_1.generateV1Error)(jsonResponse.error);
108
+ }
109
+ throw err;
110
+ }
111
+ return jsonResponse;
112
+ }, (e) => {
113
+ throw new Error_js_1.StripeAPIError({
114
+ message: 'Invalid JSON received from the Stripe API',
115
+ exception: e,
116
+ requestId: headers['request-id'],
117
+ });
118
+ })
119
+ .then((jsonResponse) => {
120
+ this._recordRequestMetrics(requestId, responseEvent.elapsed, usage);
121
+ // Expose raw response object.
122
+ const rawResponse = res.getRawResponse();
123
+ this._addHeadersDirectlyToObject(rawResponse, headers);
124
+ Object.defineProperty(jsonResponse, 'lastResponse', {
125
+ enumerable: false,
126
+ writable: false,
127
+ value: rawResponse,
128
+ });
129
+ callback(null, jsonResponse);
130
+ }, (e) => callback(e, null));
131
+ };
132
+ }
133
+ static _generateConnectionErrorMessage(requestRetries) {
134
+ return `An error occurred with our connection to Stripe.${requestRetries > 0 ? ` Request was retried ${requestRetries} times.` : ''}`;
135
+ }
136
+ // For more on when and how to retry API requests, see https://stripe.com/docs/error-handling#safely-retrying-requests-with-idempotency
137
+ static _shouldRetry(res, numRetries, maxRetries, error) {
138
+ if (error &&
139
+ numRetries === 0 &&
140
+ HttpClient_js_1.HttpClient.CONNECTION_CLOSED_ERROR_CODES.includes(error.code)) {
141
+ return true;
142
+ }
143
+ // Do not retry if we are out of retries.
144
+ if (numRetries >= maxRetries) {
145
+ return false;
146
+ }
147
+ // Retry on connection error.
148
+ if (!res) {
149
+ return true;
150
+ }
151
+ // The API may ask us not to retry (e.g., if doing so would be a no-op)
152
+ // or advise us to retry (e.g., in cases of lock timeouts); we defer to that.
153
+ if (res.getHeaders()['stripe-should-retry'] === 'false') {
154
+ return false;
155
+ }
156
+ if (res.getHeaders()['stripe-should-retry'] === 'true') {
157
+ return true;
158
+ }
159
+ // Retry on conflict errors.
160
+ if (res.getStatusCode() === 409) {
161
+ return true;
162
+ }
163
+ // Retry on 500, 503, and other internal errors.
164
+ //
165
+ // Note that we expect the stripe-should-retry header to be false
166
+ // in most cases when a 500 is returned, since our idempotency framework
167
+ // would typically replay it anyway.
168
+ if (res.getStatusCode() >= 500) {
169
+ return true;
170
+ }
171
+ return false;
172
+ }
173
+ _getSleepTimeInMS(numRetries, retryAfter = null) {
174
+ const initialNetworkRetryDelay = this._stripe.getInitialNetworkRetryDelay();
175
+ const maxNetworkRetryDelay = this._stripe.getMaxNetworkRetryDelay();
176
+ // Apply exponential backoff with initialNetworkRetryDelay on the
177
+ // number of numRetries so far as inputs. Do not allow the number to exceed
178
+ // maxNetworkRetryDelay.
179
+ let sleepSeconds = Math.min(initialNetworkRetryDelay * Math.pow(2, numRetries - 1), maxNetworkRetryDelay);
180
+ // Apply some jitter by randomizing the value in the range of
181
+ // (sleepSeconds / 2) to (sleepSeconds).
182
+ sleepSeconds *= 0.5 * (1 + Math.random());
183
+ // But never sleep less than the base sleep seconds.
184
+ sleepSeconds = Math.max(initialNetworkRetryDelay, sleepSeconds);
185
+ // And never sleep less than the time the API asks us to wait, assuming it's a reasonable ask.
186
+ if (Number.isInteger(retryAfter) && retryAfter <= MAX_RETRY_AFTER_WAIT) {
187
+ sleepSeconds = Math.max(sleepSeconds, retryAfter);
188
+ }
189
+ return sleepSeconds * 1000;
190
+ }
191
+ // Max retries can be set on a per request basis. Favor those over the global setting
192
+ _getMaxNetworkRetries(settings = {}) {
193
+ return settings.maxNetworkRetries !== undefined &&
194
+ Number.isInteger(settings.maxNetworkRetries)
195
+ ? settings.maxNetworkRetries
196
+ : this._stripe.getMaxNetworkRetries();
197
+ }
198
+ _defaultIdempotencyKey(method, settings, apiMode) {
199
+ // If this is a POST and we allow multiple retries, ensure an idempotency key.
200
+ const maxRetries = this._getMaxNetworkRetries(settings);
201
+ const genKey = () => `stripe-node-retry-${this._stripe._platformFunctions.uuid4()}`;
202
+ // more verbose than it needs to be, but gives clear separation between V1 and V2 behavior
203
+ if (apiMode === 'v2') {
204
+ if (method === 'POST' || method === 'DELETE') {
205
+ return genKey();
206
+ }
207
+ }
208
+ else if (apiMode === 'v1') {
209
+ if (method === 'POST' && maxRetries > 0) {
210
+ return genKey();
211
+ }
212
+ }
213
+ return null;
214
+ }
215
+ _makeHeaders({ contentType, contentLength, apiVersion, clientUserAgent, method, userSuppliedHeaders, userSuppliedSettings, stripeAccount, stripeContext, apiMode, }) {
216
+ const defaultHeaders = {
217
+ Accept: 'application/json',
218
+ 'Content-Type': contentType,
219
+ 'User-Agent': this._getUserAgentString(apiMode),
220
+ 'X-Stripe-Client-User-Agent': clientUserAgent,
221
+ 'X-Stripe-Client-Telemetry': this._getTelemetryHeader(),
222
+ 'Stripe-Version': apiVersion,
223
+ 'Stripe-Account': stripeAccount,
224
+ 'Stripe-Context': stripeContext,
225
+ 'Idempotency-Key': this._defaultIdempotencyKey(method, userSuppliedSettings, apiMode),
226
+ };
227
+ // As per https://datatracker.ietf.org/doc/html/rfc7230#section-3.3.2:
228
+ // A user agent SHOULD send a Content-Length in a request message when
229
+ // no Transfer-Encoding is sent and the request method defines a meaning
230
+ // for an enclosed payload body. For example, a Content-Length header
231
+ // field is normally sent in a POST request even when the value is 0
232
+ // (indicating an empty payload body). A user agent SHOULD NOT send a
233
+ // Content-Length header field when the request message does not contain
234
+ // a payload body and the method semantics do not anticipate such a
235
+ // body.
236
+ //
237
+ // These method types are expected to have bodies and so we should always
238
+ // include a Content-Length.
239
+ const methodHasPayload = method == 'POST' || method == 'PUT' || method == 'PATCH';
240
+ // If a content length was specified, we always include it regardless of
241
+ // whether the method semantics anticipate such a body. This keeps us
242
+ // consistent with historical behavior. We do however want to warn on this
243
+ // and fix these cases as they are semantically incorrect.
244
+ if (methodHasPayload || contentLength) {
245
+ if (!methodHasPayload) {
246
+ (0, utils_js_1.emitWarning)(`${method} method had non-zero contentLength but no payload is expected for this verb`);
247
+ }
248
+ defaultHeaders['Content-Length'] = contentLength;
249
+ }
250
+ return Object.assign((0, utils_js_1.removeNullish)(defaultHeaders),
251
+ // If the user supplied, say 'idempotency-key', override instead of appending by ensuring caps are the same.
252
+ (0, utils_js_1.normalizeHeaders)(userSuppliedHeaders));
253
+ }
254
+ _getUserAgentString(apiMode) {
255
+ const packageVersion = this._stripe.getConstant('PACKAGE_VERSION');
256
+ const appInfo = this._stripe._appInfo
257
+ ? this._stripe.getAppInfoAsString()
258
+ : '';
259
+ const aiAgent = this._stripe.getConstant('AI_AGENT');
260
+ let uaString = `Stripe/${apiMode} NodeBindings/${packageVersion}`;
261
+ if (appInfo) {
262
+ uaString += ` ${appInfo}`;
263
+ }
264
+ if (aiAgent) {
265
+ uaString += ` AIAgent/${aiAgent}`;
266
+ }
267
+ return uaString;
268
+ }
269
+ _getTelemetryHeader() {
270
+ if (this._stripe.getTelemetryEnabled() &&
271
+ this._stripe._prevRequestMetrics.length > 0) {
272
+ const metrics = this._stripe._prevRequestMetrics.shift();
273
+ return JSON.stringify({
274
+ last_request_metrics: metrics,
275
+ });
276
+ }
277
+ }
278
+ _recordRequestMetrics(requestId, requestDurationMs, usage) {
279
+ if (this._stripe.getTelemetryEnabled() && requestId) {
280
+ if (this._stripe._prevRequestMetrics.length > this._maxBufferedRequestMetric) {
281
+ (0, utils_js_1.emitWarning)('Request metrics buffer is full, dropping telemetry message.');
282
+ }
283
+ else {
284
+ const m = {
285
+ request_id: requestId,
286
+ request_duration_ms: requestDurationMs,
287
+ };
288
+ if (usage && usage.length > 0) {
289
+ m.usage = usage;
290
+ }
291
+ this._stripe._prevRequestMetrics.push(m);
292
+ }
293
+ }
294
+ }
295
+ _rawRequest(method, path, params, options, usage) {
296
+ const requestPromise = new Promise((resolve, reject) => {
297
+ let opts;
298
+ try {
299
+ const requestMethod = method.toUpperCase();
300
+ if (requestMethod !== 'POST' &&
301
+ params &&
302
+ Object.keys(params).length !== 0) {
303
+ throw new Error('rawRequest only supports params on POST requests. Please pass null and add your parameters to path.');
304
+ }
305
+ const args = [].slice.call([params, options]);
306
+ // Pull request data and options (headers, auth) from args.
307
+ const dataFromArgs = (0, utils_js_1.getDataFromArgs)(args);
308
+ const data = requestMethod === 'POST' ? Object.assign({}, dataFromArgs) : null;
309
+ const calculatedOptions = (0, utils_js_1.getOptionsFromArgs)(args);
310
+ const headers = calculatedOptions.headers;
311
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
312
+ const authenticator = calculatedOptions.authenticator;
313
+ opts = {
314
+ requestMethod,
315
+ requestPath: path,
316
+ bodyData: data,
317
+ queryData: {},
318
+ authenticator,
319
+ headers,
320
+ host: calculatedOptions.host,
321
+ streaming: !!calculatedOptions.streaming,
322
+ settings: {},
323
+ // We use this for thin event internals, so we should record the more specific `usage`, when available
324
+ usage: usage || ['raw_request'],
325
+ };
326
+ }
327
+ catch (err) {
328
+ reject(err);
329
+ return;
330
+ }
331
+ function requestCallback(err, response) {
332
+ if (err) {
333
+ reject(err);
334
+ }
335
+ else {
336
+ resolve(response);
337
+ }
338
+ }
339
+ const { headers, settings } = opts;
340
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
341
+ const authenticator = opts.authenticator;
342
+ this._request(opts.requestMethod, opts.host, path, opts.bodyData, authenticator, { headers, settings, streaming: opts.streaming }, opts.usage, requestCallback);
343
+ });
344
+ return requestPromise;
345
+ }
346
+ _getContentLength(data) {
347
+ // if we calculate this wrong, the server treats it as invalid json
348
+ // or if content length is too big, the request never finishes and it
349
+ // times out.
350
+ return typeof data === 'string'
351
+ ? new TextEncoder().encode(data).length
352
+ : data.length;
353
+ }
354
+ _request(method, host, path, data, authenticator, options, usage = [], callback, requestDataProcessor = null) {
355
+ let requestData;
356
+ authenticator = authenticator ?? this._stripe._authenticator ?? null;
357
+ const apiMode = (0, utils_js_1.getAPIMode)(path);
358
+ const retryRequest = (requestFn, apiVersion, headers, requestRetries, retryAfter) => {
359
+ return setTimeout(requestFn, this._getSleepTimeInMS(requestRetries, retryAfter), apiVersion, headers, requestRetries + 1);
360
+ };
361
+ const makeRequest = (apiVersion, headers, numRetries) => {
362
+ // timeout can be set on a per-request basis. Favor that over the global setting
363
+ const timeout = options.settings &&
364
+ options.settings.timeout &&
365
+ Number.isInteger(options.settings.timeout) &&
366
+ options.settings.timeout >= 0
367
+ ? options.settings.timeout
368
+ : this._stripe.getApiField('timeout');
369
+ const request = {
370
+ host: host || this._stripe.getApiField('host'),
371
+ port: this._stripe.getApiField('port'),
372
+ path: path,
373
+ method: method,
374
+ headers: Object.assign({}, headers),
375
+ body: requestData,
376
+ protocol: this._stripe.getApiField('protocol'),
377
+ };
378
+ authenticator(request)
379
+ .then(() => {
380
+ const req = this._stripe
381
+ .getApiField('httpClient')
382
+ .makeRequest(request.host, request.port, request.path, request.method, request.headers, request.body, request.protocol, timeout);
383
+ const requestStartTime = Date.now();
384
+ const requestEvent = (0, utils_js_1.removeNullish)({
385
+ api_version: apiVersion,
386
+ account: (0, utils_js_1.parseHttpHeaderAsString)(headers['Stripe-Account']),
387
+ idempotency_key: (0, utils_js_1.parseHttpHeaderAsString)(headers['Idempotency-Key']),
388
+ method,
389
+ path,
390
+ request_start_time: requestStartTime,
391
+ });
392
+ const requestRetries = numRetries || 0;
393
+ const maxRetries = this._getMaxNetworkRetries(options.settings || {});
394
+ this._stripe._emitter.emit('request', requestEvent);
395
+ req
396
+ .then((res) => {
397
+ if (RequestSender._shouldRetry(res, requestRetries, maxRetries)) {
398
+ return retryRequest(makeRequest, apiVersion, headers, requestRetries, (0, utils_js_1.parseHttpHeaderAsNumber)(res.getHeaders()['retry-after']));
399
+ }
400
+ else if (options.streaming && res.getStatusCode() < 400) {
401
+ return this._streamingResponseHandler(requestEvent, usage, callback)(res);
402
+ }
403
+ else {
404
+ return this._jsonResponseHandler(requestEvent, apiMode, usage, callback)(res);
405
+ }
406
+ })
407
+ .catch((error) => {
408
+ if (RequestSender._shouldRetry(null, requestRetries, maxRetries, error)) {
409
+ return retryRequest(makeRequest, apiVersion, headers, requestRetries, null);
410
+ }
411
+ else {
412
+ const isTimeoutError = error.code && error.code === HttpClient_js_1.HttpClient.TIMEOUT_ERROR_CODE;
413
+ return callback(new Error_js_1.StripeConnectionError({
414
+ message: isTimeoutError
415
+ ? `Request aborted due to timeout being reached (${timeout}ms)`
416
+ : RequestSender._generateConnectionErrorMessage(requestRetries),
417
+ detail: error,
418
+ }));
419
+ }
420
+ });
421
+ })
422
+ .catch((e) => {
423
+ throw new Error_js_1.StripeError({
424
+ message: 'Unable to authenticate the request',
425
+ exception: e,
426
+ });
427
+ });
428
+ };
429
+ const prepareAndMakeRequest = (error, data) => {
430
+ if (error) {
431
+ return callback(error);
432
+ }
433
+ requestData = data;
434
+ this._stripe.getClientUserAgent((clientUserAgent) => {
435
+ const apiVersion = this._stripe.getApiField('version');
436
+ const headers = this._makeHeaders({
437
+ contentType: apiMode == 'v2'
438
+ ? 'application/json'
439
+ : 'application/x-www-form-urlencoded',
440
+ contentLength: this._getContentLength(data),
441
+ apiVersion: apiVersion,
442
+ clientUserAgent,
443
+ method,
444
+ // other callers expect null, but .headers being optional means it's undefined if not supplied. So we normalize to null.
445
+ userSuppliedHeaders: options.headers ?? null,
446
+ userSuppliedSettings: options.settings ?? {},
447
+ stripeAccount: options.stripeAccount ?? this._stripe.getApiField('stripeAccount'),
448
+ stripeContext: this._normalizeStripeContext(options.stripeContext, this._stripe.getApiField('stripeContext')),
449
+ apiMode: apiMode,
450
+ });
451
+ makeRequest(apiVersion, headers, 0);
452
+ });
453
+ };
454
+ if (requestDataProcessor) {
455
+ requestDataProcessor(method, data, options.headers, prepareAndMakeRequest);
456
+ }
457
+ else {
458
+ let stringifiedData;
459
+ if (apiMode == 'v2') {
460
+ stringifiedData = data ? (0, utils_js_1.jsonStringifyRequestData)(data) : '';
461
+ }
462
+ else {
463
+ stringifiedData = (0, utils_js_1.queryStringifyRequestData)(data || {});
464
+ }
465
+ prepareAndMakeRequest(null, stringifiedData);
466
+ }
467
+ }
468
+ }
469
+ exports.RequestSender = RequestSender;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ // ResourceNamespace allows you to create nested resources, i.e. `stripe.issuing.cards`.
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.resourceNamespace = void 0;
5
+ // It also works recursively, so you could do i.e. `stripe.billing.invoicing.pay`.
6
+ function ResourceNamespace(stripe, resources) {
7
+ for (const name in resources) {
8
+ if (!Object.prototype.hasOwnProperty.call(resources, name)) {
9
+ continue;
10
+ }
11
+ const camelCaseName = name[0].toLowerCase() + name.substring(1);
12
+ const resource = new resources[name](stripe);
13
+ this[camelCaseName] = resource;
14
+ }
15
+ }
16
+ function resourceNamespace(namespace, resources) {
17
+ return function (stripe) {
18
+ return new ResourceNamespace(stripe, resources);
19
+ };
20
+ }
21
+ exports.resourceNamespace = resourceNamespace;
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StripeContext = void 0;
4
+ /**
5
+ * The StripeContext class provides an immutable container and convenience methods for interacting with the `Stripe-Context` header. All methods return a new instance of StripeContext.
6
+ * You can use it whenever you're initializing a `Stripe` instance or sending `stripeContext` with a request. It's also found in the `EventNotification.context` property.
7
+ */
8
+ class StripeContext {
9
+ /**
10
+ * Creates a new StripeContext with the given segments.
11
+ */
12
+ constructor(segments = []) {
13
+ this._segments = [...segments];
14
+ }
15
+ /**
16
+ * Gets a copy of the segments of this Context.
17
+ */
18
+ get segments() {
19
+ return [...this._segments];
20
+ }
21
+ /**
22
+ * Creates a new StripeContext with an additional segment appended.
23
+ */
24
+ push(segment) {
25
+ if (!segment) {
26
+ throw new Error('Segment cannot be null or undefined');
27
+ }
28
+ return new StripeContext([...this._segments, segment]);
29
+ }
30
+ /**
31
+ * Creates a new StripeContext with the last segment removed.
32
+ * If there are no segments, throws an error.
33
+ */
34
+ pop() {
35
+ if (this._segments.length === 0) {
36
+ throw new Error('Cannot pop from an empty context');
37
+ }
38
+ return new StripeContext(this._segments.slice(0, -1));
39
+ }
40
+ /**
41
+ * Converts this context to its string representation.
42
+ */
43
+ toString() {
44
+ return this._segments.join('/');
45
+ }
46
+ /**
47
+ * Parses a context string into a StripeContext instance.
48
+ */
49
+ static parse(contextStr) {
50
+ if (!contextStr) {
51
+ return new StripeContext([]);
52
+ }
53
+ return new StripeContext(contextStr.split('/'));
54
+ }
55
+ }
56
+ exports.StripeContext = StripeContext;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StripeEmitter = void 0;
4
+ /**
5
+ * @private
6
+ * (For internal use in stripe-node.)
7
+ * Wrapper around the Event Web API.
8
+ */
9
+ class _StripeEvent extends Event {
10
+ constructor(eventName, data) {
11
+ super(eventName);
12
+ this.data = data;
13
+ }
14
+ }
15
+ /** Minimal EventEmitter wrapper around EventTarget. */
16
+ class StripeEmitter {
17
+ constructor() {
18
+ this.eventTarget = new EventTarget();
19
+ this.listenerMapping = new Map();
20
+ }
21
+ on(eventName, listener) {
22
+ const listenerWrapper = (event) => {
23
+ listener(event.data);
24
+ };
25
+ this.listenerMapping.set(listener, listenerWrapper);
26
+ return this.eventTarget.addEventListener(eventName, listenerWrapper);
27
+ }
28
+ removeListener(eventName, listener) {
29
+ const listenerWrapper = this.listenerMapping.get(listener);
30
+ this.listenerMapping.delete(listener);
31
+ return this.eventTarget.removeEventListener(eventName, listenerWrapper);
32
+ }
33
+ once(eventName, listener) {
34
+ const listenerWrapper = (event) => {
35
+ listener(event.data);
36
+ };
37
+ this.listenerMapping.set(listener, listenerWrapper);
38
+ return this.eventTarget.addEventListener(eventName, listenerWrapper, {
39
+ once: true,
40
+ });
41
+ }
42
+ emit(eventName, data) {
43
+ return this.eventTarget.dispatchEvent(new _StripeEvent(eventName, data));
44
+ }
45
+ }
46
+ exports.StripeEmitter = StripeEmitter;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.stripeMethod = void 0;
4
+ const utils_js_1 = require("./utils.js");
5
+ const autoPagination_js_1 = require("./autoPagination.js");
6
+ /**
7
+ * Create an API method from the declared spec.
8
+ *
9
+ * @param [spec.method='GET'] Request Method (POST, GET, DELETE, PUT)
10
+ * @param [spec.path=''] Path to be appended to the API BASE_PATH, joined with
11
+ * the instance's path (e.g. 'charges' or 'customers')
12
+ * @param [spec.fullPath=''] Fully qualified path to the method (eg. /v1/a/b/c).
13
+ * If this is specified, path should not be specified.
14
+ * @param [spec.urlParams=[]] Array of required arguments in the order that they
15
+ * must be passed by the consumer of the API. Subsequent optional arguments are
16
+ * optionally passed through a hash (Object) as the penultimate argument
17
+ * (preceding the also-optional callback argument
18
+ * @param [spec.encode] Function for mutating input parameters to a method.
19
+ * Usefully for applying transforms to data on a per-method basis.
20
+ * @param [spec.host] Hostname for the request.
21
+ *
22
+ * <!-- Public API accessible via Stripe.StripeResource.method -->
23
+ */
24
+ function stripeMethod(spec) {
25
+ if (spec.path !== undefined && spec.fullPath !== undefined) {
26
+ throw new Error(`Method spec specified both a 'path' (${spec.path}) and a 'fullPath' (${spec.fullPath}).`);
27
+ }
28
+ return function (...args) {
29
+ const callback = typeof args[args.length - 1] == 'function' && args.pop();
30
+ spec.urlParams = (0, utils_js_1.extractUrlParams)(spec.fullPath || this.createResourcePathWithSymbols(spec.path || ''));
31
+ const requestPromise = (0, utils_js_1.callbackifyPromiseWithTimeout)(this._makeRequest(args, spec, {}), callback);
32
+ Object.assign(requestPromise, (0, autoPagination_js_1.makeAutoPaginationMethods)(this, args, spec, requestPromise));
33
+ return requestPromise;
34
+ };
35
+ }
36
+ exports.stripeMethod = stripeMethod;