@rawsql-ts/ztd-cli 0.14.4 → 0.16.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.
Files changed (130) hide show
  1. package/README.md +25 -11
  2. package/dist/commands/init.js +27 -10
  3. package/dist/commands/init.js.map +1 -1
  4. package/dist/commands/lint.d.ts +59 -0
  5. package/dist/commands/lint.js +338 -0
  6. package/dist/commands/lint.js.map +1 -0
  7. package/dist/index.js +2 -0
  8. package/dist/index.js.map +1 -1
  9. package/dist/utils/sqlLintHelpers.d.ts +18 -0
  10. package/dist/utils/sqlLintHelpers.js +270 -0
  11. package/dist/utils/sqlLintHelpers.js.map +1 -0
  12. package/package.json +11 -4
  13. package/templates/AGENTS.md +95 -53
  14. package/templates/README.md +45 -67
  15. package/templates/dist/drivers/pg-testkit/src/driver/PgTestkitClient.d.ts +38 -0
  16. package/templates/dist/drivers/pg-testkit/src/driver/PgTestkitClient.js +117 -0
  17. package/templates/dist/drivers/pg-testkit/src/driver/PgTestkitClient.js.map +1 -0
  18. package/templates/dist/drivers/pg-testkit/src/driver/createPgTestkitPool.d.ts +4 -0
  19. package/templates/dist/drivers/pg-testkit/src/driver/createPgTestkitPool.js +71 -0
  20. package/templates/dist/drivers/pg-testkit/src/driver/createPgTestkitPool.js.map +1 -0
  21. package/templates/dist/drivers/pg-testkit/src/index.d.ts +5 -0
  22. package/templates/dist/drivers/pg-testkit/src/index.js +11 -0
  23. package/templates/dist/drivers/pg-testkit/src/index.js.map +1 -0
  24. package/templates/dist/drivers/pg-testkit/src/proxy/wrapPgClient.d.ts +3 -0
  25. package/templates/dist/drivers/pg-testkit/src/proxy/wrapPgClient.js +79 -0
  26. package/templates/dist/drivers/pg-testkit/src/proxy/wrapPgClient.js.map +1 -0
  27. package/templates/dist/drivers/pg-testkit/src/types.d.ts +69 -0
  28. package/templates/dist/drivers/pg-testkit/src/types.js +3 -0
  29. package/templates/dist/drivers/pg-testkit/src/types.js.map +1 -0
  30. package/templates/dist/drivers/pg-testkit/src/utils/fixtureState.d.ts +15 -0
  31. package/templates/dist/drivers/pg-testkit/src/utils/fixtureState.js +34 -0
  32. package/templates/dist/drivers/pg-testkit/src/utils/fixtureState.js.map +1 -0
  33. package/templates/dist/drivers/pg-testkit/src/utils/fixtureValidation.d.ts +12 -0
  34. package/templates/dist/drivers/pg-testkit/src/utils/fixtureValidation.js +53 -0
  35. package/templates/dist/drivers/pg-testkit/src/utils/fixtureValidation.js.map +1 -0
  36. package/templates/dist/mapper-core/src/index.d.ts +160 -0
  37. package/templates/dist/mapper-core/src/index.js +637 -0
  38. package/templates/dist/mapper-core/src/index.js.map +1 -0
  39. package/templates/dist/testkit-core/src/errors/index.d.ts +49 -0
  40. package/templates/dist/testkit-core/src/errors/index.js +111 -0
  41. package/templates/dist/testkit-core/src/errors/index.js.map +1 -0
  42. package/templates/dist/testkit-core/src/fixtures/ColumnAffinity.d.ts +5 -0
  43. package/templates/dist/testkit-core/src/fixtures/ColumnAffinity.js +29 -0
  44. package/templates/dist/testkit-core/src/fixtures/ColumnAffinity.js.map +1 -0
  45. package/templates/dist/testkit-core/src/fixtures/DdlFixtureLoader.d.ts +37 -0
  46. package/templates/dist/testkit-core/src/fixtures/DdlFixtureLoader.js +182 -0
  47. package/templates/dist/testkit-core/src/fixtures/DdlFixtureLoader.js.map +1 -0
  48. package/templates/dist/testkit-core/src/fixtures/FixtureProvider.d.ts +20 -0
  49. package/templates/dist/testkit-core/src/fixtures/FixtureProvider.js +121 -0
  50. package/templates/dist/testkit-core/src/fixtures/FixtureProvider.js.map +1 -0
  51. package/templates/dist/testkit-core/src/fixtures/FixtureStore.d.ts +51 -0
  52. package/templates/dist/testkit-core/src/fixtures/FixtureStore.js +199 -0
  53. package/templates/dist/testkit-core/src/fixtures/FixtureStore.js.map +1 -0
  54. package/templates/dist/testkit-core/src/fixtures/TableDefinitionSchemaRegistry.d.ts +10 -0
  55. package/templates/dist/testkit-core/src/fixtures/TableDefinitionSchemaRegistry.js +28 -0
  56. package/templates/dist/testkit-core/src/fixtures/TableDefinitionSchemaRegistry.js.map +1 -0
  57. package/templates/dist/testkit-core/src/fixtures/TableNameResolver.d.ts +18 -0
  58. package/templates/dist/testkit-core/src/fixtures/TableNameResolver.js +80 -0
  59. package/templates/dist/testkit-core/src/fixtures/TableNameResolver.js.map +1 -0
  60. package/templates/dist/testkit-core/src/fixtures/ddlLint.d.ts +59 -0
  61. package/templates/dist/testkit-core/src/fixtures/ddlLint.js +489 -0
  62. package/templates/dist/testkit-core/src/fixtures/ddlLint.js.map +1 -0
  63. package/templates/dist/testkit-core/src/fixtures/naming.d.ts +1 -0
  64. package/templates/dist/testkit-core/src/fixtures/naming.js +6 -0
  65. package/templates/dist/testkit-core/src/fixtures/naming.js.map +1 -0
  66. package/templates/dist/testkit-core/src/index.d.ts +17 -0
  67. package/templates/dist/testkit-core/src/index.js +47 -0
  68. package/templates/dist/testkit-core/src/index.js.map +1 -0
  69. package/templates/dist/testkit-core/src/logger/NoopLogger.d.ts +8 -0
  70. package/templates/dist/testkit-core/src/logger/NoopLogger.js +16 -0
  71. package/templates/dist/testkit-core/src/logger/NoopLogger.js.map +1 -0
  72. package/templates/dist/testkit-core/src/provider/TestkitProvider.d.ts +57 -0
  73. package/templates/dist/testkit-core/src/provider/TestkitProvider.js +149 -0
  74. package/templates/dist/testkit-core/src/provider/TestkitProvider.js.map +1 -0
  75. package/templates/dist/testkit-core/src/rewriter/ResultSelectRewriter.d.ts +43 -0
  76. package/templates/dist/testkit-core/src/rewriter/ResultSelectRewriter.js +473 -0
  77. package/templates/dist/testkit-core/src/rewriter/ResultSelectRewriter.js.map +1 -0
  78. package/templates/dist/testkit-core/src/rewriter/SelectAnalyzer.d.ts +9 -0
  79. package/templates/dist/testkit-core/src/rewriter/SelectAnalyzer.js +38 -0
  80. package/templates/dist/testkit-core/src/rewriter/SelectAnalyzer.js.map +1 -0
  81. package/templates/dist/testkit-core/src/rewriter/SelectFixtureRewriter.d.ts +42 -0
  82. package/templates/dist/testkit-core/src/rewriter/SelectFixtureRewriter.js +298 -0
  83. package/templates/dist/testkit-core/src/rewriter/SelectFixtureRewriter.js.map +1 -0
  84. package/templates/dist/testkit-core/src/sql/SqliteValuesBuilder.d.ts +12 -0
  85. package/templates/dist/testkit-core/src/sql/SqliteValuesBuilder.js +63 -0
  86. package/templates/dist/testkit-core/src/sql/SqliteValuesBuilder.js.map +1 -0
  87. package/templates/dist/testkit-core/src/types/index.d.ts +69 -0
  88. package/templates/dist/testkit-core/src/types/index.js +3 -0
  89. package/templates/dist/testkit-core/src/types/index.js.map +1 -0
  90. package/templates/dist/testkit-core/src/utils/queryHelpers.d.ts +28 -0
  91. package/templates/dist/testkit-core/src/utils/queryHelpers.js +81 -0
  92. package/templates/dist/testkit-core/src/utils/queryHelpers.js.map +1 -0
  93. package/templates/dist/writer-core/src/index.d.ts +34 -0
  94. package/templates/dist/writer-core/src/index.js +115 -0
  95. package/templates/dist/writer-core/src/index.js.map +1 -0
  96. package/templates/dist/ztd-cli/templates/src/db/sql-client.d.ts +20 -0
  97. package/templates/dist/ztd-cli/templates/src/db/sql-client.js +3 -0
  98. package/templates/dist/ztd-cli/templates/src/db/sql-client.js.map +1 -0
  99. package/templates/dist/ztd-cli/templates/src/repositories/user-accounts.d.ts +36 -0
  100. package/templates/dist/ztd-cli/templates/src/repositories/user-accounts.js +85 -0
  101. package/templates/dist/ztd-cli/templates/src/repositories/user-accounts.js.map +1 -0
  102. package/templates/dist/ztd-cli/templates/tests/generated/ztd-row-map.generated.d.ts +20 -0
  103. package/templates/dist/ztd-cli/templates/tests/generated/ztd-row-map.generated.js +33 -0
  104. package/templates/dist/ztd-cli/templates/tests/generated/ztd-row-map.generated.js.map +1 -0
  105. package/templates/dist/ztd-cli/templates/tests/support/global-setup.d.ts +10 -0
  106. package/templates/dist/ztd-cli/templates/tests/support/global-setup.js +29 -0
  107. package/templates/dist/ztd-cli/templates/tests/support/global-setup.js.map +1 -0
  108. package/templates/dist/ztd-cli/templates/tests/support/testkit-client.d.ts +66 -0
  109. package/templates/dist/ztd-cli/templates/tests/support/testkit-client.js +552 -0
  110. package/templates/dist/ztd-cli/templates/tests/support/testkit-client.js.map +1 -0
  111. package/templates/dist/ztd-cli/templates/tests/user-profiles.test.d.ts +1 -0
  112. package/templates/dist/ztd-cli/templates/tests/user-profiles.test.js +82 -0
  113. package/templates/dist/ztd-cli/templates/tests/user-profiles.test.js.map +1 -0
  114. package/templates/dist/ztd-cli/templates/tests/writer-constraints.test.d.ts +1 -0
  115. package/templates/dist/ztd-cli/templates/tests/writer-constraints.test.js +29 -0
  116. package/templates/dist/ztd-cli/templates/tests/writer-constraints.test.js.map +1 -0
  117. package/templates/dist/ztd-cli/templates/tests/ztd-layout.generated.d.ts +7 -0
  118. package/templates/dist/ztd-cli/templates/tests/ztd-layout.generated.js +10 -0
  119. package/templates/dist/ztd-cli/templates/tests/ztd-layout.generated.js.map +1 -0
  120. package/templates/src/db/sql-client.ts +1 -1
  121. package/templates/src/repositories/user-accounts.ts +179 -0
  122. package/templates/tests/AGENTS.md +59 -6
  123. package/templates/tests/support/global-setup.ts +1 -1
  124. package/templates/tests/support/testkit-client.ts +4 -4
  125. package/templates/tests/user-profiles.test.ts +161 -0
  126. package/templates/tests/writer-constraints.test.ts +32 -0
  127. package/templates/tests/ztd-layout.generated.ts +0 -2
  128. package/templates/tsconfig.json +1 -2
  129. package/templates/ztd/AGENTS.md +10 -85
  130. package/templates/ztd/README.md +10 -79
@@ -0,0 +1,489 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_DDL_LINT_MODE = void 0;
4
+ exports.normalizeDdlLintMode = normalizeDdlLintMode;
5
+ exports.lintDdlSources = lintDdlSources;
6
+ exports.applyDdlLintMode = applyDdlLintMode;
7
+ exports.formatDdlLintDiagnostics = formatDdlLintDiagnostics;
8
+ const rawsql_ts_1 = require("rawsql-ts");
9
+ const TableNameResolver_1 = require("./TableNameResolver");
10
+ /**
11
+ * Default lint mode used when none is specified.
12
+ */
13
+ exports.DEFAULT_DDL_LINT_MODE = 'strict';
14
+ /**
15
+ * Normalizes the requested lint mode, falling back to the default.
16
+ */
17
+ function normalizeDdlLintMode(mode) {
18
+ return mode !== null && mode !== void 0 ? mode : exports.DEFAULT_DDL_LINT_MODE;
19
+ }
20
+ const SEVERITY_RANK = {
21
+ error: 0,
22
+ warning: 1,
23
+ };
24
+ /**
25
+ * Runs integrity checks across the supplied DDL sources and returns sorted diagnostics.
26
+ */
27
+ function lintDdlSources(sources, options = {}) {
28
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
29
+ if (sources.length === 0) {
30
+ return [];
31
+ }
32
+ const resolver = (_a = options.tableNameResolver) !== null && _a !== void 0 ? _a : new TableNameResolver_1.TableNameResolver();
33
+ const createStatements = [];
34
+ const alterStatements = [];
35
+ const indexStatements = [];
36
+ for (const source of sources) {
37
+ const split = rawsql_ts_1.MultiQuerySplitter.split(source.sql);
38
+ for (const query of split.queries) {
39
+ if (query.isEmpty) {
40
+ continue;
41
+ }
42
+ let ast;
43
+ try {
44
+ ast = rawsql_ts_1.SqlParser.parse(query.sql);
45
+ }
46
+ catch (_error) {
47
+ continue;
48
+ }
49
+ const context = {
50
+ source: source.path,
51
+ statementIndex: query.index,
52
+ };
53
+ if (ast instanceof rawsql_ts_1.CreateTableQuery) {
54
+ createStatements.push({ ast, context });
55
+ }
56
+ else if (ast instanceof rawsql_ts_1.AlterTableStatement) {
57
+ alterStatements.push({ ast, context });
58
+ }
59
+ else if (ast instanceof rawsql_ts_1.CreateIndexStatement) {
60
+ indexStatements.push({ ast, context });
61
+ }
62
+ }
63
+ }
64
+ const diagnostics = [];
65
+ const tables = new Map();
66
+ for (const entry of createStatements) {
67
+ const tableName = resolveTableName(entry.ast, resolver);
68
+ if (!tableName) {
69
+ continue;
70
+ }
71
+ let table = tables.get(tableName);
72
+ if (!table) {
73
+ table = {
74
+ name: tableName,
75
+ columns: new Map(),
76
+ constraints: [],
77
+ };
78
+ tables.set(tableName, table);
79
+ }
80
+ // Track duplicate column definitions while populating the column registry.
81
+ for (const column of entry.ast.columns) {
82
+ registerColumnDefinition(table, column, entry.context, diagnostics);
83
+ }
84
+ // Capture table-level constraints for downstream column checks.
85
+ for (const constraint of entry.ast.tableConstraints) {
86
+ registerTableConstraint(table, constraint, entry.context);
87
+ }
88
+ // Capture column-level constraints (e.g. named foreign keys).
89
+ for (const column of entry.ast.columns) {
90
+ for (const constraint of column.constraints) {
91
+ registerColumnConstraint(table, column, constraint, entry.context);
92
+ }
93
+ }
94
+ }
95
+ for (const entry of alterStatements) {
96
+ const tableName = resolveQualifiedName(entry.ast.table, resolver, tables);
97
+ if (!tableName) {
98
+ diagnostics.push({
99
+ code: 'ddl/alter-missing-table',
100
+ severity: 'error',
101
+ source: entry.context.source,
102
+ statementIndex: entry.context.statementIndex,
103
+ table: entry.ast.table.toString(),
104
+ message: `ALTER TABLE targets unknown table "${entry.ast.table.toString()}".`,
105
+ });
106
+ continue;
107
+ }
108
+ const table = tables.get(tableName);
109
+ if (!table) {
110
+ continue;
111
+ }
112
+ // Apply ALTER TABLE actions so column- and constraint-level linting sees the final shape.
113
+ for (const action of entry.ast.actions) {
114
+ if (action instanceof rawsql_ts_1.AlterTableAddColumn) {
115
+ registerColumnDefinition(table, action.column, entry.context, diagnostics);
116
+ for (const constraint of action.column.constraints) {
117
+ registerColumnConstraint(table, action.column, constraint, entry.context);
118
+ }
119
+ continue;
120
+ }
121
+ if (action instanceof rawsql_ts_1.AlterTableAddConstraint) {
122
+ registerTableConstraint(table, action.constraint, entry.context);
123
+ continue;
124
+ }
125
+ if (action instanceof rawsql_ts_1.AlterTableAlterColumnDefault) {
126
+ const targetName = normalizeColumnName(action.columnName.name);
127
+ if (!table.columns.has(targetName)) {
128
+ diagnostics.push({
129
+ code: 'ddl/alter-missing-column',
130
+ severity: 'error',
131
+ source: entry.context.source,
132
+ statementIndex: entry.context.statementIndex,
133
+ table: table.name,
134
+ column: action.columnName.name,
135
+ message: `ALTER COLUMN targets unknown column "${action.columnName.name}" in "${table.name}".`,
136
+ });
137
+ }
138
+ continue;
139
+ }
140
+ if (action instanceof rawsql_ts_1.AlterTableDropColumn) {
141
+ const targetName = normalizeColumnName(action.columnName.name);
142
+ if (!table.columns.has(targetName)) {
143
+ diagnostics.push({
144
+ code: 'ddl/alter-missing-column',
145
+ severity: 'error',
146
+ source: entry.context.source,
147
+ statementIndex: entry.context.statementIndex,
148
+ table: table.name,
149
+ column: action.columnName.name,
150
+ message: `ALTER COLUMN targets unknown column "${action.columnName.name}" in "${table.name}".`,
151
+ });
152
+ }
153
+ }
154
+ }
155
+ }
156
+ for (const entry of indexStatements) {
157
+ const tableName = resolveQualifiedName(entry.ast.tableName, resolver, tables);
158
+ if (!tableName) {
159
+ continue;
160
+ }
161
+ const table = tables.get(tableName);
162
+ if (!table) {
163
+ continue;
164
+ }
165
+ // Check only simple column references; expression-based indexes are ignored.
166
+ for (const column of entry.ast.columns) {
167
+ const simpleColumn = getSimpleColumnReference(column.expression);
168
+ if (!simpleColumn) {
169
+ continue;
170
+ }
171
+ if (!table.columns.has(normalizeColumnName(simpleColumn))) {
172
+ diagnostics.push({
173
+ code: 'ddl/missing-column',
174
+ severity: 'error',
175
+ source: entry.context.source,
176
+ statementIndex: entry.context.statementIndex,
177
+ table: table.name,
178
+ column: simpleColumn,
179
+ message: `Index "${entry.ast.indexName.toString()}" references missing column "${simpleColumn}" on "${table.name}".`,
180
+ });
181
+ }
182
+ }
183
+ const includeColumns = (_b = entry.ast.include) !== null && _b !== void 0 ? _b : [];
184
+ for (const includeColumn of includeColumns) {
185
+ if (!table.columns.has(normalizeColumnName(includeColumn.name))) {
186
+ diagnostics.push({
187
+ code: 'ddl/missing-column',
188
+ severity: 'error',
189
+ source: entry.context.source,
190
+ statementIndex: entry.context.statementIndex,
191
+ table: table.name,
192
+ column: includeColumn.name,
193
+ message: `Index "${entry.ast.indexName.toString()}" includes missing column "${includeColumn.name}" on "${table.name}".`,
194
+ });
195
+ }
196
+ }
197
+ }
198
+ for (const table of tables.values()) {
199
+ // Detect duplicate constraint names within the same table.
200
+ const namedConstraints = table.constraints.filter((constraint) => constraint.name);
201
+ const seen = new Map();
202
+ for (const constraint of namedConstraints) {
203
+ const key = normalizeConstraintName((_c = constraint.name) !== null && _c !== void 0 ? _c : '');
204
+ const existing = (_d = seen.get(key)) !== null && _d !== void 0 ? _d : [];
205
+ existing.push(constraint);
206
+ seen.set(key, existing);
207
+ }
208
+ for (const constraints of seen.values()) {
209
+ if (constraints.length < 2) {
210
+ continue;
211
+ }
212
+ for (const constraint of constraints) {
213
+ diagnostics.push({
214
+ code: 'ddl/duplicate-constraint',
215
+ severity: 'error',
216
+ source: constraint.source.source,
217
+ statementIndex: constraint.source.statementIndex,
218
+ table: table.name,
219
+ constraint: constraint.name,
220
+ message: `Constraint name "${constraint.name}" is defined multiple times on "${table.name}".`,
221
+ });
222
+ }
223
+ }
224
+ // Validate constraint column references against the resolved table columns.
225
+ for (const constraint of table.constraints) {
226
+ const columns = (_e = constraint.columns) !== null && _e !== void 0 ? _e : [];
227
+ if (constraint.kind !== 'check') {
228
+ for (const column of columns) {
229
+ if (!table.columns.has(normalizeColumnName(column))) {
230
+ diagnostics.push({
231
+ code: 'ddl/missing-column',
232
+ severity: 'error',
233
+ source: constraint.source.source,
234
+ statementIndex: constraint.source.statementIndex,
235
+ table: table.name,
236
+ column,
237
+ constraint: constraint.name,
238
+ message: `Constraint "${(_f = constraint.name) !== null && _f !== void 0 ? _f : constraint.kind}" references missing column "${column}" on "${table.name}".`,
239
+ });
240
+ }
241
+ }
242
+ }
243
+ if (constraint.kind === 'check') {
244
+ const simpleColumn = getSimpleColumnReference(constraint.checkExpression);
245
+ if (simpleColumn && !table.columns.has(normalizeColumnName(simpleColumn))) {
246
+ diagnostics.push({
247
+ code: 'ddl/missing-column',
248
+ severity: 'error',
249
+ source: constraint.source.source,
250
+ statementIndex: constraint.source.statementIndex,
251
+ table: table.name,
252
+ column: simpleColumn,
253
+ constraint: constraint.name,
254
+ message: `CHECK constraint "${(_g = constraint.name) !== null && _g !== void 0 ? _g : 'unnamed'}" references missing column "${simpleColumn}" on "${table.name}".`,
255
+ });
256
+ }
257
+ }
258
+ if (constraint.kind === 'foreign-key' && constraint.reference) {
259
+ const referencing = (_h = constraint.columns) !== null && _h !== void 0 ? _h : [];
260
+ const referencedTableName = resolveQualifiedName(constraint.reference.targetTable, resolver, tables);
261
+ if (!referencedTableName) {
262
+ diagnostics.push({
263
+ code: 'ddl/foreign-key-missing-table',
264
+ severity: 'error',
265
+ source: constraint.source.source,
266
+ statementIndex: constraint.source.statementIndex,
267
+ table: table.name,
268
+ constraint: constraint.name,
269
+ referencedTable: constraint.reference.targetTable.toString(),
270
+ message: `Foreign key "${(_j = constraint.name) !== null && _j !== void 0 ? _j : 'unnamed'}" references unknown table "${constraint.reference.targetTable.toString()}".`,
271
+ });
272
+ continue;
273
+ }
274
+ const referenced = tables.get(referencedTableName);
275
+ if (!referenced) {
276
+ continue;
277
+ }
278
+ const referencedColumns = (_l = (_k = constraint.reference.columns) === null || _k === void 0 ? void 0 : _k.map((column) => column.name)) !== null && _l !== void 0 ? _l : null;
279
+ if (referencedColumns && referencing.length !== referencedColumns.length) {
280
+ diagnostics.push({
281
+ code: 'ddl/foreign-key-column-count',
282
+ severity: 'error',
283
+ source: constraint.source.source,
284
+ statementIndex: constraint.source.statementIndex,
285
+ table: table.name,
286
+ constraint: constraint.name,
287
+ referencedTable: referencedTableName,
288
+ message: `Foreign key "${(_m = constraint.name) !== null && _m !== void 0 ? _m : 'unnamed'}" column count (${referencing.length}) does not match referenced column count (${referencedColumns.length}).`,
289
+ });
290
+ }
291
+ if (referencedColumns) {
292
+ for (const column of referencedColumns) {
293
+ if (!referenced.columns.has(normalizeColumnName(column))) {
294
+ diagnostics.push({
295
+ code: 'ddl/foreign-key-missing-column',
296
+ severity: 'error',
297
+ source: constraint.source.source,
298
+ statementIndex: constraint.source.statementIndex,
299
+ table: table.name,
300
+ constraint: constraint.name,
301
+ referencedTable: referencedTableName,
302
+ referencedColumn: column,
303
+ message: `Foreign key "${(_o = constraint.name) !== null && _o !== void 0 ? _o : 'unnamed'}" references missing column "${column}" on "${referencedTableName}".`,
304
+ });
305
+ }
306
+ }
307
+ }
308
+ }
309
+ }
310
+ }
311
+ return sortDiagnostics(diagnostics);
312
+ }
313
+ /**
314
+ * Adjusts diagnostic severities based on the selected lint mode.
315
+ */
316
+ function applyDdlLintMode(diagnostics, mode) {
317
+ if (mode !== 'warn') {
318
+ return diagnostics;
319
+ }
320
+ return diagnostics.map((diagnostic) => ({
321
+ ...diagnostic,
322
+ severity: 'warning',
323
+ }));
324
+ }
325
+ /**
326
+ * Formats DDL diagnostics into a human-readable summary.
327
+ */
328
+ function formatDdlLintDiagnostics(diagnostics) {
329
+ if (diagnostics.length === 0) {
330
+ return '';
331
+ }
332
+ const lines = [];
333
+ lines.push(`DDL integrity check found ${diagnostics.length} issue(s):`);
334
+ for (const diagnostic of diagnostics) {
335
+ const meta = [];
336
+ if (diagnostic.table) {
337
+ meta.push(`table=${diagnostic.table}`);
338
+ }
339
+ if (diagnostic.column) {
340
+ meta.push(`column=${diagnostic.column}`);
341
+ }
342
+ if (diagnostic.constraint) {
343
+ meta.push(`constraint=${diagnostic.constraint}`);
344
+ }
345
+ if (diagnostic.referencedTable) {
346
+ meta.push(`referencedTable=${diagnostic.referencedTable}`);
347
+ }
348
+ if (diagnostic.referencedColumn) {
349
+ meta.push(`referencedColumn=${diagnostic.referencedColumn}`);
350
+ }
351
+ const metaSuffix = meta.length > 0 ? ` (${meta.join(', ')})` : '';
352
+ lines.push(`- [${diagnostic.severity}] ${diagnostic.code} ${diagnostic.source}#${diagnostic.statementIndex}${metaSuffix}`);
353
+ lines.push(` ${diagnostic.message}`);
354
+ }
355
+ return lines.join('\n');
356
+ }
357
+ function resolveTableName(query, resolver) {
358
+ var _a;
359
+ const namespaces = (_a = query.namespaces) !== null && _a !== void 0 ? _a : [];
360
+ const rawName = namespaces.length > 0 ? [...namespaces, query.tableName.name].join('.') : query.tableName.name;
361
+ return resolver.resolve(rawName);
362
+ }
363
+ function resolveQualifiedName(tableName, resolver, tables) {
364
+ const rawName = tableName.toString();
365
+ const resolved = resolver.resolve(rawName, (candidate) => tables.has(candidate));
366
+ return tables.has(resolved) ? resolved : undefined;
367
+ }
368
+ function registerColumnDefinition(table, column, context, diagnostics) {
369
+ const columnName = column.name.name;
370
+ const normalized = normalizeColumnName(columnName);
371
+ if (table.columns.has(normalized)) {
372
+ diagnostics.push({
373
+ code: 'ddl/duplicate-column',
374
+ severity: 'error',
375
+ source: context.source,
376
+ statementIndex: context.statementIndex,
377
+ table: table.name,
378
+ column: columnName,
379
+ message: `Column "${columnName}" is defined multiple times on "${table.name}".`,
380
+ });
381
+ return;
382
+ }
383
+ table.columns.set(normalized, columnName);
384
+ }
385
+ function registerTableConstraint(table, constraint, context) {
386
+ var _a, _b, _c;
387
+ if (!isLintableTableConstraint(constraint)) {
388
+ return;
389
+ }
390
+ table.constraints.push({
391
+ kind: constraint.kind,
392
+ name: (_a = constraint.constraintName) === null || _a === void 0 ? void 0 : _a.name,
393
+ columns: (_c = (_b = constraint.columns) === null || _b === void 0 ? void 0 : _b.map((column) => column.name)) !== null && _c !== void 0 ? _c : undefined,
394
+ reference: constraint.reference,
395
+ checkExpression: constraint.checkExpression,
396
+ scope: 'table',
397
+ source: context,
398
+ });
399
+ }
400
+ function registerColumnConstraint(table, column, constraint, context) {
401
+ var _a;
402
+ if (!isLintableColumnConstraint(constraint)) {
403
+ return;
404
+ }
405
+ table.constraints.push({
406
+ kind: constraint.kind === 'references' ? 'foreign-key' : constraint.kind,
407
+ name: (_a = constraint.constraintName) === null || _a === void 0 ? void 0 : _a.name,
408
+ columns: [column.name.name],
409
+ reference: constraint.reference,
410
+ checkExpression: constraint.checkExpression,
411
+ scope: 'column',
412
+ source: context,
413
+ });
414
+ }
415
+ function isLintableTableConstraint(constraint) {
416
+ return (constraint.kind === 'primary-key' ||
417
+ constraint.kind === 'unique' ||
418
+ constraint.kind === 'foreign-key' ||
419
+ constraint.kind === 'check');
420
+ }
421
+ function isLintableColumnConstraint(constraint) {
422
+ return (constraint.kind === 'primary-key' ||
423
+ constraint.kind === 'unique' ||
424
+ constraint.kind === 'references' ||
425
+ constraint.kind === 'check');
426
+ }
427
+ function normalizeColumnName(name) {
428
+ return name.toLowerCase();
429
+ }
430
+ function normalizeConstraintName(name) {
431
+ return name.toLowerCase();
432
+ }
433
+ function getSimpleColumnReference(value) {
434
+ var _a;
435
+ if (!value) {
436
+ return null;
437
+ }
438
+ let current = value;
439
+ // Unwrap common wrappers so "(col)" and "col::type" are treated as simple references.
440
+ while (current instanceof rawsql_ts_1.ParenExpression || current instanceof rawsql_ts_1.CastExpression) {
441
+ current = current instanceof rawsql_ts_1.ParenExpression ? current.expression : current.input;
442
+ }
443
+ if (current instanceof rawsql_ts_1.ColumnReference) {
444
+ const namespaces = (_a = current.namespaces) !== null && _a !== void 0 ? _a : null;
445
+ if (!namespaces || namespaces.length === 0) {
446
+ return current.column.name;
447
+ }
448
+ }
449
+ return null;
450
+ }
451
+ function sortDiagnostics(diagnostics) {
452
+ return diagnostics.sort((left, right) => {
453
+ var _a, _b;
454
+ const severityDelta = SEVERITY_RANK[left.severity] - SEVERITY_RANK[right.severity];
455
+ if (severityDelta !== 0) {
456
+ return severityDelta;
457
+ }
458
+ const sourceDelta = compareOptional(left.source, right.source);
459
+ if (sourceDelta !== 0) {
460
+ return sourceDelta;
461
+ }
462
+ const statementDelta = ((_a = left.statementIndex) !== null && _a !== void 0 ? _a : 0) - ((_b = right.statementIndex) !== null && _b !== void 0 ? _b : 0);
463
+ if (statementDelta !== 0) {
464
+ return statementDelta;
465
+ }
466
+ const tableDelta = compareOptional(left.table, right.table);
467
+ if (tableDelta !== 0) {
468
+ return tableDelta;
469
+ }
470
+ const columnDelta = compareOptional(left.column, right.column);
471
+ if (columnDelta !== 0) {
472
+ return columnDelta;
473
+ }
474
+ const codeDelta = compareOptional(left.code, right.code);
475
+ if (codeDelta !== 0) {
476
+ return codeDelta;
477
+ }
478
+ return compareOptional(left.message, right.message);
479
+ });
480
+ }
481
+ function compareOptional(left, right) {
482
+ const leftValue = left !== null && left !== void 0 ? left : '';
483
+ const rightValue = right !== null && right !== void 0 ? right : '';
484
+ if (leftValue === rightValue) {
485
+ return 0;
486
+ }
487
+ return leftValue < rightValue ? -1 : 1;
488
+ }
489
+ //# sourceMappingURL=ddlLint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ddlLint.js","sourceRoot":"","sources":["../../../../../../testkit-core/src/fixtures/ddlLint.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare const normalizeIdentifier: (value: string) => string;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.normalizeIdentifier = void 0;
4
+ const normalizeIdentifier = (value) => value.toLowerCase();
5
+ exports.normalizeIdentifier = normalizeIdentifier;
6
+ //# sourceMappingURL=naming.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"naming.js","sourceRoot":"","sources":["../../../../../../testkit-core/src/fixtures/naming.ts"],"names":[],"mappings":";;;AAAO,MAAM,mBAAmB,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;AAArE,QAAA,mBAAmB,uBAAkD"}
@@ -0,0 +1,17 @@
1
+ export * from './types';
2
+ export * from './errors';
3
+ export { FixtureStore } from './fixtures/FixtureStore';
4
+ export { DdlFixtureLoader } from './fixtures/DdlFixtureLoader';
5
+ export type { DdlFixtureLoaderOptions } from './fixtures/DdlFixtureLoader';
6
+ export { DefaultFixtureProvider } from './fixtures/FixtureProvider';
7
+ export { SelectFixtureRewriter } from './rewriter/SelectFixtureRewriter';
8
+ export type { SelectAnalysisResult } from './rewriter/SelectAnalyzer';
9
+ export { TableDefinitionSchemaRegistry } from './fixtures/TableDefinitionSchemaRegistry';
10
+ export { TableNameResolver, type TableNameResolverOptions, type TableLookup } from './fixtures/TableNameResolver';
11
+ export type { DdlProcessedFixture } from './fixtures/DdlFixtureLoader';
12
+ export { DEFAULT_DDL_LINT_MODE, applyDdlLintMode, formatDdlLintDiagnostics, lintDdlSources, normalizeDdlLintMode, } from './fixtures/ddlLint';
13
+ export type { DdlLintDiagnostic, DdlLintMode, DdlLintOptions, DdlLintSource, } from './fixtures/ddlLint';
14
+ export { ResultSelectRewriter } from './rewriter/ResultSelectRewriter';
15
+ export { alignRewrittenParameters, applyCountWrapper, extractCountValue, CountableResult } from './utils/queryHelpers';
16
+ export { TestkitProvider, createTestkitProvider, } from './provider/TestkitProvider';
17
+ export type { CreateTestkitProviderOptions, ConnectionResetHook, ConnectionResetOption, ConnectionStrategy, TestkitConnection, } from './provider/TestkitProvider';
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.createTestkitProvider = exports.TestkitProvider = exports.extractCountValue = exports.applyCountWrapper = exports.alignRewrittenParameters = exports.ResultSelectRewriter = exports.normalizeDdlLintMode = exports.lintDdlSources = exports.formatDdlLintDiagnostics = exports.applyDdlLintMode = exports.DEFAULT_DDL_LINT_MODE = exports.TableNameResolver = exports.TableDefinitionSchemaRegistry = exports.SelectFixtureRewriter = exports.DefaultFixtureProvider = exports.DdlFixtureLoader = exports.FixtureStore = void 0;
18
+ __exportStar(require("./types"), exports);
19
+ __exportStar(require("./errors"), exports);
20
+ var FixtureStore_1 = require("./fixtures/FixtureStore");
21
+ Object.defineProperty(exports, "FixtureStore", { enumerable: true, get: function () { return FixtureStore_1.FixtureStore; } });
22
+ var DdlFixtureLoader_1 = require("./fixtures/DdlFixtureLoader");
23
+ Object.defineProperty(exports, "DdlFixtureLoader", { enumerable: true, get: function () { return DdlFixtureLoader_1.DdlFixtureLoader; } });
24
+ var FixtureProvider_1 = require("./fixtures/FixtureProvider");
25
+ Object.defineProperty(exports, "DefaultFixtureProvider", { enumerable: true, get: function () { return FixtureProvider_1.DefaultFixtureProvider; } });
26
+ var SelectFixtureRewriter_1 = require("./rewriter/SelectFixtureRewriter");
27
+ Object.defineProperty(exports, "SelectFixtureRewriter", { enumerable: true, get: function () { return SelectFixtureRewriter_1.SelectFixtureRewriter; } });
28
+ var TableDefinitionSchemaRegistry_1 = require("./fixtures/TableDefinitionSchemaRegistry");
29
+ Object.defineProperty(exports, "TableDefinitionSchemaRegistry", { enumerable: true, get: function () { return TableDefinitionSchemaRegistry_1.TableDefinitionSchemaRegistry; } });
30
+ var TableNameResolver_1 = require("./fixtures/TableNameResolver");
31
+ Object.defineProperty(exports, "TableNameResolver", { enumerable: true, get: function () { return TableNameResolver_1.TableNameResolver; } });
32
+ var ddlLint_1 = require("./fixtures/ddlLint");
33
+ Object.defineProperty(exports, "DEFAULT_DDL_LINT_MODE", { enumerable: true, get: function () { return ddlLint_1.DEFAULT_DDL_LINT_MODE; } });
34
+ Object.defineProperty(exports, "applyDdlLintMode", { enumerable: true, get: function () { return ddlLint_1.applyDdlLintMode; } });
35
+ Object.defineProperty(exports, "formatDdlLintDiagnostics", { enumerable: true, get: function () { return ddlLint_1.formatDdlLintDiagnostics; } });
36
+ Object.defineProperty(exports, "lintDdlSources", { enumerable: true, get: function () { return ddlLint_1.lintDdlSources; } });
37
+ Object.defineProperty(exports, "normalizeDdlLintMode", { enumerable: true, get: function () { return ddlLint_1.normalizeDdlLintMode; } });
38
+ var ResultSelectRewriter_1 = require("./rewriter/ResultSelectRewriter");
39
+ Object.defineProperty(exports, "ResultSelectRewriter", { enumerable: true, get: function () { return ResultSelectRewriter_1.ResultSelectRewriter; } });
40
+ var queryHelpers_1 = require("./utils/queryHelpers");
41
+ Object.defineProperty(exports, "alignRewrittenParameters", { enumerable: true, get: function () { return queryHelpers_1.alignRewrittenParameters; } });
42
+ Object.defineProperty(exports, "applyCountWrapper", { enumerable: true, get: function () { return queryHelpers_1.applyCountWrapper; } });
43
+ Object.defineProperty(exports, "extractCountValue", { enumerable: true, get: function () { return queryHelpers_1.extractCountValue; } });
44
+ var TestkitProvider_1 = require("./provider/TestkitProvider");
45
+ Object.defineProperty(exports, "TestkitProvider", { enumerable: true, get: function () { return TestkitProvider_1.TestkitProvider; } });
46
+ Object.defineProperty(exports, "createTestkitProvider", { enumerable: true, get: function () { return TestkitProvider_1.createTestkitProvider; } });
47
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../testkit-core/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,2CAAyB;AACzB,wDAAuD;AAA9C,4GAAA,YAAY,OAAA;AACrB,gEAA+D;AAAtD,oHAAA,gBAAgB,OAAA;AAEzB,8DAAoE;AAA3D,yHAAA,sBAAsB,OAAA;AAC/B,0EAAyE;AAAhE,8HAAA,qBAAqB,OAAA;AAE9B,0FAAyF;AAAhF,8IAAA,6BAA6B,OAAA;AACtC,kEAAkH;AAAzG,sHAAA,iBAAiB,OAAA;AAE1B,8CAM4B;AAL1B,gHAAA,qBAAqB,OAAA;AACrB,2GAAA,gBAAgB,OAAA;AAChB,mHAAA,wBAAwB,OAAA;AACxB,yGAAA,cAAc,OAAA;AACd,+GAAA,oBAAoB,OAAA;AAQtB,wEAAuE;AAA9D,4HAAA,oBAAoB,OAAA;AAC7B,qDAAuH;AAA9G,wHAAA,wBAAwB,OAAA;AAAE,iHAAA,iBAAiB,OAAA;AAAE,iHAAA,iBAAiB,OAAA;AACvE,8DAGoC;AAFlC,kHAAA,eAAe,OAAA;AACf,wHAAA,qBAAqB,OAAA"}
@@ -0,0 +1,8 @@
1
+ import type { TestkitLogger } from '../types';
2
+ export declare class NoopLogger implements TestkitLogger {
3
+ debug(): void;
4
+ info(): void;
5
+ warn(): void;
6
+ error(): void;
7
+ }
8
+ export declare const createLogger: (logger?: TestkitLogger) => TestkitLogger;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createLogger = exports.NoopLogger = void 0;
4
+ class NoopLogger {
5
+ // Intentionally empty implementations to keep optional logging lightweight.
6
+ debug() { }
7
+ info() { }
8
+ warn() { }
9
+ error() { }
10
+ }
11
+ exports.NoopLogger = NoopLogger;
12
+ const createLogger = (logger) => {
13
+ return logger !== null && logger !== void 0 ? logger : new NoopLogger();
14
+ };
15
+ exports.createLogger = createLogger;
16
+ //# sourceMappingURL=NoopLogger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NoopLogger.js","sourceRoot":"","sources":["../../../../../../testkit-core/src/logger/NoopLogger.ts"],"names":[],"mappings":";;;AAEA,MAAa,UAAU;IACrB,4EAA4E;IAC5E,KAAK,KAAU,CAAC;IAChB,IAAI,KAAU,CAAC;IACf,IAAI,KAAU,CAAC;IACf,KAAK,KAAU,CAAC;CACjB;AAND,gCAMC;AAEM,MAAM,YAAY,GAAG,CAAC,MAAsB,EAAiB,EAAE;IACpE,OAAO,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,IAAI,UAAU,EAAE,CAAC;AACpC,CAAC,CAAC;AAFW,QAAA,YAAY,gBAEvB"}