@cranberry-money/shared-services 3.0.1 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/dist/index.d.ts +0 -27
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +1 -115
  4. package/package.json +4 -3
  5. package/dist/api/functional-client.d.ts +0 -66
  6. package/dist/api/functional-client.d.ts.map +0 -1
  7. package/dist/api/functional-client.js +0 -165
  8. package/dist/auth/functional/auth-operations.d.ts +0 -116
  9. package/dist/auth/functional/auth-operations.d.ts.map +0 -1
  10. package/dist/auth/functional/auth-operations.js +0 -246
  11. package/dist/auth/functional/auth-state.d.ts +0 -38
  12. package/dist/auth/functional/auth-state.d.ts.map +0 -1
  13. package/dist/auth/functional/auth-state.js +0 -87
  14. package/dist/auth/functional/token-storage.d.ts +0 -44
  15. package/dist/auth/functional/token-storage.d.ts.map +0 -1
  16. package/dist/auth/functional/token-storage.js +0 -178
  17. package/dist/auth/react/AuthProvider.d.ts +0 -92
  18. package/dist/auth/react/AuthProvider.d.ts.map +0 -1
  19. package/dist/auth/react/AuthProvider.js +0 -207
  20. package/dist/integration/blueberry-integration.d.ts +0 -21
  21. package/dist/integration/blueberry-integration.d.ts.map +0 -1
  22. package/dist/integration/blueberry-integration.js +0 -109
  23. package/dist/integration/index.d.ts +0 -8
  24. package/dist/integration/index.d.ts.map +0 -1
  25. package/dist/integration/index.js +0 -18
  26. package/dist/services/accounts.d.ts +0 -220
  27. package/dist/services/accounts.d.ts.map +0 -1
  28. package/dist/services/accounts.js +0 -175
  29. package/dist/services/banks.d.ts +0 -123
  30. package/dist/services/banks.d.ts.map +0 -1
  31. package/dist/services/banks.js +0 -151
  32. package/dist/services/cash-accounts.d.ts +0 -112
  33. package/dist/services/cash-accounts.d.ts.map +0 -1
  34. package/dist/services/cash-accounts.js +0 -222
  35. package/dist/services/documents.d.ts +0 -143
  36. package/dist/services/documents.d.ts.map +0 -1
  37. package/dist/services/documents.js +0 -253
  38. package/dist/services/factories/account-factory.d.ts +0 -16
  39. package/dist/services/factories/account-factory.d.ts.map +0 -1
  40. package/dist/services/factories/account-factory.js +0 -79
  41. package/dist/services/factories/auth-factory.d.ts +0 -23
  42. package/dist/services/factories/auth-factory.d.ts.map +0 -1
  43. package/dist/services/factories/auth-factory.js +0 -75
  44. package/dist/services/factories/bank-factory.d.ts +0 -16
  45. package/dist/services/factories/bank-factory.d.ts.map +0 -1
  46. package/dist/services/factories/bank-factory.js +0 -72
  47. package/dist/services/factories/cash-account-factory.d.ts +0 -16
  48. package/dist/services/factories/cash-account-factory.d.ts.map +0 -1
  49. package/dist/services/factories/cash-account-factory.js +0 -74
  50. package/dist/services/factories/document-factory.d.ts +0 -16
  51. package/dist/services/factories/document-factory.d.ts.map +0 -1
  52. package/dist/services/factories/document-factory.js +0 -85
  53. package/dist/services/factories/index.d.ts +0 -21
  54. package/dist/services/factories/index.d.ts.map +0 -1
  55. package/dist/services/factories/index.js +0 -40
  56. package/dist/services/factories/instrument-factory.d.ts +0 -16
  57. package/dist/services/factories/instrument-factory.d.ts.map +0 -1
  58. package/dist/services/factories/instrument-factory.js +0 -68
  59. package/dist/services/factories/master-factory.d.ts +0 -74
  60. package/dist/services/factories/master-factory.d.ts.map +0 -1
  61. package/dist/services/factories/master-factory.js +0 -183
  62. package/dist/services/factories/portfolio-factory.d.ts +0 -16
  63. package/dist/services/factories/portfolio-factory.d.ts.map +0 -1
  64. package/dist/services/factories/portfolio-factory.js +0 -74
  65. package/dist/services/factories/portfolio-template-factory.d.ts +0 -16
  66. package/dist/services/factories/portfolio-template-factory.d.ts.map +0 -1
  67. package/dist/services/factories/portfolio-template-factory.js +0 -76
  68. package/dist/services/factories/reference-data-factory.d.ts +0 -16
  69. package/dist/services/factories/reference-data-factory.d.ts.map +0 -1
  70. package/dist/services/factories/reference-data-factory.js +0 -86
  71. package/dist/services/factories/tax-residency-factory.d.ts +0 -16
  72. package/dist/services/factories/tax-residency-factory.d.ts.map +0 -1
  73. package/dist/services/factories/tax-residency-factory.js +0 -73
  74. package/dist/services/factories/trade-factory.d.ts +0 -16
  75. package/dist/services/factories/trade-factory.d.ts.map +0 -1
  76. package/dist/services/factories/trade-factory.js +0 -79
  77. package/dist/services/factories/types.d.ts +0 -250
  78. package/dist/services/factories/types.d.ts.map +0 -1
  79. package/dist/services/factories/types.js +0 -32
  80. package/dist/services/factories/withdrawal-factory.d.ts +0 -16
  81. package/dist/services/factories/withdrawal-factory.d.ts.map +0 -1
  82. package/dist/services/factories/withdrawal-factory.js +0 -78
  83. package/dist/services/instruments.d.ts +0 -138
  84. package/dist/services/instruments.d.ts.map +0 -1
  85. package/dist/services/instruments.js +0 -178
  86. package/dist/services/portfolio-templates.d.ts +0 -142
  87. package/dist/services/portfolio-templates.d.ts.map +0 -1
  88. package/dist/services/portfolio-templates.js +0 -201
  89. package/dist/services/portfolios.d.ts +0 -157
  90. package/dist/services/portfolios.d.ts.map +0 -1
  91. package/dist/services/portfolios.js +0 -144
  92. package/dist/services/reference-data.d.ts +0 -185
  93. package/dist/services/reference-data.d.ts.map +0 -1
  94. package/dist/services/reference-data.js +0 -245
  95. package/dist/services/tax-residencies.d.ts +0 -83
  96. package/dist/services/tax-residencies.d.ts.map +0 -1
  97. package/dist/services/tax-residencies.js +0 -179
  98. package/dist/services/trades.d.ts +0 -190
  99. package/dist/services/trades.d.ts.map +0 -1
  100. package/dist/services/trades.js +0 -207
  101. package/dist/services/withdrawals.d.ts +0 -236
  102. package/dist/services/withdrawals.d.ts.map +0 -1
  103. package/dist/services/withdrawals.js +0 -345
package/dist/index.d.ts CHANGED
@@ -1,28 +1 @@
1
- /**
2
- * Cranberry Shared Services v3.0.0 - Clean Functional Architecture
3
- *
4
- * Pure functional implementation with explicit dependency injection.
5
- * No global state, no classes - just clean, composable functions.
6
- */
7
- export { createServiceFactory, createWebServiceFactory, createMobileServiceFactory, } from './services/factories';
8
- export type { ServiceFactory, ServiceFactoryConfig, PlatformConfig, CoreDependencies, AuthServiceFactory, PortfolioServiceFactory, AccountServiceFactory, TradeServiceFactory, WithdrawalServiceFactory, InstrumentServiceFactory, CashAccountServiceFactory, BankServiceFactory, DocumentServiceFactory, PortfolioTemplateServiceFactory, TaxResidencyServiceFactory, ReferenceDataServiceFactory, } from './services/factories';
9
- export { type ApiClient, type ApiClientConfig, type RequestConfig, type ApiError, createApiClient, createWebApiClient, createMobileApiClient, isApiError, } from './api/functional-client';
10
- export { type AuthState, type UserProfile, type TokenPair, createInitialAuthState, createLoadingAuthState, createAuthenticatedState, createUnauthenticatedState, createErrorState, updateTokens, clearError, isValidAuthState, hasValidTokens, getDisplayName, requiresVerification, requiresSignupCompletion, } from './auth/functional/auth-state';
11
- export { type AuthDependencies, type SigninPayload, type SignupPayload, type TokenStorage, signin, signout, signup, refreshTokens, getUserProfile, verifyEmail, resendVerificationCode, initializeFromStorage, validateSigninCredentials, validateSignupData, } from './auth/functional/auth-operations';
12
- export { createWebTokenStorage, createMobileTokenStorage, createMemoryTokenStorage, isSecureStorageAvailable, migrateTokensFromLegacyStorage, type SecureStoreInterface, } from './auth/functional/token-storage';
13
- export { AuthProvider, useAuth, useAuthState, useAuthActions, withAuth, AuthGuard, } from './auth/react/AuthProvider';
14
- export * as PortfolioServices from './services/portfolios';
15
- export * as ReferenceDataServices from './services/reference-data';
16
- export * as AccountServices from './services/accounts';
17
- export * as TradeServices from './services/trades';
18
- export * as WithdrawalServices from './services/withdrawals';
19
- export * as InstrumentServices from './services/instruments';
20
- export * as CashAccountServices from './services/cash-accounts';
21
- export * as BankServices from './services/banks';
22
- export * as DocumentServices from './services/documents';
23
- export * as PortfolioTemplateServices from './services/portfolio-templates';
24
- export * as TaxResidencyServices from './services/tax-residencies';
25
- export { BlueberryApp, BlueberryAuthProvider, BlueberryDashboard, setupBlueberryServices, enableFunctionalPortfolios, getMigrationProgress, } from './integration/blueberry-integration';
26
- export { type AuthState as LegacyAuthState, type UserProfile as LegacyUserProfile, type TokenPair as LegacyTokenPair, } from './auth/functional/auth-state';
27
- export { type ApiClient as LegacyApiClient, type ApiClientConfig as LegacyApiClientConfig, createApiClient as createLegacyApiClient, } from './api/functional-client';
28
1
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,sBAAsB,CAAC;AAE9B,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,EACvB,qBAAqB,EACrB,mBAAmB,EACnB,wBAAwB,EACxB,wBAAwB,EACxB,yBAAyB,EACzB,kBAAkB,EAClB,sBAAsB,EACtB,+BAA+B,EAC/B,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,QAAQ,EACb,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,UAAU,GACX,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACxB,0BAA0B,EAC1B,gBAAgB,EAChB,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,MAAM,EACN,OAAO,EACP,MAAM,EACN,aAAa,EACb,cAAc,EACd,WAAW,EACX,sBAAsB,EACtB,qBAAqB,EACrB,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAEL,qBAAqB,EACrB,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EACxB,8BAA8B,EAC9B,KAAK,oBAAoB,GAC1B,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAEL,YAAY,EACZ,OAAO,EACP,YAAY,EACZ,cAAc,EACd,QAAQ,EACR,SAAS,GACV,MAAM,2BAA2B,CAAC;AAGnC,OAAO,KAAK,iBAAiB,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,qBAAqB,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,eAAe,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,aAAa,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,kBAAkB,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,kBAAkB,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,mBAAmB,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,YAAY,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,gBAAgB,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,yBAAyB,MAAM,gCAAgC,CAAC;AAC5E,OAAO,KAAK,oBAAoB,MAAM,4BAA4B,CAAC;AAGnE,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,0BAA0B,EAC1B,oBAAoB,GACrB,MAAM,qCAAqC,CAAC;AAI7C,OAAO,EACL,KAAK,SAAS,IAAI,eAAe,EACjC,KAAK,WAAW,IAAI,iBAAiB,EACrC,KAAK,SAAS,IAAI,eAAe,GAClC,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,KAAK,SAAS,IAAI,eAAe,EACjC,KAAK,eAAe,IAAI,qBAAqB,EAC7C,eAAe,IAAI,qBAAqB,GACzC,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js CHANGED
@@ -1,116 +1,2 @@
1
1
  "use strict";
2
- /**
3
- * Cranberry Shared Services v3.0.0 - Clean Functional Architecture
4
- *
5
- * Pure functional implementation with explicit dependency injection.
6
- * No global state, no classes - just clean, composable functions.
7
- */
8
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
- if (k2 === undefined) k2 = k;
10
- var desc = Object.getOwnPropertyDescriptor(m, k);
11
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
- desc = { enumerable: true, get: function() { return m[k]; } };
13
- }
14
- Object.defineProperty(o, k2, desc);
15
- }) : (function(o, m, k, k2) {
16
- if (k2 === undefined) k2 = k;
17
- o[k2] = m[k];
18
- }));
19
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
20
- Object.defineProperty(o, "default", { enumerable: true, value: v });
21
- }) : function(o, v) {
22
- o["default"] = v;
23
- });
24
- var __importStar = (this && this.__importStar) || (function () {
25
- var ownKeys = function(o) {
26
- ownKeys = Object.getOwnPropertyNames || function (o) {
27
- var ar = [];
28
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
- return ar;
30
- };
31
- return ownKeys(o);
32
- };
33
- return function (mod) {
34
- if (mod && mod.__esModule) return mod;
35
- var result = {};
36
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
- __setModuleDefault(result, mod);
38
- return result;
39
- };
40
- })();
41
- Object.defineProperty(exports, "__esModule", { value: true });
42
- exports.PortfolioTemplateServices = exports.DocumentServices = exports.BankServices = exports.CashAccountServices = exports.InstrumentServices = exports.WithdrawalServices = exports.TradeServices = exports.AccountServices = exports.ReferenceDataServices = exports.PortfolioServices = exports.AuthGuard = exports.withAuth = exports.useAuthActions = exports.useAuthState = exports.useAuth = exports.AuthProvider = exports.migrateTokensFromLegacyStorage = exports.isSecureStorageAvailable = exports.createMemoryTokenStorage = exports.createMobileTokenStorage = exports.createWebTokenStorage = exports.validateSignupData = exports.validateSigninCredentials = exports.initializeFromStorage = exports.resendVerificationCode = exports.verifyEmail = exports.getUserProfile = exports.refreshTokens = exports.signup = exports.signout = exports.signin = exports.requiresSignupCompletion = exports.requiresVerification = exports.getDisplayName = exports.hasValidTokens = exports.isValidAuthState = exports.clearError = exports.updateTokens = exports.createErrorState = exports.createUnauthenticatedState = exports.createAuthenticatedState = exports.createLoadingAuthState = exports.createInitialAuthState = exports.isApiError = exports.createMobileApiClient = exports.createWebApiClient = exports.createApiClient = exports.createMobileServiceFactory = exports.createWebServiceFactory = exports.createServiceFactory = void 0;
43
- exports.createLegacyApiClient = exports.getMigrationProgress = exports.enableFunctionalPortfolios = exports.setupBlueberryServices = exports.BlueberryDashboard = exports.BlueberryAuthProvider = exports.BlueberryApp = exports.TaxResidencyServices = void 0;
44
- // Core Service Factory Pattern - Main entry point
45
- var factories_1 = require("./services/factories");
46
- Object.defineProperty(exports, "createServiceFactory", { enumerable: true, get: function () { return factories_1.createServiceFactory; } });
47
- Object.defineProperty(exports, "createWebServiceFactory", { enumerable: true, get: function () { return factories_1.createWebServiceFactory; } });
48
- Object.defineProperty(exports, "createMobileServiceFactory", { enumerable: true, get: function () { return factories_1.createMobileServiceFactory; } });
49
- // Functional API Client
50
- var functional_client_1 = require("./api/functional-client");
51
- Object.defineProperty(exports, "createApiClient", { enumerable: true, get: function () { return functional_client_1.createApiClient; } });
52
- Object.defineProperty(exports, "createWebApiClient", { enumerable: true, get: function () { return functional_client_1.createWebApiClient; } });
53
- Object.defineProperty(exports, "createMobileApiClient", { enumerable: true, get: function () { return functional_client_1.createMobileApiClient; } });
54
- Object.defineProperty(exports, "isApiError", { enumerable: true, get: function () { return functional_client_1.isApiError; } });
55
- // Functional Authentication System
56
- var auth_state_1 = require("./auth/functional/auth-state");
57
- Object.defineProperty(exports, "createInitialAuthState", { enumerable: true, get: function () { return auth_state_1.createInitialAuthState; } });
58
- Object.defineProperty(exports, "createLoadingAuthState", { enumerable: true, get: function () { return auth_state_1.createLoadingAuthState; } });
59
- Object.defineProperty(exports, "createAuthenticatedState", { enumerable: true, get: function () { return auth_state_1.createAuthenticatedState; } });
60
- Object.defineProperty(exports, "createUnauthenticatedState", { enumerable: true, get: function () { return auth_state_1.createUnauthenticatedState; } });
61
- Object.defineProperty(exports, "createErrorState", { enumerable: true, get: function () { return auth_state_1.createErrorState; } });
62
- Object.defineProperty(exports, "updateTokens", { enumerable: true, get: function () { return auth_state_1.updateTokens; } });
63
- Object.defineProperty(exports, "clearError", { enumerable: true, get: function () { return auth_state_1.clearError; } });
64
- Object.defineProperty(exports, "isValidAuthState", { enumerable: true, get: function () { return auth_state_1.isValidAuthState; } });
65
- Object.defineProperty(exports, "hasValidTokens", { enumerable: true, get: function () { return auth_state_1.hasValidTokens; } });
66
- Object.defineProperty(exports, "getDisplayName", { enumerable: true, get: function () { return auth_state_1.getDisplayName; } });
67
- Object.defineProperty(exports, "requiresVerification", { enumerable: true, get: function () { return auth_state_1.requiresVerification; } });
68
- Object.defineProperty(exports, "requiresSignupCompletion", { enumerable: true, get: function () { return auth_state_1.requiresSignupCompletion; } });
69
- var auth_operations_1 = require("./auth/functional/auth-operations");
70
- Object.defineProperty(exports, "signin", { enumerable: true, get: function () { return auth_operations_1.signin; } });
71
- Object.defineProperty(exports, "signout", { enumerable: true, get: function () { return auth_operations_1.signout; } });
72
- Object.defineProperty(exports, "signup", { enumerable: true, get: function () { return auth_operations_1.signup; } });
73
- Object.defineProperty(exports, "refreshTokens", { enumerable: true, get: function () { return auth_operations_1.refreshTokens; } });
74
- Object.defineProperty(exports, "getUserProfile", { enumerable: true, get: function () { return auth_operations_1.getUserProfile; } });
75
- Object.defineProperty(exports, "verifyEmail", { enumerable: true, get: function () { return auth_operations_1.verifyEmail; } });
76
- Object.defineProperty(exports, "resendVerificationCode", { enumerable: true, get: function () { return auth_operations_1.resendVerificationCode; } });
77
- Object.defineProperty(exports, "initializeFromStorage", { enumerable: true, get: function () { return auth_operations_1.initializeFromStorage; } });
78
- Object.defineProperty(exports, "validateSigninCredentials", { enumerable: true, get: function () { return auth_operations_1.validateSigninCredentials; } });
79
- Object.defineProperty(exports, "validateSignupData", { enumerable: true, get: function () { return auth_operations_1.validateSignupData; } });
80
- var token_storage_1 = require("./auth/functional/token-storage");
81
- // Token storage implementations
82
- Object.defineProperty(exports, "createWebTokenStorage", { enumerable: true, get: function () { return token_storage_1.createWebTokenStorage; } });
83
- Object.defineProperty(exports, "createMobileTokenStorage", { enumerable: true, get: function () { return token_storage_1.createMobileTokenStorage; } });
84
- Object.defineProperty(exports, "createMemoryTokenStorage", { enumerable: true, get: function () { return token_storage_1.createMemoryTokenStorage; } });
85
- Object.defineProperty(exports, "isSecureStorageAvailable", { enumerable: true, get: function () { return token_storage_1.isSecureStorageAvailable; } });
86
- Object.defineProperty(exports, "migrateTokensFromLegacyStorage", { enumerable: true, get: function () { return token_storage_1.migrateTokensFromLegacyStorage; } });
87
- var AuthProvider_1 = require("./auth/react/AuthProvider");
88
- // React integration
89
- Object.defineProperty(exports, "AuthProvider", { enumerable: true, get: function () { return AuthProvider_1.AuthProvider; } });
90
- Object.defineProperty(exports, "useAuth", { enumerable: true, get: function () { return AuthProvider_1.useAuth; } });
91
- Object.defineProperty(exports, "useAuthState", { enumerable: true, get: function () { return AuthProvider_1.useAuthState; } });
92
- Object.defineProperty(exports, "useAuthActions", { enumerable: true, get: function () { return AuthProvider_1.useAuthActions; } });
93
- Object.defineProperty(exports, "withAuth", { enumerable: true, get: function () { return AuthProvider_1.withAuth; } });
94
- Object.defineProperty(exports, "AuthGuard", { enumerable: true, get: function () { return AuthProvider_1.AuthGuard; } });
95
- // Domain Services - Pure Functional Implementations
96
- exports.PortfolioServices = __importStar(require("./services/portfolios"));
97
- exports.ReferenceDataServices = __importStar(require("./services/reference-data"));
98
- exports.AccountServices = __importStar(require("./services/accounts"));
99
- exports.TradeServices = __importStar(require("./services/trades"));
100
- exports.WithdrawalServices = __importStar(require("./services/withdrawals"));
101
- exports.InstrumentServices = __importStar(require("./services/instruments"));
102
- exports.CashAccountServices = __importStar(require("./services/cash-accounts"));
103
- exports.BankServices = __importStar(require("./services/banks"));
104
- exports.DocumentServices = __importStar(require("./services/documents"));
105
- exports.PortfolioTemplateServices = __importStar(require("./services/portfolio-templates"));
106
- exports.TaxResidencyServices = __importStar(require("./services/tax-residencies"));
107
- // Integration Examples and Usage Patterns
108
- var blueberry_integration_1 = require("./integration/blueberry-integration");
109
- Object.defineProperty(exports, "BlueberryApp", { enumerable: true, get: function () { return blueberry_integration_1.BlueberryApp; } });
110
- Object.defineProperty(exports, "BlueberryAuthProvider", { enumerable: true, get: function () { return blueberry_integration_1.BlueberryAuthProvider; } });
111
- Object.defineProperty(exports, "BlueberryDashboard", { enumerable: true, get: function () { return blueberry_integration_1.BlueberryDashboard; } });
112
- Object.defineProperty(exports, "setupBlueberryServices", { enumerable: true, get: function () { return blueberry_integration_1.setupBlueberryServices; } });
113
- Object.defineProperty(exports, "enableFunctionalPortfolios", { enumerable: true, get: function () { return blueberry_integration_1.enableFunctionalPortfolios; } });
114
- Object.defineProperty(exports, "getMigrationProgress", { enumerable: true, get: function () { return blueberry_integration_1.getMigrationProgress; } });
115
- var functional_client_2 = require("./api/functional-client");
116
- Object.defineProperty(exports, "createLegacyApiClient", { enumerable: true, get: function () { return functional_client_2.createApiClient; } });
2
+ // Placeholder for package
package/package.json CHANGED
@@ -1,7 +1,8 @@
1
1
  {
2
2
  "name": "@cranberry-money/shared-services",
3
- "version": "3.0.1",
3
+ "version": "4.1.0",
4
4
  "description": "Functional architecture shared services with pure functions, dependency injection, and comprehensive TypeScript support for the MyPortfolio platform",
5
+ "type": "module",
5
6
  "main": "dist/index.js",
6
7
  "types": "dist/index.d.ts",
7
8
  "exports": {
@@ -22,8 +23,8 @@
22
23
  "clean": "rm -rf dist",
23
24
  "typecheck": "tsc --noEmit",
24
25
  "dev": "tsc --watch",
25
- "lint": "eslint src --ext .ts,.tsx",
26
- "lint:fix": "eslint src --ext .ts,.tsx --fix"
26
+ "lint": "eslint src",
27
+ "lint:fix": "eslint src --fix"
27
28
  },
28
29
  "dependencies": {
29
30
  "axios": "^1.7.0"
@@ -1,66 +0,0 @@
1
- /**
2
- * Functional API Client - Pure functional approach
3
- *
4
- * Replaces the global singleton pattern with explicit dependency injection.
5
- * All dependencies are passed explicitly, making testing and configuration clear.
6
- */
7
- export interface ApiClient {
8
- get<T>(url: string, config?: RequestConfig): Promise<T>;
9
- post<T>(url: string, data?: unknown, config?: RequestConfig): Promise<T>;
10
- patch<T>(url: string, data?: unknown, config?: RequestConfig): Promise<T>;
11
- delete<T>(url: string, config?: RequestConfig): Promise<T>;
12
- }
13
- export interface RequestConfig {
14
- params?: Record<string, string>;
15
- headers?: Record<string, string>;
16
- timeout?: number;
17
- }
18
- export interface ApiClientConfig {
19
- baseURL: string;
20
- timeout?: number;
21
- defaultHeaders?: Record<string, string>;
22
- withCredentials?: boolean;
23
- }
24
- export interface ApiError {
25
- message: string;
26
- status?: number;
27
- code?: string;
28
- details?: Record<string, unknown>;
29
- }
30
- /**
31
- * Create a functional API client with explicit configuration
32
- *
33
- * @param config - API client configuration
34
- * @returns Pure functional API client interface
35
- *
36
- * @example
37
- * ```typescript
38
- * const apiClient = createApiClient({
39
- * baseURL: 'https://api.example.com',
40
- * timeout: 30000,
41
- * withCredentials: true,
42
- * });
43
- *
44
- * const data = await apiClient.get<User[]>('/users');
45
- * ```
46
- */
47
- export declare const createApiClient: (config: ApiClientConfig) => ApiClient;
48
- /**
49
- * Create a web-optimized API client
50
- *
51
- * @param baseURL - API base URL
52
- * @returns API client configured for web environments
53
- */
54
- export declare const createWebApiClient: (baseURL: string) => ApiClient;
55
- /**
56
- * Create a mobile-optimized API client
57
- *
58
- * @param baseURL - API base URL
59
- * @returns API client configured for mobile environments
60
- */
61
- export declare const createMobileApiClient: (baseURL: string) => ApiClient;
62
- /**
63
- * Utility function to check if an error is an API error
64
- */
65
- export declare const isApiError: (error: unknown) => error is ApiError;
66
- //# sourceMappingURL=functional-client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"functional-client.d.ts","sourceRoot":"","sources":["../../src/api/functional-client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,MAAM,WAAW,SAAS;IACxB,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACxD,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACzE,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC1E,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CAC5D;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,eAAe,GAAI,QAAQ,eAAe,KAAG,SA+FzD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAAI,SAAS,MAAM,KAAG,SAQpD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAAI,SAAS,MAAM,KAAG,SAQvD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,QAOpD,CAAC"}
@@ -1,165 +0,0 @@
1
- "use strict";
2
- /**
3
- * Functional API Client - Pure functional approach
4
- *
5
- * Replaces the global singleton pattern with explicit dependency injection.
6
- * All dependencies are passed explicitly, making testing and configuration clear.
7
- */
8
- var __importDefault = (this && this.__importDefault) || function (mod) {
9
- return (mod && mod.__esModule) ? mod : { "default": mod };
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.isApiError = exports.createMobileApiClient = exports.createWebApiClient = exports.createApiClient = void 0;
13
- const axios_1 = __importDefault(require("axios"));
14
- /**
15
- * Create a functional API client with explicit configuration
16
- *
17
- * @param config - API client configuration
18
- * @returns Pure functional API client interface
19
- *
20
- * @example
21
- * ```typescript
22
- * const apiClient = createApiClient({
23
- * baseURL: 'https://api.example.com',
24
- * timeout: 30000,
25
- * withCredentials: true,
26
- * });
27
- *
28
- * const data = await apiClient.get<User[]>('/users');
29
- * ```
30
- */
31
- const createApiClient = (config) => {
32
- // Validate configuration
33
- if (!config.baseURL) {
34
- throw new Error('API client baseURL is required');
35
- }
36
- if (!config.baseURL.startsWith('http://') && !config.baseURL.startsWith('https://')) {
37
- throw new Error('API client baseURL must be a valid HTTP/HTTPS URL');
38
- }
39
- // Create axios instance with configuration
40
- const axiosInstance = axios_1.default.create({
41
- baseURL: config.baseURL,
42
- timeout: config.timeout ?? 30000,
43
- headers: {
44
- 'Content-Type': 'application/json',
45
- ...config.defaultHeaders,
46
- },
47
- withCredentials: config.withCredentials ?? true,
48
- });
49
- // Error handling helper
50
- const handleError = (error) => {
51
- if (axios_1.default.isAxiosError(error)) {
52
- const axiosError = error;
53
- const responseData = axiosError.response?.data;
54
- const apiError = {
55
- message: responseData?.message ||
56
- responseData?.detail ||
57
- axiosError.message,
58
- status: axiosError.response?.status,
59
- code: responseData?.code,
60
- details: responseData?.details,
61
- };
62
- throw apiError;
63
- }
64
- // Re-throw non-axios errors
65
- throw error;
66
- };
67
- // Return pure functional interface
68
- return {
69
- async get(url, config) {
70
- try {
71
- const response = await axiosInstance.get(url, {
72
- params: config?.params,
73
- headers: config?.headers,
74
- timeout: config?.timeout,
75
- });
76
- return response.data;
77
- }
78
- catch (error) {
79
- return handleError(error);
80
- }
81
- },
82
- async post(url, data, config) {
83
- try {
84
- const response = await axiosInstance.post(url, data, {
85
- params: config?.params,
86
- headers: config?.headers,
87
- timeout: config?.timeout,
88
- });
89
- return response.data;
90
- }
91
- catch (error) {
92
- return handleError(error);
93
- }
94
- },
95
- async patch(url, data, config) {
96
- try {
97
- const response = await axiosInstance.patch(url, data, {
98
- params: config?.params,
99
- headers: config?.headers,
100
- timeout: config?.timeout,
101
- });
102
- return response.data;
103
- }
104
- catch (error) {
105
- return handleError(error);
106
- }
107
- },
108
- async delete(url, config) {
109
- try {
110
- const response = await axiosInstance.delete(url, {
111
- params: config?.params,
112
- headers: config?.headers,
113
- timeout: config?.timeout,
114
- });
115
- return response.data;
116
- }
117
- catch (error) {
118
- return handleError(error);
119
- }
120
- },
121
- };
122
- };
123
- exports.createApiClient = createApiClient;
124
- /**
125
- * Create a web-optimized API client
126
- *
127
- * @param baseURL - API base URL
128
- * @returns API client configured for web environments
129
- */
130
- const createWebApiClient = (baseURL) => {
131
- return (0, exports.createApiClient)({
132
- baseURL,
133
- withCredentials: true,
134
- defaultHeaders: {
135
- 'X-Requested-With': 'XMLHttpRequest',
136
- },
137
- });
138
- };
139
- exports.createWebApiClient = createWebApiClient;
140
- /**
141
- * Create a mobile-optimized API client
142
- *
143
- * @param baseURL - API base URL
144
- * @returns API client configured for mobile environments
145
- */
146
- const createMobileApiClient = (baseURL) => {
147
- return (0, exports.createApiClient)({
148
- baseURL,
149
- withCredentials: false, // Mobile doesn't use cookies
150
- defaultHeaders: {
151
- 'X-Platform': 'mobile',
152
- },
153
- });
154
- };
155
- exports.createMobileApiClient = createMobileApiClient;
156
- /**
157
- * Utility function to check if an error is an API error
158
- */
159
- const isApiError = (error) => {
160
- return (typeof error === 'object' &&
161
- error !== null &&
162
- 'message' in error &&
163
- typeof error.message === 'string');
164
- };
165
- exports.isApiError = isApiError;
@@ -1,116 +0,0 @@
1
- /**
2
- * Pure Authentication Operations
3
- *
4
- * All authentication operations as pure functions with explicit dependencies.
5
- * No side effects, no global state - everything is explicit and testable.
6
- */
7
- import type { ApiClient } from '../../api/functional-client';
8
- import type { UserProfile, TokenPair } from './auth-state';
9
- export type { TokenPair } from './auth-state';
10
- export interface TokenStorage {
11
- storeTokens(tokens: TokenPair): Promise<void>;
12
- retrieveTokens(): Promise<TokenPair | null>;
13
- clearTokens(): Promise<void>;
14
- }
15
- export interface AuthDependencies {
16
- apiClient: ApiClient;
17
- tokenStorage: TokenStorage;
18
- }
19
- export interface SigninPayload {
20
- email: string;
21
- password: string;
22
- }
23
- export interface SignupPayload {
24
- email: string;
25
- password: string;
26
- passwordConfirm: string;
27
- firstName?: string;
28
- lastName?: string;
29
- }
30
- export interface EmailVerificationPayload {
31
- token: string;
32
- }
33
- /**
34
- * Sign in with credentials
35
- *
36
- * @param credentials - User login credentials
37
- * @param deps - Required dependencies (API client and token storage)
38
- * @returns Promise resolving to user profile and tokens
39
- */
40
- export declare const signin: (credentials: SigninPayload, deps: AuthDependencies) => Promise<{
41
- user: UserProfile;
42
- tokens: TokenPair;
43
- }>;
44
- /**
45
- * Sign out user
46
- *
47
- * @param deps - Required dependencies
48
- * @returns Promise resolving when signout is complete
49
- */
50
- export declare const signout: (deps: AuthDependencies) => Promise<void>;
51
- /**
52
- * Sign up new user
53
- *
54
- * @param userData - User registration data
55
- * @param deps - Required dependencies
56
- * @returns Promise resolving to success status and optional message
57
- */
58
- export declare const signup: (userData: SignupPayload, deps: AuthDependencies) => Promise<{
59
- success: boolean;
60
- message?: string;
61
- }>;
62
- /**
63
- * Refresh authentication tokens
64
- *
65
- * @param currentTokens - Current token pair
66
- * @param deps - Required dependencies
67
- * @returns Promise resolving to new token pair
68
- */
69
- export declare const refreshTokens: (currentTokens: TokenPair, deps: AuthDependencies) => Promise<TokenPair>;
70
- /**
71
- * Get user profile from API
72
- *
73
- * @param apiClient - API client instance
74
- * @returns Promise resolving to user profile
75
- */
76
- export declare const getUserProfile: (apiClient: ApiClient) => Promise<UserProfile>;
77
- /**
78
- * Verify email address
79
- *
80
- * @param verificationData - Email verification data
81
- * @param deps - Required dependencies
82
- * @returns Promise resolving to success status
83
- */
84
- export declare const verifyEmail: (verificationData: EmailVerificationPayload, deps: AuthDependencies) => Promise<{
85
- success: boolean;
86
- message?: string;
87
- }>;
88
- /**
89
- * Resend verification code
90
- *
91
- * @param deps - Required dependencies
92
- * @returns Promise resolving to success status
93
- */
94
- export declare const resendVerificationCode: (deps: AuthDependencies) => Promise<{
95
- success: boolean;
96
- message?: string;
97
- }>;
98
- /**
99
- * Initialize authentication from stored tokens
100
- *
101
- * @param deps - Required dependencies
102
- * @returns Promise resolving to user and tokens if valid, null otherwise
103
- */
104
- export declare const initializeFromStorage: (deps: AuthDependencies) => Promise<{
105
- user: UserProfile;
106
- tokens: TokenPair;
107
- } | null>;
108
- /**
109
- * Validate signin credentials
110
- */
111
- export declare const validateSigninCredentials: (credentials: SigninPayload) => string[];
112
- /**
113
- * Validate signup data
114
- */
115
- export declare const validateSignupData: (userData: SignupPayload) => string[];
116
- //# sourceMappingURL=auth-operations.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth-operations.d.ts","sourceRoot":"","sources":["../../../src/auth/functional/auth-operations.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAG3D,YAAY,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAG9C,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,cAAc,IAAI,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;IAC5C,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAGD,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,EAAE,YAAY,CAAC;CAC5B;AAGD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,MAAM,CAAC;CACf;AAoBD;;;;;;GAMG;AACH,eAAO,MAAM,MAAM,GACjB,aAAa,aAAa,EAC1B,MAAM,gBAAgB,KACrB,OAAO,CAAC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAE,CAqBlD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,OAAO,GAAU,MAAM,gBAAgB,KAAG,OAAO,CAAC,IAAI,CAUlE,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,MAAM,GACjB,UAAU,aAAa,EACvB,MAAM,gBAAgB,KACrB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAahD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,GACxB,eAAe,SAAS,EACxB,MAAM,gBAAgB,KACrB,OAAO,CAAC,SAAS,CAqBnB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAU,WAAW,SAAS,KAAG,OAAO,CAAC,WAAW,CAM9E,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,GACtB,kBAAkB,wBAAwB,EAC1C,MAAM,gBAAgB,KACrB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAOhD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,GACjC,MAAM,gBAAgB,KACrB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAOhD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAChC,MAAM,gBAAgB,KACrB,OAAO,CAAC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAE,GAAG,IAAI,CAiBzD,CAAC;AAkCF;;GAEG;AACH,eAAO,MAAM,yBAAyB,GAAI,aAAa,aAAa,KAAG,MAAM,EAc5E,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAAI,UAAU,aAAa,KAAG,MAAM,EAkBlE,CAAC"}