@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
@@ -0,0 +1,493 @@
1
+ import { mapToTSType, getScalarFilterType, getScalarArrayFilterType } from './helpers.js';
2
+ import { generateFilterTypes } from './TypeFilterTypes.js';
3
+ export class TypeGenerator {
4
+ generateModelWhereInput(model, allModels) {
5
+ const fields = [];
6
+ fields.push(` id?: string | IDFilter`);
7
+ for (const field of model.fields) {
8
+ if (field.isId)
9
+ continue;
10
+ if (field.isIgnored)
11
+ continue;
12
+ const isCrossCollectionRelation = field.isRelation && !allModels.find(m => m.name === field.type && m.isEmbedded);
13
+ if (isCrossCollectionRelation)
14
+ continue;
15
+ const embeddedModel = allModels.find(m => m.name === field.type && m.isEmbedded);
16
+ if (embeddedModel) {
17
+ if (field.isArray) {
18
+ fields.push(` ${field.name}?: { some?: ${embeddedModel.name}WhereInput; every?: ${embeddedModel.name}WhereInput; none?: ${embeddedModel.name}WhereInput }`);
19
+ }
20
+ else {
21
+ fields.push(` ${field.name}?: ${embeddedModel.name}WhereInput | any`);
22
+ }
23
+ continue;
24
+ }
25
+ if (field.isArray && !field.isRelation) {
26
+ const filterType = getScalarArrayFilterType(field.type);
27
+ fields.push(` ${field.name}?: ${filterType}`);
28
+ continue;
29
+ }
30
+ const filterType = getScalarFilterType(field.type, field.isRequired);
31
+ fields.push(` ${field.name}?: ${filterType}`);
32
+ }
33
+ fields.push(` AND?: ${model.name}WhereInput[]`);
34
+ fields.push(` OR?: ${model.name}WhereInput[]`);
35
+ fields.push(` NOT?: ${model.name}WhereInput[]`);
36
+ for (const rel of model.relations) {
37
+ const targetModel = allModels.find(m => m.name === rel.target);
38
+ if (targetModel && !targetModel.isEmbedded) {
39
+ if (rel.type === 'oneToMany' || rel.type === 'manyToMany') {
40
+ fields.push(` ${rel.field}?: { some?: ${rel.target}WhereInput; every?: ${rel.target}WhereInput; none?: ${rel.target}WhereInput }`);
41
+ }
42
+ else {
43
+ fields.push(` ${rel.field}?: { is?: ${rel.target}WhereInput; isNot?: ${rel.target}WhereInput }`);
44
+ }
45
+ }
46
+ }
47
+ if (model.fulltextFields && model.fulltextFields.length > 0) {
48
+ fields.push(` search?: string`);
49
+ }
50
+ return `export interface ${model.name}WhereInput {
51
+ ${fields.join('\n')}
52
+ }`;
53
+ }
54
+ generateModelWhereUniqueInput(model) {
55
+ const uniqueFields = model.fields.filter(f => !f.isIgnored && (f.isId || f.isUnique));
56
+ if (uniqueFields.length === 0) {
57
+ return `export type ${model.name}WhereUniqueInput = Pick<${model.name}WhereInput, 'id'>`;
58
+ }
59
+ const fields = uniqueFields.map(f => {
60
+ const tsType = mapToTSType(f.type, f.isArray);
61
+ return ` ${f.name}?: ${tsType}`;
62
+ });
63
+ return `export interface ${model.name}WhereUniqueInput {
64
+ ${fields.join('\n')}
65
+ }`;
66
+ }
67
+ generateModelSelectInput(model, allModels) {
68
+ const fields = [];
69
+ fields.push(` id?: boolean`);
70
+ for (const field of model.fields) {
71
+ if (field.isId && field.name === 'id')
72
+ continue;
73
+ if (field.isIgnored)
74
+ continue;
75
+ const embeddedModel = allModels.find(m => m.name === field.type && m.isEmbedded);
76
+ if (embeddedModel) {
77
+ fields.push(` ${field.name}?: boolean | ${field.type}Select`);
78
+ }
79
+ else if (field.isRelation) {
80
+ const relatedModel = allModels.find(m => m.name === field.type && !m.isEmbedded);
81
+ if (relatedModel) {
82
+ fields.push(` ${field.name}?: boolean | ${field.type}Select`);
83
+ }
84
+ else {
85
+ fields.push(` ${field.name}?: boolean`);
86
+ }
87
+ }
88
+ else {
89
+ fields.push(` ${field.name}?: boolean`);
90
+ }
91
+ }
92
+ const relationFields = model.relations.filter(r => r.strategy === 'populate');
93
+ if (relationFields.length > 0) {
94
+ fields.push(` _count?: {`);
95
+ fields.push(` select: {`);
96
+ for (const rel of relationFields) {
97
+ fields.push(` ${rel.field}?: boolean`);
98
+ }
99
+ fields.push(` }`);
100
+ fields.push(` }`);
101
+ }
102
+ return `export interface ${model.name}Select {
103
+ ${fields.join('\n')}
104
+ }`;
105
+ }
106
+ generateModelIncludeInput(model, allModels) {
107
+ if (model.relations.length === 0) {
108
+ return `export type ${model.name}Include = Record<string, never>`;
109
+ }
110
+ const fields = [];
111
+ for (const rel of model.relations) {
112
+ const relatedModel = allModels.find(m => m.name === rel.target);
113
+ if (relatedModel) {
114
+ const hasRelations = relatedModel.relations.length > 0;
115
+ if (hasRelations) {
116
+ fields.push(` ${rel.field}?: boolean | ${rel.target}Include`);
117
+ }
118
+ else {
119
+ fields.push(` ${rel.field}?: boolean`);
120
+ }
121
+ }
122
+ else {
123
+ fields.push(` ${rel.field}?: boolean`);
124
+ }
125
+ }
126
+ const countableRelations = model.relations;
127
+ if (countableRelations.length > 0) {
128
+ fields.push(` _count?: {`);
129
+ fields.push(` select?: {`);
130
+ for (const rel of countableRelations) {
131
+ fields.push(` ${rel.field}?: boolean`);
132
+ }
133
+ fields.push(` }`);
134
+ fields.push(` }`);
135
+ }
136
+ return `export interface ${model.name}Include {
137
+ ${fields.join('\n')}
138
+ }`;
139
+ }
140
+ generateModelType(model) {
141
+ const modelDoc = model.description ? `/** ${model.description} */\n` : '';
142
+ return `${modelDoc}export interface ${model.name} {
143
+ id: string
144
+ ${model.fields.filter(f => !f.isId).map(field => {
145
+ const tsType = mapToTSType(field.type, field.isArray);
146
+ const fieldDoc = field.description ? ` /** ${field.description} */\n` : '';
147
+ return `${fieldDoc} ${field.name}${field.isRequired ? '' : '?'}: ${tsType}`;
148
+ }).join('\n')}
149
+ }
150
+
151
+ export interface ${model.name}CreateInput {
152
+ ${model.fields.filter(f => !f.isId && !f.isIgnored && !f.isRelation && !f.directives.includes('generated')).map(field => {
153
+ const tsType = mapToTSType(field.type, field.isArray);
154
+ const fieldDoc = field.description ? ` /** ${field.description} */\n` : '';
155
+ return `${fieldDoc} ${field.name}${field.isRequired ? '' : '?'}: ${tsType}`;
156
+ }).join('\n')}
157
+ ${model.relations.filter(r => !r.joinCollection && !model.fields.find(f => f.name === r.field)?.isIgnored).map(rel => {
158
+ const isToMany = rel.type === 'oneToMany' || rel.type === 'manyToMany';
159
+ if (isToMany) {
160
+ return ` ${rel.field}?: { create?: ${rel.target}CreateInput[]; connect?: { id: string }[]; connectOrCreate?: { where: { id: string }; create: ${rel.target}CreateInput }[] }`;
161
+ }
162
+ else {
163
+ return ` ${rel.field}?: { create?: ${rel.target}CreateInput; connect?: { id: string }; connectOrCreate?: { where: { id: string }; create: ${rel.target}CreateInput } }`;
164
+ }
165
+ }).join('\n')}
166
+ }
167
+
168
+ export interface ${model.name}UpdateInput {
169
+ ${model.fields.filter(f => !f.isId && !f.isIgnored && !f.isRelation).map(field => {
170
+ const tsType = mapToTSType(field.type, field.isArray);
171
+ const fieldDoc = field.description ? ` /** ${field.description} */\n` : '';
172
+ return `${fieldDoc} ${field.name}?: ${tsType}`;
173
+ }).join('\n')}
174
+ ${model.relations.filter(r => !r.joinCollection && !model.fields.find(f => f.name === r.field)?.isIgnored).map(rel => {
175
+ const isToMany = rel.type === 'oneToMany' || rel.type === 'manyToMany';
176
+ if (isToMany) {
177
+ return ` ${rel.field}?: { create?: ${rel.target}CreateInput[]; connect?: { id: string }[]; connectOrCreate?: { where: { id: string }; create: ${rel.target}CreateInput }[]; disconnect?: { id: string }[]; set?: { id: string }[]; update?: { where: { id: string }; data: ${rel.target}UpdateInput }[]; delete?: { id: string }[]; upsert?: { where: { id: string }; update: ${rel.target}UpdateInput; create: ${rel.target}CreateInput }[]; updateMany?: { where: ${rel.target}WhereInput; data: ${rel.target}UpdateInput }[]; deleteMany?: ${rel.target}WhereInput }`;
178
+ }
179
+ else {
180
+ return ` ${rel.field}?: { create?: ${rel.target}CreateInput; connect?: { id: string }; connectOrCreate?: { where: { id: string }; create: ${rel.target}CreateInput }; disconnect?: boolean; update?: ${rel.target}UpdateInput; delete?: boolean; upsert?: { where: { id: string }; update: ${rel.target}UpdateInput; create: ${rel.target}CreateInput } }`;
181
+ }
182
+ }).join('\n')}
183
+ }`;
184
+ }
185
+ generateModelOmitInput(model) {
186
+ const fields = [];
187
+ for (const field of model.fields) {
188
+ if (field.isIgnored)
189
+ continue;
190
+ fields.push(` ${field.name}?: boolean`);
191
+ }
192
+ return `export interface ${model.name}Omit {\n${fields.join('\n')}\n}`;
193
+ }
194
+ generateModelOrderByInput(model) {
195
+ const sortableFields = model.fields.filter(f => !f.isRelation && !f.isIgnored && f.type !== 'Json');
196
+ const fields = sortableFields.map(f => ` ${f.name}?: 'asc' | 'desc' | 1 | -1`);
197
+ return `export interface ${model.name}OrderByInput {
198
+ ${fields.join('\n')}
199
+ }`;
200
+ }
201
+ generateModelGroupByTypes(model) {
202
+ const aggFields = model.fields.filter(f => !f.isIgnored && ['Int', 'Float', 'BigInt'].includes(f.type));
203
+ const scalarFields = model.fields.filter(f => !f.isIgnored && !f.isRelation && !f.isId);
204
+ const byFields = model.fields.filter(f => !f.isIgnored && !f.isRelation);
205
+ return `export type ${model.name}GroupByScalar =
206
+ ${byFields.map(f => ` | '${f.name}'`).join('\n')}
207
+
208
+ export interface ${model.name}GroupByArgs {
209
+ by: ${model.name}GroupByScalar[]
210
+ where?: ${model.name}WhereInput
211
+ _count?: boolean | ${model.name}GroupByScalar[]
212
+ _sum?: ${model.name}GroupByScalar[]
213
+ _avg?: ${model.name}GroupByScalar[]
214
+ _min?: ${model.name}GroupByScalar[]
215
+ _max?: ${model.name}GroupByScalar[]
216
+ orderBy?: ${model.name}OrderByInput | ${model.name}OrderByInput[]
217
+ having?: any
218
+ skip?: number
219
+ take?: number
220
+ session?: any
221
+ }
222
+
223
+ export interface ${model.name}GroupByResult {
224
+ ${byFields.map(f => {
225
+ const tsType = mapToTSType(f.type, f.isArray);
226
+ return ` ${f.name}: ${tsType}`;
227
+ }).join('\n')}
228
+ ${scalarFields.length > 0 ? ` _count: {${scalarFields.map(f => `\n ${f.name}: number`).join(',')}
229
+ }
230
+ _min: {${scalarFields.map(f => `\n ${f.name}: ${mapToTSType(f.type, f.isArray)} | null`).join(',')}
231
+ }
232
+ _max: {${scalarFields.map(f => `\n ${f.name}: ${mapToTSType(f.type, f.isArray)} | null`).join(',')}
233
+ }` : ''}${aggFields.length > 0 ? `
234
+ _sum: {${aggFields.map(f => `\n ${f.name}: number`).join(',')}
235
+ }
236
+ _avg: {${aggFields.map(f => `\n ${f.name}: number`).join(',')}
237
+ }` : ''}
238
+ }`;
239
+ }
240
+ generateModelAggregateTypes(model) {
241
+ const aggFields = model.fields.filter(f => !f.isIgnored && ['Int', 'Float', 'BigInt'].includes(f.type));
242
+ const scalarFields = model.fields.filter(f => !f.isIgnored && !f.isRelation && !f.isId);
243
+ const byFields = model.fields.filter(f => !f.isIgnored && !f.isRelation);
244
+ const aggScalarType = byFields.map(f => ` | '${f.name}'`).join('\n');
245
+ return `export type ${model.name}AggregateScalar =
246
+ ${aggScalarType}
247
+
248
+ export interface ${model.name}AggregateArgs {
249
+ where?: ${model.name}WhereInput
250
+ orderBy?: ${model.name}OrderByInput | ${model.name}OrderByInput[]
251
+ _count?: boolean | ${model.name}AggregateScalar[]
252
+ _sum?: ${model.name}AggregateScalar[]
253
+ _avg?: ${model.name}AggregateScalar[]
254
+ _min?: ${model.name}AggregateScalar[]
255
+ _max?: ${model.name}AggregateScalar[]
256
+ session?: any
257
+ }
258
+
259
+ export interface ${model.name}AggregateResult {
260
+ _count?: {${scalarFields.map(f => `\n ${f.name}: number`).join(',')}
261
+ }${scalarFields.length > 0 ? `
262
+ _min?: {${scalarFields.map(f => `\n ${f.name}: ${mapToTSType(f.type, f.isArray)} | null`).join(',')}
263
+ }
264
+ _max?: {${scalarFields.map(f => `\n ${f.name}: ${mapToTSType(f.type, f.isArray)} | null`).join(',')}
265
+ }` : ''}${aggFields.length > 0 ? `
266
+ _sum?: {${aggFields.map(f => `\n ${f.name}: number | null`).join(',')}
267
+ }
268
+ _avg?: {${aggFields.map(f => `\n ${f.name}: number | null`).join(',')}
269
+ }` : ''}
270
+ }`;
271
+ }
272
+ generateModelArgTypes(model) {
273
+ const hasRelations = model.relations.length > 0;
274
+ const includeType = hasRelations ? `${model.name}Include` : 'Record<string, never>';
275
+ return `${this.generateModelGroupByTypes(model)}
276
+
277
+ ${this.generateModelOrderByInput(model)}
278
+
279
+ ${this.generateModelAggregateTypes(model)}
280
+
281
+ export interface ${model.name}FindManyArgs {
282
+ where?: ${model.name}WhereInput
283
+ select?: ${model.name}Select
284
+ include?: ${includeType}
285
+ omit?: ${model.name}Omit
286
+ skip?: number
287
+ take?: number
288
+ orderBy?: ${model.name}OrderByInput | ${model.name}OrderByInput[]
289
+ distinct?: string | string[]
290
+ cursor?: string | ObjectId
291
+ session?: any
292
+ }
293
+
294
+ export interface ${model.name}FindUniqueArgs {
295
+ where: ${model.name}WhereUniqueInput
296
+ select?: ${model.name}Select
297
+ include?: ${includeType}
298
+ omit?: ${model.name}Omit
299
+ session?: any
300
+ }
301
+
302
+ export interface ${model.name}FindUniqueOrThrowArgs extends ${model.name}FindUniqueArgs {}
303
+
304
+ export interface ${model.name}FindFirstArgs extends ${model.name}FindManyArgs {}
305
+
306
+ export interface ${model.name}FindFirstOrThrowArgs extends ${model.name}FindFirstArgs {}
307
+
308
+ export interface ${model.name}CreateArgs {
309
+ data: ${model.name}CreateInput
310
+ select?: ${model.name}Select
311
+ include?: ${includeType}
312
+ omit?: ${model.name}Omit
313
+ session?: any
314
+ }
315
+
316
+ export interface ${model.name}UpdateArgs {
317
+ where: ${model.name}WhereInput
318
+ data: ${model.name}UpdateInput
319
+ select?: ${model.name}Select
320
+ include?: ${includeType}
321
+ omit?: ${model.name}Omit
322
+ session?: any
323
+ }
324
+
325
+ export interface ${model.name}DeleteArgs {
326
+ where: ${model.name}WhereInput
327
+ select?: ${model.name}Select
328
+ include?: ${includeType}
329
+ omit?: ${model.name}Omit
330
+ session?: any
331
+ }
332
+
333
+ export interface ${model.name}UpsertArgs {
334
+ where: ${model.name}WhereInput
335
+ create: ${model.name}CreateInput
336
+ update: ${model.name}UpdateInput
337
+ select?: ${model.name}Select
338
+ include?: ${includeType}
339
+ omit?: ${model.name}Omit
340
+ session?: any
341
+ }
342
+
343
+ export type ${model.name}QueryOptions = ${model.name}FindManyArgs`;
344
+ }
345
+ generateTypes(models, enums) {
346
+ const nonEmbeddedModels = models.filter(m => !m.isEmbedded);
347
+ return `// This file was auto-generated by Lenz. Do not edit manually.
348
+ // @generated
349
+
350
+ import { ObjectId } from 'mongodb'
351
+
352
+ // Base types
353
+ export type ScalarType = 'String' | 'Int' | 'Float' | 'Boolean' | 'ID' | 'DateTime' | 'Date' | 'Json' | 'ObjectId' | 'Bytes' | 'BigInt'
354
+ export type RelationType = 'oneToOne' | 'oneToMany' | 'manyToOne' | 'manyToMany'
355
+
356
+ // ===== Scalar Filter Types =====
357
+ ${generateFilterTypes()}
358
+
359
+ // ===== Enum types =====
360
+ ${enums.map(e => `
361
+ export enum ${e.name} {
362
+ ${e.values.map(v => `${v} = '${v}'`).join(',\n ')}
363
+ }`).join('\n\n')}
364
+
365
+ // ===== Model Types =====
366
+ ${models.map(model => this.generateModelType(model)).join('\n\n')}
367
+
368
+ // ===== Per-Model WhereInput =====
369
+ ${models.map(model => this.generateModelWhereInput(model, models)).join('\n\n')}
370
+
371
+ // ===== Per-Model WhereUniqueInput =====
372
+ ${models.map(model => this.generateModelWhereUniqueInput(model)).join('\n\n')}
373
+
374
+ // ===== Per-Model SelectInput =====
375
+ ${models.map(model => this.generateModelSelectInput(model, models)).join('\n\n')}
376
+
377
+ // ===== Per-Model OmitInput =====
378
+ ${models.filter(m => !m.isEmbedded).map(model => this.generateModelOmitInput(model)).join('\n\n')}
379
+
380
+ // ===== Per-Model IncludeInput =====
381
+ ${models.map(model => this.generateModelIncludeInput(model, models)).join('\n\n')}
382
+
383
+ // ===== Per-Model Arg Types =====
384
+ ${nonEmbeddedModels.map(model => this.generateModelArgTypes(model)).join('\n\n')}
385
+
386
+ // ===== Shared Utility Types =====
387
+
388
+ export interface OrderByInput {
389
+ [key: string]: 'asc' | 'desc' | 1 | -1
390
+ }
391
+
392
+ // Pagination types
393
+ export interface PageInfo {
394
+ hasNextPage: boolean
395
+ hasPreviousPage: boolean
396
+ startCursor?: string
397
+ endCursor?: string
398
+ }
399
+
400
+ export interface Connection<T> {
401
+ edges: Array<Edge<T>>
402
+ pageInfo: PageInfo
403
+ totalCount: number
404
+ }
405
+
406
+ export interface Edge<T> {
407
+ node: T
408
+ cursor: string
409
+ }
410
+
411
+ export interface OffsetPaginationArgs<T = any> {
412
+ where?: T
413
+ skip?: number
414
+ take?: number
415
+ orderBy?: OrderByInput | OrderByInput[]
416
+ page?: number
417
+ perPage?: number
418
+ }
419
+
420
+ export interface CursorPaginationArgs<T = any> {
421
+ where?: T
422
+ take?: number
423
+ skip?: number
424
+ orderBy?: OrderByInput | OrderByInput[]
425
+ cursor?: string | ObjectId
426
+ }
427
+
428
+ export interface PaginatedResult<T> {
429
+ data: T[]
430
+ meta: {
431
+ total: number
432
+ page: number
433
+ perPage: number
434
+ totalPages: number
435
+ hasNextPage: boolean
436
+ hasPreviousPage: boolean
437
+ }
438
+ }
439
+
440
+ export interface CursorPaginatedResult<T> {
441
+ edges: Array<{
442
+ node: T
443
+ cursor: string
444
+ }>
445
+ pageInfo: {
446
+ hasNextPage: boolean
447
+ hasPreviousPage: boolean
448
+ startCursor?: string
449
+ endCursor?: string
450
+ }
451
+ totalCount: number
452
+ }
453
+
454
+ // Config types
455
+ export interface LenzConfig {
456
+ url?: string
457
+ schemaPath?: string
458
+ log?: ('query' | 'error' | 'warn' | 'info')[]
459
+ maxPoolSize?: number
460
+ connectTimeoutMS?: number
461
+ socketTimeoutMS?: number
462
+ }
463
+
464
+ // Utility types
465
+ export type DeepPartial<T> = {
466
+ [P in keyof T]?: T[P] extends Array<infer U>
467
+ ? Array<DeepPartial<U>>
468
+ : T[P] extends ReadonlyArray<infer U>
469
+ ? ReadonlyArray<DeepPartial<U>>
470
+ : DeepPartial<T[P]> | T[P]
471
+ }
472
+
473
+ export type WithId<T> = T & { id: string }
474
+ export type OptionalId<T> = Omit<T, 'id'> & { id?: string }
475
+ `;
476
+ }
477
+ generateEnums(enums) {
478
+ if (enums.length === 0) {
479
+ return '// No enums defined in schema\n\nexport {}';
480
+ }
481
+ return `// This file was auto-generated by Lenz. Do not edit manually.
482
+ // @generated
483
+
484
+ ${enums.map(e => `
485
+ export const ${e.name} = {
486
+ ${e.values.map(v => ` ${v}: '${v}',`).join('\n')}
487
+ } as const
488
+
489
+ export type ${e.name} = typeof ${e.name}[keyof typeof ${e.name}]
490
+ `).join('\n')}`;
491
+ }
492
+ }
493
+ //# sourceMappingURL=TypeGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypeGenerator.js","sourceRoot":"","sources":["../../../src/engine/generators/TypeGenerator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export declare const typeMap: Record<string, string>;
2
+ export declare function toCamelCase(str: string): string;
3
+ export declare function toCollectionName(modelName: string): string;
4
+ export declare function mapToTSType(type: string, isArray: boolean, customTypeMap?: Record<string, string>): string;
5
+ export declare function getScalarFilterType(graphqlType: string, isRequired: boolean): string;
6
+ export declare function getScalarArrayFilterType(graphqlType: string): string;
7
+ export declare function addJsExtensionsToImports(content: string): string;
8
+ export declare function removeTypeScriptSyntax(content: string): string;
9
+ export declare function convertToJavaScript(content: string): string;
10
+ export declare function compileTypeScriptToJavaScript(content: string): string;
11
+ export declare function convertTypesToJavaScript(content: string): string;
12
+ export declare function convertToDeclaration(content: string): string;
13
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/engine/generators/helpers.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAY1C,CAAC;AAEF,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAW,GAAG,MAAM,CAInH;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,GAAG,MAAM,CAgBpF;AAED,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAWpE;AAID,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAchE;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CA0B9D;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAI3D;AAED,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CA6BrE;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAuGhE;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAqF5D"}