@pilat/mcp-datalink 1.1.0 → 1.2.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 (75) hide show
  1. package/README.md +19 -97
  2. package/dist/adapters/factory.d.ts +0 -4
  3. package/dist/adapters/factory.d.ts.map +1 -1
  4. package/dist/adapters/factory.js +3 -8
  5. package/dist/adapters/factory.js.map +1 -1
  6. package/dist/adapters/mysql/adapter.d.ts +2 -31
  7. package/dist/adapters/mysql/adapter.d.ts.map +1 -1
  8. package/dist/adapters/mysql/adapter.js +27 -283
  9. package/dist/adapters/mysql/adapter.js.map +1 -1
  10. package/dist/adapters/postgresql/adapter.d.ts +2 -22
  11. package/dist/adapters/postgresql/adapter.d.ts.map +1 -1
  12. package/dist/adapters/postgresql/adapter.js +18 -175
  13. package/dist/adapters/postgresql/adapter.js.map +1 -1
  14. package/dist/adapters/sqlite/adapter.d.ts +3 -25
  15. package/dist/adapters/sqlite/adapter.d.ts.map +1 -1
  16. package/dist/adapters/sqlite/adapter.js +65 -364
  17. package/dist/adapters/sqlite/adapter.js.map +1 -1
  18. package/dist/adapters/sqlite/pragma-check.d.ts +19 -0
  19. package/dist/adapters/sqlite/pragma-check.d.ts.map +1 -0
  20. package/dist/adapters/sqlite/pragma-check.js +25 -0
  21. package/dist/adapters/sqlite/pragma-check.js.map +1 -0
  22. package/dist/adapters/sqlite/url-parser.d.ts +34 -0
  23. package/dist/adapters/sqlite/url-parser.d.ts.map +1 -0
  24. package/dist/adapters/sqlite/url-parser.js +73 -0
  25. package/dist/adapters/sqlite/url-parser.js.map +1 -0
  26. package/dist/adapters/types.d.ts +10 -113
  27. package/dist/adapters/types.d.ts.map +1 -1
  28. package/dist/config/loader.d.ts.map +1 -1
  29. package/dist/config/loader.js.map +1 -1
  30. package/dist/server.d.ts.map +1 -1
  31. package/dist/server.js +31 -20
  32. package/dist/server.js.map +1 -1
  33. package/dist/tools/describe-table.d.ts +5 -6
  34. package/dist/tools/describe-table.d.ts.map +1 -1
  35. package/dist/tools/describe-table.js +65 -9
  36. package/dist/tools/describe-table.js.map +1 -1
  37. package/dist/tools/execute.d.ts +5 -6
  38. package/dist/tools/execute.d.ts.map +1 -1
  39. package/dist/tools/execute.js +13 -11
  40. package/dist/tools/execute.js.map +1 -1
  41. package/dist/tools/explain.d.ts +5 -10
  42. package/dist/tools/explain.d.ts.map +1 -1
  43. package/dist/tools/explain.js +25 -26
  44. package/dist/tools/explain.js.map +1 -1
  45. package/dist/tools/list-databases.d.ts +5 -7
  46. package/dist/tools/list-databases.d.ts.map +1 -1
  47. package/dist/tools/list-databases.js +31 -0
  48. package/dist/tools/list-databases.js.map +1 -1
  49. package/dist/tools/list-tables.d.ts +5 -10
  50. package/dist/tools/list-tables.d.ts.map +1 -1
  51. package/dist/tools/list-tables.js +27 -9
  52. package/dist/tools/list-tables.js.map +1 -1
  53. package/dist/tools/query.d.ts +1 -6
  54. package/dist/tools/query.d.ts.map +1 -1
  55. package/dist/tools/query.js +7 -27
  56. package/dist/tools/query.js.map +1 -1
  57. package/dist/types.d.ts +39 -5
  58. package/dist/types.d.ts.map +1 -1
  59. package/dist/utils/formatter.d.ts +7 -4
  60. package/dist/utils/formatter.d.ts.map +1 -1
  61. package/dist/utils/formatter.js +20 -10
  62. package/dist/utils/formatter.js.map +1 -1
  63. package/dist/utils/sql-parser.d.ts +51 -0
  64. package/dist/utils/sql-parser.d.ts.map +1 -0
  65. package/dist/utils/sql-parser.js +310 -0
  66. package/dist/utils/sql-parser.js.map +1 -0
  67. package/dist/utils/truncate.d.ts +4 -13
  68. package/dist/utils/truncate.d.ts.map +1 -1
  69. package/dist/utils/truncate.js +38 -18
  70. package/dist/utils/truncate.js.map +1 -1
  71. package/dist/utils/validation.d.ts +35 -0
  72. package/dist/utils/validation.d.ts.map +1 -0
  73. package/dist/utils/validation.js +89 -0
  74. package/dist/utils/validation.js.map +1 -0
  75. package/package.json +10 -11
@@ -6,11 +6,13 @@
6
6
  */
7
7
  import * as mysql from 'mysql2/promise';
8
8
  import { DbMcpError, ErrorCode } from '../../utils/errors.js';
9
+ import { injectLimit as sharedInjectLimit, parseQuery as sharedParseQuery, validateQueryForTool as sharedValidateQueryForTool, } from '../../utils/sql-parser.js';
9
10
  // ─────────────────────────────────────────────────────────────────────────────
10
11
  // SQL Dialect helpers (formerly in dialect.ts)
11
12
  // ─────────────────────────────────────────────────────────────────────────────
12
13
  /**
13
14
  * MySQL-specific dangerous patterns
15
+ * These patterns bypass parser-level detection and need raw SQL matching
14
16
  */
15
17
  const DANGEROUS_MYSQL_PATTERNS = [
16
18
  {
@@ -30,161 +32,6 @@ const DANGEROUS_MYSQL_PATTERNS = [
30
32
  reason: 'LOAD_FILE() function is not allowed (file system read)',
31
33
  },
32
34
  ];
33
- /**
34
- * Standard dangerous SQL operations (DDL/DCL)
35
- */
36
- const DANGEROUS_PREFIXES = [
37
- 'DROP',
38
- 'TRUNCATE',
39
- 'ALTER',
40
- 'CREATE',
41
- 'GRANT',
42
- 'REVOKE',
43
- 'RENAME',
44
- ];
45
- /**
46
- * Strip SQL comments from a query
47
- */
48
- function stripComments(sql) {
49
- let result = '';
50
- let i = 0;
51
- const len = sql.length;
52
- while (i < len) {
53
- const char = sql[i];
54
- const nextChar = sql[i + 1];
55
- // Handle strings - preserve content inside quotes
56
- if (char === "'" || char === '"' || char === '`') {
57
- const quote = char;
58
- result += char;
59
- i++;
60
- while (i < len) {
61
- const c = sql[i];
62
- result += c;
63
- i++;
64
- if (c === '\\' && i < len) {
65
- result += sql[i];
66
- i++;
67
- }
68
- else if (c === quote) {
69
- if (sql[i] === quote) {
70
- result += sql[i];
71
- i++;
72
- }
73
- else {
74
- break;
75
- }
76
- }
77
- }
78
- continue;
79
- }
80
- // Handle single-line comment: --
81
- if (char === '-' && nextChar === '-') {
82
- i += 2;
83
- while (i < len && sql[i] !== '\n') {
84
- i++;
85
- }
86
- result += ' ';
87
- continue;
88
- }
89
- // Handle single-line comment: # (MySQL-specific)
90
- if (char === '#') {
91
- i++;
92
- while (i < len && sql[i] !== '\n') {
93
- i++;
94
- }
95
- result += ' ';
96
- continue;
97
- }
98
- // Handle multi-line comment: /* */
99
- if (char === '/' && nextChar === '*') {
100
- i += 2;
101
- while (i < len - 1) {
102
- if (sql[i] === '*' && sql[i + 1] === '/') {
103
- i += 2;
104
- break;
105
- }
106
- i++;
107
- }
108
- result += ' ';
109
- continue;
110
- }
111
- result += char;
112
- i++;
113
- }
114
- return result;
115
- }
116
- /**
117
- * String-aware statement splitting
118
- */
119
- function splitStatements(sql) {
120
- const statements = [];
121
- let current = '';
122
- let i = 0;
123
- const len = sql.length;
124
- while (i < len) {
125
- const char = sql[i];
126
- // Handle strings - don't split inside quotes
127
- if (char === "'" || char === '"' || char === '`') {
128
- const quote = char;
129
- current += char;
130
- i++;
131
- while (i < len) {
132
- const c = sql[i];
133
- current += c;
134
- i++;
135
- if (c === '\\' && i < len) {
136
- current += sql[i];
137
- i++;
138
- }
139
- else if (c === quote) {
140
- if (sql[i] === quote) {
141
- current += sql[i];
142
- i++;
143
- }
144
- else {
145
- break;
146
- }
147
- }
148
- }
149
- continue;
150
- }
151
- // Handle semicolon - split point
152
- if (char === ';') {
153
- const trimmed = current.trim();
154
- if (trimmed.length > 0) {
155
- statements.push(trimmed);
156
- }
157
- current = '';
158
- i++;
159
- continue;
160
- }
161
- current += char;
162
- i++;
163
- }
164
- const trimmed = current.trim();
165
- if (trimmed.length > 0) {
166
- statements.push(trimmed);
167
- }
168
- return statements;
169
- }
170
- /**
171
- * Detect query type from normalized SQL
172
- */
173
- function detectQueryType(normalizedSql) {
174
- if (normalizedSql.startsWith('SELECT') || normalizedSql.startsWith('WITH')) {
175
- return 'select';
176
- }
177
- if (normalizedSql.startsWith('INSERT')) {
178
- return 'insert';
179
- }
180
- if (normalizedSql.startsWith('UPDATE')) {
181
- return 'update';
182
- }
183
- if (normalizedSql.startsWith('DELETE')) {
184
- return 'delete';
185
- }
186
- return 'other';
187
- }
188
35
  /**
189
36
  * Check if SQL contains dangerous MySQL-specific patterns
190
37
  */
@@ -196,29 +43,6 @@ function checkMySqlDangerousPatterns(sql) {
196
43
  }
197
44
  return { isDangerous: false };
198
45
  }
199
- /**
200
- * Check if SQL starts with a dangerous prefix (DDL/DCL)
201
- */
202
- function checkDangerousPrefix(normalizedSql) {
203
- for (const prefix of DANGEROUS_PREFIXES) {
204
- if (normalizedSql.startsWith(prefix + ' ') ||
205
- normalizedSql.startsWith(prefix + '\t') ||
206
- normalizedSql.startsWith(prefix + '\n') ||
207
- normalizedSql === prefix) {
208
- return {
209
- isDangerous: true,
210
- reason: `${prefix} statements are not allowed`,
211
- };
212
- }
213
- }
214
- return { isDangerous: false };
215
- }
216
- /**
217
- * Check if a SELECT query has a LIMIT clause
218
- */
219
- function hasLimitClause(sql) {
220
- return /\bLIMIT\s+\d+/i.test(sql);
221
- }
222
46
  /**
223
47
  * MySQL database adapter
224
48
  *
@@ -232,9 +56,6 @@ export class MySqlAdapter {
232
56
  this.connectionUrl = config.database.url;
233
57
  this.timeout = config.defaults.timeout;
234
58
  }
235
- /**
236
- * Get the default schema name for MySQL (database name from URL)
237
- */
238
59
  getDefaultSchema() {
239
60
  try {
240
61
  const url = new URL(this.connectionUrl);
@@ -247,23 +68,9 @@ export class MySqlAdapter {
247
68
  // ─────────────────────────────────────────────────────────────────────────────
248
69
  // SQL Dialect methods
249
70
  // ─────────────────────────────────────────────────────────────────────────────
250
- /**
251
- * Parse and validate a SQL query
252
- */
253
71
  parseQuery(sql) {
254
- const withoutComments = stripComments(sql);
255
- const statements = splitStatements(withoutComments);
256
- if (statements.length === 0) {
257
- throw new DbMcpError(ErrorCode.INVALID_SQL, 'No valid SQL statement found', {
258
- sql,
259
- });
260
- }
261
- if (statements.length > 1) {
262
- throw new DbMcpError(ErrorCode.MULTI_STATEMENT, 'Multiple SQL statements are not allowed. Please provide a single statement.', { sql, statementCount: statements.length });
263
- }
264
- const statement = statements[0];
265
- const normalizedSql = statement.trim().toUpperCase();
266
- const mysqlDanger = checkMySqlDangerousPatterns(statement);
72
+ // First check for MySQL-specific dangerous patterns (before parsing)
73
+ const mysqlDanger = checkMySqlDangerousPatterns(sql);
267
74
  if (mysqlDanger.isDangerous) {
268
75
  return {
269
76
  type: 'other',
@@ -273,69 +80,20 @@ export class MySqlAdapter {
273
80
  sql,
274
81
  };
275
82
  }
276
- const prefixDanger = checkDangerousPrefix(normalizedSql);
277
- if (prefixDanger.isDangerous) {
278
- return {
279
- type: 'other',
280
- hasLimit: false,
281
- isDangerous: true,
282
- dangerousReason: prefixDanger.reason,
283
- sql,
284
- };
285
- }
286
- const queryType = detectQueryType(normalizedSql);
287
- const hasLimit = queryType === 'select' ? hasLimitClause(statement) : false;
288
- return {
289
- type: queryType,
290
- hasLimit,
291
- isDangerous: false,
292
- sql,
293
- };
83
+ // Use shared parser for standard validation
84
+ return sharedParseQuery(sql, 'MySQL');
294
85
  }
295
- /**
296
- * Inject a LIMIT clause into a SELECT query if it doesn't have one
297
- */
298
86
  injectLimit(sql, limit) {
299
- if (hasLimitClause(sql)) {
300
- return sql;
301
- }
302
- const trimmed = sql.replace(/;\s*$/, '').trim();
303
- return `${trimmed} LIMIT ${limit}`;
87
+ return sharedInjectLimit(sql, limit, 'MySQL');
304
88
  }
305
- /**
306
- * Validate that a SQL query is appropriate for a specific tool
307
- */
308
89
  validateQueryForTool(sql, tool) {
309
90
  const parsed = this.parseQuery(sql);
310
- if (tool === 'query') {
311
- if (parsed.type !== 'select') {
312
- throw new DbMcpError(ErrorCode.QUERY_BLOCKED, 'The query tool only accepts SELECT statements. Use the execute tool for ' +
313
- parsed.type.toUpperCase() +
314
- ' statements.', { sql, queryType: parsed.type, tool });
315
- }
316
- }
317
- else if (tool === 'execute') {
318
- if (parsed.type === 'select') {
319
- throw new DbMcpError(ErrorCode.QUERY_BLOCKED, 'The execute tool does not accept SELECT statements. Use the query tool instead.', { sql, queryType: parsed.type, tool });
320
- }
321
- if (parsed.isDangerous) {
322
- throw new DbMcpError(ErrorCode.QUERY_BLOCKED, parsed.dangerousReason ?? 'This operation is not allowed', { sql, queryType: parsed.type, tool });
323
- }
324
- const allowedTypes = ['insert', 'update', 'delete'];
325
- if (!allowedTypes.includes(parsed.type)) {
326
- throw new DbMcpError(ErrorCode.QUERY_BLOCKED, 'The execute tool only accepts INSERT, UPDATE, or DELETE statements.', { sql, queryType: parsed.type, tool });
327
- }
328
- }
91
+ sharedValidateQueryForTool(parsed, tool);
329
92
  }
330
- /**
331
- * Get the EXPLAIN prefix for MySQL
332
- */
333
93
  getExplainPrefix(analyze) {
334
94
  return analyze ? 'EXPLAIN ANALYZE ' : 'EXPLAIN ';
335
95
  }
336
- /**
337
- * Convert PostgreSQL-style placeholders ($1, $2) to MySQL-style (?)
338
- */
96
+ /** Convert $1, $2 placeholders to ? for MySQL */
339
97
  convertPlaceholders(sql) {
340
98
  return sql.replace(/\$\d+/g, '?');
341
99
  }
@@ -343,6 +101,10 @@ export class MySqlAdapter {
343
101
  * Execute a function with a managed MySQL connection
344
102
  */
345
103
  async withConnection(fn) {
104
+ // Validate timeout before creating connection (SET command doesn't support parameters)
105
+ if (!Number.isInteger(this.timeout) || this.timeout < 0) {
106
+ throw new DbMcpError(ErrorCode.CONNECTION_FAILED, `Invalid timeout value: ${this.timeout}`);
107
+ }
346
108
  let connection;
347
109
  try {
348
110
  connection = await mysql.createConnection(this.connectionUrl);
@@ -353,21 +115,12 @@ export class MySqlAdapter {
353
115
  });
354
116
  }
355
117
  try {
356
- // SET command doesn't support parameterized queries, so validate timeout first
357
- if (!Number.isInteger(this.timeout) || this.timeout < 0) {
358
- throw new DbMcpError(ErrorCode.CONNECTION_FAILED, `Invalid timeout value: ${this.timeout}`);
359
- }
360
- // Try to set max_execution_time (MySQL 5.7.8+)
361
- // Gracefully handle older versions that don't support it
362
118
  try {
363
119
  await connection.execute(`SET max_execution_time = ${this.timeout}`);
364
120
  }
365
- catch (error) {
366
- // Silently ignore if max_execution_time is not supported (older MySQL)
367
- // The query will still run, just without execution timeout
368
- // Log for debugging purposes would go here in production
121
+ catch {
122
+ // max_execution_time not supported (MySQL < 5.7.8)
369
123
  }
370
- // Create connection wrapper and execute user function
371
124
  const adapter = new MySqlConnection(connection);
372
125
  return await fn(adapter);
373
126
  }
@@ -375,12 +128,8 @@ export class MySqlAdapter {
375
128
  await connection.end();
376
129
  }
377
130
  }
378
- /**
379
- * Clean up resources (no persistent resources in this adapter)
380
- */
381
131
  async dispose() {
382
- // No persistent resources to clean up
383
- // Each connection is created and destroyed per request
132
+ // No persistent connections to clean up
384
133
  }
385
134
  }
386
135
  /**
@@ -394,9 +143,6 @@ class MySqlConnection {
394
143
  constructor(conn) {
395
144
  this.conn = conn;
396
145
  }
397
- /**
398
- * Execute a parameterized query using prepared statements
399
- */
400
146
  async query(sql, params) {
401
147
  const [result, fields] = await this.conn.execute(sql, params ?? []);
402
148
  // For non-SELECT queries (INSERT/UPDATE/DELETE), fields is undefined
@@ -419,9 +165,6 @@ class MySqlConnection {
419
165
  rowCount: rows.length,
420
166
  };
421
167
  }
422
- /**
423
- * Execute a raw SQL statement (for BEGIN, COMMIT, ROLLBACK)
424
- */
425
168
  async execute(sql) {
426
169
  await this.conn.query(sql);
427
170
  }
@@ -429,8 +172,12 @@ class MySqlConnection {
429
172
  * List tables in a MySQL database (schema = database in MySQL terminology)
430
173
  *
431
174
  * Uses information_schema.TABLES for table metadata.
175
+ * Note: LIMIT is interpolated (not parameterized) because MySQL prepared
176
+ * statements don't support LIMIT as a parameter. The value is validated
177
+ * as a number so this is safe.
432
178
  */
433
- async listTables(schema, _maxTables) {
179
+ async listTables(schema, maxTables) {
180
+ const limit = Math.max(1, Math.floor(maxTables)) + 1;
434
181
  const sql = `
435
182
  SELECT
436
183
  TABLE_NAME as name,
@@ -440,9 +187,11 @@ class MySqlConnection {
440
187
  FROM information_schema.TABLES
441
188
  WHERE TABLE_SCHEMA = ?
442
189
  ORDER BY TABLE_NAME
190
+ LIMIT ${limit}
443
191
  `;
444
192
  const [rows] = await this.conn.execute(sql, [schema]);
445
- const tables = rows.map((row) => ({
193
+ const truncated = rows.length > maxTables;
194
+ const tables = rows.slice(0, maxTables).map((row) => ({
446
195
  name: row.name,
447
196
  schema: row.schema,
448
197
  type: row.type,
@@ -450,7 +199,8 @@ class MySqlConnection {
450
199
  }));
451
200
  return {
452
201
  tables,
453
- totalAvailable: tables.length,
202
+ truncated,
203
+ totalAvailable: truncated ? rows.length : tables.length,
454
204
  };
455
205
  }
456
206
  /**
@@ -515,7 +265,6 @@ class MySqlConnection {
515
265
  const [columnsRows] = columnsResult;
516
266
  const [indexesRows] = indexesResult;
517
267
  const [foreignKeysRows] = foreignKeysResult;
518
- // Build columns array
519
268
  const allColumns = columnsRows.map((row) => ({
520
269
  name: row.name,
521
270
  type: row.type,
@@ -523,14 +272,12 @@ class MySqlConnection {
523
272
  default: row.default,
524
273
  primaryKey: Boolean(row.primaryKey),
525
274
  }));
526
- // Build indexes array
527
275
  const allIndexes = indexesRows.map((row) => ({
528
276
  name: row.name,
529
- columns: row.columns.split(','),
277
+ columns: row.columns ? String(row.columns).split(',').filter(Boolean) : [],
530
278
  unique: Boolean(row.unique),
531
279
  primary: Boolean(row.primary),
532
280
  }));
533
- // Build foreign keys array
534
281
  const foreignKeys = foreignKeysRows.map((row) => ({
535
282
  column: row.column,
536
283
  references: {
@@ -538,7 +285,6 @@ class MySqlConnection {
538
285
  column: row.ref_column,
539
286
  },
540
287
  }));
541
- // Apply limits and track truncation
542
288
  let truncated = false;
543
289
  const truncationReasons = [];
544
290
  const columns = allColumns.length > limits.maxColumns
@@ -562,6 +308,4 @@ class MySqlConnection {
562
308
  };
563
309
  }
564
310
  }
565
- // Export helper functions for testing
566
- export { stripComments, splitStatements };
567
311
  //# sourceMappingURL=adapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/adapters/mysql/adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/adapters/mysql/adapter.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  * Implements DatabaseAdapter interface for PostgreSQL databases.
5
5
  * Uses node-postgres (pg) driver with per-request connection recycling.
6
6
  */
7
- import type { DatabaseAdapter, AdapterConnection, AdapterConfig } from '../types.js';
7
+ import type { AdapterConfig, AdapterConnection, DatabaseAdapter } from '../types.js';
8
8
  import type { ParsedQuery } from '../../types.js';
9
9
  /**
10
10
  * PostgreSQL database adapter
@@ -16,37 +16,17 @@ export declare class PostgreSqlAdapter implements DatabaseAdapter {
16
16
  private readonly connectionUrl;
17
17
  private readonly timeout;
18
18
  constructor(config: AdapterConfig);
19
- /**
20
- * Get the default schema name for PostgreSQL
21
- */
22
19
  getDefaultSchema(): string;
23
- /**
24
- * Parse and validate a SQL query
25
- */
26
20
  parseQuery(sql: string): ParsedQuery;
27
- /**
28
- * Inject a LIMIT clause into a SELECT query if it doesn't have one
29
- */
30
21
  injectLimit(sql: string, limit: number): string;
31
- /**
32
- * Validate that a SQL query is appropriate for a specific tool
33
- */
34
22
  validateQueryForTool(sql: string, tool: 'query' | 'execute'): void;
35
- /**
36
- * Get the EXPLAIN prefix for PostgreSQL
37
- */
38
23
  getExplainPrefix(analyze: boolean): string;
39
- /**
40
- * Convert placeholders - no-op for PostgreSQL (already uses $1, $2, $3)
41
- */
24
+ /** No-op for PostgreSQL (already uses $1, $2 placeholders) */
42
25
  convertPlaceholders(sql: string): string;
43
26
  /**
44
27
  * Execute a function with a managed PostgreSQL connection
45
28
  */
46
29
  withConnection<T>(fn: (conn: AdapterConnection) => Promise<T>): Promise<T>;
47
- /**
48
- * Clean up resources (no persistent resources in this adapter)
49
- */
50
30
  dispose(): Promise<void>;
51
31
  }
52
32
  //# sourceMappingURL=adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/postgresql/adapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EAEjB,aAAa,EAEd,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EACV,WAAW,EAOZ,MAAM,gBAAgB,CAAC;AA2ExB;;;;GAIG;AACH,qBAAa,iBAAkB,YAAW,eAAe;IACvD,QAAQ,CAAC,IAAI,EAAG,YAAY,CAAU;IAEtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,MAAM,EAAE,aAAa;IAKjC;;OAEG;IACH,gBAAgB,IAAI,MAAM;IAQ1B;;OAEG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW;IAgDpC;;OAEG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAkC/C;;OAEG;IACH,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI;IAyClE;;OAEG;IACH,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM;IAI1C;;OAEG;IACH,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAIxC;;OAEG;IACG,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAoChF;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAI/B"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/postgresql/adapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EACV,aAAa,EACb,iBAAiB,EACjB,eAAe,EAGhB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAIV,WAAW,EAGZ,MAAM,gBAAgB,CAAC;AASxB;;;;GAIG;AACH,qBAAa,iBAAkB,YAAW,eAAe;IACvD,QAAQ,CAAC,IAAI,EAAG,YAAY,CAAU;IAEtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,MAAM,EAAE,aAAa;IAKjC,gBAAgB,IAAI,MAAM;IAQ1B,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW;IAIpC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAI/C,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI;IAKlE,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM;IAI1C,8DAA8D;IAC9D,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAIxC;;OAEG;IACG,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAmC1E,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/B"}