@cranberry-money/shared-services 10.0.4 → 10.0.5

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 (53) hide show
  1. package/dist/banks.d.ts +10 -0
  2. package/dist/banks.d.ts.map +1 -0
  3. package/dist/banks.js +49 -0
  4. package/dist/banks.js.map +1 -0
  5. package/dist/cashAccountTransactions.d.ts +16 -0
  6. package/dist/cashAccountTransactions.d.ts.map +1 -0
  7. package/dist/cashAccountTransactions.js +67 -0
  8. package/dist/cashAccountTransactions.js.map +1 -0
  9. package/dist/cashAccounts.d.ts +13 -0
  10. package/dist/cashAccounts.d.ts.map +1 -0
  11. package/dist/cashAccounts.js +46 -0
  12. package/dist/cashAccounts.js.map +1 -0
  13. package/dist/countries.d.ts +24 -0
  14. package/dist/countries.d.ts.map +1 -0
  15. package/dist/countries.js +46 -0
  16. package/dist/countries.js.map +1 -0
  17. package/dist/documents.d.ts +58 -0
  18. package/dist/documents.d.ts.map +1 -0
  19. package/dist/documents.js +130 -0
  20. package/dist/documents.js.map +1 -0
  21. package/dist/index.d.ts +14 -0
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +24 -0
  24. package/dist/index.js.map +1 -1
  25. package/dist/industries.d.ts +24 -0
  26. package/dist/industries.d.ts.map +1 -0
  27. package/dist/industries.js +57 -0
  28. package/dist/industries.js.map +1 -0
  29. package/dist/instruments.d.ts +36 -0
  30. package/dist/instruments.d.ts.map +1 -0
  31. package/dist/instruments.js +95 -0
  32. package/dist/instruments.js.map +1 -0
  33. package/dist/investmentPreferences.d.ts +14 -0
  34. package/dist/investmentPreferences.d.ts.map +1 -0
  35. package/dist/investmentPreferences.js +32 -0
  36. package/dist/investmentPreferences.js.map +1 -0
  37. package/dist/portfolioAllocations.d.ts +12 -0
  38. package/dist/portfolioAllocations.d.ts.map +1 -0
  39. package/dist/portfolioAllocations.js +34 -0
  40. package/dist/portfolioAllocations.js.map +1 -0
  41. package/dist/portfolioHoldings.d.ts +13 -0
  42. package/dist/portfolioHoldings.d.ts.map +1 -0
  43. package/dist/portfolioHoldings.js +67 -0
  44. package/dist/portfolioHoldings.js.map +1 -0
  45. package/dist/portfolioTemplates.d.ts +14 -0
  46. package/dist/portfolioTemplates.d.ts.map +1 -0
  47. package/dist/portfolioTemplates.js +28 -0
  48. package/dist/portfolioTemplates.js.map +1 -0
  49. package/dist/portfolios.d.ts +15 -0
  50. package/dist/portfolios.d.ts.map +1 -0
  51. package/dist/portfolios.js +33 -0
  52. package/dist/portfolios.js.map +1 -0
  53. package/package.json +1 -1
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Platform-agnostic banks service functions.
3
+ * Works with any axios-compatible API client.
4
+ */
5
+ import { AxiosInstance } from 'axios';
6
+ import type { BlueberryBankAccount as BankAccount, BlueberryBankAccountQueryParams as BankAccountQueryParams, PaginatedResponse } from '@cranberry-money/shared-types';
7
+ export declare const configureBanks: (apiClient: AxiosInstance) => void;
8
+ export declare const getBankAccounts: (params?: BankAccountQueryParams) => Promise<import("axios").AxiosResponse<PaginatedResponse<BankAccount>, any>>;
9
+ export declare const getBankAccountByUuid: (uuid: string) => Promise<import("axios").AxiosResponse<BankAccount, any>>;
10
+ //# sourceMappingURL=banks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"banks.d.ts","sourceRoot":"","sources":["../src/banks.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtC,OAAO,KAAK,EACV,oBAAoB,IAAI,WAAW,EACnC,+BAA+B,IAAI,sBAAsB,EACzD,iBAAiB,EAClB,MAAM,+BAA+B,CAAC;AAIvC,eAAO,MAAM,cAAc,GAAI,WAAW,aAAa,KAAG,IAEzD,CAAC;AAWF,eAAO,MAAM,eAAe,GAAI,SAAS,sBAAsB,gFA+B9D,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,MAAM,MAAM,6DAEhD,CAAC"}
package/dist/banks.js ADDED
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Platform-agnostic banks service functions.
3
+ * Works with any axios-compatible API client.
4
+ */
5
+ import { BANK_ENDPOINTS } from '@cranberry-money/shared-constants';
6
+ let configuredApiClient = null;
7
+ export const configureBanks = (apiClient) => {
8
+ configuredApiClient = apiClient;
9
+ };
10
+ const getConfiguredClient = () => {
11
+ if (!configuredApiClient) {
12
+ throw new Error('Banks service not configured. Call configureBanks(apiClient) before using bank functions.');
13
+ }
14
+ return configuredApiClient;
15
+ };
16
+ export const getBankAccounts = (params) => {
17
+ const queryParams = {};
18
+ if (params?.account) {
19
+ queryParams.account = params.account;
20
+ }
21
+ if (params?.bank_name) {
22
+ queryParams.bank_name = params.bank_name;
23
+ }
24
+ if (params?.account_type) {
25
+ queryParams.account_type = params.account_type;
26
+ }
27
+ if (params?.currency) {
28
+ queryParams.currency = params.currency;
29
+ }
30
+ if (params?.is_verified !== undefined) {
31
+ queryParams.is_verified = params.is_verified.toString();
32
+ }
33
+ if (params?.is_primary !== undefined) {
34
+ queryParams.is_primary = params.is_primary.toString();
35
+ }
36
+ if (params?.is_active !== undefined) {
37
+ queryParams.is_active = params.is_active.toString();
38
+ }
39
+ if (params?.order_by) {
40
+ queryParams.order_by = params.order_by;
41
+ }
42
+ return getConfiguredClient().get(BANK_ENDPOINTS.ACCOUNTS, {
43
+ params: queryParams,
44
+ });
45
+ };
46
+ export const getBankAccountByUuid = (uuid) => {
47
+ return getConfiguredClient().get(`${BANK_ENDPOINTS.ACCOUNTS}${uuid}/`);
48
+ };
49
+ //# sourceMappingURL=banks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"banks.js","sourceRoot":"","sources":["../src/banks.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAOnE,IAAI,mBAAmB,GAAyB,IAAI,CAAC;AAErD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,SAAwB,EAAQ,EAAE;IAC/D,mBAAmB,GAAG,SAAS,CAAC;AAClC,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,GAAkB,EAAE;IAC9C,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,2FAA2F,CAC5F,CAAC;IACJ,CAAC;IACD,OAAO,mBAAmB,CAAC;AAC7B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,MAA+B,EAAE,EAAE;IACjE,MAAM,WAAW,GAA2B,EAAE,CAAC;IAE/C,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;QACpB,WAAW,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IACvC,CAAC;IACD,IAAI,MAAM,EAAE,SAAS,EAAE,CAAC;QACtB,WAAW,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;IAC3C,CAAC;IACD,IAAI,MAAM,EAAE,YAAY,EAAE,CAAC;QACzB,WAAW,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;IACjD,CAAC;IACD,IAAI,MAAM,EAAE,QAAQ,EAAE,CAAC;QACrB,WAAW,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IACzC,CAAC;IACD,IAAI,MAAM,EAAE,WAAW,KAAK,SAAS,EAAE,CAAC;QACtC,WAAW,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC1D,CAAC;IACD,IAAI,MAAM,EAAE,UAAU,KAAK,SAAS,EAAE,CAAC;QACrC,WAAW,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;IACxD,CAAC;IACD,IAAI,MAAM,EAAE,SAAS,KAAK,SAAS,EAAE,CAAC;QACpC,WAAW,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;IACtD,CAAC;IACD,IAAI,MAAM,EAAE,QAAQ,EAAE,CAAC;QACrB,WAAW,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IACzC,CAAC;IAED,OAAO,mBAAmB,EAAE,CAAC,GAAG,CAAiC,cAAc,CAAC,QAAQ,EAAE;QACxF,MAAM,EAAE,WAAW;KACpB,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,IAAY,EAAE,EAAE;IACnD,OAAO,mBAAmB,EAAE,CAAC,GAAG,CAAc,GAAG,cAAc,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC;AACtF,CAAC,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Platform-agnostic cash account transaction service functions.
3
+ * Works with any axios-compatible API client.
4
+ */
5
+ import { AxiosInstance } from 'axios';
6
+ import type { PaginatedResponse, BlueberryCashAccountTransaction as CashAccountTransaction, BlueberryCashAccountTransactionQueryParams as CashAccountTransactionQueryParams } from '@cranberry-money/shared-types';
7
+ import { formatTransactionAmount, getTransactionTypeLabel } from '@cranberry-money/shared-utils';
8
+ export declare const configureCashAccountTransactions: (apiClient: AxiosInstance) => void;
9
+ export type PaginatedCashAccountTransactions = PaginatedResponse<CashAccountTransaction>;
10
+ export declare const getCashAccountTransactions: (params?: CashAccountTransactionQueryParams) => Promise<import("axios").AxiosResponse<PaginatedCashAccountTransactions, any>>;
11
+ export declare const getCashAccountTransactionByUuid: (uuid: string) => Promise<import("axios").AxiosResponse<CashAccountTransaction, any>>;
12
+ export declare const getCashAccountTransactionsByAccount: (cashAccountUuid: string, params?: Omit<CashAccountTransactionQueryParams, "cash_account">) => Promise<import("axios").AxiosResponse<PaginatedCashAccountTransactions, any>>;
13
+ export declare const getTransactionsByDateRange: (startDate: string, endDate: string, params?: Omit<CashAccountTransactionQueryParams, "start_date" | "end_date">) => Promise<import("axios").AxiosResponse<PaginatedCashAccountTransactions, any>>;
14
+ export declare const getRecentTransactions: (days?: number, params?: Omit<CashAccountTransactionQueryParams, "start_date" | "end_date">) => Promise<import("axios").AxiosResponse<PaginatedCashAccountTransactions, any>>;
15
+ export { formatTransactionAmount, getTransactionTypeLabel };
16
+ //# sourceMappingURL=cashAccountTransactions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cashAccountTransactions.d.ts","sourceRoot":"","sources":["../src/cashAccountTransactions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,KAAK,EACV,iBAAiB,EACjB,+BAA+B,IAAI,sBAAsB,EACzD,0CAA0C,IAAI,iCAAiC,EAChF,MAAM,+BAA+B,CAAC;AAOvC,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAIjG,eAAO,MAAM,gCAAgC,GAAI,WAAW,aAAa,KAAG,IAE3E,CAAC;AAWF,MAAM,MAAM,gCAAgC,GAAG,iBAAiB,CAAC,sBAAsB,CAAC,CAAC;AAEzF,eAAO,MAAM,0BAA0B,GAAI,SAAS,iCAAiC,kFA4BpF,CAAC;AAEF,eAAO,MAAM,+BAA+B,GAAI,MAAM,MAAM,wEAE3D,CAAC;AAEF,eAAO,MAAM,mCAAmC,GAC9C,iBAAiB,MAAM,EACvB,SAAS,IAAI,CAAC,iCAAiC,EAAE,cAAc,CAAC,kFAMjE,CAAC;AAEF,eAAO,MAAM,0BAA0B,GACrC,WAAW,MAAM,EACjB,SAAS,MAAM,EACf,SAAS,IAAI,CAAC,iCAAiC,EAAE,YAAY,GAAG,UAAU,CAAC,kFAO5E,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAChC,OAAM,MAAyC,EAC/C,SAAS,IAAI,CAAC,iCAAiC,EAAE,YAAY,GAAG,UAAU,CAAC,kFAM5E,CAAC;AAGF,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,CAAC"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Platform-agnostic cash account transaction service functions.
3
+ * Works with any axios-compatible API client.
4
+ */
5
+ import { CASH_ACCOUNT_TRANSACTION_ENDPOINTS, DEFAULT_RECENT_TRANSACTIONS_DAYS, MILLISECONDS_PER_DAY, DATE_ISO_TIME_SEPARATOR, } from '@cranberry-money/shared-constants';
6
+ import { formatTransactionAmount, getTransactionTypeLabel } from '@cranberry-money/shared-utils';
7
+ let configuredApiClient = null;
8
+ export const configureCashAccountTransactions = (apiClient) => {
9
+ configuredApiClient = apiClient;
10
+ };
11
+ const getConfiguredClient = () => {
12
+ if (!configuredApiClient) {
13
+ throw new Error('Cash account transactions service not configured. Call configureCashAccountTransactions(apiClient) before using cash account transaction functions.');
14
+ }
15
+ return configuredApiClient;
16
+ };
17
+ export const getCashAccountTransactions = (params) => {
18
+ const queryParams = {};
19
+ if (params?.cash_account) {
20
+ queryParams.cash_account = params.cash_account;
21
+ }
22
+ if (params?.transaction_type) {
23
+ queryParams.transaction_type = params.transaction_type;
24
+ }
25
+ if (params?.start_date) {
26
+ queryParams.start_date = params.start_date;
27
+ }
28
+ if (params?.end_date) {
29
+ queryParams.end_date = params.end_date;
30
+ }
31
+ if (params?.min_amount !== undefined) {
32
+ queryParams.min_amount = params.min_amount.toString();
33
+ }
34
+ if (params?.max_amount !== undefined) {
35
+ queryParams.max_amount = params.max_amount.toString();
36
+ }
37
+ if (params?.order_by) {
38
+ queryParams.order_by = params.order_by;
39
+ }
40
+ return getConfiguredClient().get(CASH_ACCOUNT_TRANSACTION_ENDPOINTS.BASE, {
41
+ params: queryParams,
42
+ });
43
+ };
44
+ export const getCashAccountTransactionByUuid = (uuid) => {
45
+ return getConfiguredClient().get(`${CASH_ACCOUNT_TRANSACTION_ENDPOINTS.BASE}${uuid}/`);
46
+ };
47
+ export const getCashAccountTransactionsByAccount = (cashAccountUuid, params) => {
48
+ return getCashAccountTransactions({
49
+ ...params,
50
+ cash_account: cashAccountUuid,
51
+ });
52
+ };
53
+ export const getTransactionsByDateRange = (startDate, endDate, params) => {
54
+ return getCashAccountTransactions({
55
+ ...params,
56
+ start_date: startDate,
57
+ end_date: endDate,
58
+ });
59
+ };
60
+ export const getRecentTransactions = (days = DEFAULT_RECENT_TRANSACTIONS_DAYS, params) => {
61
+ const endDate = new Date().toISOString().split(DATE_ISO_TIME_SEPARATOR)[0];
62
+ const startDate = new Date(Date.now() - days * MILLISECONDS_PER_DAY).toISOString().split(DATE_ISO_TIME_SEPARATOR)[0];
63
+ return getTransactionsByDateRange(startDate, endDate, params);
64
+ };
65
+ // Re-export cash account transaction utilities from Cranberry
66
+ export { formatTransactionAmount, getTransactionTypeLabel };
67
+ //# sourceMappingURL=cashAccountTransactions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cashAccountTransactions.js","sourceRoot":"","sources":["../src/cashAccountTransactions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,OAAO,EACL,kCAAkC,EAClC,gCAAgC,EAChC,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAEjG,IAAI,mBAAmB,GAAyB,IAAI,CAAC;AAErD,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,SAAwB,EAAQ,EAAE;IACjF,mBAAmB,GAAG,SAAS,CAAC;AAClC,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,GAAkB,EAAE;IAC9C,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,qJAAqJ,CACtJ,CAAC;IACJ,CAAC;IACD,OAAO,mBAAmB,CAAC;AAC7B,CAAC,CAAC;AAIF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,MAA0C,EAAE,EAAE;IACvF,MAAM,WAAW,GAA2B,EAAE,CAAC;IAE/C,IAAI,MAAM,EAAE,YAAY,EAAE,CAAC;QACzB,WAAW,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;IACjD,CAAC;IACD,IAAI,MAAM,EAAE,gBAAgB,EAAE,CAAC;QAC7B,WAAW,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;IACzD,CAAC;IACD,IAAI,MAAM,EAAE,UAAU,EAAE,CAAC;QACvB,WAAW,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IAC7C,CAAC;IACD,IAAI,MAAM,EAAE,QAAQ,EAAE,CAAC;QACrB,WAAW,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IACzC,CAAC;IACD,IAAI,MAAM,EAAE,UAAU,KAAK,SAAS,EAAE,CAAC;QACrC,WAAW,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;IACxD,CAAC;IACD,IAAI,MAAM,EAAE,UAAU,KAAK,SAAS,EAAE,CAAC;QACrC,WAAW,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;IACxD,CAAC;IACD,IAAI,MAAM,EAAE,QAAQ,EAAE,CAAC;QACrB,WAAW,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IACzC,CAAC;IAED,OAAO,mBAAmB,EAAE,CAAC,GAAG,CAAmC,kCAAkC,CAAC,IAAI,EAAE;QAC1G,MAAM,EAAE,WAAW;KACpB,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,IAAY,EAAE,EAAE;IAC9D,OAAO,mBAAmB,EAAE,CAAC,GAAG,CAAyB,GAAG,kCAAkC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC;AACjH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mCAAmC,GAAG,CACjD,eAAuB,EACvB,MAAgE,EAChE,EAAE;IACF,OAAO,0BAA0B,CAAC;QAChC,GAAG,MAAM;QACT,YAAY,EAAE,eAAe;KAC9B,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,SAAiB,EACjB,OAAe,EACf,MAA2E,EAC3E,EAAE;IACF,OAAO,0BAA0B,CAAC;QAChC,GAAG,MAAM;QACT,UAAU,EAAE,SAAS;QACrB,QAAQ,EAAE,OAAO;KAClB,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,OAAe,gCAAgC,EAC/C,MAA2E,EAC3E,EAAE;IACF,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAW,CAAC;IACrF,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,oBAAoB,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAW,CAAC;IAE/H,OAAO,0BAA0B,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAChE,CAAC,CAAC;AAEF,8DAA8D;AAC9D,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Platform-agnostic cash accounts service functions.
3
+ * Works with any axios-compatible API client.
4
+ */
5
+ import { AxiosInstance } from 'axios';
6
+ import { formatBalance } from '@cranberry-money/shared-utils';
7
+ import type { CashAccount, CashAccountQueryParams, PaginatedResponse } from '@cranberry-money/shared-types';
8
+ export declare const configureCashAccounts: (apiClient: AxiosInstance) => void;
9
+ export declare const getCashAccounts: (params?: CashAccountQueryParams) => Promise<import("axios").AxiosResponse<PaginatedResponse<CashAccount>, any>>;
10
+ export declare const getCashAccountByUuid: (uuid: string) => Promise<import("axios").AxiosResponse<CashAccount, any>>;
11
+ export declare const getAccountCashAccounts: (accountUuid: string) => Promise<import("axios").AxiosResponse<PaginatedResponse<CashAccount>, any>>;
12
+ export { formatBalance };
13
+ //# sourceMappingURL=cashAccounts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cashAccounts.d.ts","sourceRoot":"","sources":["../src/cashAccounts.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtC,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAI5G,eAAO,MAAM,qBAAqB,GAAI,WAAW,aAAa,KAAG,IAEhE,CAAC;AAWF,eAAO,MAAM,eAAe,GAAI,SAAS,sBAAsB,gFAsB9D,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,MAAM,MAAM,6DAEhD,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,aAAa,MAAM,gFAEzD,CAAC;AAGF,OAAO,EAAE,aAAa,EAAE,CAAC"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Platform-agnostic cash accounts service functions.
3
+ * Works with any axios-compatible API client.
4
+ */
5
+ import { CASH_ACCOUNT_ENDPOINTS } from '@cranberry-money/shared-constants';
6
+ import { formatBalance } from '@cranberry-money/shared-utils';
7
+ let configuredApiClient = null;
8
+ export const configureCashAccounts = (apiClient) => {
9
+ configuredApiClient = apiClient;
10
+ };
11
+ const getConfiguredClient = () => {
12
+ if (!configuredApiClient) {
13
+ throw new Error('Cash accounts service not configured. Call configureCashAccounts(apiClient) before using cash account functions.');
14
+ }
15
+ return configuredApiClient;
16
+ };
17
+ export const getCashAccounts = (params) => {
18
+ const queryParams = {};
19
+ if (params?.account) {
20
+ queryParams.account = params.account;
21
+ }
22
+ if (params?.currency) {
23
+ queryParams.currency = params.currency;
24
+ }
25
+ if (params?.min_balance !== undefined) {
26
+ queryParams.min_balance = params.min_balance.toString();
27
+ }
28
+ if (params?.max_balance !== undefined) {
29
+ queryParams.max_balance = params.max_balance.toString();
30
+ }
31
+ if (params?.order_by) {
32
+ queryParams.order_by = params.order_by;
33
+ }
34
+ return getConfiguredClient().get(CASH_ACCOUNT_ENDPOINTS.BASE, {
35
+ params: queryParams,
36
+ });
37
+ };
38
+ export const getCashAccountByUuid = (uuid) => {
39
+ return getConfiguredClient().get(`${CASH_ACCOUNT_ENDPOINTS.BASE}${uuid}/`);
40
+ };
41
+ export const getAccountCashAccounts = (accountUuid) => {
42
+ return getCashAccounts({ account: accountUuid });
43
+ };
44
+ // Re-export formatBalance from Cranberry
45
+ export { formatBalance };
46
+ //# sourceMappingURL=cashAccounts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cashAccounts.js","sourceRoot":"","sources":["../src/cashAccounts.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAG9D,IAAI,mBAAmB,GAAyB,IAAI,CAAC;AAErD,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,SAAwB,EAAQ,EAAE;IACtE,mBAAmB,GAAG,SAAS,CAAC;AAClC,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,GAAkB,EAAE;IAC9C,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,kHAAkH,CACnH,CAAC;IACJ,CAAC;IACD,OAAO,mBAAmB,CAAC;AAC7B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,MAA+B,EAAE,EAAE;IACjE,MAAM,WAAW,GAA2B,EAAE,CAAC;IAE/C,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;QACpB,WAAW,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IACvC,CAAC;IACD,IAAI,MAAM,EAAE,QAAQ,EAAE,CAAC;QACrB,WAAW,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IACzC,CAAC;IACD,IAAI,MAAM,EAAE,WAAW,KAAK,SAAS,EAAE,CAAC;QACtC,WAAW,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC1D,CAAC;IACD,IAAI,MAAM,EAAE,WAAW,KAAK,SAAS,EAAE,CAAC;QACtC,WAAW,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC1D,CAAC;IACD,IAAI,MAAM,EAAE,QAAQ,EAAE,CAAC;QACrB,WAAW,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IACzC,CAAC;IAED,OAAO,mBAAmB,EAAE,CAAC,GAAG,CAAiC,sBAAsB,CAAC,IAAI,EAAE;QAC5F,MAAM,EAAE,WAAW;KACpB,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,IAAY,EAAE,EAAE;IACnD,OAAO,mBAAmB,EAAE,CAAC,GAAG,CAAc,GAAG,sBAAsB,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC;AAC1F,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,WAAmB,EAAE,EAAE;IAC5D,OAAO,eAAe,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;AACnD,CAAC,CAAC;AAEF,yCAAyC;AACzC,OAAO,EAAE,aAAa,EAAE,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Platform-agnostic countries service functions.
3
+ * Works with any axios-compatible API client.
4
+ */
5
+ import { AxiosInstance } from 'axios';
6
+ import type { Country, CountryQueryParams, PaginatedResponse } from '@cranberry-money/shared-types';
7
+ export declare const configureCountries: (apiClient: AxiosInstance) => void;
8
+ /**
9
+ * Get list of all countries
10
+ */
11
+ export declare const getCountries: (params?: CountryQueryParams) => Promise<import("axios").AxiosResponse<PaginatedResponse<Country>, any>>;
12
+ /**
13
+ * Get country details by UUID
14
+ */
15
+ export declare const getCountryByUuid: (uuid: string) => Promise<import("axios").AxiosResponse<Country, any>>;
16
+ /**
17
+ * Get only available countries
18
+ */
19
+ export declare const getAvailableCountries: (params?: Omit<CountryQueryParams, "is_available">) => Promise<import("axios").AxiosResponse<PaginatedResponse<Country>, any>>;
20
+ /**
21
+ * Search countries by name
22
+ */
23
+ export declare const searchCountries: (searchTerm: string, params?: Omit<CountryQueryParams, "name">) => Promise<import("axios").AxiosResponse<PaginatedResponse<Country>, any>>;
24
+ //# sourceMappingURL=countries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"countries.d.ts","sourceRoot":"","sources":["../src/countries.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAKpG,eAAO,MAAM,kBAAkB,GAAI,WAAW,aAAa,KAAG,IAE7D,CAAC;AAWF;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,SAAS,kBAAkB,4EAEvD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,yDAE5C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,GAAI,SAAS,IAAI,CAAC,kBAAkB,EAAE,cAAc,CAAC,4EAKtF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,GAAI,YAAY,MAAM,EAAE,SAAS,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,4EAK5F,CAAC"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Platform-agnostic countries service functions.
3
+ * Works with any axios-compatible API client.
4
+ */
5
+ import { COUNTRY_ENDPOINTS } from '@cranberry-money/shared-constants';
6
+ let configuredApiClient = null;
7
+ export const configureCountries = (apiClient) => {
8
+ configuredApiClient = apiClient;
9
+ };
10
+ const getConfiguredClient = () => {
11
+ if (!configuredApiClient) {
12
+ throw new Error('Countries service not configured. Call configureCountries(apiClient) before using country functions.');
13
+ }
14
+ return configuredApiClient;
15
+ };
16
+ /**
17
+ * Get list of all countries
18
+ */
19
+ export const getCountries = (params) => {
20
+ return getConfiguredClient().get(COUNTRY_ENDPOINTS.BASE, { params });
21
+ };
22
+ /**
23
+ * Get country details by UUID
24
+ */
25
+ export const getCountryByUuid = (uuid) => {
26
+ return getConfiguredClient().get(`${COUNTRY_ENDPOINTS.BASE}${uuid}/`);
27
+ };
28
+ /**
29
+ * Get only available countries
30
+ */
31
+ export const getAvailableCountries = (params) => {
32
+ return getCountries({
33
+ ...params,
34
+ is_available: true,
35
+ });
36
+ };
37
+ /**
38
+ * Search countries by name
39
+ */
40
+ export const searchCountries = (searchTerm, params) => {
41
+ return getCountries({
42
+ ...params,
43
+ name: searchTerm,
44
+ });
45
+ };
46
+ //# sourceMappingURL=countries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"countries.js","sourceRoot":"","sources":["../src/countries.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,IAAI,mBAAmB,GAAyB,IAAI,CAAC;AAErD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,SAAwB,EAAQ,EAAE;IACnE,mBAAmB,GAAG,SAAS,CAAC;AAClC,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,GAAkB,EAAE;IAC9C,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,sGAAsG,CACvG,CAAC;IACJ,CAAC;IACD,OAAO,mBAAmB,CAAC;AAC7B,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAA2B,EAAE,EAAE;IAC1D,OAAO,mBAAmB,EAAE,CAAC,GAAG,CAA6B,iBAAiB,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AACnG,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAE,EAAE;IAC/C,OAAO,mBAAmB,EAAE,CAAC,GAAG,CAAU,GAAG,iBAAiB,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC;AACjF,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,MAAiD,EAAE,EAAE;IACzF,OAAO,YAAY,CAAC;QAClB,GAAG,MAAM;QACT,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,UAAkB,EAAE,MAAyC,EAAE,EAAE;IAC/F,OAAO,YAAY,CAAC;QAClB,GAAG,MAAM;QACT,IAAI,EAAE,UAAU;KACjB,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Platform-agnostic document service functions.
3
+ * Works with any axios-compatible API client.
4
+ */
5
+ import { AxiosInstance } from 'axios';
6
+ import type { GenerateDocumentResponse, SignDocumentResponse } from '@cranberry-money/shared-types';
7
+ import { DOCUMENT_TYPE_MDA, DOCUMENT_TYPE_SOA, DOCUMENT_TYPE_AGREEMENT } from '@cranberry-money/shared-constants';
8
+ export declare const configureDocuments: (apiClient: AxiosInstance) => void;
9
+ export type DocumentType = typeof DOCUMENT_TYPE_MDA | typeof DOCUMENT_TYPE_SOA | typeof DOCUMENT_TYPE_AGREEMENT;
10
+ /**
11
+ * Generate a Managed Discretionary Account (MDA) document
12
+ */
13
+ export declare const generateMDADocument: () => Promise<import("axios").AxiosResponse<GenerateDocumentResponse, any>>;
14
+ /**
15
+ * Generate a Statement of Advice (SOA) document
16
+ */
17
+ export declare const generateSOADocument: () => Promise<import("axios").AxiosResponse<GenerateDocumentResponse, any>>;
18
+ /**
19
+ * Generate a Client Agreement document
20
+ */
21
+ export declare const generateAgreementDocument: () => Promise<import("axios").AxiosResponse<GenerateDocumentResponse, any>>;
22
+ /**
23
+ * Generic function to generate any document type
24
+ */
25
+ export declare const generateDocument: (documentType: DocumentType) => Promise<import("axios").AxiosResponse<GenerateDocumentResponse, any>>;
26
+ /**
27
+ * Download a generated MDA document by UUID
28
+ */
29
+ export declare const downloadMDADocument: (documentUuid: string) => Promise<import("axios").AxiosResponse<any, any>>;
30
+ /**
31
+ * Download a generated SOA document by UUID
32
+ */
33
+ export declare const downloadSOADocument: (documentUuid: string) => Promise<import("axios").AxiosResponse<any, any>>;
34
+ /**
35
+ * Download a generated Client Agreement document by UUID
36
+ */
37
+ export declare const downloadAgreementDocument: (documentUuid: string) => Promise<import("axios").AxiosResponse<any, any>>;
38
+ /**
39
+ * Generic function to download any document type
40
+ */
41
+ export declare const downloadDocument: (documentType: DocumentType, documentUuid: string) => Promise<import("axios").AxiosResponse<any, any>>;
42
+ /**
43
+ * Sign a generated MDA document by UUID
44
+ */
45
+ export declare const signMDADocument: (documentUuid: string) => Promise<import("axios").AxiosResponse<SignDocumentResponse, any>>;
46
+ /**
47
+ * Sign a generated SOA document by UUID
48
+ */
49
+ export declare const signSOADocument: (documentUuid: string) => Promise<import("axios").AxiosResponse<SignDocumentResponse, any>>;
50
+ /**
51
+ * Sign a generated Client Agreement document by UUID
52
+ */
53
+ export declare const signAgreementDocument: (documentUuid: string) => Promise<import("axios").AxiosResponse<SignDocumentResponse, any>>;
54
+ /**
55
+ * Generic function to sign any document type
56
+ */
57
+ export declare const signDocument: (documentType: DocumentType, documentUuid: string) => Promise<import("axios").AxiosResponse<SignDocumentResponse, any>>;
58
+ //# sourceMappingURL=documents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../src/documents.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,KAAK,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACpG,OAAO,EAEL,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EAExB,MAAM,mCAAmC,CAAC;AAI3C,eAAO,MAAM,kBAAkB,GAAI,WAAW,aAAa,KAAG,IAE7D,CAAC;AAWF,MAAM,MAAM,YAAY,GAAG,OAAO,iBAAiB,GAAG,OAAO,iBAAiB,GAAG,OAAO,uBAAuB,CAAC;AAEhH;;GAEG;AACH,eAAO,MAAM,mBAAmB,6EAE/B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,6EAE/B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,yBAAyB,6EAErC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,cAAc,YAAY,0EAW1D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAAI,cAAc,MAAM,qDAOvD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAAI,cAAc,MAAM,qDAOvD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,yBAAyB,GAAI,cAAc,MAAM,qDAO7D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,cAAc,YAAY,EAAE,cAAc,MAAM,qDAWhF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,GAAI,cAAc,MAAM,sEAEnD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,GAAI,cAAc,MAAM,sEAEnD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,GAAI,cAAc,MAAM,sEAEzD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,cAAc,YAAY,EAAE,cAAc,MAAM,sEAW5E,CAAC"}
@@ -0,0 +1,130 @@
1
+ /**
2
+ * Platform-agnostic document service functions.
3
+ * Works with any axios-compatible API client.
4
+ */
5
+ import { DOCUMENT_ENDPOINTS, DOCUMENT_TYPE_MDA, DOCUMENT_TYPE_SOA, DOCUMENT_TYPE_AGREEMENT, DOCUMENT_SERVICE, } from '@cranberry-money/shared-constants';
6
+ let configuredApiClient = null;
7
+ export const configureDocuments = (apiClient) => {
8
+ configuredApiClient = apiClient;
9
+ };
10
+ const getConfiguredClient = () => {
11
+ if (!configuredApiClient) {
12
+ throw new Error('Documents service not configured. Call configureDocuments(apiClient) before using document functions.');
13
+ }
14
+ return configuredApiClient;
15
+ };
16
+ /**
17
+ * Generate a Managed Discretionary Account (MDA) document
18
+ */
19
+ export const generateMDADocument = () => {
20
+ return getConfiguredClient().post(DOCUMENT_ENDPOINTS.MDA, {});
21
+ };
22
+ /**
23
+ * Generate a Statement of Advice (SOA) document
24
+ */
25
+ export const generateSOADocument = () => {
26
+ return getConfiguredClient().post(DOCUMENT_ENDPOINTS.SOA, {});
27
+ };
28
+ /**
29
+ * Generate a Client Agreement document
30
+ */
31
+ export const generateAgreementDocument = () => {
32
+ return getConfiguredClient().post(DOCUMENT_ENDPOINTS.AGREEMENT, {});
33
+ };
34
+ /**
35
+ * Generic function to generate any document type
36
+ */
37
+ export const generateDocument = (documentType) => {
38
+ switch (documentType) {
39
+ case DOCUMENT_TYPE_MDA:
40
+ return generateMDADocument();
41
+ case DOCUMENT_TYPE_SOA:
42
+ return generateSOADocument();
43
+ case DOCUMENT_TYPE_AGREEMENT:
44
+ return generateAgreementDocument();
45
+ default:
46
+ throw new Error(`Unsupported document type: ${documentType}`);
47
+ }
48
+ };
49
+ /**
50
+ * Download a generated MDA document by UUID
51
+ */
52
+ export const downloadMDADocument = (documentUuid) => {
53
+ return getConfiguredClient().get(`${DOCUMENT_ENDPOINTS.MDA}${documentUuid}/`, {
54
+ responseType: DOCUMENT_SERVICE.RESPONSE_TYPE_BLOB,
55
+ headers: {
56
+ Accept: DOCUMENT_SERVICE.CONTENT_TYPE_ANY,
57
+ },
58
+ });
59
+ };
60
+ /**
61
+ * Download a generated SOA document by UUID
62
+ */
63
+ export const downloadSOADocument = (documentUuid) => {
64
+ return getConfiguredClient().get(`${DOCUMENT_ENDPOINTS.SOA}${documentUuid}/`, {
65
+ responseType: DOCUMENT_SERVICE.RESPONSE_TYPE_BLOB,
66
+ headers: {
67
+ Accept: DOCUMENT_SERVICE.CONTENT_TYPE_ANY,
68
+ },
69
+ });
70
+ };
71
+ /**
72
+ * Download a generated Client Agreement document by UUID
73
+ */
74
+ export const downloadAgreementDocument = (documentUuid) => {
75
+ return getConfiguredClient().get(`${DOCUMENT_ENDPOINTS.AGREEMENT}${documentUuid}/`, {
76
+ responseType: DOCUMENT_SERVICE.RESPONSE_TYPE_BLOB,
77
+ headers: {
78
+ Accept: DOCUMENT_SERVICE.CONTENT_TYPE_ANY,
79
+ },
80
+ });
81
+ };
82
+ /**
83
+ * Generic function to download any document type
84
+ */
85
+ export const downloadDocument = (documentType, documentUuid) => {
86
+ switch (documentType) {
87
+ case DOCUMENT_TYPE_MDA:
88
+ return downloadMDADocument(documentUuid);
89
+ case DOCUMENT_TYPE_SOA:
90
+ return downloadSOADocument(documentUuid);
91
+ case DOCUMENT_TYPE_AGREEMENT:
92
+ return downloadAgreementDocument(documentUuid);
93
+ default:
94
+ throw new Error(`Unsupported document type: ${documentType}`);
95
+ }
96
+ };
97
+ /**
98
+ * Sign a generated MDA document by UUID
99
+ */
100
+ export const signMDADocument = (documentUuid) => {
101
+ return getConfiguredClient().patch(`${DOCUMENT_ENDPOINTS.MDA}${documentUuid}/`, {});
102
+ };
103
+ /**
104
+ * Sign a generated SOA document by UUID
105
+ */
106
+ export const signSOADocument = (documentUuid) => {
107
+ return getConfiguredClient().patch(`${DOCUMENT_ENDPOINTS.SOA}${documentUuid}/`, {});
108
+ };
109
+ /**
110
+ * Sign a generated Client Agreement document by UUID
111
+ */
112
+ export const signAgreementDocument = (documentUuid) => {
113
+ return getConfiguredClient().patch(`${DOCUMENT_ENDPOINTS.AGREEMENT}${documentUuid}/`, {});
114
+ };
115
+ /**
116
+ * Generic function to sign any document type
117
+ */
118
+ export const signDocument = (documentType, documentUuid) => {
119
+ switch (documentType) {
120
+ case DOCUMENT_TYPE_MDA:
121
+ return signMDADocument(documentUuid);
122
+ case DOCUMENT_TYPE_SOA:
123
+ return signSOADocument(documentUuid);
124
+ case DOCUMENT_TYPE_AGREEMENT:
125
+ return signAgreementDocument(documentUuid);
126
+ default:
127
+ throw new Error(`Unsupported document type: ${documentType}`);
128
+ }
129
+ };
130
+ //# sourceMappingURL=documents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"documents.js","sourceRoot":"","sources":["../src/documents.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -4,4 +4,18 @@
4
4
  */
5
5
  export { configureAuth, signin, signout, signup, verifyEmail, resendVerificationCode, refreshToken, } from './auth';
6
6
  export { configureAccounts, getAccounts, createAccount, updateAccount, getAccountByUuid, } from './accounts';
7
+ export { configureBanks, getBankAccounts, getBankAccountByUuid, } from './banks';
8
+ export { configureCashAccounts, getCashAccounts, getCashAccountByUuid, getAccountCashAccounts, formatBalance, } from './cashAccounts';
9
+ export { configureCashAccountTransactions, getCashAccountTransactions, getCashAccountTransactionByUuid, getCashAccountTransactionsByAccount, getTransactionsByDateRange, getRecentTransactions, formatTransactionAmount, getTransactionTypeLabel, } from './cashAccountTransactions';
10
+ export type { PaginatedCashAccountTransactions } from './cashAccountTransactions';
11
+ export { configureCountries, getCountries, getCountryByUuid, getAvailableCountries, searchCountries, } from './countries';
12
+ export { configureDocuments, generateMDADocument, generateSOADocument, generateAgreementDocument, generateDocument, downloadMDADocument, downloadSOADocument, downloadAgreementDocument, downloadDocument, signMDADocument, signSOADocument, signAgreementDocument, signDocument, } from './documents';
13
+ export type { DocumentType } from './documents';
14
+ export { configureIndustries, getIndustries, getIndustryByUuid, searchIndustries, getIndustriesBySector, } from './industries';
15
+ export { configureInstruments, getInstruments, getInstrumentByUuid, getInstrumentSnapshots, getInstrumentSnapshotsFiltered, getBatchInstrumentSnapshots, searchInstruments, getInstrumentsByExchange, getETFs, getFunds, } from './instruments';
16
+ export { configureInvestmentPreferences, createInvestmentPreference, updateInvestmentPreference, deleteInvestmentPreference, getInvestmentPreferences, } from './investmentPreferences';
17
+ export { configurePortfolioTemplates, getPortfolioTemplates, getRecommendedPortfolioTemplate, getPortfolioTemplateAllocations, applyPortfolioTemplate, } from './portfolioTemplates';
18
+ export { configurePortfolioAllocations, getPortfolioAllocations, createAssetAllocation, updateAssetAllocation, deleteAssetAllocation, } from './portfolioAllocations';
19
+ export { configurePortfolioHoldings, getAssetHoldings, getPortfolioHoldings, getAssetHoldingByUuid, getAssetHoldingSnapshots, getAssetHoldingSnapshotById, } from './portfolioHoldings';
20
+ export { configurePortfolios, getPortfolios, createPortfolio, updatePortfolio, getPortfolioByUuid, generateRebalancingTrades, } from './portfolios';
7
21
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,aAAa,EACb,MAAM,EACN,OAAO,EACP,MAAM,EACN,WAAW,EACX,sBAAsB,EACtB,YAAY,GACb,MAAM,QAAQ,CAAC;AAGhB,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,aAAa,EACb,gBAAgB,GACjB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,aAAa,EACb,MAAM,EACN,OAAO,EACP,MAAM,EACN,WAAW,EACX,sBAAsB,EACtB,YAAY,GACb,MAAM,QAAQ,CAAC;AAGhB,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,aAAa,EACb,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,cAAc,EACd,eAAe,EACf,oBAAoB,GACrB,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,oBAAoB,EACpB,sBAAsB,EACtB,aAAa,GACd,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,gCAAgC,EAChC,0BAA0B,EAC1B,+BAA+B,EAC/B,mCAAmC,EACnC,0BAA0B,EAC1B,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EAAE,gCAAgC,EAAE,MAAM,2BAA2B,CAAC;AAGlF,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,qBAAqB,EACrB,eAAe,GAChB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,yBAAyB,EACzB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,yBAAyB,EACzB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,YAAY,GACb,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,mBAAmB,EACnB,sBAAsB,EACtB,8BAA8B,EAC9B,2BAA2B,EAC3B,iBAAiB,EACjB,wBAAwB,EACxB,OAAO,EACP,QAAQ,GACT,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,8BAA8B,EAC9B,0BAA0B,EAC1B,0BAA0B,EAC1B,0BAA0B,EAC1B,wBAAwB,GACzB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,2BAA2B,EAC3B,qBAAqB,EACrB,+BAA+B,EAC/B,+BAA+B,EAC/B,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,6BAA6B,EAC7B,uBAAuB,EACvB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,0BAA0B,EAC1B,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,wBAAwB,EACxB,2BAA2B,GAC5B,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,cAAc,CAAC"}
package/dist/index.js CHANGED
@@ -6,4 +6,28 @@
6
6
  export { configureAuth, signin, signout, signup, verifyEmail, resendVerificationCode, refreshToken, } from './auth';
7
7
  // Account services
8
8
  export { configureAccounts, getAccounts, createAccount, updateAccount, getAccountByUuid, } from './accounts';
9
+ // Bank services
10
+ export { configureBanks, getBankAccounts, getBankAccountByUuid, } from './banks';
11
+ // Cash account services
12
+ export { configureCashAccounts, getCashAccounts, getCashAccountByUuid, getAccountCashAccounts, formatBalance, } from './cashAccounts';
13
+ // Cash account transaction services
14
+ export { configureCashAccountTransactions, getCashAccountTransactions, getCashAccountTransactionByUuid, getCashAccountTransactionsByAccount, getTransactionsByDateRange, getRecentTransactions, formatTransactionAmount, getTransactionTypeLabel, } from './cashAccountTransactions';
15
+ // Country services
16
+ export { configureCountries, getCountries, getCountryByUuid, getAvailableCountries, searchCountries, } from './countries';
17
+ // Document services
18
+ export { configureDocuments, generateMDADocument, generateSOADocument, generateAgreementDocument, generateDocument, downloadMDADocument, downloadSOADocument, downloadAgreementDocument, downloadDocument, signMDADocument, signSOADocument, signAgreementDocument, signDocument, } from './documents';
19
+ // Industry services
20
+ export { configureIndustries, getIndustries, getIndustryByUuid, searchIndustries, getIndustriesBySector, } from './industries';
21
+ // Instrument services
22
+ export { configureInstruments, getInstruments, getInstrumentByUuid, getInstrumentSnapshots, getInstrumentSnapshotsFiltered, getBatchInstrumentSnapshots, searchInstruments, getInstrumentsByExchange, getETFs, getFunds, } from './instruments';
23
+ // Investment preferences services
24
+ export { configureInvestmentPreferences, createInvestmentPreference, updateInvestmentPreference, deleteInvestmentPreference, getInvestmentPreferences, } from './investmentPreferences';
25
+ // Portfolio template services
26
+ export { configurePortfolioTemplates, getPortfolioTemplates, getRecommendedPortfolioTemplate, getPortfolioTemplateAllocations, applyPortfolioTemplate, } from './portfolioTemplates';
27
+ // Portfolio allocation services
28
+ export { configurePortfolioAllocations, getPortfolioAllocations, createAssetAllocation, updateAssetAllocation, deleteAssetAllocation, } from './portfolioAllocations';
29
+ // Portfolio holdings services
30
+ export { configurePortfolioHoldings, getAssetHoldings, getPortfolioHoldings, getAssetHoldingByUuid, getAssetHoldingSnapshots, getAssetHoldingSnapshotById, } from './portfolioHoldings';
31
+ // Portfolio services
32
+ export { configurePortfolios, getPortfolios, createPortfolio, updatePortfolio, getPortfolioByUuid, generateRebalancingTrades, } from './portfolios';
9
33
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,0BAA0B;AAC1B,OAAO,EACL,aAAa,EACb,MAAM,EACN,OAAO,EACP,MAAM,EACN,WAAW,EACX,sBAAsB,EACtB,YAAY,GACb,MAAM,QAAQ,CAAC;AAEhB,mBAAmB;AACnB,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,aAAa,EACb,gBAAgB,GACjB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,0BAA0B;AAC1B,OAAO,EACL,aAAa,EACb,MAAM,EACN,OAAO,EACP,MAAM,EACN,WAAW,EACX,sBAAsB,EACtB,YAAY,GACb,MAAM,QAAQ,CAAC;AAEhB,mBAAmB;AACnB,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,aAAa,EACb,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAEpB,gBAAgB;AAChB,OAAO,EACL,cAAc,EACd,eAAe,EACf,oBAAoB,GACrB,MAAM,SAAS,CAAC;AAEjB,wBAAwB;AACxB,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,oBAAoB,EACpB,sBAAsB,EACtB,aAAa,GACd,MAAM,gBAAgB,CAAC;AAExB,oCAAoC;AACpC,OAAO,EACL,gCAAgC,EAChC,0BAA0B,EAC1B,+BAA+B,EAC/B,mCAAmC,EACnC,0BAA0B,EAC1B,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,2BAA2B,CAAC;AAGnC,mBAAmB;AACnB,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,qBAAqB,EACrB,eAAe,GAChB,MAAM,aAAa,CAAC;AAErB,oBAAoB;AACpB,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,yBAAyB,EACzB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,yBAAyB,EACzB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,YAAY,GACb,MAAM,aAAa,CAAC;AAGrB,oBAAoB;AACpB,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,cAAc,CAAC;AAEtB,sBAAsB;AACtB,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,mBAAmB,EACnB,sBAAsB,EACtB,8BAA8B,EAC9B,2BAA2B,EAC3B,iBAAiB,EACjB,wBAAwB,EACxB,OAAO,EACP,QAAQ,GACT,MAAM,eAAe,CAAC;AAEvB,kCAAkC;AAClC,OAAO,EACL,8BAA8B,EAC9B,0BAA0B,EAC1B,0BAA0B,EAC1B,0BAA0B,EAC1B,wBAAwB,GACzB,MAAM,yBAAyB,CAAC;AAEjC,8BAA8B;AAC9B,OAAO,EACL,2BAA2B,EAC3B,qBAAqB,EACrB,+BAA+B,EAC/B,+BAA+B,EAC/B,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAE9B,gCAAgC;AAChC,OAAO,EACL,6BAA6B,EAC7B,uBAAuB,EACvB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAEhC,8BAA8B;AAC9B,OAAO,EACL,0BAA0B,EAC1B,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,wBAAwB,EACxB,2BAA2B,GAC5B,MAAM,qBAAqB,CAAC;AAE7B,qBAAqB;AACrB,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,cAAc,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Platform-agnostic industries service functions.
3
+ * Works with any axios-compatible API client.
4
+ */
5
+ import { AxiosInstance } from 'axios';
6
+ import type { Industry, IndustryQueryParams, PaginatedResponse } from '@cranberry-money/shared-types';
7
+ export declare const configureIndustries: (apiClient: AxiosInstance) => void;
8
+ /**
9
+ * Get list of industries with optional filtering
10
+ */
11
+ export declare const getIndustries: (params?: IndustryQueryParams) => Promise<import("axios").AxiosResponse<PaginatedResponse<Industry>, any>>;
12
+ /**
13
+ * Get industry details by UUID
14
+ */
15
+ export declare const getIndustryByUuid: (uuid: string) => Promise<import("axios").AxiosResponse<Industry, any>>;
16
+ /**
17
+ * Search industries by name
18
+ */
19
+ export declare const searchIndustries: (searchTerm: string, params?: Omit<IndustryQueryParams, "name">) => Promise<import("axios").AxiosResponse<PaginatedResponse<Industry>, any>>;
20
+ /**
21
+ * Get industries by sector
22
+ */
23
+ export declare const getIndustriesBySector: (sectorUuid: string, params?: Omit<IndustryQueryParams, "sector">) => Promise<import("axios").AxiosResponse<PaginatedResponse<Industry>, any>>;
24
+ //# sourceMappingURL=industries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"industries.d.ts","sourceRoot":"","sources":["../src/industries.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,KAAK,EAAE,QAAQ,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAKtG,eAAO,MAAM,mBAAmB,GAAI,WAAW,aAAa,KAAG,IAE9D,CAAC;AAWF;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,SAAS,mBAAmB,6EAUzD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,MAAM,MAAM,0DAE7C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,YAAY,MAAM,EAAE,SAAS,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,6EAK9F,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,GAAI,YAAY,MAAM,EAAE,SAAS,IAAI,CAAC,mBAAmB,EAAE,QAAQ,CAAC,6EAKrG,CAAC"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Platform-agnostic industries service functions.
3
+ * Works with any axios-compatible API client.
4
+ */
5
+ import { INDUSTRY_ENDPOINTS } from '@cranberry-money/shared-constants';
6
+ let configuredApiClient = null;
7
+ export const configureIndustries = (apiClient) => {
8
+ configuredApiClient = apiClient;
9
+ };
10
+ const getConfiguredClient = () => {
11
+ if (!configuredApiClient) {
12
+ throw new Error('Industries service not configured. Call configureIndustries(apiClient) before using industry functions.');
13
+ }
14
+ return configuredApiClient;
15
+ };
16
+ /**
17
+ * Get list of industries with optional filtering
18
+ */
19
+ export const getIndustries = (params) => {
20
+ const queryParams = {};
21
+ if (params?.name)
22
+ queryParams.name = params.name;
23
+ if (params?.sector)
24
+ queryParams.sector = params.sector;
25
+ if (params?.order_by)
26
+ queryParams.order_by = params.order_by;
27
+ if (params?.page)
28
+ queryParams.page = params.page.toString();
29
+ if (params?.page_size)
30
+ queryParams.page_size = params.page_size.toString();
31
+ return getConfiguredClient().get(INDUSTRY_ENDPOINTS.BASE, { params: queryParams });
32
+ };
33
+ /**
34
+ * Get industry details by UUID
35
+ */
36
+ export const getIndustryByUuid = (uuid) => {
37
+ return getConfiguredClient().get(`${INDUSTRY_ENDPOINTS.BASE}${uuid}/`);
38
+ };
39
+ /**
40
+ * Search industries by name
41
+ */
42
+ export const searchIndustries = (searchTerm, params) => {
43
+ return getIndustries({
44
+ ...params,
45
+ name: searchTerm,
46
+ });
47
+ };
48
+ /**
49
+ * Get industries by sector
50
+ */
51
+ export const getIndustriesBySector = (sectorUuid, params) => {
52
+ return getIndustries({
53
+ ...params,
54
+ sector: sectorUuid,
55
+ });
56
+ };
57
+ //# sourceMappingURL=industries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"industries.js","sourceRoot":"","sources":["../src/industries.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAEvE,IAAI,mBAAmB,GAAyB,IAAI,CAAC;AAErD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,SAAwB,EAAQ,EAAE;IACpE,mBAAmB,GAAG,SAAS,CAAC;AAClC,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,GAAkB,EAAE;IAC9C,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,yGAAyG,CAC1G,CAAC;IACJ,CAAC;IACD,OAAO,mBAAmB,CAAC;AAC7B,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAA4B,EAAE,EAAE;IAC5D,MAAM,WAAW,GAA2B,EAAE,CAAC;IAE/C,IAAI,MAAM,EAAE,IAAI;QAAE,WAAW,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IACjD,IAAI,MAAM,EAAE,MAAM;QAAE,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IACvD,IAAI,MAAM,EAAE,QAAQ;QAAE,WAAW,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC7D,IAAI,MAAM,EAAE,IAAI;QAAE,WAAW,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC5D,IAAI,MAAM,EAAE,SAAS;QAAE,WAAW,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;IAE3E,OAAO,mBAAmB,EAAE,CAAC,GAAG,CAA8B,kBAAkB,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;AAClH,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,IAAY,EAAE,EAAE;IAChD,OAAO,mBAAmB,EAAE,CAAC,GAAG,CAAW,GAAG,kBAAkB,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC;AACnF,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,UAAkB,EAAE,MAA0C,EAAE,EAAE;IACjG,OAAO,aAAa,CAAC;QACnB,GAAG,MAAM;QACT,IAAI,EAAE,UAAU;KACjB,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,UAAkB,EAAE,MAA4C,EAAE,EAAE;IACxG,OAAO,aAAa,CAAC;QACnB,GAAG,MAAM;QACT,MAAM,EAAE,UAAU;KACnB,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Platform-agnostic instruments service functions.
3
+ * Works with any axios-compatible API client.
4
+ */
5
+ import { AxiosInstance } from 'axios';
6
+ import type { Instrument, InstrumentSnapshot, InstrumentsQueryParams, PaginatedResponse } from '@cranberry-money/shared-types';
7
+ export declare const configureInstruments: (apiClient: AxiosInstance) => void;
8
+ export declare const getInstruments: (params?: InstrumentsQueryParams) => Promise<import("axios").AxiosResponse<PaginatedResponse<Instrument>, any>>;
9
+ export declare const getInstrumentByUuid: (uuid: string) => Promise<import("axios").AxiosResponse<Instrument, any>>;
10
+ export declare const getInstrumentSnapshots: (instrumentUuid: string) => Promise<import("axios").AxiosResponse<InstrumentSnapshot[], any>>;
11
+ export declare const getInstrumentSnapshotsFiltered: (instrumentUuid: string, params?: {
12
+ start_date?: string;
13
+ end_date?: string;
14
+ min_price?: number;
15
+ max_price?: number;
16
+ }) => Promise<import("axios").AxiosResponse<InstrumentSnapshot[], any>>;
17
+ /**
18
+ * Batch fetch snapshots for multiple instruments with date filtering
19
+ * This optimizes API calls by using Promise.all with proper error handling
20
+ */
21
+ export declare const getBatchInstrumentSnapshots: (requests: Array<{
22
+ instrumentUuid: string;
23
+ start_date?: string;
24
+ end_date?: string;
25
+ min_price?: number;
26
+ max_price?: number;
27
+ }>) => Promise<Array<{
28
+ instrumentUuid: string;
29
+ data?: InstrumentSnapshot[];
30
+ error?: string;
31
+ }>>;
32
+ export declare const searchInstruments: (searchTerm: string, params?: Omit<InstrumentsQueryParams, "search">) => Promise<import("axios").AxiosResponse<PaginatedResponse<Instrument>, any>>;
33
+ export declare const getInstrumentsByExchange: (exchangeUuid: string, params?: Omit<InstrumentsQueryParams, "exchange_uuid">) => Promise<import("axios").AxiosResponse<PaginatedResponse<Instrument>, any>>;
34
+ export declare const getETFs: (params?: Omit<InstrumentsQueryParams, "is_etf">) => Promise<import("axios").AxiosResponse<PaginatedResponse<Instrument>, any>>;
35
+ export declare const getFunds: (params?: Omit<InstrumentsQueryParams, "is_fund">) => Promise<import("axios").AxiosResponse<PaginatedResponse<Instrument>, any>>;
36
+ //# sourceMappingURL=instruments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instruments.d.ts","sourceRoot":"","sources":["../src/instruments.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,KAAK,EACV,UAAU,EACV,kBAAkB,EAClB,sBAAsB,EACtB,iBAAiB,EAClB,MAAM,+BAA+B,CAAC;AAKvC,eAAO,MAAM,oBAAoB,GAAI,WAAW,aAAa,KAAG,IAE/D,CAAC;AAWF,eAAO,MAAM,cAAc,GAAI,SAAS,sBAAsB,+EAsB7D,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,MAAM,MAAM,4DAE/C,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,gBAAgB,MAAM,sEAE5D,CAAC;AAEF,eAAO,MAAM,8BAA8B,GACzC,gBAAgB,MAAM,EACtB,SAAS;IACP,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,sEAKF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,2BAA2B,GACtC,UAAU,KAAK,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC,KACD,OAAO,CACR,KAAK,CAAC;IACJ,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC,CAmBH,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,YAAY,MAAM,EAAE,SAAS,IAAI,CAAC,sBAAsB,EAAE,QAAQ,CAAC,+EAKpG,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACnC,cAAc,MAAM,EACpB,SAAS,IAAI,CAAC,sBAAsB,EAAE,eAAe,CAAC,+EAMvD,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,SAAS,IAAI,CAAC,sBAAsB,EAAE,QAAQ,CAAC,+EAKtE,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,SAAS,IAAI,CAAC,sBAAsB,EAAE,SAAS,CAAC,+EAKxE,CAAC"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * Platform-agnostic instruments service functions.
3
+ * Works with any axios-compatible API client.
4
+ */
5
+ import { INSTRUMENT_ENDPOINTS } from '@cranberry-money/shared-constants';
6
+ let configuredApiClient = null;
7
+ export const configureInstruments = (apiClient) => {
8
+ configuredApiClient = apiClient;
9
+ };
10
+ const getConfiguredClient = () => {
11
+ if (!configuredApiClient) {
12
+ throw new Error('Instruments service not configured. Call configureInstruments(apiClient) before using instrument functions.');
13
+ }
14
+ return configuredApiClient;
15
+ };
16
+ export const getInstruments = (params) => {
17
+ const transformedParams = { ...params };
18
+ if (params?.is_etf !== undefined) {
19
+ transformedParams.is_etf = params.is_etf;
20
+ }
21
+ if (params?.is_fund !== undefined) {
22
+ transformedParams.is_fund = params.is_fund;
23
+ }
24
+ const apiParams = {
25
+ ...transformedParams,
26
+ };
27
+ if (params?.min_price !== undefined) {
28
+ apiParams.min_price = params.min_price.toString();
29
+ }
30
+ if (params?.max_price !== undefined) {
31
+ apiParams.max_price = params.max_price.toString();
32
+ }
33
+ return getConfiguredClient().get(INSTRUMENT_ENDPOINTS.BASE, {
34
+ params: apiParams,
35
+ });
36
+ };
37
+ export const getInstrumentByUuid = (uuid) => {
38
+ return getConfiguredClient().get(`${INSTRUMENT_ENDPOINTS.BASE}${uuid}/`);
39
+ };
40
+ export const getInstrumentSnapshots = (instrumentUuid) => {
41
+ return getConfiguredClient().get(`${INSTRUMENT_ENDPOINTS.BASE}${instrumentUuid}/snapshots/`);
42
+ };
43
+ export const getInstrumentSnapshotsFiltered = (instrumentUuid, params) => {
44
+ return getConfiguredClient().get(`${INSTRUMENT_ENDPOINTS.BASE}${instrumentUuid}/snapshots/`, {
45
+ params,
46
+ });
47
+ };
48
+ /**
49
+ * Batch fetch snapshots for multiple instruments with date filtering
50
+ * This optimizes API calls by using Promise.all with proper error handling
51
+ */
52
+ export const getBatchInstrumentSnapshots = async (requests) => {
53
+ const promises = requests.map(async ({ instrumentUuid, ...params }) => {
54
+ try {
55
+ const response = await getInstrumentSnapshotsFiltered(instrumentUuid, params);
56
+ return {
57
+ instrumentUuid,
58
+ data: response.data,
59
+ };
60
+ }
61
+ catch (error) {
62
+ console.error(`Failed to fetch snapshots for instrument ${instrumentUuid}:`, error);
63
+ return {
64
+ instrumentUuid,
65
+ error: error instanceof Error ? error.message : 'Failed to fetch data',
66
+ };
67
+ }
68
+ });
69
+ return Promise.all(promises);
70
+ };
71
+ export const searchInstruments = (searchTerm, params) => {
72
+ return getInstruments({
73
+ ...params,
74
+ search: searchTerm,
75
+ });
76
+ };
77
+ export const getInstrumentsByExchange = (exchangeUuid, params) => {
78
+ return getInstruments({
79
+ ...params,
80
+ exchange_uuid: exchangeUuid,
81
+ });
82
+ };
83
+ export const getETFs = (params) => {
84
+ return getInstruments({
85
+ ...params,
86
+ is_etf: true,
87
+ });
88
+ };
89
+ export const getFunds = (params) => {
90
+ return getInstruments({
91
+ ...params,
92
+ is_fund: true,
93
+ });
94
+ };
95
+ //# sourceMappingURL=instruments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instruments.js","sourceRoot":"","sources":["../src/instruments.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Platform-agnostic investment preferences service functions.
3
+ * Works with any axios-compatible API client.
4
+ */
5
+ import { AxiosInstance } from 'axios';
6
+ import type { InvestmentPreference, CreateInvestmentPreference, UpdateInvestmentPreference, PaginatedResponse } from '@cranberry-money/shared-types';
7
+ export declare const configureInvestmentPreferences: (apiClient: AxiosInstance) => void;
8
+ type PaginatedInvestmentPreferences = PaginatedResponse<InvestmentPreference>;
9
+ export declare const createInvestmentPreference: (data: CreateInvestmentPreference) => Promise<import("axios").AxiosResponse<InvestmentPreference, any>>;
10
+ export declare const updateInvestmentPreference: (uuid: string, data: UpdateInvestmentPreference) => Promise<import("axios").AxiosResponse<InvestmentPreference, any>>;
11
+ export declare const deleteInvestmentPreference: (uuid: string) => Promise<import("axios").AxiosResponse<void, any>>;
12
+ export declare const getInvestmentPreferences: () => Promise<import("axios").AxiosResponse<PaginatedInvestmentPreferences, any>>;
13
+ export {};
14
+ //# sourceMappingURL=investmentPreferences.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"investmentPreferences.d.ts","sourceRoot":"","sources":["../src/investmentPreferences.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtC,OAAO,KAAK,EACV,oBAAoB,EACpB,0BAA0B,EAC1B,0BAA0B,EAC1B,iBAAiB,EAClB,MAAM,+BAA+B,CAAC;AAIvC,eAAO,MAAM,8BAA8B,GAAI,WAAW,aAAa,KAAG,IAEzE,CAAC;AAWF,KAAK,8BAA8B,GAAG,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;AAG9E,eAAO,MAAM,0BAA0B,GAAI,MAAM,0BAA0B,sEAE1E,CAAC;AAGF,eAAO,MAAM,0BAA0B,GAAI,MAAM,MAAM,EAAE,MAAM,0BAA0B,sEAExF,CAAC;AAGF,eAAO,MAAM,0BAA0B,GAAI,MAAM,MAAM,sDAEtD,CAAC;AAGF,eAAO,MAAM,wBAAwB,mFAEpC,CAAC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Platform-agnostic investment preferences service functions.
3
+ * Works with any axios-compatible API client.
4
+ */
5
+ import { INVESTMENT_PREFERENCES_ENDPOINTS } from '@cranberry-money/shared-constants';
6
+ let configuredApiClient = null;
7
+ export const configureInvestmentPreferences = (apiClient) => {
8
+ configuredApiClient = apiClient;
9
+ };
10
+ const getConfiguredClient = () => {
11
+ if (!configuredApiClient) {
12
+ throw new Error('Investment preferences service not configured. Call configureInvestmentPreferences(apiClient) before using investment preferences functions.');
13
+ }
14
+ return configuredApiClient;
15
+ };
16
+ // Create a new investment preference
17
+ export const createInvestmentPreference = (data) => {
18
+ return getConfiguredClient().post(INVESTMENT_PREFERENCES_ENDPOINTS.BASE, data);
19
+ };
20
+ // Update an existing investment preference
21
+ export const updateInvestmentPreference = (uuid, data) => {
22
+ return getConfiguredClient().patch(INVESTMENT_PREFERENCES_ENDPOINTS.DETAIL(uuid), data);
23
+ };
24
+ // Delete an investment preference
25
+ export const deleteInvestmentPreference = (uuid) => {
26
+ return getConfiguredClient().delete(INVESTMENT_PREFERENCES_ENDPOINTS.DETAIL(uuid));
27
+ };
28
+ // Get all investment preferences for the current user
29
+ export const getInvestmentPreferences = () => {
30
+ return getConfiguredClient().get(INVESTMENT_PREFERENCES_ENDPOINTS.BASE);
31
+ };
32
+ //# sourceMappingURL=investmentPreferences.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"investmentPreferences.js","sourceRoot":"","sources":["../src/investmentPreferences.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,gCAAgC,EAAE,MAAM,mCAAmC,CAAC;AAQrF,IAAI,mBAAmB,GAAyB,IAAI,CAAC;AAErD,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,SAAwB,EAAQ,EAAE;IAC/E,mBAAmB,GAAG,SAAS,CAAC;AAClC,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,GAAkB,EAAE;IAC9C,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,8IAA8I,CAC/I,CAAC;IACJ,CAAC;IACD,OAAO,mBAAmB,CAAC;AAC7B,CAAC,CAAC;AAIF,qCAAqC;AACrC,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,IAAgC,EAAE,EAAE;IAC7E,OAAO,mBAAmB,EAAE,CAAC,IAAI,CAAuB,gCAAgC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACvG,CAAC,CAAC;AAEF,2CAA2C;AAC3C,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,IAAY,EAAE,IAAgC,EAAE,EAAE;IAC3F,OAAO,mBAAmB,EAAE,CAAC,KAAK,CAAuB,gCAAgC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;AAChH,CAAC,CAAC;AAEF,kCAAkC;AAClC,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,IAAY,EAAE,EAAE;IACzD,OAAO,mBAAmB,EAAE,CAAC,MAAM,CAAO,gCAAgC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3F,CAAC,CAAC;AAEF,sDAAsD;AACtD,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,EAAE;IAC3C,OAAO,mBAAmB,EAAE,CAAC,GAAG,CAAiC,gCAAgC,CAAC,IAAI,CAAC,CAAC;AAC1G,CAAC,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Platform-agnostic portfolio allocations service functions.
3
+ * Works with any axios-compatible API client.
4
+ */
5
+ import { AxiosInstance } from 'axios';
6
+ import type { AssetAllocation, CreateAssetAllocation, UpdateAssetAllocation } from '@cranberry-money/shared-types';
7
+ export declare const configurePortfolioAllocations: (apiClient: AxiosInstance) => void;
8
+ export declare const getPortfolioAllocations: (portfolioUuid: string) => Promise<import("axios").AxiosResponse<AssetAllocation[], any>>;
9
+ export declare const createAssetAllocation: (data: CreateAssetAllocation) => Promise<import("axios").AxiosResponse<AssetAllocation, any>>;
10
+ export declare const updateAssetAllocation: (uuid: string, data: UpdateAssetAllocation) => Promise<import("axios").AxiosResponse<AssetAllocation, any>>;
11
+ export declare const deleteAssetAllocation: (uuid: string) => Promise<import("axios").AxiosResponse<void, any>>;
12
+ //# sourceMappingURL=portfolioAllocations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portfolioAllocations.d.ts","sourceRoot":"","sources":["../src/portfolioAllocations.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAGtC,OAAO,KAAK,EAAE,eAAe,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAInH,eAAO,MAAM,6BAA6B,GAAI,WAAW,aAAa,KAAG,IAExE,CAAC;AAcF,eAAO,MAAM,uBAAuB,GAAI,eAAe,MAAM,mEAK5D,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,MAAM,qBAAqB,iEAEhE,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,MAAM,MAAM,EAAE,MAAM,qBAAqB,iEAE9E,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,MAAM,MAAM,sDAEjD,CAAC"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Platform-agnostic portfolio allocations service functions.
3
+ * Works with any axios-compatible API client.
4
+ */
5
+ import { PORTFOLIO_ENDPOINTS, ASSET_ALLOCATION_ENDPOINTS } from '@cranberry-money/shared-constants';
6
+ import { ORDER_BY_CREATED_AT, QUERY_PARAM_ORDER_BY } from '@cranberry-money/shared-constants';
7
+ let configuredApiClient = null;
8
+ export const configurePortfolioAllocations = (apiClient) => {
9
+ configuredApiClient = apiClient;
10
+ };
11
+ const getConfiguredClient = () => {
12
+ if (!configuredApiClient) {
13
+ throw new Error('Portfolio allocations service not configured. Call configurePortfolioAllocations(apiClient) before using portfolio allocation functions.');
14
+ }
15
+ return configuredApiClient;
16
+ };
17
+ // ASSET ALLOCATIONS API FUNCTIONS
18
+ // Fetch allocations for a specific portfolio
19
+ export const getPortfolioAllocations = (portfolioUuid) => {
20
+ // Always sort by created_at to show allocations in their creation order
21
+ return getConfiguredClient().get(`${PORTFOLIO_ENDPOINTS.BASE}${portfolioUuid}/allocations/`, {
22
+ params: { [QUERY_PARAM_ORDER_BY]: ORDER_BY_CREATED_AT },
23
+ });
24
+ };
25
+ export const createAssetAllocation = (data) => {
26
+ return getConfiguredClient().post(ASSET_ALLOCATION_ENDPOINTS.BASE, data);
27
+ };
28
+ export const updateAssetAllocation = (uuid, data) => {
29
+ return getConfiguredClient().patch(`${ASSET_ALLOCATION_ENDPOINTS.BASE}${uuid}/`, data);
30
+ };
31
+ export const deleteAssetAllocation = (uuid) => {
32
+ return getConfiguredClient().delete(`${ASSET_ALLOCATION_ENDPOINTS.BASE}${uuid}/`);
33
+ };
34
+ //# sourceMappingURL=portfolioAllocations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portfolioAllocations.js","sourceRoot":"","sources":["../src/portfolioAllocations.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AACpG,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAG9F,IAAI,mBAAmB,GAAyB,IAAI,CAAC;AAErD,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,SAAwB,EAAQ,EAAE;IAC9E,mBAAmB,GAAG,SAAS,CAAC;AAClC,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,GAAkB,EAAE;IAC9C,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,0IAA0I,CAC3I,CAAC;IACJ,CAAC;IACD,OAAO,mBAAmB,CAAC;AAC7B,CAAC,CAAC;AAEF,kCAAkC;AAElC,6CAA6C;AAC7C,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,aAAqB,EAAE,EAAE;IAC/D,wEAAwE;IACxE,OAAO,mBAAmB,EAAE,CAAC,GAAG,CAAoB,GAAG,mBAAmB,CAAC,IAAI,GAAG,aAAa,eAAe,EAAE;QAC9G,MAAM,EAAE,EAAE,CAAC,oBAAoB,CAAC,EAAE,mBAAmB,EAAE;KACxD,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,IAA2B,EAAE,EAAE;IACnE,OAAO,mBAAmB,EAAE,CAAC,IAAI,CAAkB,0BAA0B,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC5F,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,IAAY,EAAE,IAA2B,EAAE,EAAE;IACjF,OAAO,mBAAmB,EAAE,CAAC,KAAK,CAAkB,GAAG,0BAA0B,CAAC,IAAI,GAAG,IAAI,GAAG,EAAE,IAAI,CAAC,CAAC;AAC1G,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,IAAY,EAAE,EAAE;IACpD,OAAO,mBAAmB,EAAE,CAAC,MAAM,CAAO,GAAG,0BAA0B,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC;AAC1F,CAAC,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Platform-agnostic portfolio holdings service functions.
3
+ * Works with any axios-compatible API client.
4
+ */
5
+ import { AxiosInstance } from 'axios';
6
+ import type { AssetHolding, AssetHoldingSnapshot, AssetHoldingFilters, AssetHoldingSnapshotFilters, PaginatedResponse } from '@cranberry-money/shared-types';
7
+ export declare const configurePortfolioHoldings: (apiClient: AxiosInstance) => void;
8
+ export declare const getAssetHoldings: (filters?: AssetHoldingFilters) => Promise<import("axios").AxiosResponse<PaginatedResponse<AssetHolding>, any>>;
9
+ export declare const getPortfolioHoldings: (portfolioUuid: string, order_by?: string) => Promise<import("axios").AxiosResponse<AssetHolding[], any>>;
10
+ export declare const getAssetHoldingByUuid: (uuid: string) => Promise<import("axios").AxiosResponse<AssetHolding, any>>;
11
+ export declare const getAssetHoldingSnapshots: (filters?: AssetHoldingSnapshotFilters) => Promise<import("axios").AxiosResponse<PaginatedResponse<AssetHoldingSnapshot>, any>>;
12
+ export declare const getAssetHoldingSnapshotById: (id: number) => Promise<import("axios").AxiosResponse<AssetHoldingSnapshot, any>>;
13
+ //# sourceMappingURL=portfolioHoldings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portfolioHoldings.d.ts","sourceRoot":"","sources":["../src/portfolioHoldings.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAMtC,OAAO,KAAK,EACV,YAAY,EACZ,oBAAoB,EACpB,mBAAmB,EACnB,2BAA2B,EAC3B,iBAAiB,EAClB,MAAM,+BAA+B,CAAC;AAIvC,eAAO,MAAM,0BAA0B,GAAI,WAAW,aAAa,KAAG,IAErE,CAAC;AAcF,eAAO,MAAM,gBAAgB,GAAI,UAAU,mBAAmB,iFAW7D,CAAC;AAGF,eAAO,MAAM,oBAAoB,GAAI,eAAe,MAAM,EAAE,WAAW,MAAM,gEAK5E,CAAC;AAGF,eAAO,MAAM,qBAAqB,GAAI,MAAM,MAAM,8DAEjD,CAAC;AAKF,eAAO,MAAM,wBAAwB,GAAI,UAAU,2BAA2B,yFAW7E,CAAC;AAGF,eAAO,MAAM,2BAA2B,GAAI,IAAI,MAAM,sEAErD,CAAC"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Platform-agnostic portfolio holdings service functions.
3
+ * Works with any axios-compatible API client.
4
+ */
5
+ import { PORTFOLIO_ENDPOINTS, ASSET_HOLDING_ENDPOINTS, ASSET_HOLDING_SNAPSHOT_ENDPOINTS, } from '@cranberry-money/shared-constants';
6
+ let configuredApiClient = null;
7
+ export const configurePortfolioHoldings = (apiClient) => {
8
+ configuredApiClient = apiClient;
9
+ };
10
+ const getConfiguredClient = () => {
11
+ if (!configuredApiClient) {
12
+ throw new Error('Portfolio holdings service not configured. Call configurePortfolioHoldings(apiClient) before using portfolio holdings functions.');
13
+ }
14
+ return configuredApiClient;
15
+ };
16
+ // ASSET HOLDINGS API FUNCTIONS
17
+ // Fetch asset holdings with optional filtering
18
+ export const getAssetHoldings = (filters) => {
19
+ const params = {};
20
+ if (filters?.portfolio_id)
21
+ params.portfolio_id = filters.portfolio_id;
22
+ if (filters?.portfolio_uuid)
23
+ params.portfolio_uuid = filters.portfolio_uuid;
24
+ if (filters?.instrument)
25
+ params.instrument = filters.instrument;
26
+ if (filters?.min_quantity)
27
+ params.min_quantity = filters.min_quantity.toString();
28
+ if (filters?.max_quantity)
29
+ params.max_quantity = filters.max_quantity.toString();
30
+ if (filters?.order_by)
31
+ params.order_by = filters.order_by;
32
+ return getConfiguredClient().get(ASSET_HOLDING_ENDPOINTS.BASE, { params });
33
+ };
34
+ // Fetch holdings for a specific portfolio
35
+ export const getPortfolioHoldings = (portfolioUuid, order_by) => {
36
+ const params = {};
37
+ if (order_by)
38
+ params.order_by = order_by;
39
+ return getConfiguredClient().get(`${PORTFOLIO_ENDPOINTS.BASE}${portfolioUuid}/holdings/`, { params });
40
+ };
41
+ // Get asset holding by UUID
42
+ export const getAssetHoldingByUuid = (uuid) => {
43
+ return getConfiguredClient().get(`${ASSET_HOLDING_ENDPOINTS.BASE}${uuid}/`);
44
+ };
45
+ // ASSET HOLDING SNAPSHOTS API FUNCTIONS
46
+ // Fetch asset holding snapshots with optional filtering
47
+ export const getAssetHoldingSnapshots = (filters) => {
48
+ const params = {};
49
+ if (filters?.asset_holding_id)
50
+ params.asset_holding_id = filters.asset_holding_id;
51
+ if (filters?.portfolio_id)
52
+ params.portfolio_id = filters.portfolio_id;
53
+ if (filters?.reason)
54
+ params.reason = filters.reason;
55
+ if (filters?.start_date)
56
+ params.start_date = filters.start_date;
57
+ if (filters?.end_date)
58
+ params.end_date = filters.end_date;
59
+ if (filters?.order_by)
60
+ params.order_by = filters.order_by;
61
+ return getConfiguredClient().get(ASSET_HOLDING_SNAPSHOT_ENDPOINTS.BASE, { params });
62
+ };
63
+ // Get asset holding snapshot by ID
64
+ export const getAssetHoldingSnapshotById = (id) => {
65
+ return getConfiguredClient().get(`${ASSET_HOLDING_SNAPSHOT_ENDPOINTS.BASE}${id}/`);
66
+ };
67
+ //# sourceMappingURL=portfolioHoldings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portfolioHoldings.js","sourceRoot":"","sources":["../src/portfolioHoldings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Platform-agnostic portfolio templates service functions.
3
+ * Works with any axios-compatible API client.
4
+ */
5
+ import { AxiosInstance } from 'axios';
6
+ import type { PortfolioTemplate, TargetAssetAllocation, ApplyTemplateResponse, PaginatedResponse } from '@cranberry-money/shared-types';
7
+ export declare const configurePortfolioTemplates: (apiClient: AxiosInstance) => void;
8
+ type PaginatedPortfolioTemplates = PaginatedResponse<PortfolioTemplate>;
9
+ export declare const getPortfolioTemplates: () => Promise<import("axios").AxiosResponse<PaginatedPortfolioTemplates, any>>;
10
+ export declare const getRecommendedPortfolioTemplate: () => Promise<import("axios").AxiosResponse<PortfolioTemplate, any>>;
11
+ export declare const getPortfolioTemplateAllocations: (templateUuid: string) => Promise<import("axios").AxiosResponse<TargetAssetAllocation[], any>>;
12
+ export declare const applyPortfolioTemplate: (templateUuid: string) => Promise<import("axios").AxiosResponse<ApplyTemplateResponse, any>>;
13
+ export {};
14
+ //# sourceMappingURL=portfolioTemplates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portfolioTemplates.d.ts","sourceRoot":"","sources":["../src/portfolioTemplates.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtC,OAAO,KAAK,EACV,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,+BAA+B,CAAC;AAIvC,eAAO,MAAM,2BAA2B,GAAI,WAAW,aAAa,KAAG,IAEtE,CAAC;AAWF,KAAK,2BAA2B,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;AAExE,eAAO,MAAM,qBAAqB,gFAEjC,CAAC;AAEF,eAAO,MAAM,+BAA+B,sEAE3C,CAAC;AAEF,eAAO,MAAM,+BAA+B,GAAI,cAAc,MAAM,yEAEnE,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,cAAc,MAAM,uEAE1D,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Platform-agnostic portfolio templates service functions.
3
+ * Works with any axios-compatible API client.
4
+ */
5
+ import { PORTFOLIO_TEMPLATE_ENDPOINTS } from '@cranberry-money/shared-constants';
6
+ let configuredApiClient = null;
7
+ export const configurePortfolioTemplates = (apiClient) => {
8
+ configuredApiClient = apiClient;
9
+ };
10
+ const getConfiguredClient = () => {
11
+ if (!configuredApiClient) {
12
+ throw new Error('Portfolio templates service not configured. Call configurePortfolioTemplates(apiClient) before using portfolio template functions.');
13
+ }
14
+ return configuredApiClient;
15
+ };
16
+ export const getPortfolioTemplates = () => {
17
+ return getConfiguredClient().get(PORTFOLIO_TEMPLATE_ENDPOINTS.BASE);
18
+ };
19
+ export const getRecommendedPortfolioTemplate = () => {
20
+ return getConfiguredClient().get(PORTFOLIO_TEMPLATE_ENDPOINTS.RECOMMENDED);
21
+ };
22
+ export const getPortfolioTemplateAllocations = (templateUuid) => {
23
+ return getConfiguredClient().get(`${PORTFOLIO_TEMPLATE_ENDPOINTS.BASE}${templateUuid}/allocations/`);
24
+ };
25
+ export const applyPortfolioTemplate = (templateUuid) => {
26
+ return getConfiguredClient().post(`${PORTFOLIO_TEMPLATE_ENDPOINTS.BASE}${templateUuid}/apply/`, {});
27
+ };
28
+ //# sourceMappingURL=portfolioTemplates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portfolioTemplates.js","sourceRoot":"","sources":["../src/portfolioTemplates.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AAQjF,IAAI,mBAAmB,GAAyB,IAAI,CAAC;AAErD,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,SAAwB,EAAQ,EAAE;IAC5E,mBAAmB,GAAG,SAAS,CAAC;AAClC,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,GAAkB,EAAE;IAC9C,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,oIAAoI,CACrI,CAAC;IACJ,CAAC;IACD,OAAO,mBAAmB,CAAC;AAC7B,CAAC,CAAC;AAIF,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,EAAE;IACxC,OAAO,mBAAmB,EAAE,CAAC,GAAG,CAA8B,4BAA4B,CAAC,IAAI,CAAC,CAAC;AACnG,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,+BAA+B,GAAG,GAAG,EAAE;IAClD,OAAO,mBAAmB,EAAE,CAAC,GAAG,CAAoB,4BAA4B,CAAC,WAAW,CAAC,CAAC;AAChG,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,YAAoB,EAAE,EAAE;IACtE,OAAO,mBAAmB,EAAE,CAAC,GAAG,CAA0B,GAAG,4BAA4B,CAAC,IAAI,GAAG,YAAY,eAAe,CAAC,CAAC;AAChI,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,YAAoB,EAAE,EAAE;IAC7D,OAAO,mBAAmB,EAAE,CAAC,IAAI,CAAwB,GAAG,4BAA4B,CAAC,IAAI,GAAG,YAAY,SAAS,EAAE,EAAE,CAAC,CAAC;AAC7H,CAAC,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Platform-agnostic portfolios service functions.
3
+ * Works with any axios-compatible API client.
4
+ */
5
+ import { AxiosInstance } from 'axios';
6
+ import type { Portfolio, CreatePortfolio, UpdatePortfolio, BlueberryRebalancingTradesGenerationResponse as RebalancingTradesGenerationResponse, PaginatedResponse } from '@cranberry-money/shared-types';
7
+ export declare const configurePortfolios: (apiClient: AxiosInstance) => void;
8
+ type PaginatedPortfolios = PaginatedResponse<Portfolio>;
9
+ export declare const getPortfolios: () => Promise<import("axios").AxiosResponse<PaginatedPortfolios, any>>;
10
+ export declare const createPortfolio: (data: CreatePortfolio) => Promise<import("axios").AxiosResponse<Portfolio, any>>;
11
+ export declare const updatePortfolio: (uuid: string, data: UpdatePortfolio) => Promise<import("axios").AxiosResponse<Portfolio, any>>;
12
+ export declare const getPortfolioByUuid: (uuid: string) => Promise<import("axios").AxiosResponse<Portfolio, any>>;
13
+ export declare const generateRebalancingTrades: (portfolioUuid: string) => Promise<import("axios").AxiosResponse<RebalancingTradesGenerationResponse, any>>;
14
+ export {};
15
+ //# sourceMappingURL=portfolios.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portfolios.d.ts","sourceRoot":"","sources":["../src/portfolios.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtC,OAAO,KAAK,EACV,SAAS,EACT,eAAe,EACf,eAAe,EACf,4CAA4C,IAAI,mCAAmC,EACnF,iBAAiB,EAClB,MAAM,+BAA+B,CAAC;AAIvC,eAAO,MAAM,mBAAmB,GAAI,WAAW,aAAa,KAAG,IAE9D,CAAC;AAWF,KAAK,mBAAmB,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;AAGxD,eAAO,MAAM,aAAa,wEAEzB,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,MAAM,eAAe,2DAEpD,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,MAAM,MAAM,EAAE,MAAM,eAAe,2DAElE,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,MAAM,MAAM,2DAE9C,CAAC;AAGF,eAAO,MAAM,yBAAyB,GAAI,eAAe,MAAM,qFAI9D,CAAC"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Platform-agnostic portfolios service functions.
3
+ * Works with any axios-compatible API client.
4
+ */
5
+ import { PORTFOLIO_ENDPOINTS } from '@cranberry-money/shared-constants';
6
+ let configuredApiClient = null;
7
+ export const configurePortfolios = (apiClient) => {
8
+ configuredApiClient = apiClient;
9
+ };
10
+ const getConfiguredClient = () => {
11
+ if (!configuredApiClient) {
12
+ throw new Error('Portfolios service not configured. Call configurePortfolios(apiClient) before using portfolio functions.');
13
+ }
14
+ return configuredApiClient;
15
+ };
16
+ // Portfolio CRUD operations
17
+ export const getPortfolios = () => {
18
+ return getConfiguredClient().get(PORTFOLIO_ENDPOINTS.BASE);
19
+ };
20
+ export const createPortfolio = (data) => {
21
+ return getConfiguredClient().post(PORTFOLIO_ENDPOINTS.BASE, data);
22
+ };
23
+ export const updatePortfolio = (uuid, data) => {
24
+ return getConfiguredClient().patch(`${PORTFOLIO_ENDPOINTS.BASE}${uuid}/`, data);
25
+ };
26
+ export const getPortfolioByUuid = (uuid) => {
27
+ return getConfiguredClient().get(`${PORTFOLIO_ENDPOINTS.BASE}${uuid}/`);
28
+ };
29
+ // Portfolio rebalancing operations
30
+ export const generateRebalancingTrades = (portfolioUuid) => {
31
+ return getConfiguredClient().post(`${PORTFOLIO_ENDPOINTS.BASE}${portfolioUuid}/generate-rebalancing-trades/`);
32
+ };
33
+ //# sourceMappingURL=portfolios.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portfolios.js","sourceRoot":"","sources":["../src/portfolios.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AASxE,IAAI,mBAAmB,GAAyB,IAAI,CAAC;AAErD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,SAAwB,EAAQ,EAAE;IACpE,mBAAmB,GAAG,SAAS,CAAC;AAClC,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,GAAkB,EAAE;IAC9C,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,0GAA0G,CAC3G,CAAC;IACJ,CAAC;IACD,OAAO,mBAAmB,CAAC;AAC7B,CAAC,CAAC;AAIF,4BAA4B;AAC5B,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,EAAE;IAChC,OAAO,mBAAmB,EAAE,CAAC,GAAG,CAAsB,mBAAmB,CAAC,IAAI,CAAC,CAAC;AAClF,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAqB,EAAE,EAAE;IACvD,OAAO,mBAAmB,EAAE,CAAC,IAAI,CAAY,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC/E,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,IAAqB,EAAE,EAAE;IACrE,OAAO,mBAAmB,EAAE,CAAC,KAAK,CAAY,GAAG,mBAAmB,CAAC,IAAI,GAAG,IAAI,GAAG,EAAE,IAAI,CAAC,CAAC;AAC7F,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,IAAY,EAAE,EAAE;IACjD,OAAO,mBAAmB,EAAE,CAAC,GAAG,CAAY,GAAG,mBAAmB,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC;AACrF,CAAC,CAAC;AAEF,mCAAmC;AACnC,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,aAAqB,EAAE,EAAE;IACjE,OAAO,mBAAmB,EAAE,CAAC,IAAI,CAC/B,GAAG,mBAAmB,CAAC,IAAI,GAAG,aAAa,+BAA+B,CAC3E,CAAC;AACJ,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cranberry-money/shared-services",
3
- "version": "10.0.4",
3
+ "version": "10.0.5",
4
4
  "description": "Platform-agnostic API services with pure functions and dependency injection. Includes auth, portfolios, instruments, countries, sectors, and more.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",