zenstack 1.0.16 → 1.1.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 (154) hide show
  1. package/README.md +93 -24
  2. package/bin/post-install.js +1 -1
  3. package/cli/actions/generate.d.ts +13 -0
  4. package/cli/actions/generate.js +71 -0
  5. package/cli/actions/generate.js.map +1 -0
  6. package/cli/actions/index.d.ts +3 -0
  7. package/cli/actions/index.js +20 -0
  8. package/cli/actions/index.js.map +1 -0
  9. package/cli/actions/info.d.ts +4 -0
  10. package/cli/actions/info.js +63 -0
  11. package/cli/actions/info.js.map +1 -0
  12. package/cli/actions/init.d.ts +12 -0
  13. package/cli/actions/init.js +83 -0
  14. package/cli/actions/init.js.map +1 -0
  15. package/cli/cli-util.d.ts +14 -11
  16. package/cli/cli-util.js +150 -82
  17. package/cli/cli-util.js.map +1 -1
  18. package/cli/config.d.ts +10 -0
  19. package/cli/config.js +62 -0
  20. package/cli/config.js.map +1 -0
  21. package/cli/index.d.ts +4 -12
  22. package/cli/index.js +36 -29
  23. package/cli/index.js.map +1 -1
  24. package/cli/plugin-runner.d.ts +13 -3
  25. package/cli/plugin-runner.js +165 -59
  26. package/cli/plugin-runner.js.map +1 -1
  27. package/constants.js +1 -1
  28. package/language-server/constants.d.ts +7 -0
  29. package/language-server/constants.js +8 -1
  30. package/language-server/constants.js.map +1 -1
  31. package/language-server/utils.d.ts +1 -14
  32. package/language-server/utils.js +2 -38
  33. package/language-server/utils.js.map +1 -1
  34. package/language-server/validator/attribute-application-validator.d.ts +15 -0
  35. package/language-server/validator/attribute-application-validator.js +246 -0
  36. package/language-server/validator/attribute-application-validator.js.map +1 -0
  37. package/language-server/validator/attribute-validator.d.ts +1 -1
  38. package/language-server/validator/attribute-validator.js +4 -1
  39. package/language-server/validator/attribute-validator.js.map +1 -1
  40. package/language-server/validator/datamodel-validator.d.ts +7 -0
  41. package/language-server/validator/datamodel-validator.js +84 -33
  42. package/language-server/validator/datamodel-validator.js.map +1 -1
  43. package/language-server/validator/enum-validator.js +3 -6
  44. package/language-server/validator/enum-validator.js.map +1 -1
  45. package/language-server/validator/expression-validator.d.ts +1 -1
  46. package/language-server/validator/expression-validator.js +108 -3
  47. package/language-server/validator/expression-validator.js.map +1 -1
  48. package/language-server/validator/function-decl-validator.d.ts +9 -0
  49. package/language-server/validator/function-decl-validator.js +13 -0
  50. package/language-server/validator/function-decl-validator.js.map +1 -0
  51. package/language-server/validator/function-invocation-validator.d.ts +11 -0
  52. package/language-server/validator/function-invocation-validator.js +135 -0
  53. package/language-server/validator/function-invocation-validator.js.map +1 -0
  54. package/language-server/validator/schema-validator.d.ts +4 -1
  55. package/language-server/validator/schema-validator.js +28 -7
  56. package/language-server/validator/schema-validator.js.map +1 -1
  57. package/language-server/validator/utils.d.ts +3 -4
  58. package/language-server/validator/utils.js +20 -123
  59. package/language-server/validator/utils.js.map +1 -1
  60. package/language-server/validator/zmodel-validator.d.ts +5 -1
  61. package/language-server/validator/zmodel-validator.js +18 -4
  62. package/language-server/validator/zmodel-validator.js.map +1 -1
  63. package/language-server/zmodel-code-action.d.ts +2 -1
  64. package/language-server/zmodel-code-action.js +46 -21
  65. package/language-server/zmodel-code-action.js.map +1 -1
  66. package/language-server/zmodel-definition.d.ts +7 -0
  67. package/language-server/zmodel-definition.js +31 -0
  68. package/language-server/zmodel-definition.js.map +1 -0
  69. package/language-server/zmodel-formatter.js +2 -2
  70. package/language-server/zmodel-formatter.js.map +1 -1
  71. package/language-server/zmodel-linker.d.ts +3 -0
  72. package/language-server/zmodel-linker.js +122 -41
  73. package/language-server/zmodel-linker.js.map +1 -1
  74. package/language-server/zmodel-module.js +4 -1
  75. package/language-server/zmodel-module.js.map +1 -1
  76. package/language-server/zmodel-scope.d.ts +7 -1
  77. package/language-server/zmodel-scope.js +57 -1
  78. package/language-server/zmodel-scope.js.map +1 -1
  79. package/language-server/zmodel-workspace-manager.d.ts +5 -1
  80. package/language-server/zmodel-workspace-manager.js +101 -0
  81. package/language-server/zmodel-workspace-manager.js.map +1 -1
  82. package/package.json +27 -20
  83. package/plugins/access-policy/expression-writer.d.ts +7 -0
  84. package/plugins/access-policy/expression-writer.js +325 -106
  85. package/plugins/access-policy/expression-writer.js.map +1 -1
  86. package/plugins/access-policy/index.d.ts +3 -3
  87. package/plugins/access-policy/index.js +3 -5
  88. package/plugins/access-policy/index.js.map +1 -1
  89. package/plugins/access-policy/policy-guard-generator.d.ts +10 -3
  90. package/plugins/access-policy/policy-guard-generator.js +406 -121
  91. package/plugins/access-policy/policy-guard-generator.js.map +1 -1
  92. package/plugins/model-meta/index.d.ts +3 -3
  93. package/plugins/model-meta/index.js +110 -46
  94. package/plugins/model-meta/index.js.map +1 -1
  95. package/plugins/plugin-utils.d.ts +8 -7
  96. package/plugins/plugin-utils.js +55 -21
  97. package/plugins/plugin-utils.js.map +1 -1
  98. package/plugins/prisma/index.d.ts +3 -3
  99. package/plugins/prisma/index.js +3 -5
  100. package/plugins/prisma/index.js.map +1 -1
  101. package/plugins/prisma/prisma-builder.d.ts +7 -14
  102. package/plugins/prisma/prisma-builder.js +29 -34
  103. package/plugins/prisma/prisma-builder.js.map +1 -1
  104. package/plugins/prisma/schema-generator.d.ts +7 -3
  105. package/plugins/prisma/schema-generator.js +146 -102
  106. package/plugins/prisma/schema-generator.js.map +1 -1
  107. package/plugins/prisma/zmodel-code-generator.d.ts +3 -1
  108. package/plugins/prisma/zmodel-code-generator.js +12 -2
  109. package/plugins/prisma/zmodel-code-generator.js.map +1 -1
  110. package/plugins/zod/generator.d.ts +4 -0
  111. package/plugins/zod/generator.js +298 -0
  112. package/plugins/zod/generator.js.map +1 -0
  113. package/plugins/zod/index.d.ts +4 -0
  114. package/plugins/zod/index.js +24 -0
  115. package/plugins/zod/index.js.map +1 -0
  116. package/plugins/zod/transformer.d.ts +68 -0
  117. package/plugins/zod/transformer.js +554 -0
  118. package/plugins/zod/transformer.js.map +1 -0
  119. package/plugins/zod/types.d.ts +25 -0
  120. package/plugins/zod/types.js.map +1 -0
  121. package/plugins/zod/utils/removeDir.d.ts +1 -0
  122. package/plugins/zod/utils/removeDir.js +30 -0
  123. package/plugins/zod/utils/removeDir.js.map +1 -0
  124. package/plugins/zod/utils/schema-gen.d.ts +3 -0
  125. package/plugins/zod/utils/schema-gen.js +188 -0
  126. package/plugins/zod/utils/schema-gen.js.map +1 -0
  127. package/res/starter.zmodel +6 -8
  128. package/res/stdlib.zmodel +238 -74
  129. package/telemetry.d.ts +2 -1
  130. package/telemetry.js +21 -11
  131. package/telemetry.js.map +1 -1
  132. package/utils/ast-utils.d.ts +12 -15
  133. package/utils/ast-utils.js +117 -66
  134. package/utils/ast-utils.js.map +1 -1
  135. package/utils/pkg-utils.d.ts +2 -2
  136. package/utils/pkg-utils.js +34 -16
  137. package/utils/pkg-utils.js.map +1 -1
  138. package/utils/typescript-expression-transformer.d.ts +54 -0
  139. package/utils/typescript-expression-transformer.js +326 -0
  140. package/utils/typescript-expression-transformer.js.map +1 -0
  141. package/utils/version-utils.js +7 -1
  142. package/utils/version-utils.js.map +1 -1
  143. package/plugins/access-policy/typescript-expression-transformer.d.ts +0 -26
  144. package/plugins/access-policy/typescript-expression-transformer.js +0 -111
  145. package/plugins/access-policy/typescript-expression-transformer.js.map +0 -1
  146. package/plugins/access-policy/utils.d.ts +0 -5
  147. package/plugins/access-policy/utils.js +0 -14
  148. package/plugins/access-policy/utils.js.map +0 -1
  149. package/plugins/access-policy/zod-schema-generator.d.ts +0 -12
  150. package/plugins/access-policy/zod-schema-generator.js +0 -158
  151. package/plugins/access-policy/zod-schema-generator.js.map +0 -1
  152. package/types.d.ts +0 -12
  153. package/types.js.map +0 -1
  154. /package/{types.js → plugins/zod/types.js} +0 -0
@@ -0,0 +1,326 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.TypeScriptExpressionTransformer = exports.TypeScriptExpressionTransformerError = void 0;
10
+ const ast_1 = require("@zenstackhq/language/ast");
11
+ const sdk_1 = require("@zenstackhq/sdk");
12
+ const ts_pattern_1 = require("ts-pattern");
13
+ const ast_utils_1 = require("./ast-utils");
14
+ class TypeScriptExpressionTransformerError extends Error {
15
+ constructor(message) {
16
+ super(message);
17
+ }
18
+ }
19
+ exports.TypeScriptExpressionTransformerError = TypeScriptExpressionTransformerError;
20
+ // a registry of function handlers marked with @func
21
+ const functionHandlers = new Map();
22
+ // function handler decorator
23
+ function func(name) {
24
+ return function (target, propertyKey, descriptor) {
25
+ if (!functionHandlers.get(name)) {
26
+ functionHandlers.set(name, descriptor);
27
+ }
28
+ return descriptor;
29
+ };
30
+ }
31
+ /**
32
+ * Transforms ZModel expression to plain TypeScript expression.
33
+ */
34
+ class TypeScriptExpressionTransformer {
35
+ /**
36
+ * Constructs a new TypeScriptExpressionTransformer.
37
+ *
38
+ * @param isPostGuard indicates if we're writing for post-update conditions
39
+ */
40
+ constructor(options) {
41
+ this.options = options;
42
+ }
43
+ /**
44
+ * Transforms the given expression to a TypeScript expression.
45
+ * @param normalizeUndefined if undefined values should be normalized to null
46
+ * @returns
47
+ */
48
+ transform(expr, normalizeUndefined = true) {
49
+ switch (expr.$type) {
50
+ case ast_1.StringLiteral:
51
+ case ast_1.NumberLiteral:
52
+ case ast_1.BooleanLiteral:
53
+ return this.literal(expr);
54
+ case ast_1.ArrayExpr:
55
+ return this.array(expr, normalizeUndefined);
56
+ case ast_1.NullExpr:
57
+ return this.null();
58
+ case ast_1.ThisExpr:
59
+ return this.this(expr);
60
+ case ast_1.ReferenceExpr:
61
+ return this.reference(expr);
62
+ case ast_1.InvocationExpr:
63
+ return this.invocation(expr, normalizeUndefined);
64
+ case ast_1.MemberAccessExpr:
65
+ return this.memberAccess(expr, normalizeUndefined);
66
+ case ast_1.UnaryExpr:
67
+ return this.unary(expr, normalizeUndefined);
68
+ case ast_1.BinaryExpr:
69
+ return this.binary(expr, normalizeUndefined);
70
+ default:
71
+ throw new TypeScriptExpressionTransformerError(`Unsupported expression type: ${expr.$type}`);
72
+ }
73
+ }
74
+ this(_expr) {
75
+ // "this" is mapped to the input argument
76
+ return 'input';
77
+ }
78
+ memberAccess(expr, normalizeUndefined) {
79
+ var _a;
80
+ if (!expr.member.ref) {
81
+ throw new TypeScriptExpressionTransformerError(`Unresolved MemberAccessExpr`);
82
+ }
83
+ if ((0, ast_1.isThisExpr)(expr.operand)) {
84
+ return expr.member.ref.name;
85
+ }
86
+ else if ((0, sdk_1.isFutureExpr)(expr.operand)) {
87
+ if (((_a = this.options) === null || _a === void 0 ? void 0 : _a.isPostGuard) !== true) {
88
+ throw new TypeScriptExpressionTransformerError(`future() is only supported in postUpdate rules`);
89
+ }
90
+ return expr.member.ref.name;
91
+ }
92
+ else {
93
+ if (normalizeUndefined) {
94
+ // normalize field access to null instead of undefined to avoid accidentally use undefined in filter
95
+ return `(${this.transform(expr.operand, normalizeUndefined)}?.${expr.member.ref.name} ?? null)`;
96
+ }
97
+ else {
98
+ return `${this.transform(expr.operand, normalizeUndefined)}?.${expr.member.ref.name}`;
99
+ }
100
+ }
101
+ }
102
+ invocation(expr, normalizeUndefined) {
103
+ if (!expr.function.ref) {
104
+ throw new TypeScriptExpressionTransformerError(`Unresolved InvocationExpr`);
105
+ }
106
+ const funcName = expr.function.ref.name;
107
+ const isStdFunc = (0, sdk_1.isFromStdlib)(expr.function.ref);
108
+ if (!isStdFunc) {
109
+ throw new TypeScriptExpressionTransformerError('User-defined functions are not supported yet');
110
+ }
111
+ const handler = functionHandlers.get(funcName);
112
+ if (!handler) {
113
+ throw new TypeScriptExpressionTransformerError(`Unsupported function: ${funcName}`);
114
+ }
115
+ const args = expr.args.map((arg) => arg.value);
116
+ return handler.value.call(this, args, normalizeUndefined);
117
+ }
118
+ // #region function invocation handlers
119
+ // arguments have been type-checked
120
+ _auth() {
121
+ return 'user';
122
+ }
123
+ _now() {
124
+ return `(new Date())`;
125
+ }
126
+ _length(args) {
127
+ const field = this.transform(args[0], false);
128
+ const min = (0, sdk_1.getLiteral)(args[1]);
129
+ const max = (0, sdk_1.getLiteral)(args[2]);
130
+ let result;
131
+ if (min === undefined) {
132
+ result = `(${field}?.length > 0)`;
133
+ }
134
+ else if (max === undefined) {
135
+ result = `(${field}?.length >= ${min})`;
136
+ }
137
+ else {
138
+ result = `(${field}?.length >= ${min} && ${field}?.length <= ${max})`;
139
+ }
140
+ return this.ensureBoolean(result);
141
+ }
142
+ _contains(args, normalizeUndefined) {
143
+ const field = this.transform(args[0], false);
144
+ const caseInsensitive = (0, sdk_1.getLiteral)(args[2]) === true;
145
+ let result;
146
+ if (caseInsensitive) {
147
+ result = `${field}?.toLowerCase().includes(${this.transform(args[1], normalizeUndefined)}?.toLowerCase())`;
148
+ }
149
+ else {
150
+ result = `${field}?.includes(${this.transform(args[1], normalizeUndefined)})`;
151
+ }
152
+ return this.ensureBoolean(result);
153
+ }
154
+ _startsWith(args, normalizeUndefined) {
155
+ const field = this.transform(args[0], false);
156
+ const result = `${field}?.startsWith(${this.transform(args[1], normalizeUndefined)})`;
157
+ return this.ensureBoolean(result);
158
+ }
159
+ _endsWith(args, normalizeUndefined) {
160
+ const field = this.transform(args[0], false);
161
+ const result = `${field}?.endsWith(${this.transform(args[1], normalizeUndefined)})`;
162
+ return this.ensureBoolean(result);
163
+ }
164
+ _regex(args) {
165
+ const field = this.transform(args[0], false);
166
+ const pattern = (0, sdk_1.getLiteral)(args[1]);
167
+ return `new RegExp(${JSON.stringify(pattern)}).test(${field})`;
168
+ }
169
+ _email(args) {
170
+ const field = this.transform(args[0], false);
171
+ return `z.string().email().safeParse(${field}).success`;
172
+ }
173
+ _datetime(args) {
174
+ const field = this.transform(args[0], false);
175
+ return `z.string().datetime({ offset: true }).safeParse(${field}).success`;
176
+ }
177
+ _url(args) {
178
+ const field = this.transform(args[0], false);
179
+ return `z.string().url().safeParse(${field}).success`;
180
+ }
181
+ _has(args, normalizeUndefined) {
182
+ const field = this.transform(args[0], false);
183
+ const result = `${field}?.includes(${this.transform(args[1], normalizeUndefined)})`;
184
+ return this.ensureBoolean(result);
185
+ }
186
+ _hasEvery(args, normalizeUndefined) {
187
+ const field = this.transform(args[0], false);
188
+ const result = `${this.transform(args[1], normalizeUndefined)}?.every((item) => ${field}?.includes(item))`;
189
+ return this.ensureBoolean(result);
190
+ }
191
+ _hasSome(args, normalizeUndefined) {
192
+ const field = this.transform(args[0], false);
193
+ const result = `${this.transform(args[1], normalizeUndefined)}?.some((item) => ${field}?.includes(item))`;
194
+ return this.ensureBoolean(result);
195
+ }
196
+ _isEmpty(args) {
197
+ const field = this.transform(args[0], false);
198
+ const result = `(!${field} || ${field}?.length === 0)`;
199
+ return this.ensureBoolean(result);
200
+ }
201
+ ensureBoolean(expr) {
202
+ return `(${expr} ?? false)`;
203
+ }
204
+ // #endregion
205
+ reference(expr) {
206
+ var _a, _b;
207
+ if (!expr.target.ref) {
208
+ throw new TypeScriptExpressionTransformerError(`Unresolved ReferenceExpr`);
209
+ }
210
+ if ((0, ast_1.isEnumField)(expr.target.ref)) {
211
+ return `${expr.target.ref.$container.name}.${expr.target.ref.name}`;
212
+ }
213
+ else {
214
+ if ((_a = this.options) === null || _a === void 0 ? void 0 : _a.isPostGuard) {
215
+ // if we're processing post-update, any direct field access should be
216
+ // treated as access to context.preValue, which is entity's value before
217
+ // the update
218
+ return `context.preValue?.${expr.target.ref.name}`;
219
+ }
220
+ else {
221
+ return ((_b = this.options) === null || _b === void 0 ? void 0 : _b.fieldReferenceContext)
222
+ ? `${this.options.fieldReferenceContext}?.${expr.target.ref.name}`
223
+ : expr.target.ref.name;
224
+ }
225
+ }
226
+ }
227
+ null() {
228
+ return 'null';
229
+ }
230
+ array(expr, normalizeUndefined) {
231
+ return `[${expr.items.map((item) => this.transform(item, normalizeUndefined)).join(', ')}]`;
232
+ }
233
+ literal(expr) {
234
+ if (expr.$type === ast_1.StringLiteral) {
235
+ return `'${expr.value}'`;
236
+ }
237
+ else {
238
+ return expr.value.toString();
239
+ }
240
+ }
241
+ unary(expr, normalizeUndefined) {
242
+ return `(${expr.operator} ${this.transform(expr.operand, normalizeUndefined)})`;
243
+ }
244
+ binary(expr, normalizeUndefined) {
245
+ const _default = `(${this.transform(expr.left, normalizeUndefined)} ${expr.operator} ${this.transform(expr.right, normalizeUndefined)})`;
246
+ return (0, ts_pattern_1.match)(expr.operator)
247
+ .with('in', () => `(${this.transform(expr.right, false)}?.includes(${this.transform(expr.left, normalizeUndefined)}) ?? false)`)
248
+ .with(ts_pattern_1.P.union('==', '!='), () => {
249
+ var _a;
250
+ if ((0, ast_1.isThisExpr)(expr.left) || (0, ast_1.isThisExpr)(expr.right)) {
251
+ // map equality comparison with `this` to id comparison
252
+ const _this = (0, ast_1.isThisExpr)(expr.left) ? expr.left : expr.right;
253
+ const model = (_a = _this.$resolvedType) === null || _a === void 0 ? void 0 : _a.decl;
254
+ const idFields = (0, ast_utils_1.getIdFields)(model);
255
+ if (!idFields || idFields.length === 0) {
256
+ throw new TypeScriptExpressionTransformerError(`model "${model.name}" does not have an id field`);
257
+ }
258
+ let result = `allFieldsEqual(${this.transform(expr.left, false)},
259
+ ${this.transform(expr.right, false)}, [${idFields.map((f) => "'" + f.name + "'").join(', ')}])`;
260
+ if (expr.operator === '!=') {
261
+ result = `!${result}`;
262
+ }
263
+ return result;
264
+ }
265
+ else {
266
+ return _default;
267
+ }
268
+ })
269
+ .with(ts_pattern_1.P.union('?', '!', '^'), (op) => this.collectionPredicate(expr, op, normalizeUndefined))
270
+ .otherwise(() => _default);
271
+ }
272
+ collectionPredicate(expr, operator, normalizeUndefined) {
273
+ const operand = this.transform(expr.left, normalizeUndefined);
274
+ const innerTransformer = new TypeScriptExpressionTransformer(Object.assign(Object.assign({}, this.options), { fieldReferenceContext: '_item' }));
275
+ const predicate = innerTransformer.transform(expr.right, normalizeUndefined);
276
+ return (0, ts_pattern_1.match)(operator)
277
+ .with('?', () => `!!((${operand})?.some((_item: any) => ${predicate}))`)
278
+ .with('!', () => `!!((${operand})?.every((_item: any) => ${predicate}))`)
279
+ .with('^', () => `!((${operand})?.some((_item: any) => ${predicate}))`)
280
+ .exhaustive();
281
+ }
282
+ }
283
+ __decorate([
284
+ func('auth')
285
+ ], TypeScriptExpressionTransformer.prototype, "_auth", null);
286
+ __decorate([
287
+ func('now')
288
+ ], TypeScriptExpressionTransformer.prototype, "_now", null);
289
+ __decorate([
290
+ func('length')
291
+ ], TypeScriptExpressionTransformer.prototype, "_length", null);
292
+ __decorate([
293
+ func('contains')
294
+ ], TypeScriptExpressionTransformer.prototype, "_contains", null);
295
+ __decorate([
296
+ func('startsWith')
297
+ ], TypeScriptExpressionTransformer.prototype, "_startsWith", null);
298
+ __decorate([
299
+ func('endsWith')
300
+ ], TypeScriptExpressionTransformer.prototype, "_endsWith", null);
301
+ __decorate([
302
+ func('regex')
303
+ ], TypeScriptExpressionTransformer.prototype, "_regex", null);
304
+ __decorate([
305
+ func('email')
306
+ ], TypeScriptExpressionTransformer.prototype, "_email", null);
307
+ __decorate([
308
+ func('datetime')
309
+ ], TypeScriptExpressionTransformer.prototype, "_datetime", null);
310
+ __decorate([
311
+ func('url')
312
+ ], TypeScriptExpressionTransformer.prototype, "_url", null);
313
+ __decorate([
314
+ func('has')
315
+ ], TypeScriptExpressionTransformer.prototype, "_has", null);
316
+ __decorate([
317
+ func('hasEvery')
318
+ ], TypeScriptExpressionTransformer.prototype, "_hasEvery", null);
319
+ __decorate([
320
+ func('hasSome')
321
+ ], TypeScriptExpressionTransformer.prototype, "_hasSome", null);
322
+ __decorate([
323
+ func('isEmpty')
324
+ ], TypeScriptExpressionTransformer.prototype, "_isEmpty", null);
325
+ exports.TypeScriptExpressionTransformer = TypeScriptExpressionTransformer;
326
+ //# sourceMappingURL=typescript-expression-transformer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript-expression-transformer.js","sourceRoot":"","sources":["../../src/utils/typescript-expression-transformer.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,13 @@ function getVersion() {
7
7
  return require('../package.json').version;
8
8
  }
9
9
  catch (_a) {
10
- return require('../../package.json').version;
10
+ try {
11
+ // dev environment
12
+ return require('../../package.json').version;
13
+ }
14
+ catch (_b) {
15
+ return undefined;
16
+ }
11
17
  }
12
18
  }
13
19
  exports.getVersion = getVersion;
@@ -1 +1 @@
1
- {"version":3,"file":"version-utils.js","sourceRoot":"","sources":["../../src/utils/version-utils.ts"],"names":[],"mappings":";;;AAAA,uDAAuD;AACvD,SAAgB,UAAU;IACtB,IAAI;QACA,OAAO,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC;KAC7C;IAAC,WAAM;QACJ,OAAO,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC;KAChD;AACL,CAAC;AAND,gCAMC"}
1
+ {"version":3,"file":"version-utils.js","sourceRoot":"","sources":["../../src/utils/version-utils.ts"],"names":[],"mappings":";;;AAAA,uDAAuD;AACvD,SAAgB,UAAU;IACtB,IAAI;QACA,OAAO,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC;KAC7C;IAAC,WAAM;QACJ,IAAI;YACA,kBAAkB;YAClB,OAAO,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC;SAChD;QAAC,WAAM;YACJ,OAAO,SAAS,CAAC;SACpB;KACJ;AACL,CAAC;AAXD,gCAWC"}
@@ -1,26 +0,0 @@
1
- import { Expression } from '@zenstackhq/language/ast';
2
- /**
3
- * Transforms ZModel expression to plain TypeScript expression.
4
- */
5
- export default class TypeScriptExpressionTransformer {
6
- private readonly isPostGuard;
7
- /**
8
- * Constructs a new TypeScriptExpressionTransformer.
9
- *
10
- * @param isPostGuard indicates if we're writing for post-update conditions
11
- */
12
- constructor(isPostGuard?: boolean);
13
- /**
14
- *
15
- * @param expr
16
- * @returns
17
- */
18
- transform(expr: Expression): string;
19
- private this;
20
- private memberAccess;
21
- private invocation;
22
- private reference;
23
- private null;
24
- private array;
25
- private literal;
26
- }
@@ -1,111 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const ast_1 = require("@zenstackhq/language/ast");
4
- const sdk_1 = require("@zenstackhq/sdk");
5
- const ast_utils_1 = require("../../utils/ast-utils");
6
- const utils_1 = require("./utils");
7
- /**
8
- * Transforms ZModel expression to plain TypeScript expression.
9
- */
10
- class TypeScriptExpressionTransformer {
11
- /**
12
- * Constructs a new TypeScriptExpressionTransformer.
13
- *
14
- * @param isPostGuard indicates if we're writing for post-update conditions
15
- */
16
- constructor(isPostGuard = false) {
17
- this.isPostGuard = isPostGuard;
18
- }
19
- /**
20
- *
21
- * @param expr
22
- * @returns
23
- */
24
- transform(expr) {
25
- switch (expr.$type) {
26
- case ast_1.LiteralExpr:
27
- return this.literal(expr);
28
- case ast_1.ArrayExpr:
29
- return this.array(expr);
30
- case ast_1.NullExpr:
31
- return this.null();
32
- case ast_1.ThisExpr:
33
- return this.this(expr);
34
- case ast_1.ReferenceExpr:
35
- return this.reference(expr);
36
- case ast_1.InvocationExpr:
37
- return this.invocation(expr);
38
- case ast_1.MemberAccessExpr:
39
- return this.memberAccess(expr);
40
- default:
41
- throw new sdk_1.PluginError(`Unsupported expression type: ${expr.$type}`);
42
- }
43
- }
44
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
45
- this(expr) {
46
- // "this" is mapped to id comparison
47
- return 'id';
48
- }
49
- memberAccess(expr) {
50
- if (!expr.member.ref) {
51
- throw new sdk_1.PluginError(`Unresolved MemberAccessExpr`);
52
- }
53
- if ((0, ast_1.isThisExpr)(expr.operand)) {
54
- return expr.member.ref.name;
55
- }
56
- else if ((0, utils_1.isFutureExpr)(expr.operand)) {
57
- if (!this.isPostGuard) {
58
- throw new sdk_1.PluginError(`future() is only supported in postUpdate rules`);
59
- }
60
- return expr.member.ref.name;
61
- }
62
- else {
63
- // normalize field access to null instead of undefined to avoid accidentally use undefined in filter
64
- return `(${this.transform(expr.operand)} ? ${this.transform(expr.operand)}.${expr.member.ref.name} : null)`;
65
- }
66
- }
67
- invocation(expr) {
68
- var _a;
69
- if ((0, ast_utils_1.isAuthInvocation)(expr)) {
70
- return 'user';
71
- }
72
- else {
73
- throw new sdk_1.PluginError(`Function invocation is not supported: ${(_a = expr.function.ref) === null || _a === void 0 ? void 0 : _a.name}`);
74
- }
75
- }
76
- reference(expr) {
77
- if (!expr.target.ref) {
78
- throw new sdk_1.PluginError(`Unresolved ReferenceExpr`);
79
- }
80
- if ((0, ast_1.isEnumField)(expr.target.ref)) {
81
- return `${expr.target.ref.$container.name}.${expr.target.ref.name}`;
82
- }
83
- else {
84
- if (this.isPostGuard) {
85
- // if we're processing post-update, any direct field access should be
86
- // treated as access to context.preValue, which is entity's value before
87
- // the update
88
- return `context.preValue?.${expr.target.ref.name}`;
89
- }
90
- else {
91
- return expr.target.ref.name;
92
- }
93
- }
94
- }
95
- null() {
96
- return 'null';
97
- }
98
- array(expr) {
99
- return `[${expr.items.map((item) => this.transform(item)).join(', ')}]`;
100
- }
101
- literal(expr) {
102
- if (typeof expr.value === 'string') {
103
- return `'${expr.value}'`;
104
- }
105
- else {
106
- return expr.value.toString();
107
- }
108
- }
109
- }
110
- exports.default = TypeScriptExpressionTransformer;
111
- //# sourceMappingURL=typescript-expression-transformer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"typescript-expression-transformer.js","sourceRoot":"","sources":["../../../src/plugins/access-policy/typescript-expression-transformer.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import { Expression } from '@zenstackhq/language/ast';
2
- /**
3
- * Returns if the given expression is a "future()" method call.
4
- */
5
- export declare function isFutureExpr(expr: Expression): boolean;
@@ -1,14 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isFutureExpr = void 0;
4
- const ast_1 = require("@zenstackhq/language/ast");
5
- const utils_1 = require("../../language-server/utils");
6
- /**
7
- * Returns if the given expression is a "future()" method call.
8
- */
9
- function isFutureExpr(expr) {
10
- var _a;
11
- return !!((0, ast_1.isInvocationExpr)(expr) && ((_a = expr.function.ref) === null || _a === void 0 ? void 0 : _a.name) === 'future' && (0, utils_1.isFromStdlib)(expr.function.ref));
12
- }
13
- exports.isFutureExpr = isFutureExpr;
14
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/plugins/access-policy/utils.ts"],"names":[],"mappings":";;;AAAA,kDAAwE;AACxE,uDAA2D;AAE3D;;GAEG;AACH,SAAgB,YAAY,CAAC,IAAgB;;IACzC,OAAO,CAAC,CAAC,CAAC,IAAA,sBAAgB,EAAC,IAAI,CAAC,IAAI,CAAA,MAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,0CAAE,IAAI,MAAK,QAAQ,IAAI,IAAA,oBAAY,EAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACjH,CAAC;AAFD,oCAEC"}
@@ -1,12 +0,0 @@
1
- import { DataModel } from '@zenstackhq/language/ast';
2
- import { CodeBlockWriter } from 'ts-morph';
3
- /**
4
- * Writes Zod schema for data models.
5
- */
6
- export declare class ZodSchemaGenerator {
7
- generate(writer: CodeBlockWriter, models: DataModel[]): void;
8
- private hasValidationAttributes;
9
- private makeFieldValidator;
10
- private makeZodSchema;
11
- private getAttrLiteralArg;
12
- }