@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.
- package/CHANGELOG.md +240 -0
- package/README.md +464 -190
- package/dist/api/functional-client.d.ts +66 -0
- package/dist/api/functional-client.d.ts.map +1 -0
- package/dist/api/functional-client.js +165 -0
- package/dist/auth/functional/auth-operations.d.ts +116 -0
- package/dist/auth/functional/auth-operations.d.ts.map +1 -0
- package/dist/auth/functional/auth-operations.js +246 -0
- package/dist/auth/functional/auth-state.d.ts +38 -0
- package/dist/auth/functional/auth-state.d.ts.map +1 -0
- package/dist/auth/functional/auth-state.js +87 -0
- package/dist/auth/functional/token-storage.d.ts +44 -0
- package/dist/auth/functional/token-storage.d.ts.map +1 -0
- package/dist/auth/functional/token-storage.js +178 -0
- package/dist/auth/react/AuthProvider.d.ts +92 -0
- package/dist/auth/react/AuthProvider.d.ts.map +1 -0
- package/dist/auth/react/AuthProvider.js +207 -0
- package/dist/index.d.ts +25 -34
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +114 -40
- package/dist/integration/blueberry-integration.d.ts +21 -0
- package/dist/integration/blueberry-integration.d.ts.map +1 -0
- package/dist/integration/blueberry-integration.js +109 -0
- package/dist/integration/index.d.ts +8 -0
- package/dist/integration/index.d.ts.map +1 -0
- package/dist/integration/index.js +18 -0
- package/dist/services/accounts.d.ts +220 -0
- package/dist/services/accounts.d.ts.map +1 -0
- package/dist/services/accounts.js +175 -0
- package/dist/services/banks.d.ts +123 -0
- package/dist/services/banks.d.ts.map +1 -0
- package/dist/services/banks.js +151 -0
- package/dist/services/cash-accounts.d.ts +112 -0
- package/dist/services/cash-accounts.d.ts.map +1 -0
- package/dist/services/cash-accounts.js +222 -0
- package/dist/services/documents.d.ts +143 -0
- package/dist/services/documents.d.ts.map +1 -0
- package/dist/services/documents.js +253 -0
- package/dist/services/factories/account-factory.d.ts +16 -0
- package/dist/services/factories/account-factory.d.ts.map +1 -0
- package/dist/services/factories/account-factory.js +79 -0
- package/dist/services/factories/auth-factory.d.ts +23 -0
- package/dist/services/factories/auth-factory.d.ts.map +1 -0
- package/dist/services/factories/auth-factory.js +75 -0
- package/dist/services/factories/bank-factory.d.ts +16 -0
- package/dist/services/factories/bank-factory.d.ts.map +1 -0
- package/dist/services/factories/bank-factory.js +72 -0
- package/dist/services/factories/cash-account-factory.d.ts +16 -0
- package/dist/services/factories/cash-account-factory.d.ts.map +1 -0
- package/dist/services/factories/cash-account-factory.js +74 -0
- package/dist/services/factories/document-factory.d.ts +16 -0
- package/dist/services/factories/document-factory.d.ts.map +1 -0
- package/dist/services/factories/document-factory.js +85 -0
- package/dist/services/factories/index.d.ts +21 -0
- package/dist/services/factories/index.d.ts.map +1 -0
- package/dist/services/factories/index.js +40 -0
- package/dist/services/factories/instrument-factory.d.ts +16 -0
- package/dist/services/factories/instrument-factory.d.ts.map +1 -0
- package/dist/services/factories/instrument-factory.js +68 -0
- package/dist/services/factories/master-factory.d.ts +74 -0
- package/dist/services/factories/master-factory.d.ts.map +1 -0
- package/dist/services/factories/master-factory.js +183 -0
- package/dist/services/factories/portfolio-factory.d.ts +16 -0
- package/dist/services/factories/portfolio-factory.d.ts.map +1 -0
- package/dist/services/factories/portfolio-factory.js +74 -0
- package/dist/services/factories/portfolio-template-factory.d.ts +16 -0
- package/dist/services/factories/portfolio-template-factory.d.ts.map +1 -0
- package/dist/services/factories/portfolio-template-factory.js +76 -0
- package/dist/services/factories/reference-data-factory.d.ts +16 -0
- package/dist/services/factories/reference-data-factory.d.ts.map +1 -0
- package/dist/services/factories/reference-data-factory.js +86 -0
- package/dist/services/factories/tax-residency-factory.d.ts +16 -0
- package/dist/services/factories/tax-residency-factory.d.ts.map +1 -0
- package/dist/services/factories/tax-residency-factory.js +73 -0
- package/dist/services/factories/trade-factory.d.ts +16 -0
- package/dist/services/factories/trade-factory.d.ts.map +1 -0
- package/dist/services/factories/trade-factory.js +79 -0
- package/dist/services/factories/types.d.ts +250 -0
- package/dist/services/factories/types.d.ts.map +1 -0
- package/dist/services/factories/types.js +32 -0
- package/dist/services/factories/withdrawal-factory.d.ts +16 -0
- package/dist/services/factories/withdrawal-factory.d.ts.map +1 -0
- package/dist/services/factories/withdrawal-factory.js +78 -0
- package/dist/services/instruments.d.ts +138 -0
- package/dist/services/instruments.d.ts.map +1 -0
- package/dist/services/instruments.js +178 -0
- package/dist/services/portfolio-templates.d.ts +142 -0
- package/dist/services/portfolio-templates.d.ts.map +1 -0
- package/dist/services/portfolio-templates.js +201 -0
- package/dist/services/portfolios.d.ts +161 -0
- package/dist/services/portfolios.d.ts.map +1 -0
- package/dist/services/portfolios.js +144 -0
- package/dist/services/reference-data.d.ts +185 -0
- package/dist/services/reference-data.d.ts.map +1 -0
- package/dist/services/reference-data.js +245 -0
- package/dist/services/tax-residencies.d.ts +83 -0
- package/dist/services/tax-residencies.d.ts.map +1 -0
- package/dist/services/tax-residencies.js +179 -0
- package/dist/services/trades.d.ts +190 -0
- package/dist/services/trades.d.ts.map +1 -0
- package/dist/services/trades.js +207 -0
- package/dist/services/withdrawals.d.ts +236 -0
- package/dist/services/withdrawals.d.ts.map +1 -0
- package/dist/services/withdrawals.js +345 -0
- package/package.json +43 -16
- package/dist/adapters/MobileApiClient.d.ts +0 -68
- package/dist/adapters/MobileApiClient.d.ts.map +0 -1
- package/dist/adapters/MobileApiClient.js +0 -240
- package/dist/adapters/MobileTokenStorage.d.ts +0 -43
- package/dist/adapters/MobileTokenStorage.d.ts.map +0 -1
- package/dist/adapters/MobileTokenStorage.js +0 -128
- package/dist/adapters/WebApiClient.d.ts +0 -28
- package/dist/adapters/WebApiClient.d.ts.map +0 -1
- package/dist/adapters/WebApiClient.js +0 -119
- package/dist/adapters/WebTokenStorage.d.ts +0 -38
- package/dist/adapters/WebTokenStorage.d.ts.map +0 -1
- package/dist/adapters/WebTokenStorage.js +0 -86
- package/dist/api/apiClient.d.ts +0 -31
- package/dist/api/apiClient.d.ts.map +0 -1
- package/dist/api/apiClient.js +0 -49
- package/dist/api/types.d.ts +0 -51
- package/dist/api/types.d.ts.map +0 -1
- package/dist/api/types.js +0 -4
- package/dist/auth/AuthManager.d.ts +0 -81
- package/dist/auth/AuthManager.d.ts.map +0 -1
- package/dist/auth/AuthManager.js +0 -223
- package/dist/auth/createAuthManager.d.ts +0 -63
- package/dist/auth/createAuthManager.d.ts.map +0 -1
- package/dist/auth/createAuthManager.js +0 -103
- package/dist/auth/useAuthManager.d.ts +0 -66
- package/dist/auth/useAuthManager.d.ts.map +0 -1
- package/dist/auth/useAuthManager.js +0 -133
- package/dist/core/BaseApiClient.d.ts +0 -82
- package/dist/core/BaseApiClient.d.ts.map +0 -1
- package/dist/core/BaseApiClient.js +0 -89
- package/dist/core/TokenStorage.d.ts +0 -45
- package/dist/core/TokenStorage.d.ts.map +0 -1
- package/dist/core/TokenStorage.js +0 -23
- package/dist/query/QueryClient.d.ts +0 -82
- package/dist/query/QueryClient.d.ts.map +0 -1
- package/dist/query/QueryClient.js +0 -136
- package/dist/query/useAuth.d.ts +0 -64
- package/dist/query/useAuth.d.ts.map +0 -1
- package/dist/query/useAuth.js +0 -144
- package/dist/query/usePortfolios.d.ts +0 -79
- package/dist/query/usePortfolios.d.ts.map +0 -1
- package/dist/query/usePortfolios.js +0 -172
- package/dist/services/AuthService.d.ts +0 -75
- package/dist/services/AuthService.d.ts.map +0 -1
- package/dist/services/AuthService.js +0 -83
- package/dist/services/BaseService.d.ts +0 -48
- package/dist/services/BaseService.d.ts.map +0 -1
- package/dist/services/BaseService.js +0 -51
- package/dist/services/PortfolioService.d.ts +0 -100
- package/dist/services/PortfolioService.d.ts.map +0 -1
- package/dist/services/PortfolioService.js +0 -68
- package/dist/services/accounts/constants.d.ts +0 -24
- package/dist/services/accounts/constants.d.ts.map +0 -1
- package/dist/services/accounts/constants.js +0 -30
- package/dist/services/accounts/index.d.ts +0 -7
- package/dist/services/accounts/index.d.ts.map +0 -1
- package/dist/services/accounts/index.js +0 -6
- package/dist/services/accounts/service.d.ts +0 -11
- package/dist/services/accounts/service.d.ts.map +0 -1
- package/dist/services/accounts/service.js +0 -19
- package/dist/services/accounts/types.d.ts +0 -15
- package/dist/services/accounts/types.d.ts.map +0 -1
- package/dist/services/accounts/types.js +0 -4
- package/dist/services/auth/constants.d.ts +0 -30
- package/dist/services/auth/constants.d.ts.map +0 -1
- package/dist/services/auth/constants.js +0 -37
- package/dist/services/auth/index.d.ts +0 -8
- package/dist/services/auth/index.d.ts.map +0 -1
- package/dist/services/auth/index.js +0 -7
- package/dist/services/auth/service.d.ts +0 -8
- package/dist/services/auth/service.d.ts.map +0 -1
- package/dist/services/auth/service.js +0 -23
- package/dist/services/auth/types.d.ts +0 -38
- package/dist/services/auth/types.d.ts.map +0 -1
- package/dist/services/auth/types.js +0 -1
- package/dist/services/auth/utils.d.ts +0 -46
- package/dist/services/auth/utils.d.ts.map +0 -1
- package/dist/services/auth/utils.js +0 -113
- package/dist/services/banks/constants.d.ts +0 -47
- package/dist/services/banks/constants.d.ts.map +0 -1
- package/dist/services/banks/constants.js +0 -98
- package/dist/services/banks/index.d.ts +0 -8
- package/dist/services/banks/index.d.ts.map +0 -1
- package/dist/services/banks/index.js +0 -7
- package/dist/services/banks/service.d.ts +0 -9
- package/dist/services/banks/service.d.ts.map +0 -1
- package/dist/services/banks/service.js +0 -38
- package/dist/services/banks/types.d.ts +0 -36
- package/dist/services/banks/types.d.ts.map +0 -1
- package/dist/services/banks/types.js +0 -4
- package/dist/services/cash_accounts/constants.d.ts +0 -7
- package/dist/services/cash_accounts/constants.d.ts.map +0 -1
- package/dist/services/cash_accounts/constants.js +0 -7
- package/dist/services/cash_accounts/index.d.ts +0 -5
- package/dist/services/cash_accounts/index.d.ts.map +0 -1
- package/dist/services/cash_accounts/index.js +0 -6
- package/dist/services/cash_accounts/service.d.ts +0 -8
- package/dist/services/cash_accounts/service.d.ts.map +0 -1
- package/dist/services/cash_accounts/service.js +0 -32
- package/dist/services/cash_accounts/transactions/constants.d.ts +0 -18
- package/dist/services/cash_accounts/transactions/constants.d.ts.map +0 -1
- package/dist/services/cash_accounts/transactions/constants.js +0 -25
- package/dist/services/cash_accounts/transactions/index.d.ts +0 -5
- package/dist/services/cash_accounts/transactions/index.d.ts.map +0 -1
- package/dist/services/cash_accounts/transactions/index.js +0 -6
- package/dist/services/cash_accounts/transactions/service.d.ts +0 -13
- package/dist/services/cash_accounts/transactions/service.d.ts.map +0 -1
- package/dist/services/cash_accounts/transactions/service.js +0 -75
- package/dist/services/cash_accounts/transactions/types.d.ts +0 -38
- package/dist/services/cash_accounts/transactions/types.d.ts.map +0 -1
- package/dist/services/cash_accounts/transactions/types.js +0 -11
- package/dist/services/cash_accounts/types.d.ts +0 -24
- package/dist/services/cash_accounts/types.d.ts.map +0 -1
- package/dist/services/cash_accounts/types.js +0 -4
- package/dist/services/countries/constants.d.ts +0 -9
- package/dist/services/countries/constants.d.ts.map +0 -1
- package/dist/services/countries/constants.js +0 -10
- package/dist/services/countries/index.d.ts +0 -5
- package/dist/services/countries/index.d.ts.map +0 -1
- package/dist/services/countries/index.js +0 -6
- package/dist/services/countries/service.d.ts +0 -18
- package/dist/services/countries/service.d.ts.map +0 -1
- package/dist/services/countries/service.js +0 -32
- package/dist/services/countries/types.d.ts +0 -24
- package/dist/services/countries/types.d.ts.map +0 -1
- package/dist/services/countries/types.js +0 -1
- package/dist/services/countries/utils.d.ts +0 -38
- package/dist/services/countries/utils.d.ts.map +0 -1
- package/dist/services/countries/utils.js +0 -62
- package/dist/services/documents/constants.d.ts +0 -55
- package/dist/services/documents/constants.d.ts.map +0 -1
- package/dist/services/documents/constants.js +0 -50
- package/dist/services/documents/index.d.ts +0 -6
- package/dist/services/documents/index.d.ts.map +0 -1
- package/dist/services/documents/index.js +0 -6
- package/dist/services/documents/service.d.ts +0 -50
- package/dist/services/documents/service.d.ts.map +0 -1
- package/dist/services/documents/service.js +0 -116
- package/dist/services/documents/types.d.ts +0 -47
- package/dist/services/documents/types.d.ts.map +0 -1
- package/dist/services/documents/types.js +0 -1
- package/dist/services/documents/utils.d.ts +0 -26
- package/dist/services/documents/utils.d.ts.map +0 -1
- package/dist/services/documents/utils.js +0 -37
- package/dist/services/industries/constants.d.ts +0 -8
- package/dist/services/industries/constants.d.ts.map +0 -1
- package/dist/services/industries/constants.js +0 -9
- package/dist/services/industries/index.d.ts +0 -6
- package/dist/services/industries/index.d.ts.map +0 -1
- package/dist/services/industries/index.js +0 -6
- package/dist/services/industries/service.d.ts +0 -18
- package/dist/services/industries/service.d.ts.map +0 -1
- package/dist/services/industries/service.js +0 -43
- package/dist/services/industries/types.d.ts +0 -21
- package/dist/services/industries/types.d.ts.map +0 -1
- package/dist/services/industries/types.js +0 -1
- package/dist/services/industries/utils.d.ts +0 -47
- package/dist/services/industries/utils.d.ts.map +0 -1
- package/dist/services/industries/utils.js +0 -86
- package/dist/services/instruments/constants.d.ts +0 -38
- package/dist/services/instruments/constants.d.ts.map +0 -1
- package/dist/services/instruments/constants.js +0 -36
- package/dist/services/instruments/index.d.ts +0 -5
- package/dist/services/instruments/index.d.ts.map +0 -1
- package/dist/services/instruments/index.js +0 -6
- package/dist/services/instruments/service.d.ts +0 -54
- package/dist/services/instruments/service.d.ts.map +0 -1
- package/dist/services/instruments/service.js +0 -106
- package/dist/services/instruments/types.d.ts +0 -83
- package/dist/services/instruments/types.d.ts.map +0 -1
- package/dist/services/instruments/types.js +0 -1
- package/dist/services/instruments/utils.d.ts +0 -50
- package/dist/services/instruments/utils.d.ts.map +0 -1
- package/dist/services/instruments/utils.js +0 -111
- package/dist/services/portfolio_templates/constants.d.ts +0 -8
- package/dist/services/portfolio_templates/constants.d.ts.map +0 -1
- package/dist/services/portfolio_templates/constants.js +0 -8
- package/dist/services/portfolio_templates/index.d.ts +0 -5
- package/dist/services/portfolio_templates/index.d.ts.map +0 -1
- package/dist/services/portfolio_templates/index.js +0 -5
- package/dist/services/portfolio_templates/service.d.ts +0 -6
- package/dist/services/portfolio_templates/service.d.ts.map +0 -1
- package/dist/services/portfolio_templates/service.js +0 -14
- package/dist/services/portfolio_templates/types.d.ts +0 -49
- package/dist/services/portfolio_templates/types.d.ts.map +0 -1
- package/dist/services/portfolio_templates/types.js +0 -1
- package/dist/services/portfolio_templates/utils.d.ts +0 -8
- package/dist/services/portfolio_templates/utils.d.ts.map +0 -1
- package/dist/services/portfolio_templates/utils.js +0 -13
- package/dist/services/portfolios/allocations/index.d.ts +0 -7
- package/dist/services/portfolios/allocations/index.d.ts.map +0 -1
- package/dist/services/portfolios/allocations/index.js +0 -6
- package/dist/services/portfolios/allocations/service.d.ts +0 -6
- package/dist/services/portfolios/allocations/service.d.ts.map +0 -1
- package/dist/services/portfolios/allocations/service.js +0 -19
- package/dist/services/portfolios/allocations/types.d.ts +0 -17
- package/dist/services/portfolios/allocations/types.d.ts.map +0 -1
- package/dist/services/portfolios/allocations/types.js +0 -4
- package/dist/services/portfolios/allocations/utils.d.ts +0 -3
- package/dist/services/portfolios/allocations/utils.d.ts.map +0 -1
- package/dist/services/portfolios/allocations/utils.js +0 -7
- package/dist/services/portfolios/constants.d.ts +0 -45
- package/dist/services/portfolios/constants.d.ts.map +0 -1
- package/dist/services/portfolios/constants.js +0 -57
- package/dist/services/portfolios/holdings/index.d.ts +0 -7
- package/dist/services/portfolios/holdings/index.d.ts.map +0 -1
- package/dist/services/portfolios/holdings/index.js +0 -6
- package/dist/services/portfolios/holdings/service.d.ts +0 -10
- package/dist/services/portfolios/holdings/service.d.ts.map +0 -1
- package/dist/services/portfolios/holdings/service.js +0 -53
- package/dist/services/portfolios/holdings/types.d.ts +0 -42
- package/dist/services/portfolios/holdings/types.d.ts.map +0 -1
- package/dist/services/portfolios/holdings/types.js +0 -4
- package/dist/services/portfolios/holdings/utils.d.ts +0 -8
- package/dist/services/portfolios/holdings/utils.d.ts.map +0 -1
- package/dist/services/portfolios/holdings/utils.js +0 -82
- package/dist/services/portfolios/index.d.ts +0 -10
- package/dist/services/portfolios/index.d.ts.map +0 -1
- package/dist/services/portfolios/index.js +0 -10
- package/dist/services/portfolios/service.d.ts +0 -7
- package/dist/services/portfolios/service.d.ts.map +0 -1
- package/dist/services/portfolios/service.js +0 -19
- package/dist/services/portfolios/types.d.ts +0 -29
- package/dist/services/portfolios/types.d.ts.map +0 -1
- package/dist/services/portfolios/types.js +0 -1
- package/dist/services/portfolios/utils.d.ts +0 -5
- package/dist/services/portfolios/utils.d.ts.map +0 -1
- package/dist/services/portfolios/utils.js +0 -26
- package/dist/services/sectors/constants.d.ts +0 -7
- package/dist/services/sectors/constants.d.ts.map +0 -1
- package/dist/services/sectors/constants.js +0 -7
- package/dist/services/sectors/index.d.ts +0 -6
- package/dist/services/sectors/index.d.ts.map +0 -1
- package/dist/services/sectors/index.js +0 -6
- package/dist/services/sectors/service.d.ts +0 -14
- package/dist/services/sectors/service.d.ts.map +0 -1
- package/dist/services/sectors/service.js +0 -32
- package/dist/services/sectors/types.d.ts +0 -19
- package/dist/services/sectors/types.d.ts.map +0 -1
- package/dist/services/sectors/types.js +0 -1
- package/dist/services/sectors/utils.d.ts +0 -31
- package/dist/services/sectors/utils.d.ts.map +0 -1
- package/dist/services/sectors/utils.js +0 -54
- package/dist/services/stock_exchanges/constants.d.ts +0 -7
- package/dist/services/stock_exchanges/constants.d.ts.map +0 -1
- package/dist/services/stock_exchanges/constants.js +0 -7
- package/dist/services/stock_exchanges/index.d.ts +0 -6
- package/dist/services/stock_exchanges/index.d.ts.map +0 -1
- package/dist/services/stock_exchanges/index.js +0 -6
- package/dist/services/stock_exchanges/service.d.ts +0 -4
- package/dist/services/stock_exchanges/service.d.ts.map +0 -1
- package/dist/services/stock_exchanges/service.js +0 -26
- package/dist/services/stock_exchanges/types.d.ts +0 -28
- package/dist/services/stock_exchanges/types.d.ts.map +0 -1
- package/dist/services/stock_exchanges/types.js +0 -1
- package/dist/services/stock_exchanges/utils.d.ts +0 -8
- package/dist/services/stock_exchanges/utils.d.ts.map +0 -1
- package/dist/services/stock_exchanges/utils.js +0 -37
- package/dist/services/tax_residencies/constants.d.ts +0 -7
- package/dist/services/tax_residencies/constants.d.ts.map +0 -1
- package/dist/services/tax_residencies/constants.js +0 -7
- package/dist/services/tax_residencies/index.d.ts +0 -10
- package/dist/services/tax_residencies/index.d.ts.map +0 -1
- package/dist/services/tax_residencies/index.js +0 -11
- package/dist/services/tax_residencies/service.d.ts +0 -6
- package/dist/services/tax_residencies/service.d.ts.map +0 -1
- package/dist/services/tax_residencies/service.js +0 -20
- package/dist/services/tax_residencies/types.d.ts +0 -26
- package/dist/services/tax_residencies/types.d.ts.map +0 -1
- package/dist/services/tax_residencies/types.js +0 -4
- package/dist/services/tax_residencies/utils.d.ts +0 -9
- package/dist/services/tax_residencies/utils.d.ts.map +0 -1
- package/dist/services/tax_residencies/utils.js +0 -19
- package/dist/services/trades/constants.d.ts +0 -47
- package/dist/services/trades/constants.d.ts.map +0 -1
- package/dist/services/trades/constants.js +0 -61
- package/dist/services/trades/index.d.ts +0 -4
- package/dist/services/trades/index.d.ts.map +0 -1
- package/dist/services/trades/index.js +0 -12
- package/dist/services/trades/service.d.ts +0 -19
- package/dist/services/trades/service.d.ts.map +0 -1
- package/dist/services/trades/service.js +0 -177
- package/dist/services/trades/types.d.ts +0 -114
- package/dist/services/trades/types.d.ts.map +0 -1
- package/dist/services/trades/types.js +0 -1
- package/dist/services/users/constants.d.ts +0 -7
- package/dist/services/users/constants.d.ts.map +0 -1
- package/dist/services/users/constants.js +0 -8
- package/dist/services/users/index.d.ts +0 -9
- package/dist/services/users/index.d.ts.map +0 -1
- package/dist/services/users/index.js +0 -9
- package/dist/services/users/investment_preferences/constants.d.ts +0 -7
- package/dist/services/users/investment_preferences/constants.d.ts.map +0 -1
- package/dist/services/users/investment_preferences/constants.js +0 -7
- package/dist/services/users/investment_preferences/index.d.ts +0 -7
- package/dist/services/users/investment_preferences/index.d.ts.map +0 -1
- package/dist/services/users/investment_preferences/index.js +0 -6
- package/dist/services/users/investment_preferences/service.d.ts +0 -5
- package/dist/services/users/investment_preferences/service.d.ts.map +0 -1
- package/dist/services/users/investment_preferences/service.js +0 -12
- package/dist/services/users/investment_preferences/types.d.ts +0 -23
- package/dist/services/users/investment_preferences/types.d.ts.map +0 -1
- package/dist/services/users/investment_preferences/types.js +0 -1
- package/dist/services/users/service.d.ts +0 -6
- package/dist/services/users/service.d.ts.map +0 -1
- package/dist/services/users/service.js +0 -15
- package/dist/services/users/types.d.ts +0 -32
- package/dist/services/users/types.d.ts.map +0 -1
- package/dist/services/users/types.js +0 -1
- package/dist/services/users/utils.d.ts +0 -2
- package/dist/services/users/utils.d.ts.map +0 -1
- package/dist/services/users/utils.js +0 -6
- package/dist/services/withdrawals/constants.d.ts +0 -67
- package/dist/services/withdrawals/constants.d.ts.map +0 -1
- package/dist/services/withdrawals/constants.js +0 -91
- package/dist/services/withdrawals/index.d.ts +0 -6
- package/dist/services/withdrawals/index.d.ts.map +0 -1
- package/dist/services/withdrawals/index.js +0 -7
- package/dist/services/withdrawals/service.d.ts +0 -4
- package/dist/services/withdrawals/service.d.ts.map +0 -1
- package/dist/services/withdrawals/service.js +0 -5
- package/dist/services/withdrawals/types.d.ts +0 -81
- package/dist/services/withdrawals/types.d.ts.map +0 -1
- package/dist/services/withdrawals/types.js +0 -1
- package/dist/services/withdrawals/utils.d.ts +0 -20
- package/dist/services/withdrawals/utils.d.ts.map +0 -1
- package/dist/services/withdrawals/utils.js +0 -110
- package/dist/services/withdrawals/withdrawal_liquidations/index.d.ts +0 -3
- package/dist/services/withdrawals/withdrawal_liquidations/index.d.ts.map +0 -1
- package/dist/services/withdrawals/withdrawal_liquidations/index.js +0 -2
- package/dist/services/withdrawals/withdrawal_liquidations/service.d.ts +0 -8
- package/dist/services/withdrawals/withdrawal_liquidations/service.d.ts.map +0 -1
- package/dist/services/withdrawals/withdrawal_liquidations/service.js +0 -68
- package/dist/services/withdrawals/withdrawal_liquidations/types.d.ts +0 -2
- package/dist/services/withdrawals/withdrawal_liquidations/types.d.ts.map +0 -1
- package/dist/services/withdrawals/withdrawal_liquidations/types.js +0 -1
- package/dist/services/withdrawals/withdrawal_requests/index.d.ts +0 -3
- package/dist/services/withdrawals/withdrawal_requests/index.d.ts.map +0 -1
- package/dist/services/withdrawals/withdrawal_requests/index.js +0 -2
- package/dist/services/withdrawals/withdrawal_requests/service.d.ts +0 -7
- package/dist/services/withdrawals/withdrawal_requests/service.d.ts.map +0 -1
- package/dist/services/withdrawals/withdrawal_requests/service.js +0 -55
- package/dist/services/withdrawals/withdrawal_requests/types.d.ts +0 -2
- package/dist/services/withdrawals/withdrawal_requests/types.d.ts.map +0 -1
- 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"}
|