@veloxts/cli 0.4.14 → 0.6.23

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 (203) hide show
  1. package/README.md +2 -48
  2. package/dist/cli.d.ts +5 -1
  3. package/dist/cli.d.ts.map +1 -1
  4. package/dist/cli.js +7 -1
  5. package/dist/cli.js.map +1 -1
  6. package/dist/commands/dev.d.ts.map +1 -1
  7. package/dist/commands/dev.js +71 -7
  8. package/dist/commands/dev.js.map +1 -1
  9. package/dist/commands/introspect.d.ts +16 -0
  10. package/dist/commands/introspect.d.ts.map +1 -0
  11. package/dist/commands/introspect.js +559 -0
  12. package/dist/commands/introspect.js.map +1 -0
  13. package/dist/commands/make.d.ts.map +1 -1
  14. package/dist/commands/make.js +18 -8
  15. package/dist/commands/make.js.map +1 -1
  16. package/dist/commands/procedures.d.ts.map +1 -1
  17. package/dist/commands/procedures.js +16 -0
  18. package/dist/commands/procedures.js.map +1 -1
  19. package/dist/dev/error-parser.d.ts.map +1 -1
  20. package/dist/dev/error-parser.js +24 -8
  21. package/dist/dev/error-parser.js.map +1 -1
  22. package/dist/dev/hmr-runner.d.ts.map +1 -1
  23. package/dist/dev/hmr-runner.js +6 -1
  24. package/dist/dev/hmr-runner.js.map +1 -1
  25. package/dist/dev/index.d.ts +3 -3
  26. package/dist/dev/index.d.ts.map +1 -1
  27. package/dist/dev/index.js +3 -3
  28. package/dist/dev/index.js.map +1 -1
  29. package/dist/dev/reload-reporter.d.ts +2 -2
  30. package/dist/dev/reload-reporter.d.ts.map +1 -1
  31. package/dist/dev/reload-reporter.js +2 -2
  32. package/dist/dev/reload-reporter.js.map +1 -1
  33. package/dist/errors/catalog.d.ts +48 -0
  34. package/dist/errors/catalog.d.ts.map +1 -0
  35. package/dist/errors/catalog.js +421 -0
  36. package/dist/errors/catalog.js.map +1 -0
  37. package/dist/errors/index.d.ts +26 -0
  38. package/dist/errors/index.d.ts.map +1 -0
  39. package/dist/errors/index.js +28 -0
  40. package/dist/errors/index.js.map +1 -0
  41. package/dist/errors/velox-error.d.ts +122 -0
  42. package/dist/errors/velox-error.d.ts.map +1 -0
  43. package/dist/errors/velox-error.js +216 -0
  44. package/dist/errors/velox-error.js.map +1 -0
  45. package/dist/generators/base.d.ts.map +1 -1
  46. package/dist/generators/base.js +26 -0
  47. package/dist/generators/base.js.map +1 -1
  48. package/dist/generators/fields/__tests__/helpers.d.ts +66 -0
  49. package/dist/generators/fields/__tests__/helpers.d.ts.map +1 -0
  50. package/dist/generators/fields/__tests__/helpers.js +142 -0
  51. package/dist/generators/fields/__tests__/helpers.js.map +1 -0
  52. package/dist/generators/fields/actions.d.ts +58 -0
  53. package/dist/generators/fields/actions.d.ts.map +1 -0
  54. package/dist/generators/fields/actions.js +230 -0
  55. package/dist/generators/fields/actions.js.map +1 -0
  56. package/dist/generators/fields/display.d.ts +28 -0
  57. package/dist/generators/fields/display.d.ts.map +1 -0
  58. package/dist/generators/fields/display.js +214 -0
  59. package/dist/generators/fields/display.js.map +1 -0
  60. package/dist/generators/fields/index.d.ts +12 -0
  61. package/dist/generators/fields/index.d.ts.map +1 -0
  62. package/dist/generators/fields/index.js +12 -0
  63. package/dist/generators/fields/index.js.map +1 -0
  64. package/dist/generators/fields/prompts.d.ts +31 -0
  65. package/dist/generators/fields/prompts.d.ts.map +1 -0
  66. package/dist/generators/fields/prompts.js +366 -0
  67. package/dist/generators/fields/prompts.js.map +1 -0
  68. package/dist/generators/fields/templates.d.ts +49 -0
  69. package/dist/generators/fields/templates.d.ts.map +1 -0
  70. package/dist/generators/fields/templates.js +230 -0
  71. package/dist/generators/fields/templates.js.map +1 -0
  72. package/dist/generators/fields/types.d.ts +95 -0
  73. package/dist/generators/fields/types.d.ts.map +1 -0
  74. package/dist/generators/fields/types.js +150 -0
  75. package/dist/generators/fields/types.js.map +1 -0
  76. package/dist/generators/generators/action.d.ts +37 -0
  77. package/dist/generators/generators/action.d.ts.map +1 -0
  78. package/dist/generators/generators/action.js +109 -0
  79. package/dist/generators/generators/action.js.map +1 -0
  80. package/dist/generators/generators/exception.d.ts +38 -0
  81. package/dist/generators/generators/exception.d.ts.map +1 -0
  82. package/dist/generators/generators/exception.js +109 -0
  83. package/dist/generators/generators/exception.js.map +1 -0
  84. package/dist/generators/generators/guard.d.ts +38 -0
  85. package/dist/generators/generators/guard.d.ts.map +1 -0
  86. package/dist/generators/generators/guard.js +109 -0
  87. package/dist/generators/generators/guard.js.map +1 -0
  88. package/dist/generators/generators/index.d.ts +8 -0
  89. package/dist/generators/generators/index.d.ts.map +1 -1
  90. package/dist/generators/generators/index.js +27 -0
  91. package/dist/generators/generators/index.js.map +1 -1
  92. package/dist/generators/generators/layout.d.ts +36 -0
  93. package/dist/generators/generators/layout.d.ts.map +1 -0
  94. package/dist/generators/generators/layout.js +111 -0
  95. package/dist/generators/generators/layout.js.map +1 -0
  96. package/dist/generators/generators/middleware.d.ts +38 -0
  97. package/dist/generators/generators/middleware.d.ts.map +1 -0
  98. package/dist/generators/generators/middleware.js +109 -0
  99. package/dist/generators/generators/middleware.js.map +1 -0
  100. package/dist/generators/generators/model.d.ts +16 -4
  101. package/dist/generators/generators/model.d.ts.map +1 -1
  102. package/dist/generators/generators/model.js +88 -7
  103. package/dist/generators/generators/model.js.map +1 -1
  104. package/dist/generators/generators/page.d.ts +36 -0
  105. package/dist/generators/generators/page.d.ts.map +1 -0
  106. package/dist/generators/generators/page.js +112 -0
  107. package/dist/generators/generators/page.js.map +1 -0
  108. package/dist/generators/generators/policy.d.ts +37 -0
  109. package/dist/generators/generators/policy.d.ts.map +1 -0
  110. package/dist/generators/generators/policy.js +100 -0
  111. package/dist/generators/generators/policy.js.map +1 -0
  112. package/dist/generators/generators/resource.d.ts +42 -4
  113. package/dist/generators/generators/resource.d.ts.map +1 -1
  114. package/dist/generators/generators/resource.js +450 -9
  115. package/dist/generators/generators/resource.js.map +1 -1
  116. package/dist/generators/generators/service.d.ts +38 -0
  117. package/dist/generators/generators/service.d.ts.map +1 -0
  118. package/dist/generators/generators/service.js +109 -0
  119. package/dist/generators/generators/service.js.map +1 -0
  120. package/dist/generators/registry.d.ts.map +1 -1
  121. package/dist/generators/registry.js +10 -1
  122. package/dist/generators/registry.js.map +1 -1
  123. package/dist/generators/templates/action.d.ts +28 -0
  124. package/dist/generators/templates/action.d.ts.map +1 -0
  125. package/dist/generators/templates/action.js +359 -0
  126. package/dist/generators/templates/action.js.map +1 -0
  127. package/dist/generators/templates/exception.d.ts +26 -0
  128. package/dist/generators/templates/exception.d.ts.map +1 -0
  129. package/dist/generators/templates/exception.js +671 -0
  130. package/dist/generators/templates/exception.js.map +1 -0
  131. package/dist/generators/templates/guard.d.ts +26 -0
  132. package/dist/generators/templates/guard.d.ts.map +1 -0
  133. package/dist/generators/templates/guard.js +555 -0
  134. package/dist/generators/templates/guard.js.map +1 -0
  135. package/dist/generators/templates/layout.d.ts +28 -0
  136. package/dist/generators/templates/layout.d.ts.map +1 -0
  137. package/dist/generators/templates/layout.js +147 -0
  138. package/dist/generators/templates/layout.js.map +1 -0
  139. package/dist/generators/templates/middleware.d.ts +26 -0
  140. package/dist/generators/templates/middleware.d.ts.map +1 -0
  141. package/dist/generators/templates/middleware.js +411 -0
  142. package/dist/generators/templates/middleware.js.map +1 -0
  143. package/dist/generators/templates/model.d.ts +3 -0
  144. package/dist/generators/templates/model.d.ts.map +1 -1
  145. package/dist/generators/templates/model.js +183 -28
  146. package/dist/generators/templates/model.js.map +1 -1
  147. package/dist/generators/templates/page.d.ts +36 -0
  148. package/dist/generators/templates/page.d.ts.map +1 -0
  149. package/dist/generators/templates/page.js +147 -0
  150. package/dist/generators/templates/page.js.map +1 -0
  151. package/dist/generators/templates/policy.d.ts +24 -0
  152. package/dist/generators/templates/policy.d.ts.map +1 -0
  153. package/dist/generators/templates/policy.js +499 -0
  154. package/dist/generators/templates/policy.js.map +1 -0
  155. package/dist/generators/templates/resource.d.ts +65 -0
  156. package/dist/generators/templates/resource.d.ts.map +1 -1
  157. package/dist/generators/templates/resource.js +228 -43
  158. package/dist/generators/templates/resource.js.map +1 -1
  159. package/dist/generators/templates/service.d.ts +26 -0
  160. package/dist/generators/templates/service.d.ts.map +1 -0
  161. package/dist/generators/templates/service.js +511 -0
  162. package/dist/generators/templates/service.js.map +1 -0
  163. package/dist/generators/types.d.ts +26 -14
  164. package/dist/generators/types.d.ts.map +1 -1
  165. package/dist/generators/types.js +8 -25
  166. package/dist/generators/types.js.map +1 -1
  167. package/dist/generators/utils/ast-helpers.d.ts +147 -0
  168. package/dist/generators/utils/ast-helpers.d.ts.map +1 -0
  169. package/dist/generators/utils/ast-helpers.js +350 -0
  170. package/dist/generators/utils/ast-helpers.js.map +1 -0
  171. package/dist/generators/utils/prisma-migration.d.ts +59 -0
  172. package/dist/generators/utils/prisma-migration.d.ts.map +1 -0
  173. package/dist/generators/utils/prisma-migration.js +161 -0
  174. package/dist/generators/utils/prisma-migration.js.map +1 -0
  175. package/dist/generators/utils/prisma-schema.d.ts +97 -0
  176. package/dist/generators/utils/prisma-schema.d.ts.map +1 -0
  177. package/dist/generators/utils/prisma-schema.js +235 -0
  178. package/dist/generators/utils/prisma-schema.js.map +1 -0
  179. package/dist/generators/utils/router-integration.d.ts +70 -0
  180. package/dist/generators/utils/router-integration.d.ts.map +1 -0
  181. package/dist/generators/utils/router-integration.js +305 -0
  182. package/dist/generators/utils/router-integration.js.map +1 -0
  183. package/dist/generators/utils/snapshot.d.ts +93 -0
  184. package/dist/generators/utils/snapshot.d.ts.map +1 -0
  185. package/dist/generators/utils/snapshot.js +178 -0
  186. package/dist/generators/utils/snapshot.js.map +1 -0
  187. package/dist/index.d.ts +6 -0
  188. package/dist/index.d.ts.map +1 -1
  189. package/dist/index.js +6 -0
  190. package/dist/index.js.map +1 -1
  191. package/dist/seeding/errors.d.ts +11 -24
  192. package/dist/seeding/errors.d.ts.map +1 -1
  193. package/dist/seeding/errors.js +11 -50
  194. package/dist/seeding/errors.js.map +1 -1
  195. package/dist/utils/paths.d.ts +19 -0
  196. package/dist/utils/paths.d.ts.map +1 -1
  197. package/dist/utils/paths.js +45 -0
  198. package/dist/utils/paths.js.map +1 -1
  199. package/dist/utils/schema-patterns.d.ts +26 -0
  200. package/dist/utils/schema-patterns.d.ts.map +1 -0
  201. package/dist/utils/schema-patterns.js +40 -0
  202. package/dist/utils/schema-patterns.js.map +1 -0
  203. package/package.json +12 -10
@@ -0,0 +1,216 @@
1
+ /**
2
+ * VeloxError Base Class
3
+ *
4
+ * A structured error class with error codes, fix suggestions, and JSON serialization.
5
+ * All VeloxTS CLI errors extend this class.
6
+ */
7
+ import pc from 'picocolors';
8
+ import { ERROR_CATALOG, getErrorDefinition } from './catalog.js';
9
+ // ============================================================================
10
+ // VeloxError Class
11
+ // ============================================================================
12
+ /**
13
+ * Base error class for all VeloxTS CLI errors.
14
+ *
15
+ * Features:
16
+ * - Error codes from central catalog (E1001, E2001, etc.)
17
+ * - Optional fix suggestions
18
+ * - Optional location information
19
+ * - JSON serialization for --json output
20
+ * - Formatted console output with colors
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * // Using a catalog code
25
+ * throw new VeloxError('E2001');
26
+ *
27
+ * // With custom message and location
28
+ * throw new VeloxError('E5003', {
29
+ * message: 'Failed to compile users.ts',
30
+ * location: { file: 'src/procedures/users.ts', line: 42 }
31
+ * });
32
+ *
33
+ * // Using factory methods
34
+ * throw VeloxError.notFound('User', '123');
35
+ * ```
36
+ */
37
+ export class VeloxError extends Error {
38
+ /** Error code (e.g., 'E2001') */
39
+ code;
40
+ /** Error name from catalog (e.g., 'NOT_IN_PROJECT') */
41
+ errorName;
42
+ /** Suggested fix for the error */
43
+ fix;
44
+ /** URL to documentation about this error */
45
+ docsUrl;
46
+ /** Location where the error occurred */
47
+ location;
48
+ /** Additional context/details */
49
+ details;
50
+ constructor(code, options) {
51
+ const definition = getErrorDefinition(code);
52
+ const message = options?.message ?? definition?.message ?? 'Unknown error';
53
+ super(message, { cause: options?.cause });
54
+ this.name = 'VeloxError';
55
+ this.code = code;
56
+ this.errorName = definition?.name ?? 'UNKNOWN';
57
+ this.fix = options?.fix ?? definition?.fix;
58
+ this.docsUrl = definition?.docsUrl;
59
+ this.location = options?.location;
60
+ this.details = options?.details;
61
+ }
62
+ // ==========================================================================
63
+ // Formatting
64
+ // ==========================================================================
65
+ /**
66
+ * Format error for console display with colors
67
+ */
68
+ format() {
69
+ const lines = [];
70
+ // Error header: VeloxError[E2001]: Message
71
+ lines.push(pc.red(`VeloxError[${this.code}]: ${this.message}`));
72
+ // Location
73
+ if (this.location?.file) {
74
+ let locationStr = ` at ${this.location.file}`;
75
+ if (this.location.line !== undefined) {
76
+ locationStr += `:${this.location.line}`;
77
+ if (this.location.column !== undefined) {
78
+ locationStr += `:${this.location.column}`;
79
+ }
80
+ }
81
+ lines.push(pc.dim(locationStr));
82
+ }
83
+ // Details
84
+ if (this.details && Object.keys(this.details).length > 0) {
85
+ lines.push('');
86
+ lines.push(pc.dim(' Details:'));
87
+ for (const [key, value] of Object.entries(this.details)) {
88
+ lines.push(pc.dim(` ${key}: ${String(value)}`));
89
+ }
90
+ }
91
+ // Fix suggestion
92
+ if (this.fix) {
93
+ lines.push('');
94
+ lines.push(pc.yellow(` Fix: ${this.fix}`));
95
+ }
96
+ // Docs URL
97
+ if (this.docsUrl) {
98
+ lines.push(pc.dim(` Docs: ${this.docsUrl}`));
99
+ }
100
+ return lines.join('\n');
101
+ }
102
+ /**
103
+ * Format error for console display without colors
104
+ */
105
+ formatPlain() {
106
+ const lines = [];
107
+ lines.push(`VeloxError[${this.code}]: ${this.message}`);
108
+ if (this.location?.file) {
109
+ let locationStr = ` at ${this.location.file}`;
110
+ if (this.location.line !== undefined) {
111
+ locationStr += `:${this.location.line}`;
112
+ if (this.location.column !== undefined) {
113
+ locationStr += `:${this.location.column}`;
114
+ }
115
+ }
116
+ lines.push(locationStr);
117
+ }
118
+ if (this.details && Object.keys(this.details).length > 0) {
119
+ lines.push('');
120
+ lines.push(' Details:');
121
+ for (const [key, value] of Object.entries(this.details)) {
122
+ lines.push(` ${key}: ${String(value)}`);
123
+ }
124
+ }
125
+ if (this.fix) {
126
+ lines.push('');
127
+ lines.push(` Fix: ${this.fix}`);
128
+ }
129
+ if (this.docsUrl) {
130
+ lines.push(` Docs: ${this.docsUrl}`);
131
+ }
132
+ return lines.join('\n');
133
+ }
134
+ // ==========================================================================
135
+ // JSON Serialization
136
+ // ==========================================================================
137
+ /**
138
+ * Convert to JSON for --json output
139
+ */
140
+ toJSON() {
141
+ return {
142
+ code: this.code,
143
+ name: this.errorName,
144
+ message: this.message,
145
+ fix: this.fix,
146
+ docsUrl: this.docsUrl,
147
+ location: this.location,
148
+ details: this.details,
149
+ };
150
+ }
151
+ // ==========================================================================
152
+ // Factory Methods for Common Errors
153
+ // ==========================================================================
154
+ /**
155
+ * Create a NOT_FOUND error (E1001)
156
+ */
157
+ static notFound(resource, id) {
158
+ const message = id ? `${resource} not found: ${id}` : `${resource} not found`;
159
+ return new VeloxError('E1001', {
160
+ message,
161
+ details: { resource, id },
162
+ });
163
+ }
164
+ /**
165
+ * Create a VALIDATION_FAILED error (E1002)
166
+ */
167
+ static validation(message, details) {
168
+ return new VeloxError('E1002', { message, details });
169
+ }
170
+ /**
171
+ * Create an UNAUTHORIZED error (E1003)
172
+ */
173
+ static unauthorized(message = 'Authentication required') {
174
+ return new VeloxError('E1003', { message });
175
+ }
176
+ /**
177
+ * Create a FORBIDDEN error (E1004)
178
+ */
179
+ static forbidden(message = 'Access denied') {
180
+ return new VeloxError('E1004', { message });
181
+ }
182
+ /**
183
+ * Create a CONFLICT error (E1005)
184
+ */
185
+ static conflict(message, details) {
186
+ return new VeloxError('E1005', { message, details });
187
+ }
188
+ /**
189
+ * Create an INTERNAL_ERROR (E1006)
190
+ */
191
+ static internal(message, cause) {
192
+ return new VeloxError('E1006', { message, cause });
193
+ }
194
+ // ==========================================================================
195
+ // Static Utilities
196
+ // ==========================================================================
197
+ /**
198
+ * Check if an error is a VeloxError
199
+ */
200
+ static isVeloxError(error) {
201
+ return error instanceof VeloxError;
202
+ }
203
+ /**
204
+ * Get all available error codes
205
+ */
206
+ static getCodes() {
207
+ return Object.keys(ERROR_CATALOG);
208
+ }
209
+ /**
210
+ * Get error definition from catalog
211
+ */
212
+ static getDefinition(code) {
213
+ return getErrorDefinition(code);
214
+ }
215
+ }
216
+ //# sourceMappingURL=velox-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"velox-error.js","sourceRoot":"","sources":["../../src/errors/velox-error.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/generators/base.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EACV,gBAAgB,EAChB,SAAS,EACT,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,cAAc,EACd,eAAe,EAChB,MAAM,YAAY,CAAC;AAapB;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BnE;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CA4B/E;AA2GD;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CA4B1E;AAMD;;;GAGG;AACH,8BAAsB,aAAa,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CACpE,YAAW,SAAS,CAAC,QAAQ,CAAC;IAE9B,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IAC9C,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;IAE1D;;;OAGG;IACH,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIpD;;;OAGG;IACH,QAAQ,CAAC,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,QAAQ;IAEhE;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;IAM9E;;OAEG;IACH,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,GAAG,eAAe,CAAC,QAAQ,CAAC;IAQrF;;OAEG;IACH,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM;IAIhE;;OAEG;IACH,SAAS,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO;IAY9F;;OAEG;IACH,SAAS,CAAC,oBAAoB,CAAC,KAAK,EAAE,aAAa,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM;CAKhG;AAMD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAC1C,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,QAAQ,EACjB,OAAO,EAAE,cAAc,GACtB,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,CASxC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EACpC,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,EACjC,KAAK,EAAE;IACL,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,GACA,eAAe,CAAC,QAAQ,CAAC,CAO3B"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/generators/base.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EACV,gBAAgB,EAChB,SAAS,EACT,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,cAAc,EAEd,eAAe,EAChB,MAAM,YAAY,CAAC;AAapB;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BnE;AAOD;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAuD/E;AA2GD;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CA4B1E;AAMD;;;GAGG;AACH,8BAAsB,aAAa,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CACpE,YAAW,SAAS,CAAC,QAAQ,CAAC;IAE9B,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IAC9C,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;IAE1D;;;OAGG;IACH,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIpD;;;OAGG;IACH,QAAQ,CAAC,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,QAAQ;IAEhE;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;IAM9E;;OAEG;IACH,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,GAAG,eAAe,CAAC,QAAQ,CAAC;IAQrF;;OAEG;IACH,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM;IAIhE;;OAEG;IACH,SAAS,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO;IAY9F;;OAEG;IACH,SAAS,CAAC,oBAAoB,CAAC,KAAK,EAAE,aAAa,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM;CAKhG;AAMD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAC1C,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,QAAQ,EACjB,OAAO,EAAE,cAAc,GACtB,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,CASxC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EACpC,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,EACjC,KAAK,EAAE;IACL,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,GACA,eAAe,CAAC,QAAQ,CAAC,CAO3B"}
@@ -34,6 +34,10 @@ export async function ensureVeloxProject(cwd) {
34
34
  throw new GeneratorError(GeneratorErrorCode.NOT_IN_PROJECT, 'This does not appear to be a VeloxTS project.', 'VeloxTS packages not found in dependencies. Create a new project with: npx create-velox-app my-app');
35
35
  }
36
36
  }
37
+ /**
38
+ * Markers that indicate a Vinxi/RSC project
39
+ */
40
+ const VINXI_PROJECT_MARKERS = ['vinxi', '@vinxi/server-functions', '@veloxts/web'];
37
41
  /**
38
42
  * Detect project configuration from package.json and velox config
39
43
  */
@@ -44,6 +48,9 @@ export async function detectProjectContext(cwd) {
44
48
  name: 'unknown',
45
49
  hasAuth: false,
46
50
  database: 'sqlite',
51
+ projectType: 'api',
52
+ isVinxiProject: false,
53
+ hasWeb: false,
47
54
  };
48
55
  }
49
56
  const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));
@@ -53,12 +60,31 @@ export async function detectProjectContext(cwd) {
53
60
  };
54
61
  // Detect auth package
55
62
  const hasAuth = '@veloxts/auth' in dependencies;
63
+ // Detect web package
64
+ const hasWeb = '@veloxts/web' in dependencies;
56
65
  // Detect database from Prisma schema or default to SQLite
57
66
  const database = detectDatabase(cwd);
67
+ // Detect Vinxi project by checking markers or app.config.ts
68
+ const hasVinxiMarker = VINXI_PROJECT_MARKERS.some((marker) => marker in dependencies);
69
+ const hasAppConfig = existsSync(join(cwd, 'app.config.ts')) || existsSync(join(cwd, 'app.config.js'));
70
+ const isVinxiProject = hasVinxiMarker || hasAppConfig;
71
+ // Detect project type
72
+ const hasAppPagesDir = existsSync(join(cwd, 'app', 'pages'));
73
+ const projectType = isVinxiProject || hasAppPagesDir ? 'fullstack' : 'api';
74
+ // Detect directory structure
75
+ const pagesDir = projectType === 'fullstack' ? 'app/pages' : undefined;
76
+ const layoutsDir = projectType === 'fullstack' ? 'app/layouts' : undefined;
77
+ const actionsDir = projectType === 'fullstack' ? 'app/actions' : 'src/actions';
58
78
  return {
59
79
  name: packageJson.name ?? 'velox-app',
60
80
  hasAuth,
61
81
  database,
82
+ projectType,
83
+ isVinxiProject,
84
+ hasWeb,
85
+ pagesDir,
86
+ layoutsDir,
87
+ actionsDir,
62
88
  };
63
89
  }
64
90
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/generators/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/generators/base.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Test Helpers for Field Generation Tests
3
+ *
4
+ * Factory functions and utilities for creating test data.
5
+ */
6
+ import type { EnumDefinition, FieldAttributes, FieldDefinition, FieldType } from '../types.js';
7
+ /**
8
+ * Create a test field definition with sensible defaults
9
+ */
10
+ export declare function createTestField(overrides: Partial<FieldDefinition> & {
11
+ name: string;
12
+ type: FieldType;
13
+ }): FieldDefinition;
14
+ /**
15
+ * Create a test field with specific attributes
16
+ */
17
+ export declare function createFieldWithAttributes(name: string, type: FieldType, attributes: Partial<FieldAttributes>): FieldDefinition;
18
+ /**
19
+ * Create an enum field definition
20
+ */
21
+ export declare function createEnumField(name: string, enumName: string, values: string[], attributes?: Partial<FieldAttributes>): FieldDefinition;
22
+ /**
23
+ * Create a test enum definition
24
+ */
25
+ export declare function createTestEnum(name: string, values: string[]): EnumDefinition;
26
+ /**
27
+ * A simple string field
28
+ */
29
+ export declare const simpleStringField: FieldDefinition;
30
+ /**
31
+ * An optional text field
32
+ */
33
+ export declare const optionalTextField: FieldDefinition;
34
+ /**
35
+ * A unique string field
36
+ */
37
+ export declare const uniqueStringField: FieldDefinition;
38
+ /**
39
+ * A boolean field with default
40
+ */
41
+ export declare const booleanWithDefault: FieldDefinition;
42
+ /**
43
+ * An integer field
44
+ */
45
+ export declare const integerField: FieldDefinition;
46
+ /**
47
+ * A float field
48
+ */
49
+ export declare const floatField: FieldDefinition;
50
+ /**
51
+ * A datetime field
52
+ */
53
+ export declare const datetimeField: FieldDefinition;
54
+ /**
55
+ * A JSON field
56
+ */
57
+ export declare const jsonField: FieldDefinition;
58
+ /**
59
+ * An enum field
60
+ */
61
+ export declare const statusEnumField: FieldDefinition;
62
+ /**
63
+ * A comprehensive set of all field types
64
+ */
65
+ export declare const allFieldTypes: FieldDefinition[];
66
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../src/generators/fields/__tests__/helpers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAgB/F;;GAEG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GACtE,eAAe,CAOjB;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,SAAS,EACf,UAAU,EAAE,OAAO,CAAC,eAAe,CAAC,GACnC,eAAe,CASjB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EAAE,EAChB,UAAU,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GACpC,eAAe,CAajB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,cAAc,CAE7E;AAMD;;GAEG;AACH,eAAO,MAAM,iBAAiB,iBAG5B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB,iBAE5B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB,iBAE5B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,kBAAkB,iBAG7B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,YAAY,iBAGvB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,UAAU,iBAGrB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa,iBAGxB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,SAAS,iBAGpB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,eAAe,iBAI1B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,eAAe,EAS1C,CAAC"}
@@ -0,0 +1,142 @@
1
+ /**
2
+ * Test Helpers for Field Generation Tests
3
+ *
4
+ * Factory functions and utilities for creating test data.
5
+ */
6
+ // ============================================================================
7
+ // Default Values
8
+ // ============================================================================
9
+ const DEFAULT_ATTRIBUTES = {
10
+ optional: false,
11
+ unique: false,
12
+ hasDefault: false,
13
+ };
14
+ // ============================================================================
15
+ // Factory Functions
16
+ // ============================================================================
17
+ /**
18
+ * Create a test field definition with sensible defaults
19
+ */
20
+ export function createTestField(overrides) {
21
+ return {
22
+ name: overrides.name,
23
+ type: overrides.type,
24
+ attributes: overrides.attributes ?? { ...DEFAULT_ATTRIBUTES },
25
+ enumDef: overrides.enumDef,
26
+ };
27
+ }
28
+ /**
29
+ * Create a test field with specific attributes
30
+ */
31
+ export function createFieldWithAttributes(name, type, attributes) {
32
+ return {
33
+ name,
34
+ type,
35
+ attributes: {
36
+ ...DEFAULT_ATTRIBUTES,
37
+ ...attributes,
38
+ },
39
+ };
40
+ }
41
+ /**
42
+ * Create an enum field definition
43
+ */
44
+ export function createEnumField(name, enumName, values, attributes) {
45
+ return {
46
+ name,
47
+ type: 'enum',
48
+ attributes: {
49
+ ...DEFAULT_ATTRIBUTES,
50
+ ...attributes,
51
+ },
52
+ enumDef: {
53
+ name: enumName,
54
+ values,
55
+ },
56
+ };
57
+ }
58
+ /**
59
+ * Create a test enum definition
60
+ */
61
+ export function createTestEnum(name, values) {
62
+ return { name, values };
63
+ }
64
+ // ============================================================================
65
+ // Common Test Fields
66
+ // ============================================================================
67
+ /**
68
+ * A simple string field
69
+ */
70
+ export const simpleStringField = createTestField({
71
+ name: 'title',
72
+ type: 'string',
73
+ });
74
+ /**
75
+ * An optional text field
76
+ */
77
+ export const optionalTextField = createFieldWithAttributes('description', 'text', {
78
+ optional: true,
79
+ });
80
+ /**
81
+ * A unique string field
82
+ */
83
+ export const uniqueStringField = createFieldWithAttributes('email', 'string', {
84
+ unique: true,
85
+ });
86
+ /**
87
+ * A boolean field with default
88
+ */
89
+ export const booleanWithDefault = createFieldWithAttributes('isActive', 'boolean', {
90
+ hasDefault: true,
91
+ defaultValue: 'true',
92
+ });
93
+ /**
94
+ * An integer field
95
+ */
96
+ export const integerField = createTestField({
97
+ name: 'count',
98
+ type: 'int',
99
+ });
100
+ /**
101
+ * A float field
102
+ */
103
+ export const floatField = createTestField({
104
+ name: 'price',
105
+ type: 'float',
106
+ });
107
+ /**
108
+ * A datetime field
109
+ */
110
+ export const datetimeField = createTestField({
111
+ name: 'publishedAt',
112
+ type: 'datetime',
113
+ });
114
+ /**
115
+ * A JSON field
116
+ */
117
+ export const jsonField = createTestField({
118
+ name: 'metadata',
119
+ type: 'json',
120
+ });
121
+ /**
122
+ * An enum field
123
+ */
124
+ export const statusEnumField = createEnumField('status', 'Status', [
125
+ 'DRAFT',
126
+ 'PUBLISHED',
127
+ 'ARCHIVED',
128
+ ]);
129
+ /**
130
+ * A comprehensive set of all field types
131
+ */
132
+ export const allFieldTypes = [
133
+ simpleStringField,
134
+ optionalTextField,
135
+ integerField,
136
+ floatField,
137
+ createTestField({ name: 'isPublished', type: 'boolean' }),
138
+ datetimeField,
139
+ jsonField,
140
+ statusEnumField,
141
+ ];
142
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../src/generators/fields/__tests__/helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Interactive Menu Actions for Field Definition
3
+ *
4
+ * Handles the main menu and action selection for the interactive
5
+ * field definition workflow.
6
+ */
7
+ import type { FieldDefinition } from './types.js';
8
+ /**
9
+ * Available actions from the main menu
10
+ */
11
+ export type MainMenuAction = 'add' | 'edit' | 'remove' | 'template' | 'done' | 'skip';
12
+ /**
13
+ * Prompt for main menu action
14
+ */
15
+ export declare function promptMainMenu(fieldCount: number): Promise<MainMenuAction | symbol>;
16
+ /**
17
+ * Select a field for editing or removal
18
+ */
19
+ export declare function selectField(fields: FieldDefinition[], purpose: 'edit' | 'remove'): Promise<number | null>;
20
+ /**
21
+ * Select and apply a field template
22
+ * Returns the fields to add, or null if cancelled
23
+ */
24
+ export declare function selectAndApplyTemplate(): Promise<FieldDefinition[] | null>;
25
+ /**
26
+ * Confirm before finalizing fields
27
+ */
28
+ export declare function confirmFieldsComplete(fields: FieldDefinition[]): Promise<boolean>;
29
+ /**
30
+ * Confirm before removing a field
31
+ */
32
+ export declare function confirmRemoveField(field: FieldDefinition): Promise<boolean>;
33
+ /**
34
+ * Confirm cancellation
35
+ */
36
+ export declare function confirmCancel(): Promise<boolean>;
37
+ /**
38
+ * Check for and handle template field conflicts
39
+ * Returns the fields that can be added (non-conflicting)
40
+ */
41
+ export declare function handleTemplateConflicts(templateFields: FieldDefinition[], existingNames: Set<string>): Promise<FieldDefinition[] | null>;
42
+ /**
43
+ * Show success message for added field
44
+ */
45
+ export declare function showFieldAdded(field: FieldDefinition): void;
46
+ /**
47
+ * Show success message for updated field
48
+ */
49
+ export declare function showFieldUpdated(field: FieldDefinition): void;
50
+ /**
51
+ * Show success message for removed field
52
+ */
53
+ export declare function showFieldRemoved(fieldName: string): void;
54
+ /**
55
+ * Show success message for applied template
56
+ */
57
+ export declare function showTemplateApplied(count: number, templateName: string): void;
58
+ //# sourceMappingURL=actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../src/generators/fields/actions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAOlD;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;AAMtF;;GAEG;AACH,wBAAsB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,MAAM,CAAC,CA8BzF;AAMD;;GAEG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,eAAe,EAAE,EACzB,OAAO,EAAE,MAAM,GAAG,QAAQ,GACzB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAkCxB;AAMD;;;GAGG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,CAmDhF;AAMD;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAiBvF;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CAUjF;AAED;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC,CAOtD;AAMD;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,cAAc,EAAE,eAAe,EAAE,EACjC,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,GACzB,OAAO,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,CA4BnC;AAMD;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAI3D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAI7D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAExD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAI7E"}