@rawsql-ts/ztd-cli 0.16.0 → 0.19.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/README.md +532 -353
- package/package.json +35 -17
- package/templates/.editorconfig +16 -16
- package/templates/.prettierignore +2 -2
- package/templates/.prettierrc +24 -24
- package/templates/AGENTS.md +30 -325
- package/templates/CONTEXT.md +11 -0
- package/templates/CONTEXT.webapi.md +11 -0
- package/templates/DESIGN.md +17 -0
- package/templates/DEV_NOTES.md +14 -0
- package/templates/PROMPT_DOGFOOD.webapi.md +49 -0
- package/templates/README.md +46 -217
- package/templates/README.webapi.md +38 -0
- package/templates/scripts/local-source-guard.mjs +189 -0
- package/templates/src/AGENTS.md +26 -0
- package/templates/src/application/AGENTS.md +15 -0
- package/templates/src/application/README.md +6 -0
- package/templates/src/catalog/AGENTS.md +28 -0
- package/templates/src/catalog/runtime/AGENTS.md +28 -0
- package/templates/src/catalog/runtime/_coercions.local-source.ts +30 -0
- package/templates/src/catalog/runtime/_coercions.ts +30 -0
- package/templates/src/catalog/runtime/_smoke.runtime.ts +21 -0
- package/templates/src/catalog/specs/AGENTS.md +41 -0
- package/templates/src/catalog/specs/_smoke.spec.arktype.ts +21 -0
- package/templates/src/catalog/specs/_smoke.spec.zod.ts +20 -0
- package/templates/src/db/sql-client-adapters.ts +32 -0
- package/templates/src/db/sql-client.ts +24 -24
- package/templates/src/domain/AGENTS.md +15 -0
- package/templates/src/domain/README.md +6 -0
- package/templates/src/infrastructure/AGENTS.md +14 -0
- package/templates/src/infrastructure/README.md +6 -0
- package/templates/src/infrastructure/db/AGENTS.md +14 -0
- package/templates/src/infrastructure/db/sql-client-adapters.ts +34 -0
- package/templates/src/infrastructure/db/sql-client.ts +24 -0
- package/templates/src/infrastructure/persistence/AGENTS.md +18 -0
- package/templates/src/infrastructure/persistence/README.md +8 -0
- package/templates/src/infrastructure/persistence/repositories/AGENTS.md +17 -0
- package/templates/src/infrastructure/persistence/repositories/tables/AGENTS.md +20 -0
- package/templates/src/infrastructure/persistence/repositories/tables/README.md +5 -0
- package/templates/src/infrastructure/persistence/repositories/views/AGENTS.md +16 -0
- package/templates/src/infrastructure/persistence/repositories/views/README.md +5 -0
- package/templates/src/infrastructure/telemetry/AGENTS.md +14 -0
- package/templates/src/infrastructure/telemetry/consoleRepositoryTelemetry.ts +66 -0
- package/templates/src/infrastructure/telemetry/repositoryTelemetry.ts +26 -0
- package/templates/src/infrastructure/telemetry/types.ts +48 -0
- package/templates/src/jobs/AGENTS.md +25 -0
- package/templates/src/jobs/README.md +3 -0
- package/templates/src/local/sql-contract.ts +1 -0
- package/templates/src/presentation/AGENTS.md +15 -0
- package/templates/src/presentation/http/AGENTS.md +15 -0
- package/templates/src/presentation/http/README.md +6 -0
- package/templates/src/repositories/AGENTS.md +30 -0
- package/templates/src/repositories/tables/AGENTS.md +29 -0
- package/templates/src/repositories/tables/README.md +5 -0
- package/templates/src/repositories/views/AGENTS.md +25 -0
- package/templates/src/repositories/views/README.md +5 -0
- package/templates/src/sql/AGENTS.md +30 -0
- package/templates/src/sql/README.md +6 -0
- package/templates/tests/AGENTS.md +29 -169
- package/templates/tests/generated/AGENTS.md +23 -0
- package/templates/tests/smoke.test.ts +25 -0
- package/templates/tests/smoke.validation.test.ts +34 -0
- package/templates/tests/support/AGENTS.md +24 -0
- package/templates/tests/support/global-setup.ts +15 -30
- package/templates/tests/support/testkit-client.ts +14 -742
- package/templates/tests/support/testkit-client.webapi.ts +14 -0
- package/templates/tests/ztd-layout.generated.ts +6 -6
- package/templates/tsconfig.json +15 -8
- package/templates/vitest.config.ts +13 -13
- package/templates/ztd/AGENTS.md +23 -74
- package/templates/ztd/README.md +6 -15
- package/templates/ztd/ddl/AGENTS.md +26 -0
- package/templates/ztd/ddl/demo.sql +74 -0
- package/LICENSE +0 -21
- package/dist/commands/ddl.d.ts +0 -7
- package/dist/commands/ddl.js +0 -118
- package/dist/commands/ddl.js.map +0 -1
- package/dist/commands/diff.d.ts +0 -10
- package/dist/commands/diff.js +0 -38
- package/dist/commands/diff.js.map +0 -1
- package/dist/commands/genEntities.d.ts +0 -6
- package/dist/commands/genEntities.js +0 -50
- package/dist/commands/genEntities.js.map +0 -1
- package/dist/commands/init.d.ts +0 -66
- package/dist/commands/init.js +0 -838
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/lint.d.ts +0 -59
- package/dist/commands/lint.js +0 -338
- package/dist/commands/lint.js.map +0 -1
- package/dist/commands/options.d.ts +0 -9
- package/dist/commands/options.js +0 -48
- package/dist/commands/options.js.map +0 -1
- package/dist/commands/pull.d.ts +0 -10
- package/dist/commands/pull.js +0 -105
- package/dist/commands/pull.js.map +0 -1
- package/dist/commands/ztdConfig.d.ts +0 -23
- package/dist/commands/ztdConfig.js +0 -202
- package/dist/commands/ztdConfig.js.map +0 -1
- package/dist/commands/ztdConfigCommand.d.ts +0 -5
- package/dist/commands/ztdConfigCommand.js +0 -157
- package/dist/commands/ztdConfigCommand.js.map +0 -1
- package/dist/index.d.ts +0 -2
- package/dist/index.js +0 -22
- package/dist/index.js.map +0 -1
- package/dist/utils/agents.d.ts +0 -1
- package/dist/utils/agents.js +0 -48
- package/dist/utils/agents.js.map +0 -1
- package/dist/utils/collectSqlFiles.d.ts +0 -9
- package/dist/utils/collectSqlFiles.js +0 -58
- package/dist/utils/collectSqlFiles.js.map +0 -1
- package/dist/utils/connectionSummary.d.ts +0 -3
- package/dist/utils/connectionSummary.js +0 -29
- package/dist/utils/connectionSummary.js.map +0 -1
- package/dist/utils/dbConnection.d.ts +0 -29
- package/dist/utils/dbConnection.js +0 -210
- package/dist/utils/dbConnection.js.map +0 -1
- package/dist/utils/fs.d.ts +0 -1
- package/dist/utils/fs.js +0 -12
- package/dist/utils/fs.js.map +0 -1
- package/dist/utils/normalizePulledSchema.d.ts +0 -12
- package/dist/utils/normalizePulledSchema.js +0 -213
- package/dist/utils/normalizePulledSchema.js.map +0 -1
- package/dist/utils/pgDump.d.ts +0 -11
- package/dist/utils/pgDump.js +0 -55
- package/dist/utils/pgDump.js.map +0 -1
- package/dist/utils/sqlLintHelpers.d.ts +0 -18
- package/dist/utils/sqlLintHelpers.js +0 -270
- package/dist/utils/sqlLintHelpers.js.map +0 -1
- package/dist/utils/typeMapper.d.ts +0 -4
- package/dist/utils/typeMapper.js +0 -76
- package/dist/utils/typeMapper.js.map +0 -1
- package/dist/utils/ztdProjectConfig.d.ts +0 -40
- package/dist/utils/ztdProjectConfig.js +0 -167
- package/dist/utils/ztdProjectConfig.js.map +0 -1
- package/templates/dist/drivers/pg-testkit/src/driver/PgTestkitClient.d.ts +0 -38
- package/templates/dist/drivers/pg-testkit/src/driver/PgTestkitClient.js +0 -117
- package/templates/dist/drivers/pg-testkit/src/driver/PgTestkitClient.js.map +0 -1
- package/templates/dist/drivers/pg-testkit/src/driver/createPgTestkitPool.d.ts +0 -4
- package/templates/dist/drivers/pg-testkit/src/driver/createPgTestkitPool.js +0 -71
- package/templates/dist/drivers/pg-testkit/src/driver/createPgTestkitPool.js.map +0 -1
- package/templates/dist/drivers/pg-testkit/src/index.d.ts +0 -5
- package/templates/dist/drivers/pg-testkit/src/index.js +0 -11
- package/templates/dist/drivers/pg-testkit/src/index.js.map +0 -1
- package/templates/dist/drivers/pg-testkit/src/proxy/wrapPgClient.d.ts +0 -3
- package/templates/dist/drivers/pg-testkit/src/proxy/wrapPgClient.js +0 -79
- package/templates/dist/drivers/pg-testkit/src/proxy/wrapPgClient.js.map +0 -1
- package/templates/dist/drivers/pg-testkit/src/types.d.ts +0 -69
- package/templates/dist/drivers/pg-testkit/src/types.js +0 -3
- package/templates/dist/drivers/pg-testkit/src/types.js.map +0 -1
- package/templates/dist/drivers/pg-testkit/src/utils/fixtureState.d.ts +0 -15
- package/templates/dist/drivers/pg-testkit/src/utils/fixtureState.js +0 -34
- package/templates/dist/drivers/pg-testkit/src/utils/fixtureState.js.map +0 -1
- package/templates/dist/drivers/pg-testkit/src/utils/fixtureValidation.d.ts +0 -12
- package/templates/dist/drivers/pg-testkit/src/utils/fixtureValidation.js +0 -53
- package/templates/dist/drivers/pg-testkit/src/utils/fixtureValidation.js.map +0 -1
- package/templates/dist/mapper-core/src/index.d.ts +0 -160
- package/templates/dist/mapper-core/src/index.js +0 -637
- package/templates/dist/mapper-core/src/index.js.map +0 -1
- package/templates/dist/testkit-core/src/errors/index.d.ts +0 -49
- package/templates/dist/testkit-core/src/errors/index.js +0 -111
- package/templates/dist/testkit-core/src/errors/index.js.map +0 -1
- package/templates/dist/testkit-core/src/fixtures/ColumnAffinity.d.ts +0 -5
- package/templates/dist/testkit-core/src/fixtures/ColumnAffinity.js +0 -29
- package/templates/dist/testkit-core/src/fixtures/ColumnAffinity.js.map +0 -1
- package/templates/dist/testkit-core/src/fixtures/DdlFixtureLoader.d.ts +0 -37
- package/templates/dist/testkit-core/src/fixtures/DdlFixtureLoader.js +0 -182
- package/templates/dist/testkit-core/src/fixtures/DdlFixtureLoader.js.map +0 -1
- package/templates/dist/testkit-core/src/fixtures/FixtureProvider.d.ts +0 -20
- package/templates/dist/testkit-core/src/fixtures/FixtureProvider.js +0 -121
- package/templates/dist/testkit-core/src/fixtures/FixtureProvider.js.map +0 -1
- package/templates/dist/testkit-core/src/fixtures/FixtureStore.d.ts +0 -51
- package/templates/dist/testkit-core/src/fixtures/FixtureStore.js +0 -199
- package/templates/dist/testkit-core/src/fixtures/FixtureStore.js.map +0 -1
- package/templates/dist/testkit-core/src/fixtures/TableDefinitionSchemaRegistry.d.ts +0 -10
- package/templates/dist/testkit-core/src/fixtures/TableDefinitionSchemaRegistry.js +0 -28
- package/templates/dist/testkit-core/src/fixtures/TableDefinitionSchemaRegistry.js.map +0 -1
- package/templates/dist/testkit-core/src/fixtures/TableNameResolver.d.ts +0 -18
- package/templates/dist/testkit-core/src/fixtures/TableNameResolver.js +0 -80
- package/templates/dist/testkit-core/src/fixtures/TableNameResolver.js.map +0 -1
- package/templates/dist/testkit-core/src/fixtures/ddlLint.d.ts +0 -59
- package/templates/dist/testkit-core/src/fixtures/ddlLint.js +0 -489
- package/templates/dist/testkit-core/src/fixtures/ddlLint.js.map +0 -1
- package/templates/dist/testkit-core/src/fixtures/naming.d.ts +0 -1
- package/templates/dist/testkit-core/src/fixtures/naming.js +0 -6
- package/templates/dist/testkit-core/src/fixtures/naming.js.map +0 -1
- package/templates/dist/testkit-core/src/index.d.ts +0 -17
- package/templates/dist/testkit-core/src/index.js +0 -47
- package/templates/dist/testkit-core/src/index.js.map +0 -1
- package/templates/dist/testkit-core/src/logger/NoopLogger.d.ts +0 -8
- package/templates/dist/testkit-core/src/logger/NoopLogger.js +0 -16
- package/templates/dist/testkit-core/src/logger/NoopLogger.js.map +0 -1
- package/templates/dist/testkit-core/src/provider/TestkitProvider.d.ts +0 -57
- package/templates/dist/testkit-core/src/provider/TestkitProvider.js +0 -149
- package/templates/dist/testkit-core/src/provider/TestkitProvider.js.map +0 -1
- package/templates/dist/testkit-core/src/rewriter/ResultSelectRewriter.d.ts +0 -43
- package/templates/dist/testkit-core/src/rewriter/ResultSelectRewriter.js +0 -473
- package/templates/dist/testkit-core/src/rewriter/ResultSelectRewriter.js.map +0 -1
- package/templates/dist/testkit-core/src/rewriter/SelectAnalyzer.d.ts +0 -9
- package/templates/dist/testkit-core/src/rewriter/SelectAnalyzer.js +0 -38
- package/templates/dist/testkit-core/src/rewriter/SelectAnalyzer.js.map +0 -1
- package/templates/dist/testkit-core/src/rewriter/SelectFixtureRewriter.d.ts +0 -42
- package/templates/dist/testkit-core/src/rewriter/SelectFixtureRewriter.js +0 -298
- package/templates/dist/testkit-core/src/rewriter/SelectFixtureRewriter.js.map +0 -1
- package/templates/dist/testkit-core/src/sql/SqliteValuesBuilder.d.ts +0 -12
- package/templates/dist/testkit-core/src/sql/SqliteValuesBuilder.js +0 -63
- package/templates/dist/testkit-core/src/sql/SqliteValuesBuilder.js.map +0 -1
- package/templates/dist/testkit-core/src/types/index.d.ts +0 -69
- package/templates/dist/testkit-core/src/types/index.js +0 -3
- package/templates/dist/testkit-core/src/types/index.js.map +0 -1
- package/templates/dist/testkit-core/src/utils/queryHelpers.d.ts +0 -28
- package/templates/dist/testkit-core/src/utils/queryHelpers.js +0 -81
- package/templates/dist/testkit-core/src/utils/queryHelpers.js.map +0 -1
- package/templates/dist/writer-core/src/index.d.ts +0 -34
- package/templates/dist/writer-core/src/index.js +0 -115
- package/templates/dist/writer-core/src/index.js.map +0 -1
- package/templates/dist/ztd-cli/templates/src/db/sql-client.d.ts +0 -20
- package/templates/dist/ztd-cli/templates/src/db/sql-client.js +0 -3
- package/templates/dist/ztd-cli/templates/src/db/sql-client.js.map +0 -1
- package/templates/dist/ztd-cli/templates/src/repositories/user-accounts.d.ts +0 -36
- package/templates/dist/ztd-cli/templates/src/repositories/user-accounts.js +0 -85
- package/templates/dist/ztd-cli/templates/src/repositories/user-accounts.js.map +0 -1
- package/templates/dist/ztd-cli/templates/tests/generated/ztd-row-map.generated.d.ts +0 -20
- package/templates/dist/ztd-cli/templates/tests/generated/ztd-row-map.generated.js +0 -33
- package/templates/dist/ztd-cli/templates/tests/generated/ztd-row-map.generated.js.map +0 -1
- package/templates/dist/ztd-cli/templates/tests/support/global-setup.d.ts +0 -10
- package/templates/dist/ztd-cli/templates/tests/support/global-setup.js +0 -29
- package/templates/dist/ztd-cli/templates/tests/support/global-setup.js.map +0 -1
- package/templates/dist/ztd-cli/templates/tests/support/testkit-client.d.ts +0 -66
- package/templates/dist/ztd-cli/templates/tests/support/testkit-client.js +0 -552
- package/templates/dist/ztd-cli/templates/tests/support/testkit-client.js.map +0 -1
- package/templates/dist/ztd-cli/templates/tests/user-profiles.test.d.ts +0 -1
- package/templates/dist/ztd-cli/templates/tests/user-profiles.test.js +0 -82
- package/templates/dist/ztd-cli/templates/tests/user-profiles.test.js.map +0 -1
- package/templates/dist/ztd-cli/templates/tests/writer-constraints.test.d.ts +0 -1
- package/templates/dist/ztd-cli/templates/tests/writer-constraints.test.js +0 -29
- package/templates/dist/ztd-cli/templates/tests/writer-constraints.test.js.map +0 -1
- package/templates/dist/ztd-cli/templates/tests/ztd-layout.generated.d.ts +0 -7
- package/templates/dist/ztd-cli/templates/tests/ztd-layout.generated.js +0 -10
- package/templates/dist/ztd-cli/templates/tests/ztd-layout.generated.js.map +0 -1
- package/templates/src/repositories/user-accounts.ts +0 -179
- package/templates/tests/user-profiles.test.ts +0 -161
- package/templates/tests/writer-constraints.test.ts +0 -32
|
@@ -1,489 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ddlLint.js","sourceRoot":"","sources":["../../../../../../testkit-core/src/fixtures/ddlLint.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const normalizeIdentifier: (value: string) => string;
|
|
@@ -1,6 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,17 +0,0 @@
|
|
|
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';
|
|
@@ -1,47 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,16 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|