@rawsql-ts/ztd-cli 0.17.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 -366
  2. package/package.json +26 -15
  3. package/templates/.editorconfig +16 -16
  4. package/templates/.prettierignore +2 -2
  5. package/templates/.prettierrc +24 -24
  6. package/templates/AGENTS.md +30 -52
  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 -14
  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 -26
  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 -37
  19. package/templates/src/catalog/runtime/AGENTS.md +28 -75
  20. package/templates/src/catalog/runtime/_coercions.local-source.ts +30 -0
  21. package/templates/src/catalog/runtime/_coercions.ts +30 -1
  22. package/templates/src/catalog/runtime/_smoke.runtime.ts +21 -21
  23. package/templates/src/catalog/specs/AGENTS.md +41 -48
  24. package/templates/src/catalog/specs/_smoke.spec.arktype.ts +21 -21
  25. package/templates/src/catalog/specs/_smoke.spec.zod.ts +20 -20
  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/{dist/ztd-cli/templates/src → src/infrastructure}/db/sql-client.ts +3 -3
  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 -26
  47. package/templates/src/jobs/README.md +2 -2
  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 -118
  53. package/templates/src/repositories/tables/AGENTS.md +29 -94
  54. package/templates/src/repositories/tables/README.md +5 -3
  55. package/templates/src/repositories/views/AGENTS.md +25 -25
  56. package/templates/src/repositories/views/README.md +5 -3
  57. package/templates/src/sql/AGENTS.md +30 -77
  58. package/templates/src/sql/README.md +5 -5
  59. package/templates/tests/AGENTS.md +29 -62
  60. package/templates/tests/generated/AGENTS.md +23 -16
  61. package/templates/tests/smoke.test.ts +25 -5
  62. package/templates/tests/smoke.validation.test.ts +34 -34
  63. package/templates/tests/support/AGENTS.md +24 -26
  64. package/templates/tests/support/global-setup.ts +15 -15
  65. package/templates/tests/support/testkit-client.ts +14 -14
  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 -15
  69. package/templates/vitest.config.ts +13 -13
  70. package/templates/ztd/AGENTS.md +23 -18
  71. package/templates/ztd/README.md +5 -5
  72. package/templates/ztd/ddl/AGENTS.md +26 -34
  73. package/templates/ztd/ddl/demo.sql +74 -74
  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 -79
  85. package/dist/commands/init.js +0 -1083
  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 -358
  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 -216
  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/optionalDependencies.d.ts +0 -35
  124. package/dist/utils/optionalDependencies.js +0 -96
  125. package/dist/utils/optionalDependencies.js.map +0 -1
  126. package/dist/utils/pgDump.d.ts +0 -11
  127. package/dist/utils/pgDump.js +0 -55
  128. package/dist/utils/pgDump.js.map +0 -1
  129. package/dist/utils/sqlLintHelpers.d.ts +0 -18
  130. package/dist/utils/sqlLintHelpers.js +0 -270
  131. package/dist/utils/sqlLintHelpers.js.map +0 -1
  132. package/dist/utils/typeMapper.d.ts +0 -4
  133. package/dist/utils/typeMapper.js +0 -76
  134. package/dist/utils/typeMapper.js.map +0 -1
  135. package/dist/utils/ztdProjectConfig.d.ts +0 -40
  136. package/dist/utils/ztdProjectConfig.js +0 -167
  137. package/dist/utils/ztdProjectConfig.js.map +0 -1
  138. package/templates/dist/drivers/pg-testkit/src/driver/PgTestkitClient.d.ts +0 -38
  139. package/templates/dist/drivers/pg-testkit/src/driver/PgTestkitClient.js +0 -117
  140. package/templates/dist/drivers/pg-testkit/src/driver/PgTestkitClient.js.map +0 -1
  141. package/templates/dist/drivers/pg-testkit/src/driver/createPgTestkitPool.d.ts +0 -4
  142. package/templates/dist/drivers/pg-testkit/src/driver/createPgTestkitPool.js +0 -71
  143. package/templates/dist/drivers/pg-testkit/src/driver/createPgTestkitPool.js.map +0 -1
  144. package/templates/dist/drivers/pg-testkit/src/index.d.ts +0 -5
  145. package/templates/dist/drivers/pg-testkit/src/index.js +0 -11
  146. package/templates/dist/drivers/pg-testkit/src/index.js.map +0 -1
  147. package/templates/dist/drivers/pg-testkit/src/proxy/wrapPgClient.d.ts +0 -3
  148. package/templates/dist/drivers/pg-testkit/src/proxy/wrapPgClient.js +0 -79
  149. package/templates/dist/drivers/pg-testkit/src/proxy/wrapPgClient.js.map +0 -1
  150. package/templates/dist/drivers/pg-testkit/src/types.d.ts +0 -69
  151. package/templates/dist/drivers/pg-testkit/src/types.js +0 -3
  152. package/templates/dist/drivers/pg-testkit/src/types.js.map +0 -1
  153. package/templates/dist/drivers/pg-testkit/src/utils/fixtureState.d.ts +0 -15
  154. package/templates/dist/drivers/pg-testkit/src/utils/fixtureState.js +0 -34
  155. package/templates/dist/drivers/pg-testkit/src/utils/fixtureState.js.map +0 -1
  156. package/templates/dist/drivers/pg-testkit/src/utils/fixtureValidation.d.ts +0 -12
  157. package/templates/dist/drivers/pg-testkit/src/utils/fixtureValidation.js +0 -53
  158. package/templates/dist/drivers/pg-testkit/src/utils/fixtureValidation.js.map +0 -1
  159. package/templates/dist/mapper-core/src/index.d.ts +0 -160
  160. package/templates/dist/mapper-core/src/index.js +0 -637
  161. package/templates/dist/mapper-core/src/index.js.map +0 -1
  162. package/templates/dist/testkit-core/src/errors/index.d.ts +0 -49
  163. package/templates/dist/testkit-core/src/errors/index.js +0 -111
  164. package/templates/dist/testkit-core/src/errors/index.js.map +0 -1
  165. package/templates/dist/testkit-core/src/fixtures/ColumnAffinity.d.ts +0 -5
  166. package/templates/dist/testkit-core/src/fixtures/ColumnAffinity.js +0 -29
  167. package/templates/dist/testkit-core/src/fixtures/ColumnAffinity.js.map +0 -1
  168. package/templates/dist/testkit-core/src/fixtures/DdlFixtureLoader.d.ts +0 -37
  169. package/templates/dist/testkit-core/src/fixtures/DdlFixtureLoader.js +0 -182
  170. package/templates/dist/testkit-core/src/fixtures/DdlFixtureLoader.js.map +0 -1
  171. package/templates/dist/testkit-core/src/fixtures/FixtureProvider.d.ts +0 -20
  172. package/templates/dist/testkit-core/src/fixtures/FixtureProvider.js +0 -121
  173. package/templates/dist/testkit-core/src/fixtures/FixtureProvider.js.map +0 -1
  174. package/templates/dist/testkit-core/src/fixtures/FixtureStore.d.ts +0 -51
  175. package/templates/dist/testkit-core/src/fixtures/FixtureStore.js +0 -199
  176. package/templates/dist/testkit-core/src/fixtures/FixtureStore.js.map +0 -1
  177. package/templates/dist/testkit-core/src/fixtures/TableDefinitionSchemaRegistry.d.ts +0 -10
  178. package/templates/dist/testkit-core/src/fixtures/TableDefinitionSchemaRegistry.js +0 -28
  179. package/templates/dist/testkit-core/src/fixtures/TableDefinitionSchemaRegistry.js.map +0 -1
  180. package/templates/dist/testkit-core/src/fixtures/TableNameResolver.d.ts +0 -18
  181. package/templates/dist/testkit-core/src/fixtures/TableNameResolver.js +0 -80
  182. package/templates/dist/testkit-core/src/fixtures/TableNameResolver.js.map +0 -1
  183. package/templates/dist/testkit-core/src/fixtures/ddlLint.d.ts +0 -59
  184. package/templates/dist/testkit-core/src/fixtures/ddlLint.js +0 -489
  185. package/templates/dist/testkit-core/src/fixtures/ddlLint.js.map +0 -1
  186. package/templates/dist/testkit-core/src/fixtures/naming.d.ts +0 -1
  187. package/templates/dist/testkit-core/src/fixtures/naming.js +0 -6
  188. package/templates/dist/testkit-core/src/fixtures/naming.js.map +0 -1
  189. package/templates/dist/testkit-core/src/index.d.ts +0 -17
  190. package/templates/dist/testkit-core/src/index.js +0 -47
  191. package/templates/dist/testkit-core/src/index.js.map +0 -1
  192. package/templates/dist/testkit-core/src/logger/NoopLogger.d.ts +0 -8
  193. package/templates/dist/testkit-core/src/logger/NoopLogger.js +0 -16
  194. package/templates/dist/testkit-core/src/logger/NoopLogger.js.map +0 -1
  195. package/templates/dist/testkit-core/src/provider/TestkitProvider.d.ts +0 -57
  196. package/templates/dist/testkit-core/src/provider/TestkitProvider.js +0 -149
  197. package/templates/dist/testkit-core/src/provider/TestkitProvider.js.map +0 -1
  198. package/templates/dist/testkit-core/src/rewriter/ResultSelectRewriter.d.ts +0 -43
  199. package/templates/dist/testkit-core/src/rewriter/ResultSelectRewriter.js +0 -473
  200. package/templates/dist/testkit-core/src/rewriter/ResultSelectRewriter.js.map +0 -1
  201. package/templates/dist/testkit-core/src/rewriter/SelectAnalyzer.d.ts +0 -9
  202. package/templates/dist/testkit-core/src/rewriter/SelectAnalyzer.js +0 -38
  203. package/templates/dist/testkit-core/src/rewriter/SelectAnalyzer.js.map +0 -1
  204. package/templates/dist/testkit-core/src/rewriter/SelectFixtureRewriter.d.ts +0 -42
  205. package/templates/dist/testkit-core/src/rewriter/SelectFixtureRewriter.js +0 -298
  206. package/templates/dist/testkit-core/src/rewriter/SelectFixtureRewriter.js.map +0 -1
  207. package/templates/dist/testkit-core/src/sql/SqliteValuesBuilder.d.ts +0 -12
  208. package/templates/dist/testkit-core/src/sql/SqliteValuesBuilder.js +0 -63
  209. package/templates/dist/testkit-core/src/sql/SqliteValuesBuilder.js.map +0 -1
  210. package/templates/dist/testkit-core/src/types/index.d.ts +0 -69
  211. package/templates/dist/testkit-core/src/types/index.js +0 -3
  212. package/templates/dist/testkit-core/src/types/index.js.map +0 -1
  213. package/templates/dist/testkit-core/src/utils/queryHelpers.d.ts +0 -28
  214. package/templates/dist/testkit-core/src/utils/queryHelpers.js +0 -81
  215. package/templates/dist/testkit-core/src/utils/queryHelpers.js.map +0 -1
  216. package/templates/dist/writer-core/src/index.d.ts +0 -34
  217. package/templates/dist/writer-core/src/index.js +0 -115
  218. package/templates/dist/writer-core/src/index.js.map +0 -1
  219. package/templates/dist/ztd-cli/templates/src/db/sql-client.d.ts +0 -20
  220. package/templates/dist/ztd-cli/templates/src/db/sql-client.js +0 -3
  221. package/templates/dist/ztd-cli/templates/src/db/sql-client.js.map +0 -1
  222. package/templates/dist/ztd-cli/templates/src/repositories/user-accounts.d.ts +0 -36
  223. package/templates/dist/ztd-cli/templates/src/repositories/user-accounts.js +0 -85
  224. package/templates/dist/ztd-cli/templates/src/repositories/user-accounts.js.map +0 -1
  225. package/templates/dist/ztd-cli/templates/tests/generated/ztd-row-map.generated.d.ts +0 -20
  226. package/templates/dist/ztd-cli/templates/tests/generated/ztd-row-map.generated.js +0 -33
  227. package/templates/dist/ztd-cli/templates/tests/generated/ztd-row-map.generated.js.map +0 -1
  228. package/templates/dist/ztd-cli/templates/tests/support/global-setup.d.ts +0 -10
  229. package/templates/dist/ztd-cli/templates/tests/support/global-setup.js +0 -29
  230. package/templates/dist/ztd-cli/templates/tests/support/global-setup.js.map +0 -1
  231. package/templates/dist/ztd-cli/templates/tests/support/testkit-client.d.ts +0 -66
  232. package/templates/dist/ztd-cli/templates/tests/support/testkit-client.js +0 -552
  233. package/templates/dist/ztd-cli/templates/tests/support/testkit-client.js.map +0 -1
  234. package/templates/dist/ztd-cli/templates/tests/user-profiles.test.d.ts +0 -1
  235. package/templates/dist/ztd-cli/templates/tests/user-profiles.test.js +0 -82
  236. package/templates/dist/ztd-cli/templates/tests/user-profiles.test.js.map +0 -1
  237. package/templates/dist/ztd-cli/templates/tests/writer-constraints.test.d.ts +0 -1
  238. package/templates/dist/ztd-cli/templates/tests/writer-constraints.test.js +0 -29
  239. package/templates/dist/ztd-cli/templates/tests/writer-constraints.test.js.map +0 -1
  240. package/templates/dist/ztd-cli/templates/tests/ztd-layout.generated.d.ts +0 -7
  241. package/templates/dist/ztd-cli/templates/tests/ztd-layout.generated.js +0 -10
  242. package/templates/dist/ztd-cli/templates/tests/ztd-layout.generated.js.map +0 -1
@@ -1,199 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FixtureStore = void 0;
4
- const errors_1 = require("../errors");
5
- const naming_1 = require("./naming");
6
- const ColumnAffinity_1 = require("./ColumnAffinity");
7
- /**
8
- * Normalizes and indexes fixture metadata so rewrites can resolve tables and columns deterministically.
9
- */
10
- class FixtureStore {
11
- constructor(fixtures = [], schema, tableNameResolver) {
12
- this.schemaRegistry = schema;
13
- this.tableNameResolver = tableNameResolver;
14
- this.baseMap = this.buildMap(fixtures);
15
- }
16
- /**
17
- * Builds a fixture lookup map that layers per-call overrides on top of the base fixtures.
18
- * @param overrides - Additional fixtures to merge with the base set.
19
- * @returns A map keyed by normalized table names.
20
- */
21
- withOverrides(overrides) {
22
- if (!overrides || overrides.length === 0) {
23
- return new Map(this.baseMap);
24
- }
25
- const next = new Map(this.baseMap);
26
- const overrideMap = this.buildMap(overrides);
27
- for (const [name, fixture] of overrideMap.entries()) {
28
- next.set(name, fixture);
29
- }
30
- return next;
31
- }
32
- /**
33
- * Retrieves column metadata for the requested table from fixtures or registered schema information.
34
- * @param tableName - The table identifier potentially qualified by schema.
35
- * @returns Column details assembled from fixtures or schema registry entries.
36
- */
37
- describeColumns(tableName) {
38
- const target = this.resolveTableKey(tableName, (candidate) => this.baseMap.has(candidate));
39
- const fixture = this.baseMap.get(target);
40
- if (fixture) {
41
- return { columns: fixture.columns, source: 'fixture' };
42
- }
43
- const schema = this.getRegisteredSchema(tableName);
44
- if (!schema) {
45
- return undefined;
46
- }
47
- return { columns: this.buildColumns(schema, tableName), source: 'schema' };
48
- }
49
- buildMap(fixtures) {
50
- const map = new Map();
51
- for (const fixture of fixtures) {
52
- const lookupKey = this.resolveTableKey(fixture.tableName);
53
- map.set(lookupKey, this.normalizeFixture(fixture));
54
- }
55
- return map;
56
- }
57
- getRegisteredSchema(tableName) {
58
- if (!this.schemaRegistry) {
59
- return undefined;
60
- }
61
- for (const candidate of this.resolveLookupCandidates(tableName)) {
62
- const schema = this.schemaRegistry.getTable(candidate);
63
- if (schema) {
64
- return schema;
65
- }
66
- }
67
- return undefined;
68
- }
69
- normalizeFixture(fixture) {
70
- var _a;
71
- const schema = (_a = fixture.schema) !== null && _a !== void 0 ? _a : this.getRegisteredSchema(fixture.tableName);
72
- if (!schema) {
73
- throw new errors_1.SchemaValidationError(`Table "${fixture.tableName}" is missing a schema definition. Provide fixture.schema or register the table.`);
74
- }
75
- const columns = this.buildColumns(schema, fixture.tableName);
76
- const rows = fixture.rows.map((row, rowIndex) => this.normalizeRow(row, columns, fixture.tableName, rowIndex));
77
- return {
78
- name: fixture.tableName,
79
- columns,
80
- rows,
81
- };
82
- }
83
- // Prefer configured resolver results so the canonical key matches schema-aware expectations.
84
- resolveTableKey(tableName, lookup) {
85
- if (!this.tableNameResolver) {
86
- return (0, naming_1.normalizeIdentifier)(tableName);
87
- }
88
- return this.tableNameResolver.resolve(tableName, lookup);
89
- }
90
- // Provide multiple lookup candidates so schema registries can be probed by both qualified and unqualified names.
91
- resolveLookupCandidates(tableName) {
92
- if (!this.tableNameResolver) {
93
- return [(0, naming_1.normalizeIdentifier)(tableName)];
94
- }
95
- return this.tableNameResolver.buildLookupCandidates(tableName);
96
- }
97
- buildColumns(schema, fixtureName) {
98
- if (this.isTableDefinitionModel(schema)) {
99
- // Table definitions carry richer metadata that we can reuse for affinity guesses.
100
- return this.buildColumnsFromDefinition(schema, fixtureName);
101
- }
102
- return this.buildColumnsFromSchema(schema, fixtureName);
103
- }
104
- buildColumnsFromSchema(schema, fixtureName) {
105
- const entries = Object.entries(schema.columns);
106
- if (entries.length === 0) {
107
- throw new errors_1.SchemaValidationError(`Schema for "${fixtureName}" must declare at least one column.`);
108
- }
109
- return entries.map(([name, typeName]) => this.buildColumnDefinition(name, typeName !== null && typeName !== void 0 ? typeName : ''));
110
- }
111
- buildColumnsFromDefinition(definition, fixtureName) {
112
- if (definition.columns.length === 0) {
113
- throw new errors_1.SchemaValidationError(`Schema for "${fixtureName}" must declare at least one column.`);
114
- }
115
- return definition.columns.map((column) => { var _a; return this.buildColumnDefinition(column.name, (_a = column.typeName) !== null && _a !== void 0 ? _a : ''); });
116
- }
117
- buildColumnDefinition(name, typeName) {
118
- return {
119
- name,
120
- typeName,
121
- affinity: (0, ColumnAffinity_1.guessAffinity)(typeName),
122
- };
123
- }
124
- isTableDefinitionModel(schema) {
125
- return Array.isArray(schema.columns);
126
- }
127
- normalizeRow(row, columns, fixtureName, rowIndex) {
128
- const normalizedRow = [];
129
- // Guard against extraneous columns so fixture drift fails fast.
130
- for (const key of Object.keys(row)) {
131
- if (!columns.some((column) => column.name === key)) {
132
- throw new errors_1.SchemaValidationError(`Row ${rowIndex} in fixture "${fixtureName}" contains unknown column "${key}".`);
133
- }
134
- }
135
- for (const column of columns) {
136
- const value = row[column.name];
137
- if (value === undefined || value === null) {
138
- normalizedRow.push(null);
139
- continue;
140
- }
141
- normalizedRow.push(this.normalizeValue(value, column.affinity, fixtureName, column.name, rowIndex));
142
- }
143
- return normalizedRow;
144
- }
145
- normalizeValue(value, affinity, fixtureName, columnName, rowIndex) {
146
- const location = `fixture "${fixtureName}" column "${columnName}" (row ${rowIndex})`;
147
- if (affinity === 'TEXT') {
148
- if (typeof value === 'string') {
149
- return value;
150
- }
151
- if (value instanceof Date) {
152
- return value.toISOString();
153
- }
154
- if (typeof value === 'number' || typeof value === 'boolean') {
155
- return String(value);
156
- }
157
- return JSON.stringify(value);
158
- }
159
- if (affinity === 'INTEGER') {
160
- if (typeof value === 'number' && Number.isFinite(value)) {
161
- return Math.trunc(value);
162
- }
163
- if (typeof value === 'bigint') {
164
- return value;
165
- }
166
- if (typeof value === 'boolean') {
167
- return value ? 1 : 0;
168
- }
169
- throw new errors_1.SchemaValidationError(`Expected integer-compatible value for ${location}.`);
170
- }
171
- if (affinity === 'REAL' || affinity === 'NUMERIC') {
172
- if (typeof value === 'number' && Number.isFinite(value)) {
173
- return value;
174
- }
175
- if (typeof value === 'bigint') {
176
- return Number(value);
177
- }
178
- if (typeof value === 'string') {
179
- const parsed = Number(value);
180
- if (!Number.isNaN(parsed)) {
181
- return parsed;
182
- }
183
- }
184
- throw new errors_1.SchemaValidationError(`Expected numeric value for ${location}.`);
185
- }
186
- if (affinity === 'BLOB') {
187
- if (value instanceof Buffer) {
188
- return value;
189
- }
190
- if (value instanceof Uint8Array) {
191
- return Buffer.from(value);
192
- }
193
- throw new errors_1.SchemaValidationError(`Expected Buffer or Uint8Array for ${location}.`);
194
- }
195
- throw new errors_1.SchemaValidationError(`Unsupported affinity "${affinity}" configured for ${location}.`);
196
- }
197
- }
198
- exports.FixtureStore = FixtureStore;
199
- //# sourceMappingURL=FixtureStore.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FixtureStore.js","sourceRoot":"","sources":["../../../../../../testkit-core/src/fixtures/FixtureStore.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- import type { TableDefinitionModel } from 'rawsql-ts';
2
- import type { SchemaRegistry } from '../types';
3
- import { TableNameResolver } from './TableNameResolver';
4
- export declare class TableDefinitionSchemaRegistry implements SchemaRegistry {
5
- private readonly tableNameResolver?;
6
- private readonly tableMap;
7
- constructor(definitions: TableDefinitionModel[], tableNameResolver?: TableNameResolver | undefined);
8
- getTable(name: string): TableDefinitionModel | undefined;
9
- private normalizeTableKey;
10
- }
@@ -1,28 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TableDefinitionSchemaRegistry = void 0;
4
- const naming_1 = require("./naming");
5
- class TableDefinitionSchemaRegistry {
6
- constructor(definitions, tableNameResolver) {
7
- this.tableNameResolver = tableNameResolver;
8
- this.tableMap = new Map();
9
- for (const definition of definitions) {
10
- const key = this.normalizeTableKey(definition.name);
11
- // Use normalized names so lookups stay case-insensitive and schema-aware.
12
- this.tableMap.set(key, definition);
13
- }
14
- }
15
- getTable(name) {
16
- const key = this.normalizeTableKey(name);
17
- return this.tableMap.get(key);
18
- }
19
- // Normalize table keys so registry lookups stay aligned with the resolver.
20
- normalizeTableKey(name) {
21
- if (!this.tableNameResolver) {
22
- return (0, naming_1.normalizeIdentifier)(name);
23
- }
24
- return this.tableNameResolver.resolve(name);
25
- }
26
- }
27
- exports.TableDefinitionSchemaRegistry = TableDefinitionSchemaRegistry;
28
- //# sourceMappingURL=TableDefinitionSchemaRegistry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TableDefinitionSchemaRegistry.js","sourceRoot":"","sources":["../../../../../../testkit-core/src/fixtures/TableDefinitionSchemaRegistry.ts"],"names":[],"mappings":";;;AACA,qCAA+C;AAI/C,MAAa,6BAA6B;IAGxC,YAAY,WAAmC,EAAmB,iBAAqC;QAArC,sBAAiB,GAAjB,iBAAiB,CAAoB;QACrG,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;QAC1B,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACpD,0EAA0E;YAC1E,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAEM,QAAQ,CAAC,IAAY;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,2EAA2E;IACnE,iBAAiB,CAAC,IAAY;QACpC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC5B,OAAO,IAAA,4BAAmB,EAAC,IAAI,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;CACF;AAxBD,sEAwBC"}
@@ -1,18 +0,0 @@
1
- export type TableLookup = (qualifiedName: string) => boolean;
2
- export interface TableNameResolverOptions {
3
- defaultSchema?: string;
4
- searchPath?: string[];
5
- }
6
- export declare class TableNameResolver {
7
- private readonly defaultSchema;
8
- private readonly searchPath;
9
- constructor(options?: TableNameResolverOptions);
10
- resolve(tableName: string, lookup?: TableLookup): string;
11
- buildLookupCandidates(tableName: string): string[];
12
- private parseNormalizedName;
13
- private buildQualifiedName;
14
- /** Returns a stable representation of the resolver configuration for caching purposes. */
15
- toCacheKey(): string;
16
- /** @deprecated Use `toCacheKey` instead. */
17
- getCacheKey(): string;
18
- }
@@ -1,80 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TableNameResolver = void 0;
4
- const rawsql_ts_1 = require("rawsql-ts");
5
- class TableNameResolver {
6
- constructor(options) {
7
- var _a, _b;
8
- const defaultSchema = (_a = options === null || options === void 0 ? void 0 : options.defaultSchema) === null || _a === void 0 ? void 0 : _a.trim();
9
- this.defaultSchema = defaultSchema && defaultSchema.length > 0 ? defaultSchema.toLowerCase() : 'public';
10
- // Normalize the configured search path so it behaves predictably when iterating.
11
- const configured = ((_b = options === null || options === void 0 ? void 0 : options.searchPath) !== null && _b !== void 0 ? _b : [])
12
- .map((schema) => schema.trim().toLowerCase())
13
- .filter((schema) => schema.length > 0);
14
- if (configured.length > 0) {
15
- this.searchPath = [...new Set(configured)];
16
- }
17
- else {
18
- this.searchPath = [this.defaultSchema];
19
- }
20
- if (!this.searchPath.includes(this.defaultSchema)) {
21
- this.searchPath.unshift(this.defaultSchema);
22
- }
23
- }
24
- resolve(tableName, lookup) {
25
- const { schemaParts, table } = this.parseNormalizedName(tableName);
26
- if (schemaParts.length > 0) {
27
- return this.buildQualifiedName(schemaParts, table);
28
- }
29
- if (lookup) {
30
- // Honor the provided search path order when a matching schema has been registered previously.
31
- for (const schema of this.searchPath) {
32
- const candidate = this.buildQualifiedName([schema], table);
33
- if (lookup(candidate)) {
34
- return candidate;
35
- }
36
- }
37
- }
38
- const schema = this.searchPath[0];
39
- return this.buildQualifiedName([schema], table);
40
- }
41
- buildLookupCandidates(tableName) {
42
- const { schemaParts, table } = this.parseNormalizedName(tableName);
43
- if (schemaParts.length > 0) {
44
- return [this.buildQualifiedName(schemaParts, table)];
45
- }
46
- const candidates = [];
47
- for (const schema of this.searchPath) {
48
- candidates.push(this.buildQualifiedName([schema], table));
49
- }
50
- const fallback = (0, rawsql_ts_1.normalizeTableName)(table);
51
- // Keep an unqualified version around so registries keyed by raw table names still work.
52
- if (!candidates.includes(fallback)) {
53
- candidates.push(fallback);
54
- }
55
- return candidates;
56
- }
57
- parseNormalizedName(tableName) {
58
- var _a;
59
- const normalized = (0, rawsql_ts_1.normalizeTableName)(tableName);
60
- const parts = normalized.split('.');
61
- const table = (_a = parts.pop()) !== null && _a !== void 0 ? _a : normalized;
62
- return { schemaParts: parts, table };
63
- }
64
- buildQualifiedName(schemaParts, table) {
65
- if (schemaParts.length === 0) {
66
- return (0, rawsql_ts_1.normalizeTableName)(table);
67
- }
68
- return (0, rawsql_ts_1.normalizeTableName)(`${schemaParts.join('.')}.${table}`);
69
- }
70
- /** Returns a stable representation of the resolver configuration for caching purposes. */
71
- toCacheKey() {
72
- return `${this.defaultSchema}|${this.searchPath.join(',')}`;
73
- }
74
- /** @deprecated Use `toCacheKey` instead. */
75
- getCacheKey() {
76
- return this.toCacheKey();
77
- }
78
- }
79
- exports.TableNameResolver = TableNameResolver;
80
- //# sourceMappingURL=TableNameResolver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TableNameResolver.js","sourceRoot":"","sources":["../../../../../../testkit-core/src/fixtures/TableNameResolver.ts"],"names":[],"mappings":"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"}
@@ -1,59 +0,0 @@
1
- import { TableNameResolver } from './TableNameResolver';
2
- /**
3
- * Controls how DDL lint findings are surfaced during fixture loading.
4
- */
5
- export type DdlLintMode = 'strict' | 'warn' | 'off';
6
- /**
7
- * Severity levels reported by the DDL integrity checker.
8
- */
9
- export type DdlLintSeverity = 'error' | 'warning';
10
- /**
11
- * Represents a single SQL source used for DDL linting.
12
- */
13
- export interface DdlLintSource {
14
- /** Workspace-relative path to the SQL file being linted. */
15
- path: string;
16
- /** Raw SQL contents for the file. */
17
- sql: string;
18
- }
19
- /**
20
- * Machine-friendly diagnostic information for DDL integrity checks.
21
- */
22
- export interface DdlLintDiagnostic {
23
- code: string;
24
- severity: DdlLintSeverity;
25
- source: string;
26
- statementIndex: number;
27
- message: string;
28
- table?: string;
29
- column?: string;
30
- constraint?: string;
31
- referencedTable?: string;
32
- referencedColumn?: string;
33
- }
34
- /**
35
- * Options to control DDL linting behavior and name resolution.
36
- */
37
- export interface DdlLintOptions {
38
- tableNameResolver?: TableNameResolver;
39
- }
40
- /**
41
- * Default lint mode used when none is specified.
42
- */
43
- export declare const DEFAULT_DDL_LINT_MODE: DdlLintMode;
44
- /**
45
- * Normalizes the requested lint mode, falling back to the default.
46
- */
47
- export declare function normalizeDdlLintMode(mode?: DdlLintMode | null): DdlLintMode;
48
- /**
49
- * Runs integrity checks across the supplied DDL sources and returns sorted diagnostics.
50
- */
51
- export declare function lintDdlSources(sources: DdlLintSource[], options?: DdlLintOptions): DdlLintDiagnostic[];
52
- /**
53
- * Adjusts diagnostic severities based on the selected lint mode.
54
- */
55
- export declare function applyDdlLintMode(diagnostics: DdlLintDiagnostic[], mode: DdlLintMode): DdlLintDiagnostic[];
56
- /**
57
- * Formats DDL diagnostics into a human-readable summary.
58
- */
59
- export declare function formatDdlLintDiagnostics(diagnostics: DdlLintDiagnostic[]): string;