@cranberry-money/shared-services 1.12.1 → 3.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 (450) hide show
  1. package/CHANGELOG.md +240 -0
  2. package/README.md +464 -190
  3. package/dist/api/functional-client.d.ts +66 -0
  4. package/dist/api/functional-client.d.ts.map +1 -0
  5. package/dist/api/functional-client.js +165 -0
  6. package/dist/auth/functional/auth-operations.d.ts +116 -0
  7. package/dist/auth/functional/auth-operations.d.ts.map +1 -0
  8. package/dist/auth/functional/auth-operations.js +246 -0
  9. package/dist/auth/functional/auth-state.d.ts +38 -0
  10. package/dist/auth/functional/auth-state.d.ts.map +1 -0
  11. package/dist/auth/functional/auth-state.js +87 -0
  12. package/dist/auth/functional/token-storage.d.ts +44 -0
  13. package/dist/auth/functional/token-storage.d.ts.map +1 -0
  14. package/dist/auth/functional/token-storage.js +178 -0
  15. package/dist/auth/react/AuthProvider.d.ts +92 -0
  16. package/dist/auth/react/AuthProvider.d.ts.map +1 -0
  17. package/dist/auth/react/AuthProvider.js +207 -0
  18. package/dist/index.d.ts +25 -34
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +114 -40
  21. package/dist/integration/blueberry-integration.d.ts +21 -0
  22. package/dist/integration/blueberry-integration.d.ts.map +1 -0
  23. package/dist/integration/blueberry-integration.js +109 -0
  24. package/dist/integration/index.d.ts +8 -0
  25. package/dist/integration/index.d.ts.map +1 -0
  26. package/dist/integration/index.js +18 -0
  27. package/dist/services/accounts.d.ts +220 -0
  28. package/dist/services/accounts.d.ts.map +1 -0
  29. package/dist/services/accounts.js +175 -0
  30. package/dist/services/banks.d.ts +123 -0
  31. package/dist/services/banks.d.ts.map +1 -0
  32. package/dist/services/banks.js +151 -0
  33. package/dist/services/cash-accounts.d.ts +112 -0
  34. package/dist/services/cash-accounts.d.ts.map +1 -0
  35. package/dist/services/cash-accounts.js +222 -0
  36. package/dist/services/documents.d.ts +143 -0
  37. package/dist/services/documents.d.ts.map +1 -0
  38. package/dist/services/documents.js +253 -0
  39. package/dist/services/factories/account-factory.d.ts +16 -0
  40. package/dist/services/factories/account-factory.d.ts.map +1 -0
  41. package/dist/services/factories/account-factory.js +79 -0
  42. package/dist/services/factories/auth-factory.d.ts +23 -0
  43. package/dist/services/factories/auth-factory.d.ts.map +1 -0
  44. package/dist/services/factories/auth-factory.js +75 -0
  45. package/dist/services/factories/bank-factory.d.ts +16 -0
  46. package/dist/services/factories/bank-factory.d.ts.map +1 -0
  47. package/dist/services/factories/bank-factory.js +72 -0
  48. package/dist/services/factories/cash-account-factory.d.ts +16 -0
  49. package/dist/services/factories/cash-account-factory.d.ts.map +1 -0
  50. package/dist/services/factories/cash-account-factory.js +74 -0
  51. package/dist/services/factories/document-factory.d.ts +16 -0
  52. package/dist/services/factories/document-factory.d.ts.map +1 -0
  53. package/dist/services/factories/document-factory.js +85 -0
  54. package/dist/services/factories/index.d.ts +21 -0
  55. package/dist/services/factories/index.d.ts.map +1 -0
  56. package/dist/services/factories/index.js +40 -0
  57. package/dist/services/factories/instrument-factory.d.ts +16 -0
  58. package/dist/services/factories/instrument-factory.d.ts.map +1 -0
  59. package/dist/services/factories/instrument-factory.js +68 -0
  60. package/dist/services/factories/master-factory.d.ts +74 -0
  61. package/dist/services/factories/master-factory.d.ts.map +1 -0
  62. package/dist/services/factories/master-factory.js +183 -0
  63. package/dist/services/factories/portfolio-factory.d.ts +16 -0
  64. package/dist/services/factories/portfolio-factory.d.ts.map +1 -0
  65. package/dist/services/factories/portfolio-factory.js +74 -0
  66. package/dist/services/factories/portfolio-template-factory.d.ts +16 -0
  67. package/dist/services/factories/portfolio-template-factory.d.ts.map +1 -0
  68. package/dist/services/factories/portfolio-template-factory.js +76 -0
  69. package/dist/services/factories/reference-data-factory.d.ts +16 -0
  70. package/dist/services/factories/reference-data-factory.d.ts.map +1 -0
  71. package/dist/services/factories/reference-data-factory.js +86 -0
  72. package/dist/services/factories/tax-residency-factory.d.ts +16 -0
  73. package/dist/services/factories/tax-residency-factory.d.ts.map +1 -0
  74. package/dist/services/factories/tax-residency-factory.js +73 -0
  75. package/dist/services/factories/trade-factory.d.ts +16 -0
  76. package/dist/services/factories/trade-factory.d.ts.map +1 -0
  77. package/dist/services/factories/trade-factory.js +79 -0
  78. package/dist/services/factories/types.d.ts +250 -0
  79. package/dist/services/factories/types.d.ts.map +1 -0
  80. package/dist/services/factories/types.js +32 -0
  81. package/dist/services/factories/withdrawal-factory.d.ts +16 -0
  82. package/dist/services/factories/withdrawal-factory.d.ts.map +1 -0
  83. package/dist/services/factories/withdrawal-factory.js +78 -0
  84. package/dist/services/instruments.d.ts +138 -0
  85. package/dist/services/instruments.d.ts.map +1 -0
  86. package/dist/services/instruments.js +178 -0
  87. package/dist/services/portfolio-templates.d.ts +142 -0
  88. package/dist/services/portfolio-templates.d.ts.map +1 -0
  89. package/dist/services/portfolio-templates.js +201 -0
  90. package/dist/services/portfolios.d.ts +161 -0
  91. package/dist/services/portfolios.d.ts.map +1 -0
  92. package/dist/services/portfolios.js +144 -0
  93. package/dist/services/reference-data.d.ts +185 -0
  94. package/dist/services/reference-data.d.ts.map +1 -0
  95. package/dist/services/reference-data.js +245 -0
  96. package/dist/services/tax-residencies.d.ts +83 -0
  97. package/dist/services/tax-residencies.d.ts.map +1 -0
  98. package/dist/services/tax-residencies.js +179 -0
  99. package/dist/services/trades.d.ts +190 -0
  100. package/dist/services/trades.d.ts.map +1 -0
  101. package/dist/services/trades.js +207 -0
  102. package/dist/services/withdrawals.d.ts +236 -0
  103. package/dist/services/withdrawals.d.ts.map +1 -0
  104. package/dist/services/withdrawals.js +345 -0
  105. package/package.json +43 -16
  106. package/dist/adapters/MobileApiClient.d.ts +0 -68
  107. package/dist/adapters/MobileApiClient.d.ts.map +0 -1
  108. package/dist/adapters/MobileApiClient.js +0 -240
  109. package/dist/adapters/MobileTokenStorage.d.ts +0 -43
  110. package/dist/adapters/MobileTokenStorage.d.ts.map +0 -1
  111. package/dist/adapters/MobileTokenStorage.js +0 -128
  112. package/dist/adapters/WebApiClient.d.ts +0 -28
  113. package/dist/adapters/WebApiClient.d.ts.map +0 -1
  114. package/dist/adapters/WebApiClient.js +0 -119
  115. package/dist/adapters/WebTokenStorage.d.ts +0 -38
  116. package/dist/adapters/WebTokenStorage.d.ts.map +0 -1
  117. package/dist/adapters/WebTokenStorage.js +0 -86
  118. package/dist/api/apiClient.d.ts +0 -31
  119. package/dist/api/apiClient.d.ts.map +0 -1
  120. package/dist/api/apiClient.js +0 -49
  121. package/dist/api/types.d.ts +0 -51
  122. package/dist/api/types.d.ts.map +0 -1
  123. package/dist/api/types.js +0 -4
  124. package/dist/auth/AuthManager.d.ts +0 -81
  125. package/dist/auth/AuthManager.d.ts.map +0 -1
  126. package/dist/auth/AuthManager.js +0 -223
  127. package/dist/auth/createAuthManager.d.ts +0 -63
  128. package/dist/auth/createAuthManager.d.ts.map +0 -1
  129. package/dist/auth/createAuthManager.js +0 -103
  130. package/dist/auth/useAuthManager.d.ts +0 -66
  131. package/dist/auth/useAuthManager.d.ts.map +0 -1
  132. package/dist/auth/useAuthManager.js +0 -133
  133. package/dist/core/BaseApiClient.d.ts +0 -82
  134. package/dist/core/BaseApiClient.d.ts.map +0 -1
  135. package/dist/core/BaseApiClient.js +0 -89
  136. package/dist/core/TokenStorage.d.ts +0 -45
  137. package/dist/core/TokenStorage.d.ts.map +0 -1
  138. package/dist/core/TokenStorage.js +0 -23
  139. package/dist/query/QueryClient.d.ts +0 -82
  140. package/dist/query/QueryClient.d.ts.map +0 -1
  141. package/dist/query/QueryClient.js +0 -136
  142. package/dist/query/useAuth.d.ts +0 -64
  143. package/dist/query/useAuth.d.ts.map +0 -1
  144. package/dist/query/useAuth.js +0 -144
  145. package/dist/query/usePortfolios.d.ts +0 -79
  146. package/dist/query/usePortfolios.d.ts.map +0 -1
  147. package/dist/query/usePortfolios.js +0 -172
  148. package/dist/services/AuthService.d.ts +0 -75
  149. package/dist/services/AuthService.d.ts.map +0 -1
  150. package/dist/services/AuthService.js +0 -83
  151. package/dist/services/BaseService.d.ts +0 -48
  152. package/dist/services/BaseService.d.ts.map +0 -1
  153. package/dist/services/BaseService.js +0 -51
  154. package/dist/services/PortfolioService.d.ts +0 -100
  155. package/dist/services/PortfolioService.d.ts.map +0 -1
  156. package/dist/services/PortfolioService.js +0 -68
  157. package/dist/services/accounts/constants.d.ts +0 -24
  158. package/dist/services/accounts/constants.d.ts.map +0 -1
  159. package/dist/services/accounts/constants.js +0 -30
  160. package/dist/services/accounts/index.d.ts +0 -7
  161. package/dist/services/accounts/index.d.ts.map +0 -1
  162. package/dist/services/accounts/index.js +0 -6
  163. package/dist/services/accounts/service.d.ts +0 -11
  164. package/dist/services/accounts/service.d.ts.map +0 -1
  165. package/dist/services/accounts/service.js +0 -19
  166. package/dist/services/accounts/types.d.ts +0 -15
  167. package/dist/services/accounts/types.d.ts.map +0 -1
  168. package/dist/services/accounts/types.js +0 -4
  169. package/dist/services/auth/constants.d.ts +0 -30
  170. package/dist/services/auth/constants.d.ts.map +0 -1
  171. package/dist/services/auth/constants.js +0 -37
  172. package/dist/services/auth/index.d.ts +0 -8
  173. package/dist/services/auth/index.d.ts.map +0 -1
  174. package/dist/services/auth/index.js +0 -7
  175. package/dist/services/auth/service.d.ts +0 -8
  176. package/dist/services/auth/service.d.ts.map +0 -1
  177. package/dist/services/auth/service.js +0 -23
  178. package/dist/services/auth/types.d.ts +0 -38
  179. package/dist/services/auth/types.d.ts.map +0 -1
  180. package/dist/services/auth/types.js +0 -1
  181. package/dist/services/auth/utils.d.ts +0 -46
  182. package/dist/services/auth/utils.d.ts.map +0 -1
  183. package/dist/services/auth/utils.js +0 -113
  184. package/dist/services/banks/constants.d.ts +0 -47
  185. package/dist/services/banks/constants.d.ts.map +0 -1
  186. package/dist/services/banks/constants.js +0 -98
  187. package/dist/services/banks/index.d.ts +0 -8
  188. package/dist/services/banks/index.d.ts.map +0 -1
  189. package/dist/services/banks/index.js +0 -7
  190. package/dist/services/banks/service.d.ts +0 -9
  191. package/dist/services/banks/service.d.ts.map +0 -1
  192. package/dist/services/banks/service.js +0 -38
  193. package/dist/services/banks/types.d.ts +0 -36
  194. package/dist/services/banks/types.d.ts.map +0 -1
  195. package/dist/services/banks/types.js +0 -4
  196. package/dist/services/cash_accounts/constants.d.ts +0 -7
  197. package/dist/services/cash_accounts/constants.d.ts.map +0 -1
  198. package/dist/services/cash_accounts/constants.js +0 -7
  199. package/dist/services/cash_accounts/index.d.ts +0 -5
  200. package/dist/services/cash_accounts/index.d.ts.map +0 -1
  201. package/dist/services/cash_accounts/index.js +0 -6
  202. package/dist/services/cash_accounts/service.d.ts +0 -8
  203. package/dist/services/cash_accounts/service.d.ts.map +0 -1
  204. package/dist/services/cash_accounts/service.js +0 -32
  205. package/dist/services/cash_accounts/transactions/constants.d.ts +0 -18
  206. package/dist/services/cash_accounts/transactions/constants.d.ts.map +0 -1
  207. package/dist/services/cash_accounts/transactions/constants.js +0 -25
  208. package/dist/services/cash_accounts/transactions/index.d.ts +0 -5
  209. package/dist/services/cash_accounts/transactions/index.d.ts.map +0 -1
  210. package/dist/services/cash_accounts/transactions/index.js +0 -6
  211. package/dist/services/cash_accounts/transactions/service.d.ts +0 -13
  212. package/dist/services/cash_accounts/transactions/service.d.ts.map +0 -1
  213. package/dist/services/cash_accounts/transactions/service.js +0 -75
  214. package/dist/services/cash_accounts/transactions/types.d.ts +0 -38
  215. package/dist/services/cash_accounts/transactions/types.d.ts.map +0 -1
  216. package/dist/services/cash_accounts/transactions/types.js +0 -11
  217. package/dist/services/cash_accounts/types.d.ts +0 -24
  218. package/dist/services/cash_accounts/types.d.ts.map +0 -1
  219. package/dist/services/cash_accounts/types.js +0 -4
  220. package/dist/services/countries/constants.d.ts +0 -9
  221. package/dist/services/countries/constants.d.ts.map +0 -1
  222. package/dist/services/countries/constants.js +0 -10
  223. package/dist/services/countries/index.d.ts +0 -5
  224. package/dist/services/countries/index.d.ts.map +0 -1
  225. package/dist/services/countries/index.js +0 -6
  226. package/dist/services/countries/service.d.ts +0 -18
  227. package/dist/services/countries/service.d.ts.map +0 -1
  228. package/dist/services/countries/service.js +0 -32
  229. package/dist/services/countries/types.d.ts +0 -24
  230. package/dist/services/countries/types.d.ts.map +0 -1
  231. package/dist/services/countries/types.js +0 -1
  232. package/dist/services/countries/utils.d.ts +0 -38
  233. package/dist/services/countries/utils.d.ts.map +0 -1
  234. package/dist/services/countries/utils.js +0 -62
  235. package/dist/services/documents/constants.d.ts +0 -55
  236. package/dist/services/documents/constants.d.ts.map +0 -1
  237. package/dist/services/documents/constants.js +0 -50
  238. package/dist/services/documents/index.d.ts +0 -6
  239. package/dist/services/documents/index.d.ts.map +0 -1
  240. package/dist/services/documents/index.js +0 -6
  241. package/dist/services/documents/service.d.ts +0 -50
  242. package/dist/services/documents/service.d.ts.map +0 -1
  243. package/dist/services/documents/service.js +0 -116
  244. package/dist/services/documents/types.d.ts +0 -47
  245. package/dist/services/documents/types.d.ts.map +0 -1
  246. package/dist/services/documents/types.js +0 -1
  247. package/dist/services/documents/utils.d.ts +0 -26
  248. package/dist/services/documents/utils.d.ts.map +0 -1
  249. package/dist/services/documents/utils.js +0 -37
  250. package/dist/services/industries/constants.d.ts +0 -8
  251. package/dist/services/industries/constants.d.ts.map +0 -1
  252. package/dist/services/industries/constants.js +0 -9
  253. package/dist/services/industries/index.d.ts +0 -6
  254. package/dist/services/industries/index.d.ts.map +0 -1
  255. package/dist/services/industries/index.js +0 -6
  256. package/dist/services/industries/service.d.ts +0 -18
  257. package/dist/services/industries/service.d.ts.map +0 -1
  258. package/dist/services/industries/service.js +0 -43
  259. package/dist/services/industries/types.d.ts +0 -21
  260. package/dist/services/industries/types.d.ts.map +0 -1
  261. package/dist/services/industries/types.js +0 -1
  262. package/dist/services/industries/utils.d.ts +0 -47
  263. package/dist/services/industries/utils.d.ts.map +0 -1
  264. package/dist/services/industries/utils.js +0 -86
  265. package/dist/services/instruments/constants.d.ts +0 -38
  266. package/dist/services/instruments/constants.d.ts.map +0 -1
  267. package/dist/services/instruments/constants.js +0 -36
  268. package/dist/services/instruments/index.d.ts +0 -5
  269. package/dist/services/instruments/index.d.ts.map +0 -1
  270. package/dist/services/instruments/index.js +0 -6
  271. package/dist/services/instruments/service.d.ts +0 -54
  272. package/dist/services/instruments/service.d.ts.map +0 -1
  273. package/dist/services/instruments/service.js +0 -106
  274. package/dist/services/instruments/types.d.ts +0 -83
  275. package/dist/services/instruments/types.d.ts.map +0 -1
  276. package/dist/services/instruments/types.js +0 -1
  277. package/dist/services/instruments/utils.d.ts +0 -50
  278. package/dist/services/instruments/utils.d.ts.map +0 -1
  279. package/dist/services/instruments/utils.js +0 -111
  280. package/dist/services/portfolio_templates/constants.d.ts +0 -8
  281. package/dist/services/portfolio_templates/constants.d.ts.map +0 -1
  282. package/dist/services/portfolio_templates/constants.js +0 -8
  283. package/dist/services/portfolio_templates/index.d.ts +0 -5
  284. package/dist/services/portfolio_templates/index.d.ts.map +0 -1
  285. package/dist/services/portfolio_templates/index.js +0 -5
  286. package/dist/services/portfolio_templates/service.d.ts +0 -6
  287. package/dist/services/portfolio_templates/service.d.ts.map +0 -1
  288. package/dist/services/portfolio_templates/service.js +0 -14
  289. package/dist/services/portfolio_templates/types.d.ts +0 -49
  290. package/dist/services/portfolio_templates/types.d.ts.map +0 -1
  291. package/dist/services/portfolio_templates/types.js +0 -1
  292. package/dist/services/portfolio_templates/utils.d.ts +0 -8
  293. package/dist/services/portfolio_templates/utils.d.ts.map +0 -1
  294. package/dist/services/portfolio_templates/utils.js +0 -13
  295. package/dist/services/portfolios/allocations/index.d.ts +0 -7
  296. package/dist/services/portfolios/allocations/index.d.ts.map +0 -1
  297. package/dist/services/portfolios/allocations/index.js +0 -6
  298. package/dist/services/portfolios/allocations/service.d.ts +0 -6
  299. package/dist/services/portfolios/allocations/service.d.ts.map +0 -1
  300. package/dist/services/portfolios/allocations/service.js +0 -19
  301. package/dist/services/portfolios/allocations/types.d.ts +0 -17
  302. package/dist/services/portfolios/allocations/types.d.ts.map +0 -1
  303. package/dist/services/portfolios/allocations/types.js +0 -4
  304. package/dist/services/portfolios/allocations/utils.d.ts +0 -3
  305. package/dist/services/portfolios/allocations/utils.d.ts.map +0 -1
  306. package/dist/services/portfolios/allocations/utils.js +0 -7
  307. package/dist/services/portfolios/constants.d.ts +0 -45
  308. package/dist/services/portfolios/constants.d.ts.map +0 -1
  309. package/dist/services/portfolios/constants.js +0 -57
  310. package/dist/services/portfolios/holdings/index.d.ts +0 -7
  311. package/dist/services/portfolios/holdings/index.d.ts.map +0 -1
  312. package/dist/services/portfolios/holdings/index.js +0 -6
  313. package/dist/services/portfolios/holdings/service.d.ts +0 -10
  314. package/dist/services/portfolios/holdings/service.d.ts.map +0 -1
  315. package/dist/services/portfolios/holdings/service.js +0 -53
  316. package/dist/services/portfolios/holdings/types.d.ts +0 -42
  317. package/dist/services/portfolios/holdings/types.d.ts.map +0 -1
  318. package/dist/services/portfolios/holdings/types.js +0 -4
  319. package/dist/services/portfolios/holdings/utils.d.ts +0 -8
  320. package/dist/services/portfolios/holdings/utils.d.ts.map +0 -1
  321. package/dist/services/portfolios/holdings/utils.js +0 -82
  322. package/dist/services/portfolios/index.d.ts +0 -10
  323. package/dist/services/portfolios/index.d.ts.map +0 -1
  324. package/dist/services/portfolios/index.js +0 -10
  325. package/dist/services/portfolios/service.d.ts +0 -7
  326. package/dist/services/portfolios/service.d.ts.map +0 -1
  327. package/dist/services/portfolios/service.js +0 -19
  328. package/dist/services/portfolios/types.d.ts +0 -29
  329. package/dist/services/portfolios/types.d.ts.map +0 -1
  330. package/dist/services/portfolios/types.js +0 -1
  331. package/dist/services/portfolios/utils.d.ts +0 -5
  332. package/dist/services/portfolios/utils.d.ts.map +0 -1
  333. package/dist/services/portfolios/utils.js +0 -26
  334. package/dist/services/sectors/constants.d.ts +0 -7
  335. package/dist/services/sectors/constants.d.ts.map +0 -1
  336. package/dist/services/sectors/constants.js +0 -7
  337. package/dist/services/sectors/index.d.ts +0 -6
  338. package/dist/services/sectors/index.d.ts.map +0 -1
  339. package/dist/services/sectors/index.js +0 -6
  340. package/dist/services/sectors/service.d.ts +0 -14
  341. package/dist/services/sectors/service.d.ts.map +0 -1
  342. package/dist/services/sectors/service.js +0 -32
  343. package/dist/services/sectors/types.d.ts +0 -19
  344. package/dist/services/sectors/types.d.ts.map +0 -1
  345. package/dist/services/sectors/types.js +0 -1
  346. package/dist/services/sectors/utils.d.ts +0 -31
  347. package/dist/services/sectors/utils.d.ts.map +0 -1
  348. package/dist/services/sectors/utils.js +0 -54
  349. package/dist/services/stock_exchanges/constants.d.ts +0 -7
  350. package/dist/services/stock_exchanges/constants.d.ts.map +0 -1
  351. package/dist/services/stock_exchanges/constants.js +0 -7
  352. package/dist/services/stock_exchanges/index.d.ts +0 -6
  353. package/dist/services/stock_exchanges/index.d.ts.map +0 -1
  354. package/dist/services/stock_exchanges/index.js +0 -6
  355. package/dist/services/stock_exchanges/service.d.ts +0 -4
  356. package/dist/services/stock_exchanges/service.d.ts.map +0 -1
  357. package/dist/services/stock_exchanges/service.js +0 -26
  358. package/dist/services/stock_exchanges/types.d.ts +0 -28
  359. package/dist/services/stock_exchanges/types.d.ts.map +0 -1
  360. package/dist/services/stock_exchanges/types.js +0 -1
  361. package/dist/services/stock_exchanges/utils.d.ts +0 -8
  362. package/dist/services/stock_exchanges/utils.d.ts.map +0 -1
  363. package/dist/services/stock_exchanges/utils.js +0 -37
  364. package/dist/services/tax_residencies/constants.d.ts +0 -7
  365. package/dist/services/tax_residencies/constants.d.ts.map +0 -1
  366. package/dist/services/tax_residencies/constants.js +0 -7
  367. package/dist/services/tax_residencies/index.d.ts +0 -10
  368. package/dist/services/tax_residencies/index.d.ts.map +0 -1
  369. package/dist/services/tax_residencies/index.js +0 -11
  370. package/dist/services/tax_residencies/service.d.ts +0 -6
  371. package/dist/services/tax_residencies/service.d.ts.map +0 -1
  372. package/dist/services/tax_residencies/service.js +0 -20
  373. package/dist/services/tax_residencies/types.d.ts +0 -26
  374. package/dist/services/tax_residencies/types.d.ts.map +0 -1
  375. package/dist/services/tax_residencies/types.js +0 -4
  376. package/dist/services/tax_residencies/utils.d.ts +0 -9
  377. package/dist/services/tax_residencies/utils.d.ts.map +0 -1
  378. package/dist/services/tax_residencies/utils.js +0 -19
  379. package/dist/services/trades/constants.d.ts +0 -47
  380. package/dist/services/trades/constants.d.ts.map +0 -1
  381. package/dist/services/trades/constants.js +0 -61
  382. package/dist/services/trades/index.d.ts +0 -4
  383. package/dist/services/trades/index.d.ts.map +0 -1
  384. package/dist/services/trades/index.js +0 -12
  385. package/dist/services/trades/service.d.ts +0 -19
  386. package/dist/services/trades/service.d.ts.map +0 -1
  387. package/dist/services/trades/service.js +0 -177
  388. package/dist/services/trades/types.d.ts +0 -114
  389. package/dist/services/trades/types.d.ts.map +0 -1
  390. package/dist/services/trades/types.js +0 -1
  391. package/dist/services/users/constants.d.ts +0 -7
  392. package/dist/services/users/constants.d.ts.map +0 -1
  393. package/dist/services/users/constants.js +0 -8
  394. package/dist/services/users/index.d.ts +0 -9
  395. package/dist/services/users/index.d.ts.map +0 -1
  396. package/dist/services/users/index.js +0 -9
  397. package/dist/services/users/investment_preferences/constants.d.ts +0 -7
  398. package/dist/services/users/investment_preferences/constants.d.ts.map +0 -1
  399. package/dist/services/users/investment_preferences/constants.js +0 -7
  400. package/dist/services/users/investment_preferences/index.d.ts +0 -7
  401. package/dist/services/users/investment_preferences/index.d.ts.map +0 -1
  402. package/dist/services/users/investment_preferences/index.js +0 -6
  403. package/dist/services/users/investment_preferences/service.d.ts +0 -5
  404. package/dist/services/users/investment_preferences/service.d.ts.map +0 -1
  405. package/dist/services/users/investment_preferences/service.js +0 -12
  406. package/dist/services/users/investment_preferences/types.d.ts +0 -23
  407. package/dist/services/users/investment_preferences/types.d.ts.map +0 -1
  408. package/dist/services/users/investment_preferences/types.js +0 -1
  409. package/dist/services/users/service.d.ts +0 -6
  410. package/dist/services/users/service.d.ts.map +0 -1
  411. package/dist/services/users/service.js +0 -15
  412. package/dist/services/users/types.d.ts +0 -32
  413. package/dist/services/users/types.d.ts.map +0 -1
  414. package/dist/services/users/types.js +0 -1
  415. package/dist/services/users/utils.d.ts +0 -2
  416. package/dist/services/users/utils.d.ts.map +0 -1
  417. package/dist/services/users/utils.js +0 -6
  418. package/dist/services/withdrawals/constants.d.ts +0 -67
  419. package/dist/services/withdrawals/constants.d.ts.map +0 -1
  420. package/dist/services/withdrawals/constants.js +0 -91
  421. package/dist/services/withdrawals/index.d.ts +0 -6
  422. package/dist/services/withdrawals/index.d.ts.map +0 -1
  423. package/dist/services/withdrawals/index.js +0 -7
  424. package/dist/services/withdrawals/service.d.ts +0 -4
  425. package/dist/services/withdrawals/service.d.ts.map +0 -1
  426. package/dist/services/withdrawals/service.js +0 -5
  427. package/dist/services/withdrawals/types.d.ts +0 -81
  428. package/dist/services/withdrawals/types.d.ts.map +0 -1
  429. package/dist/services/withdrawals/types.js +0 -1
  430. package/dist/services/withdrawals/utils.d.ts +0 -20
  431. package/dist/services/withdrawals/utils.d.ts.map +0 -1
  432. package/dist/services/withdrawals/utils.js +0 -110
  433. package/dist/services/withdrawals/withdrawal_liquidations/index.d.ts +0 -3
  434. package/dist/services/withdrawals/withdrawal_liquidations/index.d.ts.map +0 -1
  435. package/dist/services/withdrawals/withdrawal_liquidations/index.js +0 -2
  436. package/dist/services/withdrawals/withdrawal_liquidations/service.d.ts +0 -8
  437. package/dist/services/withdrawals/withdrawal_liquidations/service.d.ts.map +0 -1
  438. package/dist/services/withdrawals/withdrawal_liquidations/service.js +0 -68
  439. package/dist/services/withdrawals/withdrawal_liquidations/types.d.ts +0 -2
  440. package/dist/services/withdrawals/withdrawal_liquidations/types.d.ts.map +0 -1
  441. package/dist/services/withdrawals/withdrawal_liquidations/types.js +0 -1
  442. package/dist/services/withdrawals/withdrawal_requests/index.d.ts +0 -3
  443. package/dist/services/withdrawals/withdrawal_requests/index.d.ts.map +0 -1
  444. package/dist/services/withdrawals/withdrawal_requests/index.js +0 -2
  445. package/dist/services/withdrawals/withdrawal_requests/service.d.ts +0 -7
  446. package/dist/services/withdrawals/withdrawal_requests/service.d.ts.map +0 -1
  447. package/dist/services/withdrawals/withdrawal_requests/service.js +0 -55
  448. package/dist/services/withdrawals/withdrawal_requests/types.d.ts +0 -2
  449. package/dist/services/withdrawals/withdrawal_requests/types.d.ts.map +0 -1
  450. package/dist/services/withdrawals/withdrawal_requests/types.js +0 -1
@@ -0,0 +1,222 @@
1
+ "use strict";
2
+ /**
3
+ * Cash Accounts Services - Pure Functional Implementation
4
+ *
5
+ * Cash account and transaction operations as pure functions with explicit dependencies.
6
+ * No global state, no side effects - everything is explicit and testable.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.calculateCashAccountTotal = exports.isCreditTransaction = exports.isDebitTransaction = exports.getTransactionStatusColor = exports.getTransactionStatusLabel = exports.getTransactionTypeLabel = exports.formatTransactionAmount = exports.getTransactionsByDateRange = exports.getRecentTransactions = exports.getPendingTransactions = exports.getCashAccountsByCurrency = exports.getCashAccountBalance = exports.getCashAccountTransactions = exports.createCashTransaction = exports.getCashTransaction = exports.getCashTransactions = exports.getAccountCashAccounts = exports.getCashAccount = exports.getCashAccounts = void 0;
10
+ // Cash account operations with explicit dependencies
11
+ const getCashAccounts = async ({ apiClient }, params) => {
12
+ const queryParams = {};
13
+ if (params?.account) {
14
+ queryParams.account = params.account;
15
+ }
16
+ if (params?.currency) {
17
+ queryParams.currency = params.currency;
18
+ }
19
+ if (params?.minBalance !== undefined) {
20
+ queryParams.min_balance = String(params.minBalance);
21
+ }
22
+ if (params?.maxBalance !== undefined) {
23
+ queryParams.max_balance = String(params.maxBalance);
24
+ }
25
+ if (params?.ordering) {
26
+ queryParams.ordering = params.ordering;
27
+ }
28
+ return apiClient.get('/api/cash-accounts/', {
29
+ params: queryParams,
30
+ });
31
+ };
32
+ exports.getCashAccounts = getCashAccounts;
33
+ const getCashAccount = async ({ apiClient }, uuid) => {
34
+ if (!uuid?.trim()) {
35
+ throw new Error('Cash account UUID is required');
36
+ }
37
+ return apiClient.get(`/api/cash-accounts/${uuid}/`);
38
+ };
39
+ exports.getCashAccount = getCashAccount;
40
+ const getAccountCashAccounts = async ({ apiClient }, accountUuid) => {
41
+ if (!accountUuid?.trim()) {
42
+ throw new Error('Account UUID is required');
43
+ }
44
+ return (0, exports.getCashAccounts)({ apiClient }, { account: accountUuid });
45
+ };
46
+ exports.getAccountCashAccounts = getAccountCashAccounts;
47
+ // Cash transaction operations
48
+ const getCashTransactions = async ({ apiClient }, filters) => {
49
+ const params = {};
50
+ if (filters?.cashAccount)
51
+ params.cash_account = filters.cashAccount;
52
+ if (filters?.type)
53
+ params.type = filters.type;
54
+ if (filters?.status)
55
+ params.status = filters.status;
56
+ if (filters?.fromDate)
57
+ params.from_date = filters.fromDate;
58
+ if (filters?.toDate)
59
+ params.to_date = filters.toDate;
60
+ if (filters?.minAmount !== undefined)
61
+ params.min_amount = String(filters.minAmount);
62
+ if (filters?.maxAmount !== undefined)
63
+ params.max_amount = String(filters.maxAmount);
64
+ if (filters?.ordering)
65
+ params.ordering = filters.ordering;
66
+ return apiClient.get('/api/cash-transactions/', { params });
67
+ };
68
+ exports.getCashTransactions = getCashTransactions;
69
+ const getCashTransaction = async ({ apiClient }, uuid) => {
70
+ if (!uuid?.trim()) {
71
+ throw new Error('Cash transaction UUID is required');
72
+ }
73
+ return apiClient.get(`/api/cash-transactions/${uuid}/`);
74
+ };
75
+ exports.getCashTransaction = getCashTransaction;
76
+ const createCashTransaction = async ({ apiClient }, data) => {
77
+ if (!data.cashAccount?.trim()) {
78
+ throw new Error('Cash account UUID is required');
79
+ }
80
+ if (!data.type) {
81
+ throw new Error('Transaction type is required');
82
+ }
83
+ if (!data.amount) {
84
+ throw new Error('Transaction amount is required');
85
+ }
86
+ // Ensure amount is a string for API consistency
87
+ const payload = {
88
+ ...data,
89
+ amount: String(data.amount),
90
+ };
91
+ return apiClient.post('/api/cash-transactions/', payload);
92
+ };
93
+ exports.createCashTransaction = createCashTransaction;
94
+ const getCashAccountTransactions = async ({ apiClient }, cashAccountUuid, filters) => {
95
+ if (!cashAccountUuid?.trim()) {
96
+ throw new Error('Cash account UUID is required');
97
+ }
98
+ return (0, exports.getCashTransactions)({ apiClient }, {
99
+ ...filters,
100
+ cashAccount: cashAccountUuid,
101
+ });
102
+ };
103
+ exports.getCashAccountTransactions = getCashAccountTransactions;
104
+ // Helper functions for common operations
105
+ const getCashAccountBalance = async ({ apiClient }, cashAccountUuid) => {
106
+ const cashAccount = await (0, exports.getCashAccount)({ apiClient }, cashAccountUuid);
107
+ return cashAccount.balance;
108
+ };
109
+ exports.getCashAccountBalance = getCashAccountBalance;
110
+ const getCashAccountsByCurrency = async ({ apiClient }, currency, accountUuid) => {
111
+ return (0, exports.getCashAccounts)({ apiClient }, {
112
+ currency,
113
+ account: accountUuid,
114
+ });
115
+ };
116
+ exports.getCashAccountsByCurrency = getCashAccountsByCurrency;
117
+ const getPendingTransactions = async ({ apiClient }, cashAccountUuid) => {
118
+ return (0, exports.getCashTransactions)({ apiClient }, {
119
+ cashAccount: cashAccountUuid,
120
+ status: 'PENDING',
121
+ ordering: '-created_at',
122
+ });
123
+ };
124
+ exports.getPendingTransactions = getPendingTransactions;
125
+ const getRecentTransactions = async ({ apiClient }, cashAccountUuid, days = 30) => {
126
+ if (!cashAccountUuid?.trim()) {
127
+ throw new Error('Cash account UUID is required');
128
+ }
129
+ const fromDate = new Date();
130
+ fromDate.setDate(fromDate.getDate() - days);
131
+ return (0, exports.getCashTransactions)({ apiClient }, {
132
+ cashAccount: cashAccountUuid,
133
+ fromDate: fromDate.toISOString().split('T')[0],
134
+ ordering: '-transaction_date',
135
+ });
136
+ };
137
+ exports.getRecentTransactions = getRecentTransactions;
138
+ const getTransactionsByDateRange = async ({ apiClient }, cashAccountUuid, fromDate, toDate) => {
139
+ if (!cashAccountUuid?.trim()) {
140
+ throw new Error('Cash account UUID is required');
141
+ }
142
+ if (!fromDate?.trim()) {
143
+ throw new Error('From date is required');
144
+ }
145
+ if (!toDate?.trim()) {
146
+ throw new Error('To date is required');
147
+ }
148
+ return (0, exports.getCashTransactions)({ apiClient }, {
149
+ cashAccount: cashAccountUuid,
150
+ fromDate,
151
+ toDate,
152
+ ordering: '-transaction_date',
153
+ });
154
+ };
155
+ exports.getTransactionsByDateRange = getTransactionsByDateRange;
156
+ // Utility functions
157
+ const formatTransactionAmount = (amount, currency) => {
158
+ const numValue = typeof amount === 'string' ? parseFloat(amount) : amount;
159
+ const currencyCode = currency || 'AUD';
160
+ return new Intl.NumberFormat('en-AU', {
161
+ style: 'currency',
162
+ currency: currencyCode,
163
+ }).format(numValue);
164
+ };
165
+ exports.formatTransactionAmount = formatTransactionAmount;
166
+ const getTransactionTypeLabel = (type) => {
167
+ const labels = {
168
+ DEPOSIT: 'Deposit',
169
+ WITHDRAWAL: 'Withdrawal',
170
+ DIVIDEND: 'Dividend',
171
+ INTEREST: 'Interest',
172
+ FEE: 'Fee',
173
+ TAX: 'Tax',
174
+ TRADE_SETTLEMENT: 'Trade Settlement',
175
+ TRANSFER_IN: 'Transfer In',
176
+ TRANSFER_OUT: 'Transfer Out',
177
+ OTHER: 'Other',
178
+ };
179
+ return labels[type] || type;
180
+ };
181
+ exports.getTransactionTypeLabel = getTransactionTypeLabel;
182
+ const getTransactionStatusLabel = (status) => {
183
+ const labels = {
184
+ PENDING: 'Pending',
185
+ COMPLETED: 'Completed',
186
+ FAILED: 'Failed',
187
+ CANCELLED: 'Cancelled',
188
+ };
189
+ return labels[status] || status;
190
+ };
191
+ exports.getTransactionStatusLabel = getTransactionStatusLabel;
192
+ const getTransactionStatusColor = (status) => {
193
+ const colors = {
194
+ PENDING: 'text-warning-600',
195
+ COMPLETED: 'text-success-600',
196
+ FAILED: 'text-error-600',
197
+ CANCELLED: 'text-content-muted',
198
+ };
199
+ return colors[status] || 'text-content-muted';
200
+ };
201
+ exports.getTransactionStatusColor = getTransactionStatusColor;
202
+ const isDebitTransaction = (type) => {
203
+ return ['WITHDRAWAL', 'FEE', 'TAX', 'TRANSFER_OUT'].includes(type);
204
+ };
205
+ exports.isDebitTransaction = isDebitTransaction;
206
+ const isCreditTransaction = (type) => {
207
+ return ['DEPOSIT', 'DIVIDEND', 'INTEREST', 'TRANSFER_IN'].includes(type);
208
+ };
209
+ exports.isCreditTransaction = isCreditTransaction;
210
+ const calculateCashAccountTotal = (cashAccounts) => {
211
+ const totals = {};
212
+ cashAccounts.forEach(account => {
213
+ const currency = account.currency;
214
+ const balance = parseFloat(account.balance);
215
+ if (!totals[currency]) {
216
+ totals[currency] = 0;
217
+ }
218
+ totals[currency] += balance;
219
+ });
220
+ return totals;
221
+ };
222
+ exports.calculateCashAccountTotal = calculateCashAccountTotal;
@@ -0,0 +1,143 @@
1
+ /**
2
+ * Document Services - Pure Functional Implementation
3
+ *
4
+ * Document generation, signing, and management operations as pure functions.
5
+ * Handles MDA, SOA, and Agreement documents for compliance.
6
+ * No global state, no side effects - everything is explicit and testable.
7
+ */
8
+ import type { ApiClient } from '../api/functional-client';
9
+ export type DocumentType = 'MDA' | 'SOA' | 'AGREEMENT';
10
+ export type DocumentStatus = 'DRAFT' | 'GENERATED' | 'SIGNED' | 'EXPIRED';
11
+ export interface Document {
12
+ readonly uuid: string;
13
+ readonly documentType: DocumentType;
14
+ readonly status: DocumentStatus;
15
+ readonly generatedAt: string;
16
+ readonly signedAt?: string;
17
+ readonly expiresAt?: string;
18
+ readonly documentUrl?: string;
19
+ readonly metadata?: Record<string, any>;
20
+ }
21
+ export interface GenerateDocumentResponse {
22
+ readonly uuid: string;
23
+ readonly documentType: DocumentType;
24
+ readonly status: string;
25
+ readonly message: string;
26
+ readonly generatedAt: string;
27
+ readonly documentUrl?: string;
28
+ }
29
+ export interface SignDocumentResponse {
30
+ readonly uuid: string;
31
+ readonly documentType: DocumentType;
32
+ readonly status: string;
33
+ readonly signedAt: string;
34
+ readonly signedBy: string;
35
+ readonly message: string;
36
+ }
37
+ export interface DocumentFilters {
38
+ readonly documentType?: DocumentType;
39
+ readonly status?: DocumentStatus;
40
+ readonly fromDate?: string;
41
+ readonly toDate?: string;
42
+ readonly ordering?: string;
43
+ }
44
+ export interface PaginatedDocuments {
45
+ readonly results: Document[];
46
+ readonly count: number;
47
+ readonly next: string | null;
48
+ readonly previous: string | null;
49
+ }
50
+ export declare const generateMDADocument: ({ apiClient }: {
51
+ apiClient: ApiClient;
52
+ }) => Promise<GenerateDocumentResponse>;
53
+ export declare const generateSOADocument: ({ apiClient }: {
54
+ apiClient: ApiClient;
55
+ }) => Promise<GenerateDocumentResponse>;
56
+ export declare const generateAgreementDocument: ({ apiClient }: {
57
+ apiClient: ApiClient;
58
+ }) => Promise<GenerateDocumentResponse>;
59
+ export declare const generateDocument: ({ apiClient }: {
60
+ apiClient: ApiClient;
61
+ }, documentType: DocumentType) => Promise<GenerateDocumentResponse>;
62
+ export declare const downloadMDADocument: ({ apiClient }: {
63
+ apiClient: ApiClient;
64
+ }, documentUuid: string) => Promise<Blob>;
65
+ export declare const downloadSOADocument: ({ apiClient }: {
66
+ apiClient: ApiClient;
67
+ }, documentUuid: string) => Promise<Blob>;
68
+ export declare const downloadAgreementDocument: ({ apiClient }: {
69
+ apiClient: ApiClient;
70
+ }, documentUuid: string) => Promise<Blob>;
71
+ export declare const downloadDocument: ({ apiClient }: {
72
+ apiClient: ApiClient;
73
+ }, documentType: DocumentType, documentUuid: string) => Promise<Blob>;
74
+ export declare const signMDADocument: ({ apiClient }: {
75
+ apiClient: ApiClient;
76
+ }, documentUuid: string) => Promise<SignDocumentResponse>;
77
+ export declare const signSOADocument: ({ apiClient }: {
78
+ apiClient: ApiClient;
79
+ }, documentUuid: string) => Promise<SignDocumentResponse>;
80
+ export declare const signAgreementDocument: ({ apiClient }: {
81
+ apiClient: ApiClient;
82
+ }, documentUuid: string) => Promise<SignDocumentResponse>;
83
+ export declare const signDocument: ({ apiClient }: {
84
+ apiClient: ApiClient;
85
+ }, documentType: DocumentType, documentUuid: string) => Promise<SignDocumentResponse>;
86
+ export declare const getMDADocuments: ({ apiClient }: {
87
+ apiClient: ApiClient;
88
+ }, filters?: Omit<DocumentFilters, "documentType">) => Promise<PaginatedDocuments>;
89
+ export declare const getMDADocument: ({ apiClient }: {
90
+ apiClient: ApiClient;
91
+ }, uuid: string) => Promise<Document>;
92
+ export declare const getSOADocuments: ({ apiClient }: {
93
+ apiClient: ApiClient;
94
+ }, filters?: Omit<DocumentFilters, "documentType">) => Promise<PaginatedDocuments>;
95
+ export declare const getSOADocument: ({ apiClient }: {
96
+ apiClient: ApiClient;
97
+ }, uuid: string) => Promise<Document>;
98
+ export declare const getAgreementDocuments: ({ apiClient }: {
99
+ apiClient: ApiClient;
100
+ }, filters?: Omit<DocumentFilters, "documentType">) => Promise<PaginatedDocuments>;
101
+ export declare const getAgreementDocument: ({ apiClient }: {
102
+ apiClient: ApiClient;
103
+ }, uuid: string) => Promise<Document>;
104
+ export declare const getDocuments: ({ apiClient }: {
105
+ apiClient: ApiClient;
106
+ }, filters?: DocumentFilters) => Promise<PaginatedDocuments>;
107
+ export declare const getDocument: ({ apiClient }: {
108
+ apiClient: ApiClient;
109
+ }, uuid: string) => Promise<Document>;
110
+ export declare const getSignedDocuments: ({ apiClient }: {
111
+ apiClient: ApiClient;
112
+ }, documentType?: DocumentType) => Promise<PaginatedDocuments>;
113
+ export declare const getPendingDocuments: ({ apiClient }: {
114
+ apiClient: ApiClient;
115
+ }, documentType?: DocumentType) => Promise<PaginatedDocuments>;
116
+ export declare const getExpiredDocuments: ({ apiClient }: {
117
+ apiClient: ApiClient;
118
+ }, documentType?: DocumentType) => Promise<PaginatedDocuments>;
119
+ export declare const DOCUMENT_TYPES: {
120
+ readonly MDA: "MDA";
121
+ readonly SOA: "SOA";
122
+ readonly AGREEMENT: "AGREEMENT";
123
+ };
124
+ export declare const DOCUMENT_TYPE_LABELS: {
125
+ readonly MDA: "Managed Discretionary Account";
126
+ readonly SOA: "Statement of Advice";
127
+ readonly AGREEMENT: "Client Agreement";
128
+ };
129
+ export declare const DOCUMENT_STATUS_LABELS: {
130
+ readonly DRAFT: "Draft";
131
+ readonly GENERATED: "Generated";
132
+ readonly SIGNED: "Signed";
133
+ readonly EXPIRED: "Expired";
134
+ };
135
+ export declare const getUnsignedDocuments: ({ apiClient }: {
136
+ apiClient: ApiClient;
137
+ }, userProfileUuid?: string) => Promise<PaginatedDocuments>;
138
+ export declare const getDocumentTypeLabel: (documentType: DocumentType) => string;
139
+ export declare const getDocumentStatusLabel: (status: DocumentStatus) => string;
140
+ export declare const isDocumentSigned: (document: Document) => boolean;
141
+ export declare const isDocumentExpired: (document: Document) => boolean;
142
+ export declare const canSignDocument: (document: Document) => boolean;
143
+ //# sourceMappingURL=documents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../../src/services/documents.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,253 @@
1
+ "use strict";
2
+ /**
3
+ * Document Services - Pure Functional Implementation
4
+ *
5
+ * Document generation, signing, and management operations as pure functions.
6
+ * Handles MDA, SOA, and Agreement documents for compliance.
7
+ * No global state, no side effects - everything is explicit and testable.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.canSignDocument = exports.isDocumentExpired = exports.isDocumentSigned = exports.getDocumentStatusLabel = exports.getDocumentTypeLabel = exports.getUnsignedDocuments = exports.DOCUMENT_STATUS_LABELS = exports.DOCUMENT_TYPE_LABELS = exports.DOCUMENT_TYPES = exports.getExpiredDocuments = exports.getPendingDocuments = exports.getSignedDocuments = exports.getDocument = exports.getDocuments = exports.getAgreementDocument = exports.getAgreementDocuments = exports.getSOADocument = exports.getSOADocuments = exports.getMDADocument = exports.getMDADocuments = exports.signDocument = exports.signAgreementDocument = exports.signSOADocument = exports.signMDADocument = exports.downloadDocument = exports.downloadAgreementDocument = exports.downloadSOADocument = exports.downloadMDADocument = exports.generateDocument = exports.generateAgreementDocument = exports.generateSOADocument = exports.generateMDADocument = void 0;
11
+ // Document operations with explicit dependencies
12
+ // Generate documents
13
+ const generateMDADocument = async ({ apiClient }) => {
14
+ return apiClient.post('/api/documents/mda/', {});
15
+ };
16
+ exports.generateMDADocument = generateMDADocument;
17
+ const generateSOADocument = async ({ apiClient }) => {
18
+ return apiClient.post('/api/documents/soa/', {});
19
+ };
20
+ exports.generateSOADocument = generateSOADocument;
21
+ const generateAgreementDocument = async ({ apiClient }) => {
22
+ return apiClient.post('/api/documents/agreement/', {});
23
+ };
24
+ exports.generateAgreementDocument = generateAgreementDocument;
25
+ const generateDocument = async ({ apiClient }, documentType) => {
26
+ switch (documentType) {
27
+ case 'MDA':
28
+ return (0, exports.generateMDADocument)({ apiClient });
29
+ case 'SOA':
30
+ return (0, exports.generateSOADocument)({ apiClient });
31
+ case 'AGREEMENT':
32
+ return (0, exports.generateAgreementDocument)({ apiClient });
33
+ default:
34
+ throw new Error(`Unsupported document type: ${documentType}`);
35
+ }
36
+ };
37
+ exports.generateDocument = generateDocument;
38
+ // Download documents
39
+ const downloadMDADocument = async ({ apiClient }, documentUuid) => {
40
+ if (!documentUuid?.trim()) {
41
+ throw new Error('Document UUID is required');
42
+ }
43
+ // Note: The API client should handle blob responses based on the endpoint
44
+ return apiClient.get(`/api/documents/mda/${documentUuid}/`, {
45
+ headers: {
46
+ Accept: '*/*',
47
+ },
48
+ });
49
+ };
50
+ exports.downloadMDADocument = downloadMDADocument;
51
+ const downloadSOADocument = async ({ apiClient }, documentUuid) => {
52
+ if (!documentUuid?.trim()) {
53
+ throw new Error('Document UUID is required');
54
+ }
55
+ // Note: The API client should handle blob responses based on the endpoint
56
+ return apiClient.get(`/api/documents/soa/${documentUuid}/`, {
57
+ headers: {
58
+ Accept: '*/*',
59
+ },
60
+ });
61
+ };
62
+ exports.downloadSOADocument = downloadSOADocument;
63
+ const downloadAgreementDocument = async ({ apiClient }, documentUuid) => {
64
+ if (!documentUuid?.trim()) {
65
+ throw new Error('Document UUID is required');
66
+ }
67
+ // Note: The API client should handle blob responses based on the endpoint
68
+ return apiClient.get(`/api/documents/agreement/${documentUuid}/`, {
69
+ headers: {
70
+ Accept: '*/*',
71
+ },
72
+ });
73
+ };
74
+ exports.downloadAgreementDocument = downloadAgreementDocument;
75
+ const downloadDocument = async ({ apiClient }, documentType, documentUuid) => {
76
+ switch (documentType) {
77
+ case 'MDA':
78
+ return (0, exports.downloadMDADocument)({ apiClient }, documentUuid);
79
+ case 'SOA':
80
+ return (0, exports.downloadSOADocument)({ apiClient }, documentUuid);
81
+ case 'AGREEMENT':
82
+ return (0, exports.downloadAgreementDocument)({ apiClient }, documentUuid);
83
+ default:
84
+ throw new Error(`Unsupported document type: ${documentType}`);
85
+ }
86
+ };
87
+ exports.downloadDocument = downloadDocument;
88
+ // Sign documents
89
+ const signMDADocument = async ({ apiClient }, documentUuid) => {
90
+ if (!documentUuid?.trim()) {
91
+ throw new Error('Document UUID is required');
92
+ }
93
+ return apiClient.patch(`/api/documents/mda/${documentUuid}/`, {});
94
+ };
95
+ exports.signMDADocument = signMDADocument;
96
+ const signSOADocument = async ({ apiClient }, documentUuid) => {
97
+ if (!documentUuid?.trim()) {
98
+ throw new Error('Document UUID is required');
99
+ }
100
+ return apiClient.patch(`/api/documents/soa/${documentUuid}/`, {});
101
+ };
102
+ exports.signSOADocument = signSOADocument;
103
+ const signAgreementDocument = async ({ apiClient }, documentUuid) => {
104
+ if (!documentUuid?.trim()) {
105
+ throw new Error('Document UUID is required');
106
+ }
107
+ return apiClient.patch(`/api/documents/agreement/${documentUuid}/`, {});
108
+ };
109
+ exports.signAgreementDocument = signAgreementDocument;
110
+ const signDocument = async ({ apiClient }, documentType, documentUuid) => {
111
+ switch (documentType) {
112
+ case 'MDA':
113
+ return (0, exports.signMDADocument)({ apiClient }, documentUuid);
114
+ case 'SOA':
115
+ return (0, exports.signSOADocument)({ apiClient }, documentUuid);
116
+ case 'AGREEMENT':
117
+ return (0, exports.signAgreementDocument)({ apiClient }, documentUuid);
118
+ default:
119
+ throw new Error(`Unsupported document type: ${documentType}`);
120
+ }
121
+ };
122
+ exports.signDocument = signDocument;
123
+ // Get specific document types
124
+ const getMDADocuments = async ({ apiClient }, filters) => {
125
+ return (0, exports.getDocuments)({ apiClient }, { ...filters, documentType: 'MDA' });
126
+ };
127
+ exports.getMDADocuments = getMDADocuments;
128
+ const getMDADocument = async ({ apiClient }, uuid) => {
129
+ if (!uuid?.trim()) {
130
+ throw new Error('Document UUID is required');
131
+ }
132
+ return apiClient.get(`/api/documents/mda/${uuid}/`);
133
+ };
134
+ exports.getMDADocument = getMDADocument;
135
+ const getSOADocuments = async ({ apiClient }, filters) => {
136
+ return (0, exports.getDocuments)({ apiClient }, { ...filters, documentType: 'SOA' });
137
+ };
138
+ exports.getSOADocuments = getSOADocuments;
139
+ const getSOADocument = async ({ apiClient }, uuid) => {
140
+ if (!uuid?.trim()) {
141
+ throw new Error('Document UUID is required');
142
+ }
143
+ return apiClient.get(`/api/documents/soa/${uuid}/`);
144
+ };
145
+ exports.getSOADocument = getSOADocument;
146
+ const getAgreementDocuments = async ({ apiClient }, filters) => {
147
+ return (0, exports.getDocuments)({ apiClient }, { ...filters, documentType: 'AGREEMENT' });
148
+ };
149
+ exports.getAgreementDocuments = getAgreementDocuments;
150
+ const getAgreementDocument = async ({ apiClient }, uuid) => {
151
+ if (!uuid?.trim()) {
152
+ throw new Error('Document UUID is required');
153
+ }
154
+ return apiClient.get(`/api/documents/agreement/${uuid}/`);
155
+ };
156
+ exports.getAgreementDocument = getAgreementDocument;
157
+ // List and search documents
158
+ const getDocuments = async ({ apiClient }, filters) => {
159
+ const params = {};
160
+ if (filters?.documentType)
161
+ params.document_type = filters.documentType;
162
+ if (filters?.status)
163
+ params.status = filters.status;
164
+ if (filters?.fromDate)
165
+ params.from_date = filters.fromDate;
166
+ if (filters?.toDate)
167
+ params.to_date = filters.toDate;
168
+ if (filters?.ordering)
169
+ params.ordering = filters.ordering;
170
+ return apiClient.get('/api/documents/', { params });
171
+ };
172
+ exports.getDocuments = getDocuments;
173
+ const getDocument = async ({ apiClient }, uuid) => {
174
+ if (!uuid?.trim()) {
175
+ throw new Error('Document UUID is required');
176
+ }
177
+ return apiClient.get(`/api/documents/${uuid}/`);
178
+ };
179
+ exports.getDocument = getDocument;
180
+ // Helper functions
181
+ const getSignedDocuments = async ({ apiClient }, documentType) => {
182
+ return (0, exports.getDocuments)({ apiClient }, {
183
+ documentType,
184
+ status: 'SIGNED',
185
+ ordering: '-signed_at',
186
+ });
187
+ };
188
+ exports.getSignedDocuments = getSignedDocuments;
189
+ const getPendingDocuments = async ({ apiClient }, documentType) => {
190
+ return (0, exports.getDocuments)({ apiClient }, {
191
+ documentType,
192
+ status: 'GENERATED',
193
+ ordering: '-generated_at',
194
+ });
195
+ };
196
+ exports.getPendingDocuments = getPendingDocuments;
197
+ const getExpiredDocuments = async ({ apiClient }, documentType) => {
198
+ return (0, exports.getDocuments)({ apiClient }, {
199
+ documentType,
200
+ status: 'EXPIRED',
201
+ ordering: '-expires_at',
202
+ });
203
+ };
204
+ exports.getExpiredDocuments = getExpiredDocuments;
205
+ // Document type constants
206
+ exports.DOCUMENT_TYPES = {
207
+ MDA: 'MDA',
208
+ SOA: 'SOA',
209
+ AGREEMENT: 'AGREEMENT',
210
+ };
211
+ exports.DOCUMENT_TYPE_LABELS = {
212
+ MDA: 'Managed Discretionary Account',
213
+ SOA: 'Statement of Advice',
214
+ AGREEMENT: 'Client Agreement',
215
+ };
216
+ exports.DOCUMENT_STATUS_LABELS = {
217
+ DRAFT: 'Draft',
218
+ GENERATED: 'Generated',
219
+ SIGNED: 'Signed',
220
+ EXPIRED: 'Expired',
221
+ };
222
+ const getUnsignedDocuments = async ({ apiClient }, userProfileUuid) => {
223
+ const params = { status: 'GENERATED' };
224
+ if (userProfileUuid)
225
+ params.user_profile = userProfileUuid;
226
+ return apiClient.get('/api/documents/', { params });
227
+ };
228
+ exports.getUnsignedDocuments = getUnsignedDocuments;
229
+ // Utility functions
230
+ const getDocumentTypeLabel = (documentType) => {
231
+ return exports.DOCUMENT_TYPE_LABELS[documentType] || documentType;
232
+ };
233
+ exports.getDocumentTypeLabel = getDocumentTypeLabel;
234
+ const getDocumentStatusLabel = (status) => {
235
+ return exports.DOCUMENT_STATUS_LABELS[status] || status;
236
+ };
237
+ exports.getDocumentStatusLabel = getDocumentStatusLabel;
238
+ const isDocumentSigned = (document) => {
239
+ return document.status === 'SIGNED' && !!document.signedAt;
240
+ };
241
+ exports.isDocumentSigned = isDocumentSigned;
242
+ const isDocumentExpired = (document) => {
243
+ if (document.status === 'EXPIRED')
244
+ return true;
245
+ if (!document.expiresAt)
246
+ return false;
247
+ return new Date(document.expiresAt) < new Date();
248
+ };
249
+ exports.isDocumentExpired = isDocumentExpired;
250
+ const canSignDocument = (document) => {
251
+ return document.status === 'GENERATED' && !(0, exports.isDocumentExpired)(document);
252
+ };
253
+ exports.canSignDocument = canSignDocument;
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Account Service Factory
3
+ *
4
+ * Creates account services with proper dependency injection.
5
+ * Includes user profiles, accounts, and investment preferences.
6
+ */
7
+ import type { AccountServiceFactory, CoreDependencies, ServiceFactoryConfig } from './types';
8
+ /**
9
+ * Create account service factory
10
+ *
11
+ * @param coreDeps - Core dependencies (API client, etc.)
12
+ * @param config - Service factory configuration
13
+ * @returns Account service factory
14
+ */
15
+ export declare const createAccountServiceFactory: (coreDeps: CoreDependencies, _config: ServiceFactoryConfig) => AccountServiceFactory;
16
+ //# sourceMappingURL=account-factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-factory.d.ts","sourceRoot":"","sources":["../../../src/services/factories/account-factory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,SAAS,CAAC;AAGjB;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,GACtC,UAAU,gBAAgB,EAC1B,SAAS,oBAAoB,KAC5B,qBA+CF,CAAC"}