zenstack 0.6.0-pre.9 → 1.0.0-alpha.101

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 (161) hide show
  1. package/README.md +111 -10
  2. package/cli/cli-error.d.ts +5 -0
  3. package/cli/cli-error.js +10 -0
  4. package/cli/cli-error.js.map +1 -0
  5. package/cli/cli-util.d.ts +21 -0
  6. package/cli/cli-util.js +239 -0
  7. package/cli/cli-util.js.map +1 -0
  8. package/cli/config.d.ts +19 -0
  9. package/cli/config.js +41 -0
  10. package/cli/config.js.map +1 -0
  11. package/cli/index.d.ts +16 -0
  12. package/cli/index.js +143 -6524
  13. package/cli/index.js.map +1 -0
  14. package/cli/plugin-runner.d.ts +14 -0
  15. package/cli/plugin-runner.js +146 -0
  16. package/cli/plugin-runner.js.map +1 -0
  17. package/constants.d.ts +1 -0
  18. package/constants.js +6 -0
  19. package/constants.js.map +1 -0
  20. package/language-server/constants.d.ts +26 -0
  21. package/language-server/constants.js +40 -0
  22. package/language-server/constants.js.map +1 -0
  23. package/language-server/main.d.ts +1 -0
  24. package/language-server/main.js +13 -6436
  25. package/language-server/main.js.map +1 -0
  26. package/language-server/types.d.ts +10 -0
  27. package/language-server/types.js +3 -0
  28. package/language-server/types.js.map +1 -0
  29. package/language-server/utils.d.ts +18 -0
  30. package/language-server/utils.js +58 -0
  31. package/language-server/utils.js.map +1 -0
  32. package/language-server/validator/attribute-validator.d.ts +9 -0
  33. package/language-server/validator/attribute-validator.js +11 -0
  34. package/language-server/validator/attribute-validator.js.map +1 -0
  35. package/language-server/validator/datamodel-validator.d.ts +15 -0
  36. package/language-server/validator/datamodel-validator.js +280 -0
  37. package/language-server/validator/datamodel-validator.js.map +1 -0
  38. package/language-server/validator/datasource-validator.d.ts +12 -0
  39. package/language-server/validator/datasource-validator.js +66 -0
  40. package/language-server/validator/datasource-validator.js.map +1 -0
  41. package/language-server/validator/enum-validator.d.ts +11 -0
  42. package/language-server/validator/enum-validator.js +28 -0
  43. package/language-server/validator/enum-validator.js.map +1 -0
  44. package/language-server/validator/expression-validator.d.ts +11 -0
  45. package/language-server/validator/expression-validator.js +57 -0
  46. package/language-server/validator/expression-validator.js.map +1 -0
  47. package/language-server/validator/function-invocation-validator.d.ts +11 -0
  48. package/language-server/validator/function-invocation-validator.js +110 -0
  49. package/language-server/validator/function-invocation-validator.js.map +1 -0
  50. package/language-server/validator/schema-validator.d.ts +10 -0
  51. package/language-server/validator/schema-validator.js +29 -0
  52. package/language-server/validator/schema-validator.js.map +1 -0
  53. package/language-server/validator/utils.d.ts +25 -0
  54. package/language-server/validator/utils.js +261 -0
  55. package/language-server/validator/utils.js.map +1 -0
  56. package/language-server/validator/zmodel-validator.d.ts +22 -0
  57. package/language-server/validator/zmodel-validator.js +74 -0
  58. package/language-server/validator/zmodel-validator.js.map +1 -0
  59. package/language-server/zmodel-code-action.d.ts +14 -0
  60. package/language-server/zmodel-code-action.js +109 -0
  61. package/language-server/zmodel-code-action.js.map +1 -0
  62. package/language-server/zmodel-formatter.d.ts +9 -0
  63. package/language-server/zmodel-formatter.js +76 -0
  64. package/language-server/zmodel-formatter.js.map +1 -0
  65. package/language-server/zmodel-linker.d.ts +30 -0
  66. package/language-server/zmodel-linker.js +375 -0
  67. package/language-server/zmodel-linker.js.map +1 -0
  68. package/language-server/zmodel-module.d.ts +41 -0
  69. package/language-server/zmodel-module.js +80 -0
  70. package/language-server/zmodel-module.js.map +1 -0
  71. package/language-server/zmodel-scope.d.ts +10 -0
  72. package/language-server/zmodel-scope.js +44 -0
  73. package/language-server/zmodel-scope.js.map +1 -0
  74. package/language-server/zmodel-workspace-manager.d.ts +12 -0
  75. package/language-server/zmodel-workspace-manager.js +138 -0
  76. package/language-server/zmodel-workspace-manager.js.map +1 -0
  77. package/package.json +31 -23
  78. package/plugins/access-policy/expression-writer.d.ts +41 -0
  79. package/plugins/access-policy/expression-writer.js +475 -0
  80. package/plugins/access-policy/expression-writer.js.map +1 -0
  81. package/plugins/access-policy/index.d.ts +4 -0
  82. package/plugins/access-policy/index.js +24 -0
  83. package/plugins/access-policy/index.js.map +1 -0
  84. package/plugins/access-policy/policy-guard-generator.d.ts +15 -0
  85. package/plugins/access-policy/policy-guard-generator.js +350 -0
  86. package/plugins/access-policy/policy-guard-generator.js.map +1 -0
  87. package/plugins/access-policy/typescript-expression-transformer.d.ts +28 -0
  88. package/plugins/access-policy/typescript-expression-transformer.js +121 -0
  89. package/plugins/access-policy/typescript-expression-transformer.js.map +1 -0
  90. package/plugins/access-policy/utils.d.ts +5 -0
  91. package/plugins/access-policy/utils.js +14 -0
  92. package/plugins/access-policy/utils.js.map +1 -0
  93. package/plugins/access-policy/zod-schema-generator.d.ts +12 -0
  94. package/plugins/access-policy/zod-schema-generator.js +157 -0
  95. package/plugins/access-policy/zod-schema-generator.js.map +1 -0
  96. package/plugins/model-meta/index.d.ts +4 -0
  97. package/plugins/model-meta/index.js +172 -0
  98. package/plugins/model-meta/index.js.map +1 -0
  99. package/plugins/plugin-utils.d.ts +15 -0
  100. package/plugins/plugin-utils.js +53 -0
  101. package/plugins/plugin-utils.js.map +1 -0
  102. package/plugins/prisma/indent-string.d.ts +4 -0
  103. package/plugins/prisma/indent-string.js +12 -0
  104. package/plugins/prisma/indent-string.js.map +1 -0
  105. package/plugins/prisma/index.d.ts +5 -0
  106. package/plugins/prisma/index.js +24 -3740
  107. package/plugins/prisma/index.js.map +1 -0
  108. package/plugins/prisma/prisma-builder.d.ts +152 -0
  109. package/plugins/prisma/prisma-builder.js +363 -0
  110. package/plugins/prisma/prisma-builder.js.map +1 -0
  111. package/plugins/prisma/schema-generator.d.ts +25 -0
  112. package/plugins/prisma/schema-generator.js +306 -0
  113. package/plugins/prisma/schema-generator.js.map +1 -0
  114. package/plugins/prisma/zmodel-code-generator.d.ts +30 -0
  115. package/plugins/prisma/zmodel-code-generator.js +122 -0
  116. package/plugins/prisma/zmodel-code-generator.js.map +1 -0
  117. package/plugins/zod/generator.d.ts +4 -0
  118. package/plugins/zod/generator.js +102 -0
  119. package/plugins/zod/generator.js.map +1 -0
  120. package/plugins/zod/index.d.ts +5 -0
  121. package/plugins/zod/index.js +21 -4808
  122. package/plugins/zod/index.js.map +1 -0
  123. package/plugins/zod/transformer.d.ts +67 -0
  124. package/plugins/zod/transformer.js +452 -0
  125. package/plugins/zod/transformer.js.map +1 -0
  126. package/plugins/zod/types.d.ts +22 -0
  127. package/plugins/zod/types.js +3 -0
  128. package/plugins/zod/types.js.map +1 -0
  129. package/plugins/zod/utils/removeDir.d.ts +1 -0
  130. package/plugins/zod/utils/removeDir.js +30 -0
  131. package/plugins/zod/utils/removeDir.js.map +1 -0
  132. package/res/prism-zmodel.js +2 -4
  133. package/res/starter.zmodel +51 -0
  134. package/res/stdlib.zmodel +194 -8
  135. package/telemetry.d.ts +20 -0
  136. package/telemetry.js +127 -0
  137. package/telemetry.js.map +1 -0
  138. package/types.d.ts +12 -0
  139. package/types.js +3 -0
  140. package/types.js.map +1 -0
  141. package/utils/ast-utils.d.ts +5 -0
  142. package/utils/ast-utils.js +49 -0
  143. package/utils/ast-utils.js.map +1 -0
  144. package/utils/exec-utils.d.ts +6 -0
  145. package/utils/exec-utils.js +13 -0
  146. package/utils/exec-utils.js.map +1 -0
  147. package/utils/pkg-utils.d.ts +3 -0
  148. package/utils/pkg-utils.js +64 -0
  149. package/utils/pkg-utils.js.map +1 -0
  150. package/utils/version-utils.d.ts +1 -0
  151. package/utils/version-utils.js +14 -0
  152. package/utils/version-utils.js.map +1 -0
  153. package/asset/logo-256-bg.png +0 -0
  154. package/asset/logo-dark-256.png +0 -0
  155. package/asset/logo-light-256.png +0 -0
  156. package/extension.js +0 -39
  157. package/plugins/policy-guard/index.js +0 -4289
  158. package/plugins/react-hooks/index.js +0 -4318
  159. package/plugins/trpc/index.js +0 -5386
  160. package/res/package.template.json +0 -9
  161. package/res/tsconfig.template.json +0 -17
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/zod/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAGA,2CAAuC;AAE1B,QAAA,IAAI,GAAG,KAAK,CAAC;AAE1B,SAA8B,GAAG,CAAC,KAAY,EAAE,OAAsB,EAAE,IAAmB;;QACvF,OAAO,IAAA,oBAAQ,EAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;CAAA;AAFD,sBAEC"}
@@ -0,0 +1,67 @@
1
+ import type { DMMF as PrismaDMMF } from '@prisma/generator-helper';
2
+ import { AggregateOperationSupport, TransformerParams } from './types';
3
+ export default class Transformer {
4
+ name: string;
5
+ fields: PrismaDMMF.SchemaArg[];
6
+ schemaImports: Set<string>;
7
+ models: PrismaDMMF.Model[];
8
+ modelOperations: PrismaDMMF.ModelMapping[];
9
+ aggregateOperationSupport: AggregateOperationSupport;
10
+ enumTypes: PrismaDMMF.SchemaEnum[];
11
+ static enumNames: string[];
12
+ static rawOpsMap: {
13
+ [name: string]: string;
14
+ };
15
+ static provider: string;
16
+ private static outputPath;
17
+ private hasJson;
18
+ private static prismaClientOutputPath;
19
+ private static isCustomPrismaClientOutputPath;
20
+ private project;
21
+ constructor(params: TransformerParams);
22
+ static setOutputPath(outPath: string): void;
23
+ static getOutputPath(): string;
24
+ static setPrismaClientOutputPath(prismaClientCustomPath: string): void;
25
+ generateEnumSchemas(): Promise<void>;
26
+ generateImportZodStatement(): string;
27
+ generateExportSchemaStatement(name: string, schema: string): string;
28
+ generateObjectSchema(): Promise<void>;
29
+ generateObjectSchemaFields(): string[];
30
+ generateObjectSchemaField(field: PrismaDMMF.SchemaArg): [string, PrismaDMMF.SchemaArg, boolean][];
31
+ wrapWithZodValidators(mainValidator: string, field: PrismaDMMF.SchemaArg, inputType: PrismaDMMF.SchemaArgInputType): string;
32
+ addSchemaImport(name: string): void;
33
+ generatePrismaStringLine(field: PrismaDMMF.SchemaArg, inputType: PrismaDMMF.SchemaArgInputType, inputsLength: number): string;
34
+ generateFieldValidators(zodStringWithMainType: string, field: PrismaDMMF.SchemaArg): string;
35
+ prepareObjectSchema(zodObjectSchemaFields: string[]): string;
36
+ generateExportObjectSchemaStatement(schema: string): string;
37
+ addFinalWrappers({ zodStringFields }: {
38
+ zodStringFields: string[];
39
+ }): string;
40
+ generateImportPrismaStatement(): string;
41
+ generateJsonSchemaImplementation(): string;
42
+ generateObjectSchemaImportStatements(): string;
43
+ generateSchemaImports(): string;
44
+ checkIsModelQueryType(type: string): {
45
+ isModelQueryType: boolean;
46
+ modelName: string;
47
+ queryName: string;
48
+ } | {
49
+ isModelQueryType: boolean;
50
+ modelName?: undefined;
51
+ queryName?: undefined;
52
+ };
53
+ resolveModelQuerySchemaName(modelName: string, queryName: string): string;
54
+ wrapWithZodUnion(zodStringFields: string[]): string;
55
+ wrapWithZodObject(zodStringFields: string | string[]): string;
56
+ resolveObjectSchemaName(): string;
57
+ generateModelSchemas(): Promise<void>;
58
+ generateImportStatements(imports: (string | undefined)[]): string;
59
+ resolveSelectIncludeImportAndZodSchemaLine(model: PrismaDMMF.Model): {
60
+ selectImport: string;
61
+ includeImport: string;
62
+ selectZodSchemaLine: string;
63
+ includeZodSchemaLine: string;
64
+ selectZodSchemaLineLazy: string;
65
+ includeZodSchemaLineLazy: string;
66
+ };
67
+ }
@@ -0,0 +1,452 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const sdk_1 = require("@zenstackhq/sdk");
16
+ const dmmf_helpers_1 = require("@zenstackhq/sdk/dmmf-helpers");
17
+ const utils_1 = __importDefault(require("@zenstackhq/sdk/utils"));
18
+ const path_1 = __importDefault(require("path"));
19
+ class Transformer {
20
+ constructor(params) {
21
+ var _a, _b, _c, _d, _e, _f;
22
+ this.schemaImports = new Set();
23
+ this.hasJson = false;
24
+ this.name = (_a = params.name) !== null && _a !== void 0 ? _a : '';
25
+ this.fields = (_b = params.fields) !== null && _b !== void 0 ? _b : [];
26
+ this.models = (_c = params.models) !== null && _c !== void 0 ? _c : [];
27
+ this.modelOperations = (_d = params.modelOperations) !== null && _d !== void 0 ? _d : [];
28
+ this.aggregateOperationSupport = (_e = params.aggregateOperationSupport) !== null && _e !== void 0 ? _e : {};
29
+ this.enumTypes = (_f = params.enumTypes) !== null && _f !== void 0 ? _f : [];
30
+ this.project = params.project;
31
+ }
32
+ static setOutputPath(outPath) {
33
+ this.outputPath = outPath;
34
+ }
35
+ static getOutputPath() {
36
+ return this.outputPath;
37
+ }
38
+ static setPrismaClientOutputPath(prismaClientCustomPath) {
39
+ this.prismaClientOutputPath = prismaClientCustomPath;
40
+ this.isCustomPrismaClientOutputPath = prismaClientCustomPath !== '@prisma/client';
41
+ }
42
+ generateEnumSchemas() {
43
+ return __awaiter(this, void 0, void 0, function* () {
44
+ for (const enumType of this.enumTypes) {
45
+ const { name, values } = enumType;
46
+ const filteredValues = values.filter((v) => !sdk_1.AUXILIARY_FIELDS.includes(v));
47
+ const filePath = path_1.default.join(Transformer.outputPath, `enums/${name}.schema.ts`);
48
+ const content = `/* eslint-disable */\n${this.generateImportZodStatement()}\n${this.generateExportSchemaStatement(`${name}`, `z.enum(${JSON.stringify(filteredValues)})`)}`;
49
+ this.project.createSourceFile(filePath, content, { overwrite: true });
50
+ }
51
+ });
52
+ }
53
+ generateImportZodStatement() {
54
+ return "import { z } from 'zod';\n";
55
+ }
56
+ generateExportSchemaStatement(name, schema) {
57
+ return `export const ${name}Schema = ${schema}`;
58
+ }
59
+ generateObjectSchema() {
60
+ return __awaiter(this, void 0, void 0, function* () {
61
+ const zodObjectSchemaFields = this.generateObjectSchemaFields();
62
+ const objectSchema = this.prepareObjectSchema(zodObjectSchemaFields);
63
+ const objectSchemaName = this.resolveObjectSchemaName();
64
+ const filePath = path_1.default.join(Transformer.outputPath, `objects/${objectSchemaName}.schema.ts`);
65
+ const content = '/* eslint-disable */\n' + objectSchema;
66
+ this.project.createSourceFile(filePath, content, { overwrite: true });
67
+ });
68
+ }
69
+ generateObjectSchemaFields() {
70
+ const zodObjectSchemaFields = this.fields
71
+ .filter((field) => !sdk_1.AUXILIARY_FIELDS.includes(field.name))
72
+ .map((field) => this.generateObjectSchemaField(field))
73
+ .flatMap((item) => item)
74
+ .map((item) => {
75
+ const [zodStringWithMainType, field, skipValidators] = item;
76
+ const value = skipValidators
77
+ ? zodStringWithMainType
78
+ : this.generateFieldValidators(zodStringWithMainType, field);
79
+ return value.trim();
80
+ });
81
+ return zodObjectSchemaFields;
82
+ }
83
+ generateObjectSchemaField(field) {
84
+ const lines = field.inputTypes;
85
+ if (lines.length === 0) {
86
+ return [];
87
+ }
88
+ let alternatives = lines.reduce((result, inputType) => {
89
+ if (inputType.type === 'String') {
90
+ result.push(this.wrapWithZodValidators('z.string()', field, inputType));
91
+ }
92
+ else if (inputType.type === 'Int' || inputType.type === 'Float' || inputType.type === 'Decimal') {
93
+ result.push(this.wrapWithZodValidators('z.number()', field, inputType));
94
+ }
95
+ else if (inputType.type === 'BigInt') {
96
+ result.push(this.wrapWithZodValidators('z.bigint()', field, inputType));
97
+ }
98
+ else if (inputType.type === 'Boolean') {
99
+ result.push(this.wrapWithZodValidators('z.boolean()', field, inputType));
100
+ }
101
+ else if (inputType.type === 'DateTime') {
102
+ result.push(this.wrapWithZodValidators('z.date()', field, inputType));
103
+ }
104
+ else if (inputType.type === 'Json') {
105
+ this.hasJson = true;
106
+ result.push(this.wrapWithZodValidators('jsonSchema', field, inputType));
107
+ }
108
+ else if (inputType.type === 'True') {
109
+ result.push(this.wrapWithZodValidators('z.literal(true)', field, inputType));
110
+ }
111
+ else {
112
+ const isEnum = inputType.location === 'enumTypes';
113
+ if (inputType.namespace === 'prisma' || isEnum) {
114
+ if (inputType.type !== this.name && typeof inputType.type === 'string') {
115
+ this.addSchemaImport(inputType.type);
116
+ }
117
+ result.push(this.generatePrismaStringLine(field, inputType, lines.length));
118
+ }
119
+ }
120
+ return result;
121
+ }, []);
122
+ if (alternatives.length === 0) {
123
+ return [];
124
+ }
125
+ if (alternatives.length > 1) {
126
+ alternatives = alternatives.map((alter) => alter.replace('.optional()', ''));
127
+ }
128
+ const fieldName = alternatives.some((alt) => alt.includes(':')) ? '' : ` ${field.name}:`;
129
+ const opt = !field.isRequired ? '.optional()' : '';
130
+ let resString = alternatives.length === 1 ? alternatives.join(',\r\n') : `z.union([${alternatives.join(',\r\n')}])${opt}`;
131
+ if (field.isNullable) {
132
+ resString += '.nullable()';
133
+ }
134
+ return [[` ${fieldName} ${resString} `, field, true]];
135
+ }
136
+ wrapWithZodValidators(mainValidator, field, inputType) {
137
+ let line = '';
138
+ line = mainValidator;
139
+ if (inputType.isList) {
140
+ line += '.array()';
141
+ }
142
+ if (!field.isRequired) {
143
+ line += '.optional()';
144
+ }
145
+ return line;
146
+ }
147
+ addSchemaImport(name) {
148
+ this.schemaImports.add(name);
149
+ }
150
+ generatePrismaStringLine(field, inputType, inputsLength) {
151
+ const isEnum = inputType.location === 'enumTypes';
152
+ const { isModelQueryType, modelName, queryName } = this.checkIsModelQueryType(inputType.type);
153
+ const objectSchemaLine = isModelQueryType
154
+ ? // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
155
+ this.resolveModelQuerySchemaName(modelName, queryName)
156
+ : `${inputType.type}ObjectSchema`;
157
+ const enumSchemaLine = `${inputType.type}Schema`;
158
+ const schema = inputType.type === this.name ? objectSchemaLine : isEnum ? enumSchemaLine : objectSchemaLine;
159
+ const arr = inputType.isList ? '.array()' : '';
160
+ const opt = !field.isRequired ? '.optional()' : '';
161
+ return inputsLength === 1
162
+ ? ` ${field.name}: z.lazy(() => ${schema})${arr}${opt}`
163
+ : `z.lazy(() => ${schema})${arr}${opt}`;
164
+ }
165
+ generateFieldValidators(zodStringWithMainType, field) {
166
+ const { isRequired, isNullable } = field;
167
+ if (!isRequired) {
168
+ zodStringWithMainType += '.optional()';
169
+ }
170
+ if (isNullable) {
171
+ zodStringWithMainType += '.nullable()';
172
+ }
173
+ return zodStringWithMainType;
174
+ }
175
+ prepareObjectSchema(zodObjectSchemaFields) {
176
+ const objectSchema = `${this.generateExportObjectSchemaStatement(this.addFinalWrappers({ zodStringFields: zodObjectSchemaFields }))}\n`;
177
+ const prismaImportStatement = this.generateImportPrismaStatement();
178
+ const json = this.generateJsonSchemaImplementation();
179
+ return `${this.generateObjectSchemaImportStatements()}${prismaImportStatement}${json}${objectSchema}`;
180
+ }
181
+ generateExportObjectSchemaStatement(schema) {
182
+ let name = this.name;
183
+ if ((0, dmmf_helpers_1.isAggregateInputType)(name)) {
184
+ name = `${name}Type`;
185
+ }
186
+ const end = `export const ${this.name}ObjectSchema = Schema`;
187
+ return `const Schema: z.ZodType<Omit<Prisma.${name}, ${sdk_1.AUXILIARY_FIELDS.map((f) => "'" + f + "'").join('|')}>> = ${schema};\n\n ${end}`;
188
+ }
189
+ addFinalWrappers({ zodStringFields }) {
190
+ const fields = [...zodStringFields];
191
+ return this.wrapWithZodObject(fields) + '.strict()';
192
+ }
193
+ generateImportPrismaStatement() {
194
+ let prismaClientImportPath;
195
+ if (Transformer.isCustomPrismaClientOutputPath) {
196
+ /**
197
+ * If a custom location was designated for the prisma client, we need to figure out the
198
+ * relative path from {outputPath}/objects to {prismaClientCustomPath}
199
+ */
200
+ const fromPath = path_1.default.join(Transformer.outputPath, 'objects');
201
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
202
+ const toPath = Transformer.prismaClientOutputPath;
203
+ const relativePathFromOutputToPrismaClient = path_1.default
204
+ .relative(fromPath, toPath)
205
+ .split(path_1.default.sep)
206
+ .join(path_1.default.posix.sep);
207
+ prismaClientImportPath = relativePathFromOutputToPrismaClient;
208
+ }
209
+ else {
210
+ /**
211
+ * If the default output path for prisma client (@prisma/client) is being used, we can import from it directly
212
+ * without having to resolve a relative path
213
+ */
214
+ prismaClientImportPath = Transformer.prismaClientOutputPath;
215
+ }
216
+ return `import type { Prisma } from '${prismaClientImportPath}';\n\n`;
217
+ }
218
+ generateJsonSchemaImplementation() {
219
+ let jsonSchemaImplementation = '';
220
+ if (this.hasJson) {
221
+ jsonSchemaImplementation += `\n`;
222
+ jsonSchemaImplementation += `const literalSchema = z.union([z.string(), z.number(), z.boolean()]);\n`;
223
+ jsonSchemaImplementation += `const jsonSchema: z.ZodType<Prisma.InputJsonValue> = z.lazy(() =>\n`;
224
+ jsonSchemaImplementation += ` z.union([literalSchema, z.array(jsonSchema.nullable()), z.record(jsonSchema.nullable())])\n`;
225
+ jsonSchemaImplementation += `);\n\n`;
226
+ }
227
+ return jsonSchemaImplementation;
228
+ }
229
+ generateObjectSchemaImportStatements() {
230
+ let generatedImports = this.generateImportZodStatement();
231
+ generatedImports += this.generateSchemaImports();
232
+ generatedImports += '\n\n';
233
+ return generatedImports;
234
+ }
235
+ generateSchemaImports() {
236
+ return [...this.schemaImports]
237
+ .map((name) => {
238
+ const { isModelQueryType, modelName } = this.checkIsModelQueryType(name);
239
+ if (isModelQueryType) {
240
+ return `import { ${modelName}Schema } from '../${modelName}.schema'`;
241
+ }
242
+ else if (Transformer.enumNames.includes(name)) {
243
+ return `import { ${name}Schema } from '../enums/${name}.schema'`;
244
+ }
245
+ else {
246
+ return `import { ${name}ObjectSchema } from './${name}.schema'`;
247
+ }
248
+ })
249
+ .join(';\r\n');
250
+ }
251
+ checkIsModelQueryType(type) {
252
+ const modelQueryTypeSuffixToQueryName = {
253
+ FindManyArgs: 'findMany',
254
+ };
255
+ for (const modelQueryType of ['FindManyArgs']) {
256
+ if (type.includes(modelQueryType)) {
257
+ const modelQueryTypeSuffixIndex = type.indexOf(modelQueryType);
258
+ return {
259
+ isModelQueryType: true,
260
+ modelName: type.substring(0, modelQueryTypeSuffixIndex),
261
+ queryName: modelQueryTypeSuffixToQueryName[modelQueryType],
262
+ };
263
+ }
264
+ }
265
+ return { isModelQueryType: false };
266
+ }
267
+ resolveModelQuerySchemaName(modelName, queryName) {
268
+ const modelNameCapitalized = modelName.charAt(0).toUpperCase() + modelName.slice(1);
269
+ return `${modelNameCapitalized}Schema.${queryName}`;
270
+ }
271
+ wrapWithZodUnion(zodStringFields) {
272
+ let wrapped = '';
273
+ wrapped += 'z.union([';
274
+ wrapped += '\n';
275
+ wrapped += ' ' + zodStringFields.join(',');
276
+ wrapped += '\n';
277
+ wrapped += '])';
278
+ return wrapped;
279
+ }
280
+ wrapWithZodObject(zodStringFields) {
281
+ let wrapped = '';
282
+ wrapped += 'z.object({';
283
+ wrapped += '\n';
284
+ wrapped += ' ' + zodStringFields;
285
+ wrapped += '\n';
286
+ wrapped += '})';
287
+ return wrapped;
288
+ }
289
+ resolveObjectSchemaName() {
290
+ return this.name;
291
+ }
292
+ generateModelSchemas() {
293
+ return __awaiter(this, void 0, void 0, function* () {
294
+ const globalImports = [];
295
+ let globalExport = '';
296
+ for (const modelOperation of this.modelOperations) {
297
+ const { model: modelName, findUnique, findFirst, findMany,
298
+ // @ts-expect-error
299
+ createOne, createMany,
300
+ // @ts-expect-error
301
+ deleteOne,
302
+ // @ts-expect-error
303
+ updateOne, deleteMany, updateMany,
304
+ // @ts-expect-error
305
+ upsertOne, aggregate, groupBy,
306
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
307
+ } = modelOperation;
308
+ globalImports.push(`import { ${modelName}Schema } from './${modelName}.schema'`);
309
+ globalExport += `${modelName}: ${modelName}Schema,`;
310
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
311
+ const model = (0, dmmf_helpers_1.findModelByName)(this.models, modelName);
312
+ const { selectImport, includeImport, selectZodSchemaLineLazy, includeZodSchemaLineLazy } = this.resolveSelectIncludeImportAndZodSchemaLine(model);
313
+ let imports = [`import { z } from 'zod'`, selectImport, includeImport];
314
+ let codeBody = '';
315
+ if (findUnique) {
316
+ imports.push(`import { ${modelName}WhereUniqueInputObjectSchema } from './objects/${modelName}WhereUniqueInput.schema'`);
317
+ codeBody += `findUnique: z.object({ ${selectZodSchemaLineLazy} ${includeZodSchemaLineLazy} where: ${modelName}WhereUniqueInputObjectSchema }),`;
318
+ }
319
+ if (findFirst) {
320
+ imports.push(`import { ${modelName}WhereInputObjectSchema } from './objects/${modelName}WhereInput.schema'`, `import { ${modelName}OrderByWithRelationInputObjectSchema } from './objects/${modelName}OrderByWithRelationInput.schema'`, `import { ${modelName}WhereUniqueInputObjectSchema } from './objects/${modelName}WhereUniqueInput.schema'`, `import { ${modelName}ScalarFieldEnumSchema } from './enums/${modelName}ScalarFieldEnum.schema'`);
321
+ codeBody += `findFirst: z.object({ ${selectZodSchemaLineLazy} ${includeZodSchemaLineLazy} where: ${modelName}WhereInputObjectSchema.optional(), orderBy: z.union([${modelName}OrderByWithRelationInputObjectSchema, ${modelName}OrderByWithRelationInputObjectSchema.array()]).optional(), cursor: ${modelName}WhereUniqueInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), distinct: z.array(${modelName}ScalarFieldEnumSchema).optional() }),`;
322
+ }
323
+ if (findMany) {
324
+ imports.push(`import { ${modelName}WhereInputObjectSchema } from './objects/${modelName}WhereInput.schema'`, `import { ${modelName}OrderByWithRelationInputObjectSchema } from './objects/${modelName}OrderByWithRelationInput.schema'`, `import { ${modelName}WhereUniqueInputObjectSchema } from './objects/${modelName}WhereUniqueInput.schema'`, `import { ${modelName}ScalarFieldEnumSchema } from './enums/${modelName}ScalarFieldEnum.schema'`);
325
+ codeBody += `findMany: z.object({ ${selectZodSchemaLineLazy} ${includeZodSchemaLineLazy} where: ${modelName}WhereInputObjectSchema.optional(), orderBy: z.union([${modelName}OrderByWithRelationInputObjectSchema, ${modelName}OrderByWithRelationInputObjectSchema.array()]).optional(), cursor: ${modelName}WhereUniqueInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), distinct: z.array(${modelName}ScalarFieldEnumSchema).optional() }),`;
326
+ }
327
+ if (createOne) {
328
+ imports.push(`import { ${modelName}CreateInputObjectSchema } from './objects/${modelName}CreateInput.schema'`);
329
+ codeBody += `create: z.object({ ${selectZodSchemaLineLazy} ${includeZodSchemaLineLazy} data: ${modelName}CreateInputObjectSchema }),`;
330
+ }
331
+ if (createMany) {
332
+ imports.push(`import { ${modelName}CreateManyInputObjectSchema } from './objects/${modelName}CreateManyInput.schema'`);
333
+ codeBody += `createMany: z.object({ data: ${modelName}CreateManyInputObjectSchema }),`;
334
+ }
335
+ if (deleteOne) {
336
+ imports.push(`import { ${modelName}WhereUniqueInputObjectSchema } from './objects/${modelName}WhereUniqueInput.schema'`);
337
+ codeBody += `'delete': z.object({ ${selectZodSchemaLineLazy} ${includeZodSchemaLineLazy} where: ${modelName}WhereUniqueInputObjectSchema }),`;
338
+ }
339
+ if (deleteMany) {
340
+ imports.push(`import { ${modelName}WhereInputObjectSchema } from './objects/${modelName}WhereInput.schema'`);
341
+ codeBody += `deleteMany: z.object({ where: ${modelName}WhereInputObjectSchema.optional() }),`;
342
+ }
343
+ if (updateOne) {
344
+ imports.push(`import { ${modelName}UpdateInputObjectSchema } from './objects/${modelName}UpdateInput.schema'`, `import { ${modelName}WhereUniqueInputObjectSchema } from './objects/${modelName}WhereUniqueInput.schema'`);
345
+ codeBody += `update: z.object({ ${selectZodSchemaLineLazy} ${includeZodSchemaLineLazy} data: ${modelName}UpdateInputObjectSchema, where: ${modelName}WhereUniqueInputObjectSchema }),`;
346
+ }
347
+ if (updateMany) {
348
+ imports.push(`import { ${modelName}UpdateManyMutationInputObjectSchema } from './objects/${modelName}UpdateManyMutationInput.schema'`, `import { ${modelName}WhereInputObjectSchema } from './objects/${modelName}WhereInput.schema'`);
349
+ codeBody += `updateMany: z.object({ data: ${modelName}UpdateManyMutationInputObjectSchema, where: ${modelName}WhereInputObjectSchema.optional() }),`;
350
+ }
351
+ if (upsertOne) {
352
+ imports.push(`import { ${modelName}WhereUniqueInputObjectSchema } from './objects/${modelName}WhereUniqueInput.schema'`, `import { ${modelName}CreateInputObjectSchema } from './objects/${modelName}CreateInput.schema'`, `import { ${modelName}UpdateInputObjectSchema } from './objects/${modelName}UpdateInput.schema'`);
353
+ codeBody += `upsert: z.object({ ${selectZodSchemaLineLazy} ${includeZodSchemaLineLazy} where: ${modelName}WhereUniqueInputObjectSchema, create: ${modelName}CreateInputObjectSchema, update: ${modelName}UpdateInputObjectSchema }),`;
354
+ }
355
+ const aggregateOperations = [];
356
+ if (this.aggregateOperationSupport[modelName].count) {
357
+ imports.push(`import { ${modelName}CountAggregateInputObjectSchema } from './objects/${modelName}CountAggregateInput.schema'`);
358
+ aggregateOperations.push(`_count: z.union([ z.literal(true), ${modelName}CountAggregateInputObjectSchema ]).optional()`);
359
+ }
360
+ if (this.aggregateOperationSupport[modelName].min) {
361
+ imports.push(`import { ${modelName}MinAggregateInputObjectSchema } from './objects/${modelName}MinAggregateInput.schema'`);
362
+ aggregateOperations.push(`_min: ${modelName}MinAggregateInputObjectSchema.optional()`);
363
+ }
364
+ if (this.aggregateOperationSupport[modelName].max) {
365
+ imports.push(`import { ${modelName}MaxAggregateInputObjectSchema } from './objects/${modelName}MaxAggregateInput.schema'`);
366
+ aggregateOperations.push(`_max: ${modelName}MaxAggregateInputObjectSchema.optional()`);
367
+ }
368
+ if (this.aggregateOperationSupport[modelName].avg) {
369
+ imports.push(`import { ${modelName}AvgAggregateInputObjectSchema } from './objects/${modelName}AvgAggregateInput.schema'`);
370
+ aggregateOperations.push(`_avg: ${modelName}AvgAggregateInputObjectSchema.optional()`);
371
+ }
372
+ if (this.aggregateOperationSupport[modelName].sum) {
373
+ imports.push(`import { ${modelName}SumAggregateInputObjectSchema } from './objects/${modelName}SumAggregateInput.schema'`);
374
+ aggregateOperations.push(`_sum: ${modelName}SumAggregateInputObjectSchema.optional()`);
375
+ }
376
+ if (aggregate) {
377
+ imports.push(`import { ${modelName}WhereInputObjectSchema } from './objects/${modelName}WhereInput.schema'`, `import { ${modelName}OrderByWithRelationInputObjectSchema } from './objects/${modelName}OrderByWithRelationInput.schema'`, `import { ${modelName}WhereUniqueInputObjectSchema } from './objects/${modelName}WhereUniqueInput.schema'`);
378
+ codeBody += `aggregate: z.object({ where: ${modelName}WhereInputObjectSchema.optional(), orderBy: z.union([${modelName}OrderByWithRelationInputObjectSchema, ${modelName}OrderByWithRelationInputObjectSchema.array()]).optional(), cursor: ${modelName}WhereUniqueInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), ${aggregateOperations.join(', ')} }),`;
379
+ }
380
+ if (groupBy) {
381
+ imports.push(`import { ${modelName}WhereInputObjectSchema } from './objects/${modelName}WhereInput.schema'`, `import { ${modelName}OrderByWithAggregationInputObjectSchema } from './objects/${modelName}OrderByWithAggregationInput.schema'`, `import { ${modelName}ScalarWhereWithAggregatesInputObjectSchema } from './objects/${modelName}ScalarWhereWithAggregatesInput.schema'`, `import { ${modelName}ScalarFieldEnumSchema } from './enums/${modelName}ScalarFieldEnum.schema'`);
382
+ codeBody += `groupBy: z.object({ where: ${modelName}WhereInputObjectSchema.optional(), orderBy: z.union([${modelName}OrderByWithAggregationInputObjectSchema, ${modelName}OrderByWithAggregationInputObjectSchema.array()]).optional(), having: ${modelName}ScalarWhereWithAggregatesInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), by: z.array(${modelName}ScalarFieldEnumSchema), ${aggregateOperations.join(', ')} }),`;
383
+ }
384
+ imports = [...new Set(imports)];
385
+ const filePath = path_1.default.join(Transformer.outputPath, `${modelName}.schema.ts`);
386
+ const content = `
387
+ /* eslint-disable */
388
+ ${imports.join(';\n')}
389
+
390
+ export const ${modelName}Schema = {
391
+ ${(0, utils_1.default)(codeBody, 4)}
392
+ };
393
+ `;
394
+ this.project.createSourceFile(filePath, content, { overwrite: true });
395
+ }
396
+ const indexFilePath = path_1.default.join(Transformer.outputPath, 'index.ts');
397
+ const indexContent = `
398
+ /* eslint-disable */
399
+ ${globalImports.join(';\n')}
400
+
401
+ const schemas = {
402
+ ${(0, utils_1.default)(globalExport, 4)}
403
+ };
404
+
405
+ export default schemas;
406
+ `;
407
+ this.project.createSourceFile(indexFilePath, indexContent, { overwrite: true });
408
+ });
409
+ }
410
+ generateImportStatements(imports) {
411
+ var _a;
412
+ let generatedImports = this.generateImportZodStatement();
413
+ generatedImports += (_a = imports === null || imports === void 0 ? void 0 : imports.filter((importItem) => !!importItem).join(';\r\n')) !== null && _a !== void 0 ? _a : '';
414
+ generatedImports += '\n\n';
415
+ return generatedImports;
416
+ }
417
+ resolveSelectIncludeImportAndZodSchemaLine(model) {
418
+ const { name: modelName } = model;
419
+ const hasRelationToAnotherModel = (0, dmmf_helpers_1.checkModelHasModelRelation)(model);
420
+ const selectImport = `import { ${modelName}SelectObjectSchema } from './objects/${modelName}Select.schema'`;
421
+ const includeImport = hasRelationToAnotherModel
422
+ ? `import { ${modelName}IncludeObjectSchema } from './objects/${modelName}Include.schema'`
423
+ : '';
424
+ let selectZodSchemaLine = '';
425
+ let includeZodSchemaLine = '';
426
+ let selectZodSchemaLineLazy = '';
427
+ let includeZodSchemaLineLazy = '';
428
+ const zodSelectObjectSchema = `${modelName}SelectObjectSchema.optional()`;
429
+ selectZodSchemaLine = `select: ${zodSelectObjectSchema},`;
430
+ selectZodSchemaLineLazy = `select: z.lazy(() => ${zodSelectObjectSchema}),`;
431
+ if (hasRelationToAnotherModel) {
432
+ const zodIncludeObjectSchema = `${modelName}IncludeObjectSchema.optional()`;
433
+ includeZodSchemaLine = `include: ${zodIncludeObjectSchema},`;
434
+ includeZodSchemaLineLazy = `include: z.lazy(() => ${zodIncludeObjectSchema}),`;
435
+ }
436
+ return {
437
+ selectImport,
438
+ includeImport,
439
+ selectZodSchemaLine,
440
+ includeZodSchemaLine,
441
+ selectZodSchemaLineLazy,
442
+ includeZodSchemaLineLazy,
443
+ };
444
+ }
445
+ }
446
+ exports.default = Transformer;
447
+ Transformer.enumNames = [];
448
+ Transformer.rawOpsMap = {};
449
+ Transformer.outputPath = './generated';
450
+ Transformer.prismaClientOutputPath = '@prisma/client';
451
+ Transformer.isCustomPrismaClientOutputPath = false;
452
+ //# sourceMappingURL=transformer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transformer.js","sourceRoot":"","sources":["../../../src/plugins/zod/transformer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { DMMF as PrismaDMMF } from '@prisma/generator-helper';
2
+ import { Project } from 'ts-morph';
3
+ export declare type TransformerParams = {
4
+ enumTypes?: PrismaDMMF.SchemaEnum[];
5
+ fields?: PrismaDMMF.SchemaArg[];
6
+ name?: string;
7
+ models?: PrismaDMMF.Model[];
8
+ modelOperations?: PrismaDMMF.ModelMapping[];
9
+ aggregateOperationSupport?: AggregateOperationSupport;
10
+ isDefaultPrismaClientOutput?: boolean;
11
+ prismaClientOutputPath?: string;
12
+ project: Project;
13
+ };
14
+ export declare type AggregateOperationSupport = {
15
+ [model: string]: {
16
+ count?: boolean;
17
+ min?: boolean;
18
+ max?: boolean;
19
+ sum?: boolean;
20
+ avg?: boolean;
21
+ };
22
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/plugins/zod/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ export default function removeDir(dirPath: string, onlyContent: boolean): Promise<void>;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const path_1 = __importDefault(require("path"));
16
+ const fs_1 = require("fs");
17
+ function removeDir(dirPath, onlyContent) {
18
+ return __awaiter(this, void 0, void 0, function* () {
19
+ const dirEntries = yield fs_1.promises.readdir(dirPath, { withFileTypes: true });
20
+ yield Promise.all(dirEntries.map((dirEntry) => __awaiter(this, void 0, void 0, function* () {
21
+ const fullPath = path_1.default.join(dirPath, dirEntry.name);
22
+ return dirEntry.isDirectory() ? yield removeDir(fullPath, false) : yield fs_1.promises.unlink(fullPath);
23
+ })));
24
+ if (!onlyContent) {
25
+ yield fs_1.promises.rmdir(dirPath);
26
+ }
27
+ });
28
+ }
29
+ exports.default = removeDir;
30
+ //# sourceMappingURL=removeDir.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"removeDir.js","sourceRoot":"","sources":["../../../../src/plugins/zod/utils/removeDir.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,gDAAwB;AACxB,2BAAoC;AAEpC,SAA8B,SAAS,CAAC,OAAe,EAAE,WAAoB;;QACzE,MAAM,UAAU,GAAG,MAAM,aAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACtE,MAAM,OAAO,CAAC,GAAG,CACb,UAAU,CAAC,GAAG,CAAC,CAAO,QAAQ,EAAE,EAAE;YAC9B,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;YACnD,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,MAAM,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,aAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACjG,CAAC,CAAA,CAAC,CACL,CAAC;QACF,IAAI,CAAC,WAAW,EAAE;YACd,MAAM,aAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;SAC3B;IACL,CAAC;CAAA;AAXD,4BAWC"}
@@ -2,13 +2,11 @@
2
2
 
3
3
  (function (Prism) {
4
4
  Prism.languages.zmodel = Prism.languages.extend('clike', {
5
- keyword:
6
- /\b(?:datasource|enum|generator|model|attribute|function|null|this)\b/,
5
+ keyword: /\b(?:datasource|enum|generator|model|attribute|function|null|this)\b/,
7
6
  'type-class-name': /(\b()\s+)[\w.\\]+/,
8
7
  });
9
8
 
10
- Prism.languages.javascript['class-name'][0].pattern =
11
- /(\b(?:model|datasource|enum|generator)\s+)[\w.\\]+/;
9
+ Prism.languages.javascript['class-name'][0].pattern = /(\b(?:model|datasource|enum|generator)\s+)[\w.\\]+/;
12
10
 
13
11
  Prism.languages.insertBefore('zmodel', 'function', {
14
12
  annotation: {