@veloxts/cli 0.3.6 → 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,122 @@
1
+ /**
2
+ * Naming Utilities
3
+ *
4
+ * Functions for converting entity names between different cases
5
+ * and handling pluralization for English words.
6
+ */
7
+ import type { EntityNames } from '../types.js';
8
+ /**
9
+ * Convert string to PascalCase
10
+ *
11
+ * @example
12
+ * toPascalCase('user') // 'User'
13
+ * toPascalCase('blog-post') // 'BlogPost'
14
+ * toPascalCase('user_profile') // 'UserProfile'
15
+ */
16
+ export declare function toPascalCase(str: string): string;
17
+ /**
18
+ * Convert string to camelCase
19
+ *
20
+ * @example
21
+ * toCamelCase('User') // 'user'
22
+ * toCamelCase('blog-post') // 'blogPost'
23
+ * toCamelCase('UserProfile') // 'userProfile'
24
+ */
25
+ export declare function toCamelCase(str: string): string;
26
+ /**
27
+ * Convert string to kebab-case
28
+ *
29
+ * @example
30
+ * toKebabCase('User') // 'user'
31
+ * toKebabCase('BlogPost') // 'blog-post'
32
+ * toKebabCase('user_profile') // 'user-profile'
33
+ */
34
+ export declare function toKebabCase(str: string): string;
35
+ /**
36
+ * Convert string to snake_case
37
+ *
38
+ * @example
39
+ * toSnakeCase('User') // 'user'
40
+ * toSnakeCase('BlogPost') // 'blog_post'
41
+ * toSnakeCase('user-profile') // 'user_profile'
42
+ */
43
+ export declare function toSnakeCase(str: string): string;
44
+ /**
45
+ * Convert string to SCREAMING_SNAKE_CASE
46
+ *
47
+ * @example
48
+ * toScreamingSnakeCase('User') // 'USER'
49
+ * toScreamingSnakeCase('BlogPost') // 'BLOG_POST'
50
+ */
51
+ export declare function toScreamingSnakeCase(str: string): string;
52
+ /**
53
+ * Convert camelCase/PascalCase to human readable format
54
+ *
55
+ * @example
56
+ * toHumanReadable('BlogPost') // 'Blog Post'
57
+ * toHumanReadable('userProfile') // 'User Profile'
58
+ */
59
+ export declare function toHumanReadable(str: string): string;
60
+ /**
61
+ * Pluralize an English word
62
+ *
63
+ * @example
64
+ * pluralize('user') // 'users'
65
+ * pluralize('person') // 'people'
66
+ * pluralize('category') // 'categories'
67
+ * pluralize('bus') // 'buses'
68
+ */
69
+ export declare function pluralize(word: string): string;
70
+ /**
71
+ * Singularize an English word (reverse pluralization)
72
+ *
73
+ * @example
74
+ * singularize('users') // 'user'
75
+ * singularize('people') // 'person'
76
+ * singularize('categories') // 'category'
77
+ */
78
+ export declare function singularize(word: string): string;
79
+ /**
80
+ * Check if a word is likely plural
81
+ */
82
+ export declare function isPlural(word: string): boolean;
83
+ /**
84
+ * Derive all naming variations from an input string.
85
+ *
86
+ * The input is normalized to PascalCase singular form, then all
87
+ * variations are derived from that.
88
+ *
89
+ * @example
90
+ * deriveEntityNames('User')
91
+ * // {
92
+ * // raw: 'User',
93
+ * // pascal: 'User',
94
+ * // camel: 'user',
95
+ * // kebab: 'user',
96
+ * // snake: 'user',
97
+ * // screamingSnake: 'USER',
98
+ * // singular: 'user',
99
+ * // plural: 'users',
100
+ * // pascalPlural: 'Users',
101
+ * // humanReadable: 'User',
102
+ * // humanReadablePlural: 'Users',
103
+ * // }
104
+ *
105
+ * @example
106
+ * deriveEntityNames('blog-posts')
107
+ * // {
108
+ * // raw: 'blog-posts',
109
+ * // pascal: 'BlogPost',
110
+ * // camel: 'blogPost',
111
+ * // kebab: 'blog-post',
112
+ * // snake: 'blog_post',
113
+ * // screamingSnake: 'BLOG_POST',
114
+ * // singular: 'blogPost',
115
+ * // plural: 'blogPosts',
116
+ * // pascalPlural: 'BlogPosts',
117
+ * // humanReadable: 'Blog Post',
118
+ * // humanReadablePlural: 'Blog Posts',
119
+ * // }
120
+ */
121
+ export declare function deriveEntityNames(input: string): EntityNames;
122
+ //# sourceMappingURL=naming.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"naming.d.ts","sourceRoot":"","sources":["../../../src/generators/utils/naming.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAM/C;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAIhD;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAa/C;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAK/C;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAK/C;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAExD;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAOnD;AAMD;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE9C;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CA6B5D"}
@@ -0,0 +1,198 @@
1
+ /**
2
+ * Naming Utilities
3
+ *
4
+ * Functions for converting entity names between different cases
5
+ * and handling pluralization for English words.
6
+ */
7
+ import pluralizeLib from 'pluralize';
8
+ // ============================================================================
9
+ // Case Conversion
10
+ // ============================================================================
11
+ /**
12
+ * Convert string to PascalCase
13
+ *
14
+ * @example
15
+ * toPascalCase('user') // 'User'
16
+ * toPascalCase('blog-post') // 'BlogPost'
17
+ * toPascalCase('user_profile') // 'UserProfile'
18
+ */
19
+ export function toPascalCase(str) {
20
+ return str
21
+ .replace(/[-_\s]+(.)?/g, (_, c) => (c ? c.toUpperCase() : ''))
22
+ .replace(/^./, (c) => c.toUpperCase());
23
+ }
24
+ /**
25
+ * Convert string to camelCase
26
+ *
27
+ * @example
28
+ * toCamelCase('User') // 'user'
29
+ * toCamelCase('blog-post') // 'blogPost'
30
+ * toCamelCase('UserProfile') // 'userProfile'
31
+ */
32
+ export function toCamelCase(str) {
33
+ // Handle single word (no separators)
34
+ if (!/[-_\s]/.test(str)) {
35
+ // Check if all uppercase - convert to lowercase
36
+ if (str === str.toUpperCase()) {
37
+ return str.toLowerCase();
38
+ }
39
+ // Mixed case or PascalCase - just lowercase first char
40
+ return str.charAt(0).toLowerCase() + str.slice(1);
41
+ }
42
+ // Has separators - convert through PascalCase
43
+ const pascal = toPascalCase(str);
44
+ return pascal.charAt(0).toLowerCase() + pascal.slice(1);
45
+ }
46
+ /**
47
+ * Convert string to kebab-case
48
+ *
49
+ * @example
50
+ * toKebabCase('User') // 'user'
51
+ * toKebabCase('BlogPost') // 'blog-post'
52
+ * toKebabCase('user_profile') // 'user-profile'
53
+ */
54
+ export function toKebabCase(str) {
55
+ return str
56
+ .replace(/([a-z])([A-Z])/g, '$1-$2')
57
+ .replace(/[\s_]+/g, '-')
58
+ .toLowerCase();
59
+ }
60
+ /**
61
+ * Convert string to snake_case
62
+ *
63
+ * @example
64
+ * toSnakeCase('User') // 'user'
65
+ * toSnakeCase('BlogPost') // 'blog_post'
66
+ * toSnakeCase('user-profile') // 'user_profile'
67
+ */
68
+ export function toSnakeCase(str) {
69
+ return str
70
+ .replace(/([a-z])([A-Z])/g, '$1_$2')
71
+ .replace(/[\s-]+/g, '_')
72
+ .toLowerCase();
73
+ }
74
+ /**
75
+ * Convert string to SCREAMING_SNAKE_CASE
76
+ *
77
+ * @example
78
+ * toScreamingSnakeCase('User') // 'USER'
79
+ * toScreamingSnakeCase('BlogPost') // 'BLOG_POST'
80
+ */
81
+ export function toScreamingSnakeCase(str) {
82
+ return toSnakeCase(str).toUpperCase();
83
+ }
84
+ /**
85
+ * Convert camelCase/PascalCase to human readable format
86
+ *
87
+ * @example
88
+ * toHumanReadable('BlogPost') // 'Blog Post'
89
+ * toHumanReadable('userProfile') // 'User Profile'
90
+ */
91
+ export function toHumanReadable(str) {
92
+ return str
93
+ .replace(/([a-z])([A-Z])/g, '$1 $2')
94
+ .replace(/[-_]+/g, ' ')
95
+ .split(' ')
96
+ .map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
97
+ .join(' ');
98
+ }
99
+ // ============================================================================
100
+ // Pluralization
101
+ // ============================================================================
102
+ /**
103
+ * Pluralize an English word
104
+ *
105
+ * @example
106
+ * pluralize('user') // 'users'
107
+ * pluralize('person') // 'people'
108
+ * pluralize('category') // 'categories'
109
+ * pluralize('bus') // 'buses'
110
+ */
111
+ export function pluralize(word) {
112
+ return pluralizeLib(word);
113
+ }
114
+ /**
115
+ * Singularize an English word (reverse pluralization)
116
+ *
117
+ * @example
118
+ * singularize('users') // 'user'
119
+ * singularize('people') // 'person'
120
+ * singularize('categories') // 'category'
121
+ */
122
+ export function singularize(word) {
123
+ return pluralizeLib.singular(word);
124
+ }
125
+ /**
126
+ * Check if a word is likely plural
127
+ */
128
+ export function isPlural(word) {
129
+ return pluralizeLib.isPlural(word);
130
+ }
131
+ // ============================================================================
132
+ // Entity Name Derivation
133
+ // ============================================================================
134
+ /**
135
+ * Derive all naming variations from an input string.
136
+ *
137
+ * The input is normalized to PascalCase singular form, then all
138
+ * variations are derived from that.
139
+ *
140
+ * @example
141
+ * deriveEntityNames('User')
142
+ * // {
143
+ * // raw: 'User',
144
+ * // pascal: 'User',
145
+ * // camel: 'user',
146
+ * // kebab: 'user',
147
+ * // snake: 'user',
148
+ * // screamingSnake: 'USER',
149
+ * // singular: 'user',
150
+ * // plural: 'users',
151
+ * // pascalPlural: 'Users',
152
+ * // humanReadable: 'User',
153
+ * // humanReadablePlural: 'Users',
154
+ * // }
155
+ *
156
+ * @example
157
+ * deriveEntityNames('blog-posts')
158
+ * // {
159
+ * // raw: 'blog-posts',
160
+ * // pascal: 'BlogPost',
161
+ * // camel: 'blogPost',
162
+ * // kebab: 'blog-post',
163
+ * // snake: 'blog_post',
164
+ * // screamingSnake: 'BLOG_POST',
165
+ * // singular: 'blogPost',
166
+ * // plural: 'blogPosts',
167
+ * // pascalPlural: 'BlogPosts',
168
+ * // humanReadable: 'Blog Post',
169
+ * // humanReadablePlural: 'Blog Posts',
170
+ * // }
171
+ */
172
+ export function deriveEntityNames(input) {
173
+ // Normalize input: convert to PascalCase, then singularize
174
+ const pascalInput = toPascalCase(input);
175
+ const pascal = toPascalCase(singularize(pascalInput));
176
+ const camel = toCamelCase(pascal);
177
+ const kebab = toKebabCase(pascal);
178
+ const snake = toSnakeCase(pascal);
179
+ const screamingSnake = toScreamingSnakeCase(pascal);
180
+ const pluralPascal = pluralize(pascal);
181
+ const pluralCamel = pluralize(camel);
182
+ const humanReadable = toHumanReadable(pascal);
183
+ const humanReadablePlural = toHumanReadable(pluralPascal);
184
+ return {
185
+ raw: input,
186
+ pascal,
187
+ camel,
188
+ kebab,
189
+ snake,
190
+ screamingSnake,
191
+ singular: camel,
192
+ plural: pluralCamel,
193
+ pascalPlural: pluralPascal,
194
+ humanReadable,
195
+ humanReadablePlural,
196
+ };
197
+ }
198
+ //# sourceMappingURL=naming.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"naming.js","sourceRoot":"","sources":["../../../src/generators/utils/naming.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -23,6 +23,10 @@ export declare const CLI_VERSION: string;
23
23
  */
24
24
  export { createDevCommand } from './commands/dev.js';
25
25
  export { createMigrateCommand } from './commands/migrate.js';
26
+ /**
27
+ * Export migration runner
28
+ */
29
+ export * from './migrations/index.js';
26
30
  /**
27
31
  * Export utilities for reuse in other packages
28
32
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAQH,0BAA0B;AAC1B,eAAO,MAAM,WAAW,EAAE,MAA+C,CAAC;AAE1E;;GAEG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D;;GAEG;AACH,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAQH,0BAA0B;AAC1B,eAAO,MAAM,WAAW,EAAE,MAA+C,CAAC;AAE1E;;GAEG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D;;GAEG;AACH,cAAc,uBAAuB,CAAC;AACtC;;GAEG;AACH,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC"}
package/dist/index.js CHANGED
@@ -27,6 +27,10 @@ export const CLI_VERSION = packageJson.version ?? '0.0.0-unknown';
27
27
  */
28
28
  export { createDevCommand } from './commands/dev.js';
29
29
  export { createMigrateCommand } from './commands/migrate.js';
30
+ /**
31
+ * Export migration runner
32
+ */
33
+ export * from './migrations/index.js';
30
34
  /**
31
35
  * Export utilities for reuse in other packages
32
36
  */
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,6CAA6C;AAC7C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;AAEtE,0BAA0B;AAC1B,MAAM,CAAC,MAAM,WAAW,GAAW,WAAW,CAAC,OAAO,IAAI,eAAe,CAAC;AAE1E;;GAEG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D;;GAEG;AACH,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,6CAA6C;AAC7C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;AAEtE,0BAA0B;AAC1B,MAAM,CAAC,MAAM,WAAW,GAAW,WAAW,CAAC,OAAO,IAAI,eAAe,CAAC;AAE1E;;GAEG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D;;GAEG;AACH,cAAc,uBAAuB,CAAC;AACtC;;GAEG;AACH,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * migrate:fresh Command
3
+ *
4
+ * Drop all tables and re-run all migrations.
5
+ */
6
+ import { Command } from 'commander';
7
+ /**
8
+ * Create the migrate:fresh command
9
+ */
10
+ export declare function createMigrateFreshCommand(): Command;
11
+ //# sourceMappingURL=fresh.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fresh.d.ts","sourceRoot":"","sources":["../../../src/migrations/commands/fresh.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,OAAO,CASnD"}
@@ -0,0 +1,164 @@
1
+ /**
2
+ * migrate:fresh Command
3
+ *
4
+ * Drop all tables and re-run all migrations.
5
+ */
6
+ import path from 'node:path';
7
+ import * as p from '@clack/prompts';
8
+ import { Command } from 'commander';
9
+ import pc from 'picocolors';
10
+ import { error, info, success, warning } from '../../utils/output.js';
11
+ import { fileExists } from '../../utils/paths.js';
12
+ import { MigrationError } from '../errors.js';
13
+ import { prismaDbSeed, prismaMigrateReset } from '../prisma-wrapper.js';
14
+ /**
15
+ * Create the migrate:fresh command
16
+ */
17
+ export function createMigrateFreshCommand() {
18
+ return new Command('fresh')
19
+ .description('Drop all tables and re-run all migrations')
20
+ .option('--seed', 'Run seeders after migrations')
21
+ .option('--force', 'Skip confirmation prompt')
22
+ .option('--json', 'Output as JSON')
23
+ .action(async (options) => {
24
+ await runMigrateFresh(options);
25
+ });
26
+ }
27
+ /**
28
+ * Run migrate:fresh
29
+ */
30
+ async function runMigrateFresh(options) {
31
+ const cwd = process.cwd();
32
+ const s = p.spinner();
33
+ try {
34
+ // Check if Prisma schema exists
35
+ const schemaPath = path.join(cwd, 'prisma', 'schema.prisma');
36
+ if (!fileExists(schemaPath)) {
37
+ if (options.json) {
38
+ console.log(JSON.stringify({ error: 'Prisma schema not found' }));
39
+ }
40
+ else {
41
+ error('Prisma schema not found.');
42
+ console.log(` ${pc.dim('Expected: prisma/schema.prisma')}`);
43
+ }
44
+ process.exit(1);
45
+ }
46
+ // Show warning
47
+ if (!options.json) {
48
+ console.log('');
49
+ warning('This will DROP ALL TABLES and re-run all migrations.');
50
+ warning('All data in the database will be lost!');
51
+ console.log('');
52
+ }
53
+ // Confirm unless --force
54
+ if (!options.force && !options.json) {
55
+ const confirm = await p.confirm({
56
+ message: 'Are you sure you want to drop all tables and re-run migrations?',
57
+ });
58
+ if (p.isCancel(confirm) || !confirm) {
59
+ console.log('');
60
+ info('Operation cancelled.');
61
+ return;
62
+ }
63
+ }
64
+ // Execute fresh
65
+ if (!options.json) {
66
+ console.log('');
67
+ s.start('Dropping all tables and re-running migrations...');
68
+ }
69
+ // Run prisma migrate reset --force (force to skip Prisma's own confirmation)
70
+ const result = await prismaMigrateReset(cwd, true);
71
+ if (!result.success) {
72
+ if (!options.json) {
73
+ s.stop('Migration reset failed');
74
+ }
75
+ if (options.json) {
76
+ console.log(JSON.stringify({ success: false, error: result.error }));
77
+ }
78
+ else {
79
+ console.log('');
80
+ error('Migration reset failed.');
81
+ if (result.error) {
82
+ console.log(` ${pc.dim(result.error)}`);
83
+ }
84
+ console.log('');
85
+ }
86
+ process.exit(1);
87
+ }
88
+ if (!options.json) {
89
+ s.stop('Database reset complete');
90
+ }
91
+ // Run seeders if requested
92
+ if (options.seed) {
93
+ if (!options.json) {
94
+ console.log('');
95
+ s.start('Running seeders...');
96
+ }
97
+ const seedResult = await prismaDbSeed(cwd);
98
+ if (!seedResult.success) {
99
+ if (!options.json) {
100
+ s.stop('Seeding failed');
101
+ }
102
+ if (options.json) {
103
+ console.log(JSON.stringify({
104
+ success: true,
105
+ message: 'Database reset complete but seeding failed',
106
+ seedError: seedResult.error,
107
+ }));
108
+ }
109
+ else {
110
+ console.log('');
111
+ warning('Database reset complete but seeding failed.');
112
+ if (seedResult.error) {
113
+ console.log(` ${pc.dim(seedResult.error)}`);
114
+ }
115
+ console.log('');
116
+ }
117
+ return;
118
+ }
119
+ if (!options.json) {
120
+ s.stop('Seeding complete');
121
+ }
122
+ }
123
+ // Success output
124
+ if (options.json) {
125
+ console.log(JSON.stringify({
126
+ success: true,
127
+ message: options.seed
128
+ ? 'Database reset and seeded successfully'
129
+ : 'Database reset successfully',
130
+ }));
131
+ }
132
+ else {
133
+ console.log('');
134
+ success(options.seed ? 'Database reset and seeded successfully!' : 'Database reset successfully!');
135
+ console.log('');
136
+ }
137
+ }
138
+ catch (err) {
139
+ s.stop('Operation failed');
140
+ if (options.json) {
141
+ if (err instanceof MigrationError) {
142
+ console.log(JSON.stringify({ error: err.toJSON() }));
143
+ }
144
+ else {
145
+ console.log(JSON.stringify({ error: err instanceof Error ? err.message : String(err) }));
146
+ }
147
+ }
148
+ else {
149
+ console.log('');
150
+ if (err instanceof MigrationError) {
151
+ error(err.message);
152
+ if (err.fix) {
153
+ console.log(` ${pc.dim('Fix:')} ${err.fix}`);
154
+ }
155
+ }
156
+ else {
157
+ error(err instanceof Error ? err.message : String(err));
158
+ }
159
+ console.log('');
160
+ }
161
+ process.exit(1);
162
+ }
163
+ }
164
+ //# sourceMappingURL=fresh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fresh.js","sourceRoot":"","sources":["../../../src/migrations/commands/fresh.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAGxE;;GAEG;AACH,MAAM,UAAU,yBAAyB;IACvC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;SACxB,WAAW,CAAC,2CAA2C,CAAC;SACxD,MAAM,CAAC,QAAQ,EAAE,8BAA8B,CAAC;SAChD,MAAM,CAAC,SAAS,EAAE,0BAA0B,CAAC;SAC7C,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,OAA4B,EAAE,EAAE;QAC7C,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,eAAe,CAAC,OAA4B;IACzD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;IAEtB,IAAI,CAAC;QACH,gCAAgC;QAChC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;QAC7D,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5B,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,yBAAyB,EAAE,CAAC,CAAC,CAAC;YACpE,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,0BAA0B,CAAC,CAAC;gBAClC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,gCAAgC,CAAC,EAAE,CAAC,CAAC;YAC/D,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,eAAe;QACf,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,sDAAsD,CAAC,CAAC;YAChE,OAAO,CAAC,wCAAwC,CAAC,CAAC;YAClD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;QAED,yBAAyB;QACzB,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpC,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC;gBAC9B,OAAO,EAAE,iEAAiE;aAC3E,CAAC,CAAC;YAEH,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACpC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChB,IAAI,CAAC,sBAAsB,CAAC,CAAC;gBAC7B,OAAO;YACT,CAAC;QACH,CAAC;QAED,gBAAgB;QAChB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,CAAC,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;QAC9D,CAAC;QAED,6EAA6E;QAC7E,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAEnD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBAClB,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACnC,CAAC;YAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACvE,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChB,KAAK,CAAC,yBAAyB,CAAC,CAAC;gBACjC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;oBACjB,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAC3C,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClB,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACpC,CAAC;QAED,2BAA2B;QAC3B,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBAClB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChB,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;YAChC,CAAC;YAED,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC;YAE3C,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;gBACxB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;oBAClB,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBAC3B,CAAC;gBAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;oBACjB,OAAO,CAAC,GAAG,CACT,IAAI,CAAC,SAAS,CAAC;wBACb,OAAO,EAAE,IAAI;wBACb,OAAO,EAAE,4CAA4C;wBACrD,SAAS,EAAE,UAAU,CAAC,KAAK;qBAC5B,CAAC,CACH,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAChB,OAAO,CAAC,6CAA6C,CAAC,CAAC;oBACvD,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;wBACrB,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBAC/C,CAAC;oBACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAClB,CAAC;gBACD,OAAO;YACT,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBAClB,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,iBAAiB;QACjB,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CACT,IAAI,CAAC,SAAS,CAAC;gBACb,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,OAAO,CAAC,IAAI;oBACnB,CAAC,CAAC,wCAAwC;oBAC1C,CAAC,CAAC,6BAA6B;aAClC,CAAC,CACH,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CACL,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,yCAAyC,CAAC,CAAC,CAAC,8BAA8B,CAC1F,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAE3B,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,IAAI,GAAG,YAAY,cAAc,EAAE,CAAC;gBAClC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;YACvD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YAC3F,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,IAAI,GAAG,YAAY,cAAc,EAAE,CAAC;gBAClC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACnB,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;oBACZ,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;gBAChD,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1D,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Migration Commands Index
3
+ *
4
+ * Exports all migration subcommands.
5
+ */
6
+ export { createMigrateFreshCommand } from './fresh.js';
7
+ export { createMigrateResetCommand } from './reset.js';
8
+ export { createMigrateRollbackCommand } from './rollback.js';
9
+ export { createMigrateRunCommand } from './run.js';
10
+ export { createMigrateStatusCommand } from './status.js';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/migrations/commands/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,4BAA4B,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Migration Commands Index
3
+ *
4
+ * Exports all migration subcommands.
5
+ */
6
+ export { createMigrateFreshCommand } from './fresh.js';
7
+ export { createMigrateResetCommand } from './reset.js';
8
+ export { createMigrateRollbackCommand } from './rollback.js';
9
+ export { createMigrateRunCommand } from './run.js';
10
+ export { createMigrateStatusCommand } from './status.js';
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/migrations/commands/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,4BAA4B,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * migrate:reset Command
3
+ *
4
+ * Rollback all migrations then re-run them using our down.sql files.
5
+ */
6
+ import { Command } from 'commander';
7
+ /**
8
+ * Create the migrate:reset command
9
+ */
10
+ export declare function createMigrateResetCommand(): Command;
11
+ //# sourceMappingURL=reset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reset.d.ts","sourceRoot":"","sources":["../../../src/migrations/commands/reset.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqBpC;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,OAAO,CASnD"}