@mft/moneyhub-api-client 4.20.0 → 5.0.0-2

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 (347) 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 +142 -0
  6. package/dist/src/get-auth-urls.d.ts.map +1 -0
  7. package/dist/src/get-auth-urls.js +438 -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 +71 -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 +53 -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 +18 -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 +22 -7
  298. package/readme.md +57 -4
  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 -126
  306. package/src/__tests__/categories.js +0 -92
  307. package/src/__tests__/index.js +0 -166
  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__/savings-goals.js +0 -68
  314. package/src/__tests__/spending-goals.js +0 -52
  315. package/src/__tests__/sync.js +0 -29
  316. package/src/__tests__/tax.js +0 -29
  317. package/src/__tests__/token.js +0 -25
  318. package/src/__tests__/transaction-files.js +0 -55
  319. package/src/__tests__/transaction-splits.js +0 -95
  320. package/src/__tests__/transactions.js +0 -110
  321. package/src/__tests__/users.js +0 -39
  322. package/src/exchange-code-for-token.js +0 -115
  323. package/src/get-auth-urls.js +0 -559
  324. package/src/index.js +0 -85
  325. package/src/request.js +0 -58
  326. package/src/requests/accounts.js +0 -146
  327. package/src/requests/auth-requests.js +0 -61
  328. package/src/requests/beneficiaries.js +0 -31
  329. package/src/requests/categories.js +0 -55
  330. package/src/requests/payees.js +0 -29
  331. package/src/requests/payments.js +0 -35
  332. package/src/requests/projects.js +0 -51
  333. package/src/requests/recurring-payments.js +0 -37
  334. package/src/requests/regular-transactions.js +0 -17
  335. package/src/requests/rental-records.js +0 -41
  336. package/src/requests/savings-goals.js +0 -49
  337. package/src/requests/spending-analysis.js +0 -19
  338. package/src/requests/spending-goals.js +0 -49
  339. package/src/requests/standing-orders.js +0 -21
  340. package/src/requests/sync.js +0 -23
  341. package/src/requests/tax.js +0 -16
  342. package/src/requests/transaction-files.js +0 -54
  343. package/src/requests/transaction-splits.js +0 -57
  344. package/src/requests/transactions.js +0 -58
  345. package/src/requests/unauthenticated.js +0 -19
  346. package/src/requests/users-and-connections.js +0 -89
  347. package/src/tokens.js +0 -72
@@ -1,115 +0,0 @@
1
- /* eslint-disable complexity */
2
- /* eslint-disable max-statements */
3
- const R = require("ramda")
4
- const {TokenSet} = require("openid-client")
5
-
6
- const ALLOWED_PARAMS = [
7
- "access_token",
8
- "code",
9
- "error",
10
- "error_description",
11
- "error_uri",
12
- "expires_in",
13
- "id_token",
14
- "state",
15
- "token_type",
16
- "session_state",
17
- ]
18
-
19
- const RESPONSE_TYPE_REQUIRED_PARAMS = {
20
- code: ["code"],
21
- id_token: ["id_token"],
22
- token: ["access_token", "token_type"],
23
- }
24
-
25
- module.exports = ({client, redirectUri}) => ({paramsFromCallback, localParams}) => {
26
- const params = R.pick(ALLOWED_PARAMS, paramsFromCallback)
27
- const checks = localParams
28
-
29
- if (client.default_max_age && !checks.max_age)
30
- checks.max_age = client.default_max_age
31
-
32
- if (!params.state && checks.state) {
33
- return Promise.reject(new Error("paramsFromCallback.state is missing"))
34
- }
35
-
36
- if (params.state && !checks.state) {
37
- return Promise.reject(new Error("localParams.state argument is missing"))
38
- }
39
-
40
- if (checks.state !== params.state) {
41
- return Promise.reject(new Error("state mismatch"))
42
- }
43
-
44
- if (params.error) {
45
- return Promise.reject(new Error(params.error))
46
- }
47
-
48
- if (!params.code) {
49
- return Promise.reject(new Error("paramsFromCallback.code is missing"))
50
- }
51
-
52
- if (checks.response_type) {
53
- for (const type of checks.response_type.split(" ")) {
54
- // eslint-disable-line no-restricted-syntax
55
- if (type === "none") {
56
- if (params.code || params.id_token || params.access_token) {
57
- return Promise.reject(
58
- new Error("unexpected params encountered for 'none' response"),
59
- )
60
- }
61
- } else {
62
- for (const param of RESPONSE_TYPE_REQUIRED_PARAMS[type]) {
63
- // eslint-disable-line no-restricted-syntax, max-len
64
- if (!params[param]) {
65
- return Promise.reject(new Error(`${param} missing from response`))
66
- }
67
- }
68
- }
69
- }
70
- }
71
-
72
- let promise
73
-
74
- if (params.id_token) {
75
- promise = Promise.resolve(new TokenSet(params))
76
- .then((tokenset) => client.decryptIdToken(tokenset))
77
- .then((tokenset) =>
78
- client.validateIdToken(
79
- tokenset,
80
- checks.nonce,
81
- "authorization",
82
- checks.max_age,
83
- checks.state,
84
- ),
85
- )
86
- }
87
-
88
- if (params.code) {
89
- const grantCall = () =>
90
- client.grant({
91
- grant_type: "authorization_code",
92
- code: params.code,
93
- redirect_uri: redirectUri,
94
- code_verifier: checks.code_verifier,
95
- sub: localParams.sub,
96
- })
97
- .then((tokenset) => client.decryptIdToken(tokenset))
98
- .then((tokenset) =>
99
- client.validateIdToken(tokenset, checks.nonce, "token", checks.max_age),
100
- )
101
- .then((tokenset) => {
102
- if (params.session_state)
103
- tokenset.session_state = params.session_state
104
- return tokenset
105
- })
106
-
107
- if (promise) {
108
- promise = promise.then(grantCall)
109
- } else {
110
- return grantCall()
111
- }
112
- }
113
-
114
- return promise || Promise.resolve(new TokenSet(params))
115
- }
@@ -1,559 +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
- getReconsentAuthorizeUrlForCreatedUser: async ({
215
- userId,
216
- connectionId,
217
- expiresAt,
218
- state,
219
- nonce,
220
- claims = {},
221
- }) => {
222
- const scope = "openid reconsent"
223
- const defaultClaims = {
224
- id_token: {
225
- sub: {
226
- essential: true,
227
- value: userId,
228
- },
229
- "mh:con_id": {
230
- essential: true,
231
- value: connectionId,
232
- },
233
- "mh:consent": {
234
- value: {
235
- expirationDateTime: expiresAt
236
- }
237
- }
238
- },
239
- }
240
- const _claims = R.mergeDeepRight(defaultClaims, claims)
241
-
242
- const url = await getAuthorizeUrl({
243
- state,
244
- nonce,
245
- scope,
246
- claims: _claims,
247
- })
248
- return url
249
- },
250
-
251
- getRefreshAuthorizeUrlForCreatedUser: async ({
252
- userId,
253
- connectionId,
254
- state,
255
- nonce,
256
- claims = {},
257
- expirationDateTime,
258
- transactionFromDateTime,
259
- enableAsync
260
- }) => {
261
- const scope = "openid refresh"
262
- const defaultClaims = {
263
- id_token: {
264
- sub: {
265
- essential: true,
266
- value: userId,
267
- },
268
- "mh:con_id": {
269
- essential: true,
270
- value: connectionId,
271
- },
272
- },
273
- }
274
- const _claims = R.mergeDeepRight(defaultClaims, claims)
275
-
276
- const url = await getAuthorizeUrl({
277
- state,
278
- scope,
279
- nonce,
280
- claims: _claims,
281
- expirationDateTime,
282
- transactionFromDateTime,
283
- enableAsync
284
- })
285
- return url
286
- },
287
-
288
- getPaymentAuthorizeUrl: async ({
289
- bankId,
290
- payeeId,
291
- payeeType,
292
- amount,
293
- payeeRef,
294
- payerRef,
295
- payerId,
296
- payerType,
297
- state,
298
- nonce,
299
- context,
300
- readRefundAccount,
301
- userId,
302
- claims = {},
303
- }) => {
304
- if (!state) {
305
- console.error("State is required")
306
- throw new Error("Missing parameters")
307
- }
308
-
309
- if (!payeeId) {
310
- console.error("PayeeId is required")
311
- throw new Error("Missing parameters")
312
- }
313
-
314
- const scope = `payment openid id:${bankId}`
315
- const defaultClaims = {
316
- id_token: {
317
- "mh:con_id": {
318
- essential: true,
319
- },
320
- "mh:payment": {
321
- essential: true,
322
- value: {
323
- amount,
324
- payeeRef,
325
- payerRef,
326
- payeeId,
327
- payeeType,
328
- payerId,
329
- payerType,
330
- context,
331
- readRefundAccount,
332
- },
333
- },
334
- ...userId && {
335
- sub: {
336
- value: userId
337
- }
338
- }
339
- },
340
- }
341
-
342
- const _claims = R.mergeDeepRight(defaultClaims, claims)
343
-
344
- const request = await requestObject({
345
- scope,
346
- state,
347
- claims: _claims,
348
- nonce,
349
- })
350
-
351
- const requestUri = await getRequestUri(request)
352
- const url = getAuthorizeUrlFromRequestUri({
353
- requestUri,
354
- })
355
- return url
356
- },
357
-
358
- getReversePaymentAuthorizeUrl: async ({
359
- bankId,
360
- paymentId,
361
- state,
362
- nonce,
363
- amount,
364
- claims = {},
365
- }) => {
366
- if (!state) {
367
- console.error("State is required")
368
- throw new Error("Missing parameters")
369
- }
370
-
371
- if (!paymentId) {
372
- console.error("PayeeId is required")
373
- throw new Error("Missing parameters")
374
- }
375
-
376
- const scope = `reverse_payment openid id:${bankId}`
377
- const defaultClaims = {
378
- id_token: {
379
- "mh:con_id": {
380
- essential: true,
381
- },
382
- "mh:reverse_payment": {
383
- essential: true,
384
- value: {
385
- paymentId,
386
- amount,
387
- },
388
- },
389
- "mh:payment": {
390
- essential: true,
391
- },
392
- },
393
- }
394
-
395
- const _claims = R.mergeDeepRight(defaultClaims, claims)
396
-
397
- const request = await requestObject({
398
- scope,
399
- state,
400
- claims: _claims,
401
- nonce,
402
- })
403
-
404
- const requestUri = await getRequestUri(request)
405
- const url = getAuthorizeUrlFromRequestUri({
406
- requestUri,
407
- })
408
- return url
409
- },
410
-
411
- getRecurringPaymentAuthorizeUrl: async ({
412
- bankId,
413
- payeeId,
414
- payeeType,
415
- payerId,
416
- payerType,
417
- reference,
418
- validFromDate,
419
- validToDate,
420
- maximumIndividualAmount,
421
- currency,
422
- periodicLimits,
423
- type,
424
- context,
425
- state,
426
- nonce,
427
- userId,
428
- claims = {},
429
- }) => {
430
- if (!state) {
431
- console.error("State is required")
432
- throw new Error("Missing parameters")
433
- }
434
-
435
- const scope = `recurring_payment:create openid id:${bankId}`
436
- const defaultClaims = {
437
- id_token: {
438
- "mh:con_id": {
439
- essential: true,
440
- },
441
- "mh:recurring_payment": {
442
- essential: true,
443
- value: {
444
- payeeId,
445
- payeeType,
446
- payerId,
447
- payerType,
448
- reference,
449
- validFromDate,
450
- validToDate,
451
- maximumIndividualAmount,
452
- currency,
453
- periodicLimits,
454
- type,
455
- context,
456
- },
457
- },
458
- ...userId && {
459
- sub: {
460
- value: userId
461
- }
462
- }
463
- },
464
- }
465
-
466
- const _claims = R.mergeDeepRight(defaultClaims, claims)
467
-
468
- const request = await requestObject({
469
- scope,
470
- state,
471
- claims: _claims,
472
- nonce,
473
- })
474
-
475
- const requestUri = await getRequestUri(request)
476
- const url = getAuthorizeUrlFromRequestUri({
477
- requestUri,
478
- })
479
- return url
480
- },
481
-
482
- getStandingOrderAuthorizeUrl: async ({
483
- bankId,
484
- payeeId,
485
- payeeType,
486
- payerId,
487
- payerType,
488
- reference,
489
- frequency,
490
- numberOfPayments,
491
- firstPaymentAmount,
492
- recurringPaymentAmount,
493
- finalPaymentAmount,
494
- currency,
495
- firstPaymentDate,
496
- recurringPaymentDate,
497
- finalPaymentDate,
498
- state,
499
- nonce,
500
- context,
501
- claims = {},
502
- }) => {
503
- if (!state) {
504
- console.error("State is required")
505
- throw new Error("Missing parameters")
506
- }
507
-
508
- if (!payeeId) {
509
- console.error("PayeeId is required")
510
- throw new Error("Missing parameters")
511
- }
512
-
513
- const scope = `standing_orders:create openid id:${bankId}`
514
- const defaultClaims = {
515
- id_token: {
516
- "mh:con_id": {
517
- essential: true,
518
- },
519
- "mh:standing_order": {
520
- essential: true,
521
- value: {
522
- payeeId,
523
- payeeType,
524
- payerId,
525
- payerType,
526
- reference,
527
- frequency,
528
- numberOfPayments,
529
- firstPaymentAmount,
530
- recurringPaymentAmount,
531
- finalPaymentAmount,
532
- currency,
533
- firstPaymentDate,
534
- recurringPaymentDate,
535
- finalPaymentDate,
536
- context,
537
- },
538
- },
539
- },
540
- }
541
-
542
- const _claims = R.mergeDeepRight(defaultClaims, claims)
543
-
544
- const request = await requestObject({
545
- scope,
546
- state,
547
- claims: _claims,
548
- nonce,
549
- })
550
-
551
- const requestUri = await getRequestUri(request)
552
- const url = getAuthorizeUrlFromRequestUri({
553
- requestUri,
554
- })
555
- return url
556
- },
557
-
558
- }
559
- }