@rawsql-ts/ztd-cli 0.19.0 → 0.20.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +4 -4
- package/dist/commands/agents.d.ts +2 -0
- package/dist/commands/agents.js +68 -0
- package/dist/commands/agents.js.map +1 -0
- package/dist/commands/checkContract.d.ts +46 -0
- package/dist/commands/checkContract.js +359 -0
- package/dist/commands/checkContract.js.map +1 -0
- package/dist/commands/connectionOptions.d.ts +12 -0
- package/dist/commands/connectionOptions.js +22 -0
- package/dist/commands/connectionOptions.js.map +1 -0
- package/dist/commands/ddl.d.ts +7 -0
- package/dist/commands/ddl.js +145 -0
- package/dist/commands/ddl.js.map +1 -0
- package/dist/commands/describe.d.ts +23 -0
- package/dist/commands/describe.js +399 -0
- package/dist/commands/describe.js.map +1 -0
- package/dist/commands/diff.d.ts +24 -0
- package/dist/commands/diff.js +73 -0
- package/dist/commands/diff.js.map +1 -0
- package/dist/commands/genEntities.d.ts +14 -0
- package/dist/commands/genEntities.js +58 -0
- package/dist/commands/genEntities.js.map +1 -0
- package/dist/commands/init.d.ts +104 -0
- package/dist/commands/init.js +1480 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/lint.d.ts +89 -0
- package/dist/commands/lint.js +501 -0
- package/dist/commands/lint.js.map +1 -0
- package/dist/commands/modelGen.d.ts +60 -0
- package/dist/commands/modelGen.js +572 -0
- package/dist/commands/modelGen.js.map +1 -0
- package/dist/commands/options.d.ts +9 -0
- package/dist/commands/options.js +48 -0
- package/dist/commands/options.js.map +1 -0
- package/dist/commands/perf.d.ts +9 -0
- package/dist/commands/perf.js +374 -0
- package/dist/commands/perf.js.map +1 -0
- package/dist/commands/pull.d.ts +21 -0
- package/dist/commands/pull.js +115 -0
- package/dist/commands/pull.js.map +1 -0
- package/dist/commands/query.d.ts +9 -0
- package/dist/commands/query.js +377 -0
- package/dist/commands/query.js.map +1 -0
- package/dist/commands/testEvidence.d.ts +237 -0
- package/dist/commands/testEvidence.js +1220 -0
- package/dist/commands/testEvidence.js.map +1 -0
- package/dist/commands/ztdConfig.d.ts +30 -0
- package/dist/commands/ztdConfig.js +224 -0
- package/dist/commands/ztdConfig.js.map +1 -0
- package/dist/commands/ztdConfigCommand.d.ts +18 -0
- package/dist/commands/ztdConfigCommand.js +268 -0
- package/dist/commands/ztdConfigCommand.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +127 -0
- package/dist/index.js.map +1 -0
- package/dist/perf/benchmark.d.ts +277 -0
- package/dist/perf/benchmark.js +2186 -0
- package/dist/perf/benchmark.js.map +1 -0
- package/dist/perf/sandbox.d.ts +73 -0
- package/dist/perf/sandbox.js +492 -0
- package/dist/perf/sandbox.js.map +1 -0
- package/dist/query/analysis.d.ts +20 -0
- package/dist/query/analysis.js +192 -0
- package/dist/query/analysis.js.map +1 -0
- package/dist/query/analyzeColumnUsage.d.ts +10 -0
- package/dist/query/analyzeColumnUsage.js +451 -0
- package/dist/query/analyzeColumnUsage.js.map +1 -0
- package/dist/query/analyzeTableUsage.d.ts +10 -0
- package/dist/query/analyzeTableUsage.js +318 -0
- package/dist/query/analyzeTableUsage.js.map +1 -0
- package/dist/query/execute.d.ts +40 -0
- package/dist/query/execute.js +784 -0
- package/dist/query/execute.js.map +1 -0
- package/dist/query/format.d.ts +1 -0
- package/dist/query/format.js +9 -0
- package/dist/query/format.js.map +1 -0
- package/dist/query/lint.d.ts +29 -0
- package/dist/query/lint.js +340 -0
- package/dist/query/lint.js.map +1 -0
- package/dist/query/location.d.ts +18 -0
- package/dist/query/location.js +204 -0
- package/dist/query/location.js.map +1 -0
- package/dist/query/patch.d.ts +21 -0
- package/dist/query/patch.js +151 -0
- package/dist/query/patch.js.map +1 -0
- package/dist/query/planner.d.ts +31 -0
- package/dist/query/planner.js +134 -0
- package/dist/query/planner.js.map +1 -0
- package/dist/query/report.d.ts +7 -0
- package/dist/query/report.js +19 -0
- package/dist/query/report.js.map +1 -0
- package/dist/query/scalarFilterAnalysis.d.ts +6 -0
- package/dist/query/scalarFilterAnalysis.js +212 -0
- package/dist/query/scalarFilterAnalysis.js.map +1 -0
- package/dist/query/slice.d.ts +17 -0
- package/dist/query/slice.js +204 -0
- package/dist/query/slice.js.map +1 -0
- package/dist/query/structure.d.ts +24 -0
- package/dist/query/structure.js +135 -0
- package/dist/query/structure.js.map +1 -0
- package/dist/query/targets.d.ts +2 -0
- package/dist/query/targets.js +6 -0
- package/dist/query/targets.js.map +1 -0
- package/dist/query/types.d.ts +97 -0
- package/dist/query/types.js +3 -0
- package/dist/query/types.js.map +1 -0
- package/dist/specs/sql/activeOrders.catalog.d.ts +12 -0
- package/dist/specs/sql/activeOrders.catalog.js +36 -0
- package/dist/specs/sql/activeOrders.catalog.js.map +1 -0
- package/dist/specs/sql/usersList.catalog.d.ts +8 -0
- package/dist/specs/sql/usersList.catalog.js +14 -0
- package/dist/specs/sql/usersList.catalog.js.map +1 -0
- package/dist/specs/sqlCatalogDefinition.d.ts +20 -0
- package/dist/specs/sqlCatalogDefinition.js +10 -0
- package/dist/specs/sqlCatalogDefinition.js.map +1 -0
- package/dist/utils/agentCli.d.ts +23 -0
- package/dist/utils/agentCli.js +84 -0
- package/dist/utils/agentCli.js.map +1 -0
- package/dist/utils/agentSafety.d.ts +4 -0
- package/dist/utils/agentSafety.js +50 -0
- package/dist/utils/agentSafety.js.map +1 -0
- package/dist/utils/agents.d.ts +31 -0
- package/dist/utils/agents.js +362 -0
- package/dist/utils/agents.js.map +1 -0
- package/dist/utils/collectSqlFiles.d.ts +9 -0
- package/dist/utils/collectSqlFiles.js +58 -0
- package/dist/utils/collectSqlFiles.js.map +1 -0
- package/dist/utils/connectionSummary.d.ts +3 -0
- package/dist/utils/connectionSummary.js +29 -0
- package/dist/utils/connectionSummary.js.map +1 -0
- package/dist/utils/dbConnection.d.ts +31 -0
- package/dist/utils/dbConnection.js +151 -0
- package/dist/utils/dbConnection.js.map +1 -0
- package/dist/utils/fs.d.ts +1 -0
- package/dist/utils/fs.js +12 -0
- package/dist/utils/fs.js.map +1 -0
- package/dist/utils/modelGenBinder.d.ts +8 -0
- package/dist/utils/modelGenBinder.js +31 -0
- package/dist/utils/modelGenBinder.js.map +1 -0
- package/dist/utils/modelGenRender.d.ts +29 -0
- package/dist/utils/modelGenRender.js +158 -0
- package/dist/utils/modelGenRender.js.map +1 -0
- package/dist/utils/modelGenScanner.d.ts +24 -0
- package/dist/utils/modelGenScanner.js +196 -0
- package/dist/utils/modelGenScanner.js.map +1 -0
- package/dist/utils/modelProbe.d.ts +14 -0
- package/dist/utils/modelProbe.js +121 -0
- package/dist/utils/modelProbe.js.map +1 -0
- package/dist/utils/normalizePulledSchema.d.ts +12 -0
- package/dist/utils/normalizePulledSchema.js +213 -0
- package/dist/utils/normalizePulledSchema.js.map +1 -0
- package/dist/utils/optionalDependencies.d.ts +43 -0
- package/dist/utils/optionalDependencies.js +134 -0
- package/dist/utils/optionalDependencies.js.map +1 -0
- package/dist/utils/pgDump.d.ts +12 -0
- package/dist/utils/pgDump.js +58 -0
- package/dist/utils/pgDump.js.map +1 -0
- package/dist/utils/queryFingerprint.d.ts +14 -0
- package/dist/utils/queryFingerprint.js +34 -0
- package/dist/utils/queryFingerprint.js.map +1 -0
- package/dist/utils/sqlCatalogDiscovery.d.ts +44 -0
- package/dist/utils/sqlCatalogDiscovery.js +166 -0
- package/dist/utils/sqlCatalogDiscovery.js.map +1 -0
- package/dist/utils/sqlCatalogStatements.d.ts +20 -0
- package/dist/utils/sqlCatalogStatements.js +23 -0
- package/dist/utils/sqlCatalogStatements.js.map +1 -0
- package/dist/utils/sqlLintHelpers.d.ts +18 -0
- package/dist/utils/sqlLintHelpers.js +270 -0
- package/dist/utils/sqlLintHelpers.js.map +1 -0
- package/dist/utils/telemetry.d.ts +71 -0
- package/dist/utils/telemetry.js +597 -0
- package/dist/utils/telemetry.js.map +1 -0
- package/dist/utils/typeMapper.d.ts +4 -0
- package/dist/utils/typeMapper.js +79 -0
- package/dist/utils/typeMapper.js.map +1 -0
- package/dist/utils/ztdProjectConfig.d.ts +41 -0
- package/dist/utils/ztdProjectConfig.js +182 -0
- package/dist/utils/ztdProjectConfig.js.map +1 -0
- package/package.json +19 -20
- package/templates/README.md +1 -1
- package/templates/README.webapi.md +1 -1
- package/templates/src/catalog/runtime/_coercions.local-source.ts +0 -30
- package/templates/src/local/sql-contract.ts +0 -1
|
@@ -0,0 +1,572 @@
|
|
|
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.MODEL_GEN_SPAN_NAMES = void 0;
|
|
7
|
+
exports.runModelGen = runModelGen;
|
|
8
|
+
exports.registerModelGenCommand = registerModelGenCommand;
|
|
9
|
+
exports.resolveCliConnectionWithProbeGuidance = resolveCliConnectionWithProbeGuidance;
|
|
10
|
+
exports.buildModelGenConnectionFailure = buildModelGenConnectionFailure;
|
|
11
|
+
exports.bindProbeSql = bindProbeSql;
|
|
12
|
+
exports.resolveModelGenZtdProbeOptions = resolveModelGenZtdProbeOptions;
|
|
13
|
+
exports.resolveSqlContractImportSpecifier = resolveSqlContractImportSpecifier;
|
|
14
|
+
exports.loadModelGenZtdFixtureState = loadModelGenZtdFixtureState;
|
|
15
|
+
exports.normalizeCliPath = normalizeCliPath;
|
|
16
|
+
const node_fs_1 = require("node:fs");
|
|
17
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
18
|
+
const optionalDependencies_1 = require("../utils/optionalDependencies");
|
|
19
|
+
const modelProbe_1 = require("../utils/modelProbe");
|
|
20
|
+
const modelGenBinder_1 = require("../utils/modelGenBinder");
|
|
21
|
+
const modelGenRender_1 = require("../utils/modelGenRender");
|
|
22
|
+
const modelGenScanner_1 = require("../utils/modelGenScanner");
|
|
23
|
+
const connectionOptions_1 = require("./connectionOptions");
|
|
24
|
+
const ztdProjectConfig_1 = require("../utils/ztdProjectConfig");
|
|
25
|
+
const agentCli_1 = require("../utils/agentCli");
|
|
26
|
+
const agentSafety_1 = require("../utils/agentSafety");
|
|
27
|
+
const telemetry_1 = require("../utils/telemetry");
|
|
28
|
+
exports.MODEL_GEN_SPAN_NAMES = {
|
|
29
|
+
resolveInputs: 'resolve-model-gen-inputs',
|
|
30
|
+
placeholderScan: 'placeholder-scan',
|
|
31
|
+
probeClientConnect: 'probe-client-connect',
|
|
32
|
+
probeQueryColumns: 'probe-query-columns',
|
|
33
|
+
typeInference: 'type-inference',
|
|
34
|
+
renderOutput: 'render-generated-output',
|
|
35
|
+
fileEmit: 'file-emit',
|
|
36
|
+
};
|
|
37
|
+
async function runModelGen(sqlFilePath, options) {
|
|
38
|
+
var _a;
|
|
39
|
+
const resolved = (0, telemetry_1.withSpanSync)(exports.MODEL_GEN_SPAN_NAMES.resolveInputs, () => {
|
|
40
|
+
var _a;
|
|
41
|
+
const format = normalizeFormat(options.format);
|
|
42
|
+
const sqlRoot = normalizeRealPath((_a = options.sqlRoot) !== null && _a !== void 0 ? _a : node_path_1.default.join('src', 'sql'));
|
|
43
|
+
const sqlFile = normalizeRealPath(sqlFilePath);
|
|
44
|
+
assertWithinSqlRoot(sqlRoot, sqlFile);
|
|
45
|
+
const relativeSqlFile = (0, modelGenRender_1.normalizeGeneratedSqlFile)(node_path_1.default.relative(sqlRoot, sqlFile));
|
|
46
|
+
const derivedNames = (0, modelGenRender_1.deriveModelGenNames)(relativeSqlFile);
|
|
47
|
+
ensureSpecIdAvailable(node_path_1.default.resolve(process.cwd(), 'src', 'catalog', 'specs'), derivedNames.specId, sqlFile);
|
|
48
|
+
const probeMode = normalizeProbeMode(options.probeMode);
|
|
49
|
+
return {
|
|
50
|
+
derivedNames,
|
|
51
|
+
format,
|
|
52
|
+
probeMode,
|
|
53
|
+
relativeSqlFile,
|
|
54
|
+
sqlFile,
|
|
55
|
+
};
|
|
56
|
+
}, {
|
|
57
|
+
format: (_a = options.format) !== null && _a !== void 0 ? _a : 'spec',
|
|
58
|
+
hasOut: Boolean(options.out),
|
|
59
|
+
});
|
|
60
|
+
(0, telemetry_1.emitDecisionEvent)('model-gen.probe-mode', {
|
|
61
|
+
probeMode: resolved.probeMode,
|
|
62
|
+
});
|
|
63
|
+
const placeholderPlan = (0, telemetry_1.withSpanSync)(exports.MODEL_GEN_SPAN_NAMES.placeholderScan, () => {
|
|
64
|
+
const sqlSource = (0, node_fs_1.readFileSync)(resolved.sqlFile, 'utf8');
|
|
65
|
+
const scan = scanOrThrow(sqlSource, resolved.sqlFile, Boolean(options.allowPositional));
|
|
66
|
+
const bound = bindProbeSql(sqlSource, scan, Boolean(options.allowPositional));
|
|
67
|
+
if (options.debugProbe) {
|
|
68
|
+
printProbeDebug(resolved.sqlFile, scan.mode, bound.boundSql, bound.orderedParamNames, Boolean(options.allowPositional), resolved.probeMode, options.ddlDir);
|
|
69
|
+
}
|
|
70
|
+
return {
|
|
71
|
+
bound,
|
|
72
|
+
scan,
|
|
73
|
+
};
|
|
74
|
+
}, {
|
|
75
|
+
allowPositional: Boolean(options.allowPositional),
|
|
76
|
+
});
|
|
77
|
+
const probeClient = await (0, telemetry_1.withSpan)(exports.MODEL_GEN_SPAN_NAMES.probeClientConnect, async () => {
|
|
78
|
+
const connection = resolveCliConnectionWithProbeGuidance(options, resolved.probeMode);
|
|
79
|
+
return createProbeClient(resolved.probeMode, connection.url, options);
|
|
80
|
+
}, {
|
|
81
|
+
probeMode: resolved.probeMode,
|
|
82
|
+
});
|
|
83
|
+
try {
|
|
84
|
+
const probedColumns = await (0, telemetry_1.withSpan)(exports.MODEL_GEN_SPAN_NAMES.probeQueryColumns, async () => {
|
|
85
|
+
return (0, modelProbe_1.probeQueryColumns)(probeClient.queryable, placeholderPlan.bound.boundSql, placeholderPlan.bound.orderedParamNames.map(() => null));
|
|
86
|
+
}, {
|
|
87
|
+
paramCount: placeholderPlan.bound.orderedParamNames.length,
|
|
88
|
+
probeMode: resolved.probeMode,
|
|
89
|
+
});
|
|
90
|
+
const columns = (0, telemetry_1.withSpanSync)(exports.MODEL_GEN_SPAN_NAMES.typeInference, () => {
|
|
91
|
+
const inferredColumns = probedColumns.map((column) => ({
|
|
92
|
+
columnName: column.columnName,
|
|
93
|
+
propertyName: (0, modelGenRender_1.toModelPropertyName)(column.columnName),
|
|
94
|
+
tsType: column.tsType
|
|
95
|
+
}));
|
|
96
|
+
assertUniqueProperties(inferredColumns.map((column) => column.propertyName));
|
|
97
|
+
return inferredColumns;
|
|
98
|
+
}, {
|
|
99
|
+
columnCount: probedColumns.length,
|
|
100
|
+
});
|
|
101
|
+
const rendered = (0, telemetry_1.withSpanSync)(exports.MODEL_GEN_SPAN_NAMES.renderOutput, () => {
|
|
102
|
+
return (0, modelGenRender_1.renderModelGenFile)({
|
|
103
|
+
command: buildCommandText(sqlFilePath, options),
|
|
104
|
+
format: resolved.format,
|
|
105
|
+
sqlContractImport: resolveSqlContractImportSpecifier(options),
|
|
106
|
+
sqlFile: resolved.relativeSqlFile,
|
|
107
|
+
specId: resolved.derivedNames.specId,
|
|
108
|
+
interfaceName: resolved.derivedNames.interfaceName,
|
|
109
|
+
mappingName: resolved.derivedNames.mappingName,
|
|
110
|
+
specName: resolved.derivedNames.specName,
|
|
111
|
+
placeholderMode: placeholderPlan.scan.mode,
|
|
112
|
+
allowPositional: Boolean(options.allowPositional),
|
|
113
|
+
orderedParamNames: placeholderPlan.bound.orderedParamNames,
|
|
114
|
+
columns
|
|
115
|
+
});
|
|
116
|
+
}, {
|
|
117
|
+
format: resolved.format,
|
|
118
|
+
});
|
|
119
|
+
if (options.out && !options.dryRun) {
|
|
120
|
+
const outFile = options.out;
|
|
121
|
+
(0, telemetry_1.withSpanSync)(exports.MODEL_GEN_SPAN_NAMES.fileEmit, () => {
|
|
122
|
+
const absoluteOut = (0, agentSafety_1.validateProjectPath)(outFile, '--out');
|
|
123
|
+
(0, node_fs_1.mkdirSync)(node_path_1.default.dirname(absoluteOut), { recursive: true });
|
|
124
|
+
(0, node_fs_1.writeFileSync)(absoluteOut, rendered, 'utf8');
|
|
125
|
+
}, {
|
|
126
|
+
outFile: normalizeCliPath(outFile),
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
return rendered;
|
|
130
|
+
}
|
|
131
|
+
finally {
|
|
132
|
+
await probeClient.close();
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
function registerModelGenCommand(program) {
|
|
136
|
+
program
|
|
137
|
+
.command('model-gen <sql-file>')
|
|
138
|
+
.description('Generate QuerySpec output scaffolds from ZTD-backed inspection or explicit target inspection metadata (prefer --probe-mode ztd for the fast loop; positional requires --allow-positional)')
|
|
139
|
+
.option('--out <file>', 'Write the generated scaffold to a TypeScript file')
|
|
140
|
+
.option('--format <format>', 'Output format (spec, row-mapping, interface)', 'spec')
|
|
141
|
+
.option('--sql-root <dir>', 'SQL root used to derive sqlFile and spec id', node_path_1.default.join('src', 'sql'))
|
|
142
|
+
.option('--allow-positional', 'Allow legacy positional placeholders ($1, $2, ...) for this run')
|
|
143
|
+
.option('--probe-mode <mode>', 'Inspection source: live or ztd (default: live for backward compatibility; prefer ztd for the fast loop)', 'live')
|
|
144
|
+
.option('--ddl-dir <dir>', 'DDL directory override for --probe-mode ztd (default: ztd.config.json ddlDir)')
|
|
145
|
+
.option('--import-style <style>', 'Generated sql-contract import style: package or relative (default: package)', 'package')
|
|
146
|
+
.option('--import-from <specifier>', 'Override the module specifier used for sql-contract imports in generated files')
|
|
147
|
+
.option('--debug-probe', 'Print the bound inspection SQL and ordered parameter names to stderr before inspection')
|
|
148
|
+
.option('--dry-run', 'Validate inspection and render output metadata without writing the generated file')
|
|
149
|
+
.option('--describe-output', 'Describe the generated artifact contract and exit')
|
|
150
|
+
.option('--json <payload>', 'Pass model-gen options as a JSON object')
|
|
151
|
+
.option('--url <databaseUrl>', 'Explicit target database URL for live inspection (preferred over --db-*)')
|
|
152
|
+
.option('--db-host <host>', 'Explicit target database host when --url is not used')
|
|
153
|
+
.option('--db-port <port>', 'Explicit target database port (defaults to 5432)')
|
|
154
|
+
.option('--db-user <user>', 'Explicit target database user')
|
|
155
|
+
.option('--db-password <password>', 'Explicit target database password')
|
|
156
|
+
.option('--db-name <name>', 'Explicit target database name')
|
|
157
|
+
.action(async (sqlFile, options) => {
|
|
158
|
+
var _a;
|
|
159
|
+
const merged = options.json ? { ...options, ...(0, agentCli_1.parseJsonPayload)(options.json, '--json') } : options;
|
|
160
|
+
if (merged.describeOutput) {
|
|
161
|
+
const payload = {
|
|
162
|
+
schemaVersion: 1,
|
|
163
|
+
command: 'model-gen',
|
|
164
|
+
fileRules: {
|
|
165
|
+
requiresSqlRootContainment: true,
|
|
166
|
+
detectsStableSpecIdCollisions: true
|
|
167
|
+
},
|
|
168
|
+
outputs: {
|
|
169
|
+
spec: 'TypeScript QuerySpec scaffold',
|
|
170
|
+
'row-mapping': 'TypeScript row mapping object',
|
|
171
|
+
interface: 'TypeScript row interface'
|
|
172
|
+
},
|
|
173
|
+
writeBehavior: merged.out
|
|
174
|
+
? { writesTo: (0, agentSafety_1.validateProjectPath)(String(merged.out), '--out'), dryRun: Boolean(merged.dryRun) }
|
|
175
|
+
: { writesTo: null, dryRun: Boolean(merged.dryRun) }
|
|
176
|
+
};
|
|
177
|
+
if ((0, agentCli_1.isJsonOutput)()) {
|
|
178
|
+
(0, agentCli_1.writeCommandEnvelope)('model-gen describe-output', payload);
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
process.stdout.write(`${JSON.stringify(payload, null, 2)}\n`);
|
|
182
|
+
}
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
const rendered = await runModelGen((0, agentSafety_1.validateProjectPath)(sqlFile, '<sql-file>'), {
|
|
186
|
+
...merged,
|
|
187
|
+
ddlDir: merged.ddlDir ? (0, agentSafety_1.validateProjectPath)(String(merged.ddlDir), '--ddl-dir') : undefined,
|
|
188
|
+
importFrom: merged.importFrom ? validateImportFrom(String(merged.importFrom)) : undefined,
|
|
189
|
+
out: merged.out ? (0, agentSafety_1.validateProjectPath)(String(merged.out), '--out') : undefined
|
|
190
|
+
});
|
|
191
|
+
if ((0, agentCli_1.isJsonOutput)()) {
|
|
192
|
+
(0, agentCli_1.writeCommandEnvelope)('model-gen', {
|
|
193
|
+
schemaVersion: 1,
|
|
194
|
+
dryRun: Boolean(merged.dryRun),
|
|
195
|
+
outFile: merged.out ? (0, agentSafety_1.validateProjectPath)(String(merged.out), '--out') : null,
|
|
196
|
+
bytes: rendered.length,
|
|
197
|
+
format: (_a = merged.format) !== null && _a !== void 0 ? _a : 'spec'
|
|
198
|
+
});
|
|
199
|
+
return;
|
|
200
|
+
}
|
|
201
|
+
if (!merged.out) {
|
|
202
|
+
process.stdout.write(rendered);
|
|
203
|
+
}
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
function resolveCliConnectionWithProbeGuidance(options, probeMode) {
|
|
207
|
+
try {
|
|
208
|
+
if (probeMode === 'ztd') {
|
|
209
|
+
return (0, connectionOptions_1.resolveZtdOwnedCliConnection)();
|
|
210
|
+
}
|
|
211
|
+
return (0, connectionOptions_1.resolveExplicitCliConnection)(options);
|
|
212
|
+
}
|
|
213
|
+
catch (error) {
|
|
214
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
215
|
+
if (message.includes('ZTD_TEST_DATABASE_URL is required') && probeMode === 'ztd') {
|
|
216
|
+
throw new Error([
|
|
217
|
+
message,
|
|
218
|
+
'model-gen --probe-mode ztd still needs a reachable PostgreSQL connection for ZTD-owned inspection.',
|
|
219
|
+
'Start Docker/service and provide ZTD_TEST_DATABASE_URL, then rerun.'
|
|
220
|
+
].join('\n'));
|
|
221
|
+
}
|
|
222
|
+
throw error;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
function resolveDbConnectTimeoutMs() {
|
|
226
|
+
var _a;
|
|
227
|
+
const raw = (_a = process.env.ZTD_DB_CONNECT_TIMEOUT_MS) === null || _a === void 0 ? void 0 : _a.trim();
|
|
228
|
+
if (!raw) {
|
|
229
|
+
return 3000;
|
|
230
|
+
}
|
|
231
|
+
const parsed = Number(raw);
|
|
232
|
+
if (!Number.isFinite(parsed) || parsed <= 0) {
|
|
233
|
+
return 3000;
|
|
234
|
+
}
|
|
235
|
+
return Math.floor(parsed);
|
|
236
|
+
}
|
|
237
|
+
function buildModelGenConnectionFailure(error, probeMode) {
|
|
238
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
239
|
+
const modeHint = probeMode === 'ztd'
|
|
240
|
+
? 'Ensure ZTD_TEST_DATABASE_URL points to a reachable PostgreSQL instance before ZTD-owned inspection.'
|
|
241
|
+
: 'Ensure --url or a complete --db-* flag set points to a reachable PostgreSQL instance for explicit target inspection.';
|
|
242
|
+
return new Error(`Failed to connect to PostgreSQL for model-gen. ${modeHint} (${message})`);
|
|
243
|
+
}
|
|
244
|
+
function normalizeFormat(format) {
|
|
245
|
+
const normalized = (format !== null && format !== void 0 ? format : 'spec').trim().toLowerCase();
|
|
246
|
+
if (normalized === 'spec' || normalized === 'row-mapping' || normalized === 'interface') {
|
|
247
|
+
return normalized;
|
|
248
|
+
}
|
|
249
|
+
throw new Error(`Unsupported format "${format}". Use one of: spec, row-mapping, interface.`);
|
|
250
|
+
}
|
|
251
|
+
function normalizeProbeMode(value) {
|
|
252
|
+
const normalized = (value !== null && value !== void 0 ? value : 'live').trim().toLowerCase();
|
|
253
|
+
if (normalized === 'live' || normalized === 'ztd') {
|
|
254
|
+
return normalized;
|
|
255
|
+
}
|
|
256
|
+
throw new Error(`Unsupported probe mode "${value}". Use one of: live, ztd.`);
|
|
257
|
+
}
|
|
258
|
+
function normalizeImportStyle(value) {
|
|
259
|
+
const normalized = (value !== null && value !== void 0 ? value : 'package').trim().toLowerCase();
|
|
260
|
+
if (normalized === 'package' || normalized === 'relative') {
|
|
261
|
+
return normalized;
|
|
262
|
+
}
|
|
263
|
+
throw new Error(`Unsupported import style "${value}". Use one of: package, relative.`);
|
|
264
|
+
}
|
|
265
|
+
function validateImportFrom(value) {
|
|
266
|
+
const trimmed = (0, agentSafety_1.validateResourceIdentifier)(value, '--import-from');
|
|
267
|
+
return trimmed;
|
|
268
|
+
}
|
|
269
|
+
function normalizeRealPath(targetPath) {
|
|
270
|
+
const absolute = node_path_1.default.resolve(process.cwd(), targetPath);
|
|
271
|
+
if (!(0, node_fs_1.existsSync)(absolute)) {
|
|
272
|
+
throw new Error(`File or directory does not exist: ${targetPath}`);
|
|
273
|
+
}
|
|
274
|
+
return (0, node_fs_1.realpathSync)(absolute);
|
|
275
|
+
}
|
|
276
|
+
function assertWithinSqlRoot(sqlRoot, sqlFile) {
|
|
277
|
+
const relative = node_path_1.default.relative(sqlRoot, sqlFile);
|
|
278
|
+
if (relative.startsWith('..') || node_path_1.default.isAbsolute(relative)) {
|
|
279
|
+
throw new Error([
|
|
280
|
+
`The SQL file is outside the configured sql root: ${sqlFile}.`,
|
|
281
|
+
'model-gen derives sqlFile and spec id relative to --sql-root by policy.',
|
|
282
|
+
`Move the file under ${sqlRoot} or pass the correct --sql-root value.`
|
|
283
|
+
].join('\n'));
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
function scanOrThrow(sqlSource, sqlFile, allowPositional) {
|
|
287
|
+
try {
|
|
288
|
+
const scan = (0, modelGenScanner_1.scanModelGenSql)(sqlSource);
|
|
289
|
+
if (scan.mode === 'positional' && !allowPositional) {
|
|
290
|
+
throw new Error([
|
|
291
|
+
`Detected positional placeholders ($1, $2, ...) in ${sqlFile}.`,
|
|
292
|
+
'SQL asset files in this workflow must use named parameters (:name) by policy.',
|
|
293
|
+
'Rewrite the SQL to :name placeholders, or rerun ztd model-gen with --allow-positional for legacy SQL.'
|
|
294
|
+
].join('\n'));
|
|
295
|
+
}
|
|
296
|
+
return scan;
|
|
297
|
+
}
|
|
298
|
+
catch (error) {
|
|
299
|
+
if (error instanceof modelGenScanner_1.ModelGenSqlScanError) {
|
|
300
|
+
const detail = error.token.startsWith(':')
|
|
301
|
+
? 'model-gen currently supports named parameters matching [A-Za-z_][A-Za-z0-9_]*.'
|
|
302
|
+
: 'model-gen currently supports names-first SQL assets using :name only.';
|
|
303
|
+
throw new Error([
|
|
304
|
+
`${error.message.replace(/\.$/u, '')} in ${sqlFile}.`,
|
|
305
|
+
detail,
|
|
306
|
+
'Rename the parameter to a supported :name form and rerun ztd model-gen.'
|
|
307
|
+
].join('\n'));
|
|
308
|
+
}
|
|
309
|
+
throw error;
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
function bindProbeSql(sqlSource, scan, allowPositional) {
|
|
313
|
+
if (scan.mode === 'named') {
|
|
314
|
+
return (0, modelGenBinder_1.bindModelGenNamedSql)(sqlSource);
|
|
315
|
+
}
|
|
316
|
+
if (scan.mode === 'positional') {
|
|
317
|
+
if (!allowPositional) {
|
|
318
|
+
throw new Error('Positional placeholders are not allowed without --allow-positional.');
|
|
319
|
+
}
|
|
320
|
+
// Preserve the highest positional slot so sparse placeholders still receive
|
|
321
|
+
// a params array that matches PostgreSQL's indexed placeholder contract.
|
|
322
|
+
const maxPlaceholderIndex = scan.positionalTokens.reduce((max, token) => {
|
|
323
|
+
const numericIndex = Number(token.token.slice(1));
|
|
324
|
+
return Number.isFinite(numericIndex) ? Math.max(max, numericIndex) : max;
|
|
325
|
+
}, 0);
|
|
326
|
+
const orderedParamNames = Array.from({ length: maxPlaceholderIndex }, (_, index) => `$${index + 1}`);
|
|
327
|
+
return { boundSql: sqlSource, orderedParamNames };
|
|
328
|
+
}
|
|
329
|
+
return { boundSql: sqlSource, orderedParamNames: [] };
|
|
330
|
+
}
|
|
331
|
+
async function createProbeClient(probeMode, connectionUrl, options) {
|
|
332
|
+
const pgModule = await (0, optionalDependencies_1.ensurePgModule)();
|
|
333
|
+
const pgClient = new pgModule.Client({
|
|
334
|
+
connectionString: connectionUrl,
|
|
335
|
+
connectionTimeoutMillis: resolveDbConnectTimeoutMs()
|
|
336
|
+
});
|
|
337
|
+
await pgClient.connect().catch((error) => {
|
|
338
|
+
throw buildModelGenConnectionFailure(error, probeMode);
|
|
339
|
+
});
|
|
340
|
+
if (probeMode === 'live') {
|
|
341
|
+
return {
|
|
342
|
+
queryable: pgClient,
|
|
343
|
+
close: async () => {
|
|
344
|
+
await pgClient.end();
|
|
345
|
+
}
|
|
346
|
+
};
|
|
347
|
+
}
|
|
348
|
+
try {
|
|
349
|
+
const adapterModule = await (0, optionalDependencies_1.ensureAdapterNodePgModule)();
|
|
350
|
+
const ztdProbeOptions = resolveModelGenZtdProbeOptions(options);
|
|
351
|
+
const ztdFixtureState = await loadModelGenZtdFixtureState(ztdProbeOptions);
|
|
352
|
+
const testkitClient = adapterModule.createPgTestkitClient({
|
|
353
|
+
connectionFactory: () => pgClient,
|
|
354
|
+
tableDefinitions: ztdFixtureState.tableDefinitions,
|
|
355
|
+
tableRows: ztdFixtureState.tableRows,
|
|
356
|
+
defaultSchema: ztdProbeOptions.defaultSchema,
|
|
357
|
+
searchPath: ztdProbeOptions.searchPath
|
|
358
|
+
});
|
|
359
|
+
return {
|
|
360
|
+
queryable: testkitClient,
|
|
361
|
+
close: async () => {
|
|
362
|
+
await testkitClient.close();
|
|
363
|
+
}
|
|
364
|
+
};
|
|
365
|
+
}
|
|
366
|
+
catch (error) {
|
|
367
|
+
await pgClient.end();
|
|
368
|
+
throw error;
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
function resolveModelGenZtdProbeOptions(options) {
|
|
372
|
+
var _a, _b;
|
|
373
|
+
const rootDir = (_a = options.rootDir) !== null && _a !== void 0 ? _a : process.cwd();
|
|
374
|
+
const config = (0, ztdProjectConfig_1.loadZtdProjectConfig)(rootDir);
|
|
375
|
+
const configuredDir = (_b = options.ddlDir) !== null && _b !== void 0 ? _b : config.ddlDir;
|
|
376
|
+
const absoluteDir = node_path_1.default.resolve(rootDir, configuredDir);
|
|
377
|
+
if (!(0, node_fs_1.existsSync)(absoluteDir)) {
|
|
378
|
+
throw new Error([
|
|
379
|
+
`The DDL directory for --probe-mode ztd was not found: ${configuredDir}.`,
|
|
380
|
+
'model-gen ztd mode needs DDL metadata so it can rewrite the probe query without physical tables.',
|
|
381
|
+
'Create the directory, update ztd.config.json ddlDir, or pass --ddl-dir explicitly.'
|
|
382
|
+
].join('\n'));
|
|
383
|
+
}
|
|
384
|
+
return {
|
|
385
|
+
ddlDirectories: [absoluteDir],
|
|
386
|
+
defaultSchema: config.ddl.defaultSchema,
|
|
387
|
+
searchPath: config.ddl.searchPath
|
|
388
|
+
};
|
|
389
|
+
}
|
|
390
|
+
function resolveSqlContractImportSpecifier(options) {
|
|
391
|
+
var _a;
|
|
392
|
+
const rootDir = (_a = options.rootDir) !== null && _a !== void 0 ? _a : process.cwd();
|
|
393
|
+
if (options.importFrom) {
|
|
394
|
+
return normalizeImportSpecifier(options.importFrom, options.out, rootDir);
|
|
395
|
+
}
|
|
396
|
+
const importStyle = normalizeImportStyle(options.importStyle);
|
|
397
|
+
if (importStyle === 'package') {
|
|
398
|
+
return '@rawsql-ts/sql-contract';
|
|
399
|
+
}
|
|
400
|
+
if (!options.out) {
|
|
401
|
+
throw new Error('Relative sql-contract imports require --out so model-gen can compute the generated file location. Pass --out or use --import-from explicitly.');
|
|
402
|
+
}
|
|
403
|
+
const defaultLocalShim = resolveExistingModulePath(node_path_1.default.resolve(rootDir, 'src', 'local', 'sql-contract'));
|
|
404
|
+
if (!defaultLocalShim) {
|
|
405
|
+
throw new Error('Relative sql-contract imports expect src/local/sql-contract.ts (or .js/.mts/.cts) to exist. Create the shim or pass --import-from explicitly.');
|
|
406
|
+
}
|
|
407
|
+
return normalizeImportSpecifier(defaultLocalShim, options.out, rootDir);
|
|
408
|
+
}
|
|
409
|
+
function normalizeImportSpecifier(specifier, outFile, rootDir) {
|
|
410
|
+
if (!looksLikeFilesystemPath(specifier)) {
|
|
411
|
+
const rootedCandidate = resolveExistingModulePath(node_path_1.default.resolve(rootDir, specifier));
|
|
412
|
+
if (!rootedCandidate) {
|
|
413
|
+
return specifier;
|
|
414
|
+
}
|
|
415
|
+
specifier = rootedCandidate;
|
|
416
|
+
}
|
|
417
|
+
if (!outFile) {
|
|
418
|
+
throw new Error('Filesystem import targets require --out so model-gen can compute a relative module specifier. Pass --out or use a bare package specifier.');
|
|
419
|
+
}
|
|
420
|
+
const resolvedTarget = resolveExistingModulePath(node_path_1.default.isAbsolute(specifier) ? specifier : node_path_1.default.resolve(rootDir, specifier));
|
|
421
|
+
if (!resolvedTarget) {
|
|
422
|
+
throw new Error(`The sql-contract import target was not found: ${specifier}`);
|
|
423
|
+
}
|
|
424
|
+
const absoluteOut = node_path_1.default.resolve(rootDir, outFile);
|
|
425
|
+
const fromDir = node_path_1.default.dirname(absoluteOut);
|
|
426
|
+
const relativePath = node_path_1.default.relative(fromDir, resolvedTarget).replace(/\\/g, '/');
|
|
427
|
+
const withoutExtension = relativePath.replace(/\.(?:[cm]?ts|[cm]?js)$/iu, '');
|
|
428
|
+
return withoutExtension.startsWith('.') ? withoutExtension : `./${withoutExtension}`;
|
|
429
|
+
}
|
|
430
|
+
function looksLikeFilesystemPath(specifier) {
|
|
431
|
+
return specifier.startsWith('.') || specifier.startsWith('/') || /^[A-Za-z]:[\\/]/u.test(specifier);
|
|
432
|
+
}
|
|
433
|
+
function resolveExistingModulePath(basePath) {
|
|
434
|
+
const candidates = [
|
|
435
|
+
basePath,
|
|
436
|
+
`${basePath}.ts`,
|
|
437
|
+
`${basePath}.tsx`,
|
|
438
|
+
`${basePath}.mts`,
|
|
439
|
+
`${basePath}.cts`,
|
|
440
|
+
`${basePath}.js`,
|
|
441
|
+
`${basePath}.mjs`,
|
|
442
|
+
`${basePath}.cjs`,
|
|
443
|
+
node_path_1.default.join(basePath, 'index.ts'),
|
|
444
|
+
node_path_1.default.join(basePath, 'index.tsx'),
|
|
445
|
+
node_path_1.default.join(basePath, 'index.mts'),
|
|
446
|
+
node_path_1.default.join(basePath, 'index.cts'),
|
|
447
|
+
node_path_1.default.join(basePath, 'index.js'),
|
|
448
|
+
node_path_1.default.join(basePath, 'index.mjs'),
|
|
449
|
+
node_path_1.default.join(basePath, 'index.cjs'),
|
|
450
|
+
];
|
|
451
|
+
for (const candidate of candidates) {
|
|
452
|
+
if ((0, node_fs_1.existsSync)(candidate)) {
|
|
453
|
+
return candidate;
|
|
454
|
+
}
|
|
455
|
+
}
|
|
456
|
+
return null;
|
|
457
|
+
}
|
|
458
|
+
async function loadModelGenZtdFixtureState(options) {
|
|
459
|
+
const testkitCore = await (0, optionalDependencies_1.ensureTestkitCoreModule)();
|
|
460
|
+
// Reuse the shared schema resolver so unqualified references follow the same searchPath precedence as runtime ZTD rewrites.
|
|
461
|
+
const tableNameResolver = new testkitCore.TableNameResolver({
|
|
462
|
+
defaultSchema: options.defaultSchema,
|
|
463
|
+
searchPath: options.searchPath,
|
|
464
|
+
});
|
|
465
|
+
const loader = new testkitCore.DdlFixtureLoader({
|
|
466
|
+
directories: options.ddlDirectories,
|
|
467
|
+
tableNameResolver,
|
|
468
|
+
});
|
|
469
|
+
const ddlFixtures = loader.getFixtures();
|
|
470
|
+
return {
|
|
471
|
+
tableDefinitions: ddlFixtures.map((fixture) => fixture.tableDefinition),
|
|
472
|
+
tableRows: ddlFixtures.map((fixture) => {
|
|
473
|
+
var _a;
|
|
474
|
+
return ({
|
|
475
|
+
tableName: fixture.tableDefinition.name,
|
|
476
|
+
rows: (_a = fixture.rows) !== null && _a !== void 0 ? _a : [],
|
|
477
|
+
});
|
|
478
|
+
}),
|
|
479
|
+
};
|
|
480
|
+
}
|
|
481
|
+
function printProbeDebug(sqlFile, mode, boundSql, orderedParamNames, allowPositional, probeMode, ddlDir) {
|
|
482
|
+
const lines = [
|
|
483
|
+
'[model-gen] inspection debug',
|
|
484
|
+
`sqlFile: ${normalizeCliPath(sqlFile)}`,
|
|
485
|
+
`placeholderMode: ${mode}`,
|
|
486
|
+
`allowPositional: ${allowPositional}`,
|
|
487
|
+
`probeMode: ${probeMode}`,
|
|
488
|
+
`orderedParamNames: ${JSON.stringify(orderedParamNames)}`,
|
|
489
|
+
'boundSql:',
|
|
490
|
+
boundSql,
|
|
491
|
+
`inspectionSql: ${(0, modelProbe_1.buildProbeSql)(boundSql)}`
|
|
492
|
+
];
|
|
493
|
+
if (probeMode === 'ztd') {
|
|
494
|
+
const ztdOptions = resolveModelGenZtdProbeOptions({ ddlDir });
|
|
495
|
+
lines.push(`ddlDir: ${normalizeCliPath(ddlDir !== null && ddlDir !== void 0 ? ddlDir : (0, ztdProjectConfig_1.loadZtdProjectConfig)().ddlDir)}`);
|
|
496
|
+
lines.push(`defaultSchema: ${ztdOptions.defaultSchema}`);
|
|
497
|
+
lines.push(`searchPath: ${JSON.stringify(ztdOptions.searchPath)}`);
|
|
498
|
+
}
|
|
499
|
+
process.stderr.write(`${lines.join('\n')}\n`);
|
|
500
|
+
}
|
|
501
|
+
function buildCommandText(sqlFilePath, options) {
|
|
502
|
+
const segments = ['ztd model-gen', normalizeCliPath(sqlFilePath)];
|
|
503
|
+
if (options.out) {
|
|
504
|
+
segments.push(`--out ${normalizeCliPath(options.out)}`);
|
|
505
|
+
}
|
|
506
|
+
if (options.format && options.format !== 'spec') {
|
|
507
|
+
segments.push(`--format ${options.format}`);
|
|
508
|
+
}
|
|
509
|
+
if (options.sqlRoot && options.sqlRoot !== node_path_1.default.join('src', 'sql')) {
|
|
510
|
+
segments.push(`--sql-root ${normalizeCliPath(options.sqlRoot)}`);
|
|
511
|
+
}
|
|
512
|
+
if (options.allowPositional) {
|
|
513
|
+
segments.push('--allow-positional');
|
|
514
|
+
}
|
|
515
|
+
if (options.probeMode && options.probeMode !== 'live') {
|
|
516
|
+
segments.push(`--probe-mode ${options.probeMode}`);
|
|
517
|
+
}
|
|
518
|
+
if (options.ddlDir) {
|
|
519
|
+
segments.push(`--ddl-dir ${normalizeCliPath(options.ddlDir)}`);
|
|
520
|
+
}
|
|
521
|
+
if (options.importStyle && options.importStyle !== 'package') {
|
|
522
|
+
segments.push(`--import-style ${options.importStyle}`);
|
|
523
|
+
}
|
|
524
|
+
if (options.importFrom) {
|
|
525
|
+
segments.push(`--import-from ${normalizeCliPath(options.importFrom)}`);
|
|
526
|
+
}
|
|
527
|
+
return segments.join(' ');
|
|
528
|
+
}
|
|
529
|
+
function normalizeCliPath(filePath) {
|
|
530
|
+
return filePath.replace(/\\/g, '/');
|
|
531
|
+
}
|
|
532
|
+
function ensureSpecIdAvailable(specsRoot, specId, sourceSqlFile) {
|
|
533
|
+
if (!(0, node_fs_1.existsSync)(specsRoot)) {
|
|
534
|
+
return;
|
|
535
|
+
}
|
|
536
|
+
const stack = [specsRoot];
|
|
537
|
+
while (stack.length > 0) {
|
|
538
|
+
const current = stack.pop();
|
|
539
|
+
const entries = (0, node_fs_1.readdirSync)(current);
|
|
540
|
+
for (const entry of entries) {
|
|
541
|
+
const absolute = node_path_1.default.join(current, entry);
|
|
542
|
+
const stat = (0, node_fs_1.statSync)(absolute);
|
|
543
|
+
if (stat.isDirectory()) {
|
|
544
|
+
stack.push(absolute);
|
|
545
|
+
continue;
|
|
546
|
+
}
|
|
547
|
+
if (!/\.(?:ts|js|mts|cts|json)$/iu.test(entry) || /\.test\./iu.test(entry)) {
|
|
548
|
+
continue;
|
|
549
|
+
}
|
|
550
|
+
const matches = (0, node_fs_1.readFileSync)(absolute, 'utf8').matchAll(/id\s*:\s*['"`]([^'"`]+)['"`]/g);
|
|
551
|
+
for (const match of matches) {
|
|
552
|
+
if (match[1] === specId) {
|
|
553
|
+
throw new Error([
|
|
554
|
+
`Generated spec id "${specId}" conflicts with an existing spec.`,
|
|
555
|
+
'model-gen keeps spec ids stable and does not auto-rename collisions.',
|
|
556
|
+
`Rename the SQL file or adjust the --sql-root layout and rerun ztd model-gen for ${sourceSqlFile}.`
|
|
557
|
+
].join('\n'));
|
|
558
|
+
}
|
|
559
|
+
}
|
|
560
|
+
}
|
|
561
|
+
}
|
|
562
|
+
}
|
|
563
|
+
function assertUniqueProperties(properties) {
|
|
564
|
+
const seen = new Set();
|
|
565
|
+
for (const property of properties) {
|
|
566
|
+
if (seen.has(property)) {
|
|
567
|
+
throw new Error(`Duplicate generated property name "${property}" detected. Rename the SQL column aliases before rerunning model-gen.`);
|
|
568
|
+
}
|
|
569
|
+
seen.add(property);
|
|
570
|
+
}
|
|
571
|
+
}
|
|
572
|
+
//# sourceMappingURL=modelGen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modelGen.js","sourceRoot":"","sources":["../../src/commands/modelGen.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare const DEFAULT_EXTENSIONS: string[];
|
|
2
|
+
export declare const DEFAULT_DDL_DIRECTORY = "ztd/ddl";
|
|
3
|
+
export declare const DEFAULT_TESTS_DIRECTORY = "tests";
|
|
4
|
+
export declare function collectDirectories(value: string, previous: string[]): string[];
|
|
5
|
+
export declare function collectValues(value: string, previous: string[]): string[];
|
|
6
|
+
export declare function normalizeDirectoryList(userDirectories: string[] | undefined, fallback: string): string[];
|
|
7
|
+
export declare function parseExtensions(value: string | string[]): string[];
|
|
8
|
+
export declare function resolveExtensions(input: string[] | undefined, fallback: string[]): string[];
|
|
9
|
+
export declare function parseCsvList(value: string): string[];
|