increase 0.8.1 → 0.9.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 (274) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +29 -9
  3. package/_shims/fetch.d.ts +8 -1
  4. package/_shims/fetch.node.d.ts +11 -1
  5. package/core.d.ts +75 -27
  6. package/core.d.ts.map +1 -1
  7. package/core.js +112 -49
  8. package/core.js.map +1 -1
  9. package/core.mjs +108 -49
  10. package/core.mjs.map +1 -1
  11. package/package.json +1 -1
  12. package/pagination.d.ts +2 -2
  13. package/pagination.d.ts.map +1 -1
  14. package/pagination.js +4 -4
  15. package/pagination.js.map +1 -1
  16. package/pagination.mjs +4 -4
  17. package/pagination.mjs.map +1 -1
  18. package/resources/account-numbers.d.ts +8 -8
  19. package/resources/account-numbers.d.ts.map +1 -1
  20. package/resources/account-numbers.js.map +1 -1
  21. package/resources/account-numbers.mjs.map +1 -1
  22. package/resources/account-statements.d.ts +3 -6
  23. package/resources/account-statements.d.ts.map +1 -1
  24. package/resources/account-statements.js.map +1 -1
  25. package/resources/account-statements.mjs.map +1 -1
  26. package/resources/account-transfers.d.ts +6 -18
  27. package/resources/account-transfers.d.ts.map +1 -1
  28. package/resources/account-transfers.js.map +1 -1
  29. package/resources/account-transfers.mjs.map +1 -1
  30. package/resources/accounts.d.ts +6 -6
  31. package/resources/accounts.d.ts.map +1 -1
  32. package/resources/ach-prenotifications.d.ts +51 -7
  33. package/resources/ach-prenotifications.d.ts.map +1 -1
  34. package/resources/ach-prenotifications.js.map +1 -1
  35. package/resources/ach-prenotifications.mjs.map +1 -1
  36. package/resources/ach-transfers.d.ts +16 -9
  37. package/resources/ach-transfers.d.ts.map +1 -1
  38. package/resources/ach-transfers.js.map +1 -1
  39. package/resources/ach-transfers.mjs.map +1 -1
  40. package/resources/balance-lookups.d.ts +1 -1
  41. package/resources/balance-lookups.d.ts.map +1 -1
  42. package/resources/bookkeeping-accounts.d.ts +3 -3
  43. package/resources/bookkeeping-accounts.d.ts.map +1 -1
  44. package/resources/bookkeeping-entries.d.ts +2 -2
  45. package/resources/bookkeeping-entries.d.ts.map +1 -1
  46. package/resources/bookkeeping-entry-sets.d.ts +1 -1
  47. package/resources/bookkeeping-entry-sets.d.ts.map +1 -1
  48. package/resources/card-disputes.d.ts +7 -7
  49. package/resources/card-disputes.d.ts.map +1 -1
  50. package/resources/card-disputes.js.map +1 -1
  51. package/resources/card-disputes.mjs.map +1 -1
  52. package/resources/card-profiles.d.ts +15 -7
  53. package/resources/card-profiles.d.ts.map +1 -1
  54. package/resources/card-profiles.js +6 -0
  55. package/resources/card-profiles.js.map +1 -1
  56. package/resources/card-profiles.mjs +6 -0
  57. package/resources/card-profiles.mjs.map +1 -1
  58. package/resources/card-purchase-supplements.d.ts +3 -3
  59. package/resources/card-purchase-supplements.d.ts.map +1 -1
  60. package/resources/cards.d.ts +6 -13
  61. package/resources/cards.d.ts.map +1 -1
  62. package/resources/cards.js.map +1 -1
  63. package/resources/cards.mjs.map +1 -1
  64. package/resources/check-deposits.d.ts +7 -7
  65. package/resources/check-deposits.d.ts.map +1 -1
  66. package/resources/check-deposits.js.map +1 -1
  67. package/resources/check-deposits.mjs.map +1 -1
  68. package/resources/check-transfers.d.ts +15 -10
  69. package/resources/check-transfers.d.ts.map +1 -1
  70. package/resources/check-transfers.js.map +1 -1
  71. package/resources/check-transfers.mjs.map +1 -1
  72. package/resources/declined-transactions.d.ts +25 -28
  73. package/resources/declined-transactions.d.ts.map +1 -1
  74. package/resources/declined-transactions.js.map +1 -1
  75. package/resources/declined-transactions.mjs.map +1 -1
  76. package/resources/digital-wallet-tokens.d.ts +3 -6
  77. package/resources/digital-wallet-tokens.d.ts.map +1 -1
  78. package/resources/digital-wallet-tokens.js.map +1 -1
  79. package/resources/digital-wallet-tokens.mjs.map +1 -1
  80. package/resources/documents.d.ts +3 -3
  81. package/resources/documents.d.ts.map +1 -1
  82. package/resources/entities/beneficial-owners.d.ts +4 -8
  83. package/resources/entities/beneficial-owners.d.ts.map +1 -1
  84. package/resources/entities/beneficial-owners.js.map +1 -1
  85. package/resources/entities/beneficial-owners.mjs.map +1 -1
  86. package/resources/entities/entities.d.ts +11 -11
  87. package/resources/entities/entities.d.ts.map +1 -1
  88. package/resources/entities/entities.js +6 -0
  89. package/resources/entities/entities.js.map +1 -1
  90. package/resources/entities/entities.mjs +6 -0
  91. package/resources/entities/entities.mjs.map +1 -1
  92. package/resources/entities/supplemental-documents.d.ts +2 -2
  93. package/resources/entities/supplemental-documents.d.ts.map +1 -1
  94. package/resources/event-subscriptions.d.ts +5 -8
  95. package/resources/event-subscriptions.d.ts.map +1 -1
  96. package/resources/event-subscriptions.js.map +1 -1
  97. package/resources/event-subscriptions.mjs.map +1 -1
  98. package/resources/events.d.ts +7 -5
  99. package/resources/events.d.ts.map +1 -1
  100. package/resources/events.js.map +1 -1
  101. package/resources/events.mjs.map +1 -1
  102. package/resources/exports.d.ts +4 -4
  103. package/resources/exports.d.ts.map +1 -1
  104. package/resources/external-accounts.d.ts +5 -11
  105. package/resources/external-accounts.d.ts.map +1 -1
  106. package/resources/external-accounts.js.map +1 -1
  107. package/resources/external-accounts.mjs.map +1 -1
  108. package/resources/files.d.ts +9 -4
  109. package/resources/files.d.ts.map +1 -1
  110. package/resources/files.js +2 -2
  111. package/resources/files.js.map +1 -1
  112. package/resources/files.mjs +2 -2
  113. package/resources/files.mjs.map +1 -1
  114. package/resources/groups.d.ts +1 -1
  115. package/resources/groups.d.ts.map +1 -1
  116. package/resources/inbound-ach-transfer-returns.d.ts +6 -4
  117. package/resources/inbound-ach-transfer-returns.d.ts.map +1 -1
  118. package/resources/inbound-ach-transfer-returns.js.map +1 -1
  119. package/resources/inbound-ach-transfer-returns.mjs.map +1 -1
  120. package/resources/inbound-wire-drawdown-requests.d.ts +5 -3
  121. package/resources/inbound-wire-drawdown-requests.d.ts.map +1 -1
  122. package/resources/inbound-wire-drawdown-requests.js.map +1 -1
  123. package/resources/inbound-wire-drawdown-requests.mjs.map +1 -1
  124. package/resources/limits.d.ts +5 -9
  125. package/resources/limits.d.ts.map +1 -1
  126. package/resources/limits.js.map +1 -1
  127. package/resources/limits.mjs.map +1 -1
  128. package/resources/oauth-connections.d.ts +3 -6
  129. package/resources/oauth-connections.d.ts.map +1 -1
  130. package/resources/oauth-connections.js.map +1 -1
  131. package/resources/oauth-connections.mjs.map +1 -1
  132. package/resources/pending-transactions.d.ts +28 -37
  133. package/resources/pending-transactions.d.ts.map +1 -1
  134. package/resources/pending-transactions.js.map +1 -1
  135. package/resources/pending-transactions.mjs.map +1 -1
  136. package/resources/programs.d.ts +3 -3
  137. package/resources/programs.d.ts.map +1 -1
  138. package/resources/real-time-decisions.d.ts +2 -5
  139. package/resources/real-time-decisions.d.ts.map +1 -1
  140. package/resources/real-time-decisions.js.map +1 -1
  141. package/resources/real-time-decisions.mjs.map +1 -1
  142. package/resources/real-time-payments-transfers.d.ts +6 -4
  143. package/resources/real-time-payments-transfers.d.ts.map +1 -1
  144. package/resources/real-time-payments-transfers.js.map +1 -1
  145. package/resources/real-time-payments-transfers.mjs.map +1 -1
  146. package/resources/routing-numbers.d.ts +4 -1
  147. package/resources/routing-numbers.d.ts.map +1 -1
  148. package/resources/routing-numbers.js.map +1 -1
  149. package/resources/routing-numbers.mjs.map +1 -1
  150. package/resources/simulations/account-statements.d.ts +1 -1
  151. package/resources/simulations/account-statements.d.ts.map +1 -1
  152. package/resources/simulations/account-transfers.d.ts +1 -1
  153. package/resources/simulations/account-transfers.d.ts.map +1 -1
  154. package/resources/simulations/ach-transfers.d.ts +124 -138
  155. package/resources/simulations/ach-transfers.d.ts.map +1 -1
  156. package/resources/simulations/ach-transfers.js.map +1 -1
  157. package/resources/simulations/ach-transfers.mjs.map +1 -1
  158. package/resources/simulations/card-disputes.d.ts +1 -1
  159. package/resources/simulations/card-disputes.d.ts.map +1 -1
  160. package/resources/simulations/card-profiles.d.ts +1 -4
  161. package/resources/simulations/card-profiles.d.ts.map +1 -1
  162. package/resources/simulations/card-profiles.js.map +1 -1
  163. package/resources/simulations/card-profiles.mjs.map +1 -1
  164. package/resources/simulations/card-refunds.d.ts +1 -1
  165. package/resources/simulations/card-refunds.d.ts.map +1 -1
  166. package/resources/simulations/cards.d.ts +49 -58
  167. package/resources/simulations/cards.d.ts.map +1 -1
  168. package/resources/simulations/cards.js.map +1 -1
  169. package/resources/simulations/cards.mjs.map +1 -1
  170. package/resources/simulations/check-deposits.d.ts +3 -12
  171. package/resources/simulations/check-deposits.d.ts.map +1 -1
  172. package/resources/simulations/check-transfers.d.ts +2 -2
  173. package/resources/simulations/check-transfers.d.ts.map +1 -1
  174. package/resources/simulations/digital-wallet-token-requests.d.ts +1 -1
  175. package/resources/simulations/digital-wallet-token-requests.d.ts.map +1 -1
  176. package/resources/simulations/documents.d.ts +1 -4
  177. package/resources/simulations/documents.d.ts.map +1 -1
  178. package/resources/simulations/documents.js.map +1 -1
  179. package/resources/simulations/documents.mjs.map +1 -1
  180. package/resources/simulations/inbound-funds-holds.d.ts +1 -1
  181. package/resources/simulations/inbound-funds-holds.d.ts.map +1 -1
  182. package/resources/simulations/inbound-wire-drawdown-requests.d.ts +1 -1
  183. package/resources/simulations/inbound-wire-drawdown-requests.d.ts.map +1 -1
  184. package/resources/simulations/interest-payments.d.ts +100 -108
  185. package/resources/simulations/interest-payments.d.ts.map +1 -1
  186. package/resources/simulations/interest-payments.js.map +1 -1
  187. package/resources/simulations/interest-payments.mjs.map +1 -1
  188. package/resources/simulations/programs.d.ts +1 -4
  189. package/resources/simulations/programs.d.ts.map +1 -1
  190. package/resources/simulations/programs.js.map +1 -1
  191. package/resources/simulations/programs.mjs.map +1 -1
  192. package/resources/simulations/real-time-payments-transfers.d.ts +123 -134
  193. package/resources/simulations/real-time-payments-transfers.d.ts.map +1 -1
  194. package/resources/simulations/real-time-payments-transfers.js.map +1 -1
  195. package/resources/simulations/real-time-payments-transfers.mjs.map +1 -1
  196. package/resources/simulations/wire-transfers.d.ts +100 -108
  197. package/resources/simulations/wire-transfers.d.ts.map +1 -1
  198. package/resources/simulations/wire-transfers.js.map +1 -1
  199. package/resources/simulations/wire-transfers.mjs.map +1 -1
  200. package/resources/transactions.d.ts +105 -110
  201. package/resources/transactions.d.ts.map +1 -1
  202. package/resources/transactions.js.map +1 -1
  203. package/resources/transactions.mjs.map +1 -1
  204. package/resources/wire-drawdown-requests.d.ts +4 -4
  205. package/resources/wire-drawdown-requests.d.ts.map +1 -1
  206. package/resources/wire-transfers.d.ts +11 -11
  207. package/resources/wire-transfers.d.ts.map +1 -1
  208. package/resources/wire-transfers.js.map +1 -1
  209. package/resources/wire-transfers.mjs.map +1 -1
  210. package/src/_shims/fetch.d.ts +8 -1
  211. package/src/_shims/fetch.node.d.ts +11 -1
  212. package/src/core.ts +167 -70
  213. package/src/pagination.ts +5 -5
  214. package/src/resources/account-numbers.ts +9 -9
  215. package/src/resources/account-statements.ts +4 -7
  216. package/src/resources/account-transfers.ts +7 -19
  217. package/src/resources/accounts.ts +7 -7
  218. package/src/resources/ach-prenotifications.ts +56 -8
  219. package/src/resources/ach-transfers.ts +18 -10
  220. package/src/resources/balance-lookups.ts +1 -1
  221. package/src/resources/bookkeeping-accounts.ts +4 -4
  222. package/src/resources/bookkeeping-entries.ts +3 -3
  223. package/src/resources/bookkeeping-entry-sets.ts +1 -1
  224. package/src/resources/card-disputes.ts +8 -8
  225. package/src/resources/card-profiles.ts +20 -8
  226. package/src/resources/card-purchase-supplements.ts +4 -4
  227. package/src/resources/cards.ts +7 -14
  228. package/src/resources/check-deposits.ts +8 -8
  229. package/src/resources/check-transfers.ts +17 -11
  230. package/src/resources/declined-transactions.ts +26 -29
  231. package/src/resources/digital-wallet-tokens.ts +4 -7
  232. package/src/resources/documents.ts +4 -4
  233. package/src/resources/entities/beneficial-owners.ts +4 -8
  234. package/src/resources/entities/entities.ts +15 -12
  235. package/src/resources/entities/supplemental-documents.ts +2 -2
  236. package/src/resources/event-subscriptions.ts +6 -9
  237. package/src/resources/events.ts +8 -6
  238. package/src/resources/exports.ts +5 -5
  239. package/src/resources/external-accounts.ts +6 -12
  240. package/src/resources/files.ts +11 -6
  241. package/src/resources/groups.ts +1 -1
  242. package/src/resources/inbound-ach-transfer-returns.ts +7 -5
  243. package/src/resources/inbound-wire-drawdown-requests.ts +6 -4
  244. package/src/resources/limits.ts +6 -10
  245. package/src/resources/oauth-connections.ts +4 -7
  246. package/src/resources/pending-transactions.ts +29 -38
  247. package/src/resources/programs.ts +4 -4
  248. package/src/resources/real-time-decisions.ts +2 -5
  249. package/src/resources/real-time-payments-transfers.ts +7 -5
  250. package/src/resources/routing-numbers.ts +4 -1
  251. package/src/resources/simulations/account-statements.ts +1 -1
  252. package/src/resources/simulations/account-transfers.ts +1 -1
  253. package/src/resources/simulations/ach-transfers.ts +124 -138
  254. package/src/resources/simulations/card-disputes.ts +1 -1
  255. package/src/resources/simulations/card-profiles.ts +1 -4
  256. package/src/resources/simulations/card-refunds.ts +1 -1
  257. package/src/resources/simulations/cards.ts +49 -58
  258. package/src/resources/simulations/check-deposits.ts +3 -3
  259. package/src/resources/simulations/check-transfers.ts +2 -2
  260. package/src/resources/simulations/digital-wallet-token-requests.ts +1 -1
  261. package/src/resources/simulations/documents.ts +1 -4
  262. package/src/resources/simulations/inbound-funds-holds.ts +1 -1
  263. package/src/resources/simulations/inbound-wire-drawdown-requests.ts +1 -1
  264. package/src/resources/simulations/interest-payments.ts +100 -108
  265. package/src/resources/simulations/programs.ts +1 -4
  266. package/src/resources/simulations/real-time-payments-transfers.ts +123 -134
  267. package/src/resources/simulations/wire-transfers.ts +100 -108
  268. package/src/resources/transactions.ts +106 -111
  269. package/src/resources/wire-drawdown-requests.ts +5 -5
  270. package/src/resources/wire-transfers.ts +12 -12
  271. package/src/version.ts +1 -1
  272. package/version.d.ts +1 -1
  273. package/version.js +1 -1
  274. package/version.mjs +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,28 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.9.0](https://github.com/Increase/increase-node/compare/v0.8.1...v0.9.0) (2023-08-11)
4
+
5
+
6
+ ### ⚠ BREAKING CHANGES
7
+
8
+ * **client:** support accessing raw response + remove deprecated features ([#104](https://github.com/Increase/increase-node/issues/104))
9
+
10
+ ### Features
11
+
12
+ * **api:** updates ([#106](https://github.com/Increase/increase-node/issues/106)) ([3ba4626](https://github.com/Increase/increase-node/commit/3ba46267c7f1f56f141b0ebaef9f92cf2d3bf3fd))
13
+ * **client:** support accessing raw response + remove deprecated features ([#104](https://github.com/Increase/increase-node/issues/104)) ([b4f3164](https://github.com/Increase/increase-node/commit/b4f3164ed9a134dc95e1e0a62e86f414c7e9e3d1))
14
+
15
+
16
+ ### Documentation
17
+
18
+ * **api:** change description of various fields ([#107](https://github.com/Increase/increase-node/issues/107)) ([54903db](https://github.com/Increase/increase-node/commit/54903db4061f080c7618e2d2348dcad4dc1c5db9))
19
+ * **readme:** minor updates ([#108](https://github.com/Increase/increase-node/issues/108)) ([a5558bc](https://github.com/Increase/increase-node/commit/a5558bca6f934285a33344abc4b5383cca0a2a06))
20
+
21
+
22
+ ### Chores
23
+
24
+ * **internal:** conditionally include bin during build output ([#109](https://github.com/Increase/increase-node/issues/109)) ([ae76bb5](https://github.com/Increase/increase-node/commit/ae76bb539f3fe3352005bb16a9025d03252624a8))
25
+
3
26
  ## [0.8.1](https://github.com/Increase/increase-node/compare/v0.8.0...v0.8.1) (2023-08-08)
4
27
 
5
28
 
package/README.md CHANGED
@@ -2,10 +2,7 @@
2
2
 
3
3
  [![NPM version](https://img.shields.io/npm/v/increase.svg)](https://npmjs.org/package/increase)
4
4
 
5
- The Increase Node library provides convenient access to the Increase REST API from applications written in server-side JavaScript.
6
- It includes TypeScript definitions for all request params and response fields.
7
-
8
- ## Documentation
5
+ This library provides convenient access to the Increase Node REST API from server-side TypeScript or JavaScript.
9
6
 
10
7
  The API documentation can be found [here](https://increase.com/documentation).
11
8
 
@@ -36,10 +33,9 @@ async function main() {
36
33
  main();
37
34
  ```
38
35
 
39
- ### Usage with TypeScript
36
+ ### Request & Response types
40
37
 
41
- Importing, instantiating, and interacting with the library are the same as above.
42
- If you like, you may reference our types directly:
38
+ This library includes TypeScript definitions for all request params and response fields. You may import and use them like so:
43
39
 
44
40
  ```ts
45
41
  import Increase from 'increase';
@@ -201,6 +197,28 @@ while (page.hasNextPage()) {
201
197
  }
202
198
  ```
203
199
 
200
+ ## Advanced Usage
201
+
202
+ ### Accessing raw Response data (e.g., headers)
203
+
204
+ The "raw" `Response` returned by `fetch()` can be accessed through the `.asResponse()` method on the `APIPromise` type that all methods return.
205
+
206
+ You can also use the `.withResponse()` method to get the raw `Response` along with the parsed data.
207
+
208
+ ```ts
209
+ const increase = new Increase();
210
+
211
+ const response = await increase.accounts.create({ name: 'My First Increase Account' }).asResponse();
212
+ console.log(response.headers.get('X-My-Header'));
213
+ console.log(response.statusText); // access the underlying Response object
214
+
215
+ const { data: accounts, response: raw } = await increase.accounts
216
+ .create({ name: 'My First Increase Account' })
217
+ .withResponse();
218
+ console.log(raw.headers.get('X-My-Header'));
219
+ console.log(accounts.id);
220
+ ```
221
+
204
222
  ## Configuring an HTTP(S) Agent (e.g., for proxies)
205
223
 
206
224
  By default, this library uses a stable agent for all http/https requests to reuse TCP connections, eliminating many TCP & TLS handshakes and shaving around 100ms off most requests.
@@ -241,7 +259,9 @@ We are keen for your feedback; please open an [issue](https://www.github.com/inc
241
259
  The following runtimes are supported:
242
260
 
243
261
  - Node.js 16 LTS or later ([non-EOL](https://endoflife.date/nodejs)) versions.
244
- - Deno v1.28.0 or higher (experimental).
245
- Use `import Increase from "npm:increase"`.
262
+ - Deno v1.28.0 or higher, using `import Increase from "npm:increase"`.
263
+ Deno Deploy is not yet supported.
264
+ - Cloudflare Workers.
265
+ - Vercel Edge Runtime.
246
266
 
247
267
  If you are interested in other runtime environments, please open or upvote an issue on GitHub.
package/_shims/fetch.d.ts CHANGED
@@ -26,6 +26,8 @@ type _Response = unknown extends Response ? never : Response;
26
26
  // @ts-ignore
27
27
  type _ResponseInit = unknown extends ResponseInit ? never : ResponseInit;
28
28
  // @ts-ignore
29
+ type _ResponseType = unknown extends ResponseType ? never : ResponseType;
30
+ // @ts-ignore
29
31
  type _BodyInit = unknown extends BodyInit ? never : BodyInit;
30
32
  // @ts-ignore
31
33
  type _Headers = unknown extends Headers ? never : Headers;
@@ -49,4 +51,9 @@ declare const _Headers: {
49
51
  export const isPolyfilled = false;
50
52
 
51
53
  export { _fetch as fetch, _Request as Request, _Response as Response, _Headers as Headers };
52
- export type { _RequestInit as RequestInit, _RequestInfo as RequestInfo, _BodyInit as BodyInit };
54
+ export type {
55
+ _RequestInit as RequestInit,
56
+ _RequestInfo as RequestInfo,
57
+ _ResponseType as ResponseType,
58
+ _BodyInit as BodyInit,
59
+ };
@@ -26,6 +26,11 @@ type _RequestInit = unknown extends RequestInit ? nf.RequestInit : RequestInit;
26
26
  type _Response = unknown extends Response ? nf.Response : Response;
27
27
  // @ts-ignore
28
28
  type _ResponseInit = unknown extends ResponseInit ? nf.ResponseInit : ResponseInit;
29
+ type _ResponseType =
30
+ // @ts-ignore
31
+ unknown extends ResponseType ? 'basic' | 'cors' | 'default' | 'error' | 'opaque' | 'opaqueredirect'
32
+ : // @ts-ignore
33
+ ResponseType;
29
34
  // @ts-ignore
30
35
  type _BodyInit = unknown extends BodyInit ? nf.BodyInit : BodyInit;
31
36
  // @ts-ignore
@@ -50,4 +55,9 @@ declare const _Headers: {
50
55
  export const isPolyfilled = false;
51
56
 
52
57
  export { _fetch as fetch, _Request as Request, _Response as Response, _Headers as Headers };
53
- export type { _RequestInit as RequestInit, _RequestInfo as RequestInfo, _BodyInit as BodyInit };
58
+ export type {
59
+ _RequestInit as RequestInit,
60
+ _RequestInfo as RequestInfo,
61
+ _ResponseType as ResponseType,
62
+ _BodyInit as BodyInit,
63
+ };
package/core.d.ts CHANGED
@@ -2,6 +2,7 @@ import { APIError } from './error.js';
2
2
  import type { Readable } from 'increase/_shims/node-readable';
3
3
  import { type Agent } from 'increase/_shims/agent';
4
4
  import { type RequestInfo, type RequestInit, type Response } from 'increase/_shims/fetch';
5
+ export { type Response };
5
6
  export {
6
7
  maybeMultipartFormRequestOptions,
7
8
  multipartFormRequestOptions,
@@ -9,6 +10,53 @@ export {
9
10
  type Uploadable,
10
11
  } from './uploads.js';
11
12
  export type Fetch = (url: RequestInfo, init?: RequestInit) => Promise<Response>;
13
+ type PromiseOrValue<T> = T | Promise<T>;
14
+ type APIResponseProps = {
15
+ response: Response;
16
+ options: FinalRequestOptions;
17
+ controller: AbortController;
18
+ };
19
+ /**
20
+ * A subclass of `Promise` providing additional helper methods
21
+ * for interacting with the SDK.
22
+ */
23
+ export declare class APIPromise<T> extends Promise<T> {
24
+ private responsePromise;
25
+ private parseResponse;
26
+ private parsedPromise;
27
+ constructor(
28
+ responsePromise: Promise<APIResponseProps>,
29
+ parseResponse?: (props: APIResponseProps) => PromiseOrValue<T>,
30
+ );
31
+ _thenUnwrap<U>(transform: (data: T) => U): APIPromise<U>;
32
+ /**
33
+ * Gets the raw `Response` instance instead of parsing the response
34
+ * data.
35
+ *
36
+ * If you want to parse the response body but still get the `Response`
37
+ * instance, you can use {@link withResponse()}.
38
+ */
39
+ asResponse(): Promise<Response>;
40
+ /**
41
+ * Gets the parsed response data and the raw `Response` instance.
42
+ *
43
+ * If you just want to get the raw `Response` instance without parsing it,
44
+ * you can use {@link asResponse()}.
45
+ */
46
+ withResponse(): Promise<{
47
+ data: T;
48
+ response: Response;
49
+ }>;
50
+ private parse;
51
+ then<TResult1 = T, TResult2 = never>(
52
+ onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null,
53
+ onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null,
54
+ ): Promise<TResult1 | TResult2>;
55
+ catch<TResult = never>(
56
+ onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null,
57
+ ): Promise<T | TResult>;
58
+ finally(onfinally?: (() => void) | undefined | null): Promise<T>;
59
+ }
12
60
  export declare abstract class APIClient {
13
61
  baseURL: string;
14
62
  maxRetries: number;
@@ -45,16 +93,17 @@ export declare abstract class APIClient {
45
93
  */
46
94
  protected validateHeaders(headers: Headers, customHeaders: Headers): void;
47
95
  protected defaultIdempotencyKey(): string;
48
- get<Req extends {}, Rsp>(path: string, opts?: RequestOptions<Req>): Promise<Rsp>;
49
- post<Req extends {}, Rsp>(path: string, opts?: RequestOptions<Req>): Promise<Rsp>;
50
- patch<Req extends {}, Rsp>(path: string, opts?: RequestOptions<Req>): Promise<Rsp>;
51
- put<Req extends {}, Rsp>(path: string, opts?: RequestOptions<Req>): Promise<Rsp>;
52
- delete<Req extends {}, Rsp>(path: string, opts?: RequestOptions<Req>): Promise<Rsp>;
96
+ get<Req extends {}, Rsp>(path: string, opts?: PromiseOrValue<RequestOptions<Req>>): APIPromise<Rsp>;
97
+ post<Req extends {}, Rsp>(path: string, opts?: PromiseOrValue<RequestOptions<Req>>): APIPromise<Rsp>;
98
+ patch<Req extends {}, Rsp>(path: string, opts?: PromiseOrValue<RequestOptions<Req>>): APIPromise<Rsp>;
99
+ put<Req extends {}, Rsp>(path: string, opts?: PromiseOrValue<RequestOptions<Req>>): APIPromise<Rsp>;
100
+ delete<Req extends {}, Rsp>(path: string, opts?: PromiseOrValue<RequestOptions<Req>>): APIPromise<Rsp>;
101
+ private methodRequest;
53
102
  getAPIList<Item, PageClass extends AbstractPage<Item> = AbstractPage<Item>>(
54
103
  path: string,
55
104
  Page: new (...args: any[]) => PageClass,
56
105
  opts?: RequestOptions<any>,
57
- ): PagePromise<PageClass>;
106
+ ): PagePromise<PageClass, Item>;
58
107
  private calculateContentLength;
59
108
  buildRequest<Req extends {}>(
60
109
  options: FinalRequestOptions<Req>,
@@ -84,13 +133,14 @@ export declare abstract class APIClient {
84
133
  headers: Headers | undefined,
85
134
  ): APIError;
86
135
  request<Req extends {}, Rsp>(
87
- options: FinalRequestOptions<Req>,
88
- retriesRemaining?: number,
89
- ): Promise<APIResponse<Rsp>>;
136
+ options: PromiseOrValue<FinalRequestOptions<Req>>,
137
+ remainingRetries?: number | null,
138
+ ): APIPromise<Rsp>;
139
+ private makeRequest;
90
140
  requestAPIList<Item = unknown, PageClass extends AbstractPage<Item> = AbstractPage<Item>>(
91
141
  Page: new (...args: ConstructorParameters<typeof AbstractPage>) => PageClass,
92
142
  options: FinalRequestOptions,
93
- ): PagePromise<PageClass>;
143
+ ): PagePromise<PageClass, Item>;
94
144
  buildURL<Req>(path: string, query: Req | undefined): string;
95
145
  protected stringifyQuery(query: Record<string, unknown>): string;
96
146
  fetchWithTimeout(
@@ -104,7 +154,6 @@ export declare abstract class APIClient {
104
154
  private retryRequest;
105
155
  private calculateRetryTimeoutSeconds;
106
156
  private getUserAgent;
107
- private debug;
108
157
  }
109
158
  export declare class APIResource {
110
159
  protected client: APIClient;
@@ -126,7 +175,9 @@ export type PageInfo =
126
175
  export declare abstract class AbstractPage<Item> implements AsyncIterable<Item> {
127
176
  #private;
128
177
  protected options: FinalRequestOptions;
129
- constructor(client: APIClient, response: APIResponse<unknown>, options: FinalRequestOptions);
178
+ protected response: Response;
179
+ protected body: unknown;
180
+ constructor(client: APIClient, response: Response, body: unknown, options: FinalRequestOptions);
130
181
  /**
131
182
  * @deprecated Use nextPageInfo instead
132
183
  */
@@ -138,27 +189,27 @@ export declare abstract class AbstractPage<Item> implements AsyncIterable<Item>
138
189
  iterPages(): AsyncGenerator<AbstractPage<Item>, void, unknown>;
139
190
  [Symbol.asyncIterator](): AsyncGenerator<Awaited<Item>, void, unknown>;
140
191
  }
192
+ /**
193
+ * This subclass of Promise will resolve to an instantiated Page once the request completes.
194
+ *
195
+ * It also implements AsyncIterable to allow auto-paginating iteration on an unawaited list call, eg:
196
+ *
197
+ * for await (const item of client.items.list()) {
198
+ * console.log(item)
199
+ * }
200
+ */
141
201
  export declare class PagePromise<
142
202
  PageClass extends AbstractPage<Item>,
143
203
  Item = ReturnType<PageClass['getPaginatedItems']>[number],
144
204
  >
145
- extends Promise<PageClass>
205
+ extends APIPromise<PageClass>
146
206
  implements AsyncIterable<Item>
147
207
  {
148
- /**
149
- * This subclass of Promise will resolve to an instantiated Page once the request completes.
150
- */
151
208
  constructor(
152
209
  client: APIClient,
153
- requestPromise: Promise<APIResponse<unknown>>,
154
- options: FinalRequestOptions,
210
+ request: Promise<APIResponseProps>,
155
211
  Page: new (...args: ConstructorParameters<typeof AbstractPage>) => PageClass,
156
212
  );
157
- /**
158
- * Enable subclassing Promise.
159
- * Ref: https://stackoverflow.com/a/60328122
160
- */
161
- static get [Symbol.species](): PromiseConstructor;
162
213
  /**
163
214
  * Allow auto-paginating iteration on an unawaited list call, eg:
164
215
  *
@@ -200,10 +251,6 @@ export type FinalRequestOptions<Req extends {} = Record<string, unknown> | Reada
200
251
  method: HTTPMethod;
201
252
  path: string;
202
253
  };
203
- export type APIResponse<T> = T & {
204
- /** @deprecated - we plan to add a different way to access raw response information shortly. */
205
- responseHeaders: Headers;
206
- };
207
254
  export declare const safeJSON: (text: string) => any;
208
255
  export declare const castToError: (err: any) => Error;
209
256
  export declare const ensurePresent: <T>(value: T | null | undefined) => T;
@@ -221,6 +268,7 @@ export declare const maybeCoerceFloat: (value: unknown) => number | undefined;
221
268
  export declare const maybeCoerceBoolean: (value: unknown) => boolean | undefined;
222
269
  export declare function isEmptyObj(obj: Object | null | undefined): boolean;
223
270
  export declare function hasOwn(obj: Object, key: string): boolean;
271
+ export declare function debug(action: string, ...args: any[]): void;
224
272
  export declare const isRunningInBrowser: () => boolean;
225
273
  export interface HeadersProtocol {
226
274
  get: (header: string) => string | null | undefined;
package/core.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["src/core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["src/core.ts"],"names":[],"mappings":"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"}
package/core.js CHANGED
@@ -32,6 +32,7 @@ exports.toBase64 =
32
32
  exports.getHeader =
33
33
  exports.isHeadersProtocol =
34
34
  exports.isRunningInBrowser =
35
+ exports.debug =
35
36
  exports.hasOwn =
36
37
  exports.isEmptyObj =
37
38
  exports.maybeCoerceBoolean =
@@ -50,6 +51,7 @@ exports.toBase64 =
50
51
  exports.AbstractPage =
51
52
  exports.APIResource =
52
53
  exports.APIClient =
54
+ exports.APIPromise =
53
55
  exports.createForm =
54
56
  exports.multipartFormRequestOptions =
55
57
  exports.maybeMultipartFormRequestOptions =
@@ -79,6 +81,74 @@ Object.defineProperty(exports, 'createForm', {
79
81
  },
80
82
  });
81
83
  const MAX_RETRIES = 2;
84
+ async function defaultParseResponse(props) {
85
+ const { response } = props;
86
+ const contentType = response.headers.get('content-type');
87
+ if (contentType === null || contentType === void 0 ? void 0 : contentType.includes('application/json')) {
88
+ const json = await response.json();
89
+ debug('response', response.status, response.url, response.headers, json);
90
+ return json;
91
+ }
92
+ // TODO handle blob, arraybuffer, other content types, etc.
93
+ const text = await response.text();
94
+ debug('response', response.status, response.url, response.headers, text);
95
+ return text;
96
+ }
97
+ /**
98
+ * A subclass of `Promise` providing additional helper methods
99
+ * for interacting with the SDK.
100
+ */
101
+ class APIPromise extends Promise {
102
+ constructor(responsePromise, parseResponse = defaultParseResponse) {
103
+ super((resolve) => {
104
+ // this is maybe a bit weird but this has to be a no-op to not implicitly
105
+ // parse the response body; instead .then, .catch, .finally are overridden
106
+ // to parse the response
107
+ resolve(null);
108
+ });
109
+ this.responsePromise = responsePromise;
110
+ this.parseResponse = parseResponse;
111
+ }
112
+ _thenUnwrap(transform) {
113
+ return new APIPromise(this.responsePromise, async (props) => transform(await this.parseResponse(props)));
114
+ }
115
+ /**
116
+ * Gets the raw `Response` instance instead of parsing the response
117
+ * data.
118
+ *
119
+ * If you want to parse the response body but still get the `Response`
120
+ * instance, you can use {@link withResponse()}.
121
+ */
122
+ asResponse() {
123
+ return this.responsePromise.then((p) => p.response);
124
+ }
125
+ /**
126
+ * Gets the parsed response data and the raw `Response` instance.
127
+ *
128
+ * If you just want to get the raw `Response` instance without parsing it,
129
+ * you can use {@link asResponse()}.
130
+ */
131
+ async withResponse() {
132
+ const [data, response] = await Promise.all([this.parse(), this.asResponse()]);
133
+ return { data, response };
134
+ }
135
+ parse() {
136
+ if (!this.parsedPromise) {
137
+ this.parsedPromise = this.responsePromise.then(this.parseResponse);
138
+ }
139
+ return this.parsedPromise;
140
+ }
141
+ then(onfulfilled, onrejected) {
142
+ return this.parse().then(onfulfilled, onrejected);
143
+ }
144
+ catch(onrejected) {
145
+ return this.parse().catch(onrejected);
146
+ }
147
+ finally(onfinally) {
148
+ return this.parse().finally(onfinally);
149
+ }
150
+ }
151
+ exports.APIPromise = APIPromise;
82
152
  class APIClient {
83
153
  constructor({
84
154
  baseURL,
@@ -124,19 +194,22 @@ class APIClient {
124
194
  return `stainless-node-retry-${uuid4()}`;
125
195
  }
126
196
  get(path, opts) {
127
- return this.request({ method: 'get', path, ...opts });
197
+ return this.methodRequest('get', path, opts);
128
198
  }
129
199
  post(path, opts) {
130
- return this.request({ method: 'post', path, ...opts });
200
+ return this.methodRequest('post', path, opts);
131
201
  }
132
202
  patch(path, opts) {
133
- return this.request({ method: 'patch', path, ...opts });
203
+ return this.methodRequest('patch', path, opts);
134
204
  }
135
205
  put(path, opts) {
136
- return this.request({ method: 'put', path, ...opts });
206
+ return this.methodRequest('put', path, opts);
137
207
  }
138
208
  delete(path, opts) {
139
- return this.request({ method: 'delete', path, ...opts });
209
+ return this.methodRequest('delete', path, opts);
210
+ }
211
+ methodRequest(method, path, opts) {
212
+ return this.request(Promise.resolve(opts).then((opts) => ({ method, path, ...opts })));
140
213
  }
141
214
  getAPIList(path, Page, opts) {
142
215
  return this.requestAPIList(Page, { method: 'get', path, ...opts });
@@ -220,14 +293,18 @@ class APIClient {
220
293
  makeStatusError(status, error, message, headers) {
221
294
  return error_1.APIError.generate(status, error, message, headers);
222
295
  }
223
- async request(options, retriesRemaining) {
296
+ request(options, remainingRetries = null) {
297
+ return new APIPromise(this.makeRequest(options, remainingRetries));
298
+ }
299
+ async makeRequest(optionsInput, retriesRemaining) {
224
300
  var _a, _b, _c;
225
- if (retriesRemaining === void 0) {
301
+ const options = await optionsInput;
302
+ if (retriesRemaining == null) {
226
303
  retriesRemaining = (_a = options.maxRetries) !== null && _a !== void 0 ? _a : this.maxRetries;
227
304
  }
228
305
  const { req, url, timeout } = this.buildRequest(options);
229
306
  await this.prepareRequest(req, { url });
230
- this.debug('request', url, options, req.headers);
307
+ debug('request', url, options, req.headers);
231
308
  if ((_b = options.signal) === null || _b === void 0 ? void 0 : _b.aborted) {
232
309
  throw new error_1.APIUserAbortError();
233
310
  }
@@ -253,32 +330,15 @@ class APIClient {
253
330
  const errText = await response.text().catch(() => 'Unknown');
254
331
  const errJSON = (0, exports.safeJSON)(errText);
255
332
  const errMessage = errJSON ? undefined : errText;
256
- this.debug('response', response.status, url, responseHeaders, errMessage);
333
+ debug('response', response.status, url, responseHeaders, errMessage);
257
334
  const err = this.makeStatusError(response.status, errJSON, errMessage, responseHeaders);
258
335
  throw err;
259
336
  }
260
- const contentType = response.headers.get('content-type');
261
- if (contentType === null || contentType === void 0 ? void 0 : contentType.includes('application/json')) {
262
- const json = await response.json();
263
- if (typeof json === 'object' && json != null) {
264
- /** @deprecated – we expect to change this interface in the near future. */
265
- Object.defineProperty(json, 'responseHeaders', {
266
- enumerable: false,
267
- writable: false,
268
- value: responseHeaders,
269
- });
270
- }
271
- this.debug('response', response.status, url, responseHeaders, json);
272
- return json;
273
- }
274
- // TODO handle blob, arraybuffer, other content types, etc.
275
- const text = response.text();
276
- this.debug('response', response.status, url, responseHeaders, text);
277
- return text;
337
+ return { response, options, controller };
278
338
  }
279
339
  requestAPIList(Page, options) {
280
- const requestPromise = this.request(options);
281
- return new PagePromise(this, requestPromise, options, Page);
340
+ const request = this.makeRequest(options, null);
341
+ return new PagePromise(this, request, Page);
282
342
  }
283
343
  buildURL(path, query) {
284
344
  const url =
@@ -371,11 +431,6 @@ class APIClient {
371
431
  getUserAgent() {
372
432
  return `${this.constructor.name}/JS ${version_1.VERSION}`;
373
433
  }
374
- debug(action, ...args) {
375
- if (typeof process !== 'undefined' && process.env['DEBUG'] === 'true') {
376
- console.log(`${this.constructor.name}:DEBUG:${action}`, ...args);
377
- }
378
- }
379
434
  }
380
435
  exports.APIClient = APIClient;
381
436
  class APIResource {
@@ -391,10 +446,12 @@ class APIResource {
391
446
  }
392
447
  exports.APIResource = APIResource;
393
448
  class AbstractPage {
394
- constructor(client, response, options) {
449
+ constructor(client, response, body, options) {
395
450
  _AbstractPage_client.set(this, void 0);
396
451
  __classPrivateFieldSet(this, _AbstractPage_client, client, 'f');
397
452
  this.options = options;
453
+ this.response = response;
454
+ this.body = body;
398
455
  }
399
456
  hasNextPage() {
400
457
  const items = this.getPaginatedItems();
@@ -442,22 +499,22 @@ class AbstractPage {
442
499
  }
443
500
  }
444
501
  exports.AbstractPage = AbstractPage;
445
- class PagePromise extends Promise {
446
- /**
447
- * This subclass of Promise will resolve to an instantiated Page once the request completes.
448
- */
449
- constructor(client, requestPromise, options, Page) {
450
- super((resolve, reject) =>
451
- requestPromise.then((response) => resolve(new Page(client, response, options))).catch(reject),
502
+ /**
503
+ * This subclass of Promise will resolve to an instantiated Page once the request completes.
504
+ *
505
+ * It also implements AsyncIterable to allow auto-paginating iteration on an unawaited list call, eg:
506
+ *
507
+ * for await (const item of client.items.list()) {
508
+ * console.log(item)
509
+ * }
510
+ */
511
+ class PagePromise extends APIPromise {
512
+ constructor(client, request, Page) {
513
+ super(
514
+ request,
515
+ async (props) => new Page(client, props.response, await defaultParseResponse(props), props.options),
452
516
  );
453
517
  }
454
- /**
455
- * Enable subclassing Promise.
456
- * Ref: https://stackoverflow.com/a/60328122
457
- */
458
- static get [Symbol.species]() {
459
- return Promise;
460
- }
461
518
  /**
462
519
  * Allow auto-paginating iteration on an unawaited list call, eg:
463
520
  *
@@ -735,6 +792,12 @@ function hasOwn(obj, key) {
735
792
  return Object.prototype.hasOwnProperty.call(obj, key);
736
793
  }
737
794
  exports.hasOwn = hasOwn;
795
+ function debug(action, ...args) {
796
+ if (typeof process !== 'undefined' && process.env['DEBUG'] === 'true') {
797
+ console.log(`Increase:DEBUG:${action}`, ...args);
798
+ }
799
+ }
800
+ exports.debug = debug;
738
801
  /**
739
802
  * https://stackoverflow.com/a/2117523
740
803
  */