@degengineering/web3pgp-cli 1.0.0

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 (135) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +151 -0
  3. package/dist/commands/blockchain/addSubkey.d.ts +9 -0
  4. package/dist/commands/blockchain/addSubkey.d.ts.map +1 -0
  5. package/dist/commands/blockchain/addSubkey.js +49 -0
  6. package/dist/commands/blockchain/addSubkey.js.map +1 -0
  7. package/dist/commands/blockchain/certify.d.ts +13 -0
  8. package/dist/commands/blockchain/certify.d.ts.map +1 -0
  9. package/dist/commands/blockchain/certify.js +75 -0
  10. package/dist/commands/blockchain/certify.js.map +1 -0
  11. package/dist/commands/blockchain/challenge.d.ts +13 -0
  12. package/dist/commands/blockchain/challenge.d.ts.map +1 -0
  13. package/dist/commands/blockchain/challenge.js +58 -0
  14. package/dist/commands/blockchain/challenge.js.map +1 -0
  15. package/dist/commands/blockchain/generateKey.d.ts +7 -0
  16. package/dist/commands/blockchain/generateKey.d.ts.map +1 -0
  17. package/dist/commands/blockchain/generateKey.js +36 -0
  18. package/dist/commands/blockchain/generateKey.js.map +1 -0
  19. package/dist/commands/blockchain/getPublicKey.d.ts +9 -0
  20. package/dist/commands/blockchain/getPublicKey.d.ts.map +1 -0
  21. package/dist/commands/blockchain/getPublicKey.js +37 -0
  22. package/dist/commands/blockchain/getPublicKey.js.map +1 -0
  23. package/dist/commands/blockchain/index.d.ts +12 -0
  24. package/dist/commands/blockchain/index.d.ts.map +1 -0
  25. package/dist/commands/blockchain/index.js +33 -0
  26. package/dist/commands/blockchain/index.js.map +1 -0
  27. package/dist/commands/blockchain/keccak256.d.ts +7 -0
  28. package/dist/commands/blockchain/keccak256.d.ts.map +1 -0
  29. package/dist/commands/blockchain/keccak256.js +38 -0
  30. package/dist/commands/blockchain/keccak256.js.map +1 -0
  31. package/dist/commands/blockchain/listen.d.ts +9 -0
  32. package/dist/commands/blockchain/listen.d.ts.map +1 -0
  33. package/dist/commands/blockchain/listen.js +30 -0
  34. package/dist/commands/blockchain/listen.js.map +1 -0
  35. package/dist/commands/blockchain/prove.d.ts +13 -0
  36. package/dist/commands/blockchain/prove.d.ts.map +1 -0
  37. package/dist/commands/blockchain/prove.js +123 -0
  38. package/dist/commands/blockchain/prove.js.map +1 -0
  39. package/dist/commands/blockchain/register.d.ts +13 -0
  40. package/dist/commands/blockchain/register.d.ts.map +1 -0
  41. package/dist/commands/blockchain/register.js +65 -0
  42. package/dist/commands/blockchain/register.js.map +1 -0
  43. package/dist/commands/blockchain/revoke-certification.d.ts +13 -0
  44. package/dist/commands/blockchain/revoke-certification.d.ts.map +1 -0
  45. package/dist/commands/blockchain/revoke-certification.js +75 -0
  46. package/dist/commands/blockchain/revoke-certification.js.map +1 -0
  47. package/dist/commands/blockchain/revoke.d.ts +19 -0
  48. package/dist/commands/blockchain/revoke.d.ts.map +1 -0
  49. package/dist/commands/blockchain/revoke.js +118 -0
  50. package/dist/commands/blockchain/revoke.js.map +1 -0
  51. package/dist/commands/blockchain/sync.d.ts +20 -0
  52. package/dist/commands/blockchain/sync.d.ts.map +1 -0
  53. package/dist/commands/blockchain/sync.js +246 -0
  54. package/dist/commands/blockchain/sync.js.map +1 -0
  55. package/dist/commands/blockchain/update.d.ts +13 -0
  56. package/dist/commands/blockchain/update.d.ts.map +1 -0
  57. package/dist/commands/blockchain/update.js +60 -0
  58. package/dist/commands/blockchain/update.js.map +1 -0
  59. package/dist/commands/configuration/display.d.ts +10 -0
  60. package/dist/commands/configuration/display.d.ts.map +1 -0
  61. package/dist/commands/configuration/display.js +58 -0
  62. package/dist/commands/configuration/display.js.map +1 -0
  63. package/dist/commands/configuration/generate.d.ts +14 -0
  64. package/dist/commands/configuration/generate.d.ts.map +1 -0
  65. package/dist/commands/configuration/generate.js +222 -0
  66. package/dist/commands/configuration/generate.js.map +1 -0
  67. package/dist/commands/configuration/index.d.ts +6 -0
  68. package/dist/commands/configuration/index.d.ts.map +1 -0
  69. package/dist/commands/configuration/index.js +21 -0
  70. package/dist/commands/configuration/index.js.map +1 -0
  71. package/dist/commands/configuration/validate.d.ts +10 -0
  72. package/dist/commands/configuration/validate.d.ts.map +1 -0
  73. package/dist/commands/configuration/validate.js +45 -0
  74. package/dist/commands/configuration/validate.js.map +1 -0
  75. package/dist/commands/factory.d.ts +33 -0
  76. package/dist/commands/factory.d.ts.map +1 -0
  77. package/dist/commands/factory.js +48 -0
  78. package/dist/commands/factory.js.map +1 -0
  79. package/dist/config/defaults.d.ts +8 -0
  80. package/dist/config/defaults.d.ts.map +1 -0
  81. package/dist/config/defaults.js +11 -0
  82. package/dist/config/defaults.js.map +1 -0
  83. package/dist/config/loader.d.ts +12 -0
  84. package/dist/config/loader.d.ts.map +1 -0
  85. package/dist/config/loader.js +205 -0
  86. package/dist/config/loader.js.map +1 -0
  87. package/dist/config/testnet.d.ts +6 -0
  88. package/dist/config/testnet.d.ts.map +1 -0
  89. package/dist/config/testnet.js +26 -0
  90. package/dist/config/testnet.js.map +1 -0
  91. package/dist/config/transport.d.ts +17 -0
  92. package/dist/config/transport.d.ts.map +1 -0
  93. package/dist/config/transport.js +46 -0
  94. package/dist/config/transport.js.map +1 -0
  95. package/dist/config/types.d.ts +92 -0
  96. package/dist/config/types.d.ts.map +1 -0
  97. package/dist/config/types.js +12 -0
  98. package/dist/config/types.js.map +1 -0
  99. package/dist/config/validator.d.ts +14 -0
  100. package/dist/config/validator.d.ts.map +1 -0
  101. package/dist/config/validator.js +156 -0
  102. package/dist/config/validator.js.map +1 -0
  103. package/dist/errors.d.ts +13 -0
  104. package/dist/errors.d.ts.map +1 -0
  105. package/dist/errors.js +28 -0
  106. package/dist/errors.js.map +1 -0
  107. package/dist/index.d.ts +2 -0
  108. package/dist/index.d.ts.map +1 -0
  109. package/dist/index.js +61 -0
  110. package/dist/index.js.map +1 -0
  111. package/dist/services/web3pgpServiceFactory.d.ts +14 -0
  112. package/dist/services/web3pgpServiceFactory.d.ts.map +1 -0
  113. package/dist/services/web3pgpServiceFactory.js +228 -0
  114. package/dist/services/web3pgpServiceFactory.js.map +1 -0
  115. package/dist/setup.d.ts +14 -0
  116. package/dist/setup.d.ts.map +1 -0
  117. package/dist/setup.js +46 -0
  118. package/dist/setup.js.map +1 -0
  119. package/dist/types.d.ts +5 -0
  120. package/dist/types.d.ts.map +1 -0
  121. package/dist/types.js +3 -0
  122. package/dist/types.js.map +1 -0
  123. package/dist/utils/clients.d.ts +49373 -0
  124. package/dist/utils/clients.d.ts.map +1 -0
  125. package/dist/utils/clients.js +129 -0
  126. package/dist/utils/clients.js.map +1 -0
  127. package/dist/utils/input.d.ts +24 -0
  128. package/dist/utils/input.d.ts.map +1 -0
  129. package/dist/utils/input.js +138 -0
  130. package/dist/utils/input.js.map +1 -0
  131. package/dist/utils/logger.d.ts +12 -0
  132. package/dist/utils/logger.d.ts.map +1 -0
  133. package/dist/utils/logger.js +35 -0
  134. package/dist/utils/logger.js.map +1 -0
  135. package/package.json +75 -0
@@ -0,0 +1,228 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createWeb3PGPService = createWeb3PGPService;
4
+ const viem_1 = require("viem");
5
+ const accounts_1 = require("viem/accounts");
6
+ const chains_1 = require("viem/chains");
7
+ const errors_1 = require("../errors");
8
+ const dexes_1 = require("@degengineering/dexes");
9
+ const transport_1 = require("../config/transport");
10
+ /**
11
+ * Map of well-known Viem chain names to chain objects.
12
+ */
13
+ const CHAIN_MAP = {
14
+ 'mainnet': chains_1.mainnet,
15
+ 'sepolia': chains_1.sepolia,
16
+ 'anvil': chains_1.foundry,
17
+ 'ink-sepolia': chains_1.inkSepolia,
18
+ };
19
+ /**
20
+ * Map of custom chain IDs to Viem chain objects.
21
+ * Extend this as more networks are supported.
22
+ */
23
+ const CHAIN_ID_MAP = {
24
+ 57073: chains_1.ink,
25
+ };
26
+ /**
27
+ * Validates private key format.
28
+ * Must be 0x-prefixed hex string with exactly 64 characters (32 bytes).
29
+ */
30
+ function validatePrivateKeyFormat(privateKey) {
31
+ if (!privateKey.startsWith('0x')) {
32
+ throw new errors_1.ConfigError('Private key must start with "0x"');
33
+ }
34
+ if (privateKey.length !== 66) {
35
+ // 0x + 64 hex chars = 66 total
36
+ throw new errors_1.ConfigError(`Private key must be exactly 64 hex characters (32 bytes), got ${privateKey.length - 2}`);
37
+ }
38
+ if (!/^0x[0-9a-fA-F]{64}$/.test(privateKey)) {
39
+ throw new errors_1.ConfigError('Private key must be 0x-prefixed hex string with only 0-9, a-f, A-F characters');
40
+ }
41
+ }
42
+ /**
43
+ * Get Viem chain object for the given chain config.
44
+ * If a well-known chain name is provided, use Viem's default.
45
+ * If a numeric chainId is provided, look it up in CHAIN_ID_MAP or create a generic chain.
46
+ */
47
+ function getChainForConfig(chainConfig) {
48
+ if (typeof chainConfig === 'string') {
49
+ const chain = CHAIN_MAP[chainConfig];
50
+ if (chain) {
51
+ return chain;
52
+ }
53
+ throw new errors_1.ConfigError(`Unsupported chain name: ${chainConfig}`);
54
+ }
55
+ // chainConfig is a number
56
+ const chain = CHAIN_ID_MAP[chainConfig];
57
+ if (chain) {
58
+ return chain;
59
+ }
60
+ // For unsupported chain IDs, create a generic chain object
61
+ // The RPC endpoints from config will be used for actual connections
62
+ return {
63
+ id: chainConfig,
64
+ name: `Chain ${chainConfig}`,
65
+ network: `chain-${chainConfig}`,
66
+ nativeCurrency: { name: 'ETH', symbol: 'ETH', decimals: 18 },
67
+ rpcUrls: {
68
+ default: { http: [], webSocket: undefined },
69
+ public: { http: [], webSocket: undefined },
70
+ },
71
+ };
72
+ }
73
+ /**
74
+ * Resolve RPC endpoints with intelligent fallback.
75
+ * Priority order:
76
+ * 1. User-provided config.ethereum.rpc.endpoints (explicit)
77
+ * 2. Predefined endpoints from the well-known chain
78
+ * 3. Error if chain is unknown and no RPC endpoints provided
79
+ *
80
+ * @param config - Merged configuration
81
+ * @param logger - Logger instance to use for logging
82
+ * @returns RPC endpoints with batching and retry configuration
83
+ * @throws ConfigError if no endpoints can be resolved
84
+ */
85
+ function resolveRpcEndpoints(config, logger) {
86
+ const { chain, rpc } = config.ethereum;
87
+ // Priority 1: User-provided endpoints
88
+ if (rpc?.endpoints && rpc.endpoints.length > 0) {
89
+ logger.debug({ count: rpc.endpoints.length, endpoints: rpc.endpoints.map(e => e.url) }, 'Using user-provided RPC endpoints');
90
+ return rpc.endpoints;
91
+ }
92
+ // Priority 2: Try to get predefined endpoints from the chain
93
+ if (typeof chain === 'string') {
94
+ const chainObj = CHAIN_MAP[chain];
95
+ if (chainObj?.rpcUrls?.default?.http && chainObj.rpcUrls.default.http.length > 0) {
96
+ const predefinedEndpoints = chainObj.rpcUrls.default.http.map((url, index) => ({
97
+ url,
98
+ priority: index,
99
+ }));
100
+ logger.debug({ count: predefinedEndpoints.length, endpoints: predefinedEndpoints.map(e => e.url) }, 'Using predefined RPC endpoints for well-known chain');
101
+ return predefinedEndpoints;
102
+ }
103
+ }
104
+ else if (typeof chain === 'number') {
105
+ // For numeric chain IDs, check if we have a predefined chain
106
+ const chainObj = CHAIN_ID_MAP[chain];
107
+ if (chainObj?.rpcUrls?.default?.http && chainObj.rpcUrls.default.http.length > 0) {
108
+ const predefinedEndpoints = chainObj.rpcUrls.default.http.map((url, index) => ({
109
+ url,
110
+ priority: index,
111
+ }));
112
+ logger.debug({ count: predefinedEndpoints.length, endpoints: predefinedEndpoints.map(e => e.url) }, 'Using predefined RPC endpoints for known chain ID');
113
+ return predefinedEndpoints;
114
+ }
115
+ }
116
+ // No RPC endpoints available
117
+ const chainName = typeof chain === 'string' ? chain : `chain ${chain}`;
118
+ throw new errors_1.ConfigError(`No RPC endpoints available for ${chainName}. ` +
119
+ `Provide endpoints in ethereum.rpc.endpoints or use a well-known chain with predefined RPC endpoints.`);
120
+ }
121
+ /**
122
+ * Create Viem PublicClient with RPC endpoint fallback chain.
123
+ * Automatically retries failed RPC calls across all configured endpoints.
124
+ * Applies per-endpoint batching and shared retry configuration from config.
125
+ */
126
+ function createPublicClientWithFallback(config, logger) {
127
+ const { chain: chainConfig } = config.ethereum;
128
+ const chainObj = getChainForConfig(chainConfig);
129
+ // Resolve RPC endpoints (user config > predefined defaults > error)
130
+ const rpcEndpoints = resolveRpcEndpoints(config, logger);
131
+ logger.debug({
132
+ endpoints: rpcEndpoints.map(e => e.url),
133
+ retryConfig: config.ethereum.rpc?.retry,
134
+ batchingConfigs: rpcEndpoints.map(e => ({ url: e.url, batching: e.batching })),
135
+ }, 'Creating PublicClient with RPC fallback chain');
136
+ // Create fallback transport with batching and retry configuration
137
+ const fallbackTransport = (0, transport_1.buildFallbackTransport)(rpcEndpoints, config.ethereum.rpc?.retry);
138
+ const publicClient = (0, viem_1.createPublicClient)({
139
+ chain: chainObj,
140
+ transport: fallbackTransport,
141
+ });
142
+ return publicClient;
143
+ }
144
+ /**
145
+ * Create Viem WalletClient for write operations.
146
+ * Only created if wallet.type is set and privateKey is configured.
147
+ * Uses fallback transport with batching and retry configuration for reliability.
148
+ */
149
+ function createWalletClientIfConfigured(config, logger) {
150
+ const { wallet, chain: chainConfig } = config.ethereum;
151
+ // Check if wallet configuration exists
152
+ if (!wallet || !wallet.type) {
153
+ logger.debug('No wallet type configured - read-only mode');
154
+ return undefined;
155
+ }
156
+ // Check if private key is provided
157
+ if (!wallet.privateKey) {
158
+ logger.debug('Wallet type set but private key not configured - read-only mode');
159
+ return undefined;
160
+ }
161
+ // Validate private key format
162
+ validatePrivateKeyFormat(wallet.privateKey);
163
+ // Derive account from private key
164
+ const account = (0, accounts_1.privateKeyToAccount)(wallet.privateKey);
165
+ logger.debug({ address: account.address }, 'Creating WalletClient with derived account');
166
+ // Create wallet client with chain and fallback RPC configuration
167
+ const chainObj = getChainForConfig(chainConfig);
168
+ // Resolve RPC endpoints (user config > predefined defaults > error)
169
+ const rpcEndpoints = resolveRpcEndpoints(config, logger);
170
+ logger.debug({
171
+ endpoints: rpcEndpoints.map(e => e.url),
172
+ retryConfig: config.ethereum.rpc?.retry
173
+ }, 'Creating WalletClient with fallback transport');
174
+ // Use fallback transport with batching and retry for wallet client too
175
+ const fallbackTransport = (0, transport_1.buildFallbackTransport)(rpcEndpoints, config.ethereum.rpc?.retry);
176
+ // Create wallet client
177
+ const walletClient = (0, viem_1.createWalletClient)({
178
+ account,
179
+ chain: chainObj,
180
+ transport: fallbackTransport,
181
+ });
182
+ return walletClient;
183
+ }
184
+ /**
185
+ * Create the Web3PGP service from configuration.
186
+ * Orchestrates Viem client setup, contract initialization, and service creation.
187
+ *
188
+ * @param config - Merged configuration with Ethereum and Web3PGP settings
189
+ * @param logger - Logger instance to use for logging
190
+ * @returns Promise resolving to IWeb3PGPService instance
191
+ * @throws ConfigError if configuration is invalid
192
+ */
193
+ async function createWeb3PGPService(config, logger) {
194
+ logger.debug({ chain: config.ethereum.chain }, 'Initializing Web3PGP service');
195
+ try {
196
+ // Step 1: Create PublicClient with RPC fallback
197
+ const publicClient = createPublicClientWithFallback(config, logger);
198
+ // Step 2: Create WalletClient if private key configured
199
+ const walletClient = createWalletClientIfConfigured(config, logger);
200
+ // Step 3: Initialize low-level Web3PGP contract wrapper
201
+ const contractAddress = config.web3pgp.contract;
202
+ // Validate contract address format
203
+ if (!contractAddress.startsWith('0x') || contractAddress.length !== 42) {
204
+ throw new errors_1.ConfigError(`Invalid contract address format: ${contractAddress}. Must be 0x-prefixed 40 hex characters`);
205
+ }
206
+ logger.debug({ contractAddress }, 'Creating Web3PGP contract wrapper');
207
+ // Create contract instance - pass publicClient, walletClient, and contract address
208
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
209
+ const web3pgpContract = new dexes_1.Web3PGP(contractAddress, publicClient, walletClient);
210
+ // Step 4: Create high-level Web3PGP service
211
+ const service = new dexes_1.Web3PGPService(web3pgpContract);
212
+ logger.debug({
213
+ chain: config.ethereum.chain,
214
+ contractAddress,
215
+ hasWallet: !!walletClient,
216
+ }, 'Web3PGP service initialized successfully');
217
+ return service;
218
+ }
219
+ catch (error) {
220
+ if (error instanceof errors_1.ConfigError) {
221
+ throw error; // Re-throw ConfigError as-is
222
+ }
223
+ // Wrap unexpected errors
224
+ logger.error({ error }, 'Failed to initialize Web3PGP service');
225
+ throw new errors_1.ConfigError(`Failed to initialize Web3PGP service: ${error instanceof Error ? error.message : String(error)}`);
226
+ }
227
+ }
228
+ //# sourceMappingURL=web3pgpServiceFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web3pgpServiceFactory.js","sourceRoot":"","sources":["../../src/services/web3pgpServiceFactory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Early setup module that runs before any other code
3
+ * Patches console methods to capture SDK logs
4
+ */
5
+ /**
6
+ * Initialize console patching with a logger
7
+ * Call this as soon as the logger is created
8
+ */
9
+ export declare function initializeConsolePatch(logger: any): void;
10
+ /**
11
+ * Restore console methods to originals
12
+ */
13
+ export declare function restoreConsole(): void;
14
+ //# sourceMappingURL=setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAwBxD;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAGrC"}
package/dist/setup.js ADDED
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ /**
3
+ * Early setup module that runs before any other code
4
+ * Patches console methods to capture SDK logs
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.initializeConsolePatch = initializeConsolePatch;
8
+ exports.restoreConsole = restoreConsole;
9
+ // Store references to original methods
10
+ const originalConsoleDebug = console.debug;
11
+ const originalConsoleWarn = console.warn;
12
+ // Track if logger has been setup
13
+ let loggerRef = null;
14
+ /**
15
+ * Initialize console patching with a logger
16
+ * Call this as soon as the logger is created
17
+ */
18
+ function initializeConsolePatch(logger) {
19
+ loggerRef = logger;
20
+ console.debug = function (...args) {
21
+ if (loggerRef) {
22
+ const message = args.map(arg => typeof arg === 'string' ? arg : JSON.stringify(arg)).join(' ');
23
+ loggerRef.debug(message);
24
+ }
25
+ else {
26
+ originalConsoleDebug.apply(console, args);
27
+ }
28
+ };
29
+ console.warn = function (...args) {
30
+ if (loggerRef) {
31
+ const message = args.map(arg => typeof arg === 'string' ? arg : JSON.stringify(arg)).join(' ');
32
+ loggerRef.warn(message);
33
+ }
34
+ else {
35
+ originalConsoleWarn.apply(console, args);
36
+ }
37
+ };
38
+ }
39
+ /**
40
+ * Restore console methods to originals
41
+ */
42
+ function restoreConsole() {
43
+ console.debug = originalConsoleDebug;
44
+ console.warn = originalConsoleWarn;
45
+ }
46
+ //# sourceMappingURL=setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAaH,wDAwBC;AAKD,wCAGC;AA3CD,uCAAuC;AACvC,MAAM,oBAAoB,GAAG,OAAO,CAAC,KAAK,CAAC;AAC3C,MAAM,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;AAEzC,iCAAiC;AACjC,IAAI,SAAS,GAAQ,IAAI,CAAC;AAE1B;;;GAGG;AACH,SAAgB,sBAAsB,CAAC,MAAW;IAChD,SAAS,GAAG,MAAM,CAAC;IAEnB,OAAO,CAAC,KAAK,GAAG,UAAU,GAAG,IAAe;QAC1C,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAC7B,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CACpD,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACZ,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,oBAAoB,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CAAC,IAAI,GAAG,UAAU,GAAG,IAAe;QACzC,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAC7B,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CACpD,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACZ,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,mBAAmB,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc;IAC5B,OAAO,CAAC,KAAK,GAAG,oBAAoB,CAAC;IACrC,OAAO,CAAC,IAAI,GAAG,mBAAmB,CAAC;AACrC,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Global type definitions for Web3PGP CLI
3
+ */
4
+ export type LogLevel = 'debug' | 'info' | 'warn' | 'error';
5
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC"}
package/dist/types.js ADDED
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}