@veloxts/cli 0.4.2 → 0.4.4

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 (87) hide show
  1. package/dist/cli.js +4 -0
  2. package/dist/cli.js.map +1 -1
  3. package/dist/commands/db.d.ts +12 -0
  4. package/dist/commands/db.d.ts.map +1 -0
  5. package/dist/commands/db.js +18 -0
  6. package/dist/commands/db.js.map +1 -0
  7. package/dist/commands/dev.d.ts.map +1 -1
  8. package/dist/commands/dev.js +29 -3
  9. package/dist/commands/dev.js.map +1 -1
  10. package/dist/commands/procedures.d.ts +12 -0
  11. package/dist/commands/procedures.d.ts.map +1 -0
  12. package/dist/commands/procedures.js +153 -0
  13. package/dist/commands/procedures.js.map +1 -0
  14. package/dist/dev/hmr-runner.d.ts +52 -0
  15. package/dist/dev/hmr-runner.d.ts.map +1 -0
  16. package/dist/dev/hmr-runner.js +153 -0
  17. package/dist/dev/hmr-runner.js.map +1 -0
  18. package/dist/dev/index.d.ts +6 -0
  19. package/dist/dev/index.d.ts.map +1 -0
  20. package/dist/dev/index.js +6 -0
  21. package/dist/dev/index.js.map +1 -0
  22. package/dist/dev/watch-config.d.ts +32 -0
  23. package/dist/dev/watch-config.d.ts.map +1 -0
  24. package/dist/dev/watch-config.js +74 -0
  25. package/dist/dev/watch-config.js.map +1 -0
  26. package/dist/generators/generators/factory.d.ts +36 -0
  27. package/dist/generators/generators/factory.d.ts.map +1 -0
  28. package/dist/generators/generators/factory.js +85 -0
  29. package/dist/generators/generators/factory.js.map +1 -0
  30. package/dist/generators/generators/index.d.ts +2 -0
  31. package/dist/generators/generators/index.d.ts.map +1 -1
  32. package/dist/generators/generators/index.js +8 -0
  33. package/dist/generators/generators/index.js.map +1 -1
  34. package/dist/generators/generators/seeder.d.ts +36 -0
  35. package/dist/generators/generators/seeder.d.ts.map +1 -0
  36. package/dist/generators/generators/seeder.js +99 -0
  37. package/dist/generators/generators/seeder.js.map +1 -0
  38. package/dist/generators/templates/factory.d.ts +26 -0
  39. package/dist/generators/templates/factory.d.ts.map +1 -0
  40. package/dist/generators/templates/factory.js +125 -0
  41. package/dist/generators/templates/factory.js.map +1 -0
  42. package/dist/generators/templates/seeder.d.ts +34 -0
  43. package/dist/generators/templates/seeder.d.ts.map +1 -0
  44. package/dist/generators/templates/seeder.js +129 -0
  45. package/dist/generators/templates/seeder.js.map +1 -0
  46. package/dist/index.d.ts +5 -0
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +5 -0
  49. package/dist/index.js.map +1 -1
  50. package/dist/seeding/commands/seed.d.ts +11 -0
  51. package/dist/seeding/commands/seed.d.ts.map +1 -0
  52. package/dist/seeding/commands/seed.js +268 -0
  53. package/dist/seeding/commands/seed.js.map +1 -0
  54. package/dist/seeding/errors.d.ts +119 -0
  55. package/dist/seeding/errors.d.ts.map +1 -0
  56. package/dist/seeding/errors.js +191 -0
  57. package/dist/seeding/errors.js.map +1 -0
  58. package/dist/seeding/factory.d.ts +162 -0
  59. package/dist/seeding/factory.d.ts.map +1 -0
  60. package/dist/seeding/factory.js +250 -0
  61. package/dist/seeding/factory.js.map +1 -0
  62. package/dist/seeding/index.d.ts +31 -0
  63. package/dist/seeding/index.d.ts.map +1 -0
  64. package/dist/seeding/index.js +41 -0
  65. package/dist/seeding/index.js.map +1 -0
  66. package/dist/seeding/loader.d.ts +41 -0
  67. package/dist/seeding/loader.d.ts.map +1 -0
  68. package/dist/seeding/loader.js +210 -0
  69. package/dist/seeding/loader.js.map +1 -0
  70. package/dist/seeding/registry.d.ts +116 -0
  71. package/dist/seeding/registry.d.ts.map +1 -0
  72. package/dist/seeding/registry.js +298 -0
  73. package/dist/seeding/registry.js.map +1 -0
  74. package/dist/seeding/runner.d.ts +88 -0
  75. package/dist/seeding/runner.d.ts.map +1 -0
  76. package/dist/seeding/runner.js +254 -0
  77. package/dist/seeding/runner.js.map +1 -0
  78. package/dist/seeding/types.d.ts +247 -0
  79. package/dist/seeding/types.d.ts.map +1 -0
  80. package/dist/seeding/types.js +7 -0
  81. package/dist/seeding/types.js.map +1 -0
  82. package/dist/utils/output.d.ts +12 -0
  83. package/dist/utils/output.d.ts.map +1 -1
  84. package/dist/utils/output.js +21 -0
  85. package/dist/utils/output.js.map +1 -1
  86. package/package.json +18 -17
  87. package/LICENSE +0 -21
@@ -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"}
@@ -47,4 +47,16 @@ export declare function formatCommand(command: string): string;
47
47
  * Format a URL for display
48
48
  */
49
49
  export declare function formatUrl(url: string): string;
50
+ /**
51
+ * Format duration in milliseconds for display
52
+ */
53
+ export declare function formatDuration(ms: number): string;
54
+ /**
55
+ * Print restart timing information
56
+ */
57
+ export declare function restartTiming(ms: number): void;
58
+ /**
59
+ * Print startup timing information
60
+ */
61
+ export declare function startupTiming(ms: number): void;
50
62
  //# sourceMappingURL=output.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/utils/output.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAKjD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAIjD;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE7C;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE3C;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE7C;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE1C;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE1C;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEjD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE7C"}
1
+ {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/utils/output.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAKjD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAIjD;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE7C;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE3C;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE7C;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE1C;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE1C;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEjD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAKjD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAE9C;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAE9C"}
@@ -75,4 +75,25 @@ export function formatCommand(command) {
75
75
  export function formatUrl(url) {
76
76
  return pc.cyan(url);
77
77
  }
78
+ /**
79
+ * Format duration in milliseconds for display
80
+ */
81
+ export function formatDuration(ms) {
82
+ if (ms < 1000) {
83
+ return `${ms}ms`;
84
+ }
85
+ return `${(ms / 1000).toFixed(2)}s`;
86
+ }
87
+ /**
88
+ * Print restart timing information
89
+ */
90
+ export function restartTiming(ms) {
91
+ console.log(`${pc.green('✓')} Restarted in ${pc.cyan(formatDuration(ms))}`);
92
+ }
93
+ /**
94
+ * Print startup timing information
95
+ */
96
+ export function startupTiming(ms) {
97
+ console.log(`${pc.green('✓')} Server ready in ${pc.cyan(formatDuration(ms))}`);
98
+ }
78
99
  //# sourceMappingURL=output.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/utils/output.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,OAAe;IACzC,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,IAAI,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,OAAe;IACrC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,KAAK,CAAC,OAAe;IACnC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AACrD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,OAAe;IACrC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAC1D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,IAAI,CAAC,OAAe;IAClC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,IAAI,CAAC,OAAe;IAClC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,OAAe;IACzC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,GAAW;IACnC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/utils/output.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@veloxts/cli",
3
- "version": "0.4.2",
3
+ "version": "0.4.4",
4
4
  "description": "Developer tooling and CLI commands for VeloxTS framework",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -18,6 +18,15 @@
18
18
  "dist",
19
19
  "README.md"
20
20
  ],
21
+ "scripts": {
22
+ "build": "tsc",
23
+ "dev": "tsc --watch",
24
+ "type-check": "tsc --noEmit",
25
+ "test": "vitest run",
26
+ "test:watch": "vitest",
27
+ "test:types": "tsd",
28
+ "clean": "rm -rf dist tsconfig.tsbuildinfo"
29
+ },
21
30
  "tsd": {
22
31
  "directory": "src/migrations/__type-tests__",
23
32
  "compilerOptions": {
@@ -30,15 +39,16 @@
30
39
  },
31
40
  "dependencies": {
32
41
  "@clack/prompts": "0.11.0",
42
+ "@veloxts/auth": "workspace:*",
43
+ "@veloxts/core": "workspace:*",
44
+ "@veloxts/orm": "workspace:*",
45
+ "@veloxts/router": "workspace:*",
46
+ "@veloxts/validation": "workspace:*",
33
47
  "commander": "14.0.2",
48
+ "hot-hook": "0.4.0",
34
49
  "picocolors": "1.1.1",
35
50
  "pluralize": "8.0.0",
36
- "tsx": "4.21.0",
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"
51
+ "tsx": "4.21.0"
42
52
  },
43
53
  "peerDependencies": {
44
54
  "@prisma/client": ">=5.0.0"
@@ -69,14 +79,5 @@
69
79
  },
70
80
  "publishConfig": {
71
81
  "access": "public"
72
- },
73
- "scripts": {
74
- "build": "tsc",
75
- "dev": "tsc --watch",
76
- "type-check": "tsc --noEmit",
77
- "test": "vitest run",
78
- "test:watch": "vitest",
79
- "test:types": "tsd",
80
- "clean": "rm -rf dist tsconfig.tsbuildinfo"
81
82
  }
82
- }
83
+ }
package/LICENSE DELETED
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2025 VeloxTS Framework Contributors
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.