@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,105 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.runPullSchema = runPullSchema;
7
- const node_fs_1 = require("node:fs");
8
- const node_path_1 = __importDefault(require("node:path"));
9
- const pgDump_1 = require("../utils/pgDump");
10
- const fs_1 = require("../utils/fs");
11
- const normalizePulledSchema_1 = require("../utils/normalizePulledSchema");
12
- function runPullSchema(options) {
13
- var _a, _b;
14
- // Canonicalize CLI filters before invoking pg_dump so later steps can rely on consistent casing.
15
- const schemaFilters = ((_a = options.schemas) !== null && _a !== void 0 ? _a : []).map((value) => normalizeSchemaName(value));
16
- const tableFilters = ((_b = options.tables) !== null && _b !== void 0 ? _b : []).map((value) => parseTableSpecifier(value));
17
- // Build the schema set that should survive the normalization pass.
18
- const allowedSchemas = buildAllowedSchemas(schemaFilters, tableFilters);
19
- // Invoke pg_dump once with the normalized filters so only the desired objects are exported.
20
- const ddlSql = (0, pgDump_1.runPgDump)({
21
- url: options.url,
22
- pgDumpPath: options.pgDumpPath,
23
- extraArgs: buildPgDumpArguments(schemaFilters, tableFilters),
24
- connectionContext: options.connectionContext
25
- });
26
- // Normalize and bucket the pg_dump output while respecting the requested schema set.
27
- const normalizedMap = (0, normalizePulledSchema_1.normalizePulledSchema)(ddlSql, {
28
- allowedSchemas: allowedSchemas.size ? allowedSchemas : undefined
29
- });
30
- if (normalizedMap.size === 0) {
31
- // Help callers realize their filters may have excluded everything from the dump.
32
- const filterHints = [];
33
- if (schemaFilters.length) {
34
- filterHints.push(`--schema ${schemaFilters.join(', ')}`);
35
- }
36
- if (tableFilters.length) {
37
- filterHints.push(`--table ${tableFilters.map((table) => table.original).join(', ')}`);
38
- }
39
- const hint = filterHints.length ? ` Filters applied: ${filterHints.join('; ')}.` : '';
40
- throw new Error(`The dump did not contain any supported DDL statements.${hint} Verify the schema/table filters match your database.`);
41
- }
42
- const outDir = node_path_1.default.resolve(options.out);
43
- (0, fs_1.ensureDirectory)(outDir);
44
- // Remove the legacy schema.sql snapshot only when it is still present.
45
- const legacySchemaFile = node_path_1.default.join(outDir, 'schema.sql');
46
- if ((0, node_fs_1.existsSync)(legacySchemaFile)) {
47
- (0, node_fs_1.rmSync)(legacySchemaFile, { force: true });
48
- }
49
- const schemasDir = node_path_1.default.join(outDir, 'schemas');
50
- if ((0, node_fs_1.existsSync)(schemasDir)) {
51
- (0, node_fs_1.rmSync)(schemasDir, { recursive: true, force: true });
52
- }
53
- // Persist each schema snapshot directly under the DDL directory for easier discovery.
54
- for (const [schema, statements] of normalizedMap) {
55
- const filePath = node_path_1.default.join(outDir, `${sanitizeSchemaFileName(schema)}.sql`);
56
- (0, node_fs_1.writeFileSync)(filePath, buildSchemaFile(statements), 'utf8');
57
- console.log(`Wrote normalized schema for ${schema} at ${filePath}`);
58
- }
59
- }
60
- function buildPgDumpArguments(schemaFilters, tableFilters) {
61
- // Allow callers to target specific schemas or tables when invoking pg_dump.
62
- const args = [];
63
- for (const schema of schemaFilters) {
64
- args.push('--schema', schema);
65
- }
66
- for (const table of tableFilters) {
67
- args.push('--table', table.original);
68
- }
69
- return args;
70
- }
71
- function buildAllowedSchemas(schemaFilters, tableFilters) {
72
- // Combine the schemas referenced via filters so the normalizer can limit output.
73
- const combined = new Set(schemaFilters);
74
- for (const table of tableFilters) {
75
- combined.add(table.schema);
76
- }
77
- return combined;
78
- }
79
- function buildSchemaFile(statements) {
80
- // Join the sorted statements with blank lines so the file stays readable.
81
- const body = statements.map((statement) => statement.sql).join('\n\n');
82
- return `${body}\n`;
83
- }
84
- function sanitizeSchemaFileName(schema) {
85
- const sanitized = schema.replace(/[^a-z0-9_-]/g, '_').replace(/^_+|_+$/g, '');
86
- // Fall back to a safe default when all characters were stripped away.
87
- return sanitized || 'schema';
88
- }
89
- function normalizeSchemaName(value) {
90
- // Trim, unquote, and lowercase schema names to keep filter comparison predictable.
91
- return value.trim().replace(/^"|"$/g, '').toLowerCase();
92
- }
93
- function parseTableSpecifier(value) {
94
- var _a, _b;
95
- const trimmed = value.trim();
96
- const qualifiedPattern = /^\s*(?:"([^"]+)"|([^".\s]+))\.(?:"([^"]+)"|([^".\s]+))\s*$/;
97
- const match = trimmed.match(qualifiedPattern);
98
- // Resolve the schema portion, falling back to public when the specifier is unqualified.
99
- const schema = match ? (_b = (_a = match[1]) !== null && _a !== void 0 ? _a : match[2]) !== null && _b !== void 0 ? _b : 'public' : 'public';
100
- return {
101
- schema: normalizeSchemaName(schema),
102
- original: trimmed
103
- };
104
- }
105
- //# sourceMappingURL=pull.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pull.js","sourceRoot":"","sources":["../../src/commands/pull.ts"],"names":[],"mappings":"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"}
@@ -1,23 +0,0 @@
1
- import { TableNameResolver, type DdlLintMode } from '@rawsql-ts/testkit-core';
2
- import { SqlSource } from '../utils/collectSqlFiles';
3
- export interface ZtdConfigGenerationOptions {
4
- directories: string[];
5
- extensions: string[];
6
- out: string;
7
- defaultSchema?: string;
8
- searchPath?: string[];
9
- ddlLint?: DdlLintMode;
10
- }
11
- export interface ColumnMetadata {
12
- name: string;
13
- typeName?: string;
14
- isNullable: boolean;
15
- }
16
- export interface TableMetadata {
17
- name: string;
18
- testRowInterfaceName: string;
19
- columns: ColumnMetadata[];
20
- }
21
- export declare function runGenerateZtdConfig(options: ZtdConfigGenerationOptions): void;
22
- export declare function snapshotTableMetadata(sources: SqlSource[], resolver?: TableNameResolver): TableMetadata[];
23
- export declare function renderZtdConfigFile(tables: TableMetadata[]): string;
@@ -1,202 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.runGenerateZtdConfig = runGenerateZtdConfig;
7
- exports.snapshotTableMetadata = snapshotTableMetadata;
8
- exports.renderZtdConfigFile = renderZtdConfigFile;
9
- const node_fs_1 = require("node:fs");
10
- const node_path_1 = __importDefault(require("node:path"));
11
- const rawsql_ts_1 = require("rawsql-ts");
12
- const testkit_core_1 = require("@rawsql-ts/testkit-core");
13
- const collectSqlFiles_1 = require("../utils/collectSqlFiles");
14
- const typeMapper_1 = require("../utils/typeMapper");
15
- const fs_1 = require("../utils/fs");
16
- function runGenerateZtdConfig(options) {
17
- const sources = (0, collectSqlFiles_1.collectSqlFiles)(options.directories, options.extensions);
18
- if (sources.length === 0) {
19
- throw new Error(`No SQL files were discovered under ${options.directories.join(', ')}`);
20
- }
21
- // Build a resolver that honors the configured schema/search path so the generated rows stay canonical.
22
- const resolver = new testkit_core_1.TableNameResolver({
23
- defaultSchema: options.defaultSchema,
24
- searchPath: options.searchPath
25
- });
26
- // Validate the DDL sources up front so fixture metadata is generated from a consistent schema.
27
- const lintMode = (0, testkit_core_1.normalizeDdlLintMode)(options.ddlLint);
28
- if (lintMode !== 'off') {
29
- const diagnostics = (0, testkit_core_1.lintDdlSources)(sources, { tableNameResolver: resolver });
30
- if (diagnostics.length > 0) {
31
- const adjusted = (0, testkit_core_1.applyDdlLintMode)(diagnostics, lintMode);
32
- if (lintMode === 'strict') {
33
- throw new testkit_core_1.DdlLintError(adjusted);
34
- }
35
- console.warn((0, testkit_core_1.formatDdlLintDiagnostics)(adjusted));
36
- }
37
- }
38
- const tables = snapshotTableMetadata(sources, resolver);
39
- if (tables.length === 0) {
40
- throw new Error('The provided DDL sources did not contain any CREATE TABLE statements.');
41
- }
42
- const output = renderZtdConfigFile(tables);
43
- (0, fs_1.ensureDirectory)(node_path_1.default.dirname(options.out));
44
- (0, node_fs_1.writeFileSync)(options.out, output, 'utf8');
45
- console.log(`Generated ${tables.length} ZTD test rows at ${options.out}`);
46
- }
47
- function snapshotTableMetadata(sources, resolver) {
48
- var _a;
49
- const registry = new Map();
50
- // Track tables by their SQL name so each definition is emitted only once.
51
- for (const source of sources) {
52
- // Split multi-statement files so each CREATE TABLE can be processed independently.
53
- const batch = rawsql_ts_1.MultiQuerySplitter.split(source.sql);
54
- for (const query of batch.queries) {
55
- if (query.isEmpty) {
56
- continue;
57
- }
58
- let ast;
59
- try {
60
- const parsed = rawsql_ts_1.SqlParser.parse(query.sql);
61
- if (parsed instanceof rawsql_ts_1.CreateTableQuery) {
62
- ast = parsed;
63
- }
64
- }
65
- catch (_error) {
66
- continue;
67
- }
68
- if (!ast) {
69
- continue;
70
- }
71
- const definition = (0, rawsql_ts_1.createTableDefinitionFromCreateTableQuery)(ast);
72
- // Normalize table names so the generated config mirrors resolver expectations.
73
- const canonicalName = (_a = resolver === null || resolver === void 0 ? void 0 : resolver.resolve(definition.name)) !== null && _a !== void 0 ? _a : definition.name;
74
- if (registry.has(canonicalName)) {
75
- continue;
76
- }
77
- // Match column metadata by name so AST-driven nullability honors both DDL and constraints.
78
- const columns = ast.columns.map((column) => {
79
- const columnMeta = definition.columns.find((candidate) => candidate.name === column.name.name);
80
- if (!columnMeta) {
81
- throw new Error(`Missing metadata for ${column.name.name} in ${definition.name}`);
82
- }
83
- const constraintKinds = new Set(column.constraints.map((constraint) => constraint.kind));
84
- const hasNotNull = constraintKinds.has('not-null') || constraintKinds.has('primary-key');
85
- return {
86
- name: column.name.name,
87
- typeName: columnMeta.typeName,
88
- isNullable: !hasNotNull
89
- };
90
- });
91
- registry.set(canonicalName, {
92
- name: canonicalName,
93
- testRowInterfaceName: buildTestRowInterfaceName(canonicalName),
94
- columns
95
- });
96
- }
97
- }
98
- return Array.from(registry.values()).sort((a, b) => a.name.localeCompare(b.name));
99
- }
100
- function buildTestRowInterfaceName(tableName) {
101
- var _a;
102
- // Preserve schema and table segments when Pascal-casing to keep names unique.
103
- const namespaceParts = tableName.split('.');
104
- const pascalize = (segment) => segment
105
- .split(/[^A-Za-z0-9]+/)
106
- .filter(Boolean)
107
- .map((token) => {
108
- const lower = token.toLowerCase();
109
- return lower.charAt(0).toUpperCase() + lower.slice(1);
110
- })
111
- .join('');
112
- const pascalSegments = namespaceParts.map((segment) => pascalize(segment)).filter(Boolean);
113
- const combined = pascalSegments.join('');
114
- const normalized = combined.replace(/^[0-9]+/, '');
115
- // Guarantee the interface name starts with a letter or underscore.
116
- const prefix = /^[A-Za-z_]/.test((_a = normalized.charAt(0)) !== null && _a !== void 0 ? _a : '') ? normalized : `_${normalized}`;
117
- return `${prefix || 'Table'}TestRow`;
118
- }
119
- function renderZtdConfigFile(tables) {
120
- const header = [
121
- '// GENERATED FILE. DO NOT EDIT.',
122
- '// ZTD TEST ROW MAP',
123
- '// This file is synchronized with DDL using ztd-config.',
124
- '',
125
- "import type { FixtureRow, TableFixture, TableSchemaDefinition } from '@rawsql-ts/testkit-core';",
126
- ''
127
- ].join('\n');
128
- const entries = tables
129
- .map((table) => ` '${table.name}': ${table.testRowInterfaceName};`)
130
- .join('\n');
131
- // Build each table interface while preserving the column order from the DDL.
132
- const definitions = tables
133
- .map((table) => {
134
- const fields = table.columns
135
- .map((column) => {
136
- const baseType = (0, typeMapper_1.mapSqlTypeToTs)(column.typeName, `${table.name}.${column.name}`);
137
- const tsType = column.isNullable ? `${baseType} | null` : baseType;
138
- return ` ${column.name}: ${tsType};`;
139
- })
140
- .join('\n');
141
- return `export interface ${table.testRowInterfaceName} extends FixtureRow {\n${fields}\n}`;
142
- })
143
- .join('\n\n');
144
- // Assemble a schema map that mirrors TestRowMap so tests can reuse canonical affinity metadata.
145
- const schemaEntries = tables
146
- .map((table) => {
147
- const columnDefinitions = table.columns
148
- .map((column) => {
149
- var _a;
150
- const typeLiteral = JSON.stringify((_a = column.typeName) !== null && _a !== void 0 ? _a : '');
151
- return ` ${column.name}: ${typeLiteral},`;
152
- })
153
- .join('\n');
154
- return ` '${table.name}': {\n columns: {\n${columnDefinitions}\n }\n },`;
155
- })
156
- .join('\n');
157
- const footer = [
158
- '',
159
- 'export type TestRow<K extends keyof TestRowMap> = TestRowMap[K];',
160
- 'export type ZtdRowShapes = TestRowMap;',
161
- 'export type ZtdTableName = keyof TestRowMap;',
162
- '',
163
- 'export type ZtdTableSchemas = Record<ZtdTableName, TableSchemaDefinition>;',
164
- '',
165
- 'export const tableSchemas: ZtdTableSchemas = {',
166
- `${schemaEntries}`,
167
- '};',
168
- '',
169
- 'export function tableSchema<K extends ZtdTableName>(tableName: K): TableSchemaDefinition {',
170
- ' return tableSchemas[tableName];',
171
- '}',
172
- '',
173
- 'export type ZtdTableFixture<K extends ZtdTableName> = TableFixture & {',
174
- ' tableName: K;',
175
- ' rows: ZtdRowShapes[K][];',
176
- ' schema: TableSchemaDefinition;',
177
- '};',
178
- '',
179
- 'export interface ZtdConfig {',
180
- ' tables: ZtdTableName[];',
181
- '}',
182
- '',
183
- 'export function tableFixture<K extends ZtdTableName>(',
184
- ' tableName: K,',
185
- ' rows: ZtdRowShapes[K][],',
186
- ' schema?: TableSchemaDefinition',
187
- '): TableFixture {',
188
- ' return { tableName, rows, schema };',
189
- '}',
190
- '',
191
- 'export function tableFixtureWithSchema<K extends ZtdTableName>(',
192
- ' tableName: K,',
193
- ' rows: ZtdRowShapes[K][]',
194
- '): ZtdTableFixture<K> {',
195
- ' // Always pair fixture rows with the canonical schema generated from DDL.',
196
- ' return { tableName, rows, schema: tableSchemas[tableName] };',
197
- '}',
198
- ''
199
- ].join('\n');
200
- return `${header}export interface TestRowMap {\n${entries}\n}\n\n${definitions}\n${footer}`;
201
- }
202
- //# sourceMappingURL=ztdConfig.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ztdConfig.js","sourceRoot":"","sources":["../../src/commands/ztdConfig.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import { Command } from 'commander';
2
- /**
3
- * Registers the `ztd-config` CLI command, which generates the canonical ZTD TestRowMap from DDL sources.
4
- */
5
- export declare function registerZtdConfigCommand(program: Command): void;
@@ -1,157 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.registerZtdConfigCommand = registerZtdConfigCommand;
7
- const chokidar_1 = __importDefault(require("chokidar"));
8
- const node_fs_1 = require("node:fs");
9
- const node_path_1 = __importDefault(require("node:path"));
10
- const options_1 = require("./options");
11
- const ztdProjectConfig_1 = require("../utils/ztdProjectConfig");
12
- const ztdConfig_1 = require("./ztdConfig");
13
- const fs_1 = require("../utils/fs");
14
- const WATCH_DEBOUNCE_MS = 150;
15
- function renderZtdLayoutGeneratedFile(config) {
16
- // Derive the canonical ztd root directory from the configured DDL path.
17
- const ddlDir = config.ddlDir.replace(/\\/g, '/');
18
- const ztdRootDir = node_path_1.default.posix.dirname(ddlDir);
19
- // Keep default sibling directories deterministic for downstream tooling.
20
- const enumsDir = node_path_1.default.posix.join(ztdRootDir, 'enums');
21
- const domainSpecsDir = node_path_1.default.posix.join(ztdRootDir, 'domain-specs');
22
- return [
23
- '// GENERATED FILE. DO NOT EDIT.',
24
- '',
25
- 'export default {',
26
- ` ztdRootDir: ${JSON.stringify(ztdRootDir)},`,
27
- ` ddlDir: ${JSON.stringify(ddlDir)},`,
28
- ` enumsDir: ${JSON.stringify(enumsDir)},`,
29
- ` domainSpecsDir: ${JSON.stringify(domainSpecsDir)},`,
30
- '};',
31
- ''
32
- ].join('\n');
33
- }
34
- function writeZtdLayoutFile(layoutFilePath, config) {
35
- // Ensure the generated folder exists before emitting the layout snapshot.
36
- (0, fs_1.ensureDirectory)(node_path_1.default.dirname(layoutFilePath));
37
- (0, node_fs_1.writeFileSync)(layoutFilePath, renderZtdLayoutGeneratedFile(config), 'utf8');
38
- }
39
- /**
40
- * Registers the `ztd-config` CLI command, which generates the canonical ZTD TestRowMap from DDL sources.
41
- */
42
- function registerZtdConfigCommand(program) {
43
- program
44
- .command('ztd-config')
45
- .description('Generate the canonical ZTD TestRowMap from DDL sources')
46
- .option('--ddl-dir <directory>', 'DDL directory to scan (repeatable)', options_1.collectDirectories, [])
47
- .option('--extensions <list>', 'Comma-separated extensions to include', options_1.parseExtensions, options_1.DEFAULT_EXTENSIONS)
48
- .option('--out <file>', 'Destination TypeScript file for generated config')
49
- .option('--default-schema <schema>', 'Override ddl.defaultSchema stored in ztd.config.json')
50
- .option('--search-path <list>', 'Comma-separated schema search path entries', options_1.parseCsvList)
51
- .option('--watch', 'Watch DDL files and regenerate when schema changes', false)
52
- .action(async (options) => {
53
- var _a, _b, _c;
54
- const projectConfig = (0, ztdProjectConfig_1.loadZtdProjectConfig)();
55
- const directories = (0, options_1.normalizeDirectoryList)(options.ddlDir, (_a = projectConfig.ddlDir) !== null && _a !== void 0 ? _a : options_1.DEFAULT_DDL_DIRECTORY);
56
- const extensions = (0, options_1.resolveExtensions)(options.extensions, options_1.DEFAULT_EXTENSIONS);
57
- const defaultOut = node_path_1.default.join((_b = projectConfig.testsDir) !== null && _b !== void 0 ? _b : options_1.DEFAULT_TESTS_DIRECTORY, 'generated', 'ztd-row-map.generated.ts');
58
- const output = (_c = options.out) !== null && _c !== void 0 ? _c : defaultOut;
59
- const layoutOut = node_path_1.default.join(node_path_1.default.dirname(output), 'ztd-layout.generated.ts');
60
- const ddlOverrides = { ...projectConfig.ddl };
61
- let shouldUpdateConfig = false;
62
- if (options.defaultSchema) {
63
- ddlOverrides.defaultSchema = options.defaultSchema;
64
- shouldUpdateConfig = true;
65
- }
66
- if (options.searchPath && options.searchPath.length > 0) {
67
- ddlOverrides.searchPath = options.searchPath;
68
- shouldUpdateConfig = true;
69
- }
70
- if (shouldUpdateConfig) {
71
- (0, ztdProjectConfig_1.writeZtdProjectConfig)(process.cwd(), { ddl: ddlOverrides });
72
- console.log('[notice] ztd.config.json ddl schema settings updated.');
73
- }
74
- const generationOptions = {
75
- directories,
76
- extensions,
77
- out: output,
78
- defaultSchema: ddlOverrides.defaultSchema,
79
- searchPath: ddlOverrides.searchPath,
80
- ddlLint: projectConfig.ddlLint
81
- };
82
- await (0, ztdConfig_1.runGenerateZtdConfig)(generationOptions);
83
- const layoutConfig = { ...projectConfig, ddl: ddlOverrides };
84
- writeZtdLayoutFile(layoutOut, layoutConfig);
85
- if (options.watch) {
86
- console.log(`[watch] Initial generation complete: ${generationOptions.out}`);
87
- await watchZtdConfig(generationOptions, layoutOut, layoutConfig);
88
- }
89
- });
90
- }
91
- async function watchZtdConfig(options, layoutOut, layoutConfig) {
92
- const cwd = process.cwd();
93
- const extensionSet = new Set(options.extensions.map((extension) => extension.toLowerCase()));
94
- // Watch directories directly to avoid platform-specific glob quirks.
95
- const watchRoots = options.directories.map((dir) => node_path_1.default.resolve(dir));
96
- // Only the configured output file (`options.out`) is overwritten while watching DDL changes.
97
- const watcher = chokidar_1.default.watch(watchRoots, {
98
- ignoreInitial: true,
99
- awaitWriteFinish: { stabilityThreshold: 80, pollInterval: 20 }
100
- });
101
- console.log('[watch] Watching DDL files for changes (Ctrl+C to stop)...');
102
- let debounceTimer = null;
103
- let scheduledPath = null;
104
- const scheduleReload = (changedPath) => {
105
- scheduledPath = changedPath;
106
- if (debounceTimer) {
107
- clearTimeout(debounceTimer);
108
- }
109
- debounceTimer = setTimeout(() => {
110
- debounceTimer = null;
111
- void executeReload(scheduledPath);
112
- scheduledPath = null;
113
- }, WATCH_DEBOUNCE_MS);
114
- };
115
- const scheduleReloadIfDdl = (changedPath) => {
116
- // Filter to DDL extensions so unrelated file changes do not trigger regeneration.
117
- const extension = node_path_1.default.extname(changedPath).toLowerCase();
118
- if (!extensionSet.has(extension)) {
119
- return;
120
- }
121
- scheduleReload(changedPath);
122
- };
123
- const executeReload = async (changedPath) => {
124
- const relativePath = changedPath ? node_path_1.default.relative(cwd, changedPath) : 'unknown';
125
- console.log(`[watch] DDL changed: ${relativePath}`);
126
- try {
127
- await (0, ztdConfig_1.runGenerateZtdConfig)(options);
128
- writeZtdLayoutFile(layoutOut, layoutConfig);
129
- console.log(`[watch] Updated: ${options.out}`);
130
- }
131
- catch (error) {
132
- console.error(`[watch] Failed to regenerate ${options.out}: ${error instanceof Error ? error.message : String(error)}`);
133
- }
134
- };
135
- watcher.on('add', scheduleReloadIfDdl);
136
- watcher.on('change', scheduleReloadIfDdl);
137
- watcher.on('unlink', scheduleReloadIfDdl);
138
- await new Promise((resolve) => {
139
- const stop = async () => {
140
- console.log('[watch] Shutting down ztd-config watcher...');
141
- watcher.off('add', scheduleReload);
142
- watcher.off('change', scheduleReload);
143
- watcher.off('unlink', scheduleReload);
144
- if (debounceTimer) {
145
- clearTimeout(debounceTimer);
146
- debounceTimer = null;
147
- }
148
- await watcher.close();
149
- process.off('SIGINT', stop);
150
- resolve();
151
- };
152
- process.once('SIGINT', () => {
153
- void stop();
154
- });
155
- });
156
- }
157
- //# sourceMappingURL=ztdConfigCommand.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ztdConfigCommand.js","sourceRoot":"","sources":["../../src/commands/ztdConfigCommand.ts"],"names":[],"mappings":";;;;;AAmDA,4DA0DC;AA7GD,wDAAgC;AAChC,qCAAwC;AACxC,0DAA6B;AAE7B,uCASmB;AACnB,gEAA+G;AAC/G,2CAAoF;AACpF,oCAA8C;AAE9C,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAE9B,SAAS,4BAA4B,CAAC,MAAwB;IAC5D,wEAAwE;IACxE,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACjD,MAAM,UAAU,GAAG,mBAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAE9C,yEAAyE;IACzE,MAAM,QAAQ,GAAG,mBAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACtD,MAAM,cAAc,GAAG,mBAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IAEnE,OAAO;QACL,iCAAiC;QACjC,EAAE;QACF,kBAAkB;QAClB,iBAAiB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG;QAC9C,aAAa,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG;QACtC,eAAe,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG;QAC1C,qBAAqB,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG;QACtD,IAAI;QACJ,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,kBAAkB,CAAC,cAAsB,EAAE,MAAwB;IAC1E,0EAA0E;IAC1E,IAAA,oBAAe,EAAC,mBAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;IAC9C,IAAA,uBAAa,EAAC,cAAc,EAAE,4BAA4B,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;AAC9E,CAAC;AAED;;GAEG;AACH,SAAgB,wBAAwB,CAAC,OAAgB;IACvD,OAAO;SACJ,OAAO,CAAC,YAAY,CAAC;SACrB,WAAW,CAAC,wDAAwD,CAAC;SACrE,MAAM,CAAC,uBAAuB,EAAE,oCAAoC,EAAE,4BAAkB,EAAE,EAAE,CAAC;SAC7F,MAAM,CAAC,qBAAqB,EAAE,uCAAuC,EAAE,yBAAe,EAAE,4BAAkB,CAAC;SAC3G,MAAM,CAAC,cAAc,EAAE,kDAAkD,CAAC;SAC1E,MAAM,CAAC,2BAA2B,EAAE,sDAAsD,CAAC;SAC3F,MAAM,CAAC,sBAAsB,EAAE,4CAA4C,EAAE,sBAAY,CAAC;SAC1F,MAAM,CAAC,SAAS,EAAE,oDAAoD,EAAE,KAAK,CAAC;SAC9E,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;;QACxB,MAAM,aAAa,GAAG,IAAA,uCAAoB,GAAE,CAAC;QAC7C,MAAM,WAAW,GAAG,IAAA,gCAAsB,EAAC,OAAO,CAAC,MAAkB,EAAE,MAAA,aAAa,CAAC,MAAM,mCAAI,+BAAqB,CAAC,CAAC;QACtH,MAAM,UAAU,GAAG,IAAA,2BAAiB,EAAC,OAAO,CAAC,UAAsB,EAAE,4BAAkB,CAAC,CAAC;QACzF,MAAM,UAAU,GAAG,mBAAI,CAAC,IAAI,CAC1B,MAAA,aAAa,CAAC,QAAQ,mCAAI,iCAAuB,EACjD,WAAW,EACX,0BAA0B,CAC3B,CAAC;QACF,MAAM,MAAM,GAAG,MAAA,OAAO,CAAC,GAAG,mCAAI,UAAU,CAAC;QACzC,MAAM,SAAS,GAAG,mBAAI,CAAC,IAAI,CAAC,mBAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,yBAAyB,CAAC,CAAC;QAE7E,MAAM,YAAY,GAA4B,EAAE,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC;QACvE,IAAI,kBAAkB,GAAG,KAAK,CAAC;QAE/B,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YAC1B,YAAY,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;YACnD,kBAAkB,GAAG,IAAI,CAAC;QAC5B,CAAC;QAED,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxD,YAAY,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;YAC7C,kBAAkB,GAAG,IAAI,CAAC;QAC5B,CAAC;QAED,IAAI,kBAAkB,EAAE,CAAC;YACvB,IAAA,wCAAqB,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC;YAC5D,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QACvE,CAAC;QAED,MAAM,iBAAiB,GAA+B;YACpD,WAAW;YACX,UAAU;YACV,GAAG,EAAE,MAAM;YACX,aAAa,EAAE,YAAY,CAAC,aAAa;YACzC,UAAU,EAAE,YAAY,CAAC,UAAU;YACnC,OAAO,EAAE,aAAa,CAAC,OAAO;SAC/B,CAAC;QAEF,MAAM,IAAA,gCAAoB,EAAC,iBAAiB,CAAC,CAAC;QAC9C,MAAM,YAAY,GAAqB,EAAE,GAAG,aAAa,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC;QAC/E,kBAAkB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QAE5C,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,wCAAwC,iBAAiB,CAAC,GAAG,EAAE,CAAC,CAAC;YAC7E,MAAM,cAAc,CAAC,iBAAiB,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;QACnE,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AAED,KAAK,UAAU,cAAc,CAC3B,OAAmC,EACnC,SAAiB,EACjB,YAA8B;IAE9B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAC7F,qEAAqE;IACrE,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,mBAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAEvE,6FAA6F;IAC7F,MAAM,OAAO,GAAG,kBAAQ,CAAC,KAAK,CAAC,UAAU,EAAE;QACzC,aAAa,EAAE,IAAI;QACnB,gBAAgB,EAAE,EAAE,kBAAkB,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE;KAC/D,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;IAE1E,IAAI,aAAa,GAA0B,IAAI,CAAC;IAChD,IAAI,aAAa,GAAkB,IAAI,CAAC;IAExC,MAAM,cAAc,GAAG,CAAC,WAAmB,EAAQ,EAAE;QACnD,aAAa,GAAG,WAAW,CAAC;QAC5B,IAAI,aAAa,EAAE,CAAC;YAClB,YAAY,CAAC,aAAa,CAAC,CAAC;QAC9B,CAAC;QACD,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE;YAC9B,aAAa,GAAG,IAAI,CAAC;YACrB,KAAK,aAAa,CAAC,aAAa,CAAC,CAAC;YAClC,aAAa,GAAG,IAAI,CAAC;QACvB,CAAC,EAAE,iBAAiB,CAAC,CAAC;IACxB,CAAC,CAAC;IAEF,MAAM,mBAAmB,GAAG,CAAC,WAAmB,EAAQ,EAAE;QACxD,kFAAkF;QAClF,MAAM,SAAS,GAAG,mBAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;QAC1D,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACjC,OAAO;QACT,CAAC;QACD,cAAc,CAAC,WAAW,CAAC,CAAC;IAC9B,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,KAAK,EAAE,WAA0B,EAAiB,EAAE;QACxE,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,mBAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/E,OAAO,CAAC,GAAG,CAAC,wBAAwB,YAAY,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC;YACH,MAAM,IAAA,gCAAoB,EAAC,OAAO,CAAC,CAAC;YACpC,kBAAkB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,oBAAoB,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CACX,gCAAgC,OAAO,CAAC,GAAG,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACzG,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;IACvC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;IAC1C,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;IAE1C,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QAClC,MAAM,IAAI,GAAG,KAAK,IAAmB,EAAE;YACrC,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;YAC3D,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;YACtC,IAAI,aAAa,EAAE,CAAC;gBAClB,YAAY,CAAC,aAAa,CAAC,CAAC;gBAC5B,aAAa,GAAG,IAAI,CAAC;YACvB,CAAC;YACD,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC5B,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE;YAC1B,KAAK,IAAI,EAAE,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
package/dist/index.d.ts DELETED
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- export {};
package/dist/index.js DELETED
@@ -1,22 +0,0 @@
1
- #!/usr/bin/env node
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- const commander_1 = require("commander");
5
- const ddl_1 = require("./commands/ddl");
6
- const init_1 = require("./commands/init");
7
- const lint_1 = require("./commands/lint");
8
- const ztdConfigCommand_1 = require("./commands/ztdConfigCommand");
9
- async function main() {
10
- const program = new commander_1.Command();
11
- program.name('ztd').description('Zero Table Dependency scaffolding and DDL helpers');
12
- (0, init_1.registerInitCommand)(program);
13
- (0, lint_1.registerLintCommand)(program);
14
- (0, ztdConfigCommand_1.registerZtdConfigCommand)(program);
15
- (0, ddl_1.registerDdlCommands)(program);
16
- await program.parseAsync(process.argv);
17
- }
18
- main().catch((error) => {
19
- console.error(error instanceof Error ? error.message : error);
20
- process.exit(1);
21
- });
22
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAEA,yCAAoC;AACpC,wCAAqD;AACrD,0CAAsD;AACtD,0CAAsD;AACtD,kEAAuE;AAEvE,KAAK,UAAU,IAAI;IACjB,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;IAC9B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,mDAAmD,CAAC,CAAC;IAErF,IAAA,0BAAmB,EAAC,OAAO,CAAC,CAAC;IAC7B,IAAA,0BAAmB,EAAC,OAAO,CAAC,CAAC;IAC7B,IAAA,2CAAwB,EAAC,OAAO,CAAC,CAAC;IAClC,IAAA,yBAAmB,EAAC,OAAO,CAAC,CAAC;IAE7B,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- export declare function copyAgentsTemplate(projectRoot: string): string | null;
@@ -1,48 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.copyAgentsTemplate = copyAgentsTemplate;
7
- const node_fs_1 = require("node:fs");
8
- const node_path_1 = __importDefault(require("node:path"));
9
- const fs_1 = require("./fs");
10
- const TEMPLATE_NAME = 'AGENTS.md';
11
- const TARGET_FILES = ['AGENTS.md', 'AGENTS_ztd.md'];
12
- function resolveAgentsTemplatePath() {
13
- const candidates = [
14
- // Prefer the installed package layout: <pkg>/dist/utils → <pkg>/templates.
15
- node_path_1.default.resolve(__dirname, '..', '..', '..', 'templates', TEMPLATE_NAME),
16
- // Support legacy layouts that copied templates into dist/.
17
- node_path_1.default.resolve(__dirname, '..', '..', 'templates', TEMPLATE_NAME),
18
- // Support running tests directly from the monorepo source tree.
19
- node_path_1.default.resolve(process.cwd(), 'packages', 'ztd-cli', 'templates', TEMPLATE_NAME)
20
- ];
21
- // Avoid overwriting when the CLI package was installed without its template bundle.
22
- for (const candidate of candidates) {
23
- if ((0, node_fs_1.existsSync)(candidate)) {
24
- return candidate;
25
- }
26
- }
27
- return null;
28
- }
29
- function copyAgentsTemplate(projectRoot) {
30
- // Use the shared template bundle so generated AGENTS.md matches the distributable templates directory.
31
- const templatePath = resolveAgentsTemplatePath();
32
- if (!templatePath) {
33
- return null;
34
- }
35
- const contents = (0, node_fs_1.readFileSync)(templatePath, 'utf8');
36
- // Try to materialize the template without overwriting any pre-existing AGENTS guidance.
37
- for (const fileName of TARGET_FILES) {
38
- const targetPath = node_path_1.default.join(projectRoot, fileName);
39
- if ((0, node_fs_1.existsSync)(targetPath)) {
40
- continue;
41
- }
42
- (0, fs_1.ensureDirectory)(node_path_1.default.dirname(targetPath));
43
- (0, node_fs_1.writeFileSync)(targetPath, contents, 'utf8');
44
- return targetPath;
45
- }
46
- return null;
47
- }
48
- //# sourceMappingURL=agents.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/utils/agents.ts"],"names":[],"mappings":";;;;;AA2BA,gDAsBC;AAjDD,qCAAkE;AAClE,0DAA6B;AAC7B,6BAAuC;AAEvC,MAAM,aAAa,GAAG,WAAW,CAAC;AAClC,MAAM,YAAY,GAAG,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;AAEpD,SAAS,yBAAyB;IAChC,MAAM,UAAU,GAAG;QACjB,2EAA2E;QAC3E,mBAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,CAAC;QACrE,2DAA2D;QAC3D,mBAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,CAAC;QAC/D,gEAAgE;QAChE,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,CAAC;KAC/E,CAAC;IAEF,oFAAoF;IACpF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,IAAA,oBAAU,EAAC,SAAS,CAAC,EAAE,CAAC;YAC1B,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,kBAAkB,CAAC,WAAmB;IACpD,uGAAuG;IACvG,MAAM,YAAY,GAAG,yBAAyB,EAAE,CAAC;IACjD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,QAAQ,GAAG,IAAA,sBAAY,EAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAEpD,wFAAwF;IACxF,KAAK,MAAM,QAAQ,IAAI,YAAY,EAAE,CAAC;QACpC,MAAM,UAAU,GAAG,mBAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QACpD,IAAI,IAAA,oBAAU,EAAC,UAAU,CAAC,EAAE,CAAC;YAC3B,SAAS;QACX,CAAC;QAED,IAAA,oBAAe,EAAC,mBAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;QAC1C,IAAA,uBAAa,EAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC5C,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,9 +0,0 @@
1
- export interface SqlSource {
2
- path: string;
3
- sql: string;
4
- }
5
- /**
6
- * Scans the supplied directories (recursively) for SQL files matching the configured extensions and aggregates their contents.
7
- * @returns Sorted list of `SqlSource` records containing workspace-relative paths and SQL text for each discovered file.
8
- */
9
- export declare function collectSqlFiles(directories: string[], extensions: string[]): SqlSource[];