@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.
Files changed (81) hide show
  1. package/LICENSE +1 -1
  2. package/dist/index.cjs +1906 -0
  3. package/dist/index.cjs.map +1 -0
  4. package/dist/index.d.cts +196 -0
  5. package/dist/index.d.ts +196 -0
  6. package/dist/index.js +1872 -0
  7. package/dist/index.js.map +1 -0
  8. package/dist/schema.cjs +19 -0
  9. package/dist/schema.cjs.map +1 -0
  10. package/dist/schema.d.cts +138 -0
  11. package/dist/schema.d.ts +138 -0
  12. package/dist/schema.js +1 -0
  13. package/dist/schema.js.map +1 -0
  14. package/package.json +43 -39
  15. package/README.md +0 -5
  16. package/ast.d.ts +0 -1
  17. package/ast.js +0 -18
  18. package/ast.js.map +0 -1
  19. package/code-gen.d.ts +0 -37
  20. package/code-gen.js +0 -114
  21. package/code-gen.js.map +0 -1
  22. package/constants.d.ts +0 -15
  23. package/constants.js +0 -21
  24. package/constants.js.map +0 -1
  25. package/dmmf-helpers/aggregate-helpers.d.ts +0 -5
  26. package/dmmf-helpers/aggregate-helpers.js +0 -65
  27. package/dmmf-helpers/aggregate-helpers.js.map +0 -1
  28. package/dmmf-helpers/include-helpers.d.ts +0 -2
  29. package/dmmf-helpers/include-helpers.js +0 -88
  30. package/dmmf-helpers/include-helpers.js.map +0 -1
  31. package/dmmf-helpers/index.d.ts +0 -7
  32. package/dmmf-helpers/index.js +0 -24
  33. package/dmmf-helpers/index.js.map +0 -1
  34. package/dmmf-helpers/missing-types-helper.d.ts +0 -2
  35. package/dmmf-helpers/missing-types-helper.js +0 -14
  36. package/dmmf-helpers/missing-types-helper.js.map +0 -1
  37. package/dmmf-helpers/model-helpers.d.ts +0 -16
  38. package/dmmf-helpers/model-helpers.js +0 -38
  39. package/dmmf-helpers/model-helpers.js.map +0 -1
  40. package/dmmf-helpers/modelArgs-helpers.d.ts +0 -2
  41. package/dmmf-helpers/modelArgs-helpers.js +0 -67
  42. package/dmmf-helpers/modelArgs-helpers.js.map +0 -1
  43. package/dmmf-helpers/select-helpers.d.ts +0 -2
  44. package/dmmf-helpers/select-helpers.js +0 -152
  45. package/dmmf-helpers/select-helpers.js.map +0 -1
  46. package/dmmf-helpers/types.d.ts +0 -20
  47. package/dmmf-helpers/types.js +0 -3
  48. package/dmmf-helpers/types.js.map +0 -1
  49. package/index.d.ts +0 -11
  50. package/index.js +0 -30
  51. package/index.js.map +0 -1
  52. package/model-meta-generator.d.ts +0 -24
  53. package/model-meta-generator.js +0 -458
  54. package/model-meta-generator.js.map +0 -1
  55. package/names.d.ts +0 -9
  56. package/names.js +0 -17
  57. package/names.js.map +0 -1
  58. package/path.d.ts +0 -4
  59. package/path.js +0 -15
  60. package/path.js.map +0 -1
  61. package/policy.d.ts +0 -13
  62. package/policy.js +0 -57
  63. package/policy.js.map +0 -1
  64. package/prisma.d.ts +0 -21
  65. package/prisma.js +0 -84
  66. package/prisma.js.map +0 -1
  67. package/types.d.ts +0 -97
  68. package/types.js +0 -14
  69. package/types.js.map +0 -1
  70. package/typescript-expression-transformer.d.ts +0 -64
  71. package/typescript-expression-transformer.js +0 -491
  72. package/typescript-expression-transformer.js.map +0 -1
  73. package/utils.d.ts +0 -103
  74. package/utils.js +0 -633
  75. package/utils.js.map +0 -1
  76. package/validation.d.ts +0 -7
  77. package/validation.js +0 -37
  78. package/validation.js.map +0 -1
  79. package/zmodel-code-generator.d.ts +0 -66
  80. package/zmodel-code-generator.js +0 -353
  81. 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;