dodopayments 1.53.2 → 2.0.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 (740) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +114 -44
  3. package/api-promise.d.mts +2 -0
  4. package/api-promise.d.mts.map +1 -0
  5. package/api-promise.d.ts +2 -0
  6. package/api-promise.d.ts.map +1 -0
  7. package/api-promise.js +6 -0
  8. package/api-promise.js.map +1 -0
  9. package/api-promise.mjs +2 -0
  10. package/api-promise.mjs.map +1 -0
  11. package/bin/cli +53 -0
  12. package/bin/migration-config.json +6 -0
  13. package/client.d.mts +259 -0
  14. package/client.d.mts.map +1 -0
  15. package/client.d.ts +259 -0
  16. package/client.d.ts.map +1 -0
  17. package/client.js +536 -0
  18. package/client.js.map +1 -0
  19. package/client.mjs +532 -0
  20. package/client.mjs.map +1 -0
  21. package/core/api-promise.d.mts +46 -0
  22. package/core/api-promise.d.mts.map +1 -0
  23. package/core/api-promise.d.ts +46 -0
  24. package/core/api-promise.d.ts.map +1 -0
  25. package/core/api-promise.js +74 -0
  26. package/core/api-promise.js.map +1 -0
  27. package/core/api-promise.mjs +70 -0
  28. package/core/api-promise.mjs.map +1 -0
  29. package/core/error.d.mts +46 -0
  30. package/core/error.d.mts.map +1 -0
  31. package/core/error.d.ts +46 -0
  32. package/core/error.d.ts.map +1 -0
  33. package/core/error.js +113 -0
  34. package/core/error.js.map +1 -0
  35. package/core/error.mjs +97 -0
  36. package/core/error.mjs.map +1 -0
  37. package/core/pagination.d.mts +70 -0
  38. package/core/pagination.d.mts.map +1 -0
  39. package/core/pagination.d.ts +70 -0
  40. package/core/pagination.d.ts.map +1 -0
  41. package/core/pagination.js +129 -0
  42. package/core/pagination.js.map +1 -0
  43. package/core/pagination.mjs +122 -0
  44. package/core/pagination.mjs.map +1 -0
  45. package/core/resource.d.mts +6 -0
  46. package/core/resource.d.mts.map +1 -0
  47. package/core/resource.d.ts +6 -0
  48. package/core/resource.d.ts.map +1 -0
  49. package/core/resource.js +11 -0
  50. package/core/resource.js.map +1 -0
  51. package/core/resource.mjs +7 -0
  52. package/core/resource.mjs.map +1 -0
  53. package/core/uploads.d.mts +3 -0
  54. package/core/uploads.d.mts.map +1 -0
  55. package/core/uploads.d.ts +3 -0
  56. package/core/uploads.d.ts.map +1 -0
  57. package/core/uploads.js +6 -0
  58. package/core/uploads.js.map +1 -0
  59. package/core/uploads.mjs +2 -0
  60. package/core/uploads.mjs.map +1 -0
  61. package/error.d.mts +2 -0
  62. package/error.d.mts.map +1 -0
  63. package/error.d.ts +1 -46
  64. package/error.d.ts.map +1 -1
  65. package/error.js +3 -110
  66. package/error.js.map +1 -1
  67. package/error.mjs +1 -96
  68. package/error.mjs.map +1 -1
  69. package/index.d.mts +7 -190
  70. package/index.d.mts.map +1 -0
  71. package/index.d.ts +6 -189
  72. package/index.d.ts.map +1 -1
  73. package/index.js +14 -195
  74. package/index.js.map +1 -1
  75. package/index.mjs +6 -168
  76. package/index.mjs.map +1 -1
  77. package/internal/builtin-types.d.mts +73 -0
  78. package/internal/builtin-types.d.mts.map +1 -0
  79. package/internal/builtin-types.d.ts +73 -0
  80. package/internal/builtin-types.d.ts.map +1 -0
  81. package/internal/builtin-types.js +4 -0
  82. package/internal/builtin-types.js.map +1 -0
  83. package/internal/builtin-types.mjs +3 -0
  84. package/internal/builtin-types.mjs.map +1 -0
  85. package/internal/detect-platform.d.mts +15 -0
  86. package/internal/detect-platform.d.mts.map +1 -0
  87. package/internal/detect-platform.d.ts +15 -0
  88. package/internal/detect-platform.d.ts.map +1 -0
  89. package/internal/detect-platform.js +162 -0
  90. package/internal/detect-platform.js.map +1 -0
  91. package/internal/detect-platform.mjs +157 -0
  92. package/internal/detect-platform.mjs.map +1 -0
  93. package/internal/errors.d.mts +3 -0
  94. package/internal/errors.d.mts.map +1 -0
  95. package/internal/errors.d.ts +3 -0
  96. package/internal/errors.d.ts.map +1 -0
  97. package/internal/errors.js +41 -0
  98. package/internal/errors.js.map +1 -0
  99. package/internal/errors.mjs +36 -0
  100. package/internal/errors.mjs.map +1 -0
  101. package/internal/headers.d.mts +20 -0
  102. package/internal/headers.d.mts.map +1 -0
  103. package/internal/headers.d.ts +20 -0
  104. package/internal/headers.d.ts.map +1 -0
  105. package/internal/headers.js +79 -0
  106. package/internal/headers.js.map +1 -0
  107. package/internal/headers.mjs +74 -0
  108. package/internal/headers.mjs.map +1 -0
  109. package/internal/parse.d.mts +12 -0
  110. package/internal/parse.d.mts.map +1 -0
  111. package/internal/parse.d.ts +12 -0
  112. package/internal/parse.d.ts.map +1 -0
  113. package/internal/parse.js +35 -0
  114. package/internal/parse.js.map +1 -0
  115. package/internal/parse.mjs +32 -0
  116. package/internal/parse.mjs.map +1 -0
  117. package/internal/request-options.d.mts +75 -0
  118. package/internal/request-options.d.mts.map +1 -0
  119. package/internal/request-options.d.ts +75 -0
  120. package/internal/request-options.d.ts.map +1 -0
  121. package/internal/request-options.js +14 -0
  122. package/internal/request-options.js.map +1 -0
  123. package/internal/request-options.mjs +10 -0
  124. package/internal/request-options.mjs.map +1 -0
  125. package/internal/shim-types.d.mts +17 -0
  126. package/internal/shim-types.d.mts.map +1 -0
  127. package/internal/shim-types.d.ts +17 -0
  128. package/internal/shim-types.d.ts.map +1 -0
  129. package/internal/shim-types.js +4 -0
  130. package/internal/shim-types.js.map +1 -0
  131. package/internal/shim-types.mjs +3 -0
  132. package/internal/shim-types.mjs.map +1 -0
  133. package/internal/shims.d.mts +20 -0
  134. package/internal/shims.d.mts.map +1 -0
  135. package/internal/shims.d.ts +20 -0
  136. package/internal/shims.d.ts.map +1 -0
  137. package/internal/shims.js +92 -0
  138. package/internal/shims.js.map +1 -0
  139. package/internal/shims.mjs +85 -0
  140. package/internal/shims.mjs.map +1 -0
  141. package/internal/to-file.d.mts +45 -0
  142. package/internal/to-file.d.mts.map +1 -0
  143. package/internal/to-file.d.ts +45 -0
  144. package/internal/to-file.d.ts.map +1 -0
  145. package/internal/to-file.js +91 -0
  146. package/internal/to-file.js.map +1 -0
  147. package/internal/to-file.mjs +88 -0
  148. package/internal/to-file.mjs.map +1 -0
  149. package/internal/tslib.js +81 -0
  150. package/internal/tslib.mjs +17 -0
  151. package/internal/types.d.mts +69 -0
  152. package/internal/types.d.mts.map +1 -0
  153. package/internal/types.d.ts +69 -0
  154. package/internal/types.d.ts.map +1 -0
  155. package/internal/types.js +4 -0
  156. package/internal/types.js.map +1 -0
  157. package/internal/types.mjs +3 -0
  158. package/internal/types.mjs.map +1 -0
  159. package/internal/uploads.d.mts +42 -0
  160. package/internal/uploads.d.mts.map +1 -0
  161. package/internal/uploads.d.ts +42 -0
  162. package/internal/uploads.d.ts.map +1 -0
  163. package/internal/uploads.js +141 -0
  164. package/internal/uploads.js.map +1 -0
  165. package/internal/uploads.mjs +131 -0
  166. package/internal/uploads.mjs.map +1 -0
  167. package/internal/utils/base64.d.mts +3 -0
  168. package/internal/utils/base64.d.mts.map +1 -0
  169. package/internal/utils/base64.d.ts +3 -0
  170. package/internal/utils/base64.d.ts.map +1 -0
  171. package/internal/utils/base64.js +38 -0
  172. package/internal/utils/base64.js.map +1 -0
  173. package/internal/utils/base64.mjs +33 -0
  174. package/internal/utils/base64.mjs.map +1 -0
  175. package/internal/utils/bytes.d.mts +4 -0
  176. package/internal/utils/bytes.d.mts.map +1 -0
  177. package/internal/utils/bytes.d.ts +4 -0
  178. package/internal/utils/bytes.d.ts.map +1 -0
  179. package/internal/utils/bytes.js +31 -0
  180. package/internal/utils/bytes.js.map +1 -0
  181. package/internal/utils/bytes.mjs +26 -0
  182. package/internal/utils/bytes.mjs.map +1 -0
  183. package/internal/utils/env.d.mts +9 -0
  184. package/internal/utils/env.d.mts.map +1 -0
  185. package/internal/utils/env.d.ts +9 -0
  186. package/internal/utils/env.d.ts.map +1 -0
  187. package/internal/utils/env.js +22 -0
  188. package/internal/utils/env.js.map +1 -0
  189. package/internal/utils/env.mjs +18 -0
  190. package/internal/utils/env.mjs.map +1 -0
  191. package/internal/utils/log.d.mts +37 -0
  192. package/internal/utils/log.d.mts.map +1 -0
  193. package/internal/utils/log.d.ts +37 -0
  194. package/internal/utils/log.d.ts.map +1 -0
  195. package/internal/utils/log.js +85 -0
  196. package/internal/utils/log.js.map +1 -0
  197. package/internal/utils/log.mjs +79 -0
  198. package/internal/utils/log.mjs.map +1 -0
  199. package/internal/utils/path.d.mts +15 -0
  200. package/internal/utils/path.d.mts.map +1 -0
  201. package/internal/utils/path.d.ts +15 -0
  202. package/internal/utils/path.d.ts.map +1 -0
  203. package/internal/utils/path.js +79 -0
  204. package/internal/utils/path.js.map +1 -0
  205. package/internal/utils/path.mjs +74 -0
  206. package/internal/utils/path.mjs.map +1 -0
  207. package/internal/utils/sleep.d.mts +2 -0
  208. package/internal/utils/sleep.d.mts.map +1 -0
  209. package/internal/utils/sleep.d.ts +2 -0
  210. package/internal/utils/sleep.d.ts.map +1 -0
  211. package/internal/utils/sleep.js +7 -0
  212. package/internal/utils/sleep.js.map +1 -0
  213. package/internal/utils/sleep.mjs +3 -0
  214. package/internal/utils/sleep.mjs.map +1 -0
  215. package/internal/utils/uuid.d.mts +5 -0
  216. package/internal/utils/uuid.d.mts.map +1 -0
  217. package/internal/utils/uuid.d.ts +5 -0
  218. package/internal/utils/uuid.d.ts.map +1 -0
  219. package/internal/utils/uuid.js +19 -0
  220. package/internal/utils/uuid.js.map +1 -0
  221. package/internal/utils/uuid.mjs +15 -0
  222. package/internal/utils/uuid.mjs.map +1 -0
  223. package/internal/utils/values.d.mts +18 -0
  224. package/internal/utils/values.d.mts.map +1 -0
  225. package/internal/utils/values.d.ts +18 -0
  226. package/internal/utils/values.d.ts.map +1 -0
  227. package/internal/utils/values.js +112 -0
  228. package/internal/utils/values.js.map +1 -0
  229. package/internal/utils/values.mjs +94 -0
  230. package/internal/utils/values.mjs.map +1 -0
  231. package/internal/utils.d.mts +7 -0
  232. package/internal/utils.d.mts.map +1 -0
  233. package/internal/utils.d.ts +7 -0
  234. package/internal/utils.d.ts.map +1 -0
  235. package/internal/utils.js +11 -0
  236. package/internal/utils.js.map +1 -0
  237. package/internal/utils.mjs +8 -0
  238. package/internal/utils.mjs.map +1 -0
  239. package/package.json +115 -66
  240. package/pagination.d.mts +2 -0
  241. package/pagination.d.mts.map +1 -0
  242. package/pagination.d.ts +1 -34
  243. package/pagination.d.ts.map +1 -1
  244. package/pagination.js +3 -71
  245. package/pagination.js.map +1 -1
  246. package/pagination.mjs +1 -68
  247. package/pagination.mjs.map +1 -1
  248. package/resource.d.mts +2 -0
  249. package/resource.d.mts.map +1 -0
  250. package/resource.d.ts +1 -5
  251. package/resource.d.ts.map +1 -1
  252. package/resource.js +3 -8
  253. package/resource.js.map +1 -1
  254. package/resource.mjs +1 -6
  255. package/resource.mjs.map +1 -1
  256. package/resources/addons.d.mts +113 -0
  257. package/resources/addons.d.mts.map +1 -0
  258. package/resources/addons.d.ts +11 -12
  259. package/resources/addons.d.ts.map +1 -1
  260. package/resources/addons.js +8 -15
  261. package/resources/addons.js.map +1 -1
  262. package/resources/addons.mjs +7 -13
  263. package/resources/addons.mjs.map +1 -1
  264. package/resources/brands.d.mts +66 -0
  265. package/resources/brands.d.mts.map +1 -0
  266. package/resources/brands.d.ts +8 -7
  267. package/resources/brands.d.ts.map +1 -1
  268. package/resources/brands.js +5 -4
  269. package/resources/brands.js.map +1 -1
  270. package/resources/brands.mjs +5 -4
  271. package/resources/brands.mjs.map +1 -1
  272. package/resources/checkout-sessions.d.mts +349 -0
  273. package/resources/checkout-sessions.d.mts.map +1 -0
  274. package/resources/checkout-sessions.d.ts +4 -3
  275. package/resources/checkout-sessions.d.ts.map +1 -1
  276. package/resources/checkout-sessions.js +1 -1
  277. package/resources/checkout-sessions.js.map +1 -1
  278. package/resources/checkout-sessions.mjs +1 -1
  279. package/resources/checkout-sessions.mjs.map +1 -1
  280. package/resources/customers/customer-portal.d.mts +17 -0
  281. package/resources/customers/customer-portal.d.mts.map +1 -0
  282. package/resources/customers/customer-portal.d.ts +4 -4
  283. package/resources/customers/customer-portal.d.ts.map +1 -1
  284. package/resources/customers/customer-portal.js +5 -8
  285. package/resources/customers/customer-portal.js.map +1 -1
  286. package/resources/customers/customer-portal.mjs +5 -8
  287. package/resources/customers/customer-portal.mjs.map +1 -1
  288. package/resources/customers/customers.d.mts +49 -0
  289. package/resources/customers/customers.d.mts.map +1 -0
  290. package/resources/customers/customers.d.ts +10 -11
  291. package/resources/customers/customers.d.ts.map +1 -1
  292. package/resources/customers/customers.js +15 -41
  293. package/resources/customers/customers.js.map +1 -1
  294. package/resources/customers/customers.mjs +11 -14
  295. package/resources/customers/customers.mjs.map +1 -1
  296. package/resources/customers/index.d.mts +4 -0
  297. package/resources/customers/index.d.mts.map +1 -0
  298. package/resources/customers/index.d.ts +1 -1
  299. package/resources/customers/index.d.ts.map +1 -1
  300. package/resources/customers/index.js +1 -2
  301. package/resources/customers/index.js.map +1 -1
  302. package/resources/customers/index.mjs +1 -1
  303. package/resources/customers/index.mjs.map +1 -1
  304. package/resources/customers/wallets/index.d.mts +3 -0
  305. package/resources/customers/wallets/index.d.mts.map +1 -0
  306. package/resources/customers/wallets/index.d.ts +1 -1
  307. package/resources/customers/wallets/index.d.ts.map +1 -1
  308. package/resources/customers/wallets/index.js +1 -2
  309. package/resources/customers/wallets/index.js.map +1 -1
  310. package/resources/customers/wallets/index.mjs +1 -1
  311. package/resources/customers/wallets/index.mjs.map +1 -1
  312. package/resources/customers/wallets/ledger-entries.d.mts +51 -0
  313. package/resources/customers/wallets/ledger-entries.d.mts.map +1 -0
  314. package/resources/customers/wallets/ledger-entries.d.ts +8 -9
  315. package/resources/customers/wallets/ledger-entries.d.ts.map +1 -1
  316. package/resources/customers/wallets/ledger-entries.js +8 -16
  317. package/resources/customers/wallets/ledger-entries.js.map +1 -1
  318. package/resources/customers/wallets/ledger-entries.mjs +7 -14
  319. package/resources/customers/wallets/ledger-entries.mjs.map +1 -1
  320. package/resources/customers/wallets/wallets.d.mts +29 -0
  321. package/resources/customers/wallets/wallets.d.mts.map +1 -0
  322. package/resources/customers/wallets/wallets.d.ts +5 -4
  323. package/resources/customers/wallets/wallets.d.ts.map +1 -1
  324. package/resources/customers/wallets/wallets.js +6 -29
  325. package/resources/customers/wallets/wallets.js.map +1 -1
  326. package/resources/customers/wallets/wallets.mjs +5 -6
  327. package/resources/customers/wallets/wallets.mjs.map +1 -1
  328. package/resources/customers/wallets.d.mts +2 -0
  329. package/resources/customers/wallets.d.mts.map +1 -0
  330. package/resources/customers/wallets.d.ts.map +1 -1
  331. package/resources/customers/wallets.js +2 -15
  332. package/resources/customers/wallets.js.map +1 -1
  333. package/resources/customers.d.mts +2 -0
  334. package/resources/customers.d.mts.map +1 -0
  335. package/resources/customers.d.ts.map +1 -1
  336. package/resources/customers.js +2 -15
  337. package/resources/customers.js.map +1 -1
  338. package/resources/discounts.d.mts +168 -0
  339. package/resources/discounts.d.mts.map +1 -0
  340. package/resources/discounts.d.ts +11 -12
  341. package/resources/discounts.d.ts.map +1 -1
  342. package/resources/discounts.js +19 -19
  343. package/resources/discounts.js.map +1 -1
  344. package/resources/discounts.mjs +18 -17
  345. package/resources/discounts.mjs.map +1 -1
  346. package/resources/disputes.d.mts +159 -0
  347. package/resources/disputes.d.mts.map +1 -0
  348. package/resources/disputes.d.ts +8 -9
  349. package/resources/disputes.d.ts.map +1 -1
  350. package/resources/disputes.js +7 -14
  351. package/resources/disputes.js.map +1 -1
  352. package/resources/disputes.mjs +6 -12
  353. package/resources/disputes.mjs.map +1 -1
  354. package/resources/index.d.mts +21 -0
  355. package/resources/index.d.mts.map +1 -0
  356. package/resources/index.d.ts +14 -14
  357. package/resources/index.d.ts.map +1 -1
  358. package/resources/index.js +5 -20
  359. package/resources/index.js.map +1 -1
  360. package/resources/index.mjs +14 -14
  361. package/resources/index.mjs.map +1 -1
  362. package/resources/invoices/index.d.mts +3 -0
  363. package/resources/invoices/index.d.mts.map +1 -0
  364. package/resources/invoices/index.d.ts.map +1 -1
  365. package/resources/invoices/invoices.d.mts +10 -0
  366. package/resources/invoices/invoices.d.mts.map +1 -0
  367. package/resources/invoices/invoices.d.ts +1 -1
  368. package/resources/invoices/invoices.d.ts.map +1 -1
  369. package/resources/invoices/invoices.js +3 -25
  370. package/resources/invoices/invoices.js.map +1 -1
  371. package/resources/invoices/invoices.mjs +1 -1
  372. package/resources/invoices/payments.d.mts +8 -0
  373. package/resources/invoices/payments.d.mts.map +1 -0
  374. package/resources/invoices/payments.d.ts +5 -5
  375. package/resources/invoices/payments.d.ts.map +1 -1
  376. package/resources/invoices/payments.js +9 -7
  377. package/resources/invoices/payments.js.map +1 -1
  378. package/resources/invoices/payments.mjs +9 -7
  379. package/resources/invoices/payments.mjs.map +1 -1
  380. package/resources/invoices.d.mts +2 -0
  381. package/resources/invoices.d.mts.map +1 -0
  382. package/resources/invoices.d.ts.map +1 -1
  383. package/resources/invoices.js +2 -15
  384. package/resources/invoices.js.map +1 -1
  385. package/resources/license-key-instances.d.mts +55 -0
  386. package/resources/license-key-instances.d.mts.map +1 -0
  387. package/resources/license-key-instances.d.ts +9 -10
  388. package/resources/license-key-instances.d.ts.map +1 -1
  389. package/resources/license-key-instances.js +16 -18
  390. package/resources/license-key-instances.js.map +1 -1
  391. package/resources/license-key-instances.mjs +15 -16
  392. package/resources/license-key-instances.mjs.map +1 -1
  393. package/resources/license-keys.d.mts +122 -0
  394. package/resources/license-keys.d.mts.map +1 -0
  395. package/resources/license-keys.d.ts +9 -10
  396. package/resources/license-keys.d.ts.map +1 -1
  397. package/resources/license-keys.js +16 -14
  398. package/resources/license-keys.js.map +1 -1
  399. package/resources/license-keys.mjs +15 -12
  400. package/resources/license-keys.mjs.map +1 -1
  401. package/resources/licenses.d.mts +99 -0
  402. package/resources/licenses.d.mts.map +1 -0
  403. package/resources/licenses.d.ts +6 -5
  404. package/resources/licenses.d.ts.map +1 -1
  405. package/resources/licenses.js +3 -2
  406. package/resources/licenses.js.map +1 -1
  407. package/resources/licenses.mjs +3 -2
  408. package/resources/licenses.mjs.map +1 -1
  409. package/resources/meters.d.mts +191 -0
  410. package/resources/meters.d.mts.map +1 -0
  411. package/resources/meters.d.ts +11 -12
  412. package/resources/meters.d.ts.map +1 -1
  413. package/resources/meters.js +11 -17
  414. package/resources/meters.js.map +1 -1
  415. package/resources/meters.mjs +10 -15
  416. package/resources/meters.mjs.map +1 -1
  417. package/resources/misc.d.mts +21 -0
  418. package/resources/misc.d.mts.map +1 -0
  419. package/resources/misc.d.ts +4 -3
  420. package/resources/misc.d.ts.map +1 -1
  421. package/resources/misc.js +1 -1
  422. package/resources/misc.js.map +1 -1
  423. package/resources/misc.mjs +1 -1
  424. package/resources/misc.mjs.map +1 -1
  425. package/resources/payments.d.mts +420 -0
  426. package/resources/payments.d.mts.map +1 -0
  427. package/resources/payments.d.ts +10 -11
  428. package/resources/payments.d.ts.map +1 -1
  429. package/resources/payments.js +9 -16
  430. package/resources/payments.js.map +1 -1
  431. package/resources/payments.mjs +8 -14
  432. package/resources/payments.mjs.map +1 -1
  433. package/resources/payouts.d.mts +76 -0
  434. package/resources/payouts.d.mts.map +1 -0
  435. package/resources/payouts.d.ts +6 -8
  436. package/resources/payouts.d.ts.map +1 -1
  437. package/resources/payouts.js +4 -12
  438. package/resources/payouts.js.map +1 -1
  439. package/resources/payouts.mjs +3 -10
  440. package/resources/payouts.mjs.map +1 -1
  441. package/resources/products/images.d.mts +17 -0
  442. package/resources/products/images.d.mts.map +1 -0
  443. package/resources/products/images.d.ts +4 -4
  444. package/resources/products/images.d.ts.map +1 -1
  445. package/resources/products/images.js +4 -7
  446. package/resources/products/images.js.map +1 -1
  447. package/resources/products/images.mjs +4 -7
  448. package/resources/products/images.mjs.map +1 -1
  449. package/resources/products/index.d.mts +3 -0
  450. package/resources/products/index.d.mts.map +1 -0
  451. package/resources/products/index.d.ts +1 -1
  452. package/resources/products/index.d.ts.map +1 -1
  453. package/resources/products/index.js +1 -2
  454. package/resources/products/index.js.map +1 -1
  455. package/resources/products/index.mjs +1 -1
  456. package/resources/products/index.mjs.map +1 -1
  457. package/resources/products/products.d.mts +535 -0
  458. package/resources/products/products.d.mts.map +1 -0
  459. package/resources/products/products.d.ts +13 -14
  460. package/resources/products/products.d.ts.map +1 -1
  461. package/resources/products/products.js +16 -44
  462. package/resources/products/products.js.map +1 -1
  463. package/resources/products/products.mjs +13 -18
  464. package/resources/products/products.mjs.map +1 -1
  465. package/resources/products.d.mts +2 -0
  466. package/resources/products.d.mts.map +1 -0
  467. package/resources/products.d.ts.map +1 -1
  468. package/resources/products.js +2 -15
  469. package/resources/products.js.map +1 -1
  470. package/resources/refunds.d.mts +145 -0
  471. package/resources/refunds.d.mts.map +1 -0
  472. package/resources/refunds.d.ts +9 -10
  473. package/resources/refunds.d.ts.map +1 -1
  474. package/resources/refunds.js +7 -14
  475. package/resources/refunds.js.map +1 -1
  476. package/resources/refunds.mjs +6 -12
  477. package/resources/refunds.mjs.map +1 -1
  478. package/resources/subscriptions.d.mts +626 -0
  479. package/resources/subscriptions.d.mts.map +1 -0
  480. package/resources/subscriptions.d.ts +14 -17
  481. package/resources/subscriptions.d.ts.map +1 -1
  482. package/resources/subscriptions.js +61 -32
  483. package/resources/subscriptions.js.map +1 -1
  484. package/resources/subscriptions.mjs +60 -29
  485. package/resources/subscriptions.mjs.map +1 -1
  486. package/resources/usage-events.d.mts +192 -0
  487. package/resources/usage-events.d.mts.map +1 -0
  488. package/resources/usage-events.d.ts +9 -10
  489. package/resources/usage-events.d.ts.map +1 -1
  490. package/resources/usage-events.js +42 -14
  491. package/resources/usage-events.js.map +1 -1
  492. package/resources/usage-events.mjs +41 -12
  493. package/resources/usage-events.mjs.map +1 -1
  494. package/resources/webhook-events.d.mts +52 -0
  495. package/resources/webhook-events.d.mts.map +1 -0
  496. package/resources/webhook-events.d.ts +1 -1
  497. package/resources/webhook-events.d.ts.map +1 -1
  498. package/resources/webhook-events.js +1 -1
  499. package/resources/webhook-events.js.map +1 -1
  500. package/resources/webhook-events.mjs +1 -1
  501. package/resources/webhooks/headers.d.mts +42 -0
  502. package/resources/webhooks/headers.d.mts.map +1 -0
  503. package/resources/webhooks/headers.d.ts +5 -4
  504. package/resources/webhooks/headers.d.ts.map +1 -1
  505. package/resources/webhooks/headers.js +8 -6
  506. package/resources/webhooks/headers.js.map +1 -1
  507. package/resources/webhooks/headers.mjs +8 -6
  508. package/resources/webhooks/headers.mjs.map +1 -1
  509. package/resources/webhooks/index.d.mts +3 -0
  510. package/resources/webhooks/index.d.mts.map +1 -0
  511. package/resources/webhooks/index.d.ts +1 -1
  512. package/resources/webhooks/index.d.ts.map +1 -1
  513. package/resources/webhooks/index.js +1 -2
  514. package/resources/webhooks/index.js.map +1 -1
  515. package/resources/webhooks/index.mjs +1 -1
  516. package/resources/webhooks/index.mjs.map +1 -1
  517. package/resources/webhooks/webhooks.d.mts +155 -0
  518. package/resources/webhooks/webhooks.d.mts.map +1 -0
  519. package/resources/webhooks/webhooks.d.ts +12 -13
  520. package/resources/webhooks/webhooks.d.ts.map +1 -1
  521. package/resources/webhooks/webhooks.js +20 -45
  522. package/resources/webhooks/webhooks.js.map +1 -1
  523. package/resources/webhooks/webhooks.mjs +17 -19
  524. package/resources/webhooks/webhooks.mjs.map +1 -1
  525. package/resources/webhooks.d.mts +2 -0
  526. package/resources/webhooks.d.mts.map +1 -0
  527. package/resources/webhooks.d.ts.map +1 -1
  528. package/resources/webhooks.js +2 -15
  529. package/resources/webhooks.js.map +1 -1
  530. package/resources.d.mts +2 -0
  531. package/resources.d.mts.map +1 -0
  532. package/resources.d.ts.map +1 -1
  533. package/resources.js +2 -15
  534. package/resources.js.map +1 -1
  535. package/src/api-promise.ts +2 -0
  536. package/src/client.ts +1206 -0
  537. package/src/core/README.md +3 -0
  538. package/src/core/api-promise.ts +92 -0
  539. package/src/core/error.ts +130 -0
  540. package/src/core/pagination.ts +218 -0
  541. package/src/core/resource.ts +11 -0
  542. package/src/core/uploads.ts +2 -0
  543. package/src/error.ts +2 -130
  544. package/src/index.ts +6 -658
  545. package/src/internal/README.md +3 -0
  546. package/src/internal/builtin-types.ts +93 -0
  547. package/src/internal/detect-platform.ts +196 -0
  548. package/src/internal/errors.ts +33 -0
  549. package/src/internal/headers.ts +97 -0
  550. package/src/internal/parse.ts +50 -0
  551. package/src/internal/request-options.ts +91 -0
  552. package/src/internal/shim-types.ts +26 -0
  553. package/src/internal/shims.ts +107 -0
  554. package/src/internal/to-file.ts +154 -0
  555. package/src/internal/types.ts +95 -0
  556. package/src/internal/uploads.ts +187 -0
  557. package/src/internal/utils/base64.ts +40 -0
  558. package/src/internal/utils/bytes.ts +32 -0
  559. package/src/internal/utils/env.ts +18 -0
  560. package/src/internal/utils/log.ts +126 -0
  561. package/src/internal/utils/path.ts +88 -0
  562. package/src/internal/utils/sleep.ts +3 -0
  563. package/src/internal/utils/uuid.ts +17 -0
  564. package/src/internal/utils/values.ts +105 -0
  565. package/src/internal/utils.ts +8 -0
  566. package/src/pagination.ts +2 -125
  567. package/src/resource.ts +2 -11
  568. package/src/resources/addons.ts +23 -30
  569. package/src/resources/brands.ts +12 -10
  570. package/src/resources/checkout-sessions.ts +7 -9
  571. package/src/resources/customers/customer-portal.ts +11 -22
  572. package/src/resources/customers/customers.ts +27 -32
  573. package/src/resources/customers/index.ts +4 -4
  574. package/src/resources/customers/wallets/index.ts +3 -3
  575. package/src/resources/customers/wallets/ledger-entries.ts +24 -33
  576. package/src/resources/customers/wallets/wallets.ts +10 -10
  577. package/src/resources/customers/wallets.ts +1 -1
  578. package/src/resources/customers.ts +1 -1
  579. package/src/resources/discounts.ts +27 -32
  580. package/src/resources/disputes.ts +19 -25
  581. package/src/resources/index.ts +42 -42
  582. package/src/resources/invoices/index.ts +2 -2
  583. package/src/resources/invoices/invoices.ts +3 -3
  584. package/src/resources/invoices/payments.ts +11 -9
  585. package/src/resources/invoices.ts +1 -1
  586. package/src/resources/license-key-instances.ts +24 -31
  587. package/src/resources/license-keys.ts +19 -28
  588. package/src/resources/licenses.ts +9 -13
  589. package/src/resources/meters.ts +25 -29
  590. package/src/resources/misc.ts +4 -3
  591. package/src/resources/payments.ts +26 -32
  592. package/src/resources/payouts.ts +14 -23
  593. package/src/resources/products/images.ts +9 -17
  594. package/src/resources/products/index.ts +3 -3
  595. package/src/resources/products/products.ts +37 -41
  596. package/src/resources/products.ts +1 -1
  597. package/src/resources/refunds.ts +20 -27
  598. package/src/resources/subscriptions.ts +44 -72
  599. package/src/resources/usage-events.ts +18 -26
  600. package/src/resources/webhook-events.ts +6 -6
  601. package/src/resources/webhooks/headers.ts +10 -7
  602. package/src/resources/webhooks/index.ts +3 -3
  603. package/src/resources/webhooks/webhooks.ts +25 -39
  604. package/src/resources/webhooks.ts +1 -1
  605. package/src/resources.ts +1 -1
  606. package/src/tsconfig.json +2 -2
  607. package/src/uploads.ts +2 -255
  608. package/src/version.ts +1 -1
  609. package/uploads.d.mts +2 -0
  610. package/uploads.d.mts.map +1 -0
  611. package/uploads.d.ts +1 -74
  612. package/uploads.d.ts.map +1 -1
  613. package/uploads.js +3 -168
  614. package/uploads.js.map +1 -1
  615. package/uploads.mjs +1 -157
  616. package/uploads.mjs.map +1 -1
  617. package/version.d.mts +2 -0
  618. package/version.d.mts.map +1 -0
  619. package/version.d.ts +1 -1
  620. package/version.d.ts.map +1 -1
  621. package/version.js +1 -1
  622. package/version.js.map +1 -1
  623. package/version.mjs +1 -1
  624. package/version.mjs.map +1 -1
  625. package/_shims/MultipartBody.d.ts +0 -9
  626. package/_shims/MultipartBody.d.ts.map +0 -1
  627. package/_shims/MultipartBody.js +0 -16
  628. package/_shims/MultipartBody.js.map +0 -1
  629. package/_shims/MultipartBody.mjs +0 -12
  630. package/_shims/MultipartBody.mjs.map +0 -1
  631. package/_shims/README.md +0 -46
  632. package/_shims/auto/runtime-bun.d.ts +0 -5
  633. package/_shims/auto/runtime-bun.d.ts.map +0 -1
  634. package/_shims/auto/runtime-bun.js +0 -21
  635. package/_shims/auto/runtime-bun.js.map +0 -1
  636. package/_shims/auto/runtime-bun.mjs +0 -2
  637. package/_shims/auto/runtime-bun.mjs.map +0 -1
  638. package/_shims/auto/runtime-node.d.ts +0 -5
  639. package/_shims/auto/runtime-node.d.ts.map +0 -1
  640. package/_shims/auto/runtime-node.js +0 -21
  641. package/_shims/auto/runtime-node.js.map +0 -1
  642. package/_shims/auto/runtime-node.mjs +0 -2
  643. package/_shims/auto/runtime-node.mjs.map +0 -1
  644. package/_shims/auto/runtime.d.ts +0 -5
  645. package/_shims/auto/runtime.d.ts.map +0 -1
  646. package/_shims/auto/runtime.js +0 -21
  647. package/_shims/auto/runtime.js.map +0 -1
  648. package/_shims/auto/runtime.mjs +0 -2
  649. package/_shims/auto/runtime.mjs.map +0 -1
  650. package/_shims/auto/types-node.d.ts +0 -5
  651. package/_shims/auto/types-node.d.ts.map +0 -1
  652. package/_shims/auto/types-node.js +0 -21
  653. package/_shims/auto/types-node.js.map +0 -1
  654. package/_shims/auto/types-node.mjs +0 -2
  655. package/_shims/auto/types-node.mjs.map +0 -1
  656. package/_shims/auto/types.d.ts +0 -101
  657. package/_shims/auto/types.js +0 -3
  658. package/_shims/auto/types.mjs +0 -3
  659. package/_shims/bun-runtime.d.ts +0 -6
  660. package/_shims/bun-runtime.d.ts.map +0 -1
  661. package/_shims/bun-runtime.js +0 -14
  662. package/_shims/bun-runtime.js.map +0 -1
  663. package/_shims/bun-runtime.mjs +0 -10
  664. package/_shims/bun-runtime.mjs.map +0 -1
  665. package/_shims/index.d.ts +0 -83
  666. package/_shims/index.js +0 -17
  667. package/_shims/index.mjs +0 -11
  668. package/_shims/manual-types.d.ts +0 -12
  669. package/_shims/manual-types.js +0 -3
  670. package/_shims/manual-types.mjs +0 -3
  671. package/_shims/node-runtime.d.ts +0 -3
  672. package/_shims/node-runtime.d.ts.map +0 -1
  673. package/_shims/node-runtime.js +0 -89
  674. package/_shims/node-runtime.js.map +0 -1
  675. package/_shims/node-runtime.mjs +0 -56
  676. package/_shims/node-runtime.mjs.map +0 -1
  677. package/_shims/node-types.d.ts +0 -42
  678. package/_shims/node-types.js +0 -3
  679. package/_shims/node-types.mjs +0 -3
  680. package/_shims/registry.d.ts +0 -37
  681. package/_shims/registry.d.ts.map +0 -1
  682. package/_shims/registry.js +0 -41
  683. package/_shims/registry.js.map +0 -1
  684. package/_shims/registry.mjs +0 -37
  685. package/_shims/registry.mjs.map +0 -1
  686. package/_shims/web-runtime.d.ts +0 -5
  687. package/_shims/web-runtime.d.ts.map +0 -1
  688. package/_shims/web-runtime.js +0 -78
  689. package/_shims/web-runtime.js.map +0 -1
  690. package/_shims/web-runtime.mjs +0 -71
  691. package/_shims/web-runtime.mjs.map +0 -1
  692. package/_shims/web-types.d.ts +0 -83
  693. package/_shims/web-types.js +0 -3
  694. package/_shims/web-types.mjs +0 -3
  695. package/core.d.ts +0 -255
  696. package/core.d.ts.map +0 -1
  697. package/core.js +0 -924
  698. package/core.js.map +0 -1
  699. package/core.mjs +0 -892
  700. package/core.mjs.map +0 -1
  701. package/shims/node.d.ts +0 -30
  702. package/shims/node.d.ts.map +0 -1
  703. package/shims/node.js +0 -31
  704. package/shims/node.js.map +0 -1
  705. package/shims/node.mjs +0 -5
  706. package/shims/node.mjs.map +0 -1
  707. package/shims/web.d.ts +0 -26
  708. package/shims/web.d.ts.map +0 -1
  709. package/shims/web.js +0 -31
  710. package/shims/web.js.map +0 -1
  711. package/shims/web.mjs +0 -5
  712. package/shims/web.mjs.map +0 -1
  713. package/src/_shims/MultipartBody.ts +0 -9
  714. package/src/_shims/README.md +0 -46
  715. package/src/_shims/auto/runtime-bun.ts +0 -4
  716. package/src/_shims/auto/runtime-node.ts +0 -4
  717. package/src/_shims/auto/runtime.ts +0 -4
  718. package/src/_shims/auto/types-node.ts +0 -4
  719. package/src/_shims/auto/types.d.ts +0 -101
  720. package/src/_shims/auto/types.js +0 -3
  721. package/src/_shims/auto/types.mjs +0 -3
  722. package/src/_shims/bun-runtime.ts +0 -14
  723. package/src/_shims/index.d.ts +0 -83
  724. package/src/_shims/index.js +0 -17
  725. package/src/_shims/index.mjs +0 -11
  726. package/src/_shims/manual-types.d.ts +0 -12
  727. package/src/_shims/manual-types.js +0 -3
  728. package/src/_shims/manual-types.mjs +0 -3
  729. package/src/_shims/node-runtime.ts +0 -81
  730. package/src/_shims/node-types.d.ts +0 -42
  731. package/src/_shims/node-types.js +0 -3
  732. package/src/_shims/node-types.mjs +0 -3
  733. package/src/_shims/registry.ts +0 -67
  734. package/src/_shims/web-runtime.ts +0 -103
  735. package/src/_shims/web-types.d.ts +0 -83
  736. package/src/_shims/web-types.js +0 -3
  737. package/src/_shims/web-types.mjs +0 -3
  738. package/src/core.ts +0 -1237
  739. package/src/shims/node.ts +0 -50
  740. package/src/shims/web.ts +0 -50
@@ -0,0 +1,88 @@
1
+ import { DodoPaymentsError } from '../../core/error';
2
+
3
+ /**
4
+ * Percent-encode everything that isn't safe to have in a path without encoding safe chars.
5
+ *
6
+ * Taken from https://datatracker.ietf.org/doc/html/rfc3986#section-3.3:
7
+ * > unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
8
+ * > sub-delims = "!" / "$" / "&" / "'" / "(" / ")" / "*" / "+" / "," / ";" / "="
9
+ * > pchar = unreserved / pct-encoded / sub-delims / ":" / "@"
10
+ */
11
+ export function encodeURIPath(str: string) {
12
+ return str.replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/g, encodeURIComponent);
13
+ }
14
+
15
+ const EMPTY = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.create(null));
16
+
17
+ export const createPathTagFunction = (pathEncoder = encodeURIPath) =>
18
+ function path(statics: readonly string[], ...params: readonly unknown[]): string {
19
+ // If there are no params, no processing is needed.
20
+ if (statics.length === 1) return statics[0]!;
21
+
22
+ let postPath = false;
23
+ const invalidSegments = [];
24
+ const path = statics.reduce((previousValue, currentValue, index) => {
25
+ if (/[?#]/.test(currentValue)) {
26
+ postPath = true;
27
+ }
28
+ const value = params[index];
29
+ let encoded = (postPath ? encodeURIComponent : pathEncoder)('' + value);
30
+ if (
31
+ index !== params.length &&
32
+ (value == null ||
33
+ (typeof value === 'object' &&
34
+ // handle values from other realms
35
+ value.toString ===
36
+ Object.getPrototypeOf(Object.getPrototypeOf((value as any).hasOwnProperty ?? EMPTY) ?? EMPTY)
37
+ ?.toString))
38
+ ) {
39
+ encoded = value + '';
40
+ invalidSegments.push({
41
+ start: previousValue.length + currentValue.length,
42
+ length: encoded.length,
43
+ error: `Value of type ${Object.prototype.toString
44
+ .call(value)
45
+ .slice(8, -1)} is not a valid path parameter`,
46
+ });
47
+ }
48
+ return previousValue + currentValue + (index === params.length ? '' : encoded);
49
+ }, '');
50
+
51
+ const pathOnly = path.split(/[?#]/, 1)[0]!;
52
+ const invalidSegmentPattern = /(?<=^|\/)(?:\.|%2e){1,2}(?=\/|$)/gi;
53
+ let match;
54
+
55
+ // Find all invalid segments
56
+ while ((match = invalidSegmentPattern.exec(pathOnly)) !== null) {
57
+ invalidSegments.push({
58
+ start: match.index,
59
+ length: match[0].length,
60
+ error: `Value "${match[0]}" can\'t be safely passed as a path parameter`,
61
+ });
62
+ }
63
+
64
+ invalidSegments.sort((a, b) => a.start - b.start);
65
+
66
+ if (invalidSegments.length > 0) {
67
+ let lastEnd = 0;
68
+ const underline = invalidSegments.reduce((acc, segment) => {
69
+ const spaces = ' '.repeat(segment.start - lastEnd);
70
+ const arrows = '^'.repeat(segment.length);
71
+ lastEnd = segment.start + segment.length;
72
+ return acc + spaces + arrows;
73
+ }, '');
74
+
75
+ throw new DodoPaymentsError(
76
+ `Path parameters result in path with invalid segments:\n${invalidSegments
77
+ .map((e) => e.error)
78
+ .join('\n')}\n${path}\n${underline}`,
79
+ );
80
+ }
81
+
82
+ return path;
83
+ };
84
+
85
+ /**
86
+ * URI-encodes path params and ensures no unsafe /./ or /../ path segments are introduced.
87
+ */
88
+ export const path = /* @__PURE__ */ createPathTagFunction(encodeURIPath);
@@ -0,0 +1,3 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ export const sleep = (ms: number) => new Promise<void>((resolve) => setTimeout(resolve, ms));
@@ -0,0 +1,17 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ /**
4
+ * https://stackoverflow.com/a/2117523
5
+ */
6
+ export let uuid4 = function () {
7
+ const { crypto } = globalThis as any;
8
+ if (crypto?.randomUUID) {
9
+ uuid4 = crypto.randomUUID.bind(crypto);
10
+ return crypto.randomUUID();
11
+ }
12
+ const u8 = new Uint8Array(1);
13
+ const randomByte = crypto ? () => crypto.getRandomValues(u8)[0]! : () => (Math.random() * 0xff) & 0xff;
14
+ return '10000000-1000-4000-8000-100000000000'.replace(/[018]/g, (c) =>
15
+ (+c ^ (randomByte() & (15 >> (+c / 4)))).toString(16),
16
+ );
17
+ };
@@ -0,0 +1,105 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { DodoPaymentsError } from '../../core/error';
4
+
5
+ // https://url.spec.whatwg.org/#url-scheme-string
6
+ const startsWithSchemeRegexp = /^[a-z][a-z0-9+.-]*:/i;
7
+
8
+ export const isAbsoluteURL = (url: string): boolean => {
9
+ return startsWithSchemeRegexp.test(url);
10
+ };
11
+
12
+ export let isArray = (val: unknown): val is unknown[] => ((isArray = Array.isArray), isArray(val));
13
+ export let isReadonlyArray = isArray as (val: unknown) => val is readonly unknown[];
14
+
15
+ /** Returns an object if the given value isn't an object, otherwise returns as-is */
16
+ export function maybeObj(x: unknown): object {
17
+ if (typeof x !== 'object') {
18
+ return {};
19
+ }
20
+
21
+ return x ?? {};
22
+ }
23
+
24
+ // https://stackoverflow.com/a/34491287
25
+ export function isEmptyObj(obj: Object | null | undefined): boolean {
26
+ if (!obj) return true;
27
+ for (const _k in obj) return false;
28
+ return true;
29
+ }
30
+
31
+ // https://eslint.org/docs/latest/rules/no-prototype-builtins
32
+ export function hasOwn<T extends object = object>(obj: T, key: PropertyKey): key is keyof T {
33
+ return Object.prototype.hasOwnProperty.call(obj, key);
34
+ }
35
+
36
+ export function isObj(obj: unknown): obj is Record<string, unknown> {
37
+ return obj != null && typeof obj === 'object' && !Array.isArray(obj);
38
+ }
39
+
40
+ export const ensurePresent = <T>(value: T | null | undefined): T => {
41
+ if (value == null) {
42
+ throw new DodoPaymentsError(`Expected a value to be given but received ${value} instead.`);
43
+ }
44
+
45
+ return value;
46
+ };
47
+
48
+ export const validatePositiveInteger = (name: string, n: unknown): number => {
49
+ if (typeof n !== 'number' || !Number.isInteger(n)) {
50
+ throw new DodoPaymentsError(`${name} must be an integer`);
51
+ }
52
+ if (n < 0) {
53
+ throw new DodoPaymentsError(`${name} must be a positive integer`);
54
+ }
55
+ return n;
56
+ };
57
+
58
+ export const coerceInteger = (value: unknown): number => {
59
+ if (typeof value === 'number') return Math.round(value);
60
+ if (typeof value === 'string') return parseInt(value, 10);
61
+
62
+ throw new DodoPaymentsError(`Could not coerce ${value} (type: ${typeof value}) into a number`);
63
+ };
64
+
65
+ export const coerceFloat = (value: unknown): number => {
66
+ if (typeof value === 'number') return value;
67
+ if (typeof value === 'string') return parseFloat(value);
68
+
69
+ throw new DodoPaymentsError(`Could not coerce ${value} (type: ${typeof value}) into a number`);
70
+ };
71
+
72
+ export const coerceBoolean = (value: unknown): boolean => {
73
+ if (typeof value === 'boolean') return value;
74
+ if (typeof value === 'string') return value === 'true';
75
+ return Boolean(value);
76
+ };
77
+
78
+ export const maybeCoerceInteger = (value: unknown): number | undefined => {
79
+ if (value == null) {
80
+ return undefined;
81
+ }
82
+ return coerceInteger(value);
83
+ };
84
+
85
+ export const maybeCoerceFloat = (value: unknown): number | undefined => {
86
+ if (value == null) {
87
+ return undefined;
88
+ }
89
+ return coerceFloat(value);
90
+ };
91
+
92
+ export const maybeCoerceBoolean = (value: unknown): boolean | undefined => {
93
+ if (value == null) {
94
+ return undefined;
95
+ }
96
+ return coerceBoolean(value);
97
+ };
98
+
99
+ export const safeJSON = (text: string) => {
100
+ try {
101
+ return JSON.parse(text);
102
+ } catch (err) {
103
+ return undefined;
104
+ }
105
+ };
@@ -0,0 +1,8 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ export * from './utils/values';
4
+ export * from './utils/base64';
5
+ export * from './utils/env';
6
+ export * from './utils/log';
7
+ export * from './utils/uuid';
8
+ export * from './utils/sleep';
package/src/pagination.ts CHANGED
@@ -1,125 +1,2 @@
1
- // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
-
3
- import { AbstractPage, Response, APIClient, FinalRequestOptions, PageInfo } from "./core.js";
4
-
5
- export interface DefaultPageNumberPaginationResponse<Item> {
6
- items: Array<Item>;
7
- }
8
-
9
- export interface DefaultPageNumberPaginationParams {
10
- page_number?: number;
11
-
12
- page_size?: number;
13
- }
14
-
15
- export class DefaultPageNumberPagination<Item>
16
- extends AbstractPage<Item>
17
- implements DefaultPageNumberPaginationResponse<Item>
18
- {
19
- items: Array<Item>;
20
-
21
- constructor(
22
- client: APIClient,
23
- response: Response,
24
- body: DefaultPageNumberPaginationResponse<Item>,
25
- options: FinalRequestOptions,
26
- ) {
27
- super(client, response, body, options);
28
-
29
- this.items = body.items || [];
30
- }
31
-
32
- getPaginatedItems(): Item[] {
33
- return this.items ?? [];
34
- }
35
-
36
- // @deprecated Please use `nextPageInfo()` instead
37
- nextPageParams(): Partial<DefaultPageNumberPaginationParams> | null {
38
- const info = this.nextPageInfo();
39
- if (!info) return null;
40
- if ('params' in info) return info.params;
41
- const params = Object.fromEntries(info.url.searchParams);
42
- if (!Object.keys(params).length) return null;
43
- return params;
44
- }
45
-
46
- nextPageInfo(): PageInfo | null {
47
- const query = this.options.query as DefaultPageNumberPaginationParams;
48
- const currentPage = query?.page_number ?? 1;
49
-
50
- return { params: { page_number: currentPage + 1 } };
51
- }
52
- }
53
-
54
- export interface CursorPagePaginationResponse<Item> {
55
- data: Array<Item>;
56
-
57
- iterator: string;
58
-
59
- done: boolean;
60
- }
61
-
62
- export interface CursorPagePaginationParams {
63
- iterator?: string;
64
-
65
- limit?: number;
66
- }
67
-
68
- export class CursorPagePagination<Item>
69
- extends AbstractPage<Item>
70
- implements CursorPagePaginationResponse<Item>
71
- {
72
- data: Array<Item>;
73
-
74
- iterator: string;
75
-
76
- done: boolean;
77
-
78
- constructor(
79
- client: APIClient,
80
- response: Response,
81
- body: CursorPagePaginationResponse<Item>,
82
- options: FinalRequestOptions,
83
- ) {
84
- super(client, response, body, options);
85
-
86
- this.data = body.data || [];
87
- this.iterator = body.iterator || '';
88
- this.done = body.done || false;
89
- }
90
-
91
- getPaginatedItems(): Item[] {
92
- return this.data ?? [];
93
- }
94
-
95
- override hasNextPage(): boolean {
96
- if (this.done === false) {
97
- return false;
98
- }
99
-
100
- return super.hasNextPage();
101
- }
102
-
103
- // @deprecated Please use `nextPageInfo()` instead
104
- nextPageParams(): Partial<CursorPagePaginationParams> | null {
105
- const info = this.nextPageInfo();
106
- if (!info) return null;
107
- if ('params' in info) return info.params;
108
- const params = Object.fromEntries(info.url.searchParams);
109
- if (!Object.keys(params).length) return null;
110
- return params;
111
- }
112
-
113
- nextPageInfo(): PageInfo | null {
114
- const cursor = this.iterator;
115
- if (!cursor) {
116
- return null;
117
- }
118
-
119
- return {
120
- params: {
121
- iterator: cursor,
122
- },
123
- };
124
- }
125
- }
1
+ /** @deprecated Import from ./core/pagination instead */
2
+ export * from './core/pagination';
package/src/resource.ts CHANGED
@@ -1,11 +1,2 @@
1
- // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
-
3
- import type { DodoPayments } from "./index.js";
4
-
5
- export abstract class APIResource {
6
- protected _client: DodoPayments;
7
-
8
- constructor(client: DodoPayments) {
9
- this._client = client;
10
- }
11
- }
1
+ /** @deprecated Import from ./core/resource instead */
2
+ export * from './core/resource';
@@ -1,50 +1,45 @@
1
1
  // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
- import { APIResource } from "../resource.js";
4
- import { isRequestOptions } from "../core.js";
5
- import * as Core from "../core.js";
6
- import * as MiscAPI from "./misc.js";
7
- import { DefaultPageNumberPagination, type DefaultPageNumberPaginationParams } from "../pagination.js";
3
+ import { APIResource } from '../core/resource';
4
+ import * as MiscAPI from './misc';
5
+ import { APIPromise } from '../core/api-promise';
6
+ import {
7
+ DefaultPageNumberPagination,
8
+ type DefaultPageNumberPaginationParams,
9
+ PagePromise,
10
+ } from '../core/pagination';
11
+ import { RequestOptions } from '../internal/request-options';
12
+ import { path } from '../internal/utils/path';
8
13
 
9
14
  export class Addons extends APIResource {
10
- create(body: AddonCreateParams, options?: Core.RequestOptions): Core.APIPromise<AddonResponse> {
15
+ create(body: AddonCreateParams, options?: RequestOptions): APIPromise<AddonResponse> {
11
16
  return this._client.post('/addons', { body, ...options });
12
17
  }
13
18
 
14
- retrieve(id: string, options?: Core.RequestOptions): Core.APIPromise<AddonResponse> {
15
- return this._client.get(`/addons/${id}`, options);
19
+ retrieve(id: string, options?: RequestOptions): APIPromise<AddonResponse> {
20
+ return this._client.get(path`/addons/${id}`, options);
16
21
  }
17
22
 
18
- update(id: string, body: AddonUpdateParams, options?: Core.RequestOptions): Core.APIPromise<AddonResponse> {
19
- return this._client.patch(`/addons/${id}`, { body, ...options });
23
+ update(id: string, body: AddonUpdateParams, options?: RequestOptions): APIPromise<AddonResponse> {
24
+ return this._client.patch(path`/addons/${id}`, { body, ...options });
20
25
  }
21
26
 
22
27
  list(
23
- query?: AddonListParams,
24
- options?: Core.RequestOptions,
25
- ): Core.PagePromise<AddonResponsesDefaultPageNumberPagination, AddonResponse>;
26
- list(
27
- options?: Core.RequestOptions,
28
- ): Core.PagePromise<AddonResponsesDefaultPageNumberPagination, AddonResponse>;
29
- list(
30
- query: AddonListParams | Core.RequestOptions = {},
31
- options?: Core.RequestOptions,
32
- ): Core.PagePromise<AddonResponsesDefaultPageNumberPagination, AddonResponse> {
33
- if (isRequestOptions(query)) {
34
- return this.list({}, query);
35
- }
36
- return this._client.getAPIList('/addons', AddonResponsesDefaultPageNumberPagination, {
28
+ query: AddonListParams | null | undefined = {},
29
+ options?: RequestOptions,
30
+ ): PagePromise<AddonResponsesDefaultPageNumberPagination, AddonResponse> {
31
+ return this._client.getAPIList('/addons', DefaultPageNumberPagination<AddonResponse>, {
37
32
  query,
38
33
  ...options,
39
34
  });
40
35
  }
41
36
 
42
- updateImages(id: string, options?: Core.RequestOptions): Core.APIPromise<AddonUpdateImagesResponse> {
43
- return this._client.put(`/addons/${id}/images`, options);
37
+ updateImages(id: string, options?: RequestOptions): APIPromise<AddonUpdateImagesResponse> {
38
+ return this._client.put(path`/addons/${id}/images`, options);
44
39
  }
45
40
  }
46
41
 
47
- export class AddonResponsesDefaultPageNumberPagination extends DefaultPageNumberPagination<AddonResponse> {}
42
+ export type AddonResponsesDefaultPageNumberPagination = DefaultPageNumberPagination<AddonResponse>;
48
43
 
49
44
  export interface AddonResponse {
50
45
  /**
@@ -165,13 +160,11 @@ export interface AddonUpdateParams {
165
160
 
166
161
  export interface AddonListParams extends DefaultPageNumberPaginationParams {}
167
162
 
168
- Addons.AddonResponsesDefaultPageNumberPagination = AddonResponsesDefaultPageNumberPagination;
169
-
170
163
  export declare namespace Addons {
171
164
  export {
172
165
  type AddonResponse as AddonResponse,
173
166
  type AddonUpdateImagesResponse as AddonUpdateImagesResponse,
174
- AddonResponsesDefaultPageNumberPagination as AddonResponsesDefaultPageNumberPagination,
167
+ type AddonResponsesDefaultPageNumberPagination as AddonResponsesDefaultPageNumberPagination,
175
168
  type AddonCreateParams as AddonCreateParams,
176
169
  type AddonUpdateParams as AddonUpdateParams,
177
170
  type AddonListParams as AddonListParams,
@@ -1,30 +1,32 @@
1
1
  // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
- import { APIResource } from "../resource.js";
4
- import * as Core from "../core.js";
3
+ import { APIResource } from '../core/resource';
4
+ import { APIPromise } from '../core/api-promise';
5
+ import { RequestOptions } from '../internal/request-options';
6
+ import { path } from '../internal/utils/path';
5
7
 
6
8
  export class Brands extends APIResource {
7
- create(body: BrandCreateParams, options?: Core.RequestOptions): Core.APIPromise<Brand> {
9
+ create(body: BrandCreateParams, options?: RequestOptions): APIPromise<Brand> {
8
10
  return this._client.post('/brands', { body, ...options });
9
11
  }
10
12
 
11
13
  /**
12
14
  * Thin handler just calls `get_brand` and wraps in `Json(...)`
13
15
  */
14
- retrieve(id: string, options?: Core.RequestOptions): Core.APIPromise<Brand> {
15
- return this._client.get(`/brands/${id}`, options);
16
+ retrieve(id: string, options?: RequestOptions): APIPromise<Brand> {
17
+ return this._client.get(path`/brands/${id}`, options);
16
18
  }
17
19
 
18
- update(id: string, body: BrandUpdateParams, options?: Core.RequestOptions): Core.APIPromise<Brand> {
19
- return this._client.patch(`/brands/${id}`, { body, ...options });
20
+ update(id: string, body: BrandUpdateParams, options?: RequestOptions): APIPromise<Brand> {
21
+ return this._client.patch(path`/brands/${id}`, { body, ...options });
20
22
  }
21
23
 
22
- list(options?: Core.RequestOptions): Core.APIPromise<BrandListResponse> {
24
+ list(options?: RequestOptions): APIPromise<BrandListResponse> {
23
25
  return this._client.get('/brands', options);
24
26
  }
25
27
 
26
- updateImages(id: string, options?: Core.RequestOptions): Core.APIPromise<BrandUpdateImagesResponse> {
27
- return this._client.put(`/brands/${id}/images`, options);
28
+ updateImages(id: string, options?: RequestOptions): APIPromise<BrandUpdateImagesResponse> {
29
+ return this._client.put(path`/brands/${id}/images`, options);
28
30
  }
29
31
  }
30
32
 
@@ -1,16 +1,14 @@
1
1
  // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
- import { APIResource } from "../resource.js";
4
- import * as Core from "../core.js";
5
- import * as MiscAPI from "./misc.js";
6
- import * as PaymentsAPI from "./payments.js";
7
- import * as SubscriptionsAPI from "./subscriptions.js";
3
+ import { APIResource } from '../core/resource';
4
+ import * as MiscAPI from './misc';
5
+ import * as PaymentsAPI from './payments';
6
+ import * as SubscriptionsAPI from './subscriptions';
7
+ import { APIPromise } from '../core/api-promise';
8
+ import { RequestOptions } from '../internal/request-options';
8
9
 
9
10
  export class CheckoutSessions extends APIResource {
10
- create(
11
- body: CheckoutSessionCreateParams,
12
- options?: Core.RequestOptions,
13
- ): Core.APIPromise<CheckoutSessionResponse> {
11
+ create(body: CheckoutSessionCreateParams, options?: RequestOptions): APIPromise<CheckoutSessionResponse> {
14
12
  return this._client.post('/checkouts', { body, ...options });
15
13
  }
16
14
  }
@@ -1,30 +1,19 @@
1
1
  // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
- import { APIResource } from "../../resource.js";
4
- import { isRequestOptions } from "../../core.js";
5
- import * as Core from "../../core.js";
6
- import * as CustomersAPI from "./customers.js";
3
+ import { APIResource } from '../../core/resource';
4
+ import * as CustomersAPI from './customers';
5
+ import { APIPromise } from '../../core/api-promise';
6
+ import { RequestOptions } from '../../internal/request-options';
7
+ import { path } from '../../internal/utils/path';
7
8
 
8
9
  export class CustomerPortal extends APIResource {
9
10
  create(
10
- customerId: string,
11
- params?: CustomerPortalCreateParams,
12
- options?: Core.RequestOptions,
13
- ): Core.APIPromise<CustomersAPI.CustomerPortalSession>;
14
- create(
15
- customerId: string,
16
- options?: Core.RequestOptions,
17
- ): Core.APIPromise<CustomersAPI.CustomerPortalSession>;
18
- create(
19
- customerId: string,
20
- params: CustomerPortalCreateParams | Core.RequestOptions = {},
21
- options?: Core.RequestOptions,
22
- ): Core.APIPromise<CustomersAPI.CustomerPortalSession> {
23
- if (isRequestOptions(params)) {
24
- return this.create(customerId, {}, params);
25
- }
26
- const { send_email } = params;
27
- return this._client.post(`/customers/${customerId}/customer-portal/session`, {
11
+ customerID: string,
12
+ params: CustomerPortalCreateParams | null | undefined = {},
13
+ options?: RequestOptions,
14
+ ): APIPromise<CustomersAPI.CustomerPortalSession> {
15
+ const { send_email } = params ?? {};
16
+ return this._client.post(path`/customers/${customerID}/customer-portal/session`, {
28
17
  query: { send_email },
29
18
  ...options,
30
19
  });
@@ -1,51 +1,47 @@
1
1
  // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
- import { APIResource } from "../../resource.js";
4
- import { isRequestOptions } from "../../core.js";
5
- import * as Core from "../../core.js";
6
- import * as CustomerPortalAPI from "./customer-portal.js";
7
- import { CustomerPortal, CustomerPortalCreateParams } from "./customer-portal.js";
8
- import * as WalletsAPI from "./wallets/wallets.js";
9
- import { CustomerWallet, WalletListResponse, Wallets } from "./wallets/wallets.js";
10
- import { DefaultPageNumberPagination, type DefaultPageNumberPaginationParams } from "../../pagination.js";
3
+ import { APIResource } from '../../core/resource';
4
+ import * as CustomerPortalAPI from './customer-portal';
5
+ import { CustomerPortal, CustomerPortalCreateParams } from './customer-portal';
6
+ import * as WalletsAPI from './wallets/wallets';
7
+ import { CustomerWallet, WalletListResponse, Wallets } from './wallets/wallets';
8
+ import { APIPromise } from '../../core/api-promise';
9
+ import {
10
+ DefaultPageNumberPagination,
11
+ type DefaultPageNumberPaginationParams,
12
+ PagePromise,
13
+ } from '../../core/pagination';
14
+ import { RequestOptions } from '../../internal/request-options';
15
+ import { path } from '../../internal/utils/path';
11
16
 
12
17
  export class Customers extends APIResource {
13
18
  customerPortal: CustomerPortalAPI.CustomerPortal = new CustomerPortalAPI.CustomerPortal(this._client);
14
19
  wallets: WalletsAPI.Wallets = new WalletsAPI.Wallets(this._client);
15
20
 
16
- create(body: CustomerCreateParams, options?: Core.RequestOptions): Core.APIPromise<Customer> {
21
+ create(body: CustomerCreateParams, options?: RequestOptions): APIPromise<Customer> {
17
22
  return this._client.post('/customers', { body, ...options });
18
23
  }
19
24
 
20
- retrieve(customerId: string, options?: Core.RequestOptions): Core.APIPromise<Customer> {
21
- return this._client.get(`/customers/${customerId}`, options);
25
+ retrieve(customerID: string, options?: RequestOptions): APIPromise<Customer> {
26
+ return this._client.get(path`/customers/${customerID}`, options);
22
27
  }
23
28
 
24
- update(
25
- customerId: string,
26
- body: CustomerUpdateParams,
27
- options?: Core.RequestOptions,
28
- ): Core.APIPromise<Customer> {
29
- return this._client.patch(`/customers/${customerId}`, { body, ...options });
29
+ update(customerID: string, body: CustomerUpdateParams, options?: RequestOptions): APIPromise<Customer> {
30
+ return this._client.patch(path`/customers/${customerID}`, { body, ...options });
30
31
  }
31
32
 
32
33
  list(
33
- query?: CustomerListParams,
34
- options?: Core.RequestOptions,
35
- ): Core.PagePromise<CustomersDefaultPageNumberPagination, Customer>;
36
- list(options?: Core.RequestOptions): Core.PagePromise<CustomersDefaultPageNumberPagination, Customer>;
37
- list(
38
- query: CustomerListParams | Core.RequestOptions = {},
39
- options?: Core.RequestOptions,
40
- ): Core.PagePromise<CustomersDefaultPageNumberPagination, Customer> {
41
- if (isRequestOptions(query)) {
42
- return this.list({}, query);
43
- }
44
- return this._client.getAPIList('/customers', CustomersDefaultPageNumberPagination, { query, ...options });
34
+ query: CustomerListParams | null | undefined = {},
35
+ options?: RequestOptions,
36
+ ): PagePromise<CustomersDefaultPageNumberPagination, Customer> {
37
+ return this._client.getAPIList('/customers', DefaultPageNumberPagination<Customer>, {
38
+ query,
39
+ ...options,
40
+ });
45
41
  }
46
42
  }
47
43
 
48
- export class CustomersDefaultPageNumberPagination extends DefaultPageNumberPagination<Customer> {}
44
+ export type CustomersDefaultPageNumberPagination = DefaultPageNumberPagination<Customer>;
49
45
 
50
46
  export interface Customer {
51
47
  business_id: string;
@@ -86,7 +82,6 @@ export interface CustomerListParams extends DefaultPageNumberPaginationParams {
86
82
  email?: string;
87
83
  }
88
84
 
89
- Customers.CustomersDefaultPageNumberPagination = CustomersDefaultPageNumberPagination;
90
85
  Customers.CustomerPortal = CustomerPortal;
91
86
  Customers.Wallets = Wallets;
92
87
 
@@ -94,7 +89,7 @@ export declare namespace Customers {
94
89
  export {
95
90
  type Customer as Customer,
96
91
  type CustomerPortalSession as CustomerPortalSession,
97
- CustomersDefaultPageNumberPagination as CustomersDefaultPageNumberPagination,
92
+ type CustomersDefaultPageNumberPagination as CustomersDefaultPageNumberPagination,
98
93
  type CustomerCreateParams as CustomerCreateParams,
99
94
  type CustomerUpdateParams as CustomerUpdateParams,
100
95
  type CustomerListParams as CustomerListParams,