@bairock/lenz 0.0.14 → 0.0.16
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 +119 -8
- package/dist/cli/commands/generate.d.ts.map +1 -1
- package/dist/cli/commands/generate.js +66 -79
- package/dist/cli/commands/generate.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +22 -30
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/studio.js +15 -21
- package/dist/cli/commands/studio.js.map +1 -1
- package/dist/cli/index.js +11 -18
- package/dist/cli/index.js.map +1 -1
- package/dist/config/index.d.ts +4 -6
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +31 -15
- package/dist/config/index.js.map +1 -1
- package/dist/engine/CodeGenerator.d.ts +8 -28
- package/dist/engine/CodeGenerator.d.ts.map +1 -1
- package/dist/engine/CodeGenerator.js +26 -1935
- package/dist/engine/CodeGenerator.js.map +1 -1
- package/dist/engine/GraphQLParseHelpers.d.ts +25 -0
- package/dist/engine/GraphQLParseHelpers.d.ts.map +1 -0
- package/dist/engine/GraphQLParseHelpers.js +128 -0
- package/dist/engine/GraphQLParseHelpers.js.map +1 -0
- package/dist/engine/GraphQLParser.d.ts +23 -8
- package/dist/engine/GraphQLParser.d.ts.map +1 -1
- package/dist/engine/GraphQLParser.js +165 -248
- package/dist/engine/GraphQLParser.js.map +1 -1
- package/dist/engine/GraphQLRelationAnalyzer.d.ts +10 -0
- package/dist/engine/GraphQLRelationAnalyzer.d.ts.map +1 -0
- package/dist/engine/GraphQLRelationAnalyzer.js +117 -0
- package/dist/engine/GraphQLRelationAnalyzer.js.map +1 -0
- package/dist/engine/LenzEngine.d.ts +4 -4
- package/dist/engine/LenzEngine.d.ts.map +1 -1
- package/dist/engine/LenzEngine.js +59 -46
- package/dist/engine/LenzEngine.js.map +1 -1
- package/dist/engine/SchemaRelationValidator.d.ts +15 -0
- package/dist/engine/SchemaRelationValidator.d.ts.map +1 -0
- package/dist/engine/SchemaRelationValidator.js +133 -0
- package/dist/engine/SchemaRelationValidator.js.map +1 -0
- package/dist/engine/SchemaValidator.d.ts +12 -11
- package/dist/engine/SchemaValidator.d.ts.map +1 -1
- package/dist/engine/SchemaValidator.js +163 -169
- package/dist/engine/SchemaValidator.js.map +1 -1
- package/dist/engine/directives.d.ts +10 -0
- package/dist/engine/directives.d.ts.map +1 -1
- package/dist/engine/directives.js +192 -47
- package/dist/engine/directives.js.map +1 -1
- package/dist/engine/generators/ClientGenerator.d.ts +7 -0
- package/dist/engine/generators/ClientGenerator.d.ts.map +1 -0
- package/dist/engine/generators/ClientGenerator.js +386 -0
- package/dist/engine/generators/ClientGenerator.js.map +1 -0
- package/dist/engine/generators/DelegateGenerator.d.ts +9 -0
- package/dist/engine/generators/DelegateGenerator.d.ts.map +1 -0
- package/dist/engine/generators/DelegateGenerator.js +453 -0
- package/dist/engine/generators/DelegateGenerator.js.map +1 -0
- package/dist/engine/generators/DelegateHelpers.d.ts +7 -0
- package/dist/engine/generators/DelegateHelpers.d.ts.map +1 -0
- package/dist/engine/generators/DelegateHelpers.js +144 -0
- package/dist/engine/generators/DelegateHelpers.js.map +1 -0
- package/dist/engine/generators/DelegateRelations.d.ts +11 -0
- package/dist/engine/generators/DelegateRelations.d.ts.map +1 -0
- package/dist/engine/generators/DelegateRelations.js +794 -0
- package/dist/engine/generators/DelegateRelations.js.map +1 -0
- package/dist/engine/generators/DelegateTemplateBody.d.ts +8 -0
- package/dist/engine/generators/DelegateTemplateBody.d.ts.map +1 -0
- package/dist/engine/generators/DelegateTemplateBody.js +776 -0
- package/dist/engine/generators/DelegateTemplateBody.js.map +1 -0
- package/dist/engine/generators/GenerateRuntimeErrors.d.ts +2 -0
- package/dist/engine/generators/GenerateRuntimeErrors.d.ts.map +1 -0
- package/dist/engine/generators/GenerateRuntimeErrors.js +140 -0
- package/dist/engine/generators/GenerateRuntimeErrors.js.map +1 -0
- package/dist/engine/generators/GenerateRuntimeIndex.d.ts +2 -0
- package/dist/engine/generators/GenerateRuntimeIndex.d.ts.map +1 -0
- package/dist/engine/generators/GenerateRuntimeIndex.js +21 -0
- package/dist/engine/generators/GenerateRuntimeIndex.js.map +1 -0
- package/dist/engine/generators/GenerateRuntimeLogger.d.ts +2 -0
- package/dist/engine/generators/GenerateRuntimeLogger.d.ts.map +1 -0
- package/dist/engine/generators/GenerateRuntimeLogger.js +125 -0
- package/dist/engine/generators/GenerateRuntimeLogger.js.map +1 -0
- package/dist/engine/generators/GenerateRuntimePagination.d.ts +2 -0
- package/dist/engine/generators/GenerateRuntimePagination.d.ts.map +1 -0
- package/dist/engine/generators/GenerateRuntimePagination.js +159 -0
- package/dist/engine/generators/GenerateRuntimePagination.js.map +1 -0
- package/dist/engine/generators/GenerateRuntimeQuery.d.ts +2 -0
- package/dist/engine/generators/GenerateRuntimeQuery.d.ts.map +1 -0
- package/dist/engine/generators/GenerateRuntimeQuery.js +427 -0
- package/dist/engine/generators/GenerateRuntimeQuery.js.map +1 -0
- package/dist/engine/generators/GenerateRuntimeRelations.d.ts +2 -0
- package/dist/engine/generators/GenerateRuntimeRelations.d.ts.map +1 -0
- package/dist/engine/generators/GenerateRuntimeRelations.js +130 -0
- package/dist/engine/generators/GenerateRuntimeRelations.js.map +1 -0
- package/dist/engine/generators/RuntimeGenerator.d.ts +16 -0
- package/dist/engine/generators/RuntimeGenerator.d.ts.map +1 -0
- package/dist/engine/generators/RuntimeGenerator.js +16 -0
- package/dist/engine/generators/RuntimeGenerator.js.map +1 -0
- package/dist/engine/generators/TypeFilterTypes.d.ts +2 -0
- package/dist/engine/generators/TypeFilterTypes.d.ts.map +1 -0
- package/dist/engine/generators/TypeFilterTypes.js +220 -0
- package/dist/engine/generators/TypeFilterTypes.js.map +1 -0
- package/dist/engine/generators/TypeGenerator.d.ts +16 -0
- package/dist/engine/generators/TypeGenerator.d.ts.map +1 -0
- package/dist/engine/generators/TypeGenerator.js +493 -0
- package/dist/engine/generators/TypeGenerator.js.map +1 -0
- package/dist/engine/generators/helpers.d.ts +13 -0
- package/dist/engine/generators/helpers.d.ts.map +1 -0
- package/dist/engine/generators/helpers.js +316 -0
- package/dist/engine/generators/helpers.js.map +1 -0
- package/dist/engine/index.d.ts +3 -3
- package/dist/engine/index.d.ts.map +1 -1
- package/dist/engine/index.js +3 -9
- package/dist/engine/index.js.map +1 -1
- package/dist/errors/index.d.ts +3 -0
- package/dist/errors/index.d.ts.map +1 -1
- package/dist/errors/index.js +25 -32
- package/dist/errors/index.js.map +1 -1
- package/dist/index.d.ts +4 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -30
- package/dist/index.js.map +1 -1
- package/package.json +6 -7
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const directives_1 = require("./directives");
|
|
6
|
-
class SchemaValidator {
|
|
1
|
+
import { SchemaValidationError, CircularDependencyError, DuplicateModelError, DuplicateFieldError, InvalidFieldTypeError, InvalidDirectiveError } from '../errors/index.js';
|
|
2
|
+
import { isLenzDirective } from './directives.js';
|
|
3
|
+
import { SchemaRelationValidator } from './SchemaRelationValidator.js';
|
|
4
|
+
export class SchemaValidator {
|
|
7
5
|
constructor(models, enums, relations) {
|
|
8
6
|
this.supportedScalarTypes = new Set([
|
|
9
7
|
'String', 'Int', 'Float', 'Boolean', 'ID',
|
|
10
|
-
'DateTime', 'Date', 'Json', 'ObjectId'
|
|
8
|
+
'DateTime', 'Date', 'Json', 'ObjectId',
|
|
9
|
+
'Bytes', 'BigInt'
|
|
11
10
|
]);
|
|
12
11
|
this.models = models;
|
|
13
12
|
this.enums = enums;
|
|
14
13
|
this.relations = relations;
|
|
14
|
+
this.relationValidator = new SchemaRelationValidator(this.models, this.relations);
|
|
15
15
|
}
|
|
16
16
|
/**
|
|
17
17
|
* Check if a field is a foreign key field (referenced by a relation)
|
|
@@ -20,10 +20,15 @@ class SchemaValidator {
|
|
|
20
20
|
for (const model of this.models) {
|
|
21
21
|
for (const relation of model.relations) {
|
|
22
22
|
if (relation.foreignKey === fieldName) {
|
|
23
|
-
//
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
23
|
+
// oneToMany stores FK in the TARGET model (e.g., Post.userId)
|
|
24
|
+
if (relation.type === 'oneToMany') {
|
|
25
|
+
if (relation.target === modelName)
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
// manyToOne, oneToOne, manyToMany store FK in the SOURCE model
|
|
30
|
+
if (model.name === modelName)
|
|
31
|
+
return true;
|
|
27
32
|
}
|
|
28
33
|
}
|
|
29
34
|
}
|
|
@@ -45,15 +50,17 @@ class SchemaValidator {
|
|
|
45
50
|
this.validateFieldTypes();
|
|
46
51
|
}
|
|
47
52
|
if (validateRelations) {
|
|
48
|
-
this.validateRelations();
|
|
49
|
-
this.validateRelationStrategies();
|
|
53
|
+
this.relationValidator.validateRelations();
|
|
54
|
+
this.relationValidator.validateRelationStrategies();
|
|
50
55
|
}
|
|
51
56
|
if (checkCircularDependencies) {
|
|
52
57
|
this.checkCircularDependencies();
|
|
53
58
|
}
|
|
54
59
|
// Additional validations
|
|
55
|
-
this.validateRequiredFields();
|
|
56
60
|
this.validateEnumValues();
|
|
61
|
+
this.validateEmbeddedModels();
|
|
62
|
+
this.validateIndexes();
|
|
63
|
+
this.validateDefaultValues();
|
|
57
64
|
}
|
|
58
65
|
/**
|
|
59
66
|
* Check for duplicate model names
|
|
@@ -62,7 +69,7 @@ class SchemaValidator {
|
|
|
62
69
|
const seen = new Set();
|
|
63
70
|
for (const model of this.models) {
|
|
64
71
|
if (seen.has(model.name)) {
|
|
65
|
-
throw new
|
|
72
|
+
throw new DuplicateModelError(model.name);
|
|
66
73
|
}
|
|
67
74
|
seen.add(model.name);
|
|
68
75
|
}
|
|
@@ -75,7 +82,7 @@ class SchemaValidator {
|
|
|
75
82
|
const seen = new Set();
|
|
76
83
|
for (const field of model.fields) {
|
|
77
84
|
if (seen.has(field.name)) {
|
|
78
|
-
throw new
|
|
85
|
+
throw new DuplicateFieldError(model.name, field.name);
|
|
79
86
|
}
|
|
80
87
|
seen.add(field.name);
|
|
81
88
|
}
|
|
@@ -92,9 +99,12 @@ class SchemaValidator {
|
|
|
92
99
|
]);
|
|
93
100
|
for (const model of this.models) {
|
|
94
101
|
for (const field of model.fields) {
|
|
102
|
+
// Skip @ignore fields — they are excluded from generated code
|
|
103
|
+
if (field.directives.includes('ignore'))
|
|
104
|
+
continue;
|
|
95
105
|
// Check if type exists (scalar, model, or enum)
|
|
96
106
|
if (!validTypes.has(field.type)) {
|
|
97
|
-
throw new
|
|
107
|
+
throw new InvalidFieldTypeError(model.name, field.name, field.type, { validTypes: Array.from(validTypes) });
|
|
98
108
|
}
|
|
99
109
|
// Additional type-specific validations
|
|
100
110
|
if (field.type === 'ID' && !field.isId && !this.isForeignKeyField(model.name, field.name)) {
|
|
@@ -111,19 +121,29 @@ class SchemaValidator {
|
|
|
111
121
|
validateDirectives() {
|
|
112
122
|
for (const model of this.models) {
|
|
113
123
|
// Check model-level directives
|
|
124
|
+
for (const directiveName of model.directives) {
|
|
125
|
+
if (isLenzDirective(directiveName)) {
|
|
126
|
+
if (directiveName !== 'model' && directiveName !== 'embedded' && directiveName !== 'modelMap' && directiveName !== 'fulltext') {
|
|
127
|
+
console.warn(`⚠️ Lenz directive '@${directiveName}' is not a model-level directive but used on model '${model.name}'.`);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
console.warn(`⚠️ Custom directive '@${directiveName}' detected on model '${model.name}'. ` +
|
|
132
|
+
'Lenz does not validate custom directives.');
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
// Check field-level directives (excluding model-level)
|
|
114
136
|
for (const directive of model.fields.flatMap(f => f.directives)) {
|
|
115
137
|
const directiveName = directive.replace(/^@/, '');
|
|
116
|
-
if (
|
|
117
|
-
//
|
|
118
|
-
const
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
//
|
|
122
|
-
// а @id только на FIELD_DEFINITION
|
|
138
|
+
if (isLenzDirective(directiveName)) {
|
|
139
|
+
// Validate field-level directive location restrictions
|
|
140
|
+
const fieldLevelOnly = ['id', 'unique', 'index', 'default', 'hide', 'email', 'url', 'regex',
|
|
141
|
+
'map', 'createdAt', 'updatedAt', 'ignore', 'fulltext'];
|
|
142
|
+
if (fieldLevelOnly.includes(directiveName)) {
|
|
143
|
+
continue; // These are field-level only, already validated per-field
|
|
123
144
|
}
|
|
124
145
|
}
|
|
125
146
|
else {
|
|
126
|
-
// Пользовательская директива - выводим предупреждение
|
|
127
147
|
console.warn(`⚠️ Custom directive '@${directiveName}' detected in model '${model.name}'. ` +
|
|
128
148
|
'Lenz does not validate custom directives.');
|
|
129
149
|
}
|
|
@@ -139,17 +159,13 @@ class SchemaValidator {
|
|
|
139
159
|
*/
|
|
140
160
|
validateFieldDirectives(modelName, field) {
|
|
141
161
|
const directives = field.directives;
|
|
142
|
-
// Check for conflicting directives
|
|
143
|
-
if (directives.includes('id') && directives.includes('unique')) {
|
|
144
|
-
throw new errors_1.InvalidDirectiveError('unique', `field '${field.name}' in model '${modelName}'`, { reason: 'Cannot have both @id and @unique directives on the same field' });
|
|
145
|
-
}
|
|
146
162
|
// Validate @hide directive
|
|
147
163
|
if (directives.includes('hide')) {
|
|
148
164
|
if (directives.includes('id')) {
|
|
149
|
-
throw new
|
|
165
|
+
throw new InvalidDirectiveError('hide', `field '${field.name}' in model '${modelName}'`, { reason: 'Cannot use @hide directive on @id field' });
|
|
150
166
|
}
|
|
151
167
|
if (field.isRelation) {
|
|
152
|
-
throw new
|
|
168
|
+
throw new InvalidDirectiveError('hide', `field '${field.name}' in model '${modelName}'`, { reason: 'Cannot use @hide directive on relation fields' });
|
|
153
169
|
}
|
|
154
170
|
}
|
|
155
171
|
// Note: @relation directive validation is skipped because relation detection
|
|
@@ -157,91 +173,6 @@ class SchemaValidator {
|
|
|
157
173
|
// Note: @default directive arguments are now preserved and parsed via AST
|
|
158
174
|
// in GraphQLParser.getDefaultValue() method.
|
|
159
175
|
}
|
|
160
|
-
/**
|
|
161
|
-
* Validate relations between models
|
|
162
|
-
*/
|
|
163
|
-
validateRelations() {
|
|
164
|
-
for (const relation of this.relations) {
|
|
165
|
-
// Find source model that contains this relation
|
|
166
|
-
const sourceModel = this.models.find(m => m.relations.some(r => r.field === relation.field && r.target === relation.target));
|
|
167
|
-
const targetModel = this.models.find(m => m.name === relation.target);
|
|
168
|
-
if (!sourceModel) {
|
|
169
|
-
throw new errors_1.RelationValidationError(`Source model for relation '${relation.field}' -> '${relation.target}' not found`, { relation });
|
|
170
|
-
}
|
|
171
|
-
if (!targetModel) {
|
|
172
|
-
throw new errors_1.RelationValidationError(`Target model '${relation.target}' not found for relation`, { relation });
|
|
173
|
-
}
|
|
174
|
-
// Check if foreign key field exists for certain relation types
|
|
175
|
-
if (relation.foreignKey) {
|
|
176
|
-
// For oneToMany, foreign key must be in source (array of IDs)
|
|
177
|
-
// For manyToOne and oneToOne, foreign key must be in source (single ID)
|
|
178
|
-
let modelWithForeignKey;
|
|
179
|
-
let fieldInSource = sourceModel.fields.find(f => f.name === relation.foreignKey || f.name === `${relation.foreignKey}Id`);
|
|
180
|
-
// Always check source model for all relation types
|
|
181
|
-
if (fieldInSource) {
|
|
182
|
-
modelWithForeignKey = sourceModel;
|
|
183
|
-
}
|
|
184
|
-
if (!modelWithForeignKey) {
|
|
185
|
-
throw new errors_1.RelationValidationError(`Foreign key field '${relation.foreignKey}' not found in source model '${sourceModel.name}'`, { relation });
|
|
186
|
-
}
|
|
187
|
-
// Validate field type
|
|
188
|
-
if (fieldInSource) {
|
|
189
|
-
if (relation.type === 'oneToMany') {
|
|
190
|
-
// For oneToMany: foreign key must be array of IDs in source
|
|
191
|
-
if (!fieldInSource.isArray || fieldInSource.type !== 'ID') {
|
|
192
|
-
throw new errors_1.RelationValidationError(`Foreign key field '${relation.foreignKey}' in source model '${sourceModel.name}' must be an array of IDs (type: [ID!]!) for one-to-many relation`, { relation });
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
else if (relation.type === 'manyToOne' || relation.type === 'oneToOne') {
|
|
196
|
-
// For manyToOne and oneToOne: foreign key must be single ID in source
|
|
197
|
-
if (fieldInSource.isArray || fieldInSource.type !== 'ID') {
|
|
198
|
-
throw new errors_1.RelationValidationError(`Foreign key field '${relation.foreignKey}' in source model '${sourceModel.name}' must be a single ID (type: ID!) for ${relation.type} relation`, { relation });
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
// manyToMany doesn't use foreign key field
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
// Check that relation field references correct ID field
|
|
205
|
-
const relationField = sourceModel.fields.find(f => f.name === relation.field);
|
|
206
|
-
if (!relationField) {
|
|
207
|
-
throw new errors_1.RelationValidationError(`Relation field '${relation.field}' not found in source model '${sourceModel.name}'`, { relation });
|
|
208
|
-
}
|
|
209
|
-
// Get the referenced field name from the relation field's foreignKey property
|
|
210
|
-
const referencedFieldName = relationField.foreignKey;
|
|
211
|
-
if (referencedFieldName) {
|
|
212
|
-
// Find referenced field in source or target model
|
|
213
|
-
let modelWithRefField;
|
|
214
|
-
let referencedField;
|
|
215
|
-
// For all relation types, check source model only
|
|
216
|
-
referencedField = sourceModel.fields.find(f => f.name === referencedFieldName);
|
|
217
|
-
if (referencedField) {
|
|
218
|
-
modelWithRefField = sourceModel;
|
|
219
|
-
}
|
|
220
|
-
if (!referencedField || !modelWithRefField) {
|
|
221
|
-
throw new errors_1.RelationValidationError(`Field '${referencedFieldName}' referenced by @relation(field: "...") not found in source model '${sourceModel.name}'`, { relation, referencedFieldName });
|
|
222
|
-
}
|
|
223
|
-
// Validate field type based on relation type
|
|
224
|
-
if (relation.type === 'manyToMany') {
|
|
225
|
-
// For many-to-many, referenced field should be an array of IDs
|
|
226
|
-
if (!referencedField.isArray || referencedField.type !== 'ID') {
|
|
227
|
-
throw new errors_1.RelationValidationError(`Field '${referencedFieldName}' in model '${modelWithRefField.name}' must be an array of IDs (type: [ID!]!) for many-to-many relation`, { relation, referencedFieldName });
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
else if (relation.type === 'oneToMany') {
|
|
231
|
-
// For oneToMany: referenced field must be array of IDs in source model
|
|
232
|
-
if (!referencedField.isArray || referencedField.type !== 'ID') {
|
|
233
|
-
throw new errors_1.RelationValidationError(`Field '${referencedFieldName}' in source model '${sourceModel.name}' must be an array of IDs (type: [ID!]!) for one-to-many relation`, { relation, referencedFieldName });
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
else {
|
|
237
|
-
// For manyToOne and oneToOne: referenced field must be single ID
|
|
238
|
-
if (referencedField.isArray || referencedField.type !== 'ID') {
|
|
239
|
-
throw new errors_1.RelationValidationError(`Field '${referencedFieldName}' in model '${modelWithRefField.name}' must be a single ID (type: ID!) for ${relation.type} relation`, { relation, referencedFieldName });
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
176
|
/**
|
|
246
177
|
* Check for circular dependencies between models
|
|
247
178
|
*/
|
|
@@ -264,12 +195,16 @@ class SchemaValidator {
|
|
|
264
195
|
path.push(node);
|
|
265
196
|
const neighbors = graph.get(node) || [];
|
|
266
197
|
for (const neighbor of neighbors) {
|
|
198
|
+
if (neighbor === node) {
|
|
199
|
+
cycles.push([node]); // self-reference cycle
|
|
200
|
+
continue;
|
|
201
|
+
}
|
|
267
202
|
if (!visited.has(neighbor)) {
|
|
268
203
|
dfs(neighbor, [...path]);
|
|
269
204
|
}
|
|
270
205
|
else if (recursionStack.has(neighbor)) {
|
|
271
206
|
// Found a cycle
|
|
272
|
-
const cycleStart = path.
|
|
207
|
+
const cycleStart = path.lastIndexOf(neighbor);
|
|
273
208
|
const cycle = path.slice(cycleStart);
|
|
274
209
|
cycles.push(cycle);
|
|
275
210
|
}
|
|
@@ -281,29 +216,15 @@ class SchemaValidator {
|
|
|
281
216
|
dfs(node, []);
|
|
282
217
|
}
|
|
283
218
|
}
|
|
284
|
-
// Report cycles
|
|
219
|
+
// Report cycles — collect all unique cycles before throwing
|
|
285
220
|
if (cycles.length > 0) {
|
|
286
|
-
// Deduplicate cycles (same cycle may be found multiple times)
|
|
287
221
|
const uniqueCycles = cycles.map(cycle => cycle.join(' -> '))
|
|
288
222
|
.filter((value, index, self) => self.indexOf(value) === index);
|
|
289
|
-
|
|
290
|
-
throw new
|
|
223
|
+
if (uniqueCycles.length === 1) {
|
|
224
|
+
throw new CircularDependencyError(uniqueCycles[0].split(' -> '), { cycle: uniqueCycles[0] });
|
|
291
225
|
}
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
/**
|
|
295
|
-
* Validate that required fields have values
|
|
296
|
-
*/
|
|
297
|
-
validateRequiredFields() {
|
|
298
|
-
for (const model of this.models) {
|
|
299
|
-
for (const field of model.fields) {
|
|
300
|
-
if (field.isRequired && !field.isId && !field.defaultValue) {
|
|
301
|
-
// Check if it's a relation field (relations can be required but handled differently)
|
|
302
|
-
if (!field.isRelation && !this.isForeignKeyField(model.name, field.name) &&
|
|
303
|
-
!field.directives.includes('createdAt') && !field.directives.includes('updatedAt')) {
|
|
304
|
-
console.warn(`⚠️ Required field '${field.name}' in model '${model.name}' has no default value`);
|
|
305
|
-
}
|
|
306
|
-
}
|
|
226
|
+
else {
|
|
227
|
+
throw new CircularDependencyError(uniqueCycles[0].split(' -> '), { cycle: uniqueCycles.join('; '), cycles: uniqueCycles });
|
|
307
228
|
}
|
|
308
229
|
}
|
|
309
230
|
}
|
|
@@ -313,52 +234,123 @@ class SchemaValidator {
|
|
|
313
234
|
validateEnumValues() {
|
|
314
235
|
for (const enumDef of this.enums) {
|
|
315
236
|
if (enumDef.values.length === 0) {
|
|
316
|
-
throw new
|
|
237
|
+
throw new SchemaValidationError(`Enum '${enumDef.name}' must have at least one value`);
|
|
317
238
|
}
|
|
318
239
|
// Check for duplicate enum values
|
|
319
240
|
const seen = new Set();
|
|
320
241
|
for (const value of enumDef.values) {
|
|
321
242
|
if (seen.has(value)) {
|
|
322
|
-
throw new
|
|
243
|
+
throw new SchemaValidationError(`Duplicate value '${value}' in enum '${enumDef.name}'`);
|
|
323
244
|
}
|
|
324
245
|
seen.add(value);
|
|
325
246
|
}
|
|
326
247
|
}
|
|
327
248
|
}
|
|
328
249
|
/**
|
|
329
|
-
* Validate
|
|
250
|
+
* Validate embedded model usage
|
|
330
251
|
*/
|
|
331
|
-
|
|
332
|
-
for (const
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
252
|
+
validateEmbeddedModels() {
|
|
253
|
+
for (const model of this.models) {
|
|
254
|
+
if (!model.isEmbedded)
|
|
255
|
+
continue;
|
|
256
|
+
// Check embedded model has at least one field
|
|
257
|
+
if (model.fields.length === 0) {
|
|
258
|
+
console.warn(`⚠️ Embedded model '${model.name}' has no fields`);
|
|
337
259
|
}
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
260
|
+
}
|
|
261
|
+
// Verify embedded model references don't have @relation directive
|
|
262
|
+
for (const model of this.models) {
|
|
263
|
+
if (model.isEmbedded)
|
|
264
|
+
continue;
|
|
265
|
+
for (const field of model.fields) {
|
|
266
|
+
if (field.isRelation) {
|
|
267
|
+
const targetModel = this.models.find(m => m.name === field.type);
|
|
268
|
+
if (targetModel?.isEmbedded && field.directives.includes('relation')) {
|
|
269
|
+
console.warn(`⚠️ Field '${field.name}' in model '${model.name}' references embedded model ` +
|
|
270
|
+
`'${field.type}' with @relation directive. Embedded models are nested documents, not separate collections.`);
|
|
271
|
+
}
|
|
272
|
+
}
|
|
342
273
|
}
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Validate model indexes (compound directive fields must exist)
|
|
278
|
+
*/
|
|
279
|
+
validateIndexes() {
|
|
280
|
+
for (const model of this.models) {
|
|
281
|
+
if (model.isEmbedded)
|
|
282
|
+
continue;
|
|
283
|
+
for (const index of model.indexes) {
|
|
284
|
+
// Check for duplicate field names in compound index
|
|
285
|
+
if (index.fields.length !== new Set(index.fields).size) {
|
|
286
|
+
const dupes = index.fields.filter((f, i) => index.fields.indexOf(f) !== i);
|
|
287
|
+
throw new SchemaValidationError(`Compound index on model '${model.name}' contains duplicate fields: ${[...new Set(dupes)].join(', ')}`);
|
|
288
|
+
}
|
|
289
|
+
if (index.fields.length > 1) {
|
|
290
|
+
// Compound index — verify all referenced fields exist
|
|
291
|
+
for (const fieldName of index.fields) {
|
|
292
|
+
const fieldExists = model.fields.some(f => f.name === fieldName);
|
|
293
|
+
if (!fieldExists) {
|
|
294
|
+
throw new SchemaValidationError(`Compound index on model '${model.name}' references field '${fieldName}' which does not exist. ` +
|
|
295
|
+
`Available fields: ${model.fields.map(f => f.name).join(', ')}`);
|
|
296
|
+
}
|
|
350
297
|
}
|
|
351
|
-
// lookup is now implemented for manyToMany with foreign key (array of IDs)
|
|
352
|
-
// and for join collection via RelationResolver
|
|
353
298
|
}
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
/**
|
|
303
|
+
* Validate @default value types match the field type
|
|
304
|
+
*/
|
|
305
|
+
validateDefaultValues() {
|
|
306
|
+
const typeMap = {
|
|
307
|
+
String: 'string',
|
|
308
|
+
ID: 'string',
|
|
309
|
+
Int: 'number',
|
|
310
|
+
Float: 'number',
|
|
311
|
+
Boolean: 'boolean',
|
|
312
|
+
DateTime: 'string',
|
|
313
|
+
Date: 'string',
|
|
314
|
+
Json: 'any',
|
|
315
|
+
Bytes: 'object',
|
|
316
|
+
ObjectId: 'string',
|
|
317
|
+
BigInt: 'bigint'
|
|
318
|
+
};
|
|
319
|
+
const stringGenerators = new Set(['uuid', 'cuid', 'cuid2', 'ulid']);
|
|
320
|
+
const allGenerators = new Set(['uuid', 'now', 'cuid', 'cuid2', 'ulid']);
|
|
321
|
+
for (const model of this.models) {
|
|
322
|
+
for (const field of model.fields) {
|
|
323
|
+
if (field.defaultGenerator) {
|
|
324
|
+
// Validate generator is known
|
|
325
|
+
if (!allGenerators.has(field.defaultGenerator)) {
|
|
326
|
+
console.warn(`⚠️ Unknown default generator '@default(${field.defaultGenerator}())' on field '${field.name}' in model '${model.name}'. ` +
|
|
327
|
+
`Supported generators: ${[...allGenerators].join(', ')}`);
|
|
328
|
+
}
|
|
329
|
+
// Validate generator compatibility
|
|
330
|
+
if (stringGenerators.has(field.defaultGenerator) && field.type !== 'String' && field.type !== 'ID') {
|
|
331
|
+
console.warn(`⚠️ @default(${field.defaultGenerator}()) on field '${field.name}' in model '${model.name}' ` +
|
|
332
|
+
`produces a string, but the field type is '${field.type}'.`);
|
|
333
|
+
}
|
|
334
|
+
if (field.defaultGenerator === 'now' && field.type !== 'DateTime' && field.type !== 'Date') {
|
|
335
|
+
console.warn(`⚠️ @default(now()) on field '${field.name}' in model '${model.name}' ` +
|
|
336
|
+
`produces a Date, but the field type is '${field.type}'.`);
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
if (field.defaultValue !== undefined && field.defaultValue !== null && !field.defaultGenerator) {
|
|
340
|
+
const expectedType = typeMap[field.type];
|
|
341
|
+
if (expectedType && expectedType !== 'any') {
|
|
342
|
+
const valueType = typeof field.defaultValue;
|
|
343
|
+
if (valueType !== expectedType) {
|
|
344
|
+
const strictTypes = ['string', 'number', 'boolean'];
|
|
345
|
+
const msg = `@default(value: ${JSON.stringify(field.defaultValue)}) on field '${field.name}' ` +
|
|
346
|
+
`in model '${model.name}' has type '${valueType}', but field type '${field.type}' expects '${expectedType}'.`;
|
|
347
|
+
if (strictTypes.includes(expectedType)) {
|
|
348
|
+
throw new SchemaValidationError(msg);
|
|
349
|
+
}
|
|
350
|
+
console.warn(`⚠️ ${msg}`);
|
|
351
|
+
}
|
|
352
|
+
}
|
|
358
353
|
}
|
|
359
|
-
// Warn about manual array synchronization requirement
|
|
360
|
-
console.warn(`⚠️ Lookup strategy selected for relation '${relation.field}' -> '${relation.target}'. ` +
|
|
361
|
-
`Note: You must manually synchronize ID arrays (e.g., ${relation.foreignKey}) when creating/updating/deleting related documents.`);
|
|
362
354
|
}
|
|
363
355
|
}
|
|
364
356
|
}
|
|
@@ -368,16 +360,19 @@ class SchemaValidator {
|
|
|
368
360
|
getWarnings() {
|
|
369
361
|
const warnings = [];
|
|
370
362
|
for (const model of this.models) {
|
|
363
|
+
if (model.isEmbedded)
|
|
364
|
+
continue;
|
|
371
365
|
// Warn about models without @id field
|
|
372
366
|
const hasIdField = model.fields.some(f => f.isId);
|
|
373
367
|
if (!hasIdField) {
|
|
374
368
|
warnings.push(`Model '${model.name}' has no @id field`);
|
|
375
369
|
}
|
|
376
|
-
// Warn about required fields without defaults
|
|
370
|
+
// Warn about required fields without defaults (skip @ignore, relation, FK, and timestamp fields)
|
|
377
371
|
for (const field of model.fields) {
|
|
378
|
-
if (field.isRequired && !field.isId &&
|
|
372
|
+
if (field.isRequired && !field.isId && field.defaultValue === undefined && !field.isRelation &&
|
|
379
373
|
!this.isForeignKeyField(model.name, field.name) &&
|
|
380
|
-
!field.directives.includes('createdAt') && !field.directives.includes('updatedAt')
|
|
374
|
+
!field.directives.includes('createdAt') && !field.directives.includes('updatedAt') &&
|
|
375
|
+
!field.directives.includes('ignore')) {
|
|
381
376
|
warnings.push(`Required field '${field.name}' in model '${model.name}' has no default value`);
|
|
382
377
|
}
|
|
383
378
|
}
|
|
@@ -385,5 +380,4 @@ class SchemaValidator {
|
|
|
385
380
|
return warnings;
|
|
386
381
|
}
|
|
387
382
|
}
|
|
388
|
-
exports.SchemaValidator = SchemaValidator;
|
|
389
383
|
//# sourceMappingURL=SchemaValidator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaValidator.js","sourceRoot":"","sources":["../../src/engine/SchemaValidator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SchemaValidator.js","sourceRoot":"","sources":["../../src/engine/SchemaValidator.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,16 @@ export declare const createdAtDirective: GraphQLDirective;
|
|
|
9
9
|
export declare const updatedAtDirective: GraphQLDirective;
|
|
10
10
|
export declare const embeddedDirective: GraphQLDirective;
|
|
11
11
|
export declare const hideDirective: GraphQLDirective;
|
|
12
|
+
export declare const mapDirective: GraphQLDirective;
|
|
13
|
+
export declare const modelMapDirective: GraphQLDirective;
|
|
14
|
+
export declare const ignoreDirective: GraphQLDirective;
|
|
15
|
+
export declare const compoundUniqueDirective: GraphQLDirective;
|
|
16
|
+
export declare const compoundIndexDirective: GraphQLDirective;
|
|
17
|
+
export declare const compoundIdDirective: GraphQLDirective;
|
|
18
|
+
export declare const fulltextDirective: GraphQLDirective;
|
|
19
|
+
export declare const emailDirective: GraphQLDirective;
|
|
20
|
+
export declare const urlDirective: GraphQLDirective;
|
|
21
|
+
export declare const regexDirective: GraphQLDirective;
|
|
12
22
|
export declare const lenzDirectives: GraphQLDirective[];
|
|
13
23
|
export declare function isLenzDirective(directiveName: string): boolean;
|
|
14
24
|
export declare function getDirectiveDefinition(directiveName: string): GraphQLDirective | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"directives.d.ts","sourceRoot":"","sources":["../../src/engine/directives.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"directives.d.ts","sourceRoot":"","sources":["../../src/engine/directives.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAiF,MAAM,SAAS,CAAC;AAG1H,eAAO,MAAM,cAAc,kBAIzB,CAAC;AAEH,eAAO,MAAM,WAAW,kBActB,CAAC;AAEH,eAAO,MAAM,eAAe,kBAc1B,CAAC;AAEH,eAAO,MAAM,cAAc,kBAIzB,CAAC;AAEH,eAAO,MAAM,gBAAgB,kBAc3B,CAAC;AAEH,eAAO,MAAM,iBAAiB,kBA8B5B,CAAC;AAEH,eAAO,MAAM,kBAAkB,kBAI7B,CAAC;AAEH,eAAO,MAAM,kBAAkB,kBAI7B,CAAC;AAEH,eAAO,MAAM,iBAAiB,kBAI5B,CAAC;AAEH,eAAO,MAAM,aAAa,kBAIxB,CAAC;AAEH,eAAO,MAAM,YAAY,kBAUvB,CAAC;AAEH,eAAO,MAAM,iBAAiB,kBAU5B,CAAC;AAEH,eAAO,MAAM,eAAe,kBAI1B,CAAC;AAEH,eAAO,MAAM,uBAAuB,kBAclC,CAAC;AAEH,eAAO,MAAM,sBAAsB,kBAcjC,CAAC;AAEH,eAAO,MAAM,mBAAmB,kBAc9B,CAAC;AAEH,eAAO,MAAM,iBAAiB,kBAU5B,CAAC;AAEH,eAAO,MAAM,cAAc,kBAIzB,CAAC;AAEH,eAAO,MAAM,YAAY,kBAIvB,CAAC;AAEH,eAAO,MAAM,cAAc,kBAUzB,CAAC;AAGH,eAAO,MAAM,cAAc,oBAqB1B,CAAC;AAGF,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAE9D;AAGD,wBAAgB,sBAAsB,CAAC,aAAa,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAE1F"}
|