zenstack 1.0.0-beta.2 → 1.0.0-beta.20

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 (86) hide show
  1. package/README.md +16 -8
  2. package/cli/cli-util.js +1 -1
  3. package/cli/cli-util.js.map +1 -1
  4. package/cli/plugin-runner.d.ts +2 -1
  5. package/cli/plugin-runner.js +101 -47
  6. package/cli/plugin-runner.js.map +1 -1
  7. package/language-server/constants.d.ts +0 -4
  8. package/language-server/constants.js +1 -14
  9. package/language-server/constants.js.map +1 -1
  10. package/language-server/utils.d.ts +1 -10
  11. package/language-server/utils.js +1 -20
  12. package/language-server/utils.js.map +1 -1
  13. package/language-server/validator/attribute-application-validator.d.ts +15 -0
  14. package/language-server/validator/attribute-application-validator.js +246 -0
  15. package/language-server/validator/attribute-application-validator.js.map +1 -0
  16. package/language-server/validator/attribute-validator.d.ts +1 -1
  17. package/language-server/validator/attribute-validator.js +4 -1
  18. package/language-server/validator/attribute-validator.js.map +1 -1
  19. package/language-server/validator/datamodel-validator.js +11 -7
  20. package/language-server/validator/datamodel-validator.js.map +1 -1
  21. package/language-server/validator/enum-validator.js +3 -6
  22. package/language-server/validator/enum-validator.js.map +1 -1
  23. package/language-server/validator/expression-validator.js +38 -1
  24. package/language-server/validator/expression-validator.js.map +1 -1
  25. package/language-server/validator/function-decl-validator.d.ts +9 -0
  26. package/language-server/validator/function-decl-validator.js +13 -0
  27. package/language-server/validator/function-decl-validator.js.map +1 -0
  28. package/language-server/validator/function-invocation-validator.js +34 -9
  29. package/language-server/validator/function-invocation-validator.js.map +1 -1
  30. package/language-server/validator/utils.d.ts +2 -3
  31. package/language-server/validator/utils.js +1 -112
  32. package/language-server/validator/utils.js.map +1 -1
  33. package/language-server/validator/zmodel-validator.d.ts +2 -1
  34. package/language-server/validator/zmodel-validator.js +8 -3
  35. package/language-server/validator/zmodel-validator.js.map +1 -1
  36. package/language-server/zmodel-linker.d.ts +1 -0
  37. package/language-server/zmodel-linker.js +49 -7
  38. package/language-server/zmodel-linker.js.map +1 -1
  39. package/package.json +8 -15
  40. package/plugins/access-policy/expression-writer.d.ts +3 -0
  41. package/plugins/access-policy/expression-writer.js +125 -63
  42. package/plugins/access-policy/expression-writer.js.map +1 -1
  43. package/plugins/access-policy/policy-guard-generator.d.ts +8 -1
  44. package/plugins/access-policy/policy-guard-generator.js +286 -73
  45. package/plugins/access-policy/policy-guard-generator.js.map +1 -1
  46. package/plugins/model-meta/index.js +55 -3
  47. package/plugins/model-meta/index.js.map +1 -1
  48. package/plugins/plugin-utils.d.ts +4 -0
  49. package/plugins/plugin-utils.js +16 -1
  50. package/plugins/plugin-utils.js.map +1 -1
  51. package/plugins/prisma/prisma-builder.d.ts +3 -1
  52. package/plugins/prisma/prisma-builder.js +9 -3
  53. package/plugins/prisma/prisma-builder.js.map +1 -1
  54. package/plugins/prisma/schema-generator.js +51 -6
  55. package/plugins/prisma/schema-generator.js.map +1 -1
  56. package/plugins/zod/generator.js +161 -19
  57. package/plugins/zod/generator.js.map +1 -1
  58. package/plugins/zod/index.d.ts +1 -1
  59. package/plugins/zod/transformer.d.ts +5 -5
  60. package/plugins/zod/transformer.js +154 -103
  61. package/plugins/zod/transformer.js.map +1 -1
  62. package/plugins/zod/types.d.ts +2 -0
  63. package/plugins/zod/utils/schema-gen.d.ts +3 -0
  64. package/plugins/zod/utils/schema-gen.js +178 -0
  65. package/plugins/zod/utils/schema-gen.js.map +1 -0
  66. package/res/stdlib.zmodel +113 -30
  67. package/telemetry.d.ts +1 -0
  68. package/telemetry.js +3 -1
  69. package/telemetry.js.map +1 -1
  70. package/utils/ast-utils.d.ts +1 -14
  71. package/utils/ast-utils.js +2 -72
  72. package/utils/ast-utils.js.map +1 -1
  73. package/utils/pkg-utils.js +1 -1
  74. package/utils/pkg-utils.js.map +1 -1
  75. package/utils/typescript-expression-transformer.d.ts +53 -0
  76. package/utils/typescript-expression-transformer.js +293 -0
  77. package/utils/typescript-expression-transformer.js.map +1 -0
  78. package/plugins/access-policy/typescript-expression-transformer.d.ts +0 -28
  79. package/plugins/access-policy/typescript-expression-transformer.js +0 -180
  80. package/plugins/access-policy/typescript-expression-transformer.js.map +0 -1
  81. package/plugins/access-policy/utils.d.ts +0 -5
  82. package/plugins/access-policy/utils.js +0 -14
  83. package/plugins/access-policy/utils.js.map +0 -1
  84. package/plugins/access-policy/zod-schema-generator.d.ts +0 -12
  85. package/plugins/access-policy/zod-schema-generator.js +0 -160
  86. package/plugins/access-policy/zod-schema-generator.js.map +0 -1
@@ -0,0 +1,246 @@
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.validateAttributeApplication = void 0;
13
+ const ast_1 = require("@zenstackhq/language/ast");
14
+ const sdk_1 = require("@zenstackhq/sdk");
15
+ const langium_1 = require("langium");
16
+ const pluralize_1 = __importDefault(require("pluralize"));
17
+ const utils_1 = require("./utils");
18
+ // a registry of function handlers marked with @func
19
+ const attributeCheckers = new Map();
20
+ // function handler decorator
21
+ function check(name) {
22
+ return function (_target, _propertyKey, descriptor) {
23
+ if (!attributeCheckers.get(name)) {
24
+ attributeCheckers.set(name, descriptor);
25
+ }
26
+ return descriptor;
27
+ };
28
+ }
29
+ /**
30
+ * Validates function declarations.
31
+ */
32
+ class AttributeApplicationValidator {
33
+ validate(attr, accept) {
34
+ const decl = attr.decl.ref;
35
+ if (!decl) {
36
+ return;
37
+ }
38
+ const targetDecl = attr.$container;
39
+ if (decl.name === '@@@targetField' && !(0, ast_1.isAttribute)(targetDecl)) {
40
+ accept('error', `attribute "${decl.name}" can only be used on attribute declarations`, { node: attr });
41
+ return;
42
+ }
43
+ if ((0, ast_1.isDataModelField)(targetDecl) && !isValidAttributeTarget(decl, targetDecl)) {
44
+ accept('error', `attribute "${decl.name}" cannot be used on this type of field`, { node: attr });
45
+ }
46
+ const filledParams = new Set();
47
+ for (const arg of attr.args) {
48
+ let paramDecl;
49
+ if (!arg.name) {
50
+ paramDecl = decl.params.find((p) => p.default && !filledParams.has(p));
51
+ if (!paramDecl) {
52
+ accept('error', `Unexpected unnamed argument`, {
53
+ node: arg,
54
+ });
55
+ return;
56
+ }
57
+ }
58
+ else {
59
+ paramDecl = decl.params.find((p) => p.name === arg.name);
60
+ if (!paramDecl) {
61
+ accept('error', `Attribute "${decl.name}" doesn't have a parameter named "${arg.name}"`, {
62
+ node: arg,
63
+ });
64
+ return;
65
+ }
66
+ }
67
+ if (!assignableToAttributeParam(arg, paramDecl, attr)) {
68
+ accept('error', `Value is not assignable to parameter`, {
69
+ node: arg,
70
+ });
71
+ return;
72
+ }
73
+ if (filledParams.has(paramDecl)) {
74
+ accept('error', `Parameter "${paramDecl.name}" is already provided`, { node: arg });
75
+ return;
76
+ }
77
+ filledParams.add(paramDecl);
78
+ arg.$resolvedParam = paramDecl;
79
+ }
80
+ const missingParams = decl.params.filter((p) => !p.type.optional && !filledParams.has(p));
81
+ if (missingParams.length > 0) {
82
+ accept('error', `Required ${(0, pluralize_1.default)('parameter', missingParams.length)} not provided: ${missingParams
83
+ .map((p) => p.name)
84
+ .join(', ')}`, { node: attr });
85
+ return;
86
+ }
87
+ // run checkers for specific attributes
88
+ const checker = attributeCheckers.get(decl.name);
89
+ if (checker) {
90
+ checker.value.call(this, attr, accept);
91
+ }
92
+ }
93
+ _checkModelLevelPolicy(attr, accept) {
94
+ const kind = (0, utils_1.getStringLiteral)(attr.args[0].value);
95
+ if (!kind) {
96
+ accept('error', `expects a string literal`, { node: attr.args[0] });
97
+ return;
98
+ }
99
+ this.validatePolicyKinds(kind, ['create', 'read', 'update', 'delete', 'all'], attr, accept);
100
+ }
101
+ _checkFieldLevelPolicy(attr, accept) {
102
+ const kind = (0, utils_1.getStringLiteral)(attr.args[0].value);
103
+ if (!kind) {
104
+ accept('error', `expects a string literal`, { node: attr.args[0] });
105
+ return;
106
+ }
107
+ this.validatePolicyKinds(kind, ['read', 'update', 'all'], attr, accept);
108
+ const expr = attr.args[1].value;
109
+ if ([expr, ...(0, langium_1.streamAllContents)(expr)].some((node) => (0, sdk_1.isFutureExpr)(node))) {
110
+ accept('error', `"future()" is not allowed in field-level policy rules`, { node: expr });
111
+ }
112
+ }
113
+ validatePolicyKinds(kind, candidates, attr, accept) {
114
+ const items = kind.split(',').map((x) => x.trim());
115
+ items.forEach((item) => {
116
+ if (!candidates.includes(item)) {
117
+ accept('error', `Invalid policy rule kind: "${item}", allowed: ${candidates.map((c) => '"' + c + '"').join(', ')}`, { node: attr });
118
+ }
119
+ });
120
+ }
121
+ }
122
+ __decorate([
123
+ check('@@allow'),
124
+ check('@@deny')
125
+ ], AttributeApplicationValidator.prototype, "_checkModelLevelPolicy", null);
126
+ __decorate([
127
+ check('@allow'),
128
+ check('@deny')
129
+ ], AttributeApplicationValidator.prototype, "_checkFieldLevelPolicy", null);
130
+ exports.default = AttributeApplicationValidator;
131
+ function assignableToAttributeParam(arg, param, attr) {
132
+ var _a, _b, _c, _d;
133
+ const argResolvedType = arg.$resolvedType;
134
+ if (!argResolvedType) {
135
+ return false;
136
+ }
137
+ let dstType = param.type.type;
138
+ let dstIsArray = param.type.array;
139
+ const dstRef = param.type.reference;
140
+ if (dstType === 'Any' && !dstIsArray) {
141
+ return true;
142
+ }
143
+ // destination is field reference or transitive field reference, check if
144
+ // argument is reference or array or reference
145
+ if (dstType === 'FieldReference' || dstType === 'TransitiveFieldReference') {
146
+ if (dstIsArray) {
147
+ return ((0, ast_1.isArrayExpr)(arg.value) &&
148
+ !arg.value.items.find((item) => !(0, ast_1.isReferenceExpr)(item) || !(0, ast_1.isDataModelField)(item.target.ref)));
149
+ }
150
+ else {
151
+ return (0, ast_1.isReferenceExpr)(arg.value) && (0, ast_1.isDataModelField)(arg.value.target.ref);
152
+ }
153
+ }
154
+ if ((0, ast_1.isEnum)(argResolvedType.decl)) {
155
+ // enum type
156
+ let attrArgDeclType = dstRef === null || dstRef === void 0 ? void 0 : dstRef.ref;
157
+ if (dstType === 'ContextType' && (0, ast_1.isDataModelField)(attr.$container) && ((_b = (_a = attr.$container) === null || _a === void 0 ? void 0 : _a.type) === null || _b === void 0 ? void 0 : _b.reference)) {
158
+ // attribute parameter type is ContextType, need to infer type from
159
+ // the attribute's container
160
+ attrArgDeclType = (0, sdk_1.resolved)(attr.$container.type.reference);
161
+ dstIsArray = attr.$container.type.array;
162
+ }
163
+ return attrArgDeclType === argResolvedType.decl && dstIsArray === argResolvedType.array;
164
+ }
165
+ else if (dstType) {
166
+ // scalar type
167
+ if (typeof (argResolvedType === null || argResolvedType === void 0 ? void 0 : argResolvedType.decl) !== 'string') {
168
+ // destination type is not a reference, so argument type must be a plain expression
169
+ return false;
170
+ }
171
+ if (dstType === 'ContextType') {
172
+ // attribute parameter type is ContextType, need to infer type from
173
+ // the attribute's container
174
+ if ((0, ast_1.isDataModelField)(attr.$container)) {
175
+ if (!((_d = (_c = attr.$container) === null || _c === void 0 ? void 0 : _c.type) === null || _d === void 0 ? void 0 : _d.type)) {
176
+ return false;
177
+ }
178
+ dstType = (0, utils_1.mapBuiltinTypeToExpressionType)(attr.$container.type.type);
179
+ dstIsArray = attr.$container.type.array;
180
+ }
181
+ else {
182
+ dstType = 'Any';
183
+ }
184
+ }
185
+ return (0, utils_1.typeAssignable)(dstType, argResolvedType.decl, arg.value) && dstIsArray === argResolvedType.array;
186
+ }
187
+ else {
188
+ // reference type
189
+ return ((dstRef === null || dstRef === void 0 ? void 0 : dstRef.ref) === argResolvedType.decl || dstType === 'Any') && dstIsArray === argResolvedType.array;
190
+ }
191
+ }
192
+ function isValidAttributeTarget(attrDecl, targetDecl) {
193
+ var _a;
194
+ const targetField = attrDecl.attributes.find((attr) => { var _a; return ((_a = attr.decl.ref) === null || _a === void 0 ? void 0 : _a.name) === '@@@targetField'; });
195
+ if (!targetField) {
196
+ // no field type constraint
197
+ return true;
198
+ }
199
+ const fieldTypes = targetField.args[0].value.items.map((item) => { var _a; return (_a = item.target.ref) === null || _a === void 0 ? void 0 : _a.name; });
200
+ let allowed = false;
201
+ for (const allowedType of fieldTypes) {
202
+ switch (allowedType) {
203
+ case 'StringField':
204
+ allowed = allowed || targetDecl.type.type === 'String';
205
+ break;
206
+ case 'IntField':
207
+ allowed = allowed || targetDecl.type.type === 'Int';
208
+ break;
209
+ case 'BigIntField':
210
+ allowed = allowed || targetDecl.type.type === 'BigInt';
211
+ break;
212
+ case 'FloatField':
213
+ allowed = allowed || targetDecl.type.type === 'Float';
214
+ break;
215
+ case 'DecimalField':
216
+ allowed = allowed || targetDecl.type.type === 'Decimal';
217
+ break;
218
+ case 'BooleanField':
219
+ allowed = allowed || targetDecl.type.type === 'Boolean';
220
+ break;
221
+ case 'DateTimeField':
222
+ allowed = allowed || targetDecl.type.type === 'DateTime';
223
+ break;
224
+ case 'JsonField':
225
+ allowed = allowed || targetDecl.type.type === 'Json';
226
+ break;
227
+ case 'BytesField':
228
+ allowed = allowed || targetDecl.type.type === 'Bytes';
229
+ break;
230
+ case 'ModelField':
231
+ allowed = allowed || (0, ast_1.isDataModel)((_a = targetDecl.type.reference) === null || _a === void 0 ? void 0 : _a.ref);
232
+ break;
233
+ default:
234
+ break;
235
+ }
236
+ if (allowed) {
237
+ break;
238
+ }
239
+ }
240
+ return allowed;
241
+ }
242
+ function validateAttributeApplication(attr, accept) {
243
+ new AttributeApplicationValidator().validate(attr, accept);
244
+ }
245
+ exports.validateAttributeApplication = validateAttributeApplication;
246
+ //# sourceMappingURL=attribute-application-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attribute-application-validator.js","sourceRoot":"","sources":["../../../src/language-server/validator/attribute-application-validator.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { Attribute } from '@zenstackhq/language/ast';
2
- import { AstValidator } from '../types';
3
2
  import { ValidationAcceptor } from 'langium';
3
+ import { AstValidator } from '../types';
4
4
  /**
5
5
  * Validates attribute declarations.
6
6
  */
@@ -1,11 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const attribute_application_validator_1 = require("./attribute-application-validator");
3
4
  /**
4
5
  * Validates attribute declarations.
5
6
  */
6
7
  class AttributeValidator {
7
8
  // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function
8
- validate(attr, accept) { }
9
+ validate(attr, accept) {
10
+ attr.attributes.forEach((attr) => (0, attribute_application_validator_1.validateAttributeApplication)(attr, accept));
11
+ }
9
12
  }
10
13
  exports.default = AttributeValidator;
11
14
  //# sourceMappingURL=attribute-validator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"attribute-validator.js","sourceRoot":"","sources":["../../../src/language-server/validator/attribute-validator.ts"],"names":[],"mappings":";;AAIA;;GAEG;AACH,MAAqB,kBAAkB;IACnC,mGAAmG;IACnG,QAAQ,CAAC,IAAe,EAAE,MAA0B,IAAS,CAAC;CACjE;AAHD,qCAGC"}
1
+ {"version":3,"file":"attribute-validator.js","sourceRoot":"","sources":["../../../src/language-server/validator/attribute-validator.ts"],"names":[],"mappings":";;AAGA,uFAAiF;AAEjF;;GAEG;AACH,MAAqB,kBAAkB;IACnC,mGAAmG;IACnG,QAAQ,CAAC,IAAe,EAAE,MAA0B;QAChD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,8DAA4B,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAClF,CAAC;CACJ;AALD,qCAKC"}
@@ -5,6 +5,7 @@ const sdk_1 = require("@zenstackhq/sdk");
5
5
  const langium_1 = require("langium");
6
6
  const constants_1 = require("../constants");
7
7
  const utils_1 = require("../utils");
8
+ const attribute_application_validator_1 = require("./attribute-application-validator");
8
9
  const utils_2 = require("./utils");
9
10
  /**
10
11
  * Validates data model declarations.
@@ -18,13 +19,18 @@ class DataModelValidator {
18
19
  }
19
20
  validateFields(dm, accept) {
20
21
  const idFields = dm.$resolvedFields.filter((f) => f.attributes.find((attr) => { var _a; return ((_a = attr.decl.ref) === null || _a === void 0 ? void 0 : _a.name) === '@id'; }));
21
- const modelLevelIds = (0, sdk_1.getIdFields)(dm);
22
- if (idFields.length === 0 && modelLevelIds.length === 0) {
22
+ const uniqueFields = dm.$resolvedFields.filter((f) => f.attributes.find((attr) => { var _a; return ((_a = attr.decl.ref) === null || _a === void 0 ? void 0 : _a.name) === '@unique'; }));
23
+ const modelLevelIds = (0, sdk_1.getModelIdFields)(dm);
24
+ const modelUniqueFields = (0, sdk_1.getModelUniqueFields)(dm);
25
+ if (idFields.length === 0 &&
26
+ modelLevelIds.length === 0 &&
27
+ uniqueFields.length === 0 &&
28
+ modelUniqueFields.length === 0) {
23
29
  const { allows, denies, hasFieldValidation } = (0, sdk_1.analyzePolicies)(dm);
24
30
  if (allows.length > 0 || denies.length > 0 || hasFieldValidation) {
25
31
  // TODO: relax this requirement to require only @unique fields
26
32
  // when access policies or field valdaition is used, require an @id field
27
- accept('error', 'Model must include a field with @id attribute or a model-level @@id attribute', {
33
+ accept('error', 'Model must include a field with @id or @unique attribute, or a model-level @@id or @@unique attribute to use access policies', {
28
34
  node: dm,
29
35
  });
30
36
  }
@@ -66,12 +72,10 @@ class DataModelValidator {
66
72
  if (field.type.unsupported && typeof field.type.unsupported.value.value !== 'string') {
67
73
  accept('error', 'Unsupported type argument must be a string literal', { node: field.type.unsupported });
68
74
  }
69
- field.attributes.forEach((attr) => (0, utils_2.validateAttributeApplication)(attr, accept));
75
+ field.attributes.forEach((attr) => (0, attribute_application_validator_1.validateAttributeApplication)(attr, accept));
70
76
  }
71
77
  validateAttributes(dm, accept) {
72
- dm.attributes.forEach((attr) => {
73
- (0, utils_2.validateAttributeApplication)(attr, accept);
74
- });
78
+ dm.attributes.forEach((attr) => (0, attribute_application_validator_1.validateAttributeApplication)(attr, accept));
75
79
  }
76
80
  parseRelation(field, accept) {
77
81
  var _a, _b, _c, _d;
@@ -1 +1 @@
1
- {"version":3,"file":"datamodel-validator.js","sourceRoot":"","sources":["../../../src/language-server/validator/datamodel-validator.ts"],"names":[],"mappings":";;AAAA,kDAOkC;AAClC,yCAA2E;AAC3E,qCAAmF;AACnF,4CAAwD;AAExD,oCAA2C;AAC3C,mCAAuF;AAEvF;;GAEG;AACH,MAAqB,kBAAkB;IACnC,QAAQ,CAAC,EAAa,EAAE,MAA0B;QAC9C,IAAI,CAAC,yBAAyB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAC3C,IAAA,sCAA8B,EAAC,EAAE,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QAC3D,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC;IAEO,cAAc,CAAC,EAAa,EAAE,MAA0B;QAC5D,MAAM,QAAQ,GAAG,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,WAAC,OAAA,CAAA,MAAA,IAAI,CAAC,IAAI,CAAC,GAAG,0CAAE,IAAI,MAAK,KAAK,CAAA,EAAA,CAAC,CAAC,CAAC;QAC9G,MAAM,aAAa,GAAG,IAAA,iBAAW,EAAC,EAAE,CAAC,CAAC;QAEtC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;YACrD,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,EAAE,GAAG,IAAA,qBAAe,EAAC,EAAE,CAAC,CAAC;YACnE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,kBAAkB,EAAE;gBAC9D,8DAA8D;gBAC9D,yEAAyE;gBACzE,MAAM,CAAC,OAAO,EAAE,+EAA+E,EAAE;oBAC7F,IAAI,EAAE,EAAE;iBACX,CAAC,CAAC;aACN;SACJ;aAAM,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;YACxD,MAAM,CAAC,OAAO,EAAE,wEAAwE,EAAE;gBACtF,IAAI,EAAE,EAAE;aACX,CAAC,CAAC;SACN;aAAM,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5B,MAAM,CAAC,OAAO,EAAE,wDAAwD,EAAE;gBACtE,IAAI,EAAE,EAAE;aACX,CAAC,CAAC;SACN;aAAM;YACH,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC;YACrE,aAAa,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC9B,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE;oBACvB,MAAM,CAAC,OAAO,EAAE,+CAA+C,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;iBACvF;gBACD,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,wBAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBACvF,MAAM,CAAC,OAAO,EAAE,iDAAiD,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;iBACzF;YACL,CAAC,CAAC,CAAC;SACN;QAED,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;QAEhE,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE;YAChB,EAAE,CAAC,eAAe;iBACb,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,WAAC,OAAA,IAAA,iBAAW,EAAC,MAAA,CAAC,CAAC,IAAI,CAAC,SAAS,0CAAE,GAAG,CAAC,CAAA,EAAA,CAAC;iBACjD,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBACX,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YAC1C,CAAC,CAAC,CAAC;SACV;IACL,CAAC;IAEO,aAAa,CAAC,KAAqB,EAAE,MAA0B;QACnE,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE;YACzC,MAAM,CAAC,OAAO,EAAE,kEAAkE,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;SAC7G;QAED,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE;YAClF,MAAM,CAAC,OAAO,EAAE,oDAAoD,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;SAC3G;QAED,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,oCAA4B,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACnF,CAAC;IAEO,kBAAkB,CAAC,EAAa,EAAE,MAA0B;QAChE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC3B,IAAA,oCAA4B,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,aAAa,CAAC,KAAqB,EAAE,MAA2B;;QACpE,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,WAAC,OAAA,CAAA,MAAA,IAAI,CAAC,IAAI,CAAC,GAAG,0CAAE,IAAI,MAAK,WAAW,CAAA,EAAA,CAAC,CAAC;QAErF,IAAI,IAAwB,CAAC;QAC7B,IAAI,MAAmC,CAAC;QACxC,IAAI,UAAuC,CAAC;QAC5C,IAAI,KAAK,GAAG,IAAI,CAAC;QAEjB,IAAI,CAAC,OAAO,EAAE;YACV,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;SACnE;QAED,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE;YAC5B,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE;gBAClC,IAAI,IAAA,mBAAa,EAAC,GAAG,CAAC,KAAK,CAAC,EAAE;oBAC1B,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,KAAe,CAAC;iBACpC;aACJ;iBAAM,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;gBAC9B,MAAM,GAAI,GAAG,CAAC,KAAmB,CAAC,KAAwB,CAAC;gBAC3D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;oBACrB,IAAI,MAAM,EAAE;wBACR,MAAM,CAAC,OAAO,EAAE,gCAAgC,EAAE;4BAC9C,IAAI,EAAE,GAAG;yBACZ,CAAC,CAAC;qBACN;oBACD,KAAK,GAAG,KAAK,CAAC;iBACjB;aACJ;iBAAM,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE;gBAClC,UAAU,GAAI,GAAG,CAAC,KAAmB,CAAC,KAAwB,CAAC;gBAC/D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;oBACzB,IAAI,MAAM,EAAE;wBACR,MAAM,CAAC,OAAO,EAAE,oCAAoC,EAAE;4BAClD,IAAI,EAAE,GAAG;yBACZ,CAAC,CAAC;qBACN;oBACD,KAAK,GAAG,KAAK,CAAC;iBACjB;aACJ;SACJ;QAED,IAAI,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE;YACxB,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE;gBAClC,6BAA6B;gBAC7B,wFAAwF;aAC3F;iBAAM;gBACH,IAAI,MAAM,EAAE;oBACR,MAAM,CAAC,OAAO,EAAE,iDAAiD,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;iBACzF;aACJ;SACJ;aAAM;YACH,wDAAwD;YACxD,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,EAAE;gBACrC,IAAI,MAAM,EAAE;oBACR,MAAM,CAAC,OAAO,EAAE,qDAAqD,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;iBAC7F;aACJ;iBAAM;gBACH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACpC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE;wBAC1B,IAAI,MAAM,EAAE;4BACR,MAAM,CAAC,OAAO,EAAE,+BAA+B,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;yBACzE;qBACJ;oBACD,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE;wBAC9B,IAAI,MAAM,EAAE;4BACR,MAAM,CAAC,OAAO,EAAE,+BAA+B,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;yBAC7E;qBACJ;oBAED,IACI,CAAA,MAAA,MAAM,CAAC,CAAC,CAAC,CAAC,aAAa,0CAAE,IAAI,OAAK,MAAA,UAAU,CAAC,CAAC,CAAC,CAAC,aAAa,0CAAE,IAAI,CAAA;wBACnE,CAAA,MAAA,MAAM,CAAC,CAAC,CAAC,CAAC,aAAa,0CAAE,KAAK,OAAK,MAAA,UAAU,CAAC,CAAC,CAAC,CAAC,aAAa,0CAAE,KAAK,CAAA,EACvE;wBACE,IAAI,MAAM,EAAE;4BACR,MAAM,CAAC,OAAO,EAAE,6DAA6D,EAAE;gCAC3E,IAAI,EAAE,OAAO;6BAChB,CAAC,CAAC;yBACN;qBACJ;iBACJ;aACJ;SACJ;QAED,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;IAC9D,CAAC;IAEO,cAAc,CAAC,KAAqB,EAAE,YAAqB;;QAC/D,IAAI,CAAA,MAAA,KAAK,CAAC,IAAI,CAAC,SAAS,0CAAE,GAAG,MAAK,KAAK,CAAC,UAAU,EAAE;YAChD,6CAA6C;YAC7C,OAAO,IAAI,CAAC;SACf;QAED,IAAI,YAAY,EAAE;YACd,mFAAmF;YACnF,cAAc;YACd,MAAM,aAAa,GAAG,MAAA,KAAK,CAAC,IAAI,CAAC,SAAS,0CAAE,GAAgB,CAAC;YAC7D,IAAI,aAAa,EAAE;gBACf,MAAM,mBAAmB,GAAG,aAAa,CAAC,eAAmC,CAAC;gBAC9E,KAAK,MAAM,aAAa,IAAI,mBAAmB,EAAE;oBAC7C,oDAAoD;oBACpD,MAAM,OAAO,GAAG,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,WAAC,OAAA,CAAA,MAAA,CAAC,CAAC,IAAI,CAAC,GAAG,0CAAE,IAAI,MAAK,WAAW,CAAA,EAAA,CAAC,CAAC;oBACvF,IAAI,OAAO,EAAE;wBACT,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;wBAC3E,MAAM,OAAO,GAAG,IAAA,gBAAU,EAAS,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,KAAK,CAAC,CAAC;wBACvD,IAAI,OAAO,KAAK,YAAY,IAAI,CAAA,MAAA,aAAa,CAAC,IAAI,CAAC,SAAS,0CAAE,GAAG,MAAK,KAAK,CAAC,UAAU,EAAE;4BACpF,yEAAyE;4BACzE,OAAO,IAAI,CAAC;yBACf;qBACJ;iBACJ;aACJ;SACJ;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAEO,qBAAqB,CAAC,KAAqB,EAAE,MAA0B;;QAC3E,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACvD,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;YACrB,OAAO;SACV;QAED,oEAAoE;QACpE,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,SAAU,CAAC,GAAiB,CAAC;QAE9D,yDAAyD;QACzD,IAAI,cAAc,GAAG,aAAa,CAAC,eAAe,CAAC,MAAM,CACrD,CAAC,CAAC,EAAE,EAAE,eAAC,OAAA,CAAA,MAAA,MAAA,CAAC,CAAC,IAAI,CAAC,SAAS,0CAAE,GAAG,0CAAE,IAAI,MAAK,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,EAAA,CAC/D,CAAC;QACF,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YACvC,OAAO,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,CAAC,IAAI,CAAC;QACjE,CAAC,CAAC,CAAC;QAEH,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;YAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC;YAC3D,MAAM,IAAI,GAAoC,EAAE,IAAI,EAAE,IAAI,EAAE,sBAAU,CAAC,uBAAuB,EAAE,CAAC;YAEjG,IAAI,mBAA2B,CAAC;YAChC,IAAI,qBAA6B,CAAC;YAElC,IAAI,KAAK,CAAC,YAAY,EAAE;gBACpB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;gBACvB,MAAM,SAAS,GAAG,KAAK,CAAC,UAAuB,CAAC;gBAChD,MAAM,iBAAiB,GAAG,MAAA,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,WACtD,OAAA,MAAA,CAAC,CAAC,GAAG,0CAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CAAA,EAAA,CACnD,0CAAE,GAAgB,CAAC;gBAEpB,mBAAmB,GAAG,IAAA,qBAAW,EAAC,iBAAiB,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC;gBACtE,qBAAqB,GAAG,iBAAiB,CAAC,IAAI,CAAC;aAClD;iBAAM;gBACH,mBAAmB,GAAG,IAAA,qBAAW,EAAC,KAAK,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC;gBAC1D,qBAAqB,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;aACjD;YAED,MAAM,IAAI,GAAgC;gBACtC,iBAAiB,EAAE,KAAK,CAAC,IAAI;gBAC7B,qBAAqB;gBACrB,mBAAmB;gBACnB,aAAa,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI;aACvC,CAAC;YAEF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YAEjB,MAAM,CACF,OAAO,EACP,uBAAuB,KAAK,CAAC,IAAI,eAAe,KAAK,CAAC,UAAU,CAAC,IAAI,qDAAqD,aAAa,CAAC,IAAI,GAAG,EAC/I,IAAI,CACP,CAAC;YACF,OAAO;SACV;aAAM,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;YAClC,cAAc;iBACT,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;iBAC9B,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBACX,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;oBACxB,6BAA6B;oBAC7B,wFAAwF;iBAC3F;qBAAM;oBACH,MAAM,CACF,OAAO,EACP,UAAU,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,cAC9D,aAAa,CAAC,IAClB,0CAA0C,KAAK,CAAC,UAAU,CAAC,IAAI,GAAG,EAClE,EAAE,IAAI,EAAE,CAAC,EAAE,CACd,CAAC;iBACL;YACL,CAAC,CAAC,CAAC;YACP,OAAO;SACV;QAED,MAAM,aAAa,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QACxC,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;QAE3D,IAAI,aAA6B,CAAC;QAElC,IAAI,CAAA,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,UAAU,0CAAE,MAAM,MAAI,MAAA,YAAY,CAAC,MAAM,0CAAE,MAAM,CAAA,EAAE;YACjE,IAAI,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,UAAU,MAAI,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,MAAM,CAAA,EAAE;gBAC1D,MAAM,CAAC,OAAO,EAAE,+EAA+E,EAAE;oBAC7F,IAAI,EAAE,aAAa;iBACtB,CAAC,CAAC;gBACH,OAAO;aACV;iBAAM;gBACH,aAAa,GAAG,aAAa,CAAC;aACjC;SACJ;aAAM,IAAI,CAAA,MAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,UAAU,0CAAE,MAAM,MAAI,MAAA,gBAAgB,CAAC,MAAM,0CAAE,MAAM,CAAA,EAAE;YAChF,IAAI,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,UAAU,MAAI,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,MAAM,CAAA,EAAE;gBAClD,MAAM,CAAC,OAAO,EAAE,+EAA+E,EAAE;oBAC7F,IAAI,EAAE,KAAK;iBACd,CAAC,CAAC;gBACH,OAAO;aACV;iBAAM;gBACH,aAAa,GAAG,KAAK,CAAC;aACzB;SACJ;aAAM;YACH,0EAA0E;YAC1E,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBACjD,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;oBACjC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE;wBAC5C,MAAM,CACF,OAAO,EACP,0GAA0G,EAC1G,EAAE,IAAI,EAAE,CAAC,EAAE,CACd,CAAC;qBACL;gBACL,CAAC,CAAC,CAAC;aACN;YACD,OAAO;SACV;QAED,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE;YAC3D,MAAM,CAAC,OAAO,EAAE,6CAA6C,EAAE;gBAC3D,IAAI,EAAE,aAAa;aACtB,CAAC,CAAC;YACH,OAAO;SACV;QAED,IAAI,aAAa,KAAK,KAAK,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE;YACtD,6EAA6E;YAC7E,QAAQ;YACR,mBAAmB;YACnB,yCAAyC;YACzC,yBAAyB;YACzB,QAAQ;YACR,uBAAuB;YACvB,yCAAyC;YACzC,mEAAmE;YACnE,wBAAwB;YACxB,QAAQ;YACR,EAAE;YACF,4CAA4C;YAE5C,MAAM,eAAe,GAAG,KAAK,CAAC,UAAuB,CAAC;YACtD,MAAM,eAAe,GAAG,IAAA,uBAAe,EAAC,eAAe,CAAC,CAAC;YAEzD,MAAA,YAAY,CAAC,MAAM,0CAAE,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACjC,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,GAAqB,CAAC;gBAClD,IAAI,QAAQ,EAAE;oBACV,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,eAAC,OAAA,CAAA,MAAA,CAAC,CAAC,IAAI,CAAC,GAAG,0CAAE,IAAI,MAAK,KAAK,IAAI,CAAA,MAAA,CAAC,CAAC,IAAI,CAAC,GAAG,0CAAE,IAAI,MAAK,SAAS,CAAA,EAAA,CAAC,EAAE;wBAC/F,OAAO;qBACV;oBACD,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE;wBACzD,OAAO;qBACV;oBACD,MAAM,CACF,OAAO,EACP,UAAU,QAAQ,CAAC,IAAI,iHAAiH,EACxI,EAAE,IAAI,EAAE,QAAQ,EAAE,CACrB,CAAC;iBACL;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAEO,yBAAyB,CAAC,KAAgB,EAAE,MAA0B;QAC1E,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE;;YAC1C,IAAI,CAAC,CAAA,MAAA,SAAS,CAAC,GAAG,0CAAE,UAAU,CAAA;gBAC1B,MAAM,CAAC,OAAO,EAAE,SAAS,SAAS,CAAC,QAAQ,+CAA+C,EAAE;oBACxF,IAAI,EAAE,KAAK;oBACX,QAAQ,EAAE,YAAY;oBACtB,KAAK;iBACR,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AAhWD,qCAgWC"}
1
+ {"version":3,"file":"datamodel-validator.js","sourceRoot":"","sources":["../../../src/language-server/validator/datamodel-validator.ts"],"names":[],"mappings":";;AAAA,kDAOkC;AAClC,yCAAsG;AACtG,qCAAmF;AACnF,4CAAwD;AAExD,oCAA2C;AAC3C,uFAAiF;AACjF,mCAAyD;AAEzD;;GAEG;AACH,MAAqB,kBAAkB;IACnC,QAAQ,CAAC,EAAa,EAAE,MAA0B;QAC9C,IAAI,CAAC,yBAAyB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAC3C,IAAA,sCAA8B,EAAC,EAAE,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QAC3D,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC;IAEO,cAAc,CAAC,EAAa,EAAE,MAA0B;QAC5D,MAAM,QAAQ,GAAG,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,WAAC,OAAA,CAAA,MAAA,IAAI,CAAC,IAAI,CAAC,GAAG,0CAAE,IAAI,MAAK,KAAK,CAAA,EAAA,CAAC,CAAC,CAAC;QAC9G,MAAM,YAAY,GAAG,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACjD,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,WAAC,OAAA,CAAA,MAAA,IAAI,CAAC,IAAI,CAAC,GAAG,0CAAE,IAAI,MAAK,SAAS,CAAA,EAAA,CAAC,CACjE,CAAC;QACF,MAAM,aAAa,GAAG,IAAA,sBAAgB,EAAC,EAAE,CAAC,CAAC;QAC3C,MAAM,iBAAiB,GAAG,IAAA,0BAAoB,EAAC,EAAE,CAAC,CAAC;QAEnD,IACI,QAAQ,CAAC,MAAM,KAAK,CAAC;YACrB,aAAa,CAAC,MAAM,KAAK,CAAC;YAC1B,YAAY,CAAC,MAAM,KAAK,CAAC;YACzB,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAChC;YACE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,EAAE,GAAG,IAAA,qBAAe,EAAC,EAAE,CAAC,CAAC;YACnE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,kBAAkB,EAAE;gBAC9D,8DAA8D;gBAC9D,yEAAyE;gBACzE,MAAM,CACF,OAAO,EACP,8HAA8H,EAC9H;oBACI,IAAI,EAAE,EAAE;iBACX,CACJ,CAAC;aACL;SACJ;aAAM,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;YACxD,MAAM,CAAC,OAAO,EAAE,wEAAwE,EAAE;gBACtF,IAAI,EAAE,EAAE;aACX,CAAC,CAAC;SACN;aAAM,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5B,MAAM,CAAC,OAAO,EAAE,wDAAwD,EAAE;gBACtE,IAAI,EAAE,EAAE;aACX,CAAC,CAAC;SACN;aAAM;YACH,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC;YACrE,aAAa,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC9B,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE;oBACvB,MAAM,CAAC,OAAO,EAAE,+CAA+C,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;iBACvF;gBACD,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,wBAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBACvF,MAAM,CAAC,OAAO,EAAE,iDAAiD,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;iBACzF;YACL,CAAC,CAAC,CAAC;SACN;QAED,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;QAEhE,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE;YAChB,EAAE,CAAC,eAAe;iBACb,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,WAAC,OAAA,IAAA,iBAAW,EAAC,MAAA,CAAC,CAAC,IAAI,CAAC,SAAS,0CAAE,GAAG,CAAC,CAAA,EAAA,CAAC;iBACjD,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBACX,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YAC1C,CAAC,CAAC,CAAC;SACV;IACL,CAAC;IAEO,aAAa,CAAC,KAAqB,EAAE,MAA0B;QACnE,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE;YACzC,MAAM,CAAC,OAAO,EAAE,kEAAkE,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;SAC7G;QAED,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE;YAClF,MAAM,CAAC,OAAO,EAAE,oDAAoD,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;SAC3G;QAED,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,8DAA4B,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACnF,CAAC;IAEO,kBAAkB,CAAC,EAAa,EAAE,MAA0B;QAChE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,8DAA4B,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAChF,CAAC;IAEO,aAAa,CAAC,KAAqB,EAAE,MAA2B;;QACpE,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,WAAC,OAAA,CAAA,MAAA,IAAI,CAAC,IAAI,CAAC,GAAG,0CAAE,IAAI,MAAK,WAAW,CAAA,EAAA,CAAC,CAAC;QAErF,IAAI,IAAwB,CAAC;QAC7B,IAAI,MAAmC,CAAC;QACxC,IAAI,UAAuC,CAAC;QAC5C,IAAI,KAAK,GAAG,IAAI,CAAC;QAEjB,IAAI,CAAC,OAAO,EAAE;YACV,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;SACnE;QAED,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE;YAC5B,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE;gBAClC,IAAI,IAAA,mBAAa,EAAC,GAAG,CAAC,KAAK,CAAC,EAAE;oBAC1B,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,KAAe,CAAC;iBACpC;aACJ;iBAAM,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;gBAC9B,MAAM,GAAI,GAAG,CAAC,KAAmB,CAAC,KAAwB,CAAC;gBAC3D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;oBACrB,IAAI,MAAM,EAAE;wBACR,MAAM,CAAC,OAAO,EAAE,gCAAgC,EAAE;4BAC9C,IAAI,EAAE,GAAG;yBACZ,CAAC,CAAC;qBACN;oBACD,KAAK,GAAG,KAAK,CAAC;iBACjB;aACJ;iBAAM,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE;gBAClC,UAAU,GAAI,GAAG,CAAC,KAAmB,CAAC,KAAwB,CAAC;gBAC/D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;oBACzB,IAAI,MAAM,EAAE;wBACR,MAAM,CAAC,OAAO,EAAE,oCAAoC,EAAE;4BAClD,IAAI,EAAE,GAAG;yBACZ,CAAC,CAAC;qBACN;oBACD,KAAK,GAAG,KAAK,CAAC;iBACjB;aACJ;SACJ;QAED,IAAI,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE;YACxB,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE;gBAClC,6BAA6B;gBAC7B,wFAAwF;aAC3F;iBAAM;gBACH,IAAI,MAAM,EAAE;oBACR,MAAM,CAAC,OAAO,EAAE,iDAAiD,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;iBACzF;aACJ;SACJ;aAAM;YACH,wDAAwD;YACxD,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,EAAE;gBACrC,IAAI,MAAM,EAAE;oBACR,MAAM,CAAC,OAAO,EAAE,qDAAqD,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;iBAC7F;aACJ;iBAAM;gBACH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACpC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE;wBAC1B,IAAI,MAAM,EAAE;4BACR,MAAM,CAAC,OAAO,EAAE,+BAA+B,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;yBACzE;qBACJ;oBACD,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE;wBAC9B,IAAI,MAAM,EAAE;4BACR,MAAM,CAAC,OAAO,EAAE,+BAA+B,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;yBAC7E;qBACJ;oBAED,IACI,CAAA,MAAA,MAAM,CAAC,CAAC,CAAC,CAAC,aAAa,0CAAE,IAAI,OAAK,MAAA,UAAU,CAAC,CAAC,CAAC,CAAC,aAAa,0CAAE,IAAI,CAAA;wBACnE,CAAA,MAAA,MAAM,CAAC,CAAC,CAAC,CAAC,aAAa,0CAAE,KAAK,OAAK,MAAA,UAAU,CAAC,CAAC,CAAC,CAAC,aAAa,0CAAE,KAAK,CAAA,EACvE;wBACE,IAAI,MAAM,EAAE;4BACR,MAAM,CAAC,OAAO,EAAE,6DAA6D,EAAE;gCAC3E,IAAI,EAAE,OAAO;6BAChB,CAAC,CAAC;yBACN;qBACJ;iBACJ;aACJ;SACJ;QAED,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;IAC9D,CAAC;IAEO,cAAc,CAAC,KAAqB,EAAE,YAAqB;;QAC/D,IAAI,CAAA,MAAA,KAAK,CAAC,IAAI,CAAC,SAAS,0CAAE,GAAG,MAAK,KAAK,CAAC,UAAU,EAAE;YAChD,6CAA6C;YAC7C,OAAO,IAAI,CAAC;SACf;QAED,IAAI,YAAY,EAAE;YACd,mFAAmF;YACnF,cAAc;YACd,MAAM,aAAa,GAAG,MAAA,KAAK,CAAC,IAAI,CAAC,SAAS,0CAAE,GAAgB,CAAC;YAC7D,IAAI,aAAa,EAAE;gBACf,MAAM,mBAAmB,GAAG,aAAa,CAAC,eAAmC,CAAC;gBAC9E,KAAK,MAAM,aAAa,IAAI,mBAAmB,EAAE;oBAC7C,oDAAoD;oBACpD,MAAM,OAAO,GAAG,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,WAAC,OAAA,CAAA,MAAA,CAAC,CAAC,IAAI,CAAC,GAAG,0CAAE,IAAI,MAAK,WAAW,CAAA,EAAA,CAAC,CAAC;oBACvF,IAAI,OAAO,EAAE;wBACT,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;wBAC3E,MAAM,OAAO,GAAG,IAAA,gBAAU,EAAS,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,KAAK,CAAC,CAAC;wBACvD,IAAI,OAAO,KAAK,YAAY,IAAI,CAAA,MAAA,aAAa,CAAC,IAAI,CAAC,SAAS,0CAAE,GAAG,MAAK,KAAK,CAAC,UAAU,EAAE;4BACpF,yEAAyE;4BACzE,OAAO,IAAI,CAAC;yBACf;qBACJ;iBACJ;aACJ;SACJ;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAEO,qBAAqB,CAAC,KAAqB,EAAE,MAA0B;;QAC3E,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACvD,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;YACrB,OAAO;SACV;QAED,oEAAoE;QACpE,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,SAAU,CAAC,GAAiB,CAAC;QAE9D,yDAAyD;QACzD,IAAI,cAAc,GAAG,aAAa,CAAC,eAAe,CAAC,MAAM,CACrD,CAAC,CAAC,EAAE,EAAE,eAAC,OAAA,CAAA,MAAA,MAAA,CAAC,CAAC,IAAI,CAAC,SAAS,0CAAE,GAAG,0CAAE,IAAI,MAAK,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,EAAA,CAC/D,CAAC;QACF,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YACvC,OAAO,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,CAAC,IAAI,CAAC;QACjE,CAAC,CAAC,CAAC;QAEH,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;YAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC;YAC3D,MAAM,IAAI,GAAoC,EAAE,IAAI,EAAE,IAAI,EAAE,sBAAU,CAAC,uBAAuB,EAAE,CAAC;YAEjG,IAAI,mBAA2B,CAAC;YAChC,IAAI,qBAA6B,CAAC;YAElC,IAAI,KAAK,CAAC,YAAY,EAAE;gBACpB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;gBACvB,MAAM,SAAS,GAAG,KAAK,CAAC,UAAuB,CAAC;gBAChD,MAAM,iBAAiB,GAAG,MAAA,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,WACtD,OAAA,MAAA,CAAC,CAAC,GAAG,0CAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CAAA,EAAA,CACnD,0CAAE,GAAgB,CAAC;gBAEpB,mBAAmB,GAAG,IAAA,qBAAW,EAAC,iBAAiB,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC;gBACtE,qBAAqB,GAAG,iBAAiB,CAAC,IAAI,CAAC;aAClD;iBAAM;gBACH,mBAAmB,GAAG,IAAA,qBAAW,EAAC,KAAK,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC;gBAC1D,qBAAqB,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;aACjD;YAED,MAAM,IAAI,GAAgC;gBACtC,iBAAiB,EAAE,KAAK,CAAC,IAAI;gBAC7B,qBAAqB;gBACrB,mBAAmB;gBACnB,aAAa,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI;aACvC,CAAC;YAEF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YAEjB,MAAM,CACF,OAAO,EACP,uBAAuB,KAAK,CAAC,IAAI,eAAe,KAAK,CAAC,UAAU,CAAC,IAAI,qDAAqD,aAAa,CAAC,IAAI,GAAG,EAC/I,IAAI,CACP,CAAC;YACF,OAAO;SACV;aAAM,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;YAClC,cAAc;iBACT,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;iBAC9B,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBACX,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;oBACxB,6BAA6B;oBAC7B,wFAAwF;iBAC3F;qBAAM;oBACH,MAAM,CACF,OAAO,EACP,UAAU,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,cAC9D,aAAa,CAAC,IAClB,0CAA0C,KAAK,CAAC,UAAU,CAAC,IAAI,GAAG,EAClE,EAAE,IAAI,EAAE,CAAC,EAAE,CACd,CAAC;iBACL;YACL,CAAC,CAAC,CAAC;YACP,OAAO;SACV;QAED,MAAM,aAAa,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QACxC,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;QAE3D,IAAI,aAA6B,CAAC;QAElC,IAAI,CAAA,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,UAAU,0CAAE,MAAM,MAAI,MAAA,YAAY,CAAC,MAAM,0CAAE,MAAM,CAAA,EAAE;YACjE,IAAI,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,UAAU,MAAI,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,MAAM,CAAA,EAAE;gBAC1D,MAAM,CAAC,OAAO,EAAE,+EAA+E,EAAE;oBAC7F,IAAI,EAAE,aAAa;iBACtB,CAAC,CAAC;gBACH,OAAO;aACV;iBAAM;gBACH,aAAa,GAAG,aAAa,CAAC;aACjC;SACJ;aAAM,IAAI,CAAA,MAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,UAAU,0CAAE,MAAM,MAAI,MAAA,gBAAgB,CAAC,MAAM,0CAAE,MAAM,CAAA,EAAE;YAChF,IAAI,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,UAAU,MAAI,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,MAAM,CAAA,EAAE;gBAClD,MAAM,CAAC,OAAO,EAAE,+EAA+E,EAAE;oBAC7F,IAAI,EAAE,KAAK;iBACd,CAAC,CAAC;gBACH,OAAO;aACV;iBAAM;gBACH,aAAa,GAAG,KAAK,CAAC;aACzB;SACJ;aAAM;YACH,0EAA0E;YAC1E,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBACjD,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;oBACjC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE;wBAC5C,MAAM,CACF,OAAO,EACP,0GAA0G,EAC1G,EAAE,IAAI,EAAE,CAAC,EAAE,CACd,CAAC;qBACL;gBACL,CAAC,CAAC,CAAC;aACN;YACD,OAAO;SACV;QAED,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE;YAC3D,MAAM,CAAC,OAAO,EAAE,6CAA6C,EAAE;gBAC3D,IAAI,EAAE,aAAa;aACtB,CAAC,CAAC;YACH,OAAO;SACV;QAED,IAAI,aAAa,KAAK,KAAK,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE;YACtD,6EAA6E;YAC7E,QAAQ;YACR,mBAAmB;YACnB,yCAAyC;YACzC,yBAAyB;YACzB,QAAQ;YACR,uBAAuB;YACvB,yCAAyC;YACzC,mEAAmE;YACnE,wBAAwB;YACxB,QAAQ;YACR,EAAE;YACF,4CAA4C;YAE5C,MAAM,eAAe,GAAG,KAAK,CAAC,UAAuB,CAAC;YACtD,MAAM,eAAe,GAAG,IAAA,uBAAe,EAAC,eAAe,CAAC,CAAC;YAEzD,MAAA,YAAY,CAAC,MAAM,0CAAE,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACjC,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,GAAqB,CAAC;gBAClD,IAAI,QAAQ,EAAE;oBACV,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,eAAC,OAAA,CAAA,MAAA,CAAC,CAAC,IAAI,CAAC,GAAG,0CAAE,IAAI,MAAK,KAAK,IAAI,CAAA,MAAA,CAAC,CAAC,IAAI,CAAC,GAAG,0CAAE,IAAI,MAAK,SAAS,CAAA,EAAA,CAAC,EAAE;wBAC/F,OAAO;qBACV;oBACD,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE;wBACzD,OAAO;qBACV;oBACD,MAAM,CACF,OAAO,EACP,UAAU,QAAQ,CAAC,IAAI,iHAAiH,EACxI,EAAE,IAAI,EAAE,QAAQ,EAAE,CACrB,CAAC;iBACL;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAEO,yBAAyB,CAAC,KAAgB,EAAE,MAA0B;QAC1E,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE;;YAC1C,IAAI,CAAC,CAAA,MAAA,SAAS,CAAC,GAAG,0CAAE,UAAU,CAAA;gBAC1B,MAAM,CAAC,OAAO,EAAE,SAAS,SAAS,CAAC,QAAQ,+CAA+C,EAAE;oBACxF,IAAI,EAAE,KAAK;oBACX,QAAQ,EAAE,YAAY;oBACtB,KAAK;iBACR,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AA3WD,qCA2WC"}
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const attribute_application_validator_1 = require("./attribute-application-validator");
3
4
  const utils_1 = require("./utils");
4
5
  /**
5
6
  * Validates enum declarations.
@@ -14,14 +15,10 @@ class EnumValidator {
14
15
  });
15
16
  }
16
17
  validateAttributes(_enum, accept) {
17
- _enum.attributes.forEach((attr) => {
18
- (0, utils_1.validateAttributeApplication)(attr, accept);
19
- });
18
+ _enum.attributes.forEach((attr) => (0, attribute_application_validator_1.validateAttributeApplication)(attr, accept));
20
19
  }
21
20
  validateField(field, accept) {
22
- field.attributes.forEach((attr) => {
23
- (0, utils_1.validateAttributeApplication)(attr, accept);
24
- });
21
+ field.attributes.forEach((attr) => (0, attribute_application_validator_1.validateAttributeApplication)(attr, accept));
25
22
  }
26
23
  }
27
24
  exports.default = EnumValidator;
@@ -1 +1 @@
1
- {"version":3,"file":"enum-validator.js","sourceRoot":"","sources":["../../../src/language-server/validator/enum-validator.ts"],"names":[],"mappings":";;AAGA,mCAAuF;AAEvF;;GAEG;AACH,MAAqB,aAAa;IAC9B,6EAA6E;IAC7E,QAAQ,CAAC,KAAW,EAAE,MAA0B;QAC5C,IAAA,sCAA8B,EAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACrD,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACvC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC3B,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,kBAAkB,CAAC,KAAW,EAAE,MAA0B;QAC9D,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC9B,IAAA,oCAA4B,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,aAAa,CAAC,KAAgB,EAAE,MAA0B;QAC9D,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC9B,IAAA,oCAA4B,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AArBD,gCAqBC"}
1
+ {"version":3,"file":"enum-validator.js","sourceRoot":"","sources":["../../../src/language-server/validator/enum-validator.ts"],"names":[],"mappings":";;AAGA,uFAAiF;AACjF,mCAAyD;AAEzD;;GAEG;AACH,MAAqB,aAAa;IAC9B,6EAA6E;IAC7E,QAAQ,CAAC,KAAW,EAAE,MAA0B;QAC5C,IAAA,sCAA8B,EAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACrD,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACvC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC3B,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,kBAAkB,CAAC,KAAW,EAAE,MAA0B;QAC9D,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,8DAA4B,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACnF,CAAC;IAEO,aAAa,CAAC,KAAgB,EAAE,MAA0B;QAC9D,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,8DAA4B,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACnF,CAAC;CACJ;AAjBD,gCAiBC"}
@@ -34,7 +34,7 @@ class ExpressionValidator {
34
34
  }
35
35
  }
36
36
  validateBinaryExpr(expr, accept) {
37
- var _a, _b, _c;
37
+ var _a, _b, _c, _d, _e;
38
38
  switch (expr.operator) {
39
39
  case 'in': {
40
40
  if (typeof ((_a = expr.left.$resolvedType) === null || _a === void 0 ? void 0 : _a.decl) !== 'string' && !(0, ast_1.isEnum)((_b = expr.left.$resolvedType) === null || _b === void 0 ? void 0 : _b.decl)) {
@@ -47,6 +47,43 @@ class ExpressionValidator {
47
47
  }
48
48
  break;
49
49
  }
50
+ case '>':
51
+ case '>=':
52
+ case '<':
53
+ case '<=':
54
+ case '&&':
55
+ case '||': {
56
+ let supportedShapes;
57
+ if (['>', '>=', '<', '<='].includes(expr.operator)) {
58
+ supportedShapes = ['Int', 'Float', 'DateTime', 'Any'];
59
+ }
60
+ else {
61
+ supportedShapes = ['Boolean', 'Any'];
62
+ }
63
+ if (typeof ((_d = expr.left.$resolvedType) === null || _d === void 0 ? void 0 : _d.decl) !== 'string' ||
64
+ !supportedShapes.includes(expr.left.$resolvedType.decl)) {
65
+ accept('error', `invalid operand type for "${expr.operator}" operator`, {
66
+ node: expr.left,
67
+ });
68
+ return;
69
+ }
70
+ if (typeof ((_e = expr.right.$resolvedType) === null || _e === void 0 ? void 0 : _e.decl) !== 'string' ||
71
+ !supportedShapes.includes(expr.right.$resolvedType.decl)) {
72
+ accept('error', `invalid operand type for "${expr.operator}" operator`, {
73
+ node: expr.right,
74
+ });
75
+ return;
76
+ }
77
+ // DateTime comparison is only allowed between two DateTime values
78
+ if (expr.left.$resolvedType.decl === 'DateTime' && expr.right.$resolvedType.decl !== 'DateTime') {
79
+ accept('error', 'incompatible operand types', { node: expr });
80
+ }
81
+ else if (expr.right.$resolvedType.decl === 'DateTime' &&
82
+ expr.left.$resolvedType.decl !== 'DateTime') {
83
+ accept('error', 'incompatible operand types', { node: expr });
84
+ }
85
+ break;
86
+ }
50
87
  }
51
88
  }
52
89
  isCollectionPredicate(expr) {
@@ -1 +1 @@
1
- {"version":3,"file":"expression-validator.js","sourceRoot":"","sources":["../../../src/language-server/validator/expression-validator.ts"],"names":[],"mappings":";;AAAA,kDAAwF;AAExF,qDAAyD;AAGzD;;GAEG;AACH,MAAqB,mBAAmB;IACpC,QAAQ,CAAC,IAAgB,EAAE,MAA0B;;QACjD,iEAAiE;QACjE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACrB,IAAI,IAAA,4BAAgB,EAAC,IAAI,CAAC,EAAE;gBACxB,8BAA8B;gBAC9B,MAAM,CAAC,OAAO,EAAE,8DAA8D,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;aACnG;iBAAM,IAAI,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE;gBACzC,MAAM,CAAC,OAAO,EAAE,iEAAiE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;aACtG;iBAAM;gBACH,MAAM,CAAC,OAAO,EAAE,+BAA+B,EAAE;oBAC7C,IAAI,EAAE,IAAI;iBACb,CAAC,CAAC;aACN;SACJ;QAED,IAAI,CAAA,MAAA,IAAI,CAAC,aAAa,0CAAE,IAAI,MAAK,aAAa,EAAE;YAC5C,MAAM,CAAC,OAAO,EAAE,2DAA2D,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;SAChG;QAED,uCAAuC;QACvC,QAAQ,IAAI,CAAC,KAAK,EAAE;YAChB,KAAK,YAAY;gBACb,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBACtC,MAAM;SACb;IACL,CAAC;IAEO,kBAAkB,CAAC,IAAgB,EAAE,MAA0B;;QACnE,QAAQ,IAAI,CAAC,QAAQ,EAAE;YACnB,KAAK,IAAI,CAAC,CAAC;gBACP,IAAI,OAAO,CAAA,MAAA,IAAI,CAAC,IAAI,CAAC,aAAa,0CAAE,IAAI,CAAA,KAAK,QAAQ,IAAI,CAAC,IAAA,YAAM,EAAC,MAAA,IAAI,CAAC,IAAI,CAAC,aAAa,0CAAE,IAAI,CAAC,EAAE;oBAC7F,MAAM,CAAC,OAAO,EAAE,6CAA6C,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;iBACvF;gBAED,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,KAAK,CAAC,aAAa,0CAAE,KAAK,CAAA,EAAE;oBAClC,MAAM,CAAC,OAAO,EAAE,wCAAwC,EAAE;wBACtD,IAAI,EAAE,IAAI,CAAC,KAAK;qBACnB,CAAC,CAAC;iBACN;gBACD,MAAM;aACT;SACJ;IACL,CAAC;IAEO,qBAAqB,CAAC,IAAgB;QAC1C,OAAO,IAAA,kBAAY,EAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzE,CAAC;CACJ;AAhDD,sCAgDC"}
1
+ {"version":3,"file":"expression-validator.js","sourceRoot":"","sources":["../../../src/language-server/validator/expression-validator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { FunctionDecl } from '@zenstackhq/language/ast';
2
+ import { ValidationAcceptor } from 'langium';
3
+ import { AstValidator } from '../types';
4
+ /**
5
+ * Validates function declarations.
6
+ */
7
+ export default class FunctionDeclValidator implements AstValidator<FunctionDecl> {
8
+ validate(funcDecl: FunctionDecl, accept: ValidationAcceptor): void;
9
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const attribute_application_validator_1 = require("./attribute-application-validator");
4
+ /**
5
+ * Validates function declarations.
6
+ */
7
+ class FunctionDeclValidator {
8
+ validate(funcDecl, accept) {
9
+ funcDecl.attributes.forEach((attr) => (0, attribute_application_validator_1.validateAttributeApplication)(attr, accept));
10
+ }
11
+ }
12
+ exports.default = FunctionDeclValidator;
13
+ //# sourceMappingURL=function-decl-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"function-decl-validator.js","sourceRoot":"","sources":["../../../src/language-server/validator/function-decl-validator.ts"],"names":[],"mappings":";;AAGA,uFAAiF;AAEjF;;GAEG;AACH,MAAqB,qBAAqB;IACtC,QAAQ,CAAC,QAAsB,EAAE,MAA0B;QACvD,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,8DAA4B,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACtF,CAAC;CACJ;AAJD,wCAIC"}
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const ast_1 = require("@zenstackhq/language/ast");
4
+ const sdk_1 = require("@zenstackhq/sdk");
5
+ const ts_pattern_1 = require("ts-pattern");
4
6
  const ast_utils_1 = require("../../utils/ast-utils");
5
- const constants_1 = require("../constants");
6
- const utils_1 = require("../utils");
7
- const utils_2 = require("./utils");
7
+ const utils_1 = require("./utils");
8
8
  /**
9
9
  * InvocationExpr validation
10
10
  */
@@ -19,10 +19,35 @@ class FunctionInvocationValidator {
19
19
  if (!this.validateArgs(funcDecl, expr.args, accept)) {
20
20
  return;
21
21
  }
22
- if ((0, utils_1.isFromStdlib)(funcDecl)) {
22
+ if ((0, sdk_1.isFromStdlib)(funcDecl)) {
23
23
  // validate standard library functions
24
- if (constants_1.FILTER_OPERATOR_FUNCTIONS.includes(funcDecl.name)) {
25
- // filter operation functions
24
+ // find the containing attribute context for the invocation
25
+ let curr = expr.$container;
26
+ let containerAttribute;
27
+ while (curr) {
28
+ if ((0, ast_1.isDataModelAttribute)(curr) || (0, ast_1.isDataModelFieldAttribute)(curr)) {
29
+ containerAttribute = curr;
30
+ break;
31
+ }
32
+ curr = curr.$container;
33
+ }
34
+ // validate the context allowed for the function
35
+ const exprContext = (0, ts_pattern_1.match)(containerAttribute === null || containerAttribute === void 0 ? void 0 : containerAttribute.decl.$refText)
36
+ .with('@default', () => sdk_1.ExpressionContext.DefaultValue)
37
+ .with(ts_pattern_1.P.union('@@allow', '@@deny'), () => sdk_1.ExpressionContext.AccessPolicy)
38
+ .with('@@validate', () => sdk_1.ExpressionContext.ValidationRule)
39
+ .otherwise(() => undefined);
40
+ // get the context allowed for the function
41
+ const funcAllowedContext = (0, sdk_1.getFunctionExpressionContext)(funcDecl);
42
+ if (exprContext && !funcAllowedContext.includes(exprContext)) {
43
+ accept('error', `function "${funcDecl.name}" is not allowed in the current context: ${exprContext}`, {
44
+ node: expr,
45
+ });
46
+ return;
47
+ }
48
+ if (funcAllowedContext.includes(sdk_1.ExpressionContext.AccessPolicy) ||
49
+ funcAllowedContext.includes(sdk_1.ExpressionContext.ValidationRule)) {
50
+ // filter operation functions validation
26
51
  // first argument must refer to a model field
27
52
  const firstArg = (_b = (_a = expr.args) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.value;
28
53
  if (firstArg) {
@@ -36,10 +61,10 @@ class FunctionInvocationValidator {
36
61
  // literal
37
62
  !(0, ast_1.isLiteralExpr)(secondArg) &&
38
63
  // enum field
39
- !(0, ast_utils_1.isEnumFieldReference)(secondArg) &&
64
+ !(0, sdk_1.isEnumFieldReference)(secondArg) &&
40
65
  // array of literal/enum
41
66
  !((0, ast_1.isArrayExpr)(secondArg) &&
42
- secondArg.items.every((item) => (0, ast_1.isLiteralExpr)(item) || (0, ast_utils_1.isEnumFieldReference)(item)))) {
67
+ secondArg.items.every((item) => (0, ast_1.isLiteralExpr)(item) || (0, sdk_1.isEnumFieldReference)(item)))) {
43
68
  accept('error', 'second argument must be a literal, an enum, or an array of them', {
44
69
  node: secondArg,
45
70
  });
@@ -87,7 +112,7 @@ class FunctionInvocationValidator {
87
112
  }
88
113
  if (typeof argResolvedType.decl === 'string') {
89
114
  // scalar type
90
- if (!(0, utils_2.typeAssignable)(dstType, argResolvedType.decl, arg.value) || dstIsArray !== argResolvedType.array) {
115
+ if (!(0, utils_1.typeAssignable)(dstType, argResolvedType.decl, arg.value) || dstIsArray !== argResolvedType.array) {
91
116
  accept('error', `argument is not assignable to parameter`, {
92
117
  node: arg,
93
118
  });
@@ -1 +1 @@
1
- {"version":3,"file":"function-invocation-validator.js","sourceRoot":"","sources":["../../../src/language-server/validator/function-invocation-validator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"function-invocation-validator.js","sourceRoot":"","sources":["../../../src/language-server/validator/function-invocation-validator.ts"],"names":[],"mappings":"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"}