@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.
- package/LICENSE +21 -0
- package/README.md +151 -0
- package/dist/commands/blockchain/addSubkey.d.ts +9 -0
- package/dist/commands/blockchain/addSubkey.d.ts.map +1 -0
- package/dist/commands/blockchain/addSubkey.js +49 -0
- package/dist/commands/blockchain/addSubkey.js.map +1 -0
- package/dist/commands/blockchain/certify.d.ts +13 -0
- package/dist/commands/blockchain/certify.d.ts.map +1 -0
- package/dist/commands/blockchain/certify.js +75 -0
- package/dist/commands/blockchain/certify.js.map +1 -0
- package/dist/commands/blockchain/challenge.d.ts +13 -0
- package/dist/commands/blockchain/challenge.d.ts.map +1 -0
- package/dist/commands/blockchain/challenge.js +58 -0
- package/dist/commands/blockchain/challenge.js.map +1 -0
- package/dist/commands/blockchain/generateKey.d.ts +7 -0
- package/dist/commands/blockchain/generateKey.d.ts.map +1 -0
- package/dist/commands/blockchain/generateKey.js +36 -0
- package/dist/commands/blockchain/generateKey.js.map +1 -0
- package/dist/commands/blockchain/getPublicKey.d.ts +9 -0
- package/dist/commands/blockchain/getPublicKey.d.ts.map +1 -0
- package/dist/commands/blockchain/getPublicKey.js +37 -0
- package/dist/commands/blockchain/getPublicKey.js.map +1 -0
- package/dist/commands/blockchain/index.d.ts +12 -0
- package/dist/commands/blockchain/index.d.ts.map +1 -0
- package/dist/commands/blockchain/index.js +33 -0
- package/dist/commands/blockchain/index.js.map +1 -0
- package/dist/commands/blockchain/keccak256.d.ts +7 -0
- package/dist/commands/blockchain/keccak256.d.ts.map +1 -0
- package/dist/commands/blockchain/keccak256.js +38 -0
- package/dist/commands/blockchain/keccak256.js.map +1 -0
- package/dist/commands/blockchain/listen.d.ts +9 -0
- package/dist/commands/blockchain/listen.d.ts.map +1 -0
- package/dist/commands/blockchain/listen.js +30 -0
- package/dist/commands/blockchain/listen.js.map +1 -0
- package/dist/commands/blockchain/prove.d.ts +13 -0
- package/dist/commands/blockchain/prove.d.ts.map +1 -0
- package/dist/commands/blockchain/prove.js +123 -0
- package/dist/commands/blockchain/prove.js.map +1 -0
- package/dist/commands/blockchain/register.d.ts +13 -0
- package/dist/commands/blockchain/register.d.ts.map +1 -0
- package/dist/commands/blockchain/register.js +65 -0
- package/dist/commands/blockchain/register.js.map +1 -0
- package/dist/commands/blockchain/revoke-certification.d.ts +13 -0
- package/dist/commands/blockchain/revoke-certification.d.ts.map +1 -0
- package/dist/commands/blockchain/revoke-certification.js +75 -0
- package/dist/commands/blockchain/revoke-certification.js.map +1 -0
- package/dist/commands/blockchain/revoke.d.ts +19 -0
- package/dist/commands/blockchain/revoke.d.ts.map +1 -0
- package/dist/commands/blockchain/revoke.js +118 -0
- package/dist/commands/blockchain/revoke.js.map +1 -0
- package/dist/commands/blockchain/sync.d.ts +20 -0
- package/dist/commands/blockchain/sync.d.ts.map +1 -0
- package/dist/commands/blockchain/sync.js +246 -0
- package/dist/commands/blockchain/sync.js.map +1 -0
- package/dist/commands/blockchain/update.d.ts +13 -0
- package/dist/commands/blockchain/update.d.ts.map +1 -0
- package/dist/commands/blockchain/update.js +60 -0
- package/dist/commands/blockchain/update.js.map +1 -0
- package/dist/commands/configuration/display.d.ts +10 -0
- package/dist/commands/configuration/display.d.ts.map +1 -0
- package/dist/commands/configuration/display.js +58 -0
- package/dist/commands/configuration/display.js.map +1 -0
- package/dist/commands/configuration/generate.d.ts +14 -0
- package/dist/commands/configuration/generate.d.ts.map +1 -0
- package/dist/commands/configuration/generate.js +222 -0
- package/dist/commands/configuration/generate.js.map +1 -0
- package/dist/commands/configuration/index.d.ts +6 -0
- package/dist/commands/configuration/index.d.ts.map +1 -0
- package/dist/commands/configuration/index.js +21 -0
- package/dist/commands/configuration/index.js.map +1 -0
- package/dist/commands/configuration/validate.d.ts +10 -0
- package/dist/commands/configuration/validate.d.ts.map +1 -0
- package/dist/commands/configuration/validate.js +45 -0
- package/dist/commands/configuration/validate.js.map +1 -0
- package/dist/commands/factory.d.ts +33 -0
- package/dist/commands/factory.d.ts.map +1 -0
- package/dist/commands/factory.js +48 -0
- package/dist/commands/factory.js.map +1 -0
- package/dist/config/defaults.d.ts +8 -0
- package/dist/config/defaults.d.ts.map +1 -0
- package/dist/config/defaults.js +11 -0
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/loader.d.ts +12 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/loader.js +205 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/config/testnet.d.ts +6 -0
- package/dist/config/testnet.d.ts.map +1 -0
- package/dist/config/testnet.js +26 -0
- package/dist/config/testnet.js.map +1 -0
- package/dist/config/transport.d.ts +17 -0
- package/dist/config/transport.d.ts.map +1 -0
- package/dist/config/transport.js +46 -0
- package/dist/config/transport.js.map +1 -0
- package/dist/config/types.d.ts +92 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +12 -0
- package/dist/config/types.js.map +1 -0
- package/dist/config/validator.d.ts +14 -0
- package/dist/config/validator.d.ts.map +1 -0
- package/dist/config/validator.js +156 -0
- package/dist/config/validator.js.map +1 -0
- package/dist/errors.d.ts +13 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +28 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +61 -0
- package/dist/index.js.map +1 -0
- package/dist/services/web3pgpServiceFactory.d.ts +14 -0
- package/dist/services/web3pgpServiceFactory.d.ts.map +1 -0
- package/dist/services/web3pgpServiceFactory.js +228 -0
- package/dist/services/web3pgpServiceFactory.js.map +1 -0
- package/dist/setup.d.ts +14 -0
- package/dist/setup.d.ts.map +1 -0
- package/dist/setup.js +46 -0
- package/dist/setup.js.map +1 -0
- package/dist/types.d.ts +5 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/clients.d.ts +49373 -0
- package/dist/utils/clients.d.ts.map +1 -0
- package/dist/utils/clients.js +129 -0
- package/dist/utils/clients.js.map +1 -0
- package/dist/utils/input.d.ts +24 -0
- package/dist/utils/input.d.ts.map +1 -0
- package/dist/utils/input.js +138 -0
- package/dist/utils/input.js.map +1 -0
- package/dist/utils/logger.d.ts +12 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +35 -0
- package/dist/utils/logger.js.map +1 -0
- 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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"}
|
package/dist/setup.d.ts
ADDED
|
@@ -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"}
|
package/dist/types.d.ts
ADDED
|
@@ -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 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|