nomoreide 0.1.97 → 0.1.99
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 +16 -1
- package/dist/cli/commands.js +5 -1
- package/dist/cli/commands.js.map +1 -1
- package/dist/cli/database.d.ts +2 -0
- package/dist/cli/database.js +145 -0
- package/dist/cli/database.js.map +1 -0
- package/dist/core/agent-profiles/types.d.ts +6 -6
- package/dist/core/config-store.d.ts +16 -2
- package/dist/core/config-store.js +55 -2
- package/dist/core/config-store.js.map +1 -1
- package/dist/core/db/catalog.d.ts +57 -0
- package/dist/core/db/catalog.js +38 -0
- package/dist/core/db/catalog.js.map +1 -0
- package/dist/core/db/driver.d.ts +20 -3
- package/dist/core/db/driver.js +8 -0
- package/dist/core/db/driver.js.map +1 -1
- package/dist/core/db/mysql-driver.d.ts +8 -1
- package/dist/core/db/mysql-driver.js +167 -7
- package/dist/core/db/mysql-driver.js.map +1 -1
- package/dist/core/db/postgres-driver.d.ts +8 -1
- package/dist/core/db/postgres-driver.js +235 -4
- package/dist/core/db/postgres-driver.js.map +1 -1
- package/dist/core/db/sqlite-driver.d.ts +7 -1
- package/dist/core/db/sqlite-driver.js +123 -4
- package/dist/core/db/sqlite-driver.js.map +1 -1
- package/dist/core/db-peek.d.ts +24 -0
- package/dist/core/db-peek.js +120 -0
- package/dist/core/db-peek.js.map +1 -1
- package/dist/core/db-write.d.ts +11 -0
- package/dist/core/db-write.js +118 -0
- package/dist/core/db-write.js.map +1 -1
- package/dist/core/git-actions.d.ts +12 -0
- package/dist/core/git-actions.js +48 -0
- package/dist/core/git-actions.js.map +1 -1
- package/dist/core/git-manager.d.ts +4 -1
- package/dist/core/git-manager.js +18 -2
- package/dist/core/git-manager.js.map +1 -1
- package/dist/core/github-auth.d.ts +28 -0
- package/dist/core/github-auth.js +134 -0
- package/dist/core/github-auth.js.map +1 -0
- package/dist/core/github-context.d.ts +12 -0
- package/dist/core/github-context.js +64 -0
- package/dist/core/github-context.js.map +1 -0
- package/dist/core/github-manager.d.ts +2 -0
- package/dist/core/github-manager.js.map +1 -1
- package/dist/core/process-manager.d.ts +14 -0
- package/dist/core/process-manager.js +39 -16
- package/dist/core/process-manager.js.map +1 -1
- package/dist/core/tool-call-store.d.ts +1 -0
- package/dist/core/tool-call-store.js +10 -1
- package/dist/core/tool-call-store.js.map +1 -1
- package/dist/core/types.d.ts +13 -0
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp/tools/context.js +2 -2
- package/dist/mcp/tools/context.js.map +1 -1
- package/dist/mcp/tools/database.d.ts +1 -1
- package/dist/mcp/tools/database.js +53 -0
- package/dist/mcp/tools/database.js.map +1 -1
- package/dist/mcp/tools/github.js +10 -20
- package/dist/mcp/tools/github.js.map +1 -1
- package/dist/mcp/tools/index.d.ts +1 -1
- package/dist/web/client/assets/{code-editor-Bv3tCQrj.js → code-editor-DUgkd8Vo.js} +1 -1
- package/dist/web/client/assets/index-BTwlXmPn.css +1 -0
- package/dist/web/client/assets/index-CRM7WNxX.js +308 -0
- package/dist/web/client/assets/{system-process-table-q3WxburN.js → system-process-table-DbxLdSLC.js} +1 -1
- package/dist/web/client/index.html +3 -3
- package/dist/web/routes/database-routes.js +93 -2
- package/dist/web/routes/database-routes.js.map +1 -1
- package/dist/web/routes/git-routes.js +61 -1
- package/dist/web/routes/git-routes.js.map +1 -1
- package/dist/web/routes/github-context.d.ts +2 -8
- package/dist/web/routes/github-context.js +2 -29
- package/dist/web/routes/github-context.js.map +1 -1
- package/dist/web/routes/github-routes.js +157 -9
- package/dist/web/routes/github-routes.js.map +1 -1
- package/package.json +1 -1
- package/dist/web/client/assets/index-BeJHDwLO.css +0 -1
- package/dist/web/client/assets/index-zb3rhV5y.js +0 -308
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { ColumnInfo, TableRef } from "./driver.js";
|
|
2
|
+
export type DatabaseObjectKind = "table" | "view" | "materializedView" | "function" | "procedure" | "sequence";
|
|
3
|
+
export interface DatabaseCapabilities {
|
|
4
|
+
objectKinds: DatabaseObjectKind[];
|
|
5
|
+
tableDetails: Array<"columns" | "indexes" | "constraints" | "triggers">;
|
|
6
|
+
}
|
|
7
|
+
export interface DatabaseSchema {
|
|
8
|
+
name: string;
|
|
9
|
+
}
|
|
10
|
+
export interface DatabaseObject {
|
|
11
|
+
/** Opaque server-issued key; callers must never construct or parse it. */
|
|
12
|
+
key: string;
|
|
13
|
+
schema: string;
|
|
14
|
+
name: string;
|
|
15
|
+
kind: DatabaseObjectKind;
|
|
16
|
+
qualifiedName: string;
|
|
17
|
+
/** Engine-native identity included only to disambiguate live catalog entries. */
|
|
18
|
+
nativeId?: string;
|
|
19
|
+
}
|
|
20
|
+
export interface DatabaseIndex {
|
|
21
|
+
name: string;
|
|
22
|
+
definition: string;
|
|
23
|
+
unique: boolean;
|
|
24
|
+
}
|
|
25
|
+
export interface DatabaseConstraint {
|
|
26
|
+
name: string;
|
|
27
|
+
type: string;
|
|
28
|
+
definition: string;
|
|
29
|
+
}
|
|
30
|
+
export interface DatabaseTrigger {
|
|
31
|
+
name: string;
|
|
32
|
+
definition: string;
|
|
33
|
+
}
|
|
34
|
+
export interface DatabaseObjectDetails {
|
|
35
|
+
object: DatabaseObject;
|
|
36
|
+
columns: ColumnInfo[];
|
|
37
|
+
indexes: DatabaseIndex[];
|
|
38
|
+
constraints: DatabaseConstraint[];
|
|
39
|
+
triggers: DatabaseTrigger[];
|
|
40
|
+
/** Function/view/trigger definition, capped before it leaves the core. */
|
|
41
|
+
definition?: string;
|
|
42
|
+
/** Executable DDL that recreates this object, capped before it leaves the core. */
|
|
43
|
+
createScript?: string;
|
|
44
|
+
}
|
|
45
|
+
interface ObjectIdentity {
|
|
46
|
+
schema: string;
|
|
47
|
+
name: string;
|
|
48
|
+
kind: DatabaseObjectKind;
|
|
49
|
+
nativeId?: string;
|
|
50
|
+
}
|
|
51
|
+
export declare function objectKey(identity: ObjectIdentity): string;
|
|
52
|
+
export declare function objectFromIdentity(identity: ObjectIdentity): DatabaseObject;
|
|
53
|
+
/** Resolve an opaque key only by equality against a freshly-read live catalog. */
|
|
54
|
+
export declare function resolveCatalogObject(objects: DatabaseObject[], key: string): DatabaseObject;
|
|
55
|
+
export declare function tableRefForObject(object: DatabaseObject): TableRef;
|
|
56
|
+
export declare function capDefinition(value: string | null | undefined): string | undefined;
|
|
57
|
+
export {};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
const DEFINITION_LIMIT = 64 * 1024;
|
|
2
|
+
export function objectKey(identity) {
|
|
3
|
+
return Buffer.from(JSON.stringify(identity), "utf8").toString("base64url");
|
|
4
|
+
}
|
|
5
|
+
export function objectFromIdentity(identity) {
|
|
6
|
+
return {
|
|
7
|
+
...identity,
|
|
8
|
+
key: objectKey(identity),
|
|
9
|
+
qualifiedName: identity.schema === "main"
|
|
10
|
+
? identity.name
|
|
11
|
+
: `${identity.schema}.${identity.name}`,
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
/** Resolve an opaque key only by equality against a freshly-read live catalog. */
|
|
15
|
+
export function resolveCatalogObject(objects, key) {
|
|
16
|
+
const object = objects.find((candidate) => candidate.key === key);
|
|
17
|
+
if (!object)
|
|
18
|
+
throw new Error("Database object was not found in the live catalog.");
|
|
19
|
+
return object;
|
|
20
|
+
}
|
|
21
|
+
export function tableRefForObject(object) {
|
|
22
|
+
if (object.kind !== "table" && object.kind !== "view" && object.kind !== "materializedView") {
|
|
23
|
+
throw new Error(`Database object "${object.qualifiedName}" cannot be sampled.`);
|
|
24
|
+
}
|
|
25
|
+
return {
|
|
26
|
+
schema: object.schema,
|
|
27
|
+
name: object.name,
|
|
28
|
+
qualifiedName: object.qualifiedName,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
export function capDefinition(value) {
|
|
32
|
+
if (!value)
|
|
33
|
+
return undefined;
|
|
34
|
+
return value.length <= DEFINITION_LIMIT
|
|
35
|
+
? value
|
|
36
|
+
: `${value.slice(0, DEFINITION_LIMIT)}\n-- Definition truncated by NoMoreIDE.`;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=catalog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../../src/core/db/catalog.ts"],"names":[],"mappings":"AAkEA,MAAM,gBAAgB,GAAG,EAAE,GAAG,IAAI,CAAC;AAEnC,MAAM,UAAU,SAAS,CAAC,QAAwB;IAChD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,QAAwB;IACzD,OAAO;QACL,GAAG,QAAQ;QACX,GAAG,EAAE,SAAS,CAAC,QAAQ,CAAC;QACxB,aAAa,EACX,QAAQ,CAAC,MAAM,KAAK,MAAM;YACxB,CAAC,CAAC,QAAQ,CAAC,IAAI;YACf,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,IAAI,EAAE;KAC5C,CAAC;AACJ,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,oBAAoB,CAClC,OAAyB,EACzB,GAAW;IAEX,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;IAClE,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACnF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAsB;IACtD,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;QAC5F,MAAM,IAAI,KAAK,CAAC,oBAAoB,MAAM,CAAC,aAAa,sBAAsB,CAAC,CAAC;IAClF,CAAC;IACD,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,aAAa,EAAE,MAAM,CAAC,aAAa;KACpC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAgC;IAC5D,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,OAAO,KAAK,CAAC,MAAM,IAAI,gBAAgB;QACrC,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,yCAAyC,CAAC;AACnF,CAAC"}
|
package/dist/core/db/driver.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { DatabaseEngine } from "../types.js";
|
|
2
|
+
import type { DatabaseCapabilities, DatabaseObject, DatabaseObjectDetails, DatabaseObjectKind, DatabaseSchema } from "./catalog.js";
|
|
2
3
|
/** A table the user can browse. `schema` is undefined for SQLite. */
|
|
3
4
|
export interface TableRef {
|
|
4
5
|
schema?: string;
|
|
@@ -40,6 +41,10 @@ export interface DbDriver {
|
|
|
40
41
|
/** Throws if the connection cannot be established. */
|
|
41
42
|
testConnection(): Promise<void>;
|
|
42
43
|
listTables(): Promise<TableRef[]>;
|
|
44
|
+
capabilities(): DatabaseCapabilities;
|
|
45
|
+
listSchemas(): Promise<DatabaseSchema[]>;
|
|
46
|
+
listObjects(schema: string, kinds?: DatabaseObjectKind[]): Promise<DatabaseObject[]>;
|
|
47
|
+
describeObject(object: DatabaseObject): Promise<DatabaseObjectDetails>;
|
|
43
48
|
sampleRows(table: TableRef, limit: number, offset?: number): Promise<RowSample>;
|
|
44
49
|
/** Run an arbitrary SELECT-style statement in a read-only context. */
|
|
45
50
|
runQuery(sql: string, maxRows: number): Promise<QueryResult>;
|
|
@@ -60,16 +65,28 @@ export interface WriteResult {
|
|
|
60
65
|
* read-only consumer can never reach a write. A writable connection is only
|
|
61
66
|
* ever constructed by the `DbWrite` module, behind a per-connection unlock.
|
|
62
67
|
*/
|
|
63
|
-
export
|
|
64
|
-
|
|
68
|
+
export type PrimaryKeyValue = string | number | boolean;
|
|
69
|
+
export type PrimaryKeyTuple = Record<string, PrimaryKeyValue>;
|
|
70
|
+
export interface DeleteRowsOptions {
|
|
71
|
+
table: TableRef;
|
|
72
|
+
primaryKeys: string[];
|
|
73
|
+
tuples: PrimaryKeyTuple[];
|
|
74
|
+
commit: boolean;
|
|
75
|
+
/** When supplied for a commit, a mismatch must roll the transaction back. */
|
|
76
|
+
expectedAffectedRows?: number;
|
|
77
|
+
}
|
|
78
|
+
export interface DbWriteDriver extends DbDriver {
|
|
65
79
|
/**
|
|
66
80
|
* Run a statement inside a read-write transaction. When `commit` is false the
|
|
67
81
|
* transaction is rolled back, so the caller can preview affected rows without
|
|
68
82
|
* persisting anything.
|
|
69
83
|
*/
|
|
70
84
|
executeWrite(sql: string, commit: boolean): Promise<WriteResult>;
|
|
71
|
-
|
|
85
|
+
/** Delete exact primary-key tuples using bound values in one transaction. */
|
|
86
|
+
deleteRows(options: DeleteRowsOptions): Promise<WriteResult>;
|
|
72
87
|
}
|
|
88
|
+
/** Throw inside the active transaction when a guarded commit changed unexpectedly. */
|
|
89
|
+
export declare function assertExpectedDeleteCount(options: DeleteRowsOptions, affectedRows: number): void;
|
|
73
90
|
/** Defence in depth: a catalog-sourced identifier must still be well-formed. */
|
|
74
91
|
export declare function assertSafeIdentifier(value: string): string;
|
|
75
92
|
/** Clamp a caller-supplied row limit into a sane range. */
|
package/dist/core/db/driver.js
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
/** Throw inside the active transaction when a guarded commit changed unexpectedly. */
|
|
2
|
+
export function assertExpectedDeleteCount(options, affectedRows) {
|
|
3
|
+
if (options.commit &&
|
|
4
|
+
options.expectedAffectedRows !== undefined &&
|
|
5
|
+
affectedRows !== options.expectedAffectedRows) {
|
|
6
|
+
throw new Error(`Delete affected ${affectedRows} rows; expected ${options.expectedAffectedRows}. The transaction was rolled back.`);
|
|
7
|
+
}
|
|
8
|
+
}
|
|
1
9
|
/** Identifiers we accept after resolving against the live catalog. */
|
|
2
10
|
const SAFE_IDENTIFIER = /^[A-Za-z0-9_$]+$/;
|
|
3
11
|
/** Defence in depth: a catalog-sourced identifier must still be well-formed. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver.js","sourceRoot":"","sources":["../../../src/core/db/driver.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"driver.js","sourceRoot":"","sources":["../../../src/core/db/driver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { DatabaseEngine } from "../types.js";
|
|
2
|
-
import { type
|
|
2
|
+
import { type DatabaseCapabilities, type DatabaseObject, type DatabaseObjectDetails, type DatabaseObjectKind, type DatabaseSchema } from "./catalog.js";
|
|
3
|
+
import { type DeleteRowsOptions, type DbDriver, type DbWriteDriver, type QueryResult, type RowSample, type TableRef, type WriteResult } from "./driver.js";
|
|
3
4
|
/**
|
|
4
5
|
* MySQL / MariaDB driver. Read operations run in a `START TRANSACTION READ
|
|
5
6
|
* ONLY` block, then roll back. A driver constructed with `{ writable: true }`
|
|
@@ -17,9 +18,15 @@ export declare class MysqlDriver implements DbDriver, DbWriteDriver {
|
|
|
17
18
|
private withReadOnly;
|
|
18
19
|
testConnection(): Promise<void>;
|
|
19
20
|
listTables(): Promise<TableRef[]>;
|
|
21
|
+
capabilities(): DatabaseCapabilities;
|
|
22
|
+
listSchemas(): Promise<DatabaseSchema[]>;
|
|
23
|
+
listObjects(schema: string, kinds?: DatabaseObjectKind[]): Promise<DatabaseObject[]>;
|
|
24
|
+
describeObject(object: DatabaseObject): Promise<DatabaseObjectDetails>;
|
|
25
|
+
private createScriptFor;
|
|
20
26
|
sampleRows(table: TableRef, limit: number, offset?: number): Promise<RowSample>;
|
|
21
27
|
runQuery(sql: string, maxRows: number): Promise<QueryResult>;
|
|
22
28
|
executeWrite(sql: string, commit: boolean): Promise<WriteResult>;
|
|
29
|
+
deleteRows(options: DeleteRowsOptions): Promise<WriteResult>;
|
|
23
30
|
private columnsFor;
|
|
24
31
|
close(): Promise<void>;
|
|
25
32
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { capDefinition, objectFromIdentity, } from "./catalog.js";
|
|
2
|
+
import { assertExpectedDeleteCount, clampLimit, clampOffset, columnsFromNames, normalizeRow, prepareUserQuery, } from "./driver.js";
|
|
2
3
|
/**
|
|
3
4
|
* MySQL / MariaDB driver. Read operations run in a `START TRANSACTION READ
|
|
4
5
|
* ONLY` block, then roll back. A driver constructed with `{ writable: true }`
|
|
@@ -62,13 +63,135 @@ export class MysqlDriver {
|
|
|
62
63
|
});
|
|
63
64
|
});
|
|
64
65
|
}
|
|
66
|
+
capabilities() {
|
|
67
|
+
return {
|
|
68
|
+
objectKinds: ["table", "view", "function", "procedure"],
|
|
69
|
+
tableDetails: ["columns", "indexes", "constraints", "triggers"],
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
async listSchemas() {
|
|
73
|
+
return this.withReadOnly(async (conn) => {
|
|
74
|
+
const [rows] = await conn.query("SELECT DATABASE() AS name");
|
|
75
|
+
const name = String(rows[0]?.name ?? "");
|
|
76
|
+
return name ? [{ name }] : [];
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
async listObjects(schema, kinds) {
|
|
80
|
+
const allowed = new Set(kinds ?? this.capabilities().objectKinds);
|
|
81
|
+
return this.withReadOnly(async (conn) => {
|
|
82
|
+
const objects = [];
|
|
83
|
+
const [tables] = await conn.query(`SELECT table_name, table_type
|
|
84
|
+
FROM information_schema.tables
|
|
85
|
+
WHERE table_schema = ? ORDER BY table_name`, [schema]);
|
|
86
|
+
for (const table of tables) {
|
|
87
|
+
const kind = String(table.table_type ?? table.TABLE_TYPE) === "VIEW" ? "view" : "table";
|
|
88
|
+
if (allowed.has(kind)) {
|
|
89
|
+
objects.push(objectFromIdentity({ schema, name: String(table.table_name ?? table.TABLE_NAME), kind }));
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
if (allowed.has("function") || allowed.has("procedure")) {
|
|
93
|
+
const [routines] = await conn.query(`SELECT routine_name, routine_type
|
|
94
|
+
FROM information_schema.routines
|
|
95
|
+
WHERE routine_schema = ? ORDER BY routine_name`, [schema]);
|
|
96
|
+
for (const routine of routines) {
|
|
97
|
+
const kind = String(routine.routine_type ?? routine.ROUTINE_TYPE) === "PROCEDURE" ? "procedure" : "function";
|
|
98
|
+
if (allowed.has(kind)) {
|
|
99
|
+
objects.push(objectFromIdentity({ schema, name: String(routine.routine_name ?? routine.ROUTINE_NAME), kind }));
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return objects;
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
async describeObject(object) {
|
|
107
|
+
const live = await this.listObjects(object.schema, [object.kind]);
|
|
108
|
+
const resolved = live.find((candidate) => candidate.key === object.key);
|
|
109
|
+
if (!resolved)
|
|
110
|
+
throw new Error("Database object was not found in the live catalog.");
|
|
111
|
+
return this.withReadOnly(async (conn) => {
|
|
112
|
+
const columns = ["table", "view"].includes(resolved.kind)
|
|
113
|
+
? await this.columnsFor(conn, resolved.name, resolved.schema)
|
|
114
|
+
: [];
|
|
115
|
+
const [indexRows] = await conn.query(`SELECT index_name, non_unique,
|
|
116
|
+
GROUP_CONCAT(column_name ORDER BY seq_in_index) AS columns
|
|
117
|
+
FROM information_schema.statistics
|
|
118
|
+
WHERE table_schema = ? AND table_name = ?
|
|
119
|
+
GROUP BY index_name, non_unique ORDER BY index_name`, [resolved.schema, resolved.name]);
|
|
120
|
+
const indexes = indexRows.map((row) => ({
|
|
121
|
+
name: String(row.index_name ?? row.INDEX_NAME),
|
|
122
|
+
unique: Number(row.non_unique ?? row.NON_UNIQUE) === 0,
|
|
123
|
+
definition: capDefinition(`(${String(row.columns ?? row.COLUMNS ?? "")})`) ?? "",
|
|
124
|
+
}));
|
|
125
|
+
const [constraintRows] = await conn.query(`SELECT constraint_name, constraint_type
|
|
126
|
+
FROM information_schema.table_constraints
|
|
127
|
+
WHERE table_schema = ? AND table_name = ? ORDER BY constraint_name`, [resolved.schema, resolved.name]);
|
|
128
|
+
const constraints = constraintRows.map((row) => ({
|
|
129
|
+
name: String(row.constraint_name ?? row.CONSTRAINT_NAME),
|
|
130
|
+
type: String(row.constraint_type ?? row.CONSTRAINT_TYPE),
|
|
131
|
+
definition: String(row.constraint_type ?? row.CONSTRAINT_TYPE),
|
|
132
|
+
}));
|
|
133
|
+
const [triggerRows] = await conn.query(`SELECT trigger_name, action_statement
|
|
134
|
+
FROM information_schema.triggers
|
|
135
|
+
WHERE trigger_schema = ? AND event_object_table = ? ORDER BY trigger_name`, [resolved.schema, resolved.name]);
|
|
136
|
+
const triggers = triggerRows.map((row) => ({
|
|
137
|
+
name: String(row.trigger_name ?? row.TRIGGER_NAME),
|
|
138
|
+
definition: capDefinition(String(row.action_statement ?? row.ACTION_STATEMENT ?? "")) ?? "",
|
|
139
|
+
}));
|
|
140
|
+
let definition;
|
|
141
|
+
if (resolved.kind === "view") {
|
|
142
|
+
const [rows] = await conn.query(`SELECT view_definition AS definition FROM information_schema.views
|
|
143
|
+
WHERE table_schema = ? AND table_name = ?`, [resolved.schema, resolved.name]);
|
|
144
|
+
definition = String(rows[0]?.definition ?? "") || undefined;
|
|
145
|
+
}
|
|
146
|
+
else if (resolved.kind === "function" || resolved.kind === "procedure") {
|
|
147
|
+
const [rows] = await conn.query(`SELECT routine_definition AS definition FROM information_schema.routines
|
|
148
|
+
WHERE routine_schema = ? AND routine_name = ? AND routine_type = ?`, [resolved.schema, resolved.name, resolved.kind === "procedure" ? "PROCEDURE" : "FUNCTION"]);
|
|
149
|
+
definition = String(rows[0]?.definition ?? "") || undefined;
|
|
150
|
+
}
|
|
151
|
+
return {
|
|
152
|
+
object: resolved,
|
|
153
|
+
columns,
|
|
154
|
+
indexes,
|
|
155
|
+
constraints,
|
|
156
|
+
triggers,
|
|
157
|
+
definition: capDefinition(definition),
|
|
158
|
+
createScript: capDefinition(await this.createScriptFor(conn, resolved)),
|
|
159
|
+
};
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
async createScriptFor(conn, object) {
|
|
163
|
+
const qualifiedName = `${quoteIdentifier(object.schema)}.${quoteIdentifier(object.name)}`;
|
|
164
|
+
const objectType = object.kind === "procedure"
|
|
165
|
+
? "PROCEDURE"
|
|
166
|
+
: object.kind === "function"
|
|
167
|
+
? "FUNCTION"
|
|
168
|
+
: object.kind === "view"
|
|
169
|
+
? "VIEW"
|
|
170
|
+
: "TABLE";
|
|
171
|
+
try {
|
|
172
|
+
const [rows] = await conn.query(`SHOW CREATE ${objectType} ${qualifiedName}`);
|
|
173
|
+
const row = rows[0];
|
|
174
|
+
if (!row)
|
|
175
|
+
return undefined;
|
|
176
|
+
const entry = Object.entries(row).find(([key]) => key.toLowerCase().startsWith("create "));
|
|
177
|
+
return entry ? terminateStatement(String(entry[1])) : undefined;
|
|
178
|
+
}
|
|
179
|
+
catch {
|
|
180
|
+
// SHOW CREATE can require privileges beyond catalog inspection. Keep
|
|
181
|
+
// object details useful even when that optional privilege is absent.
|
|
182
|
+
return undefined;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
65
185
|
async sampleRows(table, limit, offset) {
|
|
66
|
-
const name =
|
|
186
|
+
const name = table.name;
|
|
187
|
+
const qualifiedName = table.schema
|
|
188
|
+
? `${quoteIdentifier(table.schema)}.${quoteIdentifier(name)}`
|
|
189
|
+
: quoteIdentifier(name);
|
|
67
190
|
const max = clampLimit(limit);
|
|
68
191
|
const skip = clampOffset(offset);
|
|
69
192
|
return this.withReadOnly(async (conn) => {
|
|
70
|
-
const columns = await this.columnsFor(conn, name);
|
|
71
|
-
const [rows] = await conn.query(`SELECT * FROM
|
|
193
|
+
const columns = await this.columnsFor(conn, name, table.schema);
|
|
194
|
+
const [rows] = await conn.query(`SELECT * FROM ${qualifiedName} LIMIT ? OFFSET ?`, [max, skip]);
|
|
72
195
|
return {
|
|
73
196
|
columns,
|
|
74
197
|
rows: rows.map((row) => normalizeRow(row)),
|
|
@@ -131,11 +254,41 @@ export class MysqlDriver {
|
|
|
131
254
|
conn.release();
|
|
132
255
|
}
|
|
133
256
|
}
|
|
134
|
-
async
|
|
257
|
+
async deleteRows(options) {
|
|
258
|
+
if (!this.writable)
|
|
259
|
+
throw new Error("This connection is read-only.");
|
|
260
|
+
const table = options.table.schema
|
|
261
|
+
? `${quoteIdentifier(options.table.schema)}.${quoteIdentifier(options.table.name)}`
|
|
262
|
+
: quoteIdentifier(options.table.name);
|
|
263
|
+
const predicate = options.tuples
|
|
264
|
+
.map(() => `(${options.primaryKeys
|
|
265
|
+
.map((column) => `${quoteIdentifier(column)} = ?`)
|
|
266
|
+
.join(" AND ")})`)
|
|
267
|
+
.join(" OR ");
|
|
268
|
+
const values = options.tuples.flatMap((tuple) => options.primaryKeys.map((column) => tuple[column]));
|
|
269
|
+
const pool = await this.pool();
|
|
270
|
+
const conn = await pool.getConnection();
|
|
271
|
+
try {
|
|
272
|
+
await conn.query("START TRANSACTION");
|
|
273
|
+
const [result] = await conn.query(`DELETE FROM ${table} WHERE ${predicate}`, values);
|
|
274
|
+
const affectedRows = result.affectedRows ?? 0;
|
|
275
|
+
assertExpectedDeleteCount(options, affectedRows);
|
|
276
|
+
await conn.query(options.commit ? "COMMIT" : "ROLLBACK");
|
|
277
|
+
return { affectedRows, rows: [], columns: [], committed: options.commit };
|
|
278
|
+
}
|
|
279
|
+
catch (error) {
|
|
280
|
+
await conn.query("ROLLBACK").catch(() => { });
|
|
281
|
+
throw error;
|
|
282
|
+
}
|
|
283
|
+
finally {
|
|
284
|
+
conn.release();
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
async columnsFor(conn, name, schema) {
|
|
135
288
|
const [rows] = await conn.query(`SELECT column_name, data_type, is_nullable, column_key
|
|
136
289
|
FROM information_schema.columns
|
|
137
|
-
WHERE table_schema = DATABASE() AND table_name = ?
|
|
138
|
-
ORDER BY ordinal_position`, [name]);
|
|
290
|
+
WHERE table_schema = COALESCE(?, DATABASE()) AND table_name = ?
|
|
291
|
+
ORDER BY ordinal_position`, [schema ?? null, name]);
|
|
139
292
|
return rows.map((row) => ({
|
|
140
293
|
name: String(row.column_name ?? row.COLUMN_NAME),
|
|
141
294
|
dataType: String(row.data_type ?? row.DATA_TYPE),
|
|
@@ -151,4 +304,11 @@ export class MysqlDriver {
|
|
|
151
304
|
}
|
|
152
305
|
}
|
|
153
306
|
}
|
|
307
|
+
function quoteIdentifier(value) {
|
|
308
|
+
return `\`${value.replaceAll("`", "``")}\``;
|
|
309
|
+
}
|
|
310
|
+
function terminateStatement(value) {
|
|
311
|
+
const statement = value.trim();
|
|
312
|
+
return statement.endsWith(";") ? statement : `${statement};`;
|
|
313
|
+
}
|
|
154
314
|
//# sourceMappingURL=mysql-driver.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mysql-driver.js","sourceRoot":"","sources":["../../../src/core/db/mysql-driver.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mysql-driver.js","sourceRoot":"","sources":["../../../src/core/db/mysql-driver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { DatabaseEngine } from "../types.js";
|
|
2
|
-
import { type
|
|
2
|
+
import { type DatabaseCapabilities, type DatabaseObject, type DatabaseObjectDetails, type DatabaseObjectKind, type DatabaseSchema } from "./catalog.js";
|
|
3
|
+
import { type DeleteRowsOptions, type DbDriver, type DbWriteDriver, type QueryResult, type RowSample, type TableRef, type WriteResult } from "./driver.js";
|
|
3
4
|
/**
|
|
4
5
|
* Postgres driver. By default every statement runs inside a `READ ONLY`
|
|
5
6
|
* transaction so a mistaken write is rejected by the server. A driver
|
|
@@ -18,9 +19,15 @@ export declare class PostgresDriver implements DbDriver, DbWriteDriver {
|
|
|
18
19
|
private withReadOnly;
|
|
19
20
|
testConnection(): Promise<void>;
|
|
20
21
|
listTables(): Promise<TableRef[]>;
|
|
22
|
+
capabilities(): DatabaseCapabilities;
|
|
23
|
+
listSchemas(): Promise<DatabaseSchema[]>;
|
|
24
|
+
listObjects(schema: string, kinds?: DatabaseObjectKind[]): Promise<DatabaseObject[]>;
|
|
25
|
+
describeObject(object: DatabaseObject): Promise<DatabaseObjectDetails>;
|
|
26
|
+
private createScriptFor;
|
|
21
27
|
sampleRows(table: TableRef, limit: number, offset?: number): Promise<RowSample>;
|
|
22
28
|
runQuery(sql: string, maxRows: number): Promise<QueryResult>;
|
|
23
29
|
executeWrite(sql: string, commit: boolean): Promise<WriteResult>;
|
|
30
|
+
deleteRows(options: DeleteRowsOptions): Promise<WriteResult>;
|
|
24
31
|
private columnsFor;
|
|
25
32
|
close(): Promise<void>;
|
|
26
33
|
}
|