@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,245 @@
1
+ "use strict";
2
+ /**
3
+ * Reference Data Services - Pure Functional Implementation
4
+ *
5
+ * Static reference data (countries, industries, sectors, etc.) as pure functions.
6
+ * No global state, no side effects - everything is explicit and testable.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.getSectorsGroupedByIndustry = exports.formatStockExchangeName = exports.formatCountryName = exports.getAllActiveReferenceData = exports.getStockExchangeByCode = exports.searchStockExchanges = exports.getActiveStockExchanges = exports.getStockExchangesByCountry = exports.getStockExchange = exports.getStockExchanges = exports.searchSectors = exports.getActiveSectors = exports.getSectorsByIndustry = exports.getSector = exports.getSectors = exports.searchIndustries = exports.getActiveIndustries = exports.getIndustry = exports.getIndustries = exports.getCountryByCode = exports.searchCountries = exports.getAvailableCountries = exports.getCountry = exports.getCountries = void 0;
10
+ // =============================
11
+ // COUNTRY OPERATIONS
12
+ // =============================
13
+ const getCountries = async ({ apiClient }, filters) => {
14
+ const params = {};
15
+ if (filters?.name)
16
+ params.name = filters.name;
17
+ if (filters?.code)
18
+ params.code = filters.code;
19
+ if (filters?.isAvailable !== undefined)
20
+ params.is_available = String(filters.isAvailable);
21
+ if (filters?.search)
22
+ params.search = filters.search;
23
+ if (filters?.ordering)
24
+ params.ordering = filters.ordering;
25
+ if (filters?.page)
26
+ params.page = String(filters.page);
27
+ if (filters?.pageSize)
28
+ params.page_size = String(filters.pageSize);
29
+ return apiClient.get('/api/countries/', { params });
30
+ };
31
+ exports.getCountries = getCountries;
32
+ const getCountry = async ({ apiClient }, uuid) => {
33
+ if (!uuid?.trim()) {
34
+ throw new Error('Country UUID is required');
35
+ }
36
+ return apiClient.get(`/api/countries/${uuid}/`);
37
+ };
38
+ exports.getCountry = getCountry;
39
+ const getAvailableCountries = async ({ apiClient }, filters) => {
40
+ return (0, exports.getCountries)({ apiClient }, { ...filters, isAvailable: true });
41
+ };
42
+ exports.getAvailableCountries = getAvailableCountries;
43
+ const searchCountries = async ({ apiClient }, searchTerm, filters) => {
44
+ if (!searchTerm?.trim()) {
45
+ throw new Error('Search term is required');
46
+ }
47
+ return (0, exports.getCountries)({ apiClient }, { ...filters, search: searchTerm });
48
+ };
49
+ exports.searchCountries = searchCountries;
50
+ const getCountryByCode = async ({ apiClient }, code) => {
51
+ if (!code?.trim()) {
52
+ throw new Error('Country code is required');
53
+ }
54
+ const response = await (0, exports.getCountries)({ apiClient }, { code: code.toUpperCase() });
55
+ return response.results[0] || null;
56
+ };
57
+ exports.getCountryByCode = getCountryByCode;
58
+ // =============================
59
+ // INDUSTRY OPERATIONS
60
+ // =============================
61
+ const getIndustries = async ({ apiClient }, filters) => {
62
+ const params = {};
63
+ if (filters?.name)
64
+ params.name = filters.name;
65
+ if (filters?.code)
66
+ params.code = filters.code;
67
+ if (filters?.isActive !== undefined)
68
+ params.is_active = String(filters.isActive);
69
+ if (filters?.search)
70
+ params.search = filters.search;
71
+ if (filters?.ordering)
72
+ params.ordering = filters.ordering;
73
+ if (filters?.page)
74
+ params.page = String(filters.page);
75
+ if (filters?.pageSize)
76
+ params.page_size = String(filters.pageSize);
77
+ return apiClient.get('/api/industries/', { params });
78
+ };
79
+ exports.getIndustries = getIndustries;
80
+ const getIndustry = async ({ apiClient }, uuid) => {
81
+ if (!uuid?.trim()) {
82
+ throw new Error('Industry UUID is required');
83
+ }
84
+ return apiClient.get(`/api/industries/${uuid}/`);
85
+ };
86
+ exports.getIndustry = getIndustry;
87
+ const getActiveIndustries = async ({ apiClient }, filters) => {
88
+ return (0, exports.getIndustries)({ apiClient }, { ...filters, isActive: true });
89
+ };
90
+ exports.getActiveIndustries = getActiveIndustries;
91
+ const searchIndustries = async ({ apiClient }, searchTerm, filters) => {
92
+ if (!searchTerm?.trim()) {
93
+ throw new Error('Search term is required');
94
+ }
95
+ return (0, exports.getIndustries)({ apiClient }, { ...filters, search: searchTerm });
96
+ };
97
+ exports.searchIndustries = searchIndustries;
98
+ // =============================
99
+ // SECTOR OPERATIONS
100
+ // =============================
101
+ const getSectors = async ({ apiClient }, filters) => {
102
+ const params = {};
103
+ if (filters?.name)
104
+ params.name = filters.name;
105
+ if (filters?.code)
106
+ params.code = filters.code;
107
+ if (filters?.industry)
108
+ params.industry = filters.industry;
109
+ if (filters?.isActive !== undefined)
110
+ params.is_active = String(filters.isActive);
111
+ if (filters?.search)
112
+ params.search = filters.search;
113
+ if (filters?.ordering)
114
+ params.ordering = filters.ordering;
115
+ if (filters?.page)
116
+ params.page = String(filters.page);
117
+ if (filters?.pageSize)
118
+ params.page_size = String(filters.pageSize);
119
+ return apiClient.get('/api/sectors/', { params });
120
+ };
121
+ exports.getSectors = getSectors;
122
+ const getSector = async ({ apiClient }, uuid) => {
123
+ if (!uuid?.trim()) {
124
+ throw new Error('Sector UUID is required');
125
+ }
126
+ return apiClient.get(`/api/sectors/${uuid}/`);
127
+ };
128
+ exports.getSector = getSector;
129
+ const getSectorsByIndustry = async ({ apiClient }, industryUuid, filters) => {
130
+ if (!industryUuid?.trim()) {
131
+ throw new Error('Industry UUID is required');
132
+ }
133
+ return (0, exports.getSectors)({ apiClient }, { ...filters, industry: industryUuid });
134
+ };
135
+ exports.getSectorsByIndustry = getSectorsByIndustry;
136
+ const getActiveSectors = async ({ apiClient }, filters) => {
137
+ return (0, exports.getSectors)({ apiClient }, { ...filters, isActive: true });
138
+ };
139
+ exports.getActiveSectors = getActiveSectors;
140
+ const searchSectors = async ({ apiClient }, searchTerm, filters) => {
141
+ if (!searchTerm?.trim()) {
142
+ throw new Error('Search term is required');
143
+ }
144
+ return (0, exports.getSectors)({ apiClient }, { ...filters, search: searchTerm });
145
+ };
146
+ exports.searchSectors = searchSectors;
147
+ // =============================
148
+ // STOCK EXCHANGE OPERATIONS
149
+ // =============================
150
+ const getStockExchanges = async ({ apiClient }, filters) => {
151
+ const params = {};
152
+ if (filters?.name)
153
+ params.name = filters.name;
154
+ if (filters?.code)
155
+ params.code = filters.code;
156
+ if (filters?.country)
157
+ params.country = filters.country;
158
+ if (filters?.isActive !== undefined)
159
+ params.is_active = String(filters.isActive);
160
+ if (filters?.search)
161
+ params.search = filters.search;
162
+ if (filters?.ordering)
163
+ params.ordering = filters.ordering;
164
+ if (filters?.page)
165
+ params.page = String(filters.page);
166
+ if (filters?.pageSize)
167
+ params.page_size = String(filters.pageSize);
168
+ return apiClient.get('/api/stock-exchanges/', { params });
169
+ };
170
+ exports.getStockExchanges = getStockExchanges;
171
+ const getStockExchange = async ({ apiClient }, uuid) => {
172
+ if (!uuid?.trim()) {
173
+ throw new Error('Stock exchange UUID is required');
174
+ }
175
+ return apiClient.get(`/api/stock-exchanges/${uuid}/`);
176
+ };
177
+ exports.getStockExchange = getStockExchange;
178
+ const getStockExchangesByCountry = async ({ apiClient }, countryUuid, filters) => {
179
+ if (!countryUuid?.trim()) {
180
+ throw new Error('Country UUID is required');
181
+ }
182
+ return (0, exports.getStockExchanges)({ apiClient }, { ...filters, country: countryUuid });
183
+ };
184
+ exports.getStockExchangesByCountry = getStockExchangesByCountry;
185
+ const getActiveStockExchanges = async ({ apiClient }, filters) => {
186
+ return (0, exports.getStockExchanges)({ apiClient }, { ...filters, isActive: true });
187
+ };
188
+ exports.getActiveStockExchanges = getActiveStockExchanges;
189
+ const searchStockExchanges = async ({ apiClient }, searchTerm, filters) => {
190
+ if (!searchTerm?.trim()) {
191
+ throw new Error('Search term is required');
192
+ }
193
+ return (0, exports.getStockExchanges)({ apiClient }, { ...filters, search: searchTerm });
194
+ };
195
+ exports.searchStockExchanges = searchStockExchanges;
196
+ const getStockExchangeByCode = async ({ apiClient }, code) => {
197
+ if (!code?.trim()) {
198
+ throw new Error('Stock exchange code is required');
199
+ }
200
+ const response = await (0, exports.getStockExchanges)({ apiClient }, { code: code.toUpperCase() });
201
+ return response.results[0] || null;
202
+ };
203
+ exports.getStockExchangeByCode = getStockExchangeByCode;
204
+ // =============================
205
+ // UTILITY FUNCTIONS
206
+ // =============================
207
+ // Helper to get all active reference data at once
208
+ const getAllActiveReferenceData = async ({ apiClient }) => {
209
+ const [countries, industries, sectors, stockExchanges] = await Promise.all([
210
+ (0, exports.getAvailableCountries)({ apiClient }).then(res => res.results),
211
+ (0, exports.getActiveIndustries)({ apiClient }).then(res => res.results),
212
+ (0, exports.getActiveSectors)({ apiClient }).then(res => res.results),
213
+ (0, exports.getActiveStockExchanges)({ apiClient }).then(res => res.results),
214
+ ]);
215
+ return { countries, industries, sectors, stockExchanges };
216
+ };
217
+ exports.getAllActiveReferenceData = getAllActiveReferenceData;
218
+ // Format country display name
219
+ const formatCountryName = (country) => {
220
+ return `${country.name} (${country.code})`;
221
+ };
222
+ exports.formatCountryName = formatCountryName;
223
+ // Format stock exchange display name
224
+ const formatStockExchangeName = (exchange) => {
225
+ return `${exchange.name} (${exchange.code})`;
226
+ };
227
+ exports.formatStockExchangeName = formatStockExchangeName;
228
+ // Get sectors grouped by industry
229
+ const getSectorsGroupedByIndustry = async ({ apiClient }) => {
230
+ const [industries, sectors] = await Promise.all([
231
+ (0, exports.getActiveIndustries)({ apiClient }).then(res => res.results),
232
+ (0, exports.getActiveSectors)({ apiClient }).then(res => res.results),
233
+ ]);
234
+ const grouped = new Map();
235
+ industries.forEach(industry => {
236
+ grouped.set(industry.uuid, []);
237
+ });
238
+ sectors.forEach(sector => {
239
+ const industrySectors = grouped.get(sector.industry) || [];
240
+ industrySectors.push(sector);
241
+ grouped.set(sector.industry, industrySectors);
242
+ });
243
+ return grouped;
244
+ };
245
+ exports.getSectorsGroupedByIndustry = getSectorsGroupedByIndustry;
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Tax Residency Services - Pure Functional Implementation
3
+ *
4
+ * Tax residency management operations as pure functions with explicit dependencies.
5
+ * No global state, no side effects - everything is explicit and testable.
6
+ */
7
+ import type { ApiClient } from '../api/functional-client';
8
+ export interface TaxResidency {
9
+ readonly uuid: string;
10
+ readonly userProfile: string;
11
+ readonly country: string;
12
+ readonly countryName: string;
13
+ readonly countryCode: string;
14
+ readonly taxIdentificationNumber?: string;
15
+ readonly isPrimary: boolean;
16
+ readonly startDate: string;
17
+ readonly endDate?: string;
18
+ readonly createdAt: string;
19
+ readonly updatedAt: string;
20
+ }
21
+ export interface CreateTaxResidencyPayload {
22
+ readonly userProfile: string;
23
+ readonly country: string;
24
+ readonly taxIdentificationNumber?: string;
25
+ readonly isPrimary?: boolean;
26
+ readonly startDate: string;
27
+ readonly endDate?: string;
28
+ }
29
+ export interface UpdateTaxResidencyPayload {
30
+ readonly country?: string;
31
+ readonly taxIdentificationNumber?: string;
32
+ readonly isPrimary?: boolean;
33
+ readonly startDate?: string;
34
+ readonly endDate?: string;
35
+ }
36
+ export interface TaxResidencyFilters {
37
+ readonly userProfile?: string;
38
+ readonly country?: string;
39
+ readonly isPrimary?: boolean;
40
+ readonly isActive?: boolean;
41
+ readonly ordering?: string;
42
+ }
43
+ export interface PaginatedTaxResidencies {
44
+ readonly results: TaxResidency[];
45
+ readonly count: number;
46
+ readonly next: string | null;
47
+ readonly previous: string | null;
48
+ }
49
+ export declare const getTaxResidencies: ({ apiClient }: {
50
+ apiClient: ApiClient;
51
+ }, filters?: TaxResidencyFilters) => Promise<PaginatedTaxResidencies>;
52
+ export declare const getTaxResidency: ({ apiClient }: {
53
+ apiClient: ApiClient;
54
+ }, uuid: string) => Promise<TaxResidency>;
55
+ export declare const createTaxResidency: ({ apiClient }: {
56
+ apiClient: ApiClient;
57
+ }, data: CreateTaxResidencyPayload) => Promise<TaxResidency>;
58
+ export declare const updateTaxResidency: ({ apiClient }: {
59
+ apiClient: ApiClient;
60
+ }, uuid: string, data: UpdateTaxResidencyPayload) => Promise<TaxResidency>;
61
+ export declare const deleteTaxResidency: ({ apiClient }: {
62
+ apiClient: ApiClient;
63
+ }, uuid: string) => Promise<void>;
64
+ export declare const setPrimaryTaxResidency: ({ apiClient }: {
65
+ apiClient: ApiClient;
66
+ }, uuid: string) => Promise<TaxResidency>;
67
+ export declare const getUserTaxResidencies: ({ apiClient }: {
68
+ apiClient: ApiClient;
69
+ }, userProfileUuid: string) => Promise<PaginatedTaxResidencies>;
70
+ export declare const getActiveTaxResidencies: ({ apiClient }: {
71
+ apiClient: ApiClient;
72
+ }, userProfileUuid?: string) => Promise<PaginatedTaxResidencies>;
73
+ export declare const getPrimaryTaxResidency: ({ apiClient }: {
74
+ apiClient: ApiClient;
75
+ }, userProfileUuid: string) => Promise<TaxResidency | null>;
76
+ export declare const getTaxResidenciesByCountry: ({ apiClient }: {
77
+ apiClient: ApiClient;
78
+ }, countryUuid: string, userProfileUuid?: string) => Promise<PaginatedTaxResidencies>;
79
+ export declare const isTaxResidencyActive: (taxResidency: TaxResidency) => boolean;
80
+ export declare const formatTaxResidencyPeriod: (taxResidency: TaxResidency) => string;
81
+ export declare const validateTaxIdentificationNumber: (tin: string, countryCode: string) => boolean;
82
+ export declare const canHaveMultipleResidencies: (countryCode: string) => boolean;
83
+ //# sourceMappingURL=tax-residencies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tax-residencies.d.ts","sourceRoot":"","sources":["../../src/services/tax-residencies.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,179 @@
1
+ "use strict";
2
+ /**
3
+ * Tax Residency Services - Pure Functional Implementation
4
+ *
5
+ * Tax residency management 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.canHaveMultipleResidencies = exports.validateTaxIdentificationNumber = exports.formatTaxResidencyPeriod = exports.isTaxResidencyActive = exports.getTaxResidenciesByCountry = exports.getPrimaryTaxResidency = exports.getActiveTaxResidencies = exports.getUserTaxResidencies = exports.setPrimaryTaxResidency = exports.deleteTaxResidency = exports.updateTaxResidency = exports.createTaxResidency = exports.getTaxResidency = exports.getTaxResidencies = void 0;
10
+ // Tax residency operations with explicit dependencies
11
+ const getTaxResidencies = async ({ apiClient }, filters) => {
12
+ const params = {};
13
+ if (filters?.userProfile)
14
+ params.user_profile = filters.userProfile;
15
+ if (filters?.country)
16
+ params.country = filters.country;
17
+ if (filters?.isPrimary !== undefined)
18
+ params.is_primary = String(filters.isPrimary);
19
+ if (filters?.isActive !== undefined)
20
+ params.is_active = String(filters.isActive);
21
+ if (filters?.ordering) {
22
+ params.ordering = filters.ordering;
23
+ }
24
+ else {
25
+ // Default ordering: primary first, then by country name
26
+ params.ordering = '-is_primary,country';
27
+ }
28
+ return apiClient.get('/api/tax-residencies/', { params });
29
+ };
30
+ exports.getTaxResidencies = getTaxResidencies;
31
+ const getTaxResidency = async ({ apiClient }, uuid) => {
32
+ if (!uuid?.trim()) {
33
+ throw new Error('Tax residency UUID is required');
34
+ }
35
+ return apiClient.get(`/api/tax-residencies/${uuid}/`);
36
+ };
37
+ exports.getTaxResidency = getTaxResidency;
38
+ const createTaxResidency = async ({ apiClient }, data) => {
39
+ // Validation
40
+ if (!data.userProfile?.trim()) {
41
+ throw new Error('User profile UUID is required');
42
+ }
43
+ if (!data.country?.trim()) {
44
+ throw new Error('Country UUID is required');
45
+ }
46
+ if (!data.startDate?.trim()) {
47
+ throw new Error('Start date is required');
48
+ }
49
+ // Validate date format (YYYY-MM-DD)
50
+ const dateRegex = /^\d{4}-\d{2}-\d{2}$/;
51
+ if (!dateRegex.test(data.startDate)) {
52
+ throw new Error('Start date must be in YYYY-MM-DD format');
53
+ }
54
+ if (data.endDate && !dateRegex.test(data.endDate)) {
55
+ throw new Error('End date must be in YYYY-MM-DD format');
56
+ }
57
+ // Validate end date is after start date
58
+ if (data.endDate && new Date(data.endDate) <= new Date(data.startDate)) {
59
+ throw new Error('End date must be after start date');
60
+ }
61
+ return apiClient.post('/api/tax-residencies/', data);
62
+ };
63
+ exports.createTaxResidency = createTaxResidency;
64
+ const updateTaxResidency = async ({ apiClient }, uuid, data) => {
65
+ if (!uuid?.trim()) {
66
+ throw new Error('Tax residency UUID is required');
67
+ }
68
+ // Validate date formats if provided
69
+ const dateRegex = /^\d{4}-\d{2}-\d{2}$/;
70
+ if (data.startDate && !dateRegex.test(data.startDate)) {
71
+ throw new Error('Start date must be in YYYY-MM-DD format');
72
+ }
73
+ if (data.endDate && !dateRegex.test(data.endDate)) {
74
+ throw new Error('End date must be in YYYY-MM-DD format');
75
+ }
76
+ return apiClient.patch(`/api/tax-residencies/${uuid}/`, data);
77
+ };
78
+ exports.updateTaxResidency = updateTaxResidency;
79
+ const deleteTaxResidency = async ({ apiClient }, uuid) => {
80
+ if (!uuid?.trim()) {
81
+ throw new Error('Tax residency UUID is required');
82
+ }
83
+ await apiClient.delete(`/api/tax-residencies/${uuid}/`);
84
+ };
85
+ exports.deleteTaxResidency = deleteTaxResidency;
86
+ const setPrimaryTaxResidency = async ({ apiClient }, uuid) => {
87
+ if (!uuid?.trim()) {
88
+ throw new Error('Tax residency UUID is required');
89
+ }
90
+ return apiClient.post(`/api/tax-residencies/${uuid}/set-primary/`, {});
91
+ };
92
+ exports.setPrimaryTaxResidency = setPrimaryTaxResidency;
93
+ // Helper functions
94
+ const getUserTaxResidencies = async ({ apiClient }, userProfileUuid) => {
95
+ if (!userProfileUuid?.trim()) {
96
+ throw new Error('User profile UUID is required');
97
+ }
98
+ return (0, exports.getTaxResidencies)({ apiClient }, {
99
+ userProfile: userProfileUuid,
100
+ ordering: '-is_primary,start_date',
101
+ });
102
+ };
103
+ exports.getUserTaxResidencies = getUserTaxResidencies;
104
+ const getActiveTaxResidencies = async ({ apiClient }, userProfileUuid) => {
105
+ return (0, exports.getTaxResidencies)({ apiClient }, {
106
+ userProfile: userProfileUuid,
107
+ isActive: true,
108
+ ordering: '-is_primary,country',
109
+ });
110
+ };
111
+ exports.getActiveTaxResidencies = getActiveTaxResidencies;
112
+ const getPrimaryTaxResidency = async ({ apiClient }, userProfileUuid) => {
113
+ if (!userProfileUuid?.trim()) {
114
+ throw new Error('User profile UUID is required');
115
+ }
116
+ const response = await (0, exports.getTaxResidencies)({ apiClient }, {
117
+ userProfile: userProfileUuid,
118
+ isPrimary: true,
119
+ isActive: true,
120
+ });
121
+ return response.results[0] || null;
122
+ };
123
+ exports.getPrimaryTaxResidency = getPrimaryTaxResidency;
124
+ const getTaxResidenciesByCountry = async ({ apiClient }, countryUuid, userProfileUuid) => {
125
+ if (!countryUuid?.trim()) {
126
+ throw new Error('Country UUID is required');
127
+ }
128
+ return (0, exports.getTaxResidencies)({ apiClient }, {
129
+ country: countryUuid,
130
+ userProfile: userProfileUuid,
131
+ ordering: '-is_primary,start_date',
132
+ });
133
+ };
134
+ exports.getTaxResidenciesByCountry = getTaxResidenciesByCountry;
135
+ // Utility functions
136
+ const isTaxResidencyActive = (taxResidency) => {
137
+ if (!taxResidency.endDate)
138
+ return true;
139
+ return new Date(taxResidency.endDate) >= new Date();
140
+ };
141
+ exports.isTaxResidencyActive = isTaxResidencyActive;
142
+ const formatTaxResidencyPeriod = (taxResidency) => {
143
+ const startDate = new Date(taxResidency.startDate).toLocaleDateString();
144
+ if (!taxResidency.endDate) {
145
+ return `Since ${startDate}`;
146
+ }
147
+ const endDate = new Date(taxResidency.endDate).toLocaleDateString();
148
+ return `${startDate} - ${endDate}`;
149
+ };
150
+ exports.formatTaxResidencyPeriod = formatTaxResidencyPeriod;
151
+ const validateTaxIdentificationNumber = (tin, countryCode) => {
152
+ // Basic validation - can be enhanced with country-specific rules
153
+ if (!tin?.trim())
154
+ return false;
155
+ // Remove spaces and special characters
156
+ const cleanTin = tin.replace(/[\s-]/g, '');
157
+ // Country-specific validation rules (examples)
158
+ switch (countryCode) {
159
+ case 'AU':
160
+ // Australian TFN: 8 or 9 digits
161
+ return /^\d{8,9}$/.test(cleanTin);
162
+ case 'US':
163
+ // US SSN: 9 digits (XXX-XX-XXXX format)
164
+ return /^\d{9}$/.test(cleanTin);
165
+ case 'GB':
166
+ // UK NI Number: 2 letters, 6 digits, 1 letter
167
+ return /^[A-Z]{2}\d{6}[A-Z]$/.test(cleanTin.toUpperCase());
168
+ default:
169
+ // Generic validation: at least 6 alphanumeric characters
170
+ return /^[A-Z0-9]{6,}$/i.test(cleanTin);
171
+ }
172
+ };
173
+ exports.validateTaxIdentificationNumber = validateTaxIdentificationNumber;
174
+ const canHaveMultipleResidencies = (countryCode) => {
175
+ // Some countries allow dual/multiple tax residencies
176
+ const multiResidencyCountries = ['AU', 'CA', 'NZ', 'GB', 'IE'];
177
+ return multiResidencyCountries.includes(countryCode);
178
+ };
179
+ exports.canHaveMultipleResidencies = canHaveMultipleResidencies;