@lionweb/validation 0.7.0-beta.10 → 0.7.0-beta.12

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 (170) hide show
  1. package/CHANGELOG.md +7 -1
  2. package/dist/index.d.ts +5 -0
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +5 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/issues/LanguageIssues.d.ts +99 -0
  7. package/dist/issues/LanguageIssues.d.ts.map +1 -0
  8. package/dist/issues/LanguageIssues.js +146 -0
  9. package/dist/issues/LanguageIssues.js.map +1 -0
  10. package/dist/issues/ReferenceIssues.d.ts +43 -0
  11. package/dist/issues/ReferenceIssues.d.ts.map +1 -0
  12. package/dist/issues/ReferenceIssues.js +53 -0
  13. package/dist/issues/ReferenceIssues.js.map +1 -0
  14. package/dist/issues/SyntaxIssues.d.ts +53 -0
  15. package/dist/issues/SyntaxIssues.d.ts.map +1 -0
  16. package/dist/issues/SyntaxIssues.js +81 -0
  17. package/dist/issues/SyntaxIssues.js.map +1 -0
  18. package/dist/issues/ValidationIssue.d.ts +15 -0
  19. package/dist/issues/ValidationIssue.d.ts.map +1 -0
  20. package/dist/issues/ValidationIssue.js +17 -0
  21. package/dist/issues/ValidationIssue.js.map +1 -0
  22. package/dist/issues/index.d.ts +5 -0
  23. package/dist/issues/index.d.ts.map +1 -0
  24. package/dist/issues/index.js +5 -0
  25. package/dist/issues/index.js.map +1 -0
  26. package/dist/languages/CompositeLionWebLanguageWrapper.d.ts +24 -0
  27. package/dist/languages/CompositeLionWebLanguageWrapper.d.ts.map +1 -0
  28. package/dist/languages/CompositeLionWebLanguageWrapper.js +56 -0
  29. package/dist/languages/CompositeLionWebLanguageWrapper.js.map +1 -0
  30. package/dist/languages/LanguageRegistry.d.ts +19 -0
  31. package/dist/languages/LanguageRegistry.d.ts.map +1 -0
  32. package/dist/languages/LanguageRegistry.js +37 -0
  33. package/dist/languages/LanguageRegistry.js.map +1 -0
  34. package/dist/languages/LanguageUtils.d.ts +35 -0
  35. package/dist/languages/LanguageUtils.d.ts.map +1 -0
  36. package/dist/languages/LanguageUtils.js +54 -0
  37. package/dist/languages/LanguageUtils.js.map +1 -0
  38. package/dist/languages/LionWebLanguageWrapper.d.ts +31 -0
  39. package/dist/languages/LionWebLanguageWrapper.d.ts.map +1 -0
  40. package/dist/languages/LionWebLanguageWrapper.js +69 -0
  41. package/dist/languages/LionWebLanguageWrapper.js.map +1 -0
  42. package/dist/languages/MetaPointerMap.d.ts +11 -0
  43. package/dist/languages/MetaPointerMap.d.ts.map +1 -0
  44. package/dist/languages/MetaPointerMap.js +39 -0
  45. package/dist/languages/MetaPointerMap.js.map +1 -0
  46. package/dist/languages/index.d.ts +3 -0
  47. package/dist/languages/index.d.ts.map +1 -0
  48. package/dist/languages/index.js +3 -0
  49. package/dist/languages/index.js.map +1 -0
  50. package/dist/runners/FileUtils.d.ts +6 -0
  51. package/dist/runners/FileUtils.d.ts.map +1 -0
  52. package/dist/runners/FileUtils.js +53 -0
  53. package/dist/runners/FileUtils.js.map +1 -0
  54. package/dist/runners/RunCheckFolder.d.ts +2 -0
  55. package/dist/runners/RunCheckFolder.d.ts.map +1 -0
  56. package/dist/runners/RunCheckFolder.js +6 -0
  57. package/dist/runners/RunCheckFolder.js.map +1 -0
  58. package/dist/runners/RunCheckFolderWithLanguage.d.ts +2 -0
  59. package/dist/runners/RunCheckFolderWithLanguage.d.ts.map +1 -0
  60. package/dist/runners/RunCheckFolderWithLanguage.js +40 -0
  61. package/dist/runners/RunCheckFolderWithLanguage.js.map +1 -0
  62. package/dist/runners/RunCheckOneFile.d.ts +2 -0
  63. package/dist/runners/RunCheckOneFile.d.ts.map +1 -0
  64. package/dist/runners/RunCheckOneFile.js +6 -0
  65. package/dist/runners/RunCheckOneFile.js.map +1 -0
  66. package/dist/runners/RunCheckOneFileWithLanguage.d.ts +2 -0
  67. package/dist/runners/RunCheckOneFileWithLanguage.d.ts.map +1 -0
  68. package/dist/runners/RunCheckOneFileWithLanguage.js +31 -0
  69. package/dist/runners/RunCheckOneFileWithLanguage.js.map +1 -0
  70. package/dist/runners/RunLioncoreDiff.d.ts +2 -0
  71. package/dist/runners/RunLioncoreDiff.d.ts.map +1 -0
  72. package/dist/runners/RunLioncoreDiff.js +22 -0
  73. package/dist/runners/RunLioncoreDiff.js.map +1 -0
  74. package/dist/runners/Utils.d.ts +7 -0
  75. package/dist/runners/Utils.d.ts.map +1 -0
  76. package/dist/runners/Utils.js +48 -0
  77. package/dist/runners/Utils.js.map +1 -0
  78. package/dist/runners/index.d.ts +3 -0
  79. package/dist/runners/index.d.ts.map +1 -0
  80. package/dist/runners/index.js +3 -0
  81. package/dist/runners/index.js.map +1 -0
  82. package/dist/validators/LionWebChunkDefinitions.d.ts +9 -0
  83. package/dist/validators/LionWebChunkDefinitions.d.ts.map +1 -0
  84. package/{src/validators/LionWebChunkDefinitions.ts → dist/validators/LionWebChunkDefinitions.js} +10 -14
  85. package/dist/validators/LionWebChunkDefinitions.js.map +1 -0
  86. package/dist/validators/LionWebLanguageReferenceValidator.d.ts +21 -0
  87. package/dist/validators/LionWebLanguageReferenceValidator.d.ts.map +1 -0
  88. package/{src/validators/LionWebLanguageReferenceValidator.ts → dist/validators/LionWebLanguageReferenceValidator.js} +73 -108
  89. package/dist/validators/LionWebLanguageReferenceValidator.js.map +1 -0
  90. package/dist/validators/LionWebLanguageValidator.d.ts +23 -0
  91. package/dist/validators/LionWebLanguageValidator.d.ts.map +1 -0
  92. package/dist/validators/LionWebLanguageValidator.js +66 -0
  93. package/dist/validators/LionWebLanguageValidator.js.map +1 -0
  94. package/dist/validators/LionWebReferenceValidator.d.ts +43 -0
  95. package/dist/validators/LionWebReferenceValidator.d.ts.map +1 -0
  96. package/{src/validators/LionWebReferenceValidator.ts → dist/validators/LionWebReferenceValidator.js} +84 -106
  97. package/dist/validators/LionWebReferenceValidator.js.map +1 -0
  98. package/dist/validators/LionWebSyntaxValidator.d.ts +9 -0
  99. package/dist/validators/LionWebSyntaxValidator.d.ts.map +1 -0
  100. package/dist/validators/LionWebSyntaxValidator.js +11 -0
  101. package/dist/validators/LionWebSyntaxValidator.js.map +1 -0
  102. package/dist/validators/LionWebValidator.d.ts +24 -0
  103. package/dist/validators/LionWebValidator.d.ts.map +1 -0
  104. package/{src/validators/LionWebValidator.ts → dist/validators/LionWebValidator.js} +29 -45
  105. package/dist/validators/LionWebValidator.js.map +1 -0
  106. package/dist/validators/ValidationFunctions.d.ts +60 -0
  107. package/dist/validators/ValidationFunctions.d.ts.map +1 -0
  108. package/{src/validators/ValidationFunctions.ts → dist/validators/ValidationFunctions.js} +34 -66
  109. package/dist/validators/ValidationFunctions.js.map +1 -0
  110. package/dist/validators/generic/SyntaxValidator.d.ts +37 -0
  111. package/dist/validators/generic/SyntaxValidator.d.ts.map +1 -0
  112. package/dist/validators/generic/SyntaxValidator.js +152 -0
  113. package/dist/validators/generic/SyntaxValidator.js.map +1 -0
  114. package/dist/validators/generic/ValidationResult.d.ts +8 -0
  115. package/dist/validators/generic/ValidationResult.d.ts.map +1 -0
  116. package/dist/validators/generic/ValidationResult.js +15 -0
  117. package/dist/validators/generic/ValidationResult.js.map +1 -0
  118. package/dist/validators/generic/index.d.ts +4 -0
  119. package/dist/validators/generic/index.d.ts.map +1 -0
  120. package/dist/validators/generic/index.js +4 -0
  121. package/dist/validators/generic/index.js.map +1 -0
  122. package/dist/validators/generic/schema/DefinitionSchema.d.ts +23 -0
  123. package/dist/validators/generic/schema/DefinitionSchema.d.ts.map +1 -0
  124. package/dist/validators/generic/schema/DefinitionSchema.js +43 -0
  125. package/dist/validators/generic/schema/DefinitionSchema.js.map +1 -0
  126. package/dist/validators/generic/schema/ValidationTypes.d.ts +101 -0
  127. package/dist/validators/generic/schema/ValidationTypes.d.ts.map +1 -0
  128. package/dist/validators/generic/schema/ValidationTypes.js +43 -0
  129. package/dist/validators/generic/schema/ValidationTypes.js.map +1 -0
  130. package/dist/validators/generic/schema/index.d.ts +3 -0
  131. package/dist/validators/generic/schema/index.d.ts.map +1 -0
  132. package/dist/validators/generic/schema/index.js +3 -0
  133. package/dist/validators/generic/schema/index.js.map +1 -0
  134. package/dist/validators/index.d.ts +9 -0
  135. package/dist/validators/index.d.ts.map +1 -0
  136. package/dist/validators/index.js +9 -0
  137. package/dist/validators/index.js.map +1 -0
  138. package/package.json +4 -4
  139. package/src/index.ts +0 -4
  140. package/src/issues/LanguageIssues.ts +0 -147
  141. package/src/issues/ReferenceIssues.ts +0 -83
  142. package/src/issues/SyntaxIssues.ts +0 -84
  143. package/src/issues/ValidationIssue.ts +0 -29
  144. package/src/issues/index.ts +0 -4
  145. package/src/languages/CompositeLionWebLanguageWrapper.ts +0 -57
  146. package/src/languages/LanguageRegistry.ts +0 -44
  147. package/src/languages/LanguageUtils.ts +0 -63
  148. package/src/languages/LionWebLanguageWrapper.ts +0 -91
  149. package/src/languages/MetaPointerMap.ts +0 -41
  150. package/src/languages/index.ts +0 -2
  151. package/src/runners/FileUtils.ts +0 -59
  152. package/src/runners/RunCheckFolder.ts +0 -7
  153. package/src/runners/RunCheckFolderWithLanguage.ts +0 -45
  154. package/src/runners/RunCheckOneFile.ts +0 -7
  155. package/src/runners/RunCheckOneFileWithLanguage.ts +0 -35
  156. package/src/runners/RunLioncoreDiff.ts +0 -23
  157. package/src/runners/Utils.ts +0 -54
  158. package/src/runners/index.ts +0 -2
  159. package/src/validators/LionWebLanguageValidator.ts +0 -78
  160. package/src/validators/LionWebSyntaxValidator.ts +0 -14
  161. package/src/validators/generic/SyntaxValidator.ts +0 -216
  162. package/src/validators/generic/ValidationResult.ts +0 -17
  163. package/src/validators/generic/index.ts +0 -3
  164. package/src/validators/generic/schema/DefinitionSchema.ts +0 -52
  165. package/src/validators/generic/schema/ValidationTypes.ts +0 -134
  166. package/src/validators/generic/schema/index.ts +0 -2
  167. package/src/validators/index.ts +0 -8
  168. package/tsconfig.json +0 -8
  169. /package/{src → dist}/languages/LionCore-M3.json +0 -0
  170. /package/{src → dist}/languages/LionCore-builtins.json +0 -0
@@ -0,0 +1,31 @@
1
+ import fs from "fs";
2
+ import { LanguageRegistry } from "../languages/index.js";
3
+ import { LionWebLanguageWrapper } from "../languages/LionWebLanguageWrapper.js";
4
+ import { LionWebValidator } from "../validators/LionWebValidator.js";
5
+ import { printIssues } from "./Utils.js";
6
+ const modelFile = process.argv[2];
7
+ const language = process.argv[3];
8
+ if (modelFile !== null) {
9
+ const jsonString1 = fs.readFileSync(modelFile, "utf-8");
10
+ const jsonModel = JSON.parse(jsonString1);
11
+ const languageString = fs.readFileSync(language, "utf-8");
12
+ const languageJson = JSON.parse(languageString);
13
+ const m3String = fs.readFileSync("src/json/LionCore_M3.json", "utf-8");
14
+ const m3Json = JSON.parse(m3String);
15
+ const builtinString = fs.readFileSync("src/json/LionCore_builtins.json", "utf-8");
16
+ const builtinJson = JSON.parse(builtinString);
17
+ const registry = new LanguageRegistry();
18
+ registry.addLanguage(new LionWebLanguageWrapper(m3Json));
19
+ registry.addLanguage(new LionWebLanguageWrapper(builtinJson));
20
+ registry.addLanguage(new LionWebLanguageWrapper(languageJson));
21
+ const languageValidator = new LionWebValidator(languageJson, registry);
22
+ languageValidator.validateSyntax();
23
+ languageValidator.validateReferences();
24
+ console.log("===== Language errors ======");
25
+ printIssues(languageValidator.validationResult);
26
+ const modelValidator = new LionWebValidator(jsonModel, registry);
27
+ modelValidator.validateAll();
28
+ console.log("===== Model errors ======");
29
+ printIssues(modelValidator.validationResult);
30
+ }
31
+ //# sourceMappingURL=RunCheckOneFileWithLanguage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RunCheckOneFileWithLanguage.js","sourceRoot":"","sources":["../../src/runners/RunCheckOneFileWithLanguage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAA;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAExC,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAEhC,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;IACrB,MAAM,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IACvD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;IACzC,MAAM,cAAc,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IACzD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;IAC/C,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,2BAA2B,EAAE,OAAO,CAAC,CAAA;IACtE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IACnC,MAAM,aAAa,GAAG,EAAE,CAAC,YAAY,CAAC,iCAAiC,EAAE,OAAO,CAAC,CAAA;IACjF,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;IAC7C,MAAM,QAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAA;IACvC,QAAQ,CAAC,WAAW,CAAC,IAAI,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAA;IACxD,QAAQ,CAAC,WAAW,CAAC,IAAI,sBAAsB,CAAC,WAAW,CAAC,CAAC,CAAA;IAC7D,QAAQ,CAAC,WAAW,CAAC,IAAI,sBAAsB,CAAC,YAAY,CAAC,CAAC,CAAA;IAE9D,MAAM,iBAAiB,GAAG,IAAI,gBAAgB,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAA;IAEtE,iBAAiB,CAAC,cAAc,EAAE,CAAA;IAClC,iBAAiB,CAAC,kBAAkB,EAAE,CAAA;IACtC,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAA;IAC3C,WAAW,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAA;IAE/C,MAAM,cAAc,GAAG,IAAI,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;IAChE,cAAc,CAAC,WAAW,EAAE,CAAA;IAC5B,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAA;IACxC,WAAW,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAA;AAChD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=RunLioncoreDiff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RunLioncoreDiff.d.ts","sourceRoot":"","sources":["../../src/runners/RunLioncoreDiff.ts"],"names":[],"mappings":""}
@@ -0,0 +1,22 @@
1
+ import { LionWebJsonDiff } from "@lionweb/json-diff";
2
+ import fs from "fs";
3
+ const file1 = process.argv[2];
4
+ const file2 = process.argv[3];
5
+ if (file1 !== null && file1 !== undefined) {
6
+ const jsonString1 = fs.readFileSync(file1, "utf-8");
7
+ const json1 = JSON.parse(jsonString1);
8
+ const jsonString2 = fs.readFileSync(file2, "utf-8");
9
+ const json2 = JSON.parse(jsonString2);
10
+ const lwDiff = new LionWebJsonDiff();
11
+ lwDiff.diffLwChunk(json1, json2);
12
+ if (lwDiff.diffResult.changes.length === 0) {
13
+ console.log("LionWebJsonDiff: equal");
14
+ }
15
+ else {
16
+ console.log("LionWebJsonDiff: " + lwDiff.diff);
17
+ }
18
+ }
19
+ else {
20
+ console.log("Error in arguments");
21
+ }
22
+ //# sourceMappingURL=RunLioncoreDiff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RunLioncoreDiff.js","sourceRoot":"","sources":["../../src/runners/RunLioncoreDiff.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,MAAM,IAAI,CAAA;AAEnB,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAE7B,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;IACxC,MAAM,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IACnD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;IACrC,MAAM,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IACnD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;IAErC,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAA;IACpC,MAAM,CAAC,WAAW,CAAC,KAAyB,EAAE,KAAyB,CAAC,CAAA;IACxE,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAA;IACzC,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;IAClD,CAAC;AACL,CAAC;KAAM,CAAC;IACJ,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;AACrC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { ValidationResult } from "../validators/generic/ValidationResult.js";
2
+ export declare function getFilesRecursive(dirPath: string, arrayOfFiles: string[]): string[];
3
+ export declare function getFilesDirect(dirPath: string, arrayOfFiles: string[]): string[];
4
+ export declare function getAllDirectories(dirPath: string, arrayOfDirs: string[]): string[];
5
+ export declare function printIssues(result: ValidationResult, file?: string): void;
6
+ export declare function issuestoString(vresult: ValidationResult, file?: string): string;
7
+ //# sourceMappingURL=Utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Utils.d.ts","sourceRoot":"","sources":["../../src/runners/Utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAA;AAE5E,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,YAYxE;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,YAUrE;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAavE;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAEzE;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAI/E"}
@@ -0,0 +1,48 @@
1
+ import fs from "fs";
2
+ import path from "path";
3
+ export function getFilesRecursive(dirPath, arrayOfFiles) {
4
+ const files = fs.readdirSync(dirPath);
5
+ arrayOfFiles = arrayOfFiles || [];
6
+ files.forEach(function (file) {
7
+ if (fs.statSync(dirPath + "/" + file).isDirectory()) {
8
+ arrayOfFiles = getFilesRecursive(dirPath + "/" + file, arrayOfFiles);
9
+ }
10
+ else {
11
+ arrayOfFiles.push(path.join(dirPath, "/", file));
12
+ }
13
+ });
14
+ return arrayOfFiles;
15
+ }
16
+ export function getFilesDirect(dirPath, arrayOfFiles) {
17
+ const files = fs.readdirSync(dirPath);
18
+ arrayOfFiles = arrayOfFiles || [];
19
+ files.forEach(function (file) {
20
+ if (fs.statSync(dirPath + "/" + file).isFile()) {
21
+ arrayOfFiles.push(file);
22
+ }
23
+ });
24
+ return arrayOfFiles;
25
+ }
26
+ export function getAllDirectories(dirPath, arrayOfDirs) {
27
+ const files = fs.readdirSync(dirPath, { withFileTypes: true });
28
+ arrayOfDirs = arrayOfDirs || [];
29
+ files.forEach(function (file) {
30
+ if (file.isDirectory()) {
31
+ arrayOfDirs = getAllDirectories(dirPath + "/" + file.name, arrayOfDirs);
32
+ arrayOfDirs.push(path.join(dirPath, "/", file.name));
33
+ }
34
+ else {
35
+ // ignore files
36
+ }
37
+ });
38
+ return arrayOfDirs;
39
+ }
40
+ export function printIssues(result, file) {
41
+ result.issues.forEach(issue => console.log((file == undefined ? "" : `File ${file}: `) + issue.errorMsg()));
42
+ }
43
+ export function issuestoString(vresult, file) {
44
+ let result = "ISSUES: ";
45
+ vresult.issues.forEach(issue => (result += (file === undefined ? "NOFILE" : `File ${file}: `) + issue.errorMsg() + "\n"));
46
+ return result;
47
+ }
48
+ //# sourceMappingURL=Utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Utils.js","sourceRoot":"","sources":["../../src/runners/Utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,IAAI,MAAM,MAAM,CAAA;AAGvB,MAAM,UAAU,iBAAiB,CAAC,OAAe,EAAE,YAAsB;IACrE,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;IACrC,YAAY,GAAG,YAAY,IAAI,EAAE,CAAA;IAEjC,KAAK,CAAC,OAAO,CAAC,UAAU,IAAY;QAChC,IAAI,EAAE,CAAC,QAAQ,CAAC,OAAO,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;YAClD,YAAY,GAAG,iBAAiB,CAAC,OAAO,GAAG,GAAG,GAAG,IAAI,EAAE,YAAY,CAAC,CAAA;QACxE,CAAC;aAAM,CAAC;YACJ,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAA;QACpD,CAAC;IACL,CAAC,CAAC,CAAA;IACF,OAAO,YAAY,CAAA;AACvB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAe,EAAE,YAAsB;IAClE,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;IACrC,YAAY,GAAG,YAAY,IAAI,EAAE,CAAA;IAEjC,KAAK,CAAC,OAAO,CAAC,UAAU,IAAY;QAChC,IAAI,EAAE,CAAC,QAAQ,CAAC,OAAO,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;YAC7C,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC3B,CAAC;IACL,CAAC,CAAC,CAAA;IACF,OAAO,YAAY,CAAA;AACvB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAe,EAAE,WAAqB;IACpE,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;IAC9D,WAAW,GAAG,WAAW,IAAI,EAAE,CAAA;IAE/B,KAAK,CAAC,OAAO,CAAC,UAAU,IAAe;QACnC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACrB,WAAW,GAAG,iBAAiB,CAAC,OAAO,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;YACvE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QACxD,CAAC;aAAM,CAAC;YACJ,eAAe;QACnB,CAAC;IACL,CAAC,CAAC,CAAA;IACF,OAAO,WAAW,CAAA;AACtB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,MAAwB,EAAE,IAAa;IAC/D,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;AAC/G,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAyB,EAAE,IAAa;IACnE,IAAI,MAAM,GAAG,UAAU,CAAA;IACvB,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC,CAAA;IACzH,OAAO,MAAM,CAAA;AACjB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./FileUtils.js";
2
+ export * from "./Utils.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runners/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA"}
@@ -0,0 +1,3 @@
1
+ export * from "./FileUtils.js";
2
+ export * from "./Utils.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runners/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA"}
@@ -0,0 +1,9 @@
1
+ import { DefinitionSchema } from "./generic/index.js";
2
+ /**
3
+ * The structure below defines the structure of a LionWeb Chunk by defining all the properties.
4
+ * It can
5
+ * - be used by the SyntaxValidator to validate an object sat runtime.
6
+ * - used to generate all the TypeScript types for a LionWebChunk.
7
+ */
8
+ export declare const LionWebSchema: DefinitionSchema;
9
+ //# sourceMappingURL=LionWebChunkDefinitions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LionWebChunkDefinitions.d.ts","sourceRoot":"","sources":["../../src/validators/LionWebChunkDefinitions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAA2C,MAAM,oBAAoB,CAAA;AAG9F;;;;;GAKG;AACH,eAAO,MAAM,aAAa,EAAE,gBA0F1B,CAAA"}
@@ -1,13 +1,12 @@
1
- import { DefinitionSchema, MAY_BE_NULL, PropertyDef, PrimitiveDef } from "./generic/index.js"
2
- import { validateId, validateKey, validateSerializationFormatVersion, validateVersion } from "./ValidationFunctions.js"
3
-
1
+ import { DefinitionSchema, MAY_BE_NULL, PropertyDef, PrimitiveDef } from "./generic/index.js";
2
+ import { validateId, validateKey, validateSerializationFormatVersion, validateVersion } from "./ValidationFunctions.js";
4
3
  /**
5
4
  * The structure below defines the structure of a LionWeb Chunk by defining all the properties.
6
5
  * It can
7
6
  * - be used by the SyntaxValidator to validate an object sat runtime.
8
7
  * - used to generate all the TypeScript types for a LionWebChunk.
9
8
  */
10
- export const LionWebSchema: DefinitionSchema = new DefinitionSchema([
9
+ export const LionWebSchema = new DefinitionSchema([
11
10
  {
12
11
  name: "LionWebJsonMetaPointer",
13
12
  properties: [
@@ -76,8 +75,8 @@ export const LionWebSchema: DefinitionSchema = new DefinitionSchema([
76
75
  {
77
76
  name: "LionWebJsonReference",
78
77
  properties: [
79
- PropertyDef({ name: "reference", type: "LionWebJsonMetaPointer"}),
80
- PropertyDef({ name: "targets", type: "LionWebJsonReferenceTarget", isList: true}),
78
+ PropertyDef({ name: "reference", type: "LionWebJsonMetaPointer" }),
79
+ PropertyDef({ name: "targets", type: "LionWebJsonReferenceTarget", isList: true }),
81
80
  ]
82
81
  },
83
82
  {
@@ -93,12 +92,9 @@ export const LionWebSchema: DefinitionSchema = new DefinitionSchema([
93
92
  */
94
93
  PrimitiveDef({ name: "LionWebId", primitiveType: "string", validate: validateId }),
95
94
  PrimitiveDef({ name: "LionWebKey", primitiveType: "string", validate: validateKey }),
96
- PrimitiveDef({ name: "LionWebVersion",primitiveType: "string", validate: validateVersion }),
97
- PrimitiveDef({ name: "LionWebSerializationFormatVersion",primitiveType: "string", validate: validateSerializationFormatVersion }),
95
+ PrimitiveDef({ name: "LionWebVersion", primitiveType: "string", validate: validateVersion }),
96
+ PrimitiveDef({ name: "LionWebSerializationFormatVersion", primitiveType: "string", validate: validateSerializationFormatVersion }),
98
97
  PrimitiveDef({ name: "JSstring", primitiveType: "string" }),
99
- PrimitiveDef({ name: "JSobject",primitiveType: "object" }),
100
- ])
101
-
102
-
103
-
104
-
98
+ PrimitiveDef({ name: "JSobject", primitiveType: "object" }),
99
+ ]);
100
+ //# sourceMappingURL=LionWebChunkDefinitions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LionWebChunkDefinitions.js","sourceRoot":"","sources":["../../src/validators/LionWebChunkDefinitions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { LionWebJsonNode, LionWebJsonProperty } from "@lionweb/json";
2
+ import { JsonContext, LionWebJsonChunkWrapper } from "@lionweb/json-utils";
3
+ import { LanguageRegistry } from "../languages/index.js";
4
+ import { ValidationResult } from "./generic/ValidationResult.js";
5
+ /**
6
+ * Check against the language definition
7
+ */
8
+ export declare class LionWebLanguageReferenceValidator {
9
+ private registry;
10
+ validationResult: ValidationResult;
11
+ constructor(validationResult: ValidationResult, registry: LanguageRegistry);
12
+ validate(obj: LionWebJsonChunkWrapper): void;
13
+ private validateContainment;
14
+ private validateReference;
15
+ /**
16
+ * Checks wwhether the value of `prop1` is correct in relation with its property definition in the referred language.
17
+ * @param prop
18
+ */
19
+ validateProperty(_node: LionWebJsonNode, nodeConcept: LionWebJsonNode | undefined, prop: LionWebJsonProperty, context: JsonContext): void;
20
+ }
21
+ //# sourceMappingURL=LionWebLanguageReferenceValidator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LionWebLanguageReferenceValidator.d.ts","sourceRoot":"","sources":["../../src/validators/LionWebLanguageReferenceValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8C,eAAe,EAAE,mBAAmB,EAAwB,MAAM,eAAe,CAAA;AACtI,OAAO,EACH,WAAW,EAGX,uBAAuB,EAI1B,MAAM,qBAAqB,CAAA;AAmB5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAIhE;;GAEG;AACH,qBAAa,iCAAiC;IAGM,OAAO,CAAC,QAAQ;IAFhE,gBAAgB,EAAE,gBAAgB,CAAA;gBAEtB,gBAAgB,EAAE,gBAAgB,EAAU,QAAQ,EAAE,gBAAgB;IASlF,QAAQ,CAAC,GAAG,EAAE,uBAAuB,GAAG,IAAI;IAoB5C,OAAO,CAAC,mBAAmB;IAmB3B,OAAO,CAAC,iBAAiB;IAwBzB;;;OAGG;IACH,gBAAgB,CAAC,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,GAAG,SAAS,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI;CAqF5I"}
@@ -1,201 +1,166 @@
1
- import { isEqualMetaPointer, LionWebJsonContainment, LionWebJsonNode, LionWebJsonProperty, LionWebJsonReference } from "@lionweb/json"
2
- import {
3
- JsonContext,
4
- LION_CORE_BUILTINS_INAMED_NAME,
5
- LIONWEB_BOOLEAN_TYPE, LIONWEB_INTEGER_TYPE, LIONWEB_JSON_TYPE, LIONWEB_STRING_TYPE,
6
- LionWebJsonChunkWrapper,
7
- M3_Keys,
8
- MetaPointers,
9
- NodeUtils
10
- } from "@lionweb/json-utils"
11
- import {
12
- Language_ContainmentMetaPointerNotInClass_Issue,
13
- Language_IncorrectPropertyMetaPointer_Issue,
14
- Language_PropertyMetaPointerNotInClass_Issue,
15
- Language_PropertyValue_Issue,
16
- Language_ReferenceMetaPointerNotInClass_Issue,
17
- Language_UnknownConcept_Issue
18
- } from "../issues/index.js"
19
- import {
20
- Language_IncorrectContainmentMetaPointer_Issue,
21
- Language_IncorrectReferenceMetaPointer_Issue,
22
- Language_UnknownContainment_Issue,
23
- Language_UnknownProperty_Issue,
24
- Language_UnknownReference_Issue
25
- } from "../issues/LanguageIssues.js"
26
- // import {
27
- // KnownLanguages, LanguageRegistry
28
- // } from "../languages/LanguageRegistry.js"
29
- import { LanguageRegistry } from "../languages/index.js"
30
- import { ValidationResult } from "./generic/ValidationResult.js"
31
- import { validateBoolean, validateInteger, validateJSON } from "./ValidationFunctions.js"
32
-
33
-
1
+ import { isEqualMetaPointer } from "@lionweb/json";
2
+ import { JsonContext, LION_CORE_BUILTINS_INAMED_NAME, LIONWEB_BOOLEAN_TYPE, LIONWEB_INTEGER_TYPE, LIONWEB_JSON_TYPE, LIONWEB_STRING_TYPE, M3_Keys, MetaPointers, NodeUtils } from "@lionweb/json-utils";
3
+ import { Language_ContainmentMetaPointerNotInClass_Issue, Language_IncorrectPropertyMetaPointer_Issue, Language_PropertyMetaPointerNotInClass_Issue, Language_PropertyValue_Issue, Language_ReferenceMetaPointerNotInClass_Issue, Language_UnknownConcept_Issue } from "../issues/index.js";
4
+ import { Language_IncorrectContainmentMetaPointer_Issue, Language_IncorrectReferenceMetaPointer_Issue, Language_UnknownContainment_Issue, Language_UnknownProperty_Issue, Language_UnknownReference_Issue } from "../issues/LanguageIssues.js";
5
+ import { validateBoolean, validateInteger, validateJSON } from "./ValidationFunctions.js";
34
6
  /**
35
7
  * Check against the language definition
36
8
  */
37
9
  export class LionWebLanguageReferenceValidator {
38
- validationResult: ValidationResult
39
-
40
- constructor(validationResult: ValidationResult, private registry: LanguageRegistry) {
41
- this.validationResult = validationResult
10
+ constructor(validationResult, registry) {
11
+ this.registry = registry;
12
+ this.validationResult = validationResult;
42
13
  }
43
-
44
14
  // reset() {
45
15
  // this.validationResult.reset();
46
16
  // }
47
-
48
17
  // TODO test reference and children implementation
49
- validate(obj: LionWebJsonChunkWrapper): void {
18
+ validate(obj) {
50
19
  obj.jsonChunk.nodes.forEach((node, nodeIndex) => {
51
- const nodeContext = new JsonContext(null, ["node", nodeIndex])
52
- const nodeConcept = this.registry.getNodeByMetaPointer(node.classifier)
20
+ const nodeContext = new JsonContext(null, ["node", nodeIndex]);
21
+ const nodeConcept = this.registry.getNodeByMetaPointer(node.classifier);
53
22
  if (nodeConcept === undefined && nodeContext !== undefined) {
54
- this.validationResult.issue(new Language_UnknownConcept_Issue(nodeContext, node.classifier))
55
- return
23
+ this.validationResult.issue(new Language_UnknownConcept_Issue(nodeContext, node.classifier));
24
+ return;
56
25
  }
57
26
  node.properties.forEach((property, propIndex) => {
58
- this.validateProperty(node, nodeConcept, property, nodeContext.concat("properties", propIndex))
59
- })
27
+ this.validateProperty(node, nodeConcept, property, nodeContext.concat("properties", propIndex));
28
+ });
60
29
  node.containments.forEach((containment, childIndex) => {
61
- this.validateContainment(node, nodeConcept, containment, nodeContext.concat("containments", childIndex))
62
- })
30
+ this.validateContainment(node, nodeConcept, containment, nodeContext.concat("containments", childIndex));
31
+ });
63
32
  node.references.forEach((reference, refIndex) => {
64
- this.validateReference(node, nodeConcept, reference, nodeContext.concat("references", refIndex))
65
- })
66
- })
33
+ this.validateReference(node, nodeConcept, reference, nodeContext.concat("references", refIndex));
34
+ });
35
+ });
67
36
  }
68
-
69
- private validateContainment(node: LionWebJsonNode, nodeConcept: LionWebJsonNode | undefined, containment: LionWebJsonContainment, context: JsonContext) {
70
- const metaConcept = this.registry.getNodeByMetaPointer(containment.containment)
37
+ validateContainment(_node, nodeConcept, containment, context) {
38
+ const metaConcept = this.registry.getNodeByMetaPointer(containment.containment);
71
39
  if (metaConcept === null || metaConcept === undefined) {
72
- this.validationResult.issue(new Language_UnknownContainment_Issue(context, containment.containment))
73
- return
40
+ this.validationResult.issue(new Language_UnknownContainment_Issue(context, containment.containment));
41
+ return;
74
42
  }
75
43
  if (metaConcept.classifier.key !== M3_Keys.Containment) {
76
- this.validationResult.issue(new Language_IncorrectContainmentMetaPointer_Issue(context, containment.containment, metaConcept.classifier.key))
44
+ this.validationResult.issue(new Language_IncorrectContainmentMetaPointer_Issue(context, containment.containment, metaConcept.classifier.key));
77
45
  }
78
46
  if (nodeConcept !== undefined) {
79
- const cons = this.registry.languages.allContainments(nodeConcept)
47
+ const cons = this.registry.languages.allContainments(nodeConcept);
80
48
  if (!cons.includes(metaConcept)) {
81
- this.validationResult.issue(new Language_ContainmentMetaPointerNotInClass_Issue(context, containment.containment, nodeConcept))
82
- return
49
+ this.validationResult.issue(new Language_ContainmentMetaPointerNotInClass_Issue(context, containment.containment, nodeConcept));
50
+ return;
83
51
  }
84
52
  }
85
53
  // TODO check type of children
86
54
  }
87
-
88
- private validateReference(node: LionWebJsonNode, nodeConcept: LionWebJsonNode | undefined, ref: LionWebJsonReference, context: JsonContext) {
89
- const referenceDefinition = this.registry.getNodeByMetaPointer(ref.reference)
55
+ validateReference(_node, nodeConcept, ref, context) {
56
+ const referenceDefinition = this.registry.getNodeByMetaPointer(ref.reference);
90
57
  if (referenceDefinition === null || referenceDefinition === undefined) {
91
- this.validationResult.issue(new Language_UnknownReference_Issue(context, ref.reference))
92
- return
58
+ this.validationResult.issue(new Language_UnknownReference_Issue(context, ref.reference));
59
+ return;
93
60
  }
94
61
  if (referenceDefinition.classifier.key !== M3_Keys.Reference) {
95
- this.validationResult.issue(new Language_IncorrectReferenceMetaPointer_Issue(context, ref.reference, referenceDefinition.classifier.key))
62
+ this.validationResult.issue(new Language_IncorrectReferenceMetaPointer_Issue(context, ref.reference, referenceDefinition.classifier.key));
96
63
  }
97
64
  if (nodeConcept !== undefined) {
98
- const refs = this.registry.languages.allReferenceDefinitions(nodeConcept)
65
+ const refs = this.registry.languages.allReferenceDefinitions(nodeConcept);
99
66
  if (!refs.includes(referenceDefinition)) {
100
- this.validationResult.issue(new Language_ReferenceMetaPointerNotInClass_Issue(context, ref.reference, nodeConcept))
101
- return
67
+ this.validationResult.issue(new Language_ReferenceMetaPointerNotInClass_Issue(context, ref.reference, nodeConcept));
68
+ return;
102
69
  }
103
70
  }
104
-
105
71
  // TODO Check type of reference (if possible)
106
-
107
72
  // TODO Check for duplicate targets?
108
73
  // No, already done without language check
109
74
  // If so, what to check because there can be either or both a `resolveInfo` and a `reference`
110
75
  }
111
-
112
76
  /**
113
77
  * Checks wwhether the value of `prop1` is correct in relation with its property definition in the referred language.
114
78
  * @param prop
115
79
  */
116
- validateProperty(node: LionWebJsonNode, nodeConcept: LionWebJsonNode | undefined, prop: LionWebJsonProperty, context: JsonContext): void {
80
+ validateProperty(_node, nodeConcept, prop, context) {
117
81
  if (prop.value === null) {
118
- return
82
+ return;
119
83
  }
120
- const propertyDefinition = this.registry.getNodeByMetaPointer(prop.property)
121
- if ( propertyDefinition === undefined) {
122
- this.validationResult.issue(new Language_UnknownProperty_Issue(context, prop.property))
123
- return
84
+ const propertyDefinition = this.registry.getNodeByMetaPointer(prop.property);
85
+ if (propertyDefinition === undefined) {
86
+ this.validationResult.issue(new Language_UnknownProperty_Issue(context, prop.property));
87
+ return;
124
88
  }
125
89
  if (propertyDefinition.classifier.key !== M3_Keys.Property) {
126
- this.validationResult.issue(new Language_IncorrectPropertyMetaPointer_Issue(context, prop.property, propertyDefinition.classifier.key))
127
- return
90
+ this.validationResult.issue(new Language_IncorrectPropertyMetaPointer_Issue(context, prop.property, propertyDefinition.classifier.key));
91
+ return;
128
92
  }
129
93
  if (nodeConcept !== undefined) {
130
- const props = this.registry.languages.allProperties(nodeConcept)
94
+ const props = this.registry.languages.allProperties(nodeConcept);
131
95
  if (!props.includes(propertyDefinition)) {
132
- this.validationResult.issue(new Language_PropertyMetaPointerNotInClass_Issue(context, prop.property, nodeConcept))
133
- return
96
+ this.validationResult.issue(new Language_PropertyMetaPointerNotInClass_Issue(context, prop.property, nodeConcept));
97
+ return;
134
98
  }
135
99
  }
136
-
137
- const refType = NodeUtils.findReference(propertyDefinition, MetaPointers.PropertyType)
100
+ const refType = NodeUtils.findReference(propertyDefinition, MetaPointers.PropertyType);
138
101
  // const refType = propertyDefinition.references.find(ref => isEqualMetaPointer(ref.reference, MetaPointers.PropertyType))
139
- const propertyName = propertyDefinition.properties.find(p => p.property.key === LION_CORE_BUILTINS_INAMED_NAME)?.value
102
+ const propertyName = propertyDefinition.properties.find(p => p.property.key === LION_CORE_BUILTINS_INAMED_NAME)?.value;
140
103
  // console.log("Found type should be " + refType.targets[0].reference);
141
104
  if (propertyName !== null && propertyName !== undefined) {
142
105
  if (refType !== null && refType !== undefined) {
143
- const typeReferenceId = refType.targets[0].reference
106
+ const typeReferenceId = refType.targets[0].reference;
144
107
  switch (typeReferenceId) {
145
108
  case LIONWEB_BOOLEAN_TYPE:
146
- validateBoolean(prop.value, this.validationResult, context)
147
- break
109
+ validateBoolean(prop.value, this.validationResult, context);
110
+ break;
148
111
  case LIONWEB_INTEGER_TYPE:
149
- validateInteger(prop.value, this.validationResult, context)
150
- break
112
+ validateInteger(prop.value, this.validationResult, context);
113
+ break;
151
114
  case LIONWEB_STRING_TYPE:
152
115
  // Each string is correct and having another JSON type is already captured
153
- break
116
+ break;
154
117
  case LIONWEB_JSON_TYPE:
155
- validateJSON(prop.value, this.validationResult, context)
156
- break
118
+ validateJSON(prop.value, this.validationResult, context);
119
+ break;
157
120
  default: {
158
121
  // Check for enumeration
159
122
  // console.log("validateProperty: 0")
160
- const propTypeReference = NodeUtils.findReference(propertyDefinition, MetaPointers.PropertyType)
123
+ const propTypeReference = NodeUtils.findReference(propertyDefinition, MetaPointers.PropertyType);
161
124
  if (propTypeReference === undefined) {
162
125
  // console.log("validateProperty: 1")
163
- break
126
+ break;
164
127
  }
165
- const propType = this.registry.findNode(propTypeReference.targets[0].reference)
128
+ const propType = this.registry.findNode(propTypeReference.targets[0].reference);
166
129
  if (propType === undefined) {
167
130
  // console.log("validateProperty: 1.4 for " + prop.value + " ==> " + propTypeReference.targets[0].reference)
168
- break
131
+ break;
169
132
  }
170
- let match = false
133
+ let match = false;
171
134
  if (isEqualMetaPointer(propType.classifier, MetaPointers.Enumeration)) {
172
- const literalsContainment = NodeUtils.findContainment(propType, MetaPointers.EnumerationLiterals)
135
+ const literalsContainment = NodeUtils.findContainment(propType, MetaPointers.EnumerationLiterals);
173
136
  if (literalsContainment === undefined) {
174
137
  // console.log("validateProperty: 2")
175
138
  break;
176
139
  }
177
- const literals = literalsContainment.children.map(child => this.registry.findNode(child))
140
+ const literals = literalsContainment.children.map(child => this.registry.findNode(child));
178
141
  match = literals.some(lit => {
179
142
  if (lit === undefined) {
180
143
  // console.log("validateProperty: 3")
181
- return false
144
+ return false;
182
145
  }
183
- const litKeyProp = NodeUtils.findProperty(lit, MetaPointers.IKeyedKey)
146
+ const litKeyProp = NodeUtils.findProperty(lit, MetaPointers.IKeyedKey);
184
147
  if (litKeyProp === undefined) {
185
148
  // console.log("validateProperty: 4")
186
- return false
149
+ return false;
187
150
  }
188
- return prop.value === litKeyProp.value
189
- })
151
+ return prop.value === litKeyProp.value;
152
+ });
190
153
  }
191
154
  if (!match) {
192
- this.validationResult.issue(new Language_PropertyValue_Issue(context, prop.property.key, prop.value, propType.classifier.key))
155
+ this.validationResult.issue(new Language_PropertyValue_Issue(context, prop.property.key, prop.value, propType.classifier.key));
193
156
  }
194
157
  }
195
158
  }
196
- } else {
159
+ }
160
+ else {
197
161
  // TODO refType not found, but
198
162
  }
199
163
  }
200
164
  }
201
165
  }
166
+ //# sourceMappingURL=LionWebLanguageReferenceValidator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LionWebLanguageReferenceValidator.js","sourceRoot":"","sources":["../../src/validators/LionWebLanguageReferenceValidator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { LionWebJsonChunk, LionWebJsonNode } from "@lionweb/json";
2
+ import { LionWebJsonChunkWrapper } from "@lionweb/json-utils";
3
+ import { LanguageRegistry } from "../languages/index.js";
4
+ import { ValidationResult } from "./generic/ValidationResult.js";
5
+ /**
6
+ * Validates whether a chunk is a valid language definition
7
+ */
8
+ export declare class LionWebLanguageValidator {
9
+ private registry;
10
+ validationResult: ValidationResult;
11
+ chunkWrapper: LionWebJsonChunkWrapper | undefined;
12
+ constructor(validationResult: ValidationResult, registry: LanguageRegistry);
13
+ /**
14
+ * Check whether the metamodel is a Language.
15
+ * Assumption is that _chunk_ is already validated as a correct :LionWebJsonChunk
16
+ * @param chunk
17
+ */
18
+ validateLanguage(chunk: LionWebJsonChunk): void;
19
+ validateConcept(node: LionWebJsonNode): void;
20
+ validateNode(node: LionWebJsonNode): void;
21
+ validateProperties(node: LionWebJsonNode, classifier: LionWebJsonNode): void;
22
+ }
23
+ //# sourceMappingURL=LionWebLanguageValidator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LionWebLanguageValidator.d.ts","sourceRoot":"","sources":["../../src/validators/LionWebLanguageValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,gBAAgB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AACrF,OAAO,EAAoC,uBAAuB,EAAgB,MAAM,qBAAqB,CAAA;AAG7G,OAAO,EAAa,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAEhE;;GAEG;AACH,qBAAa,wBAAwB;IAKe,OAAO,CAAC,QAAQ;IAJhE,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,YAAY,EAAE,uBAAuB,GAAG,SAAS,CAAA;gBAGrC,gBAAgB,EAAE,gBAAgB,EAAU,QAAQ,EAAE,gBAAgB;IAKlF;;;;OAIG;IACH,gBAAgB,CAAC,KAAK,EAAE,gBAAgB;IAqBxC,eAAe,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI;IAS5C,YAAY,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI;IAWzC,kBAAkB,CAAC,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,GAAG,IAAI;CAW/E"}