cgraphx 1.3.0 → 1.4.0
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/dist/.claude-template/skills/cgraphx-guide/how-to-use.html +5 -4
- package/dist/.claude-template/skills/db-query/SKILL.md +75 -42
- package/dist/.claude-template/skills/db-query/agent-prompt.md +12 -13
- package/dist/.claude-template/skills/export-table-ddl/SKILL.md +167 -0
- package/dist/.claude-template/skills/export-table-ddl/closed-loop.html +163 -0
- package/dist/.claude-template/skills/export-table-ddl/evals/evals.json +26 -0
- package/dist/.claude-template/skills/export-table-ddl/scripts/export-ddl.mjs +163 -0
- package/dist/.claude-template/skills/run-api-test/SKILL.md +5 -5
- package/dist/.claude-template/skills/run-api-test/references/test-scope.md +1 -1
- package/dist/.claude-template/skills/write-api/SKILL.md +10 -10
- package/dist/.claude-template/skills/write-api/assets/template-api-spec.md +6 -6
- package/dist/.claude-template/skills/write-api/assets/template-request.bru +1 -4
- package/dist/.claude-template/skills/write-api/references/ai-prompts.md +1 -1
- package/dist/.claude-template/skills/write-api/references/api-spec-format.md +2 -2
- package/dist/.claude-template/skills/write-api/references/bru-format.md +6 -11
- package/dist/.claude-template/skills/write-api/references/collection-layout.md +24 -15
- package/dist/dbquery/cli.d.ts.map +1 -1
- package/dist/dbquery/cli.js +20 -3
- package/dist/dbquery/cli.js.map +1 -1
- package/dist/dbquery/executor.d.ts.map +1 -1
- package/dist/dbquery/executor.js +15 -23
- package/dist/dbquery/executor.js.map +1 -1
- package/dist/dbquery/format.d.ts +15 -1
- package/dist/dbquery/format.d.ts.map +1 -1
- package/dist/dbquery/format.js +86 -23
- package/dist/dbquery/format.js.map +1 -1
- package/dist/dbquery/identifiers.d.ts +19 -0
- package/dist/dbquery/identifiers.d.ts.map +1 -0
- package/dist/dbquery/identifiers.js +37 -0
- package/dist/dbquery/identifiers.js.map +1 -0
- package/dist/dbquery/index.d.ts +1 -1
- package/dist/dbquery/index.d.ts.map +1 -1
- package/dist/dbquery/index.js.map +1 -1
- package/dist/dbquery/queries.d.ts +23 -3
- package/dist/dbquery/queries.d.ts.map +1 -1
- package/dist/dbquery/queries.js +46 -27
- package/dist/dbquery/queries.js.map +1 -1
- package/dist/dbquery/types.d.ts +2 -15
- package/dist/dbquery/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/dbquery/executor.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/dbquery/executor.ts"],"names":[],"mappings":"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"}
|
package/dist/dbquery/format.d.ts
CHANGED
|
@@ -8,7 +8,21 @@
|
|
|
8
8
|
import type { ProfilesConfig, ProfilesResult, QueryResult, RawResult, TablesResult, DdlResult, IndexesResult, TableCommentResult } from './types';
|
|
9
9
|
export declare function formatQueryResult(raw: RawResult, profileName: string, durationMs: number, truncated: boolean): QueryResult;
|
|
10
10
|
export declare function formatTablesResult(raw: RawResult, profileName: string, durationMs: number): TablesResult;
|
|
11
|
-
|
|
11
|
+
/**
|
|
12
|
+
* MySQL DDL — extract the `Create Table` column from `SHOW CREATE TABLE`
|
|
13
|
+
* output. `SHOW CREATE TABLE` returns two columns: `Table` (name) and
|
|
14
|
+
* `Create Table` (the DDL). Access by position to be version-safe (the
|
|
15
|
+
* second column's name varies across MySQL/MariaDB versions).
|
|
16
|
+
*/
|
|
17
|
+
export declare function extractMysqlDdl(raw: RawResult, table: string, profileName: string, durationMs: number): DdlResult;
|
|
18
|
+
/**
|
|
19
|
+
* PostgreSQL DDL — assemble `CREATE TABLE "schema"."tbl" (...)` from the
|
|
20
|
+
* column query + `pg_get_constraintdef` rows + optional table comment.
|
|
21
|
+
* Column comments emit `COMMENT ON COLUMN` statements after the CREATE TABLE
|
|
22
|
+
* (PG comments cannot go inline in CREATE TABLE). Secondary indexes
|
|
23
|
+
* (non-constraint-backed) emit as `CREATE INDEX ...` statements last.
|
|
24
|
+
*/
|
|
25
|
+
export declare function renderPostgresDdl(columnRows: RawResult, constraintDefRows: RawResult, indexDefRows: RawResult, tableCommentRows: RawResult, table: string, schema: string, profileName: string, durationMs: number): DdlResult;
|
|
12
26
|
export declare function formatIndexesResult(raw: RawResult, table: string, profileName: string, durationMs: number): IndexesResult;
|
|
13
27
|
export declare function formatTableCommentResult(raw: RawResult, table: string, profileName: string, durationMs: number): TableCommentResult;
|
|
14
28
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/dbquery/format.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACd,WAAW,EACX,SAAS,EACT,YAAY,EACZ,SAAS,EACT,aAAa,EACb,kBAAkB,
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/dbquery/format.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACd,WAAW,EACX,SAAS,EACT,YAAY,EACZ,SAAS,EACT,aAAa,EACb,kBAAkB,EAEnB,MAAM,SAAS,CAAC;AAyCjB,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,SAAS,EACd,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,OAAO,GACjB,WAAW,CAUb;AAED,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,SAAS,EACd,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,YAAY,CAQd;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,SAAS,EACd,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,SAAS,CAWX;AAYD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,SAAS,EACrB,iBAAiB,EAAE,SAAS,EAC5B,YAAY,EAAE,SAAS,EACvB,gBAAgB,EAAE,SAAS,EAC3B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,SAAS,CA4DX;AAED,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,SAAS,EACd,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,aAAa,CA0Cf;AAED,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,SAAS,EACd,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,kBAAkB,CAMpB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc,CAe3E"}
|
package/dist/dbquery/format.js
CHANGED
|
@@ -9,7 +9,8 @@
|
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
10
|
exports.formatQueryResult = formatQueryResult;
|
|
11
11
|
exports.formatTablesResult = formatTablesResult;
|
|
12
|
-
exports.
|
|
12
|
+
exports.extractMysqlDdl = extractMysqlDdl;
|
|
13
|
+
exports.renderPostgresDdl = renderPostgresDdl;
|
|
13
14
|
exports.formatIndexesResult = formatIndexesResult;
|
|
14
15
|
exports.formatTableCommentResult = formatTableCommentResult;
|
|
15
16
|
exports.formatProfilesResult = formatProfilesResult;
|
|
@@ -78,30 +79,92 @@ function formatTablesResult(raw, profileName, durationMs) {
|
|
|
78
79
|
}));
|
|
79
80
|
return { tables, profile: profileName, durationMs };
|
|
80
81
|
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
82
|
+
/**
|
|
83
|
+
* MySQL DDL — extract the `Create Table` column from `SHOW CREATE TABLE`
|
|
84
|
+
* output. `SHOW CREATE TABLE` returns two columns: `Table` (name) and
|
|
85
|
+
* `Create Table` (the DDL). Access by position to be version-safe (the
|
|
86
|
+
* second column's name varies across MySQL/MariaDB versions).
|
|
87
|
+
*/
|
|
88
|
+
function extractMysqlDdl(raw, table, profileName, durationMs) {
|
|
89
|
+
const row = raw.rows[0];
|
|
90
|
+
if (!row) {
|
|
91
|
+
throw new Error(`SHOW CREATE TABLE returned no rows for table "${table}".`);
|
|
92
|
+
}
|
|
93
|
+
const values = Object.values(row);
|
|
94
|
+
const ddl = String(values[1] ?? '');
|
|
95
|
+
if (!ddl) {
|
|
96
|
+
throw new Error(`SHOW CREATE TABLE returned empty DDL for table "${table}".`);
|
|
97
|
+
}
|
|
98
|
+
return { table, ddl: ddl.endsWith(';') ? ddl : ddl + ';', profile: profileName, durationMs };
|
|
99
|
+
}
|
|
100
|
+
/** Quote a PostgreSQL identifier with double quotes, doubling embedded ones. */
|
|
101
|
+
function quotePgIdent(name) {
|
|
102
|
+
return '"' + String(name).replace(/"/g, '""') + '"';
|
|
103
|
+
}
|
|
104
|
+
/** Escape a string literal body (single-quote, doubling embedded quotes). */
|
|
105
|
+
function quotePgLiteral(s) {
|
|
106
|
+
return "'" + String(s).replace(/'/g, "''") + "'";
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* PostgreSQL DDL — assemble `CREATE TABLE "schema"."tbl" (...)` from the
|
|
110
|
+
* column query + `pg_get_constraintdef` rows + optional table comment.
|
|
111
|
+
* Column comments emit `COMMENT ON COLUMN` statements after the CREATE TABLE
|
|
112
|
+
* (PG comments cannot go inline in CREATE TABLE). Secondary indexes
|
|
113
|
+
* (non-constraint-backed) emit as `CREATE INDEX ...` statements last.
|
|
114
|
+
*/
|
|
115
|
+
function renderPostgresDdl(columnRows, constraintDefRows, indexDefRows, tableCommentRows, table, schema, profileName, durationMs) {
|
|
116
|
+
const qualifiedTable = `${quotePgIdent(schema)}.${quotePgIdent(table)}`;
|
|
117
|
+
const columnLines = [];
|
|
118
|
+
const columnComments = [];
|
|
119
|
+
for (const row of columnRows.rows) {
|
|
120
|
+
const colName = quotePgIdent(String(row.name ?? ''));
|
|
121
|
+
const dataType = String(row.data_type ?? '');
|
|
122
|
+
const nullable = row.nullable === true || row.nullable === 't' || row.nullable === 1 ||
|
|
123
|
+
String(row.nullable ?? '').toUpperCase() === 'YES';
|
|
124
|
+
const defaultValue = row.default_value !== null && row.default_value !== undefined
|
|
88
125
|
? String(row.default_value)
|
|
89
|
-
: undefined
|
|
90
|
-
comment
|
|
126
|
+
: undefined;
|
|
127
|
+
const comment = row.comment !== undefined && row.comment !== null && row.comment !== ''
|
|
91
128
|
? String(row.comment)
|
|
92
|
-
: undefined
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
.
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
|
|
129
|
+
: undefined;
|
|
130
|
+
let line = ` ${colName} ${dataType}`;
|
|
131
|
+
if (!nullable)
|
|
132
|
+
line += ' NOT NULL';
|
|
133
|
+
if (defaultValue)
|
|
134
|
+
line += ` DEFAULT ${defaultValue}`;
|
|
135
|
+
columnLines.push(line);
|
|
136
|
+
if (comment) {
|
|
137
|
+
columnComments.push(`COMMENT ON COLUMN ${qualifiedTable}.${colName} IS ${quotePgLiteral(comment)};`);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
for (const row of constraintDefRows.rows) {
|
|
141
|
+
const def = String(row.def ?? '').trim();
|
|
142
|
+
if (def)
|
|
143
|
+
columnLines.push(` ${def}`);
|
|
144
|
+
}
|
|
145
|
+
const body = columnLines.join(',\n');
|
|
146
|
+
let ddl = `CREATE TABLE ${qualifiedTable} (\n${body}\n);`;
|
|
147
|
+
if (columnComments.length > 0) {
|
|
148
|
+
ddl += '\n' + columnComments.join('\n');
|
|
149
|
+
}
|
|
150
|
+
const tableCommentRow = tableCommentRows.rows[0];
|
|
151
|
+
const tableComment = tableCommentRow && tableCommentRow.comment !== undefined &&
|
|
152
|
+
tableCommentRow.comment !== null && tableCommentRow.comment !== ''
|
|
153
|
+
? String(tableCommentRow.comment)
|
|
154
|
+
: null;
|
|
155
|
+
if (tableComment) {
|
|
156
|
+
ddl += `\nCOMMENT ON TABLE ${qualifiedTable} IS ${quotePgLiteral(tableComment)};`;
|
|
157
|
+
}
|
|
158
|
+
const indexLines = [];
|
|
159
|
+
for (const row of indexDefRows.rows) {
|
|
160
|
+
const def = String(row.def ?? '').trim();
|
|
161
|
+
if (def)
|
|
162
|
+
indexLines.push(def.endsWith(';') ? def : def + ';');
|
|
163
|
+
}
|
|
164
|
+
if (indexLines.length > 0) {
|
|
165
|
+
ddl += '\n' + indexLines.join('\n');
|
|
166
|
+
}
|
|
167
|
+
return { table, ddl, profile: profileName, durationMs };
|
|
105
168
|
}
|
|
106
169
|
function formatIndexesResult(raw, table, profileName, durationMs) {
|
|
107
170
|
// For MySQL: rows come as one-per-column per index. Group by index name.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/dbquery/format.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/dbquery/format.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Identifier validation for SQL identifiers interpolated into schema
|
|
3
|
+
* introspection queries (e.g. `SHOW CREATE TABLE \`db\`.\`tbl\``).
|
|
4
|
+
*
|
|
5
|
+
* The dbquery safety layer (`safety.ts`) only gates user-supplied SQL in
|
|
6
|
+
* `runQuery`; `runSchema` builds its own SQL from CLI-provided identifiers
|
|
7
|
+
* and bypasses safety. This module is the boundary check for those
|
|
8
|
+
* identifiers — rejects anything that could break out of the quoted context
|
|
9
|
+
* or inject a statement. Identifiers come from `--table` / `--profile` /
|
|
10
|
+
* `--schema`, not from user SQL, so this is input validation, not the
|
|
11
|
+
* primary SQL-injection defense.
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Reject identifiers that are empty, too long, or contain characters that
|
|
15
|
+
* could break out of a backtick/double-quote context or terminate the
|
|
16
|
+
* statement. Throws on invalid input; returns void on valid.
|
|
17
|
+
*/
|
|
18
|
+
export declare function validateIdentifier(name: string, field: string): void;
|
|
19
|
+
//# sourceMappingURL=identifiers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identifiers.d.ts","sourceRoot":"","sources":["../../src/dbquery/identifiers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAapE"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Identifier validation for SQL identifiers interpolated into schema
|
|
4
|
+
* introspection queries (e.g. `SHOW CREATE TABLE \`db\`.\`tbl\``).
|
|
5
|
+
*
|
|
6
|
+
* The dbquery safety layer (`safety.ts`) only gates user-supplied SQL in
|
|
7
|
+
* `runQuery`; `runSchema` builds its own SQL from CLI-provided identifiers
|
|
8
|
+
* and bypasses safety. This module is the boundary check for those
|
|
9
|
+
* identifiers — rejects anything that could break out of the quoted context
|
|
10
|
+
* or inject a statement. Identifiers come from `--table` / `--profile` /
|
|
11
|
+
* `--schema`, not from user SQL, so this is input validation, not the
|
|
12
|
+
* primary SQL-injection defense.
|
|
13
|
+
*/
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.validateIdentifier = validateIdentifier;
|
|
16
|
+
/** MySQL/PG identifiers are at most 64 bytes. */
|
|
17
|
+
const MAX_IDENTIFIER_LENGTH = 64;
|
|
18
|
+
/**
|
|
19
|
+
* Reject identifiers that are empty, too long, or contain characters that
|
|
20
|
+
* could break out of a backtick/double-quote context or terminate the
|
|
21
|
+
* statement. Throws on invalid input; returns void on valid.
|
|
22
|
+
*/
|
|
23
|
+
function validateIdentifier(name, field) {
|
|
24
|
+
if (typeof name !== 'string' || name.length === 0) {
|
|
25
|
+
throw new Error(`Invalid ${field}: must be a non-empty string.`);
|
|
26
|
+
}
|
|
27
|
+
if (name.length > MAX_IDENTIFIER_LENGTH) {
|
|
28
|
+
throw new Error(`Invalid ${field}: exceeds ${MAX_IDENTIFIER_LENGTH} characters.`);
|
|
29
|
+
}
|
|
30
|
+
// Reject any character that could escape the quoting context or inject SQL.
|
|
31
|
+
// Backtick (MySQL quote), double-quote (PG quote), single-quote (string
|
|
32
|
+
// literal), semicolon (statement terminator), null byte, and control chars.
|
|
33
|
+
if (/[`"';\0\r\n\t]/.test(name) || /[\x00-\x1f]/.test(name)) {
|
|
34
|
+
throw new Error(`Invalid ${field}: contains forbidden characters.`);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=identifiers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identifiers.js","sourceRoot":"","sources":["../../src/dbquery/identifiers.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;AAUH,gDAaC;AArBD,iDAAiD;AACjD,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAEjC;;;;GAIG;AACH,SAAgB,kBAAkB,CAAC,IAAY,EAAE,KAAa;IAC5D,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,WAAW,KAAK,+BAA+B,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,GAAG,qBAAqB,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,WAAW,KAAK,aAAa,qBAAqB,cAAc,CAAC,CAAC;IACpF,CAAC;IACD,4EAA4E;IAC5E,wEAAwE;IACxE,4EAA4E;IAC5E,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5D,MAAM,IAAI,KAAK,CAAC,WAAW,KAAK,kCAAkC,CAAC,CAAC;IACtE,CAAC;AACH,CAAC"}
|
package/dist/dbquery/index.d.ts
CHANGED
|
@@ -5,6 +5,6 @@
|
|
|
5
5
|
* safety / drivers / executor internals directly. Spec §1.2 contract.
|
|
6
6
|
*/
|
|
7
7
|
export { runQuery, runSchema, listProfiles } from './executor';
|
|
8
|
-
export type { QueryInput, QueryResult, SchemaInput, SchemaResult, ProfilesInput, ProfilesResult, DBProfile, DriverKind, QueryMode, ConfigSource,
|
|
8
|
+
export type { QueryInput, QueryResult, SchemaInput, SchemaResult, ProfilesInput, ProfilesResult, DBProfile, DriverKind, QueryMode, ConfigSource, IndexDefinition, TableSummary, DdlResult, IndexesResult, TableCommentResult, TablesResult, } from './types';
|
|
9
9
|
export { DbQueryError, ConfigNotFoundError, ProfileNotFoundError, SafetyRejectionError, ConnectionFailedError, QueryTimeoutError, DriverError, SubsystemDisabledError, } from './errors';
|
|
10
10
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dbquery/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/D,YAAY,EACV,UAAU,EACV,WAAW,EACX,WAAW,EACX,YAAY,EACZ,aAAa,EACb,cAAc,EACd,SAAS,EACT,UAAU,EACV,SAAS,EACT,YAAY,EACZ,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dbquery/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/D,YAAY,EACV,UAAU,EACV,WAAW,EACX,WAAW,EACX,YAAY,EACZ,aAAa,EACb,cAAc,EACd,SAAS,EACT,UAAU,EACV,SAAS,EACT,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,SAAS,EACT,aAAa,EACb,kBAAkB,EAClB,YAAY,GACb,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,WAAW,EACX,sBAAsB,GACvB,MAAM,UAAU,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dbquery/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,uCAA+D;AAAtD,oGAAA,QAAQ,OAAA;AAAE,qGAAA,SAAS,OAAA;AAAE,wGAAA,YAAY,OAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dbquery/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,uCAA+D;AAAtD,oGAAA,QAAQ,OAAA;AAAE,qGAAA,SAAS,OAAA;AAAE,wGAAA,YAAY,OAAA;AAmB1C,mCASkB;AARhB,sGAAA,YAAY,OAAA;AACZ,6GAAA,mBAAmB,OAAA;AACnB,8GAAA,oBAAoB,OAAA;AACpB,8GAAA,oBAAoB,OAAA;AACpB,+GAAA,qBAAqB,OAAA;AACrB,2GAAA,iBAAiB,OAAA;AACjB,qGAAA,WAAW,OAAA;AACX,gHAAA,sBAAsB,OAAA"}
|
|
@@ -14,15 +14,35 @@ export interface ParameterizedSql {
|
|
|
14
14
|
params: Array<string | number>;
|
|
15
15
|
}
|
|
16
16
|
export declare function mysqlTablesSql(database: string): ParameterizedSql;
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
/**
|
|
18
|
+
* `SHOW CREATE TABLE` for MySQL — the server returns the byte-for-byte real
|
|
19
|
+
* DDL (ENGINE, CHARSET, FK references, PK, UNIQUE, CHECK, auto_increment, …).
|
|
20
|
+
* Identifier is interpolated (SHOW does not accept `?` placeholders); callers
|
|
21
|
+
* MUST run `validateIdentifier` on `database` and `table` first.
|
|
22
|
+
*/
|
|
23
|
+
export declare function mysqlShowCreateTableSql(database: string, table: string): ParameterizedSql;
|
|
20
24
|
export declare function mysqlIndexesSql(table: string, database: string): ParameterizedSql;
|
|
21
25
|
export declare function mysqlTableCommentSql(table: string, database: string): ParameterizedSql;
|
|
22
26
|
export declare function postgresTablesSql(schema: string): ParameterizedSql;
|
|
23
27
|
export declare function postgresDdlSql(table: string, schema: string): ParameterizedSql;
|
|
24
28
|
export declare function postgresPrimaryKeySql(table: string, schema: string): ParameterizedSql;
|
|
25
29
|
export declare function postgresConstraintsSql(table: string, schema: string): ParameterizedSql;
|
|
30
|
+
/**
|
|
31
|
+
* Full constraint definition text per constraint, via `pg_get_constraintdef`.
|
|
32
|
+
* Each row's `def` is a complete clause like `PRIMARY KEY (a, b)` or
|
|
33
|
+
* `FOREIGN KEY (a) REFERENCES other (b)` — embeddable directly inside
|
|
34
|
+
* `CREATE TABLE (...)`.
|
|
35
|
+
*/
|
|
36
|
+
export declare function postgresConstraintDefsSql(table: string, schema: string): ParameterizedSql;
|
|
37
|
+
/**
|
|
38
|
+
* Secondary index definitions via `pg_get_indexdef`. Excludes indexes that
|
|
39
|
+
* back a PRIMARY KEY or UNIQUE constraint (those are already rendered inside
|
|
40
|
+
* the CREATE TABLE body by `postgresConstraintDefsSql`), so plain
|
|
41
|
+
* `CREATE INDEX` / `CREATE UNIQUE INDEX` statements are emitted without
|
|
42
|
+
* duplicating constraint-backed indexes. Each row's `def` is a complete
|
|
43
|
+
* `CREATE [UNIQUE] INDEX ... ON ...` statement.
|
|
44
|
+
*/
|
|
45
|
+
export declare function postgresIndexDefsSql(table: string, schema: string): ParameterizedSql;
|
|
26
46
|
export declare function postgresIndexesSql(table: string, schema: string): ParameterizedSql;
|
|
27
47
|
export declare function postgresTableCommentSql(table: string, schema: string): ParameterizedSql;
|
|
28
48
|
export type SchemaQueryMode = 'tables' | 'ddl' | 'indexes' | 'table-comment';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../src/dbquery/queries.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;CAChC;AAID,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CAOjE;AAED,wBAAgB,
|
|
1
|
+
{"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../src/dbquery/queries.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;CAChC;AAID,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CAOjE;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,gBAAgB,CAKzF;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CASjF;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CAOtF;AAID,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAWlE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAY9E;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAUrF;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAYtF;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAQzF;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAWpF;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAclF;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAKvF;AAID,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,GAAG,eAAe,CAAC;AAE7E,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GACf,gBAAgB,CAOlB;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,gBAAgB,CAOlB"}
|
package/dist/dbquery/queries.js
CHANGED
|
@@ -12,15 +12,15 @@
|
|
|
12
12
|
*/
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
14
|
exports.mysqlTablesSql = mysqlTablesSql;
|
|
15
|
-
exports.
|
|
16
|
-
exports.mysqlPrimaryKeySql = mysqlPrimaryKeySql;
|
|
17
|
-
exports.mysqlConstraintsSql = mysqlConstraintsSql;
|
|
15
|
+
exports.mysqlShowCreateTableSql = mysqlShowCreateTableSql;
|
|
18
16
|
exports.mysqlIndexesSql = mysqlIndexesSql;
|
|
19
17
|
exports.mysqlTableCommentSql = mysqlTableCommentSql;
|
|
20
18
|
exports.postgresTablesSql = postgresTablesSql;
|
|
21
19
|
exports.postgresDdlSql = postgresDdlSql;
|
|
22
20
|
exports.postgresPrimaryKeySql = postgresPrimaryKeySql;
|
|
23
21
|
exports.postgresConstraintsSql = postgresConstraintsSql;
|
|
22
|
+
exports.postgresConstraintDefsSql = postgresConstraintDefsSql;
|
|
23
|
+
exports.postgresIndexDefsSql = postgresIndexDefsSql;
|
|
24
24
|
exports.postgresIndexesSql = postgresIndexesSql;
|
|
25
25
|
exports.postgresTableCommentSql = postgresTableCommentSql;
|
|
26
26
|
exports.mysqlSchemaQuery = mysqlSchemaQuery;
|
|
@@ -33,30 +33,16 @@ function mysqlTablesSql(database) {
|
|
|
33
33
|
params: [database],
|
|
34
34
|
};
|
|
35
35
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
function mysqlPrimaryKeySql(table, database) {
|
|
46
|
-
return {
|
|
47
|
-
sql: 'SELECT COLUMN_NAME AS column_name ' +
|
|
48
|
-
'FROM information_schema.KEY_COLUMN_USAGE ' +
|
|
49
|
-
'WHERE TABLE_SCHEMA = ? AND TABLE_NAME = ? AND CONSTRAINT_NAME = \'PRIMARY\' ' +
|
|
50
|
-
'ORDER BY ORDINAL_POSITION',
|
|
51
|
-
params: [database, table],
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
function mysqlConstraintsSql(table, database) {
|
|
36
|
+
/**
|
|
37
|
+
* `SHOW CREATE TABLE` for MySQL — the server returns the byte-for-byte real
|
|
38
|
+
* DDL (ENGINE, CHARSET, FK references, PK, UNIQUE, CHECK, auto_increment, …).
|
|
39
|
+
* Identifier is interpolated (SHOW does not accept `?` placeholders); callers
|
|
40
|
+
* MUST run `validateIdentifier` on `database` and `table` first.
|
|
41
|
+
*/
|
|
42
|
+
function mysqlShowCreateTableSql(database, table) {
|
|
55
43
|
return {
|
|
56
|
-
sql:
|
|
57
|
-
|
|
58
|
-
'WHERE TABLE_SCHEMA = ? AND TABLE_NAME = ?',
|
|
59
|
-
params: [database, table],
|
|
44
|
+
sql: `SHOW CREATE TABLE \`${database}\`.\`${table}\``,
|
|
45
|
+
params: [],
|
|
60
46
|
};
|
|
61
47
|
}
|
|
62
48
|
function mysqlIndexesSql(table, database) {
|
|
@@ -121,6 +107,39 @@ function postgresConstraintsSql(table, schema) {
|
|
|
121
107
|
params: [`${schema}.${table}`],
|
|
122
108
|
};
|
|
123
109
|
}
|
|
110
|
+
/**
|
|
111
|
+
* Full constraint definition text per constraint, via `pg_get_constraintdef`.
|
|
112
|
+
* Each row's `def` is a complete clause like `PRIMARY KEY (a, b)` or
|
|
113
|
+
* `FOREIGN KEY (a) REFERENCES other (b)` — embeddable directly inside
|
|
114
|
+
* `CREATE TABLE (...)`.
|
|
115
|
+
*/
|
|
116
|
+
function postgresConstraintDefsSql(table, schema) {
|
|
117
|
+
return {
|
|
118
|
+
sql: 'SELECT pg_get_constraintdef(c.oid, true) AS def ' +
|
|
119
|
+
'FROM pg_constraint c ' +
|
|
120
|
+
'WHERE c.conrelid = $1::regclass ORDER BY c.conname',
|
|
121
|
+
params: [`${schema}.${table}`],
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Secondary index definitions via `pg_get_indexdef`. Excludes indexes that
|
|
126
|
+
* back a PRIMARY KEY or UNIQUE constraint (those are already rendered inside
|
|
127
|
+
* the CREATE TABLE body by `postgresConstraintDefsSql`), so plain
|
|
128
|
+
* `CREATE INDEX` / `CREATE UNIQUE INDEX` statements are emitted without
|
|
129
|
+
* duplicating constraint-backed indexes. Each row's `def` is a complete
|
|
130
|
+
* `CREATE [UNIQUE] INDEX ... ON ...` statement.
|
|
131
|
+
*/
|
|
132
|
+
function postgresIndexDefsSql(table, schema) {
|
|
133
|
+
return {
|
|
134
|
+
sql: 'SELECT pg_get_indexdef(i.indexrelid) AS def ' +
|
|
135
|
+
'FROM pg_index i ' +
|
|
136
|
+
'WHERE i.indrelid = $1::regclass ' +
|
|
137
|
+
'AND NOT i.indisprimary ' +
|
|
138
|
+
'AND NOT EXISTS (SELECT 1 FROM pg_constraint c WHERE c.conindid = i.indexrelid) ' +
|
|
139
|
+
'ORDER BY i.indexrelid',
|
|
140
|
+
params: [`${schema}.${table}`],
|
|
141
|
+
};
|
|
142
|
+
}
|
|
124
143
|
function postgresIndexesSql(table, schema) {
|
|
125
144
|
return {
|
|
126
145
|
sql: 'SELECT i.relname AS name, ' +
|
|
@@ -144,7 +163,7 @@ function postgresTableCommentSql(table, schema) {
|
|
|
144
163
|
function mysqlSchemaQuery(mode, table, database) {
|
|
145
164
|
switch (mode) {
|
|
146
165
|
case 'tables': return mysqlTablesSql(database);
|
|
147
|
-
case 'ddl': return
|
|
166
|
+
case 'ddl': return mysqlShowCreateTableSql(database, table);
|
|
148
167
|
case 'indexes': return mysqlIndexesSql(table, database);
|
|
149
168
|
case 'table-comment': return mysqlTableCommentSql(table, database);
|
|
150
169
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries.js","sourceRoot":"","sources":["../../src/dbquery/queries.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;AASH,wCAOC;
|
|
1
|
+
{"version":3,"file":"queries.js","sourceRoot":"","sources":["../../src/dbquery/queries.ts"],"names":[],"mappings":"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"}
|
package/dist/dbquery/types.d.ts
CHANGED
|
@@ -68,23 +68,10 @@ export interface TableSummary {
|
|
|
68
68
|
name: string;
|
|
69
69
|
comment?: string;
|
|
70
70
|
}
|
|
71
|
-
export interface ColumnDefinition {
|
|
72
|
-
name: string;
|
|
73
|
-
dataType: string;
|
|
74
|
-
nullable: boolean;
|
|
75
|
-
defaultValue?: string;
|
|
76
|
-
comment?: string;
|
|
77
|
-
}
|
|
78
|
-
export interface ConstraintDefinition {
|
|
79
|
-
name: string;
|
|
80
|
-
type: string;
|
|
81
|
-
columns: string[];
|
|
82
|
-
}
|
|
83
71
|
export interface DdlResult {
|
|
84
72
|
table: string;
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
constraints: ConstraintDefinition[];
|
|
73
|
+
/** The `CREATE TABLE ...` DDL text, rendered per dialect. */
|
|
74
|
+
ddl: string;
|
|
88
75
|
profile: string;
|
|
89
76
|
durationMs: number;
|
|
90
77
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/dbquery/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,UAAU,CAAC;AAE9C,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,GAAG,eAAe,GAAG,UAAU,CAAC;AAE9F,MAAM,MAAM,WAAW,GACnB,IAAI,GACJ,iBAAiB,GACjB,cAAc,GACd,mBAAmB,GACnB,SAAS,GACT,cAAc,GACd,UAAU,CAAC;AAEf,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,6CAA6C;IAC7C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,eAAe,GAAG,aAAa,CAAC;AAEnE,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;CAChE,CAAC;AAEF,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,GAAG,KAAK,GAAG,SAAS,GAAG,eAAe,CAAC;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/dbquery/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cgraphx",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"description": "Supercharge AI coding agents with semantic code intelligence — surgical context, fewer tool calls, faster answers. 100% local.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|