@suzaku-network/suzaku-cli 1.0.2

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 (194) hide show
  1. package/LICENSE +96 -0
  2. package/README.md +1080 -0
  3. package/bin/cli.js +3 -0
  4. package/defaults/.env.anvil +4 -0
  5. package/defaults/.env.dexalot +7 -0
  6. package/defaults/.env.fuji +4 -0
  7. package/defaults/.env.kiteai +2 -0
  8. package/defaults/.env.mainnet +4 -0
  9. package/defaults/.env.template +10 -0
  10. package/dist/abis/AccessControl.d.ts +176 -0
  11. package/dist/abis/AccessControl.js +230 -0
  12. package/dist/abis/AccessControl.js.map +1 -0
  13. package/dist/abis/BalancerValidatorManager.d.ts +1121 -0
  14. package/dist/abis/BalancerValidatorManager.js +1469 -0
  15. package/dist/abis/BalancerValidatorManager.js.map +1 -0
  16. package/dist/abis/DefaultCollateral.d.ts +620 -0
  17. package/dist/abis/DefaultCollateral.js +811 -0
  18. package/dist/abis/DefaultCollateral.js.map +1 -0
  19. package/dist/abis/ERC20.d.ts +635 -0
  20. package/dist/abis/ERC20.js +831 -0
  21. package/dist/abis/ERC20.js.map +1 -0
  22. package/dist/abis/IWarpMessenger.d.ts +104 -0
  23. package/dist/abis/IWarpMessenger.js +139 -0
  24. package/dist/abis/IWarpMessenger.js.map +1 -0
  25. package/dist/abis/KiteStakingManager.d.ts +1459 -0
  26. package/dist/abis/KiteStakingManager.js +1886 -0
  27. package/dist/abis/KiteStakingManager.js.map +1 -0
  28. package/dist/abis/L1Middleware.d.ts +1712 -0
  29. package/dist/abis/L1Middleware.js +2242 -0
  30. package/dist/abis/L1Middleware.js.map +1 -0
  31. package/dist/abis/L1Registry.d.ts +415 -0
  32. package/dist/abis/L1Registry.js +544 -0
  33. package/dist/abis/L1Registry.js.map +1 -0
  34. package/dist/abis/L1RestakeDelegator.d.ts +865 -0
  35. package/dist/abis/L1RestakeDelegator.js +1118 -0
  36. package/dist/abis/L1RestakeDelegator.js.map +1 -0
  37. package/dist/abis/OperatorL1OptInService.d.ts +288 -0
  38. package/dist/abis/OperatorL1OptInService.js +374 -0
  39. package/dist/abis/OperatorL1OptInService.js.map +1 -0
  40. package/dist/abis/OperatorRegistry.d.ts +125 -0
  41. package/dist/abis/OperatorRegistry.js +166 -0
  42. package/dist/abis/OperatorRegistry.js.map +1 -0
  43. package/dist/abis/OperatorVaultOptInService.d.ts +288 -0
  44. package/dist/abis/OperatorVaultOptInService.js +374 -0
  45. package/dist/abis/OperatorVaultOptInService.js.map +1 -0
  46. package/dist/abis/Ownable.d.ts +59 -0
  47. package/dist/abis/Ownable.js +79 -0
  48. package/dist/abis/Ownable.js.map +1 -0
  49. package/dist/abis/PoASecurityModule.d.ts +225 -0
  50. package/dist/abis/PoASecurityModule.js +299 -0
  51. package/dist/abis/PoASecurityModule.js.map +1 -0
  52. package/dist/abis/RewardsNativeToken.d.ts +1334 -0
  53. package/dist/abis/RewardsNativeToken.js +1749 -0
  54. package/dist/abis/RewardsNativeToken.js.map +1 -0
  55. package/dist/abis/StakingVault.d.ts +2913 -0
  56. package/dist/abis/StakingVault.js +3780 -0
  57. package/dist/abis/StakingVault.js.map +1 -0
  58. package/dist/abis/StakingVaultOperations.d.ts +980 -0
  59. package/dist/abis/StakingVaultOperations.js +1270 -0
  60. package/dist/abis/StakingVaultOperations.js.map +1 -0
  61. package/dist/abis/UptimeTracker.d.ts +300 -0
  62. package/dist/abis/UptimeTracker.js +397 -0
  63. package/dist/abis/UptimeTracker.js.map +1 -0
  64. package/dist/abis/ValidatorManager.d.ts +842 -0
  65. package/dist/abis/ValidatorManager.js +1101 -0
  66. package/dist/abis/ValidatorManager.js.map +1 -0
  67. package/dist/abis/VaultFactory.d.ts +288 -0
  68. package/dist/abis/VaultFactory.js +378 -0
  69. package/dist/abis/VaultFactory.js.map +1 -0
  70. package/dist/abis/VaultManager.d.ts +519 -0
  71. package/dist/abis/VaultManager.js +678 -0
  72. package/dist/abis/VaultManager.js.map +1 -0
  73. package/dist/abis/VaultTokenized.d.ts +1626 -0
  74. package/dist/abis/VaultTokenized.js +2114 -0
  75. package/dist/abis/VaultTokenized.js.map +1 -0
  76. package/dist/abis/abi-selectors.json +700 -0
  77. package/dist/abis/index.d.ts +18356 -0
  78. package/dist/abis/index.js +58 -0
  79. package/dist/abis/index.js.map +1 -0
  80. package/dist/accessControl.d.ts +15 -0
  81. package/dist/accessControl.js +36 -0
  82. package/dist/accessControl.js.map +1 -0
  83. package/dist/balancer.d.ts +25 -0
  84. package/dist/balancer.js +42 -0
  85. package/dist/balancer.js.map +1 -0
  86. package/dist/cli.d.mts +1 -0
  87. package/dist/cli.d.ts +2 -0
  88. package/dist/cli.js +3183 -0
  89. package/dist/cli.js.map +1 -0
  90. package/dist/cli.mjs +31343 -0
  91. package/dist/cli.mjs.map +1 -0
  92. package/dist/client.d.ts +34 -0
  93. package/dist/client.js +76 -0
  94. package/dist/client.js.map +1 -0
  95. package/dist/config.d.ts +10 -0
  96. package/dist/config.js +63 -0
  97. package/dist/config.js.map +1 -0
  98. package/dist/delegator.d.ts +4 -0
  99. package/dist/delegator.js +16 -0
  100. package/dist/delegator.js.map +1 -0
  101. package/dist/index.d.mts +19770 -0
  102. package/dist/index.d.ts +7 -0
  103. package/dist/index.js +24 -0
  104. package/dist/index.js.map +1 -0
  105. package/dist/index.mjs +27451 -0
  106. package/dist/index.mjs.map +1 -0
  107. package/dist/keyStore.d.ts +3 -0
  108. package/dist/keyStore.js +105 -0
  109. package/dist/keyStore.js.map +1 -0
  110. package/dist/kiteStaking.d.ts +91 -0
  111. package/dist/kiteStaking.js +731 -0
  112. package/dist/kiteStaking.js.map +1 -0
  113. package/dist/l1.d.ts +5 -0
  114. package/dist/l1.js +22 -0
  115. package/dist/l1.js.map +1 -0
  116. package/dist/lib/autoCompletion.d.ts +3 -0
  117. package/dist/lib/autoCompletion.js +55 -0
  118. package/dist/lib/autoCompletion.js.map +1 -0
  119. package/dist/lib/cChainUtils.d.ts +42 -0
  120. package/dist/lib/cChainUtils.js +271 -0
  121. package/dist/lib/cChainUtils.js.map +1 -0
  122. package/dist/lib/castUtils.d.ts +18 -0
  123. package/dist/lib/castUtils.js +81 -0
  124. package/dist/lib/castUtils.js.map +1 -0
  125. package/dist/lib/chainList.d.ts +5 -0
  126. package/dist/lib/chainList.js +86 -0
  127. package/dist/lib/chainList.js.map +1 -0
  128. package/dist/lib/cliParser.d.ts +27 -0
  129. package/dist/lib/cliParser.js +167 -0
  130. package/dist/lib/cliParser.js.map +1 -0
  131. package/dist/lib/commandUtils.d.ts +13 -0
  132. package/dist/lib/commandUtils.js +38 -0
  133. package/dist/lib/commandUtils.js.map +1 -0
  134. package/dist/lib/coreWalletUtils.d.ts +3 -0
  135. package/dist/lib/coreWalletUtils.js +74 -0
  136. package/dist/lib/coreWalletUtils.js.map +1 -0
  137. package/dist/lib/justification.d.ts +90 -0
  138. package/dist/lib/justification.js +577 -0
  139. package/dist/lib/justification.js.map +1 -0
  140. package/dist/lib/ledgerUtils.d.ts +4 -0
  141. package/dist/lib/ledgerUtils.js +258 -0
  142. package/dist/lib/ledgerUtils.js.map +1 -0
  143. package/dist/lib/logger.d.ts +46 -0
  144. package/dist/lib/logger.js +226 -0
  145. package/dist/lib/logger.js.map +1 -0
  146. package/dist/lib/pChainUtils.d.ts +128 -0
  147. package/dist/lib/pChainUtils.js +436 -0
  148. package/dist/lib/pChainUtils.js.map +1 -0
  149. package/dist/lib/pass.d.ts +81 -0
  150. package/dist/lib/pass.js +353 -0
  151. package/dist/lib/pass.js.map +1 -0
  152. package/dist/lib/safeUtils.d.ts +25 -0
  153. package/dist/lib/safeUtils.js +93 -0
  154. package/dist/lib/safeUtils.js.map +1 -0
  155. package/dist/lib/transferUtils.d.ts +643 -0
  156. package/dist/lib/transferUtils.js +141 -0
  157. package/dist/lib/transferUtils.js.map +1 -0
  158. package/dist/lib/utils.d.ts +28 -0
  159. package/dist/lib/utils.js +166 -0
  160. package/dist/lib/utils.js.map +1 -0
  161. package/dist/lib/viemUtils.d.ts +80 -0
  162. package/dist/lib/viemUtils.js +317 -0
  163. package/dist/lib/viemUtils.js.map +1 -0
  164. package/dist/lib/warpUtils.d.ts +76 -0
  165. package/dist/lib/warpUtils.js +448 -0
  166. package/dist/lib/warpUtils.js.map +1 -0
  167. package/dist/middleware.d.ts +75 -0
  168. package/dist/middleware.js +430 -0
  169. package/dist/middleware.js.map +1 -0
  170. package/dist/operator.d.ts +4 -0
  171. package/dist/operator.js +22 -0
  172. package/dist/operator.js.map +1 -0
  173. package/dist/operatorOptIn.d.ts +8 -0
  174. package/dist/operatorOptIn.js +39 -0
  175. package/dist/operatorOptIn.js.map +1 -0
  176. package/dist/rewards.d.ts +116 -0
  177. package/dist/rewards.js +244 -0
  178. package/dist/rewards.js.map +1 -0
  179. package/dist/securityModule.d.ts +8 -0
  180. package/dist/securityModule.js +305 -0
  181. package/dist/securityModule.js.map +1 -0
  182. package/dist/stakingVault.d.ts +184 -0
  183. package/dist/stakingVault.js +1224 -0
  184. package/dist/stakingVault.js.map +1 -0
  185. package/dist/uptime.d.ts +54 -0
  186. package/dist/uptime.js +246 -0
  187. package/dist/uptime.js.map +1 -0
  188. package/dist/vault.d.ts +16 -0
  189. package/dist/vault.js +131 -0
  190. package/dist/vault.js.map +1 -0
  191. package/dist/vaultManager.d.ts +8 -0
  192. package/dist/vaultManager.js +40 -0
  193. package/dist/vaultManager.js.map +1 -0
  194. package/package.json +62 -0
@@ -0,0 +1,258 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getLedgerAccount = getLedgerAccount;
7
+ exports.toSafeProvider = toSafeProvider;
8
+ const hw_app_eth_1 = require("@ledgerhq/hw-app-eth");
9
+ const hw_app_avalanche_1 = __importDefault(require("@avalabs/hw-app-avalanche"));
10
+ const hw_transport_node_hid_1 = __importDefault(require("@ledgerhq/hw-transport-node-hid"));
11
+ const accounts_1 = require("viem/accounts");
12
+ const viem_1 = require("viem");
13
+ const logger_1 = require("./logger");
14
+ // Singleton to transport Ledger with AvalancheApp
15
+ class LedgerSingleton {
16
+ static instance = null;
17
+ static initPromise = null;
18
+ transport;
19
+ appAva;
20
+ constructor(transport, appAva) {
21
+ this.transport = transport;
22
+ this.appAva = appAva;
23
+ }
24
+ static async getInstance() {
25
+ // Return an instance if it already exists
26
+ if (LedgerSingleton.instance) {
27
+ return LedgerSingleton.instance;
28
+ }
29
+ // Wait for initialization ends
30
+ if (LedgerSingleton.initPromise) {
31
+ return LedgerSingleton.initPromise;
32
+ }
33
+ // Create a new instance
34
+ LedgerSingleton.initPromise = (async () => {
35
+ let transport;
36
+ setTimeout(() => {
37
+ if (!transport) {
38
+ logger_1.logger.error('Error: Ledger timeout. Please make sure your Ledger device is connected and unlocked.');
39
+ process.exit(1);
40
+ }
41
+ }, 2000);
42
+ transport = await hw_transport_node_hid_1.default.create()
43
+ .catch((error) => {
44
+ if (error.message.includes('cannot open device with path')) {
45
+ logger_1.logger.error('Error: You should probably use `suzaku-cli ledger fix-usb-rules` to be able to use Ledger devices on Linux');
46
+ process.exit(1);
47
+ }
48
+ throw error;
49
+ });
50
+ const appAva = new hw_app_avalanche_1.default(transport);
51
+ LedgerSingleton.instance = new LedgerSingleton(transport, appAva);
52
+ return LedgerSingleton.instance;
53
+ })();
54
+ return LedgerSingleton.initPromise;
55
+ }
56
+ getApp() {
57
+ return this.appAva;
58
+ }
59
+ getAppEth() {
60
+ // @ts-ignore
61
+ return this.appAva.eth;
62
+ }
63
+ getFragmentedETHPath(accountIndex) {
64
+ return [`m/44'/60'/${accountIndex}'`, `0/0`];
65
+ }
66
+ getFragmentedPChainPath(accountIndex) {
67
+ return [`m/44'/9000'/${accountIndex}'`, `0/0`];
68
+ }
69
+ getETHPath(accountIndex) {
70
+ return `m/44'/60'/${accountIndex}'/0/0`;
71
+ }
72
+ getPChainPath(accountIndex) {
73
+ return `m/44'/9000'/${accountIndex}'/0/0`;
74
+ }
75
+ async close() {
76
+ await this.transport.close().catch(() => { });
77
+ LedgerSingleton.instance = null;
78
+ LedgerSingleton.initPromise = null;
79
+ }
80
+ }
81
+ function signatureFromResult(result, signing_path) {
82
+ if (result.returnCode && result.errorMessage && result.returnCode !== 0x9000) {
83
+ throw new Error(result.errorMessage);
84
+ }
85
+ const sigBuffer = result.signatures?.get(signing_path);
86
+ if (!sigBuffer) {
87
+ throw new Error('No signature returned from Ledger');
88
+ }
89
+ // sigBuffer is 65 bytes: r (32 bytes) + s (32 bytes) + v (1 byte)
90
+ const r = (0, viem_1.bytesToHex)(sigBuffer.subarray(0, 32)).slice(2);
91
+ const s = (0, viem_1.bytesToHex)(sigBuffer.subarray(32, 64)).slice(2);
92
+ const v = sigBuffer[64] + 27;
93
+ const vHex = v.toString(16).padStart(2, '0');
94
+ return `0x${r}${s}${vHex}`;
95
+ }
96
+ async function getLedgerAccount(network, accountIndex = 0) {
97
+ const ledger = await LedgerSingleton.getInstance();
98
+ const appAva = ledger.getApp();
99
+ const { publicKey, address } = await appAva.getETHAddress(ledger.getETHPath(accountIndex), false)
100
+ .catch((error) => {
101
+ if (error.message.includes('0x6511')) {
102
+ logger_1.logger.error('Error: You should open the Avalanche app on your Ledger device');
103
+ process.exit(1);
104
+ }
105
+ throw error;
106
+ });
107
+ const { address: pChainAddress } = await appAva.getAddressAndPubKey(ledger.getPChainPath(accountIndex), false, network === 'mainnet' ? 'avax' : 'fuji');
108
+ return {
109
+ pChainAddress,
110
+ cSign: async (parameters) => {
111
+ const { hash } = parameters;
112
+ const [prefixPath, signingPath] = ledger.getFragmentedETHPath(accountIndex);
113
+ const hashBytes = Buffer.from((0, viem_1.hexToBytes)(hash));
114
+ logger_1.logger.log(`Please, confirm the hash on your Ledger device`);
115
+ const result = await appAva.signHash(prefixPath, [signingPath], hashBytes);
116
+ return signatureFromResult(result, signingPath);
117
+ },
118
+ ...(0, accounts_1.toAccount)({
119
+ address: address,
120
+ publicKey,
121
+ async signTransaction(transaction) {
122
+ try {
123
+ const serializedTx = (0, viem_1.serializeTransaction)(transaction);
124
+ const resolution = await hw_app_eth_1.ledgerService.resolveTransaction(serializedTx.slice(2), {}, {});
125
+ logger_1.logger.log(`Please, confirm the transaction on your Ledger device`);
126
+ const signature = await appAva.signEVMTransaction(ledger.getETHPath(accountIndex), serializedTx.slice(2), resolution).catch((error) => {
127
+ if (error.message.includes('0x6986')) {
128
+ logger_1.logger.error('Error: User rejected the transaction');
129
+ process.exit(1);
130
+ }
131
+ throw error;
132
+ });
133
+ // ECDSA signature format (r, s, v) (random, signature, recovery)
134
+ return (0, viem_1.serializeTransaction)(transaction, {
135
+ r: `0x${signature.r}`,
136
+ s: `0x${signature.s}`,
137
+ v: BigInt(`0x${signature.v}`),
138
+ });
139
+ }
140
+ catch (error) {
141
+ logger_1.logger.error(error);
142
+ throw error;
143
+ }
144
+ },
145
+ async signMessage({ message }) {
146
+ let messageHex;
147
+ if (typeof message === 'string') {
148
+ messageHex = (0, viem_1.toHex)(message);
149
+ }
150
+ else {
151
+ messageHex = typeof message.raw === 'string'
152
+ ? message.raw
153
+ : (0, viem_1.toHex)(message.raw);
154
+ }
155
+ // Remove 0x prefix if present
156
+ if (messageHex.startsWith('0x')) {
157
+ messageHex = messageHex.slice(2);
158
+ }
159
+ logger_1.logger.log(`Please, confirm the message on your Ledger device`);
160
+ // TODO: provide empty domane data in signe eip712 from avalanche ledger
161
+ // const test = await appAva.signEIP712HashedMessage(ledger.getETHPath(accountIndex), '0x0', messageHex)
162
+ const signature = await ledger.getAppEth().signPersonalMessage(ledger.getETHPath(accountIndex), messageHex);
163
+ const r = signature.r.slice(2);
164
+ const s = signature.s.slice(2);
165
+ const v = signature.v + 27;
166
+ const vHex = v.toString(16).padStart(2, '0');
167
+ return `0x${r}${s}${vHex}`;
168
+ },
169
+ // Bypass EIP-193 for ledger TODO: to implement
170
+ async sign(parameters) {
171
+ const { hash } = parameters;
172
+ const [prefixPath, signingPath] = ledger.getFragmentedPChainPath(accountIndex);
173
+ const hashBytes = Buffer.from((0, viem_1.hexToBytes)(hash));
174
+ logger_1.logger.log(`Please, confirm the hash on your Ledger device`);
175
+ const result = await appAva.signHash(prefixPath, [signingPath], hashBytes);
176
+ return signatureFromResult(result, signingPath);
177
+ },
178
+ async signTypedData(parameters) {
179
+ const { domain, types, primaryType, message } = parameters;
180
+ // Calculate Struct Hash of the message
181
+ const structHash = (0, viem_1.hashStruct)({ data: message, types, primaryType });
182
+ // Calculate Domain Separator
183
+ // We need to define EIP712Domain type dynamically based on what's present in 'domain' object
184
+ const domainTypes = [
185
+ { name: 'name', type: 'string' },
186
+ { name: 'version', type: 'string' },
187
+ { name: 'chainId', type: 'uint256' },
188
+ { name: 'verifyingContract', type: 'address' },
189
+ { name: 'salt', type: 'bytes32' },
190
+ ].filter(key => domain?.[key.name] !== undefined);
191
+ const domainSeparator = (0, viem_1.hashStruct)({
192
+ data: domain,
193
+ types: { EIP712Domain: domainTypes },
194
+ primaryType: 'EIP712Domain'
195
+ });
196
+ // Sign using Ledger (Blind Signing)
197
+ // signEIP712HashedMessage expects hex strings WITHOUT 0x prefix
198
+ const domainSepHex = domainSeparator.startsWith('0x') ? domainSeparator.slice(2) : domainSeparator;
199
+ const structHashHex = structHash.startsWith('0x') ? structHash.slice(2) : structHash;
200
+ try {
201
+ logger_1.logger.log(`Please, confirm the typed data on your Ledger device`);
202
+ const signature = await appAva.signEIP712HashedMessage(ledger.getETHPath(accountIndex), domainSepHex, structHashHex);
203
+ // EIP-712 signatures should use v=27/28.
204
+ const v = signature.v;
205
+ const vHex = v.toString(16);
206
+ return `0x${signature.r}${signature.s}${vHex}`;
207
+ }
208
+ catch (error) {
209
+ if (error.message.includes('0x6986')) {
210
+ logger_1.logger.error('Error: User rejected the transaction');
211
+ process.exit(1);
212
+ }
213
+ throw error;
214
+ }
215
+ }
216
+ })
217
+ };
218
+ }
219
+ // TODO: perhaps the sign method of the account call personal_sign wich call cSign so in this case we should erase the mecanism wich use cSign in safe
220
+ // TODO: monitor the signatur flow manualy
221
+ // Convert a WalletClient to a SafeProvider through the EIP-1193 interface
222
+ async function toSafeProvider(client, account) {
223
+ return {
224
+ ...client, request: async ({ method, params }) => {
225
+ switch (method) {
226
+ case 'eth_accounts':
227
+ return [account.address.toLowerCase()];
228
+ case 'personal_sign':
229
+ const [message] = params;
230
+ const result = await account.cSign({ hash: message });
231
+ return result;
232
+ case 'eth_signTransaction':
233
+ const [transaction] = params;
234
+ return account.signTransaction(transaction);
235
+ case 'eth_signTypedData_v4': // Handle Typed Data signing requests from Safe SDK
236
+ const [_, data] = params;
237
+ const parsedData = typeof data === 'string' ? JSON.parse(data) : data;
238
+ return account.signTypedData(parsedData);
239
+ case 'eth_sign': // Handle legacy signing
240
+ const [address, dataToSign] = params;
241
+ // eth_sign expects data to be signed. Account.signMessage handles formatting.
242
+ return account.signMessage({ message: { raw: dataToSign } });
243
+ case 'eth_sendTransaction': // Handle transaction sending by signing and sending raw
244
+ const [txParams] = params;
245
+ const prepared = await client.prepareTransactionRequest({
246
+ ...txParams,
247
+ account,
248
+ chain: client.chain,
249
+ });
250
+ const signedTx = await account.signTransaction(prepared);
251
+ return client.request({ method: 'eth_sendRawTransaction', params: [signedTx] });
252
+ default:
253
+ return client.request({ method, params });
254
+ }
255
+ }
256
+ };
257
+ }
258
+ //# sourceMappingURL=ledgerUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ledgerUtils.js","sourceRoot":"","sources":["../../src/lib/ledgerUtils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ type JsonValue = string | number | boolean | null | JsonObject | JsonArray;
2
+ interface JsonObject {
3
+ [key: string]: JsonValue;
4
+ }
5
+ interface JsonArray extends Array<JsonValue> {
6
+ }
7
+ type LogData = Record<string, any>;
8
+ export type LogLevel = 'DEBUG' | 'INFO' | 'WARN' | 'ERROR';
9
+ declare enum LogLevelEnum {
10
+ DEBUG = 0,
11
+ INFO = 1,
12
+ WARN = 2,
13
+ ERROR = 3
14
+ }
15
+ interface LoggerConfig {
16
+ silent: boolean;
17
+ jsonMode: boolean;
18
+ logLevel: LogLevelEnum;
19
+ }
20
+ declare class Logger {
21
+ private static instance;
22
+ private config;
23
+ data: LogData;
24
+ static getInstance(): Logger;
25
+ setSilent(silent: boolean): void;
26
+ setLogLevel(level: LogLevel): void;
27
+ setJsonMode(jsonMode?: boolean): void;
28
+ private shouldLog;
29
+ debug(...args: any[]): void;
30
+ log(...args: any[]): void;
31
+ info(...args: any[]): void;
32
+ warn(...args: any[]): void;
33
+ error(...args: any[]): void;
34
+ exitError(args: any[], stackPop?: number): void;
35
+ table(data: any): void;
36
+ logJsonTree(data: JsonObject | JsonArray): void;
37
+ addData<K extends string>(key: K, value: any): void;
38
+ prompt(question: string): Promise<string>;
39
+ getData(): LogData;
40
+ clearData(): void;
41
+ printJson(): void;
42
+ getConfig(): Readonly<LoggerConfig>;
43
+ }
44
+ export declare const logger: Logger;
45
+ export type LoggerInstance = typeof logger;
46
+ export {};
@@ -0,0 +1,226 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.logger = void 0;
40
+ const console_log_colors_1 = require("console-log-colors");
41
+ const utils_1 = require("./utils");
42
+ const readline = __importStar(require("readline"));
43
+ const dotenv_1 = __importDefault(require("dotenv"));
44
+ dotenv_1.default.config();
45
+ var LogLevelEnum;
46
+ (function (LogLevelEnum) {
47
+ LogLevelEnum[LogLevelEnum["DEBUG"] = 0] = "DEBUG";
48
+ LogLevelEnum[LogLevelEnum["INFO"] = 1] = "INFO";
49
+ LogLevelEnum[LogLevelEnum["WARN"] = 2] = "WARN";
50
+ LogLevelEnum[LogLevelEnum["ERROR"] = 3] = "ERROR";
51
+ })(LogLevelEnum || (LogLevelEnum = {}));
52
+ class Logger {
53
+ static instance;
54
+ config = { silent: false, jsonMode: false, logLevel: process.env.LogLevel ? LogLevelEnum[process.env.LogLevel] : LogLevelEnum.INFO };
55
+ data = {};
56
+ static getInstance() {
57
+ if (!Logger.instance) {
58
+ Logger.instance = new Logger();
59
+ }
60
+ return Logger.instance;
61
+ }
62
+ // Configuration methods
63
+ setSilent(silent) {
64
+ this.config.silent = silent;
65
+ }
66
+ setLogLevel(level) {
67
+ this.config.logLevel = LogLevelEnum[level];
68
+ }
69
+ setJsonMode(jsonMode) {
70
+ this.config.jsonMode = Boolean(jsonMode);
71
+ this.config.silent = Boolean(jsonMode); // Auto-set silent when in JSON mode
72
+ }
73
+ shouldLog(level) {
74
+ return !this.config.silent && LogLevelEnum[level] >= this.config.logLevel;
75
+ }
76
+ // Console methods
77
+ debug(...args) {
78
+ if (this.shouldLog('DEBUG')) {
79
+ console.debug('[DEBUG]', ...args);
80
+ }
81
+ }
82
+ log(...args) {
83
+ if (this.shouldLog('INFO')) {
84
+ console.log(...args);
85
+ }
86
+ }
87
+ info(...args) {
88
+ if (this.shouldLog('INFO')) {
89
+ console.info(...args);
90
+ }
91
+ }
92
+ warn(...args) {
93
+ if (this.shouldLog('WARN')) {
94
+ console.warn(...args);
95
+ }
96
+ }
97
+ error(...args) {
98
+ if (this.shouldLog('ERROR')) {
99
+ console.error(...args);
100
+ }
101
+ // Side effect: add error to data structure
102
+ const errorMessage = args.map(arg => {
103
+ if (arg instanceof Error)
104
+ return String(arg);
105
+ return typeof arg === 'object' ? JSON.stringify(arg) : String(arg);
106
+ }).join(' ');
107
+ if (this.data['error'] !== errorMessage)
108
+ this.addData('error', errorMessage);
109
+ process.exitCode = 1;
110
+ }
111
+ exitError(args, stackPop = 0) {
112
+ const err = new Error();
113
+ this.error(...args, console_log_colors_1.color.red("\nCLI Stack trace:\n" + err.stack?.split("\n").slice(2 + stackPop, -1).join("\n")));
114
+ process.exit(1);
115
+ }
116
+ table(data) {
117
+ if (!this.config.silent) {
118
+ console.table(data);
119
+ }
120
+ }
121
+ logJsonTree(data) {
122
+ if (this.config.silent)
123
+ return;
124
+ const lines = [];
125
+ const buildLines = (node, prefix, skipFirstKey = false) => {
126
+ let keys = Object.keys(node);
127
+ if (skipFirstKey && !Array.isArray(node)) {
128
+ keys = keys.slice(1);
129
+ }
130
+ const isParentArray = Array.isArray(node);
131
+ let childPrefix;
132
+ keys.forEach((key, i) => {
133
+ const value = node[key];
134
+ const isContainer = typeof value === 'object' && value !== null;
135
+ const isLast = i === keys.length - 1;
136
+ if (isParentArray && i > 0 && isContainer) {
137
+ lines.push(childPrefix || '');
138
+ }
139
+ let connector = isLast ? '└── ' : '├── ';
140
+ if (isParentArray && isContainer) {
141
+ const childKeys = Object.keys(value);
142
+ if (childKeys.length > 0) {
143
+ const firstKey = childKeys[0];
144
+ const firstVal = value[firstKey];
145
+ const displayFirstVal = typeof firstVal === 'string' ? `"${firstVal}"` : firstVal;
146
+ const headerLabel = `${firstKey}: ${displayFirstVal}`;
147
+ const specialConnector = isLast ? '└───┬── ' : childPrefix ? '├───┬── ' : '┌───┬── ';
148
+ lines.push(`${prefix}${specialConnector}${headerLabel}`);
149
+ childPrefix = prefix + (isLast ? ' ' : '│ ');
150
+ buildLines(value, childPrefix, true);
151
+ return;
152
+ }
153
+ }
154
+ let displayLabel = key;
155
+ if (isParentArray)
156
+ displayLabel = '';
157
+ if (isContainer) {
158
+ lines.push(`${prefix}${connector}${displayLabel}`);
159
+ childPrefix = prefix + (isLast ? ' ' : '│ ');
160
+ buildLines(value, childPrefix, false);
161
+ }
162
+ else {
163
+ const displayValue = typeof value === 'string' ? `"${value}"` : value;
164
+ if (isParentArray) {
165
+ lines.push(`${prefix}${connector}${displayValue}`);
166
+ }
167
+ else {
168
+ lines.push(`${prefix}${connector}${displayLabel}: ${displayValue}`);
169
+ }
170
+ }
171
+ });
172
+ };
173
+ buildLines(data, '');
174
+ console.log(lines.join('\n'));
175
+ }
176
+ // Data management methods
177
+ addData(key, value) {
178
+ if (this.config.jsonMode) {
179
+ if (this.data[key] === undefined) {
180
+ this.data[key] = value;
181
+ }
182
+ else {
183
+ if (Array.isArray(this.data[key])) {
184
+ this.data[key].push(value);
185
+ }
186
+ else {
187
+ this.data[key] = [this.data[key], value];
188
+ }
189
+ }
190
+ }
191
+ ;
192
+ }
193
+ prompt(question) {
194
+ if (this.config.jsonMode) {
195
+ return Promise.resolve('y');
196
+ }
197
+ const rl = readline.createInterface({
198
+ input: process.stdin,
199
+ output: process.stdout
200
+ });
201
+ return new Promise(resolve => {
202
+ rl.question(question, (answer) => {
203
+ rl.close();
204
+ resolve(answer.trim());
205
+ });
206
+ });
207
+ }
208
+ getData() {
209
+ return { ...this.data };
210
+ }
211
+ clearData() {
212
+ this.data = {};
213
+ }
214
+ // JSON output method
215
+ printJson() {
216
+ if (this.config.jsonMode)
217
+ console.log(JSON.stringify(this.data, utils_1.bigintReplacer, 2));
218
+ }
219
+ // Utility method to get current config
220
+ getConfig() {
221
+ return { ...this.config };
222
+ }
223
+ }
224
+ // Export singleton instance
225
+ exports.logger = Logger.getInstance();
226
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/lib/logger.ts"],"names":[],"mappings":"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"}