dbgraph 0.1.2 → 0.1.4

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.ZH-cn.md CHANGED
@@ -43,6 +43,59 @@ npx dbgraph serve
43
43
 
44
44
  AI 代理连接 MCP 后自动发现 `dbgraph_*` 工具,用于 schema 感知的 SQL 生成。
45
45
 
46
+ ## MCP 配置
47
+
48
+ 在 AI 代理的配置文件中添加 DBGraph 作为 MCP 服务器:
49
+
50
+ **opencode**(`~/.config/opencode/opencode.json`):
51
+ ```json
52
+ {
53
+ "mcp": {
54
+ "dbgraph": {
55
+ "type": "local",
56
+ "command": ["npx", "dbgraph", "serve", "--auto-refresh"],
57
+ "enabled": true
58
+ }
59
+ }
60
+ }
61
+ ```
62
+
63
+ **Cursor** → 设置 → MCP Servers → 添加:
64
+ ```json
65
+ {
66
+ "mcpServers": {
67
+ "dbgraph": {
68
+ "command": "npx",
69
+ "args": ["dbgraph", "serve", "--auto-refresh"]
70
+ }
71
+ }
72
+ }
73
+ ```
74
+
75
+ **Claude Code**(`~/.claude/settings.json`):
76
+ ```json
77
+ {
78
+ "mcpServers": {
79
+ "dbgraph": {
80
+ "command": "npx",
81
+ "args": ["dbgraph", "serve", "--auto-refresh"]
82
+ }
83
+ }
84
+ }
85
+ ```
86
+
87
+ **Codex CLI**(`~/.codexclirc.json`):
88
+ ```json
89
+ {
90
+ "mcpServers": {
91
+ "dbgraph": {
92
+ "type": "local",
93
+ "command": ["npx", "dbgraph", "serve", "--auto-refresh"]
94
+ }
95
+ }
96
+ }
97
+ ```
98
+
46
99
  ## 为什么用 DBGraph?
47
100
 
48
101
  LLM 写 SQL 出错的最大原因是**不知道库表结构**——表名靠猜、列名靠蒙、JOIN 条件靠碰运气。DBGraph 把数据库 schema(表、列、类型、外键、约束、索引)提取为**可搜索的知识图谱**存在 `.dbgraph/` 中。AI 代理通过 MCP 工具直接查询,无需数据库直连。
package/README.md CHANGED
@@ -43,6 +43,59 @@ npx dbgraph serve
43
43
 
44
44
  AI agents connected to MCP automatically discover `dbgraph_*` tools for schema-aware SQL generation.
45
45
 
46
+ ## MCP Configuration
47
+
48
+ Add DBGraph as an MCP server in your agent's config:
49
+
50
+ **opencode** (`~/.config/opencode/opencode.json`):
51
+ ```json
52
+ {
53
+ "mcp": {
54
+ "dbgraph": {
55
+ "type": "local",
56
+ "command": ["npx", "dbgraph", "serve", "--auto-refresh"],
57
+ "enabled": true
58
+ }
59
+ }
60
+ }
61
+ ```
62
+
63
+ **Cursor** → Settings → MCP Servers → Add:
64
+ ```json
65
+ {
66
+ "mcpServers": {
67
+ "dbgraph": {
68
+ "command": "npx",
69
+ "args": ["dbgraph", "serve", "--auto-refresh"]
70
+ }
71
+ }
72
+ }
73
+ ```
74
+
75
+ **Claude Code** (`~/.claude/settings.json`):
76
+ ```json
77
+ {
78
+ "mcpServers": {
79
+ "dbgraph": {
80
+ "command": "npx",
81
+ "args": ["dbgraph", "serve", "--auto-refresh"]
82
+ }
83
+ }
84
+ }
85
+ ```
86
+
87
+ **Codex CLI** (`~/.codexclirc.json`):
88
+ ```json
89
+ {
90
+ "mcpServers": {
91
+ "dbgraph": {
92
+ "type": "local",
93
+ "command": ["npx", "dbgraph", "serve", "--auto-refresh"]
94
+ }
95
+ }
96
+ }
97
+ ```
98
+
46
99
  ## Why DBGraph?
47
100
 
48
101
  LLMs write wrong SQL because they **don't know your schema** — guessing table names, column names, and JOIN conditions. DBGraph extracts your complete database schema (tables, columns, types, foreign keys, constraints, indexes) into a **searchable knowledge graph** stored in `.dbgraph/`. AI agents query it via MCP tools directly — no live database connection needed.
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,kBAAkB,EAAY,MAAM,SAAS,CAAC;AAGvD,eAAO,MAAM,eAAe,oBAAoB,CAAC;AAEjD,MAAM,WAAW,aAAa;IAC5B,iDAAiD;IACjD,SAAS,EAAE,kBAAkB,EAAE,CAAC;CACjC;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAe/D;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,CAiE5D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CA2B9C"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,kBAAkB,EAAY,MAAM,SAAS,CAAC;AAGvD,eAAO,MAAM,eAAe,oBAAoB,CAAC;AAEjD,MAAM,WAAW,aAAa;IAC5B,iDAAiD;IACjD,SAAS,EAAE,kBAAkB,EAAE,CAAC;CACjC;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAe/D;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,CAmE5D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CA2B9C"}
package/dist/config.js CHANGED
@@ -123,7 +123,9 @@ function loadConfig(configPath) {
123
123
  schemas: db.schemas,
124
124
  path: db.path,
125
125
  auth: db.auth,
126
+ authType: db.authType,
126
127
  ssl: db.ssl,
128
+ tlsInsecure: db.tlsInsecure,
127
129
  });
128
130
  }
129
131
  return { databases: validated };
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/introspect/base.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,gBAAgB,EAChB,QAAQ,EACR,kBAAkB,EAClB,IAAI,EACJ,QAAQ,EACR,IAAI,EACJ,QAAQ,EACT,MAAM,UAAU,CAAC;AAIlB;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,kDAAkD;IAClD,UAAU,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAExC,uCAAuC;IACvC,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAEnC,qDAAqD;IACrD,aAAa,IAAI,MAAM,CAAC;IAExB,gCAAgC;IAChC,WAAW,IAAI,MAAM,CAAC;IAEtB,sCAAsC;IACtC,SAAS,IAAI,QAAQ,CAAC;CACvB;AAED;;;;;;;;;GASG;AACH,8BAAsB,gBAAiB,YAAW,YAAY;IAChD,SAAS,CAAC,MAAM,EAAE,kBAAkB;gBAA1B,MAAM,EAAE,kBAAkB;IAIhD,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAEhD,SAAS,IAAI,QAAQ;IAIrB,WAAW,IAAI,MAAM;IAIrB,aAAa,IAAI,MAAM;IAUjB,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAYxC,+EAA+E;IAC/E,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAIhD,iEAAiE;IACjE,SAAS,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM;IAIxC,sDAAsD;IACtD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAIzD,8DAA8D;IAC9D,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAM1E;;OAEG;IACH,SAAS,CAAC,QAAQ,CAChB,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GACpB,IAAI;IAeP;;OAEG;IACH,SAAS,CAAC,QAAQ,CAChB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,QAAQ,EACd,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,IAAI;IAUP,gDAAgD;IAChD,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;CAG/D"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/introspect/base.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,gBAAgB,EAChB,QAAQ,EACR,kBAAkB,EAClB,IAAI,EACJ,QAAQ,EACR,IAAI,EACJ,QAAQ,EACT,MAAM,UAAU,CAAC;AAIlB;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,kDAAkD;IAClD,UAAU,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAExC,uCAAuC;IACvC,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAEnC,qDAAqD;IACrD,aAAa,IAAI,MAAM,CAAC;IAExB,gCAAgC;IAChC,WAAW,IAAI,MAAM,CAAC;IAEtB,sCAAsC;IACtC,SAAS,IAAI,QAAQ,CAAC;CACvB;AAED;;;;;;;;;GASG;AACH,8BAAsB,gBAAiB,YAAW,YAAY;IAChD,SAAS,CAAC,MAAM,EAAE,kBAAkB;gBAA1B,MAAM,EAAE,kBAAkB;IAIhD,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAEhD,SAAS,IAAI,QAAQ;IAIrB,WAAW,IAAI,MAAM;IAIrB,aAAa,IAAI,MAAM;IAiBjB,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAYxC,+EAA+E;IAC/E,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAIhD,iEAAiE;IACjE,SAAS,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM;IAIxC,sDAAsD;IACtD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAIzD,8DAA8D;IAC9D,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAM1E;;OAEG;IACH,SAAS,CAAC,QAAQ,CAChB,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GACpB,IAAI;IAeP;;OAEG;IACH,SAAS,CAAC,QAAQ,CAChB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,QAAQ,EACd,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,IAAI;IAUP,gDAAgD;IAChD,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;CAG/D"}
@@ -37,7 +37,14 @@ class BaseIntrospector {
37
37
  return `${this.config.engine}:${this.config.path}`;
38
38
  }
39
39
  const h = this.config.host || 'localhost';
40
- const defaultPort = this.config.engine === 'postgresql' ? 5432 : 3306;
40
+ const defaultPorts = {
41
+ postgresql: 5432,
42
+ mysql: 3306,
43
+ mariadb: 3306,
44
+ mssql: 1433,
45
+ mongodb: 27017,
46
+ };
47
+ const defaultPort = defaultPorts[this.config.engine] ?? 3306;
41
48
  const p = this.config.port || defaultPort;
42
49
  return `${this.config.engine}://${h}:${p}/${this.config.database}`;
43
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/introspect/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/introspect/base.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,10 @@ export interface DBConnection {
12
12
  /** Close the connection / release pool resources */
13
13
  close(): Promise<void>;
14
14
  }
15
+ export declare function parseAuth(auth?: string): {
16
+ user?: string;
17
+ password?: string;
18
+ };
15
19
  /**
16
20
  * Create a DBConnection for the given config.
17
21
  *
@@ -19,6 +23,7 @@ export interface DBConnection {
19
23
  * - `postgresql` — via the `pg` package
20
24
  * - `mysql` / `mariadb` — via the `mysql2` package
21
25
  * - `sqlite` — via built-in `node:sqlite` (Node >= 22.5)
26
+ * - `mssql` — via the `mssql` package
22
27
  *
23
28
  * @throws ConnectionError if the driver is unavailable or the connection fails.
24
29
  */
@@ -1 +1 @@
1
- {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/introspect/connection.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAO9C,MAAM,WAAW,YAAY;IAC3B,qDAAqD;IACrD,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACnD,oDAAoD;IACpD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AA+OD;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC,CAexF;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAQ7E"}
1
+ {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/introspect/connection.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAO9C,MAAM,WAAW,YAAY;IAC3B,qDAAqD;IACrD,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACnD,oDAAoD;IACpD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAMD,wBAAgB,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAK7E;AA8WD;;;;;;;;;;GAUG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC,CAiBxF;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAQ7E"}
@@ -7,6 +7,7 @@
7
7
  * deps fail at connect() time, not at module load time.
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.parseAuth = parseAuth;
10
11
  exports.createConnection = createConnection;
11
12
  exports.tryConnect = tryConnect;
12
13
  const errors_1 = require("../errors");
@@ -191,6 +192,119 @@ class SQLiteConnection {
191
192
  }
192
193
  }
193
194
  // =============================================================================
195
+ // MSSQL Connection (mssql — wraps tedious)
196
+ // =============================================================================
197
+ let mssqlModule;
198
+ try {
199
+ mssqlModule = require('mssql');
200
+ }
201
+ catch {
202
+ /* handled at connect() time */
203
+ }
204
+ let msnodesqlModule;
205
+ try {
206
+ msnodesqlModule = require('mssql/msnodesqlv8');
207
+ }
208
+ catch {
209
+ /* handled at connect() time */
210
+ }
211
+ class MSSQLConnection {
212
+ pool;
213
+ constructor(pool) {
214
+ this.pool = pool;
215
+ }
216
+ static async create(config) {
217
+ if (config.authType === 'integrated') {
218
+ // Windows Integrated Authentication — uses current Windows user
219
+ if (!msnodesqlModule) {
220
+ throw new errors_1.ConnectionError(`msnodesqlv8 package is not installed.\n` +
221
+ `Windows Integrated Auth requires: npm install msnodesqlv8`, config.alias);
222
+ }
223
+ const mssqlConfig = {
224
+ server: config.host || 'localhost',
225
+ port: config.port || 1433,
226
+ database: config.database,
227
+ options: {
228
+ trustedConnection: true,
229
+ encrypt: config.ssl || false,
230
+ trustServerCertificate: config.ssl || false,
231
+ },
232
+ connectionTimeout: 10_000,
233
+ pool: {
234
+ max: 2,
235
+ min: 0,
236
+ idleTimeoutMillis: 30_000,
237
+ },
238
+ };
239
+ try {
240
+ const pool = new msnodesqlModule.ConnectionPool(mssqlConfig);
241
+ await pool.connect();
242
+ return new MSSQLConnection(pool);
243
+ }
244
+ catch (err) {
245
+ throw new errors_1.ConnectionError(`Failed to connect to MSSQL at ${config.host || 'localhost'}:${config.port || 1433}/${config.database}: ${err.message}`, config.alias, err);
246
+ }
247
+ }
248
+ // Default: SQL Server authentication (user/password)
249
+ if (!mssqlModule) {
250
+ throw new errors_1.ConnectionError(`mssql package is not installed.\n` +
251
+ `Connect to ${config.alias} (${config.engine}) by running: npm install mssql`, config.alias);
252
+ }
253
+ const auth = parseAuth(config.auth);
254
+ const mssqlConfig = {
255
+ server: config.host || 'localhost',
256
+ port: config.port || 1433,
257
+ database: config.database,
258
+ user: auth.user,
259
+ password: auth.password,
260
+ options: {
261
+ encrypt: config.ssl || false,
262
+ trustServerCertificate: config.ssl || false,
263
+ },
264
+ connectionTimeout: 10_000,
265
+ pool: {
266
+ max: 2,
267
+ min: 0,
268
+ idleTimeoutMillis: 30_000,
269
+ },
270
+ };
271
+ try {
272
+ const pool = new mssqlModule.ConnectionPool(mssqlConfig);
273
+ await pool.connect();
274
+ return new MSSQLConnection(pool);
275
+ }
276
+ catch (err) {
277
+ throw new errors_1.ConnectionError(`Failed to connect to MSSQL at ${config.host || 'localhost'}:${config.port || 1433}/${config.database}: ${err.message}`, config.alias, err);
278
+ }
279
+ }
280
+ async query(sql, params) {
281
+ try {
282
+ const request = this.pool.request();
283
+ if (params) {
284
+ let idx = 0;
285
+ // Convert ? placeholders to @p0, @p1, ... named params
286
+ sql = sql.replace(/\?/g, () => `@p${idx++}`);
287
+ for (let i = 0; i < params.length; i++) {
288
+ request.input(`p${i}`, params[i]);
289
+ }
290
+ }
291
+ const result = await request.query(sql);
292
+ return result.recordset;
293
+ }
294
+ catch (err) {
295
+ throw new errors_1.ConnectionError(`Query failed: ${err.message}\nSQL: ${sql.substring(0, 200)}`, 'query', err);
296
+ }
297
+ }
298
+ async close() {
299
+ try {
300
+ await this.pool.close();
301
+ }
302
+ catch {
303
+ /* harmless */
304
+ }
305
+ }
306
+ }
307
+ // =============================================================================
194
308
  // Factory
195
309
  // =============================================================================
196
310
  /**
@@ -200,6 +314,7 @@ class SQLiteConnection {
200
314
  * - `postgresql` — via the `pg` package
201
315
  * - `mysql` / `mariadb` — via the `mysql2` package
202
316
  * - `sqlite` — via built-in `node:sqlite` (Node >= 22.5)
317
+ * - `mssql` — via the `mssql` package
203
318
  *
204
319
  * @throws ConnectionError if the driver is unavailable or the connection fails.
205
320
  */
@@ -212,8 +327,10 @@ async function createConnection(config) {
212
327
  return await MySQLConnection.create(config);
213
328
  case 'sqlite':
214
329
  return SQLiteConnection.create(config);
330
+ case 'mssql':
331
+ return await MSSQLConnection.create(config);
215
332
  default:
216
- throw new errors_1.ConnectionError(`Unsupported engine: "${config.engine}". Supported engines: postgresql, mysql, mariadb, sqlite`, config.alias);
333
+ throw new errors_1.ConnectionError(`Unsupported engine: "${config.engine}". Supported engines: postgresql, mysql, mariadb, sqlite, mssql`, config.alias);
217
334
  }
218
335
  }
219
336
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/introspect/connection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/introspect/connection.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,8 @@
9
9
  * - PostgresIntrospector (postgres.ts)
10
10
  * - MySQLIntrospector (mysql.ts)
11
11
  * - SQLiteIntrospector (sqlite.ts)
12
+ * - MSSQLIntrospector (mssql.ts)
13
+ * - MongoDBIntrospector (mongodb.ts)
12
14
  */
13
15
  import { DbConnectionConfig } from '../types';
14
16
  import { Introspector } from './base';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/introspect/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAI9C,OAAO,EAAE,YAAY,EAAoB,MAAM,QAAQ,CAAC;AAGxD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAMxD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,YAAY,CAe3E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/introspect/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAM9C,OAAO,EAAE,YAAY,EAAoB,MAAM,QAAQ,CAAC;AAGxD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAMxD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,YAAY,CAmB3E"}
@@ -10,6 +10,8 @@
10
10
  * - PostgresIntrospector (postgres.ts)
11
11
  * - MySQLIntrospector (mysql.ts)
12
12
  * - SQLiteIntrospector (sqlite.ts)
13
+ * - MSSQLIntrospector (mssql.ts)
14
+ * - MongoDBIntrospector (mongodb.ts)
13
15
  */
14
16
  Object.defineProperty(exports, "__esModule", { value: true });
15
17
  exports.BaseIntrospector = void 0;
@@ -17,6 +19,8 @@ exports.createIntrospector = createIntrospector;
17
19
  const postgres_1 = require("./postgres");
18
20
  const mysql_1 = require("./mysql");
19
21
  const sqlite_1 = require("./sqlite");
22
+ const mssql_1 = require("./mssql");
23
+ const mongodb_1 = require("./mongodb");
20
24
  // Re-export base types
21
25
  var base_1 = require("./base");
22
26
  Object.defineProperty(exports, "BaseIntrospector", { enumerable: true, get: function () { return base_1.BaseIntrospector; } });
@@ -38,9 +42,13 @@ function createIntrospector(config) {
38
42
  return new mysql_1.MySQLIntrospector(config);
39
43
  case 'sqlite':
40
44
  return new sqlite_1.SQLiteIntrospector(config);
45
+ case 'mssql':
46
+ return new mssql_1.MSSQLIntrospector(config);
47
+ case 'mongodb':
48
+ return new mongodb_1.MongoDBIntrospector(config);
41
49
  default:
42
50
  throw new Error(`Unsupported database engine: "${config.engine}". ` +
43
- `Supported engines: postgresql, mysql, mariadb, sqlite`);
51
+ `Supported engines: postgresql, mysql, mariadb, sqlite, mssql, mongodb`);
44
52
  }
45
53
  }
46
54
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/introspect/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;AAqBH,gDAeC;AAjCD,yCAAkD;AAClD,mCAA4C;AAC5C,qCAA8C;AAG9C,uBAAuB;AACvB,+BAAwD;AAAjC,wGAAA,gBAAgB,OAAA;AAEvC,gFAAgF;AAChF,UAAU;AACV,gFAAgF;AAEhF;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAC,MAA0B;IAC3D,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC;QACtB,KAAK,YAAY;YACf,OAAO,IAAI,+BAAoB,CAAC,MAAM,CAAC,CAAC;QAC1C,KAAK,OAAO,CAAC;QACb,KAAK,SAAS;YACZ,OAAO,IAAI,yBAAiB,CAAC,MAAM,CAAC,CAAC;QACvC,KAAK,QAAQ;YACX,OAAO,IAAI,2BAAkB,CAAC,MAAM,CAAC,CAAC;QACxC;YACE,MAAM,IAAI,KAAK,CACb,iCAAiC,MAAM,CAAC,MAAM,KAAK;gBACnD,uDAAuD,CACxD,CAAC;IACN,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/introspect/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;;AAuBH,gDAmBC;AAvCD,yCAAkD;AAClD,mCAA4C;AAC5C,qCAA8C;AAC9C,mCAA4C;AAC5C,uCAAgD;AAGhD,uBAAuB;AACvB,+BAAwD;AAAjC,wGAAA,gBAAgB,OAAA;AAEvC,gFAAgF;AAChF,UAAU;AACV,gFAAgF;AAEhF;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAC,MAA0B;IAC3D,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC;QACtB,KAAK,YAAY;YACf,OAAO,IAAI,+BAAoB,CAAC,MAAM,CAAC,CAAC;QAC1C,KAAK,OAAO,CAAC;QACb,KAAK,SAAS;YACZ,OAAO,IAAI,yBAAiB,CAAC,MAAM,CAAC,CAAC;QACvC,KAAK,QAAQ;YACX,OAAO,IAAI,2BAAkB,CAAC,MAAM,CAAC,CAAC;QACxC,KAAK,OAAO;YACV,OAAO,IAAI,yBAAiB,CAAC,MAAM,CAAC,CAAC;QACvC,KAAK,SAAS;YACZ,OAAO,IAAI,6BAAmB,CAAC,MAAM,CAAC,CAAC;QACzC;YACE,MAAM,IAAI,KAAK,CACb,iCAAiC,MAAM,CAAC,MAAM,KAAK;gBACnD,uEAAuE,CACxE,CAAC;IACN,CAAC;AACH,CAAC"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * MongoDB Introspector
3
+ *
4
+ * Extracts collections, views, indexes, and schema validation rules
5
+ * from a MongoDB database. No document sampling — field-level schema
6
+ * is inferred from $jsonSchema validation rules only.
7
+ *
8
+ * Connection: manages its own MongoClient lifecycle (does NOT use the
9
+ * SQL-centric createConnection() factory in connection.ts).
10
+ * The driver import is guarded so a missing `mongodb` is reported at
11
+ * connect() time, not at module load time.
12
+ */
13
+ import { IntrospectResult, DbConnectionConfig } from '../types';
14
+ import { BaseIntrospector } from './base';
15
+ export declare class MongoDBIntrospector extends BaseIntrospector {
16
+ constructor(config: DbConnectionConfig);
17
+ /**
18
+ * Override testConnection() — MongoDB does not use the
19
+ * SQL-centric createConnection() factory from connection.ts.
20
+ */
21
+ testConnection(): Promise<boolean>;
22
+ /**
23
+ * Full schema introspection.
24
+ *
25
+ * 1. Connect to MongoDB
26
+ * 2. List collections (collecting regular collections and views)
27
+ * 3. For each collection: indexes + estimatedDocumentCount
28
+ * 4. Build Node[] + Edge[] with schema→collection→index hierarchy
29
+ * 5. Close connection and return IntrospectResult
30
+ */
31
+ extractAll(): Promise<IntrospectResult>;
32
+ /**
33
+ * Lazy-import the mongodb driver and throw a helpful error if absent.
34
+ */
35
+ private importMongoDriver;
36
+ /**
37
+ * Build a MongoDB connection URI from the config.
38
+ * NOTE: encodeURIComponent() is required for passwords containing
39
+ * special characters (@, :, /, ?, #, %). parseAuth() does raw split only.
40
+ */
41
+ private buildUri;
42
+ /**
43
+ * Connect to MongoDB and return the MongoClient.
44
+ */
45
+ private connectClient;
46
+ }
47
+ //# sourceMappingURL=mongodb.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mongodb.d.ts","sourceRoot":"","sources":["../../src/introspect/mongodb.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAGnB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAkB1C,qBAAa,mBAAoB,SAAQ,gBAAgB;gBAC3C,MAAM,EAAE,kBAAkB;IAItC;;;OAGG;IACG,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAUxC;;;;;;;;OAQG;IACG,UAAU,IAAI,OAAO,CAAC,gBAAgB,CAAC;IA6M7C;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAUzB;;;;OAIG;IACH,OAAO,CAAC,QAAQ;IAgBhB;;OAEG;YACW,aAAa;CAU5B"}