dbgraph 0.1.3 → 0.1.5
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 +32 -9
- package/README.md +32 -9
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +2 -0
- package/dist/config.js.map +1 -1
- package/dist/introspect/base.d.ts.map +1 -1
- package/dist/introspect/base.js +8 -1
- package/dist/introspect/base.js.map +1 -1
- package/dist/introspect/connection.d.ts +5 -0
- package/dist/introspect/connection.d.ts.map +1 -1
- package/dist/introspect/connection.js +118 -1
- package/dist/introspect/connection.js.map +1 -1
- package/dist/introspect/index.d.ts +2 -0
- package/dist/introspect/index.d.ts.map +1 -1
- package/dist/introspect/index.js +9 -1
- package/dist/introspect/index.js.map +1 -1
- package/dist/introspect/mongodb.d.ts +51 -0
- package/dist/introspect/mongodb.d.ts.map +1 -0
- package/dist/introspect/mongodb.js +271 -0
- package/dist/introspect/mongodb.js.map +1 -0
- package/dist/introspect/mssql.d.ts +69 -0
- package/dist/introspect/mssql.d.ts.map +1 -0
- package/dist/introspect/mssql.js +409 -0
- package/dist/introspect/mssql.js.map +1 -0
- package/dist/introspect/postgres.d.ts.map +1 -1
- package/dist/introspect/postgres.js +88 -82
- package/dist/introspect/postgres.js.map +1 -1
- package/dist/mcp/tools.js +3 -3
- package/dist/mcp/tools.js.map +1 -1
- package/dist/types.d.ts +6 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/README.ZH-cn.md
CHANGED
|
@@ -13,6 +13,8 @@
|
|
|
13
13
|
[](#支持引擎)
|
|
14
14
|
[](#支持引擎)
|
|
15
15
|
[](#支持引擎)
|
|
16
|
+
[](#支持引擎)
|
|
17
|
+
[](#支持引擎)
|
|
16
18
|
|
|
17
19
|
</div>
|
|
18
20
|
|
|
@@ -173,24 +175,45 @@ npx dbgraph status ./other-project # 其他项目
|
|
|
173
175
|
| 字段 | 类型 | 必填 | 说明 |
|
|
174
176
|
|-------|------|----------|-------------|
|
|
175
177
|
| `alias` | string | 是 | 数据库别名(图谱中以 `db://@alias` 标识)|
|
|
176
|
-
| `engine` | string | 是 | `postgresql` / `mysql` / `mariadb` / `sqlite` |
|
|
178
|
+
| `engine` | string | 是 | `postgresql` / `mysql` / `mariadb` / `sqlite` / `mssql` / `mongodb` |
|
|
177
179
|
| `host` | string | 否 | 主机地址 |
|
|
178
180
|
| `port` | number | 否 | 端口(默认根据引擎判断)|
|
|
179
181
|
| `database` | string | 视情况 | PostgreSQL/MySQL 必填 |
|
|
180
182
|
| `schemas` | string[] | 否 | 要提取的 schema 列表(默认全部)|
|
|
181
183
|
| `path` | string | 视情况 | SQLite 必填 |
|
|
182
184
|
| `auth` | string | 否 | `env:VAR_NAME` 或 `~/.pgpass` |
|
|
183
|
-
| `
|
|
185
|
+
| `authType` | string | 否 | MSSQL 认证方式:`password`(默认)或 `integrated`(Windows 集成认证)|
|
|
186
|
+
| `ssl` | boolean | 否 | 启用 SSL/TLS |
|
|
187
|
+
| `srv` | boolean | 否 | MongoDB:使用 `mongodb+srv://` 协议(Atlas)。忽略端口,强制 TLS。 |
|
|
188
|
+
| `tlsInsecure` | boolean | 否 | MongoDB:允许自签名 TLS 证书 |
|
|
184
189
|
|
|
185
190
|
## 支持引擎
|
|
186
191
|
|
|
187
|
-
| 引擎 | 状态 |
|
|
188
|
-
|
|
189
|
-
| PostgreSQL | ✅ 完整支持 |
|
|
190
|
-
| MySQL / MariaDB | ✅ 完整支持 |
|
|
191
|
-
| SQLite | ✅ 完整支持 |
|
|
192
|
-
| SQL Server |
|
|
193
|
-
|
|
|
192
|
+
| 引擎 | 状态 | 说明 |
|
|
193
|
+
|--------|------|------|
|
|
194
|
+
| PostgreSQL | ✅ 完整支持 | Schema、表、列、主键、外键、索引、视图 |
|
|
195
|
+
| MySQL / MariaDB | ✅ 完整支持 | 同 PostgreSQL 的 schema 模型 |
|
|
196
|
+
| SQLite | ✅ 完整支持 | 单文件数据库,无 schema 层 |
|
|
197
|
+
| SQL Server (MSSQL) | ✅ 完整支持 | 支持 Windows 集成认证(`authType: "integrated"`)|
|
|
198
|
+
| MongoDB | ✅ 完整支持 | 集合、索引、视图、`$jsonSchema` 校验;无列级节点(无 schema 设计使然)|
|
|
199
|
+
| Oracle | 🔜 计划中 | — |
|
|
200
|
+
|
|
201
|
+
## 驱动安装
|
|
202
|
+
|
|
203
|
+
部分数据库引擎需要额外的 npm 包。DBGraph 使用惰性加载,您只需要安装实际使用的引擎驱动:
|
|
204
|
+
|
|
205
|
+
| 引擎 | 安装命令 | 说明 |
|
|
206
|
+
|--------|----------------|-------|
|
|
207
|
+
| PostgreSQL | `npm install pg` | `postgresql` 引擎必需 |
|
|
208
|
+
| MySQL / MariaDB | *(已内置)* | `mysql2` 已默认包含 |
|
|
209
|
+
| SQLite | *(内置)* | 使用 `node:sqlite`(Node.js 22.5+) |
|
|
210
|
+
| SQL Server (MSSQL) | `npm install mssql` | Windows 集成认证还需:`npm install msnodesqlv8` |
|
|
211
|
+
| MongoDB | `npm install mongodb` | 仅有集合级信息,无列级字段(无 schema 设计使然)。支持 SRV(`srv: true`)Atlas 连接 |
|
|
212
|
+
|
|
213
|
+
示例——添加 MSSQL 和 MongoDB 支持:
|
|
214
|
+
```bash
|
|
215
|
+
npm install mssql mongodb
|
|
216
|
+
```
|
|
194
217
|
|
|
195
218
|
## 开发
|
|
196
219
|
|
package/README.md
CHANGED
|
@@ -13,6 +13,8 @@
|
|
|
13
13
|
[](#supported-engines)
|
|
14
14
|
[](#supported-engines)
|
|
15
15
|
[](#supported-engines)
|
|
16
|
+
[](#supported-engines)
|
|
17
|
+
[](#supported-engines)
|
|
16
18
|
|
|
17
19
|
</div>
|
|
18
20
|
|
|
@@ -173,24 +175,45 @@ Edit `dbgraph-db.json` in your project root:
|
|
|
173
175
|
| Field | Type | Required | Description |
|
|
174
176
|
|-------|------|----------|-------------|
|
|
175
177
|
| `alias` | string | yes | Database alias (`db://@alias` in graph) |
|
|
176
|
-
| `engine` | string | yes | `postgresql` / `mysql` / `mariadb` / `sqlite` |
|
|
178
|
+
| `engine` | string | yes | `postgresql` / `mysql` / `mariadb` / `sqlite` / `mssql` / `mongodb` |
|
|
177
179
|
| `host` | string | no | Host address |
|
|
178
180
|
| `port` | number | no | Port (default depends on engine) |
|
|
179
181
|
| `database` | string | depends | Required for PostgreSQL/MySQL |
|
|
180
182
|
| `schemas` | string[] | no | Schemas to introspect (default: all) |
|
|
181
183
|
| `path` | string | depends | Required for SQLite |
|
|
182
184
|
| `auth` | string | no | `env:VAR_NAME` or `~/.pgpass` |
|
|
183
|
-
| `
|
|
185
|
+
| `authType` | string | no | MSSQL auth: `password` (default) or `integrated` (Windows Auth) |
|
|
186
|
+
| `ssl` | boolean | no | Enable SSL/TLS |
|
|
187
|
+
| `srv` | boolean | no | MongoDB: use `mongodb+srv://` protocol (Atlas). Port is ignored, TLS forced. |
|
|
188
|
+
| `tlsInsecure` | boolean | no | MongoDB: allow self-signed TLS certificates |
|
|
184
189
|
|
|
185
190
|
## Supported Engines
|
|
186
191
|
|
|
187
|
-
| Engine | Status |
|
|
188
|
-
|
|
189
|
-
| PostgreSQL | ✅ Full support |
|
|
190
|
-
| MySQL / MariaDB | ✅ Full support |
|
|
191
|
-
| SQLite | ✅ Full support |
|
|
192
|
-
| SQL Server |
|
|
193
|
-
|
|
|
192
|
+
| Engine | Status | Notes |
|
|
193
|
+
|--------|--------|-------|
|
|
194
|
+
| PostgreSQL | ✅ Full support | Schemas, tables, columns, PKs, FKs, indexes, views |
|
|
195
|
+
| MySQL / MariaDB | ✅ Full support | Same schema model as PostgreSQL |
|
|
196
|
+
| SQLite | ✅ Full support | Single-file databases, no schema layer |
|
|
197
|
+
| SQL Server (MSSQL) | ✅ Full support | Windows Integrated Auth available via `authType: "integrated"` |
|
|
198
|
+
| MongoDB | ✅ Full support | Collections, indexes, views, `$jsonSchema` validation; no column-level nodes (schemaless by design) |
|
|
199
|
+
| Oracle | 🔜 Planned | — |
|
|
200
|
+
|
|
201
|
+
## Driver Installation
|
|
202
|
+
|
|
203
|
+
Some database engines require additional npm packages. DBGraph uses lazy imports so these are optional — you only need to install the driver for engines you actually use:
|
|
204
|
+
|
|
205
|
+
| Engine | Install Command | Notes |
|
|
206
|
+
|--------|----------------|-------|
|
|
207
|
+
| PostgreSQL | `npm install pg` | Required for `postgresql` engine |
|
|
208
|
+
| MySQL / MariaDB | *(bundled)* | `mysql2` is included by default |
|
|
209
|
+
| SQLite | *(built-in)* | Uses `node:sqlite` (Node.js 22.5+) |
|
|
210
|
+
| SQL Server (MSSQL) | `npm install mssql` | Windows Auth also needs: `npm install msnodesqlv8` |
|
|
211
|
+
| MongoDB | `npm install mongodb` | Collections only — no column-level fields (schemaless by design). SRV (`srv: true`) supported for Atlas |
|
|
212
|
+
|
|
213
|
+
Example — add MSSQL and MongoDB support:
|
|
214
|
+
```bash
|
|
215
|
+
npm install mssql mongodb
|
|
216
|
+
```
|
|
194
217
|
|
|
195
218
|
## Development
|
|
196
219
|
|
package/dist/config.d.ts.map
CHANGED
|
@@ -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,
|
|
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
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBH,wCAeC;AAKD,
|
|
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;
|
|
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"}
|
package/dist/introspect/base.js
CHANGED
|
@@ -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
|
|
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":";AAAA;;;;;;;GAOG;;;AAWH,6CAAgD;AAChD,oCAAsC;AAsBtC;;;;;;;;;GASG;AACH,MAAsB,gBAAgB;IACd;IAAtB,YAAsB,MAA0B;QAA1B,WAAM,GAAN,MAAM,CAAoB;IAAG,CAAC;IAMpD,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5B,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;IAC9B,CAAC;IAED,aAAa;QACX,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACrB,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACrD,CAAC;QACD,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,WAAW,CAAC;QAC1C,MAAM,
|
|
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;
|
|
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":";AAAA;;;;;;GAMG;;
|
|
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
|
|
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"}
|
package/dist/introspect/index.js
CHANGED
|
@@ -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
|
|
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,51 @@
|
|
|
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
|
+
* When config.srv is true, uses mongodb+srv:// protocol (Atlas/cloud).
|
|
42
|
+
* SRV mode: port is forced to undefined (DNS-resolved), TLS is auto-enabled.
|
|
43
|
+
*/
|
|
44
|
+
private buildUri;
|
|
45
|
+
/**
|
|
46
|
+
* Connect to MongoDB and return the MongoClient.
|
|
47
|
+
* SRV protocol forces TLS — config.ssl is ignored when srv is true.
|
|
48
|
+
*/
|
|
49
|
+
private connectClient;
|
|
50
|
+
}
|
|
51
|
+
//# 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;IAwN7C;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAUzB;;;;;;;OAOG;IACH,OAAO,CAAC,QAAQ;IAmBhB;;;OAGG;YACW,aAAa;CAW5B"}
|