@cranberry-money/shared-utils 8.23.309 → 8.23.317

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.
@@ -1,14 +1,6 @@
1
- import type { AssetHolding, AssetAllocationOverview, AllocationDisplayItem } from '@cranberry-money/shared-types';
1
+ import type { AssetAllocationOverview, AllocationDisplayItem } from '@cranberry-money/shared-types';
2
2
  /**
3
- * Transforms holdings into allocation display items.
4
- * AssetHolding includes both target and current allocation percentages from the backend.
5
- * Backend handles sorting by target and current allocation percentages.
6
- *
7
- * @param holdings - Asset holdings with target and current allocation percentages (pre-sorted by backend)
8
- */
9
- export declare const combineTargetAndActualAllocations: (holdings: readonly AssetHolding[]) => AllocationDisplayItem[];
10
- /**
11
- * Transforms allocations with holdings data into allocation display items.
3
+ * Transforms allocations with holdings data into allocation display items (Phase 7)
12
4
  * AssetAllocationOverview includes target percentage and optional current holdings data from the backend.
13
5
  * Shows all target allocations, including those with no current holdings (quantity = 0).
14
6
  * Also includes holdings-only items (where percentage is null).
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../src/dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAGlH;;;;;;GAMG;AACH,eAAO,MAAM,iCAAiC,GAAI,UAAU,SAAS,YAAY,EAAE,KAAG,qBAAqB,EA+B1G,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,kCAAkC,GAC7C,aAAa,SAAS,uBAAuB,EAAE,KAC9C,qBAAqB,EA4BvB,CAAC;AAEF,eAAO,MAAM,yBAAyB,GAAI,OAAO,SAAS,qBAAqB,EAAE;;;;;CAOhF,CAAC;AAEF,eAAO,MAAM,0BAA0B,GAAI,QAAQ,MAAM,KAAG,MAG3D,CAAC"}
1
+ {"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../src/dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAGpG;;;;;;;GAOG;AACH,eAAO,MAAM,kCAAkC,GAC7C,aAAa,SAAS,uBAAuB,EAAE,KAC9C,qBAAqB,EAyBvB,CAAC;AAEF,eAAO,MAAM,yBAAyB,GAAI,OAAO,SAAS,qBAAqB,EAAE;;;;;CAOhF,CAAC;AAEF,eAAO,MAAM,0BAA0B,GAAI,QAAQ,MAAM,KAAG,MAG3D,CAAC"}
package/dist/dashboard.js CHANGED
@@ -1,44 +1,6 @@
1
1
  import { DESIGN_TOKENS } from '@cranberry-money/shared-constants';
2
2
  /**
3
- * Transforms holdings into allocation display items.
4
- * AssetHolding includes both target and current allocation percentages from the backend.
5
- * Backend handles sorting by target and current allocation percentages.
6
- *
7
- * @param holdings - Asset holdings with target and current allocation percentages (pre-sorted by backend)
8
- */
9
- export const combineTargetAndActualAllocations = (holdings) => {
10
- // Map holdings to display items (backend already sorted by allocation percentages)
11
- return holdings.map((holding, index) => {
12
- const currentPrice = parseFloat(holding.asset.currentPrice || '0');
13
- const value = holding.quantity * currentPrice;
14
- const targetPercentage = holding.targetAllocationPercentage
15
- ? parseFloat(holding.targetAllocationPercentage)
16
- : undefined;
17
- const actualPercentage = holding.currentAllocationPercentage
18
- ? parseFloat(holding.currentAllocationPercentage)
19
- : undefined;
20
- return {
21
- instrumentUuid: holding.asset.uuid,
22
- symbol: holding.instrumentSymbol,
23
- name: holding.instrumentName,
24
- displayName: holding.instrumentDisplayName,
25
- targetPercentage,
26
- actualPercentage,
27
- quantity: holding.quantity,
28
- currentPrice,
29
- value,
30
- color: DESIGN_TOKENS.colors.chart[index % DESIGN_TOKENS.colors.chart.length],
31
- hasTarget: targetPercentage !== undefined && targetPercentage > 0,
32
- hasActual: actualPercentage !== undefined && actualPercentage > 0,
33
- sector: holding.instrumentSector,
34
- industry: holding.instrumentIndustry,
35
- exchange: holding.instrumentExchange,
36
- currency: holding.instrumentCurrency,
37
- };
38
- });
39
- };
40
- /**
41
- * Transforms allocations with holdings data into allocation display items.
3
+ * Transforms allocations with holdings data into allocation display items (Phase 7)
42
4
  * AssetAllocationOverview includes target percentage and optional current holdings data from the backend.
43
5
  * Shows all target allocations, including those with no current holdings (quantity = 0).
44
6
  * Also includes holdings-only items (where percentage is null).
@@ -66,9 +28,6 @@ export const transformAllocationsToDisplayItems = (allocations) => {
66
28
  color: DESIGN_TOKENS.colors.chart[index % DESIGN_TOKENS.colors.chart.length],
67
29
  hasTarget: targetPercentage !== undefined && targetPercentage > 0,
68
30
  hasActual: actualPercentage !== undefined && actualPercentage > 0,
69
- sector: allocation.instrumentSector,
70
- industry: allocation.instrumentIndustry,
71
- exchange: allocation.instrumentExchange,
72
31
  currency: allocation.instrumentCurrency,
73
32
  };
74
33
  });
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../src/dashboard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../src/dashboard.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAElE;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAChD,WAA+C,EACtB,EAAE;IAC3B,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE;QAC3C,MAAM,gBAAgB,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/F,MAAM,gBAAgB,GAAG,UAAU,CAAC,2BAA2B;YAC7D,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,2BAA2B,CAAC;YACpD,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,QAAQ,GAAG,UAAU,CAAC,eAAe,IAAI,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE5F,OAAO;YACL,cAAc,EAAE,UAAU,CAAC,KAAK;YAChC,MAAM,EAAE,UAAU,CAAC,gBAAgB;YACnC,IAAI,EAAE,UAAU,CAAC,cAAc;YAC/B,WAAW,EAAE,UAAU,CAAC,qBAAqB;YAC7C,gBAAgB;YAChB,gBAAgB;YAChB,QAAQ;YACR,YAAY,EAAE,QAAQ,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC9D,KAAK;YACL,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAW;YACtF,SAAS,EAAE,gBAAgB,KAAK,SAAS,IAAI,gBAAgB,GAAG,CAAC;YACjE,SAAS,EAAE,gBAAgB,KAAK,SAAS,IAAI,gBAAgB,GAAG,CAAC;YACjE,QAAQ,EAAE,UAAU,CAAC,kBAAkB;SACxC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,KAAuC,EAAE,EAAE;IACnF,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACvF,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACvF,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3E,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEjF,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC;AACjE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,KAAc,EAAU,EAAE;IACnE,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACvC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;AAChC,CAAC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -8,10 +8,10 @@ export { isNumericOnly, validatePassword, formatVerificationToken, validateEmail
8
8
  export { isValidEthereumAddress, isValidBitcoinAddress, validateWalletAddress, detectNetworkFromAddress, formatWalletAddress, formatWalletAddressShort, formatWalletAddressMedium, formatWalletAddressLong, getBlockchainExplorerUrl, getTransactionExplorerUrl, isEVMCompatible, isBitcoinBased, } from './validation/wallets';
9
9
  export { validateUserProfileField } from './user-validation';
10
10
  export { hasActiveFilters, countActiveFilters, hasActiveInstrumentFilters, countActiveInstrumentFilters, hasActiveTradeFilters, countActiveTradeFilters, hasActiveTransactionFilters, countActiveTransactionFilters, hasActiveOrderFilters, countActiveOrderFilters, } from './filters';
11
- export { combineTargetAndActualAllocations, transformAllocationsToDisplayItems, calculateAllocationTotals, formatAllocationPercentage, } from './dashboard';
11
+ export { transformAllocationsToDisplayItems, calculateAllocationTotals, formatAllocationPercentage, } from './dashboard';
12
12
  export { validatePortfolioSelection } from './portfolio-validation';
13
13
  export { validateUserPreferences, hasUserPreferences, getUserPreferencesSummary, formatUserPreferencesForDisplay, getAvailablePortfoliosForAccount, isValidUserPreferencesUpdate, getUserPreferencesCacheKey, sanitizeUserPreferencesInput, } from './user-preferences';
14
14
  export { formatPhoneForDisplay, cleanPhoneNumber, getExpectedPhoneLength } from './phoneFormatting';
15
- export { getInstrumentType, getInstrumentTypeVariant, getAssetType, getAssetTypeVariant, INSTRUMENT_TYPE_ETF, INSTRUMENT_TYPE_FUND, INSTRUMENT_TYPE_STOCK, ASSET_TYPE_CRYPTO, ASSET_TYPE_STABLECOIN, type InstrumentType, type AllAssetTypes, } from './instruments';
15
+ export { getAssetType, getAssetTypeVariant, ASSET_TYPE_NATIVE_CRYPTO, ASSET_TYPE_STABLECOIN, ASSET_TYPE_TOKENIZED_SECURITY, ASSET_TYPE_TOKENIZED_RWA, ASSET_TYPE_SYNTHETIC, type AllAssetTypes, } from './instruments';
16
16
  export { getUserVerificationStatus, isUserVerified, isVerificationPending, isVerificationRejected, type VerificationStatusType, type VerificationStatus, } from './user-verification';
17
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG5C,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAGjE,OAAO,EACL,UAAU,EACV,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,QAAQ,CAAC;AAGhB,OAAO,EACL,8BAA8B,EAC9B,qCAAqC,EACrC,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,cAAc,EACd,yBAAyB,EACzB,wBAAwB,EACxB,uBAAuB,EACvB,SAAS,EACT,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAG/F,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,yBAAyB,EACzB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,wBAAwB,EACxB,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,EACzB,eAAe,EACf,cAAc,GACf,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAG7D,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,0BAA0B,EAC1B,4BAA4B,EAC5B,qBAAqB,EACrB,uBAAuB,EACvB,2BAA2B,EAC3B,6BAA6B,EAC7B,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,iCAAiC,EACjC,kCAAkC,EAClC,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAGpE,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,yBAAyB,EACzB,+BAA+B,EAC/B,gCAAgC,EAChC,4BAA4B,EAC5B,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAGpG,OAAO,EAEL,iBAAiB,EACjB,wBAAwB,EAExB,YAAY,EACZ,mBAAmB,EAEnB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EAErB,KAAK,cAAc,EACnB,KAAK,aAAa,GACnB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,yBAAyB,EACzB,cAAc,EACd,qBAAqB,EACrB,sBAAsB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,GACxB,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG5C,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAGjE,OAAO,EACL,UAAU,EACV,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,QAAQ,CAAC;AAGhB,OAAO,EACL,8BAA8B,EAC9B,qCAAqC,EACrC,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,cAAc,EACd,yBAAyB,EACzB,wBAAwB,EACxB,uBAAuB,EACvB,SAAS,EACT,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAG/F,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,yBAAyB,EACzB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,wBAAwB,EACxB,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,EACzB,eAAe,EACf,cAAc,GACf,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAG7D,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,0BAA0B,EAC1B,4BAA4B,EAC5B,qBAAqB,EACrB,uBAAuB,EACvB,2BAA2B,EAC3B,6BAA6B,EAC7B,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,kCAAkC,EAClC,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAGpE,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,yBAAyB,EACzB,+BAA+B,EAC/B,gCAAgC,EAChC,4BAA4B,EAC5B,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAGpG,OAAO,EAEL,YAAY,EACZ,mBAAmB,EAEnB,wBAAwB,EACxB,qBAAqB,EACrB,6BAA6B,EAC7B,wBAAwB,EACxB,oBAAoB,EAEpB,KAAK,aAAa,GACnB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,yBAAyB,EACzB,cAAc,EACd,qBAAqB,EACrB,sBAAsB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,GACxB,MAAM,qBAAqB,CAAC"}
package/dist/index.js CHANGED
@@ -19,21 +19,19 @@ export { validateUserProfileField } from './user-validation';
19
19
  // Filter utilities
20
20
  export { hasActiveFilters, countActiveFilters, hasActiveInstrumentFilters, countActiveInstrumentFilters, hasActiveTradeFilters, countActiveTradeFilters, hasActiveTransactionFilters, countActiveTransactionFilters, hasActiveOrderFilters, countActiveOrderFilters, } from './filters';
21
21
  // Dashboard utilities
22
- export { combineTargetAndActualAllocations, transformAllocationsToDisplayItems, calculateAllocationTotals, formatAllocationPercentage, } from './dashboard';
22
+ export { transformAllocationsToDisplayItems, calculateAllocationTotals, formatAllocationPercentage, } from './dashboard';
23
23
  // Portfolio validation utilities
24
24
  export { validatePortfolioSelection } from './portfolio-validation';
25
25
  // User preferences utilities
26
26
  export { validateUserPreferences, hasUserPreferences, getUserPreferencesSummary, formatUserPreferencesForDisplay, getAvailablePortfoliosForAccount, isValidUserPreferencesUpdate, getUserPreferencesCacheKey, sanitizeUserPreferencesInput, } from './user-preferences';
27
27
  // Phone formatting utilities
28
28
  export { formatPhoneForDisplay, cleanPhoneNumber, getExpectedPhoneLength } from './phoneFormatting';
29
- // Instrument and Asset utilities
29
+ // Instrument and Asset utilities (Phase 7)
30
30
  export {
31
- // Legacy instrument functions (deprecated but maintained for backward compatibility)
32
- getInstrumentType, getInstrumentTypeVariant,
33
- // New asset functions (recommended)
31
+ // Asset functions
34
32
  getAssetType, getAssetTypeVariant,
35
- // Constants
36
- INSTRUMENT_TYPE_ETF, INSTRUMENT_TYPE_FUND, INSTRUMENT_TYPE_STOCK, ASSET_TYPE_CRYPTO, ASSET_TYPE_STABLECOIN, } from './instruments';
33
+ // Phase 7 Constants
34
+ ASSET_TYPE_NATIVE_CRYPTO, ASSET_TYPE_STABLECOIN, ASSET_TYPE_TOKENIZED_SECURITY, ASSET_TYPE_TOKENIZED_RWA, ASSET_TYPE_SYNTHETIC, } from './instruments';
37
35
  // User verification utilities
38
36
  export { getUserVerificationStatus, isUserVerified, isVerificationPending, isVerificationRejected, } from './user-verification';
39
37
  // No re-exports - consumers should import directly from @cranberry-money/shared-types
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,oBAAoB;AACpB,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAEjE,4BAA4B;AAC5B,OAAO,EACL,UAAU,EACV,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,QAAQ,CAAC;AAEhB,2CAA2C;AAC3C,OAAO,EACL,8BAA8B,EAC9B,qCAAqC,EACrC,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,cAAc,EACd,yBAAyB,EACzB,wBAAwB,EACxB,uBAAuB,EACvB,SAAS,EACT,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAEtB,kBAAkB;AAClB,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAE/F,sBAAsB;AACtB,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAErB,uBAAuB;AACvB,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,yBAAyB,EACzB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,cAAc,CAAC;AAEtB,8BAA8B;AAC9B,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,wBAAwB,EACxB,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,EACzB,eAAe,EACf,cAAc,GACf,MAAM,sBAAsB,CAAC;AAE9B,oCAAoC;AACpC,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,mBAAmB;AACnB,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,0BAA0B,EAC1B,4BAA4B,EAC5B,qBAAqB,EACrB,uBAAuB,EACvB,2BAA2B,EAC3B,6BAA6B,EAC7B,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,WAAW,CAAC;AAEnB,sBAAsB;AACtB,OAAO,EACL,iCAAiC,EACjC,kCAAkC,EAClC,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,aAAa,CAAC;AAErB,iCAAiC;AACjC,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAEpE,6BAA6B;AAC7B,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,yBAAyB,EACzB,+BAA+B,EAC/B,gCAAgC,EAChC,4BAA4B,EAC5B,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,oBAAoB,CAAC;AAE5B,6BAA6B;AAC7B,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAEpG,iCAAiC;AACjC,OAAO;AACL,qFAAqF;AACrF,iBAAiB,EACjB,wBAAwB;AACxB,oCAAoC;AACpC,YAAY,EACZ,mBAAmB;AACnB,YAAY;AACZ,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,GAItB,MAAM,eAAe,CAAC;AAEvB,8BAA8B;AAC9B,OAAO,EACL,yBAAyB,EACzB,cAAc,EACd,qBAAqB,EACrB,sBAAsB,GAGvB,MAAM,qBAAqB,CAAC;AAE7B,sFAAsF"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,oBAAoB;AACpB,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAEjE,4BAA4B;AAC5B,OAAO,EACL,UAAU,EACV,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,QAAQ,CAAC;AAEhB,2CAA2C;AAC3C,OAAO,EACL,8BAA8B,EAC9B,qCAAqC,EACrC,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,cAAc,EACd,yBAAyB,EACzB,wBAAwB,EACxB,uBAAuB,EACvB,SAAS,EACT,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAEtB,kBAAkB;AAClB,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAE/F,sBAAsB;AACtB,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAErB,uBAAuB;AACvB,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,yBAAyB,EACzB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,cAAc,CAAC;AAEtB,8BAA8B;AAC9B,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,wBAAwB,EACxB,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,EACzB,eAAe,EACf,cAAc,GACf,MAAM,sBAAsB,CAAC;AAE9B,oCAAoC;AACpC,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,mBAAmB;AACnB,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,0BAA0B,EAC1B,4BAA4B,EAC5B,qBAAqB,EACrB,uBAAuB,EACvB,2BAA2B,EAC3B,6BAA6B,EAC7B,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,WAAW,CAAC;AAEnB,sBAAsB;AACtB,OAAO,EACL,kCAAkC,EAClC,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,aAAa,CAAC;AAErB,iCAAiC;AACjC,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAEpE,6BAA6B;AAC7B,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,yBAAyB,EACzB,+BAA+B,EAC/B,gCAAgC,EAChC,4BAA4B,EAC5B,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,oBAAoB,CAAC;AAE5B,6BAA6B;AAC7B,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAEpG,2CAA2C;AAC3C,OAAO;AACL,kBAAkB;AAClB,YAAY,EACZ,mBAAmB;AACnB,oBAAoB;AACpB,wBAAwB,EACxB,qBAAqB,EACrB,6BAA6B,EAC7B,wBAAwB,EACxB,oBAAoB,GAGrB,MAAM,eAAe,CAAC;AAEvB,8BAA8B;AAC9B,OAAO,EACL,yBAAyB,EACzB,cAAc,EACd,qBAAqB,EACrB,sBAAsB,GAGvB,MAAM,qBAAqB,CAAC;AAE7B,sFAAsF"}
@@ -1,58 +1,28 @@
1
1
  import type { Asset, Instrument } from '@cranberry-money/shared-types';
2
2
  /**
3
- * Asset type labels (for traditional instruments)
3
+ * Phase 7 Asset type display labels
4
4
  */
5
- export declare const INSTRUMENT_TYPE_ETF = "ETF";
6
- export declare const INSTRUMENT_TYPE_FUND = "Fund";
7
- export declare const INSTRUMENT_TYPE_STOCK = "Stock";
8
- /**
9
- * Asset type labels (for all asset types)
10
- */
11
- export declare const ASSET_TYPE_CRYPTO = "Crypto";
5
+ export declare const ASSET_TYPE_NATIVE_CRYPTO = "Crypto";
12
6
  export declare const ASSET_TYPE_STABLECOIN = "Stablecoin";
13
- export type InstrumentType = typeof INSTRUMENT_TYPE_ETF | typeof INSTRUMENT_TYPE_FUND | typeof INSTRUMENT_TYPE_STOCK;
14
- export type AllAssetTypes = InstrumentType | typeof ASSET_TYPE_CRYPTO | typeof ASSET_TYPE_STABLECOIN;
15
- /**
16
- * Get the type label for an instrument based on its properties.
17
- * Returns 'ETF', 'Fund', or 'Stock'.
18
- *
19
- * @deprecated Use getAssetType() instead for broader asset type support
20
- * @param instrument - The instrument object to get the type for
21
- * @returns The instrument type label
22
- *
23
- * @example
24
- * const type = getInstrumentType(instrument);
25
- * // Returns: 'ETF' | 'Fund' | 'Stock'
26
- */
27
- export declare function getInstrumentType(instrument: Instrument): InstrumentType;
28
- /**
29
- * Get the color variant for an instrument type.
30
- * Useful for badge components and visual differentiation.
31
- *
32
- * @deprecated Use getAssetTypeVariant() instead for broader asset type support
33
- * @param instrument - The instrument object to get the color for
34
- * @returns A color variant identifier
35
- *
36
- * @example
37
- * const variant = getInstrumentTypeVariant(instrument);
38
- * // Returns: 'primary' | 'warning' | 'neutral'
39
- */
40
- export declare function getInstrumentTypeVariant(instrument: Instrument): 'primary' | 'warning' | 'neutral';
7
+ export declare const ASSET_TYPE_TOKENIZED_SECURITY = "Tokenized Security";
8
+ export declare const ASSET_TYPE_TOKENIZED_RWA = "Real-World Asset";
9
+ export declare const ASSET_TYPE_SYNTHETIC = "Synthetic";
10
+ export type AllAssetTypes = typeof ASSET_TYPE_NATIVE_CRYPTO | typeof ASSET_TYPE_STABLECOIN | typeof ASSET_TYPE_TOKENIZED_SECURITY | typeof ASSET_TYPE_TOKENIZED_RWA | typeof ASSET_TYPE_SYNTHETIC;
41
11
  /**
42
- * Get the type label for any asset (instruments, crypto, stablecoins).
43
- * Handles Asset base type and all child types.
12
+ * Get the type label for any asset (Phase 7)
13
+ * Maps backend AssetType enum to display labels
44
14
  *
45
15
  * @param asset - Any asset object (Asset or Instrument)
46
16
  * @returns The asset type display label
47
17
  *
48
18
  * @example
49
19
  * const type = getAssetType(asset);
50
- * // Returns: 'ETF' | 'Fund' | 'Stock' | 'Crypto' | 'Stablecoin'
20
+ * // Returns: 'Crypto' | 'Stablecoin' | 'Tokenized Security' | 'Real-World Asset' | 'Synthetic'
51
21
  */
52
22
  export declare function getAssetType(asset: Asset | Instrument): AllAssetTypes;
53
23
  /**
54
- * Get the color variant for any asset type.
55
- * Useful for badge components and visual differentiation across all asset types.
24
+ * Get the color variant for any asset type (Phase 7)
25
+ * Useful for badge components and visual differentiation
56
26
  *
57
27
  * @param asset - Any asset object (Asset or Instrument)
58
28
  * @returns A color variant identifier
@@ -1 +1 @@
1
- {"version":3,"file":"instruments.d.ts","sourceRoot":"","sources":["../src/instruments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAa,MAAM,+BAA+B,CAAC;AAElF;;GAEG;AACH,eAAO,MAAM,mBAAmB,QAAQ,CAAC;AACzC,eAAO,MAAM,oBAAoB,SAAS,CAAC;AAC3C,eAAO,MAAM,qBAAqB,UAAU,CAAC;AAE7C;;GAEG;AACH,eAAO,MAAM,iBAAiB,WAAW,CAAC;AAC1C,eAAO,MAAM,qBAAqB,eAAe,CAAC;AAElD,MAAM,MAAM,cAAc,GAAG,OAAO,mBAAmB,GAAG,OAAO,oBAAoB,GAAG,OAAO,qBAAqB,CAAC;AACrH,MAAM,MAAM,aAAa,GAAG,cAAc,GAAG,OAAO,iBAAiB,GAAG,OAAO,qBAAqB,CAAC;AAErG;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,CAIxE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAIlG;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,UAAU,GAAG,aAAa,CA0BrE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,KAAK,GAAG,UAAU,GACxB,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CA0BxD"}
1
+ {"version":3,"file":"instruments.d.ts","sourceRoot":"","sources":["../src/instruments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEvE;;GAEG;AACH,eAAO,MAAM,wBAAwB,WAAW,CAAC;AACjD,eAAO,MAAM,qBAAqB,eAAe,CAAC;AAClD,eAAO,MAAM,6BAA6B,uBAAuB,CAAC;AAClE,eAAO,MAAM,wBAAwB,qBAAqB,CAAC;AAC3D,eAAO,MAAM,oBAAoB,cAAc,CAAC;AAEhD,MAAM,MAAM,aAAa,GACrB,OAAO,wBAAwB,GAC/B,OAAO,qBAAqB,GAC5B,OAAO,6BAA6B,GACpC,OAAO,wBAAwB,GAC/B,OAAO,oBAAoB,CAAC;AAEhC;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,UAAU,GAAG,aAAa,CAqBrE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,KAAK,GAAG,UAAU,GACxB,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAqBxD"}
@@ -1,93 +1,45 @@
1
1
  /**
2
- * Asset type labels (for traditional instruments)
2
+ * Phase 7 Asset type display labels
3
3
  */
4
- export const INSTRUMENT_TYPE_ETF = 'ETF';
5
- export const INSTRUMENT_TYPE_FUND = 'Fund';
6
- export const INSTRUMENT_TYPE_STOCK = 'Stock';
7
- /**
8
- * Asset type labels (for all asset types)
9
- */
10
- export const ASSET_TYPE_CRYPTO = 'Crypto';
4
+ export const ASSET_TYPE_NATIVE_CRYPTO = 'Crypto';
11
5
  export const ASSET_TYPE_STABLECOIN = 'Stablecoin';
6
+ export const ASSET_TYPE_TOKENIZED_SECURITY = 'Tokenized Security';
7
+ export const ASSET_TYPE_TOKENIZED_RWA = 'Real-World Asset';
8
+ export const ASSET_TYPE_SYNTHETIC = 'Synthetic';
12
9
  /**
13
- * Get the type label for an instrument based on its properties.
14
- * Returns 'ETF', 'Fund', or 'Stock'.
15
- *
16
- * @deprecated Use getAssetType() instead for broader asset type support
17
- * @param instrument - The instrument object to get the type for
18
- * @returns The instrument type label
19
- *
20
- * @example
21
- * const type = getInstrumentType(instrument);
22
- * // Returns: 'ETF' | 'Fund' | 'Stock'
23
- */
24
- export function getInstrumentType(instrument) {
25
- if (instrument.isEtf)
26
- return INSTRUMENT_TYPE_ETF;
27
- if (instrument.isFund)
28
- return INSTRUMENT_TYPE_FUND;
29
- return INSTRUMENT_TYPE_STOCK;
30
- }
31
- /**
32
- * Get the color variant for an instrument type.
33
- * Useful for badge components and visual differentiation.
34
- *
35
- * @deprecated Use getAssetTypeVariant() instead for broader asset type support
36
- * @param instrument - The instrument object to get the color for
37
- * @returns A color variant identifier
38
- *
39
- * @example
40
- * const variant = getInstrumentTypeVariant(instrument);
41
- * // Returns: 'primary' | 'warning' | 'neutral'
42
- */
43
- export function getInstrumentTypeVariant(instrument) {
44
- if (instrument.isEtf)
45
- return 'primary';
46
- if (instrument.isFund)
47
- return 'warning';
48
- return 'neutral';
49
- }
50
- /**
51
- * Get the type label for any asset (instruments, crypto, stablecoins).
52
- * Handles Asset base type and all child types.
10
+ * Get the type label for any asset (Phase 7)
11
+ * Maps backend AssetType enum to display labels
53
12
  *
54
13
  * @param asset - Any asset object (Asset or Instrument)
55
14
  * @returns The asset type display label
56
15
  *
57
16
  * @example
58
17
  * const type = getAssetType(asset);
59
- * // Returns: 'ETF' | 'Fund' | 'Stock' | 'Crypto' | 'Stablecoin'
18
+ * // Returns: 'Crypto' | 'Stablecoin' | 'Tokenized Security' | 'Real-World Asset' | 'Synthetic'
60
19
  */
61
20
  export function getAssetType(asset) {
62
- // Check if asset has assetType field (from Asset base model)
63
21
  if ('assetType' in asset && asset.assetType) {
64
22
  const assetType = asset.assetType;
65
23
  switch (assetType) {
66
- case 'ETF':
67
- return INSTRUMENT_TYPE_ETF;
68
- case 'FUND':
69
- return INSTRUMENT_TYPE_FUND;
70
- case 'STOCK':
71
- return INSTRUMENT_TYPE_STOCK;
72
- case 'CRYPTO':
73
- return ASSET_TYPE_CRYPTO;
74
- case 'STABLECOIN':
24
+ case 'native_crypto':
25
+ return ASSET_TYPE_NATIVE_CRYPTO;
26
+ case 'stablecoin':
75
27
  return ASSET_TYPE_STABLECOIN;
28
+ case 'tokenized_security':
29
+ return ASSET_TYPE_TOKENIZED_SECURITY;
30
+ case 'tokenized_rwa':
31
+ return ASSET_TYPE_TOKENIZED_RWA;
32
+ case 'synthetic':
33
+ return ASSET_TYPE_SYNTHETIC;
76
34
  default:
77
- return INSTRUMENT_TYPE_STOCK; // fallback
35
+ return ASSET_TYPE_SYNTHETIC; // fallback
78
36
  }
79
37
  }
80
- // Fallback to instrument-specific logic (for backward compatibility)
81
- const instrument = asset;
82
- if ('isEtf' in instrument && instrument.isEtf)
83
- return INSTRUMENT_TYPE_ETF;
84
- if ('isFund' in instrument && instrument.isFund)
85
- return INSTRUMENT_TYPE_FUND;
86
- return INSTRUMENT_TYPE_STOCK;
38
+ return ASSET_TYPE_SYNTHETIC; // fallback
87
39
  }
88
40
  /**
89
- * Get the color variant for any asset type.
90
- * Useful for badge components and visual differentiation across all asset types.
41
+ * Get the color variant for any asset type (Phase 7)
42
+ * Useful for badge components and visual differentiation
91
43
  *
92
44
  * @param asset - Any asset object (Asset or Instrument)
93
45
  * @returns A color variant identifier
@@ -97,30 +49,23 @@ export function getAssetType(asset) {
97
49
  * // Returns: 'primary' | 'warning' | 'success' | 'info' | 'neutral'
98
50
  */
99
51
  export function getAssetTypeVariant(asset) {
100
- // Check if asset has assetType field (from Asset base model)
101
52
  if ('assetType' in asset && asset.assetType) {
102
53
  const assetType = asset.assetType;
103
54
  switch (assetType) {
104
- case 'ETF':
105
- return 'primary'; // Blue/primary color for ETFs
106
- case 'FUND':
107
- return 'warning'; // Orange/warning color for Funds
108
- case 'STOCK':
109
- return 'neutral'; // Gray/neutral color for Stocks
110
- case 'CRYPTO':
111
- return 'success'; // Green/success color for Crypto
112
- case 'STABLECOIN':
113
- return 'info'; // Light blue/info color for Stablecoins
55
+ case 'native_crypto':
56
+ return 'success'; // Green for native crypto (BTC, ETH)
57
+ case 'stablecoin':
58
+ return 'info'; // Light blue for stablecoins (USDC, USDT)
59
+ case 'tokenized_security':
60
+ return 'primary'; // Blue for tokenized securities (AAPL.t)
61
+ case 'tokenized_rwa':
62
+ return 'warning'; // Orange for real-world assets (treasuries)
63
+ case 'synthetic':
64
+ return 'neutral'; // Gray for synthetic assets
114
65
  default:
115
66
  return 'neutral';
116
67
  }
117
68
  }
118
- // Fallback to instrument-specific logic (for backward compatibility)
119
- const instrument = asset;
120
- if ('isEtf' in instrument && instrument.isEtf)
121
- return 'primary';
122
- if ('isFund' in instrument && instrument.isFund)
123
- return 'warning';
124
69
  return 'neutral';
125
70
  }
126
71
  //# sourceMappingURL=instruments.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"instruments.js","sourceRoot":"","sources":["../src/instruments.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,CAAC;AACzC,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC;AAC3C,MAAM,CAAC,MAAM,qBAAqB,GAAG,OAAO,CAAC;AAE7C;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,QAAQ,CAAC;AAC1C,MAAM,CAAC,MAAM,qBAAqB,GAAG,YAAY,CAAC;AAKlD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,iBAAiB,CAAC,UAAsB;IACtD,IAAI,UAAU,CAAC,KAAK;QAAE,OAAO,mBAAmB,CAAC;IACjD,IAAI,UAAU,CAAC,MAAM;QAAE,OAAO,oBAAoB,CAAC;IACnD,OAAO,qBAAqB,CAAC;AAC/B,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,wBAAwB,CAAC,UAAsB;IAC7D,IAAI,UAAU,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IACvC,IAAI,UAAU,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IACxC,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,YAAY,CAAC,KAAyB;IACpD,6DAA6D;IAC7D,IAAI,WAAW,IAAI,KAAK,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QAC5C,MAAM,SAAS,GAAG,KAAK,CAAC,SAAsB,CAAC;QAE/C,QAAQ,SAAS,EAAE,CAAC;YAClB,KAAK,KAAK;gBACR,OAAO,mBAAmB,CAAC;YAC7B,KAAK,MAAM;gBACT,OAAO,oBAAoB,CAAC;YAC9B,KAAK,OAAO;gBACV,OAAO,qBAAqB,CAAC;YAC/B,KAAK,QAAQ;gBACX,OAAO,iBAAiB,CAAC;YAC3B,KAAK,YAAY;gBACf,OAAO,qBAAqB,CAAC;YAC/B;gBACE,OAAO,qBAAqB,CAAC,CAAC,WAAW;QAC7C,CAAC;IACH,CAAC;IAED,qEAAqE;IACrE,MAAM,UAAU,GAAG,KAAmB,CAAC;IACvC,IAAI,OAAO,IAAI,UAAU,IAAI,UAAU,CAAC,KAAK;QAAE,OAAO,mBAAmB,CAAC;IAC1E,IAAI,QAAQ,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM;QAAE,OAAO,oBAAoB,CAAC;IAC7E,OAAO,qBAAqB,CAAC;AAC/B,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,mBAAmB,CACjC,KAAyB;IAEzB,6DAA6D;IAC7D,IAAI,WAAW,IAAI,KAAK,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QAC5C,MAAM,SAAS,GAAG,KAAK,CAAC,SAAsB,CAAC;QAE/C,QAAQ,SAAS,EAAE,CAAC;YAClB,KAAK,KAAK;gBACR,OAAO,SAAS,CAAC,CAAC,8BAA8B;YAClD,KAAK,MAAM;gBACT,OAAO,SAAS,CAAC,CAAC,iCAAiC;YACrD,KAAK,OAAO;gBACV,OAAO,SAAS,CAAC,CAAC,gCAAgC;YACpD,KAAK,QAAQ;gBACX,OAAO,SAAS,CAAC,CAAC,iCAAiC;YACrD,KAAK,YAAY;gBACf,OAAO,MAAM,CAAC,CAAC,wCAAwC;YACzD;gBACE,OAAO,SAAS,CAAC;QACrB,CAAC;IACH,CAAC;IAED,qEAAqE;IACrE,MAAM,UAAU,GAAG,KAAmB,CAAC;IACvC,IAAI,OAAO,IAAI,UAAU,IAAI,UAAU,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAChE,IAAI,QAAQ,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAClE,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"instruments.js","sourceRoot":"","sources":["../src/instruments.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,QAAQ,CAAC;AACjD,MAAM,CAAC,MAAM,qBAAqB,GAAG,YAAY,CAAC;AAClD,MAAM,CAAC,MAAM,6BAA6B,GAAG,oBAAoB,CAAC;AAClE,MAAM,CAAC,MAAM,wBAAwB,GAAG,kBAAkB,CAAC;AAC3D,MAAM,CAAC,MAAM,oBAAoB,GAAG,WAAW,CAAC;AAShD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,YAAY,CAAC,KAAyB;IACpD,IAAI,WAAW,IAAI,KAAK,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QAC5C,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QAElC,QAAQ,SAAS,EAAE,CAAC;YAClB,KAAK,eAAe;gBAClB,OAAO,wBAAwB,CAAC;YAClC,KAAK,YAAY;gBACf,OAAO,qBAAqB,CAAC;YAC/B,KAAK,oBAAoB;gBACvB,OAAO,6BAA6B,CAAC;YACvC,KAAK,eAAe;gBAClB,OAAO,wBAAwB,CAAC;YAClC,KAAK,WAAW;gBACd,OAAO,oBAAoB,CAAC;YAC9B;gBACE,OAAO,oBAAoB,CAAC,CAAC,WAAW;QAC5C,CAAC;IACH,CAAC;IAED,OAAO,oBAAoB,CAAC,CAAC,WAAW;AAC1C,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,mBAAmB,CACjC,KAAyB;IAEzB,IAAI,WAAW,IAAI,KAAK,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QAC5C,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QAElC,QAAQ,SAAS,EAAE,CAAC;YAClB,KAAK,eAAe;gBAClB,OAAO,SAAS,CAAC,CAAC,qCAAqC;YACzD,KAAK,YAAY;gBACf,OAAO,MAAM,CAAC,CAAC,0CAA0C;YAC3D,KAAK,oBAAoB;gBACvB,OAAO,SAAS,CAAC,CAAC,yCAAyC;YAC7D,KAAK,eAAe;gBAClB,OAAO,SAAS,CAAC,CAAC,4CAA4C;YAChE,KAAK,WAAW;gBACd,OAAO,SAAS,CAAC,CAAC,4BAA4B;YAChD;gBACE,OAAO,SAAS,CAAC;QACrB,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cranberry-money/shared-utils",
3
- "version": "8.23.309",
3
+ "version": "8.23.317",
4
4
  "description": "Shared utility functions for Blueberry platform",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -29,8 +29,8 @@
29
29
  "prepublishOnly": "npm run clean && npm run typecheck && npm test && npm run build"
30
30
  },
31
31
  "dependencies": {
32
- "@cranberry-money/shared-constants": "^8.15.334",
33
- "@cranberry-money/shared-types": "^8.22.309"
32
+ "@cranberry-money/shared-constants": "^8.15.342",
33
+ "@cranberry-money/shared-types": "^8.22.317"
34
34
  },
35
35
  "devDependencies": {
36
36
  "@types/jest": "^30.0.0",