modern-treasury 0.14.0 → 1.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 (118) hide show
  1. package/.stats.yml +1 -1
  2. package/README.md +1 -1
  3. package/api.md +353 -0
  4. package/core.ts +18 -40
  5. package/dist/cjs/core.d.ts +4 -3
  6. package/dist/cjs/core.js +24 -34
  7. package/dist/cjs/core.js.map +1 -1
  8. package/dist/cjs/fetch-polyfill.d.ts +5 -0
  9. package/dist/cjs/fetch-polyfill.js +56 -0
  10. package/dist/cjs/fetch-polyfill.js.map +1 -0
  11. package/dist/cjs/index.d.ts +15 -1
  12. package/dist/cjs/index.js +7 -1
  13. package/dist/cjs/index.js.map +1 -1
  14. package/dist/cjs/pagination.js +1 -1
  15. package/dist/cjs/pagination.js.map +1 -1
  16. package/dist/cjs/resource.js +1 -0
  17. package/dist/cjs/resource.js.map +1 -1
  18. package/dist/cjs/resources/account-details.d.ts +5 -5
  19. package/dist/cjs/resources/counterparties.d.ts +4 -4
  20. package/dist/cjs/resources/counterparties.js.map +1 -1
  21. package/dist/cjs/resources/external-accounts.d.ts +5 -5
  22. package/dist/cjs/resources/external-accounts.js.map +1 -1
  23. package/dist/cjs/resources/incoming-payment-details.d.ts +10 -5
  24. package/dist/cjs/resources/incoming-payment-details.js.map +1 -1
  25. package/dist/cjs/resources/index.d.ts +148 -24
  26. package/dist/cjs/resources/index.js +363 -25
  27. package/dist/cjs/resources/index.js.map +1 -1
  28. package/dist/cjs/resources/internal-accounts/balance-reports.d.ts +1 -0
  29. package/dist/cjs/resources/internal-accounts/index.d.ts +8 -2
  30. package/dist/cjs/resources/internal-accounts/index.js +16 -30
  31. package/dist/cjs/resources/internal-accounts/index.js.map +1 -1
  32. package/dist/cjs/resources/internal-accounts/internal-accounts.d.ts +9 -3
  33. package/dist/cjs/resources/internal-accounts/internal-accounts.js +1 -1
  34. package/dist/cjs/resources/internal-accounts/internal-accounts.js.map +1 -1
  35. package/dist/cjs/resources/ledger-account-categories.d.ts +40 -4
  36. package/dist/cjs/resources/ledger-account-categories.js +5 -5
  37. package/dist/cjs/resources/ledger-account-categories.js.map +1 -1
  38. package/dist/cjs/resources/ledger-account-payouts.d.ts +142 -0
  39. package/dist/cjs/resources/ledger-account-payouts.js +41 -0
  40. package/dist/cjs/resources/ledger-account-payouts.js.map +1 -0
  41. package/dist/cjs/resources/ledger-accounts.d.ts +1 -0
  42. package/dist/cjs/resources/ledger-transactions/index.d.ts +13 -2
  43. package/dist/cjs/resources/ledger-transactions/index.js +16 -30
  44. package/dist/cjs/resources/ledger-transactions/index.js.map +1 -1
  45. package/dist/cjs/resources/ledger-transactions/ledger-transactions.d.ts +2 -2
  46. package/dist/cjs/resources/ledger-transactions/ledger-transactions.js +1 -1
  47. package/dist/cjs/resources/ledger-transactions/ledger-transactions.js.map +1 -1
  48. package/dist/cjs/resources/ledger-transactions/versions.d.ts +150 -5
  49. package/dist/cjs/resources/ledger-transactions/versions.js +9 -2
  50. package/dist/cjs/resources/ledger-transactions/versions.js.map +1 -1
  51. package/dist/cjs/resources/payment-orders/index.d.ts +11 -2
  52. package/dist/cjs/resources/payment-orders/index.js +16 -30
  53. package/dist/cjs/resources/payment-orders/index.js.map +1 -1
  54. package/dist/cjs/resources/payment-orders/payment-orders.d.ts +12 -7
  55. package/dist/cjs/resources/payment-orders/payment-orders.js +1 -1
  56. package/dist/cjs/resources/payment-orders/payment-orders.js.map +1 -1
  57. package/dist/cjs/resources/payment-references.d.ts +112 -0
  58. package/dist/cjs/resources/payment-references.js +29 -0
  59. package/dist/cjs/resources/payment-references.js.map +1 -0
  60. package/dist/cjs/resources/returns.d.ts +6 -3
  61. package/dist/cjs/resources/routing-details.d.ts +1 -1
  62. package/dist/cjs/resources/shared.d.ts +1 -0
  63. package/dist/cjs/resources/transactions.d.ts +5 -2
  64. package/dist/cjs/resources/virtual-accounts.d.ts +2 -2
  65. package/dist/cjs/resources/virtual-accounts.js.map +1 -1
  66. package/dist/cjs/resources/webhooks.js.map +1 -1
  67. package/dist/cjs/tests/api-resources/internal-accounts/internal-accounts.test.js +2 -0
  68. package/dist/cjs/tests/api-resources/internal-accounts/internal-accounts.test.js.map +1 -1
  69. package/dist/cjs/tests/api-resources/ledger-account-categories.test.js +18 -1
  70. package/dist/cjs/tests/api-resources/ledger-account-categories.test.js.map +1 -1
  71. package/dist/cjs/tests/api-resources/ledger-account-payouts.test.d.ts +1 -0
  72. package/dist/cjs/tests/api-resources/ledger-account-payouts.test.js +140 -0
  73. package/dist/cjs/tests/api-resources/ledger-account-payouts.test.js.map +1 -0
  74. package/dist/cjs/tests/api-resources/ledger-accounts.test.js +2 -2
  75. package/dist/cjs/tests/api-resources/ledger-accounts.test.js.map +1 -1
  76. package/dist/cjs/tests/api-resources/ledger-transactions/versions.test.js +36 -0
  77. package/dist/cjs/tests/api-resources/ledger-transactions/versions.test.js.map +1 -1
  78. package/dist/cjs/tests/api-resources/payment-references.test.d.ts +1 -0
  79. package/dist/cjs/tests/api-resources/payment-references.test.js +96 -0
  80. package/dist/cjs/tests/api-resources/payment-references.test.js.map +1 -0
  81. package/dist/cjs/version.d.ts +1 -1
  82. package/dist/cjs/version.js +1 -1
  83. package/dist/cjs/version.js.map +1 -1
  84. package/fetch-polyfill.ts +66 -0
  85. package/index.ts +20 -2
  86. package/package.json +5 -6
  87. package/pagination.ts +1 -0
  88. package/resource.ts +2 -0
  89. package/resources/account-details.ts +6 -6
  90. package/resources/counterparties.ts +4 -4
  91. package/resources/external-accounts.ts +5 -5
  92. package/resources/incoming-payment-details.ts +11 -6
  93. package/resources/index.ts +149 -24
  94. package/resources/internal-accounts/balance-reports.ts +1 -0
  95. package/resources/internal-accounts/index.ts +9 -2
  96. package/resources/internal-accounts/internal-accounts.ts +10 -3
  97. package/resources/ledger-account-categories.ts +54 -6
  98. package/resources/ledger-account-payouts.ts +200 -0
  99. package/resources/ledger-accounts.ts +2 -0
  100. package/resources/ledger-transactions/index.ts +14 -2
  101. package/resources/ledger-transactions/ledger-transactions.ts +2 -2
  102. package/resources/ledger-transactions/versions.ts +180 -8
  103. package/resources/payment-orders/index.ts +12 -2
  104. package/resources/payment-orders/payment-orders.ts +12 -7
  105. package/resources/payment-references.ts +142 -0
  106. package/resources/returns.ts +6 -3
  107. package/resources/routing-details.ts +1 -1
  108. package/resources/shared.ts +2 -0
  109. package/resources/transactions.ts +5 -2
  110. package/resources/virtual-accounts.ts +2 -2
  111. package/resources/webhooks.ts +0 -1
  112. package/tests/api-resources/internal-accounts/internal-accounts.test.ts +2 -0
  113. package/tests/api-resources/ledger-account-categories.test.ts +18 -1
  114. package/tests/api-resources/ledger-account-payouts.test.ts +102 -0
  115. package/tests/api-resources/ledger-accounts.test.ts +2 -2
  116. package/tests/api-resources/ledger-transactions/versions.test.ts +36 -0
  117. package/tests/api-resources/payment-references.test.ts +58 -0
  118. package/version.ts +1 -1
package/.stats.yml CHANGED
@@ -1 +1 @@
1
- configured_endpoints: 94
1
+ configured_endpoints: 100
package/README.md CHANGED
@@ -213,4 +213,4 @@ The following runtimes are supported:
213
213
  - Deno v1.28.0 or higher (experimental).
214
214
  Use `import ModernTreasury from "npm:modern-treasury"`.
215
215
 
216
- If you are interested in other runtime environments, please open or upvote an issue on Github.
216
+ If you are interested in other runtime environments, please open or upvote an issue on GitHub.
package/api.md ADDED
@@ -0,0 +1,353 @@
1
+ # Connections
2
+
3
+ Models:
4
+
5
+ - <code><a href="./resources/connections.ts">Connection</a></code>
6
+
7
+ Methods:
8
+
9
+ - <code title="get /api/connections">client.connections.<a href="./resources/connections.ts">list</a>({ ...params }) -> ConnectionsPage</code>
10
+
11
+ # Counterparties
12
+
13
+ Models:
14
+
15
+ - <code><a href="./resources/counterparties.ts">Counterparty</a></code>
16
+ - <code><a href="./resources/counterparties.ts">CounterpartyCollectAccountResponse</a></code>
17
+
18
+ Methods:
19
+
20
+ - <code title="post /api/counterparties">client.counterparties.<a href="./resources/counterparties.ts">create</a>({ ...params }) -> Counterparty</code>
21
+ - <code title="get /api/counterparties/{id}">client.counterparties.<a href="./resources/counterparties.ts">retrieve</a>(id) -> Counterparty</code>
22
+ - <code title="patch /api/counterparties/{id}">client.counterparties.<a href="./resources/counterparties.ts">update</a>(id, { ...params }) -> Counterparty</code>
23
+ - <code title="get /api/counterparties">client.counterparties.<a href="./resources/counterparties.ts">list</a>({ ...params }) -> CounterpartiesPage</code>
24
+ - <code title="delete /api/counterparties/{id}">client.counterparties.<a href="./resources/counterparties.ts">del</a>(id) -> Promise<void></code>
25
+ - <code title="post /api/counterparties/{id}/collect_account">client.counterparties.<a href="./resources/counterparties.ts">collectAccount</a>(id, { ...params }) -> CounterpartyCollectAccountResponse</code>
26
+
27
+ # Events
28
+
29
+ Models:
30
+
31
+ - <code><a href="./resources/events.ts">Event</a></code>
32
+
33
+ Methods:
34
+
35
+ - <code title="get /api/events/{id}">client.events.<a href="./resources/events.ts">retrieve</a>(id) -> Event</code>
36
+ - <code title="get /api/events">client.events.<a href="./resources/events.ts">list</a>({ ...params }) -> EventsPage</code>
37
+
38
+ # ExpectedPayments
39
+
40
+ Models:
41
+
42
+ - <code><a href="./resources/expected-payments.ts">ExpectedPayment</a></code>
43
+ - <code><a href="./resources/expected-payments.ts">ExpectedPaymentType</a></code>
44
+
45
+ Methods:
46
+
47
+ - <code title="post /api/expected_payments">client.expectedPayments.<a href="./resources/expected-payments.ts">create</a>({ ...params }) -> ExpectedPayment</code>
48
+ - <code title="get /api/expected_payments/{id}">client.expectedPayments.<a href="./resources/expected-payments.ts">retrieve</a>(id) -> ExpectedPayment</code>
49
+ - <code title="patch /api/expected_payments/{id}">client.expectedPayments.<a href="./resources/expected-payments.ts">update</a>(id, { ...params }) -> ExpectedPayment</code>
50
+ - <code title="get /api/expected_payments">client.expectedPayments.<a href="./resources/expected-payments.ts">list</a>({ ...params }) -> ExpectedPaymentsPage</code>
51
+ - <code title="delete /api/expected_payments/{id}">client.expectedPayments.<a href="./resources/expected-payments.ts">del</a>(id) -> ExpectedPayment</code>
52
+
53
+ # ExternalAccounts
54
+
55
+ Models:
56
+
57
+ - <code><a href="./resources/external-accounts.ts">ExternalAccount</a></code>
58
+ - <code><a href="./resources/external-accounts.ts">ExternalAccountType</a></code>
59
+
60
+ Methods:
61
+
62
+ - <code title="post /api/external_accounts">client.externalAccounts.<a href="./resources/external-accounts.ts">create</a>({ ...params }) -> ExternalAccount</code>
63
+ - <code title="get /api/external_accounts/{id}">client.externalAccounts.<a href="./resources/external-accounts.ts">retrieve</a>(id) -> ExternalAccount</code>
64
+ - <code title="patch /api/external_accounts/{id}">client.externalAccounts.<a href="./resources/external-accounts.ts">update</a>(id, { ...params }) -> ExternalAccount</code>
65
+ - <code title="get /api/external_accounts">client.externalAccounts.<a href="./resources/external-accounts.ts">list</a>({ ...params }) -> ExternalAccountsPage</code>
66
+ - <code title="delete /api/external_accounts/{id}">client.externalAccounts.<a href="./resources/external-accounts.ts">del</a>(id) -> Promise<void></code>
67
+ - <code title="post /api/external_accounts/{id}/complete_verification">client.externalAccounts.<a href="./resources/external-accounts.ts">completeVerification</a>(id, { ...params }) -> ExternalAccount</code>
68
+ - <code title="post /api/external_accounts/{id}/verify">client.externalAccounts.<a href="./resources/external-accounts.ts">verify</a>(id, { ...params }) -> ExternalAccount</code>
69
+
70
+ # IncomingPaymentDetails
71
+
72
+ Models:
73
+
74
+ - <code><a href="./resources/incoming-payment-details.ts">IncomingPaymentDetail</a></code>
75
+
76
+ Methods:
77
+
78
+ - <code title="get /api/incoming_payment_details/{id}">client.incomingPaymentDetails.<a href="./resources/incoming-payment-details.ts">retrieve</a>(id) -> IncomingPaymentDetail</code>
79
+ - <code title="patch /api/incoming_payment_details/{id}">client.incomingPaymentDetails.<a href="./resources/incoming-payment-details.ts">update</a>(id, { ...params }) -> IncomingPaymentDetail</code>
80
+ - <code title="get /api/incoming_payment_details">client.incomingPaymentDetails.<a href="./resources/incoming-payment-details.ts">list</a>({ ...params }) -> IncomingPaymentDetailsPage</code>
81
+ - <code title="post /api/simulations/incoming_payment_details/create_async">client.incomingPaymentDetails.<a href="./resources/incoming-payment-details.ts">createAsync</a>({ ...params }) -> Promise<void></code>
82
+
83
+ # Documents
84
+
85
+ Models:
86
+
87
+ - <code><a href="./resources/documents.ts">Document</a></code>
88
+
89
+ Methods:
90
+
91
+ - <code title="post /api/{documentable_type}/{documentable_id}/documents">client.documents.<a href="./resources/documents.ts">create</a>(documentableType, documentableId, { ...params }) -> Document</code>
92
+ - <code title="get /api/{documentable_type}/{documentable_id}/documents/{id}">client.documents.<a href="./resources/documents.ts">retrieve</a>(documentableType, documentableId, id) -> Document</code>
93
+ - <code title="get /api/{documentable_type}/{documentable_id}/documents">client.documents.<a href="./resources/documents.ts">list</a>(documentableType, documentableId, { ...params }) -> DocumentsPage</code>
94
+
95
+ # AccountDetails
96
+
97
+ Models:
98
+
99
+ - <code><a href="./resources/account-details.ts">AccountDetail</a></code>
100
+
101
+ Methods:
102
+
103
+ - <code title="post /api/{accounts_type}/{account_id}/account_details">client.accountDetails.<a href="./resources/account-details.ts">create</a>(accountsType, accountId, { ...params }) -> AccountDetail</code>
104
+ - <code title="get /api/{accounts_type}/{account_id}/account_details/{id}">client.accountDetails.<a href="./resources/account-details.ts">retrieve</a>(accountsType, accountId, id) -> AccountDetail</code>
105
+ - <code title="get /api/{accounts_type}/{account_id}/account_details">client.accountDetails.<a href="./resources/account-details.ts">list</a>(accountsType, accountId, { ...params }) -> AccountDetailsPage</code>
106
+ - <code title="delete /api/{accounts_type}/{account_id}/account_details/{id}">client.accountDetails.<a href="./resources/account-details.ts">del</a>(accountsType, accountId, id) -> Promise<void></code>
107
+
108
+ # RoutingDetails
109
+
110
+ Models:
111
+
112
+ - <code><a href="./resources/routing-details.ts">RoutingDetail</a></code>
113
+
114
+ Methods:
115
+
116
+ - <code title="post /api/{accounts_type}/{account_id}/routing_details">client.routingDetails.<a href="./resources/routing-details.ts">create</a>(accountsType, accountId, { ...params }) -> RoutingDetail</code>
117
+ - <code title="get /api/{accounts_type}/{account_id}/routing_details/{id}">client.routingDetails.<a href="./resources/routing-details.ts">retrieve</a>(accountsType, accountId, id) -> RoutingDetail</code>
118
+ - <code title="get /api/{accounts_type}/{account_id}/routing_details">client.routingDetails.<a href="./resources/routing-details.ts">list</a>(accountsType, accountId, { ...params }) -> RoutingDetailsPage</code>
119
+ - <code title="delete /api/{accounts_type}/{account_id}/routing_details/{id}">client.routingDetails.<a href="./resources/routing-details.ts">del</a>(accountsType, accountId, id) -> Promise<void></code>
120
+
121
+ # InternalAccounts
122
+
123
+ Models:
124
+
125
+ - <code><a href="./resources/internal-accounts/internal-accounts.ts">InternalAccount</a></code>
126
+
127
+ Methods:
128
+
129
+ - <code title="post /api/internal_accounts">client.internalAccounts.<a href="./resources/internal-accounts/internal-accounts.ts">create</a>({ ...params }) -> InternalAccount</code>
130
+ - <code title="get /api/internal_accounts/{id}">client.internalAccounts.<a href="./resources/internal-accounts/internal-accounts.ts">retrieve</a>(id) -> InternalAccount</code>
131
+ - <code title="patch /api/internal_accounts/{id}">client.internalAccounts.<a href="./resources/internal-accounts/internal-accounts.ts">update</a>(id, { ...params }) -> InternalAccount</code>
132
+ - <code title="get /api/internal_accounts">client.internalAccounts.<a href="./resources/internal-accounts/internal-accounts.ts">list</a>({ ...params }) -> InternalAccountsPage</code>
133
+
134
+ ## BalanceReports
135
+
136
+ Models:
137
+
138
+ - <code><a href="./resources/internal-accounts/balance-reports.ts">BalanceReport</a></code>
139
+
140
+ Methods:
141
+
142
+ - <code title="get /api/internal_accounts/{internal_account_id}/balance_reports/{id}">client.internalAccounts.balanceReports.<a href="./resources/internal-accounts/balance-reports.ts">retrieve</a>(internalAccountId, id) -> BalanceReport</code>
143
+ - <code title="get /api/internal_accounts/{internal_account_id}/balance_reports">client.internalAccounts.balanceReports.<a href="./resources/internal-accounts/balance-reports.ts">list</a>(internalAccountId, { ...params }) -> BalanceReportsPage</code>
144
+
145
+ # Ledgers
146
+
147
+ Models:
148
+
149
+ - <code><a href="./resources/ledgers.ts">Ledger</a></code>
150
+
151
+ Methods:
152
+
153
+ - <code title="post /api/ledgers">client.ledgers.<a href="./resources/ledgers.ts">create</a>({ ...params }) -> Ledger</code>
154
+ - <code title="get /api/ledgers/{id}">client.ledgers.<a href="./resources/ledgers.ts">retrieve</a>(id) -> Ledger</code>
155
+ - <code title="patch /api/ledgers/{id}">client.ledgers.<a href="./resources/ledgers.ts">update</a>(id, { ...params }) -> Ledger</code>
156
+ - <code title="get /api/ledgers">client.ledgers.<a href="./resources/ledgers.ts">list</a>({ ...params }) -> LedgersPage</code>
157
+ - <code title="delete /api/ledgers/{id}">client.ledgers.<a href="./resources/ledgers.ts">del</a>(id) -> Ledger</code>
158
+
159
+ # LedgerAccountCategories
160
+
161
+ Models:
162
+
163
+ - <code><a href="./resources/ledger-account-categories.ts">LedgerAccountCategory</a></code>
164
+
165
+ Methods:
166
+
167
+ - <code title="post /api/ledger_account_categories">client.ledgerAccountCategories.<a href="./resources/ledger-account-categories.ts">create</a>({ ...params }) -> LedgerAccountCategory</code>
168
+ - <code title="get /api/ledger_account_categories/{id}">client.ledgerAccountCategories.<a href="./resources/ledger-account-categories.ts">retrieve</a>(id, { ...params }) -> LedgerAccountCategory</code>
169
+ - <code title="patch /api/ledger_account_categories/{id}">client.ledgerAccountCategories.<a href="./resources/ledger-account-categories.ts">update</a>(id, { ...params }) -> LedgerAccountCategory</code>
170
+ - <code title="get /api/ledger_account_categories">client.ledgerAccountCategories.<a href="./resources/ledger-account-categories.ts">list</a>({ ...params }) -> LedgerAccountCategoriesPage</code>
171
+ - <code title="delete /api/ledger_account_categories/{id}">client.ledgerAccountCategories.<a href="./resources/ledger-account-categories.ts">del</a>(id) -> LedgerAccountCategory</code>
172
+ - <code title="put /api/ledger_account_categories/{id}/ledger_accounts/{ledger_account_id}">client.ledgerAccountCategories.<a href="./resources/ledger-account-categories.ts">addLedgerAccount</a>(id, ledgerAccountId) -> Promise<void></code>
173
+ - <code title="put /api/ledger_account_categories/{id}/ledger_account_categories/{sub_category_id}">client.ledgerAccountCategories.<a href="./resources/ledger-account-categories.ts">addNestedCategory</a>(id, subCategoryId) -> Promise<void></code>
174
+ - <code title="delete /api/ledger_account_categories/{id}/ledger_accounts/{ledger_account_id}">client.ledgerAccountCategories.<a href="./resources/ledger-account-categories.ts">removeLedgerAccount</a>(id, ledgerAccountId) -> Promise<void></code>
175
+ - <code title="delete /api/ledger_account_categories/{id}/ledger_account_categories/{sub_category_id}">client.ledgerAccountCategories.<a href="./resources/ledger-account-categories.ts">removeNestedCategory</a>(id, subCategoryId) -> Promise<void></code>
176
+
177
+ # LedgerAccounts
178
+
179
+ Models:
180
+
181
+ - <code><a href="./resources/ledger-accounts.ts">LedgerAccount</a></code>
182
+
183
+ Methods:
184
+
185
+ - <code title="post /api/ledger_accounts">client.ledgerAccounts.<a href="./resources/ledger-accounts.ts">create</a>({ ...params }) -> LedgerAccount</code>
186
+ - <code title="get /api/ledger_accounts/{id}">client.ledgerAccounts.<a href="./resources/ledger-accounts.ts">retrieve</a>(id, { ...params }) -> LedgerAccount</code>
187
+ - <code title="patch /api/ledger_accounts/{id}">client.ledgerAccounts.<a href="./resources/ledger-accounts.ts">update</a>(id, { ...params }) -> LedgerAccount</code>
188
+ - <code title="get /api/ledger_accounts">client.ledgerAccounts.<a href="./resources/ledger-accounts.ts">list</a>({ ...params }) -> LedgerAccountsPage</code>
189
+ - <code title="delete /api/ledger_accounts/{id}">client.ledgerAccounts.<a href="./resources/ledger-accounts.ts">del</a>(id) -> LedgerAccount</code>
190
+
191
+ # LedgerAccountPayouts
192
+
193
+ Models:
194
+
195
+ - <code><a href="./resources/ledger-account-payouts.ts">LedgerAccountPayout</a></code>
196
+
197
+ Methods:
198
+
199
+ - <code title="post /api/ledger_account_payouts">client.ledgerAccountPayouts.<a href="./resources/ledger-account-payouts.ts">create</a>({ ...params }) -> LedgerAccountPayout</code>
200
+ - <code title="patch /api/ledger_account_payouts/{id}">client.ledgerAccountPayouts.<a href="./resources/ledger-account-payouts.ts">update</a>(id, { ...params }) -> LedgerAccountPayout</code>
201
+ - <code title="get /api/ledger_account_payouts">client.ledgerAccountPayouts.<a href="./resources/ledger-account-payouts.ts">list</a>({ ...params }) -> LedgerAccountPayoutsPage</code>
202
+ - <code title="get /api/ledger_account_payouts/{id}">client.ledgerAccountPayouts.<a href="./resources/ledger-account-payouts.ts">retireve</a>(id) -> LedgerAccountPayout</code>
203
+
204
+ # LedgerEntries
205
+
206
+ Models:
207
+
208
+ - <code><a href="./resources/ledger-entries.ts">LedgerEntry</a></code>
209
+
210
+ Methods:
211
+
212
+ - <code title="get /api/ledger_entries/{id}">client.ledgerEntries.<a href="./resources/ledger-entries.ts">retrieve</a>(id) -> LedgerEntry</code>
213
+ - <code title="get /api/ledger_entries">client.ledgerEntries.<a href="./resources/ledger-entries.ts">list</a>({ ...params }) -> LedgerEntriesPage</code>
214
+
215
+ # LedgerTransactions
216
+
217
+ Models:
218
+
219
+ - <code><a href="./resources/ledger-transactions/ledger-transactions.ts">LedgerTransaction</a></code>
220
+
221
+ Methods:
222
+
223
+ - <code title="post /api/ledger_transactions">client.ledgerTransactions.<a href="./resources/ledger-transactions/ledger-transactions.ts">create</a>({ ...params }) -> LedgerTransaction</code>
224
+ - <code title="get /api/ledger_transactions/{id}">client.ledgerTransactions.<a href="./resources/ledger-transactions/ledger-transactions.ts">retrieve</a>(id) -> LedgerTransaction</code>
225
+ - <code title="patch /api/ledger_transactions/{id}">client.ledgerTransactions.<a href="./resources/ledger-transactions/ledger-transactions.ts">update</a>(id, { ...params }) -> LedgerTransaction</code>
226
+ - <code title="get /api/ledger_transactions">client.ledgerTransactions.<a href="./resources/ledger-transactions/ledger-transactions.ts">list</a>({ ...params }) -> LedgerTransactionsPage</code>
227
+
228
+ ## Versions
229
+
230
+ Models:
231
+
232
+ - <code><a href="./resources/ledger-transactions/versions.ts">LedgerTransactionVersion</a></code>
233
+
234
+ Methods:
235
+
236
+ - <code title="get /api/ledger_transactions/{id}/versions">client.ledgerTransactions.versions.<a href="./resources/ledger-transactions/versions.ts">list</a>(id, { ...params }) -> LedgerTransactionVersionsPage</code>
237
+
238
+ # LineItems
239
+
240
+ Models:
241
+
242
+ - <code><a href="./resources/line-items.ts">LineItem</a></code>
243
+
244
+ Methods:
245
+
246
+ - <code title="get /api/{itemizable_type}/{itemizable_id}/line_items/{id}">client.lineItems.<a href="./resources/line-items.ts">retrieve</a>(itemizableType, itemizableId, id) -> LineItem</code>
247
+ - <code title="patch /api/{itemizable_type}/{itemizable_id}/line_items/{id}">client.lineItems.<a href="./resources/line-items.ts">update</a>(itemizableType, itemizableId, id, { ...params }) -> LineItem</code>
248
+ - <code title="get /api/{itemizable_type}/{itemizable_id}/line_items">client.lineItems.<a href="./resources/line-items.ts">list</a>(itemizableType, itemizableId, { ...params }) -> LineItemsPage</code>
249
+
250
+ # PaymentOrders
251
+
252
+ Models:
253
+
254
+ - <code><a href="./resources/payment-orders/payment-orders.ts">PaymentOrder</a></code>
255
+ - <code><a href="./resources/payment-orders/payment-orders.ts">PaymentOrderSubtype</a></code>
256
+ - <code><a href="./resources/payment-orders/payment-orders.ts">PaymentOrderType</a></code>
257
+
258
+ Methods:
259
+
260
+ - <code title="post /api/payment_orders">client.paymentOrders.<a href="./resources/payment-orders/payment-orders.ts">create</a>({ ...params }) -> PaymentOrder</code>
261
+ - <code title="get /api/payment_orders/{id}">client.paymentOrders.<a href="./resources/payment-orders/payment-orders.ts">retrieve</a>(id) -> PaymentOrder</code>
262
+ - <code title="patch /api/payment_orders/{id}">client.paymentOrders.<a href="./resources/payment-orders/payment-orders.ts">update</a>(id, { ...params }) -> PaymentOrder</code>
263
+ - <code title="get /api/payment_orders">client.paymentOrders.<a href="./resources/payment-orders/payment-orders.ts">list</a>({ ...params }) -> PaymentOrdersPage</code>
264
+ - <code title="post /api/payment_orders/create_async">client.paymentOrders.<a href="./resources/payment-orders/payment-orders.ts">createAsync</a>({ ...params }) -> Promise<void></code>
265
+
266
+ ## Reversals
267
+
268
+ Models:
269
+
270
+ - <code><a href="./resources/payment-orders/reversals.ts">Reversal</a></code>
271
+
272
+ Methods:
273
+
274
+ - <code title="post /api/payment_orders/{payment_order_id}/reversals">client.paymentOrders.reversals.<a href="./resources/payment-orders/reversals.ts">create</a>(paymentOrderId, { ...params }) -> Reversal</code>
275
+ - <code title="get /api/payment_orders/{payment_order_id}/reversals/{reversal_id}">client.paymentOrders.reversals.<a href="./resources/payment-orders/reversals.ts">retrieve</a>(paymentOrderId, reversalId) -> Reversal</code>
276
+ - <code title="get /api/payment_orders/{payment_order_id}/reversals">client.paymentOrders.reversals.<a href="./resources/payment-orders/reversals.ts">list</a>(paymentOrderId, { ...params }) -> ReversalsPage</code>
277
+
278
+ # PaymentReferences
279
+
280
+ Models:
281
+
282
+ - <code><a href="./resources/payment-references.ts">PaymentReference</a></code>
283
+
284
+ Methods:
285
+
286
+ - <code title="get /api/payment_references">client.paymentReferences.<a href="./resources/payment-references.ts">list</a>({ ...params }) -> PaymentReferencesPage</code>
287
+ - <code title="get /api/payment_references/{id}">client.paymentReferences.<a href="./resources/payment-references.ts">retireve</a>(id) -> PaymentReference</code>
288
+
289
+ # Returns
290
+
291
+ Models:
292
+
293
+ - <code><a href="./resources/returns.ts">ReturnObject</a></code>
294
+
295
+ Methods:
296
+
297
+ - <code title="post /api/returns">client.returns.<a href="./resources/returns.ts">create</a>({ ...params }) -> ReturnObject</code>
298
+ - <code title="get /api/returns/{id}">client.returns.<a href="./resources/returns.ts">retrieve</a>(id) -> ReturnObject</code>
299
+ - <code title="get /api/returns">client.returns.<a href="./resources/returns.ts">list</a>({ ...params }) -> ReturnObjectsPage</code>
300
+
301
+ # Transactions
302
+
303
+ Models:
304
+
305
+ - <code><a href="./resources/transactions.ts">Transaction</a></code>
306
+
307
+ Methods:
308
+
309
+ - <code title="get /api/transactions/{id}">client.transactions.<a href="./resources/transactions.ts">retrieve</a>(id) -> Transaction</code>
310
+ - <code title="patch /api/transactions/{id}">client.transactions.<a href="./resources/transactions.ts">update</a>(id, { ...params }) -> Transaction</code>
311
+ - <code title="get /api/transactions">client.transactions.<a href="./resources/transactions.ts">list</a>({ ...params }) -> TransactionsPage</code>
312
+
313
+ # Validations
314
+
315
+ Models:
316
+
317
+ - <code><a href="./resources/validations.ts">RoutingNumberLookupRequest</a></code>
318
+
319
+ Methods:
320
+
321
+ - <code title="get /api/validations/routing_numbers">client.validations.<a href="./resources/validations.ts">validateRoutingNumber</a>({ ...params }) -> RoutingNumberLookupRequest</code>
322
+
323
+ # PaperItems
324
+
325
+ Models:
326
+
327
+ - <code><a href="./resources/paper-items.ts">PaperItem</a></code>
328
+
329
+ Methods:
330
+
331
+ - <code title="get /api/paper_items/{id}">client.paperItems.<a href="./resources/paper-items.ts">retrieve</a>(id) -> PaperItem</code>
332
+ - <code title="get /api/paper_items">client.paperItems.<a href="./resources/paper-items.ts">list</a>({ ...params }) -> PaperItemsPage</code>
333
+
334
+ # Webhooks
335
+
336
+ Custom Methods:
337
+
338
+ - `getSignature`
339
+ - `validateSignature`
340
+
341
+ # VirtualAccounts
342
+
343
+ Models:
344
+
345
+ - <code><a href="./resources/virtual-accounts.ts">VirtualAccount</a></code>
346
+
347
+ Methods:
348
+
349
+ - <code title="post /api/virtual_accounts">client.virtualAccounts.<a href="./resources/virtual-accounts.ts">create</a>({ ...params }) -> VirtualAccount</code>
350
+ - <code title="get /api/virtual_accounts/{id}">client.virtualAccounts.<a href="./resources/virtual-accounts.ts">retrieve</a>(id) -> Promise<void></code>
351
+ - <code title="patch /api/virtual_accounts/{id}">client.virtualAccounts.<a href="./resources/virtual-accounts.ts">update</a>(id, { ...params }) -> VirtualAccount</code>
352
+ - <code title="get /api/virtual_accounts">client.virtualAccounts.<a href="./resources/virtual-accounts.ts">list</a>({ ...params }) -> VirtualAccountsPage</code>
353
+ - <code title="delete /api/virtual_accounts/{id}">client.virtualAccounts.<a href="./resources/virtual-accounts.ts">del</a>(id) -> VirtualAccount</code>
package/core.ts CHANGED
@@ -1,37 +1,13 @@
1
1
  import qs from 'qs';
2
2
 
3
3
  import type { Agent } from 'http';
4
- import type NodeFetch from 'node-fetch';
5
4
  import type { RequestInfo, RequestInit, Response } from 'node-fetch';
6
- import type KeepAliveAgent from 'agentkeepalive';
7
- import { AbortController as AbortControllerPolyfill } from 'abort-controller';
8
5
  import { FormData, File, Blob } from 'formdata-node';
9
6
  import { FormDataEncoder } from 'form-data-encoder';
10
7
  import { Readable } from 'stream';
11
8
 
12
9
  import { VERSION } from './version';
13
-
14
- const isNode = typeof process !== 'undefined' && typeof Deno === 'undefined';
15
- let nodeFetch: typeof NodeFetch | undefined = undefined;
16
- let getDefaultAgent = (_url: string): Agent | undefined => undefined;
17
- if (isNode) {
18
- /* eslint-disable @typescript-eslint/no-var-requires */
19
- nodeFetch = require('node-fetch').default;
20
- const HttpAgent: typeof KeepAliveAgent = require('agentkeepalive');
21
- const HttpsAgent = HttpAgent.HttpsAgent;
22
- /* eslint-enable @typescript-eslint/no-var-requires */
23
-
24
- const defaultHttpAgent = new HttpAgent({ keepAlive: true });
25
- const defaultHttpsAgent = new HttpsAgent({ keepAlive: true });
26
- getDefaultAgent = (url: string) => (url.startsWith('https') ? defaultHttpsAgent : defaultHttpAgent);
27
- }
28
-
29
- AbortController ??= AbortControllerPolyfill;
30
-
31
- const DEFAULT_MAX_RETRIES = 2;
32
- const DEFAULT_TIMEOUT = 60 * 1000; // 60s
33
-
34
- type Fetch = (url: RequestInfo, init?: RequestInit) => Promise<Response>;
10
+ import { Fetch, getDefaultAgent, getFetch } from './fetch-polyfill';
35
11
 
36
12
  export abstract class APIClient {
37
13
  baseURL: string;
@@ -44,8 +20,8 @@ export abstract class APIClient {
44
20
 
45
21
  constructor({
46
22
  baseURL,
47
- maxRetries = DEFAULT_MAX_RETRIES,
48
- timeout = DEFAULT_TIMEOUT,
23
+ maxRetries = 2,
24
+ timeout = 60 * 1000, // 60s
49
25
  httpAgent,
50
26
  }: {
51
27
  baseURL: string;
@@ -58,18 +34,7 @@ export abstract class APIClient {
58
34
  this.timeout = validatePositiveInteger('timeout', timeout);
59
35
  this.httpAgent = httpAgent;
60
36
 
61
- if (isNode) {
62
- this.fetch = nodeFetch!;
63
- } else {
64
- // For other environments, use a global fetch function expected to already be present
65
- if (typeof fetch === 'undefined' || typeof fetch !== 'function') {
66
- throw new Error(
67
- `Unexpected; running in a non-Node environment without a global "fetch" function defined.`,
68
- );
69
- }
70
- // For now, we just pretend that Fetch is the same type as NodeFetch.
71
- this.fetch = fetch as unknown as Fetch;
72
- }
37
+ this.fetch = getFetch();
73
38
  }
74
39
 
75
40
  protected authHeaders(): Headers {
@@ -827,11 +792,24 @@ export const ensurePresent = <T>(value: T | null | undefined): T => {
827
792
 
828
793
  export const coerceInteger = (value: unknown): number => {
829
794
  if (typeof value === 'number') return Math.round(value);
830
- if (typeof value === 'string') return parseInt(value);
795
+ if (typeof value === 'string') return parseInt(value, 10);
831
796
 
832
797
  throw new Error(`Could not coerce ${value} (type: ${typeof value}) into a number`);
833
798
  };
834
799
 
800
+ export const coerceFloat = (value: unknown): number => {
801
+ if (typeof value === 'number') return value;
802
+ if (typeof value === 'string') return parseFloat(value);
803
+
804
+ throw new Error(`Could not coerce ${value} (type: ${typeof value}) into a number`);
805
+ };
806
+
807
+ export const coerceBoolean = (value: unknown): boolean => {
808
+ if (typeof value === 'boolean') return value;
809
+ if (typeof value === 'string') return value === 'true';
810
+ return Boolean(value);
811
+ };
812
+
835
813
  // https://stackoverflow.com/a/34491287
836
814
  export function isEmptyObj(obj: Object | null | undefined): boolean {
837
815
  if (!obj) return true;
@@ -1,12 +1,11 @@
1
1
  /// <reference types="node" />
2
- /// <reference types="web" />
3
2
  /// <reference types="node" />
4
3
  /// <reference types="node" />
5
4
  import qs from 'qs';
6
5
  import type { Agent } from 'http';
7
6
  import type { RequestInfo, RequestInit, Response } from 'node-fetch';
8
7
  import { Readable } from 'stream';
9
- type Fetch = (url: RequestInfo, init?: RequestInit) => Promise<Response>;
8
+ import { Fetch } from './fetch-polyfill';
10
9
  export declare abstract class APIClient {
11
10
  baseURL: string;
12
11
  maxRetries: number;
@@ -17,7 +16,7 @@ export declare abstract class APIClient {
17
16
  constructor({
18
17
  baseURL,
19
18
  maxRetries,
20
- timeout,
19
+ timeout, // 60s
21
20
  httpAgent,
22
21
  }: {
23
22
  baseURL: string;
@@ -239,6 +238,8 @@ export declare const multipartFormRequestOptions: <T extends {} = Record<string,
239
238
  ) => RequestOptions<Readable | T>;
240
239
  export declare const ensurePresent: <T>(value: T | null | undefined) => T;
241
240
  export declare const coerceInteger: (value: unknown) => number;
241
+ export declare const coerceFloat: (value: unknown) => number;
242
+ export declare const coerceBoolean: (value: unknown) => boolean;
242
243
  export declare function isEmptyObj(obj: Object | null | undefined): boolean;
243
244
  export declare function hasOwn(obj: Object, key: string): boolean;
244
245
  export interface HeadersProtocol {
package/dist/cjs/core.js CHANGED
@@ -161,6 +161,8 @@ exports.getHeader =
161
161
  exports.isHeadersProtocol =
162
162
  exports.hasOwn =
163
163
  exports.isEmptyObj =
164
+ exports.coerceBoolean =
165
+ exports.coerceFloat =
164
166
  exports.coerceInteger =
165
167
  exports.ensurePresent =
166
168
  exports.multipartFormRequestOptions =
@@ -184,47 +186,23 @@ exports.getHeader =
184
186
  exports.APIClient =
185
187
  void 0;
186
188
  const qs_1 = __importDefault(require('qs'));
187
- const abort_controller_1 = require('abort-controller');
188
189
  const formdata_node_1 = require('formdata-node');
189
190
  const form_data_encoder_1 = require('form-data-encoder');
190
191
  const stream_1 = require('stream');
191
192
  const version_1 = require('./version');
192
- const isNode = typeof process !== 'undefined' && typeof Deno === 'undefined';
193
- let nodeFetch = undefined;
194
- let getDefaultAgent = (_url) => undefined;
195
- if (isNode) {
196
- /* eslint-disable @typescript-eslint/no-var-requires */
197
- nodeFetch = require('node-fetch').default;
198
- const HttpAgent = require('agentkeepalive');
199
- const HttpsAgent = HttpAgent.HttpsAgent;
200
- /* eslint-enable @typescript-eslint/no-var-requires */
201
- const defaultHttpAgent = new HttpAgent({ keepAlive: true });
202
- const defaultHttpsAgent = new HttpsAgent({ keepAlive: true });
203
- getDefaultAgent = (url) => (url.startsWith('https') ? defaultHttpsAgent : defaultHttpAgent);
204
- }
205
- AbortController !== null && AbortController !== void 0 ?
206
- AbortController
207
- : (AbortController = abort_controller_1.AbortController);
208
- const DEFAULT_MAX_RETRIES = 2;
209
- const DEFAULT_TIMEOUT = 60 * 1000; // 60s
193
+ const fetch_polyfill_1 = require('./fetch-polyfill');
210
194
  class APIClient {
211
- constructor({ baseURL, maxRetries = DEFAULT_MAX_RETRIES, timeout = DEFAULT_TIMEOUT, httpAgent }) {
195
+ constructor({
196
+ baseURL,
197
+ maxRetries = 2,
198
+ timeout = 60 * 1000, // 60s
199
+ httpAgent,
200
+ }) {
212
201
  this.baseURL = baseURL;
213
202
  this.maxRetries = validatePositiveInteger('maxRetries', maxRetries);
214
203
  this.timeout = validatePositiveInteger('timeout', timeout);
215
204
  this.httpAgent = httpAgent;
216
- if (isNode) {
217
- this.fetch = nodeFetch;
218
- } else {
219
- // For other environments, use a global fetch function expected to already be present
220
- if (typeof fetch === 'undefined' || typeof fetch !== 'function') {
221
- throw new Error(
222
- `Unexpected; running in a non-Node environment without a global "fetch" function defined.`,
223
- );
224
- }
225
- // For now, we just pretend that Fetch is the same type as NodeFetch.
226
- this.fetch = fetch;
227
- }
205
+ this.fetch = (0, fetch_polyfill_1.getFetch)();
228
206
  }
229
207
  authHeaders() {
230
208
  return {};
@@ -297,7 +275,7 @@ class APIClient {
297
275
  _b !== void 0
298
276
  ) ?
299
277
  _b
300
- : getDefaultAgent(url);
278
+ : (0, fetch_polyfill_1.getDefaultAgent)(url);
301
279
  const timeout = (_c = options.timeout) !== null && _c !== void 0 ? _c : this.timeout;
302
280
  validatePositiveInteger('timeout', timeout);
303
281
  if (this.idempotencyHeader && method !== 'get') {
@@ -887,10 +865,22 @@ const ensurePresent = (value) => {
887
865
  exports.ensurePresent = ensurePresent;
888
866
  const coerceInteger = (value) => {
889
867
  if (typeof value === 'number') return Math.round(value);
890
- if (typeof value === 'string') return parseInt(value);
868
+ if (typeof value === 'string') return parseInt(value, 10);
891
869
  throw new Error(`Could not coerce ${value} (type: ${typeof value}) into a number`);
892
870
  };
893
871
  exports.coerceInteger = coerceInteger;
872
+ const coerceFloat = (value) => {
873
+ if (typeof value === 'number') return value;
874
+ if (typeof value === 'string') return parseFloat(value);
875
+ throw new Error(`Could not coerce ${value} (type: ${typeof value}) into a number`);
876
+ };
877
+ exports.coerceFloat = coerceFloat;
878
+ const coerceBoolean = (value) => {
879
+ if (typeof value === 'boolean') return value;
880
+ if (typeof value === 'string') return value === 'true';
881
+ return Boolean(value);
882
+ };
883
+ exports.coerceBoolean = coerceBoolean;
894
884
  // https://stackoverflow.com/a/34491287
895
885
  function isEmptyObj(obj) {
896
886
  if (!obj) return true;