@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.
- package/README.md +2 -48
- package/dist/cli.d.ts +5 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +7 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/dev.d.ts.map +1 -1
- package/dist/commands/dev.js +71 -7
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/introspect.d.ts +16 -0
- package/dist/commands/introspect.d.ts.map +1 -0
- package/dist/commands/introspect.js +559 -0
- package/dist/commands/introspect.js.map +1 -0
- package/dist/commands/make.d.ts.map +1 -1
- package/dist/commands/make.js +18 -8
- package/dist/commands/make.js.map +1 -1
- package/dist/commands/procedures.d.ts.map +1 -1
- package/dist/commands/procedures.js +16 -0
- package/dist/commands/procedures.js.map +1 -1
- package/dist/dev/error-parser.d.ts.map +1 -1
- package/dist/dev/error-parser.js +24 -8
- package/dist/dev/error-parser.js.map +1 -1
- package/dist/dev/hmr-runner.d.ts.map +1 -1
- package/dist/dev/hmr-runner.js +6 -1
- package/dist/dev/hmr-runner.js.map +1 -1
- package/dist/dev/index.d.ts +3 -3
- package/dist/dev/index.d.ts.map +1 -1
- package/dist/dev/index.js +3 -3
- package/dist/dev/index.js.map +1 -1
- package/dist/dev/reload-reporter.d.ts +2 -2
- package/dist/dev/reload-reporter.d.ts.map +1 -1
- package/dist/dev/reload-reporter.js +2 -2
- package/dist/dev/reload-reporter.js.map +1 -1
- package/dist/errors/catalog.d.ts +48 -0
- package/dist/errors/catalog.d.ts.map +1 -0
- package/dist/errors/catalog.js +421 -0
- package/dist/errors/catalog.js.map +1 -0
- package/dist/errors/index.d.ts +26 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +28 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/errors/velox-error.d.ts +122 -0
- package/dist/errors/velox-error.d.ts.map +1 -0
- package/dist/errors/velox-error.js +216 -0
- package/dist/errors/velox-error.js.map +1 -0
- package/dist/generators/base.d.ts.map +1 -1
- package/dist/generators/base.js +26 -0
- package/dist/generators/base.js.map +1 -1
- package/dist/generators/fields/__tests__/helpers.d.ts +66 -0
- package/dist/generators/fields/__tests__/helpers.d.ts.map +1 -0
- package/dist/generators/fields/__tests__/helpers.js +142 -0
- package/dist/generators/fields/__tests__/helpers.js.map +1 -0
- package/dist/generators/fields/actions.d.ts +58 -0
- package/dist/generators/fields/actions.d.ts.map +1 -0
- package/dist/generators/fields/actions.js +230 -0
- package/dist/generators/fields/actions.js.map +1 -0
- package/dist/generators/fields/display.d.ts +28 -0
- package/dist/generators/fields/display.d.ts.map +1 -0
- package/dist/generators/fields/display.js +214 -0
- package/dist/generators/fields/display.js.map +1 -0
- package/dist/generators/fields/index.d.ts +12 -0
- package/dist/generators/fields/index.d.ts.map +1 -0
- package/dist/generators/fields/index.js +12 -0
- package/dist/generators/fields/index.js.map +1 -0
- package/dist/generators/fields/prompts.d.ts +31 -0
- package/dist/generators/fields/prompts.d.ts.map +1 -0
- package/dist/generators/fields/prompts.js +366 -0
- package/dist/generators/fields/prompts.js.map +1 -0
- package/dist/generators/fields/templates.d.ts +49 -0
- package/dist/generators/fields/templates.d.ts.map +1 -0
- package/dist/generators/fields/templates.js +230 -0
- package/dist/generators/fields/templates.js.map +1 -0
- package/dist/generators/fields/types.d.ts +95 -0
- package/dist/generators/fields/types.d.ts.map +1 -0
- package/dist/generators/fields/types.js +150 -0
- package/dist/generators/fields/types.js.map +1 -0
- package/dist/generators/generators/action.d.ts +37 -0
- package/dist/generators/generators/action.d.ts.map +1 -0
- package/dist/generators/generators/action.js +109 -0
- package/dist/generators/generators/action.js.map +1 -0
- package/dist/generators/generators/exception.d.ts +38 -0
- package/dist/generators/generators/exception.d.ts.map +1 -0
- package/dist/generators/generators/exception.js +109 -0
- package/dist/generators/generators/exception.js.map +1 -0
- package/dist/generators/generators/guard.d.ts +38 -0
- package/dist/generators/generators/guard.d.ts.map +1 -0
- package/dist/generators/generators/guard.js +109 -0
- package/dist/generators/generators/guard.js.map +1 -0
- package/dist/generators/generators/index.d.ts +8 -0
- package/dist/generators/generators/index.d.ts.map +1 -1
- package/dist/generators/generators/index.js +27 -0
- package/dist/generators/generators/index.js.map +1 -1
- package/dist/generators/generators/layout.d.ts +36 -0
- package/dist/generators/generators/layout.d.ts.map +1 -0
- package/dist/generators/generators/layout.js +111 -0
- package/dist/generators/generators/layout.js.map +1 -0
- package/dist/generators/generators/middleware.d.ts +38 -0
- package/dist/generators/generators/middleware.d.ts.map +1 -0
- package/dist/generators/generators/middleware.js +109 -0
- package/dist/generators/generators/middleware.js.map +1 -0
- package/dist/generators/generators/model.d.ts +16 -4
- package/dist/generators/generators/model.d.ts.map +1 -1
- package/dist/generators/generators/model.js +88 -7
- package/dist/generators/generators/model.js.map +1 -1
- package/dist/generators/generators/page.d.ts +36 -0
- package/dist/generators/generators/page.d.ts.map +1 -0
- package/dist/generators/generators/page.js +112 -0
- package/dist/generators/generators/page.js.map +1 -0
- package/dist/generators/generators/policy.d.ts +37 -0
- package/dist/generators/generators/policy.d.ts.map +1 -0
- package/dist/generators/generators/policy.js +100 -0
- package/dist/generators/generators/policy.js.map +1 -0
- package/dist/generators/generators/resource.d.ts +42 -4
- package/dist/generators/generators/resource.d.ts.map +1 -1
- package/dist/generators/generators/resource.js +450 -9
- package/dist/generators/generators/resource.js.map +1 -1
- package/dist/generators/generators/service.d.ts +38 -0
- package/dist/generators/generators/service.d.ts.map +1 -0
- package/dist/generators/generators/service.js +109 -0
- package/dist/generators/generators/service.js.map +1 -0
- package/dist/generators/registry.d.ts.map +1 -1
- package/dist/generators/registry.js +10 -1
- package/dist/generators/registry.js.map +1 -1
- package/dist/generators/templates/action.d.ts +28 -0
- package/dist/generators/templates/action.d.ts.map +1 -0
- package/dist/generators/templates/action.js +359 -0
- package/dist/generators/templates/action.js.map +1 -0
- package/dist/generators/templates/exception.d.ts +26 -0
- package/dist/generators/templates/exception.d.ts.map +1 -0
- package/dist/generators/templates/exception.js +671 -0
- package/dist/generators/templates/exception.js.map +1 -0
- package/dist/generators/templates/guard.d.ts +26 -0
- package/dist/generators/templates/guard.d.ts.map +1 -0
- package/dist/generators/templates/guard.js +555 -0
- package/dist/generators/templates/guard.js.map +1 -0
- package/dist/generators/templates/layout.d.ts +28 -0
- package/dist/generators/templates/layout.d.ts.map +1 -0
- package/dist/generators/templates/layout.js +147 -0
- package/dist/generators/templates/layout.js.map +1 -0
- package/dist/generators/templates/middleware.d.ts +26 -0
- package/dist/generators/templates/middleware.d.ts.map +1 -0
- package/dist/generators/templates/middleware.js +411 -0
- package/dist/generators/templates/middleware.js.map +1 -0
- package/dist/generators/templates/model.d.ts +3 -0
- package/dist/generators/templates/model.d.ts.map +1 -1
- package/dist/generators/templates/model.js +183 -28
- package/dist/generators/templates/model.js.map +1 -1
- package/dist/generators/templates/page.d.ts +36 -0
- package/dist/generators/templates/page.d.ts.map +1 -0
- package/dist/generators/templates/page.js +147 -0
- package/dist/generators/templates/page.js.map +1 -0
- package/dist/generators/templates/policy.d.ts +24 -0
- package/dist/generators/templates/policy.d.ts.map +1 -0
- package/dist/generators/templates/policy.js +499 -0
- package/dist/generators/templates/policy.js.map +1 -0
- package/dist/generators/templates/resource.d.ts +65 -0
- package/dist/generators/templates/resource.d.ts.map +1 -1
- package/dist/generators/templates/resource.js +228 -43
- package/dist/generators/templates/resource.js.map +1 -1
- package/dist/generators/templates/service.d.ts +26 -0
- package/dist/generators/templates/service.d.ts.map +1 -0
- package/dist/generators/templates/service.js +511 -0
- package/dist/generators/templates/service.js.map +1 -0
- package/dist/generators/types.d.ts +26 -14
- package/dist/generators/types.d.ts.map +1 -1
- package/dist/generators/types.js +8 -25
- package/dist/generators/types.js.map +1 -1
- package/dist/generators/utils/ast-helpers.d.ts +147 -0
- package/dist/generators/utils/ast-helpers.d.ts.map +1 -0
- package/dist/generators/utils/ast-helpers.js +350 -0
- package/dist/generators/utils/ast-helpers.js.map +1 -0
- package/dist/generators/utils/prisma-migration.d.ts +59 -0
- package/dist/generators/utils/prisma-migration.d.ts.map +1 -0
- package/dist/generators/utils/prisma-migration.js +161 -0
- package/dist/generators/utils/prisma-migration.js.map +1 -0
- package/dist/generators/utils/prisma-schema.d.ts +97 -0
- package/dist/generators/utils/prisma-schema.d.ts.map +1 -0
- package/dist/generators/utils/prisma-schema.js +235 -0
- package/dist/generators/utils/prisma-schema.js.map +1 -0
- package/dist/generators/utils/router-integration.d.ts +70 -0
- package/dist/generators/utils/router-integration.d.ts.map +1 -0
- package/dist/generators/utils/router-integration.js +305 -0
- package/dist/generators/utils/router-integration.js.map +1 -0
- package/dist/generators/utils/snapshot.d.ts +93 -0
- package/dist/generators/utils/snapshot.d.ts.map +1 -0
- package/dist/generators/utils/snapshot.js +178 -0
- package/dist/generators/utils/snapshot.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/seeding/errors.d.ts +11 -24
- package/dist/seeding/errors.d.ts.map +1 -1
- package/dist/seeding/errors.js +11 -50
- package/dist/seeding/errors.js.map +1 -1
- package/dist/utils/paths.d.ts +19 -0
- package/dist/utils/paths.d.ts.map +1 -1
- package/dist/utils/paths.js +45 -0
- package/dist/utils/paths.js.map +1 -1
- package/dist/utils/schema-patterns.d.ts +26 -0
- package/dist/utils/schema-patterns.d.ts.map +1 -0
- package/dist/utils/schema-patterns.js +40 -0
- package/dist/utils/schema-patterns.js.map +1 -0
- 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,
|
|
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"}
|
package/dist/generators/base.js
CHANGED
|
@@ -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":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
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"}
|