@lionweb/validation 0.6.1-beta.0 → 0.6.1-beta.1

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 (160) hide show
  1. package/dist/diff/LionWebJsonDiff.d.ts.map +1 -1
  2. package/dist/diff/LionWebJsonDiff.js +18 -23
  3. package/dist/diff/LionWebJsonDiff.js.map +1 -1
  4. package/dist/diff/changes/ContainmentChange.d.ts +2 -2
  5. package/dist/diff/changes/ContainmentChange.d.ts.map +1 -1
  6. package/dist/diff/changes/ContainmentChange.js.map +1 -1
  7. package/dist/diff/changes/ReferenceChange.d.ts +3 -3
  8. package/dist/diff/changes/ReferenceChange.d.ts.map +1 -1
  9. package/dist/diff/changes/ReferenceChange.js.map +1 -1
  10. package/dist/index.d.ts +2 -0
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +2 -0
  13. package/dist/index.js.map +1 -1
  14. package/dist/issues/LanguageIssues.d.ts +37 -13
  15. package/dist/issues/LanguageIssues.d.ts.map +1 -1
  16. package/dist/issues/LanguageIssues.js +49 -13
  17. package/dist/issues/LanguageIssues.js.map +1 -1
  18. package/dist/issues/ReferenceIssues.d.ts +6 -6
  19. package/dist/issues/ReferenceIssues.d.ts.map +1 -1
  20. package/dist/issues/ReferenceIssues.js +6 -6
  21. package/dist/issues/ReferenceIssues.js.map +1 -1
  22. package/dist/issues/SyntaxIssues.d.ts +9 -9
  23. package/dist/issues/SyntaxIssues.d.ts.map +1 -1
  24. package/dist/issues/SyntaxIssues.js +9 -9
  25. package/dist/issues/SyntaxIssues.js.map +1 -1
  26. package/dist/issues/ValidationIssue.d.ts +7 -1
  27. package/dist/issues/ValidationIssue.d.ts.map +1 -1
  28. package/dist/issues/ValidationIssue.js +9 -1
  29. package/dist/issues/ValidationIssue.js.map +1 -1
  30. package/dist/json/LionWebJson.d.ts +1 -14
  31. package/dist/json/LionWebJson.d.ts.map +1 -1
  32. package/dist/json/LionWebJson.js +4 -14
  33. package/dist/json/LionWebJson.js.map +1 -1
  34. package/dist/json/LionWebJsonChunkWrapper.d.ts +20 -8
  35. package/dist/json/LionWebJsonChunkWrapper.d.ts.map +1 -1
  36. package/dist/json/LionWebJsonChunkWrapper.js +50 -22
  37. package/dist/json/LionWebJsonChunkWrapper.js.map +1 -1
  38. package/dist/json/M3definitions.d.ts +176 -0
  39. package/dist/json/M3definitions.d.ts.map +1 -0
  40. package/dist/json/M3definitions.js +174 -0
  41. package/dist/json/M3definitions.js.map +1 -0
  42. package/dist/json/NodeUtils.d.ts +3 -9
  43. package/dist/json/NodeUtils.d.ts.map +1 -1
  44. package/dist/json/NodeUtils.js +18 -31
  45. package/dist/json/NodeUtils.js.map +1 -1
  46. package/dist/json/index.d.ts +1 -2
  47. package/dist/json/index.d.ts.map +1 -1
  48. package/dist/json/index.js +1 -2
  49. package/dist/json/index.js.map +1 -1
  50. package/dist/languages/CompositeLionWebLanguageWrapper.d.ts +24 -0
  51. package/dist/languages/CompositeLionWebLanguageWrapper.d.ts.map +1 -0
  52. package/dist/languages/CompositeLionWebLanguageWrapper.js +56 -0
  53. package/dist/languages/CompositeLionWebLanguageWrapper.js.map +1 -0
  54. package/dist/languages/LanguageRegistry.d.ts +19 -0
  55. package/dist/languages/LanguageRegistry.d.ts.map +1 -0
  56. package/dist/languages/LanguageRegistry.js +37 -0
  57. package/dist/languages/LanguageRegistry.js.map +1 -0
  58. package/dist/languages/LanguageUtils.d.ts +35 -0
  59. package/dist/languages/LanguageUtils.d.ts.map +1 -0
  60. package/dist/languages/LanguageUtils.js +52 -0
  61. package/dist/languages/LanguageUtils.js.map +1 -0
  62. package/dist/languages/LionCore-M3.json +2356 -0
  63. package/{src/json/std-builtins-copy.json → dist/languages/LionCore-builtins.json} +57 -52
  64. package/dist/languages/LionWebLanguageWrapper.d.ts +31 -0
  65. package/dist/languages/LionWebLanguageWrapper.d.ts.map +1 -0
  66. package/dist/languages/LionWebLanguageWrapper.js +69 -0
  67. package/dist/languages/LionWebLanguageWrapper.js.map +1 -0
  68. package/dist/languages/MetaPointerMap.d.ts +11 -0
  69. package/dist/languages/MetaPointerMap.d.ts.map +1 -0
  70. package/dist/languages/MetaPointerMap.js +39 -0
  71. package/dist/languages/MetaPointerMap.js.map +1 -0
  72. package/dist/languages/index.d.ts +3 -0
  73. package/dist/languages/index.d.ts.map +1 -0
  74. package/dist/languages/index.js +3 -0
  75. package/dist/languages/index.js.map +1 -0
  76. package/dist/runners/FileUtils.d.ts +4 -4
  77. package/dist/runners/FileUtils.d.ts.map +1 -1
  78. package/dist/runners/FileUtils.js +8 -32
  79. package/dist/runners/FileUtils.js.map +1 -1
  80. package/dist/runners/RunCheckFolder.js +3 -1
  81. package/dist/runners/RunCheckFolder.js.map +1 -1
  82. package/dist/runners/RunCheckFolderWithLanguage.js +7 -3
  83. package/dist/runners/RunCheckFolderWithLanguage.js.map +1 -1
  84. package/dist/runners/RunCheckOneFile.js +3 -1
  85. package/dist/runners/RunCheckOneFile.js.map +1 -1
  86. package/dist/runners/RunCheckOneFileWithLanguage.js +12 -3
  87. package/dist/runners/RunCheckOneFileWithLanguage.js.map +1 -1
  88. package/dist/runners/Utils.d.ts.map +1 -1
  89. package/dist/runners/Utils.js +0 -1
  90. package/dist/runners/Utils.js.map +1 -1
  91. package/dist/util/graphs.d.ts +18 -0
  92. package/dist/util/graphs.d.ts.map +1 -0
  93. package/dist/util/graphs.js +27 -0
  94. package/dist/util/graphs.js.map +1 -0
  95. package/dist/validators/LionWebLanguageReferenceValidator.d.ts +5 -4
  96. package/dist/validators/LionWebLanguageReferenceValidator.d.ts.map +1 -1
  97. package/dist/validators/LionWebLanguageReferenceValidator.js +96 -34
  98. package/dist/validators/LionWebLanguageReferenceValidator.js.map +1 -1
  99. package/dist/validators/LionWebLanguageValidator.d.ts +15 -3
  100. package/dist/validators/LionWebLanguageValidator.d.ts.map +1 -1
  101. package/dist/validators/LionWebLanguageValidator.js +54 -21
  102. package/dist/validators/LionWebLanguageValidator.js.map +1 -1
  103. package/dist/validators/LionWebReferenceValidator.d.ts.map +1 -1
  104. package/dist/validators/LionWebReferenceValidator.js +0 -5
  105. package/dist/validators/LionWebReferenceValidator.js.map +1 -1
  106. package/dist/validators/LionWebSyntaxValidator.d.ts +1 -1
  107. package/dist/validators/LionWebSyntaxValidator.js +1 -1
  108. package/dist/validators/LionWebValidator.d.ts +3 -3
  109. package/dist/validators/LionWebValidator.d.ts.map +1 -1
  110. package/dist/validators/LionWebValidator.js +5 -8
  111. package/dist/validators/LionWebValidator.js.map +1 -1
  112. package/package.json +5 -5
  113. package/src/diff/LionWebJsonDiff.ts +18 -23
  114. package/src/diff/changes/ContainmentChange.ts +1 -1
  115. package/src/diff/changes/ReferenceChange.ts +2 -2
  116. package/src/index.ts +2 -0
  117. package/src/issues/LanguageIssues.ts +49 -14
  118. package/src/issues/ReferenceIssues.ts +6 -6
  119. package/src/issues/SyntaxIssues.ts +9 -9
  120. package/src/issues/ValidationIssue.ts +12 -2
  121. package/src/json/LionCore_M3.json +2320 -0
  122. package/src/json/LionCore_builtins.json +231 -0
  123. package/src/json/LionWebJson.ts +5 -14
  124. package/src/json/LionWebJsonChunkWrapper.ts +59 -30
  125. package/src/json/M3definitions.ts +177 -0
  126. package/src/json/NodeUtils.ts +21 -39
  127. package/src/json/index.ts +1 -2
  128. package/src/languages/CompositeLionWebLanguageWrapper.ts +57 -0
  129. package/src/languages/LanguageRegistry.ts +44 -0
  130. package/src/languages/LanguageUtils.ts +61 -0
  131. package/src/languages/LionCore-M3.json +2356 -0
  132. package/src/languages/LionCore-builtins.json +372 -0
  133. package/src/languages/LionWebLanguageWrapper.ts +95 -0
  134. package/src/languages/MetaPointerMap.ts +40 -0
  135. package/src/languages/index.ts +2 -0
  136. package/src/runners/FileUtils.ts +9 -36
  137. package/src/runners/RunCheckFolder.ts +3 -1
  138. package/src/runners/RunCheckFolderWithLanguage.ts +7 -7
  139. package/src/runners/RunCheckOneFile.ts +3 -1
  140. package/src/runners/RunCheckOneFileWithLanguage.ts +12 -7
  141. package/src/runners/Utils.ts +0 -1
  142. package/src/tmp.json +574 -0
  143. package/src/tryout.js +21 -0
  144. package/src/util/graphs.ts +36 -0
  145. package/src/validators/LionWebLanguageReferenceValidator.ts +110 -48
  146. package/src/validators/LionWebLanguageValidator.ts +62 -21
  147. package/src/validators/LionWebReferenceValidator.ts +0 -5
  148. package/src/validators/LionWebSyntaxValidator.ts +2 -2
  149. package/src/validators/LionWebValidator.ts +5 -9
  150. package/structure.puml +25 -0
  151. package/dist/json/LanguageUtils.d.ts +0 -9
  152. package/dist/json/LanguageUtils.d.ts.map +0 -1
  153. package/dist/json/LanguageUtils.js +0 -30
  154. package/dist/json/LanguageUtils.js.map +0 -1
  155. package/dist/json/LionWebLanguageDefinition.d.ts +0 -48
  156. package/dist/json/LionWebLanguageDefinition.d.ts.map +0 -1
  157. package/dist/json/LionWebLanguageDefinition.js +0 -126
  158. package/dist/json/LionWebLanguageDefinition.js.map +0 -1
  159. package/src/json/LanguageUtils.ts +0 -52
  160. package/src/json/LionWebLanguageDefinition.ts +0 -144
@@ -1,35 +1,68 @@
1
- import { IncorrectLionCoreVersion_Issue, NotLionCoreLanguageKey_Issue, NumberOfLanguagesUsed_Issue } from "../issues/LanguageIssues.js";
1
+ import { GenericIssue } from "../issues/index.js";
2
+ import { MissingM3Language_Issue } from "../issues/LanguageIssues.js";
3
+ import { isEqualMetaPointer, MetaPointers } from "../json/index.js";
2
4
  import { JsonContext } from "../json/JsonContext.js";
5
+ import { isLionWebM3Language } from "../json/LionWebJson.js";
3
6
  import { LionWebJsonChunkWrapper } from "../json/LionWebJsonChunkWrapper.js";
4
- import { ValidationResult } from "./ValidationResult.js";
7
+ import { isConcept } from "../languages/index.js";
8
+ /**
9
+ * Validates whether a chunk is a valid language definition
10
+ */
5
11
  export class LionWebLanguageValidator {
6
- constructor() {
7
- this.validationResult = new ValidationResult();
12
+ // availableLanguages: LionWebLanguageDefinition[] = []
13
+ constructor(validationResult, registry) {
14
+ this.registry = registry;
15
+ this.validationResult = validationResult;
16
+ this.chunkWrapper = undefined;
8
17
  }
9
18
  /**
10
- * check JSON as in `check`, but also check whether the metamoddel is a Language.
19
+ * Check whether the metamodel is a Language.
20
+ * Assumption is that _chunk_ is already validated as a correct :LionWebJsonChunk
11
21
  * @param obj
12
22
  */
13
- checkLanguage(chunk) {
14
- // TODO Vaalidate syntax first via LionWebSyntaxValidator !!!
15
- if (chunk.languages.length !== 1) {
16
- // Check whether the LionCore M3 is the only used language, then this is a language model.
17
- this.validationResult.issue(new NumberOfLanguagesUsed_Issue(new JsonContext(null, ["languages"]), chunk.languages.length));
18
- return;
19
- }
20
- const usedLanguage = chunk.languages[0];
21
- if (usedLanguage.key !== "LionCore-M3") {
22
- this.validationResult.issue(new NotLionCoreLanguageKey_Issue(new JsonContext(null, ["languages", 0]), usedLanguage.key));
23
+ validateLanguage(chunk) {
24
+ this.chunkWrapper = new LionWebJsonChunkWrapper(chunk);
25
+ const usedM3Language = chunk.languages.find(lang => isLionWebM3Language(lang));
26
+ if (usedM3Language === undefined) {
27
+ this.validationResult.issue(new MissingM3Language_Issue(new JsonContext(null, ["languages"])));
23
28
  }
24
- if (usedLanguage.version !== "1") {
25
- this.validationResult.issue(new IncorrectLionCoreVersion_Issue(new JsonContext(null, ["languages", 0]), usedLanguage.version));
26
- }
27
- const chunkWrapper = new LionWebJsonChunkWrapper(chunk);
28
- const languageNodes = chunkWrapper.findNodesOfConcept("Language");
29
+ const languageNodes = this.chunkWrapper.findNodesOfClassifier(MetaPointers.Language);
29
30
  if (languageNodes.length !== 1) {
30
31
  // TODO Better error handling.
31
- console.error("Expected exactly one Language node, found " + languageNodes.length + " => " + JSON.stringify(languageNodes));
32
+ console.error("Error: xpected exactly one Language node, found " + languageNodes.length + " => " + JSON.stringify(languageNodes));
33
+ }
34
+ chunk.nodes.forEach((node, index) => {
35
+ if (!isConcept(node)) {
36
+ this.validationResult.issue(new GenericIssue(new JsonContext(null, ["nodes", index]), `node ${node.id} is not a concept`));
37
+ }
38
+ else {
39
+ this.validateConcept(node);
40
+ }
41
+ });
42
+ }
43
+ validateConcept(node) {
44
+ node.properties.forEach(prop => {
45
+ const properties = this.chunkWrapper?.findNodesOfClassifier(MetaPointers.Property);
46
+ const matchedProperty = properties?.find(p => isEqualMetaPointer(p.classifier, prop.property));
47
+ // DUMMY
48
+ return matchedProperty !== undefined;
49
+ });
50
+ }
51
+ validateNode(node) {
52
+ const classifier = this.registry.getNodeByMetaPointer(node.classifier);
53
+ if (classifier === undefined) {
54
+ this.validationResult.issue(new GenericIssue(new JsonContext(null, ["nodes"]), `Classifier ${node.classifier.key} not found for node ${node.id}`));
55
+ return;
32
56
  }
57
+ this.validateProperties(node, classifier);
58
+ }
59
+ validateProperties(node, classifier) {
60
+ node.properties.forEach(actualProp => {
61
+ const propClassifier = this.registry.getNodeByMetaPointer(actualProp.property);
62
+ if (propClassifier === undefined) {
63
+ this.validationResult.issue(new GenericIssue(new JsonContext(null, ["nodes", "properties"]), `Property ${actualProp.property.key} not found for classifier ${classifier.id}`));
64
+ }
65
+ });
33
66
  }
34
67
  }
35
68
  //# sourceMappingURL=LionWebLanguageValidator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LionWebLanguageValidator.js","sourceRoot":"","sources":["../../src/validators/LionWebLanguageValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,4BAA4B,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAA;AACvI,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAEpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAA;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAExD,MAAM,OAAO,wBAAwB;IAGjC;QACI,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,EAAE,CAAA;IAClD,CAAC;IAED;;;OAGG;IACH,aAAa,CAAC,KAAuB;QACjC,6DAA6D;QAC7D,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,0FAA0F;YAC1F,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,2BAA2B,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA;YAC1H,OAAM;QACV,CAAC;QACD,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;QACvC,IAAI,YAAY,CAAC,GAAG,KAAK,aAAa,EAAE,CAAC;YACrC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,4BAA4B,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAA;QAC5H,CAAC;QACD,IAAI,YAAY,CAAC,OAAO,KAAK,GAAG,EAAE,CAAC;YAC/B,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,8BAA8B,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAA;QAClI,CAAC;QACD,MAAM,YAAY,GAAG,IAAI,uBAAuB,CAAC,KAAK,CAAC,CAAA;QACvD,MAAM,aAAa,GAAG,YAAY,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAA;QACjE,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,8BAA8B;YAC9B,OAAO,CAAC,KAAK,CAAC,4CAA4C,GAAG,aAAa,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAA;QAC/H,CAAC;IACL,CAAC;CACJ"}
1
+ {"version":3,"file":"LionWebLanguageValidator.js","sourceRoot":"","sources":["../../src/validators/LionWebLanguageValidator.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"LionWebReferenceValidator.d.ts","sourceRoot":"","sources":["../../src/validators/LionWebReferenceValidator.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAEpD,OAAO,EAGH,gBAAgB,EAChB,sBAAsB,EACtB,eAAe,EACf,kBAAkB,EACrB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAA;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAExD;;;GAGG;AACH,qBAAa,yBAAyB;IAClC,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAqC;IAC7E,oBAAoB,EAAE,oBAAoB,CAAA;gBAE9B,gBAAgB,EAAE,gBAAgB;IAK9C,eAAe,CAAC,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI;IAW9D,QAAQ,CAAC,GAAG,EAAE,uBAAuB,GAAG,IAAI;IAqD5C;;;;;OAKG;IACH,yBAAyB,CAAC,KAAK,EAAE,uBAAuB,EAAE,WAAW,EAAE,sBAAsB,EAAE,OAAO,EAAE,WAAW;IAenH;;;;OAIG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,WAAW;IActD;;;;;OAKG;IACH,0BAA0B,CAAC,aAAa,EAAE,kBAAkB,EAAE,EAAE,OAAO,EAAE,WAAW;IAiBpF;;;OAGG;IACH,mBAAmB,CAAC,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,WAAW;IAsB/D,qBAAqB,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,eAAe,GAAG,SAAS,EAAE,KAAK,EAAE,eAAe;IAevG,iCAAiC,CAAC,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,WAAW;CAmChF"}
1
+ {"version":3,"file":"LionWebReferenceValidator.d.ts","sourceRoot":"","sources":["../../src/validators/LionWebReferenceValidator.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAEpD,OAAO,EAEH,gBAAgB,EAChB,sBAAsB,EACtB,eAAe,EACf,kBAAkB,EACrB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAA;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAExD;;;GAGG;AACH,qBAAa,yBAAyB;IAClC,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAqC;IAC7E,oBAAoB,EAAE,oBAAoB,CAAA;gBAE9B,gBAAgB,EAAE,gBAAgB;IAK9C,eAAe,CAAC,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI;IAW9D,QAAQ,CAAC,GAAG,EAAE,uBAAuB,GAAG,IAAI;IAqD5C;;;;;OAKG;IACH,yBAAyB,CAAC,KAAK,EAAE,uBAAuB,EAAE,WAAW,EAAE,sBAAsB,EAAE,OAAO,EAAE,WAAW;IAWnH;;;;OAIG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,WAAW;IActD;;;;;OAKG;IACH,0BAA0B,CAAC,aAAa,EAAE,kBAAkB,EAAE,EAAE,OAAO,EAAE,WAAW;IAiBpF;;;OAGG;IACH,mBAAmB,CAAC,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,WAAW;IAsB/D,qBAAqB,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,eAAe,GAAG,SAAS,EAAE,KAAK,EAAE,eAAe;IAevG,iCAAiC,CAAC,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,WAAW;CAmChF"}
@@ -1,7 +1,6 @@
1
1
  import { Duplicates_Issue, Reference_ChildMissingInParent_Issue, Reference_CirculairParent_Issue, Reference_DuplicateNodeId_Issue, Reference_LanguageUnknown_Issue, Reference_ParentMissingInChild_Issue, } from "../issues/ReferenceIssues.js";
2
2
  import { JsonContext } from "../json/JsonContext.js";
3
3
  import { ChunkUtils } from "../json/ChunkUtils.js";
4
- import { LION_CORE_BUILTINS_KEY, } from "../json/LionWebJson.js";
5
4
  import { SimpleFieldValidator } from "./SimpleFieldValidator.js";
6
5
  /**
7
6
  * Assuming that the syntax is correct, check whether all LionWeb references are correct,
@@ -83,10 +82,6 @@ export class LionWebReferenceValidator {
83
82
  */
84
83
  validateLanguageReference(chunk, metaPointer, context) {
85
84
  const lang = ChunkUtils.findLwUsedLanguageWithVersion(chunk.jsonChunk, metaPointer.language, metaPointer.version);
86
- if (metaPointer.language === LION_CORE_BUILTINS_KEY) {
87
- // Ok, builtin
88
- return;
89
- }
90
85
  if (lang === undefined || lang === null) {
91
86
  this.validationResult.issue(new Reference_LanguageUnknown_Issue(context, metaPointer));
92
87
  }
@@ -1 +1 @@
1
- {"version":3,"file":"LionWebReferenceValidator.js","sourceRoot":"","sources":["../../src/validators/LionWebReferenceValidator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LionWebReferenceValidator.js","sourceRoot":"","sources":["../../src/validators/LionWebReferenceValidator.ts"],"names":[],"mappings":"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"}
@@ -28,7 +28,7 @@ export type PropertyDefinition = {
28
28
  validateValue?: ValidatorFunction;
29
29
  };
30
30
  /**
31
- * LionWebCheck can chack whether objects are LionWeb JSON objects.
31
+ * LionWebCheck can check whether objects are structurally LionWeb JSON objects.
32
32
  * The check can be on a single object, or recursively on an object and its children.
33
33
  */
34
34
  export declare class LionWebSyntaxValidator {
@@ -6,7 +6,7 @@ import { ValidationResult } from "./ValidationResult.js";
6
6
  const MAY_BE_NULL = true;
7
7
  const NOT_NULL = false;
8
8
  /**
9
- * LionWebCheck can chack whether objects are LionWeb JSON objects.
9
+ * LionWebCheck can check whether objects are structurally LionWeb JSON objects.
10
10
  * The check can be on a single object, or recursively on an object and its children.
11
11
  */
12
12
  export class LionWebSyntaxValidator {
@@ -1,4 +1,4 @@
1
- import { LionWebLanguageDefinition } from "../json/LionWebLanguageDefinition.js";
1
+ import { LanguageRegistry } from "../languages/index.js";
2
2
  import { LionWebReferenceValidator } from "./LionWebReferenceValidator.js";
3
3
  import { LionWebSyntaxValidator } from "./LionWebSyntaxValidator.js";
4
4
  import { ValidationResult } from "./ValidationResult.js";
@@ -7,15 +7,15 @@ import { ValidationResult } from "./ValidationResult.js";
7
7
  * Will stop when one validator fails.
8
8
  */
9
9
  export declare class LionWebValidator {
10
+ private registry;
10
11
  object: unknown;
11
- language: LionWebLanguageDefinition | null;
12
12
  chunk: unknown;
13
13
  validationResult: ValidationResult;
14
14
  syntaxValidator: LionWebSyntaxValidator;
15
15
  referenceValidator: LionWebReferenceValidator;
16
16
  syntaxCorrect: boolean;
17
17
  referencesCorrect: boolean;
18
- constructor(json: unknown, lang: LionWebLanguageDefinition | null);
18
+ constructor(json: unknown, registry: LanguageRegistry);
19
19
  validateAll(): void;
20
20
  validateSyntax(): void;
21
21
  validateReferences(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"LionWebValidator.d.ts","sourceRoot":"","sources":["../../src/validators/LionWebValidator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAA;AAEhF,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAA;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAExD;;;GAGG;AACH,qBAAa,gBAAgB;IACzB,MAAM,EAAE,OAAO,CAAA;IACf,QAAQ,EAAE,yBAAyB,GAAG,IAAI,CAAO;IAEjD,KAAK,EAAE,OAAO,CAAA;IACd,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,eAAe,EAAE,sBAAsB,CAAA;IACvC,kBAAkB,EAAE,yBAAyB,CAAA;IAC7C,aAAa,EAAE,OAAO,CAAQ;IAC9B,iBAAiB,EAAE,OAAO,CAAQ;gBAEtB,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,yBAAyB,GAAG,IAAI;IAQjE,WAAW;IAMX,cAAc;IASd,kBAAkB,IAAI,IAAI;IAU1B,mBAAmB,IAAI,IAAI;CAmB9B"}
1
+ {"version":3,"file":"LionWebValidator.d.ts","sourceRoot":"","sources":["../../src/validators/LionWebValidator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAExD,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAA;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAExD;;;GAGG;AACH,qBAAa,gBAAgB;IAUE,OAAO,CAAC,QAAQ;IAT3C,MAAM,EAAE,OAAO,CAAA;IAEf,KAAK,EAAE,OAAO,CAAA;IACd,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,eAAe,EAAE,sBAAsB,CAAA;IACvC,kBAAkB,EAAE,yBAAyB,CAAA;IAC7C,aAAa,EAAE,OAAO,CAAQ;IAC9B,iBAAiB,EAAE,OAAO,CAAQ;gBAEtB,IAAI,EAAE,OAAO,EAAU,QAAQ,EAAE,gBAAgB;IAO7D,WAAW;IAMX,cAAc;IASd,kBAAkB,IAAI,IAAI;IAU1B,mBAAmB,IAAI,IAAI;CAiB9B"}
@@ -8,12 +8,11 @@ import { ValidationResult } from "./ValidationResult.js";
8
8
  * Will stop when one validator fails.
9
9
  */
10
10
  export class LionWebValidator {
11
- constructor(json, lang) {
12
- this.language = null;
11
+ constructor(json, registry) {
12
+ this.registry = registry;
13
13
  this.syntaxCorrect = false;
14
14
  this.referencesCorrect = false;
15
15
  this.object = json;
16
- this.language = lang;
17
16
  this.validationResult = new ValidationResult();
18
17
  this.syntaxValidator = new LionWebSyntaxValidator(this.validationResult);
19
18
  this.referenceValidator = new LionWebReferenceValidator(this.validationResult);
@@ -49,11 +48,9 @@ export class LionWebValidator {
49
48
  // console.log("validateForLanguage not executed because there are reference errors.")
50
49
  return;
51
50
  }
52
- if (this.language !== null && this.language !== undefined) {
53
- const languageReferenceValidator = new LionWebLanguageReferenceValidator(this.validationResult, this.language);
54
- // when syntax is correct we know the chunk is actually a chunk!
55
- languageReferenceValidator.validate(this.chunk);
56
- }
51
+ const languageReferenceValidator = new LionWebLanguageReferenceValidator(this.validationResult, this.registry);
52
+ // when syntax is correct we know the chunk is actually a chunk!
53
+ languageReferenceValidator.validate(this.chunk);
57
54
  }
58
55
  }
59
56
  //# sourceMappingURL=LionWebValidator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LionWebValidator.js","sourceRoot":"","sources":["../../src/validators/LionWebValidator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAA;AAE5E,OAAO,EAAE,iCAAiC,EAAE,MAAM,wCAAwC,CAAA;AAC1F,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAA;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAExD;;;GAGG;AACH,MAAM,OAAO,gBAAgB;IAWzB,YAAY,IAAa,EAAE,IAAsC;QATjE,aAAQ,GAAqC,IAAI,CAAA;QAMjD,kBAAa,GAAY,KAAK,CAAA;QAC9B,sBAAiB,GAAY,KAAK,CAAA;QAG9B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;QAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;QACpB,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,EAAE,CAAA;QAC9C,IAAI,CAAC,eAAe,GAAG,IAAI,sBAAsB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;QACxE,IAAI,CAAC,kBAAkB,GAAG,IAAI,yBAAyB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;IAClF,CAAC;IAED,WAAW;QACP,IAAI,CAAC,cAAc,EAAE,CAAA;QACrB,IAAI,CAAC,kBAAkB,EAAE,CAAA;QACzB,IAAI,CAAC,mBAAmB,EAAE,CAAA;IAC9B,CAAC;IAED,cAAc;QACV,IAAI,CAAC,eAAe,CAAC,SAAS,GAAG,IAAI,CAAA;QACrC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC1C,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAA;QACvD,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,KAAK,GAAG,IAAI,uBAAuB,CAAC,IAAI,CAAC,MAA0B,CAAC,CAAA;QAC7E,CAAC;IACL,CAAC;IAED,kBAAkB;QACd,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACtB,kFAAkF;YAClF,OAAM;QACV,CAAC;QACD,gEAAgE;QAChE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAgC,CAAC,CAAA;QACvE,IAAI,CAAC,iBAAiB,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAA;IAC/D,CAAC;IAED,mBAAmB;QACf,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACtB,mFAAmF;YACnF,OAAM;QACV,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC1B,sFAAsF;YACtF,OAAM;QACV,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACxD,MAAM,0BAA0B,GAAG,IAAI,iCAAiC,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;YAC9G,gEAAgE;YAChE,0BAA0B,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAgC,CAAC,CAAA;QAC9E,CAAC;IACL,CAAC;CAKJ"}
1
+ {"version":3,"file":"LionWebValidator.js","sourceRoot":"","sources":["../../src/validators/LionWebValidator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAA;AAE5E,OAAO,EAAE,iCAAiC,EAAE,MAAM,wCAAwC,CAAA;AAC1F,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAA;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAExD;;;GAGG;AACH,MAAM,OAAO,gBAAgB;IAUzB,YAAY,IAAa,EAAU,QAA0B;QAA1B,aAAQ,GAAR,QAAQ,CAAkB;QAH7D,kBAAa,GAAY,KAAK,CAAA;QAC9B,sBAAiB,GAAY,KAAK,CAAA;QAG9B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;QAClB,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,EAAE,CAAA;QAC9C,IAAI,CAAC,eAAe,GAAG,IAAI,sBAAsB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;QACxE,IAAI,CAAC,kBAAkB,GAAG,IAAI,yBAAyB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;IAClF,CAAC;IAED,WAAW;QACP,IAAI,CAAC,cAAc,EAAE,CAAA;QACrB,IAAI,CAAC,kBAAkB,EAAE,CAAA;QACzB,IAAI,CAAC,mBAAmB,EAAE,CAAA;IAC9B,CAAC;IAED,cAAc;QACV,IAAI,CAAC,eAAe,CAAC,SAAS,GAAG,IAAI,CAAA;QACrC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC1C,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAA;QACvD,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,KAAK,GAAG,IAAI,uBAAuB,CAAC,IAAI,CAAC,MAA0B,CAAC,CAAA;QAC7E,CAAC;IACL,CAAC;IAED,kBAAkB;QACd,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACtB,kFAAkF;YAClF,OAAM;QACV,CAAC;QACD,gEAAgE;QAChE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAgC,CAAC,CAAA;QACvE,IAAI,CAAC,iBAAiB,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAA;IAC/D,CAAC;IAED,mBAAmB;QACf,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACtB,mFAAmF;YACnF,OAAM;QACV,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC1B,sFAAsF;YACtF,OAAM;QACV,CAAC;QACD,MAAM,0BAA0B,GAAG,IAAI,iCAAiC,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC9G,gEAAgE;QAChE,0BAA0B,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAgC,CAAC,CAAA;IAC9E,CAAC;CAKJ"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lionweb/validation",
3
- "version": "0.6.1-beta.0",
3
+ "version": "0.6.1-beta.1",
4
4
  "license": "Apache 2.0",
5
5
  "description": "LionWeb Serialization validation",
6
6
  "author": "jos.warmer@openmodeling.nl",
@@ -19,10 +19,10 @@
19
19
  "lint": "eslint src",
20
20
  "test-here": "cd ../test && find dist/validation -type d | sed '1!G;h;$!d' | xargs npx mocha",
21
21
  "release": "npm publish",
22
- "testValid": "node dist/runners/RunCheckFolder.js ../../../lionweb-integration-testing/testset/valid",
23
- "testInvalid": "node dist/runners/RunCheckFolder.js ../../../lionweb-integration-testing/testset/invalid",
24
- "testInvalidWithLanguage": "node dist/runners/RunCheckFolderWithLanguage.js ../../../lionweb-integration-testing/testset/withLanguage/invalid/ ../../../lionweb-integration-testing/testset/withLanguage/myLang.language.json",
25
- "testValidWithLanguage": "node dist/runners/RunCheckFolderWithLanguage.js ../../../lionweb-integration-testing/testset/withLanguage/valid/ ../../../lionweb-integration-testing/testset/withLanguage/myLang.language.json",
22
+ "testValid": "node dist/runners/RunCheckFolder.js ../test/testset/valid",
23
+ "testInvalid": "node dist/runners/RunCheckFolder.js ../test/testset/invalid",
24
+ "testInvalidWithLanguage": "node dist/runners/RunCheckFolderWithLanguage.js ../test/testset/withLanguage/invalid/ ../test/testset/withLanguage/myLang.language.json",
25
+ "testValidWithLanguage": "node dist/runners/RunCheckFolderWithLanguage.js ../test/testset/withLanguage/valid/ ../test/testset/withLanguage/myLang.language.json",
26
26
  "publish-local": "npm publish --registry http://localhost:4873",
27
27
  "unpublish-local": "npm unpublish --force --registry http://localhost:4873",
28
28
  "republish-local": "yarn unpublish-local && yarn publish-local"
@@ -50,9 +50,8 @@ export class LionWebJsonDiff {
50
50
  }
51
51
  // Find diff between previous and next properties
52
52
  beforeNode.properties.forEach((beforeProperty: LionWebJsonProperty, index: number) => {
53
- const key = beforeProperty.property.key
54
- const afterProperty = NodeUtils.findLwProperty(afterNode, key)
55
- if (afterProperty === null) {
53
+ const afterProperty = NodeUtils.findProperty(afterNode, beforeProperty.property)
54
+ if (afterProperty === undefined) {
56
55
  this.change(
57
56
  new PropertyValueChanged(
58
57
  ctx.concat("properties", index),
@@ -68,9 +67,8 @@ export class LionWebJsonDiff {
68
67
  }
69
68
  })
70
69
  afterNode.properties.forEach((afterProperty: LionWebJsonProperty, index: number) => {
71
- const key = afterProperty.property.key
72
- const beforeProperty = NodeUtils.findLwProperty(beforeNode, key)
73
- if (beforeProperty === null) {
70
+ const beforeProperty = NodeUtils.findProperty(beforeNode, afterProperty.property)
71
+ if (beforeProperty === undefined) {
74
72
  this.change(
75
73
  new PropertyValueChanged(
76
74
  ctx.concat("properties", index),
@@ -86,8 +84,8 @@ export class LionWebJsonDiff {
86
84
  })
87
85
  beforeNode.containments.forEach((beforeContainment: LionWebJsonContainment, index: number) => {
88
86
  const beforeKey = beforeContainment.containment.key
89
- const afterContainment = NodeUtils.findLwChild(afterNode, beforeKey)
90
- if (afterContainment === null) {
87
+ const afterContainment = NodeUtils.findChild(afterNode, beforeKey)
88
+ if (afterContainment === undefined) {
91
89
  // NB No containment is considered equivalent to a containment with empty _children_
92
90
  if (beforeContainment.children.length !== 0) {
93
91
  beforeContainment.children.forEach(childId => {
@@ -100,8 +98,8 @@ export class LionWebJsonDiff {
100
98
  })
101
99
  afterNode.containments.forEach((afterContainment: LionWebJsonContainment, index: number) => {
102
100
  const afterKey = afterContainment.containment.key
103
- const beforeContainment = NodeUtils.findLwChild(beforeNode, afterKey)
104
- if (beforeContainment === null) {
101
+ const beforeContainment = NodeUtils.findChild(beforeNode, afterKey)
102
+ if (beforeContainment === undefined) {
105
103
  if (afterContainment.children.length !== 0) {
106
104
  afterContainment.children.forEach(childId => {
107
105
  this.change(new ChildAdded(ctx.concat("containments", index), afterNode, afterContainment.containment, afterContainment, childId, Missing.MissingBefore))
@@ -111,9 +109,8 @@ export class LionWebJsonDiff {
111
109
  // No else, has already been done
112
110
  })
113
111
  beforeNode.references.forEach((beforeReference: LionWebJsonReference, index: number) => {
114
- const key = beforeReference.reference.key
115
- const afterReference = NodeUtils.findLwReference(afterNode, key)
116
- if (afterReference === null) {
112
+ const afterReference = NodeUtils.findReference(afterNode, beforeReference.reference)
113
+ if (afterReference === undefined) {
117
114
  if (beforeReference.targets.length !== 0) {
118
115
  beforeReference.targets.forEach(target => {
119
116
  this.change(new TargetRemoved(ctx.concat("references", index), afterNode, beforeReference, afterReference, target, Missing.MissingAfter))
@@ -124,9 +121,8 @@ export class LionWebJsonDiff {
124
121
  }
125
122
  })
126
123
  afterNode.references.forEach((afterReference: LionWebJsonReference, index: number) => {
127
- const afterKey = afterReference.reference.key
128
- const beforeReference = NodeUtils.findLwReference(afterNode, afterKey)
129
- if (beforeReference === null) {
124
+ const beforeReference = NodeUtils.findReference(afterNode, afterReference.reference)
125
+ if (beforeReference === undefined) {
130
126
  if (afterReference.targets.length !== 0) {
131
127
  afterReference.targets.forEach(target => {
132
128
  this.change(new TargetAdded(ctx.concat("references", index), afterNode, beforeReference, afterReference, target, Missing.MissingBefore))
@@ -161,7 +157,6 @@ export class LionWebJsonDiff {
161
157
 
162
158
  diffLwChunk(beforeChunk: LionWebJsonChunk, afterChunk: LionWebJsonChunk): void {
163
159
  const ctx = new JsonContext(null, ["$"])
164
- console.log("Comparing chunks")
165
160
  if (beforeChunk.serializationFormatVersion !== afterChunk.serializationFormatVersion) {
166
161
  this.change(
167
162
  new SerializationFormatChange(
@@ -246,13 +241,13 @@ export class LionWebJsonDiff {
246
241
 
247
242
  diffLwReference(ctx: JsonContext, node: LionWebJsonNode, beforeRef: LionWebJsonReference, afterRef: LionWebJsonReference): void {
248
243
  if (!isEqualMetaPointer(beforeRef.reference, afterRef.reference)) {
249
- console.error("diffContainment: MetaPointers of containments should be identical")
244
+ console.error("diffContainment: MetaPointers of references should be identical")
250
245
  this.diff(ctx, `Reference has concept ${JSON.stringify(beforeRef.reference)} vs ${JSON.stringify(afterRef.reference)}`)
251
246
  }
252
247
  let diffFound = false;
253
248
  beforeRef.targets.forEach((beforeTarget: LionWebJsonReferenceTarget, index: number) => {
254
- const afterTarget = NodeUtils.findLwReferenceTarget(afterRef.targets, beforeTarget)
255
- if (afterTarget === null) {
249
+ const afterTarget = NodeUtils.findReferenceTarget(afterRef.targets, beforeTarget)
250
+ if (afterTarget === undefined) {
256
251
  this.change(new TargetRemoved(ctx.concat("targets", index), node, beforeRef, afterRef, beforeTarget))
257
252
  diffFound = true
258
253
  } else {
@@ -265,8 +260,8 @@ export class LionWebJsonDiff {
265
260
  }
266
261
  })
267
262
  afterRef.targets.forEach((afterTarget: LionWebJsonReferenceTarget, index: number) => {
268
- const beforeTarget = NodeUtils.findLwReferenceTarget(beforeRef.targets, afterTarget)
269
- if (beforeTarget === null) {
263
+ const beforeTarget = NodeUtils.findReferenceTarget(beforeRef.targets, afterTarget)
264
+ if (beforeTarget === undefined) {
270
265
  this.change(new TargetAdded(ctx.concat("targets", index), node, beforeRef, afterRef, afterTarget))
271
266
  diffFound = true
272
267
  } else {
@@ -301,7 +296,7 @@ export class LionWebJsonDiff {
301
296
  afterProperty: LionWebJsonProperty,
302
297
  ) {
303
298
  if (!isEqualMetaPointer(beforeProperty.property, afterProperty.property)) {
304
- console.error("diffContainment: MetaPointers of containments should be identical")
299
+ console.error("diffContainment: MetaPointers of properties should be identical")
305
300
  this.diff(
306
301
  ctx,
307
302
  `Property Object has concept ${JSON.stringify(beforeProperty.property)} vs ${JSON.stringify(afterProperty.property)}`,
@@ -7,7 +7,7 @@ export abstract class ContainmentChange extends Change {
7
7
  public context: JsonContext,
8
8
  public parentNode: LionWebJsonNode,
9
9
  public containment: LionWebJsonMetaPointer,
10
- public afterContainment: LionWebJsonContainment | null,
10
+ public afterContainment: LionWebJsonContainment | undefined,
11
11
  public childId: string,
12
12
  public missing = Missing.NotMissing
13
13
  ) {
@@ -6,8 +6,8 @@ export abstract class ReferenceChange extends Change {
6
6
  constructor(
7
7
  public context: JsonContext,
8
8
  public node: LionWebJsonNode,
9
- public beforeReference: LionWebJsonReference | null,
10
- public afterReference: LionWebJsonReference | null,
9
+ public beforeReference: LionWebJsonReference | undefined,
10
+ public afterReference: LionWebJsonReference | undefined,
11
11
  public target: LionWebJsonReferenceTarget,
12
12
  public missing = Missing.NotMissing
13
13
  ) {
package/src/index.ts CHANGED
@@ -3,3 +3,5 @@ export * from "./json/index.js"
3
3
  export * from "./validators/index.js"
4
4
  export * from "./diff/index.js"
5
5
  export * from "./runners/index.js"
6
+ export * from "./languages/index.js"
7
+ export * from "./util/graphs.js"
@@ -1,9 +1,9 @@
1
- import { LionWebJsonMetaPointer } from "../json/LionWebJson.js"
1
+ import { LionWebJsonMetaPointer, LionWebJsonNode } from "../json/LionWebJson.js"
2
2
  import { JsonContext } from "../json/JsonContext.js"
3
3
  import { ValidationIssue } from "./ValidationIssue.js"
4
4
 
5
5
  export class Language_PropertyValue_Issue extends ValidationIssue {
6
- readonly id = "PropertyValue"
6
+ readonly issueType = "PropertyValueIncorrect"
7
7
 
8
8
  constructor(
9
9
  context: JsonContext,
@@ -30,23 +30,49 @@ export abstract class Language_IncorrectMetaPointerType_Issue extends Validation
30
30
  }
31
31
 
32
32
  msg = (): string =>
33
- `${this.metaType} with key "${this.metaPointer.key}" does not refer to a ${this.metaType}, but to a "${this.incorrectType}"`
33
+ `${this.metaType} with key "${this.metaPointer.key}" does not refer to a "${this.metaType}", but to a "${this.incorrectType}"`
34
34
  }
35
35
 
36
36
  export class Language_IncorrectPropertyMetaPointer_Issue extends Language_IncorrectMetaPointerType_Issue {
37
- readonly id = "IncorrectPropertyMetaPointer"
37
+ readonly issueType = "IncorrectPropertyMetaPointer"
38
38
  readonly metaType = "Property"
39
39
  }
40
+
41
+ export abstract class Language_FeatureMetaPointerNotInClassifier_Issue extends ValidationIssue {
42
+ abstract readonly metaType: string
43
+ constructor(
44
+ context: JsonContext,
45
+ public featureMetaPointer: LionWebJsonMetaPointer,
46
+ public classifierPointer: LionWebJsonNode,
47
+ ) {
48
+ super(context)
49
+ }
50
+
51
+ msg = (): string =>
52
+ `${this.metaType} with key "${this.featureMetaPointer.key}" is not part of classifier "${this.classifierPointer.id}"`
53
+ }
54
+ export class Language_PropertyMetaPointerNotInClass_Issue extends Language_FeatureMetaPointerNotInClassifier_Issue {
55
+ readonly issueType = "PropertyMetaPointerNotInClass"
56
+ readonly metaType = "Property"
57
+ }
58
+ export class Language_ReferenceMetaPointerNotInClass_Issue extends Language_FeatureMetaPointerNotInClassifier_Issue {
59
+ readonly issueType = "ReferenceMetaPointerNotInClass"
60
+ readonly metaType = "Reference"
61
+ }
62
+ export class Language_ContainmentMetaPointerNotInClass_Issue extends Language_FeatureMetaPointerNotInClassifier_Issue {
63
+ readonly issueType = "ContainmentMetaPointerNotInClass"
64
+ readonly metaType = "Containment"
65
+ }
40
66
  export class Language_IncorrectConceptMetaPointer_Issue extends Language_IncorrectMetaPointerType_Issue {
41
- readonly id = "IncorrectConceptMetaPointer"
67
+ readonly issueType = "IncorrectConceptMetaPointer"
42
68
  readonly metaType = "Concept"
43
69
  }
44
70
  export class Language_IncorrectReferenceMetaPointer_Issue extends Language_IncorrectMetaPointerType_Issue {
45
- readonly id = "IncorrectReferenceMetaPointer"
71
+ readonly issueType = "IncorrectReferenceMetaPointer"
46
72
  readonly metaType = "Reference"
47
73
  }
48
74
  export class Language_IncorrectContainmentMetaPointer_Issue extends Language_IncorrectMetaPointerType_Issue {
49
- readonly id = "IncorrectContainmentMetaPointer"
75
+ readonly issueType = "IncorrectContainmentMetaPointer"
50
76
  readonly metaType = "Containment"
51
77
  }
52
78
 
@@ -65,25 +91,25 @@ export abstract class Language_UnknownMetaPointer_Issue extends ValidationIssue
65
91
  }
66
92
 
67
93
  export class Language_UnknownReference_Issue extends Language_UnknownMetaPointer_Issue {
68
- readonly id = "UnknownReference"
94
+ readonly issueType = "UnknownReference"
69
95
  readonly metaType = "Reference"
70
96
  }
71
97
  export class Language_UnknownContainment_Issue extends Language_UnknownMetaPointer_Issue {
72
- readonly id = "UnknownContainment"
98
+ readonly issueType = "UnknownContainment"
73
99
  readonly metaType = "Containment"
74
100
  }
75
101
  export class Language_UnknownProperty_Issue extends Language_UnknownMetaPointer_Issue {
76
- readonly id = "UnknownProperty"
102
+ readonly issueType = "UnknownProperty"
77
103
  readonly metaType = "Property"
78
104
  }
79
105
  export class Language_UnknownConcept_Issue extends Language_UnknownMetaPointer_Issue {
80
- readonly id = "UnknownConcept"
106
+ readonly issueType = "UnknownConcept"
81
107
  readonly metaType = "Concept"
82
108
  }
83
109
 
84
110
  // Actual Language checks on M2
85
111
  export class NumberOfLanguagesUsed_Issue extends ValidationIssue {
86
- readonly id = "NumberOfLanguagesUsed"
112
+ readonly issueType = "NumberOfLanguagesUsed"
87
113
  constructor(
88
114
  context: JsonContext,
89
115
  public nrOfLanguages: number,
@@ -92,8 +118,17 @@ export class NumberOfLanguagesUsed_Issue extends ValidationIssue {
92
118
  }
93
119
  msg = () => `Is not a language: number of used languages should be 1, is ${this.nrOfLanguages}`
94
120
  }
121
+ export class MissingM3Language_Issue extends ValidationIssue {
122
+ readonly issueType = "MissingM3Language"
123
+ constructor(
124
+ context: JsonContext
125
+ ) {
126
+ super(context)
127
+ }
128
+ msg = () => `Missing used language LionCore-M3`
129
+ }
95
130
  export class NotLionCoreLanguageKey_Issue extends ValidationIssue {
96
- readonly id = "NotLionCoreLanguageKey"
131
+ readonly issueType = "NotLionCoreLanguageKey"
97
132
  constructor(
98
133
  context: JsonContext,
99
134
  public incorrectKey: string,
@@ -103,7 +138,7 @@ export class NotLionCoreLanguageKey_Issue extends ValidationIssue {
103
138
  msg = () => `Is not a language: the used language key is not LionCore-M3, but ${this.incorrectKey}`
104
139
  }
105
140
  export class IncorrectLionCoreVersion_Issue extends ValidationIssue {
106
- readonly id = "IncorrectLionCoreVersion"
141
+ readonly issueType = "IncorrectLionCoreVersion"
107
142
  constructor(
108
143
  context: JsonContext,
109
144
  public incorrectVersion: string,
@@ -3,7 +3,7 @@ import { JsonContext } from "../json/JsonContext.js"
3
3
  import { ValidationIssue } from "./ValidationIssue.js"
4
4
 
5
5
  export class Reference_DuplicateNodeId_Issue extends ValidationIssue {
6
- readonly id = "DuplicateNodeId"
6
+ readonly issueType = "DuplicateNodeId"
7
7
 
8
8
  constructor(
9
9
  context: JsonContext,
@@ -16,7 +16,7 @@ export class Reference_DuplicateNodeId_Issue extends ValidationIssue {
16
16
  }
17
17
 
18
18
  export class Reference_ChildMissingInParent_Issue extends ValidationIssue {
19
- readonly id = "ChildMissingInParent"
19
+ readonly issueType = "ChildMissingInParent"
20
20
 
21
21
  constructor(
22
22
  context: JsonContext,
@@ -30,7 +30,7 @@ export class Reference_ChildMissingInParent_Issue extends ValidationIssue {
30
30
  }
31
31
 
32
32
  export class Reference_ParentMissingInChild_Issue extends ValidationIssue {
33
- readonly id = "ParentMissingInChild"
33
+ readonly issueType = "ParentMissingInChild"
34
34
 
35
35
  constructor(
36
36
  context: JsonContext,
@@ -44,7 +44,7 @@ export class Reference_ParentMissingInChild_Issue extends ValidationIssue {
44
44
  }
45
45
 
46
46
  export class Reference_CirculairParent_Issue extends ValidationIssue {
47
- readonly id = "CirculairParent"
47
+ readonly issueType = "CirculairParent"
48
48
 
49
49
  constructor(
50
50
  context: JsonContext,
@@ -58,7 +58,7 @@ export class Reference_CirculairParent_Issue extends ValidationIssue {
58
58
  }
59
59
 
60
60
  export class Reference_LanguageUnknown_Issue extends ValidationIssue {
61
- readonly id = "LanguageUnknown"
61
+ readonly issueType = "LanguageUnknown"
62
62
 
63
63
  constructor(
64
64
  context: JsonContext,
@@ -71,7 +71,7 @@ export class Reference_LanguageUnknown_Issue extends ValidationIssue {
71
71
  }
72
72
 
73
73
  export class Duplicates_Issue extends ValidationIssue {
74
- readonly id = "Duplicates"
74
+ readonly issueType = "Duplicates"
75
75
 
76
76
  constructor(
77
77
  context: JsonContext,