@rawsql-ts/ztd-cli 0.17.0 → 0.20.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 (240) 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.ts +30 -1
  21. package/templates/src/catalog/runtime/_smoke.runtime.ts +21 -21
  22. package/templates/src/catalog/specs/AGENTS.md +41 -48
  23. package/templates/src/catalog/specs/_smoke.spec.arktype.ts +21 -21
  24. package/templates/src/catalog/specs/_smoke.spec.zod.ts +20 -20
  25. package/templates/src/db/sql-client-adapters.ts +32 -0
  26. package/templates/src/db/sql-client.ts +24 -24
  27. package/templates/src/domain/AGENTS.md +15 -0
  28. package/templates/src/domain/README.md +6 -0
  29. package/templates/src/infrastructure/AGENTS.md +14 -0
  30. package/templates/src/infrastructure/README.md +6 -0
  31. package/templates/src/infrastructure/db/AGENTS.md +14 -0
  32. package/templates/src/infrastructure/db/sql-client-adapters.ts +34 -0
  33. package/templates/{dist/ztd-cli/templates/src → src/infrastructure}/db/sql-client.ts +3 -3
  34. package/templates/src/infrastructure/persistence/AGENTS.md +18 -0
  35. package/templates/src/infrastructure/persistence/README.md +8 -0
  36. package/templates/src/infrastructure/persistence/repositories/AGENTS.md +17 -0
  37. package/templates/src/infrastructure/persistence/repositories/tables/AGENTS.md +20 -0
  38. package/templates/src/infrastructure/persistence/repositories/tables/README.md +5 -0
  39. package/templates/src/infrastructure/persistence/repositories/views/AGENTS.md +16 -0
  40. package/templates/src/infrastructure/persistence/repositories/views/README.md +5 -0
  41. package/templates/src/infrastructure/telemetry/AGENTS.md +14 -0
  42. package/templates/src/infrastructure/telemetry/consoleRepositoryTelemetry.ts +66 -0
  43. package/templates/src/infrastructure/telemetry/repositoryTelemetry.ts +26 -0
  44. package/templates/src/infrastructure/telemetry/types.ts +48 -0
  45. package/templates/src/jobs/AGENTS.md +25 -26
  46. package/templates/src/jobs/README.md +2 -2
  47. package/templates/src/presentation/AGENTS.md +15 -0
  48. package/templates/src/presentation/http/AGENTS.md +15 -0
  49. package/templates/src/presentation/http/README.md +6 -0
  50. package/templates/src/repositories/AGENTS.md +30 -118
  51. package/templates/src/repositories/tables/AGENTS.md +29 -94
  52. package/templates/src/repositories/tables/README.md +5 -3
  53. package/templates/src/repositories/views/AGENTS.md +25 -25
  54. package/templates/src/repositories/views/README.md +5 -3
  55. package/templates/src/sql/AGENTS.md +30 -77
  56. package/templates/src/sql/README.md +5 -5
  57. package/templates/tests/AGENTS.md +29 -62
  58. package/templates/tests/generated/AGENTS.md +23 -16
  59. package/templates/tests/smoke.test.ts +25 -5
  60. package/templates/tests/smoke.validation.test.ts +34 -34
  61. package/templates/tests/support/AGENTS.md +24 -26
  62. package/templates/tests/support/global-setup.ts +15 -15
  63. package/templates/tests/support/testkit-client.ts +14 -14
  64. package/templates/tests/support/testkit-client.webapi.ts +14 -0
  65. package/templates/tests/ztd-layout.generated.ts +6 -6
  66. package/templates/tsconfig.json +15 -15
  67. package/templates/vitest.config.ts +13 -13
  68. package/templates/ztd/AGENTS.md +23 -18
  69. package/templates/ztd/README.md +5 -5
  70. package/templates/ztd/ddl/AGENTS.md +26 -34
  71. package/templates/ztd/ddl/demo.sql +74 -74
  72. package/LICENSE +0 -21
  73. package/dist/commands/ddl.d.ts +0 -7
  74. package/dist/commands/ddl.js +0 -118
  75. package/dist/commands/ddl.js.map +0 -1
  76. package/dist/commands/diff.d.ts +0 -10
  77. package/dist/commands/diff.js +0 -38
  78. package/dist/commands/diff.js.map +0 -1
  79. package/dist/commands/genEntities.d.ts +0 -6
  80. package/dist/commands/genEntities.js +0 -50
  81. package/dist/commands/genEntities.js.map +0 -1
  82. package/dist/commands/init.d.ts +0 -79
  83. package/dist/commands/init.js +0 -1083
  84. package/dist/commands/init.js.map +0 -1
  85. package/dist/commands/lint.d.ts +0 -59
  86. package/dist/commands/lint.js +0 -358
  87. package/dist/commands/lint.js.map +0 -1
  88. package/dist/commands/options.d.ts +0 -9
  89. package/dist/commands/options.js +0 -48
  90. package/dist/commands/options.js.map +0 -1
  91. package/dist/commands/pull.d.ts +0 -10
  92. package/dist/commands/pull.js +0 -105
  93. package/dist/commands/pull.js.map +0 -1
  94. package/dist/commands/ztdConfig.d.ts +0 -23
  95. package/dist/commands/ztdConfig.js +0 -216
  96. package/dist/commands/ztdConfig.js.map +0 -1
  97. package/dist/commands/ztdConfigCommand.d.ts +0 -5
  98. package/dist/commands/ztdConfigCommand.js +0 -157
  99. package/dist/commands/ztdConfigCommand.js.map +0 -1
  100. package/dist/index.d.ts +0 -2
  101. package/dist/index.js +0 -22
  102. package/dist/index.js.map +0 -1
  103. package/dist/utils/agents.d.ts +0 -1
  104. package/dist/utils/agents.js +0 -48
  105. package/dist/utils/agents.js.map +0 -1
  106. package/dist/utils/collectSqlFiles.d.ts +0 -9
  107. package/dist/utils/collectSqlFiles.js +0 -58
  108. package/dist/utils/collectSqlFiles.js.map +0 -1
  109. package/dist/utils/connectionSummary.d.ts +0 -3
  110. package/dist/utils/connectionSummary.js +0 -29
  111. package/dist/utils/connectionSummary.js.map +0 -1
  112. package/dist/utils/dbConnection.d.ts +0 -29
  113. package/dist/utils/dbConnection.js +0 -210
  114. package/dist/utils/dbConnection.js.map +0 -1
  115. package/dist/utils/fs.d.ts +0 -1
  116. package/dist/utils/fs.js +0 -12
  117. package/dist/utils/fs.js.map +0 -1
  118. package/dist/utils/normalizePulledSchema.d.ts +0 -12
  119. package/dist/utils/normalizePulledSchema.js +0 -213
  120. package/dist/utils/normalizePulledSchema.js.map +0 -1
  121. package/dist/utils/optionalDependencies.d.ts +0 -35
  122. package/dist/utils/optionalDependencies.js +0 -96
  123. package/dist/utils/optionalDependencies.js.map +0 -1
  124. package/dist/utils/pgDump.d.ts +0 -11
  125. package/dist/utils/pgDump.js +0 -55
  126. package/dist/utils/pgDump.js.map +0 -1
  127. package/dist/utils/sqlLintHelpers.d.ts +0 -18
  128. package/dist/utils/sqlLintHelpers.js +0 -270
  129. package/dist/utils/sqlLintHelpers.js.map +0 -1
  130. package/dist/utils/typeMapper.d.ts +0 -4
  131. package/dist/utils/typeMapper.js +0 -76
  132. package/dist/utils/typeMapper.js.map +0 -1
  133. package/dist/utils/ztdProjectConfig.d.ts +0 -40
  134. package/dist/utils/ztdProjectConfig.js +0 -167
  135. package/dist/utils/ztdProjectConfig.js.map +0 -1
  136. package/templates/dist/drivers/pg-testkit/src/driver/PgTestkitClient.d.ts +0 -38
  137. package/templates/dist/drivers/pg-testkit/src/driver/PgTestkitClient.js +0 -117
  138. package/templates/dist/drivers/pg-testkit/src/driver/PgTestkitClient.js.map +0 -1
  139. package/templates/dist/drivers/pg-testkit/src/driver/createPgTestkitPool.d.ts +0 -4
  140. package/templates/dist/drivers/pg-testkit/src/driver/createPgTestkitPool.js +0 -71
  141. package/templates/dist/drivers/pg-testkit/src/driver/createPgTestkitPool.js.map +0 -1
  142. package/templates/dist/drivers/pg-testkit/src/index.d.ts +0 -5
  143. package/templates/dist/drivers/pg-testkit/src/index.js +0 -11
  144. package/templates/dist/drivers/pg-testkit/src/index.js.map +0 -1
  145. package/templates/dist/drivers/pg-testkit/src/proxy/wrapPgClient.d.ts +0 -3
  146. package/templates/dist/drivers/pg-testkit/src/proxy/wrapPgClient.js +0 -79
  147. package/templates/dist/drivers/pg-testkit/src/proxy/wrapPgClient.js.map +0 -1
  148. package/templates/dist/drivers/pg-testkit/src/types.d.ts +0 -69
  149. package/templates/dist/drivers/pg-testkit/src/types.js +0 -3
  150. package/templates/dist/drivers/pg-testkit/src/types.js.map +0 -1
  151. package/templates/dist/drivers/pg-testkit/src/utils/fixtureState.d.ts +0 -15
  152. package/templates/dist/drivers/pg-testkit/src/utils/fixtureState.js +0 -34
  153. package/templates/dist/drivers/pg-testkit/src/utils/fixtureState.js.map +0 -1
  154. package/templates/dist/drivers/pg-testkit/src/utils/fixtureValidation.d.ts +0 -12
  155. package/templates/dist/drivers/pg-testkit/src/utils/fixtureValidation.js +0 -53
  156. package/templates/dist/drivers/pg-testkit/src/utils/fixtureValidation.js.map +0 -1
  157. package/templates/dist/mapper-core/src/index.d.ts +0 -160
  158. package/templates/dist/mapper-core/src/index.js +0 -637
  159. package/templates/dist/mapper-core/src/index.js.map +0 -1
  160. package/templates/dist/testkit-core/src/errors/index.d.ts +0 -49
  161. package/templates/dist/testkit-core/src/errors/index.js +0 -111
  162. package/templates/dist/testkit-core/src/errors/index.js.map +0 -1
  163. package/templates/dist/testkit-core/src/fixtures/ColumnAffinity.d.ts +0 -5
  164. package/templates/dist/testkit-core/src/fixtures/ColumnAffinity.js +0 -29
  165. package/templates/dist/testkit-core/src/fixtures/ColumnAffinity.js.map +0 -1
  166. package/templates/dist/testkit-core/src/fixtures/DdlFixtureLoader.d.ts +0 -37
  167. package/templates/dist/testkit-core/src/fixtures/DdlFixtureLoader.js +0 -182
  168. package/templates/dist/testkit-core/src/fixtures/DdlFixtureLoader.js.map +0 -1
  169. package/templates/dist/testkit-core/src/fixtures/FixtureProvider.d.ts +0 -20
  170. package/templates/dist/testkit-core/src/fixtures/FixtureProvider.js +0 -121
  171. package/templates/dist/testkit-core/src/fixtures/FixtureProvider.js.map +0 -1
  172. package/templates/dist/testkit-core/src/fixtures/FixtureStore.d.ts +0 -51
  173. package/templates/dist/testkit-core/src/fixtures/FixtureStore.js +0 -199
  174. package/templates/dist/testkit-core/src/fixtures/FixtureStore.js.map +0 -1
  175. package/templates/dist/testkit-core/src/fixtures/TableDefinitionSchemaRegistry.d.ts +0 -10
  176. package/templates/dist/testkit-core/src/fixtures/TableDefinitionSchemaRegistry.js +0 -28
  177. package/templates/dist/testkit-core/src/fixtures/TableDefinitionSchemaRegistry.js.map +0 -1
  178. package/templates/dist/testkit-core/src/fixtures/TableNameResolver.d.ts +0 -18
  179. package/templates/dist/testkit-core/src/fixtures/TableNameResolver.js +0 -80
  180. package/templates/dist/testkit-core/src/fixtures/TableNameResolver.js.map +0 -1
  181. package/templates/dist/testkit-core/src/fixtures/ddlLint.d.ts +0 -59
  182. package/templates/dist/testkit-core/src/fixtures/ddlLint.js +0 -489
  183. package/templates/dist/testkit-core/src/fixtures/ddlLint.js.map +0 -1
  184. package/templates/dist/testkit-core/src/fixtures/naming.d.ts +0 -1
  185. package/templates/dist/testkit-core/src/fixtures/naming.js +0 -6
  186. package/templates/dist/testkit-core/src/fixtures/naming.js.map +0 -1
  187. package/templates/dist/testkit-core/src/index.d.ts +0 -17
  188. package/templates/dist/testkit-core/src/index.js +0 -47
  189. package/templates/dist/testkit-core/src/index.js.map +0 -1
  190. package/templates/dist/testkit-core/src/logger/NoopLogger.d.ts +0 -8
  191. package/templates/dist/testkit-core/src/logger/NoopLogger.js +0 -16
  192. package/templates/dist/testkit-core/src/logger/NoopLogger.js.map +0 -1
  193. package/templates/dist/testkit-core/src/provider/TestkitProvider.d.ts +0 -57
  194. package/templates/dist/testkit-core/src/provider/TestkitProvider.js +0 -149
  195. package/templates/dist/testkit-core/src/provider/TestkitProvider.js.map +0 -1
  196. package/templates/dist/testkit-core/src/rewriter/ResultSelectRewriter.d.ts +0 -43
  197. package/templates/dist/testkit-core/src/rewriter/ResultSelectRewriter.js +0 -473
  198. package/templates/dist/testkit-core/src/rewriter/ResultSelectRewriter.js.map +0 -1
  199. package/templates/dist/testkit-core/src/rewriter/SelectAnalyzer.d.ts +0 -9
  200. package/templates/dist/testkit-core/src/rewriter/SelectAnalyzer.js +0 -38
  201. package/templates/dist/testkit-core/src/rewriter/SelectAnalyzer.js.map +0 -1
  202. package/templates/dist/testkit-core/src/rewriter/SelectFixtureRewriter.d.ts +0 -42
  203. package/templates/dist/testkit-core/src/rewriter/SelectFixtureRewriter.js +0 -298
  204. package/templates/dist/testkit-core/src/rewriter/SelectFixtureRewriter.js.map +0 -1
  205. package/templates/dist/testkit-core/src/sql/SqliteValuesBuilder.d.ts +0 -12
  206. package/templates/dist/testkit-core/src/sql/SqliteValuesBuilder.js +0 -63
  207. package/templates/dist/testkit-core/src/sql/SqliteValuesBuilder.js.map +0 -1
  208. package/templates/dist/testkit-core/src/types/index.d.ts +0 -69
  209. package/templates/dist/testkit-core/src/types/index.js +0 -3
  210. package/templates/dist/testkit-core/src/types/index.js.map +0 -1
  211. package/templates/dist/testkit-core/src/utils/queryHelpers.d.ts +0 -28
  212. package/templates/dist/testkit-core/src/utils/queryHelpers.js +0 -81
  213. package/templates/dist/testkit-core/src/utils/queryHelpers.js.map +0 -1
  214. package/templates/dist/writer-core/src/index.d.ts +0 -34
  215. package/templates/dist/writer-core/src/index.js +0 -115
  216. package/templates/dist/writer-core/src/index.js.map +0 -1
  217. package/templates/dist/ztd-cli/templates/src/db/sql-client.d.ts +0 -20
  218. package/templates/dist/ztd-cli/templates/src/db/sql-client.js +0 -3
  219. package/templates/dist/ztd-cli/templates/src/db/sql-client.js.map +0 -1
  220. package/templates/dist/ztd-cli/templates/src/repositories/user-accounts.d.ts +0 -36
  221. package/templates/dist/ztd-cli/templates/src/repositories/user-accounts.js +0 -85
  222. package/templates/dist/ztd-cli/templates/src/repositories/user-accounts.js.map +0 -1
  223. package/templates/dist/ztd-cli/templates/tests/generated/ztd-row-map.generated.d.ts +0 -20
  224. package/templates/dist/ztd-cli/templates/tests/generated/ztd-row-map.generated.js +0 -33
  225. package/templates/dist/ztd-cli/templates/tests/generated/ztd-row-map.generated.js.map +0 -1
  226. package/templates/dist/ztd-cli/templates/tests/support/global-setup.d.ts +0 -10
  227. package/templates/dist/ztd-cli/templates/tests/support/global-setup.js +0 -29
  228. package/templates/dist/ztd-cli/templates/tests/support/global-setup.js.map +0 -1
  229. package/templates/dist/ztd-cli/templates/tests/support/testkit-client.d.ts +0 -66
  230. package/templates/dist/ztd-cli/templates/tests/support/testkit-client.js +0 -552
  231. package/templates/dist/ztd-cli/templates/tests/support/testkit-client.js.map +0 -1
  232. package/templates/dist/ztd-cli/templates/tests/user-profiles.test.d.ts +0 -1
  233. package/templates/dist/ztd-cli/templates/tests/user-profiles.test.js +0 -82
  234. package/templates/dist/ztd-cli/templates/tests/user-profiles.test.js.map +0 -1
  235. package/templates/dist/ztd-cli/templates/tests/writer-constraints.test.d.ts +0 -1
  236. package/templates/dist/ztd-cli/templates/tests/writer-constraints.test.js +0 -29
  237. package/templates/dist/ztd-cli/templates/tests/writer-constraints.test.js.map +0 -1
  238. package/templates/dist/ztd-cli/templates/tests/ztd-layout.generated.d.ts +0 -7
  239. package/templates/dist/ztd-cli/templates/tests/ztd-layout.generated.js +0 -10
  240. package/templates/dist/ztd-cli/templates/tests/ztd-layout.generated.js.map +0 -1
@@ -1,96 +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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- var __importDefault = (this && this.__importDefault) || function (mod) {
36
- return (mod && mod.__esModule) ? mod : { "default": mod };
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.clearOptionalDependencyCache = clearOptionalDependencyCache;
40
- exports.ensureTestkitCoreModule = ensureTestkitCoreModule;
41
- exports.ensureAdapterNodePgModule = ensureAdapterNodePgModule;
42
- exports.ensurePgModule = ensurePgModule;
43
- exports.ensurePostgresContainerModule = ensurePostgresContainerModule;
44
- const node_path_1 = __importDefault(require("node:path"));
45
- const node_module_1 = require("node:module");
46
- const node_url_1 = require("node:url");
47
- const moduleCache = new Map();
48
- async function loadOptionalModule(cacheKey, loader, description, installHint) {
49
- if (moduleCache.has(cacheKey)) {
50
- return moduleCache.get(cacheKey);
51
- }
52
- const moduleLoader = loader()
53
- .catch((error) => {
54
- moduleCache.delete(cacheKey);
55
- const installNote = installHint ? ` Install it via \`${installHint}\`.` : '';
56
- const original = error instanceof Error ? ` (${error.message})` : '';
57
- throw new Error(`${description}${installNote}${original}`);
58
- });
59
- moduleCache.set(cacheKey, moduleLoader);
60
- return moduleLoader;
61
- }
62
- function clearOptionalDependencyCache() {
63
- moduleCache.clear();
64
- }
65
- function requireFromWorkspace(specifier) {
66
- const require = (0, node_module_1.createRequire)(node_path_1.default.resolve(process.cwd(), 'package.json'));
67
- return require(specifier);
68
- }
69
- async function loadAdapterNodePgModule() {
70
- try {
71
- return requireFromWorkspace('@rawsql-ts/adapter-node-pg');
72
- }
73
- catch (error) {
74
- // Workspace tests can run before adapter build output exists, so use source entrypoint.
75
- const workspaceAdapterSrc = node_path_1.default.resolve(process.cwd(), 'packages/adapters/adapter-node-pg/src/index.ts');
76
- try {
77
- return (await Promise.resolve(`${(0, node_url_1.pathToFileURL)(workspaceAdapterSrc).href}`).then(s => __importStar(require(s))));
78
- }
79
- catch {
80
- throw error;
81
- }
82
- }
83
- }
84
- async function ensureTestkitCoreModule() {
85
- return loadOptionalModule('@rawsql-ts/testkit-core', () => Promise.resolve().then(() => __importStar(require('@rawsql-ts/testkit-core'))), 'This command requires @rawsql-ts/testkit-core so fixtures and schema metadata are available.', 'pnpm add -D @rawsql-ts/testkit-core');
86
- }
87
- async function ensureAdapterNodePgModule() {
88
- return loadOptionalModule('@rawsql-ts/adapter-node-pg', loadAdapterNodePgModule, 'A database adapter (for example @rawsql-ts/adapter-node-pg) is required to execute the rewritten SQL.', 'pnpm add -D @rawsql-ts/adapter-node-pg');
89
- }
90
- async function ensurePgModule() {
91
- return loadOptionalModule('pg', () => Promise.resolve().then(() => __importStar(require('pg'))), 'The SQL lint command needs a PostgreSQL driver such as pg.', 'pnpm add -D pg');
92
- }
93
- async function ensurePostgresContainerModule() {
94
- return loadOptionalModule('@testcontainers/postgresql', () => Promise.resolve().then(() => __importStar(require('@testcontainers/postgresql'))), 'ztd lint wants to spin up a disposable Postgres container via @testcontainers/postgresql.', 'pnpm add -D @testcontainers/postgresql');
95
- }
96
- //# sourceMappingURL=optionalDependencies.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"optionalDependencies.js","sourceRoot":"","sources":["../../src/utils/optionalDependencies.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgEA,oEAEC;AAwBD,0DAOC;AAED,8DAOC;AAED,wCAOC;AAED,sEAOC;AA5HD,0DAA6B;AAC7B,6CAA4C;AAC5C,uCAAyC;AAEzC,MAAM,WAAW,GAAG,IAAI,GAAG,EAA4B,CAAC;AAExD,KAAK,UAAU,kBAAkB,CAC/B,QAAgB,EAChB,MAAwB,EACxB,WAAmB,EACnB,WAAmB;IAEnB,IAAI,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9B,OAAO,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAe,CAAC;IACjD,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,EAAE;SAC1B,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACf,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC7B,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,qBAAqB,WAAW,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7E,MAAM,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,MAAM,IAAI,KAAK,CAAC,GAAG,WAAW,GAAG,WAAW,GAAG,QAAQ,EAAE,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEL,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IACxC,OAAO,YAAY,CAAC;AACtB,CAAC;AAsCD,SAAgB,4BAA4B;IAC1C,WAAW,CAAC,KAAK,EAAE,CAAC;AACtB,CAAC;AAED,SAAS,oBAAoB,CAAI,SAAiB;IAChD,MAAM,OAAO,GAAG,IAAA,2BAAa,EAAC,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;IAC3E,OAAO,OAAO,CAAC,SAAS,CAAM,CAAC;AACjC,CAAC;AAED,KAAK,UAAU,uBAAuB;IACpC,IAAI,CAAC;QACH,OAAO,oBAAoB,CAAsB,4BAA4B,CAAC,CAAC;IACjF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,wFAAwF;QACxF,MAAM,mBAAmB,GAAG,mBAAI,CAAC,OAAO,CACtC,OAAO,CAAC,GAAG,EAAE,EACb,gDAAgD,CACjD,CAAC;QACF,IAAI,CAAC;YACH,OAAO,CAAC,yBAAa,IAAA,wBAAa,EAAC,mBAAmB,CAAC,CAAC,IAAI,uCAAC,CAAwB,CAAC;QACxF,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,uBAAuB;IAC3C,OAAO,kBAAkB,CACvB,yBAAyB,EACzB,GAAG,EAAE,mDAAQ,yBAAyB,GAAC,EACvC,8FAA8F,EAC9F,qCAAqC,CACtC,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,yBAAyB;IAC7C,OAAO,kBAAkB,CACvB,4BAA4B,EAC5B,uBAAuB,EACvB,uGAAuG,EACvG,wCAAwC,CACzC,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,cAAc;IAClC,OAAO,kBAAkB,CACvB,IAAI,EACJ,GAAG,EAAE,mDAAQ,IAAI,GAAC,EAClB,4DAA4D,EAC5D,gBAAgB,CACjB,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,6BAA6B;IACjD,OAAO,kBAAkB,CACvB,4BAA4B,EAC5B,GAAG,EAAE,mDAAQ,4BAA4B,GAAC,EAC1C,2FAA2F,EAC3F,wCAAwC,CACzC,CAAC;AACJ,CAAC"}
@@ -1,11 +0,0 @@
1
- import type { DbConnectionContext } from './dbConnection';
2
- export interface PgDumpOptions {
3
- url: string;
4
- pgDumpPath?: string;
5
- extraArgs?: string[];
6
- connectionContext?: DbConnectionContext;
7
- }
8
- /**
9
- * Wraps `pg_dump` in schema-only mode for the given connection URL and returns the captured DDL output.
10
- */
11
- export declare function runPgDump(options: PgDumpOptions): string;
@@ -1,55 +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.runPgDump = runPgDump;
7
- const node_child_process_1 = require("node:child_process");
8
- const node_os_1 = __importDefault(require("node:os"));
9
- const connectionSummary_1 = require("./connectionSummary");
10
- /**
11
- * Wraps `pg_dump` in schema-only mode for the given connection URL and returns the captured DDL output.
12
- */
13
- function runPgDump(options) {
14
- var _a, _b, _c, _d, _e, _f;
15
- const executable = (_b = (_a = options.pgDumpPath) !== null && _a !== void 0 ? _a : process.env.PG_DUMP_PATH) !== null && _b !== void 0 ? _b : 'pg_dump';
16
- const args = [
17
- '--schema-only',
18
- '--no-owner',
19
- '--no-privileges',
20
- ...((_c = options.extraArgs) !== null && _c !== void 0 ? _c : []),
21
- '--dbname',
22
- options.url
23
- ];
24
- const result = (0, node_child_process_1.spawnSync)(executable, args, {
25
- encoding: 'utf8',
26
- stdio: ['ignore', 'pipe', 'pipe']
27
- });
28
- const connectionNote = (0, connectionSummary_1.describeConnectionContext)(options.connectionContext);
29
- const extraArgsNote = ((_d = options.extraArgs) === null || _d === void 0 ? void 0 : _d.length) ? ` (extra args: ${options.extraArgs.join(' ')})` : '';
30
- if (result.error) {
31
- const windowsHint = node_os_1.default.platform() === 'win32'
32
- ? ' On Windows, ensure "C:\\Program Files\\PostgreSQL\\<version>\\bin" is on PATH or use a shell where pg_dump is available.'
33
- : '';
34
- if (isExecutableMissing(result.error, (_e = result.stderr) === null || _e === void 0 ? void 0 : _e.toString())) {
35
- throw new Error(`pg_dump executable not found (${executable}). Install PostgreSQL or pass --pg-dump-path to point at the binary.${windowsHint}`);
36
- }
37
- throw new Error(`Failed to launch pg_dump (${executable})${connectionNote}: ${(_f = result.error.message) !== null && _f !== void 0 ? _f : 'Unknown error'}${extraArgsNote}`);
38
- }
39
- if (result.status !== 0 || !result.stdout) {
40
- const stderr = result.stderr ? result.stderr.toString().trim() : 'Unknown error';
41
- throw new Error(`pg_dump reported an error${connectionNote}: ${stderr}${extraArgsNote}`);
42
- }
43
- return result.stdout;
44
- }
45
- function isExecutableMissing(error, stderr) {
46
- if (error.code === 'ENOENT') {
47
- return true;
48
- }
49
- if (!stderr) {
50
- return false;
51
- }
52
- const normalized = stderr.toLowerCase();
53
- return normalized.includes('not recognized') || normalized.includes('command not found');
54
- }
55
- //# sourceMappingURL=pgDump.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pgDump.js","sourceRoot":"","sources":["../../src/utils/pgDump.ts"],"names":[],"mappings":";;;;;AAeA,8BA0CC;AAzDD,2DAA+C;AAC/C,sDAAyB;AAEzB,2DAAgE;AAShE;;GAEG;AACH,SAAgB,SAAS,CAAC,OAAsB;;IAC9C,MAAM,UAAU,GAAG,MAAA,MAAA,OAAO,CAAC,UAAU,mCAAI,OAAO,CAAC,GAAG,CAAC,YAAY,mCAAI,SAAS,CAAC;IAC/E,MAAM,IAAI,GAAG;QACX,eAAe;QACf,YAAY;QACZ,iBAAiB;QACjB,GAAG,CAAC,MAAA,OAAO,CAAC,SAAS,mCAAI,EAAE,CAAC;QAC5B,UAAU;QACV,OAAO,CAAC,GAAG;KACZ,CAAC;IAEF,MAAM,MAAM,GAAG,IAAA,8BAAS,EAAC,UAAU,EAAE,IAAI,EAAE;QACzC,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;KAClC,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,IAAA,6CAAyB,EAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC5E,MAAM,aAAa,GAAG,CAAA,MAAA,OAAO,CAAC,SAAS,0CAAE,MAAM,EAAC,CAAC,CAAC,iBAAiB,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAEvG,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,WAAW,GACf,iBAAE,CAAC,QAAQ,EAAE,KAAK,OAAO;YACvB,CAAC,CAAC,2HAA2H;YAC7H,CAAC,CAAC,EAAE,CAAC;QAET,IAAI,mBAAmB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAA,MAAM,CAAC,MAAM,0CAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;YACjE,MAAM,IAAI,KAAK,CACb,iCAAiC,UAAU,uEAAuE,WAAW,EAAE,CAChI,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,KAAK,CACb,6BAA6B,UAAU,IAAI,cAAc,KAAK,MAAA,MAAM,CAAC,KAAK,CAAC,OAAO,mCAAI,eAAe,GAAG,aAAa,EAAE,CACxH,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC;QACjF,MAAM,IAAI,KAAK,CAAC,4BAA4B,cAAc,KAAK,MAAM,GAAG,aAAa,EAAE,CAAC,CAAC;IAC3F,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC;AACvB,CAAC;AAED,SAAS,mBAAmB,CAAC,KAA4B,EAAE,MAAe;IACxE,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IACxC,OAAO,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;AAC3F,CAAC"}
@@ -1,18 +0,0 @@
1
- import type { TableDefinitionModel } from 'rawsql-ts';
2
- import type { FixtureRow } from '@rawsql-ts/testkit-core';
3
- /**
4
- * Resolve a CLI argument into an absolute list of `.sql` files.
5
- */
6
- export declare function resolveSqlFiles(pattern: string): string[];
7
- /**
8
- * Scan the configured DDL directories for CREATE TYPE ... AS ENUM definitions.
9
- */
10
- export declare function extractEnumLabels(directories: string[], extensions?: string[]): Map<string, string[]>;
11
- /**
12
- * Build a fixture row for linting using minimal values derived from the column types.
13
- */
14
- export declare function buildLintFixtureRow(definition: TableDefinitionModel, enumLabels: Map<string, string[]>): FixtureRow;
15
- /**
16
- * Infer a default value for a required column to keep Postgres happy.
17
- */
18
- export declare function inferDefaultValue(typeName: string | undefined, enumLabels: Map<string, string[]>): unknown;
@@ -1,270 +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.resolveSqlFiles = resolveSqlFiles;
7
- exports.extractEnumLabels = extractEnumLabels;
8
- exports.buildLintFixtureRow = buildLintFixtureRow;
9
- exports.inferDefaultValue = inferDefaultValue;
10
- const node_fs_1 = require("node:fs");
11
- const node_path_1 = __importDefault(require("node:path"));
12
- const fast_glob_1 = __importDefault(require("fast-glob"));
13
- const options_1 = require("../commands/options");
14
- const collectSqlFiles_1 = require("./collectSqlFiles");
15
- /**
16
- * Resolve a CLI argument into an absolute list of `.sql` files.
17
- */
18
- function resolveSqlFiles(pattern) {
19
- const absolutePattern = node_path_1.default.resolve(pattern);
20
- if ((0, node_fs_1.existsSync)(absolutePattern)) {
21
- const stats = (0, node_fs_1.lstatSync)(absolutePattern);
22
- if (stats.isFile()) {
23
- return [toPosixPattern(absolutePattern)];
24
- }
25
- if (stats.isDirectory()) {
26
- const matches = fast_glob_1.default.sync(toPosixPattern(node_path_1.default.join(absolutePattern, '**', '*.sql')), {
27
- absolute: true,
28
- onlyFiles: true
29
- });
30
- if (matches.length === 0) {
31
- throw new Error(`No SQL files were found under ${absolutePattern}`);
32
- }
33
- return matches.map(toPosixPattern).sort();
34
- }
35
- }
36
- const globMatches = fast_glob_1.default.sync(toPosixPattern(pattern), {
37
- absolute: true,
38
- onlyFiles: true
39
- });
40
- if (globMatches.length === 0) {
41
- throw new Error(`No SQL files matched ${pattern}`);
42
- }
43
- return globMatches.map(toPosixPattern).sort();
44
- }
45
- /**
46
- * Scan the configured DDL directories for CREATE TYPE ... AS ENUM definitions.
47
- */
48
- function extractEnumLabels(directories, extensions = options_1.DEFAULT_EXTENSIONS) {
49
- const enums = new Map();
50
- for (const directory of directories) {
51
- if (!(0, node_fs_1.existsSync)(directory)) {
52
- continue;
53
- }
54
- const files = (0, collectSqlFiles_1.collectSqlFiles)([directory], extensions);
55
- for (const { sql } of files) {
56
- for (const { name, labels } of parseEnumDefinitions(sql)) {
57
- if (!labels.length) {
58
- continue;
59
- }
60
- const normalized = normalizeQualifiedName(name);
61
- if (!normalized) {
62
- continue;
63
- }
64
- if (!enums.has(normalized)) {
65
- enums.set(normalized, labels);
66
- }
67
- }
68
- }
69
- }
70
- return enums;
71
- }
72
- /**
73
- * Build a fixture row for linting using minimal values derived from the column types.
74
- */
75
- function buildLintFixtureRow(definition, enumLabels) {
76
- const row = {};
77
- for (const column of definition.columns) {
78
- row[column.name] = column.required
79
- ? inferDefaultValue(column.typeName, enumLabels)
80
- : null;
81
- }
82
- return row;
83
- }
84
- /**
85
- * Infer a default value for a required column to keep Postgres happy.
86
- */
87
- function inferDefaultValue(typeName, enumLabels) {
88
- if (!typeName) {
89
- return '';
90
- }
91
- const normalized = normalizeTypeName(typeName);
92
- const enumMatch = enumLabels.get(normalized.key);
93
- if (enumMatch && enumMatch.length > 0) {
94
- return enumMatch[0];
95
- }
96
- if (normalized.isArray) {
97
- return '{}';
98
- }
99
- if (normalized.base.startsWith('int') ||
100
- normalized.base.includes('serial') ||
101
- normalized.base === 'numeric' ||
102
- normalized.base === 'decimal' ||
103
- normalized.base === 'real' ||
104
- normalized.base === 'double precision') {
105
- return 0;
106
- }
107
- if (normalized.base === 'boolean' || normalized.base === 'bool') {
108
- return false;
109
- }
110
- if (normalized.base === 'uuid') {
111
- return '00000000-0000-0000-0000-000000000000';
112
- }
113
- if (normalized.base.startsWith('character') ||
114
- normalized.base.startsWith('varchar') ||
115
- normalized.base === 'text' ||
116
- normalized.base === 'citext' ||
117
- normalized.base === 'name') {
118
- return '';
119
- }
120
- if (normalized.base === 'date') {
121
- return '1970-01-01';
122
- }
123
- if (normalized.base.startsWith('timestamp')) {
124
- return '1970-01-01 00:00:00';
125
- }
126
- if (normalized.base.startsWith('time')) {
127
- return '00:00:00';
128
- }
129
- if (normalized.base === 'json' || normalized.base === 'jsonb') {
130
- return '{}';
131
- }
132
- return '';
133
- }
134
- function normalizeTypeName(typeName) {
135
- const segments = splitQualifiedName(typeName);
136
- if (segments.length === 0) {
137
- return { base: '', key: '', isArray: false };
138
- }
139
- const cleaned = segments.map((token) => compactIdentifier(token).toLowerCase());
140
- let isArray = false;
141
- let lastSegment = cleaned[cleaned.length - 1];
142
- if (lastSegment.endsWith('[]')) {
143
- isArray = true;
144
- lastSegment = lastSegment.slice(0, -2).trim();
145
- }
146
- const base = lastSegment.replace(/\(.*\)$/, '').trim();
147
- cleaned[cleaned.length - 1] = base;
148
- return {
149
- base,
150
- key: cleaned.join('.'),
151
- isArray
152
- };
153
- }
154
- function normalizeQualifiedName(value) {
155
- const segments = splitQualifiedName(value);
156
- if (segments.length === 0) {
157
- return null;
158
- }
159
- const cleaned = segments.map((segment) => compactIdentifier(segment).toLowerCase());
160
- return cleaned.join('.');
161
- }
162
- function splitQualifiedName(value) {
163
- const parts = [];
164
- let buffer = '';
165
- let inQuotes = false;
166
- for (let i = 0; i < value.length; i += 1) {
167
- const char = value[i];
168
- if (char === '"') {
169
- buffer += char;
170
- if (inQuotes && value[i + 1] === '"') {
171
- buffer += '"';
172
- i += 1;
173
- continue;
174
- }
175
- inQuotes = !inQuotes;
176
- continue;
177
- }
178
- if (char === '.' && !inQuotes) {
179
- if (buffer.length > 0) {
180
- parts.push(buffer);
181
- }
182
- buffer = '';
183
- continue;
184
- }
185
- buffer += char;
186
- }
187
- if (buffer.length > 0) {
188
- parts.push(buffer);
189
- }
190
- return parts
191
- .map((segment) => segment.trim())
192
- .filter(Boolean);
193
- }
194
- function compactIdentifier(value) {
195
- const trimmed = value.trim();
196
- if (trimmed.startsWith('"') && trimmed.endsWith('"')) {
197
- return trimmed
198
- .slice(1, -1)
199
- .replace(/""/g, '"');
200
- }
201
- return trimmed.replace(/\s+/g, ' ');
202
- }
203
- function parseEnumDefinitions(sql) {
204
- const results = [];
205
- const regex = /create\s+type\s+(.+?)\s+as\s+enum\s*\(/gsi;
206
- let match;
207
- while ((match = regex.exec(sql))) {
208
- const rawName = match[1].trim();
209
- const openParenIndex = regex.lastIndex - 1;
210
- if (openParenIndex < 0 || sql[openParenIndex] !== '(') {
211
- continue;
212
- }
213
- const { labels, end } = parseEnumLabelList(sql, openParenIndex);
214
- results.push({ name: rawName, labels });
215
- regex.lastIndex = end;
216
- }
217
- return results;
218
- }
219
- function parseEnumLabelList(sql, startIndex) {
220
- const labels = [];
221
- let idx = startIndex + 1;
222
- while (idx < sql.length) {
223
- idx = skipWhitespace(sql, idx);
224
- if (sql[idx] === ')') {
225
- idx += 1;
226
- break;
227
- }
228
- if (sql[idx] === ',') {
229
- idx += 1;
230
- continue;
231
- }
232
- if (sql[idx] !== "'") {
233
- idx += 1;
234
- continue;
235
- }
236
- const { value, newIndex } = parseStringLiteral(sql, idx);
237
- labels.push(value);
238
- idx = newIndex;
239
- }
240
- return { labels, end: idx };
241
- }
242
- function parseStringLiteral(sql, index) {
243
- let idx = index + 1;
244
- let value = '';
245
- while (idx < sql.length) {
246
- const char = sql[idx];
247
- if (char === "'") {
248
- if (sql[idx + 1] === "'") {
249
- value += "'";
250
- idx += 2;
251
- continue;
252
- }
253
- idx += 1;
254
- break;
255
- }
256
- value += char;
257
- idx += 1;
258
- }
259
- return { value, newIndex: idx };
260
- }
261
- function skipWhitespace(sql, index) {
262
- while (index < sql.length && /\s/.test(sql[index])) {
263
- index += 1;
264
- }
265
- return index;
266
- }
267
- function toPosixPattern(value) {
268
- return value.replace(/\\/g, '/');
269
- }
270
- //# sourceMappingURL=sqlLintHelpers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sqlLintHelpers.js","sourceRoot":"","sources":["../../src/utils/sqlLintHelpers.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- /**
2
- * Maps PostgreSQL data types (basic numeric, string, temporal, JSON/binary types) to serializable TypeScript types, falling back to `unknown` when unmatched.
3
- */
4
- export declare function mapSqlTypeToTs(typeName?: string, context?: string): string;
@@ -1,76 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.mapSqlTypeToTs = mapSqlTypeToTs;
4
- const numericTypes = new Set([
5
- 'int',
6
- 'integer',
7
- 'smallint',
8
- 'bigint',
9
- 'real',
10
- 'double precision',
11
- 'float',
12
- 'serial',
13
- 'bigserial',
14
- 'smallserial'
15
- ]);
16
- const arbitraryPrecisionTypes = new Set(['decimal', 'numeric']);
17
- const stringTypes = new Set(['text', 'varchar', 'char', 'character varying', 'character', 'uuid', 'citext']);
18
- const dateTypes = new Set(['date', 'timestamp', 'timestamp without time zone', 'timestamp with time zone', 'time', 'time without time zone', 'time with time zone', 'timestamptz']);
19
- const shouldLogUnknownSqlTypes = process.env.RAWSQL_DDL_SILENT !== '1';
20
- function warnUnknownSqlType(typeName, context) {
21
- // Do nothing when logging is explicitly silenced in CI or tooling.
22
- if (!shouldLogUnknownSqlTypes) {
23
- return;
24
- }
25
- // Keep developers aware when the generator sees an unmapped SQL type.
26
- const subject = context !== null && context !== void 0 ? context : 'column';
27
- console.warn(`[ztd ddl] Unknown SQL type for ${subject}: ${typeName !== null && typeName !== void 0 ? typeName : 'undefined'}. Defaulting to unknown.`);
28
- }
29
- /**
30
- * Maps PostgreSQL data types (basic numeric, string, temporal, JSON/binary types) to serializable TypeScript types, falling back to `unknown` when unmatched.
31
- */
32
- function mapSqlTypeToTs(typeName, context) {
33
- // Log when the AST omitted a type so callers can track down why type inference failed.
34
- if (!typeName) {
35
- warnUnknownSqlType(typeName, context);
36
- return 'unknown';
37
- }
38
- // Drop trailing precision/length metadata (varchar(255), numeric(10,2), etc.) because TS cannot capture it.
39
- const normalized = typeName.split('(')[0].trim().toLowerCase();
40
- if (numericTypes.has(normalized)) {
41
- return 'number';
42
- }
43
- if (arbitraryPrecisionTypes.has(normalized)) {
44
- // Postgres decimal/numeric are arbitrary precision, so string preserves exactness when floating-point would lose it.
45
- return 'string';
46
- }
47
- // Treat all date/time families as strings to keep the generated rows serializable.
48
- if (normalized.includes('time') || dateTypes.has(normalized)) {
49
- return 'string';
50
- }
51
- if (stringTypes.has(normalized) || normalized.includes('text')) {
52
- return 'string';
53
- }
54
- if (normalized === 'boolean' || normalized === 'bool') {
55
- return 'boolean';
56
- }
57
- if (normalized === 'json' || normalized === 'jsonb') {
58
- // Use any so generated APIs stay friendly for JSON-heavy applications; narrowing can still be applied later.
59
- return 'any';
60
- }
61
- if (normalized === 'bytea') {
62
- // Prefer Uint8Array to avoid Node.js-only Buffer while still representing binary payloads.
63
- return 'Uint8Array';
64
- }
65
- if (normalized === 'inet' || normalized === 'cidr' || normalized === 'macaddr') {
66
- return 'string';
67
- }
68
- if (normalized.startsWith('interval')) {
69
- // Interval strings cover day/hour/second variants, so keep them as text.
70
- return 'string';
71
- }
72
- // Alert when an unfamiliar SQL type flows through so we can extend the mapper later.
73
- warnUnknownSqlType(typeName, context);
74
- return 'unknown';
75
- }
76
- //# sourceMappingURL=typeMapper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"typeMapper.js","sourceRoot":"","sources":["../../src/utils/typeMapper.ts"],"names":[],"mappings":"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"}
@@ -1,40 +0,0 @@
1
- import type { DdlLintMode } from '@rawsql-ts/testkit-core';
2
- export interface ZtdConnectionConfig {
3
- url?: string;
4
- host?: string;
5
- port?: number;
6
- user?: string;
7
- password?: string;
8
- database?: string;
9
- }
10
- export interface ZtdProjectConfig {
11
- dialect: string;
12
- ddlDir: string;
13
- testsDir: string;
14
- ddl: {
15
- defaultSchema: string;
16
- searchPath: string[];
17
- };
18
- /** Controls DDL integrity validation during config generation and tests. */
19
- ddlLint: DdlLintMode;
20
- connection?: ZtdConnectionConfig;
21
- }
22
- export declare const DEFAULT_ZTD_CONFIG: ZtdProjectConfig;
23
- /**
24
- * Resolves the path to the project's ztd.config.json from a provided root.
25
- * @param rootDir - Directory to start searching from (defaults to current working directory).
26
- * @returns Absolute path to ztd.config.json.
27
- */
28
- export declare function resolveZtdConfigPath(rootDir?: string): string;
29
- /**
30
- * Loads the project configuration, merging against defaults when the file is missing or partially provided.
31
- * @param rootDir - Directory containing the ztd.config.json file.
32
- * @returns A fully-resolved ZtdProjectConfig instance.
33
- */
34
- export declare function loadZtdProjectConfig(rootDir?: string): ZtdProjectConfig;
35
- /**
36
- * Persists the provided overrides on top of the existing project configuration.
37
- * @param rootDir - Directory that hosts ztd.config.json.
38
- * @param overrides - Partial configuration values to merge.
39
- */
40
- export declare function writeZtdProjectConfig(rootDir: string, overrides?: Partial<ZtdProjectConfig>): void;