@lionweb/validation 0.6.13-beta.0 → 0.6.13-beta.2
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.
- package/dist/validators/LionWebChunkDefinitions.d.ts +2 -2
- package/dist/validators/LionWebChunkDefinitions.d.ts.map +1 -1
- package/dist/validators/LionWebChunkDefinitions.js +19 -28
- package/dist/validators/LionWebChunkDefinitions.js.map +1 -1
- package/dist/validators/generic/SyntaxValidator.d.ts +6 -6
- package/dist/validators/generic/SyntaxValidator.d.ts.map +1 -1
- package/dist/validators/generic/SyntaxValidator.js +50 -55
- package/dist/validators/generic/SyntaxValidator.js.map +1 -1
- package/dist/validators/generic/ValidationTypes.d.ts +1 -21
- package/dist/validators/generic/ValidationTypes.d.ts.map +1 -1
- package/dist/validators/generic/ValidationTypes.js +0 -18
- package/dist/validators/generic/ValidationTypes.js.map +1 -1
- package/dist/validators/generic/index.d.ts +1 -0
- package/dist/validators/generic/index.d.ts.map +1 -1
- package/dist/validators/generic/index.js +1 -0
- package/dist/validators/generic/index.js.map +1 -1
- package/dist/validators/index.d.ts +1 -0
- package/dist/validators/index.d.ts.map +1 -1
- package/dist/validators/index.js +1 -0
- package/dist/validators/index.js.map +1 -1
- package/package.json +3 -3
- package/src/validators/LionWebChunkDefinitions.ts +20 -34
- package/src/validators/generic/SyntaxValidator.ts +83 -93
- package/src/validators/generic/ValidationTypes.ts +1 -34
- package/src/validators/generic/index.ts +1 -0
- package/src/validators/index.ts +1 -0
- package/src/json/ChunkUtils.d.ts +0 -26
- package/src/json/ChunkUtils.d.ts.map +0 -1
- package/src/json/ChunkUtils.js +0 -46
- package/src/json/ChunkUtils.js.map +0 -1
- package/src/json/JsonContext.d.ts +0 -11
- package/src/json/JsonContext.d.ts.map +0 -1
- package/src/json/JsonContext.js +0 -25
- package/src/json/JsonContext.js.map +0 -1
- package/src/json/LionCore_M3.json +0 -2320
- package/src/json/LionCore_builtins.json +0 -231
- package/src/json/LionWebJson.d.ts +0 -50
- package/src/json/LionWebJson.d.ts.map +0 -1
- package/src/json/LionWebJson.js +0 -27
- package/src/json/LionWebJson.js.map +0 -1
- package/src/json/LionWebJsonChunkWrapper.d.ts +0 -39
- package/src/json/LionWebJsonChunkWrapper.d.ts.map +0 -1
- package/src/json/LionWebJsonChunkWrapper.js +0 -119
- package/src/json/LionWebJsonChunkWrapper.js.map +0 -1
- package/src/json/M3definitions.d.ts +0 -176
- package/src/json/M3definitions.d.ts.map +0 -1
- package/src/json/M3definitions.js +0 -174
- package/src/json/M3definitions.js.map +0 -1
- package/src/json/NodeUtils.d.ts +0 -23
- package/src/json/NodeUtils.d.ts.map +0 -1
- package/src/json/NodeUtils.js +0 -57
- package/src/json/NodeUtils.js.map +0 -1
- package/src/json/index.d.ts +0 -7
- package/src/json/index.d.ts.map +0 -1
- package/src/json/index.js +0 -7
- package/src/json/index.js.map +0 -1
- package/src/languages/CompositeLionWebLanguageWrapper.d.ts +0 -24
- package/src/languages/CompositeLionWebLanguageWrapper.d.ts.map +0 -1
- package/src/languages/CompositeLionWebLanguageWrapper.js +0 -56
- package/src/languages/CompositeLionWebLanguageWrapper.js.map +0 -1
- package/src/languages/LanguageRegistry.d.ts +0 -19
- package/src/languages/LanguageRegistry.d.ts.map +0 -1
- package/src/languages/LanguageRegistry.js +0 -37
- package/src/languages/LanguageRegistry.js.map +0 -1
- package/src/languages/LanguageUtils.d.ts +0 -35
- package/src/languages/LanguageUtils.d.ts.map +0 -1
- package/src/languages/LanguageUtils.js +0 -54
- package/src/languages/LanguageUtils.js.map +0 -1
- package/src/languages/LionWebLanguageWrapper.d.ts +0 -31
- package/src/languages/LionWebLanguageWrapper.d.ts.map +0 -1
- package/src/languages/LionWebLanguageWrapper.js +0 -69
- package/src/languages/LionWebLanguageWrapper.js.map +0 -1
- package/src/languages/MetaPointerMap.d.ts +0 -11
- package/src/languages/MetaPointerMap.d.ts.map +0 -1
- package/src/languages/MetaPointerMap.js +0 -39
- package/src/languages/MetaPointerMap.js.map +0 -1
- package/src/languages/index.d.ts +0 -3
- package/src/languages/index.d.ts.map +0 -1
- package/src/languages/index.js +0 -3
- package/src/languages/index.js.map +0 -1
- package/src/runners/FileUtils.d.ts +0 -6
- package/src/runners/FileUtils.d.ts.map +0 -1
- package/src/runners/FileUtils.js +0 -53
- package/src/runners/FileUtils.js.map +0 -1
- package/src/runners/RunCheckFolder.d.ts +0 -2
- package/src/runners/RunCheckFolder.d.ts.map +0 -1
- package/src/runners/RunCheckFolder.js +0 -6
- package/src/runners/RunCheckFolder.js.map +0 -1
- package/src/runners/RunCheckFolderWithLanguage.d.ts +0 -2
- package/src/runners/RunCheckFolderWithLanguage.d.ts.map +0 -1
- package/src/runners/RunCheckFolderWithLanguage.js +0 -40
- package/src/runners/RunCheckFolderWithLanguage.js.map +0 -1
- package/src/runners/RunLioncoreDiff.d.ts +0 -2
- package/src/runners/RunLioncoreDiff.d.ts.map +0 -1
- package/src/runners/RunLioncoreDiff.js +0 -22
- package/src/runners/RunLioncoreDiff.js.map +0 -1
- package/src/runners/Utils.d.ts +0 -7
- package/src/runners/Utils.d.ts.map +0 -1
- package/src/runners/Utils.js +0 -48
- package/src/runners/Utils.js.map +0 -1
- package/src/runners/index.d.ts +0 -3
- package/src/runners/index.d.ts.map +0 -1
- package/src/runners/index.js +0 -3
- package/src/runners/index.js.map +0 -1
- package/src/tryout.js +0 -21
- package/src/util/graphs.d.ts +0 -18
- package/src/util/graphs.d.ts.map +0 -1
- package/src/util/graphs.js +0 -27
- package/src/util/graphs.js.map +0 -1
- package/structure.puml +0 -25
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { PropertyDefinition } from "./generic/ValidationTypes.js";
|
|
2
2
|
/**
|
|
3
3
|
* The structure below defines the structure of a LionWeb Chunk by defining all the properties.
|
|
4
4
|
* It can
|
|
5
5
|
* - be fed to the SyntaxValidator to validate an object sat runtime.
|
|
6
6
|
* - used to generate all the types for a LionWebChunk.
|
|
7
7
|
*/
|
|
8
|
-
export declare const expectedTypes: Map<string,
|
|
8
|
+
export declare const expectedTypes: Map<string, PropertyDefinition[]>;
|
|
9
9
|
//# sourceMappingURL=LionWebChunkDefinitions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LionWebChunkDefinitions.d.ts","sourceRoot":"","sources":["../../src/validators/LionWebChunkDefinitions.ts"],"names":[],"mappings":"AAMA,OAAO,
|
|
1
|
+
{"version":3,"file":"LionWebChunkDefinitions.d.ts","sourceRoot":"","sources":["../../src/validators/LionWebChunkDefinitions.ts"],"names":[],"mappings":"AAMA,OAAO,EAA4B,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAE3F;;;;;GAKG;AACH,eAAO,MAAM,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,EAAE,CAuF1D,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { validateId, validateKey, validateSerializationFormatVersion, validateVersion } from "./ValidationFunctions.js";
|
|
2
|
-
import { MAY_BE_NULL,
|
|
2
|
+
import { MAY_BE_NULL, PropertyDef } from "./generic/ValidationTypes.js";
|
|
3
3
|
/**
|
|
4
4
|
* The structure below defines the structure of a LionWeb Chunk by defining all the properties.
|
|
5
5
|
* It can
|
|
@@ -10,9 +10,9 @@ export const expectedTypes = new Map([
|
|
|
10
10
|
[
|
|
11
11
|
"LionWebMetaPointer",
|
|
12
12
|
[
|
|
13
|
-
PropertyDef({ property: "key", expectedType: "
|
|
14
|
-
PropertyDef({ property: "version", expectedType: "
|
|
15
|
-
PropertyDef({ property: "language", expectedType: "
|
|
13
|
+
PropertyDef({ property: "key", expectedType: "string", validate: validateKey }),
|
|
14
|
+
PropertyDef({ property: "version", expectedType: "string", validate: validateVersion }),
|
|
15
|
+
PropertyDef({ property: "language", expectedType: "string", validate: validateKey })
|
|
16
16
|
]
|
|
17
17
|
],
|
|
18
18
|
[
|
|
@@ -26,7 +26,7 @@ export const expectedTypes = new Map([
|
|
|
26
26
|
[
|
|
27
27
|
"LionWebChunk",
|
|
28
28
|
[
|
|
29
|
-
PropertyDef({ property: "serializationFormatVersion", expectedType: "
|
|
29
|
+
PropertyDef({ property: "serializationFormatVersion", expectedType: "string", validate: validateSerializationFormatVersion }),
|
|
30
30
|
PropertyDef({ property: "languages", expectedType: "LionWebUsedLanguage", isList: true }),
|
|
31
31
|
PropertyDef({ property: "nodes", expectedType: "LionWebNode", isList: true })
|
|
32
32
|
]
|
|
@@ -34,20 +34,20 @@ export const expectedTypes = new Map([
|
|
|
34
34
|
[
|
|
35
35
|
"LionWebUsedLanguage",
|
|
36
36
|
[
|
|
37
|
-
PropertyDef({ property: "key", expectedType: "
|
|
38
|
-
PropertyDef({ property: "version", expectedType: "
|
|
37
|
+
PropertyDef({ property: "key", expectedType: "string", validate: validateKey }),
|
|
38
|
+
PropertyDef({ property: "version", expectedType: "string", validate: validateVersion })
|
|
39
39
|
]
|
|
40
40
|
],
|
|
41
41
|
[
|
|
42
42
|
"LionWebNode",
|
|
43
43
|
[
|
|
44
|
-
PropertyDef({ property: "id", expectedType: "
|
|
44
|
+
PropertyDef({ property: "id", expectedType: "string", validate: validateId }),
|
|
45
45
|
PropertyDef({ property: "classifier", expectedType: "LionWebMetaPointer" }),
|
|
46
46
|
PropertyDef({ property: "properties", expectedType: "LionWebProperty", isList: true }),
|
|
47
47
|
PropertyDef({ property: "containments", expectedType: "LionWebContainment", isList: true }),
|
|
48
48
|
PropertyDef({ property: "references", expectedType: "LionWebReference", isList: true }),
|
|
49
|
-
PropertyDef({ property: "annotations", expectedType: "
|
|
50
|
-
PropertyDef({ property: "parent", expectedType: "
|
|
49
|
+
PropertyDef({ property: "annotations", expectedType: "string", isList: true, validate: validateId }),
|
|
50
|
+
PropertyDef({ property: "parent", expectedType: "string", mayBeNull: MAY_BE_NULL, validate: validateId }),
|
|
51
51
|
]
|
|
52
52
|
],
|
|
53
53
|
[
|
|
@@ -61,7 +61,7 @@ export const expectedTypes = new Map([
|
|
|
61
61
|
"LionWebContainment",
|
|
62
62
|
[
|
|
63
63
|
PropertyDef({ property: "containment", expectedType: "LionWebMetaPointer" }),
|
|
64
|
-
PropertyDef({ property: "children", expectedType: "
|
|
64
|
+
PropertyDef({ property: "children", expectedType: "string", isList: true, validate: validateId }),
|
|
65
65
|
]
|
|
66
66
|
],
|
|
67
67
|
[
|
|
@@ -75,32 +75,23 @@ export const expectedTypes = new Map([
|
|
|
75
75
|
"LionWebReferenceTarget",
|
|
76
76
|
[
|
|
77
77
|
PropertyDef({ property: "resolveInfo", expectedType: "string", mayBeNull: MAY_BE_NULL }),
|
|
78
|
-
PropertyDef({ property: "reference", expectedType: "
|
|
78
|
+
PropertyDef({ property: "reference", expectedType: "string", mayBeNull: MAY_BE_NULL, validate: validateId }),
|
|
79
79
|
]
|
|
80
80
|
],
|
|
81
81
|
/**
|
|
82
|
-
* Elements without properties are assumed to be JSON/JS primitive values, and tested using `typeof
|
|
83
|
-
* and the (optional) validate function.
|
|
82
|
+
* Elements without properties are assumed to be JSON/JS primitive values, and tested using `typeof`.
|
|
84
83
|
*/
|
|
85
84
|
[
|
|
86
|
-
"
|
|
87
|
-
|
|
88
|
-
],
|
|
89
|
-
[
|
|
90
|
-
"LionWebKey",
|
|
91
|
-
PrimitiveDef({ primitiveType: "string", validate: validateKey }),
|
|
92
|
-
],
|
|
93
|
-
[
|
|
94
|
-
"LionWebVersion",
|
|
95
|
-
PrimitiveDef({ primitiveType: "string", validate: validateVersion }),
|
|
85
|
+
"string",
|
|
86
|
+
[]
|
|
96
87
|
],
|
|
97
88
|
[
|
|
98
|
-
"
|
|
99
|
-
|
|
89
|
+
"number",
|
|
90
|
+
[]
|
|
100
91
|
],
|
|
101
92
|
[
|
|
102
|
-
"
|
|
103
|
-
|
|
93
|
+
"boolean",
|
|
94
|
+
[]
|
|
104
95
|
],
|
|
105
96
|
]);
|
|
106
97
|
//# sourceMappingURL=LionWebChunkDefinitions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LionWebChunkDefinitions.js","sourceRoot":"","sources":["../../src/validators/LionWebChunkDefinitions.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,UAAU,EACV,WAAW,EACX,kCAAkC,EAClC,eAAe,EAClB,MAAM,0BAA0B,CAAA;AACjC,OAAO,
|
|
1
|
+
{"version":3,"file":"LionWebChunkDefinitions.js","sourceRoot":"","sources":["../../src/validators/LionWebChunkDefinitions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { JsonContext } from "../../json/JsonContext.js";
|
|
2
2
|
import { ValidationResult } from "./ValidationResult.js";
|
|
3
|
-
import {
|
|
3
|
+
import { PropertyDefinition, UnknownObjectType } from "./ValidationTypes.js";
|
|
4
4
|
/**
|
|
5
5
|
* Syntax Validator can check whether objects are structurally conforming to the
|
|
6
|
-
* definitions given in `
|
|
6
|
+
* definitions given in `expectedTypes`.
|
|
7
7
|
*/
|
|
8
8
|
export declare class SyntaxValidator {
|
|
9
9
|
validationResult: ValidationResult;
|
|
10
|
-
|
|
11
|
-
constructor(validationResult: ValidationResult, expectedTypes: Map<string,
|
|
10
|
+
expectedTypes: Map<string, PropertyDefinition[]>;
|
|
11
|
+
constructor(validationResult: ValidationResult, expectedTypes: Map<string, PropertyDefinition[]>);
|
|
12
12
|
/**
|
|
13
13
|
* Check whether `obj` is a JSON object that conforms to the definition of `expectedType`.
|
|
14
14
|
* All errors found will be pushed into the `errors` array, if its length is not 0, the check has failed.
|
|
@@ -19,13 +19,13 @@ export declare class SyntaxValidator {
|
|
|
19
19
|
/**
|
|
20
20
|
* Validate whether `object` is structured conform the properties in `propertyDef`
|
|
21
21
|
* @param originalProperty The property of which `object` it the value
|
|
22
|
-
* @param
|
|
22
|
+
* @param propertyDef The property definitions that are being validated
|
|
23
23
|
* @param object The object being validated
|
|
24
24
|
* @param jsonContext The location in the JSON
|
|
25
25
|
* @private
|
|
26
26
|
*/
|
|
27
27
|
private validateObjectProperties;
|
|
28
|
-
validatePrimitiveValue(
|
|
28
|
+
validatePrimitiveValue(propDef: PropertyDefinition, object: unknown, jsonContext: JsonContext): boolean;
|
|
29
29
|
/**
|
|
30
30
|
* Check whether there are extra properties that should not be there.
|
|
31
31
|
* @param obj Object to be validated
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SyntaxValidator.d.ts","sourceRoot":"","sources":["../../../src/validators/generic/SyntaxValidator.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,
|
|
1
|
+
{"version":3,"file":"SyntaxValidator.d.ts","sourceRoot":"","sources":["../../../src/validators/generic/SyntaxValidator.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAE5E;;;GAGG;AACH,qBAAa,eAAe;IACxB,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAA;gBAEpC,gBAAgB,EAAE,gBAAgB,EAAE,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAKhG;;;;;OAKG;IACH,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM;IAa3C;;;;;;;OAOG;IACH,OAAO,CAAC,wBAAwB;IA+EhC,sBAAsB,CAAC,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,GAAG,OAAO;IAavG;;;;;OAKG;IACH,oBAAoB,CAAC,GAAG,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,WAAW;CAa1F"}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import { Syntax_ArrayContainsNull_Issue, Syntax_PropertyMissingIssue, Syntax_PropertyNullIssue, Syntax_PropertyTypeIssue, Syntax_PropertyUnknownIssue } from "../../issues/index.js";
|
|
2
2
|
import { JsonContext } from "../../json/JsonContext.js";
|
|
3
|
-
import { isObjectDefinition, isPrimitiveDefinition } from "./ValidationTypes.js";
|
|
4
3
|
/**
|
|
5
4
|
* Syntax Validator can check whether objects are structurally conforming to the
|
|
6
|
-
* definitions given in `
|
|
5
|
+
* definitions given in `expectedTypes`.
|
|
7
6
|
*/
|
|
8
7
|
export class SyntaxValidator {
|
|
9
8
|
constructor(validationResult, expectedTypes) {
|
|
10
9
|
this.validationResult = validationResult;
|
|
11
|
-
this.
|
|
10
|
+
this.expectedTypes = expectedTypes;
|
|
12
11
|
}
|
|
13
12
|
/**
|
|
14
13
|
* Check whether `obj` is a JSON object that conforms to the definition of `expectedType`.
|
|
@@ -17,123 +16,119 @@ export class SyntaxValidator {
|
|
|
17
16
|
* @param expectedType The expected type of the object.
|
|
18
17
|
*/
|
|
19
18
|
validate(obj, expectedType) {
|
|
19
|
+
if (typeof obj !== "object") {
|
|
20
|
+
throw new Error(`SyntaxValidator.validate: 'obj' is not an object, expected a '${expectedType}'`);
|
|
21
|
+
}
|
|
20
22
|
const object = obj;
|
|
21
|
-
const
|
|
22
|
-
if (
|
|
23
|
+
const defs = this.expectedTypes.get(expectedType);
|
|
24
|
+
if (defs === undefined) {
|
|
23
25
|
throw new Error(`SyntaxValidator.validate: cannot find definition for ${expectedType}`);
|
|
24
26
|
}
|
|
25
|
-
else
|
|
26
|
-
this.validateObjectProperties(expectedType,
|
|
27
|
-
}
|
|
28
|
-
else if (isPrimitiveDefinition(typeDef)) {
|
|
29
|
-
this.validatePrimitiveValue("$", typeDef, object, new JsonContext(null, ["$"]));
|
|
27
|
+
else {
|
|
28
|
+
this.validateObjectProperties(expectedType, defs, object, new JsonContext(null, ["$"]));
|
|
30
29
|
}
|
|
31
30
|
}
|
|
32
31
|
/**
|
|
33
32
|
* Validate whether `object` is structured conform the properties in `propertyDef`
|
|
34
33
|
* @param originalProperty The property of which `object` it the value
|
|
35
|
-
* @param
|
|
34
|
+
* @param propertyDef The property definitions that are being validated
|
|
36
35
|
* @param object The object being validated
|
|
37
36
|
* @param jsonContext The location in the JSON
|
|
38
37
|
* @private
|
|
39
38
|
*/
|
|
40
|
-
validateObjectProperties(originalProperty,
|
|
41
|
-
if (
|
|
39
|
+
validateObjectProperties(originalProperty, propertyDef, object, jsonContext) {
|
|
40
|
+
if (propertyDef.length === 0) {
|
|
42
41
|
return;
|
|
43
42
|
}
|
|
44
43
|
if ((typeof object) !== "object") {
|
|
45
44
|
this.validationResult.issue(new Syntax_PropertyTypeIssue(jsonContext, originalProperty, "object", typeof object));
|
|
46
45
|
return;
|
|
47
46
|
}
|
|
48
|
-
for (const
|
|
49
|
-
const
|
|
50
|
-
const validator =
|
|
51
|
-
const propertyValue = object[
|
|
47
|
+
for (const pdef of propertyDef) {
|
|
48
|
+
const expectedPropertyDefs = this.expectedTypes.get(pdef.expectedType);
|
|
49
|
+
const validator = pdef.validate;
|
|
50
|
+
const propertyValue = object[pdef.property];
|
|
52
51
|
if (propertyValue === undefined) {
|
|
53
|
-
this.validationResult.issue(new Syntax_PropertyMissingIssue(jsonContext,
|
|
52
|
+
this.validationResult.issue(new Syntax_PropertyMissingIssue(jsonContext, pdef.property + `{ ${typeof object}}{${originalProperty}}`));
|
|
54
53
|
continue;
|
|
55
54
|
}
|
|
56
|
-
if (!
|
|
57
|
-
this.validationResult.issue(new Syntax_PropertyNullIssue(jsonContext,
|
|
55
|
+
if (!pdef.mayBeNull && propertyValue === null) {
|
|
56
|
+
this.validationResult.issue(new Syntax_PropertyNullIssue(jsonContext, pdef.property));
|
|
58
57
|
continue;
|
|
59
58
|
}
|
|
60
|
-
if (
|
|
59
|
+
if (pdef.mayBeNull && propertyValue === null) {
|
|
61
60
|
// Ok, stop checking, continue with next property def
|
|
62
61
|
continue;
|
|
63
62
|
}
|
|
64
|
-
if (
|
|
63
|
+
if (pdef.isList) {
|
|
65
64
|
// Check whether value is an array
|
|
66
65
|
if (!Array.isArray(propertyValue)) {
|
|
67
|
-
const newContext = jsonContext.concat(
|
|
68
|
-
this.validationResult.issue(new Syntax_PropertyTypeIssue(newContext,
|
|
66
|
+
const newContext = jsonContext.concat(pdef.property);
|
|
67
|
+
this.validationResult.issue(new Syntax_PropertyTypeIssue(newContext, pdef.property, "array", typeof propertyValue));
|
|
69
68
|
return;
|
|
70
69
|
}
|
|
71
70
|
// If an array, validate every item in the array
|
|
72
71
|
propertyValue.forEach((item, index) => {
|
|
73
|
-
const newContext = jsonContext.concat(
|
|
72
|
+
const newContext = jsonContext.concat(pdef.property, index);
|
|
74
73
|
if (item === null) {
|
|
75
|
-
this.validationResult.issue(new Syntax_ArrayContainsNull_Issue(newContext,
|
|
74
|
+
this.validationResult.issue(new Syntax_ArrayContainsNull_Issue(newContext, pdef.property, index));
|
|
76
75
|
}
|
|
77
76
|
else {
|
|
78
|
-
if (
|
|
79
|
-
if (
|
|
77
|
+
if (expectedPropertyDefs !== undefined) {
|
|
78
|
+
if (expectedPropertyDefs.length === 0) {
|
|
80
79
|
// propertyValue should be a primitive as it has no property definitions
|
|
81
|
-
if (this.validatePrimitiveValue(
|
|
82
|
-
validator.apply(null, [item, this.validationResult, newContext,
|
|
80
|
+
if (this.validatePrimitiveValue(pdef, item, jsonContext)) {
|
|
81
|
+
validator.apply(null, [item, this.validationResult, newContext, pdef]);
|
|
83
82
|
}
|
|
84
83
|
}
|
|
85
84
|
else {
|
|
86
85
|
// propertyValue should be an object, validate its properties
|
|
87
|
-
this.validateObjectProperties(
|
|
88
|
-
validator.apply(null, [item, this.validationResult, newContext,
|
|
86
|
+
this.validateObjectProperties(pdef.property, expectedPropertyDefs, item, newContext);
|
|
87
|
+
validator.apply(null, [item, this.validationResult, newContext, pdef]);
|
|
89
88
|
}
|
|
90
89
|
}
|
|
91
90
|
else {
|
|
92
|
-
throw new Error(`Expected type '${
|
|
91
|
+
throw new Error(`Expected type '${pdef.expectedType} has neither property defs, nor a validator.`);
|
|
93
92
|
}
|
|
94
93
|
}
|
|
95
94
|
});
|
|
96
95
|
}
|
|
97
96
|
else {
|
|
98
|
-
const newContext = jsonContext.concat(
|
|
97
|
+
const newContext = jsonContext.concat(pdef.property);
|
|
99
98
|
if (Array.isArray(propertyValue)) {
|
|
100
|
-
this.validationResult.issue(new Syntax_PropertyTypeIssue(newContext,
|
|
99
|
+
this.validationResult.issue(new Syntax_PropertyTypeIssue(newContext, pdef.property, pdef.expectedType, "array"));
|
|
101
100
|
return;
|
|
102
101
|
}
|
|
103
102
|
// Single valued property, validate it
|
|
104
|
-
if (
|
|
105
|
-
if (
|
|
103
|
+
if (expectedPropertyDefs !== undefined) {
|
|
104
|
+
if (expectedPropertyDefs.length === 0) {
|
|
106
105
|
// propertyValue should be a primitive as it has no property definitions
|
|
107
|
-
if (this.validatePrimitiveValue(
|
|
108
|
-
validator.apply(null, [propertyValue, this.validationResult, newContext,
|
|
106
|
+
if (this.validatePrimitiveValue(pdef, propertyValue, jsonContext)) {
|
|
107
|
+
validator.apply(null, [propertyValue, this.validationResult, newContext, pdef]);
|
|
109
108
|
}
|
|
110
109
|
}
|
|
111
|
-
else if (isObjectDefinition(expectedTypeDef)) {
|
|
112
|
-
// propertyValue should be an object, validate its properties
|
|
113
|
-
this.validateObjectProperties(propertyDef.property, expectedTypeDef, propertyValue, newContext);
|
|
114
|
-
validator.apply(null, [propertyValue, this.validationResult, newContext, propertyDef]);
|
|
115
|
-
}
|
|
116
110
|
else {
|
|
117
|
-
|
|
111
|
+
// propertyValue should be an object, validate its properties
|
|
112
|
+
this.validateObjectProperties(pdef.property, expectedPropertyDefs, propertyValue, newContext);
|
|
113
|
+
validator.apply(null, [propertyValue, this.validationResult, newContext, pdef]);
|
|
118
114
|
}
|
|
119
115
|
}
|
|
120
116
|
else {
|
|
121
|
-
throw new Error(`Expected single type '${
|
|
117
|
+
throw new Error(`Expected single type '${pdef.expectedType}' for '${pdef.property}' at ${newContext.toString()} has neither property defs, nor a validator.`);
|
|
122
118
|
}
|
|
123
119
|
}
|
|
124
120
|
}
|
|
125
|
-
this.checkStrayProperties(object,
|
|
121
|
+
this.checkStrayProperties(object, propertyDef.map(pdef => pdef.property), jsonContext);
|
|
126
122
|
}
|
|
127
|
-
validatePrimitiveValue(
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
if (typeof object !== propDef.
|
|
133
|
-
this.validationResult.issue(new Syntax_PropertyTypeIssue(jsonContext,
|
|
123
|
+
validatePrimitiveValue(propDef, object, jsonContext) {
|
|
124
|
+
if (!propDef.mayBeNull && (object === null || object === undefined)) {
|
|
125
|
+
this.validationResult.issue(new Syntax_PropertyNullIssue(jsonContext, propDef.property));
|
|
126
|
+
return false;
|
|
127
|
+
}
|
|
128
|
+
if (typeof object !== propDef.expectedType) {
|
|
129
|
+
this.validationResult.issue(new Syntax_PropertyTypeIssue(jsonContext, propDef.property, propDef.expectedType, typeof object));
|
|
134
130
|
return false;
|
|
135
131
|
}
|
|
136
|
-
propDef.validate(object, this.validationResult, jsonContext);
|
|
137
132
|
return true;
|
|
138
133
|
}
|
|
139
134
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SyntaxValidator.js","sourceRoot":"","sources":["../../../src/validators/generic/SyntaxValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,8BAA8B,EAC9B,2BAA2B,EAC3B,wBAAwB,EACxB,wBAAwB,EACxB,2BAA2B,EAC9B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"SyntaxValidator.js","sourceRoot":"","sources":["../../../src/validators/generic/SyntaxValidator.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ export type UnknownObjectType = {
|
|
|
4
4
|
[key: string]: unknown;
|
|
5
5
|
};
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
7
|
+
* Definition of a property, used by the SyntaxValidator to validate objects.
|
|
8
8
|
*
|
|
9
9
|
* **Note** that some of the properties are defined as optional.
|
|
10
10
|
* They should not be empty ever!! But being optional allows to leave them out in the `PropertyDef` function.
|
|
@@ -41,24 +41,4 @@ export declare const MAY_BE_NULL = true;
|
|
|
41
41
|
* @constructor
|
|
42
42
|
*/
|
|
43
43
|
export declare function PropertyDef(propDef: PropertyDefinition): PropertyDefinition;
|
|
44
|
-
export type PrimitiveDefinition = {
|
|
45
|
-
/**
|
|
46
|
-
* The expected type of the property value
|
|
47
|
-
*/
|
|
48
|
-
primitiveType: string;
|
|
49
|
-
/**
|
|
50
|
-
* Additional validation function
|
|
51
|
-
*/
|
|
52
|
-
validate?: ValidatorFunction;
|
|
53
|
-
};
|
|
54
|
-
/**
|
|
55
|
-
* Easy way to create a PropertyDefinition typed object with default values.
|
|
56
|
-
* @param propDef
|
|
57
|
-
* @constructor
|
|
58
|
-
*/
|
|
59
|
-
export declare function PrimitiveDef(propDef: PrimitiveDefinition): PrimitiveDefinition;
|
|
60
|
-
export type ObjectDefinition = PropertyDefinition[];
|
|
61
|
-
export type TypeDefinition = ObjectDefinition | PrimitiveDefinition;
|
|
62
|
-
export declare function isObjectDefinition(def: TypeDefinition): def is ObjectDefinition;
|
|
63
|
-
export declare function isPrimitiveDefinition(def: TypeDefinition): def is PrimitiveDefinition;
|
|
64
44
|
//# sourceMappingURL=ValidationTypes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ValidationTypes.d.ts","sourceRoot":"","sources":["../../../src/validators/generic/ValidationTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAExD,MAAM,MAAM,iBAAiB,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAA;AAE1D;;;;;;;GAOG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC7B;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;IAChB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAA;IACpB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,QAAQ,CAAC,EAAE,iBAAiB,CAAA;CAC/B,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,kBAAkB,KAAK,IAAI,CAAA;AAa1H,eAAO,MAAM,WAAW,OAAO,CAAA;AAE/B;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,kBAAkB,CAS3E
|
|
1
|
+
{"version":3,"file":"ValidationTypes.d.ts","sourceRoot":"","sources":["../../../src/validators/generic/ValidationTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAExD,MAAM,MAAM,iBAAiB,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAA;AAE1D;;;;;;;GAOG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC7B;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;IAChB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAA;IACpB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,QAAQ,CAAC,EAAE,iBAAiB,CAAA;CAC/B,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,kBAAkB,KAAK,IAAI,CAAA;AAa1H,eAAO,MAAM,WAAW,OAAO,CAAA;AAE/B;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,kBAAkB,CAS3E"}
|
|
@@ -24,22 +24,4 @@ export function PropertyDef(propDef) {
|
|
|
24
24
|
validate: validate
|
|
25
25
|
};
|
|
26
26
|
}
|
|
27
|
-
/**
|
|
28
|
-
* Easy way to create a PropertyDefinition typed object with default values.
|
|
29
|
-
* @param propDef
|
|
30
|
-
* @constructor
|
|
31
|
-
*/
|
|
32
|
-
export function PrimitiveDef(propDef) {
|
|
33
|
-
const { primitiveType, validate = emptyValidation } = propDef;
|
|
34
|
-
return {
|
|
35
|
-
primitiveType: primitiveType,
|
|
36
|
-
validate: validate
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
export function isObjectDefinition(def) {
|
|
40
|
-
return Array.isArray(def);
|
|
41
|
-
}
|
|
42
|
-
export function isPrimitiveDefinition(def) {
|
|
43
|
-
return def?.primitiveType !== undefined;
|
|
44
|
-
}
|
|
45
27
|
//# sourceMappingURL=ValidationTypes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ValidationTypes.js","sourceRoot":"","sources":["../../../src/validators/generic/ValidationTypes.ts"],"names":[],"mappings":"AAsCA;;;;;;GAMG;AACH,6DAA6D;AAC7D,SAAS,eAAe,CAAI,MAAS,EAAE,MAAwB,EAAE,GAAgB,EAAG,IAAyB,IAAS,CAAC;AAEvH,uCAAuC;AACvC,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAA;AAE/B;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,OAA2B;IACnD,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,GAAG,KAAK,EAAE,MAAM,GAAG,KAAK,EAAE,QAAQ,GAAG,eAAe,EAAE,GAAG,OAAO,CAAA;IACzG,OAAO;QACH,QAAQ,EAAE,QAAQ;QAClB,YAAY,EAAE,YAAY;QAC1B,MAAM,EAAE,MAAM;QACd,SAAS,EAAE,SAAS;QACpB,QAAQ,EAAE,QAAQ;KACrB,CAAA;AACL,CAAC
|
|
1
|
+
{"version":3,"file":"ValidationTypes.js","sourceRoot":"","sources":["../../../src/validators/generic/ValidationTypes.ts"],"names":[],"mappings":"AAsCA;;;;;;GAMG;AACH,6DAA6D;AAC7D,SAAS,eAAe,CAAI,MAAS,EAAE,MAAwB,EAAE,GAAgB,EAAG,IAAyB,IAAS,CAAC;AAEvH,uCAAuC;AACvC,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAA;AAE/B;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,OAA2B;IACnD,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,GAAG,KAAK,EAAE,MAAM,GAAG,KAAK,EAAE,QAAQ,GAAG,eAAe,EAAE,GAAG,OAAO,CAAA;IACzG,OAAO;QACH,QAAQ,EAAE,QAAQ;QAClB,YAAY,EAAE,YAAY;QAC1B,MAAM,EAAE,MAAM;QACd,SAAS,EAAE,SAAS;QACpB,QAAQ,EAAE,QAAQ;KACrB,CAAA;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/validators/generic/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/validators/generic/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,2BAA2B,CAAA;AACzC,cAAc,sBAAsB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/validators/generic/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/validators/generic/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,2BAA2B,CAAA;AACzC,cAAc,sBAAsB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validators/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,wCAAwC,CAAA;AACtD,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA;AACxC,cAAc,8BAA8B,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validators/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,wCAAwC,CAAA;AACtD,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA;AACxC,cAAc,8BAA8B,CAAA"}
|
package/dist/validators/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/validators/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,wCAAwC,CAAA;AACtD,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA;AACxC,cAAc,8BAA8B,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/validators/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,wCAAwC,CAAA;AACtD,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA;AACxC,cAAc,8BAA8B,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lionweb/validation",
|
|
3
|
-
"version": "0.6.13-beta.
|
|
3
|
+
"version": "0.6.13-beta.2",
|
|
4
4
|
"license": "Apache 2.0",
|
|
5
5
|
"description": "LionWeb Serialization validation",
|
|
6
6
|
"author": "jos.warmer@openmodeling.nl",
|
|
@@ -20,8 +20,8 @@
|
|
|
20
20
|
"copyBuiltins": "node -e \"const fs = require('fs'); fs.copyFileSync('./src/languages/LionCore-builtins.json', './dist/languages/LionCore-builtins.json');\"",
|
|
21
21
|
"lint": "eslint src",
|
|
22
22
|
"test-here": "cd ../test && find dist/validation -type d | sed '1!G;h;$!d' | xargs npx mocha",
|
|
23
|
-
"release": "npm publish
|
|
24
|
-
"release-beta": "npm publish --
|
|
23
|
+
"release": "npm publish",
|
|
24
|
+
"release-beta": "npm publish --tag beta",
|
|
25
25
|
"testValid": "node dist/runners/RunCheckFolder.js ../test/testset/valid",
|
|
26
26
|
"testInvalid": "node dist/runners/RunCheckFolder.js ../test/testset/invalid",
|
|
27
27
|
"testInvalidWithLanguage": "node dist/runners/RunCheckFolderWithLanguage.js ../test/testset/withLanguage/invalid/ ../test/testset/withLanguage/myLang.language.json",
|