@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.
Files changed (110) hide show
  1. package/README.md +99 -0
  2. package/dist/browser.d.ts +14 -0
  3. package/dist/browser.d.ts.map +1 -0
  4. package/dist/browser.js +18 -0
  5. package/dist/browser.js.map +1 -0
  6. package/dist/currency/crypto-symbols-data.d.ts +10 -0
  7. package/dist/currency/crypto-symbols-data.d.ts.map +1 -0
  8. package/dist/currency/crypto-symbols-data.js +13765 -0
  9. package/dist/currency/crypto-symbols-data.js.map +1 -0
  10. package/dist/currency/crypto-symbols.d.ts +20 -0
  11. package/dist/currency/crypto-symbols.d.ts.map +1 -0
  12. package/dist/currency/crypto-symbols.js +23 -0
  13. package/dist/currency/crypto-symbols.js.map +1 -0
  14. package/dist/currency/download-crypto-list.d.ts +10 -0
  15. package/dist/currency/download-crypto-list.d.ts.map +1 -0
  16. package/dist/currency/download-crypto-list.js +69 -0
  17. package/dist/currency/download-crypto-list.js.map +1 -0
  18. package/dist/currency/index.d.ts +84 -0
  19. package/dist/currency/index.d.ts.map +1 -0
  20. package/dist/currency/index.js +230 -0
  21. package/dist/currency/index.js.map +1 -0
  22. package/dist/dir.d.ts +40 -0
  23. package/dist/dir.d.ts.map +1 -0
  24. package/dist/dir.js +108 -0
  25. package/dist/dir.js.map +1 -0
  26. package/dist/file.d.ts +53 -0
  27. package/dist/file.d.ts.map +1 -0
  28. package/dist/file.js +211 -0
  29. package/dist/file.js.map +1 -0
  30. package/dist/format.d.ts +40 -0
  31. package/dist/format.d.ts.map +1 -0
  32. package/dist/format.js +83 -0
  33. package/dist/format.js.map +1 -0
  34. package/dist/index.d.ts +16 -0
  35. package/dist/index.d.ts.map +1 -0
  36. package/dist/index.js +20 -0
  37. package/dist/index.js.map +1 -0
  38. package/dist/kev.d.ts +149 -0
  39. package/dist/kev.d.ts.map +1 -0
  40. package/dist/kev.js +761 -0
  41. package/dist/kev.js.map +1 -0
  42. package/dist/log.d.ts +91 -0
  43. package/dist/log.d.ts.map +1 -0
  44. package/dist/log.js +300 -0
  45. package/dist/log.js.map +1 -0
  46. package/dist/logger.d.ts +91 -0
  47. package/dist/logger.d.ts.map +1 -0
  48. package/dist/logger.js +269 -0
  49. package/dist/logger.js.map +1 -0
  50. package/dist/offensive.d.ts +73 -0
  51. package/dist/offensive.d.ts.map +1 -0
  52. package/dist/offensive.js +103 -0
  53. package/dist/offensive.js.map +1 -0
  54. package/dist/path.d.ts +67 -0
  55. package/dist/path.d.ts.map +1 -0
  56. package/dist/path.js +107 -0
  57. package/dist/path.js.map +1 -0
  58. package/dist/platform/dir.d.ts +40 -0
  59. package/dist/platform/dir.d.ts.map +1 -0
  60. package/dist/platform/dir.js +108 -0
  61. package/dist/platform/dir.js.map +1 -0
  62. package/dist/platform/file.d.ts +53 -0
  63. package/dist/platform/file.d.ts.map +1 -0
  64. package/dist/platform/file.js +211 -0
  65. package/dist/platform/file.js.map +1 -0
  66. package/dist/platform/kev.d.ts +149 -0
  67. package/dist/platform/kev.d.ts.map +1 -0
  68. package/dist/platform/kev.js +762 -0
  69. package/dist/platform/kev.js.map +1 -0
  70. package/dist/platform/path.d.ts +67 -0
  71. package/dist/platform/path.d.ts.map +1 -0
  72. package/dist/platform/path.js +108 -0
  73. package/dist/platform/path.js.map +1 -0
  74. package/dist/platform/project.d.ts +35 -0
  75. package/dist/platform/project.d.ts.map +1 -0
  76. package/dist/platform/project.js +155 -0
  77. package/dist/platform/project.js.map +1 -0
  78. package/dist/project.d.ts +35 -0
  79. package/dist/project.d.ts.map +1 -0
  80. package/dist/project.js +154 -0
  81. package/dist/project.js.map +1 -0
  82. package/dist/runtime.d.ts +65 -0
  83. package/dist/runtime.d.ts.map +1 -0
  84. package/dist/runtime.js +193 -0
  85. package/dist/runtime.js.map +1 -0
  86. package/dist/universal/currency/crypto-symbols-data.d.ts +10 -0
  87. package/dist/universal/currency/crypto-symbols-data.d.ts.map +1 -0
  88. package/dist/universal/currency/crypto-symbols-data.js +13765 -0
  89. package/dist/universal/currency/crypto-symbols-data.js.map +1 -0
  90. package/dist/universal/currency/crypto-symbols.d.ts +20 -0
  91. package/dist/universal/currency/crypto-symbols.d.ts.map +1 -0
  92. package/dist/universal/currency/crypto-symbols.js +23 -0
  93. package/dist/universal/currency/crypto-symbols.js.map +1 -0
  94. package/dist/universal/currency/download-crypto-list.d.ts +10 -0
  95. package/dist/universal/currency/download-crypto-list.d.ts.map +1 -0
  96. package/dist/universal/currency/download-crypto-list.js +69 -0
  97. package/dist/universal/currency/download-crypto-list.js.map +1 -0
  98. package/dist/universal/currency/index.d.ts +90 -0
  99. package/dist/universal/currency/index.d.ts.map +1 -0
  100. package/dist/universal/currency/index.js +276 -0
  101. package/dist/universal/currency/index.js.map +1 -0
  102. package/dist/universal/format.d.ts +40 -0
  103. package/dist/universal/format.d.ts.map +1 -0
  104. package/dist/universal/format.js +83 -0
  105. package/dist/universal/format.js.map +1 -0
  106. package/dist/universal/log.d.ts +91 -0
  107. package/dist/universal/log.d.ts.map +1 -0
  108. package/dist/universal/log.js +309 -0
  109. package/dist/universal/log.js.map +1 -0
  110. package/package.json +75 -0
package/README.md ADDED
@@ -0,0 +1,99 @@
1
+ # ts-utils
2
+
3
+ TypeScript utilities - logger, currency, offensive programming, file operations, environment management, and more.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ # Using JSR (recommended)
9
+ pnpm dlx jsr add @adriangalilea/utils
10
+
11
+ # or with npm
12
+ npx jsr add @adriangalilea/utils
13
+ ```
14
+
15
+ ## Usage
16
+
17
+ ### Logger
18
+
19
+ Next.js-style logger with colored output and Unicode symbols:
20
+
21
+ ```typescript
22
+ import { wait, error, warn, ready, info, success, event, trace, createLogger } from '@adriangalilea/utils'
23
+
24
+ // Basic logging
25
+ wait('Loading...')
26
+ error('Something went wrong')
27
+ warn('This is a warning')
28
+ ready('Server is ready')
29
+ info('Information message')
30
+ success('Operation successful')
31
+ event('Event occurred')
32
+ trace('Trace message')
33
+
34
+ // Warn once (won't repeat same message)
35
+ warnOnce('This warning appears only once')
36
+
37
+ // Timer functionality
38
+ time('operation')
39
+ // ... do something
40
+ timeEnd('operation') // outputs: operation: 123ms
41
+
42
+ // Create prefixed logger
43
+ const apiLogger = createLogger('API')
44
+ apiLogger.info('Request received') // [API] Request received
45
+ ```
46
+
47
+ ### Currency
48
+
49
+ Currency utilities with comprehensive crypto support (500+ symbols):
50
+
51
+ ```typescript
52
+ import { currency, isCrypto, isStablecoin, isFiat, getSymbol, getOptimalDecimals } from '@adriangalilea/utils'
53
+
54
+ // Check currency types
55
+ isCrypto('BTC') // true
56
+ isCrypto('XBT') // true (alternative for BTC)
57
+ isCrypto('WBTC') // true (wrapped tokens detected)
58
+ isStablecoin('USDT') // true
59
+ isFiat('USD') // true
60
+
61
+ // Get currency symbols
62
+ getSymbol('BTC') // '₿'
63
+ getSymbol('ETH') // 'Ξ'
64
+ getSymbol('USD') // '$'
65
+
66
+ // Get optimal decimal places based on value
67
+ getOptimalDecimals(0.00001234, 'BTC') // 10
68
+ getOptimalDecimals(1234.56, 'USD') // 2
69
+ getOptimalDecimals(0.123, 'ETH') // 6
70
+
71
+ // Percentage calculations
72
+ currency.percentageOf(25, 100) // 25
73
+ currency.percentageChange(100, 150) // 50
74
+ currency.percentageDiff(100, 150) // 40
75
+
76
+ // Basis points
77
+ currency.basisPointsToPercent(100) // 1
78
+ currency.percentToBasisPoints(1) // 100
79
+ currency.formatBasisPoints(50) // "50 bps"
80
+ ```
81
+
82
+ ## Features
83
+
84
+ - **Logger**: Next.js-style colored console output with symbols
85
+ - **Currency**:
86
+ - 13,750+ crypto symbols from CoinGecko (auto-updatable)
87
+ - Alternative ticker support (XBT→BTC, wrapped tokens, etc.)
88
+ - Optimal decimal calculations
89
+ - Percentage and basis point utilities
90
+ - Fiat and stablecoin detection
91
+ - **Offensive Programming**: Assert, must, check, panic utilities
92
+ - **File Operations**: Read, write with automatic path resolution
93
+ - **Directory Operations**: Create, list, walk directories
94
+ - **KEV**: Redis-style environment variable management with monorepo support
95
+ - **Project Discovery**: Find project/monorepo roots, detect JS/TS projects
96
+
97
+ ## License
98
+
99
+ MIT
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Browser-safe exports for client-side usage.
3
+ * These utilities do not depend on Node.js APIs and can run in the browser.
4
+ *
5
+ * Usage in Next.js client components:
6
+ * import { log, format, currency } from '@adriangalilea/utils/browser'
7
+ */
8
+ export { runtime } from './runtime.js';
9
+ export type { RuntimeCapabilities } from './runtime.js';
10
+ export * from './universal/log.js';
11
+ export * from './universal/format.js';
12
+ export * from './universal/currency/index.js';
13
+ export * from './offensive.js';
14
+ //# sourceMappingURL=browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,YAAY,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAGvD,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,+BAA+B,CAAA;AAG7C,cAAc,gBAAgB,CAAA"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Browser-safe exports for client-side usage.
3
+ * These utilities do not depend on Node.js APIs and can run in the browser.
4
+ *
5
+ * Usage in Next.js client components:
6
+ * import { log, format, currency } from '@adriangalilea/utils/browser'
7
+ */
8
+ // Export runtime for environment detection
9
+ export { runtime } from './runtime.js';
10
+ // Universal utilities that work in browser
11
+ export * from './universal/log.js';
12
+ export * from './universal/format.js';
13
+ export * from './universal/currency/index.js';
14
+ // Offensive programming - adapted for browser (throws instead of process.exit)
15
+ export * from './offensive.js';
16
+ // Note: file, dir, path, project, and kev are NOT exported here
17
+ // because they depend on Node.js file system APIs
18
+ //# sourceMappingURL=browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,2CAA2C;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAGtC,2CAA2C;AAC3C,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,+BAA+B,CAAA;AAE7C,+EAA+E;AAC/E,cAAc,gBAAgB,CAAA;AAE9B,gEAAgE;AAChE,kDAAkD"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Generated on 2025-08-17T10:11:21.771Z
3
+ * 13,754 cryptocurrency symbols from CoinGecko API
4
+ *
5
+ * Run 'npm run update-crypto' to refresh this list
6
+ */
7
+ export declare const cryptoSymbolsData: readonly string[];
8
+ export declare const lastUpdated = "2025-08-17T10:11:21.771Z";
9
+ export declare const symbolCount = 13754;
10
+ //# sourceMappingURL=crypto-symbols-data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto-symbols-data.d.ts","sourceRoot":"","sources":["../../src/currency/crypto-symbols-data.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EA27a9C,CAAA;AAED,eAAO,MAAM,WAAW,6BAA6B,CAAA;AACrD,eAAO,MAAM,WAAW,QAAQ,CAAA"}