@bairock/lenz 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +224 -0
  3. package/dist/cli/commands/generate.d.ts +3 -0
  4. package/dist/cli/commands/generate.d.ts.map +1 -0
  5. package/dist/cli/commands/generate.js +110 -0
  6. package/dist/cli/commands/generate.js.map +1 -0
  7. package/dist/cli/commands/init.d.ts +3 -0
  8. package/dist/cli/commands/init.d.ts.map +1 -0
  9. package/dist/cli/commands/init.js +145 -0
  10. package/dist/cli/commands/init.js.map +1 -0
  11. package/dist/cli/commands/studio.d.ts +3 -0
  12. package/dist/cli/commands/studio.d.ts.map +1 -0
  13. package/dist/cli/commands/studio.js +32 -0
  14. package/dist/cli/commands/studio.js.map +1 -0
  15. package/dist/cli/index.d.ts +3 -0
  16. package/dist/cli/index.d.ts.map +1 -0
  17. package/dist/cli/index.js +32 -0
  18. package/dist/cli/index.js.map +1 -0
  19. package/dist/config/index.d.ts +47 -0
  20. package/dist/config/index.d.ts.map +1 -0
  21. package/dist/config/index.js +42 -0
  22. package/dist/config/index.js.map +1 -0
  23. package/dist/engine/CodeGenerator.d.ts +37 -0
  24. package/dist/engine/CodeGenerator.d.ts.map +1 -0
  25. package/dist/engine/CodeGenerator.js +1604 -0
  26. package/dist/engine/CodeGenerator.js.map +1 -0
  27. package/dist/engine/GraphQLParser.d.ts +74 -0
  28. package/dist/engine/GraphQLParser.d.ts.map +1 -0
  29. package/dist/engine/GraphQLParser.js +269 -0
  30. package/dist/engine/GraphQLParser.js.map +1 -0
  31. package/dist/engine/LenzEngine.d.ts +23 -0
  32. package/dist/engine/LenzEngine.d.ts.map +1 -0
  33. package/dist/engine/LenzEngine.js +112 -0
  34. package/dist/engine/LenzEngine.js.map +1 -0
  35. package/dist/engine/SchemaValidator.d.ts +63 -0
  36. package/dist/engine/SchemaValidator.d.ts.map +1 -0
  37. package/dist/engine/SchemaValidator.js +268 -0
  38. package/dist/engine/SchemaValidator.js.map +1 -0
  39. package/dist/engine/directives.d.ts +15 -0
  40. package/dist/engine/directives.d.ts.map +1 -0
  41. package/dist/engine/directives.js +91 -0
  42. package/dist/engine/directives.js.map +1 -0
  43. package/dist/engine/index.d.ts +4 -0
  44. package/dist/engine/index.d.ts.map +1 -0
  45. package/dist/engine/index.js +10 -0
  46. package/dist/engine/index.js.map +1 -0
  47. package/dist/errors/index.d.ts +46 -0
  48. package/dist/errors/index.d.ts.map +1 -0
  49. package/dist/errors/index.js +133 -0
  50. package/dist/errors/index.js.map +1 -0
  51. package/dist/index.d.ts +12 -0
  52. package/dist/index.d.ts.map +1 -0
  53. package/dist/index.js +36 -0
  54. package/dist/index.js.map +1 -0
  55. package/package.json +70 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CodeGenerator.js","sourceRoot":"","sources":["../../src/engine/CodeGenerator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ export interface GraphQLField {
2
+ name: string;
3
+ type: string;
4
+ isArray: boolean;
5
+ isRequired: boolean;
6
+ isId: boolean;
7
+ isUnique: boolean;
8
+ isRelation: boolean;
9
+ isHidden: boolean;
10
+ relationType?: 'oneToOne' | 'oneToMany' | 'manyToOne' | 'manyToMany';
11
+ relationTo?: string;
12
+ foreignKey?: string;
13
+ directives: string[];
14
+ defaultValue?: any;
15
+ }
16
+ export interface GraphQLModel {
17
+ name: string;
18
+ fields: GraphQLField[];
19
+ collectionName: string;
20
+ relations: ModelRelation[];
21
+ indexes: ModelIndex[];
22
+ isEmbedded: boolean;
23
+ }
24
+ export interface ModelRelation {
25
+ type: 'oneToOne' | 'oneToMany' | 'manyToOne' | 'manyToMany';
26
+ field: string;
27
+ target: string;
28
+ foreignKey?: string;
29
+ joinCollection?: string;
30
+ }
31
+ export interface ModelIndex {
32
+ fields: string[];
33
+ unique: boolean;
34
+ sparse?: boolean;
35
+ }
36
+ export interface GraphQLEnum {
37
+ name: string;
38
+ values: string[];
39
+ }
40
+ export declare class GraphQLParser {
41
+ private ast;
42
+ private models;
43
+ private enums;
44
+ private relations;
45
+ private allModelNames;
46
+ constructor(schemaSDL: string);
47
+ private parseEnums;
48
+ private parseModels;
49
+ private parseFieldType;
50
+ private isModelType;
51
+ private getDefaultValue;
52
+ private analyzeRelationships;
53
+ private determineRelationType;
54
+ private toCollectionName;
55
+ getModels(): GraphQLModel[];
56
+ getModel(name: string): GraphQLModel | undefined;
57
+ getEnums(): GraphQLEnum[];
58
+ getEnum(name: string): GraphQLEnum | undefined;
59
+ getRelations(): ModelRelation[];
60
+ getSchemaInfo(): {
61
+ models: GraphQLModel[];
62
+ enums: GraphQLEnum[];
63
+ relations: ModelRelation[];
64
+ modelCount: number;
65
+ enumCount: number;
66
+ relationCount: number;
67
+ };
68
+ /**
69
+ * Validate the parsed schema
70
+ * @throws {SchemaValidationError} If schema validation fails
71
+ */
72
+ validate(): void;
73
+ }
74
+ //# sourceMappingURL=GraphQLParser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GraphQLParser.d.ts","sourceRoot":"","sources":["../../src/engine/GraphQLParser.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,UAAU,GAAG,WAAW,GAAG,WAAW,GAAG,YAAY,CAAC;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,CAAC,EAAE,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,UAAU,GAAG,WAAW,GAAG,WAAW,GAAG,YAAY,CAAC;IAC5D,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,GAAG,CAAe;IAC1B,OAAO,CAAC,MAAM,CAAmC;IACjD,OAAO,CAAC,KAAK,CAAkC;IAC/C,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,aAAa,CAAqB;gBAE9B,SAAS,EAAE,MAAM;IA8B7B,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,WAAW;IAqEnB,OAAO,CAAC,cAAc;IA6BtB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,eAAe;IAiCvB,OAAO,CAAC,oBAAoB;IAqB5B,OAAO,CAAC,qBAAqB;IA2C7B,OAAO,CAAC,gBAAgB;IAIxB,SAAS,IAAI,YAAY,EAAE;IAI3B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIhD,QAAQ,IAAI,WAAW,EAAE;IAIzB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAI9C,YAAY,IAAI,aAAa,EAAE;IAI/B,aAAa;;;;;;;;IAWb;;;OAGG;IACH,QAAQ,IAAI,IAAI;CAkBjB"}
@@ -0,0 +1,269 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GraphQLParser = void 0;
4
+ const graphql_1 = require("graphql");
5
+ const SchemaValidator_1 = require("./SchemaValidator");
6
+ const errors_1 = require("../errors");
7
+ const directives_1 = require("./directives");
8
+ class GraphQLParser {
9
+ constructor(schemaSDL) {
10
+ this.models = new Map();
11
+ this.enums = new Map();
12
+ this.relations = [];
13
+ this.allModelNames = new Set();
14
+ try {
15
+ this.ast = (0, graphql_1.parse)(schemaSDL);
16
+ // Проверка на определения директив Lenz в схеме (для обратной совместимости)
17
+ const hasLenzDirectiveDefinitions = this.ast.definitions.some(def => def.kind === 'DirectiveDefinition' &&
18
+ directives_1.lenzDirectives.some(d => d.name === def.name.value));
19
+ if (hasLenzDirectiveDefinitions) {
20
+ console.warn('⚠️ Schema contains Lenz directive definitions. ' +
21
+ 'Directives are now defined in the library code. ' +
22
+ 'You can safely remove directive definitions from your schema file.');
23
+ }
24
+ this.parseEnums();
25
+ this.parseModels();
26
+ this.analyzeRelationships();
27
+ }
28
+ catch (error) {
29
+ if (error instanceof Error) {
30
+ throw new errors_1.SchemaParseError(`Failed to parse GraphQL schema: ${error.message}`, { originalError: error, schemaSDL });
31
+ }
32
+ throw error;
33
+ }
34
+ }
35
+ parseEnums() {
36
+ const enumTypes = this.ast.definitions.filter((def) => def.kind === 'EnumTypeDefinition');
37
+ for (const enumDef of enumTypes) {
38
+ this.enums.set(enumDef.name.value, {
39
+ name: enumDef.name.value,
40
+ values: enumDef.values?.map(v => v.name.value) || []
41
+ });
42
+ }
43
+ }
44
+ parseModels() {
45
+ const objectTypes = this.ast.definitions.filter((def) => def.kind === 'ObjectTypeDefinition' &&
46
+ !['Query', 'Mutation', 'Subscription'].includes(def.name.value));
47
+ // Собираем имена всех моделей для определения отношений
48
+ this.allModelNames.clear();
49
+ for (const typeDef of objectTypes) {
50
+ this.allModelNames.add(typeDef.name.value);
51
+ }
52
+ for (const typeDef of objectTypes) {
53
+ const modelName = typeDef.name.value;
54
+ const fields = [];
55
+ const indexes = [];
56
+ const directives = typeDef.directives?.map(d => d.name.value) || [];
57
+ const isEmbedded = directives.includes('embedded');
58
+ if (typeDef.fields) {
59
+ for (const field of typeDef.fields) {
60
+ const fieldType = this.parseFieldType(field.type);
61
+ const fieldDirectives = field.directives?.map(d => d.name.value) || [];
62
+ const isRelation = this.isModelType(fieldType.baseType);
63
+ const graphQLField = {
64
+ name: field.name.value,
65
+ type: fieldType.baseType,
66
+ isArray: fieldType.isArray,
67
+ isRequired: fieldType.isRequired,
68
+ isId: fieldDirectives.includes('id') || field.name.value === 'id',
69
+ isUnique: fieldDirectives.includes('unique'),
70
+ isRelation,
71
+ isHidden: fieldDirectives.includes('hide'),
72
+ directives: fieldDirectives,
73
+ defaultValue: this.getDefaultValue(fieldDirectives, field)
74
+ };
75
+ fields.push(graphQLField);
76
+ if (fieldDirectives.includes('unique')) {
77
+ indexes.push({
78
+ fields: [field.name.value],
79
+ unique: true
80
+ });
81
+ }
82
+ if (fieldDirectives.includes('index')) {
83
+ indexes.push({
84
+ fields: [field.name.value],
85
+ unique: false
86
+ });
87
+ }
88
+ }
89
+ }
90
+ this.models.set(modelName, {
91
+ name: modelName,
92
+ fields,
93
+ collectionName: isEmbedded ? '' : this.toCollectionName(modelName),
94
+ relations: [],
95
+ indexes,
96
+ isEmbedded
97
+ });
98
+ }
99
+ }
100
+ parseFieldType(typeNode) {
101
+ let current = typeNode;
102
+ let isArray = false;
103
+ let isRequired = false;
104
+ while (true) {
105
+ switch (current.kind) {
106
+ case 'NonNullType':
107
+ isRequired = true;
108
+ current = current.type;
109
+ break;
110
+ case 'ListType':
111
+ isArray = true;
112
+ current = current.type;
113
+ break;
114
+ case 'NamedType':
115
+ return {
116
+ baseType: current.name.value,
117
+ isArray,
118
+ isRequired
119
+ };
120
+ }
121
+ }
122
+ }
123
+ isModelType(typeName) {
124
+ // Проверяем по всем именам моделей (включая еще не обработанные)
125
+ return this.allModelNames.has(typeName) || this.allModelNames.has(typeName.replace(/\[\]!/, ''));
126
+ }
127
+ getDefaultValue(directives, fieldNode) {
128
+ // Пробуем извлечь значение из AST узла директивы (новый способ)
129
+ if (fieldNode?.directives) {
130
+ const defaultDirective = fieldNode.directives.find(d => d.name.value === 'default');
131
+ if (defaultDirective?.arguments) {
132
+ const valueArg = defaultDirective.arguments.find(arg => arg.name.value === 'value');
133
+ if (valueArg?.value.kind === 'StringValue') {
134
+ try {
135
+ return JSON.parse(valueArg.value.value);
136
+ }
137
+ catch {
138
+ return valueArg.value.value;
139
+ }
140
+ }
141
+ }
142
+ }
143
+ // Fallback для обратной совместимости (старый способ через регулярное выражение)
144
+ const defaultDirective = directives.find(d => d.startsWith('default'));
145
+ if (defaultDirective) {
146
+ // Извлекаем значение из директивы @default(value: "...")
147
+ const match = defaultDirective.match(/default\(value:\s*"([^"]+)"\)/);
148
+ if (match) {
149
+ const value = match[1];
150
+ try {
151
+ return JSON.parse(value);
152
+ }
153
+ catch {
154
+ return value;
155
+ }
156
+ }
157
+ }
158
+ return undefined;
159
+ }
160
+ analyzeRelationships() {
161
+ for (const [modelName, model] of this.models) {
162
+ // Пропускаем embedded модели для анализа отношений
163
+ if (model.isEmbedded)
164
+ continue;
165
+ for (const field of model.fields) {
166
+ if (field.isRelation && this.models.has(field.type)) {
167
+ const targetModel = this.models.get(field.type);
168
+ // Пропускаем отношения с embedded моделями
169
+ if (targetModel?.isEmbedded)
170
+ continue;
171
+ const relation = this.determineRelationType(modelName, field);
172
+ if (relation) {
173
+ model.relations.push(relation);
174
+ this.relations.push(relation);
175
+ }
176
+ }
177
+ }
178
+ }
179
+ }
180
+ determineRelationType(modelName, field) {
181
+ const targetModel = this.models.get(field.type);
182
+ if (!targetModel)
183
+ return null;
184
+ const reverseField = targetModel.fields.find(f => f.isRelation && f.type === modelName);
185
+ if (field.isArray) {
186
+ if (reverseField?.isArray) {
187
+ return {
188
+ type: 'manyToMany',
189
+ field: field.name,
190
+ target: field.type,
191
+ joinCollection: `${modelName.toLowerCase()}_${field.type.toLowerCase()}`
192
+ };
193
+ }
194
+ else {
195
+ return {
196
+ type: 'oneToMany',
197
+ field: field.name,
198
+ target: field.type,
199
+ foreignKey: `${modelName.toLowerCase()}Id`
200
+ };
201
+ }
202
+ }
203
+ else {
204
+ if (reverseField?.isArray) {
205
+ return {
206
+ type: 'manyToOne',
207
+ field: field.name,
208
+ target: field.type,
209
+ foreignKey: `${targetModel.name.toLowerCase()}Id`
210
+ };
211
+ }
212
+ else {
213
+ return {
214
+ type: 'oneToOne',
215
+ field: field.name,
216
+ target: field.type,
217
+ foreignKey: `${modelName.toLowerCase()}Id`
218
+ };
219
+ }
220
+ }
221
+ }
222
+ toCollectionName(modelName) {
223
+ return modelName.toLowerCase() + 's';
224
+ }
225
+ getModels() {
226
+ return Array.from(this.models.values());
227
+ }
228
+ getModel(name) {
229
+ return this.models.get(name);
230
+ }
231
+ getEnums() {
232
+ return Array.from(this.enums.values());
233
+ }
234
+ getEnum(name) {
235
+ return this.enums.get(name);
236
+ }
237
+ getRelations() {
238
+ return this.relations;
239
+ }
240
+ getSchemaInfo() {
241
+ return {
242
+ models: this.getModels(),
243
+ enums: this.getEnums(),
244
+ relations: this.getRelations(),
245
+ modelCount: this.models.size,
246
+ enumCount: this.enums.size,
247
+ relationCount: this.relations.length
248
+ };
249
+ }
250
+ /**
251
+ * Validate the parsed schema
252
+ * @throws {SchemaValidationError} If schema validation fails
253
+ */
254
+ validate() {
255
+ const validator = new SchemaValidator_1.SchemaValidator(this.getModels(), this.getEnums(), this.getRelations());
256
+ validator.validate({
257
+ validateRelations: false, // Temporarily disabled due to model reference issues
258
+ checkCircularDependencies: false // Disabled because circular dependencies are allowed in relationships
259
+ });
260
+ // Log warnings
261
+ const warnings = validator.getWarnings();
262
+ if (warnings.length > 0) {
263
+ console.warn('⚠️ Schema validation warnings:');
264
+ warnings.forEach(warning => console.warn(` ${warning}`));
265
+ }
266
+ }
267
+ }
268
+ exports.GraphQLParser = GraphQLParser;
269
+ //# sourceMappingURL=GraphQLParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GraphQLParser.js","sourceRoot":"","sources":["../../src/engine/GraphQLParser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ export interface GenerateOptions {
2
+ schemaPath: string;
3
+ outputPath: string;
4
+ clientName?: string;
5
+ }
6
+ export declare class LenzEngine {
7
+ private options;
8
+ private parser;
9
+ private generator;
10
+ constructor(options: GenerateOptions);
11
+ generate(): Promise<void>;
12
+ private ensureDirectoryStructure;
13
+ private generateClientPackageJson;
14
+ getSchemaInfo(): {
15
+ models: import("./GraphQLParser").GraphQLModel[];
16
+ enums: import("./GraphQLParser").GraphQLEnum[];
17
+ relations: import("./GraphQLParser").ModelRelation[];
18
+ modelCount: number;
19
+ enumCount: number;
20
+ relationCount: number;
21
+ } | undefined;
22
+ }
23
+ //# sourceMappingURL=LenzEngine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LenzEngine.d.ts","sourceRoot":"","sources":["../../src/engine/LenzEngine.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,UAAU;IAIT,OAAO,CAAC,OAAO;IAH3B,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,SAAS,CAAgB;gBAEb,OAAO,EAAE,eAAe;IAItC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;YA8EjB,wBAAwB;YAMxB,yBAAyB;IA0BvC,aAAa;;;;;;;;CAGd"}
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.LenzEngine = void 0;
7
+ const GraphQLParser_1 = require("./GraphQLParser");
8
+ const CodeGenerator_1 = require("./CodeGenerator");
9
+ const fs_1 = require("fs");
10
+ const path_1 = require("path");
11
+ const chalk_1 = __importDefault(require("chalk"));
12
+ const errors_1 = require("../errors");
13
+ class LenzEngine {
14
+ constructor(options) {
15
+ this.options = options;
16
+ this.parser = null;
17
+ this.generator = new CodeGenerator_1.CodeGenerator();
18
+ }
19
+ async generate() {
20
+ try {
21
+ console.log(chalk_1.default.blue('🚀 Starting Lenz code generation...'));
22
+ // 1. Load and parse schema
23
+ console.log(chalk_1.default.blue(`📄 Loading schema from: ${this.options.schemaPath}`));
24
+ if (!(0, fs_1.existsSync)(this.options.schemaPath)) {
25
+ throw new errors_1.ConfigurationError(`Schema file not found: ${this.options.schemaPath}`, { schemaPath: this.options.schemaPath });
26
+ }
27
+ const schemaSDL = await fs_1.promises.readFile(this.options.schemaPath, 'utf-8');
28
+ this.parser = new GraphQLParser_1.GraphQLParser(schemaSDL);
29
+ // Validate schema
30
+ console.log(chalk_1.default.blue('🔍 Validating schema...'));
31
+ this.parser.validate();
32
+ const schemaInfo = this.parser.getSchemaInfo();
33
+ console.log(chalk_1.default.blue(`📊 Found ${schemaInfo.modelCount} models, ${schemaInfo.enumCount} enums, ${schemaInfo.relationCount} relations`));
34
+ // 2. Create output directory structure
35
+ await this.ensureDirectoryStructure(this.options.outputPath);
36
+ // 3. Generate code
37
+ const codeGenOptions = {
38
+ models: schemaInfo.models,
39
+ enums: schemaInfo.enums,
40
+ relations: schemaInfo.relations,
41
+ outputPath: this.options.outputPath,
42
+ clientName: this.options.clientName || 'LenzClient'
43
+ };
44
+ const generatedFiles = this.generator.generate(codeGenOptions);
45
+ // 4. Write files
46
+ let fileCount = 0;
47
+ for (const [filePath, content] of Object.entries(generatedFiles)) {
48
+ const fullPath = (0, path_1.join)(this.options.outputPath, filePath);
49
+ await this.ensureDirectoryStructure((0, path_1.dirname)(fullPath));
50
+ await fs_1.promises.writeFile(fullPath, content, 'utf-8');
51
+ fileCount++;
52
+ }
53
+ // 5. Generate package.json for the client
54
+ await this.generateClientPackageJson();
55
+ console.log(chalk_1.default.green(`✅ Generated ${fileCount} files to ${this.options.outputPath}`));
56
+ console.log(chalk_1.default.green('✨ Client is ready to use!'));
57
+ }
58
+ catch (error) {
59
+ console.log(chalk_1.default.red('❌ Generation failed:'));
60
+ // Check if it's already a LenzError
61
+ const isLenzError = error instanceof errors_1.SchemaValidationError || error instanceof errors_1.SchemaParseError ||
62
+ error instanceof errors_1.CodeGenerationError || error instanceof errors_1.ConfigurationError;
63
+ if (isLenzError) {
64
+ console.log(chalk_1.default.red(` ${error.code}: ${error.message}`));
65
+ if (error.details) {
66
+ console.log(chalk_1.default.gray(' Details:', JSON.stringify(error.details, null, 2)));
67
+ }
68
+ throw error;
69
+ }
70
+ else {
71
+ // Wrap generic errors
72
+ const generationError = new errors_1.CodeGenerationError(error instanceof Error ? error.message : String(error), { originalError: error });
73
+ console.log(chalk_1.default.red(` ${generationError.code}: ${generationError.message}`));
74
+ throw generationError;
75
+ }
76
+ }
77
+ }
78
+ async ensureDirectoryStructure(path) {
79
+ if (!(0, fs_1.existsSync)(path)) {
80
+ await fs_1.promises.mkdir(path, { recursive: true });
81
+ }
82
+ }
83
+ async generateClientPackageJson() {
84
+ const packageJson = {
85
+ name: 'lenz-client',
86
+ version: '1.0.0',
87
+ type: 'module',
88
+ main: './index.js',
89
+ types: './index.d.ts',
90
+ dependencies: {
91
+ mongodb: '^6.0.0'
92
+ },
93
+ exports: {
94
+ '.': {
95
+ import: './index.js',
96
+ types: './index.d.ts'
97
+ },
98
+ './runtime': {
99
+ import: './runtime/index.js',
100
+ types: './runtime/index.d.ts'
101
+ }
102
+ }
103
+ };
104
+ const packageJsonPath = (0, path_1.join)(this.options.outputPath, 'package.json');
105
+ await fs_1.promises.writeFile(packageJsonPath, JSON.stringify(packageJson, null, 2), 'utf-8');
106
+ }
107
+ getSchemaInfo() {
108
+ return this.parser?.getSchemaInfo();
109
+ }
110
+ }
111
+ exports.LenzEngine = LenzEngine;
112
+ //# sourceMappingURL=LenzEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LenzEngine.js","sourceRoot":"","sources":["../../src/engine/LenzEngine.ts"],"names":[],"mappings":";;;;;;AAAA,mDAAgD;AAChD,mDAAmF;AACnF,2BAAgD;AAChD,+BAAqC;AACrC,kDAA0B;AAC1B,sCAKmB;AAQnB,MAAa,UAAU;IAIrB,YAAoB,OAAwB;QAAxB,YAAO,GAAP,OAAO,CAAiB;QAHpC,WAAM,GAAyB,IAAI,CAAC;QAI1C,IAAI,CAAC,SAAS,GAAG,IAAI,6BAAa,EAAE,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC,CAAC;YAE/D,2BAA2B;YAC3B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,2BAA2B,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YAE9E,IAAI,CAAC,IAAA,eAAU,EAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;gBACzC,MAAM,IAAI,2BAAkB,CAC1B,0BAA0B,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EACnD,EAAE,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CACxC,CAAC;YACJ,CAAC;YAED,MAAM,SAAS,GAAG,MAAM,aAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACtE,IAAI,CAAC,MAAM,GAAG,IAAI,6BAAa,CAAC,SAAS,CAAC,CAAC;YAE3C,kBAAkB;YAClB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC;YACnD,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YAEvB,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,YAAY,UAAU,CAAC,UAAU,YAAY,UAAU,CAAC,SAAS,WAAW,UAAU,CAAC,aAAa,YAAY,CAAC,CAAC,CAAC;YAE1I,uCAAuC;YACvC,MAAM,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAE7D,mBAAmB;YACnB,MAAM,cAAc,GAAmB;gBACrC,MAAM,EAAE,UAAU,CAAC,MAAM;gBACzB,KAAK,EAAE,UAAU,CAAC,KAAK;gBACvB,SAAS,EAAE,UAAU,CAAC,SAAS;gBAC/B,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU;gBACnC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,YAAY;aACpD,CAAC;YAEF,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YAE/D,iBAAiB;YACjB,IAAI,SAAS,GAAG,CAAC,CAAC;YAClB,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;gBACjE,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;gBACzD,MAAM,IAAI,CAAC,wBAAwB,CAAC,IAAA,cAAO,EAAC,QAAQ,CAAC,CAAC,CAAC;gBACvD,MAAM,aAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;gBAC/C,SAAS,EAAE,CAAC;YACd,CAAC;YAED,0CAA0C;YAC1C,MAAM,IAAI,CAAC,yBAAyB,EAAE,CAAC;YAEvC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,eAAe,SAAS,aAAa,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YACzF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC;QAExD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC;YAE/C,oCAAoC;YACpC,MAAM,WAAW,GAAG,KAAK,YAAY,8BAAqB,IAAI,KAAK,YAAY,yBAAgB;gBAC3F,KAAK,YAAY,4BAAmB,IAAI,KAAK,YAAY,2BAAkB,CAAC;YAEhF,IAAI,WAAW,EAAE,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBAC7D,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;oBAClB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjF,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;iBAAM,CAAC;gBACN,sBAAsB;gBACtB,MAAM,eAAe,GAAG,IAAI,4BAAmB,CAC7C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACtD,EAAE,aAAa,EAAE,KAAK,EAAE,CACzB,CAAC;gBACF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,MAAM,eAAe,CAAC,IAAI,KAAK,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBACjF,MAAM,eAAe,CAAC;YACxB,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,wBAAwB,CAAC,IAAY;QACjD,IAAI,CAAC,IAAA,eAAU,EAAC,IAAI,CAAC,EAAE,CAAC;YACtB,MAAM,aAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,yBAAyB;QACrC,MAAM,WAAW,GAAG;YAClB,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,cAAc;YACrB,YAAY,EAAE;gBACZ,OAAO,EAAE,QAAQ;aAClB;YACD,OAAO,EAAE;gBACP,GAAG,EAAE;oBACH,MAAM,EAAE,YAAY;oBACpB,KAAK,EAAE,cAAc;iBACtB;gBACD,WAAW,EAAE;oBACX,MAAM,EAAE,oBAAoB;oBAC5B,KAAK,EAAE,sBAAsB;iBAC9B;aACF;SACF,CAAC;QAEF,MAAM,eAAe,GAAG,IAAA,WAAI,EAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QACtE,MAAM,aAAE,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACrF,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC;IACtC,CAAC;CACF;AAzHD,gCAyHC"}
@@ -0,0 +1,63 @@
1
+ import { GraphQLModel, GraphQLEnum, ModelRelation } from './GraphQLParser';
2
+ export interface ValidationOptions {
3
+ /** Whether to check for circular dependencies (default: true) */
4
+ checkCircularDependencies?: boolean;
5
+ /** Whether to validate field types (default: true) */
6
+ validateFieldTypes?: boolean;
7
+ /** Whether to validate relations (default: true) */
8
+ validateRelations?: boolean;
9
+ /** Whether to validate directives (default: true) */
10
+ validateDirectives?: boolean;
11
+ }
12
+ export declare class SchemaValidator {
13
+ private models;
14
+ private enums;
15
+ private relations;
16
+ private supportedScalarTypes;
17
+ constructor(models: GraphQLModel[], enums: GraphQLEnum[], relations: ModelRelation[]);
18
+ /**
19
+ * Validate the entire schema
20
+ */
21
+ validate(options?: ValidationOptions): void;
22
+ /**
23
+ * Check for duplicate model names
24
+ */
25
+ private validateModelNames;
26
+ /**
27
+ * Check for duplicate field names within each model
28
+ */
29
+ private validateFieldNames;
30
+ /**
31
+ * Validate field types
32
+ */
33
+ private validateFieldTypes;
34
+ /**
35
+ * Validate directives
36
+ */
37
+ private validateDirectives;
38
+ /**
39
+ * Validate directives on a specific field
40
+ */
41
+ private validateFieldDirectives;
42
+ /**
43
+ * Validate relations between models
44
+ */
45
+ private validateRelations;
46
+ /**
47
+ * Check for circular dependencies between models
48
+ */
49
+ private checkCircularDependencies;
50
+ /**
51
+ * Validate that required fields have values
52
+ */
53
+ private validateRequiredFields;
54
+ /**
55
+ * Validate enum values
56
+ */
57
+ private validateEnumValues;
58
+ /**
59
+ * Get validation warnings (non-critical issues)
60
+ */
61
+ getWarnings(): string[];
62
+ }
63
+ //# sourceMappingURL=SchemaValidator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SchemaValidator.d.ts","sourceRoot":"","sources":["../../src/engine/SchemaValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,WAAW,EACX,aAAa,EAEd,MAAM,iBAAiB,CAAC;AAYzB,MAAM,WAAW,iBAAiB;IAChC,iEAAiE;IACjE,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,sDAAsD;IACtD,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,oDAAoD;IACpD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,qDAAqD;IACrD,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,oBAAoB,CAGzB;gBAGD,MAAM,EAAE,YAAY,EAAE,EACtB,KAAK,EAAE,WAAW,EAAE,EACpB,SAAS,EAAE,aAAa,EAAE;IAO5B;;OAEG;IACH,QAAQ,CAAC,OAAO,GAAE,iBAAsB,GAAG,IAAI;IAiC/C;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAU1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAY1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA+B1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA4B1B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAqC/B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAmCzB;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAyDjC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAe9B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAqB1B;;OAEG;IACH,WAAW,IAAI,MAAM,EAAE;CAsBxB"}