zenstack 1.0.0-beta.1 → 1.0.0-beta.10
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.
- package/README.md +12 -4
- package/cli/cli-util.js +1 -1
- package/cli/cli-util.js.map +1 -1
- package/cli/plugin-runner.d.ts +2 -1
- package/cli/plugin-runner.js +101 -47
- package/cli/plugin-runner.js.map +1 -1
- package/language-server/constants.d.ts +0 -4
- package/language-server/constants.js +1 -14
- package/language-server/constants.js.map +1 -1
- package/language-server/validator/datamodel-validator.js +8 -3
- package/language-server/validator/datamodel-validator.js.map +1 -1
- package/language-server/validator/expression-validator.js +38 -1
- package/language-server/validator/expression-validator.js.map +1 -1
- package/language-server/validator/function-decl-validator.d.ts +9 -0
- package/language-server/validator/function-decl-validator.js +15 -0
- package/language-server/validator/function-decl-validator.js.map +1 -0
- package/language-server/validator/function-invocation-validator.js +31 -5
- package/language-server/validator/function-invocation-validator.js.map +1 -1
- package/language-server/validator/utils.d.ts +3 -3
- package/language-server/validator/utils.js.map +1 -1
- package/language-server/validator/zmodel-validator.d.ts +2 -1
- package/language-server/validator/zmodel-validator.js +8 -3
- package/language-server/validator/zmodel-validator.js.map +1 -1
- package/language-server/zmodel-linker.d.ts +1 -0
- package/language-server/zmodel-linker.js +43 -1
- package/language-server/zmodel-linker.js.map +1 -1
- package/package.json +8 -15
- package/plugins/access-policy/expression-writer.js +33 -12
- package/plugins/access-policy/expression-writer.js.map +1 -1
- package/plugins/access-policy/policy-guard-generator.js +33 -22
- package/plugins/access-policy/policy-guard-generator.js.map +1 -1
- package/plugins/model-meta/index.js +18 -3
- package/plugins/model-meta/index.js.map +1 -1
- package/plugins/plugin-utils.d.ts +4 -0
- package/plugins/plugin-utils.js +16 -1
- package/plugins/plugin-utils.js.map +1 -1
- package/plugins/prisma/prisma-builder.d.ts +3 -1
- package/plugins/prisma/prisma-builder.js +9 -3
- package/plugins/prisma/prisma-builder.js.map +1 -1
- package/plugins/prisma/schema-generator.js +34 -5
- package/plugins/prisma/schema-generator.js.map +1 -1
- package/plugins/zod/generator.js +157 -18
- package/plugins/zod/generator.js.map +1 -1
- package/plugins/zod/index.d.ts +1 -1
- package/plugins/zod/transformer.d.ts +4 -4
- package/plugins/zod/transformer.js +134 -82
- package/plugins/zod/transformer.js.map +1 -1
- package/plugins/zod/types.d.ts +2 -0
- package/plugins/zod/utils/schema-gen.d.ts +3 -0
- package/plugins/zod/utils/schema-gen.js +178 -0
- package/plugins/zod/utils/schema-gen.js.map +1 -0
- package/res/stdlib.zmodel +102 -29
- package/telemetry.d.ts +1 -0
- package/telemetry.js +3 -1
- package/telemetry.js.map +1 -1
- package/utils/ast-utils.d.ts +1 -14
- package/utils/ast-utils.js +3 -71
- package/utils/ast-utils.js.map +1 -1
- package/utils/pkg-utils.js +1 -1
- package/utils/pkg-utils.js.map +1 -1
- package/utils/typescript-expression-transformer.d.ts +53 -0
- package/utils/typescript-expression-transformer.js +295 -0
- package/utils/typescript-expression-transformer.js.map +1 -0
- package/plugins/access-policy/typescript-expression-transformer.d.ts +0 -28
- package/plugins/access-policy/typescript-expression-transformer.js +0 -180
- package/plugins/access-policy/typescript-expression-transformer.js.map +0 -1
- package/plugins/access-policy/zod-schema-generator.d.ts +0 -12
- package/plugins/access-policy/zod-schema-generator.js +0 -160
- package/plugins/access-policy/zod-schema-generator.js.map +0 -1
package/plugins/zod/generator.js
CHANGED
|
@@ -17,10 +17,14 @@ const sdk_1 = require("@zenstackhq/sdk");
|
|
|
17
17
|
const ast_1 = require("@zenstackhq/sdk/ast");
|
|
18
18
|
const dmmf_helpers_1 = require("@zenstackhq/sdk/dmmf-helpers");
|
|
19
19
|
const fs_1 = require("fs");
|
|
20
|
+
const langium_1 = require("langium");
|
|
20
21
|
const path_1 = __importDefault(require("path"));
|
|
22
|
+
const upper_case_first_1 = require("upper-case-first");
|
|
23
|
+
const utils_1 = require("../../language-server/utils");
|
|
21
24
|
const plugin_utils_1 = require("../plugin-utils");
|
|
22
25
|
const transformer_1 = __importDefault(require("./transformer"));
|
|
23
26
|
const removeDir_1 = __importDefault(require("./utils/removeDir"));
|
|
27
|
+
const schema_gen_1 = require("./utils/schema-gen");
|
|
24
28
|
function generate(model, options, dmmf) {
|
|
25
29
|
var _a, _b;
|
|
26
30
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -42,16 +46,36 @@ function generate(model, options, dmmf) {
|
|
|
42
46
|
const outputObjectTypes = prismaClientDmmf.schema.outputObjectTypes.prisma;
|
|
43
47
|
const models = prismaClientDmmf.datamodel.models;
|
|
44
48
|
const project = (0, sdk_1.createProject)();
|
|
45
|
-
|
|
49
|
+
// common schemas
|
|
50
|
+
yield generateCommonSchemas(project, output);
|
|
51
|
+
// enums
|
|
52
|
+
yield generateEnumSchemas(prismaClientDmmf.schema.enumTypes.prisma, (_a = prismaClientDmmf.schema.enumTypes.model) !== null && _a !== void 0 ? _a : [], project, model);
|
|
46
53
|
const dataSource = model.declarations.find((d) => (0, ast_1.isDataSource)(d));
|
|
47
54
|
const dataSourceProvider = (0, sdk_1.getLiteral)((_b = dataSource === null || dataSource === void 0 ? void 0 : dataSource.fields.find((f) => f.name === 'provider')) === null || _b === void 0 ? void 0 : _b.value);
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
+
yield generateModelSchemas(project, model, output);
|
|
56
|
+
if (options.modelOnly !== true) {
|
|
57
|
+
// detailed object schemas referenced from input schemas
|
|
58
|
+
transformer_1.default.provider = dataSourceProvider;
|
|
59
|
+
(0, dmmf_helpers_1.addMissingInputObjectTypes)(inputObjectTypes, outputObjectTypes, models);
|
|
60
|
+
const aggregateOperationSupport = (0, dmmf_helpers_1.resolveAggregateOperationSupport)(inputObjectTypes);
|
|
61
|
+
yield generateObjectSchemas(inputObjectTypes, project, output, model);
|
|
62
|
+
// input schemas
|
|
63
|
+
const transformer = new transformer_1.default({
|
|
64
|
+
models,
|
|
65
|
+
modelOperations,
|
|
66
|
+
aggregateOperationSupport,
|
|
67
|
+
project,
|
|
68
|
+
zmodel: model,
|
|
69
|
+
});
|
|
70
|
+
yield transformer.generateInputSchemas();
|
|
71
|
+
}
|
|
72
|
+
// create barrel file
|
|
73
|
+
const exports = [`export * as models from './models'`, `export * as enums from './enums'`];
|
|
74
|
+
if (options.modelOnly !== true) {
|
|
75
|
+
exports.push(`export * as input from './input'`, `export * as objects from './objects'`);
|
|
76
|
+
}
|
|
77
|
+
project.createSourceFile(path_1.default.join(output, 'index.ts'), exports.join(';\n'), { overwrite: true });
|
|
78
|
+
// emit
|
|
55
79
|
const shouldCompile = options.compile !== false;
|
|
56
80
|
if (!shouldCompile || options.preserveTsFiles === true) {
|
|
57
81
|
// save ts files
|
|
@@ -72,7 +96,28 @@ function handleGeneratorOutputValue(output) {
|
|
|
72
96
|
transformer_1.default.setOutputPath(output);
|
|
73
97
|
});
|
|
74
98
|
}
|
|
75
|
-
function
|
|
99
|
+
function generateCommonSchemas(project, output) {
|
|
100
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
101
|
+
// Decimal
|
|
102
|
+
project.createSourceFile(path_1.default.join(output, 'common', 'index.ts'), `
|
|
103
|
+
import { z } from 'zod';
|
|
104
|
+
export const DecimalSchema = z.union([z.number(), z.string(), z.object({d: z.number().array(), e: z.number(), s: z.number()})]);
|
|
105
|
+
|
|
106
|
+
// https://stackoverflow.com/a/54487392/20415796
|
|
107
|
+
type OmitDistributive<T, K extends PropertyKey> = T extends any ? (T extends object ? OmitRecursively<T, K> : T) : never;
|
|
108
|
+
type OmitRecursively<T extends any, K extends PropertyKey> = Omit<
|
|
109
|
+
{ [P in keyof T]: OmitDistributive<T[P], K> },
|
|
110
|
+
K
|
|
111
|
+
>;
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Strips auxiliary fields recursively
|
|
115
|
+
*/
|
|
116
|
+
export type Purge<T> = OmitRecursively<T, ${sdk_1.AUXILIARY_FIELDS.map((f) => "'" + f + "'").join('|')}>;
|
|
117
|
+
`, { overwrite: true });
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
function generateEnumSchemas(prismaSchemaEnum, modelSchemaEnum, project, zmodel) {
|
|
76
121
|
return __awaiter(this, void 0, void 0, function* () {
|
|
77
122
|
const enumTypes = [...prismaSchemaEnum, ...modelSchemaEnum];
|
|
78
123
|
const enumNames = enumTypes.map((enumItem) => enumItem.name);
|
|
@@ -80,33 +125,127 @@ function generateEnumSchemas(prismaSchemaEnum, modelSchemaEnum, project) {
|
|
|
80
125
|
const transformer = new transformer_1.default({
|
|
81
126
|
enumTypes,
|
|
82
127
|
project,
|
|
128
|
+
zmodel,
|
|
83
129
|
});
|
|
84
130
|
yield transformer.generateEnumSchemas();
|
|
85
131
|
});
|
|
86
132
|
}
|
|
87
|
-
function generateObjectSchemas(inputObjectTypes, project, output) {
|
|
133
|
+
function generateObjectSchemas(inputObjectTypes, project, output, zmodel) {
|
|
88
134
|
var _a, _b;
|
|
89
135
|
return __awaiter(this, void 0, void 0, function* () {
|
|
90
136
|
const moduleNames = [];
|
|
91
137
|
for (let i = 0; i < inputObjectTypes.length; i += 1) {
|
|
92
138
|
const fields = (_a = inputObjectTypes[i]) === null || _a === void 0 ? void 0 : _a.fields;
|
|
93
139
|
const name = (_b = inputObjectTypes[i]) === null || _b === void 0 ? void 0 : _b.name;
|
|
94
|
-
const transformer = new transformer_1.default({ name, fields, project });
|
|
140
|
+
const transformer = new transformer_1.default({ name, fields, project, zmodel });
|
|
95
141
|
const moduleName = transformer.generateObjectSchema();
|
|
96
142
|
moduleNames.push(moduleName);
|
|
97
143
|
}
|
|
98
144
|
project.createSourceFile(path_1.default.join(output, 'objects/index.ts'), moduleNames.map((name) => `export * from './${name}';`).join('\n'), { overwrite: true });
|
|
99
145
|
});
|
|
100
146
|
}
|
|
101
|
-
function generateModelSchemas(
|
|
147
|
+
function generateModelSchemas(project, zmodel, output) {
|
|
102
148
|
return __awaiter(this, void 0, void 0, function* () {
|
|
103
|
-
const
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
149
|
+
const schemaNames = [];
|
|
150
|
+
for (const dm of (0, sdk_1.getDataModels)(zmodel)) {
|
|
151
|
+
schemaNames.push(yield generateModelSchema(dm, project, output));
|
|
152
|
+
}
|
|
153
|
+
project.createSourceFile(path_1.default.join(output, 'models', 'index.ts'), schemaNames.map((name) => `export * from './${name}';`).join('\n'), { overwrite: true });
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
function generateModelSchema(model, project, output) {
|
|
157
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
158
|
+
const schemaName = `${(0, upper_case_first_1.upperCaseFirst)(model.name)}.schema`;
|
|
159
|
+
const sf = project.createSourceFile(path_1.default.join(output, 'models', `${schemaName}.ts`), undefined, {
|
|
160
|
+
overwrite: true,
|
|
161
|
+
});
|
|
162
|
+
sf.replaceWithText((writer) => {
|
|
163
|
+
var _a, _b, _c;
|
|
164
|
+
const fields = model.fields.filter((field) => {
|
|
165
|
+
var _a;
|
|
166
|
+
return !sdk_1.AUXILIARY_FIELDS.includes(field.name) &&
|
|
167
|
+
// scalar fields only
|
|
168
|
+
!(0, ast_1.isDataModel)((_a = field.type.reference) === null || _a === void 0 ? void 0 : _a.ref) &&
|
|
169
|
+
!(0, sdk_1.isForeignKeyField)(field);
|
|
170
|
+
});
|
|
171
|
+
writer.writeLine('/* eslint-disable */');
|
|
172
|
+
writer.writeLine(`import { z } from 'zod';`);
|
|
173
|
+
// import user-defined enums from Prisma as they might be referenced in the expressions
|
|
174
|
+
const importEnums = new Set();
|
|
175
|
+
for (const node of (0, langium_1.streamAllContents)(model)) {
|
|
176
|
+
if ((0, sdk_1.isEnumFieldReference)(node)) {
|
|
177
|
+
const field = node.target.ref;
|
|
178
|
+
if (!(0, utils_1.isFromStdlib)(field.$container)) {
|
|
179
|
+
importEnums.add(field.$container.name);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
if (importEnums.size > 0) {
|
|
184
|
+
const prismaImport = (0, sdk_1.getPrismaClientImportSpec)(model.$container, path_1.default.join(output, 'models'));
|
|
185
|
+
writer.writeLine(`import { ${[...importEnums].join(', ')} } from '${prismaImport}';`);
|
|
186
|
+
}
|
|
187
|
+
// import enum schemas
|
|
188
|
+
for (const field of fields) {
|
|
189
|
+
if (((_a = field.type.reference) === null || _a === void 0 ? void 0 : _a.ref) && (0, ast_1.isEnum)((_b = field.type.reference) === null || _b === void 0 ? void 0 : _b.ref)) {
|
|
190
|
+
const name = (0, upper_case_first_1.upperCaseFirst)((_c = field.type.reference) === null || _c === void 0 ? void 0 : _c.ref.name);
|
|
191
|
+
writer.writeLine(`import { ${name}Schema } from '../enums/${name}.schema';`);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
// import Decimal
|
|
195
|
+
if (fields.some((field) => field.type.type === 'Decimal')) {
|
|
196
|
+
writer.writeLine(`import { DecimalSchema } from '../common';`);
|
|
197
|
+
}
|
|
198
|
+
// create base schema
|
|
199
|
+
writer.write(`const baseSchema = z.object(`);
|
|
200
|
+
writer.inlineBlock(() => {
|
|
201
|
+
fields.forEach((field) => {
|
|
202
|
+
writer.writeLine(`${field.name}: ${(0, schema_gen_1.makeFieldSchema)(field)},`);
|
|
203
|
+
});
|
|
204
|
+
});
|
|
205
|
+
writer.writeLine(');');
|
|
206
|
+
// compile "@@validate" to ".refine"
|
|
207
|
+
const refinements = (0, schema_gen_1.makeValidationRefinements)(model);
|
|
208
|
+
if (refinements.length > 0) {
|
|
209
|
+
writer.writeLine(`function refine(schema: z.ZodType) { return schema${refinements.join('\n')}; }`);
|
|
210
|
+
}
|
|
211
|
+
// model schema
|
|
212
|
+
let modelSchema = 'baseSchema';
|
|
213
|
+
const fieldsToOmit = fields.filter((field) => (0, sdk_1.hasAttribute)(field, '@omit'));
|
|
214
|
+
if (fieldsToOmit.length > 0) {
|
|
215
|
+
modelSchema = makeOmit(modelSchema, fieldsToOmit.map((f) => f.name));
|
|
216
|
+
}
|
|
217
|
+
if (refinements.length > 0) {
|
|
218
|
+
modelSchema = `refine(${modelSchema})`;
|
|
219
|
+
}
|
|
220
|
+
writer.writeLine(`export const ${(0, upper_case_first_1.upperCaseFirst)(model.name)}Schema = ${modelSchema};`);
|
|
221
|
+
// create schema
|
|
222
|
+
let createSchema = 'baseSchema';
|
|
223
|
+
const fieldsWithDefault = fields.filter((field) => (0, sdk_1.hasAttribute)(field, '@default') || (0, sdk_1.hasAttribute)(field, '@updatedAt') || field.type.array);
|
|
224
|
+
if (fieldsWithDefault.length > 0) {
|
|
225
|
+
createSchema = makePartial(createSchema, fieldsWithDefault.map((f) => f.name));
|
|
226
|
+
}
|
|
227
|
+
if (refinements.length > 0) {
|
|
228
|
+
createSchema = `refine(${createSchema})`;
|
|
229
|
+
}
|
|
230
|
+
writer.writeLine(`export const ${(0, upper_case_first_1.upperCaseFirst)(model.name)}CreateSchema = ${createSchema};`);
|
|
231
|
+
// update schema
|
|
232
|
+
let updateSchema = 'baseSchema.partial()';
|
|
233
|
+
if (refinements.length > 0) {
|
|
234
|
+
updateSchema = `refine(${updateSchema})`;
|
|
235
|
+
}
|
|
236
|
+
writer.writeLine(`export const ${(0, upper_case_first_1.upperCaseFirst)(model.name)}UpdateSchema = ${updateSchema};`);
|
|
108
237
|
});
|
|
109
|
-
|
|
238
|
+
return schemaName;
|
|
110
239
|
});
|
|
111
240
|
}
|
|
241
|
+
function makePartial(schema, fields) {
|
|
242
|
+
return `${schema}.partial({
|
|
243
|
+
${fields.map((f) => `${f}: true`).join(', ')},
|
|
244
|
+
})`;
|
|
245
|
+
}
|
|
246
|
+
function makeOmit(schema, fields) {
|
|
247
|
+
return `${schema}.omit({
|
|
248
|
+
${fields.map((f) => `${f}: true`).join(', ')},
|
|
249
|
+
})`;
|
|
250
|
+
}
|
|
112
251
|
//# sourceMappingURL=generator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../src/plugins/zod/generator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../src/plugins/zod/generator.ts"],"names":[],"mappings":"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"}
|
package/plugins/zod/index.d.ts
CHANGED
|
@@ -15,13 +15,12 @@ export default class Transformer {
|
|
|
15
15
|
static provider: string;
|
|
16
16
|
private static outputPath;
|
|
17
17
|
private hasJson;
|
|
18
|
-
private
|
|
19
|
-
private static isCustomPrismaClientOutputPath;
|
|
18
|
+
private hasDecimal;
|
|
20
19
|
private project;
|
|
20
|
+
private zmodel;
|
|
21
21
|
constructor(params: TransformerParams);
|
|
22
22
|
static setOutputPath(outPath: string): void;
|
|
23
23
|
static getOutputPath(): string;
|
|
24
|
-
static setPrismaClientOutputPath(prismaClientCustomPath: string): void;
|
|
25
24
|
generateEnumSchemas(): Promise<void>;
|
|
26
25
|
generateImportZodStatement(): string;
|
|
27
26
|
generateExportSchemaStatement(name: string, schema: string): string;
|
|
@@ -41,6 +40,7 @@ export default class Transformer {
|
|
|
41
40
|
generateJsonSchemaImplementation(): string;
|
|
42
41
|
generateObjectSchemaImportStatements(): string;
|
|
43
42
|
generateSchemaImports(): string;
|
|
43
|
+
private generateCommonImport;
|
|
44
44
|
checkIsModelQueryType(type: string): {
|
|
45
45
|
isModelQueryType: boolean;
|
|
46
46
|
modelName: string;
|
|
@@ -54,7 +54,7 @@ export default class Transformer {
|
|
|
54
54
|
wrapWithZodUnion(zodStringFields: string[]): string;
|
|
55
55
|
wrapWithZodObject(zodStringFields: string | string[]): string;
|
|
56
56
|
resolveObjectSchemaName(): string;
|
|
57
|
-
|
|
57
|
+
generateInputSchemas(): Promise<void>;
|
|
58
58
|
generateImportStatements(imports: (string | undefined)[]): string;
|
|
59
59
|
resolveSelectIncludeImportAndZodSchemaLine(model: PrismaDMMF.Model): {
|
|
60
60
|
selectImport: string;
|