@mft/moneyhub-api-client 4.18.0 → 5.0.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 (342) hide show
  1. package/dist/src/exchange-code-for-token.d.ts +9 -0
  2. package/dist/src/exchange-code-for-token.d.ts.map +1 -0
  3. package/dist/src/exchange-code-for-token.js +91 -0
  4. package/dist/src/exchange-code-for-token.js.map +1 -0
  5. package/dist/src/get-auth-urls.d.ts +130 -0
  6. package/dist/src/get-auth-urls.d.ts.map +1 -0
  7. package/dist/src/get-auth-urls.js +397 -0
  8. package/dist/src/get-auth-urls.js.map +1 -0
  9. package/dist/src/index.d.ts +25 -0
  10. package/dist/src/index.d.ts.map +1 -0
  11. package/dist/src/index.js +70 -0
  12. package/dist/src/index.js.map +1 -0
  13. package/dist/src/request.d.ts +8 -0
  14. package/dist/src/request.d.ts.map +1 -0
  15. package/dist/src/request.js +52 -0
  16. package/dist/src/request.js.map +1 -0
  17. package/dist/src/requests/accounts.d.ts +5 -0
  18. package/dist/src/requests/accounts.d.ts.map +1 -0
  19. package/dist/src/requests/accounts.js +99 -0
  20. package/dist/src/requests/accounts.js.map +1 -0
  21. package/dist/src/requests/auth-requests.d.ts +5 -0
  22. package/dist/src/requests/auth-requests.d.ts.map +1 -0
  23. package/dist/src/requests/auth-requests.js +52 -0
  24. package/dist/src/requests/auth-requests.js.map +1 -0
  25. package/dist/src/requests/beneficiaries.d.ts +5 -0
  26. package/dist/src/requests/beneficiaries.d.ts.map +1 -0
  27. package/dist/src/requests/beneficiaries.js +27 -0
  28. package/dist/src/requests/beneficiaries.js.map +1 -0
  29. package/dist/src/requests/categories.d.ts +5 -0
  30. package/dist/src/requests/categories.d.ts.map +1 -0
  31. package/dist/src/requests/categories.js +46 -0
  32. package/dist/src/requests/categories.js.map +1 -0
  33. package/dist/src/requests/index.d.ts +5 -0
  34. package/dist/src/requests/index.d.ts.map +1 -0
  35. package/dist/src/requests/index.js +52 -0
  36. package/dist/src/requests/index.js.map +1 -0
  37. package/dist/src/requests/payees.d.ts +5 -0
  38. package/dist/src/requests/payees.d.ts.map +1 -0
  39. package/dist/src/requests/payees.js +26 -0
  40. package/dist/src/requests/payees.js.map +1 -0
  41. package/dist/src/requests/payments.d.ts +5 -0
  42. package/dist/src/requests/payments.d.ts.map +1 -0
  43. package/dist/src/requests/payments.js +30 -0
  44. package/dist/src/requests/payments.js.map +1 -0
  45. package/dist/src/requests/projects.d.ts +5 -0
  46. package/dist/src/requests/projects.d.ts.map +1 -0
  47. package/dist/src/requests/projects.js +45 -0
  48. package/dist/src/requests/projects.js.map +1 -0
  49. package/dist/src/requests/recurring-payments.d.ts +5 -0
  50. package/dist/src/requests/recurring-payments.d.ts.map +1 -0
  51. package/dist/src/requests/recurring-payments.js +32 -0
  52. package/dist/src/requests/recurring-payments.js.map +1 -0
  53. package/dist/src/requests/regular-transactions.d.ts +5 -0
  54. package/dist/src/requests/regular-transactions.d.ts.map +1 -0
  55. package/dist/src/requests/regular-transactions.js +15 -0
  56. package/dist/src/requests/regular-transactions.js.map +1 -0
  57. package/dist/src/requests/rental-records.d.ts +5 -0
  58. package/dist/src/requests/rental-records.d.ts.map +1 -0
  59. package/dist/src/requests/rental-records.js +33 -0
  60. package/dist/src/requests/rental-records.js.map +1 -0
  61. package/dist/src/requests/savings-goals.d.ts +5 -0
  62. package/dist/src/requests/savings-goals.d.ts.map +1 -0
  63. package/dist/src/requests/savings-goals.js +46 -0
  64. package/dist/src/requests/savings-goals.js.map +1 -0
  65. package/dist/src/requests/spending-analysis.d.ts +5 -0
  66. package/dist/src/requests/spending-analysis.d.ts.map +1 -0
  67. package/dist/src/requests/spending-analysis.js +18 -0
  68. package/dist/src/requests/spending-analysis.js.map +1 -0
  69. package/dist/src/requests/spending-goals.d.ts +5 -0
  70. package/dist/src/requests/spending-goals.d.ts.map +1 -0
  71. package/dist/src/requests/spending-goals.js +46 -0
  72. package/dist/src/requests/spending-goals.js.map +1 -0
  73. package/dist/src/requests/standing-orders.d.ts +5 -0
  74. package/dist/src/requests/standing-orders.d.ts.map +1 -0
  75. package/dist/src/requests/standing-orders.js +20 -0
  76. package/dist/src/requests/standing-orders.js.map +1 -0
  77. package/dist/src/requests/sync.d.ts +5 -0
  78. package/dist/src/requests/sync.d.ts.map +1 -0
  79. package/dist/src/requests/sync.js +41 -0
  80. package/dist/src/requests/sync.js.map +1 -0
  81. package/dist/src/requests/tax.d.ts +5 -0
  82. package/dist/src/requests/tax.d.ts.map +1 -0
  83. package/dist/src/requests/tax.js +39 -0
  84. package/dist/src/requests/tax.js.map +1 -0
  85. package/dist/src/requests/transaction-files.d.ts +5 -0
  86. package/dist/src/requests/transaction-files.d.ts.map +1 -0
  87. package/dist/src/requests/transaction-files.js +44 -0
  88. package/dist/src/requests/transaction-files.js.map +1 -0
  89. package/dist/src/requests/transaction-splits.d.ts +5 -0
  90. package/dist/src/requests/transaction-splits.d.ts.map +1 -0
  91. package/dist/src/requests/transaction-splits.js +38 -0
  92. package/dist/src/requests/transaction-splits.js.map +1 -0
  93. package/dist/src/requests/transactions.d.ts +5 -0
  94. package/dist/src/requests/transactions.d.ts.map +1 -0
  95. package/dist/src/requests/transactions.js +54 -0
  96. package/dist/src/requests/transactions.js.map +1 -0
  97. package/dist/src/requests/unauthenticated.d.ts +5 -0
  98. package/dist/src/requests/unauthenticated.d.ts.map +1 -0
  99. package/dist/src/requests/unauthenticated.js +16 -0
  100. package/dist/src/requests/unauthenticated.js.map +1 -0
  101. package/dist/src/requests/users-and-connections.d.ts +5 -0
  102. package/dist/src/requests/users-and-connections.d.ts.map +1 -0
  103. package/dist/src/requests/users-and-connections.js +72 -0
  104. package/dist/src/requests/users-and-connections.js.map +1 -0
  105. package/dist/src/tokens.d.ts +24 -0
  106. package/dist/src/tokens.d.ts.map +1 -0
  107. package/dist/src/tokens.js +64 -0
  108. package/dist/src/tokens.js.map +1 -0
  109. package/dist/types/config.d.ts +23 -0
  110. package/dist/types/config.d.ts.map +1 -0
  111. package/dist/types/config.js +3 -0
  112. package/dist/types/config.js.map +1 -0
  113. package/dist/types/get-auth-urls.d.ts +118 -0
  114. package/dist/types/get-auth-urls.d.ts.map +1 -0
  115. package/dist/types/get-auth-urls.js +3 -0
  116. package/dist/types/get-auth-urls.js.map +1 -0
  117. package/dist/types/index.d.ts +30 -0
  118. package/dist/types/index.d.ts.map +1 -0
  119. package/dist/types/index.js +3 -0
  120. package/dist/types/index.js.map +1 -0
  121. package/dist/types/request.d.ts +39 -0
  122. package/dist/types/request.d.ts.map +1 -0
  123. package/dist/types/request.js +3 -0
  124. package/dist/types/request.js.map +1 -0
  125. package/dist/types/requests/accounts.d.ts +68 -0
  126. package/dist/types/requests/accounts.d.ts.map +1 -0
  127. package/dist/types/requests/accounts.js +3 -0
  128. package/dist/types/requests/accounts.js.map +1 -0
  129. package/dist/types/requests/auth-requests.d.ts +42 -0
  130. package/dist/types/requests/auth-requests.d.ts.map +1 -0
  131. package/dist/types/requests/auth-requests.js +9 -0
  132. package/dist/types/requests/auth-requests.js.map +1 -0
  133. package/dist/types/requests/beneficiaries.d.ts +21 -0
  134. package/dist/types/requests/beneficiaries.d.ts.map +1 -0
  135. package/dist/types/requests/beneficiaries.js +3 -0
  136. package/dist/types/requests/beneficiaries.js.map +1 -0
  137. package/dist/types/requests/categories.d.ts +28 -0
  138. package/dist/types/requests/categories.d.ts.map +1 -0
  139. package/dist/types/requests/categories.js +3 -0
  140. package/dist/types/requests/categories.js.map +1 -0
  141. package/dist/types/requests/payees.d.ts +16 -0
  142. package/dist/types/requests/payees.d.ts.map +1 -0
  143. package/dist/types/requests/payees.js +3 -0
  144. package/dist/types/requests/payees.js.map +1 -0
  145. package/dist/types/requests/payments.d.ts +12 -0
  146. package/dist/types/requests/payments.d.ts.map +1 -0
  147. package/dist/types/requests/payments.js +3 -0
  148. package/dist/types/requests/payments.js.map +1 -0
  149. package/dist/types/requests/projects.d.ts +26 -0
  150. package/dist/types/requests/projects.d.ts.map +1 -0
  151. package/dist/types/requests/projects.js +3 -0
  152. package/dist/types/requests/projects.js.map +1 -0
  153. package/dist/types/requests/recurring-payments.d.ts +16 -0
  154. package/dist/types/requests/recurring-payments.d.ts.map +1 -0
  155. package/dist/types/requests/recurring-payments.js +3 -0
  156. package/dist/types/requests/recurring-payments.js.map +1 -0
  157. package/dist/types/requests/regular-transactions.d.ts +9 -0
  158. package/dist/types/requests/regular-transactions.d.ts.map +1 -0
  159. package/dist/types/requests/regular-transactions.js +3 -0
  160. package/dist/types/requests/regular-transactions.js.map +1 -0
  161. package/dist/types/requests/rental-records.d.ts +16 -0
  162. package/dist/types/requests/rental-records.d.ts.map +1 -0
  163. package/dist/types/requests/rental-records.js +3 -0
  164. package/dist/types/requests/rental-records.js.map +1 -0
  165. package/dist/types/requests/savings-goals.d.ts +40 -0
  166. package/dist/types/requests/savings-goals.d.ts.map +1 -0
  167. package/dist/types/requests/savings-goals.js +3 -0
  168. package/dist/types/requests/savings-goals.js.map +1 -0
  169. package/dist/types/requests/spending-analysis.d.ts +18 -0
  170. package/dist/types/requests/spending-analysis.d.ts.map +1 -0
  171. package/dist/types/requests/spending-analysis.js +3 -0
  172. package/dist/types/requests/spending-analysis.js.map +1 -0
  173. package/dist/types/requests/spending-goals.d.ts +35 -0
  174. package/dist/types/requests/spending-goals.d.ts.map +1 -0
  175. package/dist/types/requests/spending-goals.js +8 -0
  176. package/dist/types/requests/spending-goals.js.map +1 -0
  177. package/dist/types/requests/standing-orders.d.ts +9 -0
  178. package/dist/types/requests/standing-orders.d.ts.map +1 -0
  179. package/dist/types/requests/standing-orders.js +3 -0
  180. package/dist/types/requests/standing-orders.js.map +1 -0
  181. package/dist/types/requests/sync.d.ts +18 -0
  182. package/dist/types/requests/sync.d.ts.map +1 -0
  183. package/dist/types/requests/sync.js +8 -0
  184. package/dist/types/requests/sync.js.map +1 -0
  185. package/dist/types/requests/tax.d.ts +9 -0
  186. package/dist/types/requests/tax.d.ts.map +1 -0
  187. package/dist/types/requests/tax.js +3 -0
  188. package/dist/types/requests/tax.js.map +1 -0
  189. package/dist/types/requests/transaction-files.d.ts +25 -0
  190. package/dist/types/requests/transaction-files.d.ts.map +1 -0
  191. package/dist/types/requests/transaction-files.js +3 -0
  192. package/dist/types/requests/transaction-files.js.map +1 -0
  193. package/dist/types/requests/transaction-splits.d.ts +24 -0
  194. package/dist/types/requests/transaction-splits.d.ts.map +1 -0
  195. package/dist/types/requests/transaction-splits.js +3 -0
  196. package/dist/types/requests/transaction-splits.js.map +1 -0
  197. package/dist/types/requests/transactions.d.ts +35 -0
  198. package/dist/types/requests/transactions.d.ts.map +1 -0
  199. package/dist/types/requests/transactions.js +3 -0
  200. package/dist/types/requests/transactions.js.map +1 -0
  201. package/dist/types/requests/unauthenticated.d.ts +12 -0
  202. package/dist/types/requests/unauthenticated.d.ts.map +1 -0
  203. package/dist/types/requests/unauthenticated.js +3 -0
  204. package/dist/types/requests/unauthenticated.js.map +1 -0
  205. package/dist/types/requests/users-and-connections.d.ts +39 -0
  206. package/dist/types/requests/users-and-connections.d.ts.map +1 -0
  207. package/dist/types/requests/users-and-connections.js +3 -0
  208. package/dist/types/requests/users-and-connections.js.map +1 -0
  209. package/dist/types/schema/account.d.ts +102 -0
  210. package/dist/types/schema/account.d.ts.map +1 -0
  211. package/dist/types/schema/account.js +35 -0
  212. package/dist/types/schema/account.js.map +1 -0
  213. package/dist/types/schema/auth-request.d.ts +31 -0
  214. package/dist/types/schema/auth-request.d.ts.map +1 -0
  215. package/dist/types/schema/auth-request.js +10 -0
  216. package/dist/types/schema/auth-request.js.map +1 -0
  217. package/dist/types/schema/balance.d.ts +11 -0
  218. package/dist/types/schema/balance.d.ts.map +1 -0
  219. package/dist/types/schema/balance.js +3 -0
  220. package/dist/types/schema/balance.js.map +1 -0
  221. package/dist/types/schema/beneficiary.d.ts +19 -0
  222. package/dist/types/schema/beneficiary.d.ts.map +1 -0
  223. package/dist/types/schema/beneficiary.js +3 -0
  224. package/dist/types/schema/beneficiary.js.map +1 -0
  225. package/dist/types/schema/category.d.ts +15 -0
  226. package/dist/types/schema/category.d.ts.map +1 -0
  227. package/dist/types/schema/category.js +3 -0
  228. package/dist/types/schema/category.js.map +1 -0
  229. package/dist/types/schema/connection.d.ts +39 -0
  230. package/dist/types/schema/connection.d.ts.map +1 -0
  231. package/dist/types/schema/connection.js +3 -0
  232. package/dist/types/schema/connection.js.map +1 -0
  233. package/dist/types/schema/counterparty.d.ts +33 -0
  234. package/dist/types/schema/counterparty.d.ts.map +1 -0
  235. package/dist/types/schema/counterparty.js +8 -0
  236. package/dist/types/schema/counterparty.js.map +1 -0
  237. package/dist/types/schema/holding.d.ts +55 -0
  238. package/dist/types/schema/holding.d.ts.map +1 -0
  239. package/dist/types/schema/holding.js +9 -0
  240. package/dist/types/schema/holding.js.map +1 -0
  241. package/dist/types/schema/payee.d.ts +13 -0
  242. package/dist/types/schema/payee.d.ts.map +1 -0
  243. package/dist/types/schema/payee.js +3 -0
  244. package/dist/types/schema/payee.js.map +1 -0
  245. package/dist/types/schema/payment.d.ts +156 -0
  246. package/dist/types/schema/payment.d.ts.map +1 -0
  247. package/dist/types/schema/payment.js +68 -0
  248. package/dist/types/schema/payment.js.map +1 -0
  249. package/dist/types/schema/project.d.ts +25 -0
  250. package/dist/types/schema/project.d.ts.map +1 -0
  251. package/dist/types/schema/project.js +9 -0
  252. package/dist/types/schema/project.js.map +1 -0
  253. package/dist/types/schema/regular-transaction.d.ts +40 -0
  254. package/dist/types/schema/regular-transaction.d.ts.map +1 -0
  255. package/dist/types/schema/regular-transaction.js +16 -0
  256. package/dist/types/schema/regular-transaction.js.map +1 -0
  257. package/dist/types/schema/rental-record.d.ts +44 -0
  258. package/dist/types/schema/rental-record.d.ts.map +1 -0
  259. package/dist/types/schema/rental-record.js +9 -0
  260. package/dist/types/schema/rental-record.js.map +1 -0
  261. package/dist/types/schema/savings-goal.d.ts +15 -0
  262. package/dist/types/schema/savings-goal.d.ts.map +1 -0
  263. package/dist/types/schema/savings-goal.js +3 -0
  264. package/dist/types/schema/savings-goal.js.map +1 -0
  265. package/dist/types/schema/spending-analysis.d.ts +14 -0
  266. package/dist/types/schema/spending-analysis.d.ts.map +1 -0
  267. package/dist/types/schema/spending-analysis.js +3 -0
  268. package/dist/types/schema/spending-analysis.js.map +1 -0
  269. package/dist/types/schema/spending-goal.d.ts +20 -0
  270. package/dist/types/schema/spending-goal.d.ts.map +1 -0
  271. package/dist/types/schema/spending-goal.js +8 -0
  272. package/dist/types/schema/spending-goal.js.map +1 -0
  273. package/dist/types/schema/standing-order.d.ts +80 -0
  274. package/dist/types/schema/standing-order.d.ts.map +1 -0
  275. package/dist/types/schema/standing-order.js +24 -0
  276. package/dist/types/schema/standing-order.js.map +1 -0
  277. package/dist/types/schema/sync.d.ts +16 -0
  278. package/dist/types/schema/sync.d.ts.map +1 -0
  279. package/dist/types/schema/sync.js +3 -0
  280. package/dist/types/schema/sync.js.map +1 -0
  281. package/dist/types/schema/tax.d.ts +35 -0
  282. package/dist/types/schema/tax.d.ts.map +1 -0
  283. package/dist/types/schema/tax.js +3 -0
  284. package/dist/types/schema/tax.js.map +1 -0
  285. package/dist/types/schema/transaction.d.ts +127 -0
  286. package/dist/types/schema/transaction.d.ts.map +1 -0
  287. package/dist/types/schema/transaction.js +3 -0
  288. package/dist/types/schema/transaction.js.map +1 -0
  289. package/dist/types/schema/user.d.ts +15 -0
  290. package/dist/types/schema/user.d.ts.map +1 -0
  291. package/dist/types/schema/user.js +3 -0
  292. package/dist/types/schema/user.js.map +1 -0
  293. package/dist/types/tokens.d.ts +40 -0
  294. package/dist/types/tokens.d.ts.map +1 -0
  295. package/dist/types/tokens.js +3 -0
  296. package/dist/types/tokens.js.map +1 -0
  297. package/package.json +20 -6
  298. package/readme.md +464 -253
  299. package/.eslintrc +0 -9
  300. package/.github/workflows/main.yml +0 -24
  301. package/resources/sample.jpg +0 -0
  302. package/resources/scripts/pre-commit.sh +0 -43
  303. package/src/__tests__/accounts.js +0 -76
  304. package/src/__tests__/auth-requests.js +0 -33
  305. package/src/__tests__/auth-urls.js +0 -104
  306. package/src/__tests__/categories.js +0 -92
  307. package/src/__tests__/index.js +0 -152
  308. package/src/__tests__/payees.js +0 -39
  309. package/src/__tests__/payments.js +0 -34
  310. package/src/__tests__/projects.js +0 -56
  311. package/src/__tests__/regular-transactions.js +0 -20
  312. package/src/__tests__/rental-records.js +0 -90
  313. package/src/__tests__/sync.js +0 -29
  314. package/src/__tests__/tax.js +0 -29
  315. package/src/__tests__/token.js +0 -25
  316. package/src/__tests__/transaction-files.js +0 -55
  317. package/src/__tests__/transaction-splits.js +0 -95
  318. package/src/__tests__/transactions.js +0 -110
  319. package/src/__tests__/users.js +0 -39
  320. package/src/exchange-code-for-token.js +0 -115
  321. package/src/get-auth-urls.js +0 -522
  322. package/src/index.js +0 -82
  323. package/src/request.js +0 -58
  324. package/src/requests/accounts.js +0 -146
  325. package/src/requests/auth-requests.js +0 -61
  326. package/src/requests/beneficiaries.js +0 -31
  327. package/src/requests/categories.js +0 -55
  328. package/src/requests/payees.js +0 -29
  329. package/src/requests/payments.js +0 -35
  330. package/src/requests/projects.js +0 -51
  331. package/src/requests/recurring-payments.js +0 -37
  332. package/src/requests/regular-transactions.js +0 -17
  333. package/src/requests/rental-records.js +0 -41
  334. package/src/requests/standing-orders.js +0 -21
  335. package/src/requests/sync.js +0 -23
  336. package/src/requests/tax.js +0 -16
  337. package/src/requests/transaction-files.js +0 -54
  338. package/src/requests/transaction-splits.js +0 -57
  339. package/src/requests/transactions.js +0 -58
  340. package/src/requests/unauthenticated.js +0 -17
  341. package/src/requests/users-and-connections.js +0 -79
  342. package/src/tokens.js +0 -72
@@ -1,522 +0,0 @@
1
- const got = require("got")
2
- const R = require("ramda")
3
- const filterUndefined = R.reject(R.isNil)
4
-
5
- module.exports = ({client, config}) => {
6
- const {
7
- identityServiceUrl,
8
- client: {
9
- client_id,
10
- request_object_signing_alg,
11
- redirect_uri,
12
- response_type,
13
- },
14
- } = config
15
-
16
- const setPermissionsToClaims = permissions => claims => {
17
- if (permissions && R.is(Array, permissions)) {
18
- return R.mergeDeepRight(claims, {
19
- id_token: {
20
- "mh:consent": {
21
- essential: true,
22
- value: {
23
- permissions
24
- }
25
- }
26
- }
27
- })
28
- }
29
-
30
- return claims
31
- }
32
-
33
- const getAuthorizeUrl = ({
34
- state,
35
- scope,
36
- nonce,
37
- claims = {},
38
- permissions,
39
- enableAsync,
40
- expirationDateTime,
41
- transactionFromDateTime,
42
- }) => {
43
- const defaultClaims = {
44
- id_token: {
45
- sub: {
46
- essential: true,
47
- },
48
- "mh:con_id": {
49
- essential: true,
50
- },
51
- ...(expirationDateTime || transactionFromDateTime) && {
52
- "mh:consent": {
53
- "essential": true,
54
- "value": {
55
- ...expirationDateTime && {expirationDateTime},
56
- ...transactionFromDateTime && {transactionFromDateTime},
57
- }
58
- }
59
- },
60
- ...enableAsync && {
61
- "mh:sync": {
62
- "essential": true,
63
- "value": {"enableAsync": true}
64
- }
65
- }
66
- },
67
- }
68
-
69
- const _claims = R.compose(
70
- setPermissionsToClaims(permissions),
71
- R.mergeDeepRight(defaultClaims)
72
- )(claims)
73
-
74
- const authParams = filterUndefined({
75
- client_id,
76
- scope,
77
- state,
78
- nonce,
79
- redirect_uri,
80
- response_type,
81
- prompt: "consent",
82
- })
83
-
84
- return client
85
- .requestObject(
86
- {
87
- ...authParams,
88
- claims: _claims,
89
- max_age: 86400,
90
- },
91
- {
92
- sign: request_object_signing_alg,
93
- }
94
- )
95
- .then((request) => ({
96
- ...authParams,
97
- request,
98
- }))
99
- .then(client.authorizationUrl.bind(client))
100
- }
101
-
102
- const getAuthorizeUrlFromRequestUri = ({requestUri}) => {
103
- return `${client.issuer.authorization_endpoint}?request_uri=${requestUri}`
104
- }
105
-
106
- const requestObject = ({scope, state, claims, nonce}) => {
107
- const authParams = filterUndefined({
108
- client_id,
109
- scope,
110
- state,
111
- nonce,
112
- claims,
113
- exp: Math.round(Date.now() / 1000) + 300,
114
- redirect_uri,
115
- response_type,
116
- prompt: "consent",
117
- })
118
-
119
- return client.requestObject(authParams)
120
- }
121
-
122
- const getRequestUri = async (requestObject) => {
123
- const {body} = await got.post(identityServiceUrl + "/request", {
124
- body: requestObject,
125
- headers: {
126
- "Content-Type": "application/jws",
127
- },
128
- })
129
- return body
130
- }
131
-
132
- return {
133
- getAuthorizeUrl,
134
- getAuthorizeUrlFromRequestUri,
135
- requestObject,
136
- getRequestUri,
137
- getAuthorizeUrlForCreatedUser: async ({
138
- bankId,
139
- state,
140
- nonce,
141
- userId,
142
- claims = {},
143
- permissions,
144
- expirationDateTime,
145
- transactionFromDateTime,
146
- enableAsync,
147
- }) => {
148
- const scope = `id:${bankId} openid`
149
- const defaultClaims = {
150
- id_token: {
151
- sub: {
152
- essential: true,
153
- value: userId,
154
- },
155
- "mh:con_id": {
156
- essential: true,
157
- },
158
- },
159
- }
160
- const _claims = R.compose(
161
- setPermissionsToClaims(permissions),
162
- R.mergeDeepRight(defaultClaims)
163
- )(claims)
164
-
165
- const url = await getAuthorizeUrl({
166
- state,
167
- nonce,
168
- scope,
169
- claims: _claims,
170
- expirationDateTime,
171
- transactionFromDateTime,
172
- enableAsync,
173
- })
174
- return url
175
- },
176
-
177
- getReauthAuthorizeUrlForCreatedUser: async ({
178
- userId,
179
- connectionId,
180
- state,
181
- nonce,
182
- claims = {},
183
- expirationDateTime,
184
- transactionFromDateTime,
185
- enableAsync,
186
- }) => {
187
- const scope = "openid reauth"
188
- const defaultClaims = {
189
- id_token: {
190
- sub: {
191
- essential: true,
192
- value: userId,
193
- },
194
- "mh:con_id": {
195
- essential: true,
196
- value: connectionId,
197
- },
198
- },
199
- }
200
- const _claims = R.mergeDeepRight(defaultClaims, claims)
201
-
202
- const url = await getAuthorizeUrl({
203
- state,
204
- nonce,
205
- scope,
206
- claims: _claims,
207
- expirationDateTime,
208
- transactionFromDateTime,
209
- enableAsync,
210
- })
211
- return url
212
- },
213
-
214
- getRefreshAuthorizeUrlForCreatedUser: async ({
215
- userId,
216
- connectionId,
217
- state,
218
- nonce,
219
- claims = {},
220
- expirationDateTime,
221
- transactionFromDateTime,
222
- enableAsync
223
- }) => {
224
- const scope = "openid refresh"
225
- const defaultClaims = {
226
- id_token: {
227
- sub: {
228
- essential: true,
229
- value: userId,
230
- },
231
- "mh:con_id": {
232
- essential: true,
233
- value: connectionId,
234
- },
235
- },
236
- }
237
- const _claims = R.mergeDeepRight(defaultClaims, claims)
238
-
239
- const url = await getAuthorizeUrl({
240
- state,
241
- scope,
242
- nonce,
243
- claims: _claims,
244
- expirationDateTime,
245
- transactionFromDateTime,
246
- enableAsync
247
- })
248
- return url
249
- },
250
-
251
- getPaymentAuthorizeUrl: async ({
252
- bankId,
253
- payeeId,
254
- payeeType,
255
- amount,
256
- payeeRef,
257
- payerRef,
258
- payerId,
259
- payerType,
260
- state,
261
- nonce,
262
- context,
263
- readRefundAccount,
264
- userId,
265
- claims = {},
266
- }) => {
267
- if (!state) {
268
- console.error("State is required")
269
- throw new Error("Missing parameters")
270
- }
271
-
272
- if (!payeeId) {
273
- console.error("PayeeId is required")
274
- throw new Error("Missing parameters")
275
- }
276
-
277
- const scope = `payment openid id:${bankId}`
278
- const defaultClaims = {
279
- id_token: {
280
- "mh:con_id": {
281
- essential: true,
282
- },
283
- "mh:payment": {
284
- essential: true,
285
- value: {
286
- amount,
287
- payeeRef,
288
- payerRef,
289
- payeeId,
290
- payeeType,
291
- payerId,
292
- payerType,
293
- context,
294
- readRefundAccount,
295
- },
296
- },
297
- ...userId && {
298
- sub: {
299
- value: userId
300
- }
301
- }
302
- },
303
- }
304
-
305
- const _claims = R.mergeDeepRight(defaultClaims, claims)
306
-
307
- const request = await requestObject({
308
- scope,
309
- state,
310
- claims: _claims,
311
- nonce,
312
- })
313
-
314
- const requestUri = await getRequestUri(request)
315
- const url = getAuthorizeUrlFromRequestUri({
316
- requestUri,
317
- })
318
- return url
319
- },
320
-
321
- getReversePaymentAuthorizeUrl: async ({
322
- bankId,
323
- paymentId,
324
- state,
325
- nonce,
326
- amount,
327
- claims = {},
328
- }) => {
329
- if (!state) {
330
- console.error("State is required")
331
- throw new Error("Missing parameters")
332
- }
333
-
334
- if (!paymentId) {
335
- console.error("PayeeId is required")
336
- throw new Error("Missing parameters")
337
- }
338
-
339
- const scope = `reverse_payment openid id:${bankId}`
340
- const defaultClaims = {
341
- id_token: {
342
- "mh:con_id": {
343
- essential: true,
344
- },
345
- "mh:reverse_payment": {
346
- essential: true,
347
- value: {
348
- paymentId,
349
- amount,
350
- },
351
- },
352
- "mh:payment": {
353
- essential: true,
354
- },
355
- },
356
- }
357
-
358
- const _claims = R.mergeDeepRight(defaultClaims, claims)
359
-
360
- const request = await requestObject({
361
- scope,
362
- state,
363
- claims: _claims,
364
- nonce,
365
- })
366
-
367
- const requestUri = await getRequestUri(request)
368
- const url = getAuthorizeUrlFromRequestUri({
369
- requestUri,
370
- })
371
- return url
372
- },
373
-
374
- getRecurringPaymentAuthorizeUrl: async ({
375
- bankId,
376
- payeeId,
377
- payeeType,
378
- payerId,
379
- payerType,
380
- reference,
381
- validFromDate,
382
- validToDate,
383
- maximumIndividualAmount,
384
- currency,
385
- periodicLimits,
386
- type,
387
- context,
388
- state,
389
- nonce,
390
- userId,
391
- claims = {},
392
- }) => {
393
- if (!state) {
394
- console.error("State is required")
395
- throw new Error("Missing parameters")
396
- }
397
-
398
- const scope = `recurring_payment:create openid id:${bankId}`
399
- const defaultClaims = {
400
- id_token: {
401
- "mh:con_id": {
402
- essential: true,
403
- },
404
- "mh:recurring_payment": {
405
- essential: true,
406
- value: {
407
- payeeId,
408
- payeeType,
409
- payerId,
410
- payerType,
411
- reference,
412
- validFromDate,
413
- validToDate,
414
- maximumIndividualAmount,
415
- currency,
416
- periodicLimits,
417
- type,
418
- context,
419
- },
420
- },
421
- ...userId && {
422
- sub: {
423
- value: userId
424
- }
425
- }
426
- },
427
- }
428
-
429
- const _claims = R.mergeDeepRight(defaultClaims, claims)
430
-
431
- const request = await requestObject({
432
- scope,
433
- state,
434
- claims: _claims,
435
- nonce,
436
- })
437
-
438
- const requestUri = await getRequestUri(request)
439
- const url = getAuthorizeUrlFromRequestUri({
440
- requestUri,
441
- })
442
- return url
443
- },
444
-
445
- getStandingOrderAuthorizeUrl: async ({
446
- bankId,
447
- payeeId,
448
- payeeType,
449
- payerId,
450
- payerType,
451
- reference,
452
- frequency,
453
- numberOfPayments,
454
- firstPaymentAmount,
455
- recurringPaymentAmount,
456
- finalPaymentAmount,
457
- currency,
458
- firstPaymentDate,
459
- recurringPaymentDate,
460
- finalPaymentDate,
461
- state,
462
- nonce,
463
- context,
464
- claims = {},
465
- }) => {
466
- if (!state) {
467
- console.error("State is required")
468
- throw new Error("Missing parameters")
469
- }
470
-
471
- if (!payeeId) {
472
- console.error("PayeeId is required")
473
- throw new Error("Missing parameters")
474
- }
475
-
476
- const scope = `standing_orders:create openid id:${bankId}`
477
- const defaultClaims = {
478
- id_token: {
479
- "mh:con_id": {
480
- essential: true,
481
- },
482
- "mh:standing_order": {
483
- essential: true,
484
- value: {
485
- payeeId,
486
- payeeType,
487
- payerId,
488
- payerType,
489
- reference,
490
- frequency,
491
- numberOfPayments,
492
- firstPaymentAmount,
493
- recurringPaymentAmount,
494
- finalPaymentAmount,
495
- currency,
496
- firstPaymentDate,
497
- recurringPaymentDate,
498
- finalPaymentDate,
499
- context,
500
- },
501
- },
502
- },
503
- }
504
-
505
- const _claims = R.mergeDeepRight(defaultClaims, claims)
506
-
507
- const request = await requestObject({
508
- scope,
509
- state,
510
- claims: _claims,
511
- nonce,
512
- })
513
-
514
- const requestUri = await getRequestUri(request)
515
- const url = getAuthorizeUrlFromRequestUri({
516
- requestUri,
517
- })
518
- return url
519
- },
520
-
521
- }
522
- }
package/src/index.js DELETED
@@ -1,82 +0,0 @@
1
- const {Issuer, custom} = require("openid-client")
2
- const R = require("ramda")
3
- const {JWKS} = require("jose")
4
- const getAuthUrlsFactory = require("./get-auth-urls")
5
- const getTokensFactory = require("./tokens")
6
- const requestFactories = [
7
- require("./requests/accounts"),
8
- require("./requests/auth-requests"),
9
- require("./requests/beneficiaries"),
10
- require("./requests/payees"),
11
- require("./requests/payments"),
12
- require("./requests/projects"),
13
- require("./requests/sync"),
14
- require("./requests/tax"),
15
- require("./requests/transactions"),
16
- require("./requests/transaction-files"),
17
- require("./requests//transaction-splits"),
18
- require("./requests/unauthenticated"),
19
- require("./requests/users-and-connections"),
20
- require("./requests/categories"),
21
- require("./requests/standing-orders"),
22
- require("./requests/regular-transactions"),
23
- require("./requests/rental-records"),
24
- require("./requests/recurring-payments"),
25
- ]
26
- const DEFAULT_TIMEOUT = 60000
27
-
28
- module.exports = async (apiClientConfig) => {
29
- const config = R.evolve(
30
- {
31
- identityServiceUrl: (value) => value.replace("/oidc", ""),
32
- },
33
- apiClientConfig
34
- )
35
-
36
- const {
37
- identityServiceUrl,
38
- options = {},
39
- client: {
40
- client_id,
41
- client_secret,
42
- id_token_signed_response_alg,
43
- request_object_signing_alg,
44
- redirect_uri,
45
- keys,
46
- token_endpoint_auth_method,
47
- },
48
- } = config
49
-
50
- const {timeout = DEFAULT_TIMEOUT} = options
51
-
52
- custom.setHttpOptionsDefaults({
53
- timeout,
54
- })
55
-
56
- const moneyhubIssuer = await Issuer.discover(identityServiceUrl + "/oidc")
57
-
58
- const client = new moneyhubIssuer.Client(
59
- {
60
- client_id,
61
- client_secret,
62
- id_token_signed_response_alg,
63
- redirect_uri,
64
- token_endpoint_auth_method,
65
- request_object_signing_alg,
66
- },
67
- {keys}
68
- )
69
-
70
- client[custom.clock_tolerance] = 10
71
-
72
- const request = require("./request")({client, options: {timeout}})
73
-
74
- const moneyhub = {
75
- ...R.mergeAll(requestFactories.map((fn) => fn({request, config}))),
76
- ...getAuthUrlsFactory({client, config}),
77
- ...getTokensFactory({client, config}),
78
-
79
- keys: () => (keys && keys.length ? JWKS.asKeyStore({keys}).toJWKS() : null),
80
- }
81
- return moneyhub
82
- }
package/src/request.js DELETED
@@ -1,58 +0,0 @@
1
- const got = require("got")
2
- const R = require("ramda")
3
-
4
- const getResponseBody = err => {
5
- let body = {}
6
- try {
7
- const {code, message, details} = JSON.parse(R.pathOr("{}", ["response", "body"], err))
8
- body = {code, message, details: typeof details === "object" ? JSON.stringify(details) : details}
9
- // eslint-disable-next-line no-empty
10
- } catch (e) {
11
- body = {}
12
- }
13
-
14
- return body
15
- }
16
-
17
- const attachErrorDetails = err => {
18
- const {code, message, details} = getResponseBody(err)
19
- err.error = code
20
- err.error_description = message
21
- err.error_details = details
22
- throw err
23
- }
24
-
25
- module.exports = ({client, options: {timeout}}) => async (url, opts = {}) => {
26
- const gotOpts = {
27
- method: opts.method || "GET",
28
- headers: opts.headers || {},
29
- searchParams: opts.searchParams,
30
- timeout,
31
- }
32
-
33
- if (opts.cc) {
34
- const {access_token} = await client.grant({
35
- grant_type: "client_credentials",
36
- scope: opts.cc.scope,
37
- sub: opts.cc.sub,
38
- })
39
- gotOpts.headers.Authorization = `Bearer ${access_token}`
40
- }
41
-
42
- if (opts.body) {
43
- gotOpts.json = opts.body
44
- }
45
-
46
- if (opts.form) {
47
- gotOpts.body = opts.form
48
- }
49
-
50
- const req = got(url, gotOpts)
51
- if (opts.returnStatus) {
52
- return req.then(res => res.statusCode)
53
- .catch(attachErrorDetails)
54
- }
55
-
56
- return req.json()
57
- .catch(attachErrorDetails)
58
- }