@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,294 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeAutoPaginationMethods = void 0;
4
+ const utils_js_1 = require("./utils.js");
5
+ class V1Iterator {
6
+ constructor(firstPagePromise, requestArgs, spec, stripeResource) {
7
+ this.index = 0;
8
+ this.pagePromise = firstPagePromise;
9
+ this.promiseCache = { currentPromise: null };
10
+ this.requestArgs = requestArgs;
11
+ this.spec = spec;
12
+ this.stripeResource = stripeResource;
13
+ }
14
+ async iterate(pageResult) {
15
+ if (!(pageResult &&
16
+ pageResult.data &&
17
+ typeof pageResult.data.length === 'number')) {
18
+ throw Error('Unexpected: Stripe API response does not have a well-formed `data` array.');
19
+ }
20
+ const reverseIteration = isReverseIteration(this.requestArgs);
21
+ if (this.index < pageResult.data.length) {
22
+ const idx = reverseIteration
23
+ ? pageResult.data.length - 1 - this.index
24
+ : this.index;
25
+ const value = pageResult.data[idx];
26
+ this.index += 1;
27
+ return { value, done: false };
28
+ }
29
+ else if (pageResult.has_more) {
30
+ // Reset counter, request next page, and recurse.
31
+ this.index = 0;
32
+ this.pagePromise = this.getNextPage(pageResult);
33
+ const nextPageResult = await this.pagePromise;
34
+ return this.iterate(nextPageResult);
35
+ }
36
+ return { done: true, value: undefined };
37
+ }
38
+ /** @abstract */
39
+ getNextPage(_pageResult) {
40
+ throw new Error('Unimplemented');
41
+ }
42
+ async _next() {
43
+ return this.iterate(await this.pagePromise);
44
+ }
45
+ next() {
46
+ /**
47
+ * If a user calls `.next()` multiple times in parallel,
48
+ * return the same result until something has resolved
49
+ * to prevent page-turning race conditions.
50
+ */
51
+ if (this.promiseCache.currentPromise) {
52
+ return this.promiseCache.currentPromise;
53
+ }
54
+ const nextPromise = (async () => {
55
+ const ret = await this._next();
56
+ this.promiseCache.currentPromise = null;
57
+ return ret;
58
+ })();
59
+ this.promiseCache.currentPromise = nextPromise;
60
+ return nextPromise;
61
+ }
62
+ }
63
+ class V1ListIterator extends V1Iterator {
64
+ getNextPage(pageResult) {
65
+ const reverseIteration = isReverseIteration(this.requestArgs);
66
+ const lastId = getLastId(pageResult, reverseIteration);
67
+ return this.stripeResource._makeRequest(this.requestArgs, this.spec, {
68
+ [reverseIteration ? 'ending_before' : 'starting_after']: lastId,
69
+ });
70
+ }
71
+ }
72
+ class V1SearchIterator extends V1Iterator {
73
+ getNextPage(pageResult) {
74
+ if (!pageResult.next_page) {
75
+ throw Error('Unexpected: Stripe API response does not have a well-formed `next_page` field, but `has_more` was true.');
76
+ }
77
+ return this.stripeResource._makeRequest(this.requestArgs, this.spec, {
78
+ page: pageResult.next_page,
79
+ });
80
+ }
81
+ }
82
+ class V2ListIterator {
83
+ constructor(firstPagePromise, requestArgs, spec, stripeResource) {
84
+ this.firstPagePromise = firstPagePromise;
85
+ this.currentPageIterator = null;
86
+ this.nextPageUrl = null;
87
+ this.requestArgs = requestArgs;
88
+ this.spec = spec;
89
+ this.stripeResource = stripeResource;
90
+ }
91
+ async initFirstPage() {
92
+ if (this.firstPagePromise) {
93
+ const page = await this.firstPagePromise;
94
+ this.firstPagePromise = null;
95
+ this.currentPageIterator = page.data[Symbol.iterator]();
96
+ this.nextPageUrl = page.next_page_url || null;
97
+ }
98
+ }
99
+ async turnPage() {
100
+ if (!this.nextPageUrl)
101
+ return null;
102
+ this.spec.fullPath = this.nextPageUrl;
103
+ const page = await this.stripeResource._makeRequest([], this.spec, {});
104
+ this.nextPageUrl = page.next_page_url || null;
105
+ this.currentPageIterator = page.data[Symbol.iterator]();
106
+ return this.currentPageIterator;
107
+ }
108
+ async next() {
109
+ await this.initFirstPage();
110
+ if (this.currentPageIterator) {
111
+ const result = this.currentPageIterator.next();
112
+ if (!result.done)
113
+ return { done: false, value: result.value };
114
+ }
115
+ const nextPageIterator = await this.turnPage();
116
+ if (!nextPageIterator) {
117
+ return { done: true, value: undefined };
118
+ }
119
+ const result = nextPageIterator.next();
120
+ if (!result.done)
121
+ return { done: false, value: result.value };
122
+ return { done: true, value: undefined };
123
+ }
124
+ }
125
+ const makeAutoPaginationMethods = (stripeResource, requestArgs, spec, firstPagePromise) => {
126
+ const apiMode = (0, utils_js_1.getAPIMode)(spec.fullPath || spec.path);
127
+ if (apiMode !== 'v2' && spec.methodType === 'search') {
128
+ return makeAutoPaginationMethodsFromIterator(new V1SearchIterator(firstPagePromise, requestArgs, spec, stripeResource));
129
+ }
130
+ if (apiMode !== 'v2' && spec.methodType === 'list') {
131
+ return makeAutoPaginationMethodsFromIterator(new V1ListIterator(firstPagePromise, requestArgs, spec, stripeResource));
132
+ }
133
+ if (apiMode === 'v2' && spec.methodType === 'list') {
134
+ return makeAutoPaginationMethodsFromIterator(new V2ListIterator(firstPagePromise, requestArgs, spec, stripeResource));
135
+ }
136
+ return null;
137
+ };
138
+ exports.makeAutoPaginationMethods = makeAutoPaginationMethods;
139
+ const makeAutoPaginationMethodsFromIterator = (iterator) => {
140
+ const autoPagingEach = makeAutoPagingEach((...args) => iterator.next(...args));
141
+ const autoPagingToArray = makeAutoPagingToArray(autoPagingEach);
142
+ const autoPaginationMethods = {
143
+ autoPagingEach,
144
+ autoPagingToArray,
145
+ // Async iterator functions:
146
+ next: () => iterator.next(),
147
+ return: () => {
148
+ // This is required for `break`.
149
+ return {};
150
+ },
151
+ [getAsyncIteratorSymbol()]: () => {
152
+ return autoPaginationMethods;
153
+ },
154
+ };
155
+ return autoPaginationMethods;
156
+ };
157
+ /**
158
+ * ----------------
159
+ * Private Helpers:
160
+ * ----------------
161
+ */
162
+ function getAsyncIteratorSymbol() {
163
+ if (typeof Symbol !== 'undefined' && Symbol.asyncIterator) {
164
+ return Symbol.asyncIterator;
165
+ }
166
+ // Follow the convention from libraries like iterall: https://github.com/leebyron/iterall#asynciterator-1
167
+ return '@@asyncIterator';
168
+ }
169
+ function getDoneCallback(args) {
170
+ if (args.length < 2) {
171
+ return null;
172
+ }
173
+ const onDone = args[1];
174
+ if (typeof onDone !== 'function') {
175
+ throw Error(`The second argument to autoPagingEach, if present, must be a callback function; received ${typeof onDone}`);
176
+ }
177
+ return onDone;
178
+ }
179
+ /**
180
+ * We allow four forms of the `onItem` callback (the middle two being equivalent),
181
+ *
182
+ * 1. `.autoPagingEach((item) => { doSomething(item); return false; });`
183
+ * 2. `.autoPagingEach(async (item) => { await doSomething(item); return false; });`
184
+ * 3. `.autoPagingEach((item) => doSomething(item).then(() => false));`
185
+ * 4. `.autoPagingEach((item, next) => { doSomething(item); next(false); });`
186
+ *
187
+ * In addition to standard validation, this helper
188
+ * coalesces the former forms into the latter form.
189
+ */
190
+ function getItemCallback(args) {
191
+ if (args.length === 0) {
192
+ return undefined;
193
+ }
194
+ const onItem = args[0];
195
+ if (typeof onItem !== 'function') {
196
+ throw Error(`The first argument to autoPagingEach, if present, must be a callback function; received ${typeof onItem}`);
197
+ }
198
+ // 4. `.autoPagingEach((item, next) => { doSomething(item); next(false); });`
199
+ if (onItem.length === 2) {
200
+ return onItem;
201
+ }
202
+ if (onItem.length > 2) {
203
+ throw Error(`The \`onItem\` callback function passed to autoPagingEach must accept at most two arguments; got ${onItem}`);
204
+ }
205
+ // This magically handles all three of these usecases (the latter two being functionally identical):
206
+ // 1. `.autoPagingEach((item) => { doSomething(item); return false; });`
207
+ // 2. `.autoPagingEach(async (item) => { await doSomething(item); return false; });`
208
+ // 3. `.autoPagingEach((item) => doSomething(item).then(() => false));`
209
+ return function _onItem(item, next) {
210
+ const shouldContinue = onItem(item);
211
+ next(shouldContinue);
212
+ };
213
+ }
214
+ function getLastId(listResult, reverseIteration) {
215
+ const lastIdx = reverseIteration ? 0 : listResult.data.length - 1;
216
+ const lastItem = listResult.data[lastIdx];
217
+ const lastId = lastItem && lastItem.id;
218
+ if (!lastId) {
219
+ throw Error('Unexpected: No `id` found on the last item while auto-paging a list.');
220
+ }
221
+ return lastId;
222
+ }
223
+ function makeAutoPagingEach(asyncIteratorNext) {
224
+ return function autoPagingEach( /* onItem?, onDone? */) {
225
+ const args = [].slice.call(arguments);
226
+ const onItem = getItemCallback(args);
227
+ const onDone = getDoneCallback(args);
228
+ if (args.length > 2) {
229
+ throw Error(`autoPagingEach takes up to two arguments; received ${args}`);
230
+ }
231
+ const autoPagePromise = wrapAsyncIteratorWithCallback(asyncIteratorNext,
232
+ // @ts-ignore we might need a null check
233
+ onItem);
234
+ return (0, utils_js_1.callbackifyPromiseWithTimeout)(autoPagePromise, onDone);
235
+ };
236
+ }
237
+ function makeAutoPagingToArray(autoPagingEach) {
238
+ return function autoPagingToArray(opts, onDone) {
239
+ const limit = opts && opts.limit;
240
+ if (!limit) {
241
+ throw Error('You must pass a `limit` option to autoPagingToArray, e.g., `autoPagingToArray({limit: 1000});`.');
242
+ }
243
+ if (limit > 10000) {
244
+ throw Error('You cannot specify a limit of more than 10,000 items to fetch in `autoPagingToArray`; use `autoPagingEach` to iterate through longer lists.');
245
+ }
246
+ const promise = new Promise((resolve, reject) => {
247
+ const items = [];
248
+ autoPagingEach((item) => {
249
+ items.push(item);
250
+ if (items.length >= limit) {
251
+ return false;
252
+ }
253
+ })
254
+ .then(() => {
255
+ resolve(items);
256
+ })
257
+ .catch(reject);
258
+ });
259
+ // @ts-ignore
260
+ return (0, utils_js_1.callbackifyPromiseWithTimeout)(promise, onDone);
261
+ };
262
+ }
263
+ function wrapAsyncIteratorWithCallback(asyncIteratorNext, onItem) {
264
+ return new Promise((resolve, reject) => {
265
+ function handleIteration(iterResult) {
266
+ if (iterResult.done) {
267
+ resolve();
268
+ return;
269
+ }
270
+ const item = iterResult.value;
271
+ return new Promise((next) => {
272
+ // Bit confusing, perhaps; we pass a `resolve` fn
273
+ // to the user, so they can decide when and if to continue.
274
+ // They can return false, or a promise which resolves to false, to break.
275
+ onItem(item, next);
276
+ }).then((shouldContinue) => {
277
+ if (shouldContinue === false) {
278
+ return handleIteration({ done: true, value: undefined });
279
+ }
280
+ else {
281
+ return asyncIteratorNext().then(handleIteration);
282
+ }
283
+ });
284
+ }
285
+ asyncIteratorNext()
286
+ .then(handleIteration)
287
+ .catch(reject);
288
+ });
289
+ }
290
+ function isReverseIteration(requestArgs) {
291
+ const args = [].slice.call(requestArgs);
292
+ const dataFromArgs = (0, utils_js_1.getDataFromArgs)(args);
293
+ return !!dataFromArgs.ending_before;
294
+ }
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CryptoProviderOnlySupportsAsyncError = exports.CryptoProvider = void 0;
4
+ /**
5
+ * Interface encapsulating the various crypto computations used by the library,
6
+ * allowing pluggable underlying crypto implementations.
7
+ */
8
+ class CryptoProvider {
9
+ /**
10
+ * Computes a SHA-256 HMAC given a secret and a payload (encoded in UTF-8).
11
+ * The output HMAC should be encoded in hexadecimal.
12
+ *
13
+ * Sample values for implementations:
14
+ * - computeHMACSignature('', 'test_secret') => 'f7f9bd47fb987337b5796fdc1fdb9ba221d0d5396814bfcaf9521f43fd8927fd'
15
+ * - computeHMACSignature('\ud83d\ude00', 'test_secret') => '837da296d05c4fe31f61d5d7ead035099d9585a5bcde87de952012a78f0b0c43
16
+ */
17
+ computeHMACSignature(payload, secret) {
18
+ throw new Error('computeHMACSignature not implemented.');
19
+ }
20
+ /**
21
+ * Asynchronous version of `computeHMACSignature`. Some implementations may
22
+ * only allow support async signature computation.
23
+ *
24
+ * Computes a SHA-256 HMAC given a secret and a payload (encoded in UTF-8).
25
+ * The output HMAC should be encoded in hexadecimal.
26
+ *
27
+ * Sample values for implementations:
28
+ * - computeHMACSignature('', 'test_secret') => 'f7f9bd47fb987337b5796fdc1fdb9ba221d0d5396814bfcaf9521f43fd8927fd'
29
+ * - computeHMACSignature('\ud83d\ude00', 'test_secret') => '837da296d05c4fe31f61d5d7ead035099d9585a5bcde87de952012a78f0b0c43
30
+ */
31
+ computeHMACSignatureAsync(payload, secret) {
32
+ throw new Error('computeHMACSignatureAsync not implemented.');
33
+ }
34
+ /**
35
+ * Computes a SHA-256 hash of the data.
36
+ */
37
+ computeSHA256Async(data) {
38
+ throw new Error('computeSHA256 not implemented.');
39
+ }
40
+ }
41
+ exports.CryptoProvider = CryptoProvider;
42
+ /**
43
+ * If the crypto provider only supports asynchronous operations,
44
+ * throw CryptoProviderOnlySupportsAsyncError instead of
45
+ * a generic error so that the caller can choose to provide
46
+ * a more helpful error message to direct the user to use
47
+ * an asynchronous pathway.
48
+ */
49
+ class CryptoProviderOnlySupportsAsyncError extends Error {
50
+ }
51
+ exports.CryptoProviderOnlySupportsAsyncError = CryptoProviderOnlySupportsAsyncError;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NodeCryptoProvider = void 0;
4
+ const crypto = require("crypto");
5
+ const CryptoProvider_js_1 = require("./CryptoProvider.js");
6
+ /**
7
+ * `CryptoProvider which uses the Node `crypto` package for its computations.
8
+ */
9
+ class NodeCryptoProvider extends CryptoProvider_js_1.CryptoProvider {
10
+ /** @override */
11
+ computeHMACSignature(payload, secret) {
12
+ return crypto
13
+ .createHmac('sha256', secret)
14
+ .update(payload, 'utf8')
15
+ .digest('hex');
16
+ }
17
+ /** @override */
18
+ async computeHMACSignatureAsync(payload, secret) {
19
+ const signature = await this.computeHMACSignature(payload, secret);
20
+ return signature;
21
+ }
22
+ /** @override */
23
+ async computeSHA256Async(data) {
24
+ return new Uint8Array(await crypto
25
+ .createHash('sha256')
26
+ .update(data)
27
+ .digest());
28
+ }
29
+ }
30
+ exports.NodeCryptoProvider = NodeCryptoProvider;
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SubtleCryptoProvider = void 0;
4
+ const CryptoProvider_js_1 = require("./CryptoProvider.js");
5
+ /**
6
+ * `CryptoProvider which uses the SubtleCrypto interface of the Web Crypto API.
7
+ *
8
+ * This only supports asynchronous operations.
9
+ */
10
+ class SubtleCryptoProvider extends CryptoProvider_js_1.CryptoProvider {
11
+ constructor(subtleCrypto) {
12
+ super();
13
+ // If no subtle crypto is interface, default to the global namespace. This
14
+ // is to allow custom interfaces (eg. using the Node webcrypto interface in
15
+ // tests).
16
+ this.subtleCrypto = subtleCrypto || crypto.subtle;
17
+ }
18
+ /** @override */
19
+ computeHMACSignature(payload, secret) {
20
+ throw new CryptoProvider_js_1.CryptoProviderOnlySupportsAsyncError('SubtleCryptoProvider cannot be used in a synchronous context.');
21
+ }
22
+ /** @override */
23
+ async computeHMACSignatureAsync(payload, secret) {
24
+ const encoder = new TextEncoder();
25
+ const key = await this.subtleCrypto.importKey('raw', encoder.encode(secret), {
26
+ name: 'HMAC',
27
+ hash: { name: 'SHA-256' },
28
+ }, false, ['sign']);
29
+ const signatureBuffer = await this.subtleCrypto.sign('hmac', key, encoder.encode(payload));
30
+ // crypto.subtle returns the signature in base64 format. This must be
31
+ // encoded in hex to match the CryptoProvider contract. We map each byte in
32
+ // the buffer to its corresponding hex octet and then combine into a string.
33
+ const signatureBytes = new Uint8Array(signatureBuffer);
34
+ const signatureHexCodes = new Array(signatureBytes.length);
35
+ for (let i = 0; i < signatureBytes.length; i++) {
36
+ signatureHexCodes[i] = byteHexMapping[signatureBytes[i]];
37
+ }
38
+ return signatureHexCodes.join('');
39
+ }
40
+ /** @override */
41
+ async computeSHA256Async(data) {
42
+ return new Uint8Array(await this.subtleCrypto.digest('SHA-256', data));
43
+ }
44
+ }
45
+ exports.SubtleCryptoProvider = SubtleCryptoProvider;
46
+ // Cached mapping of byte to hex representation. We do this once to avoid re-
47
+ // computing every time we need to convert the result of a signature to hex.
48
+ const byteHexMapping = new Array(256);
49
+ for (let i = 0; i < byteHexMapping.length; i++) {
50
+ byteHexMapping[i] = i.toString(16).padStart(2, '0');
51
+ }
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.multipartRequestDataProcessor = void 0;
4
+ const utils_js_1 = require("./utils.js");
5
+ // Method for formatting HTTP body for the multipart/form-data specification
6
+ // Mostly taken from Fermata.js
7
+ // https://github.com/natevw/fermata/blob/5d9732a33d776ce925013a265935facd1626cc88/fermata.js#L315-L343
8
+ const multipartDataGenerator = (method, data, headers) => {
9
+ const segno = (Math.round(Math.random() * 1e16) + Math.round(Math.random() * 1e16)).toString();
10
+ headers['Content-Type'] = `multipart/form-data; boundary=${segno}`;
11
+ const textEncoder = new TextEncoder();
12
+ let buffer = new Uint8Array(0);
13
+ const endBuffer = textEncoder.encode('\r\n');
14
+ function push(l) {
15
+ const prevBuffer = buffer;
16
+ const newBuffer = l instanceof Uint8Array ? l : new Uint8Array(textEncoder.encode(l));
17
+ buffer = new Uint8Array(prevBuffer.length + newBuffer.length + 2);
18
+ buffer.set(prevBuffer);
19
+ buffer.set(newBuffer, prevBuffer.length);
20
+ buffer.set(endBuffer, buffer.length - 2);
21
+ }
22
+ function q(s) {
23
+ return `"${s.replace(/"|"/g, '%22').replace(/\r\n|\r|\n/g, ' ')}"`;
24
+ }
25
+ const flattenedData = (0, utils_js_1.flattenAndStringify)(data);
26
+ for (const k in flattenedData) {
27
+ if (!Object.prototype.hasOwnProperty.call(flattenedData, k)) {
28
+ continue;
29
+ }
30
+ const v = flattenedData[k];
31
+ push(`--${segno}`);
32
+ if (Object.prototype.hasOwnProperty.call(v, 'data')) {
33
+ const typedEntry = v;
34
+ push(`Content-Disposition: form-data; name=${q(k)}; filename=${q(typedEntry.name || 'blob')}`);
35
+ push(`Content-Type: ${typedEntry.type || 'application/octet-stream'}`);
36
+ push('');
37
+ push(typedEntry.data);
38
+ }
39
+ else {
40
+ push(`Content-Disposition: form-data; name=${q(k)}`);
41
+ push('');
42
+ push(v);
43
+ }
44
+ }
45
+ push(`--${segno}--`);
46
+ return buffer;
47
+ };
48
+ function multipartRequestDataProcessor(method, data, headers, callback) {
49
+ data = data || {};
50
+ if (method !== 'POST') {
51
+ return callback(null, (0, utils_js_1.queryStringifyRequestData)(data));
52
+ }
53
+ this._stripe._platformFunctions
54
+ .tryBufferData(data)
55
+ .then((bufferedData) => {
56
+ const buffer = multipartDataGenerator(method, bufferedData, headers);
57
+ return callback(null, buffer);
58
+ })
59
+ .catch((err) => callback(err, null));
60
+ }
61
+ exports.multipartRequestDataProcessor = multipartRequestDataProcessor;
@@ -0,0 +1,145 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FetchHttpClientResponse = exports.FetchHttpClient = void 0;
4
+ const utils_js_1 = require("../utils.js");
5
+ const HttpClient_js_1 = require("./HttpClient.js");
6
+ /**
7
+ * HTTP client which uses a `fetch` function to issue requests.
8
+ *
9
+ * By default relies on the global `fetch` function, but an optional function
10
+ * can be passed in. If passing in a function, it is expected to match the Web
11
+ * Fetch API. As an example, this could be the function provided by the
12
+ * node-fetch package (https://github.com/node-fetch/node-fetch).
13
+ */
14
+ class FetchHttpClient extends HttpClient_js_1.HttpClient {
15
+ constructor(fetchFn) {
16
+ super();
17
+ // Default to global fetch if available
18
+ if (!fetchFn) {
19
+ if (!globalThis.fetch) {
20
+ throw new Error('fetch() function not provided and is not defined in the global scope. ' +
21
+ 'You must provide a fetch implementation.');
22
+ }
23
+ fetchFn = globalThis.fetch;
24
+ }
25
+ // Both timeout behaviors differs from Node:
26
+ // - Fetch uses a single timeout for the entire length of the request.
27
+ // - Node is more fine-grained and resets the timeout after each stage of the request.
28
+ if (globalThis.AbortController) {
29
+ // Utilise native AbortController if available
30
+ // AbortController was added in Node v15.0.0, v14.17.0
31
+ this._fetchFn = FetchHttpClient.makeFetchWithAbortTimeout(fetchFn);
32
+ }
33
+ else {
34
+ // Fall back to racing against a timeout promise if not available in the runtime
35
+ // This does not actually cancel the underlying fetch operation or resources
36
+ this._fetchFn = FetchHttpClient.makeFetchWithRaceTimeout(fetchFn);
37
+ }
38
+ }
39
+ static makeFetchWithRaceTimeout(fetchFn) {
40
+ return (url, init, timeout) => {
41
+ let pendingTimeoutId;
42
+ const timeoutPromise = new Promise((_, reject) => {
43
+ pendingTimeoutId = setTimeout(() => {
44
+ pendingTimeoutId = null;
45
+ reject(HttpClient_js_1.HttpClient.makeTimeoutError());
46
+ }, timeout);
47
+ });
48
+ const fetchPromise = fetchFn(url, init);
49
+ return Promise.race([fetchPromise, timeoutPromise]).finally(() => {
50
+ if (pendingTimeoutId) {
51
+ clearTimeout(pendingTimeoutId);
52
+ }
53
+ });
54
+ };
55
+ }
56
+ static makeFetchWithAbortTimeout(fetchFn) {
57
+ return async (url, init, timeout) => {
58
+ // Use AbortController because AbortSignal.timeout() was added later in Node v17.3.0, v16.14.0
59
+ const abort = new AbortController();
60
+ let timeoutId = setTimeout(() => {
61
+ timeoutId = null;
62
+ abort.abort(HttpClient_js_1.HttpClient.makeTimeoutError());
63
+ }, timeout);
64
+ try {
65
+ return await fetchFn(url, {
66
+ ...init,
67
+ signal: abort.signal,
68
+ });
69
+ }
70
+ catch (err) {
71
+ // Some implementations, like node-fetch, do not respect the reason passed to AbortController.abort()
72
+ // and instead it always throws an AbortError
73
+ // We catch this case to normalise all timeout errors
74
+ if (err.name === 'AbortError') {
75
+ throw HttpClient_js_1.HttpClient.makeTimeoutError();
76
+ }
77
+ else {
78
+ throw err;
79
+ }
80
+ }
81
+ finally {
82
+ if (timeoutId) {
83
+ clearTimeout(timeoutId);
84
+ }
85
+ }
86
+ };
87
+ }
88
+ /** @override. */
89
+ getClientName() {
90
+ return 'fetch';
91
+ }
92
+ async makeRequest(host, port, path, method, headers, requestData, protocol, timeout) {
93
+ const isInsecureConnection = protocol === 'http';
94
+ const url = new URL(path, `${isInsecureConnection ? 'http' : 'https'}://${host}`);
95
+ url.port = port;
96
+ // For methods which expect payloads, we should always pass a body value
97
+ // even when it is empty. Without this, some JS runtimes (eg. Deno) will
98
+ // inject a second Content-Length header. See https://github.com/stripe/stripe-node/issues/1519
99
+ // for more details.
100
+ const methodHasPayload = method == 'POST' || method == 'PUT' || method == 'PATCH';
101
+ const body = requestData || (methodHasPayload ? '' : undefined);
102
+ const res = await this._fetchFn(url.toString(), {
103
+ method,
104
+ headers: (0, utils_js_1.parseHeadersForFetch)(headers),
105
+ body: body,
106
+ }, timeout);
107
+ return new FetchHttpClientResponse(res);
108
+ }
109
+ }
110
+ exports.FetchHttpClient = FetchHttpClient;
111
+ class FetchHttpClientResponse extends HttpClient_js_1.HttpClientResponse {
112
+ constructor(res) {
113
+ super(res.status, FetchHttpClientResponse._transformHeadersToObject(res.headers));
114
+ this._res = res;
115
+ }
116
+ getRawResponse() {
117
+ return this._res;
118
+ }
119
+ toStream(streamCompleteCallback) {
120
+ // Unfortunately `fetch` does not have event handlers for when the stream is
121
+ // completely read. We therefore invoke the streamCompleteCallback right
122
+ // away. This callback emits a response event with metadata and completes
123
+ // metrics, so it's ok to do this without waiting for the stream to be
124
+ // completely read.
125
+ streamCompleteCallback();
126
+ // Fetch's `body` property is expected to be a readable stream of the body.
127
+ return this._res.body;
128
+ }
129
+ toJSON() {
130
+ return this._res.json();
131
+ }
132
+ static _transformHeadersToObject(headers) {
133
+ // Fetch uses a Headers instance so this must be converted to a barebones
134
+ // JS object to meet the HttpClient interface.
135
+ const headersObj = {};
136
+ for (const entry of headers) {
137
+ if (!Array.isArray(entry) || entry.length != 2) {
138
+ throw new Error('Response objects produced by the fetch function given to FetchHttpClient do not have an iterable headers map. Response#headers should be an iterable object.');
139
+ }
140
+ headersObj[entry[0]] = entry[1];
141
+ }
142
+ return headersObj;
143
+ }
144
+ }
145
+ exports.FetchHttpClientResponse = FetchHttpClientResponse;
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HttpClientResponse = exports.HttpClient = void 0;
4
+ /**
5
+ * Encapsulates the logic for issuing a request to the Stripe API.
6
+ *
7
+ * A custom HTTP client should should implement:
8
+ * 1. A response class which extends HttpClientResponse and wraps around their
9
+ * own internal representation of a response.
10
+ * 2. A client class which extends HttpClient and implements all methods,
11
+ * returning their own response class when making requests.
12
+ */
13
+ class HttpClient {
14
+ /** The client name used for diagnostics. */
15
+ getClientName() {
16
+ throw new Error('getClientName not implemented.');
17
+ }
18
+ makeRequest(host, port, path, method, headers, requestData, protocol, timeout) {
19
+ throw new Error('makeRequest not implemented.');
20
+ }
21
+ /** Helper to make a consistent timeout error across implementations. */
22
+ static makeTimeoutError() {
23
+ const timeoutErr = new TypeError(HttpClient.TIMEOUT_ERROR_CODE);
24
+ timeoutErr.code = HttpClient.TIMEOUT_ERROR_CODE;
25
+ return timeoutErr;
26
+ }
27
+ }
28
+ exports.HttpClient = HttpClient;
29
+ // Public API accessible via Stripe.HttpClient
30
+ HttpClient.CONNECTION_CLOSED_ERROR_CODES = ['ECONNRESET', 'EPIPE'];
31
+ HttpClient.TIMEOUT_ERROR_CODE = 'ETIMEDOUT';
32
+ class HttpClientResponse {
33
+ constructor(statusCode, headers) {
34
+ this._statusCode = statusCode;
35
+ this._headers = headers;
36
+ }
37
+ getStatusCode() {
38
+ return this._statusCode;
39
+ }
40
+ getHeaders() {
41
+ return this._headers;
42
+ }
43
+ getRawResponse() {
44
+ throw new Error('getRawResponse not implemented.');
45
+ }
46
+ toStream(streamCompleteCallback) {
47
+ throw new Error('toStream not implemented.');
48
+ }
49
+ toJSON() {
50
+ throw new Error('toJSON not implemented.');
51
+ }
52
+ }
53
+ exports.HttpClientResponse = HttpClientResponse;