zenstack 2.8.0 → 2.9.0

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 (63) hide show
  1. package/cli/cli-util.js +7 -5
  2. package/cli/cli-util.js.map +1 -1
  3. package/cli/plugin-runner.js +3 -1
  4. package/cli/plugin-runner.js.map +1 -1
  5. package/language-server/utils.d.ts +5 -1
  6. package/language-server/utils.js +7 -0
  7. package/language-server/utils.js.map +1 -1
  8. package/language-server/validator/attribute-application-validator.js +3 -0
  9. package/language-server/validator/attribute-application-validator.js.map +1 -1
  10. package/language-server/validator/datamodel-validator.js +0 -3
  11. package/language-server/validator/datamodel-validator.js.map +1 -1
  12. package/language-server/validator/function-invocation-validator.js +1 -1
  13. package/language-server/validator/function-invocation-validator.js.map +1 -1
  14. package/language-server/validator/schema-validator.js +2 -1
  15. package/language-server/validator/schema-validator.js.map +1 -1
  16. package/language-server/validator/typedef-validator.d.ts +1 -0
  17. package/language-server/validator/typedef-validator.js +4 -0
  18. package/language-server/validator/typedef-validator.js.map +1 -1
  19. package/language-server/validator/utils.d.ts +1 -5
  20. package/language-server/validator/utils.js +0 -65
  21. package/language-server/validator/utils.js.map +1 -1
  22. package/language-server/zmodel-linker.js +10 -9
  23. package/language-server/zmodel-linker.js.map +1 -1
  24. package/language-server/zmodel-scope.d.ts +2 -2
  25. package/language-server/zmodel-scope.js +35 -27
  26. package/language-server/zmodel-scope.js.map +1 -1
  27. package/package.json +4 -4
  28. package/plugins/enhancer/enhance/auth-type-generator.d.ts +2 -2
  29. package/plugins/enhancer/enhance/auth-type-generator.js +4 -4
  30. package/plugins/enhancer/enhance/auth-type-generator.js.map +1 -1
  31. package/plugins/enhancer/enhance/index.d.ts +7 -3
  32. package/plugins/enhancer/enhance/index.js +109 -77
  33. package/plugins/enhancer/enhance/index.js.map +1 -1
  34. package/plugins/enhancer/enhance/model-typedef-generator.js +22 -2
  35. package/plugins/enhancer/enhance/model-typedef-generator.js.map +1 -1
  36. package/plugins/enhancer/index.js +2 -2
  37. package/plugins/enhancer/index.js.map +1 -1
  38. package/plugins/enhancer/policy/policy-guard-generator.d.ts +1 -1
  39. package/plugins/enhancer/policy/policy-guard-generator.js +23 -35
  40. package/plugins/enhancer/policy/policy-guard-generator.js.map +1 -1
  41. package/plugins/enhancer/policy/utils.js +15 -12
  42. package/plugins/enhancer/policy/utils.js.map +1 -1
  43. package/plugins/plugin-utils.d.ts +1 -1
  44. package/plugins/plugin-utils.js +5 -3
  45. package/plugins/plugin-utils.js.map +1 -1
  46. package/plugins/prisma/index.js +18 -1
  47. package/plugins/prisma/index.js.map +1 -1
  48. package/plugins/prisma/schema-generator.d.ts +1 -1
  49. package/plugins/prisma/schema-generator.js +44 -56
  50. package/plugins/prisma/schema-generator.js.map +1 -1
  51. package/plugins/zod/generator.d.ts +2 -0
  52. package/plugins/zod/generator.js +77 -19
  53. package/plugins/zod/generator.js.map +1 -1
  54. package/plugins/zod/transformer.d.ts +3 -2
  55. package/plugins/zod/transformer.js +43 -12
  56. package/plugins/zod/transformer.js.map +1 -1
  57. package/plugins/zod/utils/schema-gen.d.ts +1 -2
  58. package/plugins/zod/utils/schema-gen.js +0 -40
  59. package/plugins/zod/utils/schema-gen.js.map +1 -1
  60. package/res/stdlib.zmodel +3 -3
  61. package/utils/ast-utils.d.ts +5 -7
  62. package/utils/ast-utils.js +8 -43
  63. package/utils/ast-utils.js.map +1 -1
@@ -14,11 +14,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.PrismaSchemaGenerator = void 0;
16
16
  const ast_1 = require("@zenstackhq/language/ast");
17
+ const sdk_1 = require("@zenstackhq/sdk");
17
18
  const prisma_1 = require("@zenstackhq/sdk/prisma");
18
19
  const ts_pattern_1 = require("ts-pattern");
19
- const ast_utils_1 = require("../../utils/ast-utils");
20
20
  const runtime_1 = require("@zenstackhq/runtime");
21
- const sdk_1 = require("@zenstackhq/sdk");
21
+ const sdk_2 = require("@zenstackhq/sdk");
22
22
  const fs_1 = __importDefault(require("fs"));
23
23
  const promises_1 = require("fs/promises");
24
24
  const lower_case_first_1 = require("lower-case-first");
@@ -32,6 +32,7 @@ const prisma_builder_1 = require("./prisma-builder");
32
32
  const MODEL_PASSTHROUGH_ATTR = '@@prisma.passthrough';
33
33
  const FIELD_PASSTHROUGH_ATTR = '@prisma.passthrough';
34
34
  const PROVIDERS_SUPPORTING_NAMED_CONSTRAINTS = ['postgresql', 'mysql', 'cockroachdb'];
35
+ const PROVIDERS_SUPPORTING_TYPEDEF_FIELDS = ['postgresql'];
35
36
  // Some database providers like postgres and mysql have default limit to the length of identifiers
36
37
  // Here we use a conservative value that should work for most cases, and truncate names if needed
37
38
  const IDENTIFIER_NAME_MAX_LENGTH = 50 - runtime_1.DELEGATE_AUX_RELATION_PREFIX.length;
@@ -41,7 +42,7 @@ const IDENTIFIER_NAME_MAX_LENGTH = 50 - runtime_1.DELEGATE_AUX_RELATION_PREFIX.l
41
42
  class PrismaSchemaGenerator {
42
43
  constructor(zmodel) {
43
44
  this.zmodel = zmodel;
44
- this.zModelGenerator = new sdk_1.ZModelCodeGenerator();
45
+ this.zModelGenerator = new sdk_2.ZModelCodeGenerator();
45
46
  this.PRELUDE = `//////////////////////////////////////////////////////////////////////////////////////////////
46
47
  // DO NOT MODIFY THIS FILE //
47
48
  // This file is automatically generated by ZenStack CLI and should not be manually updated. //
@@ -56,7 +57,7 @@ class PrismaSchemaGenerator {
56
57
  generate(options) {
57
58
  return __awaiter(this, void 0, void 0, function* () {
58
59
  if (!options.output) {
59
- throw new sdk_1.PluginError(_1.name, 'Output file is not specified');
60
+ throw new sdk_2.PluginError(_1.name, 'Output file is not specified');
60
61
  }
61
62
  const outFile = options.output;
62
63
  const warnings = [];
@@ -65,7 +66,7 @@ class PrismaSchemaGenerator {
65
66
  }
66
67
  if (options.customAttributesAsComments !== undefined &&
67
68
  typeof options.customAttributesAsComments !== 'boolean') {
68
- throw new sdk_1.PluginError(_1.name, 'option "customAttributesAsComments" must be a boolean');
69
+ throw new sdk_2.PluginError(_1.name, 'option "customAttributesAsComments" must be a boolean');
69
70
  }
70
71
  this.customAttributesAsComments = options.customAttributesAsComments === true;
71
72
  const prismaVersion = (0, prisma_1.getPrismaVersion)();
@@ -148,7 +149,7 @@ class PrismaSchemaGenerator {
148
149
  return JSON.stringify(expr.value);
149
150
  }
150
151
  exprToText(expr) {
151
- return new sdk_1.ZModelCodeGenerator({ quote: 'double' }).generate(expr);
152
+ return new sdk_2.ZModelCodeGenerator({ quote: 'double' }).generate(expr);
152
153
  }
153
154
  generateGenerator(prisma, decl, options) {
154
155
  var _a, _b;
@@ -160,7 +161,7 @@ class PrismaSchemaGenerator {
160
161
  if (prismaVersion) {
161
162
  const previewFeatures = JSON.parse((_b = (_a = generator.fields.find((f) => f.name === 'previewFeatures')) === null || _a === void 0 ? void 0 : _a.text) !== null && _b !== void 0 ? _b : '[]');
162
163
  if (!Array.isArray(previewFeatures)) {
163
- throw new sdk_1.PluginError(_1.name, 'option "previewFeatures" must be an array');
164
+ throw new sdk_2.PluginError(_1.name, 'option "previewFeatures" must be an array');
164
165
  }
165
166
  if (previewFeatures.length > 0) {
166
167
  const curr = generator.fields.find((f) => f.name === 'previewFeatures');
@@ -190,14 +191,14 @@ class PrismaSchemaGenerator {
190
191
  const model = decl.isView ? prisma.addView(decl.name) : prisma.addModel(decl.name);
191
192
  for (const field of decl.fields) {
192
193
  if (field.$inheritedFrom) {
193
- const inheritedFromDelegate = (0, sdk_1.getInheritedFromDelegate)(field);
194
+ const inheritedFromDelegate = (0, sdk_2.getInheritedFromDelegate)(field);
194
195
  if (
195
196
  // fields inherited from delegate are excluded from physical schema
196
197
  !inheritedFromDelegate ||
197
198
  // logical schema keeps all inherited fields
198
199
  this.mode === 'logical' ||
199
200
  // id fields are always kept
200
- (0, sdk_1.isIdField)(field)) {
201
+ (0, sdk_2.isIdField)(field)) {
201
202
  this.generateModelField(model, field);
202
203
  }
203
204
  }
@@ -224,7 +225,7 @@ class PrismaSchemaGenerator {
224
225
  if (this.mode !== 'physical') {
225
226
  return;
226
227
  }
227
- if (!(0, sdk_1.isDelegateModel)(decl)) {
228
+ if (!(0, sdk_2.isDelegateModel)(decl)) {
228
229
  return;
229
230
  }
230
231
  // collect concrete models inheriting this model
@@ -243,9 +244,9 @@ class PrismaSchemaGenerator {
243
244
  const baseModels = concreteDecl.superTypes
244
245
  .map((t) => t.ref)
245
246
  .filter((t) => !!t)
246
- .filter((t) => (0, sdk_1.isDelegateModel)(t));
247
+ .filter((t) => (0, sdk_2.isDelegateModel)(t));
247
248
  baseModels.forEach((base) => {
248
- const idFields = (0, ast_utils_1.getIdFields)(base);
249
+ const idFields = (0, sdk_1.getIdFields)(base);
249
250
  // add relation fields
250
251
  const relationField = this.truncate(`${runtime_1.DELEGATE_AUX_RELATION_PREFIX}_${(0, lower_case_first_1.lowerCaseFirst)(base.name)}`);
251
252
  model.addField(relationField, base.name, [
@@ -268,7 +269,7 @@ class PrismaSchemaGenerator {
268
269
  dataModel.fields.forEach((field) => {
269
270
  var _a;
270
271
  // don't process fields inherited from a delegate model
271
- if (field.$inheritedFrom && (0, sdk_1.isDelegateModel)(field.$inheritedFrom)) {
272
+ if (field.$inheritedFrom && (0, sdk_2.isDelegateModel)(field.$inheritedFrom)) {
272
273
  return;
273
274
  }
274
275
  const fieldType = (_a = field.type.reference) === null || _a === void 0 ? void 0 : _a.ref;
@@ -282,13 +283,13 @@ class PrismaSchemaGenerator {
282
283
  // e.g., delegate_aux_User_myAsset_Video
283
284
  const auxRelationName = this.truncate(`${runtime_1.DELEGATE_AUX_RELATION_PREFIX}_${dataModel.name}_${field.name}_${concrete.name}`);
284
285
  const auxRelationField = model.addField(auxRelationName, new prisma_builder_1.ModelFieldType(concrete.name, field.type.array, field.type.optional));
285
- const relAttr = (0, sdk_1.getAttribute)(field, '@relation');
286
+ const relAttr = (0, sdk_2.getAttribute)(field, '@relation');
286
287
  let relAttrAdded = false;
287
288
  if (relAttr) {
288
- if ((0, sdk_1.getAttributeArg)(relAttr, 'fields')) {
289
+ if ((0, sdk_2.getAttributeArg)(relAttr, 'fields')) {
289
290
  // for reach foreign key field pointing to the delegate model, we need to create an aux foreign key
290
291
  // to point to the concrete model
291
- const relationFieldPairs = (0, sdk_1.getRelationKeyPairs)(field);
292
+ const relationFieldPairs = (0, sdk_2.getRelationKeyPairs)(field);
292
293
  const addedFkFields = [];
293
294
  for (const { foreignKey } of relationFieldPairs) {
294
295
  const addedFkField = this.replicateForeignKey(model, dataModel, concrete, foreignKey);
@@ -343,7 +344,7 @@ class PrismaSchemaGenerator {
343
344
  }
344
345
  replicateForeignKeyModelLevelUnique(model, dataModel, origForeignKey, addedFkField) {
345
346
  for (const uniqueAttr of dataModel.attributes.filter((attr) => { var _a; return ((_a = attr.decl.ref) === null || _a === void 0 ? void 0 : _a.name) === '@@unique'; })) {
346
- const fields = (0, sdk_1.getAttributeArg)(uniqueAttr, 'fields');
347
+ const fields = (0, sdk_2.getAttributeArg)(uniqueAttr, 'fields');
347
348
  if (fields && (0, ast_1.isArrayExpr)(fields)) {
348
349
  const found = fields.items.find((fieldRef) => (0, ast_1.isReferenceExpr)(fieldRef) && fieldRef.target.ref === origForeignKey);
349
350
  if (found) {
@@ -423,7 +424,7 @@ class PrismaSchemaGenerator {
423
424
  if (!oppositeRelationField) {
424
425
  return;
425
426
  }
426
- const oppositeRelationAttr = (0, sdk_1.getAttribute)(oppositeRelationField, '@relation');
427
+ const oppositeRelationAttr = (0, sdk_2.getAttribute)(oppositeRelationField, '@relation');
427
428
  const fieldType = f.type.reference.ref;
428
429
  // relation name format: delegate_aux_[relationType]_[oppositeRelationField]_[concrete]
429
430
  const relName = this.truncate(`${runtime_1.DELEGATE_AUX_RELATION_PREFIX}_${fieldType.name}_${oppositeRelationField.name}_${decl.name}`);
@@ -433,14 +434,14 @@ class PrismaSchemaGenerator {
433
434
  // array relation doesn't need FK
434
435
  f.type.array ||
435
436
  // opposite relation already has FK, we don't need to generate on this side
436
- (oppositeRelationAttr && (0, sdk_1.getAttributeArg)(oppositeRelationAttr, 'fields'))) {
437
+ (oppositeRelationAttr && (0, sdk_2.getAttributeArg)(oppositeRelationAttr, 'fields'))) {
437
438
  prismaField.attributes.push(new prisma_builder_1.FieldAttribute('@relation', [
438
439
  new prisma_builder_1.AttributeArg(undefined, new prisma_builder_1.AttributeArgValue('String', relName)),
439
440
  ]));
440
441
  }
441
442
  else {
442
443
  // generate FK field
443
- const oppositeModelIds = (0, ast_utils_1.getIdFields)(oppositeRelationField.$container);
444
+ const oppositeModelIds = (0, sdk_1.getIdFields)(oppositeRelationField.$container);
444
445
  const fkFieldNames = [];
445
446
  oppositeModelIds.forEach((idField) => {
446
447
  const fkFieldName = this.truncate(`${runtime_1.DELEGATE_AUX_RELATION_PREFIX}_${f.name}_${idField.name}`);
@@ -462,10 +463,10 @@ class PrismaSchemaGenerator {
462
463
  findUpMatchingFieldFromDelegate(start, target) {
463
464
  for (const base of start.superTypes) {
464
465
  if ((0, ast_1.isDataModel)(base.ref)) {
465
- if ((0, sdk_1.isDelegateModel)(base.ref)) {
466
+ if ((0, sdk_2.isDelegateModel)(base.ref)) {
466
467
  const field = base.ref.fields.find((f) => f.name === target.name);
467
468
  if (field) {
468
- if (!field.$inheritedFrom || !(0, sdk_1.isDelegateModel)(field.$inheritedFrom)) {
469
+ if (!field.$inheritedFrom || !(0, sdk_2.isDelegateModel)(field.$inheritedFrom)) {
469
470
  // if this field is not inherited from an upper delegate, we're done
470
471
  return field;
471
472
  }
@@ -501,11 +502,11 @@ class PrismaSchemaGenerator {
501
502
  }
502
503
  }
503
504
  getRelationName(field) {
504
- const relAttr = (0, sdk_1.getAttribute)(field, '@relation');
505
+ const relAttr = (0, sdk_2.getAttribute)(field, '@relation');
505
506
  if (!relAttr) {
506
507
  return undefined;
507
508
  }
508
- return (0, sdk_1.getAttributeArgLiteral)(relAttr, 'name');
509
+ return (0, sdk_2.getAttributeArgLiteral)(relAttr, 'name');
509
510
  }
510
511
  get supportNamedConstraints() {
511
512
  const ds = this.zmodel.declarations.find(ast_1.isDataSource);
@@ -523,7 +524,7 @@ class PrismaSchemaGenerator {
523
524
  if (!attr.decl.ref) {
524
525
  return false;
525
526
  }
526
- const attrDecl = (0, sdk_1.resolved)(attr.decl);
527
+ const attrDecl = (0, sdk_2.resolved)(attr.decl);
527
528
  return (!!attrDecl.attributes.find((a) => { var _a; return ((_a = a.decl.ref) === null || _a === void 0 ? void 0 : _a.name) === '@@@prisma'; }) ||
528
529
  // the special pass-through attribute
529
530
  attrDecl.name === MODEL_PASSTHROUGH_ATTR ||
@@ -553,6 +554,7 @@ class PrismaSchemaGenerator {
553
554
  else if ((_a = field.type.reference) === null || _a === void 0 ? void 0 : _a.ref) {
554
555
  // model, enum, or type-def
555
556
  if ((0, ast_1.isTypeDef)(field.type.reference.ref)) {
557
+ this.ensureSupportingTypeDefFields(this.zmodel);
556
558
  fieldType = 'Json';
557
559
  }
558
560
  else {
@@ -567,7 +569,7 @@ class PrismaSchemaGenerator {
567
569
  }
568
570
  }
569
571
  if (!fieldType) {
570
- throw new sdk_1.PluginError(_1.name, `Field type is not resolved: ${field.$container.name}.${field.name}`);
572
+ throw new sdk_2.PluginError(_1.name, `Field type is not resolved: ${field.$container.name}.${field.name}`);
571
573
  }
572
574
  const isArray =
573
575
  // typed-JSON fields should be translated to scalar Json type
@@ -580,47 +582,33 @@ class PrismaSchemaGenerator {
580
582
  .filter((attr) =>
581
583
  // when building physical schema, exclude `@default` for id fields inherited from delegate base
582
584
  !(this.mode === 'physical' &&
583
- (0, sdk_1.isIdField)(field) &&
585
+ (0, sdk_2.isIdField)(field) &&
584
586
  this.isInheritedFromDelegate(field) &&
585
587
  attr.decl.$refText === '@default'))
586
588
  .map((attr) => this.makeFieldAttribute(attr));
587
589
  // user defined comments pass-through
588
590
  const docs = [...field.comments, ...this.getCustomAttributesAsComments(field)];
589
591
  const result = model.addField(field.name, type, attributes, docs, addToFront);
590
- if (this.mode === 'logical') {
591
- if (field.attributes.some((attr) => (0, enhancer_utils_1.isDefaultWithAuth)(attr))) {
592
- // field has `@default` with `auth()`, turn it into a dummy default value, and the
593
- // real default value setting is handled outside Prisma
594
- this.setDummyDefault(result, field);
595
- }
596
- }
597
592
  return result;
598
593
  }
599
- setDummyDefault(result, field) {
600
- const dummyDefaultValue = (0, ts_pattern_1.match)(field.type.type)
601
- .with('String', () => new prisma_builder_1.AttributeArgValue('String', ''))
602
- .with(ts_pattern_1.P.union('Int', 'BigInt', 'Float', 'Decimal'), () => new prisma_builder_1.AttributeArgValue('Number', '0'))
603
- .with('Boolean', () => new prisma_builder_1.AttributeArgValue('Boolean', 'false'))
604
- .with('DateTime', () => new prisma_builder_1.AttributeArgValue('FunctionCall', new prisma_builder_1.FunctionCall('now')))
605
- .with('Json', () => new prisma_builder_1.AttributeArgValue('String', '{}'))
606
- .with('Bytes', () => new prisma_builder_1.AttributeArgValue('String', ''))
607
- .otherwise(() => {
608
- throw new sdk_1.PluginError(_1.name, `Unsupported field type with default value: ${field.type.type}`);
609
- });
610
- result.attributes.push(new prisma_builder_1.FieldAttribute('@default', [new prisma_builder_1.AttributeArg(undefined, dummyDefaultValue)]));
594
+ ensureSupportingTypeDefFields(zmodel) {
595
+ const dsProvider = (0, sdk_2.getDataSourceProvider)(zmodel);
596
+ if (dsProvider && !PROVIDERS_SUPPORTING_TYPEDEF_FIELDS.includes(dsProvider)) {
597
+ throw new sdk_2.PluginError(_1.name, `Datasource provider "${dsProvider}" does not support "@json" fields`);
598
+ }
611
599
  }
612
600
  isInheritedFromDelegate(field) {
613
- return field.$inheritedFrom && (0, sdk_1.isDelegateModel)(field.$inheritedFrom);
601
+ return field.$inheritedFrom && (0, sdk_2.isDelegateModel)(field.$inheritedFrom);
614
602
  }
615
603
  makeFieldAttribute(attr) {
616
- const attrName = (0, sdk_1.resolved)(attr.decl).name;
604
+ const attrName = (0, sdk_2.resolved)(attr.decl).name;
617
605
  if (attrName === FIELD_PASSTHROUGH_ATTR) {
618
- const text = (0, sdk_1.getLiteral)(attr.args[0].value);
606
+ const text = (0, sdk_2.getLiteral)(attr.args[0].value);
619
607
  if (text) {
620
608
  return new prisma_builder_1.PassThroughAttribute(text);
621
609
  }
622
610
  else {
623
- throw new sdk_1.PluginError(_1.name, `Invalid arguments for ${FIELD_PASSTHROUGH_ATTR} attribute`);
611
+ throw new sdk_2.PluginError(_1.name, `Invalid arguments for ${FIELD_PASSTHROUGH_ATTR} attribute`);
624
612
  }
625
613
  }
626
614
  else {
@@ -643,32 +631,32 @@ class PrismaSchemaGenerator {
643
631
  return new prisma_builder_1.AttributeArgValue('Array', new Array(...node.items.map((item) => this.makeAttributeArgValue(item))));
644
632
  }
645
633
  else if ((0, ast_1.isReferenceExpr)(node)) {
646
- return new prisma_builder_1.AttributeArgValue('FieldReference', new prisma_builder_1.FieldReference((0, sdk_1.resolved)(node.target).name, node.args.map((arg) => new prisma_builder_1.FieldReferenceArg(arg.name, this.exprToText(arg.value)))));
634
+ return new prisma_builder_1.AttributeArgValue('FieldReference', new prisma_builder_1.FieldReference((0, sdk_2.resolved)(node.target).name, node.args.map((arg) => new prisma_builder_1.FieldReferenceArg(arg.name, this.exprToText(arg.value)))));
647
635
  }
648
636
  else if ((0, ast_1.isInvocationExpr)(node)) {
649
637
  // invocation
650
638
  return new prisma_builder_1.AttributeArgValue('FunctionCall', this.makeFunctionCall(node));
651
639
  }
652
640
  else {
653
- throw new sdk_1.PluginError(_1.name, `Unsupported attribute argument expression type: ${node.$type}`);
641
+ throw new sdk_2.PluginError(_1.name, `Unsupported attribute argument expression type: ${node.$type}`);
654
642
  }
655
643
  }
656
644
  makeFunctionCall(node) {
657
- return new prisma_builder_1.FunctionCall((0, sdk_1.resolved)(node.function).name, node.args.map((arg) => {
645
+ return new prisma_builder_1.FunctionCall((0, sdk_2.resolved)(node.function).name, node.args.map((arg) => {
658
646
  const val = (0, ts_pattern_1.match)(arg.value)
659
647
  .when(ast_1.isStringLiteral, (v) => `"${v.value}"`)
660
648
  .when(ast_1.isLiteralExpr, (v) => v.value.toString())
661
649
  .when(ast_1.isNullExpr, () => 'null')
662
650
  .otherwise(() => {
663
- throw new sdk_1.PluginError(_1.name, 'Function call argument must be literal or null');
651
+ throw new sdk_2.PluginError(_1.name, 'Function call argument must be literal or null');
664
652
  });
665
653
  return new prisma_builder_1.FunctionCallArg(val);
666
654
  }));
667
655
  }
668
656
  generateContainerAttribute(container, attr) {
669
- const attrName = (0, sdk_1.resolved)(attr.decl).name;
657
+ const attrName = (0, sdk_2.resolved)(attr.decl).name;
670
658
  if (attrName === MODEL_PASSTHROUGH_ATTR) {
671
- const text = (0, sdk_1.getLiteral)(attr.args[0].value);
659
+ const text = (0, sdk_2.getLiteral)(attr.args[0].value);
672
660
  if (text) {
673
661
  container.attributes.push(new prisma_builder_1.PassThroughAttribute(text));
674
662
  }
@@ -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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"}
@@ -19,6 +19,8 @@ export declare class ZodSchemaGenerator {
19
19
  private generateTypeDefSchema;
20
20
  private addPreludeAndImports;
21
21
  private generateModelSchema;
22
+ private createRefineFunction;
23
+ private makeValidationRefinements;
22
24
  private makePartial;
23
25
  private makeOmit;
24
26
  private makeMerge;
@@ -104,10 +104,7 @@ class ZodSchemaGenerator {
104
104
  if (this.options.preserveTsFiles === true || this.options.output) {
105
105
  // if preserveTsFiles is true or the user provided a custom output directory,
106
106
  // save the generated files
107
- yield Promise.all(this.sourceFiles.map((sf) => __awaiter(this, void 0, void 0, function* () {
108
- yield sf.formatText();
109
- yield sf.save();
110
- })));
107
+ this.sourceFiles.forEach(sdk_1.saveSourceFile);
111
108
  }
112
109
  });
113
110
  }
@@ -231,7 +228,7 @@ class ZodSchemaGenerator {
231
228
  this.sourceFiles.push(sf);
232
229
  sf.replaceWithText((writer) => {
233
230
  this.addPreludeAndImports(typeDef, writer, output);
234
- writer.write(`export const ${typeDef.name}Schema = z.object(`);
231
+ writer.write(`const baseSchema = z.object(`);
235
232
  writer.inlineBlock(() => {
236
233
  typeDef.fields.forEach((field) => {
237
234
  writer.writeLine(`${field.name}: ${(0, schema_gen_1.makeFieldSchema)(field)},`);
@@ -249,13 +246,27 @@ class ZodSchemaGenerator {
249
246
  writer.writeLine(').strict();');
250
247
  break;
251
248
  }
249
+ // compile "@@validate" to a function calling zod's `.refine()`
250
+ const refineFuncName = this.createRefineFunction(typeDef, writer);
251
+ if (refineFuncName) {
252
+ // export a schema without refinement for extensibility: `[Model]WithoutRefineSchema`
253
+ const noRefineSchema = `${(0, upper_case_first_1.upperCaseFirst)(typeDef.name)}WithoutRefineSchema`;
254
+ writer.writeLine(`
255
+ /**
256
+ * \`${typeDef.name}\` schema prior to calling \`.refine()\` for extensibility.
257
+ */
258
+ export const ${noRefineSchema} = baseSchema;
259
+ export const ${typeDef.name}Schema = ${refineFuncName}(${noRefineSchema});
260
+ `);
261
+ }
262
+ else {
263
+ writer.writeLine(`export const ${typeDef.name}Schema = baseSchema;`);
264
+ }
252
265
  });
253
- // TODO: "@@validate" refinements
254
266
  return schemaName;
255
267
  }
256
268
  addPreludeAndImports(decl, writer, output) {
257
269
  var _a, _b, _c;
258
- writer.writeLine('/* eslint-disable */');
259
270
  writer.writeLine(`import { z } from 'zod';`);
260
271
  // import user-defined enums from Prisma as they might be referenced in the expressions
261
272
  const importEnums = new Set();
@@ -356,18 +367,7 @@ class ZodSchemaGenerator {
356
367
  writer.writeLine(');');
357
368
  }
358
369
  // compile "@@validate" to ".refine"
359
- const refinements = (0, schema_gen_1.makeValidationRefinements)(model);
360
- let refineFuncName;
361
- if (refinements.length > 0) {
362
- refineFuncName = `refine${(0, upper_case_first_1.upperCaseFirst)(model.name)}`;
363
- writer.writeLine(`
364
- /**
365
- * Schema refinement function for applying \`@@validate\` rules.
366
- */
367
- export function ${refineFuncName}<T, D extends z.ZodTypeDef>(schema: z.ZodType<T, D, T>) { return schema${refinements.join('\n')};
368
- }
369
- `);
370
- }
370
+ const refineFuncName = this.createRefineFunction(model, writer);
371
371
  // delegate discriminator fields are to be excluded from mutation schemas
372
372
  const delegateDiscriminatorFields = model.fields.filter((field) => (0, sdk_1.isDiscriminatorField)(field));
373
373
  const omitDiscriminators = delegateDiscriminatorFields.length > 0
@@ -536,6 +536,64 @@ export const ${(0, upper_case_first_1.upperCaseFirst)(model.name)}UpdateSchema =
536
536
  return schemaName;
537
537
  });
538
538
  }
539
+ createRefineFunction(decl, writer) {
540
+ const refinements = this.makeValidationRefinements(decl);
541
+ let refineFuncName;
542
+ if (refinements.length > 0) {
543
+ refineFuncName = `refine${(0, upper_case_first_1.upperCaseFirst)(decl.name)}`;
544
+ writer.writeLine(`
545
+ /**
546
+ * Schema refinement function for applying \`@@validate\` rules.
547
+ */
548
+ export function ${refineFuncName}<T, D extends z.ZodTypeDef>(schema: z.ZodType<T, D, T>) { return schema${refinements.join('\n')};
549
+ }
550
+ `);
551
+ return refineFuncName;
552
+ }
553
+ else {
554
+ return undefined;
555
+ }
556
+ }
557
+ makeValidationRefinements(decl) {
558
+ const attrs = decl.attributes.filter((attr) => { var _a; return ((_a = attr.decl.ref) === null || _a === void 0 ? void 0 : _a.name) === '@@validate'; });
559
+ const refinements = attrs
560
+ .map((attr) => {
561
+ var _a;
562
+ const valueArg = (0, sdk_1.getAttributeArg)(attr, 'value');
563
+ if (!valueArg) {
564
+ return undefined;
565
+ }
566
+ const messageArg = (0, sdk_1.getAttributeArgLiteral)(attr, 'message');
567
+ const message = messageArg ? `message: ${JSON.stringify(messageArg)},` : '';
568
+ const pathArg = (0, sdk_1.getAttributeArg)(attr, 'path');
569
+ const path = pathArg && (0, ast_1.isArrayExpr)(pathArg)
570
+ ? `path: ['${(_a = (0, sdk_1.getLiteralArray)(pathArg)) === null || _a === void 0 ? void 0 : _a.join(`', '`)}'],`
571
+ : '';
572
+ const options = `, { ${message} ${path} }`;
573
+ try {
574
+ let expr = new sdk_1.TypeScriptExpressionTransformer({
575
+ context: sdk_1.ExpressionContext.ValidationRule,
576
+ fieldReferenceContext: 'value',
577
+ }).transform(valueArg);
578
+ if ((0, sdk_1.isDataModelFieldReference)(valueArg)) {
579
+ // if the expression is a simple field reference, treat undefined
580
+ // as true since the all fields are optional in validation context
581
+ expr = `${expr} ?? true`;
582
+ }
583
+ return `.refine((value: any) => ${expr}${options})`;
584
+ }
585
+ catch (err) {
586
+ if (err instanceof sdk_1.TypeScriptExpressionTransformerError) {
587
+ throw new sdk_1.PluginError(_1.name, err.message);
588
+ }
589
+ else {
590
+ throw err;
591
+ }
592
+ }
593
+ })
594
+ .filter((r) => !!r);
595
+ return refinements;
596
+ }
539
597
  makePartial(schema, fields) {
540
598
  if (fields) {
541
599
  if (fields.length === 0) {