@revealui/services 0.0.2 → 0.1.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 (112) hide show
  1. package/LICENSE +22 -202
  2. package/LICENSE.commercial +112 -0
  3. package/README.md +177 -0
  4. package/dist/api/create-checkout-session/index.d.ts +2 -0
  5. package/dist/api/create-checkout-session/index.d.ts.map +1 -0
  6. package/dist/api/create-checkout-session/index.js +61 -0
  7. package/dist/api/create-checkout-session/index.js.map +1 -0
  8. package/dist/api/create-portal-link/index.d.ts +2 -0
  9. package/dist/api/create-portal-link/index.d.ts.map +1 -0
  10. package/dist/api/create-portal-link/index.js +37 -0
  11. package/dist/api/create-portal-link/index.js.map +1 -0
  12. package/dist/api/handlers/customer-handlers.d.ts +27 -0
  13. package/dist/api/handlers/customer-handlers.d.ts.map +1 -0
  14. package/dist/api/handlers/customer-handlers.js +86 -0
  15. package/dist/api/handlers/customer-handlers.js.map +1 -0
  16. package/dist/api/handlers/index.d.ts +18 -0
  17. package/dist/api/handlers/index.d.ts.map +1 -0
  18. package/dist/api/handlers/index.js +18 -0
  19. package/dist/api/handlers/index.js.map +1 -0
  20. package/dist/api/handlers/invoice-handlers.d.ts +9 -0
  21. package/dist/api/handlers/invoice-handlers.d.ts.map +1 -0
  22. package/dist/api/handlers/invoice-handlers.js +52 -0
  23. package/dist/api/handlers/invoice-handlers.js.map +1 -0
  24. package/dist/api/handlers/payment-handlers.d.ts +13 -0
  25. package/dist/api/handlers/payment-handlers.d.ts.map +1 -0
  26. package/dist/api/handlers/payment-handlers.js +133 -0
  27. package/dist/api/handlers/payment-handlers.js.map +1 -0
  28. package/dist/api/handlers/payment-intent.d.ts +21 -0
  29. package/dist/api/handlers/payment-intent.d.ts.map +1 -0
  30. package/dist/api/handlers/payment-intent.js +87 -0
  31. package/dist/api/handlers/payment-intent.js.map +1 -0
  32. package/dist/api/handlers/product-handlers.d.ts +11 -0
  33. package/dist/api/handlers/product-handlers.d.ts.map +1 -0
  34. package/dist/api/handlers/product-handlers.js +43 -0
  35. package/dist/api/handlers/product-handlers.js.map +1 -0
  36. package/dist/api/handlers/subscription-handlers.d.ts +13 -0
  37. package/dist/api/handlers/subscription-handlers.d.ts.map +1 -0
  38. package/dist/api/handlers/subscription-handlers.js +115 -0
  39. package/dist/api/handlers/subscription-handlers.js.map +1 -0
  40. package/dist/api/index.d.ts +8 -0
  41. package/dist/api/index.d.ts.map +1 -0
  42. package/dist/api/index.js +8 -0
  43. package/dist/api/index.js.map +1 -0
  44. package/dist/api/types/stripe.d.ts +42 -0
  45. package/dist/api/types/stripe.d.ts.map +1 -0
  46. package/dist/api/types/stripe.js +72 -0
  47. package/dist/api/types/stripe.js.map +1 -0
  48. package/dist/api/update-price/index.d.ts +42 -0
  49. package/dist/api/update-price/index.d.ts.map +1 -0
  50. package/dist/api/update-price/index.js +78 -0
  51. package/dist/api/update-price/index.js.map +1 -0
  52. package/dist/api/update-product/index.d.ts +44 -0
  53. package/dist/api/update-product/index.d.ts.map +1 -0
  54. package/dist/api/update-product/index.js +85 -0
  55. package/dist/api/update-product/index.js.map +1 -0
  56. package/dist/api/utils.d.ts +34 -0
  57. package/dist/api/utils.d.ts.map +1 -0
  58. package/dist/api/utils.js +66 -0
  59. package/dist/api/utils.js.map +1 -0
  60. package/dist/api/webhooks/index.d.ts +2 -0
  61. package/dist/api/webhooks/index.d.ts.map +1 -0
  62. package/dist/api/webhooks/index.js +270 -0
  63. package/dist/api/webhooks/index.js.map +1 -0
  64. package/dist/client/index.d.ts +11 -0
  65. package/dist/client/index.d.ts.map +1 -0
  66. package/dist/client/index.js +12 -0
  67. package/dist/client/index.js.map +1 -0
  68. package/dist/index.d.ts +35 -0
  69. package/dist/index.d.ts.map +1 -0
  70. package/dist/index.js +46 -0
  71. package/dist/index.js.map +1 -0
  72. package/dist/stripe/db-circuit-breaker.d.ts +47 -0
  73. package/dist/stripe/db-circuit-breaker.d.ts.map +1 -0
  74. package/dist/stripe/db-circuit-breaker.js +223 -0
  75. package/dist/stripe/db-circuit-breaker.js.map +1 -0
  76. package/dist/stripe/index.d.ts +2 -0
  77. package/dist/stripe/index.d.ts.map +1 -0
  78. package/dist/stripe/index.js +2 -0
  79. package/dist/stripe/index.js.map +1 -0
  80. package/dist/stripe/stripeClient.d.ts +126 -0
  81. package/dist/stripe/stripeClient.d.ts.map +1 -0
  82. package/dist/stripe/stripeClient.js +226 -0
  83. package/dist/stripe/stripeClient.js.map +1 -0
  84. package/dist/supabase/index.d.ts +6 -0
  85. package/dist/supabase/index.d.ts.map +1 -0
  86. package/dist/supabase/index.js +5 -0
  87. package/dist/supabase/index.js.map +1 -0
  88. package/dist/supabase/resilience.d.ts +50 -0
  89. package/dist/supabase/resilience.d.ts.map +1 -0
  90. package/dist/supabase/resilience.js +166 -0
  91. package/dist/supabase/resilience.js.map +1 -0
  92. package/dist/supabase/types.d.ts +206 -0
  93. package/dist/supabase/types.d.ts.map +1 -0
  94. package/dist/supabase/types.js +19 -0
  95. package/dist/supabase/types.js.map +1 -0
  96. package/dist/supabase/utils/client.d.ts +4 -0
  97. package/dist/supabase/utils/client.d.ts.map +1 -0
  98. package/dist/supabase/utils/client.js +12 -0
  99. package/dist/supabase/utils/client.js.map +1 -0
  100. package/dist/supabase/utils/server.d.ts +10 -0
  101. package/dist/supabase/utils/server.d.ts.map +1 -0
  102. package/dist/supabase/utils/server.js +49 -0
  103. package/dist/supabase/utils/server.js.map +1 -0
  104. package/dist/supabase/utils/web.d.ts +4 -0
  105. package/dist/supabase/utils/web.d.ts.map +1 -0
  106. package/dist/supabase/utils/web.js +37 -0
  107. package/dist/supabase/utils/web.js.map +1 -0
  108. package/package.json +70 -54
  109. package/dist/.vite/ssr-manifest.json +0 -209
  110. package/dist/assets/index-Bai9hEWd.js +0 -16
  111. package/dist/assets/index-Bai9hEWd.js.map +0 -1
  112. package/dist/index.html +0 -23
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-Bai9hEWd.js","sources":["../../../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/type.js","../../__vite-browser-external","../../../../node_modules/.pnpm/object-inspect@1.13.4/node_modules/object-inspect/index.js","../../../../node_modules/.pnpm/side-channel-list@1.0.0/node_modules/side-channel-list/index.js","../../../../node_modules/.pnpm/es-object-atoms@1.1.1/node_modules/es-object-atoms/index.js","../../../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/index.js","../../../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/eval.js","../../../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/range.js","../../../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/ref.js","../../../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/syntax.js","../../../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/uri.js","../../../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/abs.js","../../../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/floor.js","../../../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/max.js","../../../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/min.js","../../../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/pow.js","../../../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/round.js","../../../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/isNaN.js","../../../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/sign.js","../../../../node_modules/.pnpm/gopd@1.2.0/node_modules/gopd/gOPD.js","../../../../node_modules/.pnpm/gopd@1.2.0/node_modules/gopd/index.js","../../../../node_modules/.pnpm/es-define-property@1.0.1/node_modules/es-define-property/index.js","../../../../node_modules/.pnpm/has-symbols@1.1.0/node_modules/has-symbols/shams.js","../../../../node_modules/.pnpm/has-symbols@1.1.0/node_modules/has-symbols/index.js","../../../../node_modules/.pnpm/get-proto@1.0.1/node_modules/get-proto/Reflect.getPrototypeOf.js","../../../../node_modules/.pnpm/get-proto@1.0.1/node_modules/get-proto/Object.getPrototypeOf.js","../../../../node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/implementation.js","../../../../node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/index.js","../../../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/functionCall.js","../../../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/functionApply.js","../../../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/reflectApply.js","../../../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/actualApply.js","../../../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/index.js","../../../../node_modules/.pnpm/dunder-proto@1.0.1/node_modules/dunder-proto/get.js","../../../../node_modules/.pnpm/get-proto@1.0.1/node_modules/get-proto/index.js","../../../../node_modules/.pnpm/hasown@2.0.2/node_modules/hasown/index.js","../../../../node_modules/.pnpm/get-intrinsic@1.3.0/node_modules/get-intrinsic/index.js","../../../../node_modules/.pnpm/call-bound@1.0.4/node_modules/call-bound/index.js","../../../../node_modules/.pnpm/side-channel-map@1.0.1/node_modules/side-channel-map/index.js","../../../../node_modules/.pnpm/side-channel-weakmap@1.0.2/node_modules/side-channel-weakmap/index.js","../../../../node_modules/.pnpm/side-channel@1.1.0/node_modules/side-channel/index.js","../../../../node_modules/.pnpm/qs@6.14.0/node_modules/qs/lib/formats.js","../../../../node_modules/.pnpm/qs@6.14.0/node_modules/qs/lib/utils.js","../../../../node_modules/.pnpm/qs@6.14.0/node_modules/qs/lib/stringify.js","../../../../node_modules/.pnpm/qs@6.14.0/node_modules/qs/lib/parse.js","../../../../node_modules/.pnpm/qs@6.14.0/node_modules/qs/lib/index.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/utils.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/net/HttpClient.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/net/FetchHttpClient.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/crypto/CryptoProvider.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/crypto/SubtleCryptoProvider.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/platform/PlatformFunctions.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/StripeEmitter.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/platform/WebPlatformFunctions.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/Error.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/RequestSender.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/autoPagination.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/StripeMethod.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/StripeResource.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/StripeContext.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/Webhooks.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/apiVersion.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/ResourceNamespace.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/FinancialConnections/Accounts.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Entitlements/ActiveEntitlements.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Billing/Alerts.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Tax/Associations.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Issuing/Authorizations.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/TestHelpers/Issuing/Authorizations.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Tax/Calculations.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Issuing/Cardholders.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Issuing/Cards.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/TestHelpers/Issuing/Cards.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/BillingPortal/Configurations.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Terminal/Configurations.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/TestHelpers/ConfirmationTokens.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Terminal/ConnectionTokens.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Billing/CreditBalanceSummary.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Billing/CreditBalanceTransactions.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Billing/CreditGrants.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Treasury/CreditReversals.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/TestHelpers/Customers.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Treasury/DebitReversals.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Issuing/Disputes.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Radar/EarlyFraudWarnings.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/V2/Core/EventDestinations.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/V2/Core/Events.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Entitlements/Features.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Treasury/FinancialAccounts.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/TestHelpers/Treasury/InboundTransfers.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Treasury/InboundTransfers.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Terminal/Locations.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Billing/MeterEventAdjustments.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/V2/Billing/MeterEventAdjustments.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/V2/Billing/MeterEventSession.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/V2/Billing/MeterEventStream.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Billing/MeterEvents.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/V2/Billing/MeterEvents.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Billing/Meters.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Terminal/OnboardingLinks.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Climate/Orders.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/TestHelpers/Treasury/OutboundPayments.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Treasury/OutboundPayments.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/TestHelpers/Treasury/OutboundTransfers.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Treasury/OutboundTransfers.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Issuing/PersonalizationDesigns.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/TestHelpers/Issuing/PersonalizationDesigns.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Issuing/PhysicalBundles.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Climate/Products.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Terminal/Readers.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/TestHelpers/Terminal/Readers.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/TestHelpers/Treasury/ReceivedCredits.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Treasury/ReceivedCredits.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/TestHelpers/Treasury/ReceivedDebits.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Treasury/ReceivedDebits.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/TestHelpers/Refunds.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Tax/Registrations.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Reporting/ReportRuns.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Reporting/ReportTypes.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Forwarding/Requests.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Sigma/ScheduledQueryRuns.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Apps/Secrets.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/BillingPortal/Sessions.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Checkout/Sessions.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/FinancialConnections/Sessions.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Tax/Settings.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Climate/Suppliers.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/TestHelpers/TestClocks.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Issuing/Tokens.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Treasury/TransactionEntries.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/FinancialConnections/Transactions.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Issuing/Transactions.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Tax/Transactions.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/TestHelpers/Issuing/Transactions.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Treasury/Transactions.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Radar/ValueListItems.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Radar/ValueLists.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Identity/VerificationReports.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Identity/VerificationSessions.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Accounts.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/AccountLinks.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/AccountSessions.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/ApplePayDomains.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/ApplicationFees.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Balance.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/BalanceSettings.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/BalanceTransactions.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Charges.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/ConfirmationTokens.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/CountrySpecs.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Coupons.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/CreditNotes.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/CustomerSessions.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Customers.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Disputes.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/EphemeralKeys.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Events.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/ExchangeRates.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/FileLinks.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/multipart.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Files.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/InvoiceItems.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/InvoicePayments.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/InvoiceRenderingTemplates.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Invoices.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Mandates.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/OAuth.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/PaymentAttemptRecords.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/PaymentIntents.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/PaymentLinks.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/PaymentMethodConfigurations.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/PaymentMethodDomains.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/PaymentMethods.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/PaymentRecords.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Payouts.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Plans.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Prices.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Products.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/PromotionCodes.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Quotes.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Refunds.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Reviews.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/SetupAttempts.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/SetupIntents.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/ShippingRates.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Sources.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/SubscriptionItems.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/SubscriptionSchedules.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Subscriptions.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/TaxCodes.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/TaxIds.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/TaxRates.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Tokens.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Topups.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/Transfers.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources/WebhookEndpoints.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/resources.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/stripe.core.js","../../../../node_modules/.pnpm/stripe@20.0.0_@types+node@24.10.1/node_modules/stripe/esm/stripe.esm.worker.js","../../src/stripe/stripeClient.ts","../../../../node_modules/.pnpm/@supabase+ssr@0.7.0_@supaba_3c873bf88e3eff74162c91d1a9b8fd83/node_modules/@supabase/ssr/dist/module/utils/base64url.js"],"sourcesContent":["'use strict';\n\n/** @type {import('./type')} */\nmodule.exports = TypeError;\n"," export default new Proxy({}, {\n get(_, key) {\n throw new Error(`Module \"\" has been externalized for browser compatibility. Cannot access \".${key}\" in client code. See https://vite.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`)\n }\n })","var hasMap = typeof Map === 'function' && Map.prototype;\nvar mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null;\nvar mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null;\nvar mapForEach = hasMap && Map.prototype.forEach;\nvar hasSet = typeof Set === 'function' && Set.prototype;\nvar setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null;\nvar setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null;\nvar setForEach = hasSet && Set.prototype.forEach;\nvar hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype;\nvar weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;\nvar hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype;\nvar weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;\nvar hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype;\nvar weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;\nvar booleanValueOf = Boolean.prototype.valueOf;\nvar objectToString = Object.prototype.toString;\nvar functionToString = Function.prototype.toString;\nvar $match = String.prototype.match;\nvar $slice = String.prototype.slice;\nvar $replace = String.prototype.replace;\nvar $toUpperCase = String.prototype.toUpperCase;\nvar $toLowerCase = String.prototype.toLowerCase;\nvar $test = RegExp.prototype.test;\nvar $concat = Array.prototype.concat;\nvar $join = Array.prototype.join;\nvar $arrSlice = Array.prototype.slice;\nvar $floor = Math.floor;\nvar bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;\nvar gOPS = Object.getOwnPropertySymbols;\nvar symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null;\nvar hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object';\n// ie, `has-tostringtag/shams\nvar toStringTag = typeof Symbol === 'function' && Symbol.toStringTag && (typeof Symbol.toStringTag === hasShammedSymbols ? 'object' : 'symbol')\n ? Symbol.toStringTag\n : null;\nvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\nvar gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || (\n [].__proto__ === Array.prototype // eslint-disable-line no-proto\n ? function (O) {\n return O.__proto__; // eslint-disable-line no-proto\n }\n : null\n);\n\nfunction addNumericSeparator(num, str) {\n if (\n num === Infinity\n || num === -Infinity\n || num !== num\n || (num && num > -1000 && num < 1000)\n || $test.call(/e/, str)\n ) {\n return str;\n }\n var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;\n if (typeof num === 'number') {\n var int = num < 0 ? -$floor(-num) : $floor(num); // trunc(num)\n if (int !== num) {\n var intStr = String(int);\n var dec = $slice.call(str, intStr.length + 1);\n return $replace.call(intStr, sepRegex, '$&_') + '.' + $replace.call($replace.call(dec, /([0-9]{3})/g, '$&_'), /_$/, '');\n }\n }\n return $replace.call(str, sepRegex, '$&_');\n}\n\nvar utilInspect = require('./util.inspect');\nvar inspectCustom = utilInspect.custom;\nvar inspectSymbol = isSymbol(inspectCustom) ? inspectCustom : null;\n\nvar quotes = {\n __proto__: null,\n 'double': '\"',\n single: \"'\"\n};\nvar quoteREs = {\n __proto__: null,\n 'double': /([\"\\\\])/g,\n single: /(['\\\\])/g\n};\n\nmodule.exports = function inspect_(obj, options, depth, seen) {\n var opts = options || {};\n\n if (has(opts, 'quoteStyle') && !has(quotes, opts.quoteStyle)) {\n throw new TypeError('option \"quoteStyle\" must be \"single\" or \"double\"');\n }\n if (\n has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number'\n ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity\n : opts.maxStringLength !== null\n )\n ) {\n throw new TypeError('option \"maxStringLength\", if provided, must be a positive integer, Infinity, or `null`');\n }\n var customInspect = has(opts, 'customInspect') ? opts.customInspect : true;\n if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') {\n throw new TypeError('option \"customInspect\", if provided, must be `true`, `false`, or `\\'symbol\\'`');\n }\n\n if (\n has(opts, 'indent')\n && opts.indent !== null\n && opts.indent !== '\\t'\n && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)\n ) {\n throw new TypeError('option \"indent\" must be \"\\\\t\", an integer > 0, or `null`');\n }\n if (has(opts, 'numericSeparator') && typeof opts.numericSeparator !== 'boolean') {\n throw new TypeError('option \"numericSeparator\", if provided, must be `true` or `false`');\n }\n var numericSeparator = opts.numericSeparator;\n\n if (typeof obj === 'undefined') {\n return 'undefined';\n }\n if (obj === null) {\n return 'null';\n }\n if (typeof obj === 'boolean') {\n return obj ? 'true' : 'false';\n }\n\n if (typeof obj === 'string') {\n return inspectString(obj, opts);\n }\n if (typeof obj === 'number') {\n if (obj === 0) {\n return Infinity / obj > 0 ? '0' : '-0';\n }\n var str = String(obj);\n return numericSeparator ? addNumericSeparator(obj, str) : str;\n }\n if (typeof obj === 'bigint') {\n var bigIntStr = String(obj) + 'n';\n return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr;\n }\n\n var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;\n if (typeof depth === 'undefined') { depth = 0; }\n if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') {\n return isArray(obj) ? '[Array]' : '[Object]';\n }\n\n var indent = getIndent(opts, depth);\n\n if (typeof seen === 'undefined') {\n seen = [];\n } else if (indexOf(seen, obj) >= 0) {\n return '[Circular]';\n }\n\n function inspect(value, from, noIndent) {\n if (from) {\n seen = $arrSlice.call(seen);\n seen.push(from);\n }\n if (noIndent) {\n var newOpts = {\n depth: opts.depth\n };\n if (has(opts, 'quoteStyle')) {\n newOpts.quoteStyle = opts.quoteStyle;\n }\n return inspect_(value, newOpts, depth + 1, seen);\n }\n return inspect_(value, opts, depth + 1, seen);\n }\n\n if (typeof obj === 'function' && !isRegExp(obj)) { // in older engines, regexes are callable\n var name = nameOf(obj);\n var keys = arrObjKeys(obj, inspect);\n return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + $join.call(keys, ', ') + ' }' : '');\n }\n if (isSymbol(obj)) {\n var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\\(.*\\))_[^)]*$/, '$1') : symToString.call(obj);\n return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString;\n }\n if (isElement(obj)) {\n var s = '<' + $toLowerCase.call(String(obj.nodeName));\n var attrs = obj.attributes || [];\n for (var i = 0; i < attrs.length; i++) {\n s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);\n }\n s += '>';\n if (obj.childNodes && obj.childNodes.length) { s += '...'; }\n s += '</' + $toLowerCase.call(String(obj.nodeName)) + '>';\n return s;\n }\n if (isArray(obj)) {\n if (obj.length === 0) { return '[]'; }\n var xs = arrObjKeys(obj, inspect);\n if (indent && !singleLineValues(xs)) {\n return '[' + indentedJoin(xs, indent) + ']';\n }\n return '[ ' + $join.call(xs, ', ') + ' ]';\n }\n if (isError(obj)) {\n var parts = arrObjKeys(obj, inspect);\n if (!('cause' in Error.prototype) && 'cause' in obj && !isEnumerable.call(obj, 'cause')) {\n return '{ [' + String(obj) + '] ' + $join.call($concat.call('[cause]: ' + inspect(obj.cause), parts), ', ') + ' }';\n }\n if (parts.length === 0) { return '[' + String(obj) + ']'; }\n return '{ [' + String(obj) + '] ' + $join.call(parts, ', ') + ' }';\n }\n if (typeof obj === 'object' && customInspect) {\n if (inspectSymbol && typeof obj[inspectSymbol] === 'function' && utilInspect) {\n return utilInspect(obj, { depth: maxDepth - depth });\n } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') {\n return obj.inspect();\n }\n }\n if (isMap(obj)) {\n var mapParts = [];\n if (mapForEach) {\n mapForEach.call(obj, function (value, key) {\n mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj));\n });\n }\n return collectionOf('Map', mapSize.call(obj), mapParts, indent);\n }\n if (isSet(obj)) {\n var setParts = [];\n if (setForEach) {\n setForEach.call(obj, function (value) {\n setParts.push(inspect(value, obj));\n });\n }\n return collectionOf('Set', setSize.call(obj), setParts, indent);\n }\n if (isWeakMap(obj)) {\n return weakCollectionOf('WeakMap');\n }\n if (isWeakSet(obj)) {\n return weakCollectionOf('WeakSet');\n }\n if (isWeakRef(obj)) {\n return weakCollectionOf('WeakRef');\n }\n if (isNumber(obj)) {\n return markBoxed(inspect(Number(obj)));\n }\n if (isBigInt(obj)) {\n return markBoxed(inspect(bigIntValueOf.call(obj)));\n }\n if (isBoolean(obj)) {\n return markBoxed(booleanValueOf.call(obj));\n }\n if (isString(obj)) {\n return markBoxed(inspect(String(obj)));\n }\n // note: in IE 8, sometimes `global !== window` but both are the prototypes of each other\n /* eslint-env browser */\n if (typeof window !== 'undefined' && obj === window) {\n return '{ [object Window] }';\n }\n if (\n (typeof globalThis !== 'undefined' && obj === globalThis)\n || (typeof global !== 'undefined' && obj === global)\n ) {\n return '{ [object globalThis] }';\n }\n if (!isDate(obj) && !isRegExp(obj)) {\n var ys = arrObjKeys(obj, inspect);\n var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;\n var protoTag = obj instanceof Object ? '' : 'null prototype';\n var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? 'Object' : '';\n var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : '';\n var tag = constructorTag + (stringTag || protoTag ? '[' + $join.call($concat.call([], stringTag || [], protoTag || []), ': ') + '] ' : '');\n if (ys.length === 0) { return tag + '{}'; }\n if (indent) {\n return tag + '{' + indentedJoin(ys, indent) + '}';\n }\n return tag + '{ ' + $join.call(ys, ', ') + ' }';\n }\n return String(obj);\n};\n\nfunction wrapQuotes(s, defaultStyle, opts) {\n var style = opts.quoteStyle || defaultStyle;\n var quoteChar = quotes[style];\n return quoteChar + s + quoteChar;\n}\n\nfunction quote(s) {\n return $replace.call(String(s), /\"/g, '&quot;');\n}\n\nfunction canTrustToString(obj) {\n return !toStringTag || !(typeof obj === 'object' && (toStringTag in obj || typeof obj[toStringTag] !== 'undefined'));\n}\nfunction isArray(obj) { return toStr(obj) === '[object Array]' && canTrustToString(obj); }\nfunction isDate(obj) { return toStr(obj) === '[object Date]' && canTrustToString(obj); }\nfunction isRegExp(obj) { return toStr(obj) === '[object RegExp]' && canTrustToString(obj); }\nfunction isError(obj) { return toStr(obj) === '[object Error]' && canTrustToString(obj); }\nfunction isString(obj) { return toStr(obj) === '[object String]' && canTrustToString(obj); }\nfunction isNumber(obj) { return toStr(obj) === '[object Number]' && canTrustToString(obj); }\nfunction isBoolean(obj) { return toStr(obj) === '[object Boolean]' && canTrustToString(obj); }\n\n// Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives\nfunction isSymbol(obj) {\n if (hasShammedSymbols) {\n return obj && typeof obj === 'object' && obj instanceof Symbol;\n }\n if (typeof obj === 'symbol') {\n return true;\n }\n if (!obj || typeof obj !== 'object' || !symToString) {\n return false;\n }\n try {\n symToString.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isBigInt(obj) {\n if (!obj || typeof obj !== 'object' || !bigIntValueOf) {\n return false;\n }\n try {\n bigIntValueOf.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nvar hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; };\nfunction has(obj, key) {\n return hasOwn.call(obj, key);\n}\n\nfunction toStr(obj) {\n return objectToString.call(obj);\n}\n\nfunction nameOf(f) {\n if (f.name) { return f.name; }\n var m = $match.call(functionToString.call(f), /^function\\s*([\\w$]+)/);\n if (m) { return m[1]; }\n return null;\n}\n\nfunction indexOf(xs, x) {\n if (xs.indexOf) { return xs.indexOf(x); }\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) { return i; }\n }\n return -1;\n}\n\nfunction isMap(x) {\n if (!mapSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n mapSize.call(x);\n try {\n setSize.call(x);\n } catch (s) {\n return true;\n }\n return x instanceof Map; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakMap(x) {\n if (!weakMapHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakMapHas.call(x, weakMapHas);\n try {\n weakSetHas.call(x, weakSetHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakMap; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakRef(x) {\n if (!weakRefDeref || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakRefDeref.call(x);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isSet(x) {\n if (!setSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n setSize.call(x);\n try {\n mapSize.call(x);\n } catch (m) {\n return true;\n }\n return x instanceof Set; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakSet(x) {\n if (!weakSetHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakSetHas.call(x, weakSetHas);\n try {\n weakMapHas.call(x, weakMapHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakSet; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isElement(x) {\n if (!x || typeof x !== 'object') { return false; }\n if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) {\n return true;\n }\n return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function';\n}\n\nfunction inspectString(str, opts) {\n if (str.length > opts.maxStringLength) {\n var remaining = str.length - opts.maxStringLength;\n var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : '');\n return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer;\n }\n var quoteRE = quoteREs[opts.quoteStyle || 'single'];\n quoteRE.lastIndex = 0;\n // eslint-disable-next-line no-control-regex\n var s = $replace.call($replace.call(str, quoteRE, '\\\\$1'), /[\\x00-\\x1f]/g, lowbyte);\n return wrapQuotes(s, 'single', opts);\n}\n\nfunction lowbyte(c) {\n var n = c.charCodeAt(0);\n var x = {\n 8: 'b',\n 9: 't',\n 10: 'n',\n 12: 'f',\n 13: 'r'\n }[n];\n if (x) { return '\\\\' + x; }\n return '\\\\x' + (n < 0x10 ? '0' : '') + $toUpperCase.call(n.toString(16));\n}\n\nfunction markBoxed(str) {\n return 'Object(' + str + ')';\n}\n\nfunction weakCollectionOf(type) {\n return type + ' { ? }';\n}\n\nfunction collectionOf(type, size, entries, indent) {\n var joinedEntries = indent ? indentedJoin(entries, indent) : $join.call(entries, ', ');\n return type + ' (' + size + ') {' + joinedEntries + '}';\n}\n\nfunction singleLineValues(xs) {\n for (var i = 0; i < xs.length; i++) {\n if (indexOf(xs[i], '\\n') >= 0) {\n return false;\n }\n }\n return true;\n}\n\nfunction getIndent(opts, depth) {\n var baseIndent;\n if (opts.indent === '\\t') {\n baseIndent = '\\t';\n } else if (typeof opts.indent === 'number' && opts.indent > 0) {\n baseIndent = $join.call(Array(opts.indent + 1), ' ');\n } else {\n return null;\n }\n return {\n base: baseIndent,\n prev: $join.call(Array(depth + 1), baseIndent)\n };\n}\n\nfunction indentedJoin(xs, indent) {\n if (xs.length === 0) { return ''; }\n var lineJoiner = '\\n' + indent.prev + indent.base;\n return lineJoiner + $join.call(xs, ',' + lineJoiner) + '\\n' + indent.prev;\n}\n\nfunction arrObjKeys(obj, inspect) {\n var isArr = isArray(obj);\n var xs = [];\n if (isArr) {\n xs.length = obj.length;\n for (var i = 0; i < obj.length; i++) {\n xs[i] = has(obj, i) ? inspect(obj[i], obj) : '';\n }\n }\n var syms = typeof gOPS === 'function' ? gOPS(obj) : [];\n var symMap;\n if (hasShammedSymbols) {\n symMap = {};\n for (var k = 0; k < syms.length; k++) {\n symMap['$' + syms[k]] = syms[k];\n }\n }\n\n for (var key in obj) { // eslint-disable-line no-restricted-syntax\n if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) {\n // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section\n continue; // eslint-disable-line no-restricted-syntax, no-continue\n } else if ($test.call(/[^\\w$]/, key)) {\n xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));\n } else {\n xs.push(key + ': ' + inspect(obj[key], obj));\n }\n }\n if (typeof gOPS === 'function') {\n for (var j = 0; j < syms.length; j++) {\n if (isEnumerable.call(obj, syms[j])) {\n xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj));\n }\n }\n }\n return xs;\n}\n","'use strict';\n\nvar inspect = require('object-inspect');\n\nvar $TypeError = require('es-errors/type');\n\n/*\n* This function traverses the list returning the node corresponding to the given key.\n*\n* That node is also moved to the head of the list, so that if it's accessed again we don't need to traverse the whole list.\n* By doing so, all the recently used nodes can be accessed relatively quickly.\n*/\n/** @type {import('./list.d.ts').listGetNode} */\n// eslint-disable-next-line consistent-return\nvar listGetNode = function (list, key, isDelete) {\n\t/** @type {typeof list | NonNullable<(typeof list)['next']>} */\n\tvar prev = list;\n\t/** @type {(typeof list)['next']} */\n\tvar curr;\n\t// eslint-disable-next-line eqeqeq\n\tfor (; (curr = prev.next) != null; prev = curr) {\n\t\tif (curr.key === key) {\n\t\t\tprev.next = curr.next;\n\t\t\tif (!isDelete) {\n\t\t\t\t// eslint-disable-next-line no-extra-parens\n\t\t\t\tcurr.next = /** @type {NonNullable<typeof list.next>} */ (list.next);\n\t\t\t\tlist.next = curr; // eslint-disable-line no-param-reassign\n\t\t\t}\n\t\t\treturn curr;\n\t\t}\n\t}\n};\n\n/** @type {import('./list.d.ts').listGet} */\nvar listGet = function (objects, key) {\n\tif (!objects) {\n\t\treturn void undefined;\n\t}\n\tvar node = listGetNode(objects, key);\n\treturn node && node.value;\n};\n/** @type {import('./list.d.ts').listSet} */\nvar listSet = function (objects, key, value) {\n\tvar node = listGetNode(objects, key);\n\tif (node) {\n\t\tnode.value = value;\n\t} else {\n\t\t// Prepend the new node to the beginning of the list\n\t\tobjects.next = /** @type {import('./list.d.ts').ListNode<typeof value, typeof key>} */ ({ // eslint-disable-line no-param-reassign, no-extra-parens\n\t\t\tkey: key,\n\t\t\tnext: objects.next,\n\t\t\tvalue: value\n\t\t});\n\t}\n};\n/** @type {import('./list.d.ts').listHas} */\nvar listHas = function (objects, key) {\n\tif (!objects) {\n\t\treturn false;\n\t}\n\treturn !!listGetNode(objects, key);\n};\n/** @type {import('./list.d.ts').listDelete} */\n// eslint-disable-next-line consistent-return\nvar listDelete = function (objects, key) {\n\tif (objects) {\n\t\treturn listGetNode(objects, key, true);\n\t}\n};\n\n/** @type {import('.')} */\nmodule.exports = function getSideChannelList() {\n\t/** @typedef {ReturnType<typeof getSideChannelList>} Channel */\n\t/** @typedef {Parameters<Channel['get']>[0]} K */\n\t/** @typedef {Parameters<Channel['set']>[1]} V */\n\n\t/** @type {import('./list.d.ts').RootNode<V, K> | undefined} */ var $o;\n\n\t/** @type {Channel} */\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\t'delete': function (key) {\n\t\t\tvar root = $o && $o.next;\n\t\t\tvar deletedNode = listDelete($o, key);\n\t\t\tif (deletedNode && root && root === deletedNode) {\n\t\t\t\t$o = void undefined;\n\t\t\t}\n\t\t\treturn !!deletedNode;\n\t\t},\n\t\tget: function (key) {\n\t\t\treturn listGet($o, key);\n\t\t},\n\t\thas: function (key) {\n\t\t\treturn listHas($o, key);\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif (!$o) {\n\t\t\t\t// Initialize the linked list as an empty node, so that we don't have to special-case handling of the first node: we can always refer to it as (previous node).next, instead of something like (list).head\n\t\t\t\t$o = {\n\t\t\t\t\tnext: void undefined\n\t\t\t\t};\n\t\t\t}\n\t\t\t// eslint-disable-next-line no-extra-parens\n\t\t\tlistSet(/** @type {NonNullable<typeof $o>} */ ($o), key, value);\n\t\t}\n\t};\n\t// @ts-expect-error TODO: figure out why this is erroring\n\treturn channel;\n};\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Object;\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Error;\n","'use strict';\n\n/** @type {import('./eval')} */\nmodule.exports = EvalError;\n","'use strict';\n\n/** @type {import('./range')} */\nmodule.exports = RangeError;\n","'use strict';\n\n/** @type {import('./ref')} */\nmodule.exports = ReferenceError;\n","'use strict';\n\n/** @type {import('./syntax')} */\nmodule.exports = SyntaxError;\n","'use strict';\n\n/** @type {import('./uri')} */\nmodule.exports = URIError;\n","'use strict';\n\n/** @type {import('./abs')} */\nmodule.exports = Math.abs;\n","'use strict';\n\n/** @type {import('./floor')} */\nmodule.exports = Math.floor;\n","'use strict';\n\n/** @type {import('./max')} */\nmodule.exports = Math.max;\n","'use strict';\n\n/** @type {import('./min')} */\nmodule.exports = Math.min;\n","'use strict';\n\n/** @type {import('./pow')} */\nmodule.exports = Math.pow;\n","'use strict';\n\n/** @type {import('./round')} */\nmodule.exports = Math.round;\n","'use strict';\n\n/** @type {import('./isNaN')} */\nmodule.exports = Number.isNaN || function isNaN(a) {\n\treturn a !== a;\n};\n","'use strict';\n\nvar $isNaN = require('./isNaN');\n\n/** @type {import('./sign')} */\nmodule.exports = function sign(number) {\n\tif ($isNaN(number) || number === 0) {\n\t\treturn number;\n\t}\n\treturn number < 0 ? -1 : +1;\n};\n","'use strict';\n\n/** @type {import('./gOPD')} */\nmodule.exports = Object.getOwnPropertyDescriptor;\n","'use strict';\n\n/** @type {import('.')} */\nvar $gOPD = require('./gOPD');\n\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n","'use strict';\n\n/** @type {import('.')} */\nvar $defineProperty = Object.defineProperty || false;\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = false;\n\t}\n}\n\nmodule.exports = $defineProperty;\n","'use strict';\n\n/** @type {import('./shams')} */\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\t/** @type {{ [k in symbol]?: unknown }} */\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (var _ in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\t// eslint-disable-next-line no-extra-parens\n\t\tvar descriptor = /** @type {PropertyDescriptor} */ (Object.getOwnPropertyDescriptor(obj, sym));\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/** @type {import('./Reflect.getPrototypeOf')} */\nmodule.exports = (typeof Reflect !== 'undefined' && Reflect.getPrototypeOf) || null;\n","'use strict';\n\nvar $Object = require('es-object-atoms');\n\n/** @type {import('./Object.getPrototypeOf')} */\nmodule.exports = $Object.getPrototypeOf || null;\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar toStr = Object.prototype.toString;\nvar max = Math.max;\nvar funcType = '[object Function]';\n\nvar concatty = function concatty(a, b) {\n var arr = [];\n\n for (var i = 0; i < a.length; i += 1) {\n arr[i] = a[i];\n }\n for (var j = 0; j < b.length; j += 1) {\n arr[j + a.length] = b[j];\n }\n\n return arr;\n};\n\nvar slicy = function slicy(arrLike, offset) {\n var arr = [];\n for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) {\n arr[j] = arrLike[i];\n }\n return arr;\n};\n\nvar joiny = function (arr, joiner) {\n var str = '';\n for (var i = 0; i < arr.length; i += 1) {\n str += arr[i];\n if (i + 1 < arr.length) {\n str += joiner;\n }\n }\n return str;\n};\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.apply(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slicy(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n concatty(args, arguments)\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n }\n return target.apply(\n that,\n concatty(args, arguments)\n );\n\n };\n\n var boundLength = max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs[i] = '$' + i;\n }\n\n bound = Function('binder', 'return function (' + joiny(boundArgs, ',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\n/** @type {import('./functionCall')} */\nmodule.exports = Function.prototype.call;\n","'use strict';\n\n/** @type {import('./functionApply')} */\nmodule.exports = Function.prototype.apply;\n","'use strict';\n\n/** @type {import('./reflectApply')} */\nmodule.exports = typeof Reflect !== 'undefined' && Reflect && Reflect.apply;\n","'use strict';\n\nvar bind = require('function-bind');\n\nvar $apply = require('./functionApply');\nvar $call = require('./functionCall');\nvar $reflectApply = require('./reflectApply');\n\n/** @type {import('./actualApply')} */\nmodule.exports = $reflectApply || bind.call($call, $apply);\n","'use strict';\n\nvar bind = require('function-bind');\nvar $TypeError = require('es-errors/type');\n\nvar $call = require('./functionCall');\nvar $actualApply = require('./actualApply');\n\n/** @type {(args: [Function, thisArg?: unknown, ...args: unknown[]]) => Function} TODO FIXME, find a way to use import('.') */\nmodule.exports = function callBindBasic(args) {\n\tif (args.length < 1 || typeof args[0] !== 'function') {\n\t\tthrow new $TypeError('a function is required');\n\t}\n\treturn $actualApply(bind, $call, args);\n};\n","'use strict';\n\nvar callBind = require('call-bind-apply-helpers');\nvar gOPD = require('gopd');\n\nvar hasProtoAccessor;\ntry {\n\t// eslint-disable-next-line no-extra-parens, no-proto\n\thasProtoAccessor = /** @type {{ __proto__?: typeof Array.prototype }} */ ([]).__proto__ === Array.prototype;\n} catch (e) {\n\tif (!e || typeof e !== 'object' || !('code' in e) || e.code !== 'ERR_PROTO_ACCESS') {\n\t\tthrow e;\n\t}\n}\n\n// eslint-disable-next-line no-extra-parens\nvar desc = !!hasProtoAccessor && gOPD && gOPD(Object.prototype, /** @type {keyof typeof Object.prototype} */ ('__proto__'));\n\nvar $Object = Object;\nvar $getPrototypeOf = $Object.getPrototypeOf;\n\n/** @type {import('./get')} */\nmodule.exports = desc && typeof desc.get === 'function'\n\t? callBind([desc.get])\n\t: typeof $getPrototypeOf === 'function'\n\t\t? /** @type {import('./get')} */ function getDunder(value) {\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\treturn $getPrototypeOf(value == null ? value : $Object(value));\n\t\t}\n\t\t: false;\n","'use strict';\n\nvar reflectGetProto = require('./Reflect.getPrototypeOf');\nvar originalGetProto = require('./Object.getPrototypeOf');\n\nvar getDunderProto = require('dunder-proto/get');\n\n/** @type {import('.')} */\nmodule.exports = reflectGetProto\n\t? function getProto(O) {\n\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\treturn reflectGetProto(O);\n\t}\n\t: originalGetProto\n\t\t? function getProto(O) {\n\t\t\tif (!O || (typeof O !== 'object' && typeof O !== 'function')) {\n\t\t\t\tthrow new TypeError('getProto: not an object');\n\t\t\t}\n\t\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\t\treturn originalGetProto(O);\n\t\t}\n\t\t: getDunderProto\n\t\t\t? function getProto(O) {\n\t\t\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\t\t\treturn getDunderProto(O);\n\t\t\t}\n\t\t\t: null;\n","'use strict';\n\nvar call = Function.prototype.call;\nvar $hasOwn = Object.prototype.hasOwnProperty;\nvar bind = require('function-bind');\n\n/** @type {import('.')} */\nmodule.exports = bind.call(call, $hasOwn);\n","'use strict';\n\nvar undefined;\n\nvar $Object = require('es-object-atoms');\n\nvar $Error = require('es-errors');\nvar $EvalError = require('es-errors/eval');\nvar $RangeError = require('es-errors/range');\nvar $ReferenceError = require('es-errors/ref');\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\nvar $URIError = require('es-errors/uri');\n\nvar abs = require('math-intrinsics/abs');\nvar floor = require('math-intrinsics/floor');\nvar max = require('math-intrinsics/max');\nvar min = require('math-intrinsics/min');\nvar pow = require('math-intrinsics/pow');\nvar round = require('math-intrinsics/round');\nvar sign = require('math-intrinsics/sign');\n\nvar $Function = Function;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = require('gopd');\nvar $defineProperty = require('es-define-property');\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = require('get-proto');\nvar $ObjectGPO = require('get-proto/Object.getPrototypeOf');\nvar $ReflectGPO = require('get-proto/Reflect.getPrototypeOf');\n\nvar $apply = require('call-bind-apply-helpers/functionApply');\nvar $call = require('call-bind-apply-helpers/functionCall');\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t__proto__: null,\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array,\n\t'%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': $Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': $EvalError,\n\t'%Float16Array%': typeof Float16Array === 'undefined' ? undefined : Float16Array,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': $Object,\n\t'%Object.getOwnPropertyDescriptor%': $gOPD,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': $RangeError,\n\t'%ReferenceError%': $ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': $URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet,\n\n\t'%Function.prototype.call%': $call,\n\t'%Function.prototype.apply%': $apply,\n\t'%Object.defineProperty%': $defineProperty,\n\t'%Object.getPrototypeOf%': $ObjectGPO,\n\t'%Math.abs%': abs,\n\t'%Math.floor%': floor,\n\t'%Math.max%': max,\n\t'%Math.min%': min,\n\t'%Math.pow%': pow,\n\t'%Math.round%': round,\n\t'%Math.sign%': sign,\n\t'%Reflect.getPrototypeOf%': $ReflectGPO\n};\n\nif (getProto) {\n\ttry {\n\t\tnull.error; // eslint-disable-line no-unused-expressions\n\t} catch (e) {\n\t\t// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229\n\t\tvar errorProto = getProto(getProto(e));\n\t\tINTRINSICS['%Error.prototype%'] = errorProto;\n\t}\n}\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen && getProto) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t__proto__: null,\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('hasown');\nvar $concat = bind.call($call, Array.prototype.concat);\nvar $spliceApply = bind.call($apply, Array.prototype.splice);\nvar $replace = bind.call($call, String.prototype.replace);\nvar $strSlice = bind.call($call, String.prototype.slice);\nvar $exec = bind.call($call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBindBasic = require('call-bind-apply-helpers');\n\n/** @type {(thisArg: string, searchString: string, position?: number) => number} */\nvar $indexOf = callBindBasic([GetIntrinsic('%String.prototype.indexOf%')]);\n\n/** @type {import('.')} */\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\t/* eslint no-extra-parens: 0 */\n\n\tvar intrinsic = /** @type {(this: unknown, ...args: unknown[]) => unknown} */ (GetIntrinsic(name, !!allowMissing));\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBindBasic(/** @type {const} */ ([intrinsic]));\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bound');\nvar inspect = require('object-inspect');\n\nvar $TypeError = require('es-errors/type');\nvar $Map = GetIntrinsic('%Map%', true);\n\n/** @type {<K, V>(thisArg: Map<K, V>, key: K) => V} */\nvar $mapGet = callBound('Map.prototype.get', true);\n/** @type {<K, V>(thisArg: Map<K, V>, key: K, value: V) => void} */\nvar $mapSet = callBound('Map.prototype.set', true);\n/** @type {<K, V>(thisArg: Map<K, V>, key: K) => boolean} */\nvar $mapHas = callBound('Map.prototype.has', true);\n/** @type {<K, V>(thisArg: Map<K, V>, key: K) => boolean} */\nvar $mapDelete = callBound('Map.prototype.delete', true);\n/** @type {<K, V>(thisArg: Map<K, V>) => number} */\nvar $mapSize = callBound('Map.prototype.size', true);\n\n/** @type {import('.')} */\nmodule.exports = !!$Map && /** @type {Exclude<import('.'), false>} */ function getSideChannelMap() {\n\t/** @typedef {ReturnType<typeof getSideChannelMap>} Channel */\n\t/** @typedef {Parameters<Channel['get']>[0]} K */\n\t/** @typedef {Parameters<Channel['set']>[1]} V */\n\n\t/** @type {Map<K, V> | undefined} */ var $m;\n\n\t/** @type {Channel} */\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\t'delete': function (key) {\n\t\t\tif ($m) {\n\t\t\t\tvar result = $mapDelete($m, key);\n\t\t\t\tif ($mapSize($m) === 0) {\n\t\t\t\t\t$m = void undefined;\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tget: function (key) { // eslint-disable-line consistent-return\n\t\t\tif ($m) {\n\t\t\t\treturn $mapGet($m, key);\n\t\t\t}\n\t\t},\n\t\thas: function (key) {\n\t\t\tif ($m) {\n\t\t\t\treturn $mapHas($m, key);\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif (!$m) {\n\t\t\t\t// @ts-expect-error TS can't handle narrowing a variable inside a closure\n\t\t\t\t$m = new $Map();\n\t\t\t}\n\t\t\t$mapSet($m, key, value);\n\t\t}\n\t};\n\n\t// @ts-expect-error TODO: figure out why TS is erroring here\n\treturn channel;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bound');\nvar inspect = require('object-inspect');\nvar getSideChannelMap = require('side-channel-map');\n\nvar $TypeError = require('es-errors/type');\nvar $WeakMap = GetIntrinsic('%WeakMap%', true);\n\n/** @type {<K extends object, V>(thisArg: WeakMap<K, V>, key: K) => V} */\nvar $weakMapGet = callBound('WeakMap.prototype.get', true);\n/** @type {<K extends object, V>(thisArg: WeakMap<K, V>, key: K, value: V) => void} */\nvar $weakMapSet = callBound('WeakMap.prototype.set', true);\n/** @type {<K extends object, V>(thisArg: WeakMap<K, V>, key: K) => boolean} */\nvar $weakMapHas = callBound('WeakMap.prototype.has', true);\n/** @type {<K extends object, V>(thisArg: WeakMap<K, V>, key: K) => boolean} */\nvar $weakMapDelete = callBound('WeakMap.prototype.delete', true);\n\n/** @type {import('.')} */\nmodule.exports = $WeakMap\n\t? /** @type {Exclude<import('.'), false>} */ function getSideChannelWeakMap() {\n\t\t/** @typedef {ReturnType<typeof getSideChannelWeakMap>} Channel */\n\t\t/** @typedef {Parameters<Channel['get']>[0]} K */\n\t\t/** @typedef {Parameters<Channel['set']>[1]} V */\n\n\t\t/** @type {WeakMap<K & object, V> | undefined} */ var $wm;\n\t\t/** @type {Channel | undefined} */ var $m;\n\n\t\t/** @type {Channel} */\n\t\tvar channel = {\n\t\t\tassert: function (key) {\n\t\t\t\tif (!channel.has(key)) {\n\t\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t\t}\n\t\t\t},\n\t\t\t'delete': function (key) {\n\t\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\t\tif ($wm) {\n\t\t\t\t\t\treturn $weakMapDelete($wm, key);\n\t\t\t\t\t}\n\t\t\t\t} else if (getSideChannelMap) {\n\t\t\t\t\tif ($m) {\n\t\t\t\t\t\treturn $m['delete'](key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\tget: function (key) {\n\t\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\t\tif ($wm) {\n\t\t\t\t\t\treturn $weakMapGet($wm, key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn $m && $m.get(key);\n\t\t\t},\n\t\t\thas: function (key) {\n\t\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\t\tif ($wm) {\n\t\t\t\t\t\treturn $weakMapHas($wm, key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn !!$m && $m.has(key);\n\t\t\t},\n\t\t\tset: function (key, value) {\n\t\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\t\tif (!$wm) {\n\t\t\t\t\t\t$wm = new $WeakMap();\n\t\t\t\t\t}\n\t\t\t\t\t$weakMapSet($wm, key, value);\n\t\t\t\t} else if (getSideChannelMap) {\n\t\t\t\t\tif (!$m) {\n\t\t\t\t\t\t$m = getSideChannelMap();\n\t\t\t\t\t}\n\t\t\t\t\t// eslint-disable-next-line no-extra-parens\n\t\t\t\t\t/** @type {NonNullable<typeof $m>} */ ($m).set(key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t// @ts-expect-error TODO: figure out why this is erroring\n\t\treturn channel;\n\t}\n\t: getSideChannelMap;\n","'use strict';\n\nvar $TypeError = require('es-errors/type');\nvar inspect = require('object-inspect');\nvar getSideChannelList = require('side-channel-list');\nvar getSideChannelMap = require('side-channel-map');\nvar getSideChannelWeakMap = require('side-channel-weakmap');\n\nvar makeChannel = getSideChannelWeakMap || getSideChannelMap || getSideChannelList;\n\n/** @type {import('.')} */\nmodule.exports = function getSideChannel() {\n\t/** @typedef {ReturnType<typeof getSideChannel>} Channel */\n\n\t/** @type {Channel | undefined} */ var $channelData;\n\n\t/** @type {Channel} */\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\t'delete': function (key) {\n\t\t\treturn !!$channelData && $channelData['delete'](key);\n\t\t},\n\t\tget: function (key) {\n\t\t\treturn $channelData && $channelData.get(key);\n\t\t},\n\t\thas: function (key) {\n\t\t\treturn !!$channelData && $channelData.has(key);\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif (!$channelData) {\n\t\t\t\t$channelData = makeChannel();\n\t\t\t}\n\n\t\t\t$channelData.set(key, value);\n\t\t}\n\t};\n\t// @ts-expect-error TODO: figure out why this is erroring\n\treturn channel;\n};\n","'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nvar Format = {\n RFC1738: 'RFC1738',\n RFC3986: 'RFC3986'\n};\n\nmodule.exports = {\n 'default': Format.RFC3986,\n formatters: {\n RFC1738: function (value) {\n return replace.call(value, percentTwenties, '+');\n },\n RFC3986: function (value) {\n return String(value);\n }\n },\n RFC1738: Format.RFC1738,\n RFC3986: Format.RFC3986\n};\n","'use strict';\n\nvar formats = require('./formats');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar hexTable = (function () {\n var array = [];\n for (var i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n\n return array;\n}());\n\nvar compactQueue = function compactQueue(queue) {\n while (queue.length > 1) {\n var item = queue.pop();\n var obj = item.obj[item.prop];\n\n if (isArray(obj)) {\n var compacted = [];\n\n for (var j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n var obj = options && options.plainObjects ? { __proto__: null } : {};\n for (var i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nvar merge = function merge(target, source, options) {\n /* eslint no-param-reassign: 0 */\n if (!source) {\n return target;\n }\n\n if (typeof source !== 'object' && typeof source !== 'function') {\n if (isArray(target)) {\n target.push(source);\n } else if (target && typeof target === 'object') {\n if (\n (options && (options.plainObjects || options.allowPrototypes))\n || !has.call(Object.prototype, source)\n ) {\n target[source] = true;\n }\n } else {\n return [target, source];\n }\n\n return target;\n }\n\n if (!target || typeof target !== 'object') {\n return [target].concat(source);\n }\n\n var mergeTarget = target;\n if (isArray(target) && !isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (isArray(target) && isArray(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n var targetItem = target[i];\n if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n target[i] = merge(targetItem, item, options);\n } else {\n target.push(item);\n }\n } else {\n target[i] = item;\n }\n });\n return target;\n }\n\n return Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n } else {\n acc[key] = value;\n }\n return acc;\n }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n};\n\nvar decode = function (str, defaultDecoder, charset) {\n var strWithoutPlus = str.replace(/\\+/g, ' ');\n if (charset === 'iso-8859-1') {\n // unescape never throws, no try...catch needed:\n return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n }\n // utf-8\n try {\n return decodeURIComponent(strWithoutPlus);\n } catch (e) {\n return strWithoutPlus;\n }\n};\n\nvar limit = 1024;\n\n/* eslint operator-linebreak: [2, \"before\"] */\n\nvar encode = function encode(str, defaultEncoder, charset, kind, format) {\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n var string = str;\n if (typeof str === 'symbol') {\n string = Symbol.prototype.toString.call(str);\n } else if (typeof str !== 'string') {\n string = String(str);\n }\n\n if (charset === 'iso-8859-1') {\n return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n });\n }\n\n var out = '';\n for (var j = 0; j < string.length; j += limit) {\n var segment = string.length >= limit ? string.slice(j, j + limit) : string;\n var arr = [];\n\n for (var i = 0; i < segment.length; ++i) {\n var c = segment.charCodeAt(i);\n if (\n c === 0x2D // -\n || c === 0x2E // .\n || c === 0x5F // _\n || c === 0x7E // ~\n || (c >= 0x30 && c <= 0x39) // 0-9\n || (c >= 0x41 && c <= 0x5A) // a-z\n || (c >= 0x61 && c <= 0x7A) // A-Z\n || (format === formats.RFC1738 && (c === 0x28 || c === 0x29)) // ( )\n ) {\n arr[arr.length] = segment.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n arr[arr.length] = hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n arr[arr.length] = hexTable[0xC0 | (c >> 6)]\n + hexTable[0x80 | (c & 0x3F)];\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n arr[arr.length] = hexTable[0xE0 | (c >> 12)]\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\n + hexTable[0x80 | (c & 0x3F)];\n continue;\n }\n\n i += 1;\n c = 0x10000 + (((c & 0x3FF) << 10) | (segment.charCodeAt(i) & 0x3FF));\n\n arr[arr.length] = hexTable[0xF0 | (c >> 18)]\n + hexTable[0x80 | ((c >> 12) & 0x3F)]\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\n + hexTable[0x80 | (c & 0x3F)];\n }\n\n out += arr.join('');\n }\n\n return out;\n};\n\nvar compact = function compact(value) {\n var queue = [{ obj: { o: value }, prop: 'o' }];\n var refs = [];\n\n for (var i = 0; i < queue.length; ++i) {\n var item = queue[i];\n var obj = item.obj[item.prop];\n\n var keys = Object.keys(obj);\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var val = obj[key];\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({ obj: obj, prop: key });\n refs.push(val);\n }\n }\n }\n\n compactQueue(queue);\n\n return value;\n};\n\nvar isRegExp = function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nvar combine = function combine(a, b) {\n return [].concat(a, b);\n};\n\nvar maybeMap = function maybeMap(val, fn) {\n if (isArray(val)) {\n var mapped = [];\n for (var i = 0; i < val.length; i += 1) {\n mapped.push(fn(val[i]));\n }\n return mapped;\n }\n return fn(val);\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n combine: combine,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n maybeMap: maybeMap,\n merge: merge\n};\n","'use strict';\n\nvar getSideChannel = require('side-channel');\nvar utils = require('./utils');\nvar formats = require('./formats');\nvar has = Object.prototype.hasOwnProperty;\n\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) {\n return prefix + '[]';\n },\n comma: 'comma',\n indices: function indices(prefix, key) {\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) {\n return prefix;\n }\n};\n\nvar isArray = Array.isArray;\nvar push = Array.prototype.push;\nvar pushToArray = function (arr, valueOrArray) {\n push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\n};\n\nvar toISO = Date.prototype.toISOString;\n\nvar defaultFormat = formats['default'];\nvar defaults = {\n addQueryPrefix: false,\n allowDots: false,\n allowEmptyArrays: false,\n arrayFormat: 'indices',\n charset: 'utf-8',\n charsetSentinel: false,\n commaRoundTrip: false,\n delimiter: '&',\n encode: true,\n encodeDotInKeys: false,\n encoder: utils.encode,\n encodeValuesOnly: false,\n filter: void undefined,\n format: defaultFormat,\n formatter: formats.formatters[defaultFormat],\n // deprecated\n indices: false,\n serializeDate: function serializeDate(date) {\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar isNonNullishPrimitive = function isNonNullishPrimitive(v) {\n return typeof v === 'string'\n || typeof v === 'number'\n || typeof v === 'boolean'\n || typeof v === 'symbol'\n || typeof v === 'bigint';\n};\n\nvar sentinel = {};\n\nvar stringify = function stringify(\n object,\n prefix,\n generateArrayPrefix,\n commaRoundTrip,\n allowEmptyArrays,\n strictNullHandling,\n skipNulls,\n encodeDotInKeys,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n sideChannel\n) {\n var obj = object;\n\n var tmpSc = sideChannel;\n var step = 0;\n var findFlag = false;\n while ((tmpSc = tmpSc.get(sentinel)) !== void undefined && !findFlag) {\n // Where object last appeared in the ref tree\n var pos = tmpSc.get(object);\n step += 1;\n if (typeof pos !== 'undefined') {\n if (pos === step) {\n throw new RangeError('Cyclic object value');\n } else {\n findFlag = true; // Break while\n }\n }\n if (typeof tmpSc.get(sentinel) === 'undefined') {\n step = 0;\n }\n }\n\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n } else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n obj = utils.maybeMap(obj, function (value) {\n if (value instanceof Date) {\n return serializeDate(value);\n }\n return value;\n });\n }\n\n if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix;\n }\n\n obj = '';\n }\n\n if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key', format);\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))];\n }\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n if (generateArrayPrefix === 'comma' && isArray(obj)) {\n // we need to join elements in\n if (encodeValuesOnly && encoder) {\n obj = utils.maybeMap(obj, encoder);\n }\n objKeys = [{ value: obj.length > 0 ? obj.join(',') || null : void undefined }];\n } else if (isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n var encodedPrefix = encodeDotInKeys ? String(prefix).replace(/\\./g, '%2E') : String(prefix);\n\n var adjustedPrefix = commaRoundTrip && isArray(obj) && obj.length === 1 ? encodedPrefix + '[]' : encodedPrefix;\n\n if (allowEmptyArrays && isArray(obj) && obj.length === 0) {\n return adjustedPrefix + '[]';\n }\n\n for (var j = 0; j < objKeys.length; ++j) {\n var key = objKeys[j];\n var value = typeof key === 'object' && key && typeof key.value !== 'undefined'\n ? key.value\n : obj[key];\n\n if (skipNulls && value === null) {\n continue;\n }\n\n var encodedKey = allowDots && encodeDotInKeys ? String(key).replace(/\\./g, '%2E') : String(key);\n var keyPrefix = isArray(obj)\n ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(adjustedPrefix, encodedKey) : adjustedPrefix\n : adjustedPrefix + (allowDots ? '.' + encodedKey : '[' + encodedKey + ']');\n\n sideChannel.set(object, step);\n var valueSideChannel = getSideChannel();\n valueSideChannel.set(sentinel, sideChannel);\n pushToArray(values, stringify(\n value,\n keyPrefix,\n generateArrayPrefix,\n commaRoundTrip,\n allowEmptyArrays,\n strictNullHandling,\n skipNulls,\n encodeDotInKeys,\n generateArrayPrefix === 'comma' && encodeValuesOnly && isArray(obj) ? null : encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n valueSideChannel\n ));\n }\n\n return values;\n};\n\nvar normalizeStringifyOptions = function normalizeStringifyOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (typeof opts.allowEmptyArrays !== 'undefined' && typeof opts.allowEmptyArrays !== 'boolean') {\n throw new TypeError('`allowEmptyArrays` option can only be `true` or `false`, when provided');\n }\n\n if (typeof opts.encodeDotInKeys !== 'undefined' && typeof opts.encodeDotInKeys !== 'boolean') {\n throw new TypeError('`encodeDotInKeys` option can only be `true` or `false`, when provided');\n }\n\n if (opts.encoder !== null && typeof opts.encoder !== 'undefined' && typeof opts.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var charset = opts.charset || defaults.charset;\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n\n var format = formats['default'];\n if (typeof opts.format !== 'undefined') {\n if (!has.call(formats.formatters, opts.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n format = opts.format;\n }\n var formatter = formats.formatters[format];\n\n var filter = defaults.filter;\n if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n filter = opts.filter;\n }\n\n var arrayFormat;\n if (opts.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = opts.arrayFormat;\n } else if ('indices' in opts) {\n arrayFormat = opts.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = defaults.arrayFormat;\n }\n\n if ('commaRoundTrip' in opts && typeof opts.commaRoundTrip !== 'boolean') {\n throw new TypeError('`commaRoundTrip` must be a boolean, or absent');\n }\n\n var allowDots = typeof opts.allowDots === 'undefined' ? opts.encodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots;\n\n return {\n addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n allowDots: allowDots,\n allowEmptyArrays: typeof opts.allowEmptyArrays === 'boolean' ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,\n arrayFormat: arrayFormat,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n commaRoundTrip: !!opts.commaRoundTrip,\n delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n encodeDotInKeys: typeof opts.encodeDotInKeys === 'boolean' ? opts.encodeDotInKeys : defaults.encodeDotInKeys,\n encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n filter: filter,\n format: format,\n formatter: formatter,\n serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n sort: typeof opts.sort === 'function' ? opts.sort : null,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = normalizeStringifyOptions(opts);\n\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[options.arrayFormat];\n var commaRoundTrip = generateArrayPrefix === 'comma' && options.commaRoundTrip;\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (options.sort) {\n objKeys.sort(options.sort);\n }\n\n var sideChannel = getSideChannel();\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n var value = obj[key];\n\n if (options.skipNulls && value === null) {\n continue;\n }\n pushToArray(keys, stringify(\n value,\n key,\n generateArrayPrefix,\n commaRoundTrip,\n options.allowEmptyArrays,\n options.strictNullHandling,\n options.skipNulls,\n options.encodeDotInKeys,\n options.encode ? options.encoder : null,\n options.filter,\n options.sort,\n options.allowDots,\n options.serializeDate,\n options.format,\n options.formatter,\n options.encodeValuesOnly,\n options.charset,\n sideChannel\n ));\n }\n\n var joined = keys.join(options.delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n if (options.charsetSentinel) {\n if (options.charset === 'iso-8859-1') {\n // encodeURIComponent('&#10003;'), the \"numeric entity\" representation of a checkmark\n prefix += 'utf8=%26%2310003%3B&';\n } else {\n // encodeURIComponent('✓')\n prefix += 'utf8=%E2%9C%93&';\n }\n }\n\n return joined.length > 0 ? prefix + joined : '';\n};\n","'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar defaults = {\n allowDots: false,\n allowEmptyArrays: false,\n allowPrototypes: false,\n allowSparse: false,\n arrayLimit: 20,\n charset: 'utf-8',\n charsetSentinel: false,\n comma: false,\n decodeDotInKeys: false,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n duplicates: 'combine',\n ignoreQueryPrefix: false,\n interpretNumericEntities: false,\n parameterLimit: 1000,\n parseArrays: true,\n plainObjects: false,\n strictDepth: false,\n strictNullHandling: false,\n throwOnLimitExceeded: false\n};\n\nvar interpretNumericEntities = function (str) {\n return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n return String.fromCharCode(parseInt(numberStr, 10));\n });\n};\n\nvar parseArrayValue = function (val, options, currentArrayLength) {\n if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n return val.split(',');\n }\n\n if (options.throwOnLimitExceeded && currentArrayLength >= options.arrayLimit) {\n throw new RangeError('Array limit exceeded. Only ' + options.arrayLimit + ' element' + (options.arrayLimit === 1 ? '' : 's') + ' allowed in an array.');\n }\n\n return val;\n};\n\n// This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('&#10003;')\n\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = { __proto__: null };\n\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n cleanStr = cleanStr.replace(/%5B/gi, '[').replace(/%5D/gi, ']');\n\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(\n options.delimiter,\n options.throwOnLimitExceeded ? limit + 1 : limit\n );\n\n if (options.throwOnLimitExceeded && parts.length > limit) {\n throw new RangeError('Parameter limit exceeded. Only ' + limit + ' parameter' + (limit === 1 ? '' : 's') + ' allowed.');\n }\n\n var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n var i;\n\n var charset = options.charset;\n if (options.charsetSentinel) {\n for (i = 0; i < parts.length; ++i) {\n if (parts[i].indexOf('utf8=') === 0) {\n if (parts[i] === charsetSentinel) {\n charset = 'utf-8';\n } else if (parts[i] === isoSentinel) {\n charset = 'iso-8859-1';\n }\n skipIndex = i;\n i = parts.length; // The eslint settings do not allow break;\n }\n }\n }\n\n for (i = 0; i < parts.length; ++i) {\n if (i === skipIndex) {\n continue;\n }\n var part = parts[i];\n\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n var key;\n var val;\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder, charset, 'key');\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n\n val = utils.maybeMap(\n parseArrayValue(\n part.slice(pos + 1),\n options,\n isArray(obj[key]) ? obj[key].length : 0\n ),\n function (encodedVal) {\n return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n }\n );\n }\n\n if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n val = interpretNumericEntities(String(val));\n }\n\n if (part.indexOf('[]=') > -1) {\n val = isArray(val) ? [val] : val;\n }\n\n var existing = has.call(obj, key);\n if (existing && options.duplicates === 'combine') {\n obj[key] = utils.combine(obj[key], val);\n } else if (!existing || options.duplicates === 'last') {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function (chain, val, options, valuesParsed) {\n var currentArrayLength = 0;\n if (chain.length > 0 && chain[chain.length - 1] === '[]') {\n var parentKey = chain.slice(0, -1).join('');\n currentArrayLength = Array.isArray(val) && val[parentKey] ? val[parentKey].length : 0;\n }\n\n var leaf = valuesParsed ? val : parseArrayValue(val, options, currentArrayLength);\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]' && options.parseArrays) {\n obj = options.allowEmptyArrays && (leaf === '' || (options.strictNullHandling && leaf === null))\n ? []\n : utils.combine([], leaf);\n } else {\n obj = options.plainObjects ? { __proto__: null } : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var decodedRoot = options.decodeDotInKeys ? cleanRoot.replace(/%2E/g, '.') : cleanRoot;\n var index = parseInt(decodedRoot, 10);\n if (!options.parseArrays && decodedRoot === '') {\n obj = { 0: leaf };\n } else if (\n !isNaN(index)\n && root !== decodedRoot\n && String(index) === decodedRoot\n && index >= 0\n && (options.parseArrays && index <= options.arrayLimit)\n ) {\n obj = [];\n obj[index] = leaf;\n } else if (decodedRoot !== '__proto__') {\n obj[decodedRoot] = leaf;\n }\n }\n\n leaf = obj;\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n if (!givenKey) {\n return;\n }\n\n // Transform dot notation to bracket notation\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g;\n\n // Get the parent\n\n var segment = options.depth > 0 && brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key;\n\n // Stash the parent if it exists\n\n var keys = [];\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n }\n\n // Loop through children appending to the array until we hit depth\n\n var i = 0;\n while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n keys.push(segment[1]);\n }\n\n // If there's a remainder, check strictDepth option for throw, else just add whatever is left\n\n if (segment) {\n if (options.strictDepth === true) {\n throw new RangeError('Input depth exceeded depth option of ' + options.depth + ' and strictDepth is true');\n }\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (typeof opts.allowEmptyArrays !== 'undefined' && typeof opts.allowEmptyArrays !== 'boolean') {\n throw new TypeError('`allowEmptyArrays` option can only be `true` or `false`, when provided');\n }\n\n if (typeof opts.decodeDotInKeys !== 'undefined' && typeof opts.decodeDotInKeys !== 'boolean') {\n throw new TypeError('`decodeDotInKeys` option can only be `true` or `false`, when provided');\n }\n\n if (opts.decoder !== null && typeof opts.decoder !== 'undefined' && typeof opts.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n\n if (typeof opts.throwOnLimitExceeded !== 'undefined' && typeof opts.throwOnLimitExceeded !== 'boolean') {\n throw new TypeError('`throwOnLimitExceeded` option must be a boolean');\n }\n\n var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n\n var duplicates = typeof opts.duplicates === 'undefined' ? defaults.duplicates : opts.duplicates;\n\n if (duplicates !== 'combine' && duplicates !== 'first' && duplicates !== 'last') {\n throw new TypeError('The duplicates option must be either combine, first, or last');\n }\n\n var allowDots = typeof opts.allowDots === 'undefined' ? opts.decodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots;\n\n return {\n allowDots: allowDots,\n allowEmptyArrays: typeof opts.allowEmptyArrays === 'boolean' ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,\n allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n allowSparse: typeof opts.allowSparse === 'boolean' ? opts.allowSparse : defaults.allowSparse,\n arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n decodeDotInKeys: typeof opts.decodeDotInKeys === 'boolean' ? opts.decodeDotInKeys : defaults.decodeDotInKeys,\n decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,\n duplicates: duplicates,\n ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n parseArrays: opts.parseArrays !== false,\n plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n strictDepth: typeof opts.strictDepth === 'boolean' ? !!opts.strictDepth : defaults.strictDepth,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling,\n throwOnLimitExceeded: typeof opts.throwOnLimitExceeded === 'boolean' ? opts.throwOnLimitExceeded : false\n };\n};\n\nmodule.exports = function (str, opts) {\n var options = normalizeParseOptions(opts);\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? { __proto__: null } : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? { __proto__: null } : {};\n\n // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n obj = utils.merge(obj, newObj, options);\n }\n\n if (options.allowSparse === true) {\n return obj;\n }\n\n return utils.compact(obj);\n};\n","'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n","import * as qs from 'qs';\nconst OPTIONS_KEYS = [\n 'apiKey',\n 'idempotencyKey',\n 'stripeAccount',\n 'apiVersion',\n 'maxNetworkRetries',\n 'timeout',\n 'host',\n 'authenticator',\n 'stripeContext',\n 'additionalHeaders',\n 'streaming',\n];\nexport function isOptionsHash(o) {\n return (o &&\n typeof o === 'object' &&\n OPTIONS_KEYS.some((prop) => Object.prototype.hasOwnProperty.call(o, prop)));\n}\n/**\n * Stringifies an Object, accommodating nested objects\n * (forming the conventional key 'parent[child]=value')\n */\nexport function queryStringifyRequestData(data, apiMode) {\n return (qs\n .stringify(data, {\n serializeDate: (d) => Math.floor(d.getTime() / 1000).toString(),\n // Always use indexed format for arrays\n arrayFormat: 'indices',\n })\n // Don't use strict form encoding by changing the square bracket control\n // characters back to their literals. This is fine by the server, and\n // makes these parameter strings easier to read.\n .replace(/%5B/g, '[')\n .replace(/%5D/g, ']'));\n}\n/**\n * Outputs a new function with interpolated object property values.\n * Use like so:\n * const fn = makeURLInterpolator('some/url/{param1}/{param2}');\n * fn({ param1: 123, param2: 456 }); // => 'some/url/123/456'\n */\nexport const makeURLInterpolator = (() => {\n const rc = {\n '\\n': '\\\\n',\n '\"': '\\\\\"',\n '\\u2028': '\\\\u2028',\n '\\u2029': '\\\\u2029',\n };\n return (str) => {\n const cleanString = str.replace(/[\"\\n\\r\\u2028\\u2029]/g, ($0) => rc[$0]);\n return (outputs) => {\n return cleanString.replace(/\\{([\\s\\S]+?)\\}/g, ($0, $1) => {\n const output = outputs[$1];\n if (isValidEncodeUriComponentType(output))\n return encodeURIComponent(output);\n return '';\n });\n };\n };\n})();\nfunction isValidEncodeUriComponentType(value) {\n return ['number', 'string', 'boolean'].includes(typeof value);\n}\nexport function extractUrlParams(path) {\n const params = path.match(/\\{\\w+\\}/g);\n if (!params) {\n return [];\n }\n return params.map((param) => param.replace(/[{}]/g, ''));\n}\n/**\n * Return the data argument from a list of arguments\n *\n * @param {object[]} args\n * @returns {object}\n */\nexport function getDataFromArgs(args) {\n if (!Array.isArray(args) || !args[0] || typeof args[0] !== 'object') {\n return {};\n }\n if (!isOptionsHash(args[0])) {\n return args.shift();\n }\n const argKeys = Object.keys(args[0]);\n const optionKeysInArgs = argKeys.filter((key) => OPTIONS_KEYS.includes(key));\n // In some cases options may be the provided as the first argument.\n // Here we're detecting a case where there are two distinct arguments\n // (the first being args and the second options) and with known\n // option keys in the first so that we can warn the user about it.\n if (optionKeysInArgs.length > 0 &&\n optionKeysInArgs.length !== argKeys.length) {\n emitWarning(`Options found in arguments (${optionKeysInArgs.join(', ')}). Did you mean to pass an options object? See https://github.com/stripe/stripe-node/wiki/Passing-Options.`);\n }\n return {};\n}\n/**\n * Return the options hash from a list of arguments\n */\nexport function getOptionsFromArgs(args) {\n const opts = {\n host: null,\n headers: {},\n settings: {},\n streaming: false,\n };\n if (args.length > 0) {\n const arg = args[args.length - 1];\n if (typeof arg === 'string') {\n opts.authenticator = createApiKeyAuthenticator(args.pop());\n }\n else if (isOptionsHash(arg)) {\n const params = Object.assign({}, args.pop());\n const extraKeys = Object.keys(params).filter((key) => !OPTIONS_KEYS.includes(key));\n if (extraKeys.length) {\n emitWarning(`Invalid options found (${extraKeys.join(', ')}); ignoring.`);\n }\n if (params.apiKey) {\n opts.authenticator = createApiKeyAuthenticator(params.apiKey);\n }\n if (params.idempotencyKey) {\n opts.headers['Idempotency-Key'] = params.idempotencyKey;\n }\n if (params.stripeAccount) {\n opts.headers['Stripe-Account'] = params.stripeAccount;\n }\n if (params.stripeContext) {\n if (opts.headers['Stripe-Account']) {\n throw new Error(\"Can't specify both stripeAccount and stripeContext.\");\n }\n opts.headers['Stripe-Context'] = params.stripeContext;\n }\n if (params.apiVersion) {\n opts.headers['Stripe-Version'] = params.apiVersion;\n }\n if (Number.isInteger(params.maxNetworkRetries)) {\n opts.settings.maxNetworkRetries = params.maxNetworkRetries;\n }\n if (Number.isInteger(params.timeout)) {\n opts.settings.timeout = params.timeout;\n }\n if (params.host) {\n opts.host = params.host;\n }\n if (params.authenticator) {\n if (params.apiKey) {\n throw new Error(\"Can't specify both apiKey and authenticator.\");\n }\n if (typeof params.authenticator !== 'function') {\n throw new Error('The authenticator must be a function ' +\n 'receiving a request as the first parameter.');\n }\n opts.authenticator = params.authenticator;\n }\n if (params.additionalHeaders) {\n opts.headers = params.additionalHeaders;\n }\n if (params.streaming) {\n opts.streaming = true;\n }\n }\n }\n return opts;\n}\n/**\n * Provide simple \"Class\" extension mechanism.\n * <!-- Public API accessible via Stripe.StripeResource.extend -->\n */\nexport function protoExtend(sub) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const Super = this;\n const Constructor = Object.prototype.hasOwnProperty.call(sub, 'constructor')\n ? sub.constructor\n : function (...args) {\n Super.apply(this, args);\n };\n // This initialization logic is somewhat sensitive to be compatible with\n // divergent JS implementations like the one found in Qt. See here for more\n // context:\n //\n // https://github.com/stripe/stripe-node/pull/334\n Object.assign(Constructor, Super);\n Constructor.prototype = Object.create(Super.prototype);\n Object.assign(Constructor.prototype, sub);\n return Constructor;\n}\n/**\n * Remove empty values from an object\n */\nexport function removeNullish(obj) {\n if (typeof obj !== 'object') {\n throw new Error('Argument must be an object');\n }\n return Object.keys(obj).reduce((result, key) => {\n if (obj[key] != null) {\n result[key] = obj[key];\n }\n return result;\n }, {});\n}\n/**\n * Normalize standard HTTP Headers:\n * {'foo-bar': 'hi'}\n * becomes\n * {'Foo-Bar': 'hi'}\n */\nexport function normalizeHeaders(obj) {\n if (!(obj && typeof obj === 'object')) {\n return obj;\n }\n return Object.keys(obj).reduce((result, header) => {\n result[normalizeHeader(header)] = obj[header];\n return result;\n }, {});\n}\n/**\n * Stolen from https://github.com/marten-de-vries/header-case-normalizer/blob/master/index.js#L36-L41\n * without the exceptions which are irrelevant to us.\n */\nexport function normalizeHeader(header) {\n return header\n .split('-')\n .map((text) => text.charAt(0).toUpperCase() + text.substr(1).toLowerCase())\n .join('-');\n}\nexport function callbackifyPromiseWithTimeout(promise, callback) {\n if (callback) {\n // Ensure callback is called outside of promise stack.\n return promise.then((res) => {\n setTimeout(() => {\n callback(null, res);\n }, 0);\n }, (err) => {\n setTimeout(() => {\n callback(err, null);\n }, 0);\n });\n }\n return promise;\n}\n/**\n * Allow for special capitalization cases (such as OAuth)\n */\nexport function pascalToCamelCase(name) {\n if (name === 'OAuth') {\n return 'oauth';\n }\n else {\n return name[0].toLowerCase() + name.substring(1);\n }\n}\nexport function emitWarning(warning) {\n if (typeof process.emitWarning !== 'function') {\n return console.warn(`Stripe: ${warning}`); /* eslint-disable-line no-console */\n }\n return process.emitWarning(warning, 'Stripe');\n}\nexport function isObject(obj) {\n const type = typeof obj;\n return (type === 'function' || type === 'object') && !!obj;\n}\n// For use in multipart requests\nexport function flattenAndStringify(data) {\n const result = {};\n const step = (obj, prevKey) => {\n Object.entries(obj).forEach(([key, value]) => {\n const newKey = prevKey ? `${prevKey}[${key}]` : key;\n if (isObject(value)) {\n if (!(value instanceof Uint8Array) &&\n !Object.prototype.hasOwnProperty.call(value, 'data')) {\n // Non-buffer non-file Objects are recursively flattened\n return step(value, newKey);\n }\n else {\n // Buffers and file objects are stored without modification\n result[newKey] = value;\n }\n }\n else {\n // Primitives are converted to strings\n result[newKey] = String(value);\n }\n });\n };\n step(data, null);\n return result;\n}\nexport function validateInteger(name, n, defaultVal) {\n if (!Number.isInteger(n)) {\n if (defaultVal !== undefined) {\n return defaultVal;\n }\n else {\n throw new Error(`${name} must be an integer`);\n }\n }\n return n;\n}\nexport function determineProcessUserAgentProperties() {\n return typeof process === 'undefined'\n ? {}\n : {\n lang_version: process.version,\n platform: process.platform,\n };\n}\nexport function createApiKeyAuthenticator(apiKey) {\n const authenticator = (request) => {\n request.headers.Authorization = 'Bearer ' + apiKey;\n return Promise.resolve();\n };\n // For testing\n authenticator._apiKey = apiKey;\n return authenticator;\n}\n/**\n * Joins an array of Uint8Arrays into a single Uint8Array\n */\nexport function concat(arrays) {\n const totalLength = arrays.reduce((len, array) => len + array.length, 0);\n const merged = new Uint8Array(totalLength);\n let offset = 0;\n arrays.forEach((array) => {\n merged.set(array, offset);\n offset += array.length;\n });\n return merged;\n}\n/**\n * Replaces Date objects with Unix timestamps\n */\nfunction dateTimeReplacer(key, value) {\n if (this[key] instanceof Date) {\n return Math.floor(this[key].getTime() / 1000).toString();\n }\n return value;\n}\n/**\n * JSON stringifies an Object, replacing Date objects with Unix timestamps\n */\nexport function jsonStringifyRequestData(data) {\n return JSON.stringify(data, dateTimeReplacer);\n}\n/**\n * Inspects the given path to determine if the endpoint is for v1 or v2 API\n */\nexport function getAPIMode(path) {\n if (!path) {\n return 'v1';\n }\n return path.startsWith('/v2') ? 'v2' : 'v1';\n}\nexport function parseHttpHeaderAsString(header) {\n if (Array.isArray(header)) {\n return header.join(', ');\n }\n return String(header);\n}\nexport function parseHttpHeaderAsNumber(header) {\n const number = Array.isArray(header) ? header[0] : header;\n return Number(number);\n}\nexport function parseHeadersForFetch(headers) {\n return Object.entries(headers).map(([key, value]) => {\n return [key, parseHttpHeaderAsString(value)];\n });\n}\n","/**\n * Encapsulates the logic for issuing a request to the Stripe API.\n *\n * A custom HTTP client should should implement:\n * 1. A response class which extends HttpClientResponse and wraps around their\n * own internal representation of a response.\n * 2. A client class which extends HttpClient and implements all methods,\n * returning their own response class when making requests.\n */\nexport class HttpClient {\n /** The client name used for diagnostics. */\n getClientName() {\n throw new Error('getClientName not implemented.');\n }\n makeRequest(host, port, path, method, headers, requestData, protocol, timeout) {\n throw new Error('makeRequest not implemented.');\n }\n /** Helper to make a consistent timeout error across implementations. */\n static makeTimeoutError() {\n const timeoutErr = new TypeError(HttpClient.TIMEOUT_ERROR_CODE);\n timeoutErr.code = HttpClient.TIMEOUT_ERROR_CODE;\n return timeoutErr;\n }\n}\n// Public API accessible via Stripe.HttpClient\nHttpClient.CONNECTION_CLOSED_ERROR_CODES = ['ECONNRESET', 'EPIPE'];\nHttpClient.TIMEOUT_ERROR_CODE = 'ETIMEDOUT';\nexport class HttpClientResponse {\n constructor(statusCode, headers) {\n this._statusCode = statusCode;\n this._headers = headers;\n }\n getStatusCode() {\n return this._statusCode;\n }\n getHeaders() {\n return this._headers;\n }\n getRawResponse() {\n throw new Error('getRawResponse not implemented.');\n }\n toStream(streamCompleteCallback) {\n throw new Error('toStream not implemented.');\n }\n toJSON() {\n throw new Error('toJSON not implemented.');\n }\n}\n","import { parseHeadersForFetch } from '../utils.js';\nimport { HttpClient, HttpClientResponse, } from './HttpClient.js';\n/**\n * HTTP client which uses a `fetch` function to issue requests.\n *\n * By default relies on the global `fetch` function, but an optional function\n * can be passed in. If passing in a function, it is expected to match the Web\n * Fetch API. As an example, this could be the function provided by the\n * node-fetch package (https://github.com/node-fetch/node-fetch).\n */\nexport class FetchHttpClient extends HttpClient {\n constructor(fetchFn) {\n super();\n // Default to global fetch if available\n if (!fetchFn) {\n if (!globalThis.fetch) {\n throw new Error('fetch() function not provided and is not defined in the global scope. ' +\n 'You must provide a fetch implementation.');\n }\n fetchFn = globalThis.fetch;\n }\n // Both timeout behaviors differs from Node:\n // - Fetch uses a single timeout for the entire length of the request.\n // - Node is more fine-grained and resets the timeout after each stage of the request.\n if (globalThis.AbortController) {\n // Utilise native AbortController if available\n // AbortController was added in Node v15.0.0, v14.17.0\n this._fetchFn = FetchHttpClient.makeFetchWithAbortTimeout(fetchFn);\n }\n else {\n // Fall back to racing against a timeout promise if not available in the runtime\n // This does not actually cancel the underlying fetch operation or resources\n this._fetchFn = FetchHttpClient.makeFetchWithRaceTimeout(fetchFn);\n }\n }\n static makeFetchWithRaceTimeout(fetchFn) {\n return (url, init, timeout) => {\n let pendingTimeoutId;\n const timeoutPromise = new Promise((_, reject) => {\n pendingTimeoutId = setTimeout(() => {\n pendingTimeoutId = null;\n reject(HttpClient.makeTimeoutError());\n }, timeout);\n });\n const fetchPromise = fetchFn(url, init);\n return Promise.race([fetchPromise, timeoutPromise]).finally(() => {\n if (pendingTimeoutId) {\n clearTimeout(pendingTimeoutId);\n }\n });\n };\n }\n static makeFetchWithAbortTimeout(fetchFn) {\n return async (url, init, timeout) => {\n // Use AbortController because AbortSignal.timeout() was added later in Node v17.3.0, v16.14.0\n const abort = new AbortController();\n let timeoutId = setTimeout(() => {\n timeoutId = null;\n abort.abort(HttpClient.makeTimeoutError());\n }, timeout);\n try {\n return await fetchFn(url, Object.assign(Object.assign({}, init), { signal: abort.signal }));\n }\n catch (err) {\n // Some implementations, like node-fetch, do not respect the reason passed to AbortController.abort()\n // and instead it always throws an AbortError\n // We catch this case to normalise all timeout errors\n if (err.name === 'AbortError') {\n throw HttpClient.makeTimeoutError();\n }\n else {\n throw err;\n }\n }\n finally {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n }\n };\n }\n /** @override. */\n getClientName() {\n return 'fetch';\n }\n async makeRequest(host, port, path, method, headers, requestData, protocol, timeout) {\n const isInsecureConnection = protocol === 'http';\n const url = new URL(path, `${isInsecureConnection ? 'http' : 'https'}://${host}`);\n url.port = port;\n // For methods which expect payloads, we should always pass a body value\n // even when it is empty. Without this, some JS runtimes (eg. Deno) will\n // inject a second Content-Length header. See https://github.com/stripe/stripe-node/issues/1519\n // for more details.\n const methodHasPayload = method == 'POST' || method == 'PUT' || method == 'PATCH';\n const body = requestData || (methodHasPayload ? '' : undefined);\n const res = await this._fetchFn(url.toString(), {\n method,\n headers: parseHeadersForFetch(headers),\n body: body,\n }, timeout);\n return new FetchHttpClientResponse(res);\n }\n}\nexport class FetchHttpClientResponse extends HttpClientResponse {\n constructor(res) {\n super(res.status, FetchHttpClientResponse._transformHeadersToObject(res.headers));\n this._res = res;\n }\n getRawResponse() {\n return this._res;\n }\n toStream(streamCompleteCallback) {\n // Unfortunately `fetch` does not have event handlers for when the stream is\n // completely read. We therefore invoke the streamCompleteCallback right\n // away. This callback emits a response event with metadata and completes\n // metrics, so it's ok to do this without waiting for the stream to be\n // completely read.\n streamCompleteCallback();\n // Fetch's `body` property is expected to be a readable stream of the body.\n return this._res.body;\n }\n toJSON() {\n return this._res.json();\n }\n static _transformHeadersToObject(headers) {\n // Fetch uses a Headers instance so this must be converted to a barebones\n // JS object to meet the HttpClient interface.\n const headersObj = {};\n for (const entry of headers) {\n if (!Array.isArray(entry) || entry.length != 2) {\n 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.');\n }\n headersObj[entry[0]] = entry[1];\n }\n return headersObj;\n }\n}\n","/**\n * Interface encapsulating the various crypto computations used by the library,\n * allowing pluggable underlying crypto implementations.\n */\nexport class CryptoProvider {\n /**\n * Computes a SHA-256 HMAC given a secret and a payload (encoded in UTF-8).\n * The output HMAC should be encoded in hexadecimal.\n *\n * Sample values for implementations:\n * - computeHMACSignature('', 'test_secret') => 'f7f9bd47fb987337b5796fdc1fdb9ba221d0d5396814bfcaf9521f43fd8927fd'\n * - computeHMACSignature('\\ud83d\\ude00', 'test_secret') => '837da296d05c4fe31f61d5d7ead035099d9585a5bcde87de952012a78f0b0c43\n */\n computeHMACSignature(payload, secret) {\n throw new Error('computeHMACSignature not implemented.');\n }\n /**\n * Asynchronous version of `computeHMACSignature`. Some implementations may\n * only allow support async signature computation.\n *\n * Computes a SHA-256 HMAC given a secret and a payload (encoded in UTF-8).\n * The output HMAC should be encoded in hexadecimal.\n *\n * Sample values for implementations:\n * - computeHMACSignature('', 'test_secret') => 'f7f9bd47fb987337b5796fdc1fdb9ba221d0d5396814bfcaf9521f43fd8927fd'\n * - computeHMACSignature('\\ud83d\\ude00', 'test_secret') => '837da296d05c4fe31f61d5d7ead035099d9585a5bcde87de952012a78f0b0c43\n */\n computeHMACSignatureAsync(payload, secret) {\n throw new Error('computeHMACSignatureAsync not implemented.');\n }\n /**\n * Computes a SHA-256 hash of the data.\n */\n computeSHA256Async(data) {\n throw new Error('computeSHA256 not implemented.');\n }\n}\n/**\n * If the crypto provider only supports asynchronous operations,\n * throw CryptoProviderOnlySupportsAsyncError instead of\n * a generic error so that the caller can choose to provide\n * a more helpful error message to direct the user to use\n * an asynchronous pathway.\n */\nexport class CryptoProviderOnlySupportsAsyncError extends Error {\n}\n","import { CryptoProvider, CryptoProviderOnlySupportsAsyncError, } from './CryptoProvider.js';\n/**\n * `CryptoProvider which uses the SubtleCrypto interface of the Web Crypto API.\n *\n * This only supports asynchronous operations.\n */\nexport class SubtleCryptoProvider extends CryptoProvider {\n constructor(subtleCrypto) {\n super();\n // If no subtle crypto is interface, default to the global namespace. This\n // is to allow custom interfaces (eg. using the Node webcrypto interface in\n // tests).\n this.subtleCrypto = subtleCrypto || crypto.subtle;\n }\n /** @override */\n computeHMACSignature(payload, secret) {\n throw new CryptoProviderOnlySupportsAsyncError('SubtleCryptoProvider cannot be used in a synchronous context.');\n }\n /** @override */\n async computeHMACSignatureAsync(payload, secret) {\n const encoder = new TextEncoder();\n const key = await this.subtleCrypto.importKey('raw', encoder.encode(secret), {\n name: 'HMAC',\n hash: { name: 'SHA-256' },\n }, false, ['sign']);\n const signatureBuffer = await this.subtleCrypto.sign('hmac', key, encoder.encode(payload));\n // crypto.subtle returns the signature in base64 format. This must be\n // encoded in hex to match the CryptoProvider contract. We map each byte in\n // the buffer to its corresponding hex octet and then combine into a string.\n const signatureBytes = new Uint8Array(signatureBuffer);\n const signatureHexCodes = new Array(signatureBytes.length);\n for (let i = 0; i < signatureBytes.length; i++) {\n signatureHexCodes[i] = byteHexMapping[signatureBytes[i]];\n }\n return signatureHexCodes.join('');\n }\n /** @override */\n async computeSHA256Async(data) {\n return new Uint8Array(await this.subtleCrypto.digest('SHA-256', data));\n }\n}\n// Cached mapping of byte to hex representation. We do this once to avoid re-\n// computing every time we need to convert the result of a signature to hex.\nconst byteHexMapping = new Array(256);\nfor (let i = 0; i < byteHexMapping.length; i++) {\n byteHexMapping[i] = i.toString(16).padStart(2, '0');\n}\n","import { FetchHttpClient } from '../net/FetchHttpClient.js';\nimport { SubtleCryptoProvider } from '../crypto/SubtleCryptoProvider.js';\n/**\n * Interface encapsulating various utility functions whose\n * implementations depend on the platform / JS runtime.\n */\nexport class PlatformFunctions {\n constructor() {\n this._fetchFn = null;\n this._agent = null;\n }\n /**\n * Gets uname with Node's built-in `exec` function, if available.\n */\n getUname() {\n throw new Error('getUname not implemented.');\n }\n /**\n * Generates a v4 UUID. See https://stackoverflow.com/a/2117523\n */\n uuid4() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = (Math.random() * 16) | 0;\n const v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n }\n /**\n * Compares strings in constant time.\n */\n secureCompare(a, b) {\n // return early here if buffer lengths are not equal\n if (a.length !== b.length) {\n return false;\n }\n const len = a.length;\n let result = 0;\n for (let i = 0; i < len; ++i) {\n result |= a.charCodeAt(i) ^ b.charCodeAt(i);\n }\n return result === 0;\n }\n /**\n * Creates an event emitter.\n */\n createEmitter() {\n throw new Error('createEmitter not implemented.');\n }\n /**\n * Checks if the request data is a stream. If so, read the entire stream\n * to a buffer and return the buffer.\n */\n tryBufferData(data) {\n throw new Error('tryBufferData not implemented.');\n }\n /**\n * Creates an HTTP client which uses the Node `http` and `https` packages\n * to issue requests.\n */\n createNodeHttpClient(agent) {\n throw new Error('createNodeHttpClient not implemented.');\n }\n /**\n * Creates an HTTP client for issuing Stripe API requests which uses the Web\n * Fetch API.\n *\n * A fetch function can optionally be passed in as a parameter. If none is\n * passed, will default to the default `fetch` function in the global scope.\n */\n createFetchHttpClient(fetchFn) {\n return new FetchHttpClient(fetchFn);\n }\n /**\n * Creates an HTTP client using runtime-specific APIs.\n */\n createDefaultHttpClient() {\n throw new Error('createDefaultHttpClient not implemented.');\n }\n /**\n * Creates a CryptoProvider which uses the Node `crypto` package for its computations.\n */\n createNodeCryptoProvider() {\n throw new Error('createNodeCryptoProvider not implemented.');\n }\n /**\n * Creates a CryptoProvider which uses the SubtleCrypto interface of the Web Crypto API.\n */\n createSubtleCryptoProvider(subtleCrypto) {\n return new SubtleCryptoProvider(subtleCrypto);\n }\n createDefaultCryptoProvider() {\n throw new Error('createDefaultCryptoProvider not implemented.');\n }\n}\n","/**\n * @private\n * (For internal use in stripe-node.)\n * Wrapper around the Event Web API.\n */\nclass _StripeEvent extends Event {\n constructor(eventName, data) {\n super(eventName);\n this.data = data;\n }\n}\n/** Minimal EventEmitter wrapper around EventTarget. */\nexport class StripeEmitter {\n constructor() {\n this.eventTarget = new EventTarget();\n this.listenerMapping = new Map();\n }\n on(eventName, listener) {\n const listenerWrapper = (event) => {\n listener(event.data);\n };\n this.listenerMapping.set(listener, listenerWrapper);\n return this.eventTarget.addEventListener(eventName, listenerWrapper);\n }\n removeListener(eventName, listener) {\n const listenerWrapper = this.listenerMapping.get(listener);\n this.listenerMapping.delete(listener);\n return this.eventTarget.removeEventListener(eventName, listenerWrapper);\n }\n once(eventName, listener) {\n const listenerWrapper = (event) => {\n listener(event.data);\n };\n this.listenerMapping.set(listener, listenerWrapper);\n return this.eventTarget.addEventListener(eventName, listenerWrapper, {\n once: true,\n });\n }\n emit(eventName, data) {\n return this.eventTarget.dispatchEvent(new _StripeEvent(eventName, data));\n }\n}\n","import { PlatformFunctions } from './PlatformFunctions.js';\nimport { StripeEmitter } from '../StripeEmitter.js';\n/**\n * Specializes WebPlatformFunctions using APIs available in Web workers.\n */\nexport class WebPlatformFunctions extends PlatformFunctions {\n /** @override */\n getUname() {\n return Promise.resolve(null);\n }\n /** @override */\n createEmitter() {\n return new StripeEmitter();\n }\n /** @override */\n tryBufferData(data) {\n if (data.file.data instanceof ReadableStream) {\n throw new Error('Uploading a file as a stream is not supported in non-Node environments. Please open or upvote an issue at github.com/stripe/stripe-node if you use this, detailing your use-case.');\n }\n return Promise.resolve(data);\n }\n /** @override */\n createNodeHttpClient() {\n throw new Error('Stripe: `createNodeHttpClient()` is not available in non-Node environments. Please use `createFetchHttpClient()` instead.');\n }\n /** @override */\n createDefaultHttpClient() {\n return super.createFetchHttpClient();\n }\n /** @override */\n createNodeCryptoProvider() {\n throw new Error('Stripe: `createNodeCryptoProvider()` is not available in non-Node environments. Please use `createSubtleCryptoProvider()` instead.');\n }\n /** @override */\n createDefaultCryptoProvider() {\n return this.createSubtleCryptoProvider();\n }\n}\n","/* eslint-disable camelcase */\n/* eslint-disable no-warning-comments */\nexport const generateV1Error = (rawStripeError) => {\n switch (rawStripeError.type) {\n case 'card_error':\n return new StripeCardError(rawStripeError);\n case 'invalid_request_error':\n return new StripeInvalidRequestError(rawStripeError);\n case 'api_error':\n return new StripeAPIError(rawStripeError);\n case 'authentication_error':\n return new StripeAuthenticationError(rawStripeError);\n case 'rate_limit_error':\n return new StripeRateLimitError(rawStripeError);\n case 'idempotency_error':\n return new StripeIdempotencyError(rawStripeError);\n case 'invalid_grant':\n return new StripeInvalidGrantError(rawStripeError);\n default:\n return new StripeUnknownError(rawStripeError);\n }\n};\n// eslint-disable-next-line complexity\nexport const generateV2Error = (rawStripeError) => {\n switch (rawStripeError.type) {\n // switchCases: The beginning of the section generated from our OpenAPI spec\n case 'temporary_session_expired':\n return new TemporarySessionExpiredError(rawStripeError);\n // switchCases: The end of the section generated from our OpenAPI spec\n }\n // Special handling for requests with missing required fields in V2 APIs.\n // invalid_field response in V2 APIs returns the field 'code' instead of 'type'.\n switch (rawStripeError.code) {\n case 'invalid_fields':\n return new StripeInvalidRequestError(rawStripeError);\n }\n return generateV1Error(rawStripeError);\n};\n/**\n * StripeError is the base error from which all other more specific Stripe errors derive.\n * Specifically for errors returned from Stripe's REST API.\n */\nexport class StripeError extends Error {\n constructor(raw = {}, type = null) {\n var _a;\n super(raw.message);\n this.type = type || this.constructor.name;\n this.raw = raw;\n this.rawType = raw.type;\n this.code = raw.code;\n this.doc_url = raw.doc_url;\n this.param = raw.param;\n this.detail = raw.detail;\n this.headers = raw.headers;\n this.requestId = raw.requestId;\n this.statusCode = raw.statusCode;\n this.message = (_a = raw.message) !== null && _a !== void 0 ? _a : '';\n this.userMessage = raw.user_message;\n this.charge = raw.charge;\n this.decline_code = raw.decline_code;\n this.payment_intent = raw.payment_intent;\n this.payment_method = raw.payment_method;\n this.payment_method_type = raw.payment_method_type;\n this.setup_intent = raw.setup_intent;\n this.source = raw.source;\n }\n}\n/**\n * Helper factory which takes raw stripe errors and outputs wrapping instances\n */\nStripeError.generate = generateV1Error;\n// Specific Stripe Error types:\n/**\n * CardError is raised when a user enters a card that can't be charged for\n * some reason.\n */\nexport class StripeCardError extends StripeError {\n constructor(raw = {}) {\n super(raw, 'StripeCardError');\n }\n}\n/**\n * InvalidRequestError is raised when a request is initiated with invalid\n * parameters.\n */\nexport class StripeInvalidRequestError extends StripeError {\n constructor(raw = {}) {\n super(raw, 'StripeInvalidRequestError');\n }\n}\n/**\n * APIError is a generic error that may be raised in cases where none of the\n * other named errors cover the problem. It could also be raised in the case\n * that a new error has been introduced in the API, but this version of the\n * Node.JS SDK doesn't know how to handle it.\n */\nexport class StripeAPIError extends StripeError {\n constructor(raw = {}) {\n super(raw, 'StripeAPIError');\n }\n}\n/**\n * AuthenticationError is raised when invalid credentials are used to connect\n * to Stripe's servers.\n */\nexport class StripeAuthenticationError extends StripeError {\n constructor(raw = {}) {\n super(raw, 'StripeAuthenticationError');\n }\n}\n/**\n * PermissionError is raised in cases where access was attempted on a resource\n * that wasn't allowed.\n */\nexport class StripePermissionError extends StripeError {\n constructor(raw = {}) {\n super(raw, 'StripePermissionError');\n }\n}\n/**\n * RateLimitError is raised in cases where an account is putting too much load\n * on Stripe's API servers (usually by performing too many requests). Please\n * back off on request rate.\n */\nexport class StripeRateLimitError extends StripeError {\n constructor(raw = {}) {\n super(raw, 'StripeRateLimitError');\n }\n}\n/**\n * StripeConnectionError is raised in the event that the SDK can't connect to\n * Stripe's servers. That can be for a variety of different reasons from a\n * downed network to a bad TLS certificate.\n */\nexport class StripeConnectionError extends StripeError {\n constructor(raw = {}) {\n super(raw, 'StripeConnectionError');\n }\n}\n/**\n * SignatureVerificationError is raised when the signature verification for a\n * webhook fails\n */\nexport class StripeSignatureVerificationError extends StripeError {\n constructor(header, payload, raw = {}) {\n super(raw, 'StripeSignatureVerificationError');\n this.header = header;\n this.payload = payload;\n }\n}\n/**\n * IdempotencyError is raised in cases where an idempotency key was used\n * improperly.\n */\nexport class StripeIdempotencyError extends StripeError {\n constructor(raw = {}) {\n super(raw, 'StripeIdempotencyError');\n }\n}\n/**\n * InvalidGrantError is raised when a specified code doesn't exist, is\n * expired, has been used, or doesn't belong to you; a refresh token doesn't\n * exist, or doesn't belong to you; or if an API key's mode (live or test)\n * doesn't match the mode of a code or refresh token.\n */\nexport class StripeInvalidGrantError extends StripeError {\n constructor(raw = {}) {\n super(raw, 'StripeInvalidGrantError');\n }\n}\n/**\n * Any other error from Stripe not specifically captured above\n */\nexport class StripeUnknownError extends StripeError {\n constructor(raw = {}) {\n super(raw, 'StripeUnknownError');\n }\n}\n// classDefinitions: The beginning of the section generated from our OpenAPI spec\nexport class TemporarySessionExpiredError extends StripeError {\n constructor(rawStripeError = {}) {\n super(rawStripeError, 'TemporarySessionExpiredError');\n }\n}\n// classDefinitions: The end of the section generated from our OpenAPI spec\n","import { StripeAPIError, StripeAuthenticationError, StripeConnectionError, StripeError, StripePermissionError, StripeRateLimitError, generateV1Error, generateV2Error, } from './Error.js';\nimport { HttpClient } from './net/HttpClient.js';\nimport { emitWarning, jsonStringifyRequestData, normalizeHeaders, queryStringifyRequestData, removeNullish, getAPIMode, getOptionsFromArgs, getDataFromArgs, parseHttpHeaderAsString, parseHttpHeaderAsNumber, } from './utils.js';\nconst MAX_RETRY_AFTER_WAIT = 60;\nexport class RequestSender {\n constructor(stripe, maxBufferedRequestMetric) {\n this._stripe = stripe;\n this._maxBufferedRequestMetric = maxBufferedRequestMetric;\n }\n _normalizeStripeContext(optsContext, clientContext) {\n if (optsContext) {\n return optsContext.toString() || null; // return null for empty strings\n }\n return (clientContext === null || clientContext === void 0 ? void 0 : clientContext.toString()) || null; // return null for empty strings\n }\n _addHeadersDirectlyToObject(obj, headers) {\n // For convenience, make some headers easily accessible on\n // lastResponse.\n // NOTE: Stripe responds with lowercase header names/keys.\n obj.requestId = headers['request-id'];\n obj.stripeAccount = obj.stripeAccount || headers['stripe-account'];\n obj.apiVersion = obj.apiVersion || headers['stripe-version'];\n obj.idempotencyKey = obj.idempotencyKey || headers['idempotency-key'];\n }\n _makeResponseEvent(requestEvent, statusCode, headers) {\n const requestEndTime = Date.now();\n const requestDurationMs = requestEndTime - requestEvent.request_start_time;\n return removeNullish({\n api_version: headers['stripe-version'],\n account: headers['stripe-account'],\n idempotency_key: headers['idempotency-key'],\n method: requestEvent.method,\n path: requestEvent.path,\n status: statusCode,\n request_id: this._getRequestId(headers),\n elapsed: requestDurationMs,\n request_start_time: requestEvent.request_start_time,\n request_end_time: requestEndTime,\n });\n }\n _getRequestId(headers) {\n return headers['request-id'];\n }\n /**\n * Used by methods with spec.streaming === true. For these methods, we do not\n * buffer successful responses into memory or do parse them into stripe\n * objects, we delegate that all of that to the user and pass back the raw\n * http.Response object to the callback.\n *\n * (Unsuccessful responses shouldn't make it here, they should\n * still be buffered/parsed and handled by _jsonResponseHandler -- see\n * makeRequest)\n */\n _streamingResponseHandler(requestEvent, usage, callback) {\n return (res) => {\n const headers = res.getHeaders();\n const streamCompleteCallback = () => {\n const responseEvent = this._makeResponseEvent(requestEvent, res.getStatusCode(), headers);\n this._stripe._emitter.emit('response', responseEvent);\n this._recordRequestMetrics(this._getRequestId(headers), responseEvent.elapsed, usage);\n };\n const stream = res.toStream(streamCompleteCallback);\n // This is here for backwards compatibility, as the stream is a raw\n // HTTP response in Node and the legacy behavior was to mutate this\n // response.\n this._addHeadersDirectlyToObject(stream, headers);\n return callback(null, stream);\n };\n }\n /**\n * Default handler for Stripe responses. Buffers the response into memory,\n * parses the JSON and returns it (i.e. passes it to the callback) if there\n * is no \"error\" field. Otherwise constructs/passes an appropriate Error.\n */\n _jsonResponseHandler(requestEvent, apiMode, usage, callback) {\n return (res) => {\n const headers = res.getHeaders();\n const requestId = this._getRequestId(headers);\n const statusCode = res.getStatusCode();\n const responseEvent = this._makeResponseEvent(requestEvent, statusCode, headers);\n this._stripe._emitter.emit('response', responseEvent);\n res\n .toJSON()\n .then((jsonResponse) => {\n if (jsonResponse.error) {\n let err;\n // Convert OAuth error responses into a standard format\n // so that the rest of the error logic can be shared\n if (typeof jsonResponse.error === 'string') {\n jsonResponse.error = {\n type: jsonResponse.error,\n message: jsonResponse.error_description,\n };\n }\n jsonResponse.error.headers = headers;\n jsonResponse.error.statusCode = statusCode;\n jsonResponse.error.requestId = requestId;\n if (statusCode === 401) {\n err = new StripeAuthenticationError(jsonResponse.error);\n }\n else if (statusCode === 403) {\n err = new StripePermissionError(jsonResponse.error);\n }\n else if (statusCode === 429) {\n err = new StripeRateLimitError(jsonResponse.error);\n }\n else if (apiMode === 'v2') {\n err = generateV2Error(jsonResponse.error);\n }\n else {\n err = generateV1Error(jsonResponse.error);\n }\n throw err;\n }\n return jsonResponse;\n }, (e) => {\n throw new StripeAPIError({\n message: 'Invalid JSON received from the Stripe API',\n exception: e,\n requestId: headers['request-id'],\n });\n })\n .then((jsonResponse) => {\n this._recordRequestMetrics(requestId, responseEvent.elapsed, usage);\n // Expose raw response object.\n const rawResponse = res.getRawResponse();\n this._addHeadersDirectlyToObject(rawResponse, headers);\n Object.defineProperty(jsonResponse, 'lastResponse', {\n enumerable: false,\n writable: false,\n value: rawResponse,\n });\n callback(null, jsonResponse);\n }, (e) => callback(e, null));\n };\n }\n static _generateConnectionErrorMessage(requestRetries) {\n return `An error occurred with our connection to Stripe.${requestRetries > 0 ? ` Request was retried ${requestRetries} times.` : ''}`;\n }\n // For more on when and how to retry API requests, see https://stripe.com/docs/error-handling#safely-retrying-requests-with-idempotency\n static _shouldRetry(res, numRetries, maxRetries, error) {\n if (error &&\n numRetries === 0 &&\n HttpClient.CONNECTION_CLOSED_ERROR_CODES.includes(error.code)) {\n return true;\n }\n // Do not retry if we are out of retries.\n if (numRetries >= maxRetries) {\n return false;\n }\n // Retry on connection error.\n if (!res) {\n return true;\n }\n // The API may ask us not to retry (e.g., if doing so would be a no-op)\n // or advise us to retry (e.g., in cases of lock timeouts); we defer to that.\n if (res.getHeaders()['stripe-should-retry'] === 'false') {\n return false;\n }\n if (res.getHeaders()['stripe-should-retry'] === 'true') {\n return true;\n }\n // Retry on conflict errors.\n if (res.getStatusCode() === 409) {\n return true;\n }\n // Retry on 500, 503, and other internal errors.\n //\n // Note that we expect the stripe-should-retry header to be false\n // in most cases when a 500 is returned, since our idempotency framework\n // would typically replay it anyway.\n if (res.getStatusCode() >= 500) {\n return true;\n }\n return false;\n }\n _getSleepTimeInMS(numRetries, retryAfter = null) {\n const initialNetworkRetryDelay = this._stripe.getInitialNetworkRetryDelay();\n const maxNetworkRetryDelay = this._stripe.getMaxNetworkRetryDelay();\n // Apply exponential backoff with initialNetworkRetryDelay on the\n // number of numRetries so far as inputs. Do not allow the number to exceed\n // maxNetworkRetryDelay.\n let sleepSeconds = Math.min(initialNetworkRetryDelay * Math.pow(2, numRetries - 1), maxNetworkRetryDelay);\n // Apply some jitter by randomizing the value in the range of\n // (sleepSeconds / 2) to (sleepSeconds).\n sleepSeconds *= 0.5 * (1 + Math.random());\n // But never sleep less than the base sleep seconds.\n sleepSeconds = Math.max(initialNetworkRetryDelay, sleepSeconds);\n // And never sleep less than the time the API asks us to wait, assuming it's a reasonable ask.\n if (Number.isInteger(retryAfter) && retryAfter <= MAX_RETRY_AFTER_WAIT) {\n sleepSeconds = Math.max(sleepSeconds, retryAfter);\n }\n return sleepSeconds * 1000;\n }\n // Max retries can be set on a per request basis. Favor those over the global setting\n _getMaxNetworkRetries(settings = {}) {\n return settings.maxNetworkRetries !== undefined &&\n Number.isInteger(settings.maxNetworkRetries)\n ? settings.maxNetworkRetries\n : this._stripe.getMaxNetworkRetries();\n }\n _defaultIdempotencyKey(method, settings, apiMode) {\n // If this is a POST and we allow multiple retries, ensure an idempotency key.\n const maxRetries = this._getMaxNetworkRetries(settings);\n const genKey = () => `stripe-node-retry-${this._stripe._platformFunctions.uuid4()}`;\n // more verbose than it needs to be, but gives clear separation between V1 and V2 behavior\n if (apiMode === 'v2') {\n if (method === 'POST' || method === 'DELETE') {\n return genKey();\n }\n }\n else if (apiMode === 'v1') {\n if (method === 'POST' && maxRetries > 0) {\n return genKey();\n }\n }\n return null;\n }\n _makeHeaders({ contentType, contentLength, apiVersion, clientUserAgent, method, userSuppliedHeaders, userSuppliedSettings, stripeAccount, stripeContext, apiMode, }) {\n const defaultHeaders = {\n Accept: 'application/json',\n 'Content-Type': contentType,\n 'User-Agent': this._getUserAgentString(apiMode),\n 'X-Stripe-Client-User-Agent': clientUserAgent,\n 'X-Stripe-Client-Telemetry': this._getTelemetryHeader(),\n 'Stripe-Version': apiVersion,\n 'Stripe-Account': stripeAccount,\n 'Stripe-Context': stripeContext,\n 'Idempotency-Key': this._defaultIdempotencyKey(method, userSuppliedSettings, apiMode),\n };\n // As per https://datatracker.ietf.org/doc/html/rfc7230#section-3.3.2:\n // A user agent SHOULD send a Content-Length in a request message when\n // no Transfer-Encoding is sent and the request method defines a meaning\n // for an enclosed payload body. For example, a Content-Length header\n // field is normally sent in a POST request even when the value is 0\n // (indicating an empty payload body). A user agent SHOULD NOT send a\n // Content-Length header field when the request message does not contain\n // a payload body and the method semantics do not anticipate such a\n // body.\n //\n // These method types are expected to have bodies and so we should always\n // include a Content-Length.\n const methodHasPayload = method == 'POST' || method == 'PUT' || method == 'PATCH';\n // If a content length was specified, we always include it regardless of\n // whether the method semantics anticipate such a body. This keeps us\n // consistent with historical behavior. We do however want to warn on this\n // and fix these cases as they are semantically incorrect.\n if (methodHasPayload || contentLength) {\n if (!methodHasPayload) {\n emitWarning(`${method} method had non-zero contentLength but no payload is expected for this verb`);\n }\n defaultHeaders['Content-Length'] = contentLength;\n }\n return Object.assign(removeNullish(defaultHeaders), \n // If the user supplied, say 'idempotency-key', override instead of appending by ensuring caps are the same.\n normalizeHeaders(userSuppliedHeaders));\n }\n _getUserAgentString(apiMode) {\n const packageVersion = this._stripe.getConstant('PACKAGE_VERSION');\n const appInfo = this._stripe._appInfo\n ? this._stripe.getAppInfoAsString()\n : '';\n return `Stripe/${apiMode} NodeBindings/${packageVersion} ${appInfo}`.trim();\n }\n _getTelemetryHeader() {\n if (this._stripe.getTelemetryEnabled() &&\n this._stripe._prevRequestMetrics.length > 0) {\n const metrics = this._stripe._prevRequestMetrics.shift();\n return JSON.stringify({\n last_request_metrics: metrics,\n });\n }\n }\n _recordRequestMetrics(requestId, requestDurationMs, usage) {\n if (this._stripe.getTelemetryEnabled() && requestId) {\n if (this._stripe._prevRequestMetrics.length > this._maxBufferedRequestMetric) {\n emitWarning('Request metrics buffer is full, dropping telemetry message.');\n }\n else {\n const m = {\n request_id: requestId,\n request_duration_ms: requestDurationMs,\n };\n if (usage && usage.length > 0) {\n m.usage = usage;\n }\n this._stripe._prevRequestMetrics.push(m);\n }\n }\n }\n _rawRequest(method, path, params, options, usage) {\n const requestPromise = new Promise((resolve, reject) => {\n let opts;\n try {\n const requestMethod = method.toUpperCase();\n if (requestMethod !== 'POST' &&\n params &&\n Object.keys(params).length !== 0) {\n throw new Error('rawRequest only supports params on POST requests. Please pass null and add your parameters to path.');\n }\n const args = [].slice.call([params, options]);\n // Pull request data and options (headers, auth) from args.\n const dataFromArgs = getDataFromArgs(args);\n const data = requestMethod === 'POST' ? Object.assign({}, dataFromArgs) : null;\n const calculatedOptions = getOptionsFromArgs(args);\n const headers = calculatedOptions.headers;\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const authenticator = calculatedOptions.authenticator;\n opts = {\n requestMethod,\n requestPath: path,\n bodyData: data,\n queryData: {},\n authenticator,\n headers,\n host: calculatedOptions.host,\n streaming: !!calculatedOptions.streaming,\n settings: {},\n // We use this for thin event internals, so we should record the more specific `usage`, when available\n usage: usage || ['raw_request'],\n };\n }\n catch (err) {\n reject(err);\n return;\n }\n function requestCallback(err, response) {\n if (err) {\n reject(err);\n }\n else {\n resolve(response);\n }\n }\n const { headers, settings } = opts;\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const authenticator = opts.authenticator;\n this._request(opts.requestMethod, opts.host, path, opts.bodyData, authenticator, { headers, settings, streaming: opts.streaming }, opts.usage, requestCallback);\n });\n return requestPromise;\n }\n _request(method, host, path, data, authenticator, options, usage = [], callback, requestDataProcessor = null) {\n var _a;\n let requestData;\n authenticator = (_a = authenticator !== null && authenticator !== void 0 ? authenticator : this._stripe._authenticator) !== null && _a !== void 0 ? _a : null;\n const apiMode = getAPIMode(path);\n const retryRequest = (requestFn, apiVersion, headers, requestRetries, retryAfter) => {\n return setTimeout(requestFn, this._getSleepTimeInMS(requestRetries, retryAfter), apiVersion, headers, requestRetries + 1);\n };\n const makeRequest = (apiVersion, headers, numRetries) => {\n // timeout can be set on a per-request basis. Favor that over the global setting\n const timeout = options.settings &&\n options.settings.timeout &&\n Number.isInteger(options.settings.timeout) &&\n options.settings.timeout >= 0\n ? options.settings.timeout\n : this._stripe.getApiField('timeout');\n const request = {\n host: host || this._stripe.getApiField('host'),\n port: this._stripe.getApiField('port'),\n path: path,\n method: method,\n headers: Object.assign({}, headers),\n body: requestData,\n protocol: this._stripe.getApiField('protocol'),\n };\n authenticator(request)\n .then(() => {\n const req = this._stripe\n .getApiField('httpClient')\n .makeRequest(request.host, request.port, request.path, request.method, request.headers, request.body, request.protocol, timeout);\n const requestStartTime = Date.now();\n const requestEvent = removeNullish({\n api_version: apiVersion,\n account: parseHttpHeaderAsString(headers['Stripe-Account']),\n idempotency_key: parseHttpHeaderAsString(headers['Idempotency-Key']),\n method,\n path,\n request_start_time: requestStartTime,\n });\n const requestRetries = numRetries || 0;\n const maxRetries = this._getMaxNetworkRetries(options.settings || {});\n this._stripe._emitter.emit('request', requestEvent);\n req\n .then((res) => {\n if (RequestSender._shouldRetry(res, requestRetries, maxRetries)) {\n return retryRequest(makeRequest, apiVersion, headers, requestRetries, parseHttpHeaderAsNumber(res.getHeaders()['retry-after']));\n }\n else if (options.streaming && res.getStatusCode() < 400) {\n return this._streamingResponseHandler(requestEvent, usage, callback)(res);\n }\n else {\n return this._jsonResponseHandler(requestEvent, apiMode, usage, callback)(res);\n }\n })\n .catch((error) => {\n if (RequestSender._shouldRetry(null, requestRetries, maxRetries, error)) {\n return retryRequest(makeRequest, apiVersion, headers, requestRetries, null);\n }\n else {\n const isTimeoutError = error.code && error.code === HttpClient.TIMEOUT_ERROR_CODE;\n return callback(new StripeConnectionError({\n message: isTimeoutError\n ? `Request aborted due to timeout being reached (${timeout}ms)`\n : RequestSender._generateConnectionErrorMessage(requestRetries),\n detail: error,\n }));\n }\n });\n })\n .catch((e) => {\n throw new StripeError({\n message: 'Unable to authenticate the request',\n exception: e,\n });\n });\n };\n const prepareAndMakeRequest = (error, data) => {\n if (error) {\n return callback(error);\n }\n requestData = data;\n this._stripe.getClientUserAgent((clientUserAgent) => {\n var _a, _b, _c;\n const apiVersion = this._stripe.getApiField('version');\n const headers = this._makeHeaders({\n contentType: apiMode == 'v2'\n ? 'application/json'\n : 'application/x-www-form-urlencoded',\n contentLength: new TextEncoder().encode(requestData).length,\n apiVersion: apiVersion,\n clientUserAgent,\n method,\n // other callers expect null, but .headers being optional means it's undefined if not supplied. So we normalize to null.\n userSuppliedHeaders: (_a = options.headers) !== null && _a !== void 0 ? _a : null,\n userSuppliedSettings: (_b = options.settings) !== null && _b !== void 0 ? _b : {},\n stripeAccount: (_c = options.stripeAccount) !== null && _c !== void 0 ? _c : this._stripe.getApiField('stripeAccount'),\n stripeContext: this._normalizeStripeContext(options.stripeContext, this._stripe.getApiField('stripeContext')),\n apiMode: apiMode,\n });\n makeRequest(apiVersion, headers, 0);\n });\n };\n if (requestDataProcessor) {\n requestDataProcessor(method, data, options.headers, prepareAndMakeRequest);\n }\n else {\n let stringifiedData;\n if (apiMode == 'v2') {\n stringifiedData = data ? jsonStringifyRequestData(data) : '';\n }\n else {\n stringifiedData = queryStringifyRequestData(data || {}, apiMode);\n }\n prepareAndMakeRequest(null, stringifiedData);\n }\n }\n}\n","import { callbackifyPromiseWithTimeout, getDataFromArgs, getAPIMode, } from './utils.js';\nclass V1Iterator {\n constructor(firstPagePromise, requestArgs, spec, stripeResource) {\n this.index = 0;\n this.pagePromise = firstPagePromise;\n this.promiseCache = { currentPromise: null };\n this.requestArgs = requestArgs;\n this.spec = spec;\n this.stripeResource = stripeResource;\n }\n async iterate(pageResult) {\n if (!(pageResult &&\n pageResult.data &&\n typeof pageResult.data.length === 'number')) {\n throw Error('Unexpected: Stripe API response does not have a well-formed `data` array.');\n }\n const reverseIteration = isReverseIteration(this.requestArgs);\n if (this.index < pageResult.data.length) {\n const idx = reverseIteration\n ? pageResult.data.length - 1 - this.index\n : this.index;\n const value = pageResult.data[idx];\n this.index += 1;\n return { value, done: false };\n }\n else if (pageResult.has_more) {\n // Reset counter, request next page, and recurse.\n this.index = 0;\n this.pagePromise = this.getNextPage(pageResult);\n const nextPageResult = await this.pagePromise;\n return this.iterate(nextPageResult);\n }\n return { done: true, value: undefined };\n }\n /** @abstract */\n getNextPage(_pageResult) {\n throw new Error('Unimplemented');\n }\n async _next() {\n return this.iterate(await this.pagePromise);\n }\n next() {\n /**\n * If a user calls `.next()` multiple times in parallel,\n * return the same result until something has resolved\n * to prevent page-turning race conditions.\n */\n if (this.promiseCache.currentPromise) {\n return this.promiseCache.currentPromise;\n }\n const nextPromise = (async () => {\n const ret = await this._next();\n this.promiseCache.currentPromise = null;\n return ret;\n })();\n this.promiseCache.currentPromise = nextPromise;\n return nextPromise;\n }\n}\nclass V1ListIterator extends V1Iterator {\n getNextPage(pageResult) {\n const reverseIteration = isReverseIteration(this.requestArgs);\n const lastId = getLastId(pageResult, reverseIteration);\n return this.stripeResource._makeRequest(this.requestArgs, this.spec, {\n [reverseIteration ? 'ending_before' : 'starting_after']: lastId,\n });\n }\n}\nclass V1SearchIterator extends V1Iterator {\n getNextPage(pageResult) {\n if (!pageResult.next_page) {\n throw Error('Unexpected: Stripe API response does not have a well-formed `next_page` field, but `has_more` was true.');\n }\n return this.stripeResource._makeRequest(this.requestArgs, this.spec, {\n page: pageResult.next_page,\n });\n }\n}\nclass V2ListIterator {\n constructor(firstPagePromise, requestArgs, spec, stripeResource) {\n this.currentPageIterator = (async () => {\n const page = await firstPagePromise;\n return page.data[Symbol.iterator]();\n })();\n this.nextPageUrl = (async () => {\n const page = await firstPagePromise;\n return page.next_page_url || null;\n })();\n this.requestArgs = requestArgs;\n this.spec = spec;\n this.stripeResource = stripeResource;\n }\n async turnPage() {\n const nextPageUrl = await this.nextPageUrl;\n if (!nextPageUrl)\n return null;\n this.spec.fullPath = nextPageUrl;\n const page = await this.stripeResource._makeRequest([], this.spec, {});\n this.nextPageUrl = Promise.resolve(page.next_page_url);\n this.currentPageIterator = Promise.resolve(page.data[Symbol.iterator]());\n return this.currentPageIterator;\n }\n async next() {\n {\n const result = (await this.currentPageIterator).next();\n if (!result.done)\n return { done: false, value: result.value };\n }\n const nextPageIterator = await this.turnPage();\n if (!nextPageIterator) {\n return { done: true, value: undefined };\n }\n const result = nextPageIterator.next();\n if (!result.done)\n return { done: false, value: result.value };\n return { done: true, value: undefined };\n }\n}\nexport const makeAutoPaginationMethods = (stripeResource, requestArgs, spec, firstPagePromise) => {\n const apiMode = getAPIMode(spec.fullPath || spec.path);\n if (apiMode !== 'v2' && spec.methodType === 'search') {\n return makeAutoPaginationMethodsFromIterator(new V1SearchIterator(firstPagePromise, requestArgs, spec, stripeResource));\n }\n if (apiMode !== 'v2' && spec.methodType === 'list') {\n return makeAutoPaginationMethodsFromIterator(new V1ListIterator(firstPagePromise, requestArgs, spec, stripeResource));\n }\n if (apiMode === 'v2' && spec.methodType === 'list') {\n return makeAutoPaginationMethodsFromIterator(new V2ListIterator(firstPagePromise, requestArgs, spec, stripeResource));\n }\n return null;\n};\nconst makeAutoPaginationMethodsFromIterator = (iterator) => {\n const autoPagingEach = makeAutoPagingEach((...args) => iterator.next(...args));\n const autoPagingToArray = makeAutoPagingToArray(autoPagingEach);\n const autoPaginationMethods = {\n autoPagingEach,\n autoPagingToArray,\n // Async iterator functions:\n next: () => iterator.next(),\n return: () => {\n // This is required for `break`.\n return {};\n },\n [getAsyncIteratorSymbol()]: () => {\n return autoPaginationMethods;\n },\n };\n return autoPaginationMethods;\n};\n/**\n * ----------------\n * Private Helpers:\n * ----------------\n */\nfunction getAsyncIteratorSymbol() {\n if (typeof Symbol !== 'undefined' && Symbol.asyncIterator) {\n return Symbol.asyncIterator;\n }\n // Follow the convention from libraries like iterall: https://github.com/leebyron/iterall#asynciterator-1\n return '@@asyncIterator';\n}\nfunction getDoneCallback(args) {\n if (args.length < 2) {\n return null;\n }\n const onDone = args[1];\n if (typeof onDone !== 'function') {\n throw Error(`The second argument to autoPagingEach, if present, must be a callback function; received ${typeof onDone}`);\n }\n return onDone;\n}\n/**\n * We allow four forms of the `onItem` callback (the middle two being equivalent),\n *\n * 1. `.autoPagingEach((item) => { doSomething(item); return false; });`\n * 2. `.autoPagingEach(async (item) => { await doSomething(item); return false; });`\n * 3. `.autoPagingEach((item) => doSomething(item).then(() => false));`\n * 4. `.autoPagingEach((item, next) => { doSomething(item); next(false); });`\n *\n * In addition to standard validation, this helper\n * coalesces the former forms into the latter form.\n */\nfunction getItemCallback(args) {\n if (args.length === 0) {\n return undefined;\n }\n const onItem = args[0];\n if (typeof onItem !== 'function') {\n throw Error(`The first argument to autoPagingEach, if present, must be a callback function; received ${typeof onItem}`);\n }\n // 4. `.autoPagingEach((item, next) => { doSomething(item); next(false); });`\n if (onItem.length === 2) {\n return onItem;\n }\n if (onItem.length > 2) {\n throw Error(`The \\`onItem\\` callback function passed to autoPagingEach must accept at most two arguments; got ${onItem}`);\n }\n // This magically handles all three of these usecases (the latter two being functionally identical):\n // 1. `.autoPagingEach((item) => { doSomething(item); return false; });`\n // 2. `.autoPagingEach(async (item) => { await doSomething(item); return false; });`\n // 3. `.autoPagingEach((item) => doSomething(item).then(() => false));`\n return function _onItem(item, next) {\n const shouldContinue = onItem(item);\n next(shouldContinue);\n };\n}\nfunction getLastId(listResult, reverseIteration) {\n const lastIdx = reverseIteration ? 0 : listResult.data.length - 1;\n const lastItem = listResult.data[lastIdx];\n const lastId = lastItem && lastItem.id;\n if (!lastId) {\n throw Error('Unexpected: No `id` found on the last item while auto-paging a list.');\n }\n return lastId;\n}\nfunction makeAutoPagingEach(asyncIteratorNext) {\n return function autoPagingEach( /* onItem?, onDone? */) {\n const args = [].slice.call(arguments);\n const onItem = getItemCallback(args);\n const onDone = getDoneCallback(args);\n if (args.length > 2) {\n throw Error(`autoPagingEach takes up to two arguments; received ${args}`);\n }\n const autoPagePromise = wrapAsyncIteratorWithCallback(asyncIteratorNext, \n // @ts-ignore we might need a null check\n onItem);\n return callbackifyPromiseWithTimeout(autoPagePromise, onDone);\n };\n}\nfunction makeAutoPagingToArray(autoPagingEach) {\n return function autoPagingToArray(opts, onDone) {\n const limit = opts && opts.limit;\n if (!limit) {\n throw Error('You must pass a `limit` option to autoPagingToArray, e.g., `autoPagingToArray({limit: 1000});`.');\n }\n if (limit > 10000) {\n throw Error('You cannot specify a limit of more than 10,000 items to fetch in `autoPagingToArray`; use `autoPagingEach` to iterate through longer lists.');\n }\n const promise = new Promise((resolve, reject) => {\n const items = [];\n autoPagingEach((item) => {\n items.push(item);\n if (items.length >= limit) {\n return false;\n }\n })\n .then(() => {\n resolve(items);\n })\n .catch(reject);\n });\n // @ts-ignore\n return callbackifyPromiseWithTimeout(promise, onDone);\n };\n}\nfunction wrapAsyncIteratorWithCallback(asyncIteratorNext, onItem) {\n return new Promise((resolve, reject) => {\n function handleIteration(iterResult) {\n if (iterResult.done) {\n resolve();\n return;\n }\n const item = iterResult.value;\n return new Promise((next) => {\n // Bit confusing, perhaps; we pass a `resolve` fn\n // to the user, so they can decide when and if to continue.\n // They can return false, or a promise which resolves to false, to break.\n onItem(item, next);\n }).then((shouldContinue) => {\n if (shouldContinue === false) {\n return handleIteration({ done: true, value: undefined });\n }\n else {\n return asyncIteratorNext().then(handleIteration);\n }\n });\n }\n asyncIteratorNext()\n .then(handleIteration)\n .catch(reject);\n });\n}\nfunction isReverseIteration(requestArgs) {\n const args = [].slice.call(requestArgs);\n const dataFromArgs = getDataFromArgs(args);\n return !!dataFromArgs.ending_before;\n}\n","import { callbackifyPromiseWithTimeout, extractUrlParams } from './utils.js';\nimport { makeAutoPaginationMethods } from './autoPagination.js';\n/**\n * Create an API method from the declared spec.\n *\n * @param [spec.method='GET'] Request Method (POST, GET, DELETE, PUT)\n * @param [spec.path=''] Path to be appended to the API BASE_PATH, joined with\n * the instance's path (e.g. 'charges' or 'customers')\n * @param [spec.fullPath=''] Fully qualified path to the method (eg. /v1/a/b/c).\n * If this is specified, path should not be specified.\n * @param [spec.urlParams=[]] Array of required arguments in the order that they\n * must be passed by the consumer of the API. Subsequent optional arguments are\n * optionally passed through a hash (Object) as the penultimate argument\n * (preceding the also-optional callback argument\n * @param [spec.encode] Function for mutating input parameters to a method.\n * Usefully for applying transforms to data on a per-method basis.\n * @param [spec.host] Hostname for the request.\n *\n * <!-- Public API accessible via Stripe.StripeResource.method -->\n */\nexport function stripeMethod(spec) {\n if (spec.path !== undefined && spec.fullPath !== undefined) {\n throw new Error(`Method spec specified both a 'path' (${spec.path}) and a 'fullPath' (${spec.fullPath}).`);\n }\n return function (...args) {\n const callback = typeof args[args.length - 1] == 'function' && args.pop();\n spec.urlParams = extractUrlParams(spec.fullPath || this.createResourcePathWithSymbols(spec.path || ''));\n const requestPromise = callbackifyPromiseWithTimeout(this._makeRequest(args, spec, {}), callback);\n Object.assign(requestPromise, makeAutoPaginationMethods(this, args, spec, requestPromise));\n return requestPromise;\n };\n}\n","import { getDataFromArgs, getOptionsFromArgs, makeURLInterpolator, protoExtend, queryStringifyRequestData, getAPIMode, } from './utils.js';\nimport { stripeMethod } from './StripeMethod.js';\n// Provide extension mechanism for Stripe Resource Sub-Classes\nStripeResource.extend = protoExtend;\n// Expose method-creator\nStripeResource.method = stripeMethod;\nStripeResource.MAX_BUFFERED_REQUEST_METRICS = 100;\n/**\n * Encapsulates request logic for a Stripe Resource\n */\nfunction StripeResource(stripe, deprecatedUrlData) {\n this._stripe = stripe;\n if (deprecatedUrlData) {\n throw new Error('Support for curried url params was dropped in stripe-node v7.0.0. Instead, pass two ids.');\n }\n this.basePath = makeURLInterpolator(\n // @ts-ignore changing type of basePath\n this.basePath || stripe.getApiField('basePath'));\n // @ts-ignore changing type of path\n this.resourcePath = this.path;\n // @ts-ignore changing type of path\n this.path = makeURLInterpolator(this.path);\n this.initialize(...arguments);\n}\nStripeResource.prototype = {\n _stripe: null,\n // @ts-ignore the type of path changes in ctor\n path: '',\n resourcePath: '',\n // Methods that don't use the API's default '/v1' path can override it with this setting.\n basePath: null,\n initialize() { },\n // Function to override the default data processor. This allows full control\n // over how a StripeResource's request data will get converted into an HTTP\n // body. This is useful for non-standard HTTP requests. The function should\n // take method name, data, and headers as arguments.\n requestDataProcessor: null,\n // Function to add a validation checks before sending the request, errors should\n // be thrown, and they will be passed to the callback/promise.\n validateRequest: null,\n createFullPath(commandPath, urlData) {\n const urlParts = [this.basePath(urlData), this.path(urlData)];\n if (typeof commandPath === 'function') {\n const computedCommandPath = commandPath(urlData);\n // If we have no actual command path, we just omit it to avoid adding a\n // trailing slash. This is important for top-level listing requests, which\n // do not have a command path.\n if (computedCommandPath) {\n urlParts.push(computedCommandPath);\n }\n }\n else {\n urlParts.push(commandPath);\n }\n return this._joinUrlParts(urlParts);\n },\n // Creates a relative resource path with symbols left in (unlike\n // createFullPath which takes some data to replace them with). For example it\n // might produce: /invoices/{id}\n createResourcePathWithSymbols(pathWithSymbols) {\n // If there is no path beyond the resource path, we want to produce just\n // /<resource path> rather than /<resource path>/.\n if (pathWithSymbols) {\n return `/${this._joinUrlParts([this.resourcePath, pathWithSymbols])}`;\n }\n else {\n return `/${this.resourcePath}`;\n }\n },\n _joinUrlParts(parts) {\n // Replace any accidentally doubled up slashes. This previously used\n // path.join, which would do this as well. Unfortunately we need to do this\n // as the functions for creating paths are technically part of the public\n // interface and so we need to preserve backwards compatibility.\n return parts.join('/').replace(/\\/{2,}/g, '/');\n },\n _getRequestOpts(requestArgs, spec, overrideData) {\n var _a;\n // Extract spec values with defaults.\n const requestMethod = (spec.method || 'GET').toUpperCase();\n const usage = spec.usage || [];\n const urlParams = spec.urlParams || [];\n const encode = spec.encode || ((data) => data);\n const isUsingFullPath = !!spec.fullPath;\n const commandPath = makeURLInterpolator(isUsingFullPath ? spec.fullPath : spec.path || '');\n // When using fullPath, we ignore the resource path as it should already be\n // fully qualified.\n const path = isUsingFullPath\n ? spec.fullPath\n : this.createResourcePathWithSymbols(spec.path);\n // Don't mutate args externally.\n const args = [].slice.call(requestArgs);\n // Generate and validate url params.\n const urlData = urlParams.reduce((urlData, param) => {\n const arg = args.shift();\n if (typeof arg !== 'string') {\n throw new Error(`Stripe: Argument \"${param}\" must be a string, but got: ${arg} (on API request to \\`${requestMethod} ${path}\\`)`);\n }\n urlData[param] = arg;\n return urlData;\n }, {});\n // Pull request data and options (headers, auth) from args.\n const dataFromArgs = getDataFromArgs(args);\n const data = encode(Object.assign({}, dataFromArgs, overrideData));\n const options = getOptionsFromArgs(args);\n const host = options.host || spec.host;\n const streaming = !!spec.streaming || !!options.streaming;\n // Validate that there are no more args.\n if (args.filter((x) => x != null).length) {\n throw new Error(`Stripe: Unknown arguments (${args}). Did you mean to pass an options object? See https://github.com/stripe/stripe-node/wiki/Passing-Options. (on API request to ${requestMethod} \\`${path}\\`)`);\n }\n // When using full path, we can just invoke the URL interpolator directly\n // as we don't need to use the resource to create a full path.\n const requestPath = isUsingFullPath\n ? commandPath(urlData)\n : this.createFullPath(commandPath, urlData);\n const headers = Object.assign(options.headers, spec.headers);\n if (spec.validator) {\n spec.validator(data, { headers });\n }\n const dataInQuery = spec.method === 'GET' || spec.method === 'DELETE';\n const bodyData = dataInQuery ? null : data;\n const queryData = dataInQuery ? data : {};\n return {\n requestMethod,\n requestPath,\n bodyData,\n queryData,\n authenticator: (_a = options.authenticator) !== null && _a !== void 0 ? _a : null,\n headers,\n host: host !== null && host !== void 0 ? host : null,\n streaming,\n settings: options.settings,\n usage,\n };\n },\n _makeRequest(requestArgs, spec, overrideData) {\n return new Promise((resolve, reject) => {\n var _a;\n let opts;\n try {\n opts = this._getRequestOpts(requestArgs, spec, overrideData);\n }\n catch (err) {\n reject(err);\n return;\n }\n function requestCallback(err, response) {\n if (err) {\n reject(err);\n }\n else {\n resolve(spec.transformResponseData\n ? spec.transformResponseData(response)\n : response);\n }\n }\n const emptyQuery = Object.keys(opts.queryData).length === 0;\n const path = [\n opts.requestPath,\n emptyQuery ? '' : '?',\n queryStringifyRequestData(opts.queryData, getAPIMode(opts.requestPath)),\n ].join('');\n const { headers, settings } = opts;\n this._stripe._requestSender._request(opts.requestMethod, opts.host, path, opts.bodyData, opts.authenticator, {\n headers,\n settings,\n streaming: opts.streaming,\n }, opts.usage, requestCallback, (_a = this.requestDataProcessor) === null || _a === void 0 ? void 0 : _a.bind(this));\n });\n },\n};\nexport { StripeResource };\n","/**\n * 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.\n * 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.\n */\nexport class StripeContext {\n /**\n * Creates a new StripeContext with the given segments.\n */\n constructor(segments = []) {\n this._segments = [...segments];\n }\n /**\n * Gets a copy of the segments of this Context.\n */\n get segments() {\n return [...this._segments];\n }\n /**\n * Creates a new StripeContext with an additional segment appended.\n */\n push(segment) {\n if (!segment) {\n throw new Error('Segment cannot be null or undefined');\n }\n return new StripeContext([...this._segments, segment]);\n }\n /**\n * Creates a new StripeContext with the last segment removed.\n * If there are no segments, throws an error.\n */\n pop() {\n if (this._segments.length === 0) {\n throw new Error('Cannot pop from an empty context');\n }\n return new StripeContext(this._segments.slice(0, -1));\n }\n /**\n * Converts this context to its string representation.\n */\n toString() {\n return this._segments.join('/');\n }\n /**\n * Parses a context string into a StripeContext instance.\n */\n static parse(contextStr) {\n if (!contextStr) {\n return new StripeContext([]);\n }\n return new StripeContext(contextStr.split('/'));\n }\n}\n","import { StripeError, StripeSignatureVerificationError } from './Error.js';\nimport { CryptoProviderOnlySupportsAsyncError, } from './crypto/CryptoProvider.js';\nexport function createWebhooks(platformFunctions) {\n const Webhook = {\n DEFAULT_TOLERANCE: 300,\n signature: null,\n constructEvent(payload, header, secret, tolerance, cryptoProvider, receivedAt) {\n try {\n if (!this.signature) {\n throw new Error('ERR: missing signature helper, unable to verify');\n }\n this.signature.verifyHeader(payload, header, secret, tolerance || Webhook.DEFAULT_TOLERANCE, cryptoProvider, receivedAt);\n }\n catch (e) {\n if (e instanceof CryptoProviderOnlySupportsAsyncError) {\n e.message +=\n '\\nUse `await constructEventAsync(...)` instead of `constructEvent(...)`';\n }\n throw e;\n }\n const jsonPayload = payload instanceof Uint8Array\n ? JSON.parse(new TextDecoder('utf8').decode(payload))\n : JSON.parse(payload);\n return jsonPayload;\n },\n async constructEventAsync(payload, header, secret, tolerance, cryptoProvider, receivedAt) {\n if (!this.signature) {\n throw new Error('ERR: missing signature helper, unable to verify');\n }\n await this.signature.verifyHeaderAsync(payload, header, secret, tolerance || Webhook.DEFAULT_TOLERANCE, cryptoProvider, receivedAt);\n const jsonPayload = payload instanceof Uint8Array\n ? JSON.parse(new TextDecoder('utf8').decode(payload))\n : JSON.parse(payload);\n return jsonPayload;\n },\n /**\n * Generates a header to be used for webhook mocking\n *\n * @typedef {object} opts\n * @property {number} timestamp - Timestamp of the header. Defaults to Date.now()\n * @property {string} payload - JSON stringified payload object, containing the 'id' and 'object' parameters\n * @property {string} secret - Stripe webhook secret 'whsec_...'\n * @property {string} scheme - Version of API to hit. Defaults to 'v1'.\n * @property {string} signature - Computed webhook signature\n * @property {CryptoProvider} cryptoProvider - Crypto provider to use for computing the signature if none was provided. Defaults to NodeCryptoProvider.\n */\n generateTestHeaderString: function (opts) {\n const preparedOpts = prepareOptions(opts);\n const signature = preparedOpts.signature ||\n preparedOpts.cryptoProvider.computeHMACSignature(preparedOpts.payloadString, preparedOpts.secret);\n return preparedOpts.generateHeaderString(signature);\n },\n generateTestHeaderStringAsync: async function (opts) {\n const preparedOpts = prepareOptions(opts);\n const signature = preparedOpts.signature ||\n (await preparedOpts.cryptoProvider.computeHMACSignatureAsync(preparedOpts.payloadString, preparedOpts.secret));\n return preparedOpts.generateHeaderString(signature);\n },\n };\n const signature = {\n EXPECTED_SCHEME: 'v1',\n verifyHeader(encodedPayload, encodedHeader, secret, tolerance, cryptoProvider, receivedAt) {\n const { decodedHeader: header, decodedPayload: payload, details, suspectPayloadType, } = parseEventDetails(encodedPayload, encodedHeader, this.EXPECTED_SCHEME);\n const secretContainsWhitespace = /\\s/.test(secret);\n cryptoProvider = cryptoProvider || getCryptoProvider();\n const expectedSignature = cryptoProvider.computeHMACSignature(makeHMACContent(payload, details), secret);\n validateComputedSignature(payload, header, details, expectedSignature, tolerance, suspectPayloadType, secretContainsWhitespace, receivedAt);\n return true;\n },\n async verifyHeaderAsync(encodedPayload, encodedHeader, secret, tolerance, cryptoProvider, receivedAt) {\n const { decodedHeader: header, decodedPayload: payload, details, suspectPayloadType, } = parseEventDetails(encodedPayload, encodedHeader, this.EXPECTED_SCHEME);\n const secretContainsWhitespace = /\\s/.test(secret);\n cryptoProvider = cryptoProvider || getCryptoProvider();\n const expectedSignature = await cryptoProvider.computeHMACSignatureAsync(makeHMACContent(payload, details), secret);\n return validateComputedSignature(payload, header, details, expectedSignature, tolerance, suspectPayloadType, secretContainsWhitespace, receivedAt);\n },\n };\n function makeHMACContent(payload, details) {\n return `${details.timestamp}.${payload}`;\n }\n function parseEventDetails(encodedPayload, encodedHeader, expectedScheme) {\n if (!encodedPayload) {\n throw new StripeSignatureVerificationError(encodedHeader, encodedPayload, {\n message: 'No webhook payload was provided.',\n });\n }\n const suspectPayloadType = typeof encodedPayload != 'string' &&\n !(encodedPayload instanceof Uint8Array);\n const textDecoder = new TextDecoder('utf8');\n const decodedPayload = encodedPayload instanceof Uint8Array\n ? textDecoder.decode(encodedPayload)\n : encodedPayload;\n // Express's type for `Request#headers` is `string | []string`\n // which is because the `set-cookie` header is an array,\n // but no other headers are an array (docs: https://nodejs.org/api/http.html#http_message_headers)\n // (Express's Request class is an extension of http.IncomingMessage, and doesn't appear to be relevantly modified: https://github.com/expressjs/express/blob/master/lib/request.js#L31)\n if (Array.isArray(encodedHeader)) {\n throw new Error('Unexpected: An array was passed as a header, which should not be possible for the stripe-signature header.');\n }\n if (encodedHeader == null || encodedHeader == '') {\n throw new StripeSignatureVerificationError(encodedHeader, encodedPayload, {\n message: 'No stripe-signature header value was provided.',\n });\n }\n const decodedHeader = encodedHeader instanceof Uint8Array\n ? textDecoder.decode(encodedHeader)\n : encodedHeader;\n const details = parseHeader(decodedHeader, expectedScheme);\n if (!details || details.timestamp === -1) {\n throw new StripeSignatureVerificationError(decodedHeader, decodedPayload, {\n message: 'Unable to extract timestamp and signatures from header',\n });\n }\n if (!details.signatures.length) {\n throw new StripeSignatureVerificationError(decodedHeader, decodedPayload, {\n message: 'No signatures found with expected scheme',\n });\n }\n return {\n decodedPayload,\n decodedHeader,\n details,\n suspectPayloadType,\n };\n }\n function validateComputedSignature(payload, header, details, expectedSignature, tolerance, suspectPayloadType, secretContainsWhitespace, receivedAt) {\n const signatureFound = !!details.signatures.filter(platformFunctions.secureCompare.bind(platformFunctions, expectedSignature)).length;\n const docsLocation = '\\nLearn more about webhook signing and explore webhook integration examples for various frameworks at ' +\n 'https://docs.stripe.com/webhooks/signature';\n const whitespaceMessage = secretContainsWhitespace\n ? '\\n\\nNote: The provided signing secret contains whitespace. This often indicates an extra newline or space is in the value'\n : '';\n if (!signatureFound) {\n if (suspectPayloadType) {\n throw new StripeSignatureVerificationError(header, payload, {\n message: 'Webhook payload must be provided as a string or a Buffer (https://nodejs.org/api/buffer.html) instance representing the _raw_ request body.' +\n 'Payload was provided as a parsed JavaScript object instead. \\n' +\n 'Signature verification is impossible without access to the original signed material. \\n' +\n docsLocation +\n '\\n' +\n whitespaceMessage,\n });\n }\n throw new StripeSignatureVerificationError(header, payload, {\n message: 'No signatures found matching the expected signature for payload.' +\n ' Are you passing the raw request body you received from Stripe? \\n' +\n ' If a webhook request is being forwarded by a third-party tool,' +\n ' ensure that the exact request body, including JSON formatting and new line style, is preserved.\\n' +\n docsLocation +\n '\\n' +\n whitespaceMessage,\n });\n }\n const timestampAge = Math.floor((typeof receivedAt === 'number' ? receivedAt : Date.now()) / 1000) - details.timestamp;\n if (tolerance > 0 && timestampAge > tolerance) {\n throw new StripeSignatureVerificationError(header, payload, {\n message: 'Timestamp outside the tolerance zone',\n });\n }\n return true;\n }\n function parseHeader(header, scheme) {\n if (typeof header !== 'string') {\n return null;\n }\n return header.split(',').reduce((accum, item) => {\n const kv = item.split('=');\n if (kv[0] === 't') {\n accum.timestamp = parseInt(kv[1], 10);\n }\n if (kv[0] === scheme) {\n accum.signatures.push(kv[1]);\n }\n return accum;\n }, {\n timestamp: -1,\n signatures: [],\n });\n }\n let webhooksCryptoProviderInstance = null;\n /**\n * Lazily instantiate a CryptoProvider instance. This is a stateless object\n * so a singleton can be used here.\n */\n function getCryptoProvider() {\n if (!webhooksCryptoProviderInstance) {\n webhooksCryptoProviderInstance = platformFunctions.createDefaultCryptoProvider();\n }\n return webhooksCryptoProviderInstance;\n }\n function prepareOptions(opts) {\n if (!opts) {\n throw new StripeError({\n message: 'Options are required',\n });\n }\n const timestamp = Math.floor(opts.timestamp) || Math.floor(Date.now() / 1000);\n const scheme = opts.scheme || signature.EXPECTED_SCHEME;\n const cryptoProvider = opts.cryptoProvider || getCryptoProvider();\n const payloadString = `${timestamp}.${opts.payload}`;\n const generateHeaderString = (signature) => {\n return `t=${timestamp},${scheme}=${signature}`;\n };\n return Object.assign(Object.assign({}, opts), { timestamp,\n scheme,\n cryptoProvider,\n payloadString,\n generateHeaderString });\n }\n Webhook.signature = signature;\n return Webhook;\n}\n","// File generated from our OpenAPI spec\nexport const ApiVersion = '2025-11-17.clover';\nexport const ApiMajorVersion = 'clover';\n","// ResourceNamespace allows you to create nested resources, i.e. `stripe.issuing.cards`.\n// It also works recursively, so you could do i.e. `stripe.billing.invoicing.pay`.\nfunction ResourceNamespace(stripe, resources) {\n for (const name in resources) {\n if (!Object.prototype.hasOwnProperty.call(resources, name)) {\n continue;\n }\n const camelCaseName = name[0].toLowerCase() + name.substring(1);\n const resource = new resources[name](stripe);\n this[camelCaseName] = resource;\n }\n}\nexport function resourceNamespace(namespace, resources) {\n return function (stripe) {\n return new ResourceNamespace(stripe, resources);\n };\n}\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Accounts = StripeResource.extend({\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/financial_connections/accounts/{account}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/financial_connections/accounts',\n methodType: 'list',\n }),\n disconnect: stripeMethod({\n method: 'POST',\n fullPath: '/v1/financial_connections/accounts/{account}/disconnect',\n }),\n listOwners: stripeMethod({\n method: 'GET',\n fullPath: '/v1/financial_connections/accounts/{account}/owners',\n methodType: 'list',\n }),\n refresh: stripeMethod({\n method: 'POST',\n fullPath: '/v1/financial_connections/accounts/{account}/refresh',\n }),\n subscribe: stripeMethod({\n method: 'POST',\n fullPath: '/v1/financial_connections/accounts/{account}/subscribe',\n }),\n unsubscribe: stripeMethod({\n method: 'POST',\n fullPath: '/v1/financial_connections/accounts/{account}/unsubscribe',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const ActiveEntitlements = StripeResource.extend({\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/entitlements/active_entitlements/{id}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/entitlements/active_entitlements',\n methodType: 'list',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Alerts = StripeResource.extend({\n create: stripeMethod({ method: 'POST', fullPath: '/v1/billing/alerts' }),\n retrieve: stripeMethod({ method: 'GET', fullPath: '/v1/billing/alerts/{id}' }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/billing/alerts',\n methodType: 'list',\n }),\n activate: stripeMethod({\n method: 'POST',\n fullPath: '/v1/billing/alerts/{id}/activate',\n }),\n archive: stripeMethod({\n method: 'POST',\n fullPath: '/v1/billing/alerts/{id}/archive',\n }),\n deactivate: stripeMethod({\n method: 'POST',\n fullPath: '/v1/billing/alerts/{id}/deactivate',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Associations = StripeResource.extend({\n find: stripeMethod({ method: 'GET', fullPath: '/v1/tax/associations/find' }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Authorizations = StripeResource.extend({\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/issuing/authorizations/{authorization}',\n }),\n update: stripeMethod({\n method: 'POST',\n fullPath: '/v1/issuing/authorizations/{authorization}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/issuing/authorizations',\n methodType: 'list',\n }),\n approve: stripeMethod({\n method: 'POST',\n fullPath: '/v1/issuing/authorizations/{authorization}/approve',\n }),\n decline: stripeMethod({\n method: 'POST',\n fullPath: '/v1/issuing/authorizations/{authorization}/decline',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Authorizations = StripeResource.extend({\n create: stripeMethod({\n method: 'POST',\n fullPath: '/v1/test_helpers/issuing/authorizations',\n }),\n capture: stripeMethod({\n method: 'POST',\n fullPath: '/v1/test_helpers/issuing/authorizations/{authorization}/capture',\n }),\n expire: stripeMethod({\n method: 'POST',\n fullPath: '/v1/test_helpers/issuing/authorizations/{authorization}/expire',\n }),\n finalizeAmount: stripeMethod({\n method: 'POST',\n fullPath: '/v1/test_helpers/issuing/authorizations/{authorization}/finalize_amount',\n }),\n increment: stripeMethod({\n method: 'POST',\n fullPath: '/v1/test_helpers/issuing/authorizations/{authorization}/increment',\n }),\n respond: stripeMethod({\n method: 'POST',\n fullPath: '/v1/test_helpers/issuing/authorizations/{authorization}/fraud_challenges/respond',\n }),\n reverse: stripeMethod({\n method: 'POST',\n fullPath: '/v1/test_helpers/issuing/authorizations/{authorization}/reverse',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Calculations = StripeResource.extend({\n create: stripeMethod({ method: 'POST', fullPath: '/v1/tax/calculations' }),\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/tax/calculations/{calculation}',\n }),\n listLineItems: stripeMethod({\n method: 'GET',\n fullPath: '/v1/tax/calculations/{calculation}/line_items',\n methodType: 'list',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Cardholders = StripeResource.extend({\n create: stripeMethod({ method: 'POST', fullPath: '/v1/issuing/cardholders' }),\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/issuing/cardholders/{cardholder}',\n }),\n update: stripeMethod({\n method: 'POST',\n fullPath: '/v1/issuing/cardholders/{cardholder}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/issuing/cardholders',\n methodType: 'list',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Cards = StripeResource.extend({\n create: stripeMethod({ method: 'POST', fullPath: '/v1/issuing/cards' }),\n retrieve: stripeMethod({ method: 'GET', fullPath: '/v1/issuing/cards/{card}' }),\n update: stripeMethod({ method: 'POST', fullPath: '/v1/issuing/cards/{card}' }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/issuing/cards',\n methodType: 'list',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Cards = StripeResource.extend({\n deliverCard: stripeMethod({\n method: 'POST',\n fullPath: '/v1/test_helpers/issuing/cards/{card}/shipping/deliver',\n }),\n failCard: stripeMethod({\n method: 'POST',\n fullPath: '/v1/test_helpers/issuing/cards/{card}/shipping/fail',\n }),\n returnCard: stripeMethod({\n method: 'POST',\n fullPath: '/v1/test_helpers/issuing/cards/{card}/shipping/return',\n }),\n shipCard: stripeMethod({\n method: 'POST',\n fullPath: '/v1/test_helpers/issuing/cards/{card}/shipping/ship',\n }),\n submitCard: stripeMethod({\n method: 'POST',\n fullPath: '/v1/test_helpers/issuing/cards/{card}/shipping/submit',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Configurations = StripeResource.extend({\n create: stripeMethod({\n method: 'POST',\n fullPath: '/v1/billing_portal/configurations',\n }),\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/billing_portal/configurations/{configuration}',\n }),\n update: stripeMethod({\n method: 'POST',\n fullPath: '/v1/billing_portal/configurations/{configuration}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/billing_portal/configurations',\n methodType: 'list',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Configurations = StripeResource.extend({\n create: stripeMethod({\n method: 'POST',\n fullPath: '/v1/terminal/configurations',\n }),\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/terminal/configurations/{configuration}',\n }),\n update: stripeMethod({\n method: 'POST',\n fullPath: '/v1/terminal/configurations/{configuration}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/terminal/configurations',\n methodType: 'list',\n }),\n del: stripeMethod({\n method: 'DELETE',\n fullPath: '/v1/terminal/configurations/{configuration}',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const ConfirmationTokens = StripeResource.extend({\n create: stripeMethod({\n method: 'POST',\n fullPath: '/v1/test_helpers/confirmation_tokens',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const ConnectionTokens = StripeResource.extend({\n create: stripeMethod({\n method: 'POST',\n fullPath: '/v1/terminal/connection_tokens',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const CreditBalanceSummary = StripeResource.extend({\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/billing/credit_balance_summary',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const CreditBalanceTransactions = StripeResource.extend({\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/billing/credit_balance_transactions/{id}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/billing/credit_balance_transactions',\n methodType: 'list',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const CreditGrants = StripeResource.extend({\n create: stripeMethod({ method: 'POST', fullPath: '/v1/billing/credit_grants' }),\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/billing/credit_grants/{id}',\n }),\n update: stripeMethod({\n method: 'POST',\n fullPath: '/v1/billing/credit_grants/{id}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/billing/credit_grants',\n methodType: 'list',\n }),\n expire: stripeMethod({\n method: 'POST',\n fullPath: '/v1/billing/credit_grants/{id}/expire',\n }),\n voidGrant: stripeMethod({\n method: 'POST',\n fullPath: '/v1/billing/credit_grants/{id}/void',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const CreditReversals = StripeResource.extend({\n create: stripeMethod({\n method: 'POST',\n fullPath: '/v1/treasury/credit_reversals',\n }),\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/treasury/credit_reversals/{credit_reversal}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/treasury/credit_reversals',\n methodType: 'list',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Customers = StripeResource.extend({\n fundCashBalance: stripeMethod({\n method: 'POST',\n fullPath: '/v1/test_helpers/customers/{customer}/fund_cash_balance',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const DebitReversals = StripeResource.extend({\n create: stripeMethod({\n method: 'POST',\n fullPath: '/v1/treasury/debit_reversals',\n }),\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/treasury/debit_reversals/{debit_reversal}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/treasury/debit_reversals',\n methodType: 'list',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Disputes = StripeResource.extend({\n create: stripeMethod({ method: 'POST', fullPath: '/v1/issuing/disputes' }),\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/issuing/disputes/{dispute}',\n }),\n update: stripeMethod({\n method: 'POST',\n fullPath: '/v1/issuing/disputes/{dispute}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/issuing/disputes',\n methodType: 'list',\n }),\n submit: stripeMethod({\n method: 'POST',\n fullPath: '/v1/issuing/disputes/{dispute}/submit',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const EarlyFraudWarnings = StripeResource.extend({\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/radar/early_fraud_warnings/{early_fraud_warning}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/radar/early_fraud_warnings',\n methodType: 'list',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const EventDestinations = StripeResource.extend({\n create: stripeMethod({\n method: 'POST',\n fullPath: '/v2/core/event_destinations',\n }),\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v2/core/event_destinations/{id}',\n }),\n update: stripeMethod({\n method: 'POST',\n fullPath: '/v2/core/event_destinations/{id}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v2/core/event_destinations',\n methodType: 'list',\n }),\n del: stripeMethod({\n method: 'DELETE',\n fullPath: '/v2/core/event_destinations/{id}',\n }),\n disable: stripeMethod({\n method: 'POST',\n fullPath: '/v2/core/event_destinations/{id}/disable',\n }),\n enable: stripeMethod({\n method: 'POST',\n fullPath: '/v2/core/event_destinations/{id}/enable',\n }),\n ping: stripeMethod({\n method: 'POST',\n fullPath: '/v2/core/event_destinations/{id}/ping',\n }),\n});\n","// This file is manually maintained\nimport { StripeResource } from '../../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Events = StripeResource.extend({\n retrieve(...args) {\n const transformResponseData = (response) => {\n return this.addFetchRelatedObjectIfNeeded(response);\n };\n return stripeMethod({\n method: 'GET',\n fullPath: '/v2/core/events/{id}',\n transformResponseData,\n }).apply(this, args);\n },\n list(...args) {\n const transformResponseData = (response) => {\n return Object.assign(Object.assign({}, response), { data: response.data.map(this.addFetchRelatedObjectIfNeeded.bind(this)) });\n };\n return stripeMethod({\n method: 'GET',\n fullPath: '/v2/core/events',\n methodType: 'list',\n transformResponseData,\n }).apply(this, args);\n },\n /**\n * @private\n *\n * For internal use in stripe-node.\n *\n * @param pulledEvent The retrieved event object\n * @returns The retrieved event object with a fetchRelatedObject method,\n * if pulledEvent.related_object is valid (non-null and has a url)\n */\n addFetchRelatedObjectIfNeeded(pulledEvent) {\n if (!pulledEvent.related_object || !pulledEvent.related_object.url) {\n return pulledEvent;\n }\n return Object.assign(Object.assign({}, pulledEvent), { fetchRelatedObject: () => \n // call stripeMethod with 'this' resource to fetch\n // the related object. 'this' is needed to construct\n // and send the request, but the method spec controls\n // the url endpoint and method, so it doesn't matter\n // that 'this' is an Events resource object here\n stripeMethod({\n method: 'GET',\n fullPath: pulledEvent.related_object.url,\n }).apply(this, [\n {\n stripeContext: pulledEvent.context,\n },\n ]) });\n },\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Features = StripeResource.extend({\n create: stripeMethod({ method: 'POST', fullPath: '/v1/entitlements/features' }),\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/entitlements/features/{id}',\n }),\n update: stripeMethod({\n method: 'POST',\n fullPath: '/v1/entitlements/features/{id}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/entitlements/features',\n methodType: 'list',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const FinancialAccounts = StripeResource.extend({\n create: stripeMethod({\n method: 'POST',\n fullPath: '/v1/treasury/financial_accounts',\n }),\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/treasury/financial_accounts/{financial_account}',\n }),\n update: stripeMethod({\n method: 'POST',\n fullPath: '/v1/treasury/financial_accounts/{financial_account}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/treasury/financial_accounts',\n methodType: 'list',\n }),\n close: stripeMethod({\n method: 'POST',\n fullPath: '/v1/treasury/financial_accounts/{financial_account}/close',\n }),\n retrieveFeatures: stripeMethod({\n method: 'GET',\n fullPath: '/v1/treasury/financial_accounts/{financial_account}/features',\n }),\n updateFeatures: stripeMethod({\n method: 'POST',\n fullPath: '/v1/treasury/financial_accounts/{financial_account}/features',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const InboundTransfers = StripeResource.extend({\n fail: stripeMethod({\n method: 'POST',\n fullPath: '/v1/test_helpers/treasury/inbound_transfers/{id}/fail',\n }),\n returnInboundTransfer: stripeMethod({\n method: 'POST',\n fullPath: '/v1/test_helpers/treasury/inbound_transfers/{id}/return',\n }),\n succeed: stripeMethod({\n method: 'POST',\n fullPath: '/v1/test_helpers/treasury/inbound_transfers/{id}/succeed',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const InboundTransfers = StripeResource.extend({\n create: stripeMethod({\n method: 'POST',\n fullPath: '/v1/treasury/inbound_transfers',\n }),\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/treasury/inbound_transfers/{id}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/treasury/inbound_transfers',\n methodType: 'list',\n }),\n cancel: stripeMethod({\n method: 'POST',\n fullPath: '/v1/treasury/inbound_transfers/{inbound_transfer}/cancel',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Locations = StripeResource.extend({\n create: stripeMethod({ method: 'POST', fullPath: '/v1/terminal/locations' }),\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/terminal/locations/{location}',\n }),\n update: stripeMethod({\n method: 'POST',\n fullPath: '/v1/terminal/locations/{location}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/terminal/locations',\n methodType: 'list',\n }),\n del: stripeMethod({\n method: 'DELETE',\n fullPath: '/v1/terminal/locations/{location}',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const MeterEventAdjustments = StripeResource.extend({\n create: stripeMethod({\n method: 'POST',\n fullPath: '/v1/billing/meter_event_adjustments',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const MeterEventAdjustments = StripeResource.extend({\n create: stripeMethod({\n method: 'POST',\n fullPath: '/v2/billing/meter_event_adjustments',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const MeterEventSession = StripeResource.extend({\n create: stripeMethod({\n method: 'POST',\n fullPath: '/v2/billing/meter_event_session',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const MeterEventStream = StripeResource.extend({\n create: stripeMethod({\n method: 'POST',\n fullPath: '/v2/billing/meter_event_stream',\n host: 'meter-events.stripe.com',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const MeterEvents = StripeResource.extend({\n create: stripeMethod({ method: 'POST', fullPath: '/v1/billing/meter_events' }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const MeterEvents = StripeResource.extend({\n create: stripeMethod({ method: 'POST', fullPath: '/v2/billing/meter_events' }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Meters = StripeResource.extend({\n create: stripeMethod({ method: 'POST', fullPath: '/v1/billing/meters' }),\n retrieve: stripeMethod({ method: 'GET', fullPath: '/v1/billing/meters/{id}' }),\n update: stripeMethod({ method: 'POST', fullPath: '/v1/billing/meters/{id}' }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/billing/meters',\n methodType: 'list',\n }),\n deactivate: stripeMethod({\n method: 'POST',\n fullPath: '/v1/billing/meters/{id}/deactivate',\n }),\n listEventSummaries: stripeMethod({\n method: 'GET',\n fullPath: '/v1/billing/meters/{id}/event_summaries',\n methodType: 'list',\n }),\n reactivate: stripeMethod({\n method: 'POST',\n fullPath: '/v1/billing/meters/{id}/reactivate',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const OnboardingLinks = StripeResource.extend({\n create: stripeMethod({\n method: 'POST',\n fullPath: '/v1/terminal/onboarding_links',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Orders = StripeResource.extend({\n create: stripeMethod({ method: 'POST', fullPath: '/v1/climate/orders' }),\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/climate/orders/{order}',\n }),\n update: stripeMethod({\n method: 'POST',\n fullPath: '/v1/climate/orders/{order}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/climate/orders',\n methodType: 'list',\n }),\n cancel: stripeMethod({\n method: 'POST',\n fullPath: '/v1/climate/orders/{order}/cancel',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const OutboundPayments = StripeResource.extend({\n update: stripeMethod({\n method: 'POST',\n fullPath: '/v1/test_helpers/treasury/outbound_payments/{id}',\n }),\n fail: stripeMethod({\n method: 'POST',\n fullPath: '/v1/test_helpers/treasury/outbound_payments/{id}/fail',\n }),\n post: stripeMethod({\n method: 'POST',\n fullPath: '/v1/test_helpers/treasury/outbound_payments/{id}/post',\n }),\n returnOutboundPayment: stripeMethod({\n method: 'POST',\n fullPath: '/v1/test_helpers/treasury/outbound_payments/{id}/return',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const OutboundPayments = StripeResource.extend({\n create: stripeMethod({\n method: 'POST',\n fullPath: '/v1/treasury/outbound_payments',\n }),\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/treasury/outbound_payments/{id}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/treasury/outbound_payments',\n methodType: 'list',\n }),\n cancel: stripeMethod({\n method: 'POST',\n fullPath: '/v1/treasury/outbound_payments/{id}/cancel',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const OutboundTransfers = StripeResource.extend({\n update: stripeMethod({\n method: 'POST',\n fullPath: '/v1/test_helpers/treasury/outbound_transfers/{outbound_transfer}',\n }),\n fail: stripeMethod({\n method: 'POST',\n fullPath: '/v1/test_helpers/treasury/outbound_transfers/{outbound_transfer}/fail',\n }),\n post: stripeMethod({\n method: 'POST',\n fullPath: '/v1/test_helpers/treasury/outbound_transfers/{outbound_transfer}/post',\n }),\n returnOutboundTransfer: stripeMethod({\n method: 'POST',\n fullPath: '/v1/test_helpers/treasury/outbound_transfers/{outbound_transfer}/return',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const OutboundTransfers = StripeResource.extend({\n create: stripeMethod({\n method: 'POST',\n fullPath: '/v1/treasury/outbound_transfers',\n }),\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/treasury/outbound_transfers/{outbound_transfer}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/treasury/outbound_transfers',\n methodType: 'list',\n }),\n cancel: stripeMethod({\n method: 'POST',\n fullPath: '/v1/treasury/outbound_transfers/{outbound_transfer}/cancel',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const PersonalizationDesigns = StripeResource.extend({\n create: stripeMethod({\n method: 'POST',\n fullPath: '/v1/issuing/personalization_designs',\n }),\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/issuing/personalization_designs/{personalization_design}',\n }),\n update: stripeMethod({\n method: 'POST',\n fullPath: '/v1/issuing/personalization_designs/{personalization_design}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/issuing/personalization_designs',\n methodType: 'list',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const PersonalizationDesigns = StripeResource.extend({\n activate: stripeMethod({\n method: 'POST',\n fullPath: '/v1/test_helpers/issuing/personalization_designs/{personalization_design}/activate',\n }),\n deactivate: stripeMethod({\n method: 'POST',\n fullPath: '/v1/test_helpers/issuing/personalization_designs/{personalization_design}/deactivate',\n }),\n reject: stripeMethod({\n method: 'POST',\n fullPath: '/v1/test_helpers/issuing/personalization_designs/{personalization_design}/reject',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const PhysicalBundles = StripeResource.extend({\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/issuing/physical_bundles/{physical_bundle}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/issuing/physical_bundles',\n methodType: 'list',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Products = StripeResource.extend({\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/climate/products/{product}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/climate/products',\n methodType: 'list',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Readers = StripeResource.extend({\n create: stripeMethod({ method: 'POST', fullPath: '/v1/terminal/readers' }),\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/terminal/readers/{reader}',\n }),\n update: stripeMethod({\n method: 'POST',\n fullPath: '/v1/terminal/readers/{reader}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/terminal/readers',\n methodType: 'list',\n }),\n del: stripeMethod({\n method: 'DELETE',\n fullPath: '/v1/terminal/readers/{reader}',\n }),\n cancelAction: stripeMethod({\n method: 'POST',\n fullPath: '/v1/terminal/readers/{reader}/cancel_action',\n }),\n collectInputs: stripeMethod({\n method: 'POST',\n fullPath: '/v1/terminal/readers/{reader}/collect_inputs',\n }),\n collectPaymentMethod: stripeMethod({\n method: 'POST',\n fullPath: '/v1/terminal/readers/{reader}/collect_payment_method',\n }),\n confirmPaymentIntent: stripeMethod({\n method: 'POST',\n fullPath: '/v1/terminal/readers/{reader}/confirm_payment_intent',\n }),\n processPaymentIntent: stripeMethod({\n method: 'POST',\n fullPath: '/v1/terminal/readers/{reader}/process_payment_intent',\n }),\n processSetupIntent: stripeMethod({\n method: 'POST',\n fullPath: '/v1/terminal/readers/{reader}/process_setup_intent',\n }),\n refundPayment: stripeMethod({\n method: 'POST',\n fullPath: '/v1/terminal/readers/{reader}/refund_payment',\n }),\n setReaderDisplay: stripeMethod({\n method: 'POST',\n fullPath: '/v1/terminal/readers/{reader}/set_reader_display',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Readers = StripeResource.extend({\n presentPaymentMethod: stripeMethod({\n method: 'POST',\n fullPath: '/v1/test_helpers/terminal/readers/{reader}/present_payment_method',\n }),\n succeedInputCollection: stripeMethod({\n method: 'POST',\n fullPath: '/v1/test_helpers/terminal/readers/{reader}/succeed_input_collection',\n }),\n timeoutInputCollection: stripeMethod({\n method: 'POST',\n fullPath: '/v1/test_helpers/terminal/readers/{reader}/timeout_input_collection',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const ReceivedCredits = StripeResource.extend({\n create: stripeMethod({\n method: 'POST',\n fullPath: '/v1/test_helpers/treasury/received_credits',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const ReceivedCredits = StripeResource.extend({\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/treasury/received_credits/{id}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/treasury/received_credits',\n methodType: 'list',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const ReceivedDebits = StripeResource.extend({\n create: stripeMethod({\n method: 'POST',\n fullPath: '/v1/test_helpers/treasury/received_debits',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const ReceivedDebits = StripeResource.extend({\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/treasury/received_debits/{id}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/treasury/received_debits',\n methodType: 'list',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Refunds = StripeResource.extend({\n expire: stripeMethod({\n method: 'POST',\n fullPath: '/v1/test_helpers/refunds/{refund}/expire',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Registrations = StripeResource.extend({\n create: stripeMethod({ method: 'POST', fullPath: '/v1/tax/registrations' }),\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/tax/registrations/{id}',\n }),\n update: stripeMethod({\n method: 'POST',\n fullPath: '/v1/tax/registrations/{id}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/tax/registrations',\n methodType: 'list',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const ReportRuns = StripeResource.extend({\n create: stripeMethod({ method: 'POST', fullPath: '/v1/reporting/report_runs' }),\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/reporting/report_runs/{report_run}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/reporting/report_runs',\n methodType: 'list',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const ReportTypes = StripeResource.extend({\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/reporting/report_types/{report_type}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/reporting/report_types',\n methodType: 'list',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Requests = StripeResource.extend({\n create: stripeMethod({ method: 'POST', fullPath: '/v1/forwarding/requests' }),\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/forwarding/requests/{id}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/forwarding/requests',\n methodType: 'list',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const ScheduledQueryRuns = StripeResource.extend({\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/sigma/scheduled_query_runs/{scheduled_query_run}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/sigma/scheduled_query_runs',\n methodType: 'list',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Secrets = StripeResource.extend({\n create: stripeMethod({ method: 'POST', fullPath: '/v1/apps/secrets' }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/apps/secrets',\n methodType: 'list',\n }),\n deleteWhere: stripeMethod({\n method: 'POST',\n fullPath: '/v1/apps/secrets/delete',\n }),\n find: stripeMethod({ method: 'GET', fullPath: '/v1/apps/secrets/find' }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Sessions = StripeResource.extend({\n create: stripeMethod({\n method: 'POST',\n fullPath: '/v1/billing_portal/sessions',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Sessions = StripeResource.extend({\n create: stripeMethod({ method: 'POST', fullPath: '/v1/checkout/sessions' }),\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/checkout/sessions/{session}',\n }),\n update: stripeMethod({\n method: 'POST',\n fullPath: '/v1/checkout/sessions/{session}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/checkout/sessions',\n methodType: 'list',\n }),\n expire: stripeMethod({\n method: 'POST',\n fullPath: '/v1/checkout/sessions/{session}/expire',\n }),\n listLineItems: stripeMethod({\n method: 'GET',\n fullPath: '/v1/checkout/sessions/{session}/line_items',\n methodType: 'list',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Sessions = StripeResource.extend({\n create: stripeMethod({\n method: 'POST',\n fullPath: '/v1/financial_connections/sessions',\n }),\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/financial_connections/sessions/{session}',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Settings = StripeResource.extend({\n retrieve: stripeMethod({ method: 'GET', fullPath: '/v1/tax/settings' }),\n update: stripeMethod({ method: 'POST', fullPath: '/v1/tax/settings' }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Suppliers = StripeResource.extend({\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/climate/suppliers/{supplier}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/climate/suppliers',\n methodType: 'list',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const TestClocks = StripeResource.extend({\n create: stripeMethod({\n method: 'POST',\n fullPath: '/v1/test_helpers/test_clocks',\n }),\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/test_helpers/test_clocks/{test_clock}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/test_helpers/test_clocks',\n methodType: 'list',\n }),\n del: stripeMethod({\n method: 'DELETE',\n fullPath: '/v1/test_helpers/test_clocks/{test_clock}',\n }),\n advance: stripeMethod({\n method: 'POST',\n fullPath: '/v1/test_helpers/test_clocks/{test_clock}/advance',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Tokens = StripeResource.extend({\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/issuing/tokens/{token}',\n }),\n update: stripeMethod({\n method: 'POST',\n fullPath: '/v1/issuing/tokens/{token}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/issuing/tokens',\n methodType: 'list',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const TransactionEntries = StripeResource.extend({\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/treasury/transaction_entries/{id}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/treasury/transaction_entries',\n methodType: 'list',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Transactions = StripeResource.extend({\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/financial_connections/transactions/{transaction}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/financial_connections/transactions',\n methodType: 'list',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Transactions = StripeResource.extend({\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/issuing/transactions/{transaction}',\n }),\n update: stripeMethod({\n method: 'POST',\n fullPath: '/v1/issuing/transactions/{transaction}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/issuing/transactions',\n methodType: 'list',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Transactions = StripeResource.extend({\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/tax/transactions/{transaction}',\n }),\n createFromCalculation: stripeMethod({\n method: 'POST',\n fullPath: '/v1/tax/transactions/create_from_calculation',\n }),\n createReversal: stripeMethod({\n method: 'POST',\n fullPath: '/v1/tax/transactions/create_reversal',\n }),\n listLineItems: stripeMethod({\n method: 'GET',\n fullPath: '/v1/tax/transactions/{transaction}/line_items',\n methodType: 'list',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Transactions = StripeResource.extend({\n createForceCapture: stripeMethod({\n method: 'POST',\n fullPath: '/v1/test_helpers/issuing/transactions/create_force_capture',\n }),\n createUnlinkedRefund: stripeMethod({\n method: 'POST',\n fullPath: '/v1/test_helpers/issuing/transactions/create_unlinked_refund',\n }),\n refund: stripeMethod({\n method: 'POST',\n fullPath: '/v1/test_helpers/issuing/transactions/{transaction}/refund',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Transactions = StripeResource.extend({\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/treasury/transactions/{id}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/treasury/transactions',\n methodType: 'list',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const ValueListItems = StripeResource.extend({\n create: stripeMethod({\n method: 'POST',\n fullPath: '/v1/radar/value_list_items',\n }),\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/radar/value_list_items/{item}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/radar/value_list_items',\n methodType: 'list',\n }),\n del: stripeMethod({\n method: 'DELETE',\n fullPath: '/v1/radar/value_list_items/{item}',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const ValueLists = StripeResource.extend({\n create: stripeMethod({ method: 'POST', fullPath: '/v1/radar/value_lists' }),\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/radar/value_lists/{value_list}',\n }),\n update: stripeMethod({\n method: 'POST',\n fullPath: '/v1/radar/value_lists/{value_list}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/radar/value_lists',\n methodType: 'list',\n }),\n del: stripeMethod({\n method: 'DELETE',\n fullPath: '/v1/radar/value_lists/{value_list}',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const VerificationReports = StripeResource.extend({\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/identity/verification_reports/{report}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/identity/verification_reports',\n methodType: 'list',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const VerificationSessions = StripeResource.extend({\n create: stripeMethod({\n method: 'POST',\n fullPath: '/v1/identity/verification_sessions',\n }),\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/identity/verification_sessions/{session}',\n }),\n update: stripeMethod({\n method: 'POST',\n fullPath: '/v1/identity/verification_sessions/{session}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/identity/verification_sessions',\n methodType: 'list',\n }),\n cancel: stripeMethod({\n method: 'POST',\n fullPath: '/v1/identity/verification_sessions/{session}/cancel',\n }),\n redact: stripeMethod({\n method: 'POST',\n fullPath: '/v1/identity/verification_sessions/{session}/redact',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../StripeResource.js';\nconst stripeMethod = StripeResource.method;\n// Since path can either be `account` or `accounts`, support both through stripeMethod path\nexport const Accounts = StripeResource.extend({\n create: stripeMethod({ method: 'POST', fullPath: '/v1/accounts' }),\n retrieve(id, ...args) {\n // No longer allow an api key to be passed as the first string to this function due to ambiguity between\n // old account ids and api keys. To request the account for an api key, send null as the id\n if (typeof id === 'string') {\n return stripeMethod({\n method: 'GET',\n fullPath: '/v1/accounts/{id}',\n }).apply(this, [id, ...args]);\n }\n else {\n if (id === null || id === undefined) {\n // Remove id as stripeMethod would complain of unexpected argument\n [].shift.apply([id, ...args]);\n }\n return stripeMethod({\n method: 'GET',\n fullPath: '/v1/account',\n }).apply(this, [id, ...args]);\n }\n },\n update: stripeMethod({ method: 'POST', fullPath: '/v1/accounts/{account}' }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/accounts',\n methodType: 'list',\n }),\n del: stripeMethod({ method: 'DELETE', fullPath: '/v1/accounts/{account}' }),\n createExternalAccount: stripeMethod({\n method: 'POST',\n fullPath: '/v1/accounts/{account}/external_accounts',\n }),\n createLoginLink: stripeMethod({\n method: 'POST',\n fullPath: '/v1/accounts/{account}/login_links',\n }),\n createPerson: stripeMethod({\n method: 'POST',\n fullPath: '/v1/accounts/{account}/persons',\n }),\n deleteExternalAccount: stripeMethod({\n method: 'DELETE',\n fullPath: '/v1/accounts/{account}/external_accounts/{id}',\n }),\n deletePerson: stripeMethod({\n method: 'DELETE',\n fullPath: '/v1/accounts/{account}/persons/{person}',\n }),\n listCapabilities: stripeMethod({\n method: 'GET',\n fullPath: '/v1/accounts/{account}/capabilities',\n methodType: 'list',\n }),\n listExternalAccounts: stripeMethod({\n method: 'GET',\n fullPath: '/v1/accounts/{account}/external_accounts',\n methodType: 'list',\n }),\n listPersons: stripeMethod({\n method: 'GET',\n fullPath: '/v1/accounts/{account}/persons',\n methodType: 'list',\n }),\n reject: stripeMethod({\n method: 'POST',\n fullPath: '/v1/accounts/{account}/reject',\n }),\n retrieveCurrent: stripeMethod({ method: 'GET', fullPath: '/v1/account' }),\n retrieveCapability: stripeMethod({\n method: 'GET',\n fullPath: '/v1/accounts/{account}/capabilities/{capability}',\n }),\n retrieveExternalAccount: stripeMethod({\n method: 'GET',\n fullPath: '/v1/accounts/{account}/external_accounts/{id}',\n }),\n retrievePerson: stripeMethod({\n method: 'GET',\n fullPath: '/v1/accounts/{account}/persons/{person}',\n }),\n updateCapability: stripeMethod({\n method: 'POST',\n fullPath: '/v1/accounts/{account}/capabilities/{capability}',\n }),\n updateExternalAccount: stripeMethod({\n method: 'POST',\n fullPath: '/v1/accounts/{account}/external_accounts/{id}',\n }),\n updatePerson: stripeMethod({\n method: 'POST',\n fullPath: '/v1/accounts/{account}/persons/{person}',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const AccountLinks = StripeResource.extend({\n create: stripeMethod({ method: 'POST', fullPath: '/v1/account_links' }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const AccountSessions = StripeResource.extend({\n create: stripeMethod({ method: 'POST', fullPath: '/v1/account_sessions' }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const ApplePayDomains = StripeResource.extend({\n create: stripeMethod({ method: 'POST', fullPath: '/v1/apple_pay/domains' }),\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/apple_pay/domains/{domain}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/apple_pay/domains',\n methodType: 'list',\n }),\n del: stripeMethod({\n method: 'DELETE',\n fullPath: '/v1/apple_pay/domains/{domain}',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const ApplicationFees = StripeResource.extend({\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/application_fees/{id}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/application_fees',\n methodType: 'list',\n }),\n createRefund: stripeMethod({\n method: 'POST',\n fullPath: '/v1/application_fees/{id}/refunds',\n }),\n listRefunds: stripeMethod({\n method: 'GET',\n fullPath: '/v1/application_fees/{id}/refunds',\n methodType: 'list',\n }),\n retrieveRefund: stripeMethod({\n method: 'GET',\n fullPath: '/v1/application_fees/{fee}/refunds/{id}',\n }),\n updateRefund: stripeMethod({\n method: 'POST',\n fullPath: '/v1/application_fees/{fee}/refunds/{id}',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Balance = StripeResource.extend({\n retrieve: stripeMethod({ method: 'GET', fullPath: '/v1/balance' }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const BalanceSettings = StripeResource.extend({\n retrieve: stripeMethod({ method: 'GET', fullPath: '/v1/balance_settings' }),\n update: stripeMethod({ method: 'POST', fullPath: '/v1/balance_settings' }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const BalanceTransactions = StripeResource.extend({\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/balance_transactions/{id}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/balance_transactions',\n methodType: 'list',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Charges = StripeResource.extend({\n create: stripeMethod({ method: 'POST', fullPath: '/v1/charges' }),\n retrieve: stripeMethod({ method: 'GET', fullPath: '/v1/charges/{charge}' }),\n update: stripeMethod({ method: 'POST', fullPath: '/v1/charges/{charge}' }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/charges',\n methodType: 'list',\n }),\n capture: stripeMethod({\n method: 'POST',\n fullPath: '/v1/charges/{charge}/capture',\n }),\n search: stripeMethod({\n method: 'GET',\n fullPath: '/v1/charges/search',\n methodType: 'search',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const ConfirmationTokens = StripeResource.extend({\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/confirmation_tokens/{confirmation_token}',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const CountrySpecs = StripeResource.extend({\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/country_specs/{country}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/country_specs',\n methodType: 'list',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Coupons = StripeResource.extend({\n create: stripeMethod({ method: 'POST', fullPath: '/v1/coupons' }),\n retrieve: stripeMethod({ method: 'GET', fullPath: '/v1/coupons/{coupon}' }),\n update: stripeMethod({ method: 'POST', fullPath: '/v1/coupons/{coupon}' }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/coupons',\n methodType: 'list',\n }),\n del: stripeMethod({ method: 'DELETE', fullPath: '/v1/coupons/{coupon}' }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const CreditNotes = StripeResource.extend({\n create: stripeMethod({ method: 'POST', fullPath: '/v1/credit_notes' }),\n retrieve: stripeMethod({ method: 'GET', fullPath: '/v1/credit_notes/{id}' }),\n update: stripeMethod({ method: 'POST', fullPath: '/v1/credit_notes/{id}' }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/credit_notes',\n methodType: 'list',\n }),\n listLineItems: stripeMethod({\n method: 'GET',\n fullPath: '/v1/credit_notes/{credit_note}/lines',\n methodType: 'list',\n }),\n listPreviewLineItems: stripeMethod({\n method: 'GET',\n fullPath: '/v1/credit_notes/preview/lines',\n methodType: 'list',\n }),\n preview: stripeMethod({ method: 'GET', fullPath: '/v1/credit_notes/preview' }),\n voidCreditNote: stripeMethod({\n method: 'POST',\n fullPath: '/v1/credit_notes/{id}/void',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const CustomerSessions = StripeResource.extend({\n create: stripeMethod({ method: 'POST', fullPath: '/v1/customer_sessions' }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Customers = StripeResource.extend({\n create: stripeMethod({ method: 'POST', fullPath: '/v1/customers' }),\n retrieve: stripeMethod({ method: 'GET', fullPath: '/v1/customers/{customer}' }),\n update: stripeMethod({ method: 'POST', fullPath: '/v1/customers/{customer}' }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/customers',\n methodType: 'list',\n }),\n del: stripeMethod({ method: 'DELETE', fullPath: '/v1/customers/{customer}' }),\n createBalanceTransaction: stripeMethod({\n method: 'POST',\n fullPath: '/v1/customers/{customer}/balance_transactions',\n }),\n createFundingInstructions: stripeMethod({\n method: 'POST',\n fullPath: '/v1/customers/{customer}/funding_instructions',\n }),\n createSource: stripeMethod({\n method: 'POST',\n fullPath: '/v1/customers/{customer}/sources',\n }),\n createTaxId: stripeMethod({\n method: 'POST',\n fullPath: '/v1/customers/{customer}/tax_ids',\n }),\n deleteDiscount: stripeMethod({\n method: 'DELETE',\n fullPath: '/v1/customers/{customer}/discount',\n }),\n deleteSource: stripeMethod({\n method: 'DELETE',\n fullPath: '/v1/customers/{customer}/sources/{id}',\n }),\n deleteTaxId: stripeMethod({\n method: 'DELETE',\n fullPath: '/v1/customers/{customer}/tax_ids/{id}',\n }),\n listBalanceTransactions: stripeMethod({\n method: 'GET',\n fullPath: '/v1/customers/{customer}/balance_transactions',\n methodType: 'list',\n }),\n listCashBalanceTransactions: stripeMethod({\n method: 'GET',\n fullPath: '/v1/customers/{customer}/cash_balance_transactions',\n methodType: 'list',\n }),\n listPaymentMethods: stripeMethod({\n method: 'GET',\n fullPath: '/v1/customers/{customer}/payment_methods',\n methodType: 'list',\n }),\n listSources: stripeMethod({\n method: 'GET',\n fullPath: '/v1/customers/{customer}/sources',\n methodType: 'list',\n }),\n listTaxIds: stripeMethod({\n method: 'GET',\n fullPath: '/v1/customers/{customer}/tax_ids',\n methodType: 'list',\n }),\n retrieveBalanceTransaction: stripeMethod({\n method: 'GET',\n fullPath: '/v1/customers/{customer}/balance_transactions/{transaction}',\n }),\n retrieveCashBalance: stripeMethod({\n method: 'GET',\n fullPath: '/v1/customers/{customer}/cash_balance',\n }),\n retrieveCashBalanceTransaction: stripeMethod({\n method: 'GET',\n fullPath: '/v1/customers/{customer}/cash_balance_transactions/{transaction}',\n }),\n retrievePaymentMethod: stripeMethod({\n method: 'GET',\n fullPath: '/v1/customers/{customer}/payment_methods/{payment_method}',\n }),\n retrieveSource: stripeMethod({\n method: 'GET',\n fullPath: '/v1/customers/{customer}/sources/{id}',\n }),\n retrieveTaxId: stripeMethod({\n method: 'GET',\n fullPath: '/v1/customers/{customer}/tax_ids/{id}',\n }),\n search: stripeMethod({\n method: 'GET',\n fullPath: '/v1/customers/search',\n methodType: 'search',\n }),\n updateBalanceTransaction: stripeMethod({\n method: 'POST',\n fullPath: '/v1/customers/{customer}/balance_transactions/{transaction}',\n }),\n updateCashBalance: stripeMethod({\n method: 'POST',\n fullPath: '/v1/customers/{customer}/cash_balance',\n }),\n updateSource: stripeMethod({\n method: 'POST',\n fullPath: '/v1/customers/{customer}/sources/{id}',\n }),\n verifySource: stripeMethod({\n method: 'POST',\n fullPath: '/v1/customers/{customer}/sources/{id}/verify',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Disputes = StripeResource.extend({\n retrieve: stripeMethod({ method: 'GET', fullPath: '/v1/disputes/{dispute}' }),\n update: stripeMethod({ method: 'POST', fullPath: '/v1/disputes/{dispute}' }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/disputes',\n methodType: 'list',\n }),\n close: stripeMethod({\n method: 'POST',\n fullPath: '/v1/disputes/{dispute}/close',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const EphemeralKeys = StripeResource.extend({\n create: stripeMethod({\n method: 'POST',\n fullPath: '/v1/ephemeral_keys',\n validator: (data, options) => {\n if (!options.headers || !options.headers['Stripe-Version']) {\n throw new Error('Passing apiVersion in a separate options hash is required to create an ephemeral key. See https://stripe.com/docs/api/versioning?lang=node');\n }\n },\n }),\n del: stripeMethod({ method: 'DELETE', fullPath: '/v1/ephemeral_keys/{key}' }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Events = StripeResource.extend({\n retrieve: stripeMethod({ method: 'GET', fullPath: '/v1/events/{id}' }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/events',\n methodType: 'list',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const ExchangeRates = StripeResource.extend({\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/exchange_rates/{rate_id}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/exchange_rates',\n methodType: 'list',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const FileLinks = StripeResource.extend({\n create: stripeMethod({ method: 'POST', fullPath: '/v1/file_links' }),\n retrieve: stripeMethod({ method: 'GET', fullPath: '/v1/file_links/{link}' }),\n update: stripeMethod({ method: 'POST', fullPath: '/v1/file_links/{link}' }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/file_links',\n methodType: 'list',\n }),\n});\n","import { flattenAndStringify, queryStringifyRequestData } from './utils.js';\n// Method for formatting HTTP body for the multipart/form-data specification\n// Mostly taken from Fermata.js\n// https://github.com/natevw/fermata/blob/5d9732a33d776ce925013a265935facd1626cc88/fermata.js#L315-L343\nconst multipartDataGenerator = (method, data, headers) => {\n const segno = (Math.round(Math.random() * 1e16) + Math.round(Math.random() * 1e16)).toString();\n headers['Content-Type'] = `multipart/form-data; boundary=${segno}`;\n const textEncoder = new TextEncoder();\n let buffer = new Uint8Array(0);\n const endBuffer = textEncoder.encode('\\r\\n');\n function push(l) {\n const prevBuffer = buffer;\n const newBuffer = l instanceof Uint8Array ? l : new Uint8Array(textEncoder.encode(l));\n buffer = new Uint8Array(prevBuffer.length + newBuffer.length + 2);\n buffer.set(prevBuffer);\n buffer.set(newBuffer, prevBuffer.length);\n buffer.set(endBuffer, buffer.length - 2);\n }\n function q(s) {\n return `\"${s.replace(/\"|\"/g, '%22').replace(/\\r\\n|\\r|\\n/g, ' ')}\"`;\n }\n const flattenedData = flattenAndStringify(data);\n for (const k in flattenedData) {\n if (!Object.prototype.hasOwnProperty.call(flattenedData, k)) {\n continue;\n }\n const v = flattenedData[k];\n push(`--${segno}`);\n if (Object.prototype.hasOwnProperty.call(v, 'data')) {\n const typedEntry = v;\n push(`Content-Disposition: form-data; name=${q(k)}; filename=${q(typedEntry.name || 'blob')}`);\n push(`Content-Type: ${typedEntry.type || 'application/octet-stream'}`);\n push('');\n push(typedEntry.data);\n }\n else {\n push(`Content-Disposition: form-data; name=${q(k)}`);\n push('');\n push(v);\n }\n }\n push(`--${segno}--`);\n return buffer;\n};\nexport function multipartRequestDataProcessor(method, data, headers, callback) {\n data = data || {};\n if (method !== 'POST') {\n return callback(null, queryStringifyRequestData(data));\n }\n this._stripe._platformFunctions\n .tryBufferData(data)\n .then((bufferedData) => {\n const buffer = multipartDataGenerator(method, bufferedData, headers);\n return callback(null, buffer);\n })\n .catch((err) => callback(err, null));\n}\n","// File generated from our OpenAPI spec\nimport { multipartRequestDataProcessor } from '../multipart.js';\nimport { StripeResource } from '../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Files = StripeResource.extend({\n create: stripeMethod({\n method: 'POST',\n fullPath: '/v1/files',\n headers: {\n 'Content-Type': 'multipart/form-data',\n },\n host: 'files.stripe.com',\n }),\n retrieve: stripeMethod({ method: 'GET', fullPath: '/v1/files/{file}' }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/files',\n methodType: 'list',\n }),\n requestDataProcessor: multipartRequestDataProcessor,\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const InvoiceItems = StripeResource.extend({\n create: stripeMethod({ method: 'POST', fullPath: '/v1/invoiceitems' }),\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/invoiceitems/{invoiceitem}',\n }),\n update: stripeMethod({\n method: 'POST',\n fullPath: '/v1/invoiceitems/{invoiceitem}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/invoiceitems',\n methodType: 'list',\n }),\n del: stripeMethod({\n method: 'DELETE',\n fullPath: '/v1/invoiceitems/{invoiceitem}',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const InvoicePayments = StripeResource.extend({\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/invoice_payments/{invoice_payment}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/invoice_payments',\n methodType: 'list',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const InvoiceRenderingTemplates = StripeResource.extend({\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/invoice_rendering_templates/{template}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/invoice_rendering_templates',\n methodType: 'list',\n }),\n archive: stripeMethod({\n method: 'POST',\n fullPath: '/v1/invoice_rendering_templates/{template}/archive',\n }),\n unarchive: stripeMethod({\n method: 'POST',\n fullPath: '/v1/invoice_rendering_templates/{template}/unarchive',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Invoices = StripeResource.extend({\n create: stripeMethod({ method: 'POST', fullPath: '/v1/invoices' }),\n retrieve: stripeMethod({ method: 'GET', fullPath: '/v1/invoices/{invoice}' }),\n update: stripeMethod({ method: 'POST', fullPath: '/v1/invoices/{invoice}' }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/invoices',\n methodType: 'list',\n }),\n del: stripeMethod({ method: 'DELETE', fullPath: '/v1/invoices/{invoice}' }),\n addLines: stripeMethod({\n method: 'POST',\n fullPath: '/v1/invoices/{invoice}/add_lines',\n }),\n attachPayment: stripeMethod({\n method: 'POST',\n fullPath: '/v1/invoices/{invoice}/attach_payment',\n }),\n createPreview: stripeMethod({\n method: 'POST',\n fullPath: '/v1/invoices/create_preview',\n }),\n finalizeInvoice: stripeMethod({\n method: 'POST',\n fullPath: '/v1/invoices/{invoice}/finalize',\n }),\n listLineItems: stripeMethod({\n method: 'GET',\n fullPath: '/v1/invoices/{invoice}/lines',\n methodType: 'list',\n }),\n markUncollectible: stripeMethod({\n method: 'POST',\n fullPath: '/v1/invoices/{invoice}/mark_uncollectible',\n }),\n pay: stripeMethod({ method: 'POST', fullPath: '/v1/invoices/{invoice}/pay' }),\n removeLines: stripeMethod({\n method: 'POST',\n fullPath: '/v1/invoices/{invoice}/remove_lines',\n }),\n search: stripeMethod({\n method: 'GET',\n fullPath: '/v1/invoices/search',\n methodType: 'search',\n }),\n sendInvoice: stripeMethod({\n method: 'POST',\n fullPath: '/v1/invoices/{invoice}/send',\n }),\n updateLines: stripeMethod({\n method: 'POST',\n fullPath: '/v1/invoices/{invoice}/update_lines',\n }),\n updateLineItem: stripeMethod({\n method: 'POST',\n fullPath: '/v1/invoices/{invoice}/lines/{line_item_id}',\n }),\n voidInvoice: stripeMethod({\n method: 'POST',\n fullPath: '/v1/invoices/{invoice}/void',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Mandates = StripeResource.extend({\n retrieve: stripeMethod({ method: 'GET', fullPath: '/v1/mandates/{mandate}' }),\n});\n","'use strict';\nimport { StripeResource } from '../StripeResource.js';\nimport { queryStringifyRequestData } from '../utils.js';\nconst stripeMethod = StripeResource.method;\nconst oAuthHost = 'connect.stripe.com';\nexport const OAuth = StripeResource.extend({\n basePath: '/',\n authorizeUrl(params, options) {\n params = params || {};\n options = options || {};\n let path = 'oauth/authorize';\n // For Express accounts, the path changes\n if (options.express) {\n path = `express/${path}`;\n }\n if (!params.response_type) {\n params.response_type = 'code';\n }\n if (!params.client_id) {\n params.client_id = this._stripe.getClientId();\n }\n if (!params.scope) {\n params.scope = 'read_write';\n }\n return `https://${oAuthHost}/${path}?${queryStringifyRequestData(params)}`;\n },\n token: stripeMethod({\n method: 'POST',\n path: 'oauth/token',\n host: oAuthHost,\n }),\n deauthorize(spec, ...args) {\n if (!spec.client_id) {\n spec.client_id = this._stripe.getClientId();\n }\n return stripeMethod({\n method: 'POST',\n path: 'oauth/deauthorize',\n host: oAuthHost,\n }).apply(this, [spec, ...args]);\n },\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const PaymentAttemptRecords = StripeResource.extend({\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/payment_attempt_records/{id}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/payment_attempt_records',\n methodType: 'list',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const PaymentIntents = StripeResource.extend({\n create: stripeMethod({ method: 'POST', fullPath: '/v1/payment_intents' }),\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/payment_intents/{intent}',\n }),\n update: stripeMethod({\n method: 'POST',\n fullPath: '/v1/payment_intents/{intent}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/payment_intents',\n methodType: 'list',\n }),\n applyCustomerBalance: stripeMethod({\n method: 'POST',\n fullPath: '/v1/payment_intents/{intent}/apply_customer_balance',\n }),\n cancel: stripeMethod({\n method: 'POST',\n fullPath: '/v1/payment_intents/{intent}/cancel',\n }),\n capture: stripeMethod({\n method: 'POST',\n fullPath: '/v1/payment_intents/{intent}/capture',\n }),\n confirm: stripeMethod({\n method: 'POST',\n fullPath: '/v1/payment_intents/{intent}/confirm',\n }),\n incrementAuthorization: stripeMethod({\n method: 'POST',\n fullPath: '/v1/payment_intents/{intent}/increment_authorization',\n }),\n listAmountDetailsLineItems: stripeMethod({\n method: 'GET',\n fullPath: '/v1/payment_intents/{intent}/amount_details_line_items',\n methodType: 'list',\n }),\n search: stripeMethod({\n method: 'GET',\n fullPath: '/v1/payment_intents/search',\n methodType: 'search',\n }),\n verifyMicrodeposits: stripeMethod({\n method: 'POST',\n fullPath: '/v1/payment_intents/{intent}/verify_microdeposits',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const PaymentLinks = StripeResource.extend({\n create: stripeMethod({ method: 'POST', fullPath: '/v1/payment_links' }),\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/payment_links/{payment_link}',\n }),\n update: stripeMethod({\n method: 'POST',\n fullPath: '/v1/payment_links/{payment_link}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/payment_links',\n methodType: 'list',\n }),\n listLineItems: stripeMethod({\n method: 'GET',\n fullPath: '/v1/payment_links/{payment_link}/line_items',\n methodType: 'list',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const PaymentMethodConfigurations = StripeResource.extend({\n create: stripeMethod({\n method: 'POST',\n fullPath: '/v1/payment_method_configurations',\n }),\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/payment_method_configurations/{configuration}',\n }),\n update: stripeMethod({\n method: 'POST',\n fullPath: '/v1/payment_method_configurations/{configuration}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/payment_method_configurations',\n methodType: 'list',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const PaymentMethodDomains = StripeResource.extend({\n create: stripeMethod({\n method: 'POST',\n fullPath: '/v1/payment_method_domains',\n }),\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/payment_method_domains/{payment_method_domain}',\n }),\n update: stripeMethod({\n method: 'POST',\n fullPath: '/v1/payment_method_domains/{payment_method_domain}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/payment_method_domains',\n methodType: 'list',\n }),\n validate: stripeMethod({\n method: 'POST',\n fullPath: '/v1/payment_method_domains/{payment_method_domain}/validate',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const PaymentMethods = StripeResource.extend({\n create: stripeMethod({ method: 'POST', fullPath: '/v1/payment_methods' }),\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/payment_methods/{payment_method}',\n }),\n update: stripeMethod({\n method: 'POST',\n fullPath: '/v1/payment_methods/{payment_method}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/payment_methods',\n methodType: 'list',\n }),\n attach: stripeMethod({\n method: 'POST',\n fullPath: '/v1/payment_methods/{payment_method}/attach',\n }),\n detach: stripeMethod({\n method: 'POST',\n fullPath: '/v1/payment_methods/{payment_method}/detach',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const PaymentRecords = StripeResource.extend({\n retrieve: stripeMethod({ method: 'GET', fullPath: '/v1/payment_records/{id}' }),\n reportPayment: stripeMethod({\n method: 'POST',\n fullPath: '/v1/payment_records/report_payment',\n }),\n reportPaymentAttempt: stripeMethod({\n method: 'POST',\n fullPath: '/v1/payment_records/{id}/report_payment_attempt',\n }),\n reportPaymentAttemptCanceled: stripeMethod({\n method: 'POST',\n fullPath: '/v1/payment_records/{id}/report_payment_attempt_canceled',\n }),\n reportPaymentAttemptFailed: stripeMethod({\n method: 'POST',\n fullPath: '/v1/payment_records/{id}/report_payment_attempt_failed',\n }),\n reportPaymentAttemptGuaranteed: stripeMethod({\n method: 'POST',\n fullPath: '/v1/payment_records/{id}/report_payment_attempt_guaranteed',\n }),\n reportPaymentAttemptInformational: stripeMethod({\n method: 'POST',\n fullPath: '/v1/payment_records/{id}/report_payment_attempt_informational',\n }),\n reportRefund: stripeMethod({\n method: 'POST',\n fullPath: '/v1/payment_records/{id}/report_refund',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Payouts = StripeResource.extend({\n create: stripeMethod({ method: 'POST', fullPath: '/v1/payouts' }),\n retrieve: stripeMethod({ method: 'GET', fullPath: '/v1/payouts/{payout}' }),\n update: stripeMethod({ method: 'POST', fullPath: '/v1/payouts/{payout}' }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/payouts',\n methodType: 'list',\n }),\n cancel: stripeMethod({\n method: 'POST',\n fullPath: '/v1/payouts/{payout}/cancel',\n }),\n reverse: stripeMethod({\n method: 'POST',\n fullPath: '/v1/payouts/{payout}/reverse',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Plans = StripeResource.extend({\n create: stripeMethod({ method: 'POST', fullPath: '/v1/plans' }),\n retrieve: stripeMethod({ method: 'GET', fullPath: '/v1/plans/{plan}' }),\n update: stripeMethod({ method: 'POST', fullPath: '/v1/plans/{plan}' }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/plans',\n methodType: 'list',\n }),\n del: stripeMethod({ method: 'DELETE', fullPath: '/v1/plans/{plan}' }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Prices = StripeResource.extend({\n create: stripeMethod({ method: 'POST', fullPath: '/v1/prices' }),\n retrieve: stripeMethod({ method: 'GET', fullPath: '/v1/prices/{price}' }),\n update: stripeMethod({ method: 'POST', fullPath: '/v1/prices/{price}' }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/prices',\n methodType: 'list',\n }),\n search: stripeMethod({\n method: 'GET',\n fullPath: '/v1/prices/search',\n methodType: 'search',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Products = StripeResource.extend({\n create: stripeMethod({ method: 'POST', fullPath: '/v1/products' }),\n retrieve: stripeMethod({ method: 'GET', fullPath: '/v1/products/{id}' }),\n update: stripeMethod({ method: 'POST', fullPath: '/v1/products/{id}' }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/products',\n methodType: 'list',\n }),\n del: stripeMethod({ method: 'DELETE', fullPath: '/v1/products/{id}' }),\n createFeature: stripeMethod({\n method: 'POST',\n fullPath: '/v1/products/{product}/features',\n }),\n deleteFeature: stripeMethod({\n method: 'DELETE',\n fullPath: '/v1/products/{product}/features/{id}',\n }),\n listFeatures: stripeMethod({\n method: 'GET',\n fullPath: '/v1/products/{product}/features',\n methodType: 'list',\n }),\n retrieveFeature: stripeMethod({\n method: 'GET',\n fullPath: '/v1/products/{product}/features/{id}',\n }),\n search: stripeMethod({\n method: 'GET',\n fullPath: '/v1/products/search',\n methodType: 'search',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const PromotionCodes = StripeResource.extend({\n create: stripeMethod({ method: 'POST', fullPath: '/v1/promotion_codes' }),\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/promotion_codes/{promotion_code}',\n }),\n update: stripeMethod({\n method: 'POST',\n fullPath: '/v1/promotion_codes/{promotion_code}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/promotion_codes',\n methodType: 'list',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Quotes = StripeResource.extend({\n create: stripeMethod({ method: 'POST', fullPath: '/v1/quotes' }),\n retrieve: stripeMethod({ method: 'GET', fullPath: '/v1/quotes/{quote}' }),\n update: stripeMethod({ method: 'POST', fullPath: '/v1/quotes/{quote}' }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/quotes',\n methodType: 'list',\n }),\n accept: stripeMethod({ method: 'POST', fullPath: '/v1/quotes/{quote}/accept' }),\n cancel: stripeMethod({ method: 'POST', fullPath: '/v1/quotes/{quote}/cancel' }),\n finalizeQuote: stripeMethod({\n method: 'POST',\n fullPath: '/v1/quotes/{quote}/finalize',\n }),\n listComputedUpfrontLineItems: stripeMethod({\n method: 'GET',\n fullPath: '/v1/quotes/{quote}/computed_upfront_line_items',\n methodType: 'list',\n }),\n listLineItems: stripeMethod({\n method: 'GET',\n fullPath: '/v1/quotes/{quote}/line_items',\n methodType: 'list',\n }),\n pdf: stripeMethod({\n method: 'GET',\n fullPath: '/v1/quotes/{quote}/pdf',\n host: 'files.stripe.com',\n streaming: true,\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Refunds = StripeResource.extend({\n create: stripeMethod({ method: 'POST', fullPath: '/v1/refunds' }),\n retrieve: stripeMethod({ method: 'GET', fullPath: '/v1/refunds/{refund}' }),\n update: stripeMethod({ method: 'POST', fullPath: '/v1/refunds/{refund}' }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/refunds',\n methodType: 'list',\n }),\n cancel: stripeMethod({\n method: 'POST',\n fullPath: '/v1/refunds/{refund}/cancel',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Reviews = StripeResource.extend({\n retrieve: stripeMethod({ method: 'GET', fullPath: '/v1/reviews/{review}' }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/reviews',\n methodType: 'list',\n }),\n approve: stripeMethod({\n method: 'POST',\n fullPath: '/v1/reviews/{review}/approve',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const SetupAttempts = StripeResource.extend({\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/setup_attempts',\n methodType: 'list',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const SetupIntents = StripeResource.extend({\n create: stripeMethod({ method: 'POST', fullPath: '/v1/setup_intents' }),\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/setup_intents/{intent}',\n }),\n update: stripeMethod({\n method: 'POST',\n fullPath: '/v1/setup_intents/{intent}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/setup_intents',\n methodType: 'list',\n }),\n cancel: stripeMethod({\n method: 'POST',\n fullPath: '/v1/setup_intents/{intent}/cancel',\n }),\n confirm: stripeMethod({\n method: 'POST',\n fullPath: '/v1/setup_intents/{intent}/confirm',\n }),\n verifyMicrodeposits: stripeMethod({\n method: 'POST',\n fullPath: '/v1/setup_intents/{intent}/verify_microdeposits',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const ShippingRates = StripeResource.extend({\n create: stripeMethod({ method: 'POST', fullPath: '/v1/shipping_rates' }),\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/shipping_rates/{shipping_rate_token}',\n }),\n update: stripeMethod({\n method: 'POST',\n fullPath: '/v1/shipping_rates/{shipping_rate_token}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/shipping_rates',\n methodType: 'list',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Sources = StripeResource.extend({\n create: stripeMethod({ method: 'POST', fullPath: '/v1/sources' }),\n retrieve: stripeMethod({ method: 'GET', fullPath: '/v1/sources/{source}' }),\n update: stripeMethod({ method: 'POST', fullPath: '/v1/sources/{source}' }),\n listSourceTransactions: stripeMethod({\n method: 'GET',\n fullPath: '/v1/sources/{source}/source_transactions',\n methodType: 'list',\n }),\n verify: stripeMethod({\n method: 'POST',\n fullPath: '/v1/sources/{source}/verify',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const SubscriptionItems = StripeResource.extend({\n create: stripeMethod({ method: 'POST', fullPath: '/v1/subscription_items' }),\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/subscription_items/{item}',\n }),\n update: stripeMethod({\n method: 'POST',\n fullPath: '/v1/subscription_items/{item}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/subscription_items',\n methodType: 'list',\n }),\n del: stripeMethod({\n method: 'DELETE',\n fullPath: '/v1/subscription_items/{item}',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const SubscriptionSchedules = StripeResource.extend({\n create: stripeMethod({\n method: 'POST',\n fullPath: '/v1/subscription_schedules',\n }),\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/subscription_schedules/{schedule}',\n }),\n update: stripeMethod({\n method: 'POST',\n fullPath: '/v1/subscription_schedules/{schedule}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/subscription_schedules',\n methodType: 'list',\n }),\n cancel: stripeMethod({\n method: 'POST',\n fullPath: '/v1/subscription_schedules/{schedule}/cancel',\n }),\n release: stripeMethod({\n method: 'POST',\n fullPath: '/v1/subscription_schedules/{schedule}/release',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Subscriptions = StripeResource.extend({\n create: stripeMethod({ method: 'POST', fullPath: '/v1/subscriptions' }),\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/subscriptions/{subscription_exposed_id}',\n }),\n update: stripeMethod({\n method: 'POST',\n fullPath: '/v1/subscriptions/{subscription_exposed_id}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/subscriptions',\n methodType: 'list',\n }),\n cancel: stripeMethod({\n method: 'DELETE',\n fullPath: '/v1/subscriptions/{subscription_exposed_id}',\n }),\n deleteDiscount: stripeMethod({\n method: 'DELETE',\n fullPath: '/v1/subscriptions/{subscription_exposed_id}/discount',\n }),\n migrate: stripeMethod({\n method: 'POST',\n fullPath: '/v1/subscriptions/{subscription}/migrate',\n }),\n resume: stripeMethod({\n method: 'POST',\n fullPath: '/v1/subscriptions/{subscription}/resume',\n }),\n search: stripeMethod({\n method: 'GET',\n fullPath: '/v1/subscriptions/search',\n methodType: 'search',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const TaxCodes = StripeResource.extend({\n retrieve: stripeMethod({ method: 'GET', fullPath: '/v1/tax_codes/{id}' }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/tax_codes',\n methodType: 'list',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const TaxIds = StripeResource.extend({\n create: stripeMethod({ method: 'POST', fullPath: '/v1/tax_ids' }),\n retrieve: stripeMethod({ method: 'GET', fullPath: '/v1/tax_ids/{id}' }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/tax_ids',\n methodType: 'list',\n }),\n del: stripeMethod({ method: 'DELETE', fullPath: '/v1/tax_ids/{id}' }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const TaxRates = StripeResource.extend({\n create: stripeMethod({ method: 'POST', fullPath: '/v1/tax_rates' }),\n retrieve: stripeMethod({ method: 'GET', fullPath: '/v1/tax_rates/{tax_rate}' }),\n update: stripeMethod({ method: 'POST', fullPath: '/v1/tax_rates/{tax_rate}' }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/tax_rates',\n methodType: 'list',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Tokens = StripeResource.extend({\n create: stripeMethod({ method: 'POST', fullPath: '/v1/tokens' }),\n retrieve: stripeMethod({ method: 'GET', fullPath: '/v1/tokens/{token}' }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Topups = StripeResource.extend({\n create: stripeMethod({ method: 'POST', fullPath: '/v1/topups' }),\n retrieve: stripeMethod({ method: 'GET', fullPath: '/v1/topups/{topup}' }),\n update: stripeMethod({ method: 'POST', fullPath: '/v1/topups/{topup}' }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/topups',\n methodType: 'list',\n }),\n cancel: stripeMethod({ method: 'POST', fullPath: '/v1/topups/{topup}/cancel' }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const Transfers = StripeResource.extend({\n create: stripeMethod({ method: 'POST', fullPath: '/v1/transfers' }),\n retrieve: stripeMethod({ method: 'GET', fullPath: '/v1/transfers/{transfer}' }),\n update: stripeMethod({ method: 'POST', fullPath: '/v1/transfers/{transfer}' }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/transfers',\n methodType: 'list',\n }),\n createReversal: stripeMethod({\n method: 'POST',\n fullPath: '/v1/transfers/{id}/reversals',\n }),\n listReversals: stripeMethod({\n method: 'GET',\n fullPath: '/v1/transfers/{id}/reversals',\n methodType: 'list',\n }),\n retrieveReversal: stripeMethod({\n method: 'GET',\n fullPath: '/v1/transfers/{transfer}/reversals/{id}',\n }),\n updateReversal: stripeMethod({\n method: 'POST',\n fullPath: '/v1/transfers/{transfer}/reversals/{id}',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { StripeResource } from '../StripeResource.js';\nconst stripeMethod = StripeResource.method;\nexport const WebhookEndpoints = StripeResource.extend({\n create: stripeMethod({ method: 'POST', fullPath: '/v1/webhook_endpoints' }),\n retrieve: stripeMethod({\n method: 'GET',\n fullPath: '/v1/webhook_endpoints/{webhook_endpoint}',\n }),\n update: stripeMethod({\n method: 'POST',\n fullPath: '/v1/webhook_endpoints/{webhook_endpoint}',\n }),\n list: stripeMethod({\n method: 'GET',\n fullPath: '/v1/webhook_endpoints',\n methodType: 'list',\n }),\n del: stripeMethod({\n method: 'DELETE',\n fullPath: '/v1/webhook_endpoints/{webhook_endpoint}',\n }),\n});\n","// File generated from our OpenAPI spec\nimport { resourceNamespace } from './ResourceNamespace.js';\nimport { Accounts as FinancialConnectionsAccounts } from './resources/FinancialConnections/Accounts.js';\nimport { ActiveEntitlements as EntitlementsActiveEntitlements } from './resources/Entitlements/ActiveEntitlements.js';\nimport { Alerts as BillingAlerts } from './resources/Billing/Alerts.js';\nimport { Associations as TaxAssociations } from './resources/Tax/Associations.js';\nimport { Authorizations as IssuingAuthorizations } from './resources/Issuing/Authorizations.js';\nimport { Authorizations as TestHelpersIssuingAuthorizations } from './resources/TestHelpers/Issuing/Authorizations.js';\nimport { Calculations as TaxCalculations } from './resources/Tax/Calculations.js';\nimport { Cardholders as IssuingCardholders } from './resources/Issuing/Cardholders.js';\nimport { Cards as IssuingCards } from './resources/Issuing/Cards.js';\nimport { Cards as TestHelpersIssuingCards } from './resources/TestHelpers/Issuing/Cards.js';\nimport { Configurations as BillingPortalConfigurations } from './resources/BillingPortal/Configurations.js';\nimport { Configurations as TerminalConfigurations } from './resources/Terminal/Configurations.js';\nimport { ConfirmationTokens as TestHelpersConfirmationTokens } from './resources/TestHelpers/ConfirmationTokens.js';\nimport { ConnectionTokens as TerminalConnectionTokens } from './resources/Terminal/ConnectionTokens.js';\nimport { CreditBalanceSummary as BillingCreditBalanceSummary } from './resources/Billing/CreditBalanceSummary.js';\nimport { CreditBalanceTransactions as BillingCreditBalanceTransactions } from './resources/Billing/CreditBalanceTransactions.js';\nimport { CreditGrants as BillingCreditGrants } from './resources/Billing/CreditGrants.js';\nimport { CreditReversals as TreasuryCreditReversals } from './resources/Treasury/CreditReversals.js';\nimport { Customers as TestHelpersCustomers } from './resources/TestHelpers/Customers.js';\nimport { DebitReversals as TreasuryDebitReversals } from './resources/Treasury/DebitReversals.js';\nimport { Disputes as IssuingDisputes } from './resources/Issuing/Disputes.js';\nimport { EarlyFraudWarnings as RadarEarlyFraudWarnings } from './resources/Radar/EarlyFraudWarnings.js';\nimport { EventDestinations as V2CoreEventDestinations } from './resources/V2/Core/EventDestinations.js';\nimport { Events as V2CoreEvents } from './resources/V2/Core/Events.js';\nimport { Features as EntitlementsFeatures } from './resources/Entitlements/Features.js';\nimport { FinancialAccounts as TreasuryFinancialAccounts } from './resources/Treasury/FinancialAccounts.js';\nimport { InboundTransfers as TestHelpersTreasuryInboundTransfers } from './resources/TestHelpers/Treasury/InboundTransfers.js';\nimport { InboundTransfers as TreasuryInboundTransfers } from './resources/Treasury/InboundTransfers.js';\nimport { Locations as TerminalLocations } from './resources/Terminal/Locations.js';\nimport { MeterEventAdjustments as BillingMeterEventAdjustments } from './resources/Billing/MeterEventAdjustments.js';\nimport { MeterEventAdjustments as V2BillingMeterEventAdjustments } from './resources/V2/Billing/MeterEventAdjustments.js';\nimport { MeterEventSession as V2BillingMeterEventSession } from './resources/V2/Billing/MeterEventSession.js';\nimport { MeterEventStream as V2BillingMeterEventStream } from './resources/V2/Billing/MeterEventStream.js';\nimport { MeterEvents as BillingMeterEvents } from './resources/Billing/MeterEvents.js';\nimport { MeterEvents as V2BillingMeterEvents } from './resources/V2/Billing/MeterEvents.js';\nimport { Meters as BillingMeters } from './resources/Billing/Meters.js';\nimport { OnboardingLinks as TerminalOnboardingLinks } from './resources/Terminal/OnboardingLinks.js';\nimport { Orders as ClimateOrders } from './resources/Climate/Orders.js';\nimport { OutboundPayments as TestHelpersTreasuryOutboundPayments } from './resources/TestHelpers/Treasury/OutboundPayments.js';\nimport { OutboundPayments as TreasuryOutboundPayments } from './resources/Treasury/OutboundPayments.js';\nimport { OutboundTransfers as TestHelpersTreasuryOutboundTransfers } from './resources/TestHelpers/Treasury/OutboundTransfers.js';\nimport { OutboundTransfers as TreasuryOutboundTransfers } from './resources/Treasury/OutboundTransfers.js';\nimport { PersonalizationDesigns as IssuingPersonalizationDesigns } from './resources/Issuing/PersonalizationDesigns.js';\nimport { PersonalizationDesigns as TestHelpersIssuingPersonalizationDesigns } from './resources/TestHelpers/Issuing/PersonalizationDesigns.js';\nimport { PhysicalBundles as IssuingPhysicalBundles } from './resources/Issuing/PhysicalBundles.js';\nimport { Products as ClimateProducts } from './resources/Climate/Products.js';\nimport { Readers as TerminalReaders } from './resources/Terminal/Readers.js';\nimport { Readers as TestHelpersTerminalReaders } from './resources/TestHelpers/Terminal/Readers.js';\nimport { ReceivedCredits as TestHelpersTreasuryReceivedCredits } from './resources/TestHelpers/Treasury/ReceivedCredits.js';\nimport { ReceivedCredits as TreasuryReceivedCredits } from './resources/Treasury/ReceivedCredits.js';\nimport { ReceivedDebits as TestHelpersTreasuryReceivedDebits } from './resources/TestHelpers/Treasury/ReceivedDebits.js';\nimport { ReceivedDebits as TreasuryReceivedDebits } from './resources/Treasury/ReceivedDebits.js';\nimport { Refunds as TestHelpersRefunds } from './resources/TestHelpers/Refunds.js';\nimport { Registrations as TaxRegistrations } from './resources/Tax/Registrations.js';\nimport { ReportRuns as ReportingReportRuns } from './resources/Reporting/ReportRuns.js';\nimport { ReportTypes as ReportingReportTypes } from './resources/Reporting/ReportTypes.js';\nimport { Requests as ForwardingRequests } from './resources/Forwarding/Requests.js';\nimport { ScheduledQueryRuns as SigmaScheduledQueryRuns } from './resources/Sigma/ScheduledQueryRuns.js';\nimport { Secrets as AppsSecrets } from './resources/Apps/Secrets.js';\nimport { Sessions as BillingPortalSessions } from './resources/BillingPortal/Sessions.js';\nimport { Sessions as CheckoutSessions } from './resources/Checkout/Sessions.js';\nimport { Sessions as FinancialConnectionsSessions } from './resources/FinancialConnections/Sessions.js';\nimport { Settings as TaxSettings } from './resources/Tax/Settings.js';\nimport { Suppliers as ClimateSuppliers } from './resources/Climate/Suppliers.js';\nimport { TestClocks as TestHelpersTestClocks } from './resources/TestHelpers/TestClocks.js';\nimport { Tokens as IssuingTokens } from './resources/Issuing/Tokens.js';\nimport { TransactionEntries as TreasuryTransactionEntries } from './resources/Treasury/TransactionEntries.js';\nimport { Transactions as FinancialConnectionsTransactions } from './resources/FinancialConnections/Transactions.js';\nimport { Transactions as IssuingTransactions } from './resources/Issuing/Transactions.js';\nimport { Transactions as TaxTransactions } from './resources/Tax/Transactions.js';\nimport { Transactions as TestHelpersIssuingTransactions } from './resources/TestHelpers/Issuing/Transactions.js';\nimport { Transactions as TreasuryTransactions } from './resources/Treasury/Transactions.js';\nimport { ValueListItems as RadarValueListItems } from './resources/Radar/ValueListItems.js';\nimport { ValueLists as RadarValueLists } from './resources/Radar/ValueLists.js';\nimport { VerificationReports as IdentityVerificationReports } from './resources/Identity/VerificationReports.js';\nimport { VerificationSessions as IdentityVerificationSessions } from './resources/Identity/VerificationSessions.js';\nexport { Accounts as Account } from './resources/Accounts.js';\nexport { AccountLinks } from './resources/AccountLinks.js';\nexport { AccountSessions } from './resources/AccountSessions.js';\nexport { Accounts } from './resources/Accounts.js';\nexport { ApplePayDomains } from './resources/ApplePayDomains.js';\nexport { ApplicationFees } from './resources/ApplicationFees.js';\nexport { Balance } from './resources/Balance.js';\nexport { BalanceSettings } from './resources/BalanceSettings.js';\nexport { BalanceTransactions } from './resources/BalanceTransactions.js';\nexport { Charges } from './resources/Charges.js';\nexport { ConfirmationTokens } from './resources/ConfirmationTokens.js';\nexport { CountrySpecs } from './resources/CountrySpecs.js';\nexport { Coupons } from './resources/Coupons.js';\nexport { CreditNotes } from './resources/CreditNotes.js';\nexport { CustomerSessions } from './resources/CustomerSessions.js';\nexport { Customers } from './resources/Customers.js';\nexport { Disputes } from './resources/Disputes.js';\nexport { EphemeralKeys } from './resources/EphemeralKeys.js';\nexport { Events } from './resources/Events.js';\nexport { ExchangeRates } from './resources/ExchangeRates.js';\nexport { FileLinks } from './resources/FileLinks.js';\nexport { Files } from './resources/Files.js';\nexport { InvoiceItems } from './resources/InvoiceItems.js';\nexport { InvoicePayments } from './resources/InvoicePayments.js';\nexport { InvoiceRenderingTemplates } from './resources/InvoiceRenderingTemplates.js';\nexport { Invoices } from './resources/Invoices.js';\nexport { Mandates } from './resources/Mandates.js';\nexport { OAuth } from './resources/OAuth.js';\nexport { PaymentAttemptRecords } from './resources/PaymentAttemptRecords.js';\nexport { PaymentIntents } from './resources/PaymentIntents.js';\nexport { PaymentLinks } from './resources/PaymentLinks.js';\nexport { PaymentMethodConfigurations } from './resources/PaymentMethodConfigurations.js';\nexport { PaymentMethodDomains } from './resources/PaymentMethodDomains.js';\nexport { PaymentMethods } from './resources/PaymentMethods.js';\nexport { PaymentRecords } from './resources/PaymentRecords.js';\nexport { Payouts } from './resources/Payouts.js';\nexport { Plans } from './resources/Plans.js';\nexport { Prices } from './resources/Prices.js';\nexport { Products } from './resources/Products.js';\nexport { PromotionCodes } from './resources/PromotionCodes.js';\nexport { Quotes } from './resources/Quotes.js';\nexport { Refunds } from './resources/Refunds.js';\nexport { Reviews } from './resources/Reviews.js';\nexport { SetupAttempts } from './resources/SetupAttempts.js';\nexport { SetupIntents } from './resources/SetupIntents.js';\nexport { ShippingRates } from './resources/ShippingRates.js';\nexport { Sources } from './resources/Sources.js';\nexport { SubscriptionItems } from './resources/SubscriptionItems.js';\nexport { SubscriptionSchedules } from './resources/SubscriptionSchedules.js';\nexport { Subscriptions } from './resources/Subscriptions.js';\nexport { TaxCodes } from './resources/TaxCodes.js';\nexport { TaxIds } from './resources/TaxIds.js';\nexport { TaxRates } from './resources/TaxRates.js';\nexport { Tokens } from './resources/Tokens.js';\nexport { Topups } from './resources/Topups.js';\nexport { Transfers } from './resources/Transfers.js';\nexport { WebhookEndpoints } from './resources/WebhookEndpoints.js';\nexport const Apps = resourceNamespace('apps', { Secrets: AppsSecrets });\nexport const Billing = resourceNamespace('billing', {\n Alerts: BillingAlerts,\n CreditBalanceSummary: BillingCreditBalanceSummary,\n CreditBalanceTransactions: BillingCreditBalanceTransactions,\n CreditGrants: BillingCreditGrants,\n MeterEventAdjustments: BillingMeterEventAdjustments,\n MeterEvents: BillingMeterEvents,\n Meters: BillingMeters,\n});\nexport const BillingPortal = resourceNamespace('billingPortal', {\n Configurations: BillingPortalConfigurations,\n Sessions: BillingPortalSessions,\n});\nexport const Checkout = resourceNamespace('checkout', {\n Sessions: CheckoutSessions,\n});\nexport const Climate = resourceNamespace('climate', {\n Orders: ClimateOrders,\n Products: ClimateProducts,\n Suppliers: ClimateSuppliers,\n});\nexport const Entitlements = resourceNamespace('entitlements', {\n ActiveEntitlements: EntitlementsActiveEntitlements,\n Features: EntitlementsFeatures,\n});\nexport const FinancialConnections = resourceNamespace('financialConnections', {\n Accounts: FinancialConnectionsAccounts,\n Sessions: FinancialConnectionsSessions,\n Transactions: FinancialConnectionsTransactions,\n});\nexport const Forwarding = resourceNamespace('forwarding', {\n Requests: ForwardingRequests,\n});\nexport const Identity = resourceNamespace('identity', {\n VerificationReports: IdentityVerificationReports,\n VerificationSessions: IdentityVerificationSessions,\n});\nexport const Issuing = resourceNamespace('issuing', {\n Authorizations: IssuingAuthorizations,\n Cardholders: IssuingCardholders,\n Cards: IssuingCards,\n Disputes: IssuingDisputes,\n PersonalizationDesigns: IssuingPersonalizationDesigns,\n PhysicalBundles: IssuingPhysicalBundles,\n Tokens: IssuingTokens,\n Transactions: IssuingTransactions,\n});\nexport const Radar = resourceNamespace('radar', {\n EarlyFraudWarnings: RadarEarlyFraudWarnings,\n ValueListItems: RadarValueListItems,\n ValueLists: RadarValueLists,\n});\nexport const Reporting = resourceNamespace('reporting', {\n ReportRuns: ReportingReportRuns,\n ReportTypes: ReportingReportTypes,\n});\nexport const Sigma = resourceNamespace('sigma', {\n ScheduledQueryRuns: SigmaScheduledQueryRuns,\n});\nexport const Tax = resourceNamespace('tax', {\n Associations: TaxAssociations,\n Calculations: TaxCalculations,\n Registrations: TaxRegistrations,\n Settings: TaxSettings,\n Transactions: TaxTransactions,\n});\nexport const Terminal = resourceNamespace('terminal', {\n Configurations: TerminalConfigurations,\n ConnectionTokens: TerminalConnectionTokens,\n Locations: TerminalLocations,\n OnboardingLinks: TerminalOnboardingLinks,\n Readers: TerminalReaders,\n});\nexport const TestHelpers = resourceNamespace('testHelpers', {\n ConfirmationTokens: TestHelpersConfirmationTokens,\n Customers: TestHelpersCustomers,\n Refunds: TestHelpersRefunds,\n TestClocks: TestHelpersTestClocks,\n Issuing: resourceNamespace('issuing', {\n Authorizations: TestHelpersIssuingAuthorizations,\n Cards: TestHelpersIssuingCards,\n PersonalizationDesigns: TestHelpersIssuingPersonalizationDesigns,\n Transactions: TestHelpersIssuingTransactions,\n }),\n Terminal: resourceNamespace('terminal', {\n Readers: TestHelpersTerminalReaders,\n }),\n Treasury: resourceNamespace('treasury', {\n InboundTransfers: TestHelpersTreasuryInboundTransfers,\n OutboundPayments: TestHelpersTreasuryOutboundPayments,\n OutboundTransfers: TestHelpersTreasuryOutboundTransfers,\n ReceivedCredits: TestHelpersTreasuryReceivedCredits,\n ReceivedDebits: TestHelpersTreasuryReceivedDebits,\n }),\n});\nexport const Treasury = resourceNamespace('treasury', {\n CreditReversals: TreasuryCreditReversals,\n DebitReversals: TreasuryDebitReversals,\n FinancialAccounts: TreasuryFinancialAccounts,\n InboundTransfers: TreasuryInboundTransfers,\n OutboundPayments: TreasuryOutboundPayments,\n OutboundTransfers: TreasuryOutboundTransfers,\n ReceivedCredits: TreasuryReceivedCredits,\n ReceivedDebits: TreasuryReceivedDebits,\n TransactionEntries: TreasuryTransactionEntries,\n Transactions: TreasuryTransactions,\n});\nexport const V2 = resourceNamespace('v2', {\n Billing: resourceNamespace('billing', {\n MeterEventAdjustments: V2BillingMeterEventAdjustments,\n MeterEventSession: V2BillingMeterEventSession,\n MeterEventStream: V2BillingMeterEventStream,\n MeterEvents: V2BillingMeterEvents,\n }),\n Core: resourceNamespace('core', {\n EventDestinations: V2CoreEventDestinations,\n Events: V2CoreEvents,\n }),\n});\n","import * as _Error from './Error.js';\nimport { RequestSender } from './RequestSender.js';\nimport { StripeResource } from './StripeResource.js';\nimport { StripeContext } from './StripeContext.js';\nimport { createWebhooks } from './Webhooks.js';\nimport { ApiVersion } from './apiVersion.js';\nimport { CryptoProvider } from './crypto/CryptoProvider.js';\nimport { HttpClient, HttpClientResponse } from './net/HttpClient.js';\nimport * as resources from './resources.js';\nimport { createApiKeyAuthenticator, determineProcessUserAgentProperties, pascalToCamelCase, validateInteger, } from './utils.js';\nconst DEFAULT_HOST = 'api.stripe.com';\nconst DEFAULT_PORT = '443';\nconst DEFAULT_BASE_PATH = '/v1/';\nconst DEFAULT_API_VERSION = ApiVersion;\nconst DEFAULT_TIMEOUT = 80000;\nconst MAX_NETWORK_RETRY_DELAY_SEC = 5;\nconst INITIAL_NETWORK_RETRY_DELAY_SEC = 0.5;\nconst APP_INFO_PROPERTIES = ['name', 'version', 'url', 'partner_id'];\nconst ALLOWED_CONFIG_PROPERTIES = [\n 'authenticator',\n 'apiVersion',\n 'typescript',\n 'maxNetworkRetries',\n 'httpAgent',\n 'httpClient',\n 'timeout',\n 'host',\n 'port',\n 'protocol',\n 'telemetry',\n 'appInfo',\n 'stripeAccount',\n 'stripeContext',\n];\nconst defaultRequestSenderFactory = (stripe) => new RequestSender(stripe, StripeResource.MAX_BUFFERED_REQUEST_METRICS);\nexport function createStripe(platformFunctions, requestSender = defaultRequestSenderFactory) {\n Stripe.PACKAGE_VERSION = '20.0.0';\n Stripe.API_VERSION = ApiVersion;\n Stripe.USER_AGENT = Object.assign({ bindings_version: Stripe.PACKAGE_VERSION, lang: 'node', publisher: 'stripe', uname: null, typescript: false }, determineProcessUserAgentProperties());\n Stripe.StripeResource = StripeResource;\n Stripe.StripeContext = StripeContext;\n Stripe.resources = resources;\n Stripe.HttpClient = HttpClient;\n Stripe.HttpClientResponse = HttpClientResponse;\n Stripe.CryptoProvider = CryptoProvider;\n Stripe.webhooks = createWebhooks(platformFunctions);\n function Stripe(key, config = {}) {\n if (!(this instanceof Stripe)) {\n return new Stripe(key, config);\n }\n const props = this._getPropsFromConfig(config);\n this._platformFunctions = platformFunctions;\n Object.defineProperty(this, '_emitter', {\n value: this._platformFunctions.createEmitter(),\n enumerable: false,\n configurable: false,\n writable: false,\n });\n this.VERSION = Stripe.PACKAGE_VERSION;\n this.on = this._emitter.on.bind(this._emitter);\n this.once = this._emitter.once.bind(this._emitter);\n this.off = this._emitter.removeListener.bind(this._emitter);\n const agent = props.httpAgent || null;\n this._api = {\n host: props.host || DEFAULT_HOST,\n port: props.port || DEFAULT_PORT,\n protocol: props.protocol || 'https',\n basePath: DEFAULT_BASE_PATH,\n version: props.apiVersion || DEFAULT_API_VERSION,\n timeout: validateInteger('timeout', props.timeout, DEFAULT_TIMEOUT),\n maxNetworkRetries: validateInteger('maxNetworkRetries', props.maxNetworkRetries, 2),\n agent: agent,\n httpClient: props.httpClient ||\n (agent\n ? this._platformFunctions.createNodeHttpClient(agent)\n : this._platformFunctions.createDefaultHttpClient()),\n dev: false,\n stripeAccount: props.stripeAccount || null,\n stripeContext: props.stripeContext || null,\n };\n const typescript = props.typescript || false;\n if (typescript !== Stripe.USER_AGENT.typescript) {\n // The mutation here is uncomfortable, but likely fastest;\n // serializing the user agent involves shelling out to the system,\n // and given some users may instantiate the library many times without switching between TS and non-TS,\n // we only want to incur the performance hit when that actually happens.\n Stripe.USER_AGENT.typescript = typescript;\n }\n if (props.appInfo) {\n this._setAppInfo(props.appInfo);\n }\n this._prepResources();\n this._setAuthenticator(key, props.authenticator);\n this.errors = _Error;\n this.webhooks = Stripe.webhooks;\n this._prevRequestMetrics = [];\n this._enableTelemetry = props.telemetry !== false;\n this._requestSender = requestSender(this);\n // Expose StripeResource on the instance too\n // @ts-ignore\n this.StripeResource = Stripe.StripeResource;\n }\n Stripe.errors = _Error;\n Stripe.createNodeHttpClient = platformFunctions.createNodeHttpClient;\n /**\n * Creates an HTTP client for issuing Stripe API requests which uses the Web\n * Fetch API.\n *\n * A fetch function can optionally be passed in as a parameter. If none is\n * passed, will default to the default `fetch` function in the global scope.\n */\n Stripe.createFetchHttpClient = platformFunctions.createFetchHttpClient;\n /**\n * Create a CryptoProvider which uses the built-in Node crypto libraries for\n * its crypto operations.\n */\n Stripe.createNodeCryptoProvider = platformFunctions.createNodeCryptoProvider;\n /**\n * Creates a CryptoProvider which uses the Subtle Crypto API from the Web\n * Crypto API spec for its crypto operations.\n *\n * A SubtleCrypto interface can optionally be passed in as a parameter. If none\n * is passed, will default to the default `crypto.subtle` object in the global\n * scope.\n */\n Stripe.createSubtleCryptoProvider =\n platformFunctions.createSubtleCryptoProvider;\n Stripe.prototype = {\n // Properties are set in the constructor above\n _appInfo: undefined,\n on: null,\n off: null,\n once: null,\n VERSION: null,\n StripeResource: null,\n webhooks: null,\n errors: null,\n _api: null,\n _prevRequestMetrics: null,\n _emitter: null,\n _enableTelemetry: null,\n _requestSender: null,\n _platformFunctions: null,\n rawRequest(method, path, params, options) {\n return this._requestSender._rawRequest(method, path, params, options);\n },\n /**\n * @private\n */\n _setAuthenticator(key, authenticator) {\n if (key && authenticator) {\n throw new Error(\"Can't specify both apiKey and authenticator\");\n }\n if (!key && !authenticator) {\n throw new Error('Neither apiKey nor config.authenticator provided');\n }\n this._authenticator = key\n ? createApiKeyAuthenticator(key)\n : authenticator;\n },\n /**\n * @private\n * This may be removed in the future.\n */\n _setAppInfo(info) {\n if (info && typeof info !== 'object') {\n throw new Error('AppInfo must be an object.');\n }\n if (info && !info.name) {\n throw new Error('AppInfo.name is required');\n }\n info = info || {};\n this._appInfo = APP_INFO_PROPERTIES.reduce((accum, prop) => {\n if (typeof info[prop] == 'string') {\n accum = accum || {};\n accum[prop] = info[prop];\n }\n return accum;\n }, {});\n },\n /**\n * @private\n * This may be removed in the future.\n */\n _setApiField(key, value) {\n this._api[key] = value;\n },\n /**\n * @private\n * Please open or upvote an issue at github.com/stripe/stripe-node\n * if you use this, detailing your use-case.\n *\n * It may be deprecated and removed in the future.\n */\n getApiField(key) {\n return this._api[key];\n },\n setClientId(clientId) {\n this._clientId = clientId;\n },\n getClientId() {\n return this._clientId;\n },\n /**\n * @private\n * Please open or upvote an issue at github.com/stripe/stripe-node\n * if you use this, detailing your use-case.\n *\n * It may be deprecated and removed in the future.\n */\n getConstant: (c) => {\n switch (c) {\n case 'DEFAULT_HOST':\n return DEFAULT_HOST;\n case 'DEFAULT_PORT':\n return DEFAULT_PORT;\n case 'DEFAULT_BASE_PATH':\n return DEFAULT_BASE_PATH;\n case 'DEFAULT_API_VERSION':\n return DEFAULT_API_VERSION;\n case 'DEFAULT_TIMEOUT':\n return DEFAULT_TIMEOUT;\n case 'MAX_NETWORK_RETRY_DELAY_SEC':\n return MAX_NETWORK_RETRY_DELAY_SEC;\n case 'INITIAL_NETWORK_RETRY_DELAY_SEC':\n return INITIAL_NETWORK_RETRY_DELAY_SEC;\n }\n return Stripe[c];\n },\n getMaxNetworkRetries() {\n return this.getApiField('maxNetworkRetries');\n },\n /**\n * @private\n * This may be removed in the future.\n */\n _setApiNumberField(prop, n, defaultVal) {\n const val = validateInteger(prop, n, defaultVal);\n this._setApiField(prop, val);\n },\n getMaxNetworkRetryDelay() {\n return MAX_NETWORK_RETRY_DELAY_SEC;\n },\n getInitialNetworkRetryDelay() {\n return INITIAL_NETWORK_RETRY_DELAY_SEC;\n },\n /**\n * @private\n * Please open or upvote an issue at github.com/stripe/stripe-node\n * if you use this, detailing your use-case.\n *\n * It may be deprecated and removed in the future.\n *\n * Gets a JSON version of a User-Agent and uses a cached version for a slight\n * speed advantage.\n */\n getClientUserAgent(cb) {\n return this.getClientUserAgentSeeded(Stripe.USER_AGENT, cb);\n },\n /**\n * @private\n * Please open or upvote an issue at github.com/stripe/stripe-node\n * if you use this, detailing your use-case.\n *\n * It may be deprecated and removed in the future.\n *\n * Gets a JSON version of a User-Agent by encoding a seeded object and\n * fetching a uname from the system.\n */\n getClientUserAgentSeeded(seed, cb) {\n this._platformFunctions.getUname().then((uname) => {\n var _a;\n const userAgent = {};\n for (const field in seed) {\n if (!Object.prototype.hasOwnProperty.call(seed, field)) {\n continue;\n }\n userAgent[field] = encodeURIComponent((_a = seed[field]) !== null && _a !== void 0 ? _a : 'null');\n }\n // URI-encode in case there are unusual characters in the system's uname.\n userAgent.uname = encodeURIComponent(uname || 'UNKNOWN');\n const client = this.getApiField('httpClient');\n if (client) {\n userAgent.httplib = encodeURIComponent(client.getClientName());\n }\n if (this._appInfo) {\n userAgent.application = this._appInfo;\n }\n cb(JSON.stringify(userAgent));\n });\n },\n /**\n * @private\n * Please open or upvote an issue at github.com/stripe/stripe-node\n * if you use this, detailing your use-case.\n *\n * It may be deprecated and removed in the future.\n */\n getAppInfoAsString() {\n if (!this._appInfo) {\n return '';\n }\n let formatted = this._appInfo.name;\n if (this._appInfo.version) {\n formatted += `/${this._appInfo.version}`;\n }\n if (this._appInfo.url) {\n formatted += ` (${this._appInfo.url})`;\n }\n return formatted;\n },\n getTelemetryEnabled() {\n return this._enableTelemetry;\n },\n /**\n * @private\n * This may be removed in the future.\n */\n _prepResources() {\n for (const name in resources) {\n if (!Object.prototype.hasOwnProperty.call(resources, name)) {\n continue;\n }\n // @ts-ignore\n this[pascalToCamelCase(name)] = new resources[name](this);\n }\n },\n /**\n * @private\n * This may be removed in the future.\n */\n _getPropsFromConfig(config) {\n // If config is null or undefined, just bail early with no props\n if (!config) {\n return {};\n }\n // config can be an object or a string\n const isString = typeof config === 'string';\n const isObject = config === Object(config) && !Array.isArray(config);\n if (!isObject && !isString) {\n throw new Error('Config must either be an object or a string');\n }\n // If config is a string, we assume the old behavior of passing in a string representation of the api version\n if (isString) {\n return {\n apiVersion: config,\n };\n }\n // If config is an object, we assume the new behavior and make sure it doesn't contain any unexpected values\n const values = Object.keys(config).filter((value) => !ALLOWED_CONFIG_PROPERTIES.includes(value));\n if (values.length > 0) {\n throw new Error(`Config object may only contain the following: ${ALLOWED_CONFIG_PROPERTIES.join(', ')}`);\n }\n return config;\n },\n parseEventNotification(payload, header, secret, tolerance, cryptoProvider, receivedAt\n // this return type is ignored?? picks up types from `types/index.d.ts` instead\n ) {\n // parses and validates the event payload all in one go\n const eventNotification = this.webhooks.constructEvent(payload, header, secret, tolerance, cryptoProvider, receivedAt);\n // Parse string context into StripeContext object if present\n if (eventNotification.context) {\n eventNotification.context = StripeContext.parse(eventNotification.context);\n }\n eventNotification.fetchEvent = () => {\n return this._requestSender._rawRequest('GET', `/v2/core/events/${eventNotification.id}`, undefined, {\n stripeContext: eventNotification.context,\n }, ['fetch_event']);\n };\n eventNotification.fetchRelatedObject = () => {\n if (!eventNotification.related_object) {\n return Promise.resolve(null);\n }\n return this._requestSender._rawRequest('GET', eventNotification.related_object.url, undefined, {\n stripeContext: eventNotification.context,\n }, ['fetch_related_object']);\n };\n return eventNotification;\n },\n };\n return Stripe;\n}\n","import { WebPlatformFunctions } from './platform/WebPlatformFunctions.js';\nimport { createStripe } from './stripe.core.js';\nexport const Stripe = createStripe(new WebPlatformFunctions());\nexport default Stripe;\n","import Stripe from \"stripe\";\n\n// TODO: Re-enable when resilience modules are exported from reveal package\n// import { withCircuitBreaker } from \"reveal/core/resilience/circuit-breaker\"\n// import { retry } from \"reveal/core/resilience/retry\"\n\nconst stripe: Stripe = new Stripe(process.env.STRIPE_SECRET_KEY as string, {\n\tapiVersion: \"2025-11-17.clover\",\n});\n\n/**\n * Wrapper for Stripe API calls with circuit breaker and retry logic\n * TODO: Re-enable when resilience modules are exported from reveal package\n */\nasync function callWithResilience<T>(\n\toperation: () => Promise<T>,\n\toperationName: string,\n): Promise<T> {\n\t// Temporarily disabled - resilience modules not exported\n\t// TODO: Re-enable when reveal/core/resilience modules are exported\n\treturn operation();\n\n\t/* Original implementation (disabled):\n // Wrap with circuit breaker\n const protectedOperation = withCircuitBreaker(\n `stripe.${operationName}`,\n async () => {\n // Wrap with retry logic\n return retry(operation, {\n maxAttempts: 3,\n initialDelay: 1000,\n maxDelay: 10000,\n backoffMultiplier: 2,\n jitter: true,\n })\n },\n {\n failureThreshold: 5,\n resetTimeout: 60000, // 1 minute\n monitoringPeriod: 60000, // 1 minute\n }\n )\n\n return protectedOperation()\n */\n}\n\n/**\n * Enhanced Stripe client with circuit breaker and retry protection\n */\nexport const protectedStripe = {\n\tcustomers: {\n\t\tcreate: (...args: Parameters<typeof stripe.customers.create>) =>\n\t\t\tcallWithResilience(\n\t\t\t\t() => stripe.customers.create(...args),\n\t\t\t\t\"customers.create\",\n\t\t\t),\n\t\tretrieve: (...args: Parameters<typeof stripe.customers.retrieve>) =>\n\t\t\tcallWithResilience(\n\t\t\t\t() => stripe.customers.retrieve(...args),\n\t\t\t\t\"customers.retrieve\",\n\t\t\t),\n\t\tupdate: (...args: Parameters<typeof stripe.customers.update>) =>\n\t\t\tcallWithResilience(\n\t\t\t\t() => stripe.customers.update(...args),\n\t\t\t\t\"customers.update\",\n\t\t\t),\n\t\tdel: (...args: Parameters<typeof stripe.customers.del>) =>\n\t\t\tcallWithResilience(() => stripe.customers.del(...args), \"customers.del\"),\n\t},\n\tpaymentIntents: {\n\t\tcreate: (...args: Parameters<typeof stripe.paymentIntents.create>) =>\n\t\t\tcallWithResilience(\n\t\t\t\t() => stripe.paymentIntents.create(...args),\n\t\t\t\t\"paymentIntents.create\",\n\t\t\t),\n\t\tretrieve: (...args: Parameters<typeof stripe.paymentIntents.retrieve>) =>\n\t\t\tcallWithResilience(\n\t\t\t\t() => stripe.paymentIntents.retrieve(...args),\n\t\t\t\t\"paymentIntents.retrieve\",\n\t\t\t),\n\t\tupdate: (...args: Parameters<typeof stripe.paymentIntents.update>) =>\n\t\t\tcallWithResilience(\n\t\t\t\t() => stripe.paymentIntents.update(...args),\n\t\t\t\t\"paymentIntents.update\",\n\t\t\t),\n\t},\n\tcheckout: {\n\t\tsessions: {\n\t\t\tcreate: (...args: Parameters<typeof stripe.checkout.sessions.create>) =>\n\t\t\t\tcallWithResilience(\n\t\t\t\t\t() => stripe.checkout.sessions.create(...args),\n\t\t\t\t\t\"checkout.sessions.create\",\n\t\t\t\t),\n\t\t\tretrieve: (\n\t\t\t\t...args: Parameters<typeof stripe.checkout.sessions.retrieve>\n\t\t\t) =>\n\t\t\t\tcallWithResilience(\n\t\t\t\t\t() => stripe.checkout.sessions.retrieve(...args),\n\t\t\t\t\t\"checkout.sessions.retrieve\",\n\t\t\t\t),\n\t\t},\n\t},\n\tproducts: {\n\t\tcreate: (...args: Parameters<typeof stripe.products.create>) =>\n\t\t\tcallWithResilience(\n\t\t\t\t() => stripe.products.create(...args),\n\t\t\t\t\"products.create\",\n\t\t\t),\n\t\tretrieve: (...args: Parameters<typeof stripe.products.retrieve>) =>\n\t\t\tcallWithResilience(\n\t\t\t\t() => stripe.products.retrieve(...args),\n\t\t\t\t\"products.retrieve\",\n\t\t\t),\n\t\tupdate: (...args: Parameters<typeof stripe.products.update>) =>\n\t\t\tcallWithResilience(\n\t\t\t\t() => stripe.products.update(...args),\n\t\t\t\t\"products.update\",\n\t\t\t),\n\t},\n\tprices: {\n\t\tcreate: (...args: Parameters<typeof stripe.prices.create>) =>\n\t\t\tcallWithResilience(() => stripe.prices.create(...args), \"prices.create\"),\n\t\tretrieve: (...args: Parameters<typeof stripe.prices.retrieve>) =>\n\t\t\tcallWithResilience(\n\t\t\t\t() => stripe.prices.retrieve(...args),\n\t\t\t\t\"prices.retrieve\",\n\t\t\t),\n\t\tupdate: (...args: Parameters<typeof stripe.prices.update>) =>\n\t\t\tcallWithResilience(() => stripe.prices.update(...args), \"prices.update\"),\n\t},\n\tsubscriptions: {\n\t\tretrieve: (...args: Parameters<typeof stripe.subscriptions.retrieve>) =>\n\t\t\tcallWithResilience(\n\t\t\t\t() => stripe.subscriptions.retrieve(...args),\n\t\t\t\t\"subscriptions.retrieve\",\n\t\t\t),\n\t\tupdate: (...args: Parameters<typeof stripe.subscriptions.update>) =>\n\t\t\tcallWithResilience(\n\t\t\t\t() => stripe.subscriptions.update(...args),\n\t\t\t\t\"subscriptions.update\",\n\t\t\t),\n\t\tcancel: (...args: Parameters<typeof stripe.subscriptions.cancel>) =>\n\t\t\tcallWithResilience(\n\t\t\t\t() => stripe.subscriptions.cancel(...args),\n\t\t\t\t\"subscriptions.cancel\",\n\t\t\t),\n\t},\n\twebhooks: stripe.webhooks,\n\tbalance: stripe.balance,\n};\n\n// Export both the raw client (for webhooks) and protected client\nexport default stripe;\n","/**\n * Avoid modifying this file. It's part of\n * https://github.com/supabase-community/base64url-js. Submit all fixes on\n * that repo!\n */\n/**\n * An array of characters that encode 6 bits into a Base64-URL alphabet\n * character.\n */\nconst TO_BASE64URL = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_\".split(\"\");\n/**\n * An array of characters that can appear in a Base64-URL encoded string but\n * should be ignored.\n */\nconst IGNORE_BASE64URL = \" \\t\\n\\r=\".split(\"\");\n/**\n * An array of 128 numbers that map a Base64-URL character to 6 bits, or if -2\n * used to skip the character, or if -1 used to error out.\n */\nconst FROM_BASE64URL = (() => {\n const charMap = new Array(128);\n for (let i = 0; i < charMap.length; i += 1) {\n charMap[i] = -1;\n }\n for (let i = 0; i < IGNORE_BASE64URL.length; i += 1) {\n charMap[IGNORE_BASE64URL[i].charCodeAt(0)] = -2;\n }\n for (let i = 0; i < TO_BASE64URL.length; i += 1) {\n charMap[TO_BASE64URL[i].charCodeAt(0)] = i;\n }\n return charMap;\n})();\n/**\n * Converts a JavaScript string (which may include any valid character) into a\n * Base64-URL encoded string. The string is first encoded in UTF-8 which is\n * then encoded as Base64-URL.\n *\n * @param str The string to convert.\n */\nexport function stringToBase64URL(str) {\n const base64 = [];\n let queue = 0;\n let queuedBits = 0;\n const emitter = (byte) => {\n queue = (queue << 8) | byte;\n queuedBits += 8;\n while (queuedBits >= 6) {\n const pos = (queue >> (queuedBits - 6)) & 63;\n base64.push(TO_BASE64URL[pos]);\n queuedBits -= 6;\n }\n };\n stringToUTF8(str, emitter);\n if (queuedBits > 0) {\n queue = queue << (6 - queuedBits);\n queuedBits = 6;\n while (queuedBits >= 6) {\n const pos = (queue >> (queuedBits - 6)) & 63;\n base64.push(TO_BASE64URL[pos]);\n queuedBits -= 6;\n }\n }\n return base64.join(\"\");\n}\n/**\n * Converts a Base64-URL encoded string into a JavaScript string. It is assumed\n * that the underlying string has been encoded as UTF-8.\n *\n * @param str The Base64-URL encoded string.\n */\nexport function stringFromBase64URL(str) {\n const conv = [];\n const emit = (codepoint) => {\n conv.push(String.fromCodePoint(codepoint));\n };\n const state = {\n utf8seq: 0,\n codepoint: 0,\n };\n let queue = 0;\n let queuedBits = 0;\n for (let i = 0; i < str.length; i += 1) {\n const codepoint = str.charCodeAt(i);\n const bits = FROM_BASE64URL[codepoint];\n if (bits > -1) {\n // valid Base64-URL character\n queue = (queue << 6) | bits;\n queuedBits += 6;\n while (queuedBits >= 8) {\n stringFromUTF8((queue >> (queuedBits - 8)) & 0xff, state, emit);\n queuedBits -= 8;\n }\n }\n else if (bits === -2) {\n // ignore spaces, tabs, newlines, =\n continue;\n }\n else {\n throw new Error(`Invalid Base64-URL character \"${str.at(i)}\" at position ${i}`);\n }\n }\n return conv.join(\"\");\n}\n/**\n * Converts a Unicode codepoint to a multi-byte UTF-8 sequence.\n *\n * @param codepoint The Unicode codepoint.\n * @param emit Function which will be called for each UTF-8 byte that represents the codepoint.\n */\nexport function codepointToUTF8(codepoint, emit) {\n if (codepoint <= 0x7f) {\n emit(codepoint);\n return;\n }\n else if (codepoint <= 0x7ff) {\n emit(0xc0 | (codepoint >> 6));\n emit(0x80 | (codepoint & 0x3f));\n return;\n }\n else if (codepoint <= 0xffff) {\n emit(0xe0 | (codepoint >> 12));\n emit(0x80 | ((codepoint >> 6) & 0x3f));\n emit(0x80 | (codepoint & 0x3f));\n return;\n }\n else if (codepoint <= 0x10ffff) {\n emit(0xf0 | (codepoint >> 18));\n emit(0x80 | ((codepoint >> 12) & 0x3f));\n emit(0x80 | ((codepoint >> 6) & 0x3f));\n emit(0x80 | (codepoint & 0x3f));\n return;\n }\n throw new Error(`Unrecognized Unicode codepoint: ${codepoint.toString(16)}`);\n}\n/**\n * Converts a JavaScript string to a sequence of UTF-8 bytes.\n *\n * @param str The string to convert to UTF-8.\n * @param emit Function which will be called for each UTF-8 byte of the string.\n */\nexport function stringToUTF8(str, emit) {\n for (let i = 0; i < str.length; i += 1) {\n let codepoint = str.charCodeAt(i);\n if (codepoint > 0xd7ff && codepoint <= 0xdbff) {\n // most UTF-16 codepoints are Unicode codepoints, except values in this\n // range where the next UTF-16 codepoint needs to be combined with the\n // current one to get the Unicode codepoint\n const highSurrogate = ((codepoint - 0xd800) * 0x400) & 0xffff;\n const lowSurrogate = (str.charCodeAt(i + 1) - 0xdc00) & 0xffff;\n codepoint = (lowSurrogate | highSurrogate) + 0x10000;\n i += 1;\n }\n codepointToUTF8(codepoint, emit);\n }\n}\n/**\n * Converts a UTF-8 byte to a Unicode codepoint.\n *\n * @param byte The UTF-8 byte next in the sequence.\n * @param state The shared state between consecutive UTF-8 bytes in the\n * sequence, an object with the shape `{ utf8seq: 0, codepoint: 0 }`.\n * @param emit Function which will be called for each codepoint.\n */\nexport function stringFromUTF8(byte, state, emit) {\n if (state.utf8seq === 0) {\n if (byte <= 0x7f) {\n emit(byte);\n return;\n }\n // count the number of 1 leading bits until you reach 0\n for (let leadingBit = 1; leadingBit < 6; leadingBit += 1) {\n if (((byte >> (7 - leadingBit)) & 1) === 0) {\n state.utf8seq = leadingBit;\n break;\n }\n }\n if (state.utf8seq === 2) {\n state.codepoint = byte & 31;\n }\n else if (state.utf8seq === 3) {\n state.codepoint = byte & 15;\n }\n else if (state.utf8seq === 4) {\n state.codepoint = byte & 7;\n }\n else {\n throw new Error(\"Invalid UTF-8 sequence\");\n }\n state.utf8seq -= 1;\n }\n else if (state.utf8seq > 0) {\n if (byte <= 0x7f) {\n throw new Error(\"Invalid UTF-8 sequence\");\n }\n state.codepoint = (state.codepoint << 6) | (byte & 63);\n state.utf8seq -= 1;\n if (state.utf8seq === 0) {\n emit(state.codepoint);\n }\n }\n}\n//# sourceMappingURL=base64url.js.map"],"names":["type","__viteBrowserExternal","_","key","hasMap","mapSizeDescriptor","mapSize","mapForEach","hasSet","setSizeDescriptor","setSize","setForEach","hasWeakMap","weakMapHas","hasWeakSet","weakSetHas","hasWeakRef","weakRefDeref","booleanValueOf","objectToString","functionToString","$match","$slice","$replace","$toUpperCase","$toLowerCase","$test","$concat","$join","$arrSlice","$floor","bigIntValueOf","gOPS","symToString","hasShammedSymbols","toStringTag","isEnumerable","gPO","O","addNumericSeparator","num","str","sepRegex","int","intStr","dec","utilInspect","require$$0","inspectCustom","inspectSymbol","isSymbol","quotes","quoteREs","objectInspect","inspect_","obj","options","depth","seen","opts","has","customInspect","numericSeparator","inspectString","bigIntStr","maxDepth","isArray","indent","getIndent","indexOf","inspect","value","from","noIndent","newOpts","isRegExp","name","nameOf","keys","arrObjKeys","symString","markBoxed","isElement","s","attrs","i","wrapQuotes","quote","xs","singleLineValues","indentedJoin","isError","parts","isMap","mapParts","collectionOf","isSet","setParts","isWeakMap","weakCollectionOf","isWeakSet","isWeakRef","isNumber","isBigInt","isBoolean","isString","global","isDate","ys","isPlainObject","protoTag","stringTag","toStr","constructorTag","tag","defaultStyle","style","quoteChar","canTrustToString","hasOwn","f","m","x","l","remaining","trailer","quoteRE","lowbyte","c","n","size","entries","joinedEntries","baseIndent","lineJoiner","isArr","syms","symMap","k","j","$TypeError","require$$1","listGetNode","list","isDelete","prev","curr","listGet","objects","node","listSet","listHas","listDelete","sideChannelList","$o","channel","root","deletedNode","esObjectAtoms","esErrors","_eval","range","ref","syntax","uri","abs","floor","max","min","pow","round","_isNaN","a","$isNaN","sign","number","gOPD","$gOPD","gopd","$defineProperty","esDefineProperty","shams","sym","symObj","symVal","descriptor","origSymbol","hasSymbolSham","hasSymbols","Reflect_getPrototypeOf","$Object","Object_getPrototypeOf","ERROR_MESSAGE","funcType","concatty","b","arr","slicy","arrLike","offset","joiny","joiner","implementation","that","target","args","bound","binder","result","boundLength","boundArgs","Empty","functionBind","functionCall","functionApply","reflectApply","bind","$apply","$call","require$$2","$reflectApply","require$$3","actualApply","$actualApply","callBindApplyHelpers","callBind","hasProtoAccessor","e","desc","$getPrototypeOf","get","reflectGetProto","originalGetProto","getDunderProto","getProto","call","$hasOwn","hasown","undefined","$Error","$EvalError","$RangeError","$ReferenceError","require$$4","$SyntaxError","require$$5","require$$6","$URIError","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","$Function","getEvalledConstructor","expressionSyntax","require$$15","require$$16","throwTypeError","ThrowTypeError","require$$17","require$$18","$ObjectGPO","require$$19","$ReflectGPO","require$$20","require$$21","require$$22","needsEval","TypedArray","INTRINSICS","errorProto","doEval","fn","gen","LEGACY_ALIASES","require$$23","require$$24","$spliceApply","$strSlice","$exec","rePropName","reEscapeChar","stringToPath","string","first","last","match","subString","getBaseIntrinsic","allowMissing","intrinsicName","alias","getIntrinsic","intrinsicBaseName","intrinsic","intrinsicRealName","skipFurtherCaching","isOwn","part","GetIntrinsic","callBindBasic","$indexOf","callBound","$Map","$mapGet","$mapSet","$mapHas","$mapDelete","$mapSize","sideChannelMap","$m","getSideChannelMap","$WeakMap","$weakMapGet","$weakMapSet","$weakMapHas","$weakMapDelete","sideChannelWeakmap","$wm","getSideChannelList","getSideChannelWeakMap","makeChannel","sideChannel","$channelData","replace","percentTwenties","Format","formats","hexTable","array","compactQueue","queue","item","compacted","arrayToObject","source","merge","mergeTarget","targetItem","acc","assign","decode","defaultDecoder","charset","strWithoutPlus","limit","encode","defaultEncoder","kind","format","$0","out","segment","compact","refs","val","isBuffer","combine","maybeMap","mapped","utils","getSideChannel","arrayPrefixGenerators","prefix","push","pushToArray","valueOrArray","toISO","defaultFormat","defaults","date","isNonNullishPrimitive","v","sentinel","stringify","object","generateArrayPrefix","commaRoundTrip","allowEmptyArrays","strictNullHandling","skipNulls","encodeDotInKeys","encoder","filter","sort","allowDots","serializeDate","formatter","encodeValuesOnly","tmpSc","step","findFlag","pos","keyValue","values","objKeys","encodedPrefix","adjustedPrefix","encodedKey","keyPrefix","valueSideChannel","normalizeStringifyOptions","arrayFormat","stringify_1","joined","interpretNumericEntities","numberStr","parseArrayValue","currentArrayLength","isoSentinel","charsetSentinel","parseValues","cleanStr","skipIndex","bracketEqualsPos","encodedVal","existing","parseObject","chain","valuesParsed","parentKey","leaf","cleanRoot","decodedRoot","index","parseKeys","givenKey","brackets","child","parent","normalizeParseOptions","duplicates","parse","tempObj","newObj","lib","OPTIONS_KEYS","isOptionsHash","o","prop","queryStringifyRequestData","data","apiMode","qs\n .stringify","d","makeURLInterpolator","rc","cleanString","outputs","$1","output","isValidEncodeUriComponentType","extractUrlParams","path","params","param","getDataFromArgs","argKeys","optionKeysInArgs","emitWarning","getOptionsFromArgs","arg","createApiKeyAuthenticator","extraKeys","protoExtend","sub","Super","Constructor","removeNullish","normalizeHeaders","header","normalizeHeader","text","callbackifyPromiseWithTimeout","promise","callback","res","err","pascalToCamelCase","warning","isObject","flattenAndStringify","prevKey","newKey","validateInteger","defaultVal","determineProcessUserAgentProperties","apiKey","authenticator","request","dateTimeReplacer","jsonStringifyRequestData","getAPIMode","parseHttpHeaderAsString","parseHttpHeaderAsNumber","parseHeadersForFetch","headers","HttpClient","host","port","method","requestData","protocol","timeout","timeoutErr","HttpClientResponse","statusCode","streamCompleteCallback","FetchHttpClient","fetchFn","url","init","pendingTimeoutId","timeoutPromise","reject","fetchPromise","abort","timeoutId","isInsecureConnection","methodHasPayload","body","FetchHttpClientResponse","headersObj","entry","CryptoProvider","payload","secret","CryptoProviderOnlySupportsAsyncError","SubtleCryptoProvider","subtleCrypto","signatureBuffer","signatureBytes","signatureHexCodes","byteHexMapping","PlatformFunctions","len","agent","_StripeEvent","eventName","StripeEmitter","listener","listenerWrapper","event","WebPlatformFunctions","generateV1Error","rawStripeError","StripeCardError","StripeInvalidRequestError","StripeAPIError","StripeAuthenticationError","StripeRateLimitError","StripeIdempotencyError","StripeInvalidGrantError","StripeUnknownError","generateV2Error","TemporarySessionExpiredError","StripeError","raw","_a","StripePermissionError","StripeConnectionError","StripeSignatureVerificationError","MAX_RETRY_AFTER_WAIT","RequestSender","stripe","maxBufferedRequestMetric","optsContext","clientContext","requestEvent","requestEndTime","requestDurationMs","usage","responseEvent","stream","requestId","jsonResponse","rawResponse","requestRetries","numRetries","maxRetries","error","retryAfter","initialNetworkRetryDelay","maxNetworkRetryDelay","sleepSeconds","settings","genKey","contentType","contentLength","apiVersion","clientUserAgent","userSuppliedHeaders","userSuppliedSettings","stripeAccount","stripeContext","defaultHeaders","packageVersion","appInfo","metrics","resolve","requestMethod","dataFromArgs","calculatedOptions","requestCallback","response","requestDataProcessor","retryRequest","requestFn","makeRequest","req","requestStartTime","isTimeoutError","prepareAndMakeRequest","_b","_c","stringifiedData","V1Iterator","firstPagePromise","requestArgs","spec","stripeResource","pageResult","reverseIteration","isReverseIteration","idx","nextPageResult","_pageResult","nextPromise","ret","V1ListIterator","lastId","getLastId","V1SearchIterator","V2ListIterator","nextPageUrl","page","nextPageIterator","makeAutoPaginationMethods","makeAutoPaginationMethodsFromIterator","iterator","autoPagingEach","makeAutoPagingEach","autoPagingToArray","makeAutoPagingToArray","autoPaginationMethods","getAsyncIteratorSymbol","getDoneCallback","onDone","getItemCallback","onItem","next","shouldContinue","listResult","lastIdx","lastItem","asyncIteratorNext","autoPagePromise","wrapAsyncIteratorWithCallback","items","handleIteration","iterResult","stripeMethod","requestPromise","StripeResource","deprecatedUrlData","commandPath","urlData","urlParts","computedCommandPath","pathWithSymbols","overrideData","urlParams","isUsingFullPath","streaming","requestPath","dataInQuery","emptyQuery","StripeContext","segments","contextStr","createWebhooks","platformFunctions","Webhook","tolerance","cryptoProvider","receivedAt","preparedOpts","prepareOptions","signature","encodedPayload","encodedHeader","details","suspectPayloadType","parseEventDetails","secretContainsWhitespace","getCryptoProvider","expectedSignature","makeHMACContent","validateComputedSignature","expectedScheme","textDecoder","decodedPayload","decodedHeader","parseHeader","signatureFound","docsLocation","whitespaceMessage","timestampAge","scheme","accum","kv","webhooksCryptoProviderInstance","timestamp","payloadString","generateHeaderString","ApiVersion","ResourceNamespace","resources","camelCaseName","resource","resourceNamespace","namespace","Accounts","ActiveEntitlements","Alerts","Associations","Authorizations","Calculations","Cardholders","Cards","Configurations","ConfirmationTokens","ConnectionTokens","CreditBalanceSummary","CreditBalanceTransactions","CreditGrants","CreditReversals","Customers","DebitReversals","Disputes","EarlyFraudWarnings","EventDestinations","Events","pulledEvent","Features","FinancialAccounts","InboundTransfers","Locations","MeterEventAdjustments","MeterEventSession","MeterEventStream","MeterEvents","Meters","OnboardingLinks","Orders","OutboundPayments","OutboundTransfers","PersonalizationDesigns","PhysicalBundles","Products","Readers","ReceivedCredits","ReceivedDebits","Refunds","Registrations","ReportRuns","ReportTypes","Requests","ScheduledQueryRuns","Secrets","Sessions","Settings","Suppliers","TestClocks","Tokens","TransactionEntries","Transactions","ValueListItems","ValueLists","VerificationReports","VerificationSessions","id","AccountLinks","AccountSessions","ApplePayDomains","ApplicationFees","Balance","BalanceSettings","BalanceTransactions","Charges","CountrySpecs","Coupons","CreditNotes","CustomerSessions","EphemeralKeys","ExchangeRates","FileLinks","multipartDataGenerator","segno","textEncoder","buffer","endBuffer","prevBuffer","newBuffer","q","flattenedData","typedEntry","multipartRequestDataProcessor","bufferedData","Files","InvoiceItems","InvoicePayments","InvoiceRenderingTemplates","Invoices","Mandates","oAuthHost","OAuth","PaymentAttemptRecords","PaymentIntents","PaymentLinks","PaymentMethodConfigurations","PaymentMethodDomains","PaymentMethods","PaymentRecords","Payouts","Plans","Prices","PromotionCodes","Quotes","Reviews","SetupAttempts","SetupIntents","ShippingRates","Sources","SubscriptionItems","SubscriptionSchedules","Subscriptions","TaxCodes","TaxIds","TaxRates","Topups","Transfers","WebhookEndpoints","Apps","AppsSecrets","Billing","BillingAlerts","BillingCreditBalanceSummary","BillingCreditBalanceTransactions","BillingCreditGrants","BillingMeterEventAdjustments","BillingMeterEvents","BillingMeters","BillingPortal","BillingPortalConfigurations","BillingPortalSessions","Checkout","CheckoutSessions","Climate","ClimateOrders","ClimateProducts","ClimateSuppliers","Entitlements","EntitlementsActiveEntitlements","EntitlementsFeatures","FinancialConnections","FinancialConnectionsAccounts","FinancialConnectionsSessions","FinancialConnectionsTransactions","Forwarding","ForwardingRequests","Identity","IdentityVerificationReports","IdentityVerificationSessions","Issuing","IssuingAuthorizations","IssuingCardholders","IssuingCards","IssuingDisputes","IssuingPersonalizationDesigns","IssuingPhysicalBundles","IssuingTokens","IssuingTransactions","Radar","RadarEarlyFraudWarnings","RadarValueListItems","RadarValueLists","Reporting","ReportingReportRuns","ReportingReportTypes","Sigma","SigmaScheduledQueryRuns","Tax","TaxAssociations","TaxCalculations","TaxRegistrations","TaxSettings","TaxTransactions","Terminal","TerminalConfigurations","TerminalConnectionTokens","TerminalLocations","TerminalOnboardingLinks","TerminalReaders","TestHelpers","TestHelpersConfirmationTokens","TestHelpersCustomers","TestHelpersRefunds","TestHelpersTestClocks","TestHelpersIssuingAuthorizations","TestHelpersIssuingCards","TestHelpersIssuingPersonalizationDesigns","TestHelpersIssuingTransactions","TestHelpersTerminalReaders","TestHelpersTreasuryInboundTransfers","TestHelpersTreasuryOutboundPayments","TestHelpersTreasuryOutboundTransfers","TestHelpersTreasuryReceivedCredits","TestHelpersTreasuryReceivedDebits","Treasury","TreasuryCreditReversals","TreasuryDebitReversals","TreasuryFinancialAccounts","TreasuryInboundTransfers","TreasuryOutboundPayments","TreasuryOutboundTransfers","TreasuryReceivedCredits","TreasuryReceivedDebits","TreasuryTransactionEntries","TreasuryTransactions","V2","V2BillingMeterEventAdjustments","V2BillingMeterEventSession","V2BillingMeterEventStream","V2BillingMeterEvents","V2CoreEventDestinations","V2CoreEvents","DEFAULT_HOST","DEFAULT_PORT","DEFAULT_BASE_PATH","DEFAULT_API_VERSION","DEFAULT_TIMEOUT","MAX_NETWORK_RETRY_DELAY_SEC","INITIAL_NETWORK_RETRY_DELAY_SEC","APP_INFO_PROPERTIES","ALLOWED_CONFIG_PROPERTIES","defaultRequestSenderFactory","createStripe","requestSender","Stripe","config","props","typescript","_Error","info","clientId","cb","seed","uname","userAgent","field","client","formatted","eventNotification","define_process_env_default","TO_BASE64URL","IGNORE_BASE64URL","charMap"],"mappings":"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","x_google_ignoreList":[0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,200]}