@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.
Files changed (120) hide show
  1. package/README.md +119 -8
  2. package/dist/cli/commands/generate.d.ts.map +1 -1
  3. package/dist/cli/commands/generate.js +66 -79
  4. package/dist/cli/commands/generate.js.map +1 -1
  5. package/dist/cli/commands/init.d.ts.map +1 -1
  6. package/dist/cli/commands/init.js +22 -30
  7. package/dist/cli/commands/init.js.map +1 -1
  8. package/dist/cli/commands/studio.js +15 -21
  9. package/dist/cli/commands/studio.js.map +1 -1
  10. package/dist/cli/index.js +11 -18
  11. package/dist/cli/index.js.map +1 -1
  12. package/dist/config/index.d.ts +4 -6
  13. package/dist/config/index.d.ts.map +1 -1
  14. package/dist/config/index.js +31 -15
  15. package/dist/config/index.js.map +1 -1
  16. package/dist/engine/CodeGenerator.d.ts +8 -28
  17. package/dist/engine/CodeGenerator.d.ts.map +1 -1
  18. package/dist/engine/CodeGenerator.js +26 -1935
  19. package/dist/engine/CodeGenerator.js.map +1 -1
  20. package/dist/engine/GraphQLParseHelpers.d.ts +25 -0
  21. package/dist/engine/GraphQLParseHelpers.d.ts.map +1 -0
  22. package/dist/engine/GraphQLParseHelpers.js +128 -0
  23. package/dist/engine/GraphQLParseHelpers.js.map +1 -0
  24. package/dist/engine/GraphQLParser.d.ts +23 -8
  25. package/dist/engine/GraphQLParser.d.ts.map +1 -1
  26. package/dist/engine/GraphQLParser.js +165 -248
  27. package/dist/engine/GraphQLParser.js.map +1 -1
  28. package/dist/engine/GraphQLRelationAnalyzer.d.ts +10 -0
  29. package/dist/engine/GraphQLRelationAnalyzer.d.ts.map +1 -0
  30. package/dist/engine/GraphQLRelationAnalyzer.js +117 -0
  31. package/dist/engine/GraphQLRelationAnalyzer.js.map +1 -0
  32. package/dist/engine/LenzEngine.d.ts +4 -4
  33. package/dist/engine/LenzEngine.d.ts.map +1 -1
  34. package/dist/engine/LenzEngine.js +59 -46
  35. package/dist/engine/LenzEngine.js.map +1 -1
  36. package/dist/engine/SchemaRelationValidator.d.ts +15 -0
  37. package/dist/engine/SchemaRelationValidator.d.ts.map +1 -0
  38. package/dist/engine/SchemaRelationValidator.js +133 -0
  39. package/dist/engine/SchemaRelationValidator.js.map +1 -0
  40. package/dist/engine/SchemaValidator.d.ts +12 -11
  41. package/dist/engine/SchemaValidator.d.ts.map +1 -1
  42. package/dist/engine/SchemaValidator.js +163 -169
  43. package/dist/engine/SchemaValidator.js.map +1 -1
  44. package/dist/engine/directives.d.ts +10 -0
  45. package/dist/engine/directives.d.ts.map +1 -1
  46. package/dist/engine/directives.js +192 -47
  47. package/dist/engine/directives.js.map +1 -1
  48. package/dist/engine/generators/ClientGenerator.d.ts +7 -0
  49. package/dist/engine/generators/ClientGenerator.d.ts.map +1 -0
  50. package/dist/engine/generators/ClientGenerator.js +386 -0
  51. package/dist/engine/generators/ClientGenerator.js.map +1 -0
  52. package/dist/engine/generators/DelegateGenerator.d.ts +9 -0
  53. package/dist/engine/generators/DelegateGenerator.d.ts.map +1 -0
  54. package/dist/engine/generators/DelegateGenerator.js +453 -0
  55. package/dist/engine/generators/DelegateGenerator.js.map +1 -0
  56. package/dist/engine/generators/DelegateHelpers.d.ts +7 -0
  57. package/dist/engine/generators/DelegateHelpers.d.ts.map +1 -0
  58. package/dist/engine/generators/DelegateHelpers.js +144 -0
  59. package/dist/engine/generators/DelegateHelpers.js.map +1 -0
  60. package/dist/engine/generators/DelegateRelations.d.ts +11 -0
  61. package/dist/engine/generators/DelegateRelations.d.ts.map +1 -0
  62. package/dist/engine/generators/DelegateRelations.js +794 -0
  63. package/dist/engine/generators/DelegateRelations.js.map +1 -0
  64. package/dist/engine/generators/DelegateTemplateBody.d.ts +8 -0
  65. package/dist/engine/generators/DelegateTemplateBody.d.ts.map +1 -0
  66. package/dist/engine/generators/DelegateTemplateBody.js +776 -0
  67. package/dist/engine/generators/DelegateTemplateBody.js.map +1 -0
  68. package/dist/engine/generators/GenerateRuntimeErrors.d.ts +2 -0
  69. package/dist/engine/generators/GenerateRuntimeErrors.d.ts.map +1 -0
  70. package/dist/engine/generators/GenerateRuntimeErrors.js +140 -0
  71. package/dist/engine/generators/GenerateRuntimeErrors.js.map +1 -0
  72. package/dist/engine/generators/GenerateRuntimeIndex.d.ts +2 -0
  73. package/dist/engine/generators/GenerateRuntimeIndex.d.ts.map +1 -0
  74. package/dist/engine/generators/GenerateRuntimeIndex.js +21 -0
  75. package/dist/engine/generators/GenerateRuntimeIndex.js.map +1 -0
  76. package/dist/engine/generators/GenerateRuntimeLogger.d.ts +2 -0
  77. package/dist/engine/generators/GenerateRuntimeLogger.d.ts.map +1 -0
  78. package/dist/engine/generators/GenerateRuntimeLogger.js +125 -0
  79. package/dist/engine/generators/GenerateRuntimeLogger.js.map +1 -0
  80. package/dist/engine/generators/GenerateRuntimePagination.d.ts +2 -0
  81. package/dist/engine/generators/GenerateRuntimePagination.d.ts.map +1 -0
  82. package/dist/engine/generators/GenerateRuntimePagination.js +159 -0
  83. package/dist/engine/generators/GenerateRuntimePagination.js.map +1 -0
  84. package/dist/engine/generators/GenerateRuntimeQuery.d.ts +2 -0
  85. package/dist/engine/generators/GenerateRuntimeQuery.d.ts.map +1 -0
  86. package/dist/engine/generators/GenerateRuntimeQuery.js +427 -0
  87. package/dist/engine/generators/GenerateRuntimeQuery.js.map +1 -0
  88. package/dist/engine/generators/GenerateRuntimeRelations.d.ts +2 -0
  89. package/dist/engine/generators/GenerateRuntimeRelations.d.ts.map +1 -0
  90. package/dist/engine/generators/GenerateRuntimeRelations.js +130 -0
  91. package/dist/engine/generators/GenerateRuntimeRelations.js.map +1 -0
  92. package/dist/engine/generators/RuntimeGenerator.d.ts +16 -0
  93. package/dist/engine/generators/RuntimeGenerator.d.ts.map +1 -0
  94. package/dist/engine/generators/RuntimeGenerator.js +16 -0
  95. package/dist/engine/generators/RuntimeGenerator.js.map +1 -0
  96. package/dist/engine/generators/TypeFilterTypes.d.ts +2 -0
  97. package/dist/engine/generators/TypeFilterTypes.d.ts.map +1 -0
  98. package/dist/engine/generators/TypeFilterTypes.js +220 -0
  99. package/dist/engine/generators/TypeFilterTypes.js.map +1 -0
  100. package/dist/engine/generators/TypeGenerator.d.ts +16 -0
  101. package/dist/engine/generators/TypeGenerator.d.ts.map +1 -0
  102. package/dist/engine/generators/TypeGenerator.js +493 -0
  103. package/dist/engine/generators/TypeGenerator.js.map +1 -0
  104. package/dist/engine/generators/helpers.d.ts +13 -0
  105. package/dist/engine/generators/helpers.d.ts.map +1 -0
  106. package/dist/engine/generators/helpers.js +316 -0
  107. package/dist/engine/generators/helpers.js.map +1 -0
  108. package/dist/engine/index.d.ts +3 -3
  109. package/dist/engine/index.d.ts.map +1 -1
  110. package/dist/engine/index.js +3 -9
  111. package/dist/engine/index.js.map +1 -1
  112. package/dist/errors/index.d.ts +3 -0
  113. package/dist/errors/index.d.ts.map +1 -1
  114. package/dist/errors/index.js +25 -32
  115. package/dist/errors/index.js.map +1 -1
  116. package/dist/index.d.ts +4 -5
  117. package/dist/index.d.ts.map +1 -1
  118. package/dist/index.js +10 -30
  119. package/dist/index.js.map +1 -1
  120. package/package.json +6 -7
@@ -1,17 +1,17 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SchemaValidator = void 0;
4
- const errors_1 = require("../errors");
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
- // Check if this relation belongs to the specified model
24
- // The relation is stored in the model's relations array, so model is the source
25
- if (model.name === modelName) {
26
- return true;
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 errors_1.DuplicateModelError(model.name);
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 errors_1.DuplicateFieldError(model.name, field.name);
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 errors_1.InvalidFieldTypeError(model.name, field.name, field.type, { validTypes: Array.from(validTypes) });
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 ((0, directives_1.isLenzDirective)(directiveName)) {
117
- // Директива Lenz - проверяем соответствие ожидаемым местам применения
118
- const directiveDef = (0, directives_1.getDirectiveDefinition)(directiveName);
119
- if (directiveDef) {
120
- // TODO: В будущем можно добавить проверку мест применения (DirectiveLocation)
121
- // Например, проверить что @model применяется только на уровне OBJECT
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 errors_1.InvalidDirectiveError('hide', `field '${field.name}' in model '${modelName}'`, { reason: 'Cannot use @hide directive on @id field' });
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 errors_1.InvalidDirectiveError('hide', `field '${field.name}' in model '${modelName}'`, { reason: 'Cannot use @hide directive on relation fields' });
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.indexOf(neighbor);
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
- for (const cycle of uniqueCycles) {
290
- throw new errors_1.CircularDependencyError(cycle.split(' -> '), { cycle });
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 errors_1.SchemaValidationError(`Enum '${enumDef.name}' must have at least one value`);
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 errors_1.SchemaValidationError(`Duplicate value '${value}' in enum '${enumDef.name}'`);
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 relation strategies and indexes
250
+ * Validate embedded model usage
330
251
  */
331
- validateRelationStrategies() {
332
- for (const relation of this.relations) {
333
- // Validate strategy
334
- if (relation.strategy !== 'populate' && relation.strategy !== 'lookup') {
335
- throw new errors_1.SchemaValidationError(`Invalid relation strategy '${relation.strategy}' for relation '${relation.field}' -> '${relation.target}'. ` +
336
- `Must be either 'populate' or 'lookup'.`);
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
- // Validate index boolean
339
- if (typeof relation.index !== 'boolean') {
340
- throw new errors_1.SchemaValidationError(`Invalid index value '${relation.index}' for relation '${relation.field}' -> '${relation.target}'. ` +
341
- `Must be a boolean.`);
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
- // Validate lookup strategy requirements
344
- if (relation.strategy === 'lookup') {
345
- if (relation.type === 'manyToMany') {
346
- // For manyToMany, foreign key or join collection is required for lookup
347
- if (!relation.foreignKey && !relation.joinCollection) {
348
- throw new errors_1.SchemaValidationError(`Lookup strategy for manyToMany relation '${relation.field}' -> '${relation.target}' requires either a foreign key field or join collection. ` +
349
- `Add @relation(field: "...") directive with a foreign key field.`);
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
- else if (!relation.foreignKey) {
355
- // For other relation types (oneToMany, manyToOne, oneToOne), foreign key is required
356
- throw new errors_1.SchemaValidationError(`Lookup strategy requires a foreign key field for relation '${relation.field}' -> '${relation.target}'. ` +
357
- `Add @relation(field: "...") directive with a foreign key field.`);
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 && !field.defaultValue && !field.isRelation &&
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,EAAoE,MAAM,SAAS,CAAC;AAG7G,eAAO,MAAM,cAAc,kBAIzB,CAAC;AAEH,eAAO,MAAM,WAAW,kBAItB,CAAC;AAEH,eAAO,MAAM,eAAe,kBAI1B,CAAC;AAEH,eAAO,MAAM,cAAc,kBAIzB,CAAC;AAEH,eAAO,MAAM,gBAAgB,kBAU3B,CAAC;AAEH,eAAO,MAAM,iBAAiB,kBAkB5B,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;AAGH,eAAO,MAAM,cAAc,oBAW1B,CAAC;AAGF,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAE9D;AAGD,wBAAgB,sBAAsB,CAAC,aAAa,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAE1F"}
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"}