@rawsql-ts/ztd-cli 0.17.0 → 0.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +532 -366
- package/package.json +26 -15
- package/templates/.editorconfig +16 -16
- package/templates/.prettierignore +2 -2
- package/templates/.prettierrc +24 -24
- package/templates/AGENTS.md +30 -52
- package/templates/CONTEXT.md +11 -0
- package/templates/CONTEXT.webapi.md +11 -0
- package/templates/DESIGN.md +17 -0
- package/templates/DEV_NOTES.md +14 -0
- package/templates/PROMPT_DOGFOOD.webapi.md +49 -0
- package/templates/README.md +46 -14
- package/templates/README.webapi.md +38 -0
- package/templates/scripts/local-source-guard.mjs +189 -0
- package/templates/src/AGENTS.md +26 -26
- package/templates/src/application/AGENTS.md +15 -0
- package/templates/src/application/README.md +6 -0
- package/templates/src/catalog/AGENTS.md +28 -37
- package/templates/src/catalog/runtime/AGENTS.md +28 -75
- package/templates/src/catalog/runtime/_coercions.local-source.ts +30 -0
- package/templates/src/catalog/runtime/_coercions.ts +30 -1
- package/templates/src/catalog/runtime/_smoke.runtime.ts +21 -21
- package/templates/src/catalog/specs/AGENTS.md +41 -48
- package/templates/src/catalog/specs/_smoke.spec.arktype.ts +21 -21
- package/templates/src/catalog/specs/_smoke.spec.zod.ts +20 -20
- package/templates/src/db/sql-client-adapters.ts +32 -0
- package/templates/src/db/sql-client.ts +24 -24
- package/templates/src/domain/AGENTS.md +15 -0
- package/templates/src/domain/README.md +6 -0
- package/templates/src/infrastructure/AGENTS.md +14 -0
- package/templates/src/infrastructure/README.md +6 -0
- package/templates/src/infrastructure/db/AGENTS.md +14 -0
- package/templates/src/infrastructure/db/sql-client-adapters.ts +34 -0
- package/templates/{dist/ztd-cli/templates/src → src/infrastructure}/db/sql-client.ts +3 -3
- package/templates/src/infrastructure/persistence/AGENTS.md +18 -0
- package/templates/src/infrastructure/persistence/README.md +8 -0
- package/templates/src/infrastructure/persistence/repositories/AGENTS.md +17 -0
- package/templates/src/infrastructure/persistence/repositories/tables/AGENTS.md +20 -0
- package/templates/src/infrastructure/persistence/repositories/tables/README.md +5 -0
- package/templates/src/infrastructure/persistence/repositories/views/AGENTS.md +16 -0
- package/templates/src/infrastructure/persistence/repositories/views/README.md +5 -0
- package/templates/src/infrastructure/telemetry/AGENTS.md +14 -0
- package/templates/src/infrastructure/telemetry/consoleRepositoryTelemetry.ts +66 -0
- package/templates/src/infrastructure/telemetry/repositoryTelemetry.ts +26 -0
- package/templates/src/infrastructure/telemetry/types.ts +48 -0
- package/templates/src/jobs/AGENTS.md +25 -26
- package/templates/src/jobs/README.md +2 -2
- package/templates/src/local/sql-contract.ts +1 -0
- package/templates/src/presentation/AGENTS.md +15 -0
- package/templates/src/presentation/http/AGENTS.md +15 -0
- package/templates/src/presentation/http/README.md +6 -0
- package/templates/src/repositories/AGENTS.md +30 -118
- package/templates/src/repositories/tables/AGENTS.md +29 -94
- package/templates/src/repositories/tables/README.md +5 -3
- package/templates/src/repositories/views/AGENTS.md +25 -25
- package/templates/src/repositories/views/README.md +5 -3
- package/templates/src/sql/AGENTS.md +30 -77
- package/templates/src/sql/README.md +5 -5
- package/templates/tests/AGENTS.md +29 -62
- package/templates/tests/generated/AGENTS.md +23 -16
- package/templates/tests/smoke.test.ts +25 -5
- package/templates/tests/smoke.validation.test.ts +34 -34
- package/templates/tests/support/AGENTS.md +24 -26
- package/templates/tests/support/global-setup.ts +15 -15
- package/templates/tests/support/testkit-client.ts +14 -14
- package/templates/tests/support/testkit-client.webapi.ts +14 -0
- package/templates/tests/ztd-layout.generated.ts +6 -6
- package/templates/tsconfig.json +15 -15
- package/templates/vitest.config.ts +13 -13
- package/templates/ztd/AGENTS.md +23 -18
- package/templates/ztd/README.md +5 -5
- package/templates/ztd/ddl/AGENTS.md +26 -34
- package/templates/ztd/ddl/demo.sql +74 -74
- package/LICENSE +0 -21
- package/dist/commands/ddl.d.ts +0 -7
- package/dist/commands/ddl.js +0 -118
- package/dist/commands/ddl.js.map +0 -1
- package/dist/commands/diff.d.ts +0 -10
- package/dist/commands/diff.js +0 -38
- package/dist/commands/diff.js.map +0 -1
- package/dist/commands/genEntities.d.ts +0 -6
- package/dist/commands/genEntities.js +0 -50
- package/dist/commands/genEntities.js.map +0 -1
- package/dist/commands/init.d.ts +0 -79
- package/dist/commands/init.js +0 -1083
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/lint.d.ts +0 -59
- package/dist/commands/lint.js +0 -358
- package/dist/commands/lint.js.map +0 -1
- package/dist/commands/options.d.ts +0 -9
- package/dist/commands/options.js +0 -48
- package/dist/commands/options.js.map +0 -1
- package/dist/commands/pull.d.ts +0 -10
- package/dist/commands/pull.js +0 -105
- package/dist/commands/pull.js.map +0 -1
- package/dist/commands/ztdConfig.d.ts +0 -23
- package/dist/commands/ztdConfig.js +0 -216
- package/dist/commands/ztdConfig.js.map +0 -1
- package/dist/commands/ztdConfigCommand.d.ts +0 -5
- package/dist/commands/ztdConfigCommand.js +0 -157
- package/dist/commands/ztdConfigCommand.js.map +0 -1
- package/dist/index.d.ts +0 -2
- package/dist/index.js +0 -22
- package/dist/index.js.map +0 -1
- package/dist/utils/agents.d.ts +0 -1
- package/dist/utils/agents.js +0 -48
- package/dist/utils/agents.js.map +0 -1
- package/dist/utils/collectSqlFiles.d.ts +0 -9
- package/dist/utils/collectSqlFiles.js +0 -58
- package/dist/utils/collectSqlFiles.js.map +0 -1
- package/dist/utils/connectionSummary.d.ts +0 -3
- package/dist/utils/connectionSummary.js +0 -29
- package/dist/utils/connectionSummary.js.map +0 -1
- package/dist/utils/dbConnection.d.ts +0 -29
- package/dist/utils/dbConnection.js +0 -210
- package/dist/utils/dbConnection.js.map +0 -1
- package/dist/utils/fs.d.ts +0 -1
- package/dist/utils/fs.js +0 -12
- package/dist/utils/fs.js.map +0 -1
- package/dist/utils/normalizePulledSchema.d.ts +0 -12
- package/dist/utils/normalizePulledSchema.js +0 -213
- package/dist/utils/normalizePulledSchema.js.map +0 -1
- package/dist/utils/optionalDependencies.d.ts +0 -35
- package/dist/utils/optionalDependencies.js +0 -96
- package/dist/utils/optionalDependencies.js.map +0 -1
- package/dist/utils/pgDump.d.ts +0 -11
- package/dist/utils/pgDump.js +0 -55
- package/dist/utils/pgDump.js.map +0 -1
- package/dist/utils/sqlLintHelpers.d.ts +0 -18
- package/dist/utils/sqlLintHelpers.js +0 -270
- package/dist/utils/sqlLintHelpers.js.map +0 -1
- package/dist/utils/typeMapper.d.ts +0 -4
- package/dist/utils/typeMapper.js +0 -76
- package/dist/utils/typeMapper.js.map +0 -1
- package/dist/utils/ztdProjectConfig.d.ts +0 -40
- package/dist/utils/ztdProjectConfig.js +0 -167
- package/dist/utils/ztdProjectConfig.js.map +0 -1
- package/templates/dist/drivers/pg-testkit/src/driver/PgTestkitClient.d.ts +0 -38
- package/templates/dist/drivers/pg-testkit/src/driver/PgTestkitClient.js +0 -117
- package/templates/dist/drivers/pg-testkit/src/driver/PgTestkitClient.js.map +0 -1
- package/templates/dist/drivers/pg-testkit/src/driver/createPgTestkitPool.d.ts +0 -4
- package/templates/dist/drivers/pg-testkit/src/driver/createPgTestkitPool.js +0 -71
- package/templates/dist/drivers/pg-testkit/src/driver/createPgTestkitPool.js.map +0 -1
- package/templates/dist/drivers/pg-testkit/src/index.d.ts +0 -5
- package/templates/dist/drivers/pg-testkit/src/index.js +0 -11
- package/templates/dist/drivers/pg-testkit/src/index.js.map +0 -1
- package/templates/dist/drivers/pg-testkit/src/proxy/wrapPgClient.d.ts +0 -3
- package/templates/dist/drivers/pg-testkit/src/proxy/wrapPgClient.js +0 -79
- package/templates/dist/drivers/pg-testkit/src/proxy/wrapPgClient.js.map +0 -1
- package/templates/dist/drivers/pg-testkit/src/types.d.ts +0 -69
- package/templates/dist/drivers/pg-testkit/src/types.js +0 -3
- package/templates/dist/drivers/pg-testkit/src/types.js.map +0 -1
- package/templates/dist/drivers/pg-testkit/src/utils/fixtureState.d.ts +0 -15
- package/templates/dist/drivers/pg-testkit/src/utils/fixtureState.js +0 -34
- package/templates/dist/drivers/pg-testkit/src/utils/fixtureState.js.map +0 -1
- package/templates/dist/drivers/pg-testkit/src/utils/fixtureValidation.d.ts +0 -12
- package/templates/dist/drivers/pg-testkit/src/utils/fixtureValidation.js +0 -53
- package/templates/dist/drivers/pg-testkit/src/utils/fixtureValidation.js.map +0 -1
- package/templates/dist/mapper-core/src/index.d.ts +0 -160
- package/templates/dist/mapper-core/src/index.js +0 -637
- package/templates/dist/mapper-core/src/index.js.map +0 -1
- package/templates/dist/testkit-core/src/errors/index.d.ts +0 -49
- package/templates/dist/testkit-core/src/errors/index.js +0 -111
- package/templates/dist/testkit-core/src/errors/index.js.map +0 -1
- package/templates/dist/testkit-core/src/fixtures/ColumnAffinity.d.ts +0 -5
- package/templates/dist/testkit-core/src/fixtures/ColumnAffinity.js +0 -29
- package/templates/dist/testkit-core/src/fixtures/ColumnAffinity.js.map +0 -1
- package/templates/dist/testkit-core/src/fixtures/DdlFixtureLoader.d.ts +0 -37
- package/templates/dist/testkit-core/src/fixtures/DdlFixtureLoader.js +0 -182
- package/templates/dist/testkit-core/src/fixtures/DdlFixtureLoader.js.map +0 -1
- package/templates/dist/testkit-core/src/fixtures/FixtureProvider.d.ts +0 -20
- package/templates/dist/testkit-core/src/fixtures/FixtureProvider.js +0 -121
- package/templates/dist/testkit-core/src/fixtures/FixtureProvider.js.map +0 -1
- package/templates/dist/testkit-core/src/fixtures/FixtureStore.d.ts +0 -51
- package/templates/dist/testkit-core/src/fixtures/FixtureStore.js +0 -199
- package/templates/dist/testkit-core/src/fixtures/FixtureStore.js.map +0 -1
- package/templates/dist/testkit-core/src/fixtures/TableDefinitionSchemaRegistry.d.ts +0 -10
- package/templates/dist/testkit-core/src/fixtures/TableDefinitionSchemaRegistry.js +0 -28
- package/templates/dist/testkit-core/src/fixtures/TableDefinitionSchemaRegistry.js.map +0 -1
- package/templates/dist/testkit-core/src/fixtures/TableNameResolver.d.ts +0 -18
- package/templates/dist/testkit-core/src/fixtures/TableNameResolver.js +0 -80
- package/templates/dist/testkit-core/src/fixtures/TableNameResolver.js.map +0 -1
- package/templates/dist/testkit-core/src/fixtures/ddlLint.d.ts +0 -59
- package/templates/dist/testkit-core/src/fixtures/ddlLint.js +0 -489
- package/templates/dist/testkit-core/src/fixtures/ddlLint.js.map +0 -1
- package/templates/dist/testkit-core/src/fixtures/naming.d.ts +0 -1
- package/templates/dist/testkit-core/src/fixtures/naming.js +0 -6
- package/templates/dist/testkit-core/src/fixtures/naming.js.map +0 -1
- package/templates/dist/testkit-core/src/index.d.ts +0 -17
- package/templates/dist/testkit-core/src/index.js +0 -47
- package/templates/dist/testkit-core/src/index.js.map +0 -1
- package/templates/dist/testkit-core/src/logger/NoopLogger.d.ts +0 -8
- package/templates/dist/testkit-core/src/logger/NoopLogger.js +0 -16
- package/templates/dist/testkit-core/src/logger/NoopLogger.js.map +0 -1
- package/templates/dist/testkit-core/src/provider/TestkitProvider.d.ts +0 -57
- package/templates/dist/testkit-core/src/provider/TestkitProvider.js +0 -149
- package/templates/dist/testkit-core/src/provider/TestkitProvider.js.map +0 -1
- package/templates/dist/testkit-core/src/rewriter/ResultSelectRewriter.d.ts +0 -43
- package/templates/dist/testkit-core/src/rewriter/ResultSelectRewriter.js +0 -473
- package/templates/dist/testkit-core/src/rewriter/ResultSelectRewriter.js.map +0 -1
- package/templates/dist/testkit-core/src/rewriter/SelectAnalyzer.d.ts +0 -9
- package/templates/dist/testkit-core/src/rewriter/SelectAnalyzer.js +0 -38
- package/templates/dist/testkit-core/src/rewriter/SelectAnalyzer.js.map +0 -1
- package/templates/dist/testkit-core/src/rewriter/SelectFixtureRewriter.d.ts +0 -42
- package/templates/dist/testkit-core/src/rewriter/SelectFixtureRewriter.js +0 -298
- package/templates/dist/testkit-core/src/rewriter/SelectFixtureRewriter.js.map +0 -1
- package/templates/dist/testkit-core/src/sql/SqliteValuesBuilder.d.ts +0 -12
- package/templates/dist/testkit-core/src/sql/SqliteValuesBuilder.js +0 -63
- package/templates/dist/testkit-core/src/sql/SqliteValuesBuilder.js.map +0 -1
- package/templates/dist/testkit-core/src/types/index.d.ts +0 -69
- package/templates/dist/testkit-core/src/types/index.js +0 -3
- package/templates/dist/testkit-core/src/types/index.js.map +0 -1
- package/templates/dist/testkit-core/src/utils/queryHelpers.d.ts +0 -28
- package/templates/dist/testkit-core/src/utils/queryHelpers.js +0 -81
- package/templates/dist/testkit-core/src/utils/queryHelpers.js.map +0 -1
- package/templates/dist/writer-core/src/index.d.ts +0 -34
- package/templates/dist/writer-core/src/index.js +0 -115
- package/templates/dist/writer-core/src/index.js.map +0 -1
- package/templates/dist/ztd-cli/templates/src/db/sql-client.d.ts +0 -20
- package/templates/dist/ztd-cli/templates/src/db/sql-client.js +0 -3
- package/templates/dist/ztd-cli/templates/src/db/sql-client.js.map +0 -1
- package/templates/dist/ztd-cli/templates/src/repositories/user-accounts.d.ts +0 -36
- package/templates/dist/ztd-cli/templates/src/repositories/user-accounts.js +0 -85
- package/templates/dist/ztd-cli/templates/src/repositories/user-accounts.js.map +0 -1
- package/templates/dist/ztd-cli/templates/tests/generated/ztd-row-map.generated.d.ts +0 -20
- package/templates/dist/ztd-cli/templates/tests/generated/ztd-row-map.generated.js +0 -33
- package/templates/dist/ztd-cli/templates/tests/generated/ztd-row-map.generated.js.map +0 -1
- package/templates/dist/ztd-cli/templates/tests/support/global-setup.d.ts +0 -10
- package/templates/dist/ztd-cli/templates/tests/support/global-setup.js +0 -29
- package/templates/dist/ztd-cli/templates/tests/support/global-setup.js.map +0 -1
- package/templates/dist/ztd-cli/templates/tests/support/testkit-client.d.ts +0 -66
- package/templates/dist/ztd-cli/templates/tests/support/testkit-client.js +0 -552
- package/templates/dist/ztd-cli/templates/tests/support/testkit-client.js.map +0 -1
- package/templates/dist/ztd-cli/templates/tests/user-profiles.test.d.ts +0 -1
- package/templates/dist/ztd-cli/templates/tests/user-profiles.test.js +0 -82
- package/templates/dist/ztd-cli/templates/tests/user-profiles.test.js.map +0 -1
- package/templates/dist/ztd-cli/templates/tests/writer-constraints.test.d.ts +0 -1
- package/templates/dist/ztd-cli/templates/tests/writer-constraints.test.js +0 -29
- package/templates/dist/ztd-cli/templates/tests/writer-constraints.test.js.map +0 -1
- package/templates/dist/ztd-cli/templates/tests/ztd-layout.generated.d.ts +0 -7
- package/templates/dist/ztd-cli/templates/tests/ztd-layout.generated.js +0 -10
- package/templates/dist/ztd-cli/templates/tests/ztd-layout.generated.js.map +0 -1
package/dist/commands/pull.js
DELETED
|
@@ -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 type { DdlLintMode, TableNameResolver } 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): Promise<void>;
|
|
22
|
-
export declare function snapshotTableMetadata(sources: SqlSource[], resolver?: TableNameResolver): TableMetadata[];
|
|
23
|
-
export declare function renderZtdConfigFile(tables: TableMetadata[]): string;
|
|
@@ -1,216 +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 optionalDependencies_1 = require("../utils/optionalDependencies");
|
|
13
|
-
const collectSqlFiles_1 = require("../utils/collectSqlFiles");
|
|
14
|
-
const typeMapper_1 = require("../utils/typeMapper");
|
|
15
|
-
const fs_1 = require("../utils/fs");
|
|
16
|
-
async function runGenerateZtdConfig(options) {
|
|
17
|
-
const testkitCore = await (0, optionalDependencies_1.ensureTestkitCoreModule)();
|
|
18
|
-
const { TableNameResolver, DdlLintError, applyDdlLintMode, formatDdlLintDiagnostics, lintDdlSources, normalizeDdlLintMode } = testkitCore;
|
|
19
|
-
const sources = (0, collectSqlFiles_1.collectSqlFiles)(options.directories, options.extensions);
|
|
20
|
-
if (sources.length === 0) {
|
|
21
|
-
throw new Error(`No SQL files were discovered under ${options.directories.join(', ')}`);
|
|
22
|
-
}
|
|
23
|
-
// Build a resolver that honors the configured schema/search path so the generated rows stay canonical.
|
|
24
|
-
const resolver = new TableNameResolver({
|
|
25
|
-
defaultSchema: options.defaultSchema,
|
|
26
|
-
searchPath: options.searchPath
|
|
27
|
-
});
|
|
28
|
-
// Validate the DDL sources up front so fixture metadata is generated from a consistent schema.
|
|
29
|
-
const lintMode = normalizeDdlLintMode(options.ddlLint);
|
|
30
|
-
if (lintMode !== 'off') {
|
|
31
|
-
const diagnostics = lintDdlSources(sources, { tableNameResolver: resolver });
|
|
32
|
-
if (diagnostics.length > 0) {
|
|
33
|
-
const adjusted = applyDdlLintMode(diagnostics, lintMode);
|
|
34
|
-
if (lintMode === 'strict') {
|
|
35
|
-
throw new DdlLintError(adjusted);
|
|
36
|
-
}
|
|
37
|
-
console.warn(formatDdlLintDiagnostics(adjusted));
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
const tables = snapshotTableMetadata(sources, resolver);
|
|
41
|
-
if (tables.length === 0) {
|
|
42
|
-
throw new Error('The provided DDL sources did not contain any CREATE TABLE statements.');
|
|
43
|
-
}
|
|
44
|
-
const output = renderZtdConfigFile(tables);
|
|
45
|
-
(0, fs_1.ensureDirectory)(node_path_1.default.dirname(options.out));
|
|
46
|
-
(0, node_fs_1.writeFileSync)(options.out, output, 'utf8');
|
|
47
|
-
console.log(`Generated ${tables.length} ZTD test rows at ${options.out}`);
|
|
48
|
-
}
|
|
49
|
-
function snapshotTableMetadata(sources, resolver) {
|
|
50
|
-
var _a;
|
|
51
|
-
const registry = new Map();
|
|
52
|
-
// Track tables by their SQL name so each definition is emitted only once.
|
|
53
|
-
for (const source of sources) {
|
|
54
|
-
// Split multi-statement files so each CREATE TABLE can be processed independently.
|
|
55
|
-
const batch = rawsql_ts_1.MultiQuerySplitter.split(source.sql);
|
|
56
|
-
for (const query of batch.queries) {
|
|
57
|
-
if (query.isEmpty) {
|
|
58
|
-
continue;
|
|
59
|
-
}
|
|
60
|
-
let ast;
|
|
61
|
-
try {
|
|
62
|
-
const parsed = rawsql_ts_1.SqlParser.parse(query.sql);
|
|
63
|
-
if (parsed instanceof rawsql_ts_1.CreateTableQuery) {
|
|
64
|
-
ast = parsed;
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
catch (_error) {
|
|
68
|
-
continue;
|
|
69
|
-
}
|
|
70
|
-
if (!ast) {
|
|
71
|
-
continue;
|
|
72
|
-
}
|
|
73
|
-
const definition = (0, rawsql_ts_1.createTableDefinitionFromCreateTableQuery)(ast);
|
|
74
|
-
// Normalize table names so the generated config mirrors resolver expectations.
|
|
75
|
-
const canonicalName = (_a = resolver === null || resolver === void 0 ? void 0 : resolver.resolve(definition.name)) !== null && _a !== void 0 ? _a : definition.name;
|
|
76
|
-
if (registry.has(canonicalName)) {
|
|
77
|
-
continue;
|
|
78
|
-
}
|
|
79
|
-
// Match column metadata by name so AST-driven nullability honors both DDL and constraints.
|
|
80
|
-
const columns = ast.columns.map((column) => {
|
|
81
|
-
const columnMeta = definition.columns.find((candidate) => candidate.name === column.name.name);
|
|
82
|
-
if (!columnMeta) {
|
|
83
|
-
throw new Error(`Missing metadata for ${column.name.name} in ${definition.name}`);
|
|
84
|
-
}
|
|
85
|
-
const constraintKinds = new Set(column.constraints.map((constraint) => constraint.kind));
|
|
86
|
-
const hasNotNull = constraintKinds.has('not-null') || constraintKinds.has('primary-key');
|
|
87
|
-
return {
|
|
88
|
-
name: column.name.name,
|
|
89
|
-
typeName: columnMeta.typeName,
|
|
90
|
-
isNullable: !hasNotNull
|
|
91
|
-
};
|
|
92
|
-
});
|
|
93
|
-
registry.set(canonicalName, {
|
|
94
|
-
name: canonicalName,
|
|
95
|
-
testRowInterfaceName: buildTestRowInterfaceName(canonicalName),
|
|
96
|
-
columns
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
return Array.from(registry.values()).sort((a, b) => a.name.localeCompare(b.name));
|
|
101
|
-
}
|
|
102
|
-
function buildTestRowInterfaceName(tableName) {
|
|
103
|
-
var _a;
|
|
104
|
-
// Preserve schema and table segments when Pascal-casing to keep names unique.
|
|
105
|
-
const namespaceParts = tableName.split('.');
|
|
106
|
-
const pascalize = (segment) => segment
|
|
107
|
-
.split(/[^A-Za-z0-9]+/)
|
|
108
|
-
.filter(Boolean)
|
|
109
|
-
.map((token) => {
|
|
110
|
-
const lower = token.toLowerCase();
|
|
111
|
-
return lower.charAt(0).toUpperCase() + lower.slice(1);
|
|
112
|
-
})
|
|
113
|
-
.join('');
|
|
114
|
-
const pascalSegments = namespaceParts.map((segment) => pascalize(segment)).filter(Boolean);
|
|
115
|
-
const combined = pascalSegments.join('');
|
|
116
|
-
const normalized = combined.replace(/^[0-9]+/, '');
|
|
117
|
-
// Guarantee the interface name starts with a letter or underscore.
|
|
118
|
-
const prefix = /^[A-Za-z_]/.test((_a = normalized.charAt(0)) !== null && _a !== void 0 ? _a : '') ? normalized : `_${normalized}`;
|
|
119
|
-
return `${prefix || 'Table'}TestRow`;
|
|
120
|
-
}
|
|
121
|
-
function renderZtdConfigFile(tables) {
|
|
122
|
-
const header = [
|
|
123
|
-
'// GENERATED FILE. DO NOT EDIT.',
|
|
124
|
-
'// ZTD TEST ROW MAP',
|
|
125
|
-
'// This file is synchronized with DDL using ztd-config.',
|
|
126
|
-
'',
|
|
127
|
-
'type ColumnDefinitions = Record<string, string>;',
|
|
128
|
-
'',
|
|
129
|
-
'export interface TableSchemaDefinition {',
|
|
130
|
-
' columns: ColumnDefinitions;',
|
|
131
|
-
'}',
|
|
132
|
-
'',
|
|
133
|
-
'export type FixtureRow = Record<string, unknown>;',
|
|
134
|
-
'',
|
|
135
|
-
'export interface TableFixture<RowShape extends Record<string, unknown> = FixtureRow> {',
|
|
136
|
-
' tableName: string;',
|
|
137
|
-
' rows: RowShape[];',
|
|
138
|
-
' schema: TableSchemaDefinition;',
|
|
139
|
-
'}',
|
|
140
|
-
''
|
|
141
|
-
].join('\n');
|
|
142
|
-
const entries = tables
|
|
143
|
-
.map((table) => ` '${table.name}': ${table.testRowInterfaceName};`)
|
|
144
|
-
.join('\n');
|
|
145
|
-
// Build each table interface while preserving the column order from the DDL.
|
|
146
|
-
const definitions = tables
|
|
147
|
-
.map((table) => {
|
|
148
|
-
const fields = table.columns
|
|
149
|
-
.map((column) => {
|
|
150
|
-
const baseType = (0, typeMapper_1.mapSqlTypeToTs)(column.typeName, `${table.name}.${column.name}`);
|
|
151
|
-
const tsType = column.isNullable ? `${baseType} | null` : baseType;
|
|
152
|
-
return ` ${column.name}: ${tsType};`;
|
|
153
|
-
})
|
|
154
|
-
.join('\n');
|
|
155
|
-
return `export interface ${table.testRowInterfaceName} extends FixtureRow {\n${fields}\n}`;
|
|
156
|
-
})
|
|
157
|
-
.join('\n\n');
|
|
158
|
-
// Assemble a schema map that mirrors TestRowMap so tests can reuse canonical affinity metadata.
|
|
159
|
-
const schemaEntries = tables
|
|
160
|
-
.map((table) => {
|
|
161
|
-
const columnDefinitions = table.columns
|
|
162
|
-
.map((column) => {
|
|
163
|
-
var _a;
|
|
164
|
-
const typeLiteral = JSON.stringify((_a = column.typeName) !== null && _a !== void 0 ? _a : '');
|
|
165
|
-
return ` ${column.name}: ${typeLiteral},`;
|
|
166
|
-
})
|
|
167
|
-
.join('\n');
|
|
168
|
-
return ` '${table.name}': {\n columns: {\n${columnDefinitions}\n }\n },`;
|
|
169
|
-
})
|
|
170
|
-
.join('\n');
|
|
171
|
-
const footer = [
|
|
172
|
-
'',
|
|
173
|
-
'export type TestRow<K extends keyof TestRowMap> = TestRowMap[K];',
|
|
174
|
-
'export type ZtdRowShapes = TestRowMap;',
|
|
175
|
-
'export type ZtdTableName = keyof TestRowMap;',
|
|
176
|
-
'',
|
|
177
|
-
'export type ZtdTableSchemas = Record<ZtdTableName, TableSchemaDefinition>;',
|
|
178
|
-
'',
|
|
179
|
-
'export const tableSchemas: ZtdTableSchemas = {',
|
|
180
|
-
`${schemaEntries}`,
|
|
181
|
-
'};',
|
|
182
|
-
'',
|
|
183
|
-
'export function tableSchema<K extends ZtdTableName>(tableName: K): TableSchemaDefinition {',
|
|
184
|
-
' return tableSchemas[tableName];',
|
|
185
|
-
'}',
|
|
186
|
-
'',
|
|
187
|
-
'export type ZtdTableFixture<K extends ZtdTableName> = TableFixture<ZtdRowShapes[K]> & {',
|
|
188
|
-
' tableName: K;',
|
|
189
|
-
' rows: ZtdRowShapes[K][];',
|
|
190
|
-
' schema: TableSchemaDefinition;',
|
|
191
|
-
'};',
|
|
192
|
-
'',
|
|
193
|
-
'export interface ZtdConfig {',
|
|
194
|
-
' tables: ZtdTableName[];',
|
|
195
|
-
'}',
|
|
196
|
-
'',
|
|
197
|
-
'export function tableFixture<K extends ZtdTableName>(',
|
|
198
|
-
' tableName: K,',
|
|
199
|
-
' rows: ZtdRowShapes[K][],',
|
|
200
|
-
' schema?: TableSchemaDefinition',
|
|
201
|
-
'): TableFixture<ZtdRowShapes[K]> {',
|
|
202
|
-
' return { tableName, rows, schema: schema ?? tableSchemas[tableName] };',
|
|
203
|
-
'}',
|
|
204
|
-
'',
|
|
205
|
-
'export function tableFixtureWithSchema<K extends ZtdTableName>(',
|
|
206
|
-
' tableName: K,',
|
|
207
|
-
' rows: ZtdRowShapes[K][]',
|
|
208
|
-
'): ZtdTableFixture<K> {',
|
|
209
|
-
' // Always pair fixture rows with the canonical schema generated from DDL.',
|
|
210
|
-
' return { tableName, rows, schema: tableSchemas[tableName] };',
|
|
211
|
-
'}',
|
|
212
|
-
''
|
|
213
|
-
].join('\n');
|
|
214
|
-
return `${header}export interface TestRowMap {\n${entries}\n}\n\n${definitions}\n${footer}`;
|
|
215
|
-
}
|
|
216
|
-
//# 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,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":"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"}
|
package/dist/index.d.ts
DELETED
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"}
|
package/dist/utils/agents.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function copyAgentsTemplate(projectRoot: string): string | null;
|
package/dist/utils/agents.js
DELETED
|
@@ -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
|
package/dist/utils/agents.js.map
DELETED
|
@@ -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[];
|