@veloxts/cli 0.4.1 → 0.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/README.md +23 -144
  2. package/dist/cli.js +4 -0
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/db.d.ts +12 -0
  5. package/dist/commands/db.d.ts.map +1 -0
  6. package/dist/commands/db.js +18 -0
  7. package/dist/commands/db.js.map +1 -0
  8. package/dist/commands/procedures.d.ts +12 -0
  9. package/dist/commands/procedures.d.ts.map +1 -0
  10. package/dist/commands/procedures.js +153 -0
  11. package/dist/commands/procedures.js.map +1 -0
  12. package/dist/generators/generators/factory.d.ts +36 -0
  13. package/dist/generators/generators/factory.d.ts.map +1 -0
  14. package/dist/generators/generators/factory.js +85 -0
  15. package/dist/generators/generators/factory.js.map +1 -0
  16. package/dist/generators/generators/index.d.ts +2 -0
  17. package/dist/generators/generators/index.d.ts.map +1 -1
  18. package/dist/generators/generators/index.js +8 -0
  19. package/dist/generators/generators/index.js.map +1 -1
  20. package/dist/generators/generators/seeder.d.ts +36 -0
  21. package/dist/generators/generators/seeder.d.ts.map +1 -0
  22. package/dist/generators/generators/seeder.js +99 -0
  23. package/dist/generators/generators/seeder.js.map +1 -0
  24. package/dist/generators/templates/factory.d.ts +26 -0
  25. package/dist/generators/templates/factory.d.ts.map +1 -0
  26. package/dist/generators/templates/factory.js +125 -0
  27. package/dist/generators/templates/factory.js.map +1 -0
  28. package/dist/generators/templates/seeder.d.ts +34 -0
  29. package/dist/generators/templates/seeder.d.ts.map +1 -0
  30. package/dist/generators/templates/seeder.js +129 -0
  31. package/dist/generators/templates/seeder.js.map +1 -0
  32. package/dist/index.d.ts +5 -0
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +5 -0
  35. package/dist/index.js.map +1 -1
  36. package/dist/migrations/rollback-runner.d.ts.map +1 -1
  37. package/dist/migrations/rollback-runner.js +13 -1
  38. package/dist/migrations/rollback-runner.js.map +1 -1
  39. package/dist/seeding/commands/seed.d.ts +11 -0
  40. package/dist/seeding/commands/seed.d.ts.map +1 -0
  41. package/dist/seeding/commands/seed.js +268 -0
  42. package/dist/seeding/commands/seed.js.map +1 -0
  43. package/dist/seeding/errors.d.ts +119 -0
  44. package/dist/seeding/errors.d.ts.map +1 -0
  45. package/dist/seeding/errors.js +191 -0
  46. package/dist/seeding/errors.js.map +1 -0
  47. package/dist/seeding/factory.d.ts +162 -0
  48. package/dist/seeding/factory.d.ts.map +1 -0
  49. package/dist/seeding/factory.js +250 -0
  50. package/dist/seeding/factory.js.map +1 -0
  51. package/dist/seeding/index.d.ts +31 -0
  52. package/dist/seeding/index.d.ts.map +1 -0
  53. package/dist/seeding/index.js +41 -0
  54. package/dist/seeding/index.js.map +1 -0
  55. package/dist/seeding/loader.d.ts +41 -0
  56. package/dist/seeding/loader.d.ts.map +1 -0
  57. package/dist/seeding/loader.js +210 -0
  58. package/dist/seeding/loader.js.map +1 -0
  59. package/dist/seeding/registry.d.ts +116 -0
  60. package/dist/seeding/registry.d.ts.map +1 -0
  61. package/dist/seeding/registry.js +298 -0
  62. package/dist/seeding/registry.js.map +1 -0
  63. package/dist/seeding/runner.d.ts +88 -0
  64. package/dist/seeding/runner.d.ts.map +1 -0
  65. package/dist/seeding/runner.js +254 -0
  66. package/dist/seeding/runner.js.map +1 -0
  67. package/dist/seeding/types.d.ts +247 -0
  68. package/dist/seeding/types.d.ts.map +1 -0
  69. package/dist/seeding/types.js +7 -0
  70. package/dist/seeding/types.js.map +1 -0
  71. package/package.json +6 -6
@@ -0,0 +1,88 @@
1
+ /**
2
+ * Seeder Runner
3
+ *
4
+ * Executes seeders with dependency resolution, logging, and error handling.
5
+ */
6
+ import type { SeederRegistry } from './registry.js';
7
+ import type { BatchSeederResult, PrismaClientLike, SeederRunOptions } from './types.js';
8
+ /**
9
+ * Seeder execution runner.
10
+ *
11
+ * Handles running seeders in correct dependency order with proper
12
+ * context, logging, and error handling.
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * const runner = new SeederRunner(prisma, registry);
17
+ *
18
+ * // Run all seeders
19
+ * const result = await runner.runAll();
20
+ *
21
+ * // Run specific seeders
22
+ * const result = await runner.run(['UserSeeder', 'PostSeeder']);
23
+ *
24
+ * // Fresh seed (truncate first)
25
+ * const result = await runner.fresh();
26
+ * ```
27
+ */
28
+ export declare class SeederRunner {
29
+ private readonly prisma;
30
+ private readonly registry;
31
+ private readonly factoryRegistry;
32
+ constructor(prisma: PrismaClientLike, registry: SeederRegistry);
33
+ /**
34
+ * Run all registered seeders in dependency order.
35
+ *
36
+ * @param options - Run options
37
+ * @returns Batch result with individual seeder results
38
+ */
39
+ runAll(options?: SeederRunOptions): Promise<BatchSeederResult>;
40
+ /**
41
+ * Run specific seeders by name (includes their dependencies).
42
+ *
43
+ * @param names - Seeder names to run
44
+ * @param options - Run options
45
+ * @returns Batch result with individual seeder results
46
+ */
47
+ run(names: string[], options?: SeederRunOptions): Promise<BatchSeederResult>;
48
+ /**
49
+ * Run seeders with fresh (truncate tables first).
50
+ *
51
+ * Calls truncate() on each seeder in reverse order, then runs them.
52
+ *
53
+ * @param options - Run options
54
+ * @returns Batch result with individual seeder results
55
+ */
56
+ fresh(options?: SeederRunOptions): Promise<BatchSeederResult>;
57
+ /**
58
+ * Execute a list of seeders in order.
59
+ */
60
+ private executeSeeders;
61
+ /**
62
+ * Execute a single seeder.
63
+ */
64
+ private executeSeeder;
65
+ /**
66
+ * Truncate tables for seeders that implement truncate().
67
+ */
68
+ private truncateSeeders;
69
+ /**
70
+ * Create execution context for a seeder.
71
+ */
72
+ private createContext;
73
+ /**
74
+ * Create logger for a seeder.
75
+ */
76
+ private createLogger;
77
+ /**
78
+ * Detect current environment from NODE_ENV.
79
+ */
80
+ private detectEnvironment;
81
+ /**
82
+ * Test database connection.
83
+ *
84
+ * @throws SeederError if connection fails
85
+ */
86
+ testConnection(): Promise<void>;
87
+ }
88
+ //# sourceMappingURL=runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/seeding/runner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EACV,iBAAiB,EAGjB,gBAAgB,EAKhB,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAMpB;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;IAC1C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;IAC1C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;gBAEtC,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,cAAc;IAU9D;;;;;OAKG;IACG,MAAM,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAOxE;;;;;;OAMG;IACG,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAOtF;;;;;;;OAOG;IACG,KAAK,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAgBvE;;OAEG;YACW,cAAc;IAmC5B;;OAEG;YACW,aAAa;IAmC3B;;OAEG;YACW,eAAe;IAmB7B;;OAEG;IACH,OAAO,CAAC,aAAa;IAyBrB;;OAEG;IACH,OAAO,CAAC,YAAY;IAiCpB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAazB;;;;OAIG;IACG,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;CAStC"}
@@ -0,0 +1,254 @@
1
+ /**
2
+ * Seeder Runner
3
+ *
4
+ * Executes seeders with dependency resolution, logging, and error handling.
5
+ */
6
+ import { executionFailed, seederDatabaseError, truncationFailed } from './errors.js';
7
+ import { createFactoryRegistry } from './factory.js';
8
+ // ============================================================================
9
+ // Seeder Runner
10
+ // ============================================================================
11
+ /**
12
+ * Seeder execution runner.
13
+ *
14
+ * Handles running seeders in correct dependency order with proper
15
+ * context, logging, and error handling.
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * const runner = new SeederRunner(prisma, registry);
20
+ *
21
+ * // Run all seeders
22
+ * const result = await runner.runAll();
23
+ *
24
+ * // Run specific seeders
25
+ * const result = await runner.run(['UserSeeder', 'PostSeeder']);
26
+ *
27
+ * // Fresh seed (truncate first)
28
+ * const result = await runner.fresh();
29
+ * ```
30
+ */
31
+ export class SeederRunner {
32
+ prisma;
33
+ registry;
34
+ factoryRegistry;
35
+ constructor(prisma, registry) {
36
+ this.prisma = prisma;
37
+ this.registry = registry;
38
+ this.factoryRegistry = createFactoryRegistry(prisma);
39
+ }
40
+ // ==========================================================================
41
+ // Public API
42
+ // ==========================================================================
43
+ /**
44
+ * Run all registered seeders in dependency order.
45
+ *
46
+ * @param options - Run options
47
+ * @returns Batch result with individual seeder results
48
+ */
49
+ async runAll(options = {}) {
50
+ const environment = options.environment ?? this.detectEnvironment();
51
+ const seeders = this.registry.getInOrder(environment);
52
+ return this.executeSeeders(seeders, options);
53
+ }
54
+ /**
55
+ * Run specific seeders by name (includes their dependencies).
56
+ *
57
+ * @param names - Seeder names to run
58
+ * @param options - Run options
59
+ * @returns Batch result with individual seeder results
60
+ */
61
+ async run(names, options = {}) {
62
+ const environment = options.environment ?? this.detectEnvironment();
63
+ const seeders = this.registry.getByNames(names, environment);
64
+ return this.executeSeeders(seeders, options);
65
+ }
66
+ /**
67
+ * Run seeders with fresh (truncate tables first).
68
+ *
69
+ * Calls truncate() on each seeder in reverse order, then runs them.
70
+ *
71
+ * @param options - Run options
72
+ * @returns Batch result with individual seeder results
73
+ */
74
+ async fresh(options = {}) {
75
+ const environment = options.environment ?? this.detectEnvironment();
76
+ const seeders = this.registry.getInOrder(environment);
77
+ // Truncate in reverse order (dependents first)
78
+ if (!options.dryRun) {
79
+ await this.truncateSeeders([...seeders].reverse(), options);
80
+ }
81
+ return this.executeSeeders(seeders, options);
82
+ }
83
+ // ==========================================================================
84
+ // Execution
85
+ // ==========================================================================
86
+ /**
87
+ * Execute a list of seeders in order.
88
+ */
89
+ async executeSeeders(seeders, options) {
90
+ const startTime = Date.now();
91
+ const results = [];
92
+ let successful = 0;
93
+ let failed = 0;
94
+ for (const seeder of seeders) {
95
+ const result = await this.executeSeeder(seeder, options);
96
+ results.push(result);
97
+ if (result.success) {
98
+ successful++;
99
+ }
100
+ else {
101
+ failed++;
102
+ // Stop on first failure to prevent cascading errors
103
+ break;
104
+ }
105
+ }
106
+ // Calculate skipped as seeders that weren't executed due to early failure
107
+ const skipped = seeders.length - results.length;
108
+ return {
109
+ results,
110
+ total: seeders.length,
111
+ successful,
112
+ failed,
113
+ skipped,
114
+ duration: Date.now() - startTime,
115
+ };
116
+ }
117
+ /**
118
+ * Execute a single seeder.
119
+ */
120
+ async executeSeeder(seeder, options) {
121
+ const startTime = Date.now();
122
+ // Dry run - just report what would run
123
+ if (options.dryRun) {
124
+ return {
125
+ name: seeder.name,
126
+ success: true,
127
+ duration: 0,
128
+ };
129
+ }
130
+ // Create context for this seeder
131
+ const context = this.createContext(seeder, options);
132
+ try {
133
+ await seeder.run(context);
134
+ return {
135
+ name: seeder.name,
136
+ success: true,
137
+ duration: Date.now() - startTime,
138
+ };
139
+ }
140
+ catch (error) {
141
+ const err = error instanceof Error ? error : new Error(String(error));
142
+ return {
143
+ name: seeder.name,
144
+ success: false,
145
+ duration: Date.now() - startTime,
146
+ error: err.message,
147
+ };
148
+ }
149
+ }
150
+ /**
151
+ * Truncate tables for seeders that implement truncate().
152
+ */
153
+ async truncateSeeders(seeders, options) {
154
+ for (const seeder of seeders) {
155
+ if (seeder.truncate) {
156
+ const context = this.createContext(seeder, options);
157
+ try {
158
+ await seeder.truncate(context);
159
+ }
160
+ catch (error) {
161
+ const err = error instanceof Error ? error : new Error(String(error));
162
+ throw truncationFailed(seeder.name, err);
163
+ }
164
+ }
165
+ }
166
+ }
167
+ // ==========================================================================
168
+ // Context Creation
169
+ // ==========================================================================
170
+ /**
171
+ * Create execution context for a seeder.
172
+ */
173
+ createContext(seeder, options) {
174
+ const environment = options.environment ?? this.detectEnvironment();
175
+ const log = this.createLogger(seeder.name, options);
176
+ // Capture `this` for runSeeder closure
177
+ const runner = this;
178
+ return {
179
+ db: this.prisma,
180
+ factory: this.factoryRegistry,
181
+ environment,
182
+ log,
183
+ async runSeeder(innerSeeder) {
184
+ const innerContext = runner.createContext(innerSeeder, options);
185
+ try {
186
+ await innerSeeder.run(innerContext);
187
+ }
188
+ catch (error) {
189
+ const err = error instanceof Error ? error : new Error(String(error));
190
+ throw executionFailed(innerSeeder.name, err);
191
+ }
192
+ },
193
+ };
194
+ }
195
+ /**
196
+ * Create logger for a seeder.
197
+ */
198
+ createLogger(seederName, options) {
199
+ const prefix = `[${seederName}]`;
200
+ const verbose = options.verbose ?? false;
201
+ return {
202
+ info(message) {
203
+ console.log(`${prefix} ${message}`);
204
+ },
205
+ success(message) {
206
+ console.log(`${prefix} \u2714 ${message}`);
207
+ },
208
+ warning(message) {
209
+ console.log(`${prefix} \u26A0 ${message}`);
210
+ },
211
+ error(message) {
212
+ console.error(`${prefix} \u2718 ${message}`);
213
+ },
214
+ debug(message) {
215
+ if (verbose) {
216
+ console.log(`${prefix} [debug] ${message}`);
217
+ }
218
+ },
219
+ };
220
+ }
221
+ // ==========================================================================
222
+ // Helpers
223
+ // ==========================================================================
224
+ /**
225
+ * Detect current environment from NODE_ENV.
226
+ */
227
+ detectEnvironment() {
228
+ const env = process.env.NODE_ENV;
229
+ switch (env) {
230
+ case 'production':
231
+ return 'production';
232
+ case 'test':
233
+ return 'test';
234
+ default:
235
+ return 'development';
236
+ }
237
+ }
238
+ /**
239
+ * Test database connection.
240
+ *
241
+ * @throws SeederError if connection fails
242
+ */
243
+ async testConnection() {
244
+ try {
245
+ // Execute a simple query to test connection
246
+ await this.prisma.$queryRaw `SELECT 1`;
247
+ }
248
+ catch (error) {
249
+ const err = error instanceof Error ? error : new Error(String(error));
250
+ throw seederDatabaseError('connection test', err);
251
+ }
252
+ }
253
+ }
254
+ //# sourceMappingURL=runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/seeding/runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,247 @@
1
+ /**
2
+ * Seeding Types
3
+ *
4
+ * Core type definitions for the VeloxTS database seeding system.
5
+ */
6
+ import type { PrismaClientLike } from '../migrations/types.js';
7
+ export type { PrismaClientLike };
8
+ /**
9
+ * Valid environment names for seeder filtering
10
+ */
11
+ export type Environment = 'development' | 'production' | 'test';
12
+ /**
13
+ * Logger interface for seeder output
14
+ */
15
+ export interface SeederLogger {
16
+ /** Log informational message */
17
+ info(message: string): void;
18
+ /** Log success message */
19
+ success(message: string): void;
20
+ /** Log warning message */
21
+ warning(message: string): void;
22
+ /** Log error message */
23
+ error(message: string): void;
24
+ /** Log debug message (only in verbose mode) */
25
+ debug(message: string): void;
26
+ }
27
+ /**
28
+ * Factory interface for creating model instances with fake data.
29
+ *
30
+ * @template TInput - The input type for creating records
31
+ * @template TOutput - The output type returned from database (defaults to TInput)
32
+ *
33
+ * @example
34
+ * ```typescript
35
+ * const users = await factory.get(UserFactory).create(10);
36
+ * const admin = await factory.get(UserFactory).state('admin').create();
37
+ * ```
38
+ */
39
+ export interface Factory<TInput extends Record<string, unknown>, TOutput = TInput> {
40
+ /** Model name for Prisma operations (e.g., 'user', 'post') */
41
+ readonly modelName: string;
42
+ /** Define default attributes for new instances */
43
+ definition(): TInput;
44
+ /**
45
+ * Create a single instance in the database
46
+ * @param overrides - Attributes to override defaults
47
+ */
48
+ create(overrides?: Partial<TInput>): Promise<TOutput>;
49
+ /**
50
+ * Create multiple instances in the database
51
+ * @param count - Number of instances to create
52
+ * @param overrides - Attributes to override defaults for all instances
53
+ */
54
+ createMany(count: number, overrides?: Partial<TInput>): Promise<TOutput[]>;
55
+ /**
56
+ * Make a single instance without persisting to database
57
+ * @param overrides - Attributes to override defaults
58
+ */
59
+ make(overrides?: Partial<TInput>): TInput;
60
+ /**
61
+ * Make multiple instances without persisting to database
62
+ * @param count - Number of instances to make
63
+ * @param overrides - Attributes to override defaults for all instances
64
+ */
65
+ makeMany(count: number, overrides?: Partial<TInput>): TInput[];
66
+ /**
67
+ * Apply a named state modifier
68
+ * @param name - State name to apply
69
+ * @returns New factory instance with state applied
70
+ */
71
+ state(name: string): Factory<TInput, TOutput>;
72
+ /**
73
+ * Get list of available state names
74
+ */
75
+ getAvailableStates(): ReadonlyArray<string>;
76
+ }
77
+ /**
78
+ * State modifier function type
79
+ */
80
+ export type StateModifier<TInput> = (attrs: TInput) => Partial<TInput>;
81
+ /**
82
+ * Factory constructor type for registry
83
+ */
84
+ export interface FactoryConstructor<TInput extends Record<string, unknown> = Record<string, unknown>, TOutput = TInput> {
85
+ new (prisma: PrismaClientLike): Factory<TInput, TOutput>;
86
+ }
87
+ /**
88
+ * Registry for managing factory instances
89
+ */
90
+ export interface FactoryRegistry {
91
+ /**
92
+ * Get or create a factory instance
93
+ * @param FactoryClass - The factory constructor class
94
+ */
95
+ get<TInput extends Record<string, unknown>, TOutput = TInput>(FactoryClass: FactoryConstructor<TInput, TOutput>): Factory<TInput, TOutput>;
96
+ /**
97
+ * Clear all cached factory instances
98
+ */
99
+ clear(): void;
100
+ }
101
+ /**
102
+ * Context passed to seeders during execution.
103
+ *
104
+ * Provides access to database, factories, and logging utilities.
105
+ */
106
+ export interface SeederContext {
107
+ /** Prisma client for database operations */
108
+ readonly db: PrismaClientLike;
109
+ /** Factory registry for creating fake data */
110
+ readonly factory: FactoryRegistry;
111
+ /** Current environment (development, production, test) */
112
+ readonly environment: Environment;
113
+ /** Logger for seeder output */
114
+ readonly log: SeederLogger;
115
+ /**
116
+ * Run another seeder (for composition)
117
+ * @param seeder - Seeder to run
118
+ */
119
+ runSeeder(seeder: Seeder): Promise<void>;
120
+ }
121
+ /**
122
+ * Base seeder interface - all seeders implement this.
123
+ *
124
+ * @example
125
+ * ```typescript
126
+ * export const UserSeeder: Seeder = {
127
+ * name: 'UserSeeder',
128
+ * dependencies: ['RoleSeeder'],
129
+ *
130
+ * async run({ db, factory, log }) {
131
+ * await factory.get(UserFactory).createMany(10);
132
+ * log.success('Created 10 users');
133
+ * },
134
+ * };
135
+ * ```
136
+ */
137
+ export interface Seeder {
138
+ /** Unique seeder name (e.g., 'UserSeeder') */
139
+ readonly name: string;
140
+ /**
141
+ * Seeders that must run before this one.
142
+ * Used for dependency resolution and execution ordering.
143
+ */
144
+ readonly dependencies?: ReadonlyArray<string>;
145
+ /**
146
+ * Environments this seeder runs in.
147
+ * If not specified, runs in all environments.
148
+ */
149
+ readonly environments?: ReadonlyArray<Environment>;
150
+ /**
151
+ * Run the seeder - populate data.
152
+ * @param context - Seeder execution context
153
+ */
154
+ run(context: SeederContext): Promise<void>;
155
+ /**
156
+ * Optional: Truncate related tables before seeding.
157
+ * Called when running with --fresh flag.
158
+ * @param context - Seeder execution context
159
+ */
160
+ truncate?(context: SeederContext): Promise<void>;
161
+ }
162
+ /**
163
+ * Result of seeder execution
164
+ */
165
+ export interface SeederResult {
166
+ /** Seeder name */
167
+ readonly name: string;
168
+ /** Whether execution succeeded */
169
+ readonly success: boolean;
170
+ /** Duration in milliseconds */
171
+ readonly duration: number;
172
+ /** Error message if failed */
173
+ readonly error?: string;
174
+ /** Number of records created (if tracked) */
175
+ readonly recordsCreated?: number;
176
+ }
177
+ /**
178
+ * Result of batch seeder execution
179
+ */
180
+ export interface BatchSeederResult {
181
+ /** Individual seeder results */
182
+ readonly results: ReadonlyArray<SeederResult>;
183
+ /** Total seeders executed */
184
+ readonly total: number;
185
+ /** Number of successful seeders */
186
+ readonly successful: number;
187
+ /** Number of failed seeders */
188
+ readonly failed: number;
189
+ /** Number of skipped seeders */
190
+ readonly skipped: number;
191
+ /** Total duration in milliseconds */
192
+ readonly duration: number;
193
+ }
194
+ /**
195
+ * Options for db:seed command
196
+ */
197
+ export interface SeedCommandOptions {
198
+ /** Run truncate before seeding (fresh seed) */
199
+ readonly fresh?: boolean;
200
+ /** Run specific seeder class by name */
201
+ readonly class?: string;
202
+ /** Skip confirmation in production */
203
+ readonly force?: boolean;
204
+ /** Show what would run without executing */
205
+ readonly dryRun?: boolean;
206
+ /** Output as JSON */
207
+ readonly json?: boolean;
208
+ /** Verbose output */
209
+ readonly verbose?: boolean;
210
+ }
211
+ /**
212
+ * Options for seeder runner
213
+ */
214
+ export interface SeederRunOptions {
215
+ /** Run truncate before seeding */
216
+ readonly fresh?: boolean;
217
+ /** Specific seeders to run (by name) */
218
+ readonly only?: ReadonlyArray<string>;
219
+ /** Show what would run without executing */
220
+ readonly dryRun?: boolean;
221
+ /** Verbose output */
222
+ readonly verbose?: boolean;
223
+ /** Current environment */
224
+ readonly environment?: Environment;
225
+ }
226
+ /**
227
+ * Loaded seeder from filesystem
228
+ */
229
+ export interface LoadedSeeder {
230
+ /** Seeder instance */
231
+ readonly seeder: Seeder;
232
+ /** File path where seeder was loaded from */
233
+ readonly filePath: string;
234
+ }
235
+ /**
236
+ * Result of loading seeders from filesystem
237
+ */
238
+ export interface SeederLoadResult {
239
+ /** Successfully loaded seeders */
240
+ readonly seeders: ReadonlyArray<LoadedSeeder>;
241
+ /** Files that failed to load */
242
+ readonly errors: ReadonlyArray<{
243
+ readonly filePath: string;
244
+ readonly error: string;
245
+ }>;
246
+ }
247
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/seeding/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Seeding Types
3
+ *
4
+ * Core type definitions for the VeloxTS database seeding system.
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/seeding/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@veloxts/cli",
3
- "version": "0.4.1",
3
+ "version": "0.4.3",
4
4
  "description": "Developer tooling and CLI commands for VeloxTS framework",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -34,11 +34,11 @@
34
34
  "picocolors": "1.1.1",
35
35
  "pluralize": "8.0.0",
36
36
  "tsx": "4.21.0",
37
- "@veloxts/auth": "0.4.1",
38
- "@veloxts/core": "0.4.1",
39
- "@veloxts/orm": "0.4.1",
40
- "@veloxts/router": "0.4.1",
41
- "@veloxts/validation": "0.4.1"
37
+ "@veloxts/auth": "0.4.3",
38
+ "@veloxts/core": "0.4.3",
39
+ "@veloxts/orm": "0.4.3",
40
+ "@veloxts/router": "0.4.3",
41
+ "@veloxts/validation": "0.4.3"
42
42
  },
43
43
  "peerDependencies": {
44
44
  "@prisma/client": ">=5.0.0"