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.
Files changed (79) hide show
  1. package/README.md +16 -1
  2. package/dist/cli/commands.js +5 -1
  3. package/dist/cli/commands.js.map +1 -1
  4. package/dist/cli/database.d.ts +2 -0
  5. package/dist/cli/database.js +145 -0
  6. package/dist/cli/database.js.map +1 -0
  7. package/dist/core/agent-profiles/types.d.ts +6 -6
  8. package/dist/core/config-store.d.ts +16 -2
  9. package/dist/core/config-store.js +55 -2
  10. package/dist/core/config-store.js.map +1 -1
  11. package/dist/core/db/catalog.d.ts +57 -0
  12. package/dist/core/db/catalog.js +38 -0
  13. package/dist/core/db/catalog.js.map +1 -0
  14. package/dist/core/db/driver.d.ts +20 -3
  15. package/dist/core/db/driver.js +8 -0
  16. package/dist/core/db/driver.js.map +1 -1
  17. package/dist/core/db/mysql-driver.d.ts +8 -1
  18. package/dist/core/db/mysql-driver.js +167 -7
  19. package/dist/core/db/mysql-driver.js.map +1 -1
  20. package/dist/core/db/postgres-driver.d.ts +8 -1
  21. package/dist/core/db/postgres-driver.js +235 -4
  22. package/dist/core/db/postgres-driver.js.map +1 -1
  23. package/dist/core/db/sqlite-driver.d.ts +7 -1
  24. package/dist/core/db/sqlite-driver.js +123 -4
  25. package/dist/core/db/sqlite-driver.js.map +1 -1
  26. package/dist/core/db-peek.d.ts +24 -0
  27. package/dist/core/db-peek.js +120 -0
  28. package/dist/core/db-peek.js.map +1 -1
  29. package/dist/core/db-write.d.ts +11 -0
  30. package/dist/core/db-write.js +118 -0
  31. package/dist/core/db-write.js.map +1 -1
  32. package/dist/core/git-actions.d.ts +12 -0
  33. package/dist/core/git-actions.js +48 -0
  34. package/dist/core/git-actions.js.map +1 -1
  35. package/dist/core/git-manager.d.ts +4 -1
  36. package/dist/core/git-manager.js +18 -2
  37. package/dist/core/git-manager.js.map +1 -1
  38. package/dist/core/github-auth.d.ts +28 -0
  39. package/dist/core/github-auth.js +134 -0
  40. package/dist/core/github-auth.js.map +1 -0
  41. package/dist/core/github-context.d.ts +12 -0
  42. package/dist/core/github-context.js +64 -0
  43. package/dist/core/github-context.js.map +1 -0
  44. package/dist/core/github-manager.d.ts +2 -0
  45. package/dist/core/github-manager.js.map +1 -1
  46. package/dist/core/process-manager.d.ts +14 -0
  47. package/dist/core/process-manager.js +39 -16
  48. package/dist/core/process-manager.js.map +1 -1
  49. package/dist/core/tool-call-store.d.ts +1 -0
  50. package/dist/core/tool-call-store.js +10 -1
  51. package/dist/core/tool-call-store.js.map +1 -1
  52. package/dist/core/types.d.ts +13 -0
  53. package/dist/index.js +2 -1
  54. package/dist/index.js.map +1 -1
  55. package/dist/mcp/tools/context.js +2 -2
  56. package/dist/mcp/tools/context.js.map +1 -1
  57. package/dist/mcp/tools/database.d.ts +1 -1
  58. package/dist/mcp/tools/database.js +53 -0
  59. package/dist/mcp/tools/database.js.map +1 -1
  60. package/dist/mcp/tools/github.js +10 -20
  61. package/dist/mcp/tools/github.js.map +1 -1
  62. package/dist/mcp/tools/index.d.ts +1 -1
  63. package/dist/web/client/assets/{code-editor-Bv3tCQrj.js → code-editor-DUgkd8Vo.js} +1 -1
  64. package/dist/web/client/assets/index-BTwlXmPn.css +1 -0
  65. package/dist/web/client/assets/index-CRM7WNxX.js +308 -0
  66. package/dist/web/client/assets/{system-process-table-q3WxburN.js → system-process-table-DbxLdSLC.js} +1 -1
  67. package/dist/web/client/index.html +3 -3
  68. package/dist/web/routes/database-routes.js +93 -2
  69. package/dist/web/routes/database-routes.js.map +1 -1
  70. package/dist/web/routes/git-routes.js +61 -1
  71. package/dist/web/routes/git-routes.js.map +1 -1
  72. package/dist/web/routes/github-context.d.ts +2 -8
  73. package/dist/web/routes/github-context.js +2 -29
  74. package/dist/web/routes/github-context.js.map +1 -1
  75. package/dist/web/routes/github-routes.js +157 -9
  76. package/dist/web/routes/github-routes.js.map +1 -1
  77. package/package.json +1 -1
  78. package/dist/web/client/assets/index-BeJHDwLO.css +0 -1
  79. 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"}
@@ -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 interface DbWriteDriver {
64
- readonly engine: DatabaseEngine;
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
- close(): Promise<void>;
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. */
@@ -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":"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"}
1
+ {"version":3,"file":"driver.js","sourceRoot":"","sources":["../../../src/core/db/driver.ts"],"names":[],"mappings":"AAuGA,sFAAsF;AACtF,MAAM,UAAU,yBAAyB,CACvC,OAA0B,EAC1B,YAAoB;IAEpB,IACE,OAAO,CAAC,MAAM;QACd,OAAO,CAAC,oBAAoB,KAAK,SAAS;QAC1C,YAAY,KAAK,OAAO,CAAC,oBAAoB,EAC7C,CAAC;QACD,MAAM,IAAI,KAAK,CACb,mBAAmB,YAAY,mBAAmB,OAAO,CAAC,oBAAoB,oCAAoC,CACnH,CAAC;IACJ,CAAC;AACH,CAAC;AAED,sEAAsE;AACtE,MAAM,eAAe,GAAG,kBAAkB,CAAC;AAE3C,gFAAgF;AAChF,MAAM,UAAU,oBAAoB,CAAC,KAAa;IAChD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,sBAAsB,KAAK,EAAE,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,UAAU,CAAC,KAAyB,EAAE,QAAQ,GAAG,GAAG;IAClE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC;IACpE,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACzD,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,WAAW,CAAC,MAA0B;IACpD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,CAAC,CAAC;IAC/D,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACvD,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACjD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,OAAO,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAC;AAED,8EAA8E;AAC9E,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC;IAC5B,QAAQ;IACR,MAAM;IACN,SAAS;IACT,QAAQ;IACR,UAAU;IACV,MAAM;CACP,CAAC,CAAC;AAEH,2EAA2E;AAC3E,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,OAAO,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,kFAAkF;AAClF,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC;IAC3B,QAAQ;IACR,OAAO;IACP,MAAM;IACN,UAAU;IACV,QAAQ;IACR,OAAO;IACP,QAAQ;CACT,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,MAAsB,EAAE,GAAW;IACjE,IAAI,MAAM,KAAK,OAAO,IAAI,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9E,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAe;IAC9C,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC1B,IAAI;QACJ,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,IAAI;QACd,UAAU,EAAE,KAAK;KAClB,CAAC,CAAC,CAAC;AACN,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACvD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;IACvD,IAAI,KAAK,YAAY,IAAI;QAAE,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;IACtD,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,MAAM,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;IACjE,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC,CAAC,wBAAwB;IACrE,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,GAA4B;IAE5B,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,GAAG,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import type { DatabaseEngine } from "../types.js";
2
- import { type DbDriver, type DbWriteDriver, type QueryResult, type RowSample, type TableRef, type WriteResult } from "./driver.js";
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 { assertSafeIdentifier, clampLimit, clampOffset, columnsFromNames, normalizeRow, prepareUserQuery, } from "./driver.js";
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 = assertSafeIdentifier(table.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 \`${name}\` LIMIT ? OFFSET ?`, [max, skip]);
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 columnsFor(conn, name) {
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 DbDriver, type DbWriteDriver, type QueryResult, type RowSample, type TableRef, type WriteResult } from "./driver.js";
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
  }