@zenstackhq/sdk 2.16.0 → 3.0.0-alpha.1
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/LICENSE +1 -1
- package/dist/index.cjs +1906 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +196 -0
- package/dist/index.d.ts +196 -0
- package/dist/index.js +1872 -0
- package/dist/index.js.map +1 -0
- package/dist/schema.cjs +19 -0
- package/dist/schema.cjs.map +1 -0
- package/dist/schema.d.cts +138 -0
- package/dist/schema.d.ts +138 -0
- package/dist/schema.js +1 -0
- package/dist/schema.js.map +1 -0
- package/package.json +43 -39
- package/README.md +0 -5
- package/ast.d.ts +0 -1
- package/ast.js +0 -18
- package/ast.js.map +0 -1
- package/code-gen.d.ts +0 -37
- package/code-gen.js +0 -114
- package/code-gen.js.map +0 -1
- package/constants.d.ts +0 -15
- package/constants.js +0 -21
- package/constants.js.map +0 -1
- package/dmmf-helpers/aggregate-helpers.d.ts +0 -5
- package/dmmf-helpers/aggregate-helpers.js +0 -65
- package/dmmf-helpers/aggregate-helpers.js.map +0 -1
- package/dmmf-helpers/include-helpers.d.ts +0 -2
- package/dmmf-helpers/include-helpers.js +0 -88
- package/dmmf-helpers/include-helpers.js.map +0 -1
- package/dmmf-helpers/index.d.ts +0 -7
- package/dmmf-helpers/index.js +0 -24
- package/dmmf-helpers/index.js.map +0 -1
- package/dmmf-helpers/missing-types-helper.d.ts +0 -2
- package/dmmf-helpers/missing-types-helper.js +0 -14
- package/dmmf-helpers/missing-types-helper.js.map +0 -1
- package/dmmf-helpers/model-helpers.d.ts +0 -16
- package/dmmf-helpers/model-helpers.js +0 -38
- package/dmmf-helpers/model-helpers.js.map +0 -1
- package/dmmf-helpers/modelArgs-helpers.d.ts +0 -2
- package/dmmf-helpers/modelArgs-helpers.js +0 -67
- package/dmmf-helpers/modelArgs-helpers.js.map +0 -1
- package/dmmf-helpers/select-helpers.d.ts +0 -2
- package/dmmf-helpers/select-helpers.js +0 -152
- package/dmmf-helpers/select-helpers.js.map +0 -1
- package/dmmf-helpers/types.d.ts +0 -20
- package/dmmf-helpers/types.js +0 -3
- package/dmmf-helpers/types.js.map +0 -1
- package/index.d.ts +0 -11
- package/index.js +0 -30
- package/index.js.map +0 -1
- package/model-meta-generator.d.ts +0 -24
- package/model-meta-generator.js +0 -458
- package/model-meta-generator.js.map +0 -1
- package/names.d.ts +0 -9
- package/names.js +0 -17
- package/names.js.map +0 -1
- package/path.d.ts +0 -4
- package/path.js +0 -15
- package/path.js.map +0 -1
- package/policy.d.ts +0 -13
- package/policy.js +0 -57
- package/policy.js.map +0 -1
- package/prisma.d.ts +0 -21
- package/prisma.js +0 -84
- package/prisma.js.map +0 -1
- package/types.d.ts +0 -97
- package/types.js +0 -14
- package/types.js.map +0 -1
- package/typescript-expression-transformer.d.ts +0 -64
- package/typescript-expression-transformer.js +0 -491
- package/typescript-expression-transformer.js.map +0 -1
- package/utils.d.ts +0 -103
- package/utils.js +0 -633
- package/utils.js.map +0 -1
- package/validation.d.ts +0 -7
- package/validation.js +0 -37
- package/validation.js.map +0 -1
- package/zmodel-code-generator.d.ts +0 -66
- package/zmodel-code-generator.js +0 -353
- package/zmodel-code-generator.js.map +0 -1
package/utils.js
DELETED
|
@@ -1,633 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getDataModels = getDataModels;
|
|
7
|
-
exports.getDataModelAndTypeDefs = getDataModelAndTypeDefs;
|
|
8
|
-
exports.resolved = resolved;
|
|
9
|
-
exports.getLiteral = getLiteral;
|
|
10
|
-
exports.getArray = getArray;
|
|
11
|
-
exports.getLiteralArray = getLiteralArray;
|
|
12
|
-
exports.getObjectLiteral = getObjectLiteral;
|
|
13
|
-
exports.indentString = indentString;
|
|
14
|
-
exports.hasAttribute = hasAttribute;
|
|
15
|
-
exports.getAttribute = getAttribute;
|
|
16
|
-
exports.getAttributeArgs = getAttributeArgs;
|
|
17
|
-
exports.getAttributeArg = getAttributeArg;
|
|
18
|
-
exports.getAttributeArgLiteral = getAttributeArgLiteral;
|
|
19
|
-
exports.isEnumFieldReference = isEnumFieldReference;
|
|
20
|
-
exports.isDataModelFieldReference = isDataModelFieldReference;
|
|
21
|
-
exports.getModelIdFields = getModelIdFields;
|
|
22
|
-
exports.getModelUniqueFields = getModelUniqueFields;
|
|
23
|
-
exports.isIdField = isIdField;
|
|
24
|
-
exports.isRelationshipField = isRelationshipField;
|
|
25
|
-
exports.isForeignKeyField = isForeignKeyField;
|
|
26
|
-
exports.getRelationKeyPairs = getRelationKeyPairs;
|
|
27
|
-
exports.getRelationField = getRelationField;
|
|
28
|
-
exports.getForeignKeyFields = getForeignKeyFields;
|
|
29
|
-
exports.resolvePath = resolvePath;
|
|
30
|
-
exports.requireOption = requireOption;
|
|
31
|
-
exports.parseOptionAsStrings = parseOptionAsStrings;
|
|
32
|
-
exports.getFunctionExpressionContext = getFunctionExpressionContext;
|
|
33
|
-
exports.isFutureExpr = isFutureExpr;
|
|
34
|
-
exports.isAuthInvocation = isAuthInvocation;
|
|
35
|
-
exports.isFromStdlib = isFromStdlib;
|
|
36
|
-
exports.getContainingModel = getContainingModel;
|
|
37
|
-
exports.getPreviewFeatures = getPreviewFeatures;
|
|
38
|
-
exports.getAuthDecl = getAuthDecl;
|
|
39
|
-
exports.isDelegateModel = isDelegateModel;
|
|
40
|
-
exports.isDiscriminatorField = isDiscriminatorField;
|
|
41
|
-
exports.getIdFields = getIdFields;
|
|
42
|
-
exports.getFieldReference = getFieldReference;
|
|
43
|
-
exports.getModelFieldsWithBases = getModelFieldsWithBases;
|
|
44
|
-
exports.getRecursiveBases = getRecursiveBases;
|
|
45
|
-
exports.ensureEmptyDir = ensureEmptyDir;
|
|
46
|
-
exports.getDataSourceProvider = getDataSourceProvider;
|
|
47
|
-
exports.getInheritedFromDelegate = getInheritedFromDelegate;
|
|
48
|
-
exports.getInheritanceChain = getInheritanceChain;
|
|
49
|
-
exports.getRelationBackLink = getRelationBackLink;
|
|
50
|
-
exports.getRelationName = getRelationName;
|
|
51
|
-
exports.getPrismaClientGenerator = getPrismaClientGenerator;
|
|
52
|
-
const ast_1 = require("@zenstackhq/language/ast");
|
|
53
|
-
const node_fs_1 = __importDefault(require("node:fs"));
|
|
54
|
-
const path_1 = __importDefault(require("path"));
|
|
55
|
-
const constants_1 = require("./constants");
|
|
56
|
-
const types_1 = require("./types");
|
|
57
|
-
/**
|
|
58
|
-
* Gets data models in the ZModel schema.
|
|
59
|
-
*/
|
|
60
|
-
function getDataModels(model, includeIgnored = false) {
|
|
61
|
-
const r = model.declarations.filter((d) => (0, ast_1.isDataModel)(d));
|
|
62
|
-
if (includeIgnored) {
|
|
63
|
-
return r;
|
|
64
|
-
}
|
|
65
|
-
else {
|
|
66
|
-
return r.filter((model) => !hasAttribute(model, '@@ignore'));
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Gets data models and type defs in the ZModel schema.
|
|
71
|
-
*/
|
|
72
|
-
function getDataModelAndTypeDefs(model, includeIgnored = false) {
|
|
73
|
-
const r = model.declarations.filter((d) => (0, ast_1.isDataModel)(d) || (0, ast_1.isTypeDef)(d));
|
|
74
|
-
if (includeIgnored) {
|
|
75
|
-
return r;
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
return r.filter((model) => !hasAttribute(model, '@@ignore'));
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
function resolved(ref) {
|
|
82
|
-
if (!ref.ref) {
|
|
83
|
-
throw new Error(`Reference not resolved: ${ref.$refText}`);
|
|
84
|
-
}
|
|
85
|
-
return ref.ref;
|
|
86
|
-
}
|
|
87
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
88
|
-
function getLiteral(expr) {
|
|
89
|
-
switch (expr === null || expr === void 0 ? void 0 : expr.$type) {
|
|
90
|
-
case 'ObjectExpr':
|
|
91
|
-
return getObjectLiteral(expr);
|
|
92
|
-
case 'StringLiteral':
|
|
93
|
-
case 'BooleanLiteral':
|
|
94
|
-
return expr.value;
|
|
95
|
-
case 'NumberLiteral':
|
|
96
|
-
return parseFloat(expr.value);
|
|
97
|
-
default:
|
|
98
|
-
return undefined;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
function getArray(expr) {
|
|
102
|
-
return (0, ast_1.isArrayExpr)(expr) || (0, ast_1.isConfigArrayExpr)(expr) ? expr.items : undefined;
|
|
103
|
-
}
|
|
104
|
-
function getLiteralArray(expr) {
|
|
105
|
-
const arr = getArray(expr);
|
|
106
|
-
if (!arr) {
|
|
107
|
-
return undefined;
|
|
108
|
-
}
|
|
109
|
-
return arr.map((item) => (0, ast_1.isExpression)(item) && getLiteral(item)).filter((v) => v !== undefined);
|
|
110
|
-
}
|
|
111
|
-
function getObjectLiteral(expr) {
|
|
112
|
-
if (!expr || !(0, ast_1.isObjectExpr)(expr)) {
|
|
113
|
-
return undefined;
|
|
114
|
-
}
|
|
115
|
-
const result = {};
|
|
116
|
-
for (const field of expr.fields) {
|
|
117
|
-
let fieldValue;
|
|
118
|
-
if ((0, ast_1.isLiteralExpr)(field.value)) {
|
|
119
|
-
fieldValue = getLiteral(field.value);
|
|
120
|
-
}
|
|
121
|
-
else if ((0, ast_1.isArrayExpr)(field.value)) {
|
|
122
|
-
fieldValue = getLiteralArray(field.value);
|
|
123
|
-
}
|
|
124
|
-
else if ((0, ast_1.isObjectExpr)(field.value)) {
|
|
125
|
-
fieldValue = getObjectLiteral(field.value);
|
|
126
|
-
}
|
|
127
|
-
if (fieldValue === undefined) {
|
|
128
|
-
return undefined;
|
|
129
|
-
}
|
|
130
|
-
else {
|
|
131
|
-
result[field.name] = fieldValue;
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
return result;
|
|
135
|
-
}
|
|
136
|
-
function indentString(string, count = 4) {
|
|
137
|
-
const indent = ' ';
|
|
138
|
-
return string.replace(/^(?!\s*$)/gm, indent.repeat(count));
|
|
139
|
-
}
|
|
140
|
-
function hasAttribute(decl, name) {
|
|
141
|
-
return !!getAttribute(decl, name);
|
|
142
|
-
}
|
|
143
|
-
function getAttribute(decl, name) {
|
|
144
|
-
return decl.attributes.find((attr) => attr.decl.$refText === name);
|
|
145
|
-
}
|
|
146
|
-
function getAttributeArgs(attr) {
|
|
147
|
-
const result = {};
|
|
148
|
-
for (const arg of attr.args) {
|
|
149
|
-
if (!arg.$resolvedParam) {
|
|
150
|
-
continue;
|
|
151
|
-
}
|
|
152
|
-
result[arg.$resolvedParam.name] = arg.value;
|
|
153
|
-
}
|
|
154
|
-
return result;
|
|
155
|
-
}
|
|
156
|
-
function getAttributeArg(attr, name) {
|
|
157
|
-
var _a;
|
|
158
|
-
for (const arg of attr.args) {
|
|
159
|
-
if (((_a = arg.$resolvedParam) === null || _a === void 0 ? void 0 : _a.name) === name) {
|
|
160
|
-
return arg.value;
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
return undefined;
|
|
164
|
-
}
|
|
165
|
-
function getAttributeArgLiteral(attr, name) {
|
|
166
|
-
var _a;
|
|
167
|
-
for (const arg of attr.args) {
|
|
168
|
-
if (((_a = arg.$resolvedParam) === null || _a === void 0 ? void 0 : _a.name) === name) {
|
|
169
|
-
return getLiteral(arg.value);
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
return undefined;
|
|
173
|
-
}
|
|
174
|
-
function isEnumFieldReference(node) {
|
|
175
|
-
return (0, ast_1.isReferenceExpr)(node) && (0, ast_1.isEnumField)(node.target.ref);
|
|
176
|
-
}
|
|
177
|
-
function isDataModelFieldReference(node) {
|
|
178
|
-
return (0, ast_1.isReferenceExpr)(node) && (0, ast_1.isDataModelField)(node.target.ref);
|
|
179
|
-
}
|
|
180
|
-
/**
|
|
181
|
-
* Gets `@@id` fields declared at the data model level (including search in base models)
|
|
182
|
-
*/
|
|
183
|
-
function getModelIdFields(model) {
|
|
184
|
-
const modelsToCheck = model.$baseMerged ? [model] : [model, ...getRecursiveBases(model)];
|
|
185
|
-
for (const modelToCheck of modelsToCheck) {
|
|
186
|
-
const idAttr = modelToCheck.attributes.find((attr) => attr.decl.$refText === '@@id');
|
|
187
|
-
if (!idAttr) {
|
|
188
|
-
continue;
|
|
189
|
-
}
|
|
190
|
-
const fieldsArg = idAttr.args.find((a) => { var _a; return ((_a = a.$resolvedParam) === null || _a === void 0 ? void 0 : _a.name) === 'fields'; });
|
|
191
|
-
if (!fieldsArg || !(0, ast_1.isArrayExpr)(fieldsArg.value)) {
|
|
192
|
-
continue;
|
|
193
|
-
}
|
|
194
|
-
return fieldsArg.value.items
|
|
195
|
-
.filter((item) => (0, ast_1.isReferenceExpr)(item))
|
|
196
|
-
.map((item) => resolved(item.target));
|
|
197
|
-
}
|
|
198
|
-
return [];
|
|
199
|
-
}
|
|
200
|
-
/**
|
|
201
|
-
* Gets `@@unique` fields declared at the data model level (including search in base models)
|
|
202
|
-
*/
|
|
203
|
-
function getModelUniqueFields(model) {
|
|
204
|
-
const modelsToCheck = model.$baseMerged ? [model] : [model, ...getRecursiveBases(model)];
|
|
205
|
-
for (const modelToCheck of modelsToCheck) {
|
|
206
|
-
const uniqueAttr = modelToCheck.attributes.find((attr) => attr.decl.$refText === '@@unique');
|
|
207
|
-
if (!uniqueAttr) {
|
|
208
|
-
continue;
|
|
209
|
-
}
|
|
210
|
-
const fieldsArg = uniqueAttr.args.find((a) => { var _a; return ((_a = a.$resolvedParam) === null || _a === void 0 ? void 0 : _a.name) === 'fields'; });
|
|
211
|
-
if (!fieldsArg || !(0, ast_1.isArrayExpr)(fieldsArg.value)) {
|
|
212
|
-
continue;
|
|
213
|
-
}
|
|
214
|
-
return fieldsArg.value.items
|
|
215
|
-
.filter((item) => (0, ast_1.isReferenceExpr)(item))
|
|
216
|
-
.map((item) => resolved(item.target));
|
|
217
|
-
}
|
|
218
|
-
return [];
|
|
219
|
-
}
|
|
220
|
-
/**
|
|
221
|
-
* Returns if the given field is declared as an id field.
|
|
222
|
-
*/
|
|
223
|
-
function isIdField(field) {
|
|
224
|
-
// field-level @id attribute
|
|
225
|
-
if (hasAttribute(field, '@id')) {
|
|
226
|
-
return true;
|
|
227
|
-
}
|
|
228
|
-
// NOTE: we have to use name to match fields because the fields
|
|
229
|
-
// may be inherited from an abstract base and have cloned identities
|
|
230
|
-
const model = field.$container;
|
|
231
|
-
// model-level @@id attribute with a list of fields
|
|
232
|
-
const modelLevelIds = getModelIdFields(model);
|
|
233
|
-
if (modelLevelIds.map((f) => f.name).includes(field.name)) {
|
|
234
|
-
return true;
|
|
235
|
-
}
|
|
236
|
-
if (model.fields.some((f) => hasAttribute(f, '@id')) || modelLevelIds.length > 0) {
|
|
237
|
-
// the model already has id field, don't check @unique and @@unique
|
|
238
|
-
return false;
|
|
239
|
-
}
|
|
240
|
-
// then, the first field with @unique can be used as id
|
|
241
|
-
const firstUniqueField = model.fields.find((f) => hasAttribute(f, '@unique'));
|
|
242
|
-
if (firstUniqueField) {
|
|
243
|
-
return firstUniqueField.name === field.name;
|
|
244
|
-
}
|
|
245
|
-
// last, the first model level @@unique can be used as id
|
|
246
|
-
const modelLevelUnique = getModelUniqueFields(model);
|
|
247
|
-
if (modelLevelUnique.map((f) => f.name).includes(field.name)) {
|
|
248
|
-
return true;
|
|
249
|
-
}
|
|
250
|
-
return false;
|
|
251
|
-
}
|
|
252
|
-
/**
|
|
253
|
-
* Returns if the given field is a relation field.
|
|
254
|
-
*/
|
|
255
|
-
function isRelationshipField(field) {
|
|
256
|
-
var _a;
|
|
257
|
-
return (0, ast_1.isDataModel)((_a = field.type.reference) === null || _a === void 0 ? void 0 : _a.ref);
|
|
258
|
-
}
|
|
259
|
-
/**
|
|
260
|
-
* Returns if the given field is a relation foreign key field.
|
|
261
|
-
*/
|
|
262
|
-
function isForeignKeyField(field) {
|
|
263
|
-
const model = field.$container;
|
|
264
|
-
return model.fields.some((f) => {
|
|
265
|
-
// find @relation attribute
|
|
266
|
-
const relAttr = f.attributes.find((attr) => { var _a; return ((_a = attr.decl.ref) === null || _a === void 0 ? void 0 : _a.name) === '@relation'; });
|
|
267
|
-
if (relAttr) {
|
|
268
|
-
// find "fields" arg
|
|
269
|
-
const fieldsArg = relAttr.args.find((a) => { var _a; return ((_a = a.$resolvedParam) === null || _a === void 0 ? void 0 : _a.name) === 'fields'; });
|
|
270
|
-
if (fieldsArg && (0, ast_1.isArrayExpr)(fieldsArg.value)) {
|
|
271
|
-
// find a matching field reference
|
|
272
|
-
return fieldsArg.value.items.some((item) => {
|
|
273
|
-
if ((0, ast_1.isReferenceExpr)(item)) {
|
|
274
|
-
return item.target.ref === field;
|
|
275
|
-
}
|
|
276
|
-
else {
|
|
277
|
-
return false;
|
|
278
|
-
}
|
|
279
|
-
});
|
|
280
|
-
}
|
|
281
|
-
}
|
|
282
|
-
return false;
|
|
283
|
-
});
|
|
284
|
-
}
|
|
285
|
-
/**
|
|
286
|
-
* Gets the foreign key-id field pairs from the given relation field.
|
|
287
|
-
*/
|
|
288
|
-
function getRelationKeyPairs(relationField) {
|
|
289
|
-
if (!isRelationshipField(relationField)) {
|
|
290
|
-
return [];
|
|
291
|
-
}
|
|
292
|
-
const relAttr = relationField.attributes.find((attr) => { var _a; return ((_a = attr.decl.ref) === null || _a === void 0 ? void 0 : _a.name) === '@relation'; });
|
|
293
|
-
if (relAttr) {
|
|
294
|
-
// find "fields" arg
|
|
295
|
-
const fieldsArg = getAttributeArg(relAttr, 'fields');
|
|
296
|
-
let fkFields;
|
|
297
|
-
if (fieldsArg && (0, ast_1.isArrayExpr)(fieldsArg)) {
|
|
298
|
-
fkFields = fieldsArg.items
|
|
299
|
-
.filter((item) => (0, ast_1.isReferenceExpr)(item))
|
|
300
|
-
.map((item) => item.target.ref);
|
|
301
|
-
}
|
|
302
|
-
else {
|
|
303
|
-
return [];
|
|
304
|
-
}
|
|
305
|
-
// find "references" arg
|
|
306
|
-
const referencesArg = getAttributeArg(relAttr, 'references');
|
|
307
|
-
let idFields;
|
|
308
|
-
if (referencesArg && (0, ast_1.isArrayExpr)(referencesArg)) {
|
|
309
|
-
idFields = referencesArg.items
|
|
310
|
-
.filter((item) => (0, ast_1.isReferenceExpr)(item))
|
|
311
|
-
.map((item) => item.target.ref);
|
|
312
|
-
}
|
|
313
|
-
else {
|
|
314
|
-
return [];
|
|
315
|
-
}
|
|
316
|
-
if (idFields.length !== fkFields.length) {
|
|
317
|
-
throw new Error(`Relation's references arg and fields are must have equal length`);
|
|
318
|
-
}
|
|
319
|
-
return idFields.map((idField, i) => ({ id: idField, foreignKey: fkFields[i] }));
|
|
320
|
-
}
|
|
321
|
-
return [];
|
|
322
|
-
}
|
|
323
|
-
/**
|
|
324
|
-
* Gets the relation field of the given foreign key field.
|
|
325
|
-
*/
|
|
326
|
-
function getRelationField(fkField) {
|
|
327
|
-
const model = fkField.$container;
|
|
328
|
-
return model.fields.find((f) => {
|
|
329
|
-
const relAttr = f.attributes.find((attr) => { var _a; return ((_a = attr.decl.ref) === null || _a === void 0 ? void 0 : _a.name) === '@relation'; });
|
|
330
|
-
if (relAttr) {
|
|
331
|
-
const fieldsArg = getAttributeArg(relAttr, 'fields');
|
|
332
|
-
if (fieldsArg && (0, ast_1.isArrayExpr)(fieldsArg)) {
|
|
333
|
-
return fieldsArg.items.some((item) => (0, ast_1.isReferenceExpr)(item) && item.target.ref === fkField);
|
|
334
|
-
}
|
|
335
|
-
}
|
|
336
|
-
return false;
|
|
337
|
-
});
|
|
338
|
-
}
|
|
339
|
-
/**
|
|
340
|
-
* Gets the foreign key fields of the given relation field.
|
|
341
|
-
*/
|
|
342
|
-
function getForeignKeyFields(relationField) {
|
|
343
|
-
return getRelationKeyPairs(relationField).map((pair) => pair.foreignKey);
|
|
344
|
-
}
|
|
345
|
-
function resolvePath(_path, options) {
|
|
346
|
-
if (path_1.default.isAbsolute(_path)) {
|
|
347
|
-
return _path;
|
|
348
|
-
}
|
|
349
|
-
else {
|
|
350
|
-
return path_1.default.resolve(path_1.default.dirname(options.schemaPath), _path);
|
|
351
|
-
}
|
|
352
|
-
}
|
|
353
|
-
function requireOption(options, name, pluginName) {
|
|
354
|
-
const value = options[name];
|
|
355
|
-
if (value === undefined) {
|
|
356
|
-
throw new types_1.PluginError(pluginName, `required option "${name}" is not provided`);
|
|
357
|
-
}
|
|
358
|
-
return value;
|
|
359
|
-
}
|
|
360
|
-
function parseOptionAsStrings(options, optionName, pluginName) {
|
|
361
|
-
const value = options[optionName];
|
|
362
|
-
if (value === undefined) {
|
|
363
|
-
return undefined;
|
|
364
|
-
}
|
|
365
|
-
else if (typeof value === 'string') {
|
|
366
|
-
// comma separated string
|
|
367
|
-
return value
|
|
368
|
-
.split(',')
|
|
369
|
-
.filter((i) => !!i)
|
|
370
|
-
.map((i) => i.trim());
|
|
371
|
-
}
|
|
372
|
-
else if (Array.isArray(value) && value.every((i) => typeof i === 'string')) {
|
|
373
|
-
// string array
|
|
374
|
-
return value;
|
|
375
|
-
}
|
|
376
|
-
else {
|
|
377
|
-
throw new types_1.PluginError(pluginName, `Invalid "${optionName}" option: must be a comma-separated string or an array of strings`);
|
|
378
|
-
}
|
|
379
|
-
}
|
|
380
|
-
function getFunctionExpressionContext(funcDecl) {
|
|
381
|
-
const funcAllowedContext = [];
|
|
382
|
-
const funcAttr = funcDecl.attributes.find((attr) => attr.decl.$refText === '@@@expressionContext');
|
|
383
|
-
if (funcAttr) {
|
|
384
|
-
const contextArg = funcAttr.args[0].value;
|
|
385
|
-
if ((0, ast_1.isArrayExpr)(contextArg)) {
|
|
386
|
-
contextArg.items.forEach((item) => {
|
|
387
|
-
if (isEnumFieldReference(item)) {
|
|
388
|
-
funcAllowedContext.push(item.target.$refText);
|
|
389
|
-
}
|
|
390
|
-
});
|
|
391
|
-
}
|
|
392
|
-
}
|
|
393
|
-
return funcAllowedContext;
|
|
394
|
-
}
|
|
395
|
-
function isFutureExpr(node) {
|
|
396
|
-
var _a;
|
|
397
|
-
return (0, ast_1.isInvocationExpr)(node) && ((_a = node.function.ref) === null || _a === void 0 ? void 0 : _a.name) === 'future' && isFromStdlib(node.function.ref);
|
|
398
|
-
}
|
|
399
|
-
function isAuthInvocation(node) {
|
|
400
|
-
var _a;
|
|
401
|
-
return (0, ast_1.isInvocationExpr)(node) && ((_a = node.function.ref) === null || _a === void 0 ? void 0 : _a.name) === 'auth' && isFromStdlib(node.function.ref);
|
|
402
|
-
}
|
|
403
|
-
function isFromStdlib(node) {
|
|
404
|
-
const model = getContainingModel(node);
|
|
405
|
-
return !!model && !!model.$document && model.$document.uri.path.endsWith(constants_1.STD_LIB_MODULE_NAME);
|
|
406
|
-
}
|
|
407
|
-
function getContainingModel(node) {
|
|
408
|
-
if (!node) {
|
|
409
|
-
return null;
|
|
410
|
-
}
|
|
411
|
-
return (0, ast_1.isModel)(node) ? node : getContainingModel(node.$container);
|
|
412
|
-
}
|
|
413
|
-
function getPreviewFeatures(model) {
|
|
414
|
-
const jsGenerator = model.declarations.find((d) => (0, ast_1.isGeneratorDecl)(d) &&
|
|
415
|
-
d.fields.some((f) => f.name === 'provider' &&
|
|
416
|
-
(getLiteral(f.value) === 'prisma-client-js' ||
|
|
417
|
-
getLiteral(f.value) === 'prisma-client')));
|
|
418
|
-
if (jsGenerator) {
|
|
419
|
-
const previewFeaturesField = jsGenerator.fields.find((f) => f.name === 'previewFeatures');
|
|
420
|
-
if (previewFeaturesField) {
|
|
421
|
-
return getLiteralArray(previewFeaturesField.value);
|
|
422
|
-
}
|
|
423
|
-
}
|
|
424
|
-
return [];
|
|
425
|
-
}
|
|
426
|
-
function getAuthDecl(decls) {
|
|
427
|
-
let authModel = decls.find((m) => hasAttribute(m, '@@auth'));
|
|
428
|
-
if (!authModel) {
|
|
429
|
-
authModel = decls.find((m) => m.name === 'User');
|
|
430
|
-
}
|
|
431
|
-
return authModel;
|
|
432
|
-
}
|
|
433
|
-
function isDelegateModel(node) {
|
|
434
|
-
return (0, ast_1.isDataModel)(node) && hasAttribute(node, '@@delegate');
|
|
435
|
-
}
|
|
436
|
-
function isDiscriminatorField(field) {
|
|
437
|
-
var _a, _b;
|
|
438
|
-
if (!(0, ast_1.isDataModel)(field.$container)) {
|
|
439
|
-
return false;
|
|
440
|
-
}
|
|
441
|
-
const model = (_a = field.$inheritedFrom) !== null && _a !== void 0 ? _a : field.$container;
|
|
442
|
-
const delegateAttr = getAttribute(model, '@@delegate');
|
|
443
|
-
if (!delegateAttr) {
|
|
444
|
-
return false;
|
|
445
|
-
}
|
|
446
|
-
const arg = (_b = delegateAttr.args[0]) === null || _b === void 0 ? void 0 : _b.value;
|
|
447
|
-
return isDataModelFieldReference(arg) && arg.target.$refText === field.name;
|
|
448
|
-
}
|
|
449
|
-
function getIdFields(decl) {
|
|
450
|
-
const fields = (0, ast_1.isDataModel)(decl) ? getModelFieldsWithBases(decl) : decl.fields;
|
|
451
|
-
const fieldLevelId = fields.find((f) => f.attributes.some((attr) => attr.decl.$refText === '@id'));
|
|
452
|
-
if (fieldLevelId) {
|
|
453
|
-
return [fieldLevelId];
|
|
454
|
-
}
|
|
455
|
-
else {
|
|
456
|
-
// get model level @@id attribute
|
|
457
|
-
const modelIdAttr = decl.attributes.find((attr) => { var _a, _b; return ((_b = (_a = attr.decl) === null || _a === void 0 ? void 0 : _a.ref) === null || _b === void 0 ? void 0 : _b.name) === '@@id'; });
|
|
458
|
-
if (modelIdAttr) {
|
|
459
|
-
// get fields referenced in the attribute: @@id([field1, field2]])
|
|
460
|
-
if (!(0, ast_1.isArrayExpr)(modelIdAttr.args[0].value)) {
|
|
461
|
-
return [];
|
|
462
|
-
}
|
|
463
|
-
const argValue = modelIdAttr.args[0].value;
|
|
464
|
-
return argValue.items
|
|
465
|
-
.filter((expr) => (0, ast_1.isReferenceExpr)(expr) && !!getFieldReference(expr))
|
|
466
|
-
.map((expr) => expr.target.ref);
|
|
467
|
-
}
|
|
468
|
-
}
|
|
469
|
-
return [];
|
|
470
|
-
}
|
|
471
|
-
function getFieldReference(expr) {
|
|
472
|
-
if ((0, ast_1.isReferenceExpr)(expr) && ((0, ast_1.isDataModelField)(expr.target.ref) || (0, ast_1.isTypeDefField)(expr.target.ref))) {
|
|
473
|
-
return expr.target.ref;
|
|
474
|
-
}
|
|
475
|
-
else if ((0, ast_1.isMemberAccessExpr)(expr) && ((0, ast_1.isDataModelField)(expr.member.ref) || (0, ast_1.isTypeDefField)(expr.member.ref))) {
|
|
476
|
-
return expr.member.ref;
|
|
477
|
-
}
|
|
478
|
-
else {
|
|
479
|
-
return undefined;
|
|
480
|
-
}
|
|
481
|
-
}
|
|
482
|
-
function getModelFieldsWithBases(model, includeDelegate = true) {
|
|
483
|
-
if (model.$baseMerged) {
|
|
484
|
-
return model.fields;
|
|
485
|
-
}
|
|
486
|
-
else {
|
|
487
|
-
return [...model.fields, ...getRecursiveBases(model, includeDelegate).flatMap((base) => base.fields)];
|
|
488
|
-
}
|
|
489
|
-
}
|
|
490
|
-
function getRecursiveBases(dataModel, includeDelegate = true, seen = new Set()) {
|
|
491
|
-
const result = [];
|
|
492
|
-
if (seen.has(dataModel)) {
|
|
493
|
-
return result;
|
|
494
|
-
}
|
|
495
|
-
seen.add(dataModel);
|
|
496
|
-
dataModel.superTypes.forEach((superType) => {
|
|
497
|
-
const baseDecl = superType.ref;
|
|
498
|
-
if (baseDecl) {
|
|
499
|
-
if (!includeDelegate && isDelegateModel(baseDecl)) {
|
|
500
|
-
return;
|
|
501
|
-
}
|
|
502
|
-
result.push(baseDecl);
|
|
503
|
-
result.push(...getRecursiveBases(baseDecl, includeDelegate, seen));
|
|
504
|
-
}
|
|
505
|
-
});
|
|
506
|
-
return result;
|
|
507
|
-
}
|
|
508
|
-
function ensureEmptyDir(dir) {
|
|
509
|
-
if (!node_fs_1.default.existsSync(dir)) {
|
|
510
|
-
node_fs_1.default.mkdirSync(dir, { recursive: true });
|
|
511
|
-
return;
|
|
512
|
-
}
|
|
513
|
-
const stats = node_fs_1.default.statSync(dir);
|
|
514
|
-
if (stats.isDirectory()) {
|
|
515
|
-
node_fs_1.default.rmSync(dir, { recursive: true });
|
|
516
|
-
node_fs_1.default.mkdirSync(dir, { recursive: true });
|
|
517
|
-
}
|
|
518
|
-
else {
|
|
519
|
-
throw new Error(`Path "${dir}" already exists and is not a directory`);
|
|
520
|
-
}
|
|
521
|
-
}
|
|
522
|
-
/**
|
|
523
|
-
* Gets the data source provider from the given model.
|
|
524
|
-
*/
|
|
525
|
-
function getDataSourceProvider(model) {
|
|
526
|
-
const dataSource = model.declarations.find(ast_1.isDataSource);
|
|
527
|
-
if (!dataSource) {
|
|
528
|
-
return undefined;
|
|
529
|
-
}
|
|
530
|
-
const provider = dataSource === null || dataSource === void 0 ? void 0 : dataSource.fields.find((f) => f.name === 'provider');
|
|
531
|
-
if (!provider) {
|
|
532
|
-
return undefined;
|
|
533
|
-
}
|
|
534
|
-
return getLiteral(provider.value);
|
|
535
|
-
}
|
|
536
|
-
/**
|
|
537
|
-
* Finds the original delegate base model that defines the given field.
|
|
538
|
-
*/
|
|
539
|
-
function getInheritedFromDelegate(field) {
|
|
540
|
-
if (!field.$inheritedFrom) {
|
|
541
|
-
return undefined;
|
|
542
|
-
}
|
|
543
|
-
// find the original base delegate model that defines this field,
|
|
544
|
-
// use `findLast` to start from the uppermost base
|
|
545
|
-
const bases = getRecursiveBases(field.$container, true);
|
|
546
|
-
const foundBase = bases.findLast((base) => base.fields.some((f) => f.name === field.name) && isDelegateModel(base));
|
|
547
|
-
return foundBase;
|
|
548
|
-
}
|
|
549
|
-
/**
|
|
550
|
-
* Gets the inheritance chain from "from" to "to", excluding them.
|
|
551
|
-
*/
|
|
552
|
-
function getInheritanceChain(from, to) {
|
|
553
|
-
if (from === to) {
|
|
554
|
-
return [];
|
|
555
|
-
}
|
|
556
|
-
for (const base of from.superTypes) {
|
|
557
|
-
if (base.ref === to) {
|
|
558
|
-
return [];
|
|
559
|
-
}
|
|
560
|
-
const path = getInheritanceChain(base.ref, to);
|
|
561
|
-
if (path) {
|
|
562
|
-
return [base.ref, ...path];
|
|
563
|
-
}
|
|
564
|
-
}
|
|
565
|
-
return undefined;
|
|
566
|
-
}
|
|
567
|
-
/**
|
|
568
|
-
* Get the opposite side of a relation field.
|
|
569
|
-
*/
|
|
570
|
-
function getRelationBackLink(field) {
|
|
571
|
-
var _a, _b, _c;
|
|
572
|
-
if (!((_a = field.type.reference) === null || _a === void 0 ? void 0 : _a.ref) || !(0, ast_1.isDataModel)((_b = field.type.reference) === null || _b === void 0 ? void 0 : _b.ref)) {
|
|
573
|
-
return undefined;
|
|
574
|
-
}
|
|
575
|
-
const relName = getRelationName(field);
|
|
576
|
-
let sourceModel;
|
|
577
|
-
if (field.$inheritedFrom && isDelegateModel(field.$inheritedFrom)) {
|
|
578
|
-
// field is inherited from a delegate model, use it as the source
|
|
579
|
-
sourceModel = field.$inheritedFrom;
|
|
580
|
-
}
|
|
581
|
-
else {
|
|
582
|
-
// otherwise use the field's container model as the source
|
|
583
|
-
sourceModel = field.$container;
|
|
584
|
-
}
|
|
585
|
-
const targetModel = field.type.reference.ref;
|
|
586
|
-
for (const otherField of targetModel.fields) {
|
|
587
|
-
if (otherField === field) {
|
|
588
|
-
// backlink field is never self
|
|
589
|
-
continue;
|
|
590
|
-
}
|
|
591
|
-
if (((_c = otherField.type.reference) === null || _c === void 0 ? void 0 : _c.ref) === sourceModel) {
|
|
592
|
-
if (relName) {
|
|
593
|
-
const otherRelName = getRelationName(otherField);
|
|
594
|
-
if (relName === otherRelName) {
|
|
595
|
-
return otherField;
|
|
596
|
-
}
|
|
597
|
-
}
|
|
598
|
-
else {
|
|
599
|
-
return otherField;
|
|
600
|
-
}
|
|
601
|
-
}
|
|
602
|
-
}
|
|
603
|
-
return undefined;
|
|
604
|
-
}
|
|
605
|
-
/**
|
|
606
|
-
* Get the relation name of a relation field.
|
|
607
|
-
*/
|
|
608
|
-
function getRelationName(field) {
|
|
609
|
-
const relAttr = getAttribute(field, '@relation');
|
|
610
|
-
if (!relAttr) {
|
|
611
|
-
return undefined;
|
|
612
|
-
}
|
|
613
|
-
return getAttributeArgLiteral(relAttr, 'name');
|
|
614
|
-
}
|
|
615
|
-
function getPrismaClientGenerator(model) {
|
|
616
|
-
var _a, _b, _c;
|
|
617
|
-
const decl = model.declarations.find((d) => (0, ast_1.isGeneratorDecl)(d) &&
|
|
618
|
-
d.fields.some((f) => f.name === 'provider' &&
|
|
619
|
-
(getLiteral(f.value) === 'prisma-client-js' ||
|
|
620
|
-
getLiteral(f.value) === 'prisma-client')));
|
|
621
|
-
if (!decl) {
|
|
622
|
-
return undefined;
|
|
623
|
-
}
|
|
624
|
-
const provider = getLiteral((_a = decl.fields.find((f) => f.name === 'provider')) === null || _a === void 0 ? void 0 : _a.value);
|
|
625
|
-
return {
|
|
626
|
-
name: decl.name,
|
|
627
|
-
output: getLiteral((_b = decl.fields.find((f) => f.name === 'output')) === null || _b === void 0 ? void 0 : _b.value),
|
|
628
|
-
previewFeatures: getLiteralArray((_c = decl.fields.find((f) => f.name === 'previewFeatures')) === null || _c === void 0 ? void 0 : _c.value),
|
|
629
|
-
provider,
|
|
630
|
-
isNewGenerator: provider === 'prisma-client',
|
|
631
|
-
};
|
|
632
|
-
}
|
|
633
|
-
//# sourceMappingURL=utils.js.map
|
package/utils.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
package/validation.d.ts
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { type DataModel, type DataModelAttribute, type DataModelFieldAttribute, type TypeDef } from './ast';
|
|
2
|
-
export declare function isValidationAttribute(attr: DataModelAttribute | DataModelFieldAttribute): boolean | undefined;
|
|
3
|
-
/**
|
|
4
|
-
* Returns if the given model contains any data validation rules (both at the model
|
|
5
|
-
* level and at the field level).
|
|
6
|
-
*/
|
|
7
|
-
export declare function hasValidationAttributes(decl: DataModel | TypeDef, seen?: Set<DataModel | TypeDef>): boolean;
|