@askdb/sqlserver 0.1.0-beta.19 → 0.1.0-beta.20
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 +15 -2
- package/dist/connector/describe.d.ts +4 -4
- package/dist/connector/describe.d.ts.map +1 -1
- package/dist/connector/describe.js +21 -84
- package/dist/connector/describe.js.map +1 -1
- package/dist/connector/provider.d.ts +1 -2
- package/dist/connector/provider.d.ts.map +1 -1
- package/dist/connector/provider.js +14 -15
- package/dist/connector/provider.js.map +1 -1
- package/dist/exec/sqlserver.d.ts +11 -10
- package/dist/exec/sqlserver.d.ts.map +1 -1
- package/dist/exec/sqlserver.js +177 -78
- package/dist/exec/sqlserver.js.map +1 -1
- package/dist/label.d.ts +26 -0
- package/dist/label.d.ts.map +1 -0
- package/dist/label.js +89 -0
- package/dist/label.js.map +1 -0
- package/package.json +7 -7
- package/dist/connector/glob.d.ts +0 -3
- package/dist/connector/glob.d.ts.map +0 -1
- package/dist/connector/glob.js +0 -23
- package/dist/connector/glob.js.map +0 -1
- package/dist/connector/ids.d.ts +0 -4
- package/dist/connector/ids.d.ts.map +0 -1
- package/dist/connector/ids.js +0 -8
- package/dist/connector/ids.js.map +0 -1
package/README.md
CHANGED
|
@@ -9,9 +9,11 @@ Microsoft SQL Server integration for AskDB. Bundles three pieces:
|
|
|
9
9
|
## Install
|
|
10
10
|
|
|
11
11
|
```bash
|
|
12
|
-
pnpm add @askdb/core @askdb/introspect @askdb/sqlserver
|
|
12
|
+
pnpm add @askdb/core @askdb/introspect @askdb/sqlserver ai
|
|
13
13
|
```
|
|
14
14
|
|
|
15
|
+
`ai` (Vercel AI SDK 6 or 7) is a required peer dependency of `@askdb/core`; your app owns its version.
|
|
16
|
+
|
|
15
17
|
`mssql` is an **optional peer dependency** — install it only when using live introspection mode:
|
|
16
18
|
|
|
17
19
|
```bash
|
|
@@ -71,6 +73,13 @@ const result = await introspect(
|
|
|
71
73
|
| Prisma `sqlserver://` | `sqlserver://localhost:1433;database=MyDb;user=sa;password=pass;encrypt=true` |
|
|
72
74
|
| ADO.NET (`Key=Value;`) | `Server=localhost,1433;Database=MyDb;User Id=sa;Password=pass;` |
|
|
73
75
|
|
|
76
|
+
In the Prisma form, wrap a value that contains `;` in curly braces, as Prisma does: `password={Pass:Word;}` is `Pass:Word;`. AskDB reads braces this way only where its earlier parser couldn't read the value, so strings that worked before keep connecting with the same values:
|
|
77
|
+
|
|
78
|
+
- A value is an escape when it starts with `{`, has a `;` before its first `}`, and ends at the first `}` that is followed only by blanks and then a `;` or the end of the string, where the `;`-separated piece that ends at that `}` has no `=`. Everything between the braces is the value, read verbatim: `{{a;b}}` is `{a;b}`.
|
|
79
|
+
- Any other brace is a plain character, as before: `password={abc}` is `{abc}`, and a `{` that is never closed is part of the value.
|
|
80
|
+
- Prisma reads every `{…}` as an escape, so a URL shared with Prisma that braces a value without a `;` (such as `password={Pass:Word}`) reaches SQL Server with its braces when AskDB connects.
|
|
81
|
+
- Prisma's credential keys `username`, `uid` and `pwd` are also read when `user` or `password` is absent (`username` before `uid`); the canonical key wins when both are set.
|
|
82
|
+
|
|
74
83
|
**TLS / self-signed certificates**
|
|
75
84
|
|
|
76
85
|
SQL Server uses TLS by default. If you connect to a local or dev instance with a self-signed certificate you will see a `self-signed certificate` error unless you tell the driver to trust it:
|
|
@@ -90,9 +99,13 @@ SQL Server uses TLS by default. If you connect to a local or dev instance with a
|
|
|
90
99
|
|
|
91
100
|
> **Never set `TrustServerCertificate=True` in production** unless you have verified the server's certificate through another means. Use a properly signed certificate, or install the CA cert in the system trust store (`NODE_EXTRA_CA_CERTS` / `--use-system-ca`).
|
|
92
101
|
|
|
102
|
+
**Labels for display**
|
|
103
|
+
|
|
104
|
+
`sqlServerConnectorProvider` parses a connection into display-safe parts, so a connector registry's `connectionLabel()` (and the `sourceLabel` from `resolveConnection()`) shows only the host, port and database from any of the three formats: `Server=localhost,1433;Database=app;User Id=sa;Password=pass;` becomes `sqlserver://localhost:1433/app`. The parts come from the same code the connection uses: `resolveConnectionInput()` for `mssql://` and `sqlserver://`, and `@tediousjs/connection-string` (the parser `mssql` uses, a dependency of this package) for ADO.NET strings, so the label names the host and database the driver will use. A string the driver rejects, a named instance or pipe, an `@` in the `sqlserver://` form, a `sqlserver://` string that can be read more than one way (it holds a `{`, a quote, a piece without `=`, or an empty piece before another one), or JDBC becomes `configured sqlserver connection`.
|
|
105
|
+
|
|
93
106
|
## Captured metadata
|
|
94
107
|
|
|
95
|
-
Tables, views, columns (SQL Server native type strings), primary keys, unique constraints, foreign keys (with referential actions), and indexes.
|
|
108
|
+
Tables, views, columns (SQL Server native type strings), primary keys, unique constraints, foreign keys (with referential actions), and indexes. Objects shipped by SQL Server itself (`is_ms_shipped = 1`, e.g. replication `MS*` tables) are excluded.
|
|
96
109
|
|
|
97
110
|
## License
|
|
98
111
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { CatalogQueryRunner, IntrospectionFilters, IntrospectionResult } from "@askdb/introspect";
|
|
2
|
-
import { compileTableFilters } from "
|
|
2
|
+
import { compileTableFilters } from "@askdb/introspect/kit";
|
|
3
3
|
export type DescribeSqlServerInput = {
|
|
4
4
|
runner: CatalogQueryRunner;
|
|
5
5
|
filters?: IntrospectionFilters;
|
|
@@ -8,9 +8,9 @@ export type DescribeSqlServerInput = {
|
|
|
8
8
|
};
|
|
9
9
|
/** Internal: the catalog SQL strings, exposed for snapshot-based tests. */
|
|
10
10
|
export declare const SQLSERVER_CATALOG_SQL: {
|
|
11
|
-
readonly tables: "SELECT\n s.name AS schema_name,\n t.name AS table_name,\n 'BASE TABLE' AS table_type\nFROM sys.tables t\nJOIN sys.schemas s ON s.schema_id = t.schema_id\nUNION ALL\nSELECT\n s.name AS schema_name,\n v.name AS table_name,\n 'VIEW' AS table_type\nFROM sys.views v\nJOIN sys.schemas s ON s.schema_id = v.schema_id\nORDER BY schema_name, table_name";
|
|
12
|
-
readonly views: "SELECT\n s.name AS schema_name,\n v.name AS view_name,\n m.definition AS view_definition\nFROM sys.views v\nJOIN sys.schemas s ON s.schema_id = v.schema_id\nLEFT JOIN sys.sql_modules m ON m.object_id = v.object_id\nORDER BY s.name, v.name";
|
|
13
|
-
readonly columns: "SELECT\n s.name AS schema_name,\n o.name AS table_name,\n c.name AS column_name,\n c.column_id AS ordinal_position,\n typ.name AS type_name,\n c.max_length AS max_length,\n c.precision AS precision_v,\n c.scale AS scale,\n c.is_nullable AS is_nullable\nFROM sys.columns c\nJOIN sys.objects o ON o.object_id = c.object_id\nJOIN sys.schemas s ON s.schema_id = o.schema_id\nJOIN sys.types typ ON typ.user_type_id = c.user_type_id\nWHERE o.type IN ('U','V')\nORDER BY s.name, o.name, c.column_id";
|
|
11
|
+
readonly tables: "SELECT\n s.name AS schema_name,\n t.name AS table_name,\n 'BASE TABLE' AS table_type\nFROM sys.tables t\nJOIN sys.schemas s ON s.schema_id = t.schema_id\nWHERE t.is_ms_shipped = 0\nUNION ALL\nSELECT\n s.name AS schema_name,\n v.name AS table_name,\n 'VIEW' AS table_type\nFROM sys.views v\nJOIN sys.schemas s ON s.schema_id = v.schema_id\nWHERE v.is_ms_shipped = 0\nORDER BY schema_name, table_name";
|
|
12
|
+
readonly views: "SELECT\n s.name AS schema_name,\n v.name AS view_name,\n m.definition AS view_definition\nFROM sys.views v\nJOIN sys.schemas s ON s.schema_id = v.schema_id\nLEFT JOIN sys.sql_modules m ON m.object_id = v.object_id\nWHERE v.is_ms_shipped = 0\nORDER BY s.name, v.name";
|
|
13
|
+
readonly columns: "SELECT\n s.name AS schema_name,\n o.name AS table_name,\n c.name AS column_name,\n c.column_id AS ordinal_position,\n typ.name AS type_name,\n c.max_length AS max_length,\n c.precision AS precision_v,\n c.scale AS scale,\n c.is_nullable AS is_nullable\nFROM sys.columns c\nJOIN sys.objects o ON o.object_id = c.object_id\nJOIN sys.schemas s ON s.schema_id = o.schema_id\nJOIN sys.types typ ON typ.user_type_id = c.user_type_id\nWHERE o.type IN ('U','V')\n AND o.is_ms_shipped = 0\nORDER BY s.name, o.name, c.column_id";
|
|
14
14
|
readonly constraints: "SELECT\n s.name AS schema_name,\n t.name AS table_name,\n i.name AS constraint_name,\n c.name AS column_name,\n ic.key_ordinal AS ordinal_position,\n CASE WHEN i.is_primary_key = 1 THEN 'PRIMARY KEY' ELSE 'UNIQUE' END AS constraint_type\nFROM sys.indexes i\nJOIN sys.tables t ON t.object_id = i.object_id\nJOIN sys.schemas s ON s.schema_id = t.schema_id\nJOIN sys.index_columns ic ON ic.object_id = i.object_id AND ic.index_id = i.index_id\nJOIN sys.columns c ON c.object_id = ic.object_id AND c.column_id = ic.column_id\nWHERE (i.is_primary_key = 1 OR i.is_unique_constraint = 1)\n AND ic.is_included_column = 0\nORDER BY s.name, t.name, i.name, ic.key_ordinal";
|
|
15
15
|
readonly foreign_keys: "SELECT\n s.name AS schema_name,\n pt.name AS table_name,\n fk.name AS constraint_name,\n pc.name AS column_name,\n fkc.constraint_column_id AS ordinal_position,\n rs.name AS referenced_schema,\n rt.name AS referenced_table,\n rc.name AS referenced_column,\n fk.update_referential_action AS update_action,\n fk.delete_referential_action AS delete_action\nFROM sys.foreign_keys fk\nJOIN sys.tables pt ON pt.object_id = fk.parent_object_id\nJOIN sys.schemas s ON s.schema_id = pt.schema_id\nJOIN sys.tables rt ON rt.object_id = fk.referenced_object_id\nJOIN sys.schemas rs ON rs.schema_id = rt.schema_id\nJOIN sys.foreign_key_columns fkc ON fkc.constraint_object_id = fk.object_id\nJOIN sys.columns pc ON pc.object_id = fkc.parent_object_id AND pc.column_id = fkc.parent_column_id\nJOIN sys.columns rc ON rc.object_id = fkc.referenced_object_id AND rc.column_id = fkc.referenced_column_id\nORDER BY s.name, pt.name, fk.name, fkc.constraint_column_id";
|
|
16
16
|
readonly indexes: "SELECT\n s.name AS schema_name,\n t.name AS table_name,\n i.name AS index_name,\n c.name AS column_name,\n ic.key_ordinal AS ordinal_position,\n i.is_unique AS is_unique,\n i.type_desc AS method\nFROM sys.indexes i\nJOIN sys.tables t ON t.object_id = i.object_id\nJOIN sys.schemas s ON s.schema_id = t.schema_id\nJOIN sys.index_columns ic ON ic.object_id = i.object_id AND ic.index_id = i.index_id\nJOIN sys.columns c ON c.object_id = ic.object_id AND c.column_id = ic.column_id\nWHERE i.is_primary_key = 0\n AND i.is_unique_constraint = 0\n AND i.name IS NOT NULL\n AND ic.is_included_column = 0\nORDER BY s.name, t.name, i.name, ic.key_ordinal";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"describe.d.ts","sourceRoot":"","sources":["../../src/connector/describe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EAWpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,
|
|
1
|
+
{"version":3,"file":"describe.d.ts","sourceRoot":"","sources":["../../src/connector/describe.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { compileTableFilters } from "
|
|
2
|
-
import { makeColumnId, makeTableId } from "./ids.js";
|
|
1
|
+
import { ambiguousFilterWarnings, buildOrderedGroups, byName, compileTableFilters, groupBy, makeColumnId, makeTableId, rowsToRecords, sortedUnique, } from "@askdb/introspect/kit";
|
|
3
2
|
/**
|
|
4
3
|
* System schemas excluded from the default introspection.
|
|
5
4
|
* Honors the engine-agnostic `excludeSchemas` filter additively.
|
|
@@ -21,12 +20,18 @@ const DEFAULT_SYSTEM_SCHEMAS = new Set([
|
|
|
21
20
|
// sys.* catalog queries. Tables/views, columns (no comments/defaults yet —
|
|
22
21
|
// follow-up), PKs + UNIQUE constraints via sys.indexes, FKs via sys.foreign_keys,
|
|
23
22
|
// non-PK/non-UNIQUE indexes for completeness.
|
|
23
|
+
//
|
|
24
|
+
// Objects with `is_ms_shipped = 1` are created by SQL Server itself or its
|
|
25
|
+
// features (replication `MS*` tables, CDC/change-tracking artifacts, etc.) —
|
|
26
|
+
// often in `dbo`, so the system-schema list alone does not catch them. They are
|
|
27
|
+
// excluded from the table/view listing (and their columns) at the source.
|
|
24
28
|
const SQL_TABLES = `SELECT
|
|
25
29
|
s.name AS schema_name,
|
|
26
30
|
t.name AS table_name,
|
|
27
31
|
'BASE TABLE' AS table_type
|
|
28
32
|
FROM sys.tables t
|
|
29
33
|
JOIN sys.schemas s ON s.schema_id = t.schema_id
|
|
34
|
+
WHERE t.is_ms_shipped = 0
|
|
30
35
|
UNION ALL
|
|
31
36
|
SELECT
|
|
32
37
|
s.name AS schema_name,
|
|
@@ -34,6 +39,7 @@ SELECT
|
|
|
34
39
|
'VIEW' AS table_type
|
|
35
40
|
FROM sys.views v
|
|
36
41
|
JOIN sys.schemas s ON s.schema_id = v.schema_id
|
|
42
|
+
WHERE v.is_ms_shipped = 0
|
|
37
43
|
ORDER BY schema_name, table_name`;
|
|
38
44
|
const SQL_VIEWS = `SELECT
|
|
39
45
|
s.name AS schema_name,
|
|
@@ -42,6 +48,7 @@ const SQL_VIEWS = `SELECT
|
|
|
42
48
|
FROM sys.views v
|
|
43
49
|
JOIN sys.schemas s ON s.schema_id = v.schema_id
|
|
44
50
|
LEFT JOIN sys.sql_modules m ON m.object_id = v.object_id
|
|
51
|
+
WHERE v.is_ms_shipped = 0
|
|
45
52
|
ORDER BY s.name, v.name`;
|
|
46
53
|
const SQL_COLUMNS = `SELECT
|
|
47
54
|
s.name AS schema_name,
|
|
@@ -58,6 +65,7 @@ JOIN sys.objects o ON o.object_id = c.object_id
|
|
|
58
65
|
JOIN sys.schemas s ON s.schema_id = o.schema_id
|
|
59
66
|
JOIN sys.types typ ON typ.user_type_id = c.user_type_id
|
|
60
67
|
WHERE o.type IN ('U','V')
|
|
68
|
+
AND o.is_ms_shipped = 0
|
|
61
69
|
ORDER BY s.name, o.name, c.column_id`;
|
|
62
70
|
const SQL_CONSTRAINTS = `SELECT
|
|
63
71
|
s.name AS schema_name,
|
|
@@ -124,20 +132,7 @@ export const SQLSERVER_CATALOG_SQL = {
|
|
|
124
132
|
export async function describeSqlServer(input) {
|
|
125
133
|
const runner = input.runner;
|
|
126
134
|
const tableFilter = compileTableFilters(input.filters?.tables);
|
|
127
|
-
const run = async (sql) =>
|
|
128
|
-
const result = await runner(sql);
|
|
129
|
-
if (result.rows.length === 0)
|
|
130
|
-
return [];
|
|
131
|
-
const idx = new Map();
|
|
132
|
-
for (let i = 0; i < result.columns.length; i++)
|
|
133
|
-
idx.set(result.columns[i], i);
|
|
134
|
-
return result.rows.map((row) => {
|
|
135
|
-
const record = {};
|
|
136
|
-
for (const [name, i] of idx)
|
|
137
|
-
record[name] = row[i];
|
|
138
|
-
return record;
|
|
139
|
-
});
|
|
140
|
-
};
|
|
135
|
+
const run = async (sql) => rowsToRecords(await runner(sql));
|
|
141
136
|
const [tableRows, viewRows, columnRows, constraintRows, fkRows, indexRows] = await Promise.all([
|
|
142
137
|
run(SQL_TABLES),
|
|
143
138
|
run(SQL_VIEWS),
|
|
@@ -173,15 +168,7 @@ export function foldSqlServerResult(input) {
|
|
|
173
168
|
return false;
|
|
174
169
|
return true;
|
|
175
170
|
};
|
|
176
|
-
const colsByTable =
|
|
177
|
-
for (const c of input.columnRows) {
|
|
178
|
-
if (!includes(c.schema_name))
|
|
179
|
-
continue;
|
|
180
|
-
const key = `${c.schema_name}.${c.table_name}`;
|
|
181
|
-
const list = colsByTable.get(key) ?? [];
|
|
182
|
-
list.push(c);
|
|
183
|
-
colsByTable.set(key, list);
|
|
184
|
-
}
|
|
171
|
+
const colsByTable = groupByQualified(input.columnRows, includes);
|
|
185
172
|
const constraintsByTable = groupByQualified(input.constraintRows, includes);
|
|
186
173
|
const fksByTable = groupByQualified(input.fkRows, includes);
|
|
187
174
|
const indexesByTable = groupByQualified(input.indexRows, includes);
|
|
@@ -250,12 +237,7 @@ export function foldSqlServerResult(input) {
|
|
|
250
237
|
enums: [],
|
|
251
238
|
sequences: [],
|
|
252
239
|
}));
|
|
253
|
-
|
|
254
|
-
const matched = namespaces.some((ns) => ns.tables.some((t) => compileTableFilters([pattern])(`${ns.name}.${t.name}`)) ||
|
|
255
|
-
ns.views.some((v) => compileTableFilters([pattern])(`${ns.name}.${v.name}`)));
|
|
256
|
-
if (!matched)
|
|
257
|
-
warnings.push({ code: "ambiguous_filter", filter: pattern });
|
|
258
|
-
}
|
|
240
|
+
warnings.push(...ambiguousFilterWarnings(input.declaredFilters, namespaces.flatMap((ns) => [...ns.tables, ...ns.views].map((t) => `${ns.name}.${t.name}`))));
|
|
259
241
|
const schema = { schemaId: input.schemaId, schemas: namespaces };
|
|
260
242
|
const isEmpty = namespaces.length === 0;
|
|
261
243
|
return { schema, warnings, isEmpty, viewDefinitions, provider: "sqlserver" };
|
|
@@ -293,34 +275,12 @@ function renderType(c) {
|
|
|
293
275
|
return c.type_name;
|
|
294
276
|
}
|
|
295
277
|
function buildUniques(rows) {
|
|
296
|
-
|
|
297
|
-
for (const r of rows) {
|
|
298
|
-
if (r.constraint_type !== "UNIQUE")
|
|
299
|
-
continue;
|
|
300
|
-
const list = byName.get(r.constraint_name) ?? [];
|
|
301
|
-
list.push(r);
|
|
302
|
-
byName.set(r.constraint_name, list);
|
|
303
|
-
}
|
|
304
|
-
return Array.from(byName, ([name, list]) => ({
|
|
305
|
-
name,
|
|
306
|
-
columns: list
|
|
307
|
-
.slice()
|
|
308
|
-
.sort((a, b) => a.ordinal_position - b.ordinal_position)
|
|
309
|
-
.map((r) => r.column_name),
|
|
310
|
-
})).sort((a, b) => a.name.localeCompare(b.name));
|
|
278
|
+
return buildOrderedGroups(rows.filter((r) => r.constraint_type === "UNIQUE"), (r) => r.constraint_name, (r) => r.ordinal_position, (name, ordered) => ({ name, columns: ordered.map((r) => r.column_name) }));
|
|
311
279
|
}
|
|
312
280
|
function buildForeignKeys(rows) {
|
|
313
|
-
|
|
314
|
-
for (const r of rows) {
|
|
315
|
-
const list = byName.get(r.constraint_name) ?? [];
|
|
316
|
-
list.push(r);
|
|
317
|
-
byName.set(r.constraint_name, list);
|
|
318
|
-
}
|
|
319
|
-
const fks = [];
|
|
320
|
-
for (const [name, list] of byName) {
|
|
321
|
-
const ordered = list.slice().sort((a, b) => a.ordinal_position - b.ordinal_position);
|
|
281
|
+
return buildOrderedGroups(rows, (r) => r.constraint_name, (r) => r.ordinal_position, (name, ordered) => {
|
|
322
282
|
const sample = ordered[0];
|
|
323
|
-
|
|
283
|
+
return {
|
|
324
284
|
name,
|
|
325
285
|
columns: ordered.map((r) => r.column_name),
|
|
326
286
|
references: {
|
|
@@ -330,9 +290,8 @@ function buildForeignKeys(rows) {
|
|
|
330
290
|
},
|
|
331
291
|
onDelete: mapAction(sample.delete_action),
|
|
332
292
|
onUpdate: mapAction(sample.update_action),
|
|
333
|
-
}
|
|
334
|
-
}
|
|
335
|
-
return fks.sort((a, b) => a.name.localeCompare(b.name));
|
|
293
|
+
};
|
|
294
|
+
});
|
|
336
295
|
}
|
|
337
296
|
function mapAction(code) {
|
|
338
297
|
switch (code) {
|
|
@@ -349,14 +308,7 @@ function mapAction(code) {
|
|
|
349
308
|
}
|
|
350
309
|
}
|
|
351
310
|
function buildIndexes(rows) {
|
|
352
|
-
|
|
353
|
-
for (const r of rows) {
|
|
354
|
-
const list = byName.get(r.index_name) ?? [];
|
|
355
|
-
list.push(r);
|
|
356
|
-
byName.set(r.index_name, list);
|
|
357
|
-
}
|
|
358
|
-
return Array.from(byName, ([name, list]) => {
|
|
359
|
-
const ordered = list.slice().sort((a, b) => a.ordinal_position - b.ordinal_position);
|
|
311
|
+
return buildOrderedGroups(rows, (r) => r.index_name, (r) => r.ordinal_position, (name, ordered) => {
|
|
360
312
|
const sample = ordered[0];
|
|
361
313
|
return {
|
|
362
314
|
name,
|
|
@@ -364,24 +316,9 @@ function buildIndexes(rows) {
|
|
|
364
316
|
unique: sample.is_unique === 1 || sample.is_unique === true,
|
|
365
317
|
method: sample.method,
|
|
366
318
|
};
|
|
367
|
-
})
|
|
319
|
+
});
|
|
368
320
|
}
|
|
369
321
|
function groupByQualified(rows, includes) {
|
|
370
|
-
|
|
371
|
-
for (const r of rows) {
|
|
372
|
-
if (!includes(r.schema_name))
|
|
373
|
-
continue;
|
|
374
|
-
const key = `${r.schema_name}.${r.table_name}`;
|
|
375
|
-
const list = out.get(key) ?? [];
|
|
376
|
-
list.push(r);
|
|
377
|
-
out.set(key, list);
|
|
378
|
-
}
|
|
379
|
-
return out;
|
|
380
|
-
}
|
|
381
|
-
function sortedUnique(values) {
|
|
382
|
-
return Array.from(new Set(values)).sort((a, b) => a.localeCompare(b));
|
|
383
|
-
}
|
|
384
|
-
function byName(a, b) {
|
|
385
|
-
return a.name.localeCompare(b.name);
|
|
322
|
+
return groupBy(rows.filter((r) => includes(r.schema_name)), (r) => `${r.schema_name}.${r.table_name}`);
|
|
386
323
|
}
|
|
387
324
|
//# sourceMappingURL=describe.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"describe.js","sourceRoot":"","sources":["../../src/connector/describe.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"describe.js","sourceRoot":"","sources":["../../src/connector/describe.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const sqlServerConnectorProvider: ConnectorProviderAdapter;
|
|
1
|
+
export declare const sqlServerConnectorProvider: import("@askdb/introspect").ConnectorProviderAdapter;
|
|
3
2
|
//# sourceMappingURL=provider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/connector/provider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/connector/provider.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,0BAA0B,sDAcrC,CAAC"}
|
|
@@ -1,20 +1,19 @@
|
|
|
1
|
+
import { defineLiveConnectorProvider } from "@askdb/introspect/kit";
|
|
1
2
|
import { createSqlServerConnector } from "./index.js";
|
|
2
3
|
import { createSqlServerCatalogQueryRunner } from "../exec/sqlserver.js";
|
|
3
|
-
|
|
4
|
+
import { parseSqlServerConnection } from "../label.js";
|
|
5
|
+
export const sqlServerConnectorProvider = defineLiveConnectorProvider({
|
|
4
6
|
provider: "sqlserver",
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
input: {
|
|
12
|
-
mode: "live",
|
|
13
|
-
runner: createSqlServerCatalogQueryRunner(config.url),
|
|
14
|
-
filters: config.filters,
|
|
15
|
-
},
|
|
16
|
-
connector: createSqlServerConnector(),
|
|
17
|
-
};
|
|
7
|
+
displayName: "SQL Server",
|
|
8
|
+
runtimeKey: "sqlserverDatabaseUrl",
|
|
9
|
+
connectionNoun: "a connection URL",
|
|
10
|
+
missingConnection: {
|
|
11
|
+
cli: "Provide --url <sqlserver-url> (or set introspection.providerConfig.sqlserver.databaseUrl / ASKDB_INTROSPECT_SQLSERVER_URL / DATABASE_URL).",
|
|
12
|
+
config: "No SQL Server connection configured. Set introspection.providerConfig.sqlserver.databaseUrl in askdb.config.ts (bound to an env var in .env).",
|
|
18
13
|
},
|
|
19
|
-
|
|
14
|
+
fromExportUnsupported: "--from-export is currently supported only for --engine postgres (got sqlserver).",
|
|
15
|
+
createConnector: createSqlServerConnector,
|
|
16
|
+
createRunner: (url) => createSqlServerCatalogQueryRunner(url),
|
|
17
|
+
connectionLabelParts: parseSqlServerConnection,
|
|
18
|
+
});
|
|
20
19
|
//# sourceMappingURL=provider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/connector/provider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/connector/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,iCAAiC,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAEvD,MAAM,CAAC,MAAM,0BAA0B,GAAG,2BAA2B,CAAC;IACpE,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,YAAY;IACzB,UAAU,EAAE,sBAAsB;IAClC,cAAc,EAAE,kBAAkB;IAClC,iBAAiB,EAAE;QACjB,GAAG,EAAE,4IAA4I;QACjJ,MAAM,EACJ,+IAA+I;KAClJ;IACD,qBAAqB,EAAE,kFAAkF;IACzG,eAAe,EAAE,wBAAwB;IACzC,YAAY,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,iCAAiC,CAAC,GAAG,CAAC;IAC7D,oBAAoB,EAAE,wBAAwB;CAC/C,CAAC,CAAC"}
|
package/dist/exec/sqlserver.d.ts
CHANGED
|
@@ -1,16 +1,7 @@
|
|
|
1
1
|
import type { CatalogQueryRunner } from "@askdb/introspect";
|
|
2
|
+
import { type DriverLoadOptions } from "@askdb/introspect/kit";
|
|
2
3
|
export type { CatalogQueryResult, CatalogQueryRunner } from "@askdb/introspect";
|
|
3
4
|
type MssqlModule = typeof import("mssql");
|
|
4
|
-
/**
|
|
5
|
-
* Lazily resolve the optional `mssql` peer dependency. Mirrors the lazy-load
|
|
6
|
-
* pattern in `@askdb/postgres` / `@askdb/mysql` so consumers with a custom
|
|
7
|
-
* `CatalogQueryRunner` can import `@askdb/sqlserver` without `mssql` installed.
|
|
8
|
-
*/
|
|
9
|
-
type DriverLoadOptions = {
|
|
10
|
-
resolveFrom?: string;
|
|
11
|
-
};
|
|
12
|
-
/** @internal exposed for tests that need to reset the lazy `mssql` cache. */
|
|
13
|
-
export declare function __resetMssqlModuleCacheForTests(): void;
|
|
14
5
|
type MssqlDriverModule = MssqlModule;
|
|
15
6
|
/**
|
|
16
7
|
* Resolve and cache the optional `mssql` peer driver, with the same lazy-import
|
|
@@ -45,6 +36,16 @@ export type MssqlConfigInput = {
|
|
|
45
36
|
* ADO.NET strings are identified as anything that is not a URL (no `://`).
|
|
46
37
|
*/
|
|
47
38
|
export declare function resolveConnectionInput(connectionString: string): string | MssqlConfigInput;
|
|
39
|
+
/**
|
|
40
|
+
* True when a Prisma-style `sqlserver://` string can be read more than one
|
|
41
|
+
* way, so a display label must not trust its parts: it has a `{` (an escape
|
|
42
|
+
* only around a whole value holding a `;`, while Prisma reads every `{…}` as
|
|
43
|
+
* one), a quote, a segment that
|
|
44
|
+
* isn't `key=value` (an unbraced `;` inside a value), an empty segment before
|
|
45
|
+
* another one, or an unclosed `{`. The connection still uses
|
|
46
|
+
* `parsePrismaSqlServerUrl`'s reading.
|
|
47
|
+
*/
|
|
48
|
+
export declare function isPrismaSqlServerUrlAmbiguous(connectionString: string): boolean;
|
|
48
49
|
/**
|
|
49
50
|
* Build the built-in `mssql`-backed catalog query runner used by live SQL
|
|
50
51
|
* Server introspection. `connectionString` may be:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlserver.d.ts","sourceRoot":"","sources":["../../src/exec/sqlserver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAsB,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"sqlserver.d.ts","sourceRoot":"","sources":["../../src/exec/sqlserver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAsB,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAKL,KAAK,iBAAiB,EACvB,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAIhF,KAAK,WAAW,GAAG,cAAc,OAAO,CAAC,CAAC;AAa1C,KAAK,iBAAiB,GAAG,WAAW,CAAC;AAErC;;;GAGG;AACH,wBAAsB,eAAe,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAG7F;AAED,wBAAgB,sBAAsB,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAE3E;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CACnE,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,GAAG,gBAAgB,CAa1F;AA6ID;;;;;;;;GAQG;AACH,wBAAgB,6BAA6B,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAS/E;AA0HD;;;;;;;;;GASG;AACH,wBAAgB,iCAAiC,CAC/C,gBAAgB,EAAE,MAAM,EACxB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,kBAAkB,CAEpB"}
|
package/dist/exec/sqlserver.js
CHANGED
|
@@ -1,76 +1,25 @@
|
|
|
1
1
|
import { AskDbError } from "@askdb/core";
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const code = cause.code;
|
|
14
|
-
if (code !== "ERR_MODULE_NOT_FOUND" && code !== "MODULE_NOT_FOUND")
|
|
15
|
-
return false;
|
|
16
|
-
return cause.message.includes(packageName);
|
|
17
|
-
}
|
|
18
|
-
async function importOptionalMssql(opts) {
|
|
19
|
-
try {
|
|
20
|
-
return await import("mssql");
|
|
21
|
-
}
|
|
22
|
-
catch (cause) {
|
|
23
|
-
if (!isModuleResolutionFailure(cause, "mssql"))
|
|
24
|
-
throw cause;
|
|
25
|
-
const fromDir = opts?.resolveFrom ?? process.cwd();
|
|
26
|
-
const projectRequire = createRequire(join(fromDir, "package.json"));
|
|
27
|
-
try {
|
|
28
|
-
const resolved = projectRequire.resolve("mssql");
|
|
29
|
-
return (await import(pathToFileURL(resolved).href));
|
|
30
|
-
}
|
|
31
|
-
catch (projectCause) {
|
|
32
|
-
if (!isModuleResolutionFailure(projectCause, "mssql"))
|
|
33
|
-
throw projectCause;
|
|
34
|
-
throw new AggregateError([cause, projectCause], "Unable to resolve optional `mssql` peer dependency");
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
async function loadMssqlOrThrow(opts) {
|
|
39
|
-
const key = opts?.resolveFrom;
|
|
40
|
-
let promise = mssqlModulePromises.get(key);
|
|
41
|
-
if (!promise) {
|
|
42
|
-
promise = importOptionalMssql(opts).catch((cause) => {
|
|
43
|
-
mssqlModulePromises.delete(key);
|
|
44
|
-
throw new AskDbError("The built-in SQL Server catalog query runner requires the optional `mssql` peer dependency. " +
|
|
45
|
-
"Install it in your project (e.g. `pnpm add mssql`) or include it in the same one-off command " +
|
|
46
|
-
"(e.g. `pnpm dlx -p askdb -p mssql askdb ...` or `npx -p askdb -p mssql askdb ...`). " +
|
|
47
|
-
"You can also pass a custom catalog query runner to the SQL Server connector.", cause);
|
|
48
|
-
});
|
|
49
|
-
mssqlModulePromises.set(key, promise);
|
|
50
|
-
}
|
|
51
|
-
return promise;
|
|
52
|
-
}
|
|
53
|
-
/** @internal exposed for tests that need to reset the lazy `mssql` cache. */
|
|
54
|
-
export function __resetMssqlModuleCacheForTests() {
|
|
55
|
-
mssqlModulePromises.clear();
|
|
56
|
-
}
|
|
2
|
+
import { createOptionalDriverLoader, rethrowDriverImportError, isDriverInstalled, missingDriverMessage, } from "@askdb/introspect/kit";
|
|
3
|
+
/**
|
|
4
|
+
* Lazily resolve the optional `mssql` peer dependency. Mirrors the lazy-load
|
|
5
|
+
* pattern in `@askdb/postgres` / `@askdb/mysql` so consumers with a custom
|
|
6
|
+
* `CatalogQueryRunner` can import `@askdb/sqlserver` without `mssql` installed.
|
|
7
|
+
*/
|
|
8
|
+
const mssqlLoader = createOptionalDriverLoader({
|
|
9
|
+
packageName: "mssql",
|
|
10
|
+
importDriver: () => import("mssql").catch(rethrowDriverImportError),
|
|
11
|
+
missingMessage: missingDriverMessage({ engine: "SQL Server", packageName: "mssql" }),
|
|
12
|
+
});
|
|
57
13
|
/**
|
|
58
14
|
* Resolve and cache the optional `mssql` peer driver, with the same lazy-import
|
|
59
15
|
* + project-root fallback behavior as the catalog runner.
|
|
60
16
|
*/
|
|
61
17
|
export async function loadMssqlDriver(options) {
|
|
62
|
-
const mod = await
|
|
18
|
+
const mod = await mssqlLoader.load(options);
|
|
63
19
|
return mod.default ?? mod;
|
|
64
20
|
}
|
|
65
21
|
export function isMssqlDriverInstalled(options) {
|
|
66
|
-
|
|
67
|
-
const req = createRequire(join(options?.resolveFrom ?? process.cwd(), "package.json"));
|
|
68
|
-
req.resolve("mssql");
|
|
69
|
-
return true;
|
|
70
|
-
}
|
|
71
|
-
catch {
|
|
72
|
-
return false;
|
|
73
|
-
}
|
|
22
|
+
return isDriverInstalled("mssql", options);
|
|
74
23
|
}
|
|
75
24
|
/**
|
|
76
25
|
* mssql v12 uses @tediousjs/connection-string v1.x, which has two known gaps:
|
|
@@ -146,12 +95,47 @@ function parseMssqlSchemeUrl(connectionString) {
|
|
|
146
95
|
},
|
|
147
96
|
};
|
|
148
97
|
}
|
|
98
|
+
/**
|
|
99
|
+
* Parse Prisma's SQL Server connection URL,
|
|
100
|
+
* `sqlserver://HOST[:PORT][;key=value…]`.
|
|
101
|
+
*
|
|
102
|
+
* Backward compatible with the parser this replaces for every string it could
|
|
103
|
+
* read: it connects with exactly the same values as before. Segments are split on `;`,
|
|
104
|
+
* a key ends at its first `=` (so `password=a=b` is `a=b`), keys are trimmed
|
|
105
|
+
* and lower-cased, values are trimmed, non-ASCII is fine, a segment without
|
|
106
|
+
* `=` or with an empty key or value is skipped, and a later key replaces an
|
|
107
|
+
* earlier one. The host part ends at its last `:`, and a port that isn't a
|
|
108
|
+
* number is ignored.
|
|
109
|
+
*
|
|
110
|
+
* On top of that it reads Prisma's `{…}` escaping (Prisma's SQL Server docs:
|
|
111
|
+
* "If your credentials contain `: \ = ; / [ ] { }`, wrap values in curly
|
|
112
|
+
* braces", e.g. `password={Pass:Word;}`), but only where the old parser never
|
|
113
|
+
* read the value as written: a value that starts with `{`, has a `;` before its
|
|
114
|
+
* first `}`, and ends at a `}` whose `;`-separated piece holds no `=`. The old
|
|
115
|
+
* parser cut such a value at its first `;` and dropped that last piece (a piece
|
|
116
|
+
* without `=` is skipped), so it never connected with the value the user wrote.
|
|
117
|
+
* The value is everything between the braces, read verbatim, so `;`, `=` and
|
|
118
|
+
* braces inside it are part of it (`{{a;b}}` is `{a;b}`); it ends at the first
|
|
119
|
+
* `}` followed only by blanks and then `;` or the end of the string.
|
|
120
|
+
*
|
|
121
|
+
* Any other `{` or `}` is a plain character, as before: `password={abc}` is
|
|
122
|
+
* `{abc}`, and an unclosed `{` is part of the value. Braces that close before
|
|
123
|
+
* any `;` never reach into a later value (`password={ab}cd;user={me}` reads
|
|
124
|
+
* `{ab}cd` and `{me}`), and neither does a `{` whose closing `}` ends a later
|
|
125
|
+
* `key=value` piece (`password={Xy7;user={me}` reads `{Xy7` and `{me}`).
|
|
126
|
+
* This is where it differs from Prisma, which reads every `{…}` as an escape
|
|
127
|
+
* (`{abc}` is `abc`) and ends it at the first `}`.
|
|
128
|
+
*
|
|
129
|
+
* Prisma's credential aliases are read (`username` and `uid` for `user`,
|
|
130
|
+
* `pwd` for `password`) only when the canonical key is absent: the old parser
|
|
131
|
+
* dropped them, so such a string had no credentials, and where the canonical
|
|
132
|
+
* key is present it still wins. `initial catalog` is not, because the old parser ignored it and
|
|
133
|
+
* the connection used the login's default database; reading it now would
|
|
134
|
+
* change where a working string connects.
|
|
135
|
+
*/
|
|
149
136
|
function parsePrismaSqlServerUrl(connectionString) {
|
|
150
|
-
|
|
151
|
-
const
|
|
152
|
-
const firstSemiIdx = withoutScheme.indexOf(";");
|
|
153
|
-
const hostPart = firstSemiIdx === -1 ? withoutScheme : withoutScheme.slice(0, firstSemiIdx);
|
|
154
|
-
const paramsPart = firstSemiIdx === -1 ? "" : withoutScheme.slice(firstSemiIdx + 1);
|
|
137
|
+
const segments = splitPrismaSegments(connectionString.slice("sqlserver://".length));
|
|
138
|
+
const hostPart = unbrace(segments[0]);
|
|
155
139
|
const colonIdx = hostPart.lastIndexOf(":");
|
|
156
140
|
const server = colonIdx === -1 ? hostPart : hostPart.slice(0, colonIdx);
|
|
157
141
|
const portStr = colonIdx === -1 ? undefined : hostPart.slice(colonIdx + 1);
|
|
@@ -161,21 +145,30 @@ function parsePrismaSqlServerUrl(connectionString) {
|
|
|
161
145
|
"Expected: sqlserver://HOST:PORT;database=DATABASE;user=USER;password=PASSWORD");
|
|
162
146
|
}
|
|
163
147
|
const params = {};
|
|
164
|
-
for (const
|
|
165
|
-
const
|
|
166
|
-
if (
|
|
148
|
+
for (const segment of segments.slice(1)) {
|
|
149
|
+
const eq = segment.findIndex((piece) => !piece.braced && piece.text.includes("="));
|
|
150
|
+
if (eq === -1)
|
|
167
151
|
continue;
|
|
168
|
-
const
|
|
169
|
-
const
|
|
152
|
+
const split = segment[eq].text.indexOf("=");
|
|
153
|
+
const keyPieces = [...segment.slice(0, eq), { braced: false, text: segment[eq].text.slice(0, split) }];
|
|
154
|
+
const valuePieces = [{ braced: false, text: segment[eq].text.slice(split + 1) }, ...segment.slice(eq + 1)];
|
|
155
|
+
const key = unbrace(keyPieces).trim().toLowerCase();
|
|
156
|
+
const value = trimUnbraced(valuePieces);
|
|
170
157
|
if (key && value)
|
|
171
158
|
params[key] = value;
|
|
172
159
|
}
|
|
160
|
+
// The canonical key wins, as it did when the aliases were ignored; an alias
|
|
161
|
+
// is used only when the canonical key is absent.
|
|
162
|
+
const pick = (...keys) => keys.map((key) => params[key]).find((value) => value !== undefined);
|
|
163
|
+
const database = params["database"];
|
|
164
|
+
const user = pick("user", "username", "uid");
|
|
165
|
+
const password = pick("password", "pwd");
|
|
173
166
|
return {
|
|
174
167
|
server,
|
|
175
168
|
...(port !== undefined && !Number.isNaN(port) ? { port } : {}),
|
|
176
|
-
...(
|
|
177
|
-
...(
|
|
178
|
-
...(
|
|
169
|
+
...(database ? { database } : {}),
|
|
170
|
+
...(user ? { user } : {}),
|
|
171
|
+
...(password ? { password } : {}),
|
|
179
172
|
options: {
|
|
180
173
|
...(params["encrypt"] !== undefined ? { encrypt: params["encrypt"].toLowerCase() === "true" } : {}),
|
|
181
174
|
...(params["trustservercertificate"] !== undefined
|
|
@@ -184,8 +177,114 @@ function parsePrismaSqlServerUrl(connectionString) {
|
|
|
184
177
|
},
|
|
185
178
|
};
|
|
186
179
|
}
|
|
180
|
+
/**
|
|
181
|
+
* True when a Prisma-style `sqlserver://` string can be read more than one
|
|
182
|
+
* way, so a display label must not trust its parts: it has a `{` (an escape
|
|
183
|
+
* only around a whole value holding a `;`, while Prisma reads every `{…}` as
|
|
184
|
+
* one), a quote, a segment that
|
|
185
|
+
* isn't `key=value` (an unbraced `;` inside a value), an empty segment before
|
|
186
|
+
* another one, or an unclosed `{`. The connection still uses
|
|
187
|
+
* `parsePrismaSqlServerUrl`'s reading.
|
|
188
|
+
*/
|
|
189
|
+
export function isPrismaSqlServerUrlAmbiguous(connectionString) {
|
|
190
|
+
const rest = connectionString.slice("sqlserver://".length);
|
|
191
|
+
if (/[{'"]/.test(rest))
|
|
192
|
+
return true;
|
|
193
|
+
const segments = rest.split(";").slice(1);
|
|
194
|
+
return segments.some((segment, i) => {
|
|
195
|
+
const last = i === segments.length - 1;
|
|
196
|
+
if (segment.trim() === "")
|
|
197
|
+
return !last;
|
|
198
|
+
return !segment.includes("=");
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Split on `;` outside an escaping `{…}`; each segment keeps its braced and
|
|
203
|
+
* plain pieces. A value is an escape (see `parsePrismaSqlServerUrl`) when it
|
|
204
|
+
* starts with `{` (after `key=` and blanks), has a `;` before its first `}`,
|
|
205
|
+
* and ends at a `}` followed only by blanks before the next `;` or the end of
|
|
206
|
+
* the string. Everything else, including the host part, splits on every `;`.
|
|
207
|
+
*/
|
|
208
|
+
function splitPrismaSegments(input) {
|
|
209
|
+
const hostEnd = input.indexOf(";");
|
|
210
|
+
if (hostEnd === -1)
|
|
211
|
+
return [[{ braced: false, text: input }]];
|
|
212
|
+
const segments = [[{ braced: false, text: input.slice(0, hostEnd) }]];
|
|
213
|
+
let pos = hostEnd + 1;
|
|
214
|
+
while (pos <= input.length) {
|
|
215
|
+
const next = input.indexOf(";", pos);
|
|
216
|
+
const end = next === -1 ? input.length : next;
|
|
217
|
+
const escape = escapedValue(input, pos, end);
|
|
218
|
+
if (escape) {
|
|
219
|
+
segments.push([
|
|
220
|
+
{ braced: false, text: input.slice(pos, escape.open) },
|
|
221
|
+
{ braced: true, text: input.slice(escape.open + 1, escape.close) },
|
|
222
|
+
{ braced: false, text: input.slice(escape.close + 1, escape.end) },
|
|
223
|
+
].filter((piece) => piece.braced || piece.text !== ""));
|
|
224
|
+
pos = escape.end + 1;
|
|
225
|
+
}
|
|
226
|
+
else {
|
|
227
|
+
segments.push(end > pos ? [{ braced: false, text: input.slice(pos, end) }] : []);
|
|
228
|
+
pos = end + 1;
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
return segments;
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* The escaping `{…}` of the segment starting at `start` (whose first `;` is at
|
|
235
|
+
* `firstSemi`), or `undefined`: the value must start with `{`, a `;` must come
|
|
236
|
+
* before the first `}` after it, the first `}` followed only by blanks and then
|
|
237
|
+
* `;` or the end of the input closes it, and the `;`-separated piece that `}`
|
|
238
|
+
* ends must hold no `=` (the old parser skipped that piece).
|
|
239
|
+
*/
|
|
240
|
+
function escapedValue(input, start, firstSemi) {
|
|
241
|
+
const eq = input.indexOf("=", start);
|
|
242
|
+
if (eq === -1 || eq >= firstSemi)
|
|
243
|
+
return undefined;
|
|
244
|
+
let open = eq + 1;
|
|
245
|
+
while (input[open] === " " || input[open] === "\t")
|
|
246
|
+
open++;
|
|
247
|
+
if (input[open] !== "{")
|
|
248
|
+
return undefined;
|
|
249
|
+
// A `}` before the value's first `;` means the braces wrap no `;`: plain text.
|
|
250
|
+
const firstClose = input.indexOf("}", open + 1);
|
|
251
|
+
if (firstClose === -1 || firstClose < firstSemi)
|
|
252
|
+
return undefined;
|
|
253
|
+
const closing = /\}[ \t]*(?:;|$)/g;
|
|
254
|
+
closing.lastIndex = open + 1;
|
|
255
|
+
const match = closing.exec(input);
|
|
256
|
+
if (!match)
|
|
257
|
+
return undefined;
|
|
258
|
+
const close = match.index;
|
|
259
|
+
// The piece the `}` ends is a `key=value` the old parser read: plain text.
|
|
260
|
+
if (input.slice(input.lastIndexOf(";", close) + 1, close).includes("="))
|
|
261
|
+
return undefined;
|
|
262
|
+
const end = match[0].endsWith(";") ? close + match[0].length - 1 : input.length;
|
|
263
|
+
return { open, close, end };
|
|
264
|
+
}
|
|
265
|
+
function unbrace(pieces) {
|
|
266
|
+
return pieces.map((piece) => piece.text).join("");
|
|
267
|
+
}
|
|
268
|
+
/** Join the pieces, trimming whitespace only from unbraced text at either end. */
|
|
269
|
+
function trimUnbraced(pieces) {
|
|
270
|
+
const copy = pieces.map((piece) => ({ ...piece }));
|
|
271
|
+
while (copy.length > 0 && !copy[0].braced) {
|
|
272
|
+
copy[0].text = copy[0].text.trimStart();
|
|
273
|
+
if (copy[0].text !== "")
|
|
274
|
+
break;
|
|
275
|
+
copy.shift();
|
|
276
|
+
}
|
|
277
|
+
while (copy.length > 0 && !copy[copy.length - 1].braced) {
|
|
278
|
+
const last = copy[copy.length - 1];
|
|
279
|
+
last.text = last.text.trimEnd();
|
|
280
|
+
if (last.text !== "")
|
|
281
|
+
break;
|
|
282
|
+
copy.pop();
|
|
283
|
+
}
|
|
284
|
+
return unbrace(copy);
|
|
285
|
+
}
|
|
187
286
|
async function runSqlServerCatalogQuery(connectionString, sql, params, options) {
|
|
188
|
-
const mod = await
|
|
287
|
+
const mod = await mssqlLoader.load(options);
|
|
189
288
|
const mssql = mod.default ?? mod;
|
|
190
289
|
const pool = new mssql.ConnectionPool(resolveConnectionInput(connectionString));
|
|
191
290
|
await pool.connect();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlserver.js","sourceRoot":"","sources":["../../src/exec/sqlserver.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sqlserver.js","sourceRoot":"","sources":["../../src/exec/sqlserver.ts"],"names":[],"mappings":"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"}
|
package/dist/label.d.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { ConnectionLabelParts } from "@askdb/introspect/kit";
|
|
2
|
+
/**
|
|
3
|
+
* The display-safe parts of a SQL Server connection string, read by the same
|
|
4
|
+
* code the connection uses — never a reimplementation of the grammar
|
|
5
|
+
* (ADR 0011):
|
|
6
|
+
*
|
|
7
|
+
* - `resolveConnectionInput()` turns `mssql://…` and Prisma's
|
|
8
|
+
* `sqlserver://host:port;key=value` form into `{ server, port, database }`
|
|
9
|
+
* (the latter backward compatible, plus Prisma's `{…}` escapes where they wrap a `;`), and hands
|
|
10
|
+
* ADO.NET strings to `mssql`;
|
|
11
|
+
* - `mssql` parses ADO.NET strings with `@tediousjs/connection-string`
|
|
12
|
+
* (`parse(…).toSchema(MSSQL_SCHEMA)`), then splits `data source` into
|
|
13
|
+
* server, instance and port. The split below mirrors that step; a
|
|
14
|
+
* differential test checks the result against `mssql`'s own
|
|
15
|
+
* `ConnectionPool.parseConnectionString`.
|
|
16
|
+
*
|
|
17
|
+
* Returns `undefined` (the registry labels it `configured sqlserver
|
|
18
|
+
* connection`) when a parser throws, when there is no server, for a named
|
|
19
|
+
* instance or named pipe, for any other scheme, for an `@` in the
|
|
20
|
+
* `sqlserver://` form (it has no userinfo) or a `sqlserver://` string that can be
|
|
21
|
+
* read more than one way (`isPrismaSqlServerUrlAmbiguous`), and for an `@` or `#` after the
|
|
22
|
+
* host of an `mssql://` URL (a password containing `/`, `?` or `#` is split
|
|
23
|
+
* there). `formatConnectionLabel`'s allowlist is the second check.
|
|
24
|
+
*/
|
|
25
|
+
export declare function parseSqlServerConnection(input: string): ConnectionLabelParts | undefined;
|
|
26
|
+
//# sourceMappingURL=label.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"label.d.ts","sourceRoot":"","sources":["../src/label.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAIlE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS,CAmBxF"}
|
package/dist/label.js
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { MSSQL_SCHEMA, parse } from "@tediousjs/connection-string";
|
|
2
|
+
import { isPrismaSqlServerUrlAmbiguous, resolveConnectionInput } from "./exec/sqlserver.js";
|
|
3
|
+
/**
|
|
4
|
+
* The display-safe parts of a SQL Server connection string, read by the same
|
|
5
|
+
* code the connection uses — never a reimplementation of the grammar
|
|
6
|
+
* (ADR 0011):
|
|
7
|
+
*
|
|
8
|
+
* - `resolveConnectionInput()` turns `mssql://…` and Prisma's
|
|
9
|
+
* `sqlserver://host:port;key=value` form into `{ server, port, database }`
|
|
10
|
+
* (the latter backward compatible, plus Prisma's `{…}` escapes where they wrap a `;`), and hands
|
|
11
|
+
* ADO.NET strings to `mssql`;
|
|
12
|
+
* - `mssql` parses ADO.NET strings with `@tediousjs/connection-string`
|
|
13
|
+
* (`parse(…).toSchema(MSSQL_SCHEMA)`), then splits `data source` into
|
|
14
|
+
* server, instance and port. The split below mirrors that step; a
|
|
15
|
+
* differential test checks the result against `mssql`'s own
|
|
16
|
+
* `ConnectionPool.parseConnectionString`.
|
|
17
|
+
*
|
|
18
|
+
* Returns `undefined` (the registry labels it `configured sqlserver
|
|
19
|
+
* connection`) when a parser throws, when there is no server, for a named
|
|
20
|
+
* instance or named pipe, for any other scheme, for an `@` in the
|
|
21
|
+
* `sqlserver://` form (it has no userinfo) or a `sqlserver://` string that can be
|
|
22
|
+
* read more than one way (`isPrismaSqlServerUrlAmbiguous`), and for an `@` or `#` after the
|
|
23
|
+
* host of an `mssql://` URL (a password containing `/`, `?` or `#` is split
|
|
24
|
+
* there). `formatConnectionLabel`'s allowlist is the second check.
|
|
25
|
+
*/
|
|
26
|
+
export function parseSqlServerConnection(input) {
|
|
27
|
+
let resolved;
|
|
28
|
+
try {
|
|
29
|
+
resolved = resolveConnectionInput(input);
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
34
|
+
if (typeof resolved === "string") {
|
|
35
|
+
return resolved.includes("://") ? undefined : adoNetParts(resolved);
|
|
36
|
+
}
|
|
37
|
+
if (input.startsWith("sqlserver://") && (input.includes("@") || isPrismaSqlServerUrlAmbiguous(input))) {
|
|
38
|
+
return undefined;
|
|
39
|
+
}
|
|
40
|
+
if (input.startsWith("mssql://") && !mssqlUrlIsUnambiguous(input))
|
|
41
|
+
return undefined;
|
|
42
|
+
return partsWithHost({
|
|
43
|
+
host: resolved.server,
|
|
44
|
+
port: resolved.port === undefined ? undefined : String(resolved.port),
|
|
45
|
+
database: resolved.database,
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
function mssqlUrlIsUnambiguous(input) {
|
|
49
|
+
const url = new URL(input);
|
|
50
|
+
return url.hash === "" && !`${url.pathname}${url.search}`.includes("@");
|
|
51
|
+
}
|
|
52
|
+
function adoNetParts(connectionString) {
|
|
53
|
+
let schema;
|
|
54
|
+
try {
|
|
55
|
+
schema = parse(connectionString).toSchema(MSSQL_SCHEMA);
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
return undefined;
|
|
59
|
+
}
|
|
60
|
+
const dataSource = schema["data source"];
|
|
61
|
+
const database = schema["initial catalog"];
|
|
62
|
+
if (typeof dataSource !== "string" || (database !== undefined && typeof database !== "string")) {
|
|
63
|
+
return undefined;
|
|
64
|
+
}
|
|
65
|
+
// mssql's `data source` handling: `np:` is rejected, `tcp:` stripped,
|
|
66
|
+
// `server\instance` names an instance, `server,port` sets the port.
|
|
67
|
+
if (/^np:/i.test(dataSource))
|
|
68
|
+
return undefined;
|
|
69
|
+
const address = dataSource.replace(/^tcp:/i, "");
|
|
70
|
+
if (address.includes("\\"))
|
|
71
|
+
return undefined;
|
|
72
|
+
// Trimmed only around a `,port`, as mssql does: `tcp: leak` keeps its space.
|
|
73
|
+
const comma = /^(.*),(.*)$/.exec(address);
|
|
74
|
+
const server = comma ? comma[1].trim() : address;
|
|
75
|
+
const port = comma ? comma[2].trim() : undefined;
|
|
76
|
+
const host = server === "." || /^\((local|\.|localdb)\)$/i.test(server) ? "localhost" : server;
|
|
77
|
+
return partsWithHost({ host, port, database });
|
|
78
|
+
}
|
|
79
|
+
/** The parts, or `undefined` (the fallback label) when there is no host: `Server=;Database=app` falls back rather than showing `sqlserver:///app`. */
|
|
80
|
+
function partsWithHost({ host, port, database, }) {
|
|
81
|
+
if (host === "")
|
|
82
|
+
return undefined;
|
|
83
|
+
return {
|
|
84
|
+
host,
|
|
85
|
+
...(port !== undefined && port !== "" ? { port } : {}),
|
|
86
|
+
...(database !== undefined && database !== "" ? { database } : {}),
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=label.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"label.js","sourceRoot":"","sources":["../src/label.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@askdb/sqlserver",
|
|
3
|
-
"version": "0.1.0-beta.
|
|
3
|
+
"version": "0.1.0-beta.20",
|
|
4
4
|
"description": "AskDB Microsoft SQL Server integration: introspection connector via sys.* catalog views and an mssql-backed catalog query runner. Pairs with @askdb/core's SQLSERVER_DIALECT.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"askdb",
|
|
@@ -41,12 +41,12 @@
|
|
|
41
41
|
"NOTICE"
|
|
42
42
|
],
|
|
43
43
|
"engines": {
|
|
44
|
-
"node": ">=22.
|
|
44
|
+
"node": ">=22.23.4"
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"@askdb/
|
|
48
|
-
"@askdb/
|
|
49
|
-
"@
|
|
47
|
+
"@askdb/core": "1.0.0-beta.44",
|
|
48
|
+
"@askdb/introspect": "0.3.0-beta.18",
|
|
49
|
+
"@tediousjs/connection-string": "^1.1.0"
|
|
50
50
|
},
|
|
51
51
|
"peerDependencies": {
|
|
52
52
|
"mssql": ">=12"
|
|
@@ -58,9 +58,9 @@
|
|
|
58
58
|
},
|
|
59
59
|
"devDependencies": {
|
|
60
60
|
"@types/mssql": "^12.3.0",
|
|
61
|
-
"mssql": "^12.
|
|
61
|
+
"mssql": "^12.7.13",
|
|
62
62
|
"typescript": "^6.0.3",
|
|
63
|
-
"vitest": "^5.0.
|
|
63
|
+
"vitest": "^5.0.5"
|
|
64
64
|
},
|
|
65
65
|
"scripts": {
|
|
66
66
|
"build": "tsc -p tsconfig.build.json",
|
package/dist/connector/glob.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"glob.d.ts","sourceRoot":"","sources":["../../src/connector/glob.ts"],"names":[],"mappings":"AAaA,MAAM,MAAM,WAAW,GAAG,CAAC,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC;AAE7D,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,SAAS,GAC1C,WAAW,CAIb"}
|
package/dist/connector/glob.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/** Minimal glob matcher — identical to the postgres / mysql / sqlite connectors. */
|
|
2
|
-
function compileGlob(pattern) {
|
|
3
|
-
let out = "^";
|
|
4
|
-
for (const ch of pattern) {
|
|
5
|
-
if (ch === "*")
|
|
6
|
-
out += ".*";
|
|
7
|
-
else if (ch === "?")
|
|
8
|
-
out += ".";
|
|
9
|
-
else if (/[.+^${}()|[\]\\]/.test(ch))
|
|
10
|
-
out += "\\" + ch;
|
|
11
|
-
else
|
|
12
|
-
out += ch;
|
|
13
|
-
}
|
|
14
|
-
out += "$";
|
|
15
|
-
return new RegExp(out);
|
|
16
|
-
}
|
|
17
|
-
export function compileTableFilters(patterns) {
|
|
18
|
-
if (!patterns || patterns.length === 0)
|
|
19
|
-
return () => true;
|
|
20
|
-
const compiled = patterns.map(compileGlob);
|
|
21
|
-
return (qualifiedName) => compiled.some((re) => re.test(qualifiedName));
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=glob.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"glob.js","sourceRoot":"","sources":["../../src/connector/glob.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,SAAS,WAAW,CAAC,OAAe;IAClC,IAAI,GAAG,GAAG,GAAG,CAAC;IACd,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;QACzB,IAAI,EAAE,KAAK,GAAG;YAAE,GAAG,IAAI,IAAI,CAAC;aACvB,IAAI,EAAE,KAAK,GAAG;YAAE,GAAG,IAAI,GAAG,CAAC;aAC3B,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;YAAE,GAAG,IAAI,IAAI,GAAG,EAAE,CAAC;;YAClD,GAAG,IAAI,EAAE,CAAC;IACjB,CAAC;IACD,GAAG,IAAI,GAAG,CAAC;IACX,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAID,MAAM,UAAU,mBAAmB,CACjC,QAA2C;IAE3C,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC;IAC1D,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC3C,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;AAC1E,CAAC"}
|
package/dist/connector/ids.d.ts
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/** Schema v2 ID conventions — aligned with the postgres / mysql / sqlite connectors. */
|
|
2
|
-
export declare function makeTableId(schemaName: string, tableName: string): string;
|
|
3
|
-
export declare function makeColumnId(schemaName: string, tableName: string, columnName: string): string;
|
|
4
|
-
//# sourceMappingURL=ids.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ids.d.ts","sourceRoot":"","sources":["../../src/connector/ids.ts"],"names":[],"mappings":"AAAA,wFAAwF;AACxF,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEzE;AAED,wBAAgB,YAAY,CAC1B,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,MAAM,CAER"}
|
package/dist/connector/ids.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/** Schema v2 ID conventions — aligned with the postgres / mysql / sqlite connectors. */
|
|
2
|
-
export function makeTableId(schemaName, tableName) {
|
|
3
|
-
return `table:${schemaName}.${tableName}`;
|
|
4
|
-
}
|
|
5
|
-
export function makeColumnId(schemaName, tableName, columnName) {
|
|
6
|
-
return `table:${schemaName}.${tableName}#${columnName}`;
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=ids.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ids.js","sourceRoot":"","sources":["../../src/connector/ids.ts"],"names":[],"mappings":"AAAA,wFAAwF;AACxF,MAAM,UAAU,WAAW,CAAC,UAAkB,EAAE,SAAiB;IAC/D,OAAO,SAAS,UAAU,IAAI,SAAS,EAAE,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,UAAkB,EAClB,SAAiB,EACjB,UAAkB;IAElB,OAAO,SAAS,UAAU,IAAI,SAAS,IAAI,UAAU,EAAE,CAAC;AAC1D,CAAC"}
|