zenstack 1.0.0-alpha.102 → 1.0.0-alpha.111

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 (62) hide show
  1. package/cli/cli-util.d.ts +4 -1
  2. package/cli/cli-util.js +53 -6
  3. package/cli/cli-util.js.map +1 -1
  4. package/cli/config.js +39 -13
  5. package/cli/config.js.map +1 -1
  6. package/cli/index.js +1 -6
  7. package/cli/index.js.map +1 -1
  8. package/language-server/validator/datamodel-validator.d.ts +7 -0
  9. package/language-server/validator/datamodel-validator.js +62 -17
  10. package/language-server/validator/datamodel-validator.js.map +1 -1
  11. package/language-server/validator/expression-validator.js +7 -7
  12. package/language-server/validator/expression-validator.js.map +1 -1
  13. package/language-server/validator/schema-validator.d.ts +4 -1
  14. package/language-server/validator/schema-validator.js +25 -5
  15. package/language-server/validator/schema-validator.js.map +1 -1
  16. package/language-server/validator/utils.d.ts +1 -1
  17. package/language-server/validator/utils.js +10 -1
  18. package/language-server/validator/utils.js.map +1 -1
  19. package/language-server/validator/zmodel-validator.d.ts +2 -0
  20. package/language-server/validator/zmodel-validator.js +5 -1
  21. package/language-server/validator/zmodel-validator.js.map +1 -1
  22. package/language-server/zmodel-code-action.d.ts +2 -1
  23. package/language-server/zmodel-code-action.js +19 -10
  24. package/language-server/zmodel-code-action.js.map +1 -1
  25. package/language-server/zmodel-definition.d.ts +7 -0
  26. package/language-server/zmodel-definition.js +31 -0
  27. package/language-server/zmodel-definition.js.map +1 -0
  28. package/language-server/zmodel-linker.d.ts +1 -0
  29. package/language-server/zmodel-linker.js +28 -6
  30. package/language-server/zmodel-linker.js.map +1 -1
  31. package/language-server/zmodel-module.js +4 -1
  32. package/language-server/zmodel-module.js.map +1 -1
  33. package/language-server/zmodel-scope.d.ts +7 -1
  34. package/language-server/zmodel-scope.js +57 -1
  35. package/language-server/zmodel-scope.js.map +1 -1
  36. package/package.json +10 -10
  37. package/plugins/access-policy/expression-writer.js +27 -3
  38. package/plugins/access-policy/expression-writer.js.map +1 -1
  39. package/plugins/access-policy/policy-guard-generator.js +22 -10
  40. package/plugins/access-policy/policy-guard-generator.js.map +1 -1
  41. package/plugins/access-policy/typescript-expression-transformer.d.ts +3 -3
  42. package/plugins/access-policy/typescript-expression-transformer.js +74 -20
  43. package/plugins/access-policy/typescript-expression-transformer.js.map +1 -1
  44. package/plugins/access-policy/zod-schema-generator.d.ts +1 -1
  45. package/plugins/access-policy/zod-schema-generator.js +3 -0
  46. package/plugins/access-policy/zod-schema-generator.js.map +1 -1
  47. package/plugins/model-meta/index.js +11 -4
  48. package/plugins/model-meta/index.js.map +1 -1
  49. package/plugins/prisma/schema-generator.d.ts +1 -0
  50. package/plugins/prisma/schema-generator.js +16 -1
  51. package/plugins/prisma/schema-generator.js.map +1 -1
  52. package/plugins/zod/generator.js +16 -6
  53. package/plugins/zod/generator.js.map +1 -1
  54. package/plugins/zod/transformer.d.ts +2 -2
  55. package/plugins/zod/transformer.js +31 -27
  56. package/plugins/zod/transformer.js.map +1 -1
  57. package/res/stdlib.zmodel +3 -2
  58. package/telemetry.js +2 -2
  59. package/telemetry.js.map +1 -1
  60. package/utils/ast-utils.d.ts +21 -1
  61. package/utils/ast-utils.js +157 -2
  62. package/utils/ast-utils.js.map +1 -1
@@ -3,27 +3,47 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const constants_1 = require("../constants");
4
4
  const ast_1 = require("@zenstackhq/language/ast");
5
5
  const utils_1 = require("./utils");
6
+ const ast_utils_1 = require("../../utils/ast-utils");
6
7
  /**
7
8
  * Validates toplevel schema.
8
9
  */
9
10
  class SchemaValidator {
11
+ constructor(documents) {
12
+ this.documents = documents;
13
+ }
10
14
  validate(model, accept) {
11
15
  var _a, _b;
16
+ this.validateImports(model, accept);
12
17
  (0, utils_1.validateDuplicatedDeclarations)(model.declarations, accept);
18
+ const importedModels = (0, ast_utils_1.resolveTransitiveImports)(this.documents, model);
19
+ const importedNames = new Set(importedModels.flatMap((m) => m.declarations.map((d) => d.name)));
20
+ for (const declaration of model.declarations) {
21
+ if (importedNames.has(declaration.name)) {
22
+ accept('error', `A ${declaration.name} already exists in an imported module`, {
23
+ node: declaration,
24
+ property: 'name',
25
+ });
26
+ }
27
+ }
13
28
  if (!((_a = model.$document) === null || _a === void 0 ? void 0 : _a.uri.path.endsWith(constants_1.STD_LIB_MODULE_NAME)) &&
14
29
  !((_b = model.$document) === null || _b === void 0 ? void 0 : _b.uri.path.endsWith(constants_1.PLUGIN_MODULE_NAME))) {
15
30
  this.validateDataSources(model, accept);
16
31
  }
17
32
  }
18
33
  validateDataSources(model, accept) {
19
- const dataSources = model.declarations.filter((d) => (0, ast_1.isDataSource)(d));
20
- if (dataSources.length === 0) {
21
- accept('error', 'Model must define a datasource', { node: model });
22
- }
23
- else if (dataSources.length > 1) {
34
+ const dataSources = (0, ast_utils_1.getAllDeclarationsFromImports)(this.documents, model).filter((d) => (0, ast_1.isDataSource)(d));
35
+ if (dataSources.length > 1) {
24
36
  accept('error', 'Multiple datasource declarations are not allowed', { node: dataSources[1] });
25
37
  }
26
38
  }
39
+ validateImports(model, accept) {
40
+ model.imports.forEach((imp) => {
41
+ const importedModel = (0, ast_utils_1.resolveImport)(this.documents, imp);
42
+ if (!importedModel) {
43
+ accept('error', `Cannot find model file ${imp.path}.zmodel`, { node: imp });
44
+ }
45
+ });
46
+ }
27
47
  }
28
48
  exports.default = SchemaValidator;
29
49
  //# sourceMappingURL=schema-validator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema-validator.js","sourceRoot":"","sources":["../../../src/language-server/validator/schema-validator.ts"],"names":[],"mappings":";;AAAA,4CAAuE;AACvE,kDAA+D;AAG/D,mCAAyD;AAEzD;;GAEG;AACH,MAAqB,eAAe;IAChC,QAAQ,CAAC,KAAY,EAAE,MAA0B;;QAC7C,IAAA,sCAA8B,EAAC,KAAK,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAE3D,IACI,CAAC,CAAA,MAAA,KAAK,CAAC,SAAS,0CAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,+BAAmB,CAAC,CAAA;YACxD,CAAC,CAAA,MAAA,KAAK,CAAC,SAAS,0CAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,8BAAkB,CAAC,CAAA,EACzD;YACE,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;SAC3C;IACL,CAAC;IAEO,mBAAmB,CAAC,KAAY,EAAE,MAA0B;QAChE,MAAM,WAAW,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,kBAAY,EAAC,CAAC,CAAC,CAAC,CAAC;QACtE,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;YAC1B,MAAM,CAAC,OAAO,EAAE,gCAAgC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;SACtE;aAAM,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/B,MAAM,CAAC,OAAO,EAAE,kDAAkD,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SACjG;IACL,CAAC;CACJ;AApBD,kCAoBC"}
1
+ {"version":3,"file":"schema-validator.js","sourceRoot":"","sources":["../../../src/language-server/validator/schema-validator.ts"],"names":[],"mappings":";;AAAA,4CAAuE;AACvE,kDAA+D;AAG/D,mCAAyD;AACzD,qDAA+G;AAE/G;;GAEG;AACH,MAAqB,eAAe;IAChC,YAA+B,SAA2B;QAA3B,cAAS,GAAT,SAAS,CAAkB;IAAG,CAAC;IAC9D,QAAQ,CAAC,KAAY,EAAE,MAA0B;;QAC7C,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACpC,IAAA,sCAA8B,EAAC,KAAK,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAE3D,MAAM,cAAc,GAAG,IAAA,oCAAwB,EAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAEvE,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAEhG,KAAK,MAAM,WAAW,IAAI,KAAK,CAAC,YAAY,EAAE;YAC1C,IAAI,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;gBACrC,MAAM,CAAC,OAAO,EAAE,KAAK,WAAW,CAAC,IAAI,uCAAuC,EAAE;oBAC1E,IAAI,EAAE,WAAW;oBACjB,QAAQ,EAAE,MAAM;iBACnB,CAAC,CAAC;aACN;SACJ;QAED,IACI,CAAC,CAAA,MAAA,KAAK,CAAC,SAAS,0CAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,+BAAmB,CAAC,CAAA;YACxD,CAAC,CAAA,MAAA,KAAK,CAAC,SAAS,0CAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,8BAAkB,CAAC,CAAA,EACzD;YACE,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;SAC3C;IACL,CAAC;IAEO,mBAAmB,CAAC,KAAY,EAAE,MAA0B;QAChE,MAAM,WAAW,GAAG,IAAA,yCAA6B,EAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,kBAAY,EAAC,CAAC,CAAC,CAAC,CAAC;QACxG,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YACxB,MAAM,CAAC,OAAO,EAAE,kDAAkD,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SACjG;IACL,CAAC;IAEO,eAAe,CAAC,KAAY,EAAE,MAA0B;QAC5D,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAC1B,MAAM,aAAa,GAAG,IAAA,yBAAa,EAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YACzD,IAAI,CAAC,aAAa,EAAE;gBAChB,MAAM,CAAC,OAAO,EAAE,0BAA0B,GAAG,CAAC,IAAI,SAAS,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;aAC/E;QACL,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AA1CD,kCA0CC"}
@@ -17,7 +17,7 @@ export declare function typeAssignable(destType: ExpressionType, sourceType: Exp
17
17
  /**
18
18
  * Maps a ZModel builtin type to expression type
19
19
  */
20
- export declare function mapBuiltinTypeToExpressionType(type: BuiltinType | 'Any' | 'Object' | 'Null'): ExpressionType | 'Any';
20
+ export declare function mapBuiltinTypeToExpressionType(type: BuiltinType | 'Any' | 'Object' | 'Null' | 'Unsupported'): ExpressionType | 'Any';
21
21
  /**
22
22
  * Determines if the given attribute argument is assignable to the given attribute parameter
23
23
  */
@@ -19,8 +19,15 @@ function validateDuplicatedDeclarations(decls, accept) {
19
19
  }, {});
20
20
  for (const [name, decls] of Object.entries(groupByName)) {
21
21
  if (decls.length > 1) {
22
+ let errorField = decls[1];
23
+ if (decls[0].$type === 'DataModelField') {
24
+ const nonInheritedFields = decls.filter((x) => !x.$isInherited);
25
+ if (nonInheritedFields.length > 0) {
26
+ errorField = nonInheritedFields.slice(-1)[0];
27
+ }
28
+ }
22
29
  accept('error', `Duplicated declaration name "${name}"`, {
23
- node: decls[1],
30
+ node: errorField,
24
31
  });
25
32
  }
26
33
  }
@@ -83,6 +90,8 @@ function mapBuiltinTypeToExpressionType(type) {
83
90
  return 'Any';
84
91
  case 'Object':
85
92
  return 'Object';
93
+ case 'Unsupported':
94
+ return 'Unsupported';
86
95
  }
87
96
  }
88
97
  exports.mapBuiltinTypeToExpressionType = mapBuiltinTypeToExpressionType;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/language-server/validator/utils.ts"],"names":[],"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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"}
@@ -11,6 +11,8 @@ export declare class ZModelValidationRegistry extends ValidationRegistry {
11
11
  * Implementation of custom validations.
12
12
  */
13
13
  export declare class ZModelValidator {
14
+ protected readonly services: ZModelServices;
15
+ constructor(services: ZModelServices);
14
16
  private shouldCheck;
15
17
  checkModel(node: Model, accept: ValidationAcceptor): void;
16
18
  checkDataSource(node: DataSource, accept: ValidationAcceptor): void;
@@ -36,6 +36,9 @@ exports.ZModelValidationRegistry = ZModelValidationRegistry;
36
36
  * Implementation of custom validations.
37
37
  */
38
38
  class ZModelValidator {
39
+ constructor(services) {
40
+ this.services = services;
41
+ }
39
42
  shouldCheck(node) {
40
43
  let doc;
41
44
  let currNode = node;
@@ -49,7 +52,8 @@ class ZModelValidator {
49
52
  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;
50
53
  }
51
54
  checkModel(node, accept) {
52
- this.shouldCheck(node) && new schema_validator_1.default().validate(node, accept);
55
+ this.shouldCheck(node) &&
56
+ new schema_validator_1.default(this.services.shared.workspace.LangiumDocuments).validate(node, accept);
53
57
  }
54
58
  checkDataSource(node, accept) {
55
59
  this.shouldCheck(node) && new datasource_validator_1.default().validate(node, accept);
@@ -1 +1 @@
1
- {"version":3,"file":"zmodel-validator.js","sourceRoot":"","sources":["../../../src/language-server/validator/zmodel-validator.ts"],"names":[],"mappings":";;;;;;AAAA,qCAA6G;AAY7G,0EAAiD;AACjD,kFAAyD;AACzD,gFAAuD;AACvD,gFAAuD;AACvD,sEAA6C;AAC7C,kFAAyD;AACzD,oGAA0E;AAE1E;;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;YACrC,cAAc,EAAE,SAAS,CAAC,uBAAuB;SACpD,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACrC,CAAC;CACJ;AAfD,4DAeC;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,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,8BAAmB,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC/E,CAAC;IAED,uBAAuB,CAAC,IAAoB,EAAE,MAA0B;QACpE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,uCAA2B,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACvF,CAAC;CACJ;AA1CD,0CA0CC"}
1
+ {"version":3,"file":"zmodel-validator.js","sourceRoot":"","sources":["../../../src/language-server/validator/zmodel-validator.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,11 @@
1
- import { AstReflection, CodeActionProvider, IndexManager, LangiumDocument, LangiumServices, MaybePromise } from 'langium';
1
+ import { AstReflection, CodeActionProvider, IndexManager, LangiumDocument, LangiumDocuments, LangiumServices, MaybePromise } from 'langium';
2
2
  import { CodeAction, CodeActionParams, Command } from 'vscode-languageserver';
3
3
  import { ZModelFormatter } from './zmodel-formatter';
4
4
  export declare class ZModelCodeActionProvider implements CodeActionProvider {
5
5
  protected readonly reflection: AstReflection;
6
6
  protected readonly indexManager: IndexManager;
7
7
  protected readonly formatter: ZModelFormatter;
8
+ protected readonly documents: LangiumDocuments;
8
9
  constructor(services: LangiumServices);
9
10
  getCodeActions(document: LangiumDocument, params: CodeActionParams): MaybePromise<Array<Command | CodeAction> | undefined>;
10
11
  private createCodeActions;
@@ -10,6 +10,7 @@ class ZModelCodeActionProvider {
10
10
  this.reflection = services.shared.AstReflection;
11
11
  this.indexManager = services.shared.workspace.IndexManager;
12
12
  this.formatter = services.lsp.Formatter;
13
+ this.documents = services.shared.workspace.LangiumDocuments;
13
14
  }
14
15
  getCodeActions(document, params) {
15
16
  const result = [];
@@ -27,15 +28,21 @@ class ZModelCodeActionProvider {
27
28
  return undefined;
28
29
  }
29
30
  fixMissingOppositeRelation(diagnostic, document) {
30
- const offset = document.textDocument.offsetAt(diagnostic.range.start);
31
- const rootCst = document.parseResult.value.$cstNode;
31
+ var _a, _b;
32
+ const data = diagnostic.data;
33
+ const rootCst = data.relationFieldDocUri == document.textDocument.uri
34
+ ? document.parseResult.value
35
+ : (_a = this.documents.all.find((doc) => doc.textDocument.uri === data.relationFieldDocUri)) === null || _a === void 0 ? void 0 : _a.parseResult.value;
32
36
  if (rootCst) {
33
- const cstNode = (0, langium_1.findDeclarationNodeAtOffset)(rootCst, offset);
34
- const astNode = cstNode === null || cstNode === void 0 ? void 0 : cstNode.element;
37
+ const fieldModel = rootCst;
38
+ const fieldAstNode = (_b = fieldModel.declarations.find((x) => (0, ast_1.isDataModel)(x) && x.name === data.relationDataModelName)) === null || _b === void 0 ? void 0 : _b.fields.find((x) => x.name === data.relationFieldName);
39
+ if (!fieldAstNode)
40
+ return undefined;
35
41
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
36
- const oppositeModel = astNode.type.reference.ref;
42
+ const oppositeModel = fieldAstNode.type.reference.ref;
37
43
  const lastField = oppositeModel.fields[oppositeModel.fields.length - 1];
38
- const container = (0, langium_1.getContainerOfType)(cstNode === null || cstNode === void 0 ? void 0 : cstNode.element, ast_1.isDataModel);
44
+ const currentModel = document.parseResult.value;
45
+ const container = currentModel.declarations.find((decl) => decl.name === data.dataModelName && (0, ast_1.isDataModel)(decl));
39
46
  if (container && container.$cstNode) {
40
47
  // indent
41
48
  let indent = '\t';
@@ -45,9 +52,9 @@ class ZModelCodeActionProvider {
45
52
  }
46
53
  indent = indent.repeat(this.formatter.getIndent());
47
54
  let newText = '';
48
- if (astNode.type.array) {
55
+ if (fieldAstNode.type.array) {
49
56
  //post Post[]
50
- const idField = container.fields.find((f) => f.attributes.find((attr) => { var _a; return ((_a = attr.decl.ref) === null || _a === void 0 ? void 0 : _a.name) === '@id'; }));
57
+ const idField = container.$resolvedFields.find((f) => f.attributes.find((attr) => { var _a; return ((_a = attr.decl.ref) === null || _a === void 0 ? void 0 : _a.name) === '@id'; }));
51
58
  // if no id field, we can't generate reference
52
59
  if (!idField) {
53
60
  return undefined;
@@ -58,7 +65,7 @@ class ZModelCodeActionProvider {
58
65
  let referenceField = '';
59
66
  const idFieldName = idField.name;
60
67
  const referenceIdFieldName = fieldName + this.upperCaseFirstLetter(idFieldName);
61
- if (!oppositeModel.fields.find((f) => f.name === referenceIdFieldName)) {
68
+ if (!oppositeModel.$resolvedFields.find((f) => f.name === referenceIdFieldName)) {
62
69
  referenceField = '\n' + indent + `${referenceIdFieldName} ${idField.type.type}`;
63
70
  }
64
71
  newText =
@@ -73,6 +80,8 @@ class ZModelCodeActionProvider {
73
80
  const fieldName = this.lowerCaseFirstLetter(typeName);
74
81
  newText = '\n' + indent + `${fieldName} ${typeName}[]`;
75
82
  }
83
+ // the opposite model might be in the imported file
84
+ const targetDocument = (0, langium_1.getDocument)(oppositeModel);
76
85
  return {
77
86
  title: `Add opposite relation fields on ${oppositeModel.name}`,
78
87
  kind: vscode_languageserver_1.CodeActionKind.QuickFix,
@@ -80,7 +89,7 @@ class ZModelCodeActionProvider {
80
89
  isPreferred: false,
81
90
  edit: {
82
91
  changes: {
83
- [document.textDocument.uri]: [
92
+ [targetDocument.textDocument.uri]: [
84
93
  {
85
94
  range: {
86
95
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
@@ -1 +1 @@
1
- {"version":3,"file":"zmodel-code-action.js","sourceRoot":"","sources":["../../src/language-server/zmodel-code-action.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"zmodel-code-action.js","sourceRoot":"","sources":["../../src/language-server/zmodel-code-action.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { DefaultDefinitionProvider, LangiumDocuments, LangiumServices, LeafCstNode, MaybePromise } from 'langium';
2
+ import { DefinitionParams, LocationLink } from 'vscode-languageserver';
3
+ export declare class ZModelDefinitionProvider extends DefaultDefinitionProvider {
4
+ protected documents: LangiumDocuments;
5
+ constructor(services: LangiumServices);
6
+ protected collectLocationLinks(sourceCstNode: LeafCstNode, _params: DefinitionParams): MaybePromise<LocationLink[] | undefined>;
7
+ }
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ZModelDefinitionProvider = void 0;
4
+ const langium_1 = require("langium");
5
+ const vscode_languageserver_1 = require("vscode-languageserver");
6
+ const ast_utils_1 = require("../utils/ast-utils");
7
+ const ast_1 = require("@zenstackhq/language/ast");
8
+ class ZModelDefinitionProvider extends langium_1.DefaultDefinitionProvider {
9
+ constructor(services) {
10
+ super(services);
11
+ this.documents = services.shared.workspace.LangiumDocuments;
12
+ }
13
+ collectLocationLinks(sourceCstNode, _params) {
14
+ var _a, _b, _c, _d;
15
+ if ((0, ast_1.isModelImport)(sourceCstNode.element)) {
16
+ const importedModel = (0, ast_utils_1.resolveImport)(this.documents, sourceCstNode.element);
17
+ if (importedModel === null || importedModel === void 0 ? void 0 : importedModel.$document) {
18
+ const targetObject = importedModel;
19
+ const selectionRange = (_b = (_a = this.nameProvider.getNameNode(targetObject)) === null || _a === void 0 ? void 0 : _a.range) !== null && _b !== void 0 ? _b : vscode_languageserver_1.Range.create(0, 0, 0, 0);
20
+ const previewRange = (_d = (_c = targetObject.$cstNode) === null || _c === void 0 ? void 0 : _c.range) !== null && _d !== void 0 ? _d : vscode_languageserver_1.Range.create(0, 0, 0, 0);
21
+ return [
22
+ vscode_languageserver_1.LocationLink.create(importedModel.$document.uri.toString(), previewRange, selectionRange, sourceCstNode.range),
23
+ ];
24
+ }
25
+ return undefined;
26
+ }
27
+ return super.collectLocationLinks(sourceCstNode, _params);
28
+ }
29
+ }
30
+ exports.ZModelDefinitionProvider = ZModelDefinitionProvider;
31
+ //# sourceMappingURL=zmodel-definition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zmodel-definition.js","sourceRoot":"","sources":["../../src/language-server/zmodel-definition.ts"],"names":[],"mappings":";;;AAAA,qCAAkH;AAClH,iEAA8E;AAC9E,kDAAmD;AACnD,kDAAyD;AAEzD,MAAa,wBAAyB,SAAQ,mCAAyB;IAGnE,YAAY,QAAyB;QACjC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC;IAChE,CAAC;IACkB,oBAAoB,CACnC,aAA0B,EAC1B,OAAyB;;QAEzB,IAAI,IAAA,mBAAa,EAAC,aAAa,CAAC,OAAO,CAAC,EAAE;YACtC,MAAM,aAAa,GAAG,IAAA,yBAAa,EAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;YAC3E,IAAI,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,SAAS,EAAE;gBAC1B,MAAM,YAAY,GAAG,aAAa,CAAC;gBACnC,MAAM,cAAc,GAAG,MAAA,MAAA,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,YAAY,CAAC,0CAAE,KAAK,mCAAI,6BAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACtG,MAAM,YAAY,GAAG,MAAA,MAAA,YAAY,CAAC,QAAQ,0CAAE,KAAK,mCAAI,6BAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC9E,OAAO;oBACH,oCAAY,CAAC,MAAM,CACf,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,EACtC,YAAY,EACZ,cAAc,EACd,aAAa,CAAC,KAAK,CACtB;iBACJ,CAAC;aACL;YACD,OAAO,SAAS,CAAC;SACpB;QACD,OAAO,KAAK,CAAC,oBAAoB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAC9D,CAAC;CACJ;AA9BD,4DA8BC"}
@@ -24,6 +24,7 @@ export declare class ZModelLinker extends DefaultLinker {
24
24
  private resolveNull;
25
25
  private resolveAttributeArg;
26
26
  private findAttrParamForArg;
27
+ private resolveDataModel;
27
28
  private resolveDefault;
28
29
  private resolveToDeclaredType;
29
30
  private resolveToBuiltinTypeOrDecl;
@@ -13,6 +13,7 @@ exports.ZModelLinker = void 0;
13
13
  const ast_1 = require("@zenstackhq/language/ast");
14
14
  const langium_1 = require("langium");
15
15
  const vscode_jsonrpc_1 = require("vscode-jsonrpc");
16
+ const ast_utils_1 = require("../utils/ast-utils");
16
17
  const utils_1 = require("./utils");
17
18
  const utils_2 = require("./validator/utils");
18
19
  /**
@@ -25,7 +26,11 @@ class ZModelLinker extends langium_1.DefaultLinker {
25
26
  }
26
27
  //#region Reference linking
27
28
  link(document, cancelToken = vscode_jsonrpc_1.CancellationToken.None) {
29
+ var _a, _b;
28
30
  return __awaiter(this, void 0, void 0, function* () {
31
+ if (((_a = document.parseResult.lexerErrors) === null || _a === void 0 ? void 0 : _a.length) > 0 || ((_b = document.parseResult.parserErrors) === null || _b === void 0 ? void 0 : _b.length) > 0) {
32
+ return;
33
+ }
29
34
  for (const node of (0, langium_1.streamContents)(document.parseResult.value)) {
30
35
  yield (0, langium_1.interruptAndCheck)(cancelToken);
31
36
  this.resolve(node, document);
@@ -90,6 +95,9 @@ class ZModelLinker extends langium_1.DefaultLinker {
90
95
  case ast_1.AttributeArg:
91
96
  this.resolveAttributeArg(node, document, extraScopes);
92
97
  break;
98
+ case ast_1.DataModel:
99
+ this.resolveDataModel(node, document, extraScopes);
100
+ break;
93
101
  default:
94
102
  this.resolveDefault(node, document, extraScopes);
95
103
  break;
@@ -170,9 +178,11 @@ class ZModelLinker extends langium_1.DefaultLinker {
170
178
  if (funcDecl.name === 'auth' && (0, utils_1.isFromStdlib)(funcDecl)) {
171
179
  // auth() function is resolved to User model in the current document
172
180
  const model = (0, utils_1.getContainingModel)(node);
173
- const userModel = model === null || model === void 0 ? void 0 : model.declarations.find((d) => (0, ast_1.isDataModel)(d) && d.name === 'User');
174
- if (userModel) {
175
- node.$resolvedType = { decl: userModel, nullable: true };
181
+ if (model) {
182
+ const userModel = (0, ast_utils_1.getAllDeclarationsFromImports)(this.langiumDocuments(), model).find((d) => (0, ast_1.isDataModel)(d) && d.name === 'User');
183
+ if (userModel) {
184
+ node.$resolvedType = { decl: userModel, nullable: true };
185
+ }
176
186
  }
177
187
  }
178
188
  else if (funcDecl.name === 'future' && (0, utils_1.isFromStdlib)(funcDecl)) {
@@ -211,7 +221,7 @@ class ZModelLinker extends langium_1.DefaultLinker {
211
221
  const operandResolved = node.operand.$resolvedType;
212
222
  if (operandResolved && !operandResolved.array && (0, ast_1.isDataModel)(operandResolved.decl)) {
213
223
  const modelDecl = operandResolved.decl;
214
- const provider = (name) => modelDecl.fields.find((f) => f.name === name);
224
+ const provider = (name) => modelDecl.$resolvedFields.find((f) => f.name === name);
215
225
  extraScopes = [provider, ...extraScopes];
216
226
  }
217
227
  this.linkReference(node, 'member', document, extraScopes);
@@ -224,7 +234,7 @@ class ZModelLinker extends langium_1.DefaultLinker {
224
234
  const resolvedType = node.left.$resolvedType;
225
235
  if (resolvedType && (0, ast_1.isDataModel)(resolvedType.decl) && resolvedType.array) {
226
236
  const dataModelDecl = resolvedType.decl;
227
- const provider = (name) => dataModelDecl.fields.find((f) => f.name === name);
237
+ const provider = (name) => dataModelDecl.$resolvedFields.find((f) => f.name === name);
228
238
  extraScopes = [provider, ...extraScopes];
229
239
  this.resolve(node.right, document, extraScopes);
230
240
  this.resolveToBuiltinTypeOrDecl(node, 'Boolean');
@@ -277,7 +287,7 @@ class ZModelLinker extends langium_1.DefaultLinker {
277
287
  const transtiveDataModel = (_a = attrAppliedOn.type.reference) === null || _a === void 0 ? void 0 : _a.ref;
278
288
  if (transtiveDataModel) {
279
289
  // resolve references in the context of the transitive data model
280
- const scopeProvider = (name) => transtiveDataModel.fields.find((f) => f.name === name);
290
+ const scopeProvider = (name) => transtiveDataModel.$resolvedFields.find((f) => f.name === name);
281
291
  if ((0, ast_1.isArrayExpr)(node.value)) {
282
292
  node.value.items.forEach((item) => {
283
293
  if ((0, ast_1.isReferenceExpr)(item)) {
@@ -336,6 +346,13 @@ class ZModelLinker extends langium_1.DefaultLinker {
336
346
  return attr.params[index];
337
347
  }
338
348
  }
349
+ resolveDataModel(node, document, extraScopes) {
350
+ if (node.superTypes.length > 0) {
351
+ const providers = node.superTypes.map((superType) => (name) => { var _a; return (_a = superType.ref) === null || _a === void 0 ? void 0 : _a.fields.find((f) => f.name === name); });
352
+ extraScopes = [...providers, ...extraScopes];
353
+ }
354
+ return this.resolveDefault(node, document, extraScopes);
355
+ }
339
356
  resolveDefault(node, document, extraScopes) {
340
357
  for (const [property, value] of Object.entries(node)) {
341
358
  if (!property.startsWith('$')) {
@@ -354,6 +371,11 @@ class ZModelLinker extends langium_1.DefaultLinker {
354
371
  let nullable = false;
355
372
  if ((0, ast_1.isDataModelFieldType)(type)) {
356
373
  nullable = type.optional;
374
+ // referencing a field of 'Unsupported' type
375
+ if (type.unsupported) {
376
+ node.$resolvedType = { decl: 'Unsupported', array: type.array, nullable };
377
+ return;
378
+ }
357
379
  }
358
380
  if (type.type) {
359
381
  const mappedType = (0, utils_2.mapBuiltinTypeToExpressionType)(type.type);
@@ -1 +1 @@
1
- {"version":3,"file":"zmodel-linker.js","sourceRoot":"","sources":["../../src/language-server/zmodel-linker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"zmodel-linker.js","sourceRoot":"","sources":["../../src/language-server/zmodel-linker.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,7 @@ const zmodel_formatter_1 = require("./zmodel-formatter");
14
14
  const zmodel_linker_1 = require("./zmodel-linker");
15
15
  const zmodel_scope_1 = require("./zmodel-scope");
16
16
  const zmodel_workspace_manager_1 = __importDefault(require("./zmodel-workspace-manager"));
17
+ const zmodel_definition_1 = require("./zmodel-definition");
17
18
  /**
18
19
  * Dependency injection module that overrides Langium default services and contributes the
19
20
  * declared custom services. The Langium defaults can be partially specified to override only
@@ -23,14 +24,16 @@ exports.ZModelModule = {
23
24
  references: {
24
25
  ScopeComputation: (services) => new zmodel_scope_1.ZModelScopeComputation(services),
25
26
  Linker: (services) => new zmodel_linker_1.ZModelLinker(services),
27
+ ScopeProvider: (services) => new zmodel_scope_1.ZModelScopeProvider(services),
26
28
  },
27
29
  validation: {
28
30
  ValidationRegistry: (services) => new zmodel_validator_1.ZModelValidationRegistry(services),
29
- ZModelValidator: () => new zmodel_validator_1.ZModelValidator(),
31
+ ZModelValidator: (services) => new zmodel_validator_1.ZModelValidator(services),
30
32
  },
31
33
  lsp: {
32
34
  Formatter: () => new zmodel_formatter_1.ZModelFormatter(),
33
35
  CodeActionProvider: (services) => new zmodel_code_action_1.ZModelCodeActionProvider(services),
36
+ DefinitionProvider: (services) => new zmodel_definition_1.ZModelDefinitionProvider(services),
34
37
  },
35
38
  };
36
39
  // this duplicates createDefaultSharedModule except that a custom WorkspaceManager is used
@@ -1 +1 @@
1
- {"version":3,"file":"zmodel-module.js","sourceRoot":"","sources":["../../src/language-server/zmodel-module.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAiG;AACjG,qCAiBiB;AACjB,iEAAsD;AACtD,2FAAkE;AAClE,mEAAyF;AACzF,6DAAgE;AAChE,yDAAqD;AACrD,mDAA+C;AAC/C,iDAAwD;AACxD,0FAAgE;AAiBhE;;;;GAIG;AACU,QAAA,YAAY,GAAyE;IAC9F,UAAU,EAAE;QACR,gBAAgB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,qCAAsB,CAAC,QAAQ,CAAC;QACpE,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,4BAAY,CAAC,QAAQ,CAAC;KACnD;IACD,UAAU,EAAE;QACR,kBAAkB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,2CAAwB,CAAC,QAAQ,CAAC;QACxE,eAAe,EAAE,GAAG,EAAE,CAAC,IAAI,kCAAe,EAAE;KAC/C;IACD,GAAG,EAAE;QACD,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,kCAAe,EAAE;QACtC,kBAAkB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,6CAAwB,CAAC,QAAQ,CAAC;KAC3E;CACJ,CAAC;AAEF,0FAA0F;AAC1F,SAAgB,kBAAkB,CAC9B,OAAmC;IAEnC,OAAO;QACH,eAAe,EAAE,GAAG,EAAE,CAAC,IAAI,gCAAsB,EAAE;QACnD,GAAG,EAAE;YACD,UAAU,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU;YACpC,cAAc,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,+BAAqB,CAAC,QAAQ,CAAC;SACpE;QACD,SAAS,EAAE;YACP,gBAAgB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,iCAAuB,CAAC,QAAQ,CAAC;YACrE,sBAAsB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,uCAA6B,CAAC,QAAQ,CAAC;YACjF,eAAe,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,gCAAsB,CAAC,QAAQ,CAAC;YACnE,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,qCAAa,CAAC,iDAAY,CAAC;YACpD,YAAY,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,6BAAmB,CAAC,QAAQ,CAAC;YAC7D,gBAAgB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,kCAAsB,CAAC,QAAQ,CAAC;YACpE,kBAAkB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC,QAAQ,CAAC;YACtE,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,mBAAS,EAAE;YAChC,qBAAqB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,sCAA4B,CAAC,QAAQ,CAAC;SAClF;KACJ,CAAC;AACN,CAAC;AArBD,gDAqBC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAgB,oBAAoB,CAAC,OAAmC;IAIpE,MAAM,MAAM,GAAG,IAAA,gBAAM,EAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,oCAA2B,CAAC,CAAC;IAEhF,MAAM,MAAM,GAAG,IAAA,gBAAM,EAAC,IAAA,6BAAmB,EAAC,EAAE,MAAM,EAAE,CAAC,EAAE,8BAAqB,EAAE,oBAAY,CAAC,CAAC;IAC5F,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACxC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC9B,CAAC;AATD,oDASC"}
1
+ {"version":3,"file":"zmodel-module.js","sourceRoot":"","sources":["../../src/language-server/zmodel-module.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { AstNode, AstNodeDescription, DefaultScopeComputation, LangiumDocument, LangiumServices } from 'langium';
1
+ import { AstNode, AstNodeDescription, DefaultScopeComputation, DefaultScopeProvider, LangiumDocument, LangiumServices, PrecomputedScopes, ReferenceInfo, Scope } from 'langium';
2
2
  import { CancellationToken } from 'vscode-jsonrpc';
3
3
  /**
4
4
  * Custom Langium ScopeComputation implementation which adds enum fields into global scope
@@ -7,4 +7,10 @@ export declare class ZModelScopeComputation extends DefaultScopeComputation {
7
7
  private readonly services;
8
8
  constructor(services: LangiumServices);
9
9
  computeExports(document: LangiumDocument<AstNode>, cancelToken?: CancellationToken | undefined): Promise<AstNodeDescription[]>;
10
+ computeLocalScopes(document: LangiumDocument<AstNode>, cancelToken?: CancellationToken | undefined): Promise<PrecomputedScopes>;
11
+ private resolveBaseModels;
12
+ }
13
+ export declare class ZModelScopeProvider extends DefaultScopeProvider {
14
+ constructor(services: LangiumServices);
15
+ protected getGlobalScope(referenceType: string, context: ReferenceInfo): Scope;
10
16
  }