@tejasanik/postgres-mcp-server 1.6.1 → 1.7.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/README.md +64 -4
- package/dist/__tests__/server-tools.test.js +7 -12
- package/dist/__tests__/server-tools.test.js.map +1 -1
- package/dist/__tests__/sql-tools.test.js +169 -0
- package/dist/__tests__/sql-tools.test.js.map +1 -1
- package/dist/db-manager.d.ts +17 -2
- package/dist/db-manager.d.ts.map +1 -1
- package/dist/db-manager.js +138 -45
- package/dist/db-manager.js.map +1 -1
- package/dist/index.js +47 -14
- package/dist/index.js.map +1 -1
- package/dist/tools/server-tools.d.ts +0 -2
- package/dist/tools/server-tools.d.ts.map +1 -1
- package/dist/tools/server-tools.js +2 -5
- package/dist/tools/server-tools.js.map +1 -1
- package/dist/tools/sql-tools.d.ts +33 -0
- package/dist/tools/sql-tools.d.ts.map +1 -1
- package/dist/tools/sql-tools.js +264 -0
- package/dist/tools/sql-tools.js.map +1 -1
- package/dist/types.d.ts +0 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/masking.d.ts +18 -0
- package/dist/utils/masking.d.ts.map +1 -0
- package/dist/utils/masking.js +68 -0
- package/dist/utils/masking.js.map +1 -0
- package/dist/utils/retry.d.ts +21 -0
- package/dist/utils/retry.d.ts.map +1 -0
- package/dist/utils/retry.js +54 -0
- package/dist/utils/retry.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-tools.js","sourceRoot":"","sources":["../../src/tools/server-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"server-tools.js","sourceRoot":"","sources":["../../src/tools/server-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,4 +17,37 @@ export declare function explainQuery(args: {
|
|
|
17
17
|
indexType?: string;
|
|
18
18
|
}>;
|
|
19
19
|
}): Promise<QueryPlan>;
|
|
20
|
+
/**
|
|
21
|
+
* Individual statement error when stopOnError is false
|
|
22
|
+
*/
|
|
23
|
+
export interface StatementError {
|
|
24
|
+
statementIndex: number;
|
|
25
|
+
sql: string;
|
|
26
|
+
error: string;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Result of executing a SQL file
|
|
30
|
+
*/
|
|
31
|
+
export interface ExecuteSqlFileResult {
|
|
32
|
+
success: boolean;
|
|
33
|
+
filePath: string;
|
|
34
|
+
fileSize: number;
|
|
35
|
+
totalStatements: number;
|
|
36
|
+
statementsExecuted: number;
|
|
37
|
+
statementsFailed: number;
|
|
38
|
+
executionTimeMs: number;
|
|
39
|
+
rowsAffected?: number;
|
|
40
|
+
error?: string;
|
|
41
|
+
errors?: StatementError[];
|
|
42
|
+
rollback?: boolean;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Execute a SQL file from the filesystem.
|
|
46
|
+
* Supports transaction mode for atomic execution.
|
|
47
|
+
*/
|
|
48
|
+
export declare function executeSqlFile(args: {
|
|
49
|
+
filePath: string;
|
|
50
|
+
useTransaction?: boolean;
|
|
51
|
+
stopOnError?: boolean;
|
|
52
|
+
}): Promise<ExecuteSqlFileResult>;
|
|
20
53
|
//# sourceMappingURL=sql-tools.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql-tools.d.ts","sourceRoot":"","sources":["../../src/tools/sql-tools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"sql-tools.d.ts","sourceRoot":"","sources":["../../src/tools/sql-tools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAc1D,wBAAsB,UAAU,CAAC,IAAI,EAAE;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA+F5B;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;IAC1C,mBAAmB,CAAC,EAAE,KAAK,CAAC;QAC1B,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;CACJ,GAAG,OAAO,CAAC,SAAS,CAAC,CA8HrB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAqKhC"}
|
package/dist/tools/sql-tools.js
CHANGED
|
@@ -9,6 +9,7 @@ const MAX_ROWS_DEFAULT = 1000; // Default max rows in direct response
|
|
|
9
9
|
const MAX_ROWS_LIMIT = 100000; // Absolute maximum rows
|
|
10
10
|
const DEFAULT_SQL_LENGTH_LIMIT = 100000; // Default SQL query length limit (100KB)
|
|
11
11
|
const MAX_PARAMS = 100; // Maximum number of query parameters
|
|
12
|
+
const MAX_SQL_FILE_SIZE = 50 * 1024 * 1024; // Maximum SQL file size (50MB)
|
|
12
13
|
export async function executeSql(args) {
|
|
13
14
|
// Validate SQL input
|
|
14
15
|
if (args.sql === undefined || args.sql === null) {
|
|
@@ -198,4 +199,267 @@ export async function explainQuery(args) {
|
|
|
198
199
|
client.release();
|
|
199
200
|
}
|
|
200
201
|
}
|
|
202
|
+
/**
|
|
203
|
+
* Execute a SQL file from the filesystem.
|
|
204
|
+
* Supports transaction mode for atomic execution.
|
|
205
|
+
*/
|
|
206
|
+
export async function executeSqlFile(args) {
|
|
207
|
+
// Validate file path
|
|
208
|
+
if (!args.filePath || typeof args.filePath !== 'string') {
|
|
209
|
+
throw new Error('filePath parameter is required');
|
|
210
|
+
}
|
|
211
|
+
const filePath = args.filePath.trim();
|
|
212
|
+
// Security: Validate file extension
|
|
213
|
+
const ext = path.extname(filePath).toLowerCase();
|
|
214
|
+
if (ext !== '.sql') {
|
|
215
|
+
throw new Error('Only .sql files are allowed');
|
|
216
|
+
}
|
|
217
|
+
// Security: Prevent path traversal attacks
|
|
218
|
+
const resolvedPath = path.resolve(filePath);
|
|
219
|
+
// Check file exists
|
|
220
|
+
if (!fs.existsSync(resolvedPath)) {
|
|
221
|
+
throw new Error(`File not found: ${filePath}`);
|
|
222
|
+
}
|
|
223
|
+
// Check file stats
|
|
224
|
+
const stats = fs.statSync(resolvedPath);
|
|
225
|
+
if (!stats.isFile()) {
|
|
226
|
+
throw new Error(`Not a file: ${filePath}`);
|
|
227
|
+
}
|
|
228
|
+
if (stats.size > MAX_SQL_FILE_SIZE) {
|
|
229
|
+
throw new Error(`File too large. Maximum size is ${MAX_SQL_FILE_SIZE / (1024 * 1024)}MB`);
|
|
230
|
+
}
|
|
231
|
+
if (stats.size === 0) {
|
|
232
|
+
throw new Error('File is empty');
|
|
233
|
+
}
|
|
234
|
+
// Read file content
|
|
235
|
+
const sqlContent = fs.readFileSync(resolvedPath, 'utf-8');
|
|
236
|
+
const dbManager = getDbManager();
|
|
237
|
+
const useTransaction = args.useTransaction !== false; // Default to true
|
|
238
|
+
const stopOnError = args.stopOnError !== false; // Default to true
|
|
239
|
+
const startTime = process.hrtime.bigint();
|
|
240
|
+
const client = await dbManager.getClient();
|
|
241
|
+
let statementsExecuted = 0;
|
|
242
|
+
let statementsFailed = 0;
|
|
243
|
+
let totalRowsAffected = 0;
|
|
244
|
+
let rolledBack = false;
|
|
245
|
+
const collectedErrors = [];
|
|
246
|
+
// Split SQL into statements first to get total count
|
|
247
|
+
const statements = splitSqlStatements(sqlContent);
|
|
248
|
+
const executableStatements = statements.filter(s => {
|
|
249
|
+
const trimmed = s.trim();
|
|
250
|
+
return trimmed && !trimmed.startsWith('--');
|
|
251
|
+
});
|
|
252
|
+
const totalStatements = executableStatements.length;
|
|
253
|
+
try {
|
|
254
|
+
if (useTransaction) {
|
|
255
|
+
await client.query('BEGIN');
|
|
256
|
+
}
|
|
257
|
+
let statementIndex = 0;
|
|
258
|
+
for (const statement of statements) {
|
|
259
|
+
const trimmed = statement.trim();
|
|
260
|
+
// Skip empty statements
|
|
261
|
+
if (!trimmed) {
|
|
262
|
+
continue;
|
|
263
|
+
}
|
|
264
|
+
// Skip pure comment-only statements (just -- comments with no SQL after)
|
|
265
|
+
const withoutComments = stripLeadingComments(trimmed);
|
|
266
|
+
if (!withoutComments) {
|
|
267
|
+
continue;
|
|
268
|
+
}
|
|
269
|
+
statementIndex++;
|
|
270
|
+
try {
|
|
271
|
+
const result = await client.query(trimmed);
|
|
272
|
+
statementsExecuted++;
|
|
273
|
+
if (result.rowCount !== null) {
|
|
274
|
+
totalRowsAffected += result.rowCount;
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
catch (error) {
|
|
278
|
+
statementsFailed++;
|
|
279
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
280
|
+
if (stopOnError) {
|
|
281
|
+
if (useTransaction) {
|
|
282
|
+
await client.query('ROLLBACK');
|
|
283
|
+
rolledBack = true;
|
|
284
|
+
}
|
|
285
|
+
// Add the error to collection before throwing
|
|
286
|
+
collectedErrors.push({
|
|
287
|
+
statementIndex,
|
|
288
|
+
sql: trimmed.length > 200 ? trimmed.substring(0, 200) + '...' : trimmed,
|
|
289
|
+
error: errorMessage
|
|
290
|
+
});
|
|
291
|
+
throw error;
|
|
292
|
+
}
|
|
293
|
+
// If stopOnError is false, collect error and continue
|
|
294
|
+
collectedErrors.push({
|
|
295
|
+
statementIndex,
|
|
296
|
+
sql: trimmed.length > 200 ? trimmed.substring(0, 200) + '...' : trimmed,
|
|
297
|
+
error: errorMessage
|
|
298
|
+
});
|
|
299
|
+
console.error(`Warning: Statement ${statementIndex} failed: ${errorMessage}`);
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
if (useTransaction && !rolledBack) {
|
|
303
|
+
await client.query('COMMIT');
|
|
304
|
+
}
|
|
305
|
+
const endTime = process.hrtime.bigint();
|
|
306
|
+
const executionTimeMs = Number(endTime - startTime) / 1_000_000;
|
|
307
|
+
const result = {
|
|
308
|
+
success: statementsFailed === 0,
|
|
309
|
+
filePath: resolvedPath,
|
|
310
|
+
fileSize: stats.size,
|
|
311
|
+
totalStatements,
|
|
312
|
+
statementsExecuted,
|
|
313
|
+
statementsFailed,
|
|
314
|
+
executionTimeMs: Math.round(executionTimeMs * 100) / 100,
|
|
315
|
+
rowsAffected: totalRowsAffected
|
|
316
|
+
};
|
|
317
|
+
// Include errors array if there were any failures (when stopOnError=false)
|
|
318
|
+
if (collectedErrors.length > 0) {
|
|
319
|
+
result.errors = collectedErrors;
|
|
320
|
+
}
|
|
321
|
+
return result;
|
|
322
|
+
}
|
|
323
|
+
catch (error) {
|
|
324
|
+
const endTime = process.hrtime.bigint();
|
|
325
|
+
const executionTimeMs = Number(endTime - startTime) / 1_000_000;
|
|
326
|
+
const result = {
|
|
327
|
+
success: false,
|
|
328
|
+
filePath: resolvedPath,
|
|
329
|
+
fileSize: stats.size,
|
|
330
|
+
totalStatements,
|
|
331
|
+
statementsExecuted,
|
|
332
|
+
statementsFailed,
|
|
333
|
+
executionTimeMs: Math.round(executionTimeMs * 100) / 100,
|
|
334
|
+
rowsAffected: totalRowsAffected,
|
|
335
|
+
error: error instanceof Error ? error.message : String(error),
|
|
336
|
+
rollback: rolledBack
|
|
337
|
+
};
|
|
338
|
+
if (collectedErrors.length > 0) {
|
|
339
|
+
result.errors = collectedErrors;
|
|
340
|
+
}
|
|
341
|
+
return result;
|
|
342
|
+
}
|
|
343
|
+
finally {
|
|
344
|
+
client.release();
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
/**
|
|
348
|
+
* Strips leading line comments and block comments from SQL to check if there's actual SQL.
|
|
349
|
+
* Returns empty string if the entire content is just comments.
|
|
350
|
+
*/
|
|
351
|
+
function stripLeadingComments(sql) {
|
|
352
|
+
let result = sql.trim();
|
|
353
|
+
while (result.length > 0) {
|
|
354
|
+
// Strip leading line comments
|
|
355
|
+
if (result.startsWith('--')) {
|
|
356
|
+
const newlineIndex = result.indexOf('\n');
|
|
357
|
+
if (newlineIndex === -1) {
|
|
358
|
+
return ''; // Entire string is a line comment
|
|
359
|
+
}
|
|
360
|
+
result = result.substring(newlineIndex + 1).trim();
|
|
361
|
+
continue;
|
|
362
|
+
}
|
|
363
|
+
// Strip leading block comments
|
|
364
|
+
if (result.startsWith('/*')) {
|
|
365
|
+
const endIndex = result.indexOf('*/');
|
|
366
|
+
if (endIndex === -1) {
|
|
367
|
+
return ''; // Unclosed block comment
|
|
368
|
+
}
|
|
369
|
+
result = result.substring(endIndex + 2).trim();
|
|
370
|
+
continue;
|
|
371
|
+
}
|
|
372
|
+
// No more leading comments
|
|
373
|
+
break;
|
|
374
|
+
}
|
|
375
|
+
return result;
|
|
376
|
+
}
|
|
377
|
+
/**
|
|
378
|
+
* Split SQL content into individual statements.
|
|
379
|
+
* Handles basic cases like semicolons, comments, and string literals.
|
|
380
|
+
*/
|
|
381
|
+
function splitSqlStatements(sql) {
|
|
382
|
+
const statements = [];
|
|
383
|
+
let current = '';
|
|
384
|
+
let inString = false;
|
|
385
|
+
let stringChar = '';
|
|
386
|
+
let inLineComment = false;
|
|
387
|
+
let inBlockComment = false;
|
|
388
|
+
let i = 0;
|
|
389
|
+
while (i < sql.length) {
|
|
390
|
+
const char = sql[i];
|
|
391
|
+
const nextChar = sql[i + 1] || '';
|
|
392
|
+
// Handle line comments
|
|
393
|
+
if (!inString && !inBlockComment && char === '-' && nextChar === '-') {
|
|
394
|
+
inLineComment = true;
|
|
395
|
+
current += char;
|
|
396
|
+
i++;
|
|
397
|
+
continue;
|
|
398
|
+
}
|
|
399
|
+
if (inLineComment && (char === '\n' || char === '\r')) {
|
|
400
|
+
inLineComment = false;
|
|
401
|
+
current += char;
|
|
402
|
+
i++;
|
|
403
|
+
continue;
|
|
404
|
+
}
|
|
405
|
+
// Handle block comments
|
|
406
|
+
if (!inString && !inLineComment && char === '/' && nextChar === '*') {
|
|
407
|
+
inBlockComment = true;
|
|
408
|
+
current += char + nextChar;
|
|
409
|
+
i += 2;
|
|
410
|
+
continue;
|
|
411
|
+
}
|
|
412
|
+
if (inBlockComment && char === '*' && nextChar === '/') {
|
|
413
|
+
inBlockComment = false;
|
|
414
|
+
current += char + nextChar;
|
|
415
|
+
i += 2;
|
|
416
|
+
continue;
|
|
417
|
+
}
|
|
418
|
+
// Handle string literals
|
|
419
|
+
if (!inLineComment && !inBlockComment && (char === "'" || char === '"')) {
|
|
420
|
+
if (!inString) {
|
|
421
|
+
inString = true;
|
|
422
|
+
stringChar = char;
|
|
423
|
+
}
|
|
424
|
+
else if (char === stringChar) {
|
|
425
|
+
// Check for escaped quote (doubled)
|
|
426
|
+
if (nextChar === stringChar) {
|
|
427
|
+
current += char + nextChar;
|
|
428
|
+
i += 2;
|
|
429
|
+
continue;
|
|
430
|
+
}
|
|
431
|
+
inString = false;
|
|
432
|
+
stringChar = '';
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
// Handle dollar-quoted strings (PostgreSQL specific)
|
|
436
|
+
if (!inString && !inLineComment && !inBlockComment && char === '$') {
|
|
437
|
+
const dollarMatch = sql.slice(i).match(/^(\$[a-zA-Z0-9_]*\$)/);
|
|
438
|
+
if (dollarMatch) {
|
|
439
|
+
const dollarTag = dollarMatch[1];
|
|
440
|
+
const endIndex = sql.indexOf(dollarTag, i + dollarTag.length);
|
|
441
|
+
if (endIndex !== -1) {
|
|
442
|
+
current += sql.slice(i, endIndex + dollarTag.length);
|
|
443
|
+
i = endIndex + dollarTag.length;
|
|
444
|
+
continue;
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
// Handle statement separator
|
|
449
|
+
if (!inString && !inLineComment && !inBlockComment && char === ';') {
|
|
450
|
+
current += char;
|
|
451
|
+
statements.push(current.trim());
|
|
452
|
+
current = '';
|
|
453
|
+
i++;
|
|
454
|
+
continue;
|
|
455
|
+
}
|
|
456
|
+
current += char;
|
|
457
|
+
i++;
|
|
458
|
+
}
|
|
459
|
+
// Add remaining content if any
|
|
460
|
+
if (current.trim()) {
|
|
461
|
+
statements.push(current.trim());
|
|
462
|
+
}
|
|
463
|
+
return statements.filter(s => s.length > 0);
|
|
464
|
+
}
|
|
201
465
|
//# sourceMappingURL=sql-tools.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql-tools.js","sourceRoot":"","sources":["../../src/tools/sql-tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sql-tools.js","sourceRoot":"","sources":["../../src/tools/sql-tools.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,GAAG,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG;QAC3D,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAED,MAAM,WAAW,aAAa;IAC5B,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY,CAAC;CACpC;AAED,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,GAAG,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG;QAC3D,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAED,MAAM,WAAW,aAAa;IAC5B,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY,CAAC;CACpC;AAED,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,UAAU,EAAE,MAAM,GAAG,UAAU,CAAC;CACjC;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,UAAU,GAAG,WAAW,CAAC;IAClD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,wBAAwB,EAAE,MAAM,GAAG,IAAI,CAAC;CACzC;AAED,MAAM,WAAW,cAAc;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAED,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB"}
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC"}
|
package/dist/utils/index.js
CHANGED
package/dist/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility functions for masking sensitive data in responses.
|
|
3
|
+
* Only used for output - actual connections use real values.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Masks sensitive host URLs to prevent exposure of infrastructure details.
|
|
7
|
+
* Examples:
|
|
8
|
+
* - "pgbouncer-xxx.elb.us-east-1.amazonaws.com" -> "***.elb.us-east-1.amazonaws.com"
|
|
9
|
+
* - "my-db.xxx.rds.amazonaws.com" -> "***.rds.amazonaws.com"
|
|
10
|
+
* - "192.168.1.100" -> "***.***.***.***"
|
|
11
|
+
* - "localhost" -> "localhost" (unchanged)
|
|
12
|
+
*/
|
|
13
|
+
export declare function maskHost(host: string | undefined | null): string;
|
|
14
|
+
/**
|
|
15
|
+
* Masks sensitive data in response objects before sending to client.
|
|
16
|
+
*/
|
|
17
|
+
export declare function maskResponseData(data: any): any;
|
|
18
|
+
//# sourceMappingURL=masking.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"masking.d.ts","sourceRoot":"","sources":["../../src/utils/masking.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAkChE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,CAoB/C"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility functions for masking sensitive data in responses.
|
|
3
|
+
* Only used for output - actual connections use real values.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Masks sensitive host URLs to prevent exposure of infrastructure details.
|
|
7
|
+
* Examples:
|
|
8
|
+
* - "pgbouncer-xxx.elb.us-east-1.amazonaws.com" -> "***.elb.us-east-1.amazonaws.com"
|
|
9
|
+
* - "my-db.xxx.rds.amazonaws.com" -> "***.rds.amazonaws.com"
|
|
10
|
+
* - "192.168.1.100" -> "***.***.***.***"
|
|
11
|
+
* - "localhost" -> "localhost" (unchanged)
|
|
12
|
+
*/
|
|
13
|
+
export function maskHost(host) {
|
|
14
|
+
if (!host)
|
|
15
|
+
return host;
|
|
16
|
+
// Don't mask localhost or simple hostnames
|
|
17
|
+
if (host === 'localhost' || host === '127.0.0.1' || !host.includes('.')) {
|
|
18
|
+
return host;
|
|
19
|
+
}
|
|
20
|
+
// Mask AWS RDS/ELB endpoints
|
|
21
|
+
if (host.includes('.amazonaws.com')) {
|
|
22
|
+
const parts = host.split('.');
|
|
23
|
+
const awsIndex = parts.findIndex(p => p === 'amazonaws');
|
|
24
|
+
if (awsIndex > 0) {
|
|
25
|
+
const suffix = parts.slice(awsIndex - 1).join('.');
|
|
26
|
+
return `***.${suffix}`;
|
|
27
|
+
}
|
|
28
|
+
return '***.amazonaws.com';
|
|
29
|
+
}
|
|
30
|
+
// Mask Azure endpoints
|
|
31
|
+
if (host.includes('.database.windows.net'))
|
|
32
|
+
return '***.database.windows.net';
|
|
33
|
+
if (host.includes('.azure.com'))
|
|
34
|
+
return '***.azure.com';
|
|
35
|
+
// Mask GCP endpoints
|
|
36
|
+
if (host.includes('.cloudsql.') || host.includes('.googleapis.com'))
|
|
37
|
+
return '***.googleapis.com';
|
|
38
|
+
// Mask IP addresses
|
|
39
|
+
if (/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(host))
|
|
40
|
+
return '***.***.***.***';
|
|
41
|
+
// For other hosts, mask subdomain but keep domain
|
|
42
|
+
const parts = host.split('.');
|
|
43
|
+
if (parts.length >= 2)
|
|
44
|
+
return `***.${parts.slice(-2).join('.')}`;
|
|
45
|
+
return host;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Masks sensitive data in response objects before sending to client.
|
|
49
|
+
*/
|
|
50
|
+
export function maskResponseData(data) {
|
|
51
|
+
if (!data || typeof data !== 'object')
|
|
52
|
+
return data;
|
|
53
|
+
// Deep clone to avoid mutating original
|
|
54
|
+
const masked = JSON.parse(JSON.stringify(data));
|
|
55
|
+
// Mask host in server listings
|
|
56
|
+
if (masked.servers && Array.isArray(masked.servers)) {
|
|
57
|
+
masked.servers = masked.servers.map((s) => ({
|
|
58
|
+
...s,
|
|
59
|
+
host: maskHost(s.host)
|
|
60
|
+
}));
|
|
61
|
+
}
|
|
62
|
+
// Mask host in connection info
|
|
63
|
+
if (masked.host) {
|
|
64
|
+
masked.host = maskHost(masked.host);
|
|
65
|
+
}
|
|
66
|
+
return masked;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=masking.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"masking.js","sourceRoot":"","sources":["../../src/utils/masking.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;GAOG;AACH,MAAM,UAAU,QAAQ,CAAC,IAA+B;IACtD,IAAI,CAAC,IAAI;QAAE,OAAO,IAAc,CAAC;IAEjC,2CAA2C;IAC3C,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,WAAW,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACxE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,6BAA6B;IAC7B,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC;QACzD,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YACjB,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACnD,OAAO,OAAO,MAAM,EAAE,CAAC;QACzB,CAAC;QACD,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAED,uBAAuB;IACvB,IAAI,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QAAE,OAAO,0BAA0B,CAAC;IAC9E,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;QAAE,OAAO,eAAe,CAAC;IAExD,qBAAqB;IACrB,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QAAE,OAAO,oBAAoB,CAAC;IAEjG,oBAAoB;IACpB,IAAI,sCAAsC,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,iBAAiB,CAAC;IAEhF,kDAAkD;IAClD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IAEjE,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAS;IACxC,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAEnD,wCAAwC;IACxC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAEhD,+BAA+B;IAC/B,IAAI,MAAM,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QACpD,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;YAC/C,GAAG,CAAC;YACJ,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;SACvB,CAAC,CAAC,CAAC;IACN,CAAC;IAED,+BAA+B;IAC/B,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wraps a tool handler function with automatic retry logic for connection errors.
|
|
3
|
+
* If a connection error is detected (e.g., server went inactive), it will:
|
|
4
|
+
* 1. Invalidate the current connection
|
|
5
|
+
* 2. Attempt to reconnect
|
|
6
|
+
* 3. Retry the operation once
|
|
7
|
+
*
|
|
8
|
+
* @param handler - The async function to wrap
|
|
9
|
+
* @param maxRetries - Maximum number of retries (default: 1)
|
|
10
|
+
* @returns Wrapped function with retry logic
|
|
11
|
+
*/
|
|
12
|
+
export declare function withConnectionRetry<T extends any[], R>(handler: (...args: T) => Promise<R>, maxRetries?: number): (...args: T) => Promise<R>;
|
|
13
|
+
/**
|
|
14
|
+
* Creates a tool handler wrapper that includes connection retry logic.
|
|
15
|
+
* Use this for tools that require an active database connection.
|
|
16
|
+
*
|
|
17
|
+
* @param handler - The tool handler function
|
|
18
|
+
* @returns Wrapped handler with retry logic
|
|
19
|
+
*/
|
|
20
|
+
export declare function createRetryableToolHandler<TArgs, TResult>(handler: (args: TArgs) => Promise<TResult>): (args: TArgs) => Promise<TResult>;
|
|
21
|
+
//# sourceMappingURL=retry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../src/utils/retry.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,GAAG,EAAE,EAAE,CAAC,EACpD,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EACnC,UAAU,GAAE,MAAU,GACrB,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAkC5B;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,EACvD,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC,OAAO,CAAC,GACzC,CAAC,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC,OAAO,CAAC,CAEnC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { getDbManager, DatabaseManager } from '../db-manager.js';
|
|
2
|
+
/**
|
|
3
|
+
* Wraps a tool handler function with automatic retry logic for connection errors.
|
|
4
|
+
* If a connection error is detected (e.g., server went inactive), it will:
|
|
5
|
+
* 1. Invalidate the current connection
|
|
6
|
+
* 2. Attempt to reconnect
|
|
7
|
+
* 3. Retry the operation once
|
|
8
|
+
*
|
|
9
|
+
* @param handler - The async function to wrap
|
|
10
|
+
* @param maxRetries - Maximum number of retries (default: 1)
|
|
11
|
+
* @returns Wrapped function with retry logic
|
|
12
|
+
*/
|
|
13
|
+
export function withConnectionRetry(handler, maxRetries = 1) {
|
|
14
|
+
return async (...args) => {
|
|
15
|
+
let lastError;
|
|
16
|
+
for (let attempt = 0; attempt <= maxRetries; attempt++) {
|
|
17
|
+
try {
|
|
18
|
+
return await handler(...args);
|
|
19
|
+
}
|
|
20
|
+
catch (error) {
|
|
21
|
+
lastError = error;
|
|
22
|
+
// Check if this is a connection error that warrants retry
|
|
23
|
+
if (attempt < maxRetries && DatabaseManager.isConnectionError(error)) {
|
|
24
|
+
console.error(`Connection error detected (attempt ${attempt + 1}/${maxRetries + 1}), attempting reconnect...`);
|
|
25
|
+
const dbManager = getDbManager();
|
|
26
|
+
const reconnected = await dbManager.reconnect();
|
|
27
|
+
if (reconnected) {
|
|
28
|
+
console.error('Reconnection successful, retrying operation...');
|
|
29
|
+
continue; // Retry the operation
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
console.error('Reconnection failed, will not retry');
|
|
33
|
+
break;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
// Not a connection error or max retries reached
|
|
37
|
+
break;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
// Re-throw the last error
|
|
41
|
+
throw lastError;
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Creates a tool handler wrapper that includes connection retry logic.
|
|
46
|
+
* Use this for tools that require an active database connection.
|
|
47
|
+
*
|
|
48
|
+
* @param handler - The tool handler function
|
|
49
|
+
* @returns Wrapped handler with retry logic
|
|
50
|
+
*/
|
|
51
|
+
export function createRetryableToolHandler(handler) {
|
|
52
|
+
return withConnectionRetry(handler);
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=retry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../../src/utils/retry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEjE;;;;;;;;;;GAUG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAAmC,EACnC,aAAqB,CAAC;IAEtB,OAAO,KAAK,EAAE,GAAG,IAAO,EAAc,EAAE;QACtC,IAAI,SAAc,CAAC;QAEnB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;YACvD,IAAI,CAAC;gBACH,OAAO,MAAM,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;YAChC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,SAAS,GAAG,KAAK,CAAC;gBAElB,0DAA0D;gBAC1D,IAAI,OAAO,GAAG,UAAU,IAAI,eAAe,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;oBACrE,OAAO,CAAC,KAAK,CAAC,sCAAsC,OAAO,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,4BAA4B,CAAC,CAAC;oBAE/G,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;oBACjC,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,SAAS,EAAE,CAAC;oBAEhD,IAAI,WAAW,EAAE,CAAC;wBAChB,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;wBAChE,SAAS,CAAC,sBAAsB;oBAClC,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;wBACrD,MAAM;oBACR,CAAC;gBACH,CAAC;gBAED,gDAAgD;gBAChD,MAAM;YACR,CAAC;QACH,CAAC;QAED,0BAA0B;QAC1B,MAAM,SAAS,CAAC;IAClB,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,0BAA0B,CACxC,OAA0C;IAE1C,OAAO,mBAAmB,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC"}
|
package/package.json
CHANGED