@veloxts/cli 0.4.0 → 0.4.1

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 (139) hide show
  1. package/dist/cli.js +2 -0
  2. package/dist/cli.js.map +1 -1
  3. package/dist/commands/generate.d.ts +17 -0
  4. package/dist/commands/generate.d.ts.map +1 -0
  5. package/dist/commands/generate.js +219 -0
  6. package/dist/commands/generate.js.map +1 -0
  7. package/dist/commands/migrate.d.ts +8 -3
  8. package/dist/commands/migrate.d.ts.map +1 -1
  9. package/dist/commands/migrate.js +17 -123
  10. package/dist/commands/migrate.js.map +1 -1
  11. package/dist/generators/base.d.ts +76 -0
  12. package/dist/generators/base.d.ts.map +1 -0
  13. package/dist/generators/base.js +271 -0
  14. package/dist/generators/base.js.map +1 -0
  15. package/dist/generators/generators/index.d.ts +17 -0
  16. package/dist/generators/generators/index.d.ts.map +1 -0
  17. package/dist/generators/generators/index.js +43 -0
  18. package/dist/generators/generators/index.js.map +1 -0
  19. package/dist/generators/generators/migration.d.ts +43 -0
  20. package/dist/generators/generators/migration.d.ts.map +1 -0
  21. package/dist/generators/generators/migration.js +121 -0
  22. package/dist/generators/generators/migration.js.map +1 -0
  23. package/dist/generators/generators/model.d.ts +38 -0
  24. package/dist/generators/generators/model.d.ts.map +1 -0
  25. package/dist/generators/generators/model.js +108 -0
  26. package/dist/generators/generators/model.js.map +1 -0
  27. package/dist/generators/generators/procedure.d.ts +37 -0
  28. package/dist/generators/generators/procedure.d.ts.map +1 -0
  29. package/dist/generators/generators/procedure.js +99 -0
  30. package/dist/generators/generators/procedure.js.map +1 -0
  31. package/dist/generators/generators/resource.d.ts +29 -0
  32. package/dist/generators/generators/resource.d.ts.map +1 -0
  33. package/dist/generators/generators/resource.js +124 -0
  34. package/dist/generators/generators/resource.js.map +1 -0
  35. package/dist/generators/generators/schema.d.ts +28 -0
  36. package/dist/generators/generators/schema.d.ts.map +1 -0
  37. package/dist/generators/generators/schema.js +83 -0
  38. package/dist/generators/generators/schema.js.map +1 -0
  39. package/dist/generators/generators/test.d.ts +28 -0
  40. package/dist/generators/generators/test.d.ts.map +1 -0
  41. package/dist/generators/generators/test.js +96 -0
  42. package/dist/generators/generators/test.js.map +1 -0
  43. package/dist/generators/index.d.ts +16 -0
  44. package/dist/generators/index.d.ts.map +1 -0
  45. package/dist/generators/index.js +16 -0
  46. package/dist/generators/index.js.map +1 -0
  47. package/dist/generators/registry.d.ts +97 -0
  48. package/dist/generators/registry.d.ts.map +1 -0
  49. package/dist/generators/registry.js +253 -0
  50. package/dist/generators/registry.js.map +1 -0
  51. package/dist/generators/templates/migration.d.ts +23 -0
  52. package/dist/generators/templates/migration.d.ts.map +1 -0
  53. package/dist/generators/templates/migration.js +389 -0
  54. package/dist/generators/templates/migration.js.map +1 -0
  55. package/dist/generators/templates/model.d.ts +37 -0
  56. package/dist/generators/templates/model.d.ts.map +1 -0
  57. package/dist/generators/templates/model.js +374 -0
  58. package/dist/generators/templates/model.js.map +1 -0
  59. package/dist/generators/templates/procedure.d.ts +25 -0
  60. package/dist/generators/templates/procedure.d.ts.map +1 -0
  61. package/dist/generators/templates/procedure.js +274 -0
  62. package/dist/generators/templates/procedure.js.map +1 -0
  63. package/dist/generators/templates/resource.d.ts +34 -0
  64. package/dist/generators/templates/resource.d.ts.map +1 -0
  65. package/dist/generators/templates/resource.js +550 -0
  66. package/dist/generators/templates/resource.js.map +1 -0
  67. package/dist/generators/templates/schema.d.ts +33 -0
  68. package/dist/generators/templates/schema.d.ts.map +1 -0
  69. package/dist/generators/templates/schema.js +248 -0
  70. package/dist/generators/templates/schema.js.map +1 -0
  71. package/dist/generators/templates/test.d.ts +31 -0
  72. package/dist/generators/templates/test.d.ts.map +1 -0
  73. package/dist/generators/templates/test.js +882 -0
  74. package/dist/generators/templates/test.js.map +1 -0
  75. package/dist/generators/types.d.ts +211 -0
  76. package/dist/generators/types.d.ts.map +1 -0
  77. package/dist/generators/types.js +54 -0
  78. package/dist/generators/types.js.map +1 -0
  79. package/dist/generators/utils/filesystem.d.ts +68 -0
  80. package/dist/generators/utils/filesystem.d.ts.map +1 -0
  81. package/dist/generators/utils/filesystem.js +217 -0
  82. package/dist/generators/utils/filesystem.js.map +1 -0
  83. package/dist/generators/utils/naming.d.ts +122 -0
  84. package/dist/generators/utils/naming.d.ts.map +1 -0
  85. package/dist/generators/utils/naming.js +198 -0
  86. package/dist/generators/utils/naming.js.map +1 -0
  87. package/dist/index.d.ts +4 -0
  88. package/dist/index.d.ts.map +1 -1
  89. package/dist/index.js +4 -0
  90. package/dist/index.js.map +1 -1
  91. package/dist/migrations/commands/fresh.d.ts +11 -0
  92. package/dist/migrations/commands/fresh.d.ts.map +1 -0
  93. package/dist/migrations/commands/fresh.js +164 -0
  94. package/dist/migrations/commands/fresh.js.map +1 -0
  95. package/dist/migrations/commands/index.d.ts +11 -0
  96. package/dist/migrations/commands/index.d.ts.map +1 -0
  97. package/dist/migrations/commands/index.js +11 -0
  98. package/dist/migrations/commands/index.js.map +1 -0
  99. package/dist/migrations/commands/reset.d.ts +11 -0
  100. package/dist/migrations/commands/reset.d.ts.map +1 -0
  101. package/dist/migrations/commands/reset.js +258 -0
  102. package/dist/migrations/commands/reset.js.map +1 -0
  103. package/dist/migrations/commands/rollback.d.ts +11 -0
  104. package/dist/migrations/commands/rollback.d.ts.map +1 -0
  105. package/dist/migrations/commands/rollback.js +241 -0
  106. package/dist/migrations/commands/rollback.js.map +1 -0
  107. package/dist/migrations/commands/run.d.ts +11 -0
  108. package/dist/migrations/commands/run.d.ts.map +1 -0
  109. package/dist/migrations/commands/run.js +183 -0
  110. package/dist/migrations/commands/run.js.map +1 -0
  111. package/dist/migrations/commands/status.d.ts +11 -0
  112. package/dist/migrations/commands/status.d.ts.map +1 -0
  113. package/dist/migrations/commands/status.js +154 -0
  114. package/dist/migrations/commands/status.js.map +1 -0
  115. package/dist/migrations/errors.d.ts +74 -0
  116. package/dist/migrations/errors.d.ts.map +1 -0
  117. package/dist/migrations/errors.js +155 -0
  118. package/dist/migrations/errors.js.map +1 -0
  119. package/dist/migrations/index.d.ts +13 -0
  120. package/dist/migrations/index.d.ts.map +1 -0
  121. package/dist/migrations/index.js +17 -0
  122. package/dist/migrations/index.js.map +1 -0
  123. package/dist/migrations/loader.d.ts +44 -0
  124. package/dist/migrations/loader.d.ts.map +1 -0
  125. package/dist/migrations/loader.js +181 -0
  126. package/dist/migrations/loader.js.map +1 -0
  127. package/dist/migrations/prisma-wrapper.d.ts +60 -0
  128. package/dist/migrations/prisma-wrapper.d.ts.map +1 -0
  129. package/dist/migrations/prisma-wrapper.js +184 -0
  130. package/dist/migrations/prisma-wrapper.js.map +1 -0
  131. package/dist/migrations/rollback-runner.d.ts +40 -0
  132. package/dist/migrations/rollback-runner.d.ts.map +1 -0
  133. package/dist/migrations/rollback-runner.js +191 -0
  134. package/dist/migrations/rollback-runner.js.map +1 -0
  135. package/dist/migrations/types.d.ts +214 -0
  136. package/dist/migrations/types.d.ts.map +1 -0
  137. package/dist/migrations/types.js +19 -0
  138. package/dist/migrations/types.js.map +1 -0
  139. package/package.json +29 -8
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Generator Registry
3
+ *
4
+ * Central registry for managing and discovering code generators.
5
+ * Handles registration, lookup by name/alias, and categorization.
6
+ */
7
+ import type { AnyGenerator, GeneratorCategory } from './types.js';
8
+ /**
9
+ * Registered generator entry with metadata
10
+ */
11
+ export interface RegisteredGenerator {
12
+ /** The generator instance */
13
+ readonly generator: AnyGenerator;
14
+ /** Primary name (e.g., 'procedure') */
15
+ readonly name: string;
16
+ /** All names that can be used to invoke this generator */
17
+ readonly allNames: ReadonlyArray<string>;
18
+ }
19
+ /**
20
+ * Registry for managing code generators
21
+ */
22
+ declare class GeneratorRegistry {
23
+ private readonly generators;
24
+ private readonly aliasMap;
25
+ /**
26
+ * Normalize name for case-insensitive lookups
27
+ */
28
+ private normalizeName;
29
+ /**
30
+ * Register a generator
31
+ *
32
+ * @param generator - The generator to register
33
+ * @throws Error if generator name or alias conflicts
34
+ */
35
+ register(generator: AnyGenerator): void;
36
+ /**
37
+ * Get a generator by name or alias (case-insensitive)
38
+ *
39
+ * @param nameOrAlias - Generator name or alias
40
+ * @returns The generator if found, undefined otherwise
41
+ */
42
+ get(nameOrAlias: string): AnyGenerator | undefined;
43
+ /**
44
+ * Check if a generator exists by name or alias (case-insensitive)
45
+ */
46
+ has(nameOrAlias: string): boolean;
47
+ /**
48
+ * Get all registered generators
49
+ */
50
+ getAll(): ReadonlyArray<RegisteredGenerator>;
51
+ /**
52
+ * Get generators by category
53
+ */
54
+ getByCategory(category: GeneratorCategory): ReadonlyArray<RegisteredGenerator>;
55
+ /**
56
+ * Get all generator names and aliases
57
+ */
58
+ getAllNames(): ReadonlyArray<string>;
59
+ /**
60
+ * Resolve an alias to its primary name (case-insensitive)
61
+ */
62
+ resolveName(nameOrAlias: string): string | undefined;
63
+ /**
64
+ * Clear all registered generators (useful for testing)
65
+ */
66
+ clear(): void;
67
+ }
68
+ /**
69
+ * Global generator registry instance
70
+ */
71
+ export declare const registry: GeneratorRegistry;
72
+ /**
73
+ * Register a generator with the global registry
74
+ */
75
+ export declare function registerGenerator(generator: AnyGenerator): void;
76
+ /**
77
+ * Get a generator from the global registry
78
+ */
79
+ export declare function getGenerator(nameOrAlias: string): AnyGenerator | undefined;
80
+ /**
81
+ * Get all registered generators
82
+ */
83
+ export declare function getAllGenerators(): ReadonlyArray<RegisteredGenerator>;
84
+ /**
85
+ * Get generators by category
86
+ */
87
+ export declare function getGeneratorsByCategory(category: GeneratorCategory): ReadonlyArray<RegisteredGenerator>;
88
+ /**
89
+ * Format generator list for help output
90
+ */
91
+ export declare function formatGeneratorList(): string;
92
+ /**
93
+ * Find similar generator names for suggestions
94
+ */
95
+ export declare function findSimilarGenerators(input: string): ReadonlyArray<string>;
96
+ export {};
97
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/generators/registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAMlE;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,6BAA6B;IAC7B,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC;IACjC,uCAAuC;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,0DAA0D;IAC1D,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC1C;AAMD;;GAEG;AACH,cAAM,iBAAiB;IACrB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmC;IAC9D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;IAEtD;;OAEG;IACH,OAAO,CAAC,aAAa;IAIrB;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI;IA0CvC;;;;;OAKG;IACH,GAAG,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAiBlD;;OAEG;IACH,GAAG,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAKjC;;OAEG;IACH,MAAM,IAAI,aAAa,CAAC,mBAAmB,CAAC;IAW5C;;OAEG;IACH,aAAa,CAAC,QAAQ,EAAE,iBAAiB,GAAG,aAAa,CAAC,mBAAmB,CAAC;IAI9E;;OAEG;IACH,WAAW,IAAI,aAAa,CAAC,MAAM,CAAC;IAWpC;;OAEG;IACH,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAQpD;;OAEG;IACH,KAAK,IAAI,IAAI;CAId;AAMD;;GAEG;AACH,eAAO,MAAM,QAAQ,mBAA0B,CAAC;AAMhD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI,CAE/D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAE1E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,CAAC,mBAAmB,CAAC,CAErE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,iBAAiB,GAC1B,aAAa,CAAC,mBAAmB,CAAC,CAEpC;AAMD;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CA6B5C;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CA0B1E"}
@@ -0,0 +1,253 @@
1
+ /**
2
+ * Generator Registry
3
+ *
4
+ * Central registry for managing and discovering code generators.
5
+ * Handles registration, lookup by name/alias, and categorization.
6
+ */
7
+ // ============================================================================
8
+ // Generator Registry
9
+ // ============================================================================
10
+ /**
11
+ * Registry for managing code generators
12
+ */
13
+ class GeneratorRegistry {
14
+ generators = new Map();
15
+ aliasMap = new Map();
16
+ /**
17
+ * Normalize name for case-insensitive lookups
18
+ */
19
+ normalizeName(name) {
20
+ return name.toLowerCase();
21
+ }
22
+ /**
23
+ * Register a generator
24
+ *
25
+ * @param generator - The generator to register
26
+ * @throws Error if generator name or alias conflicts
27
+ */
28
+ register(generator) {
29
+ const { name, aliases } = generator.metadata;
30
+ const normalizedName = this.normalizeName(name);
31
+ // Check for name conflicts
32
+ if (this.generators.has(normalizedName)) {
33
+ throw new Error(`Generator "${name}" is already registered. Generator names must be unique.`);
34
+ }
35
+ // Check for alias conflicts
36
+ if (this.aliasMap.has(normalizedName)) {
37
+ throw new Error(`"${name}" is already registered as an alias for "${this.aliasMap.get(normalizedName)}".`);
38
+ }
39
+ // Check each alias
40
+ if (aliases) {
41
+ for (const alias of aliases) {
42
+ const normalizedAlias = this.normalizeName(alias);
43
+ if (this.generators.has(normalizedAlias)) {
44
+ throw new Error(`Alias "${alias}" conflicts with existing generator "${alias}".`);
45
+ }
46
+ if (this.aliasMap.has(normalizedAlias)) {
47
+ throw new Error(`Alias "${alias}" is already registered for generator "${this.aliasMap.get(normalizedAlias)}".`);
48
+ }
49
+ }
50
+ }
51
+ // Register the generator
52
+ this.generators.set(normalizedName, generator);
53
+ // Register aliases
54
+ if (aliases) {
55
+ for (const alias of aliases) {
56
+ this.aliasMap.set(this.normalizeName(alias), normalizedName);
57
+ }
58
+ }
59
+ }
60
+ /**
61
+ * Get a generator by name or alias (case-insensitive)
62
+ *
63
+ * @param nameOrAlias - Generator name or alias
64
+ * @returns The generator if found, undefined otherwise
65
+ */
66
+ get(nameOrAlias) {
67
+ const normalized = this.normalizeName(nameOrAlias);
68
+ // Direct lookup
69
+ if (this.generators.has(normalized)) {
70
+ return this.generators.get(normalized);
71
+ }
72
+ // Alias lookup
73
+ const resolvedName = this.aliasMap.get(normalized);
74
+ if (resolvedName) {
75
+ return this.generators.get(resolvedName);
76
+ }
77
+ return undefined;
78
+ }
79
+ /**
80
+ * Check if a generator exists by name or alias (case-insensitive)
81
+ */
82
+ has(nameOrAlias) {
83
+ const normalized = this.normalizeName(nameOrAlias);
84
+ return this.generators.has(normalized) || this.aliasMap.has(normalized);
85
+ }
86
+ /**
87
+ * Get all registered generators
88
+ */
89
+ getAll() {
90
+ return Array.from(this.generators.entries()).map(([name, generator]) => {
91
+ const aliases = generator.metadata.aliases ?? [];
92
+ return {
93
+ generator,
94
+ name,
95
+ allNames: [name, ...aliases],
96
+ };
97
+ });
98
+ }
99
+ /**
100
+ * Get generators by category
101
+ */
102
+ getByCategory(category) {
103
+ return this.getAll().filter((entry) => entry.generator.metadata.category === category);
104
+ }
105
+ /**
106
+ * Get all generator names and aliases
107
+ */
108
+ getAllNames() {
109
+ const names = [];
110
+ for (const name of this.generators.keys()) {
111
+ names.push(name);
112
+ }
113
+ for (const alias of this.aliasMap.keys()) {
114
+ names.push(alias);
115
+ }
116
+ return names.sort();
117
+ }
118
+ /**
119
+ * Resolve an alias to its primary name (case-insensitive)
120
+ */
121
+ resolveName(nameOrAlias) {
122
+ const normalized = this.normalizeName(nameOrAlias);
123
+ if (this.generators.has(normalized)) {
124
+ return normalized;
125
+ }
126
+ return this.aliasMap.get(normalized);
127
+ }
128
+ /**
129
+ * Clear all registered generators (useful for testing)
130
+ */
131
+ clear() {
132
+ this.generators.clear();
133
+ this.aliasMap.clear();
134
+ }
135
+ }
136
+ // ============================================================================
137
+ // Global Registry Instance
138
+ // ============================================================================
139
+ /**
140
+ * Global generator registry instance
141
+ */
142
+ export const registry = new GeneratorRegistry();
143
+ // ============================================================================
144
+ // Registration Helpers
145
+ // ============================================================================
146
+ /**
147
+ * Register a generator with the global registry
148
+ */
149
+ export function registerGenerator(generator) {
150
+ registry.register(generator);
151
+ }
152
+ /**
153
+ * Get a generator from the global registry
154
+ */
155
+ export function getGenerator(nameOrAlias) {
156
+ return registry.get(nameOrAlias);
157
+ }
158
+ /**
159
+ * Get all registered generators
160
+ */
161
+ export function getAllGenerators() {
162
+ return registry.getAll();
163
+ }
164
+ /**
165
+ * Get generators by category
166
+ */
167
+ export function getGeneratorsByCategory(category) {
168
+ return registry.getByCategory(category);
169
+ }
170
+ // ============================================================================
171
+ // Help Formatting
172
+ // ============================================================================
173
+ /**
174
+ * Format generator list for help output
175
+ */
176
+ export function formatGeneratorList() {
177
+ const categories = ['resource', 'database', 'test', 'composite'];
178
+ const categoryLabels = {
179
+ resource: 'Resource Generators',
180
+ database: 'Database Generators',
181
+ test: 'Test Generators',
182
+ composite: 'Composite Generators',
183
+ };
184
+ const lines = [];
185
+ for (const category of categories) {
186
+ const generators = registry.getByCategory(category);
187
+ if (generators.length === 0)
188
+ continue;
189
+ lines.push(`\n${categoryLabels[category]}:`);
190
+ for (const { generator, name } of generators) {
191
+ const { description, aliases } = generator.metadata;
192
+ const aliasStr = aliases?.length ? ` (${aliases.join(', ')})` : '';
193
+ lines.push(` ${name}${aliasStr} - ${description}`);
194
+ }
195
+ }
196
+ if (lines.length === 0) {
197
+ return 'No generators registered.';
198
+ }
199
+ return lines.join('\n');
200
+ }
201
+ /**
202
+ * Find similar generator names for suggestions
203
+ */
204
+ export function findSimilarGenerators(input) {
205
+ const allNames = registry.getAllNames();
206
+ const inputLower = input.toLowerCase();
207
+ // Find generators that start with the input or contain it
208
+ const matches = allNames.filter((name) => {
209
+ const nameLower = name.toLowerCase();
210
+ return nameLower.startsWith(inputLower) || nameLower.includes(inputLower);
211
+ });
212
+ // Also find by Levenshtein distance for typo correction
213
+ if (matches.length === 0) {
214
+ const similar = allNames
215
+ .map((name) => ({
216
+ name,
217
+ distance: levenshteinDistance(inputLower, name.toLowerCase()),
218
+ }))
219
+ .filter(({ distance }) => distance <= 3)
220
+ .sort((a, b) => a.distance - b.distance)
221
+ .slice(0, 3)
222
+ .map(({ name }) => name);
223
+ return similar;
224
+ }
225
+ return matches.slice(0, 5);
226
+ }
227
+ /**
228
+ * Simple Levenshtein distance implementation for typo detection
229
+ */
230
+ function levenshteinDistance(a, b) {
231
+ const matrix = [];
232
+ for (let i = 0; i <= b.length; i++) {
233
+ matrix[i] = [i];
234
+ }
235
+ for (let j = 0; j <= a.length; j++) {
236
+ matrix[0][j] = j;
237
+ }
238
+ for (let i = 1; i <= b.length; i++) {
239
+ for (let j = 1; j <= a.length; j++) {
240
+ if (b.charAt(i - 1) === a.charAt(j - 1)) {
241
+ matrix[i][j] = matrix[i - 1][j - 1];
242
+ }
243
+ else {
244
+ matrix[i][j] = Math.min(matrix[i - 1][j - 1] + 1, // substitution
245
+ matrix[i][j - 1] + 1, // insertion
246
+ matrix[i - 1][j] + 1 // deletion
247
+ );
248
+ }
249
+ }
250
+ }
251
+ return matrix[b.length][a.length];
252
+ }
253
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/generators/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Migration Template
3
+ *
4
+ * Generates Prisma migration files with common SQL patterns.
5
+ */
6
+ import type { GeneratedFile, TemplateContext, TemplateFunction } from '../types.js';
7
+ export interface MigrationOptions {
8
+ /** Database type (affects SQL syntax) */
9
+ database: 'sqlite' | 'postgresql' | 'mysql';
10
+ }
11
+ /**
12
+ * Migration template
13
+ */
14
+ export declare const migrationTemplate: TemplateFunction<MigrationOptions>;
15
+ /**
16
+ * Generate all files for a migration
17
+ */
18
+ export declare function generateMigrationFiles(ctx: TemplateContext<MigrationOptions>): GeneratedFile[];
19
+ /**
20
+ * Generate post-generation instructions
21
+ */
22
+ export declare function getMigrationInstructions(migrationName: string): string;
23
+ //# sourceMappingURL=migration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migration.d.ts","sourceRoot":"","sources":["../../../src/generators/templates/migration.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAMpF,MAAM,WAAW,gBAAgB;IAC/B,yCAAyC;IACzC,QAAQ,EAAE,QAAQ,GAAG,YAAY,GAAG,OAAO,CAAC;CAC7C;AAoYD;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,gBAAgB,CAAC,gBAAgB,CAEhE,CAAC;AAEF;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,eAAe,CAAC,gBAAgB,CAAC,GAAG,aAAa,EAAE,CAmB9F;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CA2BtE"}