@cranberry-money/shared-utils 8.23.193 → 8.23.197
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -2
- package/dist/index.js.map +1 -1
- package/dist/instruments.d.ts +34 -2
- package/dist/instruments.d.ts.map +1 -1
- package/dist/instruments.js +84 -1
- package/dist/instruments.js.map +1 -1
- package/package.json +3 -3
package/dist/index.d.ts
CHANGED
|
@@ -11,5 +11,5 @@ export { combineTargetAndActualAllocations, transformAllocationsToDisplayItems,
|
|
|
11
11
|
export { validatePortfolioSelection } from './portfolio-validation';
|
|
12
12
|
export { validateUserPreferences, hasUserPreferences, getUserPreferencesSummary, formatUserPreferencesForDisplay, getAvailablePortfoliosForAccount, isValidUserPreferencesUpdate, getUserPreferencesCacheKey, sanitizeUserPreferencesInput, } from './user-preferences';
|
|
13
13
|
export { formatPhoneForDisplay, cleanPhoneNumber, getExpectedPhoneLength } from './phoneFormatting';
|
|
14
|
-
export { getInstrumentType, getInstrumentTypeVariant, INSTRUMENT_TYPE_ETF, INSTRUMENT_TYPE_FUND, INSTRUMENT_TYPE_STOCK, type InstrumentType, } from './instruments';
|
|
14
|
+
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
15
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAGjF,OAAO,EACL,8BAA8B,EAC9B,qCAAqC,EACrC,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,cAAc,EACd,yBAAyB,EACzB,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,EACvB,SAAS,EACT,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,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,cAAc,CAAC;AAGtB,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,
|
|
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,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAGjF,OAAO,EACL,8BAA8B,EAC9B,qCAAqC,EACrC,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,cAAc,EACd,yBAAyB,EACzB,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,EACvB,SAAS,EACT,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,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,cAAc,CAAC;AAGtB,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"}
|
package/dist/index.js
CHANGED
|
@@ -24,7 +24,13 @@ export { validatePortfolioSelection } from './portfolio-validation';
|
|
|
24
24
|
export { validateUserPreferences, hasUserPreferences, getUserPreferencesSummary, formatUserPreferencesForDisplay, getAvailablePortfoliosForAccount, isValidUserPreferencesUpdate, getUserPreferencesCacheKey, sanitizeUserPreferencesInput, } from './user-preferences';
|
|
25
25
|
// Phone formatting utilities
|
|
26
26
|
export { formatPhoneForDisplay, cleanPhoneNumber, getExpectedPhoneLength } from './phoneFormatting';
|
|
27
|
-
// Instrument utilities
|
|
28
|
-
export {
|
|
27
|
+
// Instrument and Asset utilities
|
|
28
|
+
export {
|
|
29
|
+
// Legacy instrument functions (deprecated but maintained for backward compatibility)
|
|
30
|
+
getInstrumentType, getInstrumentTypeVariant,
|
|
31
|
+
// New asset functions (recommended)
|
|
32
|
+
getAssetType, getAssetTypeVariant,
|
|
33
|
+
// Constants
|
|
34
|
+
INSTRUMENT_TYPE_ETF, INSTRUMENT_TYPE_FUND, INSTRUMENT_TYPE_STOCK, ASSET_TYPE_CRYPTO, ASSET_TYPE_STABLECOIN, } from './instruments';
|
|
29
35
|
// No re-exports - consumers should import directly from @cranberry-money/shared-types
|
|
30
36
|
//# 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,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,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAEjF,2CAA2C;AAC3C,OAAO,EACL,8BAA8B,EAC9B,qCAAqC,EACrC,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,cAAc,EACd,yBAAyB,EACzB,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,EACvB,SAAS,EACT,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,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,cAAc,CAAC;AAEtB,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,
|
|
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,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAEjF,2CAA2C;AAC3C,OAAO,EACL,8BAA8B,EAC9B,qCAAqC,EACrC,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,cAAc,EACd,yBAAyB,EACzB,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,EACvB,SAAS,EACT,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,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,cAAc,CAAC;AAEtB,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,sFAAsF"}
|
package/dist/instruments.d.ts
CHANGED
|
@@ -1,15 +1,22 @@
|
|
|
1
|
-
import type { Instrument } from '@cranberry-money/shared-types';
|
|
1
|
+
import type { Asset, Instrument, CryptoCoin, StableCoin } from '@cranberry-money/shared-types';
|
|
2
2
|
/**
|
|
3
|
-
* Asset type labels
|
|
3
|
+
* Asset type labels (for traditional instruments)
|
|
4
4
|
*/
|
|
5
5
|
export declare const INSTRUMENT_TYPE_ETF = "ETF";
|
|
6
6
|
export declare const INSTRUMENT_TYPE_FUND = "Fund";
|
|
7
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";
|
|
12
|
+
export declare const ASSET_TYPE_STABLECOIN = "Stablecoin";
|
|
8
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;
|
|
9
15
|
/**
|
|
10
16
|
* Get the type label for an instrument based on its properties.
|
|
11
17
|
* Returns 'ETF', 'Fund', or 'Stock'.
|
|
12
18
|
*
|
|
19
|
+
* @deprecated Use getAssetType() instead for broader asset type support
|
|
13
20
|
* @param instrument - The instrument object to get the type for
|
|
14
21
|
* @returns The instrument type label
|
|
15
22
|
*
|
|
@@ -22,6 +29,7 @@ export declare function getInstrumentType(instrument: Instrument): InstrumentTyp
|
|
|
22
29
|
* Get the color variant for an instrument type.
|
|
23
30
|
* Useful for badge components and visual differentiation.
|
|
24
31
|
*
|
|
32
|
+
* @deprecated Use getAssetTypeVariant() instead for broader asset type support
|
|
25
33
|
* @param instrument - The instrument object to get the color for
|
|
26
34
|
* @returns A color variant identifier
|
|
27
35
|
*
|
|
@@ -30,4 +38,28 @@ export declare function getInstrumentType(instrument: Instrument): InstrumentTyp
|
|
|
30
38
|
* // Returns: 'primary' | 'warning' | 'neutral'
|
|
31
39
|
*/
|
|
32
40
|
export declare function getInstrumentTypeVariant(instrument: Instrument): 'primary' | 'warning' | 'neutral';
|
|
41
|
+
/**
|
|
42
|
+
* Get the type label for any asset (instruments, crypto, stablecoins).
|
|
43
|
+
* Handles Asset base type and all child types.
|
|
44
|
+
*
|
|
45
|
+
* @param asset - Any asset object (Asset, Instrument, CryptoCoin, StableCoin)
|
|
46
|
+
* @returns The asset type display label
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* const type = getAssetType(asset);
|
|
50
|
+
* // Returns: 'ETF' | 'Fund' | 'Stock' | 'Crypto' | 'Stablecoin'
|
|
51
|
+
*/
|
|
52
|
+
export declare function getAssetType(asset: Asset | Instrument | CryptoCoin | StableCoin): AllAssetTypes;
|
|
53
|
+
/**
|
|
54
|
+
* Get the color variant for any asset type.
|
|
55
|
+
* Useful for badge components and visual differentiation across all asset types.
|
|
56
|
+
*
|
|
57
|
+
* @param asset - Any asset object (Asset, Instrument, CryptoCoin, StableCoin)
|
|
58
|
+
* @returns A color variant identifier
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* const variant = getAssetTypeVariant(asset);
|
|
62
|
+
* // Returns: 'primary' | 'warning' | 'success' | 'info' | 'neutral'
|
|
63
|
+
*/
|
|
64
|
+
export declare function getAssetTypeVariant(asset: Asset | Instrument | CryptoCoin | StableCoin): 'primary' | 'warning' | 'success' | 'info' | 'neutral';
|
|
33
65
|
//# sourceMappingURL=instruments.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instruments.d.ts","sourceRoot":"","sources":["../src/instruments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"instruments.d.ts","sourceRoot":"","sources":["../src/instruments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAa,MAAM,+BAA+B,CAAC;AAE1G;;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,UAAU,GAAG,UAAU,GAAG,aAAa,CA0B/F;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,KAAK,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAClD,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CA0BxD"}
|
package/dist/instruments.js
CHANGED
|
@@ -1,13 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Asset type labels
|
|
2
|
+
* Asset type labels (for traditional instruments)
|
|
3
3
|
*/
|
|
4
4
|
export const INSTRUMENT_TYPE_ETF = 'ETF';
|
|
5
5
|
export const INSTRUMENT_TYPE_FUND = 'Fund';
|
|
6
6
|
export const INSTRUMENT_TYPE_STOCK = 'Stock';
|
|
7
|
+
/**
|
|
8
|
+
* Asset type labels (for all asset types)
|
|
9
|
+
*/
|
|
10
|
+
export const ASSET_TYPE_CRYPTO = 'Crypto';
|
|
11
|
+
export const ASSET_TYPE_STABLECOIN = 'Stablecoin';
|
|
7
12
|
/**
|
|
8
13
|
* Get the type label for an instrument based on its properties.
|
|
9
14
|
* Returns 'ETF', 'Fund', or 'Stock'.
|
|
10
15
|
*
|
|
16
|
+
* @deprecated Use getAssetType() instead for broader asset type support
|
|
11
17
|
* @param instrument - The instrument object to get the type for
|
|
12
18
|
* @returns The instrument type label
|
|
13
19
|
*
|
|
@@ -26,6 +32,7 @@ export function getInstrumentType(instrument) {
|
|
|
26
32
|
* Get the color variant for an instrument type.
|
|
27
33
|
* Useful for badge components and visual differentiation.
|
|
28
34
|
*
|
|
35
|
+
* @deprecated Use getAssetTypeVariant() instead for broader asset type support
|
|
29
36
|
* @param instrument - The instrument object to get the color for
|
|
30
37
|
* @returns A color variant identifier
|
|
31
38
|
*
|
|
@@ -40,4 +47,80 @@ export function getInstrumentTypeVariant(instrument) {
|
|
|
40
47
|
return 'warning';
|
|
41
48
|
return 'neutral';
|
|
42
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* Get the type label for any asset (instruments, crypto, stablecoins).
|
|
52
|
+
* Handles Asset base type and all child types.
|
|
53
|
+
*
|
|
54
|
+
* @param asset - Any asset object (Asset, Instrument, CryptoCoin, StableCoin)
|
|
55
|
+
* @returns The asset type display label
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* const type = getAssetType(asset);
|
|
59
|
+
* // Returns: 'ETF' | 'Fund' | 'Stock' | 'Crypto' | 'Stablecoin'
|
|
60
|
+
*/
|
|
61
|
+
export function getAssetType(asset) {
|
|
62
|
+
// Check if asset has assetType field (from Asset base model)
|
|
63
|
+
if ('assetType' in asset && asset.assetType) {
|
|
64
|
+
const assetType = asset.assetType;
|
|
65
|
+
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':
|
|
75
|
+
return ASSET_TYPE_STABLECOIN;
|
|
76
|
+
default:
|
|
77
|
+
return INSTRUMENT_TYPE_STOCK; // fallback
|
|
78
|
+
}
|
|
79
|
+
}
|
|
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;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Get the color variant for any asset type.
|
|
90
|
+
* Useful for badge components and visual differentiation across all asset types.
|
|
91
|
+
*
|
|
92
|
+
* @param asset - Any asset object (Asset, Instrument, CryptoCoin, StableCoin)
|
|
93
|
+
* @returns A color variant identifier
|
|
94
|
+
*
|
|
95
|
+
* @example
|
|
96
|
+
* const variant = getAssetTypeVariant(asset);
|
|
97
|
+
* // Returns: 'primary' | 'warning' | 'success' | 'info' | 'neutral'
|
|
98
|
+
*/
|
|
99
|
+
export function getAssetTypeVariant(asset) {
|
|
100
|
+
// Check if asset has assetType field (from Asset base model)
|
|
101
|
+
if ('assetType' in asset && asset.assetType) {
|
|
102
|
+
const assetType = asset.assetType;
|
|
103
|
+
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
|
|
114
|
+
default:
|
|
115
|
+
return 'neutral';
|
|
116
|
+
}
|
|
117
|
+
}
|
|
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
|
+
return 'neutral';
|
|
125
|
+
}
|
|
43
126
|
//# sourceMappingURL=instruments.js.map
|
package/dist/instruments.js.map
CHANGED
|
@@ -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;
|
|
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,KAAmD;IAC9E,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,KAAmD;IAEnD,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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cranberry-money/shared-utils",
|
|
3
|
-
"version": "8.23.
|
|
3
|
+
"version": "8.23.197",
|
|
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.
|
|
33
|
-
"@cranberry-money/shared-types": "^8.22.
|
|
32
|
+
"@cranberry-money/shared-constants": "^8.15.222",
|
|
33
|
+
"@cranberry-money/shared-types": "^8.22.197"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@types/jest": "^30.0.0",
|