zenstack 1.0.0-alpha.22 → 1.0.0-alpha.24

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 (85) hide show
  1. package/README.md +79 -9
  2. package/cli/cli-error.js +3 -5
  3. package/cli/cli-error.js.map +1 -1
  4. package/cli/cli-util.js +123 -105
  5. package/cli/cli-util.js.map +1 -1
  6. package/cli/index.js +105 -63
  7. package/cli/index.js.map +1 -1
  8. package/cli/plugin-runner.js +130 -127
  9. package/cli/plugin-runner.js.map +1 -1
  10. package/language-server/constants.js +5 -13
  11. package/language-server/constants.js.map +1 -1
  12. package/language-server/main.js +8 -15
  13. package/language-server/main.js.map +1 -1
  14. package/language-server/types.js +3 -1
  15. package/language-server/types.js.map +1 -1
  16. package/language-server/utils.js +13 -16
  17. package/language-server/utils.js.map +1 -1
  18. package/language-server/validator/attribute-validator.js +3 -7
  19. package/language-server/validator/attribute-validator.js.map +1 -1
  20. package/language-server/validator/datamodel-validator.js +293 -347
  21. package/language-server/validator/datamodel-validator.js.map +1 -1
  22. package/language-server/validator/datasource-validator.js +61 -71
  23. package/language-server/validator/datasource-validator.js.map +1 -1
  24. package/language-server/validator/enum-validator.js +6 -10
  25. package/language-server/validator/enum-validator.js.map +1 -1
  26. package/language-server/validator/expression-validator.js +25 -31
  27. package/language-server/validator/expression-validator.js.map +1 -1
  28. package/language-server/validator/schema-validator.js +18 -25
  29. package/language-server/validator/schema-validator.js.map +1 -1
  30. package/language-server/validator/utils.js +86 -85
  31. package/language-server/validator/utils.js.map +1 -1
  32. package/language-server/validator/zmodel-validator.js +55 -58
  33. package/language-server/validator/zmodel-validator.js.map +1 -1
  34. package/language-server/zmodel-formatter.js +40 -21
  35. package/language-server/zmodel-formatter.js.map +1 -1
  36. package/language-server/zmodel-linker.js +328 -331
  37. package/language-server/zmodel-linker.js.map +1 -1
  38. package/language-server/zmodel-module.js +50 -59
  39. package/language-server/zmodel-module.js.map +1 -1
  40. package/language-server/zmodel-scope.js +35 -25
  41. package/language-server/zmodel-scope.js.map +1 -1
  42. package/language-server/zmodel-workspace-manager.js +30 -18
  43. package/language-server/zmodel-workspace-manager.js.map +1 -1
  44. package/package.json +8 -12
  45. package/plugins/access-policy/expression-writer.js +301 -292
  46. package/plugins/access-policy/expression-writer.js.map +1 -1
  47. package/plugins/access-policy/index.js +20 -11
  48. package/plugins/access-policy/index.js.map +1 -1
  49. package/plugins/access-policy/policy-guard-generator.js +327 -321
  50. package/plugins/access-policy/policy-guard-generator.js.map +1 -1
  51. package/plugins/access-policy/typescript-expression-transformer.js +94 -95
  52. package/plugins/access-policy/typescript-expression-transformer.js.map +1 -1
  53. package/plugins/access-policy/utils.js +7 -9
  54. package/plugins/access-policy/utils.js.map +1 -1
  55. package/plugins/access-policy/zod-schema-generator.js +143 -159
  56. package/plugins/access-policy/zod-schema-generator.js.map +1 -1
  57. package/plugins/model-meta/index.js +97 -102
  58. package/plugins/model-meta/index.js.map +1 -1
  59. package/plugins/plugin-utils.js +34 -40
  60. package/plugins/plugin-utils.js.map +1 -1
  61. package/plugins/prisma/indent-string.js +4 -8
  62. package/plugins/prisma/indent-string.js.map +1 -1
  63. package/plugins/prisma/index.js +20 -11
  64. package/plugins/prisma/index.js.map +1 -1
  65. package/plugins/prisma/prisma-builder.js +235 -213
  66. package/plugins/prisma/prisma-builder.js.map +1 -1
  67. package/plugins/prisma/schema-generator.js +205 -186
  68. package/plugins/prisma/schema-generator.js.map +1 -1
  69. package/plugins/prisma/zmodel-code-generator.d.ts +2 -1
  70. package/plugins/prisma/zmodel-code-generator.js +109 -105
  71. package/plugins/prisma/zmodel-code-generator.js.map +1 -1
  72. package/telemetry.js +107 -90
  73. package/telemetry.js.map +1 -1
  74. package/types.js +3 -1
  75. package/types.js.map +1 -1
  76. package/utils/ast-utils.js +67 -67
  77. package/utils/ast-utils.js.map +1 -1
  78. package/utils/exec-utils.js +6 -15
  79. package/utils/exec-utils.js.map +1 -1
  80. package/utils/pkg-utils.js +38 -35
  81. package/utils/pkg-utils.js.map +1 -1
  82. package/utils/version-utils.js +9 -10
  83. package/utils/version-utils.js.map +1 -1
  84. package/global.d.js +0 -1
  85. package/global.d.js.map +0 -1
@@ -1,116 +1,117 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.assignableToAttributeParam = assignableToAttributeParam;
7
- exports.getStringLiteral = getStringLiteral;
8
- exports.mapBuiltinTypeToExpressionType = mapBuiltinTypeToExpressionType;
9
- exports.typeAssignable = typeAssignable;
10
- exports.validateDuplicatedDeclarations = validateDuplicatedDeclarations;
11
- var _ast = require("@zenstackhq/language/ast");
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assignableToAttributeParam = exports.mapBuiltinTypeToExpressionType = exports.typeAssignable = exports.getStringLiteral = exports.validateDuplicatedDeclarations = void 0;
4
+ const ast_1 = require("@zenstackhq/language/ast");
12
5
  /**
13
6
  * Checks if the given declarations have duplicated names
14
7
  */
15
8
  function validateDuplicatedDeclarations(decls, accept) {
16
- const groupByName = decls.reduce((group, decl) => {
17
- group[decl.name] = group[decl.name] ?? [];
18
- group[decl.name].push(decl);
19
- return group;
20
- }, {});
21
- for (const [name, decls] of Object.entries(groupByName)) {
22
- if (decls.length > 1) {
23
- accept('error', `Duplicated declaration name "${name}"`, {
24
- node: decls[1]
25
- });
9
+ const groupByName = decls.reduce((group, decl) => {
10
+ var _a;
11
+ group[decl.name] = (_a = group[decl.name]) !== null && _a !== void 0 ? _a : [];
12
+ group[decl.name].push(decl);
13
+ return group;
14
+ }, {});
15
+ for (const [name, decls] of Object.entries(groupByName)) {
16
+ if (decls.length > 1) {
17
+ accept('error', `Duplicated declaration name "${name}"`, {
18
+ node: decls[1],
19
+ });
20
+ }
26
21
  }
27
- }
28
22
  }
29
-
23
+ exports.validateDuplicatedDeclarations = validateDuplicatedDeclarations;
30
24
  /**
31
25
  * Try getting string value from a potential string literal expression
32
26
  */
33
27
  function getStringLiteral(node) {
34
- if ((0, _ast.isLiteralExpr)(node) && typeof node.value === 'string') {
35
- return node.value;
36
- } else {
37
- return undefined;
38
- }
28
+ if ((0, ast_1.isLiteralExpr)(node) && typeof node.value === 'string') {
29
+ return node.value;
30
+ }
31
+ else {
32
+ return undefined;
33
+ }
39
34
  }
40
-
35
+ exports.getStringLiteral = getStringLiteral;
41
36
  /**
42
37
  * Determines if the given sourceType is assignable to a destination of destType
43
38
  */
44
39
  function typeAssignable(destType, sourceType) {
45
- switch (destType) {
46
- case 'Any':
47
- return true;
48
- case 'Float':
49
- return sourceType === 'Any' || sourceType === 'Int' || sourceType === 'Float';
50
- default:
51
- return sourceType === 'Any' || sourceType === destType;
52
- }
40
+ switch (destType) {
41
+ case 'Any':
42
+ return true;
43
+ case 'Float':
44
+ return sourceType === 'Any' || sourceType === 'Int' || sourceType === 'Float';
45
+ default:
46
+ return sourceType === 'Any' || sourceType === destType;
47
+ }
53
48
  }
54
-
49
+ exports.typeAssignable = typeAssignable;
55
50
  /**
56
51
  * Maps a ZModel builtin type to expression type
57
52
  */
58
53
  function mapBuiltinTypeToExpressionType(type) {
59
- switch (type) {
60
- case 'Any':
61
- case 'Boolean':
62
- case 'String':
63
- case 'DateTime':
64
- case 'Int':
65
- case 'Float':
66
- case 'Null':
67
- return type;
68
- case 'BigInt':
69
- return 'Int';
70
- case 'Decimal':
71
- return 'Float';
72
- case 'Json':
73
- case 'Bytes':
74
- return 'Any';
75
- }
54
+ switch (type) {
55
+ case 'Any':
56
+ case 'Boolean':
57
+ case 'String':
58
+ case 'DateTime':
59
+ case 'Int':
60
+ case 'Float':
61
+ case 'Null':
62
+ return type;
63
+ case 'BigInt':
64
+ return 'Int';
65
+ case 'Decimal':
66
+ return 'Float';
67
+ case 'Json':
68
+ case 'Bytes':
69
+ return 'Any';
70
+ }
76
71
  }
77
-
72
+ exports.mapBuiltinTypeToExpressionType = mapBuiltinTypeToExpressionType;
78
73
  /**
79
74
  * Determines if the given attribute argument is assignable to the given attribute parameter
80
75
  */
81
76
  function assignableToAttributeParam(arg, param, attr) {
82
- const argResolvedType = arg.$resolvedType;
83
- if (!argResolvedType) {
84
- return false;
85
- }
86
- let dstType = param.type.type;
87
- const dstIsArray = param.type.array;
88
- const dstRef = param.type.reference;
89
- if (dstType) {
90
- if (typeof (argResolvedType === null || argResolvedType === void 0 ? void 0 : argResolvedType.decl) !== 'string') {
91
- // destination type is not a reference, so argument type must be a plain expression
92
- return false;
77
+ var _a, _b;
78
+ const argResolvedType = arg.$resolvedType;
79
+ if (!argResolvedType) {
80
+ return false;
93
81
  }
94
- if (dstType === 'FieldReference' || dstType === 'TransitiveFieldReference') {
95
- if (dstIsArray) {
96
- return (0, _ast.isArrayExpr)(arg.value) && !arg.value.items.find(item => !(0, _ast.isReferenceExpr)(item) || !(0, _ast.isDataModelField)(item.target.ref));
97
- } else {
98
- return (0, _ast.isReferenceExpr)(arg.value) && (0, _ast.isDataModelField)(arg.value.target.ref);
99
- }
100
- } else if (dstType === 'ContextType') {
101
- if ((0, _ast.isDataModelField)(attr.$container)) {
102
- var _attr$$container, _attr$$container$type;
103
- if (!((_attr$$container = attr.$container) !== null && _attr$$container !== void 0 && (_attr$$container$type = _attr$$container.type) !== null && _attr$$container$type !== void 0 && _attr$$container$type.type)) {
104
- return false;
82
+ let dstType = param.type.type;
83
+ const dstIsArray = param.type.array;
84
+ const dstRef = param.type.reference;
85
+ if (dstType) {
86
+ if (typeof (argResolvedType === null || argResolvedType === void 0 ? void 0 : argResolvedType.decl) !== 'string') {
87
+ // destination type is not a reference, so argument type must be a plain expression
88
+ return false;
105
89
  }
106
- dstType = mapBuiltinTypeToExpressionType(attr.$container.type.type);
107
- } else {
108
- dstType = 'Any';
109
- }
90
+ if (dstType === 'FieldReference' || dstType === 'TransitiveFieldReference') {
91
+ if (dstIsArray) {
92
+ return ((0, ast_1.isArrayExpr)(arg.value) &&
93
+ !arg.value.items.find((item) => !(0, ast_1.isReferenceExpr)(item) || !(0, ast_1.isDataModelField)(item.target.ref)));
94
+ }
95
+ else {
96
+ return (0, ast_1.isReferenceExpr)(arg.value) && (0, ast_1.isDataModelField)(arg.value.target.ref);
97
+ }
98
+ }
99
+ else if (dstType === 'ContextType') {
100
+ if ((0, ast_1.isDataModelField)(attr.$container)) {
101
+ if (!((_b = (_a = attr.$container) === null || _a === void 0 ? void 0 : _a.type) === null || _b === void 0 ? void 0 : _b.type)) {
102
+ return false;
103
+ }
104
+ dstType = mapBuiltinTypeToExpressionType(attr.$container.type.type);
105
+ }
106
+ else {
107
+ dstType = 'Any';
108
+ }
109
+ }
110
+ return (typeAssignable(dstType, argResolvedType.decl) && (dstType === 'Any' || dstIsArray === argResolvedType.array));
111
+ }
112
+ else {
113
+ return (dstRef === null || dstRef === void 0 ? void 0 : dstRef.ref) === argResolvedType.decl && dstIsArray === argResolvedType.array;
110
114
  }
111
- return typeAssignable(dstType, argResolvedType.decl) && dstIsArray === argResolvedType.array;
112
- } else {
113
- return (dstRef === null || dstRef === void 0 ? void 0 : dstRef.ref) === argResolvedType.decl && dstIsArray === argResolvedType.array;
114
- }
115
115
  }
116
+ exports.assignableToAttributeParam = assignableToAttributeParam;
116
117
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","names":["validateDuplicatedDeclarations","decls","accept","groupByName","reduce","group","decl","name","push","Object","entries","length","node","getStringLiteral","isLiteralExpr","value","undefined","typeAssignable","destType","sourceType","mapBuiltinTypeToExpressionType","type","assignableToAttributeParam","arg","param","attr","argResolvedType","$resolvedType","dstType","dstIsArray","array","dstRef","reference","isArrayExpr","items","find","item","isReferenceExpr","isDataModelField","target","ref","$container"],"sources":["../../../src/language-server/validator/utils.ts"],"sourcesContent":["import {\n AttributeArg,\n AttributeParam,\n BuiltinType,\n DataModelAttribute,\n DataModelFieldAttribute,\n ExpressionType,\n isArrayExpr,\n isDataModelField,\n isLiteralExpr,\n isReferenceExpr,\n} from '@zenstackhq/language/ast';\nimport { AstNode, ValidationAcceptor } from 'langium';\n\n/**\n * Checks if the given declarations have duplicated names\n */\nexport function validateDuplicatedDeclarations(\n decls: Array<AstNode & { name: string }>,\n accept: ValidationAcceptor\n): void {\n const groupByName = decls.reduce<Record<string, Array<AstNode & { name: string }>>>((group, decl) => {\n group[decl.name] = group[decl.name] ?? [];\n group[decl.name].push(decl);\n return group;\n }, {});\n\n for (const [name, decls] of Object.entries<AstNode[]>(groupByName)) {\n if (decls.length > 1) {\n accept('error', `Duplicated declaration name \"${name}\"`, {\n node: decls[1],\n });\n }\n }\n}\n\n/**\n * Try getting string value from a potential string literal expression\n */\nexport function getStringLiteral(node: AstNode | undefined): string | undefined {\n if (isLiteralExpr(node) && typeof node.value === 'string') {\n return node.value;\n } else {\n return undefined;\n }\n}\n\n/**\n * Determines if the given sourceType is assignable to a destination of destType\n */\nexport function typeAssignable(destType: ExpressionType, sourceType: ExpressionType): boolean {\n switch (destType) {\n case 'Any':\n return true;\n case 'Float':\n return sourceType === 'Any' || sourceType === 'Int' || sourceType === 'Float';\n default:\n return sourceType === 'Any' || sourceType === destType;\n }\n}\n\n/**\n * Maps a ZModel builtin type to expression type\n */\nexport function mapBuiltinTypeToExpressionType(type: BuiltinType | 'Any' | 'Null'): ExpressionType | 'Any' {\n switch (type) {\n case 'Any':\n case 'Boolean':\n case 'String':\n case 'DateTime':\n case 'Int':\n case 'Float':\n case 'Null':\n return type;\n case 'BigInt':\n return 'Int';\n case 'Decimal':\n return 'Float';\n case 'Json':\n case 'Bytes':\n return 'Any';\n }\n}\n\n/**\n * Determines if the given attribute argument is assignable to the given attribute parameter\n */\nexport function assignableToAttributeParam(\n arg: AttributeArg,\n param: AttributeParam,\n attr: DataModelAttribute | DataModelFieldAttribute\n): boolean {\n const argResolvedType = arg.$resolvedType;\n if (!argResolvedType) {\n return false;\n }\n\n let dstType = param.type.type;\n const dstIsArray = param.type.array;\n const dstRef = param.type.reference;\n\n if (dstType) {\n if (typeof argResolvedType?.decl !== 'string') {\n // destination type is not a reference, so argument type must be a plain expression\n return false;\n }\n\n if (dstType === 'FieldReference' || dstType === 'TransitiveFieldReference') {\n if (dstIsArray) {\n return (\n isArrayExpr(arg.value) &&\n !arg.value.items.find((item) => !isReferenceExpr(item) || !isDataModelField(item.target.ref))\n );\n } else {\n return isReferenceExpr(arg.value) && isDataModelField(arg.value.target.ref);\n }\n } else if (dstType === 'ContextType') {\n if (isDataModelField(attr.$container)) {\n if (!attr.$container?.type?.type) {\n return false;\n }\n dstType = mapBuiltinTypeToExpressionType(attr.$container.type.type);\n } else {\n dstType = 'Any';\n }\n }\n\n return typeAssignable(dstType, argResolvedType.decl) && dstIsArray === argResolvedType.array;\n } else {\n return dstRef?.ref === argResolvedType.decl && dstIsArray === argResolvedType.array;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/language-server/validator/utils.ts"],"names":[],"mappings":"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"}
@@ -1,72 +1,69 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.ZModelValidator = exports.ZModelValidationRegistry = void 0;
7
- var _langium = require("langium");
8
- var _schemaValidator = _interopRequireDefault(require("./schema-validator"));
9
- var _datasourceValidator = _interopRequireDefault(require("./datasource-validator"));
10
- var _datamodelValidator = _interopRequireDefault(require("./datamodel-validator"));
11
- var _attributeValidator = _interopRequireDefault(require("./attribute-validator"));
12
- var _enumValidator = _interopRequireDefault(require("./enum-validator"));
13
- var _expressionValidator = _interopRequireDefault(require("./expression-validator"));
14
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
7
+ const langium_1 = require("langium");
8
+ const schema_validator_1 = __importDefault(require("./schema-validator"));
9
+ const datasource_validator_1 = __importDefault(require("./datasource-validator"));
10
+ const datamodel_validator_1 = __importDefault(require("./datamodel-validator"));
11
+ const attribute_validator_1 = __importDefault(require("./attribute-validator"));
12
+ const enum_validator_1 = __importDefault(require("./enum-validator"));
13
+ const expression_validator_1 = __importDefault(require("./expression-validator"));
15
14
  /**
16
15
  * Registry for validation checks.
17
16
  */
18
- class ZModelValidationRegistry extends _langium.ValidationRegistry {
19
- constructor(services) {
20
- super(services);
21
- const validator = services.validation.ZModelValidator;
22
- const checks = {
23
- Model: validator.checkModel,
24
- DataSource: validator.checkDataSource,
25
- DataModel: validator.checkDataModel,
26
- Enum: validator.checkEnum,
27
- Attribute: validator.checkAttribute,
28
- Expression: validator.checkExpression
29
- };
30
- this.register(checks, validator);
31
- }
17
+ class ZModelValidationRegistry extends langium_1.ValidationRegistry {
18
+ constructor(services) {
19
+ super(services);
20
+ const validator = services.validation.ZModelValidator;
21
+ const checks = {
22
+ Model: validator.checkModel,
23
+ DataSource: validator.checkDataSource,
24
+ DataModel: validator.checkDataModel,
25
+ Enum: validator.checkEnum,
26
+ Attribute: validator.checkAttribute,
27
+ Expression: validator.checkExpression,
28
+ };
29
+ this.register(checks, validator);
30
+ }
32
31
  }
33
-
32
+ exports.ZModelValidationRegistry = ZModelValidationRegistry;
34
33
  /**
35
34
  * Implementation of custom validations.
36
35
  */
37
- exports.ZModelValidationRegistry = ZModelValidationRegistry;
38
36
  class ZModelValidator {
39
- shouldCheck(node) {
40
- var _doc, _doc2;
41
- let doc;
42
- let currNode = node;
43
- while (currNode) {
44
- if (currNode.$document) {
45
- doc = currNode.$document;
46
- break;
47
- }
48
- currNode = currNode.$container;
37
+ shouldCheck(node) {
38
+ let doc;
39
+ let currNode = node;
40
+ while (currNode) {
41
+ if (currNode.$document) {
42
+ doc = currNode.$document;
43
+ break;
44
+ }
45
+ currNode = currNode.$container;
46
+ }
47
+ return (doc === null || doc === void 0 ? void 0 : doc.parseResult.lexerErrors.length) === 0 && (doc === null || doc === void 0 ? void 0 : doc.parseResult.parserErrors.length) === 0;
48
+ }
49
+ checkModel(node, accept) {
50
+ this.shouldCheck(node) && new schema_validator_1.default().validate(node, accept);
51
+ }
52
+ checkDataSource(node, accept) {
53
+ this.shouldCheck(node) && new datasource_validator_1.default().validate(node, accept);
54
+ }
55
+ checkDataModel(node, accept) {
56
+ this.shouldCheck(node) && new datamodel_validator_1.default().validate(node, accept);
57
+ }
58
+ checkEnum(node, accept) {
59
+ this.shouldCheck(node) && new enum_validator_1.default().validate(node, accept);
60
+ }
61
+ checkAttribute(node, accept) {
62
+ this.shouldCheck(node) && new attribute_validator_1.default().validate(node, accept);
63
+ }
64
+ checkExpression(node, accept) {
65
+ new expression_validator_1.default().validate(node, accept);
49
66
  }
50
- return ((_doc = doc) === null || _doc === void 0 ? void 0 : _doc.parseResult.lexerErrors.length) === 0 && ((_doc2 = doc) === null || _doc2 === void 0 ? void 0 : _doc2.parseResult.parserErrors.length) === 0;
51
- }
52
- checkModel(node, accept) {
53
- this.shouldCheck(node) && new _schemaValidator.default().validate(node, accept);
54
- }
55
- checkDataSource(node, accept) {
56
- this.shouldCheck(node) && new _datasourceValidator.default().validate(node, accept);
57
- }
58
- checkDataModel(node, accept) {
59
- this.shouldCheck(node) && new _datamodelValidator.default().validate(node, accept);
60
- }
61
- checkEnum(node, accept) {
62
- this.shouldCheck(node) && new _enumValidator.default().validate(node, accept);
63
- }
64
- checkAttribute(node, accept) {
65
- this.shouldCheck(node) && new _attributeValidator.default().validate(node, accept);
66
- }
67
- checkExpression(node, accept) {
68
- new _expressionValidator.default().validate(node, accept);
69
- }
70
67
  }
71
68
  exports.ZModelValidator = ZModelValidator;
72
69
  //# sourceMappingURL=zmodel-validator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"zmodel-validator.js","names":["ZModelValidationRegistry","ValidationRegistry","constructor","services","validator","validation","ZModelValidator","checks","Model","checkModel","DataSource","checkDataSource","DataModel","checkDataModel","Enum","checkEnum","Attribute","checkAttribute","Expression","checkExpression","register","shouldCheck","node","doc","currNode","$document","$container","parseResult","lexerErrors","length","parserErrors","accept","SchemaValidator","validate","DataSourceValidator","DataModelValidator","EnumValidator","AttributeValidator","ExpressionValidator"],"sources":["../../../src/language-server/validator/zmodel-validator.ts"],"sourcesContent":["import { AstNode, LangiumDocument, ValidationAcceptor, ValidationChecks, ValidationRegistry } from 'langium';\nimport { Attribute, DataModel, DataSource, Enum, Expression, Model, ZModelAstType } from '@zenstackhq/language/ast';\nimport type { ZModelServices } from '../zmodel-module';\nimport SchemaValidator from './schema-validator';\nimport DataSourceValidator from './datasource-validator';\nimport DataModelValidator from './datamodel-validator';\nimport AttributeValidator from './attribute-validator';\nimport EnumValidator from './enum-validator';\nimport ExpressionValidator from './expression-validator';\n\n/**\n * Registry for validation checks.\n */\nexport class ZModelValidationRegistry extends ValidationRegistry {\n constructor(services: ZModelServices) {\n super(services);\n const validator = services.validation.ZModelValidator;\n const checks: ValidationChecks<ZModelAstType> = {\n Model: validator.checkModel,\n DataSource: validator.checkDataSource,\n DataModel: validator.checkDataModel,\n Enum: validator.checkEnum,\n Attribute: validator.checkAttribute,\n Expression: validator.checkExpression,\n };\n this.register(checks, validator);\n }\n}\n\n/**\n * Implementation of custom validations.\n */\nexport class ZModelValidator {\n private shouldCheck(node: AstNode) {\n let doc: LangiumDocument | undefined;\n let currNode: AstNode | undefined = node;\n while (currNode) {\n if (currNode.$document) {\n doc = currNode.$document;\n break;\n }\n currNode = currNode.$container;\n }\n\n return doc?.parseResult.lexerErrors.length === 0 && doc?.parseResult.parserErrors.length === 0;\n }\n\n checkModel(node: Model, accept: ValidationAcceptor): void {\n this.shouldCheck(node) && new SchemaValidator().validate(node, accept);\n }\n\n checkDataSource(node: DataSource, accept: ValidationAcceptor): void {\n this.shouldCheck(node) && new DataSourceValidator().validate(node, accept);\n }\n\n checkDataModel(node: DataModel, accept: ValidationAcceptor): void {\n this.shouldCheck(node) && new DataModelValidator().validate(node, accept);\n }\n\n checkEnum(node: Enum, accept: ValidationAcceptor): void {\n this.shouldCheck(node) && new EnumValidator().validate(node, accept);\n }\n\n checkAttribute(node: Attribute, accept: ValidationAcceptor): void {\n this.shouldCheck(node) && new AttributeValidator().validate(node, accept);\n }\n\n checkExpression(node: Expression, accept: ValidationAcceptor): void {\n new ExpressionValidator().validate(node, accept);\n }\n}\n"],"mappings":";;;;;;AAAA;AAGA;AACA;AACA;AACA;AACA;AACA;AAAyD;AAEzD;AACA;AACA;AACO,MAAMA,wBAAwB,SAASC,2BAAkB,CAAC;EAC7DC,WAAW,CAACC,QAAwB,EAAE;IAClC,KAAK,CAACA,QAAQ,CAAC;IACf,MAAMC,SAAS,GAAGD,QAAQ,CAACE,UAAU,CAACC,eAAe;IACrD,MAAMC,MAAuC,GAAG;MAC5CC,KAAK,EAAEJ,SAAS,CAACK,UAAU;MAC3BC,UAAU,EAAEN,SAAS,CAACO,eAAe;MACrCC,SAAS,EAAER,SAAS,CAACS,cAAc;MACnCC,IAAI,EAAEV,SAAS,CAACW,SAAS;MACzBC,SAAS,EAAEZ,SAAS,CAACa,cAAc;MACnCC,UAAU,EAAEd,SAAS,CAACe;IAC1B,CAAC;IACD,IAAI,CAACC,QAAQ,CAACb,MAAM,EAAEH,SAAS,CAAC;EACpC;AACJ;;AAEA;AACA;AACA;AAFA;AAGO,MAAME,eAAe,CAAC;EACjBe,WAAW,CAACC,IAAa,EAAE;IAAA;IAC/B,IAAIC,GAAgC;IACpC,IAAIC,QAA6B,GAAGF,IAAI;IACxC,OAAOE,QAAQ,EAAE;MACb,IAAIA,QAAQ,CAACC,SAAS,EAAE;QACpBF,GAAG,GAAGC,QAAQ,CAACC,SAAS;QACxB;MACJ;MACAD,QAAQ,GAAGA,QAAQ,CAACE,UAAU;IAClC;IAEA,OAAO,SAAAH,GAAG,yCAAH,KAAKI,WAAW,CAACC,WAAW,CAACC,MAAM,MAAK,CAAC,IAAI,UAAAN,GAAG,0CAAH,MAAKI,WAAW,CAACG,YAAY,CAACD,MAAM,MAAK,CAAC;EAClG;EAEApB,UAAU,CAACa,IAAW,EAAES,MAA0B,EAAQ;IACtD,IAAI,CAACV,WAAW,CAACC,IAAI,CAAC,IAAI,IAAIU,wBAAe,EAAE,CAACC,QAAQ,CAACX,IAAI,EAAES,MAAM,CAAC;EAC1E;EAEApB,eAAe,CAACW,IAAgB,EAAES,MAA0B,EAAQ;IAChE,IAAI,CAACV,WAAW,CAACC,IAAI,CAAC,IAAI,IAAIY,4BAAmB,EAAE,CAACD,QAAQ,CAACX,IAAI,EAAES,MAAM,CAAC;EAC9E;EAEAlB,cAAc,CAACS,IAAe,EAAES,MAA0B,EAAQ;IAC9D,IAAI,CAACV,WAAW,CAACC,IAAI,CAAC,IAAI,IAAIa,2BAAkB,EAAE,CAACF,QAAQ,CAACX,IAAI,EAAES,MAAM,CAAC;EAC7E;EAEAhB,SAAS,CAACO,IAAU,EAAES,MAA0B,EAAQ;IACpD,IAAI,CAACV,WAAW,CAACC,IAAI,CAAC,IAAI,IAAIc,sBAAa,EAAE,CAACH,QAAQ,CAACX,IAAI,EAAES,MAAM,CAAC;EACxE;EAEAd,cAAc,CAACK,IAAe,EAAES,MAA0B,EAAQ;IAC9D,IAAI,CAACV,WAAW,CAACC,IAAI,CAAC,IAAI,IAAIe,2BAAkB,EAAE,CAACJ,QAAQ,CAACX,IAAI,EAAES,MAAM,CAAC;EAC7E;EAEAZ,eAAe,CAACG,IAAgB,EAAES,MAA0B,EAAQ;IAChE,IAAIO,4BAAmB,EAAE,CAACL,QAAQ,CAACX,IAAI,EAAES,MAAM,CAAC;EACpD;AACJ;AAAC"}
1
+ {"version":3,"file":"zmodel-validator.js","sourceRoot":"","sources":["../../../src/language-server/validator/zmodel-validator.ts"],"names":[],"mappings":";;;;;;AAAA,qCAA6G;AAG7G,0EAAiD;AACjD,kFAAyD;AACzD,gFAAuD;AACvD,gFAAuD;AACvD,sEAA6C;AAC7C,kFAAyD;AAEzD;;GAEG;AACH,MAAa,wBAAyB,SAAQ,4BAAkB;IAC5D,YAAY,QAAwB;QAChC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChB,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAC,eAAe,CAAC;QACtD,MAAM,MAAM,GAAoC;YAC5C,KAAK,EAAE,SAAS,CAAC,UAAU;YAC3B,UAAU,EAAE,SAAS,CAAC,eAAe;YACrC,SAAS,EAAE,SAAS,CAAC,cAAc;YACnC,IAAI,EAAE,SAAS,CAAC,SAAS;YACzB,SAAS,EAAE,SAAS,CAAC,cAAc;YACnC,UAAU,EAAE,SAAS,CAAC,eAAe;SACxC,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACrC,CAAC;CACJ;AAdD,4DAcC;AAED;;GAEG;AACH,MAAa,eAAe;IAChB,WAAW,CAAC,IAAa;QAC7B,IAAI,GAAgC,CAAC;QACrC,IAAI,QAAQ,GAAwB,IAAI,CAAC;QACzC,OAAO,QAAQ,EAAE;YACb,IAAI,QAAQ,CAAC,SAAS,EAAE;gBACpB,GAAG,GAAG,QAAQ,CAAC,SAAS,CAAC;gBACzB,MAAM;aACT;YACD,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC;SAClC;QAED,OAAO,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,WAAW,CAAC,WAAW,CAAC,MAAM,MAAK,CAAC,IAAI,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,WAAW,CAAC,YAAY,CAAC,MAAM,MAAK,CAAC,CAAC;IACnG,CAAC;IAED,UAAU,CAAC,IAAW,EAAE,MAA0B;QAC9C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,0BAAe,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC3E,CAAC;IAED,eAAe,CAAC,IAAgB,EAAE,MAA0B;QACxD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,8BAAmB,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC/E,CAAC;IAED,cAAc,CAAC,IAAe,EAAE,MAA0B;QACtD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,6BAAkB,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC9E,CAAC;IAED,SAAS,CAAC,IAAU,EAAE,MAA0B;QAC5C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,wBAAa,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACzE,CAAC;IAED,cAAc,CAAC,IAAe,EAAE,MAA0B;QACtD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,6BAAkB,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC9E,CAAC;IAED,eAAe,CAAC,IAAgB,EAAE,MAA0B;QACxD,IAAI,8BAAmB,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACrD,CAAC;CACJ;AAtCD,0CAsCC"}
@@ -1,28 +1,47 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
5
17
  });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
6
26
  exports.ZModelFormatter = void 0;
7
- var _langium = require("langium");
8
- var ast = _interopRequireWildcard(require("@zenstackhq/language/ast"));
9
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
10
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
11
- class ZModelFormatter extends _langium.AbstractFormatter {
12
- format(node) {
13
- const formatter = this.getNodeFormatter(node);
14
- if (ast.isAbstractDeclaration(node)) {
15
- const bracesOpen = formatter.keyword('{');
16
- const bracesClose = formatter.keyword('}');
17
- formatter.interior(bracesOpen, bracesClose).prepend(_langium.Formatting.indent());
18
- bracesOpen.prepend(_langium.Formatting.oneSpace());
19
- bracesClose.prepend(_langium.Formatting.newLine());
20
- } else if (ast.isModel(node)) {
21
- const model = node;
22
- const nodes = formatter.nodes(...model.declarations);
23
- nodes.prepend(_langium.Formatting.noIndent());
27
+ const langium_1 = require("langium");
28
+ const ast = __importStar(require("@zenstackhq/language/ast"));
29
+ class ZModelFormatter extends langium_1.AbstractFormatter {
30
+ format(node) {
31
+ const formatter = this.getNodeFormatter(node);
32
+ if (ast.isAbstractDeclaration(node)) {
33
+ const bracesOpen = formatter.keyword('{');
34
+ const bracesClose = formatter.keyword('}');
35
+ formatter.interior(bracesOpen, bracesClose).prepend(langium_1.Formatting.indent());
36
+ bracesOpen.prepend(langium_1.Formatting.oneSpace());
37
+ bracesClose.prepend(langium_1.Formatting.newLine());
38
+ }
39
+ else if (ast.isModel(node)) {
40
+ const model = node;
41
+ const nodes = formatter.nodes(...model.declarations);
42
+ nodes.prepend(langium_1.Formatting.noIndent());
43
+ }
24
44
  }
25
- }
26
45
  }
27
46
  exports.ZModelFormatter = ZModelFormatter;
28
47
  //# sourceMappingURL=zmodel-formatter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"zmodel-formatter.js","names":["ZModelFormatter","AbstractFormatter","format","node","formatter","getNodeFormatter","ast","isAbstractDeclaration","bracesOpen","keyword","bracesClose","interior","prepend","Formatting","indent","oneSpace","newLine","isModel","model","nodes","declarations","noIndent"],"sources":["../../src/language-server/zmodel-formatter.ts"],"sourcesContent":["import { AbstractFormatter, AstNode, Formatting } from 'langium';\n\nimport * as ast from '@zenstackhq/language/ast';\n\nexport class ZModelFormatter extends AbstractFormatter {\n protected format(node: AstNode): void {\n const formatter = this.getNodeFormatter(node);\n if (ast.isAbstractDeclaration(node)) {\n const bracesOpen = formatter.keyword('{');\n const bracesClose = formatter.keyword('}');\n formatter.interior(bracesOpen, bracesClose).prepend(Formatting.indent());\n bracesOpen.prepend(Formatting.oneSpace());\n bracesClose.prepend(Formatting.newLine());\n } else if (ast.isModel(node)) {\n const model = node as ast.Model;\n const nodes = formatter.nodes(...model.declarations);\n nodes.prepend(Formatting.noIndent());\n }\n }\n}\n"],"mappings":";;;;;;AAAA;AAEA;AAAgD;AAAA;AAEzC,MAAMA,eAAe,SAASC,0BAAiB,CAAC;EACzCC,MAAM,CAACC,IAAa,EAAQ;IAClC,MAAMC,SAAS,GAAG,IAAI,CAACC,gBAAgB,CAACF,IAAI,CAAC;IAC7C,IAAIG,GAAG,CAACC,qBAAqB,CAACJ,IAAI,CAAC,EAAE;MACjC,MAAMK,UAAU,GAAGJ,SAAS,CAACK,OAAO,CAAC,GAAG,CAAC;MACzC,MAAMC,WAAW,GAAGN,SAAS,CAACK,OAAO,CAAC,GAAG,CAAC;MAC1CL,SAAS,CAACO,QAAQ,CAACH,UAAU,EAAEE,WAAW,CAAC,CAACE,OAAO,CAACC,mBAAU,CAACC,MAAM,EAAE,CAAC;MACxEN,UAAU,CAACI,OAAO,CAACC,mBAAU,CAACE,QAAQ,EAAE,CAAC;MACzCL,WAAW,CAACE,OAAO,CAACC,mBAAU,CAACG,OAAO,EAAE,CAAC;IAC7C,CAAC,MAAM,IAAIV,GAAG,CAACW,OAAO,CAACd,IAAI,CAAC,EAAE;MAC1B,MAAMe,KAAK,GAAGf,IAAiB;MAC/B,MAAMgB,KAAK,GAAGf,SAAS,CAACe,KAAK,CAAC,GAAGD,KAAK,CAACE,YAAY,CAAC;MACpDD,KAAK,CAACP,OAAO,CAACC,mBAAU,CAACQ,QAAQ,EAAE,CAAC;IACxC;EACJ;AACJ;AAAC"}
1
+ {"version":3,"file":"zmodel-formatter.js","sourceRoot":"","sources":["../../src/language-server/zmodel-formatter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAiE;AAEjE,8DAAgD;AAEhD,MAAa,eAAgB,SAAQ,2BAAiB;IACxC,MAAM,CAAC,IAAa;QAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,GAAG,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE;YACjC,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC1C,MAAM,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC3C,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,OAAO,CAAC,oBAAU,CAAC,MAAM,EAAE,CAAC,CAAC;YACzE,UAAU,CAAC,OAAO,CAAC,oBAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC1C,WAAW,CAAC,OAAO,CAAC,oBAAU,CAAC,OAAO,EAAE,CAAC,CAAC;SAC7C;aAAM,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAC1B,MAAM,KAAK,GAAG,IAAiB,CAAC;YAChC,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;YACrD,KAAK,CAAC,OAAO,CAAC,oBAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;SACxC;IACL,CAAC;CACJ;AAfD,0CAeC"}