zenstack 1.0.0-alpha.99 → 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 +65 -24
- package/cli/cli-util.d.ts +4 -1
- package/cli/cli-util.js +63 -9
- package/cli/cli-util.js.map +1 -1
- package/cli/config.js +39 -13
- package/cli/config.js.map +1 -1
- package/cli/index.js +1 -6
- package/cli/index.js.map +1 -1
- package/cli/plugin-runner.d.ts +2 -1
- package/cli/plugin-runner.js +106 -48
- 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/utils.d.ts +1 -5
- package/language-server/utils.js +3 -20
- package/language-server/utils.js.map +1 -1
- package/language-server/validator/datamodel-validator.d.ts +7 -0
- package/language-server/validator/datamodel-validator.js +71 -21
- package/language-server/validator/datamodel-validator.js.map +1 -1
- package/language-server/validator/expression-validator.js +44 -7
- 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/schema-validator.d.ts +4 -1
- package/language-server/validator/schema-validator.js +25 -5
- package/language-server/validator/schema-validator.js.map +1 -1
- package/language-server/validator/utils.d.ts +4 -4
- package/language-server/validator/utils.js +10 -1
- package/language-server/validator/utils.js.map +1 -1
- package/language-server/validator/zmodel-validator.d.ts +4 -1
- package/language-server/validator/zmodel-validator.js +13 -4
- package/language-server/validator/zmodel-validator.js.map +1 -1
- package/language-server/zmodel-code-action.d.ts +2 -1
- package/language-server/zmodel-code-action.js +19 -10
- package/language-server/zmodel-code-action.js.map +1 -1
- package/language-server/zmodel-definition.d.ts +7 -0
- package/language-server/zmodel-definition.js +31 -0
- package/language-server/zmodel-definition.js.map +1 -0
- package/language-server/zmodel-formatter.js +2 -2
- package/language-server/zmodel-formatter.js.map +1 -1
- package/language-server/zmodel-linker.d.ts +2 -0
- package/language-server/zmodel-linker.js +71 -7
- package/language-server/zmodel-linker.js.map +1 -1
- package/language-server/zmodel-module.js +4 -1
- package/language-server/zmodel-module.js.map +1 -1
- package/language-server/zmodel-scope.d.ts +7 -1
- package/language-server/zmodel-scope.js +57 -1
- package/language-server/zmodel-scope.js.map +1 -1
- package/package.json +19 -21
- package/plugins/access-policy/expression-writer.js +71 -25
- package/plugins/access-policy/expression-writer.js.map +1 -1
- package/plugins/access-policy/policy-guard-generator.js +107 -73
- package/plugins/access-policy/policy-guard-generator.js.map +1 -1
- package/plugins/access-policy/utils.d.ts +2 -2
- package/plugins/access-policy/utils.js +2 -2
- package/plugins/access-policy/utils.js.map +1 -1
- package/plugins/model-meta/index.js +35 -31
- package/plugins/model-meta/index.js.map +1 -1
- package/plugins/plugin-utils.d.ts +4 -4
- package/plugins/plugin-utils.js +28 -18
- package/plugins/plugin-utils.js.map +1 -1
- package/plugins/prisma/index.d.ts +1 -1
- package/plugins/prisma/prisma-builder.d.ts +6 -3
- package/plugins/prisma/prisma-builder.js +29 -8
- package/plugins/prisma/prisma-builder.js.map +1 -1
- package/plugins/prisma/schema-generator.d.ts +4 -1
- package/plugins/prisma/schema-generator.js +149 -32
- package/plugins/prisma/schema-generator.js.map +1 -1
- package/plugins/zod/generator.js +171 -22
- package/plugins/zod/generator.js.map +1 -1
- package/plugins/zod/index.d.ts +1 -1
- package/plugins/zod/transformer.d.ts +6 -6
- package/plugins/zod/transformer.js +168 -108
- 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/starter.zmodel +4 -4
- package/res/stdlib.zmodel +176 -90
- package/telemetry.d.ts +2 -1
- package/telemetry.js +5 -3
- package/telemetry.js.map +1 -1
- package/utils/ast-utils.d.ts +10 -3
- package/utils/ast-utils.js +91 -8
- 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/utils/version-utils.js +1 -0
- package/utils/version-utils.js.map +1 -1
- package/plugins/access-policy/typescript-expression-transformer.d.ts +0 -28
- package/plugins/access-policy/typescript-expression-transformer.js +0 -121
- 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 -157
- package/plugins/access-policy/zod-schema-generator.js.map +0 -1
|
@@ -17,6 +17,11 @@ const sdk_1 = require("@zenstackhq/sdk");
|
|
|
17
17
|
const fs_1 = __importDefault(require("fs"));
|
|
18
18
|
const promises_1 = require("fs/promises");
|
|
19
19
|
const path_1 = __importDefault(require("path"));
|
|
20
|
+
const semver_1 = __importDefault(require("semver"));
|
|
21
|
+
const strip_color_1 = __importDefault(require("strip-color"));
|
|
22
|
+
const _1 = require(".");
|
|
23
|
+
const utils_1 = require("../../language-server/validator/utils");
|
|
24
|
+
const telemetry_1 = __importDefault(require("../../telemetry"));
|
|
20
25
|
const exec_utils_1 = require("../../utils/exec-utils");
|
|
21
26
|
const prisma_builder_1 = require("./prisma-builder");
|
|
22
27
|
const zmodel_code_generator_1 = __importDefault(require("./zmodel-code-generator"));
|
|
@@ -39,6 +44,7 @@ class PrismaSchemaGenerator {
|
|
|
39
44
|
var _a;
|
|
40
45
|
return __awaiter(this, void 0, void 0, function* () {
|
|
41
46
|
const prisma = new prisma_builder_1.PrismaModel();
|
|
47
|
+
const warnings = [];
|
|
42
48
|
for (const decl of model.declarations) {
|
|
43
49
|
switch (decl.$type) {
|
|
44
50
|
case ast_1.DataSource:
|
|
@@ -55,21 +61,59 @@ class PrismaSchemaGenerator {
|
|
|
55
61
|
break;
|
|
56
62
|
}
|
|
57
63
|
}
|
|
58
|
-
|
|
64
|
+
let outFile = (_a = options.output) !== null && _a !== void 0 ? _a : './prisma/schema.prisma';
|
|
65
|
+
outFile = (0, sdk_1.resolvePath)(outFile, options);
|
|
59
66
|
if (!fs_1.default.existsSync(path_1.default.dirname(outFile))) {
|
|
60
67
|
fs_1.default.mkdirSync(path_1.default.dirname(outFile), { recursive: true });
|
|
61
68
|
}
|
|
62
69
|
yield (0, promises_1.writeFile)(outFile, this.PRELUDE + prisma.toString());
|
|
70
|
+
if (options.format === true) {
|
|
71
|
+
try {
|
|
72
|
+
// run 'prisma format'
|
|
73
|
+
yield (0, exec_utils_1.execSync)(`npx prisma format --schema ${outFile}`);
|
|
74
|
+
}
|
|
75
|
+
catch (_b) {
|
|
76
|
+
warnings.push(`Failed to format Prisma schema file`);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
63
79
|
const generateClient = options.generateClient !== false;
|
|
64
80
|
if (generateClient) {
|
|
65
|
-
|
|
66
|
-
|
|
81
|
+
try {
|
|
82
|
+
// run 'prisma generate'
|
|
83
|
+
yield (0, exec_utils_1.execSync)(`npx prisma generate --schema ${outFile}`, 'ignore');
|
|
84
|
+
}
|
|
85
|
+
catch (_c) {
|
|
86
|
+
yield this.trackPrismaSchemaError(outFile);
|
|
87
|
+
try {
|
|
88
|
+
// run 'prisma generate' again with output to the console
|
|
89
|
+
yield (0, exec_utils_1.execSync)(`npx prisma generate --schema ${outFile}`);
|
|
90
|
+
}
|
|
91
|
+
catch (_d) {
|
|
92
|
+
// noop
|
|
93
|
+
}
|
|
94
|
+
throw new sdk_1.PluginError(_1.name, `Failed to run "prisma generate"`);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
return warnings;
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
trackPrismaSchemaError(schema) {
|
|
101
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
102
|
+
try {
|
|
103
|
+
yield (0, sdk_1.getDMMF)({ datamodel: fs_1.default.readFileSync(schema, 'utf-8') });
|
|
104
|
+
}
|
|
105
|
+
catch (err) {
|
|
106
|
+
if (err instanceof Error) {
|
|
107
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
108
|
+
telemetry_1.default.track('prisma:error', { command: 'generate', message: (0, strip_color_1.default)(err.message) });
|
|
109
|
+
}
|
|
67
110
|
}
|
|
68
111
|
});
|
|
69
112
|
}
|
|
70
113
|
generateDataSource(prisma, dataSource) {
|
|
71
114
|
let provider = undefined;
|
|
72
115
|
let url = undefined;
|
|
116
|
+
let directUrl = undefined;
|
|
73
117
|
let shadowDatabaseUrl = undefined;
|
|
74
118
|
const restFields = [];
|
|
75
119
|
for (const f of dataSource.fields) {
|
|
@@ -79,22 +123,30 @@ class PrismaSchemaGenerator {
|
|
|
79
123
|
provider = f.value.value;
|
|
80
124
|
}
|
|
81
125
|
else {
|
|
82
|
-
throw new sdk_1.PluginError('Datasource provider must be set to a string');
|
|
126
|
+
throw new sdk_1.PluginError(_1.name, 'Datasource provider must be set to a string');
|
|
83
127
|
}
|
|
84
128
|
break;
|
|
85
129
|
}
|
|
86
130
|
case 'url': {
|
|
87
131
|
const r = this.extractDataSourceUrl(f.value);
|
|
88
132
|
if (!r) {
|
|
89
|
-
throw new sdk_1.PluginError('Invalid value for datasource url');
|
|
133
|
+
throw new sdk_1.PluginError(_1.name, 'Invalid value for datasource url');
|
|
90
134
|
}
|
|
91
135
|
url = r;
|
|
92
136
|
break;
|
|
93
137
|
}
|
|
138
|
+
case 'directUrl': {
|
|
139
|
+
const r = this.extractDataSourceUrl(f.value);
|
|
140
|
+
if (!r) {
|
|
141
|
+
throw new sdk_1.PluginError(_1.name, 'Invalid value for directUrl');
|
|
142
|
+
}
|
|
143
|
+
directUrl = r;
|
|
144
|
+
break;
|
|
145
|
+
}
|
|
94
146
|
case 'shadowDatabaseUrl': {
|
|
95
147
|
const r = this.extractDataSourceUrl(f.value);
|
|
96
148
|
if (!r) {
|
|
97
|
-
throw new sdk_1.PluginError('Invalid value for
|
|
149
|
+
throw new sdk_1.PluginError(_1.name, 'Invalid value for shadowDatabaseUrl');
|
|
98
150
|
}
|
|
99
151
|
shadowDatabaseUrl = r;
|
|
100
152
|
break;
|
|
@@ -103,7 +155,7 @@ class PrismaSchemaGenerator {
|
|
|
103
155
|
// rest fields
|
|
104
156
|
const value = (0, ast_1.isArrayExpr)(f.value) ? (0, sdk_1.getLiteralArray)(f.value) : (0, sdk_1.getLiteral)(f.value);
|
|
105
157
|
if (value === undefined) {
|
|
106
|
-
throw new sdk_1.PluginError(`Invalid value for datasource field ${f.name}: value must be a string or an array of strings`);
|
|
158
|
+
throw new sdk_1.PluginError(_1.name, `Invalid value for datasource field ${f.name}: value must be a string or an array of strings`);
|
|
107
159
|
}
|
|
108
160
|
else {
|
|
109
161
|
restFields.push({ name: f.name, value });
|
|
@@ -113,12 +165,12 @@ class PrismaSchemaGenerator {
|
|
|
113
165
|
}
|
|
114
166
|
}
|
|
115
167
|
if (!provider) {
|
|
116
|
-
throw new sdk_1.PluginError('Datasource is missing "provider" field');
|
|
168
|
+
throw new sdk_1.PluginError(_1.name, 'Datasource is missing "provider" field');
|
|
117
169
|
}
|
|
118
170
|
if (!url) {
|
|
119
|
-
throw new sdk_1.PluginError('Datasource is missing "url" field');
|
|
171
|
+
throw new sdk_1.PluginError(_1.name, 'Datasource is missing "url" field');
|
|
120
172
|
}
|
|
121
|
-
prisma.addDataSource(dataSource.name, provider, url, shadowDatabaseUrl, restFields);
|
|
173
|
+
prisma.addDataSource(dataSource.name, provider, url, directUrl, shadowDatabaseUrl, restFields);
|
|
122
174
|
}
|
|
123
175
|
extractDataSourceUrl(fieldValue) {
|
|
124
176
|
var _a;
|
|
@@ -136,31 +188,49 @@ class PrismaSchemaGenerator {
|
|
|
136
188
|
}
|
|
137
189
|
}
|
|
138
190
|
generateGenerator(prisma, decl) {
|
|
139
|
-
prisma.addGenerator(decl.name, decl.fields.map((f) => {
|
|
191
|
+
const generator = prisma.addGenerator(decl.name, decl.fields.map((f) => {
|
|
140
192
|
const value = (0, ast_1.isArrayExpr)(f.value) ? (0, sdk_1.getLiteralArray)(f.value) : (0, sdk_1.getLiteral)(f.value);
|
|
141
193
|
return { name: f.name, value };
|
|
142
194
|
}));
|
|
195
|
+
// deal with configuring PrismaClient preview features
|
|
196
|
+
const provider = generator.fields.find((f) => f.name === 'provider');
|
|
197
|
+
if ((provider === null || provider === void 0 ? void 0 : provider.value) === 'prisma-client-js') {
|
|
198
|
+
const prismaVersion = (0, sdk_1.getPrismaVersion)();
|
|
199
|
+
if (prismaVersion && semver_1.default.lt(prismaVersion, '4.7.0')) {
|
|
200
|
+
// insert interactiveTransactions preview feature
|
|
201
|
+
let previewFeatures = generator.fields.find((f) => f.name === 'previewFeatures');
|
|
202
|
+
if (!previewFeatures) {
|
|
203
|
+
previewFeatures = { name: 'previewFeatures', value: [] };
|
|
204
|
+
generator.fields.push(previewFeatures);
|
|
205
|
+
}
|
|
206
|
+
if (!Array.isArray(previewFeatures.value)) {
|
|
207
|
+
throw new sdk_1.PluginError(_1.name, 'option "previewFeatures" must be an array');
|
|
208
|
+
}
|
|
209
|
+
if (!previewFeatures.value.includes('interactiveTransactions')) {
|
|
210
|
+
previewFeatures.value.push('interactiveTransactions');
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}
|
|
143
214
|
}
|
|
144
215
|
generateModel(prisma, decl, config) {
|
|
145
|
-
const model = prisma.addModel(decl.name);
|
|
216
|
+
const model = decl.isView ? prisma.addView(decl.name) : prisma.addModel(decl.name);
|
|
146
217
|
for (const field of decl.fields) {
|
|
147
218
|
this.generateModelField(model, field);
|
|
148
219
|
}
|
|
149
|
-
|
|
150
|
-
const guardField = model.addField(sdk_1.GUARD_FIELD_NAME, 'Boolean', [
|
|
151
|
-
new prisma_builder_1.FieldAttribute('@default', [
|
|
152
|
-
new prisma_builder_1.AttributeArg(undefined, new prisma_builder_1.AttributeArgValue('Boolean', true)),
|
|
153
|
-
]),
|
|
154
|
-
]);
|
|
155
|
-
if ((config === null || config === void 0 ? void 0 : config.guardFieldName) && (config === null || config === void 0 ? void 0 : config.guardFieldName) !== sdk_1.GUARD_FIELD_NAME) {
|
|
156
|
-
// generate a @map to rename field in the database
|
|
157
|
-
guardField.addAttribute('@map', [
|
|
158
|
-
new prisma_builder_1.AttributeArg(undefined, new prisma_builder_1.AttributeArgValue('String', config.guardFieldName)),
|
|
159
|
-
]);
|
|
160
|
-
}
|
|
161
|
-
const { allowAll, denyAll, hasFieldValidation } = (0, sdk_1.analyzePolicies)(decl);
|
|
162
|
-
if ((!allowAll && !denyAll) || hasFieldValidation) {
|
|
220
|
+
if (this.shouldGenerateAuxFields(decl)) {
|
|
163
221
|
// generate auxiliary fields for policy check
|
|
222
|
+
// add an "zenstack_guard" field for dealing with boolean conditions
|
|
223
|
+
const guardField = model.addField(sdk_1.GUARD_FIELD_NAME, 'Boolean', [
|
|
224
|
+
new prisma_builder_1.FieldAttribute('@default', [
|
|
225
|
+
new prisma_builder_1.AttributeArg(undefined, new prisma_builder_1.AttributeArgValue('Boolean', true)),
|
|
226
|
+
]),
|
|
227
|
+
]);
|
|
228
|
+
if ((config === null || config === void 0 ? void 0 : config.guardFieldName) && (config === null || config === void 0 ? void 0 : config.guardFieldName) !== sdk_1.GUARD_FIELD_NAME) {
|
|
229
|
+
// generate a @map to rename field in the database
|
|
230
|
+
guardField.addAttribute('@map', [
|
|
231
|
+
new prisma_builder_1.AttributeArg(undefined, new prisma_builder_1.AttributeArgValue('String', config.guardFieldName)),
|
|
232
|
+
]);
|
|
233
|
+
}
|
|
164
234
|
// add an "zenstack_transaction" field for tracking records created/updated with nested writes
|
|
165
235
|
const transactionField = model.addField(sdk_1.TRANSACTION_FIELD_NAME, 'String?');
|
|
166
236
|
// create an index for "zenstack_transaction" field
|
|
@@ -185,6 +255,39 @@ class PrismaSchemaGenerator {
|
|
|
185
255
|
// user defined comments pass-through
|
|
186
256
|
decl.comments.forEach((c) => model.addComment(c));
|
|
187
257
|
}
|
|
258
|
+
shouldGenerateAuxFields(decl) {
|
|
259
|
+
var _a;
|
|
260
|
+
if (decl.isView) {
|
|
261
|
+
return false;
|
|
262
|
+
}
|
|
263
|
+
const { allowAll, denyAll, hasFieldValidation } = (0, sdk_1.analyzePolicies)(decl);
|
|
264
|
+
if (!allowAll && !denyAll) {
|
|
265
|
+
// has policy conditions
|
|
266
|
+
return true;
|
|
267
|
+
}
|
|
268
|
+
if (hasFieldValidation) {
|
|
269
|
+
return true;
|
|
270
|
+
}
|
|
271
|
+
// check if the model is related by other models, if so
|
|
272
|
+
// aux fields are needed for nested queries
|
|
273
|
+
const root = decl.$container;
|
|
274
|
+
for (const model of (0, sdk_1.getDataModels)(root)) {
|
|
275
|
+
if (model === decl) {
|
|
276
|
+
continue;
|
|
277
|
+
}
|
|
278
|
+
for (const field of model.fields) {
|
|
279
|
+
if (((_a = field.type.reference) === null || _a === void 0 ? void 0 : _a.ref) === decl) {
|
|
280
|
+
// found a relation with policies
|
|
281
|
+
const otherPolicies = (0, sdk_1.analyzePolicies)(model);
|
|
282
|
+
if ((!otherPolicies.allowAll && !otherPolicies.denyAll) || otherPolicies.hasFieldValidation) {
|
|
283
|
+
// the relating side has policies
|
|
284
|
+
return true;
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
return false;
|
|
290
|
+
}
|
|
188
291
|
isPrismaAttribute(attr) {
|
|
189
292
|
if (!attr.decl.ref) {
|
|
190
293
|
return false;
|
|
@@ -195,11 +298,25 @@ class PrismaSchemaGenerator {
|
|
|
195
298
|
attrDecl.name === MODEL_PASSTHROUGH_ATTR ||
|
|
196
299
|
attrDecl.name === FIELD_PASSTHROUGH_ATTR);
|
|
197
300
|
}
|
|
301
|
+
getUnsupportedFieldType(fieldType) {
|
|
302
|
+
if (fieldType.unsupported) {
|
|
303
|
+
const value = (0, utils_1.getStringLiteral)(fieldType.unsupported.value);
|
|
304
|
+
if (value) {
|
|
305
|
+
return `Unsupported("${value}")`;
|
|
306
|
+
}
|
|
307
|
+
else {
|
|
308
|
+
return undefined;
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
else {
|
|
312
|
+
return undefined;
|
|
313
|
+
}
|
|
314
|
+
}
|
|
198
315
|
generateModelField(model, field) {
|
|
199
316
|
var _a, _b;
|
|
200
|
-
const fieldType = field.type.type || ((_b = (_a = field.type.reference) === null || _a === void 0 ? void 0 : _a.ref) === null || _b === void 0 ? void 0 : _b.name);
|
|
317
|
+
const fieldType = field.type.type || ((_b = (_a = field.type.reference) === null || _a === void 0 ? void 0 : _a.ref) === null || _b === void 0 ? void 0 : _b.name) || this.getUnsupportedFieldType(field.type);
|
|
201
318
|
if (!fieldType) {
|
|
202
|
-
throw new sdk_1.PluginError(`Field type is not resolved: ${field.$container.name}.${field.name}`);
|
|
319
|
+
throw new sdk_1.PluginError(_1.name, `Field type is not resolved: ${field.$container.name}.${field.name}`);
|
|
203
320
|
}
|
|
204
321
|
const type = new prisma_builder_1.ModelFieldType(fieldType, field.type.array, field.type.optional);
|
|
205
322
|
const attributes = field.attributes
|
|
@@ -219,7 +336,7 @@ class PrismaSchemaGenerator {
|
|
|
219
336
|
return new prisma_builder_1.PassThroughAttribute(text);
|
|
220
337
|
}
|
|
221
338
|
else {
|
|
222
|
-
throw new sdk_1.PluginError(`Invalid arguments for ${FIELD_PASSTHROUGH_ATTR} attribute`);
|
|
339
|
+
throw new sdk_1.PluginError(_1.name, `Invalid arguments for ${FIELD_PASSTHROUGH_ATTR} attribute`);
|
|
223
340
|
}
|
|
224
341
|
}
|
|
225
342
|
else {
|
|
@@ -239,7 +356,7 @@ class PrismaSchemaGenerator {
|
|
|
239
356
|
case 'boolean':
|
|
240
357
|
return new prisma_builder_1.AttributeArgValue('Boolean', node.value);
|
|
241
358
|
default:
|
|
242
|
-
throw new sdk_1.PluginError(`Unexpected literal type: ${typeof node.value}`);
|
|
359
|
+
throw new sdk_1.PluginError(_1.name, `Unexpected literal type: ${typeof node.value}`);
|
|
243
360
|
}
|
|
244
361
|
}
|
|
245
362
|
else if ((0, ast_1.isArrayExpr)(node)) {
|
|
@@ -253,13 +370,13 @@ class PrismaSchemaGenerator {
|
|
|
253
370
|
return new prisma_builder_1.AttributeArgValue('FunctionCall', this.makeFunctionCall(node));
|
|
254
371
|
}
|
|
255
372
|
else {
|
|
256
|
-
throw new sdk_1.PluginError(`Unsupported attribute argument expression type: ${node.$type}`);
|
|
373
|
+
throw new sdk_1.PluginError(_1.name, `Unsupported attribute argument expression type: ${node.$type}`);
|
|
257
374
|
}
|
|
258
375
|
}
|
|
259
376
|
makeFunctionCall(node) {
|
|
260
377
|
return new prisma_builder_1.FunctionCall((0, sdk_1.resolved)(node.function).name, node.args.map((arg) => {
|
|
261
378
|
if (!(0, ast_1.isLiteralExpr)(arg.value)) {
|
|
262
|
-
throw new sdk_1.PluginError('Function call argument must be literal');
|
|
379
|
+
throw new sdk_1.PluginError(_1.name, 'Function call argument must be literal');
|
|
263
380
|
}
|
|
264
381
|
return new prisma_builder_1.FunctionCallArg(arg.name, arg.value.value);
|
|
265
382
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-generator.js","sourceRoot":"","sources":["../../../src/plugins/prisma/schema-generator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schema-generator.js","sourceRoot":"","sources":["../../../src/plugins/prisma/schema-generator.ts"],"names":[],"mappings":"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"}
|
package/plugins/zod/generator.js
CHANGED
|
@@ -17,11 +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"));
|
|
21
|
-
const
|
|
22
|
+
const upper_case_first_1 = require("upper-case-first");
|
|
23
|
+
const utils_1 = require("../../language-server/utils");
|
|
22
24
|
const plugin_utils_1 = require("../plugin-utils");
|
|
23
25
|
const transformer_1 = __importDefault(require("./transformer"));
|
|
24
26
|
const removeDir_1 = __importDefault(require("./utils/removeDir"));
|
|
27
|
+
const schema_gen_1 = require("./utils/schema-gen");
|
|
25
28
|
function generate(model, options, dmmf) {
|
|
26
29
|
var _a, _b;
|
|
27
30
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -35,24 +38,52 @@ function generate(model, options, dmmf) {
|
|
|
35
38
|
output = './generated/zod';
|
|
36
39
|
}
|
|
37
40
|
}
|
|
41
|
+
output = (0, sdk_1.resolvePath)(output, options);
|
|
38
42
|
yield handleGeneratorOutputValue(output);
|
|
39
43
|
const prismaClientDmmf = dmmf;
|
|
40
44
|
const modelOperations = prismaClientDmmf.mappings.modelOperations;
|
|
41
45
|
const inputObjectTypes = prismaClientDmmf.schema.inputObjectTypes.prisma;
|
|
42
46
|
const outputObjectTypes = prismaClientDmmf.schema.outputObjectTypes.prisma;
|
|
43
47
|
const models = prismaClientDmmf.datamodel.models;
|
|
44
|
-
const project =
|
|
45
|
-
|
|
48
|
+
const project = (0, sdk_1.createProject)();
|
|
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
|
-
|
|
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
|
|
79
|
+
const shouldCompile = options.compile !== false;
|
|
80
|
+
if (!shouldCompile || options.preserveTsFiles === true) {
|
|
81
|
+
// save ts files
|
|
82
|
+
yield (0, sdk_1.saveProject)(project);
|
|
83
|
+
}
|
|
84
|
+
if (shouldCompile) {
|
|
85
|
+
yield (0, sdk_1.emitProject)(project);
|
|
86
|
+
}
|
|
56
87
|
});
|
|
57
88
|
}
|
|
58
89
|
exports.generate = generate;
|
|
@@ -65,7 +96,28 @@ function handleGeneratorOutputValue(output) {
|
|
|
65
96
|
transformer_1.default.setOutputPath(output);
|
|
66
97
|
});
|
|
67
98
|
}
|
|
68
|
-
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) {
|
|
69
121
|
return __awaiter(this, void 0, void 0, function* () {
|
|
70
122
|
const enumTypes = [...prismaSchemaEnum, ...modelSchemaEnum];
|
|
71
123
|
const enumNames = enumTypes.map((enumItem) => enumItem.name);
|
|
@@ -73,30 +125,127 @@ function generateEnumSchemas(prismaSchemaEnum, modelSchemaEnum, project) {
|
|
|
73
125
|
const transformer = new transformer_1.default({
|
|
74
126
|
enumTypes,
|
|
75
127
|
project,
|
|
128
|
+
zmodel,
|
|
76
129
|
});
|
|
77
130
|
yield transformer.generateEnumSchemas();
|
|
78
131
|
});
|
|
79
132
|
}
|
|
80
|
-
function generateObjectSchemas(inputObjectTypes, project) {
|
|
133
|
+
function generateObjectSchemas(inputObjectTypes, project, output, zmodel) {
|
|
81
134
|
var _a, _b;
|
|
82
135
|
return __awaiter(this, void 0, void 0, function* () {
|
|
136
|
+
const moduleNames = [];
|
|
83
137
|
for (let i = 0; i < inputObjectTypes.length; i += 1) {
|
|
84
138
|
const fields = (_a = inputObjectTypes[i]) === null || _a === void 0 ? void 0 : _a.fields;
|
|
85
139
|
const name = (_b = inputObjectTypes[i]) === null || _b === void 0 ? void 0 : _b.name;
|
|
86
|
-
const transformer = new transformer_1.default({ name, fields, project });
|
|
87
|
-
|
|
140
|
+
const transformer = new transformer_1.default({ name, fields, project, zmodel });
|
|
141
|
+
const moduleName = transformer.generateObjectSchema();
|
|
142
|
+
moduleNames.push(moduleName);
|
|
88
143
|
}
|
|
144
|
+
project.createSourceFile(path_1.default.join(output, 'objects/index.ts'), moduleNames.map((name) => `export * from './${name}';`).join('\n'), { overwrite: true });
|
|
89
145
|
});
|
|
90
146
|
}
|
|
91
|
-
function generateModelSchemas(
|
|
147
|
+
function generateModelSchemas(project, zmodel, output) {
|
|
92
148
|
return __awaiter(this, void 0, void 0, function* () {
|
|
93
|
-
const
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
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,
|
|
98
161
|
});
|
|
99
|
-
|
|
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};`);
|
|
237
|
+
});
|
|
238
|
+
return schemaName;
|
|
100
239
|
});
|
|
101
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
|
+
}
|
|
102
251
|
//# sourceMappingURL=generator.js.map
|