@veloxts/cli 0.4.0 → 0.4.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/README.md +23 -144
- package/dist/cli.js +2 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/generate.d.ts +17 -0
- package/dist/commands/generate.d.ts.map +1 -0
- package/dist/commands/generate.js +219 -0
- package/dist/commands/generate.js.map +1 -0
- package/dist/commands/migrate.d.ts +8 -3
- package/dist/commands/migrate.d.ts.map +1 -1
- package/dist/commands/migrate.js +17 -123
- package/dist/commands/migrate.js.map +1 -1
- package/dist/generators/base.d.ts +76 -0
- package/dist/generators/base.d.ts.map +1 -0
- package/dist/generators/base.js +271 -0
- package/dist/generators/base.js.map +1 -0
- package/dist/generators/generators/index.d.ts +17 -0
- package/dist/generators/generators/index.d.ts.map +1 -0
- package/dist/generators/generators/index.js +43 -0
- package/dist/generators/generators/index.js.map +1 -0
- package/dist/generators/generators/migration.d.ts +43 -0
- package/dist/generators/generators/migration.d.ts.map +1 -0
- package/dist/generators/generators/migration.js +121 -0
- package/dist/generators/generators/migration.js.map +1 -0
- package/dist/generators/generators/model.d.ts +38 -0
- package/dist/generators/generators/model.d.ts.map +1 -0
- package/dist/generators/generators/model.js +108 -0
- package/dist/generators/generators/model.js.map +1 -0
- package/dist/generators/generators/procedure.d.ts +37 -0
- package/dist/generators/generators/procedure.d.ts.map +1 -0
- package/dist/generators/generators/procedure.js +99 -0
- package/dist/generators/generators/procedure.js.map +1 -0
- package/dist/generators/generators/resource.d.ts +29 -0
- package/dist/generators/generators/resource.d.ts.map +1 -0
- package/dist/generators/generators/resource.js +124 -0
- package/dist/generators/generators/resource.js.map +1 -0
- package/dist/generators/generators/schema.d.ts +28 -0
- package/dist/generators/generators/schema.d.ts.map +1 -0
- package/dist/generators/generators/schema.js +83 -0
- package/dist/generators/generators/schema.js.map +1 -0
- package/dist/generators/generators/test.d.ts +28 -0
- package/dist/generators/generators/test.d.ts.map +1 -0
- package/dist/generators/generators/test.js +96 -0
- package/dist/generators/generators/test.js.map +1 -0
- package/dist/generators/index.d.ts +16 -0
- package/dist/generators/index.d.ts.map +1 -0
- package/dist/generators/index.js +16 -0
- package/dist/generators/index.js.map +1 -0
- package/dist/generators/registry.d.ts +97 -0
- package/dist/generators/registry.d.ts.map +1 -0
- package/dist/generators/registry.js +253 -0
- package/dist/generators/registry.js.map +1 -0
- package/dist/generators/templates/migration.d.ts +23 -0
- package/dist/generators/templates/migration.d.ts.map +1 -0
- package/dist/generators/templates/migration.js +389 -0
- package/dist/generators/templates/migration.js.map +1 -0
- package/dist/generators/templates/model.d.ts +37 -0
- package/dist/generators/templates/model.d.ts.map +1 -0
- package/dist/generators/templates/model.js +374 -0
- package/dist/generators/templates/model.js.map +1 -0
- package/dist/generators/templates/procedure.d.ts +25 -0
- package/dist/generators/templates/procedure.d.ts.map +1 -0
- package/dist/generators/templates/procedure.js +274 -0
- package/dist/generators/templates/procedure.js.map +1 -0
- package/dist/generators/templates/resource.d.ts +34 -0
- package/dist/generators/templates/resource.d.ts.map +1 -0
- package/dist/generators/templates/resource.js +550 -0
- package/dist/generators/templates/resource.js.map +1 -0
- package/dist/generators/templates/schema.d.ts +33 -0
- package/dist/generators/templates/schema.d.ts.map +1 -0
- package/dist/generators/templates/schema.js +248 -0
- package/dist/generators/templates/schema.js.map +1 -0
- package/dist/generators/templates/test.d.ts +31 -0
- package/dist/generators/templates/test.d.ts.map +1 -0
- package/dist/generators/templates/test.js +882 -0
- package/dist/generators/templates/test.js.map +1 -0
- package/dist/generators/types.d.ts +211 -0
- package/dist/generators/types.d.ts.map +1 -0
- package/dist/generators/types.js +54 -0
- package/dist/generators/types.js.map +1 -0
- package/dist/generators/utils/filesystem.d.ts +68 -0
- package/dist/generators/utils/filesystem.d.ts.map +1 -0
- package/dist/generators/utils/filesystem.js +217 -0
- package/dist/generators/utils/filesystem.js.map +1 -0
- package/dist/generators/utils/naming.d.ts +122 -0
- package/dist/generators/utils/naming.d.ts.map +1 -0
- package/dist/generators/utils/naming.js +198 -0
- package/dist/generators/utils/naming.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/migrations/commands/fresh.d.ts +11 -0
- package/dist/migrations/commands/fresh.d.ts.map +1 -0
- package/dist/migrations/commands/fresh.js +164 -0
- package/dist/migrations/commands/fresh.js.map +1 -0
- package/dist/migrations/commands/index.d.ts +11 -0
- package/dist/migrations/commands/index.d.ts.map +1 -0
- package/dist/migrations/commands/index.js +11 -0
- package/dist/migrations/commands/index.js.map +1 -0
- package/dist/migrations/commands/reset.d.ts +11 -0
- package/dist/migrations/commands/reset.d.ts.map +1 -0
- package/dist/migrations/commands/reset.js +258 -0
- package/dist/migrations/commands/reset.js.map +1 -0
- package/dist/migrations/commands/rollback.d.ts +11 -0
- package/dist/migrations/commands/rollback.d.ts.map +1 -0
- package/dist/migrations/commands/rollback.js +241 -0
- package/dist/migrations/commands/rollback.js.map +1 -0
- package/dist/migrations/commands/run.d.ts +11 -0
- package/dist/migrations/commands/run.d.ts.map +1 -0
- package/dist/migrations/commands/run.js +183 -0
- package/dist/migrations/commands/run.js.map +1 -0
- package/dist/migrations/commands/status.d.ts +11 -0
- package/dist/migrations/commands/status.d.ts.map +1 -0
- package/dist/migrations/commands/status.js +154 -0
- package/dist/migrations/commands/status.js.map +1 -0
- package/dist/migrations/errors.d.ts +74 -0
- package/dist/migrations/errors.d.ts.map +1 -0
- package/dist/migrations/errors.js +155 -0
- package/dist/migrations/errors.js.map +1 -0
- package/dist/migrations/index.d.ts +13 -0
- package/dist/migrations/index.d.ts.map +1 -0
- package/dist/migrations/index.js +17 -0
- package/dist/migrations/index.js.map +1 -0
- package/dist/migrations/loader.d.ts +44 -0
- package/dist/migrations/loader.d.ts.map +1 -0
- package/dist/migrations/loader.js +181 -0
- package/dist/migrations/loader.js.map +1 -0
- package/dist/migrations/prisma-wrapper.d.ts +60 -0
- package/dist/migrations/prisma-wrapper.d.ts.map +1 -0
- package/dist/migrations/prisma-wrapper.js +184 -0
- package/dist/migrations/prisma-wrapper.js.map +1 -0
- package/dist/migrations/rollback-runner.d.ts +40 -0
- package/dist/migrations/rollback-runner.d.ts.map +1 -0
- package/dist/migrations/rollback-runner.js +203 -0
- package/dist/migrations/rollback-runner.js.map +1 -0
- package/dist/migrations/types.d.ts +214 -0
- package/dist/migrations/types.d.ts.map +1 -0
- package/dist/migrations/types.js +19 -0
- package/dist/migrations/types.js.map +1 -0
- package/package.json +29 -8
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rollback Runner
|
|
3
|
+
*
|
|
4
|
+
* Custom rollback execution using down.sql files.
|
|
5
|
+
*/
|
|
6
|
+
import fs from 'node:fs/promises';
|
|
7
|
+
import { databaseError, noRollbackFile, rollbackFailed } from './errors.js';
|
|
8
|
+
// ============================================================================
|
|
9
|
+
// Single Migration Rollback
|
|
10
|
+
// ============================================================================
|
|
11
|
+
/**
|
|
12
|
+
* Rollback a single migration
|
|
13
|
+
*/
|
|
14
|
+
export async function rollbackMigration(prisma, migration, options = {}) {
|
|
15
|
+
const startTime = Date.now();
|
|
16
|
+
// Check if rollback is available
|
|
17
|
+
if (!migration.hasRollback || !migration.downPath) {
|
|
18
|
+
throw noRollbackFile(migration.name);
|
|
19
|
+
}
|
|
20
|
+
// In dry run mode, just return success
|
|
21
|
+
if (options.dryRun) {
|
|
22
|
+
return {
|
|
23
|
+
migration: migration.name,
|
|
24
|
+
success: true,
|
|
25
|
+
duration: 0,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
try {
|
|
29
|
+
// Read down.sql content
|
|
30
|
+
const downSql = await fs.readFile(migration.downPath, 'utf-8');
|
|
31
|
+
// Split SQL into statements and execute each one
|
|
32
|
+
// This handles multi-statement down.sql files
|
|
33
|
+
const statements = splitSqlStatements(downSql);
|
|
34
|
+
for (const statement of statements) {
|
|
35
|
+
const trimmed = statement.trim();
|
|
36
|
+
if (trimmed) {
|
|
37
|
+
await prisma.$executeRawUnsafe(trimmed);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
// Remove migration record from _prisma_migrations using parameterized query
|
|
41
|
+
// Use database-specific placeholder syntax ($1 for PostgreSQL, ? for SQLite/MySQL)
|
|
42
|
+
await prisma.$executeRawUnsafe(getDeleteMigrationQuery(options.database), migration.name);
|
|
43
|
+
return {
|
|
44
|
+
migration: migration.name,
|
|
45
|
+
success: true,
|
|
46
|
+
duration: Date.now() - startTime,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
catch (error) {
|
|
50
|
+
const err = error instanceof Error ? error : new Error(String(error));
|
|
51
|
+
throw rollbackFailed(migration.name, err);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
// ============================================================================
|
|
55
|
+
// Batch Rollback
|
|
56
|
+
// ============================================================================
|
|
57
|
+
/**
|
|
58
|
+
* Rollback multiple migrations in order (most recent first)
|
|
59
|
+
*/
|
|
60
|
+
export async function rollbackMultiple(prisma, migrations, options = {}) {
|
|
61
|
+
const startTime = Date.now();
|
|
62
|
+
const results = [];
|
|
63
|
+
let successful = 0;
|
|
64
|
+
let failed = 0;
|
|
65
|
+
// Ensure migrations are in reverse chronological order
|
|
66
|
+
const orderedMigrations = [...migrations].sort((a, b) => b.timestamp.localeCompare(a.timestamp));
|
|
67
|
+
for (const migration of orderedMigrations) {
|
|
68
|
+
try {
|
|
69
|
+
const result = await rollbackMigration(prisma, migration, options);
|
|
70
|
+
results.push(result);
|
|
71
|
+
successful++;
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
// If rollback fails, record error and stop
|
|
75
|
+
const err = error instanceof Error ? error : new Error(String(error));
|
|
76
|
+
results.push({
|
|
77
|
+
migration: migration.name,
|
|
78
|
+
success: false,
|
|
79
|
+
duration: 0,
|
|
80
|
+
error: err.message,
|
|
81
|
+
});
|
|
82
|
+
failed++;
|
|
83
|
+
// Stop on first failure
|
|
84
|
+
break;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return {
|
|
88
|
+
results,
|
|
89
|
+
total: orderedMigrations.length,
|
|
90
|
+
successful,
|
|
91
|
+
failed,
|
|
92
|
+
duration: Date.now() - startTime,
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Rollback all migrations
|
|
97
|
+
*/
|
|
98
|
+
export async function rollbackAll(prisma, migrations, options = {}) {
|
|
99
|
+
return rollbackMultiple(prisma, migrations, options);
|
|
100
|
+
}
|
|
101
|
+
// ============================================================================
|
|
102
|
+
// Database Utilities
|
|
103
|
+
// ============================================================================
|
|
104
|
+
/**
|
|
105
|
+
* Get applied migrations from the database
|
|
106
|
+
*/
|
|
107
|
+
export async function getAppliedMigrations(prisma) {
|
|
108
|
+
try {
|
|
109
|
+
return await prisma.$queryRaw `
|
|
110
|
+
SELECT "migration_name", "started_at", "finished_at"
|
|
111
|
+
FROM "_prisma_migrations"
|
|
112
|
+
WHERE "finished_at" IS NOT NULL
|
|
113
|
+
ORDER BY "started_at" DESC
|
|
114
|
+
`;
|
|
115
|
+
}
|
|
116
|
+
catch (error) {
|
|
117
|
+
const err = error instanceof Error ? error : new Error(String(error));
|
|
118
|
+
throw databaseError('getAppliedMigrations', err);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Check if _prisma_migrations table exists
|
|
123
|
+
*/
|
|
124
|
+
export async function checkMigrationsTableExists(prisma, database = 'postgresql') {
|
|
125
|
+
try {
|
|
126
|
+
let query;
|
|
127
|
+
switch (database) {
|
|
128
|
+
case 'sqlite':
|
|
129
|
+
query = `SELECT name FROM sqlite_master WHERE type='table' AND name='_prisma_migrations'`;
|
|
130
|
+
break;
|
|
131
|
+
case 'mysql':
|
|
132
|
+
query = `SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_NAME = '_prisma_migrations'`;
|
|
133
|
+
break;
|
|
134
|
+
// case 'postgresql':
|
|
135
|
+
default:
|
|
136
|
+
query = `SELECT tablename FROM pg_tables WHERE tablename = '_prisma_migrations'`;
|
|
137
|
+
break;
|
|
138
|
+
}
|
|
139
|
+
const result = await prisma.$queryRawUnsafe(query);
|
|
140
|
+
return Array.isArray(result) && result.length > 0;
|
|
141
|
+
}
|
|
142
|
+
catch {
|
|
143
|
+
return false;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
// ============================================================================
|
|
147
|
+
// SQL Helpers
|
|
148
|
+
// ============================================================================
|
|
149
|
+
/**
|
|
150
|
+
* Get the DELETE query for removing a migration record, with correct
|
|
151
|
+
* parameter placeholder syntax for the target database.
|
|
152
|
+
*
|
|
153
|
+
* - PostgreSQL uses `$1`, `$2`, etc.
|
|
154
|
+
* - SQLite and MySQL use `?`
|
|
155
|
+
*/
|
|
156
|
+
function getDeleteMigrationQuery(database = 'postgresql') {
|
|
157
|
+
const placeholder = database === 'postgresql' ? '$1' : '?';
|
|
158
|
+
return `DELETE FROM "_prisma_migrations" WHERE "migration_name" = ${placeholder}`;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Split SQL into individual statements
|
|
162
|
+
* Handles basic cases - not a full SQL parser
|
|
163
|
+
*/
|
|
164
|
+
function splitSqlStatements(sql) {
|
|
165
|
+
// Simple split on semicolons, but be aware this doesn't handle
|
|
166
|
+
// semicolons inside strings/comments perfectly
|
|
167
|
+
const statements = [];
|
|
168
|
+
let current = '';
|
|
169
|
+
let inString = false;
|
|
170
|
+
let stringChar = '';
|
|
171
|
+
for (let i = 0; i < sql.length; i++) {
|
|
172
|
+
const char = sql[i];
|
|
173
|
+
const prevChar = sql[i - 1];
|
|
174
|
+
// Handle string literals
|
|
175
|
+
if ((char === "'" || char === '"') && prevChar !== '\\') {
|
|
176
|
+
if (!inString) {
|
|
177
|
+
inString = true;
|
|
178
|
+
stringChar = char;
|
|
179
|
+
}
|
|
180
|
+
else if (char === stringChar) {
|
|
181
|
+
inString = false;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
// Handle statement separator
|
|
185
|
+
if (char === ';' && !inString) {
|
|
186
|
+
const trimmed = current.trim();
|
|
187
|
+
if (trimmed) {
|
|
188
|
+
statements.push(trimmed);
|
|
189
|
+
}
|
|
190
|
+
current = '';
|
|
191
|
+
}
|
|
192
|
+
else {
|
|
193
|
+
current += char;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
// Add final statement if any
|
|
197
|
+
const trimmed = current.trim();
|
|
198
|
+
if (trimmed) {
|
|
199
|
+
statements.push(trimmed);
|
|
200
|
+
}
|
|
201
|
+
return statements;
|
|
202
|
+
}
|
|
203
|
+
//# sourceMappingURL=rollback-runner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rollback-runner.js","sourceRoot":"","sources":["../../src/migrations/rollback-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Migration Types
|
|
3
|
+
*
|
|
4
|
+
* Core type definitions for the VeloxTS migration runner system.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Minimal Prisma client interface for migration operations.
|
|
8
|
+
*
|
|
9
|
+
* This avoids depending on generated Prisma client types which may not exist
|
|
10
|
+
* in CI environments where `prisma generate` hasn't been run.
|
|
11
|
+
*/
|
|
12
|
+
export interface PrismaClientLike {
|
|
13
|
+
/**
|
|
14
|
+
* Execute a raw SQL query and return results.
|
|
15
|
+
* Uses a tagged template literal for parameterized queries.
|
|
16
|
+
*/
|
|
17
|
+
$queryRaw<T = unknown>(query: TemplateStringsArray, ...values: unknown[]): Promise<T>;
|
|
18
|
+
/**
|
|
19
|
+
* Execute a raw SQL query string and return results.
|
|
20
|
+
* Use with caution - values are not automatically escaped.
|
|
21
|
+
*/
|
|
22
|
+
$queryRawUnsafe<T = unknown>(query: string, ...values: unknown[]): Promise<T>;
|
|
23
|
+
/**
|
|
24
|
+
* Execute a raw SQL statement (INSERT, UPDATE, DELETE, etc.).
|
|
25
|
+
* Returns the number of affected rows.
|
|
26
|
+
*/
|
|
27
|
+
$executeRawUnsafe(query: string, ...values: unknown[]): Promise<number>;
|
|
28
|
+
/**
|
|
29
|
+
* Disconnect from the database.
|
|
30
|
+
*/
|
|
31
|
+
$disconnect(): Promise<void>;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Create a new PrismaClient instance dynamically.
|
|
35
|
+
*
|
|
36
|
+
* This function handles the dynamic import of @prisma/client at runtime,
|
|
37
|
+
* avoiding compile-time dependency on generated Prisma types.
|
|
38
|
+
*
|
|
39
|
+
* @returns A new PrismaClient instance typed as PrismaClientLike
|
|
40
|
+
*/
|
|
41
|
+
export declare function createPrismaClient(): Promise<PrismaClientLike>;
|
|
42
|
+
/**
|
|
43
|
+
* A migration file loaded from the filesystem
|
|
44
|
+
*/
|
|
45
|
+
export interface MigrationFile {
|
|
46
|
+
/** Full migration name (e.g., "20241208120000_create_users") */
|
|
47
|
+
readonly name: string;
|
|
48
|
+
/** Timestamp prefix (e.g., "20241208120000") */
|
|
49
|
+
readonly timestamp: string;
|
|
50
|
+
/** Description suffix (e.g., "create_users") */
|
|
51
|
+
readonly description: string;
|
|
52
|
+
/** Absolute path to migration.sql */
|
|
53
|
+
readonly upPath: string;
|
|
54
|
+
/** Absolute path to down.sql (null if not exists) */
|
|
55
|
+
readonly downPath: string | null;
|
|
56
|
+
/** Whether rollback is available (down.sql exists) */
|
|
57
|
+
readonly hasRollback: boolean;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Record from Prisma's _prisma_migrations table
|
|
61
|
+
*/
|
|
62
|
+
export interface PrismaMigrationRecord {
|
|
63
|
+
/** UUID identifier */
|
|
64
|
+
id: string;
|
|
65
|
+
/** SHA-256 checksum of migration.sql */
|
|
66
|
+
checksum: string;
|
|
67
|
+
/** When migration finished (null if failed) */
|
|
68
|
+
finished_at: Date | null;
|
|
69
|
+
/** Migration name (matches folder name) */
|
|
70
|
+
migration_name: string;
|
|
71
|
+
/** Log output from migration */
|
|
72
|
+
logs: string | null;
|
|
73
|
+
/** When migration was rolled back (null if not rolled back) */
|
|
74
|
+
rolled_back_at: Date | null;
|
|
75
|
+
/** When migration started */
|
|
76
|
+
started_at: Date;
|
|
77
|
+
/** Number of steps applied */
|
|
78
|
+
applied_steps_count: number;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Status of a migration
|
|
82
|
+
*/
|
|
83
|
+
export type MigrationStatusType = 'applied' | 'pending' | 'failed';
|
|
84
|
+
/**
|
|
85
|
+
* Combined status of a migration (file + database record)
|
|
86
|
+
*/
|
|
87
|
+
export interface MigrationStatus {
|
|
88
|
+
/** Migration name */
|
|
89
|
+
readonly name: string;
|
|
90
|
+
/** Current status */
|
|
91
|
+
readonly status: MigrationStatusType;
|
|
92
|
+
/** When applied (null if pending) */
|
|
93
|
+
readonly appliedAt: Date | null;
|
|
94
|
+
/** Whether rollback is available (down.sql exists) */
|
|
95
|
+
readonly hasRollback: boolean;
|
|
96
|
+
/** Duration in milliseconds (null if pending or unknown) */
|
|
97
|
+
readonly duration: number | null;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Options for migrate:status command
|
|
101
|
+
*/
|
|
102
|
+
export interface MigrateStatusOptions {
|
|
103
|
+
/** Show only pending migrations */
|
|
104
|
+
readonly pending?: boolean;
|
|
105
|
+
/** Output as JSON */
|
|
106
|
+
readonly json?: boolean;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Options for migrate:run command
|
|
110
|
+
*/
|
|
111
|
+
export interface MigrateRunOptions {
|
|
112
|
+
/** Use development mode (prisma migrate dev) */
|
|
113
|
+
readonly dev?: boolean;
|
|
114
|
+
/** Run only N migrations */
|
|
115
|
+
readonly step?: number;
|
|
116
|
+
/** Show what would be run without executing */
|
|
117
|
+
readonly dryRun?: boolean;
|
|
118
|
+
/** Output as JSON */
|
|
119
|
+
readonly json?: boolean;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Options for migrate:rollback command
|
|
123
|
+
*/
|
|
124
|
+
export interface MigrateRollbackOptions {
|
|
125
|
+
/** Number of migrations to rollback (default: 1) */
|
|
126
|
+
readonly step?: number;
|
|
127
|
+
/** Rollback all migrations */
|
|
128
|
+
readonly all?: boolean;
|
|
129
|
+
/** Skip confirmation prompt */
|
|
130
|
+
readonly force?: boolean;
|
|
131
|
+
/** Show what would be rolled back */
|
|
132
|
+
readonly dryRun?: boolean;
|
|
133
|
+
/** Output as JSON */
|
|
134
|
+
readonly json?: boolean;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Options for migrate:fresh command
|
|
138
|
+
*/
|
|
139
|
+
export interface MigrateFreshOptions {
|
|
140
|
+
/** Run seeders after migrations */
|
|
141
|
+
readonly seed?: boolean;
|
|
142
|
+
/** Skip confirmation prompt */
|
|
143
|
+
readonly force?: boolean;
|
|
144
|
+
/** Output as JSON */
|
|
145
|
+
readonly json?: boolean;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Options for migrate:reset command
|
|
149
|
+
*/
|
|
150
|
+
export interface MigrateResetOptions {
|
|
151
|
+
/** Run seeders after migrations */
|
|
152
|
+
readonly seed?: boolean;
|
|
153
|
+
/** Skip confirmation prompt */
|
|
154
|
+
readonly force?: boolean;
|
|
155
|
+
/** Output as JSON */
|
|
156
|
+
readonly json?: boolean;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Result of running Prisma CLI command
|
|
160
|
+
*/
|
|
161
|
+
export interface PrismaResult {
|
|
162
|
+
/** Whether command succeeded */
|
|
163
|
+
readonly success: boolean;
|
|
164
|
+
/** Standard output */
|
|
165
|
+
readonly output: string;
|
|
166
|
+
/** Standard error (if failed) */
|
|
167
|
+
readonly error?: string;
|
|
168
|
+
/** Exit code */
|
|
169
|
+
readonly exitCode: number;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Result of rolling back a single migration
|
|
173
|
+
*/
|
|
174
|
+
export interface RollbackResult {
|
|
175
|
+
/** Migration name */
|
|
176
|
+
readonly migration: string;
|
|
177
|
+
/** Whether rollback succeeded */
|
|
178
|
+
readonly success: boolean;
|
|
179
|
+
/** Duration in milliseconds */
|
|
180
|
+
readonly duration: number;
|
|
181
|
+
/** Error message if failed */
|
|
182
|
+
readonly error?: string;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Result of a batch rollback operation
|
|
186
|
+
*/
|
|
187
|
+
export interface BatchRollbackResult {
|
|
188
|
+
/** Individual rollback results */
|
|
189
|
+
readonly results: ReadonlyArray<RollbackResult>;
|
|
190
|
+
/** Total migrations rolled back */
|
|
191
|
+
readonly total: number;
|
|
192
|
+
/** Number of successful rollbacks */
|
|
193
|
+
readonly successful: number;
|
|
194
|
+
/** Number of failed rollbacks */
|
|
195
|
+
readonly failed: number;
|
|
196
|
+
/** Total duration in milliseconds */
|
|
197
|
+
readonly duration: number;
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Database type for SQL dialect
|
|
201
|
+
*/
|
|
202
|
+
export type DatabaseType = 'sqlite' | 'postgresql' | 'mysql';
|
|
203
|
+
/**
|
|
204
|
+
* Configuration for the migration runner
|
|
205
|
+
*/
|
|
206
|
+
export interface MigrationConfig {
|
|
207
|
+
/** Working directory (project root) */
|
|
208
|
+
readonly cwd: string;
|
|
209
|
+
/** Database type */
|
|
210
|
+
readonly database: DatabaseType;
|
|
211
|
+
/** Path to migrations directory (relative to cwd) */
|
|
212
|
+
readonly migrationsPath: string;
|
|
213
|
+
}
|
|
214
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/migrations/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Migration Types
|
|
3
|
+
*
|
|
4
|
+
* Core type definitions for the VeloxTS migration runner system.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Create a new PrismaClient instance dynamically.
|
|
8
|
+
*
|
|
9
|
+
* This function handles the dynamic import of @prisma/client at runtime,
|
|
10
|
+
* avoiding compile-time dependency on generated Prisma types.
|
|
11
|
+
*
|
|
12
|
+
* @returns A new PrismaClient instance typed as PrismaClientLike
|
|
13
|
+
*/
|
|
14
|
+
export async function createPrismaClient() {
|
|
15
|
+
// Dynamic import with type assertion to handle varying module structures
|
|
16
|
+
const prismaModule = (await import('@prisma/client'));
|
|
17
|
+
return new prismaModule.PrismaClient();
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/migrations/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA4CH;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,yEAAyE;IACzE,MAAM,YAAY,GAAG,CAAC,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAA4B,CAAC;IACjF,OAAO,IAAI,YAAY,CAAC,YAAY,EAAE,CAAC;AACzC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@veloxts/cli",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.2",
|
|
4
4
|
"description": "Developer tooling and CLI commands for VeloxTS framework",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -18,20 +18,38 @@
|
|
|
18
18
|
"dist",
|
|
19
19
|
"README.md"
|
|
20
20
|
],
|
|
21
|
+
"tsd": {
|
|
22
|
+
"directory": "src/migrations/__type-tests__",
|
|
23
|
+
"compilerOptions": {
|
|
24
|
+
"paths": {
|
|
25
|
+
"@veloxts/cli": [
|
|
26
|
+
"dist"
|
|
27
|
+
]
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
},
|
|
21
31
|
"dependencies": {
|
|
22
|
-
"commander": "14.0.2",
|
|
23
32
|
"@clack/prompts": "0.11.0",
|
|
33
|
+
"commander": "14.0.2",
|
|
24
34
|
"picocolors": "1.1.1",
|
|
35
|
+
"pluralize": "8.0.0",
|
|
25
36
|
"tsx": "4.21.0",
|
|
26
|
-
"@veloxts/
|
|
27
|
-
"@veloxts/
|
|
28
|
-
"@veloxts/
|
|
29
|
-
"@veloxts/
|
|
30
|
-
"@veloxts/
|
|
37
|
+
"@veloxts/auth": "0.4.2",
|
|
38
|
+
"@veloxts/core": "0.4.2",
|
|
39
|
+
"@veloxts/orm": "0.4.2",
|
|
40
|
+
"@veloxts/router": "0.4.2",
|
|
41
|
+
"@veloxts/validation": "0.4.2"
|
|
42
|
+
},
|
|
43
|
+
"peerDependencies": {
|
|
44
|
+
"@prisma/client": ">=5.0.0"
|
|
31
45
|
},
|
|
32
46
|
"devDependencies": {
|
|
47
|
+
"@prisma/client": "6.9.0",
|
|
33
48
|
"@types/node": "24.10.1",
|
|
34
|
-
"
|
|
49
|
+
"@types/pluralize": "0.0.33",
|
|
50
|
+
"tsd": "0.32.0",
|
|
51
|
+
"typescript": "5.9.3",
|
|
52
|
+
"vitest": "4.0.15"
|
|
35
53
|
},
|
|
36
54
|
"keywords": [
|
|
37
55
|
"velox",
|
|
@@ -56,6 +74,9 @@
|
|
|
56
74
|
"build": "tsc",
|
|
57
75
|
"dev": "tsc --watch",
|
|
58
76
|
"type-check": "tsc --noEmit",
|
|
77
|
+
"test": "vitest run",
|
|
78
|
+
"test:watch": "vitest",
|
|
79
|
+
"test:types": "tsd",
|
|
59
80
|
"clean": "rm -rf dist tsconfig.tsbuildinfo"
|
|
60
81
|
}
|
|
61
82
|
}
|