@k0lyan/typegraphql-prisma-nestjs 0.28.20 → 0.28.21

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 (88) hide show
  1. package/lib/cli/dev.d.ts +1 -0
  2. package/lib/cli/dev.js +5 -0
  3. package/lib/cli/dev.js.map +1 -0
  4. package/lib/cli/generator.d.ts +1 -0
  5. package/lib/cli/generator.js +13 -0
  6. package/lib/cli/generator.js.map +1 -0
  7. package/lib/cli/helpers.d.ts +4 -0
  8. package/lib/cli/helpers.js +52 -0
  9. package/lib/cli/helpers.js.map +1 -0
  10. package/lib/cli/prisma-generator.d.ts +2 -0
  11. package/lib/cli/prisma-generator.js +79 -0
  12. package/lib/cli/prisma-generator.js.map +1 -0
  13. package/lib/generator/args-class.d.ts +4 -0
  14. package/lib/generator/args-class.js +56 -0
  15. package/lib/generator/args-class.js.map +1 -0
  16. package/lib/generator/config.d.ts +22 -0
  17. package/lib/generator/config.js +39 -0
  18. package/lib/generator/config.js.map +1 -0
  19. package/lib/generator/dmmf/dmmf-document.d.ts +19 -0
  20. package/lib/generator/dmmf/dmmf-document.js +60 -0
  21. package/lib/generator/dmmf/dmmf-document.js.map +1 -0
  22. package/lib/generator/dmmf/helpers.d.ts +5 -0
  23. package/lib/generator/dmmf/helpers.js +42 -0
  24. package/lib/generator/dmmf/helpers.js.map +1 -0
  25. package/lib/generator/dmmf/transform.d.ts +11 -0
  26. package/lib/generator/dmmf/transform.js +456 -0
  27. package/lib/generator/dmmf/transform.js.map +1 -0
  28. package/lib/generator/dmmf/types.d.ts +230 -0
  29. package/lib/generator/dmmf/types.js +28 -0
  30. package/lib/generator/dmmf/types.js.map +1 -0
  31. package/lib/generator/emit-block.d.ts +4 -0
  32. package/lib/generator/emit-block.js +35 -0
  33. package/lib/generator/emit-block.js.map +1 -0
  34. package/lib/generator/enum.d.ts +4 -0
  35. package/lib/generator/enum.js +39 -0
  36. package/lib/generator/enum.js.map +1 -0
  37. package/lib/generator/generate-code.d.ts +3 -0
  38. package/lib/generator/generate-code.js +229 -0
  39. package/lib/generator/generate-code.js.map +1 -0
  40. package/lib/generator/generate-enhance.d.ts +5 -0
  41. package/lib/generator/generate-enhance.js +492 -0
  42. package/lib/generator/generate-enhance.js.map +1 -0
  43. package/lib/generator/generate-helpers.d.ts +3 -0
  44. package/lib/generator/generate-helpers.js +113 -0
  45. package/lib/generator/generate-helpers.js.map +1 -0
  46. package/lib/generator/generate-scalars.d.ts +3 -0
  47. package/lib/generator/generate-scalars.js +27 -0
  48. package/lib/generator/generate-scalars.js.map +1 -0
  49. package/lib/generator/helpers.d.ts +14 -0
  50. package/lib/generator/helpers.js +226 -0
  51. package/lib/generator/helpers.js.map +1 -0
  52. package/lib/generator/imports.d.ts +28 -0
  53. package/lib/generator/imports.js +311 -0
  54. package/lib/generator/imports.js.map +1 -0
  55. package/lib/generator/model-type-class.d.ts +4 -0
  56. package/lib/generator/model-type-class.js +152 -0
  57. package/lib/generator/model-type-class.js.map +1 -0
  58. package/lib/generator/options.d.ts +40 -0
  59. package/lib/generator/options.js +3 -0
  60. package/lib/generator/options.js.map +1 -0
  61. package/lib/generator/resolvers/full-crud.d.ts +5 -0
  62. package/lib/generator/resolvers/full-crud.js +45 -0
  63. package/lib/generator/resolvers/full-crud.js.map +1 -0
  64. package/lib/generator/resolvers/helpers.d.ts +5 -0
  65. package/lib/generator/resolvers/helpers.js +81 -0
  66. package/lib/generator/resolvers/helpers.js.map +1 -0
  67. package/lib/generator/resolvers/relations.d.ts +5 -0
  68. package/lib/generator/resolvers/relations.js +254 -0
  69. package/lib/generator/resolvers/relations.js.map +1 -0
  70. package/lib/generator/resolvers/separate-action.d.ts +5 -0
  71. package/lib/generator/resolvers/separate-action.js +33 -0
  72. package/lib/generator/resolvers/separate-action.js.map +1 -0
  73. package/lib/generator/type-class.d.ts +12 -0
  74. package/lib/generator/type-class.js +340 -0
  75. package/lib/generator/type-class.js.map +1 -0
  76. package/lib/generator/types.d.ts +5 -0
  77. package/lib/generator/types.js +3 -0
  78. package/lib/generator/types.js.map +1 -0
  79. package/lib/generator.d.ts +2 -0
  80. package/lib/generator.js +5 -0
  81. package/lib/generator.js.map +1 -0
  82. package/lib/utils/prisma-version.d.ts +1 -0
  83. package/lib/utils/prisma-version.js +34 -0
  84. package/lib/utils/prisma-version.js.map +1 -0
  85. package/lib/utils/removeDir.d.ts +1 -0
  86. package/lib/utils/removeDir.js +19 -0
  87. package/lib/utils/removeDir.js.map +1 -0
  88. package/package.json +1 -1
@@ -0,0 +1,230 @@
1
+ import { InputOmitSetting } from "../config";
2
+ export type ReadonlyDeep<O> = {
3
+ +readonly [K in keyof O]: ReadonlyDeep<O[K]>;
4
+ };
5
+ export declare namespace DMMF {
6
+ type Document = ReadonlyDeep<{
7
+ datamodel: Datamodel;
8
+ schema: Schema;
9
+ modelMappings: ModelMapping[];
10
+ }>;
11
+ type Enum = ReadonlyDeep<{
12
+ name: string;
13
+ dbName?: string | null;
14
+ typeName: string;
15
+ docs: string | undefined;
16
+ valuesMap: Array<{
17
+ name: string;
18
+ value: string;
19
+ }>;
20
+ }>;
21
+ type Datamodel = ReadonlyDeep<{
22
+ models: Model[];
23
+ enums: Enum[];
24
+ types: Model[];
25
+ }>;
26
+ type UniqueIndex = ReadonlyDeep<{
27
+ name: string;
28
+ fields: string[];
29
+ }>;
30
+ type PrimaryKey = ReadonlyDeep<{
31
+ name: string | null;
32
+ fields: string[];
33
+ }>;
34
+ type Model = ReadonlyDeep<{
35
+ name: string;
36
+ dbName: string | null;
37
+ fields: ModelField[];
38
+ uniqueFields: string[][];
39
+ uniqueIndexes: UniqueIndex[];
40
+ primaryKey: PrimaryKey | null;
41
+ typeName: string;
42
+ docs: string | undefined;
43
+ plural: string | undefined;
44
+ isOmitted: {
45
+ output: boolean;
46
+ };
47
+ }>;
48
+ type FieldKind = "scalar" | "object" | "enum" | "unsupported";
49
+ type FieldNamespace = "model" | "prisma";
50
+ type FieldLocation = "scalar" | "inputObjectTypes" | "outputObjectTypes" | "enumTypes" | "fieldRefTypes";
51
+ type ModelField = ReadonlyDeep<{
52
+ name: string;
53
+ isRequired: boolean;
54
+ isList: boolean;
55
+ isUnique: boolean;
56
+ isId: boolean;
57
+ isReadOnly: boolean;
58
+ isGenerated?: boolean;
59
+ isUpdatedAt?: boolean;
60
+ dbNames?: string[] | null;
61
+ hasDefaultValue: boolean;
62
+ default?: FieldDefault | FieldDefaultScalar | FieldDefaultScalar[];
63
+ relationFromFields?: string[];
64
+ relationToFields?: string[];
65
+ relationOnDelete?: string;
66
+ relationName?: string;
67
+ type: string;
68
+ location: FieldLocation;
69
+ typeFieldAlias?: string;
70
+ typeGraphQLType: string;
71
+ fieldTSType: string;
72
+ docs: string | undefined;
73
+ isOmitted: {
74
+ input: boolean | InputOmitSetting[];
75
+ output: boolean;
76
+ };
77
+ isOptional: {
78
+ input: boolean | InputOmitSetting[];
79
+ output: boolean;
80
+ };
81
+ }>;
82
+ type FieldDefault = ReadonlyDeep<{
83
+ name: string;
84
+ args: any[];
85
+ }>;
86
+ type FieldDefaultScalar = string | boolean | number;
87
+ type Schema = ReadonlyDeep<{
88
+ rootQueryType?: string;
89
+ rootMutationType?: string;
90
+ inputTypes: InputType[];
91
+ outputTypes: OutputType[];
92
+ enums: Enum[];
93
+ }>;
94
+ type Query = ReadonlyDeep<{
95
+ name: string;
96
+ args: SchemaArg[];
97
+ output: QueryOutput;
98
+ }>;
99
+ type QueryOutput = ReadonlyDeep<{
100
+ name: string;
101
+ isRequired: boolean;
102
+ isList: boolean;
103
+ }>;
104
+ type TypeRef<AllowedLocations extends FieldLocation> = {
105
+ isList: boolean;
106
+ type: string;
107
+ location: AllowedLocations;
108
+ namespace?: FieldNamespace;
109
+ };
110
+ type InputTypeRef = TypeRef<"scalar" | "inputObjectTypes" | "enumTypes" | "fieldRefTypes">;
111
+ type ArgType = string | InputType | Enum;
112
+ type SchemaArgInputType = ReadonlyDeep<{
113
+ isList: boolean;
114
+ location: FieldLocation;
115
+ namespace?: FieldNamespace;
116
+ type: string;
117
+ }>;
118
+ type SchemaArg = ReadonlyDeep<{
119
+ name: string;
120
+ comment?: string;
121
+ isNullable: boolean;
122
+ isRequired: boolean;
123
+ deprecation?: Deprecation;
124
+ selectedInputType: SchemaArgInputType;
125
+ typeName: string;
126
+ typeGraphQLType: string;
127
+ fieldTSType: string;
128
+ hasMappedName: boolean;
129
+ isOmitted: boolean;
130
+ isOptional: boolean;
131
+ }>;
132
+ type OutputType = ReadonlyDeep<{
133
+ name: string;
134
+ fields: OutputSchemaField[];
135
+ typeName: string;
136
+ }>;
137
+ type SchemaField = ReadonlyDeep<{
138
+ name: string;
139
+ isNullable?: boolean;
140
+ args: SchemaArg[];
141
+ deprecation?: Deprecation;
142
+ documentation?: string;
143
+ outputType: TypeInfo;
144
+ typeGraphQLType: string;
145
+ fieldTSType: string;
146
+ isRequired: boolean;
147
+ }>;
148
+ type OutputTypeRef = TypeRef<"scalar" | "outputObjectTypes" | "enumTypes">;
149
+ type Deprecation = ReadonlyDeep<{
150
+ sinceVersion: string;
151
+ reason: string;
152
+ plannedRemovalVersion?: string;
153
+ }>;
154
+ type TypeInfo = ReadonlyDeep<{
155
+ isList: boolean;
156
+ location: FieldLocation;
157
+ namespace?: FieldNamespace;
158
+ type: string;
159
+ }>;
160
+ type OutputSchemaField = SchemaField & ReadonlyDeep<{
161
+ argsTypeName: string | undefined;
162
+ }>;
163
+ type InputType = ReadonlyDeep<{
164
+ name: string;
165
+ constraints: {
166
+ maxNumFields: number | null;
167
+ minNumFields: number | null;
168
+ };
169
+ meta?: {
170
+ source?: string;
171
+ };
172
+ fields: SchemaArg[];
173
+ typeName: string;
174
+ }>;
175
+ type FieldRefType = ReadonlyDeep<{
176
+ name: string;
177
+ allowTypes: FieldRefAllowType[];
178
+ fields: SchemaArg[];
179
+ }>;
180
+ type FieldRefAllowType = TypeRef<"scalar" | "enumTypes">;
181
+ type ModelMapping = ReadonlyDeep<{
182
+ modelName: string;
183
+ actions: Action[];
184
+ collectionName: string;
185
+ resolverName: string;
186
+ modelTypeName: string;
187
+ }>;
188
+ enum ModelAction {
189
+ findUnique = "findUnique",
190
+ findUniqueOrThrow = "findUniqueOrThrow",
191
+ findFirst = "findFirst",
192
+ findFirstOrThrow = "findFirstOrThrow",
193
+ findMany = "findMany",
194
+ createOne = "createOne",
195
+ createMany = "createMany",
196
+ createManyAndReturn = "createManyAndReturn",
197
+ updateOne = "updateOne",
198
+ updateMany = "updateMany",
199
+ upsertOne = "upsertOne",
200
+ deleteOne = "deleteOne",
201
+ deleteMany = "deleteMany",
202
+ groupBy = "groupBy",
203
+ aggregate = "aggregate",
204
+ findRaw = "findRaw",
205
+ aggregateRaw = "aggregateRaw"
206
+ }
207
+ type Action = ReadonlyDeep<{
208
+ name: string;
209
+ fieldName: string;
210
+ kind: ModelAction;
211
+ operation: "Query" | "Mutation";
212
+ prismaMethod: string;
213
+ method: OutputSchemaField;
214
+ argsTypeName: string | undefined;
215
+ outputTypeName: string;
216
+ actionResolverName: string;
217
+ returnTSType: string;
218
+ typeGraphQLType: string;
219
+ }>;
220
+ type RelationModel = ReadonlyDeep<{
221
+ model: Model;
222
+ outputType: OutputType;
223
+ relationFields: RelationField[];
224
+ resolverName: string;
225
+ }>;
226
+ type RelationField = ModelField & ReadonlyDeep<{
227
+ outputTypeField: OutputSchemaField;
228
+ argsTypeName: string | undefined;
229
+ }>;
230
+ }
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DMMF = void 0;
4
+ var DMMF;
5
+ (function (DMMF) {
6
+ let ModelAction;
7
+ (function (ModelAction) {
8
+ ModelAction["findUnique"] = "findUnique";
9
+ ModelAction["findUniqueOrThrow"] = "findUniqueOrThrow";
10
+ ModelAction["findFirst"] = "findFirst";
11
+ ModelAction["findFirstOrThrow"] = "findFirstOrThrow";
12
+ ModelAction["findMany"] = "findMany";
13
+ ModelAction["createOne"] = "createOne";
14
+ ModelAction["createMany"] = "createMany";
15
+ ModelAction["createManyAndReturn"] = "createManyAndReturn";
16
+ ModelAction["updateOne"] = "updateOne";
17
+ ModelAction["updateMany"] = "updateMany";
18
+ ModelAction["upsertOne"] = "upsertOne";
19
+ ModelAction["deleteOne"] = "deleteOne";
20
+ ModelAction["deleteMany"] = "deleteMany";
21
+ ModelAction["groupBy"] = "groupBy";
22
+ // count = "count",
23
+ ModelAction["aggregate"] = "aggregate";
24
+ ModelAction["findRaw"] = "findRaw";
25
+ ModelAction["aggregateRaw"] = "aggregateRaw";
26
+ })(ModelAction = DMMF.ModelAction || (DMMF.ModelAction = {}));
27
+ })(DMMF || (exports.DMMF = DMMF = {}));
28
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/generator/dmmf/types.ts"],"names":[],"mappings":";;;AAMA,IAAiB,IAAI,CA+RpB;AA/RD,WAAiB,IAAI;IAgPnB,IAAY,WAmBX;IAnBD,WAAY,WAAW;QACrB,wCAAyB,CAAA;QACzB,sDAAuC,CAAA;QACvC,sCAAuB,CAAA;QACvB,oDAAqC,CAAA;QACrC,oCAAqB,CAAA;QACrB,sCAAuB,CAAA;QACvB,wCAAyB,CAAA;QACzB,0DAA2C,CAAA;QAC3C,sCAAuB,CAAA;QACvB,wCAAyB,CAAA;QACzB,sCAAuB,CAAA;QACvB,sCAAuB,CAAA;QACvB,wCAAyB,CAAA;QACzB,kCAAmB,CAAA;QACnB,mBAAmB;QACnB,sCAAuB,CAAA;QACvB,kCAAmB,CAAA;QACnB,4CAA6B,CAAA;IAC/B,CAAC,EAnBW,WAAW,GAAX,gBAAW,KAAX,gBAAW,QAmBtB;AA4BH,CAAC,EA/RgB,IAAI,oBAAJ,IAAI,QA+RpB"}
@@ -0,0 +1,4 @@
1
+ export type EmitBlockKind = "enums" | "models" | "crudResolvers" | "relationResolvers" | "inputs" | "outputs";
2
+ export declare const ALL_EMIT_BLOCK_KINDS: EmitBlockKind[];
3
+ export declare const BLOCKS_DEPENDENCIES_MAP: Record<EmitBlockKind, EmitBlockKind[]>;
4
+ export declare function getBlocksToEmit(emitOnly: EmitBlockKind[] | undefined): EmitBlockKind[];
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BLOCKS_DEPENDENCIES_MAP = exports.ALL_EMIT_BLOCK_KINDS = void 0;
4
+ exports.getBlocksToEmit = getBlocksToEmit;
5
+ exports.ALL_EMIT_BLOCK_KINDS = [
6
+ "enums",
7
+ "models",
8
+ "crudResolvers",
9
+ "relationResolvers",
10
+ "inputs",
11
+ "outputs",
12
+ ];
13
+ exports.BLOCKS_DEPENDENCIES_MAP = {
14
+ enums: [],
15
+ models: ["enums"],
16
+ crudResolvers: ["models", "enums", "outputs", "inputs"],
17
+ relationResolvers: ["models", "enums", "inputs"],
18
+ inputs: ["enums"],
19
+ outputs: ["enums"],
20
+ };
21
+ function getBlocksToEmit(emitOnly) {
22
+ if (!emitOnly) {
23
+ return exports.ALL_EMIT_BLOCK_KINDS;
24
+ }
25
+ const blocks = new Set();
26
+ for (const block of emitOnly) {
27
+ blocks.add(block);
28
+ const dependencies = exports.BLOCKS_DEPENDENCIES_MAP[block];
29
+ for (const dependency of dependencies) {
30
+ blocks.add(dependency);
31
+ }
32
+ }
33
+ return Array.from(blocks.values());
34
+ }
35
+ //# sourceMappingURL=emit-block.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emit-block.js","sourceRoot":"","sources":["../../src/generator/emit-block.ts"],"names":[],"mappings":";;;AA0BA,0CAiBC;AAnCY,QAAA,oBAAoB,GAAoB;IACnD,OAAO;IACP,QAAQ;IACR,eAAe;IACf,mBAAmB;IACnB,QAAQ;IACR,SAAS;CACV,CAAC;AAEW,QAAA,uBAAuB,GAA2C;IAC7E,KAAK,EAAE,EAAE;IACT,MAAM,EAAE,CAAC,OAAO,CAAC;IACjB,aAAa,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC;IACvD,iBAAiB,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC;IAChD,MAAM,EAAE,CAAC,OAAO,CAAC;IACjB,OAAO,EAAE,CAAC,OAAO,CAAC;CACnB,CAAC;AAEF,SAAgB,eAAe,CAC7B,QAAqC;IAErC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,4BAAoB,CAAC;IAC9B,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,GAAG,EAAiB,CAAC;IACxC,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAClB,MAAM,YAAY,GAAG,+BAAuB,CAAC,KAAK,CAAC,CAAC;QACpD,KAAK,MAAM,UAAU,IAAI,YAAY,EAAE,CAAC;YACtC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;AACrC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Project } from "ts-morph";
2
+ import { DMMF } from "./dmmf/types";
3
+ import { GeneratorOptions } from "./options";
4
+ export default function generateEnumFromDef(project: Project, baseDirPath: string, enumDef: DMMF.Enum, options: GeneratorOptions): void;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = generateEnumFromDef;
4
+ const tslib_1 = require("tslib");
5
+ const path_1 = tslib_1.__importDefault(require("path"));
6
+ const imports_1 = require("./imports");
7
+ const config_1 = require("./config");
8
+ const helpers_1 = require("./helpers");
9
+ function generateEnumFromDef(project, baseDirPath, enumDef, options) {
10
+ const dirPath = path_1.default.resolve(baseDirPath, config_1.enumsFolderName);
11
+ const filePath = path_1.default.resolve(dirPath, `${enumDef.typeName}.ts`);
12
+ const sourceFile = project.createSourceFile(filePath, undefined, {
13
+ overwrite: true,
14
+ });
15
+ (0, imports_1.generateTypeGraphQLImport)(sourceFile);
16
+ sourceFile.addEnum({
17
+ isExported: true,
18
+ name: enumDef.typeName,
19
+ ...(enumDef.docs && {
20
+ docs: [{ description: (0, helpers_1.convertNewLines)(enumDef.docs) }],
21
+ }),
22
+ members: enumDef.valuesMap.map(({ name, value }) => ({
23
+ name,
24
+ value,
25
+ // TODO: add support for string enums (values)
26
+ // TODO: add support for enum members docs
27
+ })),
28
+ });
29
+ // TODO: refactor to AST
30
+ sourceFile.addStatements([
31
+ `registerEnumType(${enumDef.typeName}, {
32
+ name: "${[options.enumTypePrefix, enumDef.typeName]
33
+ .filter(Boolean)
34
+ .join("")}",
35
+ description: ${enumDef.docs ? `"${enumDef.docs}"` : "undefined"},
36
+ });`,
37
+ ]);
38
+ }
39
+ //# sourceMappingURL=enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enum.js","sourceRoot":"","sources":["../../src/generator/enum.ts"],"names":[],"mappings":";;AASA,sCAsCC;;AA9CD,wDAAwB;AAExB,uCAAsD;AACtD,qCAA2C;AAE3C,uCAA4C;AAG5C,SAAwB,mBAAmB,CACzC,OAAgB,EAChB,WAAmB,EACnB,OAAkB,EAClB,OAAyB;IAEzB,MAAM,OAAO,GAAG,cAAI,CAAC,OAAO,CAAC,WAAW,EAAE,wBAAe,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,cAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,QAAQ,KAAK,CAAC,CAAC;IACjE,MAAM,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC,QAAQ,EAAE,SAAS,EAAE;QAC/D,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;IACH,IAAA,mCAAyB,EAAC,UAAU,CAAC,CAAC;IAEtC,UAAU,CAAC,OAAO,CAAC;QACjB,UAAU,EAAE,IAAI;QAChB,IAAI,EAAE,OAAO,CAAC,QAAQ;QACtB,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI;YAClB,IAAI,EAAE,CAAC,EAAE,WAAW,EAAE,IAAA,yBAAe,EAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;SACvD,CAAC;QACF,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,CAC5B,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;YACpB,IAAI;YACJ,KAAK;YACL,8CAA8C;YAC9C,0CAA0C;SAC3C,CAAC,CACH;KACF,CAAC,CAAC;IAEH,wBAAwB;IACxB,UAAU,CAAC,aAAa,CAAC;QACvB,oBAAoB,OAAO,CAAC,QAAQ;eACzB,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,QAAQ,CAAC;aAChD,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,EAAE,CAAC;qBACI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,WAAW;QAC7D;KACL,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { DMMF as PrismaDMMF } from "@prisma/generator-helper";
2
+ import { InternalGeneratorOptions, ExternalGeneratorOptions } from "./options";
3
+ export default function generateCode(dmmf: PrismaDMMF.Document, baseOptions: InternalGeneratorOptions & ExternalGeneratorOptions, log?: (msg: string) => void): Promise<void>;
@@ -0,0 +1,229 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = generateCode;
4
+ const tslib_1 = require("tslib");
5
+ const ts_morph_1 = require("ts-morph");
6
+ const path_1 = tslib_1.__importDefault(require("path"));
7
+ const node_child_process_1 = require("node:child_process");
8
+ const node_util_1 = require("node:util");
9
+ const execa = (0, node_util_1.promisify)(node_child_process_1.exec);
10
+ const helpers_1 = require("./helpers");
11
+ const enum_1 = tslib_1.__importDefault(require("./enum"));
12
+ const model_type_class_1 = tslib_1.__importDefault(require("./model-type-class"));
13
+ const relations_1 = tslib_1.__importDefault(require("./resolvers/relations"));
14
+ const type_class_1 = require("./type-class");
15
+ const full_crud_1 = tslib_1.__importDefault(require("./resolvers/full-crud"));
16
+ const config_1 = require("./config");
17
+ const imports_1 = require("./imports");
18
+ const dmmf_document_1 = require("./dmmf/dmmf-document");
19
+ const args_class_1 = tslib_1.__importDefault(require("./args-class"));
20
+ const separate_action_1 = tslib_1.__importDefault(require("./resolvers/separate-action"));
21
+ const prisma_version_1 = require("../utils/prisma-version");
22
+ const generate_enhance_1 = require("./generate-enhance");
23
+ const generate_scalars_1 = require("./generate-scalars");
24
+ const generate_helpers_1 = require("./generate-helpers");
25
+ const emit_block_1 = require("./emit-block");
26
+ const baseCompilerOptions = {
27
+ target: ts_morph_1.ScriptTarget.ES2021,
28
+ module: ts_morph_1.ModuleKind.CommonJS,
29
+ emitDecoratorMetadata: true,
30
+ experimentalDecorators: true,
31
+ esModuleInterop: true,
32
+ skipLibCheck: true,
33
+ };
34
+ async function generateCode(dmmf, baseOptions, log = helpers_1.noop) {
35
+ (0, prisma_version_1.ensureInstalledCorrectPrismaPackage)();
36
+ const options = {
37
+ ...baseOptions,
38
+ blocksToEmit: (0, emit_block_1.getBlocksToEmit)(baseOptions.emitOnly),
39
+ contextPrismaKey: baseOptions.contextPrismaKey ?? "prisma",
40
+ relativePrismaOutputPath: (0, helpers_1.toUnixPath)(path_1.default.relative(baseOptions.outputDirPath, baseOptions.prismaClientPath)),
41
+ absolutePrismaOutputPath: !baseOptions.customPrismaImportPath &&
42
+ baseOptions.prismaClientPath.includes("node_modules")
43
+ ? "@prisma/client"
44
+ : undefined,
45
+ formatGeneratedCode: baseOptions.formatGeneratedCode ?? "tsc", // default for backward compatibility
46
+ };
47
+ const baseDirPath = options.outputDirPath;
48
+ const emitTranspiledCode = options.emitTranspiledCode ??
49
+ options.outputDirPath.includes("node_modules");
50
+ const project = new ts_morph_1.Project({
51
+ compilerOptions: {
52
+ ...baseCompilerOptions,
53
+ ...(emitTranspiledCode && {
54
+ declaration: true,
55
+ importHelpers: true,
56
+ }),
57
+ },
58
+ });
59
+ log("Transforming dmmfDocument...");
60
+ const dmmfDocument = new dmmf_document_1.DmmfDocument(dmmf, options);
61
+ if (dmmfDocument.shouldGenerateBlock("enums")) {
62
+ log("Generating enums...");
63
+ const datamodelEnumNames = dmmfDocument.datamodel.enums.map(enumDef => enumDef.typeName);
64
+ dmmfDocument.datamodel.enums.forEach(enumDef => (0, enum_1.default)(project, baseDirPath, enumDef, options));
65
+ dmmfDocument.schema.enums
66
+ // skip enums from datamodel
67
+ .filter(enumDef => !datamodelEnumNames.includes(enumDef.typeName))
68
+ .forEach(enumDef => (0, enum_1.default)(project, baseDirPath, enumDef, options));
69
+ const emittedEnumNames = [
70
+ ...new Set([
71
+ ...dmmfDocument.schema.enums.map(it => it.typeName),
72
+ ...dmmfDocument.datamodel.enums.map(it => it.typeName),
73
+ ]),
74
+ ];
75
+ const enumsBarrelExportSourceFile = project.createSourceFile(path_1.default.resolve(baseDirPath, config_1.enumsFolderName, "index.ts"), undefined, { overwrite: true });
76
+ (0, imports_1.generateEnumsBarrelFile)(enumsBarrelExportSourceFile, emittedEnumNames);
77
+ }
78
+ if (dmmfDocument.shouldGenerateBlock("models")) {
79
+ log("Generating models...");
80
+ dmmfDocument.datamodel.models.forEach(model => {
81
+ const modelOutputType = dmmfDocument.schema.outputTypes.find(type => type.name === model.name);
82
+ return (0, model_type_class_1.default)(project, baseDirPath, model, modelOutputType, dmmfDocument);
83
+ });
84
+ const modelsBarrelExportSourceFile = project.createSourceFile(path_1.default.resolve(baseDirPath, config_1.modelsFolderName, "index.ts"), undefined, { overwrite: true });
85
+ (0, imports_1.generateModelsBarrelFile)(modelsBarrelExportSourceFile, dmmfDocument.datamodel.models.map(it => it.typeName));
86
+ }
87
+ const resolversDirPath = path_1.default.resolve(baseDirPath, config_1.resolversFolderName);
88
+ let outputTypesToGenerate = [];
89
+ if (dmmfDocument.shouldGenerateBlock("outputs")) {
90
+ log("Generating output types...");
91
+ const rootTypes = dmmfDocument.schema.outputTypes.filter(type => ["Query", "Mutation"].includes(type.name));
92
+ const modelNames = dmmfDocument.datamodel.models.map(model => model.name);
93
+ outputTypesToGenerate = dmmfDocument.schema.outputTypes.filter(
94
+ // skip generating models and root resolvers
95
+ type => !modelNames.includes(type.name) && !rootTypes.includes(type));
96
+ const outputTypesFieldsArgsToGenerate = outputTypesToGenerate
97
+ .map(it => it.fields)
98
+ .reduce((a, b) => a.concat(b), [])
99
+ .filter(it => it.argsTypeName);
100
+ outputTypesToGenerate.forEach(type => (0, type_class_1.generateOutputTypeClassFromType)(project, resolversDirPath, type, dmmfDocument));
101
+ const outputsBarrelExportSourceFile = project.createSourceFile(path_1.default.resolve(baseDirPath, config_1.resolversFolderName, config_1.outputsFolderName, "index.ts"), undefined, { overwrite: true });
102
+ (0, imports_1.generateOutputsBarrelFile)(outputsBarrelExportSourceFile, outputTypesToGenerate.map(it => it.typeName), outputTypesFieldsArgsToGenerate.length > 0);
103
+ if (outputTypesFieldsArgsToGenerate.length > 0) {
104
+ log("Generating output types args...");
105
+ outputTypesFieldsArgsToGenerate.forEach(async (field) => {
106
+ (0, args_class_1.default)(project, path_1.default.resolve(resolversDirPath, config_1.outputsFolderName), field.args, field.argsTypeName, dmmfDocument, 2);
107
+ });
108
+ const outputsArgsBarrelExportSourceFile = project.createSourceFile(path_1.default.resolve(baseDirPath, config_1.resolversFolderName, config_1.outputsFolderName, config_1.argsFolderName, "index.ts"), undefined, { overwrite: true });
109
+ (0, imports_1.generateArgsBarrelFile)(outputsArgsBarrelExportSourceFile, outputTypesFieldsArgsToGenerate.map(it => it.argsTypeName));
110
+ }
111
+ }
112
+ if (dmmfDocument.shouldGenerateBlock("inputs")) {
113
+ log("Generating input types...");
114
+ dmmfDocument.schema.inputTypes.forEach(type => (0, type_class_1.generateInputTypeClassFromType)(project, resolversDirPath, type, options));
115
+ const inputsBarrelExportSourceFile = project.createSourceFile(path_1.default.resolve(baseDirPath, config_1.resolversFolderName, config_1.inputsFolderName, "index.ts"), undefined, { overwrite: true });
116
+ (0, imports_1.generateInputsBarrelFile)(inputsBarrelExportSourceFile, dmmfDocument.schema.inputTypes.map(it => it.typeName));
117
+ }
118
+ if (dmmfDocument.relationModels.length > 0 &&
119
+ dmmfDocument.shouldGenerateBlock("relationResolvers")) {
120
+ log("Generating relation resolvers...");
121
+ dmmfDocument.relationModels.forEach(relationModel => (0, relations_1.default)(project, baseDirPath, dmmfDocument, relationModel, options));
122
+ const relationResolversBarrelExportSourceFile = project.createSourceFile(path_1.default.resolve(baseDirPath, config_1.resolversFolderName, config_1.relationsResolversFolderName, "resolvers.index.ts"), undefined, { overwrite: true });
123
+ (0, imports_1.generateResolversBarrelFile)(relationResolversBarrelExportSourceFile, dmmfDocument.relationModels.map(relationModel => ({
124
+ resolverName: relationModel.resolverName,
125
+ modelName: relationModel.model.typeName,
126
+ })));
127
+ log("Generating relation resolver args...");
128
+ dmmfDocument.relationModels.forEach(async (relationModelData) => {
129
+ const resolverDirPath = path_1.default.resolve(baseDirPath, config_1.resolversFolderName, config_1.relationsResolversFolderName, relationModelData.model.typeName);
130
+ relationModelData.relationFields
131
+ .filter(field => field.argsTypeName)
132
+ .forEach(async (field) => {
133
+ (0, args_class_1.default)(project, resolverDirPath, field.outputTypeField.args, field.argsTypeName, dmmfDocument);
134
+ });
135
+ const argTypeNames = relationModelData.relationFields
136
+ .filter(it => it.argsTypeName !== undefined)
137
+ .map(it => it.argsTypeName);
138
+ if (argTypeNames.length) {
139
+ const barrelExportSourceFile = project.createSourceFile(path_1.default.resolve(resolverDirPath, config_1.argsFolderName, "index.ts"), undefined, { overwrite: true });
140
+ (0, imports_1.generateArgsBarrelFile)(barrelExportSourceFile, argTypeNames);
141
+ }
142
+ });
143
+ const relationModelsWithArgs = dmmfDocument.relationModels.filter(relationModelData => relationModelData.relationFields.some(it => it.argsTypeName !== undefined));
144
+ if (relationModelsWithArgs.length > 0) {
145
+ const relationResolversArgsIndexSourceFile = project.createSourceFile(path_1.default.resolve(baseDirPath, config_1.resolversFolderName, config_1.relationsResolversFolderName, "args.index.ts"), undefined, { overwrite: true });
146
+ (0, imports_1.generateArgsIndexFile)(relationResolversArgsIndexSourceFile, relationModelsWithArgs.map(relationModelData => relationModelData.model.typeName));
147
+ }
148
+ const relationResolversIndexSourceFile = project.createSourceFile(path_1.default.resolve(baseDirPath, config_1.resolversFolderName, config_1.relationsResolversFolderName, "index.ts"), undefined, { overwrite: true });
149
+ (0, imports_1.generateResolversIndexFile)(relationResolversIndexSourceFile, "relations", relationModelsWithArgs.length > 0);
150
+ }
151
+ if (dmmfDocument.shouldGenerateBlock("crudResolvers")) {
152
+ log("Generating crud resolvers...");
153
+ dmmfDocument.modelMappings.forEach(async (mapping) => {
154
+ const model = dmmfDocument.datamodel.models.find(model => model.name === mapping.modelName);
155
+ (0, full_crud_1.default)(project, baseDirPath, mapping, model, dmmfDocument, options);
156
+ mapping.actions
157
+ .filter(a => !options.emitActions?.includes(a.prismaMethod))
158
+ .forEach(async (action) => {
159
+ const model = dmmfDocument.datamodel.models.find(model => model.name === mapping.modelName);
160
+ (0, separate_action_1.default)(project, baseDirPath, model, action, mapping, dmmfDocument, options);
161
+ });
162
+ });
163
+ const generateMappingData = dmmfDocument.modelMappings.map(mapping => {
164
+ const model = dmmfDocument.datamodel.models.find(model => model.name === mapping.modelName);
165
+ return {
166
+ modelName: model.typeName,
167
+ resolverName: mapping.resolverName,
168
+ actionResolverNames: mapping.actions
169
+ .filter(a => !options.emitActions?.includes(a.prismaMethod))
170
+ .map(it => it.actionResolverName),
171
+ };
172
+ });
173
+ const crudResolversBarrelExportSourceFile = project.createSourceFile(path_1.default.resolve(baseDirPath, config_1.resolversFolderName, config_1.crudResolversFolderName, "resolvers-crud.index.ts"), undefined, { overwrite: true });
174
+ (0, imports_1.generateResolversBarrelFile)(crudResolversBarrelExportSourceFile, generateMappingData);
175
+ const crudResolversActionsBarrelExportSourceFile = project.createSourceFile(path_1.default.resolve(baseDirPath, config_1.resolversFolderName, config_1.crudResolversFolderName, "resolvers-actions.index.ts"), undefined, { overwrite: true });
176
+ (0, imports_1.generateResolversActionsBarrelFile)(crudResolversActionsBarrelExportSourceFile, generateMappingData);
177
+ const crudResolversIndexSourceFile = project.createSourceFile(path_1.default.resolve(baseDirPath, config_1.resolversFolderName, config_1.crudResolversFolderName, "index.ts"), undefined, { overwrite: true });
178
+ (0, imports_1.generateResolversIndexFile)(crudResolversIndexSourceFile, "crud", true);
179
+ log("Generating crud resolvers args...");
180
+ dmmfDocument.modelMappings.forEach(async (mapping) => {
181
+ const actionsWithArgs = mapping.actions
182
+ .filter(a => !options.emitActions?.includes(a.prismaMethod))
183
+ .filter(it => it.argsTypeName !== undefined);
184
+ if (actionsWithArgs.length) {
185
+ const model = dmmfDocument.datamodel.models.find(model => model.name === mapping.modelName);
186
+ const resolverDirPath = path_1.default.resolve(baseDirPath, config_1.resolversFolderName, config_1.crudResolversFolderName, model.typeName);
187
+ actionsWithArgs.forEach(async (action) => {
188
+ (0, args_class_1.default)(project, resolverDirPath, action.method.args, action.argsTypeName, dmmfDocument);
189
+ });
190
+ const barrelExportSourceFile = project.createSourceFile(path_1.default.resolve(resolverDirPath, config_1.argsFolderName, "index.ts"), undefined, { overwrite: true });
191
+ (0, imports_1.generateArgsBarrelFile)(barrelExportSourceFile, actionsWithArgs.map(it => it.argsTypeName));
192
+ }
193
+ });
194
+ const crudResolversArgsIndexSourceFile = project.createSourceFile(path_1.default.resolve(baseDirPath, config_1.resolversFolderName, config_1.crudResolversFolderName, "args.index.ts"), undefined, { overwrite: true });
195
+ (0, imports_1.generateArgsIndexFile)(crudResolversArgsIndexSourceFile, dmmfDocument.modelMappings
196
+ .filter(mapping => mapping.actions
197
+ .filter(a => !options.emitActions?.includes(a.prismaMethod))
198
+ .some(it => it.argsTypeName !== undefined))
199
+ .map(mapping => mapping.modelTypeName));
200
+ }
201
+ log("Generate enhance map");
202
+ const enhanceSourceFile = project.createSourceFile(baseDirPath + "/enhance.ts", undefined, { overwrite: true });
203
+ (0, generate_enhance_1.generateEnhanceMap)(enhanceSourceFile, dmmfDocument, dmmfDocument.modelMappings, dmmfDocument.relationModels, dmmfDocument.datamodel.models, dmmfDocument.schema.inputTypes, outputTypesToGenerate, dmmfDocument.options);
204
+ log("Generate custom scalars");
205
+ const scalarsSourceFile = project.createSourceFile(baseDirPath + "/scalars.ts", undefined, { overwrite: true });
206
+ (0, generate_scalars_1.generateCustomScalars)(scalarsSourceFile, dmmfDocument.options);
207
+ log("Generate custom helpers");
208
+ const helpersSourceFile = project.createSourceFile(baseDirPath + "/helpers.ts", undefined, { overwrite: true });
209
+ (0, generate_helpers_1.generateHelpersFile)(helpersSourceFile, dmmfDocument.options);
210
+ log("Generating index file");
211
+ const indexSourceFile = project.createSourceFile(baseDirPath + "/index.ts", undefined, { overwrite: true });
212
+ (0, imports_1.generateIndexFile)(indexSourceFile, dmmfDocument.relationModels.length > 0, dmmfDocument.options.blocksToEmit);
213
+ log("Emitting generated code files");
214
+ if (emitTranspiledCode) {
215
+ await project.emit();
216
+ }
217
+ else {
218
+ if (options.formatGeneratedCode === "tsc") {
219
+ for (const file of project.getSourceFiles()) {
220
+ file.formatText({ indentSize: 2 });
221
+ }
222
+ }
223
+ await project.save();
224
+ if (options.formatGeneratedCode === "prettier") {
225
+ await execa(`npx prettier --write --ignore-path .prettierignore ${baseDirPath}`);
226
+ }
227
+ }
228
+ }
229
+ //# sourceMappingURL=generate-code.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-code.js","sourceRoot":"","sources":["../../src/generator/generate-code.ts"],"names":[],"mappings":";;AA+DA,+BA4eC;;AA1iBD,uCAA8E;AAC9E,wDAAwB;AACxB,2DAA0C;AAC1C,yCAAsC;AACtC,MAAM,KAAK,GAAG,IAAA,qBAAS,EAAC,yBAAI,CAAC,CAAC;AAE9B,uCAA6C;AAC7C,0DAAyC;AACzC,kFAAkE;AAClE,8EAA8E;AAC9E,6CAGsB;AACtB,8EAAyE;AACzE,qCASkB;AAClB,uCAWmB;AAMnB,wDAAoD;AACpD,sEAAyD;AACzD,0FAAsE;AACtE,4DAA8E;AAE9E,yDAAwD;AACxD,yDAA2D;AAC3D,yDAAyD;AAEzD,6CAA+C;AAE/C,MAAM,mBAAmB,GAAoB;IAC3C,MAAM,EAAE,uBAAY,CAAC,MAAM;IAC3B,MAAM,EAAE,qBAAU,CAAC,QAAQ;IAC3B,qBAAqB,EAAE,IAAI;IAC3B,sBAAsB,EAAE,IAAI;IAC5B,eAAe,EAAE,IAAI;IACrB,YAAY,EAAE,IAAI;CACnB,CAAC;AAEa,KAAK,UAAU,YAAY,CACxC,IAAyB,EACzB,WAAgE,EAChE,MAA6B,cAAI;IAEjC,IAAA,oDAAmC,GAAE,CAAC;IAEtC,MAAM,OAAO,GAAqB;QAChC,GAAG,WAAW;QACd,YAAY,EAAE,IAAA,4BAAe,EAAC,WAAW,CAAC,QAAQ,CAAC;QACnD,gBAAgB,EAAE,WAAW,CAAC,gBAAgB,IAAI,QAAQ;QAC1D,wBAAwB,EAAE,IAAA,oBAAU,EAClC,cAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,aAAa,EAAE,WAAW,CAAC,gBAAgB,CAAC,CACvE;QACD,wBAAwB,EACtB,CAAC,WAAW,CAAC,sBAAsB;YACnC,WAAW,CAAC,gBAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC;YACnD,CAAC,CAAC,gBAAgB;YAClB,CAAC,CAAC,SAAS;QACf,mBAAmB,EAAE,WAAW,CAAC,mBAAmB,IAAI,KAAK,EAAE,qCAAqC;KACrG,CAAC;IAEF,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;IAC1C,MAAM,kBAAkB,GACtB,OAAO,CAAC,kBAAkB;QAC1B,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,IAAI,kBAAO,CAAC;QAC1B,eAAe,EAAE;YACf,GAAG,mBAAmB;YACtB,GAAG,CAAC,kBAAkB,IAAI;gBACxB,WAAW,EAAE,IAAI;gBACjB,aAAa,EAAE,IAAI;aACpB,CAAC;SACH;KACF,CAAC,CAAC;IAEH,GAAG,CAAC,8BAA8B,CAAC,CAAC;IACpC,MAAM,YAAY,GAAG,IAAI,4BAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAErD,IAAI,YAAY,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9C,GAAG,CAAC,qBAAqB,CAAC,CAAC;QAC3B,MAAM,kBAAkB,GAAG,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CACzD,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAC5B,CAAC;QACF,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAC7C,IAAA,cAAmB,EAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAC5D,CAAC;QACF,YAAY,CAAC,MAAM,CAAC,KAAK;YACvB,4BAA4B;aAC3B,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;aACjE,OAAO,CAAC,OAAO,CAAC,EAAE,CACjB,IAAA,cAAmB,EAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAC5D,CAAC;QACJ,MAAM,gBAAgB,GAAG;YACvB,GAAG,IAAI,GAAG,CAAC;gBACT,GAAG,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC;gBACnD,GAAG,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC;aACvD,CAAC;SACH,CAAC;QACF,MAAM,2BAA2B,GAAG,OAAO,CAAC,gBAAgB,CAC1D,cAAI,CAAC,OAAO,CAAC,WAAW,EAAE,wBAAe,EAAE,UAAU,CAAC,EACtD,SAAS,EACT,EAAE,SAAS,EAAE,IAAI,EAAE,CACpB,CAAC;QACF,IAAA,iCAAuB,EAAC,2BAA2B,EAAE,gBAAgB,CAAC,CAAC;IACzE,CAAC;IAED,IAAI,YAAY,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/C,GAAG,CAAC,sBAAsB,CAAC,CAAC;QAC5B,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC5C,MAAM,eAAe,GAAG,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAC1D,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAChC,CAAC;YACH,OAAO,IAAA,0BAAgC,EACrC,OAAO,EACP,WAAW,EACX,KAAK,EACL,eAAe,EACf,YAAY,CACb,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,MAAM,4BAA4B,GAAG,OAAO,CAAC,gBAAgB,CAC3D,cAAI,CAAC,OAAO,CAAC,WAAW,EAAE,yBAAgB,EAAE,UAAU,CAAC,EACvD,SAAS,EACT,EAAE,SAAS,EAAE,IAAI,EAAE,CACpB,CAAC;QACF,IAAA,kCAAwB,EACtB,4BAA4B,EAC5B,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CACrD,CAAC;IACJ,CAAC;IAED,MAAM,gBAAgB,GAAG,cAAI,CAAC,OAAO,CAAC,WAAW,EAAE,4BAAmB,CAAC,CAAC;IACxE,IAAI,qBAAqB,GAAsB,EAAE,CAAC;IAClD,IAAI,YAAY,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC;QAChD,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAClC,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAC9D,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAC1C,CAAC;QACF,MAAM,UAAU,GAAG,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1E,qBAAqB,GAAG,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM;QAC5D,4CAA4C;QAC5C,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CACrE,CAAC;QACF,MAAM,+BAA+B,GAAG,qBAAqB;aAC1D,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC;aACpB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;aACjC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;QACjC,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CACnC,IAAA,4CAA+B,EAC7B,OAAO,EACP,gBAAgB,EAChB,IAAI,EACJ,YAAY,CACb,CACF,CAAC;QACF,MAAM,6BAA6B,GAAG,OAAO,CAAC,gBAAgB,CAC5D,cAAI,CAAC,OAAO,CACV,WAAW,EACX,4BAAmB,EACnB,0BAAiB,EACjB,UAAU,CACX,EACD,SAAS,EACT,EAAE,SAAS,EAAE,IAAI,EAAE,CACpB,CAAC;QACF,IAAA,mCAAyB,EACvB,6BAA6B,EAC7B,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,EAC5C,+BAA+B,CAAC,MAAM,GAAG,CAAC,CAC3C,CAAC;QAEF,IAAI,+BAA+B,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/C,GAAG,CAAC,iCAAiC,CAAC,CAAC;YACvC,+BAA+B,CAAC,OAAO,CAAC,KAAK,EAAC,KAAK,EAAC,EAAE;gBACpD,IAAA,oBAA6B,EAC3B,OAAO,EACP,cAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,0BAAiB,CAAC,EACjD,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,YAAa,EACnB,YAAY,EACZ,CAAC,CACF,CAAC;YACJ,CAAC,CAAC,CAAC;YACH,MAAM,iCAAiC,GAAG,OAAO,CAAC,gBAAgB,CAChE,cAAI,CAAC,OAAO,CACV,WAAW,EACX,4BAAmB,EACnB,0BAAiB,EACjB,uBAAc,EACd,UAAU,CACX,EACD,SAAS,EACT,EAAE,SAAS,EAAE,IAAI,EAAE,CACpB,CAAC;YACF,IAAA,gCAAsB,EACpB,iCAAiC,EACjC,+BAA+B,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,YAAa,CAAC,CAC5D,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,YAAY,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/C,GAAG,CAAC,2BAA2B,CAAC,CAAC;QACjC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAC5C,IAAA,2CAA8B,EAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,OAAO,CAAC,CACzE,CAAC;QACF,MAAM,4BAA4B,GAAG,OAAO,CAAC,gBAAgB,CAC3D,cAAI,CAAC,OAAO,CACV,WAAW,EACX,4BAAmB,EACnB,yBAAgB,EAChB,UAAU,CACX,EACD,SAAS,EACT,EAAE,SAAS,EAAE,IAAI,EAAE,CACpB,CAAC;QACF,IAAA,kCAAwB,EACtB,4BAA4B,EAC5B,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CACtD,CAAC;IACJ,CAAC;IAED,IACE,YAAY,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;QACtC,YAAY,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,EACrD,CAAC;QACD,GAAG,CAAC,kCAAkC,CAAC,CAAC;QACxC,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAClD,IAAA,mBAAyC,EACvC,OAAO,EACP,WAAW,EACX,YAAY,EACZ,aAAa,EACb,OAAO,CACR,CACF,CAAC;QACF,MAAM,uCAAuC,GAAG,OAAO,CAAC,gBAAgB,CACtE,cAAI,CAAC,OAAO,CACV,WAAW,EACX,4BAAmB,EACnB,qCAA4B,EAC5B,oBAAoB,CACrB,EACD,SAAS,EACT,EAAE,SAAS,EAAE,IAAI,EAAE,CACpB,CAAC;QACF,IAAA,qCAA2B,EACzB,uCAAuC,EACvC,YAAY,CAAC,cAAc,CAAC,GAAG,CAAsB,aAAa,CAAC,EAAE,CAAC,CAAC;YACrE,YAAY,EAAE,aAAa,CAAC,YAAY;YACxC,SAAS,EAAE,aAAa,CAAC,KAAK,CAAC,QAAQ;SACxC,CAAC,CAAC,CACJ,CAAC;QAEF,GAAG,CAAC,sCAAsC,CAAC,CAAC;QAC5C,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,EAAC,iBAAiB,EAAC,EAAE;YAC5D,MAAM,eAAe,GAAG,cAAI,CAAC,OAAO,CAClC,WAAW,EACX,4BAAmB,EACnB,qCAA4B,EAC5B,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CACjC,CAAC;YACF,iBAAiB,CAAC,cAAc;iBAC7B,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC;iBACnC,OAAO,CAAC,KAAK,EAAC,KAAK,EAAC,EAAE;gBACrB,IAAA,oBAA6B,EAC3B,OAAO,EACP,eAAe,EACf,KAAK,CAAC,eAAe,CAAC,IAAI,EAC1B,KAAK,CAAC,YAAa,EACnB,YAAY,CACb,CAAC;YACJ,CAAC,CAAC,CAAC;YACL,MAAM,YAAY,GAAG,iBAAiB,CAAC,cAAc;iBAClD,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,KAAK,SAAS,CAAC;iBAC3C,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,YAAa,CAAC,CAAC;YAE/B,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;gBACxB,MAAM,sBAAsB,GAAG,OAAO,CAAC,gBAAgB,CACrD,cAAI,CAAC,OAAO,CAAC,eAAe,EAAE,uBAAc,EAAE,UAAU,CAAC,EACzD,SAAS,EACT,EAAE,SAAS,EAAE,IAAI,EAAE,CACpB,CAAC;gBACF,IAAA,gCAAsB,EAAC,sBAAsB,EAAE,YAAY,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,sBAAsB,GAAG,YAAY,CAAC,cAAc,CAAC,MAAM,CAC/D,iBAAiB,CAAC,EAAE,CAClB,iBAAiB,CAAC,cAAc,CAAC,IAAI,CACnC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,KAAK,SAAS,CACpC,CACJ,CAAC;QACF,IAAI,sBAAsB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtC,MAAM,oCAAoC,GAAG,OAAO,CAAC,gBAAgB,CACnE,cAAI,CAAC,OAAO,CACV,WAAW,EACX,4BAAmB,EACnB,qCAA4B,EAC5B,eAAe,CAChB,EACD,SAAS,EACT,EAAE,SAAS,EAAE,IAAI,EAAE,CACpB,CAAC;YACF,IAAA,+BAAqB,EACnB,oCAAoC,EACpC,sBAAsB,CAAC,GAAG,CACxB,iBAAiB,CAAC,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CACtD,CACF,CAAC;QACJ,CAAC;QACD,MAAM,gCAAgC,GAAG,OAAO,CAAC,gBAAgB,CAC/D,cAAI,CAAC,OAAO,CACV,WAAW,EACX,4BAAmB,EACnB,qCAA4B,EAC5B,UAAU,CACX,EACD,SAAS,EACT,EAAE,SAAS,EAAE,IAAI,EAAE,CACpB,CAAC;QACF,IAAA,oCAA0B,EACxB,gCAAgC,EAChC,WAAW,EACX,sBAAsB,CAAC,MAAM,GAAG,CAAC,CAClC,CAAC;IACJ,CAAC;IAED,IAAI,YAAY,CAAC,mBAAmB,CAAC,eAAe,CAAC,EAAE,CAAC;QACtD,GAAG,CAAC,8BAA8B,CAAC,CAAC;QACpC,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,EAAC,OAAO,EAAC,EAAE;YACjD,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAC9C,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,SAAS,CACzC,CAAC;YACH,IAAA,mBAAoC,EAClC,OAAO,EACP,WAAW,EACX,OAAO,EACP,KAAK,EACL,YAAY,EACZ,OAAO,CACR,CAAC;YACF,OAAO,CAAC,OAAO;iBACZ,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;iBAC3D,OAAO,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;gBACtB,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAC9C,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,SAAS,CACzC,CAAC;gBACH,IAAA,yBAA2B,EACzB,OAAO,EACP,WAAW,EACX,KAAK,EACL,MAAM,EACN,OAAO,EACP,YAAY,EACZ,OAAO,CACR,CAAC;YACJ,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QACH,MAAM,mBAAmB,GACvB,YAAY,CAAC,aAAa,CAAC,GAAG,CAAsB,OAAO,CAAC,EAAE;YAC5D,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAC9C,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,SAAS,CACzC,CAAC;YACH,OAAO;gBACL,SAAS,EAAE,KAAK,CAAC,QAAQ;gBACzB,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,mBAAmB,EAAE,OAAO,CAAC,OAAO;qBACjC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;qBAC3D,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC;aACpC,CAAC;QACJ,CAAC,CAAC,CAAC;QACL,MAAM,mCAAmC,GAAG,OAAO,CAAC,gBAAgB,CAClE,cAAI,CAAC,OAAO,CACV,WAAW,EACX,4BAAmB,EACnB,gCAAuB,EACvB,yBAAyB,CAC1B,EACD,SAAS,EACT,EAAE,SAAS,EAAE,IAAI,EAAE,CACpB,CAAC;QACF,IAAA,qCAA2B,EACzB,mCAAmC,EACnC,mBAAmB,CACpB,CAAC;QACF,MAAM,0CAA0C,GAAG,OAAO,CAAC,gBAAgB,CACzE,cAAI,CAAC,OAAO,CACV,WAAW,EACX,4BAAmB,EACnB,gCAAuB,EACvB,4BAA4B,CAC7B,EACD,SAAS,EACT,EAAE,SAAS,EAAE,IAAI,EAAE,CACpB,CAAC;QACF,IAAA,4CAAkC,EAChC,0CAA0C,EAC1C,mBAAmB,CACpB,CAAC;QACF,MAAM,4BAA4B,GAAG,OAAO,CAAC,gBAAgB,CAC3D,cAAI,CAAC,OAAO,CACV,WAAW,EACX,4BAAmB,EACnB,gCAAuB,EACvB,UAAU,CACX,EACD,SAAS,EACT,EAAE,SAAS,EAAE,IAAI,EAAE,CACpB,CAAC;QACF,IAAA,oCAA0B,EAAC,4BAA4B,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAEvE,GAAG,CAAC,mCAAmC,CAAC,CAAC;QACzC,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,EAAC,OAAO,EAAC,EAAE;YACjD,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO;iBACpC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;iBAC3D,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC;YAE/C,IAAI,eAAe,CAAC,MAAM,EAAE,CAAC;gBAC3B,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAC9C,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,SAAS,CACzC,CAAC;gBACH,MAAM,eAAe,GAAG,cAAI,CAAC,OAAO,CAClC,WAAW,EACX,4BAAmB,EACnB,gCAAuB,EACvB,KAAK,CAAC,QAAQ,CACf,CAAC;gBACF,eAAe,CAAC,OAAO,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;oBACrC,IAAA,oBAA6B,EAC3B,OAAO,EACP,eAAe,EACf,MAAM,CAAC,MAAM,CAAC,IAAI,EAClB,MAAM,CAAC,YAAa,EACpB,YAAY,CACb,CAAC;gBACJ,CAAC,CAAC,CAAC;gBACH,MAAM,sBAAsB,GAAG,OAAO,CAAC,gBAAgB,CACrD,cAAI,CAAC,OAAO,CAAC,eAAe,EAAE,uBAAc,EAAE,UAAU,CAAC,EACzD,SAAS,EACT,EAAE,SAAS,EAAE,IAAI,EAAE,CACpB,CAAC;gBACF,IAAA,gCAAsB,EACpB,sBAAsB,EACtB,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,YAAa,CAAC,CAC5C,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;QACH,MAAM,gCAAgC,GAAG,OAAO,CAAC,gBAAgB,CAC/D,cAAI,CAAC,OAAO,CACV,WAAW,EACX,4BAAmB,EACnB,gCAAuB,EACvB,eAAe,CAChB,EACD,SAAS,EACT,EAAE,SAAS,EAAE,IAAI,EAAE,CACpB,CAAC;QACF,IAAA,+BAAqB,EACnB,gCAAgC,EAChC,YAAY,CAAC,aAAa;aACvB,MAAM,CAAC,OAAO,CAAC,EAAE,CAChB,OAAO,CAAC,OAAO;aACZ,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;aAC3D,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,KAAK,SAAS,CAAC,CAC7C;aACA,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,CACzC,CAAC;IACJ,CAAC;IAED,GAAG,CAAC,sBAAsB,CAAC,CAAC;IAC5B,MAAM,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAChD,WAAW,GAAG,aAAa,EAC3B,SAAS,EACT,EAAE,SAAS,EAAE,IAAI,EAAE,CACpB,CAAC;IACF,IAAA,qCAAkB,EAChB,iBAAiB,EACjB,YAAY,EACZ,YAAY,CAAC,aAAa,EAC1B,YAAY,CAAC,cAAc,EAC3B,YAAY,CAAC,SAAS,CAAC,MAAM,EAC7B,YAAY,CAAC,MAAM,CAAC,UAAU,EAC9B,qBAAqB,EACrB,YAAY,CAAC,OAAO,CACrB,CAAC;IAEF,GAAG,CAAC,yBAAyB,CAAC,CAAC;IAC/B,MAAM,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAChD,WAAW,GAAG,aAAa,EAC3B,SAAS,EACT,EAAE,SAAS,EAAE,IAAI,EAAE,CACpB,CAAC;IACF,IAAA,wCAAqB,EAAC,iBAAiB,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IAE/D,GAAG,CAAC,yBAAyB,CAAC,CAAC;IAC/B,MAAM,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAChD,WAAW,GAAG,aAAa,EAC3B,SAAS,EACT,EAAE,SAAS,EAAE,IAAI,EAAE,CACpB,CAAC;IACF,IAAA,sCAAmB,EAAC,iBAAiB,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IAE7D,GAAG,CAAC,uBAAuB,CAAC,CAAC;IAC7B,MAAM,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAC9C,WAAW,GAAG,WAAW,EACzB,SAAS,EACT,EAAE,SAAS,EAAE,IAAI,EAAE,CACpB,CAAC;IACF,IAAA,2BAAiB,EACf,eAAe,EACf,YAAY,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EACtC,YAAY,CAAC,OAAO,CAAC,YAAY,CAClC,CAAC;IAEF,GAAG,CAAC,+BAA+B,CAAC,CAAC;IACrC,IAAI,kBAAkB,EAAE,CAAC;QACvB,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;SAAM,CAAC;QACN,IAAI,OAAO,CAAC,mBAAmB,KAAK,KAAK,EAAE,CAAC;YAC1C,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;gBAC5C,IAAI,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QACD,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,IAAI,OAAO,CAAC,mBAAmB,KAAK,UAAU,EAAE,CAAC;YAC/C,MAAM,KAAK,CACT,sDAAsD,WAAW,EAAE,CACpE,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { SourceFile } from "ts-morph";
2
+ import { DmmfDocument } from "./dmmf/dmmf-document";
3
+ import { DMMF } from "./dmmf/types";
4
+ import { GeneratorOptions } from "./options";
5
+ export declare function generateEnhanceMap(sourceFile: SourceFile, dmmfDocument: DmmfDocument, modelMappings: readonly DMMF.ModelMapping[], relationModels: readonly DMMF.RelationModel[], models: readonly DMMF.Model[], inputs: readonly DMMF.InputType[], outputs: readonly DMMF.OutputType[], generatorOptions: GeneratorOptions): void;