zenstack 1.0.0-beta.20 → 1.0.0-beta.22

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 (78) hide show
  1. package/cli/actions/generate.d.ts +13 -0
  2. package/cli/actions/generate.js +71 -0
  3. package/cli/actions/generate.js.map +1 -0
  4. package/cli/actions/index.d.ts +3 -0
  5. package/cli/actions/index.js +20 -0
  6. package/cli/actions/index.js.map +1 -0
  7. package/cli/actions/info.d.ts +4 -0
  8. package/cli/actions/info.js +63 -0
  9. package/cli/actions/info.js.map +1 -0
  10. package/cli/actions/init.d.ts +12 -0
  11. package/cli/actions/init.js +83 -0
  12. package/cli/actions/init.js.map +1 -0
  13. package/cli/cli-util.d.ts +7 -10
  14. package/cli/cli-util.js +48 -130
  15. package/cli/cli-util.js.map +1 -1
  16. package/cli/config.d.ts +1 -10
  17. package/cli/config.js +2 -7
  18. package/cli/config.js.map +1 -1
  19. package/cli/index.d.ts +3 -12
  20. package/cli/index.js +12 -30
  21. package/cli/index.js.map +1 -1
  22. package/cli/plugin-runner.d.ts +11 -2
  23. package/cli/plugin-runner.js +66 -41
  24. package/cli/plugin-runner.js.map +1 -1
  25. package/language-server/validator/datamodel-validator.js +2 -2
  26. package/language-server/validator/datamodel-validator.js.map +1 -1
  27. package/language-server/validator/expression-validator.js +33 -1
  28. package/language-server/validator/expression-validator.js.map +1 -1
  29. package/language-server/validator/utils.js +2 -7
  30. package/language-server/validator/utils.js.map +1 -1
  31. package/language-server/zmodel-linker.js +27 -19
  32. package/language-server/zmodel-linker.js.map +1 -1
  33. package/package.json +6 -5
  34. package/plugins/access-policy/expression-writer.d.ts +2 -0
  35. package/plugins/access-policy/expression-writer.js +49 -31
  36. package/plugins/access-policy/expression-writer.js.map +1 -1
  37. package/plugins/access-policy/index.d.ts +3 -3
  38. package/plugins/access-policy/index.js +3 -5
  39. package/plugins/access-policy/index.js.map +1 -1
  40. package/plugins/access-policy/policy-guard-generator.d.ts +3 -2
  41. package/plugins/access-policy/policy-guard-generator.js +35 -6
  42. package/plugins/access-policy/policy-guard-generator.js.map +1 -1
  43. package/plugins/model-meta/index.d.ts +3 -3
  44. package/plugins/model-meta/index.js +46 -28
  45. package/plugins/model-meta/index.js.map +1 -1
  46. package/plugins/plugin-utils.d.ts +5 -3
  47. package/plugins/plugin-utils.js +22 -5
  48. package/plugins/plugin-utils.js.map +1 -1
  49. package/plugins/prisma/index.d.ts +3 -4
  50. package/plugins/prisma/index.js +3 -5
  51. package/plugins/prisma/index.js.map +1 -1
  52. package/plugins/prisma/prisma-builder.js +8 -13
  53. package/plugins/prisma/prisma-builder.js.map +1 -1
  54. package/plugins/prisma/schema-generator.d.ts +1 -3
  55. package/plugins/prisma/schema-generator.js +13 -81
  56. package/plugins/prisma/schema-generator.js.map +1 -1
  57. package/plugins/prisma/zmodel-code-generator.js +4 -2
  58. package/plugins/prisma/zmodel-code-generator.js.map +1 -1
  59. package/plugins/zod/generator.d.ts +2 -2
  60. package/plugins/zod/generator.js +29 -29
  61. package/plugins/zod/generator.js.map +1 -1
  62. package/plugins/zod/index.d.ts +3 -4
  63. package/plugins/zod/index.js +8 -5
  64. package/plugins/zod/index.js.map +1 -1
  65. package/plugins/zod/transformer.d.ts +5 -4
  66. package/plugins/zod/transformer.js +72 -29
  67. package/plugins/zod/transformer.js.map +1 -1
  68. package/plugins/zod/types.d.ts +2 -1
  69. package/plugins/zod/utils/schema-gen.js +14 -4
  70. package/plugins/zod/utils/schema-gen.js.map +1 -1
  71. package/res/stdlib.zmodel +10 -4
  72. package/utils/typescript-expression-transformer.js +25 -6
  73. package/utils/typescript-expression-transformer.js.map +1 -1
  74. package/utils/version-utils.js +7 -2
  75. package/utils/version-utils.js.map +1 -1
  76. package/types.d.ts +0 -12
  77. package/types.js +0 -3
  78. package/types.js.map +0 -1
@@ -13,6 +13,7 @@ exports.ZModelLinker = void 0;
13
13
  const ast_1 = require("@zenstackhq/language/ast");
14
14
  const sdk_1 = require("@zenstackhq/sdk");
15
15
  const langium_1 = require("langium");
16
+ const ts_pattern_1 = require("ts-pattern");
16
17
  const vscode_jsonrpc_1 = require("vscode-jsonrpc");
17
18
  const ast_utils_1 = require("../utils/ast-utils");
18
19
  const utils_1 = require("./validator/utils");
@@ -62,7 +63,9 @@ class ZModelLinker extends langium_1.DefaultLinker {
62
63
  }
63
64
  resolve(node, document, extraScopes = []) {
64
65
  switch (node.$type) {
65
- case ast_1.LiteralExpr:
66
+ case ast_1.StringLiteral:
67
+ case ast_1.NumberLiteral:
68
+ case ast_1.BooleanLiteral:
66
69
  this.resolveLiteral(node);
67
70
  break;
68
71
  case ast_1.InvocationExpr:
@@ -214,13 +217,11 @@ class ZModelLinker extends langium_1.DefaultLinker {
214
217
  return undefined;
215
218
  }
216
219
  resolveLiteral(node) {
217
- const type = typeof node.value === 'string'
218
- ? 'String'
219
- : typeof node.value === 'boolean'
220
- ? 'Boolean'
221
- : typeof node.value === 'number'
222
- ? 'Int'
223
- : undefined;
220
+ const type = (0, ts_pattern_1.match)(node)
221
+ .when(ast_1.isStringLiteral, () => 'String')
222
+ .when(ast_1.isBooleanLiteral, () => 'Boolean')
223
+ .when(ast_1.isNumberLiteral, () => 'Int')
224
+ .exhaustive();
224
225
  if (type) {
225
226
  this.resolveToBuiltinTypeOrDecl(node, type);
226
227
  }
@@ -243,7 +244,14 @@ class ZModelLinker extends langium_1.DefaultLinker {
243
244
  const resolvedType = node.left.$resolvedType;
244
245
  if (resolvedType && (0, ast_1.isDataModel)(resolvedType.decl) && resolvedType.array) {
245
246
  const dataModelDecl = resolvedType.decl;
246
- const provider = (name) => dataModelDecl.$resolvedFields.find((f) => f.name === name);
247
+ const provider = (name) => {
248
+ if (name === 'this') {
249
+ return dataModelDecl;
250
+ }
251
+ else {
252
+ return dataModelDecl.$resolvedFields.find((f) => f.name === name);
253
+ }
254
+ };
247
255
  extraScopes = [provider, ...extraScopes];
248
256
  this.resolve(node.right, document, extraScopes);
249
257
  this.resolveToBuiltinTypeOrDecl(node, 'Boolean');
@@ -252,11 +260,15 @@ class ZModelLinker extends langium_1.DefaultLinker {
252
260
  // error is reported in validation pass
253
261
  }
254
262
  }
255
- resolveThis(node,
256
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
257
- document,
258
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
259
- extraScopes) {
263
+ resolveThis(node, _document, extraScopes) {
264
+ // resolve from scopes first
265
+ for (const scope of extraScopes) {
266
+ const r = scope('this');
267
+ if ((0, ast_1.isDataModel)(r)) {
268
+ this.resolveToBuiltinTypeOrDecl(node, r);
269
+ return;
270
+ }
271
+ }
260
272
  let decl = node.$container;
261
273
  while (decl && !(0, ast_1.isDataModel)(decl)) {
262
274
  decl = decl.$container;
@@ -265,11 +277,7 @@ class ZModelLinker extends langium_1.DefaultLinker {
265
277
  this.resolveToBuiltinTypeOrDecl(node, decl);
266
278
  }
267
279
  }
268
- resolveNull(node,
269
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
270
- document,
271
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
272
- extraScopes) {
280
+ resolveNull(node, _document, _extraScopes) {
273
281
  // TODO: how to really resolve null?
274
282
  this.resolveToBuiltinTypeOrDecl(node, 'Null');
275
283
  }
@@ -1 +1 @@
1
- {"version":3,"file":"zmodel-linker.js","sourceRoot":"","sources":["../../src/language-server/zmodel-linker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"zmodel-linker.js","sourceRoot":"","sources":["../../src/language-server/zmodel-linker.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publisher": "zenstack",
4
4
  "displayName": "ZenStack Language Tools",
5
5
  "description": "A toolkit for building secure CRUD apps with Next.js + Typescript",
6
- "version": "1.0.0-beta.20",
6
+ "version": "1.0.0-beta.22",
7
7
  "author": {
8
8
  "name": "ZenStack Team"
9
9
  },
@@ -82,6 +82,7 @@
82
82
  "semver": "^7.3.8",
83
83
  "sleep-promise": "^9.1.0",
84
84
  "strip-color": "^0.1.0",
85
+ "tiny-invariant": "^1.3.1",
85
86
  "ts-morph": "^16.0.0",
86
87
  "ts-pattern": "^4.3.0",
87
88
  "upper-case-first": "^2.0.2",
@@ -93,8 +94,8 @@
93
94
  "vscode-uri": "^3.0.6",
94
95
  "zod": "3.21.1",
95
96
  "zod-validation-error": "^0.2.1",
96
- "@zenstackhq/language": "1.0.0-beta.20",
97
- "@zenstackhq/sdk": "1.0.0-beta.20"
97
+ "@zenstackhq/sdk": "1.0.0-beta.22",
98
+ "@zenstackhq/language": "1.0.0-beta.22"
98
99
  },
99
100
  "devDependencies": {
100
101
  "@types/async-exit-hook": "^2.0.0",
@@ -124,7 +125,7 @@
124
125
  "tsc-alias": "^1.7.0",
125
126
  "typescript": "^4.8.4",
126
127
  "vitest": "^0.29.7",
127
- "@zenstackhq/runtime": "1.0.0-beta.20"
128
+ "@zenstackhq/runtime": "1.0.0-beta.22"
128
129
  },
129
130
  "scripts": {
130
131
  "vscode:publish": "vsce publish --no-dependencies",
@@ -135,7 +136,7 @@
135
136
  "bundle": "pnpm clean && pnpm lint && node build/bundle.js --minify",
136
137
  "watch": "tsc --watch",
137
138
  "lint": "eslint src tests --ext ts",
138
- "test": "jest",
139
+ "test": "ZENSTACK_TEST=1 jest",
139
140
  "publish-dev": "pnpm publish --registry http://localhost:4873",
140
141
  "postinstall": "node bin/post-install.js"
141
142
  }
@@ -29,6 +29,8 @@ export declare class ExpressionWriter {
29
29
  private guard;
30
30
  private plain;
31
31
  private writeComparison;
32
+ private requireIdFields;
33
+ private equivalentRefs;
32
34
  private writeFieldReference;
33
35
  private isAuthOrAuthMemberAccess;
34
36
  private writeOperator;
@@ -33,7 +33,9 @@ class ExpressionWriter {
33
33
  */
34
34
  write(expr) {
35
35
  switch (expr.$type) {
36
- case ast_1.LiteralExpr:
36
+ case ast_1.StringLiteral:
37
+ case ast_1.NumberLiteral:
38
+ case ast_1.BooleanLiteral:
37
39
  this.writeLiteral(expr);
38
40
  break;
39
41
  case ast_1.UnaryExpr:
@@ -203,19 +205,9 @@ class ExpressionWriter {
203
205
  }
204
206
  }
205
207
  writeComparison(expr, operator) {
206
- var _a, _b, _c;
208
+ var _a;
207
209
  const leftIsFieldAccess = this.isFieldAccess(expr.left);
208
210
  const rightIsFieldAccess = this.isFieldAccess(expr.right);
209
- if (leftIsFieldAccess && rightIsFieldAccess) {
210
- if ((0, sdk_1.isDataModelFieldReference)(expr.left) &&
211
- (0, sdk_1.isDataModelFieldReference)(expr.right) &&
212
- ((_a = expr.left.target.ref) === null || _a === void 0 ? void 0 : _a.$container) === ((_b = expr.right.target.ref) === null || _b === void 0 ? void 0 : _b.$container)) {
213
- // comparing fields from the same model
214
- }
215
- else {
216
- throw new sdk_1.PluginError(_1.name, `Comparing fields from different models is not supported`);
217
- }
218
- }
219
211
  if (!leftIsFieldAccess && !rightIsFieldAccess) {
220
212
  // compile down to a plain expression
221
213
  this.guard(() => {
@@ -242,10 +234,11 @@ class ExpressionWriter {
242
234
  $container: fieldAccess.$container,
243
235
  target: fieldAccess.member,
244
236
  $resolvedType: fieldAccess.$resolvedType,
237
+ $future: true,
245
238
  };
246
239
  }
247
240
  // guard member access of `auth()` with null check
248
- if (this.isAuthOrAuthMemberAccess(operand) && !((_c = fieldAccess.$resolvedType) === null || _c === void 0 ? void 0 : _c.nullable)) {
241
+ if (this.isAuthOrAuthMemberAccess(operand) && !((_a = fieldAccess.$resolvedType) === null || _a === void 0 ? void 0 : _a.nullable)) {
249
242
  try {
250
243
  this.writer.write(`(${this.plainExprBuilder.transform(operand)} == null) ? ${
251
244
  // auth().x != user.x is true when auth().x is null and user is not nullable
@@ -269,10 +262,7 @@ class ExpressionWriter {
269
262
  if (dataModel && (0, ast_utils_1.isAuthInvocation)(operand)) {
270
263
  // right now this branch only serves comparison with `auth`, like
271
264
  // @@allow('all', owner == auth())
272
- const idFields = (0, ast_utils_1.getIdFields)(dataModel);
273
- if (!idFields || idFields.length === 0) {
274
- throw new sdk_1.PluginError(_1.name, `Data model ${dataModel.name} does not have an id field`);
275
- }
265
+ const idFields = this.requireIdFields(dataModel);
276
266
  if (operator !== '==' && operator !== '!=') {
277
267
  throw new sdk_1.PluginError(_1.name, 'Only == and != operators are allowed');
278
268
  }
@@ -307,16 +297,23 @@ class ExpressionWriter {
307
297
  });
308
298
  }
309
299
  else {
310
- this.writeOperator(operator, fieldAccess, () => {
311
- if ((0, sdk_1.isDataModelFieldReference)(operand) && !this.isPostGuard) {
312
- // if operand is a field reference and we're not generating for post-update guard,
313
- // we should generate a field reference (comparing fields in the same model)
314
- this.writeFieldReference(operand);
315
- }
316
- else {
317
- this.plain(operand);
318
- }
319
- });
300
+ if (this.equivalentRefs(fieldAccess, operand)) {
301
+ // f == f or f != f
302
+ // this == this or this != this
303
+ this.writer.write(operator === '!=' ? exports.TRUE : exports.FALSE);
304
+ }
305
+ else {
306
+ this.writeOperator(operator, fieldAccess, () => {
307
+ if ((0, sdk_1.isDataModelFieldReference)(operand) && !this.isPostGuard) {
308
+ // if operand is a field reference and we're not generating for post-update guard,
309
+ // we should generate a field reference (comparing fields in the same model)
310
+ this.writeFieldReference(operand);
311
+ }
312
+ else {
313
+ this.plain(operand);
314
+ }
315
+ });
316
+ }
320
317
  }
321
318
  }, !(0, ast_1.isThisExpr)(fieldAccess));
322
319
  });
@@ -325,6 +322,27 @@ class ExpressionWriter {
325
322
  // avoid generating a new layer
326
323
  !(0, ast_1.isThisExpr)(fieldAccess));
327
324
  }
325
+ requireIdFields(dataModel) {
326
+ const idFields = (0, ast_utils_1.getIdFields)(dataModel);
327
+ if (!idFields || idFields.length === 0) {
328
+ throw new sdk_1.PluginError(_1.name, `Data model ${dataModel.name} does not have an id field`);
329
+ }
330
+ return idFields;
331
+ }
332
+ equivalentRefs(expr1, expr2) {
333
+ if ((0, ast_1.isThisExpr)(expr1) && (0, ast_1.isThisExpr)(expr2)) {
334
+ return true;
335
+ }
336
+ if ((0, ast_1.isReferenceExpr)(expr1) &&
337
+ (0, ast_1.isReferenceExpr)(expr2) &&
338
+ expr1.target.ref === expr2.target.ref &&
339
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
340
+ expr1.$future === expr2.$future // either both future or both not
341
+ ) {
342
+ return true;
343
+ }
344
+ return false;
345
+ }
328
346
  // https://www.prisma.io/docs/reference/api-reference/prisma-client-reference#compare-columns-in-the-same-table
329
347
  writeFieldReference(expr) {
330
348
  if (!expr.target.ref) {
@@ -469,7 +487,7 @@ class ExpressionWriter {
469
487
  writeLogical(expr, operator) {
470
488
  // TODO: do we need short-circuit for logical operators?
471
489
  if (operator === '&&') {
472
- // // && short-circuit: left && right -> left ? right : { zenstack_guard: false }
490
+ // // && short-circuit: left && right -> left ? right : FALSE
473
491
  // if (!this.hasFieldAccess(expr.left)) {
474
492
  // this.plain(expr.left);
475
493
  // this.writer.write(' ? ');
@@ -484,7 +502,7 @@ class ExpressionWriter {
484
502
  // }
485
503
  }
486
504
  else {
487
- // // || short-circuit: left || right -> left ? { zenstack_guard: true } : right
505
+ // // || short-circuit: left || right -> left ? TRUE : right
488
506
  // if (!this.hasFieldAccess(expr.left)) {
489
507
  // this.plain(expr.left);
490
508
  // this.writer.write(' ? ');
@@ -538,13 +556,13 @@ class ExpressionWriter {
538
556
  let valueArg = (_a = expr.args[1]) === null || _a === void 0 ? void 0 : _a.value;
539
557
  // isEmpty function is zero arity, it's mapped to a boolean literal
540
558
  if (funcDecl.name === 'isEmpty') {
541
- valueArg = { $type: ast_1.LiteralExpr, value: true };
559
+ valueArg = { $type: ast_1.BooleanLiteral, value: true };
542
560
  }
543
561
  // contains function has a 3rd argument that indicates whether the comparison should be case-insensitive
544
562
  let extraArgs = undefined;
545
563
  if (funcDecl.name === 'contains') {
546
564
  if ((0, sdk_1.getLiteral)((_b = expr.args[2]) === null || _b === void 0 ? void 0 : _b.value) === true) {
547
- extraArgs = { mode: { $type: ast_1.LiteralExpr, value: 'insensitive' } };
565
+ extraArgs = { mode: { $type: ast_1.StringLiteral, value: 'insensitive' } };
548
566
  }
549
567
  }
550
568
  this.block(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"expression-writer.js","sourceRoot":"","sources":["../../../src/plugins/access-policy/expression-writer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"expression-writer.js","sourceRoot":"","sources":["../../../src/plugins/access-policy/expression-writer.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { Model } from '@zenstackhq/language/ast';
2
- import { PluginOptions } from '@zenstackhq/sdk';
1
+ import { PluginFunction } from '@zenstackhq/sdk';
3
2
  export declare const name = "Access Policy";
4
- export default function run(model: Model, options: PluginOptions): Promise<void>;
3
+ declare const run: PluginFunction;
4
+ export default run;
@@ -15,10 +15,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.name = void 0;
16
16
  const policy_guard_generator_1 = __importDefault(require("./policy-guard-generator"));
17
17
  exports.name = 'Access Policy';
18
- function run(model, options) {
19
- return __awaiter(this, void 0, void 0, function* () {
20
- return new policy_guard_generator_1.default().generate(model, options);
21
- });
22
- }
18
+ const run = (model, options, _dmmf, globalOptions) => __awaiter(void 0, void 0, void 0, function* () {
19
+ return new policy_guard_generator_1.default().generate(model, options, globalOptions);
20
+ });
23
21
  exports.default = run;
24
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/access-policy/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,sFAAuD;AAE1C,QAAA,IAAI,GAAG,eAAe,CAAC;AAEpC,SAA8B,GAAG,CAAC,KAAY,EAAE,OAAsB;;QAClE,OAAO,IAAI,gCAAe,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;CAAA;AAFD,sBAEC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/access-policy/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,sFAAuD;AAE1C,QAAA,IAAI,GAAG,eAAe,CAAC;AAEpC,MAAM,GAAG,GAAmB,CAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE;IACvE,OAAO,IAAI,gCAAe,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;AACzE,CAAC,CAAA,CAAC;AAEF,kBAAe,GAAG,CAAC"}
@@ -1,10 +1,11 @@
1
1
  import { Model } from '@zenstackhq/language/ast';
2
- import { PluginOptions } from '@zenstackhq/sdk';
2
+ import { PluginGlobalOptions, PluginOptions } from '@zenstackhq/sdk';
3
3
  /**
4
4
  * Generates source file that contains Prisma query guard objects used for injecting database queries
5
5
  */
6
6
  export default class PolicyGenerator {
7
- generate(model: Model, options: PluginOptions): Promise<void>;
7
+ generate(model: Model, options: PluginOptions, globalOptions?: PluginGlobalOptions): Promise<void>;
8
+ private isEnumReferenced;
8
9
  private getPolicyExpressions;
9
10
  private processUpdatePolicies;
10
11
  private visitPolicyExpression;
@@ -28,9 +28,9 @@ const expression_writer_1 = require("./expression-writer");
28
28
  * Generates source file that contains Prisma query guard objects used for injecting database queries
29
29
  */
30
30
  class PolicyGenerator {
31
- generate(model, options) {
31
+ generate(model, options, globalOptions) {
32
32
  return __awaiter(this, void 0, void 0, function* () {
33
- let output = options.output ? options.output : (0, plugin_utils_1.getDefaultOutputFolder)();
33
+ let output = options.output ? options.output : (0, plugin_utils_1.getDefaultOutputFolder)(globalOptions);
34
34
  if (!output) {
35
35
  throw new sdk_1.PluginError(options.name, `Unable to determine output path, not running plugin`);
36
36
  }
@@ -43,13 +43,14 @@ class PolicyGenerator {
43
43
  { name: 'type QueryContext' },
44
44
  { name: 'type DbOperations' },
45
45
  { name: 'hasAllFields' },
46
+ { name: 'allFieldsEqual' },
46
47
  { name: 'type PolicyDef' },
47
48
  ],
48
49
  moduleSpecifier: `${sdk_1.RUNTIME_PACKAGE}`,
49
50
  });
50
51
  // import enums
51
52
  const prismaImport = (0, sdk_1.getPrismaClientImportSpec)(model, output);
52
- for (const e of model.declarations.filter((d) => (0, ast_1.isEnum)(d))) {
53
+ for (const e of model.declarations.filter((d) => (0, ast_1.isEnum)(d) && this.isEnumReferenced(model, d))) {
53
54
  sf.addImportDeclaration({
54
55
  namedImports: [{ name: e.name }],
55
56
  moduleSpecifier: prismaImport,
@@ -102,7 +103,14 @@ class PolicyGenerator {
102
103
  ],
103
104
  });
104
105
  sf.addStatements('export default policy');
105
- const shouldCompile = options.compile !== false;
106
+ let shouldCompile = true;
107
+ if (typeof options.compile === 'boolean') {
108
+ // explicit override
109
+ shouldCompile = options.compile;
110
+ }
111
+ else if (globalOptions) {
112
+ shouldCompile = globalOptions.compile;
113
+ }
106
114
  if (!shouldCompile || options.preserveTsFiles === true) {
107
115
  // save ts files
108
116
  yield (0, sdk_1.saveProject)(project);
@@ -112,6 +120,20 @@ class PolicyGenerator {
112
120
  }
113
121
  });
114
122
  }
123
+ isEnumReferenced(model, decl) {
124
+ return (0, langium_1.streamAllContents)(model).some((node) => {
125
+ var _a, _b;
126
+ if ((0, ast_1.isDataModelField)(node) && ((_a = node.type.reference) === null || _a === void 0 ? void 0 : _a.ref) === decl) {
127
+ // referenced as field type
128
+ return true;
129
+ }
130
+ if ((0, sdk_1.isEnumFieldReference)(node) && ((_b = node.target.ref) === null || _b === void 0 ? void 0 : _b.$container) === decl) {
131
+ // enum field is referenced
132
+ return true;
133
+ }
134
+ return false;
135
+ });
136
+ }
115
137
  getPolicyExpressions(target, kind, operation) {
116
138
  const attributes = target.attributes;
117
139
  const attrName = (0, ast_1.isDataModel)(target) ? `@@${kind}` : `@${kind}`;
@@ -355,7 +377,7 @@ class PolicyGenerator {
355
377
  // generates a "select" object that contains (recursively) fields referenced by the
356
378
  // given policy rules
357
379
  generateSelectForRules(allows, denies) {
358
- var _a;
380
+ var _a, _b;
359
381
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
360
382
  const result = {};
361
383
  const addPath = (path) => {
@@ -395,6 +417,13 @@ class PolicyGenerator {
395
417
  };
396
418
  for (const rule of [...allows, ...denies]) {
397
419
  for (const expr of [...this.allNodes(rule)].filter((node) => (0, ast_1.isExpression)(node))) {
420
+ if ((0, ast_1.isThisExpr)(expr) && !(0, ast_1.isMemberAccessExpr)(expr.$container)) {
421
+ // a standalone `this` expression, include all id fields
422
+ const model = (_a = expr.$resolvedType) === null || _a === void 0 ? void 0 : _a.decl;
423
+ const idFields = (0, ast_utils_1.getIdFields)(model);
424
+ idFields.forEach((field) => addPath([field.name]));
425
+ continue;
426
+ }
398
427
  // only care about member access and reference expressions
399
428
  if (!(0, ast_1.isMemberAccessExpr)(expr) && !(0, ast_1.isReferenceExpr)(expr)) {
400
429
  continue;
@@ -405,7 +434,7 @@ class PolicyGenerator {
405
434
  }
406
435
  const path = visit(expr);
407
436
  if (path) {
408
- if ((0, ast_1.isDataModel)((_a = expr.$resolvedType) === null || _a === void 0 ? void 0 : _a.decl)) {
437
+ if ((0, ast_1.isDataModel)((_b = expr.$resolvedType) === null || _b === void 0 ? void 0 : _b.decl)) {
409
438
  // member selection ended at a data model field, include its 'id'
410
439
  path.push('id');
411
440
  }