@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.
Files changed (242) hide show
  1. package/README.md +532 -353
  2. package/package.json +35 -17
  3. package/templates/.editorconfig +16 -16
  4. package/templates/.prettierignore +2 -2
  5. package/templates/.prettierrc +24 -24
  6. package/templates/AGENTS.md +30 -325
  7. package/templates/CONTEXT.md +11 -0
  8. package/templates/CONTEXT.webapi.md +11 -0
  9. package/templates/DESIGN.md +17 -0
  10. package/templates/DEV_NOTES.md +14 -0
  11. package/templates/PROMPT_DOGFOOD.webapi.md +49 -0
  12. package/templates/README.md +46 -217
  13. package/templates/README.webapi.md +38 -0
  14. package/templates/scripts/local-source-guard.mjs +189 -0
  15. package/templates/src/AGENTS.md +26 -0
  16. package/templates/src/application/AGENTS.md +15 -0
  17. package/templates/src/application/README.md +6 -0
  18. package/templates/src/catalog/AGENTS.md +28 -0
  19. package/templates/src/catalog/runtime/AGENTS.md +28 -0
  20. package/templates/src/catalog/runtime/_coercions.local-source.ts +30 -0
  21. package/templates/src/catalog/runtime/_coercions.ts +30 -0
  22. package/templates/src/catalog/runtime/_smoke.runtime.ts +21 -0
  23. package/templates/src/catalog/specs/AGENTS.md +41 -0
  24. package/templates/src/catalog/specs/_smoke.spec.arktype.ts +21 -0
  25. package/templates/src/catalog/specs/_smoke.spec.zod.ts +20 -0
  26. package/templates/src/db/sql-client-adapters.ts +32 -0
  27. package/templates/src/db/sql-client.ts +24 -24
  28. package/templates/src/domain/AGENTS.md +15 -0
  29. package/templates/src/domain/README.md +6 -0
  30. package/templates/src/infrastructure/AGENTS.md +14 -0
  31. package/templates/src/infrastructure/README.md +6 -0
  32. package/templates/src/infrastructure/db/AGENTS.md +14 -0
  33. package/templates/src/infrastructure/db/sql-client-adapters.ts +34 -0
  34. package/templates/src/infrastructure/db/sql-client.ts +24 -0
  35. package/templates/src/infrastructure/persistence/AGENTS.md +18 -0
  36. package/templates/src/infrastructure/persistence/README.md +8 -0
  37. package/templates/src/infrastructure/persistence/repositories/AGENTS.md +17 -0
  38. package/templates/src/infrastructure/persistence/repositories/tables/AGENTS.md +20 -0
  39. package/templates/src/infrastructure/persistence/repositories/tables/README.md +5 -0
  40. package/templates/src/infrastructure/persistence/repositories/views/AGENTS.md +16 -0
  41. package/templates/src/infrastructure/persistence/repositories/views/README.md +5 -0
  42. package/templates/src/infrastructure/telemetry/AGENTS.md +14 -0
  43. package/templates/src/infrastructure/telemetry/consoleRepositoryTelemetry.ts +66 -0
  44. package/templates/src/infrastructure/telemetry/repositoryTelemetry.ts +26 -0
  45. package/templates/src/infrastructure/telemetry/types.ts +48 -0
  46. package/templates/src/jobs/AGENTS.md +25 -0
  47. package/templates/src/jobs/README.md +3 -0
  48. package/templates/src/local/sql-contract.ts +1 -0
  49. package/templates/src/presentation/AGENTS.md +15 -0
  50. package/templates/src/presentation/http/AGENTS.md +15 -0
  51. package/templates/src/presentation/http/README.md +6 -0
  52. package/templates/src/repositories/AGENTS.md +30 -0
  53. package/templates/src/repositories/tables/AGENTS.md +29 -0
  54. package/templates/src/repositories/tables/README.md +5 -0
  55. package/templates/src/repositories/views/AGENTS.md +25 -0
  56. package/templates/src/repositories/views/README.md +5 -0
  57. package/templates/src/sql/AGENTS.md +30 -0
  58. package/templates/src/sql/README.md +6 -0
  59. package/templates/tests/AGENTS.md +29 -169
  60. package/templates/tests/generated/AGENTS.md +23 -0
  61. package/templates/tests/smoke.test.ts +25 -0
  62. package/templates/tests/smoke.validation.test.ts +34 -0
  63. package/templates/tests/support/AGENTS.md +24 -0
  64. package/templates/tests/support/global-setup.ts +15 -30
  65. package/templates/tests/support/testkit-client.ts +14 -742
  66. package/templates/tests/support/testkit-client.webapi.ts +14 -0
  67. package/templates/tests/ztd-layout.generated.ts +6 -6
  68. package/templates/tsconfig.json +15 -8
  69. package/templates/vitest.config.ts +13 -13
  70. package/templates/ztd/AGENTS.md +23 -74
  71. package/templates/ztd/README.md +6 -15
  72. package/templates/ztd/ddl/AGENTS.md +26 -0
  73. package/templates/ztd/ddl/demo.sql +74 -0
  74. package/LICENSE +0 -21
  75. package/dist/commands/ddl.d.ts +0 -7
  76. package/dist/commands/ddl.js +0 -118
  77. package/dist/commands/ddl.js.map +0 -1
  78. package/dist/commands/diff.d.ts +0 -10
  79. package/dist/commands/diff.js +0 -38
  80. package/dist/commands/diff.js.map +0 -1
  81. package/dist/commands/genEntities.d.ts +0 -6
  82. package/dist/commands/genEntities.js +0 -50
  83. package/dist/commands/genEntities.js.map +0 -1
  84. package/dist/commands/init.d.ts +0 -66
  85. package/dist/commands/init.js +0 -838
  86. package/dist/commands/init.js.map +0 -1
  87. package/dist/commands/lint.d.ts +0 -59
  88. package/dist/commands/lint.js +0 -338
  89. package/dist/commands/lint.js.map +0 -1
  90. package/dist/commands/options.d.ts +0 -9
  91. package/dist/commands/options.js +0 -48
  92. package/dist/commands/options.js.map +0 -1
  93. package/dist/commands/pull.d.ts +0 -10
  94. package/dist/commands/pull.js +0 -105
  95. package/dist/commands/pull.js.map +0 -1
  96. package/dist/commands/ztdConfig.d.ts +0 -23
  97. package/dist/commands/ztdConfig.js +0 -202
  98. package/dist/commands/ztdConfig.js.map +0 -1
  99. package/dist/commands/ztdConfigCommand.d.ts +0 -5
  100. package/dist/commands/ztdConfigCommand.js +0 -157
  101. package/dist/commands/ztdConfigCommand.js.map +0 -1
  102. package/dist/index.d.ts +0 -2
  103. package/dist/index.js +0 -22
  104. package/dist/index.js.map +0 -1
  105. package/dist/utils/agents.d.ts +0 -1
  106. package/dist/utils/agents.js +0 -48
  107. package/dist/utils/agents.js.map +0 -1
  108. package/dist/utils/collectSqlFiles.d.ts +0 -9
  109. package/dist/utils/collectSqlFiles.js +0 -58
  110. package/dist/utils/collectSqlFiles.js.map +0 -1
  111. package/dist/utils/connectionSummary.d.ts +0 -3
  112. package/dist/utils/connectionSummary.js +0 -29
  113. package/dist/utils/connectionSummary.js.map +0 -1
  114. package/dist/utils/dbConnection.d.ts +0 -29
  115. package/dist/utils/dbConnection.js +0 -210
  116. package/dist/utils/dbConnection.js.map +0 -1
  117. package/dist/utils/fs.d.ts +0 -1
  118. package/dist/utils/fs.js +0 -12
  119. package/dist/utils/fs.js.map +0 -1
  120. package/dist/utils/normalizePulledSchema.d.ts +0 -12
  121. package/dist/utils/normalizePulledSchema.js +0 -213
  122. package/dist/utils/normalizePulledSchema.js.map +0 -1
  123. package/dist/utils/pgDump.d.ts +0 -11
  124. package/dist/utils/pgDump.js +0 -55
  125. package/dist/utils/pgDump.js.map +0 -1
  126. package/dist/utils/sqlLintHelpers.d.ts +0 -18
  127. package/dist/utils/sqlLintHelpers.js +0 -270
  128. package/dist/utils/sqlLintHelpers.js.map +0 -1
  129. package/dist/utils/typeMapper.d.ts +0 -4
  130. package/dist/utils/typeMapper.js +0 -76
  131. package/dist/utils/typeMapper.js.map +0 -1
  132. package/dist/utils/ztdProjectConfig.d.ts +0 -40
  133. package/dist/utils/ztdProjectConfig.js +0 -167
  134. package/dist/utils/ztdProjectConfig.js.map +0 -1
  135. package/templates/dist/drivers/pg-testkit/src/driver/PgTestkitClient.d.ts +0 -38
  136. package/templates/dist/drivers/pg-testkit/src/driver/PgTestkitClient.js +0 -117
  137. package/templates/dist/drivers/pg-testkit/src/driver/PgTestkitClient.js.map +0 -1
  138. package/templates/dist/drivers/pg-testkit/src/driver/createPgTestkitPool.d.ts +0 -4
  139. package/templates/dist/drivers/pg-testkit/src/driver/createPgTestkitPool.js +0 -71
  140. package/templates/dist/drivers/pg-testkit/src/driver/createPgTestkitPool.js.map +0 -1
  141. package/templates/dist/drivers/pg-testkit/src/index.d.ts +0 -5
  142. package/templates/dist/drivers/pg-testkit/src/index.js +0 -11
  143. package/templates/dist/drivers/pg-testkit/src/index.js.map +0 -1
  144. package/templates/dist/drivers/pg-testkit/src/proxy/wrapPgClient.d.ts +0 -3
  145. package/templates/dist/drivers/pg-testkit/src/proxy/wrapPgClient.js +0 -79
  146. package/templates/dist/drivers/pg-testkit/src/proxy/wrapPgClient.js.map +0 -1
  147. package/templates/dist/drivers/pg-testkit/src/types.d.ts +0 -69
  148. package/templates/dist/drivers/pg-testkit/src/types.js +0 -3
  149. package/templates/dist/drivers/pg-testkit/src/types.js.map +0 -1
  150. package/templates/dist/drivers/pg-testkit/src/utils/fixtureState.d.ts +0 -15
  151. package/templates/dist/drivers/pg-testkit/src/utils/fixtureState.js +0 -34
  152. package/templates/dist/drivers/pg-testkit/src/utils/fixtureState.js.map +0 -1
  153. package/templates/dist/drivers/pg-testkit/src/utils/fixtureValidation.d.ts +0 -12
  154. package/templates/dist/drivers/pg-testkit/src/utils/fixtureValidation.js +0 -53
  155. package/templates/dist/drivers/pg-testkit/src/utils/fixtureValidation.js.map +0 -1
  156. package/templates/dist/mapper-core/src/index.d.ts +0 -160
  157. package/templates/dist/mapper-core/src/index.js +0 -637
  158. package/templates/dist/mapper-core/src/index.js.map +0 -1
  159. package/templates/dist/testkit-core/src/errors/index.d.ts +0 -49
  160. package/templates/dist/testkit-core/src/errors/index.js +0 -111
  161. package/templates/dist/testkit-core/src/errors/index.js.map +0 -1
  162. package/templates/dist/testkit-core/src/fixtures/ColumnAffinity.d.ts +0 -5
  163. package/templates/dist/testkit-core/src/fixtures/ColumnAffinity.js +0 -29
  164. package/templates/dist/testkit-core/src/fixtures/ColumnAffinity.js.map +0 -1
  165. package/templates/dist/testkit-core/src/fixtures/DdlFixtureLoader.d.ts +0 -37
  166. package/templates/dist/testkit-core/src/fixtures/DdlFixtureLoader.js +0 -182
  167. package/templates/dist/testkit-core/src/fixtures/DdlFixtureLoader.js.map +0 -1
  168. package/templates/dist/testkit-core/src/fixtures/FixtureProvider.d.ts +0 -20
  169. package/templates/dist/testkit-core/src/fixtures/FixtureProvider.js +0 -121
  170. package/templates/dist/testkit-core/src/fixtures/FixtureProvider.js.map +0 -1
  171. package/templates/dist/testkit-core/src/fixtures/FixtureStore.d.ts +0 -51
  172. package/templates/dist/testkit-core/src/fixtures/FixtureStore.js +0 -199
  173. package/templates/dist/testkit-core/src/fixtures/FixtureStore.js.map +0 -1
  174. package/templates/dist/testkit-core/src/fixtures/TableDefinitionSchemaRegistry.d.ts +0 -10
  175. package/templates/dist/testkit-core/src/fixtures/TableDefinitionSchemaRegistry.js +0 -28
  176. package/templates/dist/testkit-core/src/fixtures/TableDefinitionSchemaRegistry.js.map +0 -1
  177. package/templates/dist/testkit-core/src/fixtures/TableNameResolver.d.ts +0 -18
  178. package/templates/dist/testkit-core/src/fixtures/TableNameResolver.js +0 -80
  179. package/templates/dist/testkit-core/src/fixtures/TableNameResolver.js.map +0 -1
  180. package/templates/dist/testkit-core/src/fixtures/ddlLint.d.ts +0 -59
  181. package/templates/dist/testkit-core/src/fixtures/ddlLint.js +0 -489
  182. package/templates/dist/testkit-core/src/fixtures/ddlLint.js.map +0 -1
  183. package/templates/dist/testkit-core/src/fixtures/naming.d.ts +0 -1
  184. package/templates/dist/testkit-core/src/fixtures/naming.js +0 -6
  185. package/templates/dist/testkit-core/src/fixtures/naming.js.map +0 -1
  186. package/templates/dist/testkit-core/src/index.d.ts +0 -17
  187. package/templates/dist/testkit-core/src/index.js +0 -47
  188. package/templates/dist/testkit-core/src/index.js.map +0 -1
  189. package/templates/dist/testkit-core/src/logger/NoopLogger.d.ts +0 -8
  190. package/templates/dist/testkit-core/src/logger/NoopLogger.js +0 -16
  191. package/templates/dist/testkit-core/src/logger/NoopLogger.js.map +0 -1
  192. package/templates/dist/testkit-core/src/provider/TestkitProvider.d.ts +0 -57
  193. package/templates/dist/testkit-core/src/provider/TestkitProvider.js +0 -149
  194. package/templates/dist/testkit-core/src/provider/TestkitProvider.js.map +0 -1
  195. package/templates/dist/testkit-core/src/rewriter/ResultSelectRewriter.d.ts +0 -43
  196. package/templates/dist/testkit-core/src/rewriter/ResultSelectRewriter.js +0 -473
  197. package/templates/dist/testkit-core/src/rewriter/ResultSelectRewriter.js.map +0 -1
  198. package/templates/dist/testkit-core/src/rewriter/SelectAnalyzer.d.ts +0 -9
  199. package/templates/dist/testkit-core/src/rewriter/SelectAnalyzer.js +0 -38
  200. package/templates/dist/testkit-core/src/rewriter/SelectAnalyzer.js.map +0 -1
  201. package/templates/dist/testkit-core/src/rewriter/SelectFixtureRewriter.d.ts +0 -42
  202. package/templates/dist/testkit-core/src/rewriter/SelectFixtureRewriter.js +0 -298
  203. package/templates/dist/testkit-core/src/rewriter/SelectFixtureRewriter.js.map +0 -1
  204. package/templates/dist/testkit-core/src/sql/SqliteValuesBuilder.d.ts +0 -12
  205. package/templates/dist/testkit-core/src/sql/SqliteValuesBuilder.js +0 -63
  206. package/templates/dist/testkit-core/src/sql/SqliteValuesBuilder.js.map +0 -1
  207. package/templates/dist/testkit-core/src/types/index.d.ts +0 -69
  208. package/templates/dist/testkit-core/src/types/index.js +0 -3
  209. package/templates/dist/testkit-core/src/types/index.js.map +0 -1
  210. package/templates/dist/testkit-core/src/utils/queryHelpers.d.ts +0 -28
  211. package/templates/dist/testkit-core/src/utils/queryHelpers.js +0 -81
  212. package/templates/dist/testkit-core/src/utils/queryHelpers.js.map +0 -1
  213. package/templates/dist/writer-core/src/index.d.ts +0 -34
  214. package/templates/dist/writer-core/src/index.js +0 -115
  215. package/templates/dist/writer-core/src/index.js.map +0 -1
  216. package/templates/dist/ztd-cli/templates/src/db/sql-client.d.ts +0 -20
  217. package/templates/dist/ztd-cli/templates/src/db/sql-client.js +0 -3
  218. package/templates/dist/ztd-cli/templates/src/db/sql-client.js.map +0 -1
  219. package/templates/dist/ztd-cli/templates/src/repositories/user-accounts.d.ts +0 -36
  220. package/templates/dist/ztd-cli/templates/src/repositories/user-accounts.js +0 -85
  221. package/templates/dist/ztd-cli/templates/src/repositories/user-accounts.js.map +0 -1
  222. package/templates/dist/ztd-cli/templates/tests/generated/ztd-row-map.generated.d.ts +0 -20
  223. package/templates/dist/ztd-cli/templates/tests/generated/ztd-row-map.generated.js +0 -33
  224. package/templates/dist/ztd-cli/templates/tests/generated/ztd-row-map.generated.js.map +0 -1
  225. package/templates/dist/ztd-cli/templates/tests/support/global-setup.d.ts +0 -10
  226. package/templates/dist/ztd-cli/templates/tests/support/global-setup.js +0 -29
  227. package/templates/dist/ztd-cli/templates/tests/support/global-setup.js.map +0 -1
  228. package/templates/dist/ztd-cli/templates/tests/support/testkit-client.d.ts +0 -66
  229. package/templates/dist/ztd-cli/templates/tests/support/testkit-client.js +0 -552
  230. package/templates/dist/ztd-cli/templates/tests/support/testkit-client.js.map +0 -1
  231. package/templates/dist/ztd-cli/templates/tests/user-profiles.test.d.ts +0 -1
  232. package/templates/dist/ztd-cli/templates/tests/user-profiles.test.js +0 -82
  233. package/templates/dist/ztd-cli/templates/tests/user-profiles.test.js.map +0 -1
  234. package/templates/dist/ztd-cli/templates/tests/writer-constraints.test.d.ts +0 -1
  235. package/templates/dist/ztd-cli/templates/tests/writer-constraints.test.js +0 -29
  236. package/templates/dist/ztd-cli/templates/tests/writer-constraints.test.js.map +0 -1
  237. package/templates/dist/ztd-cli/templates/tests/ztd-layout.generated.d.ts +0 -7
  238. package/templates/dist/ztd-cli/templates/tests/ztd-layout.generated.js +0 -10
  239. package/templates/dist/ztd-cli/templates/tests/ztd-layout.generated.js.map +0 -1
  240. package/templates/src/repositories/user-accounts.ts +0 -179
  241. package/templates/tests/user-profiles.test.ts +0 -161
  242. 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,8 +0,0 @@
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;
@@ -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"}