@adriangalilea/utils 0.0.10
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/README.md +99 -0
- package/dist/browser.d.ts +14 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +18 -0
- package/dist/browser.js.map +1 -0
- package/dist/currency/crypto-symbols-data.d.ts +10 -0
- package/dist/currency/crypto-symbols-data.d.ts.map +1 -0
- package/dist/currency/crypto-symbols-data.js +13765 -0
- package/dist/currency/crypto-symbols-data.js.map +1 -0
- package/dist/currency/crypto-symbols.d.ts +20 -0
- package/dist/currency/crypto-symbols.d.ts.map +1 -0
- package/dist/currency/crypto-symbols.js +23 -0
- package/dist/currency/crypto-symbols.js.map +1 -0
- package/dist/currency/download-crypto-list.d.ts +10 -0
- package/dist/currency/download-crypto-list.d.ts.map +1 -0
- package/dist/currency/download-crypto-list.js +69 -0
- package/dist/currency/download-crypto-list.js.map +1 -0
- package/dist/currency/index.d.ts +84 -0
- package/dist/currency/index.d.ts.map +1 -0
- package/dist/currency/index.js +230 -0
- package/dist/currency/index.js.map +1 -0
- package/dist/dir.d.ts +40 -0
- package/dist/dir.d.ts.map +1 -0
- package/dist/dir.js +108 -0
- package/dist/dir.js.map +1 -0
- package/dist/file.d.ts +53 -0
- package/dist/file.d.ts.map +1 -0
- package/dist/file.js +211 -0
- package/dist/file.js.map +1 -0
- package/dist/format.d.ts +40 -0
- package/dist/format.d.ts.map +1 -0
- package/dist/format.js +83 -0
- package/dist/format.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/kev.d.ts +149 -0
- package/dist/kev.d.ts.map +1 -0
- package/dist/kev.js +761 -0
- package/dist/kev.js.map +1 -0
- package/dist/log.d.ts +91 -0
- package/dist/log.d.ts.map +1 -0
- package/dist/log.js +300 -0
- package/dist/log.js.map +1 -0
- package/dist/logger.d.ts +91 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +269 -0
- package/dist/logger.js.map +1 -0
- package/dist/offensive.d.ts +73 -0
- package/dist/offensive.d.ts.map +1 -0
- package/dist/offensive.js +103 -0
- package/dist/offensive.js.map +1 -0
- package/dist/path.d.ts +67 -0
- package/dist/path.d.ts.map +1 -0
- package/dist/path.js +107 -0
- package/dist/path.js.map +1 -0
- package/dist/platform/dir.d.ts +40 -0
- package/dist/platform/dir.d.ts.map +1 -0
- package/dist/platform/dir.js +108 -0
- package/dist/platform/dir.js.map +1 -0
- package/dist/platform/file.d.ts +53 -0
- package/dist/platform/file.d.ts.map +1 -0
- package/dist/platform/file.js +211 -0
- package/dist/platform/file.js.map +1 -0
- package/dist/platform/kev.d.ts +149 -0
- package/dist/platform/kev.d.ts.map +1 -0
- package/dist/platform/kev.js +762 -0
- package/dist/platform/kev.js.map +1 -0
- package/dist/platform/path.d.ts +67 -0
- package/dist/platform/path.d.ts.map +1 -0
- package/dist/platform/path.js +108 -0
- package/dist/platform/path.js.map +1 -0
- package/dist/platform/project.d.ts +35 -0
- package/dist/platform/project.d.ts.map +1 -0
- package/dist/platform/project.js +155 -0
- package/dist/platform/project.js.map +1 -0
- package/dist/project.d.ts +35 -0
- package/dist/project.d.ts.map +1 -0
- package/dist/project.js +154 -0
- package/dist/project.js.map +1 -0
- package/dist/runtime.d.ts +65 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +193 -0
- package/dist/runtime.js.map +1 -0
- package/dist/universal/currency/crypto-symbols-data.d.ts +10 -0
- package/dist/universal/currency/crypto-symbols-data.d.ts.map +1 -0
- package/dist/universal/currency/crypto-symbols-data.js +13765 -0
- package/dist/universal/currency/crypto-symbols-data.js.map +1 -0
- package/dist/universal/currency/crypto-symbols.d.ts +20 -0
- package/dist/universal/currency/crypto-symbols.d.ts.map +1 -0
- package/dist/universal/currency/crypto-symbols.js +23 -0
- package/dist/universal/currency/crypto-symbols.js.map +1 -0
- package/dist/universal/currency/download-crypto-list.d.ts +10 -0
- package/dist/universal/currency/download-crypto-list.d.ts.map +1 -0
- package/dist/universal/currency/download-crypto-list.js +69 -0
- package/dist/universal/currency/download-crypto-list.js.map +1 -0
- package/dist/universal/currency/index.d.ts +90 -0
- package/dist/universal/currency/index.d.ts.map +1 -0
- package/dist/universal/currency/index.js +276 -0
- package/dist/universal/currency/index.js.map +1 -0
- package/dist/universal/format.d.ts +40 -0
- package/dist/universal/format.d.ts.map +1 -0
- package/dist/universal/format.js +83 -0
- package/dist/universal/format.js.map +1 -0
- package/dist/universal/log.d.ts +91 -0
- package/dist/universal/log.d.ts.map +1 -0
- package/dist/universal/log.js +309 -0
- package/dist/universal/log.js.map +1 -0
- package/package.json +75 -0
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
export const CurrencySymbols = {
|
|
2
|
+
BTC: '₿',
|
|
3
|
+
XBT: '₿',
|
|
4
|
+
ETH: 'Ξ',
|
|
5
|
+
USD: '$',
|
|
6
|
+
EUR: '€',
|
|
7
|
+
GBP: '£',
|
|
8
|
+
JPY: '¥',
|
|
9
|
+
CNY: '¥',
|
|
10
|
+
KRW: '₩',
|
|
11
|
+
INR: '₹',
|
|
12
|
+
RUB: '₽',
|
|
13
|
+
TRY: '₺',
|
|
14
|
+
AUD: 'A$',
|
|
15
|
+
CAD: 'C$',
|
|
16
|
+
CHF: 'Fr',
|
|
17
|
+
HKD: 'HK$',
|
|
18
|
+
SGD: 'S$',
|
|
19
|
+
NZD: 'NZ$',
|
|
20
|
+
SEK: 'kr',
|
|
21
|
+
NOK: 'kr',
|
|
22
|
+
DKK: 'kr',
|
|
23
|
+
PLN: 'zł',
|
|
24
|
+
THB: '฿',
|
|
25
|
+
USDT: '₮',
|
|
26
|
+
USDC: '$',
|
|
27
|
+
DAI: '$',
|
|
28
|
+
BUSD: '$',
|
|
29
|
+
};
|
|
30
|
+
export function getSymbol(code) {
|
|
31
|
+
return CurrencySymbols[code] || code;
|
|
32
|
+
}
|
|
33
|
+
export function getOptimalDecimals(value, currencyCode) {
|
|
34
|
+
if (value === 0) {
|
|
35
|
+
return isCrypto(currencyCode) ? 8 : 2;
|
|
36
|
+
}
|
|
37
|
+
const absValue = Math.abs(value);
|
|
38
|
+
switch (currencyCode) {
|
|
39
|
+
case 'BTC':
|
|
40
|
+
case 'XBT':
|
|
41
|
+
if (absValue < 0.00001)
|
|
42
|
+
return 10;
|
|
43
|
+
else if (absValue < 0.0001)
|
|
44
|
+
return 9;
|
|
45
|
+
else if (absValue < 0.001)
|
|
46
|
+
return 8;
|
|
47
|
+
else if (absValue < 0.01)
|
|
48
|
+
return 7;
|
|
49
|
+
else if (absValue < 0.1)
|
|
50
|
+
return 6;
|
|
51
|
+
else if (absValue < 1)
|
|
52
|
+
return 5;
|
|
53
|
+
else
|
|
54
|
+
return 4;
|
|
55
|
+
case 'ETH':
|
|
56
|
+
if (absValue < 0.001)
|
|
57
|
+
return 8;
|
|
58
|
+
else if (absValue < 0.01)
|
|
59
|
+
return 7;
|
|
60
|
+
else if (absValue < 0.1)
|
|
61
|
+
return 6;
|
|
62
|
+
else if (absValue < 1)
|
|
63
|
+
return 5;
|
|
64
|
+
else
|
|
65
|
+
return 4;
|
|
66
|
+
case 'USD':
|
|
67
|
+
case 'USDT':
|
|
68
|
+
case 'USDC':
|
|
69
|
+
case 'DAI':
|
|
70
|
+
case 'BUSD':
|
|
71
|
+
if (absValue < 0.01)
|
|
72
|
+
return 6;
|
|
73
|
+
else if (absValue < 0.1)
|
|
74
|
+
return 4;
|
|
75
|
+
else if (absValue < 1)
|
|
76
|
+
return 3;
|
|
77
|
+
else
|
|
78
|
+
return 2;
|
|
79
|
+
case 'EUR':
|
|
80
|
+
case 'GBP':
|
|
81
|
+
case 'CAD':
|
|
82
|
+
case 'AUD':
|
|
83
|
+
case 'CHF':
|
|
84
|
+
if (absValue < 0.01)
|
|
85
|
+
return 4;
|
|
86
|
+
else if (absValue < 1000)
|
|
87
|
+
return 2;
|
|
88
|
+
else
|
|
89
|
+
return 0;
|
|
90
|
+
case 'JPY':
|
|
91
|
+
case 'KRW':
|
|
92
|
+
if (absValue < 1)
|
|
93
|
+
return 2;
|
|
94
|
+
else
|
|
95
|
+
return 0;
|
|
96
|
+
}
|
|
97
|
+
if (isCrypto(currencyCode)) {
|
|
98
|
+
if (absValue < 0.00001)
|
|
99
|
+
return 8;
|
|
100
|
+
else if (absValue < 0.0001)
|
|
101
|
+
return 6;
|
|
102
|
+
else if (absValue < 0.001)
|
|
103
|
+
return 5;
|
|
104
|
+
else if (absValue < 0.01)
|
|
105
|
+
return 4;
|
|
106
|
+
else if (absValue < 0.1)
|
|
107
|
+
return 3;
|
|
108
|
+
else if (absValue < 1)
|
|
109
|
+
return 3;
|
|
110
|
+
else
|
|
111
|
+
return 2;
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
if (absValue < 0.01)
|
|
115
|
+
return 4;
|
|
116
|
+
else if (absValue < 0.1)
|
|
117
|
+
return 3;
|
|
118
|
+
else if (absValue < 1000)
|
|
119
|
+
return 2;
|
|
120
|
+
else
|
|
121
|
+
return 0;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
import { isCryptoSymbol } from './crypto-symbols.js';
|
|
125
|
+
// Alternative ticker mappings (some exchanges use different symbols)
|
|
126
|
+
const cryptoAlternatives = {
|
|
127
|
+
'XBT': 'BTC', // BitMEX and some others use XBT for Bitcoin
|
|
128
|
+
'IOTA': 'MIOTA', // IOTA vs MIOTA
|
|
129
|
+
'STR': 'XLM', // Stellar old ticker
|
|
130
|
+
'BCHABC': 'BCH', // Bitcoin Cash ABC
|
|
131
|
+
'BCHSV': 'BSV', // Bitcoin SV
|
|
132
|
+
'DRK': 'DASH', // Darkcoin old name
|
|
133
|
+
'XRB': 'NANO', // RaiBlocks old name
|
|
134
|
+
'ANT': 'ANT', // Could be Aragon
|
|
135
|
+
'BCC': 'BCH', // Bittrex used BCC for Bitcoin Cash
|
|
136
|
+
'MIOTA': 'IOTA', // Some use MIOTA
|
|
137
|
+
'YOYOW': 'YOYOW', // Various formats
|
|
138
|
+
'IOTX': 'IOTX', // IoTeX
|
|
139
|
+
'QSH': 'QASH', // QASH variations
|
|
140
|
+
'YOYO': 'YOYOW', // YOYOW variations
|
|
141
|
+
'ETHOS': 'BQX', // Ethos old ticker
|
|
142
|
+
'REP': 'REP', // Augur variations
|
|
143
|
+
'REPV2': 'REP', // Augur v2
|
|
144
|
+
'USDt': 'USDT', // Case variations
|
|
145
|
+
'USDT.e': 'USDT', // Avalanche USDT
|
|
146
|
+
'USDC.e': 'USDC', // Avalanche USDC
|
|
147
|
+
'WBTC.e': 'WBTC', // Avalanche WBTC
|
|
148
|
+
'DAI.e': 'DAI', // Avalanche DAI
|
|
149
|
+
'BTC.b': 'BTC', // Avalanche BTC
|
|
150
|
+
'BETH': 'WBETH', // Binance ETH
|
|
151
|
+
'STETH': 'STETH', // Lido staked ETH
|
|
152
|
+
'WSTETH': 'WSTETH', // Wrapped stETH
|
|
153
|
+
};
|
|
154
|
+
// Build reverse mapping for normalization (alternative -> normalized)
|
|
155
|
+
const symbolReverseMap = new Map();
|
|
156
|
+
for (const [alternative, normalized] of Object.entries(cryptoAlternatives)) {
|
|
157
|
+
// Only map if it's actually an alternative, not the same
|
|
158
|
+
if (alternative !== normalized) {
|
|
159
|
+
symbolReverseMap.set(alternative.toUpperCase(), normalized);
|
|
160
|
+
symbolReverseMap.set(alternative.toLowerCase(), normalized);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
export function normalize(symbol) {
|
|
164
|
+
const upperSymbol = symbol.toUpperCase();
|
|
165
|
+
// Check if it's a known alternative
|
|
166
|
+
if (cryptoAlternatives[upperSymbol]) {
|
|
167
|
+
return cryptoAlternatives[upperSymbol];
|
|
168
|
+
}
|
|
169
|
+
// Check reverse mapping
|
|
170
|
+
const normalized = symbolReverseMap.get(upperSymbol) || symbolReverseMap.get(symbol.toLowerCase());
|
|
171
|
+
if (normalized) {
|
|
172
|
+
return normalized;
|
|
173
|
+
}
|
|
174
|
+
// Handle wrapped/bridged tokens
|
|
175
|
+
const unwrapped = upperSymbol
|
|
176
|
+
.replace(/^W/, '') // Remove W prefix (WBTC -> BTC)
|
|
177
|
+
.replace(/\.E$/, '') // Remove .e suffix (USDT.e -> USDT)
|
|
178
|
+
.replace(/\.B$/, ''); // Remove .b suffix (BTC.b -> BTC)
|
|
179
|
+
if (unwrapped !== upperSymbol && cryptoAlternatives[unwrapped]) {
|
|
180
|
+
return cryptoAlternatives[unwrapped];
|
|
181
|
+
}
|
|
182
|
+
return upperSymbol;
|
|
183
|
+
}
|
|
184
|
+
export function areEquivalent(symbol1, symbol2) {
|
|
185
|
+
return normalize(symbol1) === normalize(symbol2);
|
|
186
|
+
}
|
|
187
|
+
export function getVariations(symbol) {
|
|
188
|
+
const normalized = normalize(symbol);
|
|
189
|
+
const variations = new Set([normalized]);
|
|
190
|
+
// Add all known alternatives
|
|
191
|
+
for (const [key, value] of Object.entries(cryptoAlternatives)) {
|
|
192
|
+
if (value === normalized || key === normalized) {
|
|
193
|
+
variations.add(key);
|
|
194
|
+
variations.add(value);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
return Array.from(variations);
|
|
198
|
+
}
|
|
199
|
+
export function isCrypto(code) {
|
|
200
|
+
const upperCode = code.toUpperCase();
|
|
201
|
+
// Check if it's a known alternative
|
|
202
|
+
if (cryptoAlternatives[upperCode]) {
|
|
203
|
+
return isCryptoSymbol(cryptoAlternatives[upperCode]);
|
|
204
|
+
}
|
|
205
|
+
// Check if it's a wrapped or bridged token (common patterns)
|
|
206
|
+
const unwrappedCode = upperCode
|
|
207
|
+
.replace(/^W/, '') // Remove W prefix (WBTC -> BTC)
|
|
208
|
+
.replace(/\.E$/, '') // Remove .e suffix (USDT.e -> USDT)
|
|
209
|
+
.replace(/\.B$/, ''); // Remove .b suffix (BTC.b -> BTC)
|
|
210
|
+
if (unwrappedCode !== upperCode) {
|
|
211
|
+
return isCryptoSymbol(unwrappedCode);
|
|
212
|
+
}
|
|
213
|
+
return isCryptoSymbol(upperCode);
|
|
214
|
+
}
|
|
215
|
+
export function isStablecoin(code) {
|
|
216
|
+
const stablecoins = new Set([
|
|
217
|
+
'USDT', 'USDC', 'DAI', 'BUSD', 'UST', 'TUSD', 'USDP', 'GUSD', 'FRAX', 'LUSD'
|
|
218
|
+
]);
|
|
219
|
+
return stablecoins.has(code);
|
|
220
|
+
}
|
|
221
|
+
export function isFiat(code) {
|
|
222
|
+
const fiats = new Set([
|
|
223
|
+
'USD', 'EUR', 'GBP', 'JPY', 'CNY', 'CAD', 'AUD', 'CHF', 'HKD', 'SGD',
|
|
224
|
+
'NZD', 'KRW', 'SEK', 'NOK', 'DKK', 'PLN', 'THB', 'INR', 'RUB', 'TRY',
|
|
225
|
+
'BRL', 'MXN', 'ARS', 'CLP', 'COP', 'PEN', 'UYU', 'ZAR', 'NGN', 'KES'
|
|
226
|
+
]);
|
|
227
|
+
return fiats.has(code);
|
|
228
|
+
}
|
|
229
|
+
export function percentageOf(value, total) {
|
|
230
|
+
if (total === 0)
|
|
231
|
+
return 0;
|
|
232
|
+
return (value / total) * 100;
|
|
233
|
+
}
|
|
234
|
+
export function percentageChange(oldValue, newValue) {
|
|
235
|
+
if (oldValue === 0) {
|
|
236
|
+
if (newValue === 0)
|
|
237
|
+
return 0;
|
|
238
|
+
return newValue > 0 ? 100 : -100;
|
|
239
|
+
}
|
|
240
|
+
return ((newValue - oldValue) / Math.abs(oldValue)) * 100;
|
|
241
|
+
}
|
|
242
|
+
export function percentageDiff(a, b) {
|
|
243
|
+
if (a === 0 && b === 0)
|
|
244
|
+
return 0;
|
|
245
|
+
const avg = (Math.abs(a) + Math.abs(b)) / 2;
|
|
246
|
+
if (avg === 0)
|
|
247
|
+
return 0;
|
|
248
|
+
return (Math.abs(a - b) / avg) * 100;
|
|
249
|
+
}
|
|
250
|
+
export function basisPointsToPercent(bps) {
|
|
251
|
+
return bps / 100.0;
|
|
252
|
+
}
|
|
253
|
+
export function percentToBasisPoints(percent) {
|
|
254
|
+
return Math.round(percent * 100);
|
|
255
|
+
}
|
|
256
|
+
export function formatBasisPoints(bps) {
|
|
257
|
+
return `${bps} bps`;
|
|
258
|
+
}
|
|
259
|
+
export const currency = {
|
|
260
|
+
getSymbol,
|
|
261
|
+
getOptimalDecimals,
|
|
262
|
+
normalize,
|
|
263
|
+
areEquivalent,
|
|
264
|
+
getVariations,
|
|
265
|
+
isCrypto,
|
|
266
|
+
isStablecoin,
|
|
267
|
+
isFiat,
|
|
268
|
+
percentageOf,
|
|
269
|
+
percentageChange,
|
|
270
|
+
percentageDiff,
|
|
271
|
+
basisPointsToPercent,
|
|
272
|
+
percentToBasisPoints,
|
|
273
|
+
formatBasisPoints,
|
|
274
|
+
symbols: CurrencySymbols,
|
|
275
|
+
};
|
|
276
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/universal/currency/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Format utilities for numbers and currencies
|
|
3
|
+
*/
|
|
4
|
+
declare class FormatOps {
|
|
5
|
+
/**
|
|
6
|
+
* Format a number with specified decimal places
|
|
7
|
+
*/
|
|
8
|
+
number(value: number, decimals: number): string;
|
|
9
|
+
/**
|
|
10
|
+
* Format a value as USD with optimal decimals
|
|
11
|
+
*/
|
|
12
|
+
usd(value: number): string;
|
|
13
|
+
/**
|
|
14
|
+
* Format a value as Bitcoin with optimal decimals
|
|
15
|
+
*/
|
|
16
|
+
btc(value: number): string;
|
|
17
|
+
/**
|
|
18
|
+
* Format a value as Ethereum with optimal decimals
|
|
19
|
+
*/
|
|
20
|
+
eth(value: number): string;
|
|
21
|
+
/**
|
|
22
|
+
* Auto format a value with the appropriate currency symbol and decimals
|
|
23
|
+
*/
|
|
24
|
+
auto(value: number, currencyCode: string): string;
|
|
25
|
+
/**
|
|
26
|
+
* Format a percentage with smart decimal places
|
|
27
|
+
*/
|
|
28
|
+
percentage(value: number): string;
|
|
29
|
+
/**
|
|
30
|
+
* Format a value with thousands separators
|
|
31
|
+
*/
|
|
32
|
+
withCommas(value: number, decimals?: number): string;
|
|
33
|
+
/**
|
|
34
|
+
* Format a value in compact notation (1.2K, 3.4M, etc)
|
|
35
|
+
*/
|
|
36
|
+
compact(value: number): string;
|
|
37
|
+
}
|
|
38
|
+
export declare const format: FormatOps;
|
|
39
|
+
export {};
|
|
40
|
+
//# sourceMappingURL=format.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/universal/format.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,cAAM,SAAS;IACb;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAI/C;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAM1B;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAK1B;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAK1B;;OAEG;IACH,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM;IAajD;;OAEG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAUjC;;OAEG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM;IAOpD;;OAEG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;CAO/B;AAED,eAAO,MAAM,MAAM,WAAkB,CAAA"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { getOptimalDecimals, getSymbol, isFiat, isStablecoin } from './currency/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Format utilities for numbers and currencies
|
|
4
|
+
*/
|
|
5
|
+
class FormatOps {
|
|
6
|
+
/**
|
|
7
|
+
* Format a number with specified decimal places
|
|
8
|
+
*/
|
|
9
|
+
number(value, decimals) {
|
|
10
|
+
return value.toFixed(decimals);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Format a value as USD with optimal decimals
|
|
14
|
+
*/
|
|
15
|
+
usd(value) {
|
|
16
|
+
const decimals = getOptimalDecimals(value, 'USD');
|
|
17
|
+
const formatted = Math.abs(value).toFixed(decimals);
|
|
18
|
+
return value < 0 ? `-$${formatted}` : `$${formatted}`;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Format a value as Bitcoin with optimal decimals
|
|
22
|
+
*/
|
|
23
|
+
btc(value) {
|
|
24
|
+
const decimals = getOptimalDecimals(value, 'BTC');
|
|
25
|
+
return `${value.toFixed(decimals)} ₿`;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Format a value as Ethereum with optimal decimals
|
|
29
|
+
*/
|
|
30
|
+
eth(value) {
|
|
31
|
+
const decimals = getOptimalDecimals(value, 'ETH');
|
|
32
|
+
return `${value.toFixed(decimals)} Ξ`;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Auto format a value with the appropriate currency symbol and decimals
|
|
36
|
+
*/
|
|
37
|
+
auto(value, currencyCode) {
|
|
38
|
+
const decimals = getOptimalDecimals(value, currencyCode);
|
|
39
|
+
const symbol = getSymbol(currencyCode);
|
|
40
|
+
const formatted = Math.abs(value).toFixed(decimals);
|
|
41
|
+
// Put symbol before for fiat/stablecoins, after for crypto
|
|
42
|
+
if (isFiat(currencyCode) || isStablecoin(currencyCode)) {
|
|
43
|
+
return value < 0 ? `-${symbol}${formatted}` : `${symbol}${formatted}`;
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
return value < 0 ? `-${formatted} ${symbol}` : `${formatted} ${symbol}`;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Format a percentage with smart decimal places
|
|
51
|
+
*/
|
|
52
|
+
percentage(value) {
|
|
53
|
+
let decimals = 1;
|
|
54
|
+
if (Math.abs(value) < 0.1) {
|
|
55
|
+
decimals = 2;
|
|
56
|
+
}
|
|
57
|
+
else if (Math.abs(value) >= 100) {
|
|
58
|
+
decimals = 0;
|
|
59
|
+
}
|
|
60
|
+
return `${value.toFixed(decimals)}%`;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Format a value with thousands separators
|
|
64
|
+
*/
|
|
65
|
+
withCommas(value, decimals) {
|
|
66
|
+
const fixed = decimals !== undefined ? value.toFixed(decimals) : value.toString();
|
|
67
|
+
const parts = fixed.split('.');
|
|
68
|
+
parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ',');
|
|
69
|
+
return parts.join('.');
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Format a value in compact notation (1.2K, 3.4M, etc)
|
|
73
|
+
*/
|
|
74
|
+
compact(value) {
|
|
75
|
+
const formatter = new Intl.NumberFormat('en', {
|
|
76
|
+
notation: 'compact',
|
|
77
|
+
maximumFractionDigits: 1
|
|
78
|
+
});
|
|
79
|
+
return formatter.format(value);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
export const format = new FormatOps();
|
|
83
|
+
//# sourceMappingURL=format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/universal/format.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A Next.js-style logger for TypeScript applications
|
|
3
|
+
* Provides colored output with Unicode symbols for different log levels
|
|
4
|
+
*/
|
|
5
|
+
export declare const bold: (str: string) => string;
|
|
6
|
+
export declare const dim: (str: string) => string;
|
|
7
|
+
export declare const red: (str: string) => string;
|
|
8
|
+
export declare const green: (str: string) => string;
|
|
9
|
+
export declare const yellow: (str: string) => string;
|
|
10
|
+
export declare const blue: (str: string) => string;
|
|
11
|
+
export declare const magenta: (str: string) => string;
|
|
12
|
+
export declare const cyan: (str: string) => string;
|
|
13
|
+
export declare const white: (str: string) => string;
|
|
14
|
+
export declare const gray: (str: string) => string;
|
|
15
|
+
export declare const purple: (str: string) => string;
|
|
16
|
+
export declare const bgRed: (str: string) => string;
|
|
17
|
+
export declare const bgGreen: (str: string) => string;
|
|
18
|
+
export declare const bgYellow: (str: string) => string;
|
|
19
|
+
export declare const bgBlue: (str: string) => string;
|
|
20
|
+
export declare const bgMagenta: (str: string) => string;
|
|
21
|
+
export declare const bgCyan: (str: string) => string;
|
|
22
|
+
export declare const bgWhite: (str: string) => string;
|
|
23
|
+
export declare function bootstrap(...messages: string[]): void;
|
|
24
|
+
export declare function wait(...messages: any[]): void;
|
|
25
|
+
export declare function error(...messages: any[]): void;
|
|
26
|
+
export declare function warn(...messages: any[]): void;
|
|
27
|
+
export declare function ready(...messages: any[]): void;
|
|
28
|
+
export declare function info(...messages: any[]): void;
|
|
29
|
+
export declare function success(...messages: any[]): void;
|
|
30
|
+
export declare function event(...messages: any[]): void;
|
|
31
|
+
export declare function trace(...messages: any[]): void;
|
|
32
|
+
export declare function warnOnce(...messages: any[]): void;
|
|
33
|
+
export declare function time(label: string): void;
|
|
34
|
+
export declare function timeEnd(label: string): void;
|
|
35
|
+
export declare function createLogger(prefix: string): {
|
|
36
|
+
wait: (...messages: any[]) => void;
|
|
37
|
+
error: (...messages: any[]) => void;
|
|
38
|
+
warn: (...messages: any[]) => void;
|
|
39
|
+
ready: (...messages: any[]) => void;
|
|
40
|
+
info: (...messages: any[]) => void;
|
|
41
|
+
success: (...messages: any[]) => void;
|
|
42
|
+
event: (...messages: any[]) => void;
|
|
43
|
+
trace: (...messages: any[]) => void;
|
|
44
|
+
warnOnce: (...messages: any[]) => void;
|
|
45
|
+
time: (label: string) => void;
|
|
46
|
+
timeEnd: (label: string) => void;
|
|
47
|
+
};
|
|
48
|
+
declare const log: {
|
|
49
|
+
wait: typeof wait;
|
|
50
|
+
error: typeof error;
|
|
51
|
+
warn: typeof warn;
|
|
52
|
+
ready: typeof ready;
|
|
53
|
+
info: typeof info;
|
|
54
|
+
success: typeof success;
|
|
55
|
+
event: typeof event;
|
|
56
|
+
trace: typeof trace;
|
|
57
|
+
warnOnce: typeof warnOnce;
|
|
58
|
+
time: typeof time;
|
|
59
|
+
timeEnd: typeof timeEnd;
|
|
60
|
+
bootstrap: typeof bootstrap;
|
|
61
|
+
createLogger: typeof createLogger;
|
|
62
|
+
colors: {
|
|
63
|
+
bold: (str: string) => string;
|
|
64
|
+
dim: (str: string) => string;
|
|
65
|
+
red: (str: string) => string;
|
|
66
|
+
green: (str: string) => string;
|
|
67
|
+
yellow: (str: string) => string;
|
|
68
|
+
blue: (str: string) => string;
|
|
69
|
+
magenta: (str: string) => string;
|
|
70
|
+
cyan: (str: string) => string;
|
|
71
|
+
white: (str: string) => string;
|
|
72
|
+
gray: (str: string) => string;
|
|
73
|
+
purple: (str: string) => string;
|
|
74
|
+
bgRed: (str: string) => string;
|
|
75
|
+
bgGreen: (str: string) => string;
|
|
76
|
+
bgYellow: (str: string) => string;
|
|
77
|
+
bgBlue: (str: string) => string;
|
|
78
|
+
bgMagenta: (str: string) => string;
|
|
79
|
+
bgCyan: (str: string) => string;
|
|
80
|
+
bgWhite: (str: string) => string;
|
|
81
|
+
};
|
|
82
|
+
};
|
|
83
|
+
export { log };
|
|
84
|
+
export declare function logAppStartup(options: {
|
|
85
|
+
name: string;
|
|
86
|
+
version: string;
|
|
87
|
+
port: number;
|
|
88
|
+
host?: string;
|
|
89
|
+
environment?: string;
|
|
90
|
+
}): void;
|
|
91
|
+
//# sourceMappingURL=log.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../src/universal/log.ts"],"names":[],"mappings":"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"}
|