@lionweb/core 0.6.13-beta.4 → 0.6.13-beta.5
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/CHANGELOG.md +3 -3
- package/dist/deserializer.d.ts +5 -5
- package/dist/deserializer.d.ts.map +1 -1
- package/dist/deserializer.js +29 -32
- package/dist/deserializer.js.map +1 -1
- package/dist/dynamic-facade.d.ts +1 -1
- package/dist/dynamic-facade.d.ts.map +1 -1
- package/dist/dynamic-facade.js +1 -1
- package/dist/dynamic-facade.js.map +1 -1
- package/dist/facade.d.ts +6 -5
- package/dist/facade.d.ts.map +1 -1
- package/dist/facade.js +2 -2
- package/dist/facade.js.map +1 -1
- package/dist/functions.d.ts +4 -3
- package/dist/functions.d.ts.map +1 -1
- package/dist/functions.js +1 -1
- package/dist/functions.js.map +1 -1
- package/dist/index.d.ts +0 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -2
- package/dist/index.js.map +1 -1
- package/dist/m1/reference-utils.d.ts +1 -1
- package/dist/m1/reference-utils.d.ts.map +1 -1
- package/dist/m1/reference-utils.js.map +1 -1
- package/dist/m3/builtins.d.ts +1 -1
- package/dist/m3/builtins.d.ts.map +1 -1
- package/dist/m3/builtins.js +16 -19
- package/dist/m3/builtins.js.map +1 -1
- package/dist/m3/constraints.d.ts.map +1 -1
- package/dist/m3/constraints.js +9 -4
- package/dist/m3/constraints.js.map +1 -1
- package/dist/m3/deserializer.d.ts +3 -3
- package/dist/m3/deserializer.d.ts.map +1 -1
- package/dist/m3/deserializer.js.map +1 -1
- package/dist/m3/facade.d.ts.map +1 -1
- package/dist/m3/facade.js +7 -7
- package/dist/m3/facade.js.map +1 -1
- package/dist/m3/factory.d.ts +2 -2
- package/dist/m3/factory.d.ts.map +1 -1
- package/dist/m3/factory.js.map +1 -1
- package/dist/m3/functions.d.ts +6 -5
- package/dist/m3/functions.d.ts.map +1 -1
- package/dist/m3/functions.js +3 -5
- package/dist/m3/functions.js.map +1 -1
- package/dist/m3/lioncore.d.ts.map +1 -1
- package/dist/m3/lioncore.js +22 -59
- package/dist/m3/lioncore.js.map +1 -1
- package/dist/m3/reference-checker.d.ts.map +1 -1
- package/dist/m3/reference-checker.js +2 -2
- package/dist/m3/reference-checker.js.map +1 -1
- package/dist/m3/serializer.d.ts +2 -2
- package/dist/m3/serializer.d.ts.map +1 -1
- package/dist/m3/serializer.js.map +1 -1
- package/dist/m3/types.d.ts +14 -14
- package/dist/m3/types.d.ts.map +1 -1
- package/dist/m3/types.js.map +1 -1
- package/dist/references.d.ts +3 -3
- package/dist/references.d.ts.map +1 -1
- package/dist/serializer.d.ts +6 -6
- package/dist/serializer.d.ts.map +1 -1
- package/dist/serializer.js +18 -24
- package/dist/serializer.js.map +1 -1
- package/dist/symbol-table.d.ts +15 -15
- package/dist/symbol-table.d.ts.map +1 -1
- package/dist/symbol-table.js +1 -1
- package/dist/symbol-table.js.map +1 -1
- package/dist/types.d.ts +2 -10
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -6
- package/dist/types.js.map +1 -1
- package/package.json +5 -1
- package/dist/serialization.d.ts +0 -52
- package/dist/serialization.d.ts.map +0 -1
- package/dist/serialization.js +0 -7
- package/dist/serialization.js.map +0 -1
- package/dist/utils/array-helpers.d.ts +0 -14
- package/dist/utils/array-helpers.d.ts.map +0 -1
- package/dist/utils/array-helpers.js +0 -15
- package/dist/utils/array-helpers.js.map +0 -1
- package/dist/utils/cycles.d.ts +0 -8
- package/dist/utils/cycles.d.ts.map +0 -1
- package/dist/utils/cycles.js +0 -26
- package/dist/utils/cycles.js.map +0 -1
- package/dist/utils/index.d.ts +0 -7
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/index.js +0 -7
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/map-helpers.d.ts +0 -26
- package/dist/utils/map-helpers.d.ts.map +0 -1
- package/dist/utils/map-helpers.js +0 -41
- package/dist/utils/map-helpers.js.map +0 -1
- package/dist/utils/recursion.d.ts +0 -13
- package/dist/utils/recursion.d.ts.map +0 -1
- package/dist/utils/recursion.js +0 -21
- package/dist/utils/recursion.js.map +0 -1
- package/dist/utils/sorting.d.ts +0 -7
- package/dist/utils/sorting.d.ts.map +0 -1
- package/dist/utils/sorting.js +0 -7
- package/dist/utils/sorting.js.map +0 -1
- package/dist/utils/string-mapping.d.ts +0 -6
- package/dist/utils/string-mapping.d.ts.map +0 -1
- package/dist/utils/string-mapping.js +0 -10
- package/dist/utils/string-mapping.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -31,9 +31,9 @@
|
|
|
31
31
|
|
|
32
32
|
* Add `featureMetaType` function and `FeatureMetaType` type.
|
|
33
33
|
|
|
34
|
-
* Expose `metaPointerFor` function that computes the `
|
|
34
|
+
* Expose `metaPointerFor` function that computes the `LionWebJsonMetaPointer` for a `Feature`.
|
|
35
35
|
|
|
36
|
-
* Expose `IdOrUnresolved` type that expresses a value is either an `
|
|
36
|
+
* Expose `IdOrUnresolved` type that expresses a value is either an `LionWebId` or a value to indicate that resolution to a node previously failed.
|
|
37
37
|
|
|
38
38
|
* Expose `isMultiple` function that determines whether a `Feature` is multi-valued.
|
|
39
39
|
|
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
* Fix a bug w.r.t. enumeration literals — deserializing changed the keys of enumeration literals in the language's definition.
|
|
76
76
|
* Deserialization doesn't throw on unresolvable references, but warns on the console and returns `null` (which means “unresolved”).
|
|
77
77
|
* Export `byIdMap` function, which computes a map id → thing from an array of things with an `id`, from the package.
|
|
78
|
-
* Make `
|
|
78
|
+
* Make `LionWebJsonProperty.value` `null`-able, to align with the specification.
|
|
79
79
|
|
|
80
80
|
|
|
81
81
|
## 0.6.7
|
package/dist/deserializer.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { LionWebJsonChunk } from "@lionweb/json";
|
|
2
2
|
import { InstantiationFacade } from "./facade.js";
|
|
3
3
|
import { SimplisticHandler } from "./handler.js";
|
|
4
|
-
import { SerializationChunk } from "./serialization.js";
|
|
5
4
|
import { Language, Property } from "./m3/types.js";
|
|
5
|
+
import { Node } from "./types.js";
|
|
6
6
|
export interface PrimitiveTypeDeserializer {
|
|
7
7
|
deserializeValue(value: string | undefined, property: Property): unknown | undefined;
|
|
8
8
|
}
|
|
9
9
|
/**
|
|
10
|
-
* @return a deserialization of a {@link
|
|
10
|
+
* @return a deserialization of a {@link LionWebJsonChunk}
|
|
11
11
|
*
|
|
12
12
|
* @param serializationChunk - a {@link SerializedModel model} from its LionWeb serialization JSON format
|
|
13
13
|
* @param instantiationFacade - a {@link InstantiationFacade} that is used to instantiate nodes and set values on them
|
|
@@ -16,9 +16,9 @@ export interface PrimitiveTypeDeserializer {
|
|
|
16
16
|
* @param primitiveTypeDeserializer - a deserializer for values of primitive types (by default a {@link DefaultPrimitiveTypeDeserializer})
|
|
17
17
|
* @param problemHandler - a handler for reporting problems (by default a {@link defaultSimplisticHandler})
|
|
18
18
|
*/
|
|
19
|
-
export declare const deserializeSerializationChunk: <NT extends Node>(serializationChunk:
|
|
19
|
+
export declare const deserializeSerializationChunk: <NT extends Node>(serializationChunk: LionWebJsonChunk, instantiationFacade: InstantiationFacade<NT>, languages: Language[], dependentNodes: Node[], primitiveTypeDeserializer?: PrimitiveTypeDeserializer, problemHandler?: SimplisticHandler) => NT[];
|
|
20
20
|
/**
|
|
21
21
|
* Alias for {@link deserializeSerializationChunk}.
|
|
22
22
|
*/
|
|
23
|
-
export declare const deserializeChunk: <NT extends Node>(serializationChunk:
|
|
23
|
+
export declare const deserializeChunk: <NT extends Node>(serializationChunk: LionWebJsonChunk, instantiationFacade: InstantiationFacade<NT>, languages: Language[], dependentNodes: Node[], primitiveTypeDeserializer?: PrimitiveTypeDeserializer, problemHandler?: SimplisticHandler) => NT[];
|
|
24
24
|
//# sourceMappingURL=deserializer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deserializer.d.ts","sourceRoot":"","sources":["../src/deserializer.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"deserializer.d.ts","sourceRoot":"","sources":["../src/deserializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgD,gBAAgB,EAA+B,MAAM,eAAe,CAAA;AAE3H,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAA4B,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAG1E,OAAO,EAAwC,QAAQ,EAAiB,QAAQ,EAAa,MAAM,eAAe,CAAA;AAGlH,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAEjC,MAAM,WAAW,yBAAyB;IACtC,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAA;CACvF;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,6BAA6B,wCAClB,gBAAgB,2DAEzB,QAAQ,EAAE,kBAEL,IAAI,EAAE,8BAEK,yBAAyB,mBACpC,iBAAiB,SA0KpC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,wCAtLL,gBAAgB,2DAEzB,QAAQ,EAAE,kBAEL,IAAI,EAAE,8BAEK,yBAAyB,mBACpC,iBAAiB,SA+KwB,CAAA"}
|
package/dist/deserializer.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
+
import { currentSerializationFormatVersion } from "@lionweb/json";
|
|
2
|
+
import { byIdMap, groupBy } from "@lionweb/ts-utils";
|
|
1
3
|
import { defaultSimplisticHandler } from "./handler.js";
|
|
2
|
-
import { unresolved } from "./references.js";
|
|
3
|
-
import { currentSerializationFormatVersion } from "./serialization.js";
|
|
4
|
-
import { MemoisingSymbolTable } from "./symbol-table.js";
|
|
5
4
|
import { DefaultPrimitiveTypeDeserializer } from "./m3/builtins.js";
|
|
6
|
-
import { Classifier, Containment, Enumeration, PrimitiveType, Property, Reference } from "./m3/types.js";
|
|
7
5
|
import { allFeaturesOf } from "./m3/functions.js";
|
|
8
|
-
import {
|
|
6
|
+
import { Classifier, Containment, Enumeration, PrimitiveType, Property, Reference } from "./m3/types.js";
|
|
7
|
+
import { unresolved } from "./references.js";
|
|
8
|
+
import { MemoisingSymbolTable } from "./symbol-table.js";
|
|
9
9
|
/**
|
|
10
|
-
* @return a deserialization of a {@link
|
|
10
|
+
* @return a deserialization of a {@link LionWebJsonChunk}
|
|
11
11
|
*
|
|
12
12
|
* @param serializationChunk - a {@link SerializedModel model} from its LionWeb serialization JSON format
|
|
13
13
|
* @param instantiationFacade - a {@link InstantiationFacade} that is used to instantiate nodes and set values on them
|
|
@@ -29,7 +29,7 @@ primitiveTypeDeserializer = new DefaultPrimitiveTypeDeserializer(), problemHandl
|
|
|
29
29
|
const serializedNodeById = byIdMap(serializedNodes);
|
|
30
30
|
const deserializedNodeById = {};
|
|
31
31
|
/**
|
|
32
|
-
* Instantiates a {@link Node} from the given {@link
|
|
32
|
+
* Instantiates a {@link Node} from the given {@link LionWebJsonNode},
|
|
33
33
|
* and stores it under its ID so references to it can be resolved.
|
|
34
34
|
* For every serialized node, only one instance will ever be constructed (through memoisation).
|
|
35
35
|
*/
|
|
@@ -55,7 +55,7 @@ primitiveTypeDeserializer = new DefaultPrimitiveTypeDeserializer(), problemHandl
|
|
|
55
55
|
}
|
|
56
56
|
};
|
|
57
57
|
/**
|
|
58
|
-
* Instantiates a {@link Node} from its {@link
|
|
58
|
+
* Instantiates a {@link Node} from its {@link LionWebJsonNode serialization}.
|
|
59
59
|
*/
|
|
60
60
|
const instantiate = ({ id, classifier: classifierMetaPointer, properties, containments, references, annotations }, parent) => {
|
|
61
61
|
const classifier = symbolTable.entityMatching(classifierMetaPointer);
|
|
@@ -65,20 +65,21 @@ primitiveTypeDeserializer = new DefaultPrimitiveTypeDeserializer(), problemHandl
|
|
|
65
65
|
}
|
|
66
66
|
const allFeatures = allFeaturesOf(classifier);
|
|
67
67
|
const propertySettings = {};
|
|
68
|
-
const serializedPropertiesPerKey = properties === undefined ? {} : groupBy(properties,
|
|
68
|
+
const serializedPropertiesPerKey = properties === undefined ? {} : groupBy(properties, sp => sp.property.key); // (this assumes no duplicate keys among properties!)
|
|
69
69
|
if (properties !== undefined) {
|
|
70
70
|
allFeatures
|
|
71
|
-
.filter(
|
|
72
|
-
.map(
|
|
73
|
-
.forEach(
|
|
71
|
+
.filter(feature => feature instanceof Property)
|
|
72
|
+
.map(feature => feature)
|
|
73
|
+
.forEach(property => {
|
|
74
74
|
if (property.key in serializedPropertiesPerKey) {
|
|
75
75
|
const value = serializedPropertiesPerKey[property.key][0].value;
|
|
76
76
|
if (property.type instanceof PrimitiveType) {
|
|
77
|
-
propertySettings[property.key] =
|
|
77
|
+
propertySettings[property.key] =
|
|
78
|
+
value === null ? undefined : primitiveTypeDeserializer.deserializeValue(value, property);
|
|
78
79
|
return;
|
|
79
80
|
}
|
|
80
81
|
if (property.type instanceof Enumeration) {
|
|
81
|
-
const literal = property.type.literals.find(
|
|
82
|
+
const literal = property.type.literals.find(literal => literal.key === value);
|
|
82
83
|
if (literal !== undefined) {
|
|
83
84
|
propertySettings[property.key] = instantiationFacade.encodingOf(literal);
|
|
84
85
|
}
|
|
@@ -92,18 +93,16 @@ primitiveTypeDeserializer = new DefaultPrimitiveTypeDeserializer(), problemHandl
|
|
|
92
93
|
if (node === null) {
|
|
93
94
|
return null;
|
|
94
95
|
}
|
|
95
|
-
const serializedContainmentsPerKey = containments === undefined ? {} : groupBy(containments,
|
|
96
|
-
const serializedReferencesPerKey = references === undefined ? {} : groupBy(references,
|
|
97
|
-
allFeatures
|
|
98
|
-
.forEach((feature) => {
|
|
96
|
+
const serializedContainmentsPerKey = containments === undefined ? {} : groupBy(containments, sp => sp.containment.key); // (this assumes no duplicate keys among containments!)
|
|
97
|
+
const serializedReferencesPerKey = references === undefined ? {} : groupBy(references, sp => sp.reference.key); // (this assumes no duplicate keys among references!)
|
|
98
|
+
allFeatures.forEach(feature => {
|
|
99
99
|
if (feature instanceof Property && properties !== undefined && feature.key in serializedPropertiesPerKey) {
|
|
100
100
|
instantiationFacade.setFeatureValue(node, feature, propertySettings[feature.key]);
|
|
101
101
|
}
|
|
102
102
|
else if (feature instanceof Containment && containments !== undefined && feature.key in serializedContainmentsPerKey) {
|
|
103
|
-
const childIds = serializedContainmentsPerKey[feature.key].flatMap(
|
|
103
|
+
const childIds = serializedContainmentsPerKey[feature.key].flatMap(serChildren => serChildren.children);
|
|
104
104
|
if (feature.multiple) {
|
|
105
|
-
childIds
|
|
106
|
-
.forEach((childId) => {
|
|
105
|
+
childIds.forEach(childId => {
|
|
107
106
|
if (childId in serializedNodeById) {
|
|
108
107
|
instantiationFacade.setFeatureValue(node, feature, instantiateMemoised(serializedNodeById[childId], node));
|
|
109
108
|
}
|
|
@@ -120,24 +119,22 @@ primitiveTypeDeserializer = new DefaultPrimitiveTypeDeserializer(), problemHandl
|
|
|
120
119
|
}
|
|
121
120
|
}
|
|
122
121
|
else if (feature instanceof Reference && references !== undefined && feature.key in serializedReferencesPerKey) {
|
|
123
|
-
const serRefs = (serializedReferencesPerKey[feature.key] ?? []).flatMap(
|
|
124
|
-
referencesToInstall.push(...(
|
|
125
|
-
.filter((serRef) => typeof serRef === "string")
|
|
126
|
-
.map((refId) => [node, feature, refId])));
|
|
122
|
+
const serRefs = (serializedReferencesPerKey[feature.key] ?? []).flatMap(serReferences => serReferences.targets.map(t => t.reference));
|
|
123
|
+
referencesToInstall.push(...serRefs.filter(serRef => typeof serRef === "string").map(refId => [node, feature, refId]));
|
|
127
124
|
}
|
|
128
125
|
});
|
|
129
126
|
node.annotations = annotations
|
|
130
|
-
.filter(
|
|
131
|
-
.map(
|
|
132
|
-
.filter(
|
|
133
|
-
.map(
|
|
127
|
+
.filter(annotationId => annotationId in serializedNodeById)
|
|
128
|
+
.map(annotationId => instantiateMemoised(serializedNodeById[annotationId]))
|
|
129
|
+
.filter(annotationOrNull => annotationOrNull !== null)
|
|
130
|
+
.map(annotation => annotation);
|
|
134
131
|
return node;
|
|
135
132
|
};
|
|
136
133
|
const rootLikeNodes = serializedNodes
|
|
137
134
|
.filter(({ parent }) => parent === null || !(parent in serializedNodeById))
|
|
138
|
-
.map(
|
|
139
|
-
.filter(
|
|
140
|
-
.map(
|
|
135
|
+
.map(serializedNode => instantiateMemoised(serializedNode))
|
|
136
|
+
.filter(nodeOrNull => nodeOrNull !== null)
|
|
137
|
+
.map(node => node);
|
|
141
138
|
const dependentNodesById = byIdMap(dependentNodes);
|
|
142
139
|
referencesToInstall.forEach(([node, reference, refId]) => {
|
|
143
140
|
const target = deserializedNodeById[refId] ?? dependentNodesById[refId];
|
package/dist/deserializer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deserializer.js","sourceRoot":"","sources":["../src/deserializer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"deserializer.js","sourceRoot":"","sources":["../src/deserializer.ts"],"names":[],"mappings":"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"}
|
package/dist/dynamic-facade.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Node } from "./types.js";
|
|
2
1
|
import { ExtractionFacade, InstantiationFacade } from "./facade.js";
|
|
3
2
|
import { Classifier } from "./m3/types.js";
|
|
3
|
+
import { Node } from "./types.js";
|
|
4
4
|
/**
|
|
5
5
|
* Type definition for "dynamic nodes" that are not backed by specific types (e.g. classes).
|
|
6
6
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamic-facade.d.ts","sourceRoot":"","sources":["../src/dynamic-facade.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dynamic-facade.d.ts","sourceRoot":"","sources":["../src/dynamic-facade.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAA8C,MAAM,aAAa,CAAA;AAE/G,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAGjC;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG;IAC7B,UAAU,EAAE,UAAU,CAAA;IACtB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACpC,CAAA;AAUD;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,gBAAgB,CAAC,WAAW,CAShE,CAAA;AAGF;;GAEG;AAEH,eAAO,MAAM,0BAA0B,EAAE,mBAAmB,CAAC,WAAW,CAUtE,CAAA"}
|
package/dist/dynamic-facade.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { builtinFeatures } from "./m3/builtins.js";
|
|
2
1
|
import { updateSettingsKeyBased } from "./facade.js";
|
|
2
|
+
import { builtinFeatures } from "./m3/builtins.js";
|
|
3
3
|
// TODO could also have properties, containments, references - mimicking the serialization
|
|
4
4
|
const propertyGetterFor = (key) => (node) => (key in node.settings && typeof node.settings[key] === "string")
|
|
5
5
|
? node.settings[key] // FIXME type cast shouldn't be necessary
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamic-facade.js","sourceRoot":"","sources":["../src/dynamic-facade.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"dynamic-facade.js","sourceRoot":"","sources":["../src/dynamic-facade.ts"],"names":[],"mappings":"AACA,OAAO,EAA6D,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAC/G,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAYlD,2FAA2F;AAG3F,MAAM,iBAAiB,GAAG,CAAC,GAAe,EAAmC,EAAE,CAC3E,CAAC,IAAI,EAAE,EAAE,CACL,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC;IAC5D,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAW,CAAE,0CAA0C;IAC1E,CAAC,CAAC,SAAS,CAAA;AAEvB;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAkC,CAAC;IACnE,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU;IACvC,eAAe,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;IACvC,8DAA8D;IACrD,IAAI,CAAC,QAAgB,CAAC,OAAO,CAAC,GAAG,CAAC;IACvC,sBAAsB,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,CAC3C,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAE,CAAC,GAAG,KAAK,KAAK,CAAC;WAChD,IAAI,EAAK,sBAAsB;IACtC,cAAc,EAAE,iBAAiB,CAAC,eAAe,CAAC,WAAW,CAAC,GAAG,CAAC;CACrE,CAAC,CAAA;AAGF;;GAEG;AAEH,MAAM,CAAC,MAAM,0BAA0B,GAAqC,CAAC;IACzE,OAAO,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,CAAC,CAAC;QACtD,EAAE;QACF,UAAU;QACV,QAAQ,EAAE,EAAE;KACC,CAAA;IACjB,eAAe,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QACtC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;IACzD,CAAC;IACD,UAAU,EAAE,CAAC,EAAC,GAAG,EAAC,EAAE,EAAE,CAAC,GAAG;CAC7B,CAAC,CAAA"}
|
package/dist/facade.d.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { LionWebId, LionWebKey } from "@lionweb/json";
|
|
2
2
|
import { Classifier, Enumeration, EnumerationLiteral, Feature } from "./m3/types.js";
|
|
3
|
+
import { Node } from "./types.js";
|
|
3
4
|
/**
|
|
4
5
|
* Type def. for functions that deduce the {@link Classifier classifier} of a given {@link Node node}.
|
|
5
6
|
*/
|
|
6
7
|
type ClassifierDeducer<NT extends Node> = (node: NT) => Classifier;
|
|
7
8
|
/**
|
|
8
9
|
* Type def. for functions that deduce the string value of the `resolveInfo` field of a
|
|
9
|
-
* {@link
|
|
10
|
+
* {@link LionWebJsonReferenceTarget serialized reference target}, or {@code undefined}
|
|
10
11
|
* to indicate that no `resolveInfo` could be derived.
|
|
11
12
|
*/
|
|
12
13
|
type ResolveInfoDeducer<NT extends Node> = (node: NT) => string | undefined;
|
|
@@ -32,7 +33,7 @@ interface ExtractionFacade<NT extends Node> {
|
|
|
32
33
|
*/
|
|
33
34
|
enumerationLiteralFrom: (encoding: unknown, enumeration: Enumeration) => EnumerationLiteral | null;
|
|
34
35
|
/**
|
|
35
|
-
* @return The string value of the `resolveInfo` field of a {@link
|
|
36
|
+
* @return The string value of the `resolveInfo` field of a {@link LionWebJsonReferenceTarget serialized reference target},
|
|
36
37
|
* or {@code undefined} to indicate that no `resolveInfo` could be derived.
|
|
37
38
|
*/
|
|
38
39
|
resolveInfoFor?: ResolveInfoDeducer<NT>;
|
|
@@ -43,8 +44,8 @@ interface InstantiationFacade<NT extends Node> {
|
|
|
43
44
|
* its ID and the values of the node's properties ("settings").
|
|
44
45
|
* (The latter may be required as arguments for the constructor of a class, whose instances represent nodes.)
|
|
45
46
|
*/
|
|
46
|
-
nodeFor: (parent: NT | undefined, classifier: Classifier, id:
|
|
47
|
-
[propertyKey:
|
|
47
|
+
nodeFor: (parent: NT | undefined, classifier: Classifier, id: LionWebId, propertySettings: {
|
|
48
|
+
[propertyKey: LionWebKey]: unknown;
|
|
48
49
|
}) => NT;
|
|
49
50
|
/**
|
|
50
51
|
* Sets the *single* given value of the indicated {@link Feature} on the given node.
|
package/dist/facade.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"facade.d.ts","sourceRoot":"","sources":["../src/facade.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"facade.d.ts","sourceRoot":"","sources":["../src/facade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAGrD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,kBAAkB,EAAE,OAAO,EAAQ,MAAM,eAAe,CAAA;AAC1F,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAGjC;;GAEG;AACH,KAAK,iBAAiB,CAAC,EAAE,SAAS,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,UAAU,CAAA;AAElE;;;;GAIG;AACH,KAAK,kBAAkB,CAAC,EAAE,SAAS,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,MAAM,GAAG,SAAS,CAAA;AAG3E;;;;;;GAMG;AAGH,UAAU,gBAAgB,CAAC,EAAE,SAAS,IAAI;IAEtC;;OAEG;IACH,YAAY,EAAE,iBAAiB,CAAC,EAAE,CAAC,CAAA;IAEnC;;OAEG;IACH,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAA;IAGxD;;;OAGG;IACH,sBAAsB,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,KAAK,kBAAkB,GAAG,IAAI,CAAA;IAElG;;;OAGG;IACH,cAAc,CAAC,EAAE,kBAAkB,CAAC,EAAE,CAAC,CAAA;CAE1C;AAED,UAAU,mBAAmB,CAAC,EAAE,SAAS,IAAI;IAEzC;;;;OAIG;IACH,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,GAAG,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE;QAAE,CAAC,WAAW,EAAE,UAAU,GAAG,OAAO,CAAA;KAAE,KAAK,EAAE,CAAA;IAGxI;;;OAGG;IACH,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;IAGrE;;OAEG;IACH,UAAU,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,OAAO,CAAA;CAEvD;AAED;;GAEG;AACH,KAAK,cAAc,CAAC,EAAE,SAAS,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,CAAA;AAEzD;;GAEG;AACH,QAAA,MAAM,sBAAsB,iFAMf,CAAA;AAGb;;GAEG;AACH,QAAA,MAAM,mBAAmB,iFACsE,CAAA;AAG/F,KAAK,eAAe,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;AAiBpG;;;GAGG;AACH,QAAA,MAAM,uBAAuB,EAAE,eAAyC,CAAA;AAExE;;;GAGG;AACH,QAAA,MAAM,sBAAsB,iBAAyB,CAAA;AAErD,YAAY,EACR,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EACrB,CAAA;AAED,OAAO,EACH,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,EACtB,uBAAuB,EAC1B,CAAA"}
|
package/dist/facade.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { flatMapNonCyclingFollowing, trivialFlatMapper } from "./utils/recursion.js";
|
|
1
|
+
import { flatMapNonCyclingFollowing, trivialFlatMapper } from "@lionweb/ts-utils";
|
|
3
2
|
import { allFeaturesOf, isContainment } from "./m3/functions.js";
|
|
3
|
+
import { Link } from "./m3/types.js";
|
|
4
4
|
/**
|
|
5
5
|
* @return A function that extracts the children from a given node.
|
|
6
6
|
*/
|
package/dist/facade.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"facade.js","sourceRoot":"","sources":["../src/facade.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"facade.js","sourceRoot":"","sources":["../src/facade.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACjF,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAChE,OAAO,EAAwD,IAAI,EAAE,MAAM,eAAe,CAAA;AAkF1F;;GAEG;AACH,MAAM,sBAAsB,GAAG,CAAkB,gBAAsC,EAAsB,EAAE,CAC3G,CAAC,IAAQ,EAAQ,EAAE,CAAC;IAChB,GAAG,CAAC,aAAa,CAAC,gBAAgB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;SACjD,MAAM,CAAC,aAAa,CAAC;SACrB,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,gBAAgB,CAAC,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;IACzF,GAAG,IAAI,CAAC,WAAW;CACd,CAAA;AAGb;;GAEG;AACH,MAAM,mBAAmB,GAAG,CAAkB,gBAAsC,EAAsB,EAAE,CACxG,0BAA0B,CAAC,iBAAiB,EAAE,sBAAsB,CAAK,gBAAgB,CAAC,CAAC,CAAA;AAK/F,MAAM,eAAe,GAAG,CAAC,OAAsB,EAAmB,EAAE,CAChE,CAAC,QAAiC,EAAE,OAAgB,EAAE,KAAc,EAAQ,EAAE;IAClF,8DAA8D;IACtD,MAAM,GAAG,GAAI,OAAe,CAAC,OAAO,CAAW,CAAA;IAC/C,IAAI,OAAO,YAAY,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QAC9C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAChC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAA;QACtB,CAAC;QACA,QAAQ,CAAC,GAAG,CAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC5C,CAAC;SAAM,CAAC;QACJ,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;IACzB,CAAC;AACL,CAAC,CAAA;AAGL;;;GAGG;AACH,MAAM,uBAAuB,GAAoB,eAAe,CAAC,MAAM,CAAC,CAAA;AAExE;;;GAGG;AACH,MAAM,sBAAsB,GAAG,eAAe,CAAC,KAAK,CAAC,CAAA;AAUrD,OAAO,EACH,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,EACtB,uBAAuB,EAC1B,CAAA"}
|
package/dist/functions.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { LionWebId } from "@lionweb/json";
|
|
2
|
+
import { Node } from "./types.js";
|
|
2
3
|
/**
|
|
3
4
|
* @return a list of itself and the ancestors of the given {@link Node node}, in anti-chronological order.
|
|
4
5
|
*/
|
|
@@ -7,9 +8,9 @@ export declare const containmentChain: (node: Node) => Node[];
|
|
|
7
8
|
* Maps an array of {@link Node AST nodes} or `null`s to their IDs.
|
|
8
9
|
* These `null`s might be the result of unresolved children.
|
|
9
10
|
*/
|
|
10
|
-
export declare const asIds: (nodeOrNulls: (Node | null)[]) => (
|
|
11
|
+
export declare const asIds: (nodeOrNulls: (Node | null)[]) => (LionWebId | null)[];
|
|
11
12
|
/**
|
|
12
13
|
* @return the id of the given {@link Node node}.
|
|
13
14
|
*/
|
|
14
|
-
export declare const idOf: <T extends Node>({ id }: T) =>
|
|
15
|
+
export declare const idOf: <T extends Node>({ id }: T) => LionWebId;
|
|
15
16
|
//# sourceMappingURL=functions.d.ts.map
|
package/dist/functions.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../src/functions.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../src/functions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAEzC,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAGjC;;GAEG;AACH,eAAO,MAAM,gBAAgB,SAAU,IAAI,KAAG,IAAI,EAGjD,CAAA;AAGD;;;GAGG;AACH,eAAO,MAAM,KAAK,gBAAiB,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,KAAG,CAAC,SAAS,GAAG,IAAI,CAAC,EACQ,CAAA;AAG/E;;GAEG;AACH,eAAO,MAAM,IAAI,iCAA8B,SACzC,CAAA"}
|
package/dist/functions.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { flatMapNonCyclingFollowing, trivialFlatMapper } from "
|
|
1
|
+
import { flatMapNonCyclingFollowing, trivialFlatMapper } from "@lionweb/ts-utils";
|
|
2
2
|
/**
|
|
3
3
|
* @return a list of itself and the ancestors of the given {@link Node node}, in anti-chronological order.
|
|
4
4
|
*/
|
package/dist/functions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"functions.js","sourceRoot":"","sources":["../src/functions.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"functions.js","sourceRoot":"","sources":["../src/functions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAIjF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAU,EAAU,EAAE;IACnD,MAAM,SAAS,GAAG,CAAC,CAAO,EAAU,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;IAC/E,OAAO,0BAA0B,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,CAAA;AACzE,CAAC,CAAA;AAGD;;;GAGG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,WAA4B,EAAwB,EAAE,CACxE,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;AAG/E;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAAiB,EAAC,EAAE,EAAI,EAAa,EAAE,CACvD,EAAE,CAAA"}
|
package/dist/index.d.ts
CHANGED
|
@@ -5,10 +5,8 @@ export * from "./handler.js";
|
|
|
5
5
|
export * from "./functions.js";
|
|
6
6
|
export * from "./references.js";
|
|
7
7
|
export * from "./serializer.js";
|
|
8
|
-
export * from "./serialization.js";
|
|
9
8
|
export * from "./symbol-table.js";
|
|
10
9
|
export * from "./types.js";
|
|
11
|
-
export * from "./utils/index.js";
|
|
12
10
|
export * from "./version.js";
|
|
13
11
|
export * from "./m3/index.js";
|
|
14
12
|
export * from "./m1/reference-utils.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,yBAAyB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -5,10 +5,8 @@ export * from "./handler.js";
|
|
|
5
5
|
export * from "./functions.js";
|
|
6
6
|
export * from "./references.js";
|
|
7
7
|
export * from "./serializer.js";
|
|
8
|
-
export * from "./serialization.js";
|
|
9
8
|
export * from "./symbol-table.js";
|
|
10
9
|
export * from "./types.js";
|
|
11
|
-
export * from "./utils/index.js";
|
|
12
10
|
export * from "./version.js";
|
|
13
11
|
export * from "./m3/index.js";
|
|
14
12
|
export * from "./m1/reference-utils.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,yBAAyB,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Reference } from "../m3/index.js";
|
|
2
1
|
import { ExtractionFacade } from "../facade.js";
|
|
2
|
+
import { Reference } from "../m3/index.js";
|
|
3
3
|
import { Node } from "../types.js";
|
|
4
4
|
/**
|
|
5
5
|
* Represents information about a source and target node related through a {@link Reference}.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reference-utils.d.ts","sourceRoot":"","sources":["../../src/m1/reference-utils.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"reference-utils.d.ts","sourceRoot":"","sources":["../../src/m1/reference-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAiB,SAAS,EAAE,MAAM,gBAAgB,CAAA;AACzD,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAGlC;;;GAGG;AACH,qBAAa,cAAc,CAAC,EAAE,SAAS,IAAI;aAEnB,UAAU,EAAE,EAAE;aACd,UAAU,EAAE,EAAE;aACd,SAAS,EAAE,SAAS;aACpB,KAAK,EAAE,MAAM,GAAG,IAAI;gBAHpB,UAAU,EAAE,EAAE,EACd,UAAU,EAAE,EAAE,EACd,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,MAAM,GAAG,IAAI;CAE3C;AAGD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,eAAe,gGA4B3B,CAAA;AAGD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,kBAAkB,8HAQ9B,CAAA;AAGD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,2BAA2B,gGAK4C,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reference-utils.js","sourceRoot":"","sources":["../../src/m1/reference-utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"reference-utils.js","sourceRoot":"","sources":["../../src/m1/reference-utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAIzD;;;GAGG;AACH,MAAM,OAAO,cAAc;IACvB,YACoB,UAAc,EACd,UAAc,EACd,SAAoB,EACpB,KAAoB;QAHpB,eAAU,GAAV,UAAU,CAAI;QACd,eAAU,GAAV,UAAU,CAAI;QACd,cAAS,GAAT,SAAS,CAAW;QACpB,UAAK,GAAL,KAAK,CAAe;IACrC,CAAC;CACP;AAGD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAC3B,KAAW,EACX,gBAAsC,EAClB,EAAE;IACtB,MAAM,KAAK,GAAG,CAAC,UAAc,EAAE,SAAoB,EAAwB,EAAE;QACzE,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;YACrB,MAAM,WAAW,GAAG,CAAC,gBAAgB,CAAC,eAAe,CAAC,UAAU,EAAE,SAAS,CAAC,IAAI,EAAE,CAAS,CAAA;YAC3F,OAAO,WAAW;iBACb,GAAG,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,CACvB,IAAI,cAAc,CAAK,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC,CACnE,CAAA;QACT,CAAC;QAED,MAAM,UAAU,GAAG,gBAAgB,CAAC,eAAe,CAAC,UAAU,EAAE,SAAS,CAAqB,CAAA;QAC9F,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,CAAC,IAAI,cAAc,CAAK,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAA;QAC5E,CAAC;QAED,OAAO,EAAE,CAAA;IACb,CAAC,CAAA;IAED,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAE,gBAAgB;SACvC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,CACpB,aAAa,CAAC,gBAAgB,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;SACnD,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,YAAY,SAAS,CAAC;SACjD,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAoB,CAAC;SACtC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAC5D,CAAA;AACT,CAAC,CAAA;AAGD;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAC9B,iBAA4B,EAC5B,KAAW,EACX,gBAAsC,EAClB,EAAE;IACtB,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAA;IAC9F,OAAO,eAAe,CAAC,KAAK,EAAE,gBAAgB,CAAC;SAC1C,MAAM,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AACxF,CAAC,CAAA;AAGD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CACvC,KAAW,EACX,gBAAsC,EAClB,EAAE,CACtB,eAAe,CAAC,KAAK,EAAE,gBAAgB,CAAC;KACnC,MAAM,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA"}
|
package/dist/m3/builtins.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Classifier, Concept, Datatype, Property } from "./types.js";
|
|
2
1
|
import { PrimitiveTypeDeserializer } from "../deserializer.js";
|
|
3
2
|
import { PrimitiveTypeSerializer } from "../serializer.js";
|
|
3
|
+
import { Classifier, Concept, Datatype, Property } from "./types.js";
|
|
4
4
|
/**
|
|
5
5
|
* Definition of a LionCore language that serves as a standard library of built-in primitive types.
|
|
6
6
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builtins.d.ts","sourceRoot":"","sources":["../../src/m3/builtins.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"builtins.d.ts","sourceRoot":"","sources":["../../src/m3/builtins.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAA;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAG1D,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAuB,QAAQ,EAAE,MAAM,YAAY,CAAA;AAczF;;GAEG;AACH,QAAA,MAAM,gBAAgB,+BAAmB,CAAA;AASzC,QAAA,MAAM,oBAAoB,eAAgB,UAAU,YAKhB,CAAA;AAMpC,KAAK,gBAAgB,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAA;AAC5F,KAAK,kBAAkB,GAAG,gBAAgB,GAAG,OAAO,CAAA;AACpD,KAAK,iCAAiC,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,kBAAkB,CAAA;AAC9E,KAAK,+BAA+B,GAAG,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAA;AAEjE,QAAA,MAAM,iBAAiB;;;;;CAKtB,CAAA;AAED,QAAA,MAAM,kBAAkB;;;CAGvB,CAAA;AAED,QAAA,MAAM,eAAe;;CAEpB,CAAA;AAED;;GAEG;AACH,QAAA,MAAM,iBAAiB,SAAU,QAAQ,SAAS,QAAQ,KAAG,OACiD,CAAA;AAE9G,uBAAe,gBAAgB,CAAC,CAAC;IAC7B,OAAO,CAAC,GAAG,CAAyB;IAE7B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IAIxC,SAAS,CAAC,MAAM,CAAC,cAAc,EAAE,QAAQ,GAAG,CAAC,GAAG,SAAS;CAS5D;AAED,qBAAa,gCACT,SAAQ,gBAAgB,CAAC,iCAAiC,CAC1D,YAAW,yBAAyB;;IAUpC,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,QAAQ,GAAG,kBAAkB,GAAG,SAAS;CAkBlG;AAED,qBAAa,8BAA+B,SAAQ,gBAAgB,CAAC,+BAA+B,CAAE,YAAW,uBAAuB;;IASpI,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,EAAE,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS;CAkBrF;AAED,YAAY,EAAE,gBAAgB,EAAE,CAAA;AAEhC,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,eAAe,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,CAAA"}
|
package/dist/m3/builtins.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { currentReleaseVersion } from "../version.js";
|
|
1
2
|
import { LanguageFactory } from "./factory.js";
|
|
2
3
|
import { Concept, lioncoreBuiltinsKey } from "./types.js";
|
|
3
|
-
import { currentReleaseVersion } from "../version.js";
|
|
4
4
|
const lioncoreBuiltinsIdAndKeyGenerator = (...names) => [lioncoreBuiltinsKey, ...names.slice(1)].join("-");
|
|
5
5
|
const factory = new LanguageFactory("LionCore_builtins", currentReleaseVersion, lioncoreBuiltinsIdAndKeyGenerator, lioncoreBuiltinsIdAndKeyGenerator);
|
|
6
6
|
/*
|
|
@@ -15,14 +15,13 @@ const booleanDatatype = factory.primitiveType("Boolean");
|
|
|
15
15
|
const integerDatatype = factory.primitiveType("Integer");
|
|
16
16
|
const jsonDatatype = factory.primitiveType("JSON");
|
|
17
17
|
const node = factory.concept("Node", true);
|
|
18
|
-
const isBuiltinNodeConcept = (classifier) => classifier instanceof Concept
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
18
|
+
const isBuiltinNodeConcept = (classifier) => classifier instanceof Concept &&
|
|
19
|
+
classifier.language.key === lioncoreBuiltinsKey &&
|
|
20
|
+
classifier.language.version === currentReleaseVersion &&
|
|
21
|
+
classifier.key === builtinClassifiers.node.key &&
|
|
22
|
+
classifier.abstract;
|
|
23
23
|
const inamed = factory.interface("INamed");
|
|
24
|
-
const inamed_name = factory.property(inamed, "name")
|
|
25
|
-
.ofType(stringDatatype);
|
|
24
|
+
const inamed_name = factory.property(inamed, "name").ofType(stringDatatype);
|
|
26
25
|
const builtinPrimitives = {
|
|
27
26
|
stringDatatype,
|
|
28
27
|
booleanDatatype,
|
|
@@ -39,9 +38,7 @@ const builtinFeatures = {
|
|
|
39
38
|
/**
|
|
40
39
|
* Determines whether two datatypes should be structurally equal based on equality of: meta type, key, and language's key.
|
|
41
40
|
*/
|
|
42
|
-
const shouldBeIdentical = (left, right) => left.key === right.key
|
|
43
|
-
&& left.language.key === right.language.key
|
|
44
|
-
&& left.metaType() === right.metaType();
|
|
41
|
+
const shouldBeIdentical = (left, right) => left.key === right.key && left.language.key === right.language.key && left.metaType() === right.metaType();
|
|
45
42
|
class DatatypeRegister {
|
|
46
43
|
constructor() {
|
|
47
44
|
this.map = new Map();
|
|
@@ -62,10 +59,10 @@ class DatatypeRegister {
|
|
|
62
59
|
export class DefaultPrimitiveTypeDeserializer extends DatatypeRegister {
|
|
63
60
|
constructor() {
|
|
64
61
|
super();
|
|
65
|
-
this.register(stringDatatype,
|
|
66
|
-
this.register(booleanDatatype,
|
|
67
|
-
this.register(integerDatatype,
|
|
68
|
-
this.register(jsonDatatype,
|
|
62
|
+
this.register(stringDatatype, value => value);
|
|
63
|
+
this.register(booleanDatatype, value => JSON.parse(value));
|
|
64
|
+
this.register(integerDatatype, value => Number(value));
|
|
65
|
+
this.register(jsonDatatype, value => JSON.parse(value));
|
|
69
66
|
}
|
|
70
67
|
deserializeValue(value, property) {
|
|
71
68
|
if (value === undefined) {
|
|
@@ -90,10 +87,10 @@ export class DefaultPrimitiveTypeDeserializer extends DatatypeRegister {
|
|
|
90
87
|
export class DefaultPrimitiveTypeSerializer extends DatatypeRegister {
|
|
91
88
|
constructor() {
|
|
92
89
|
super();
|
|
93
|
-
this.register(stringDatatype,
|
|
94
|
-
this.register(booleanDatatype,
|
|
95
|
-
this.register(integerDatatype,
|
|
96
|
-
this.register(jsonDatatype,
|
|
90
|
+
this.register(stringDatatype, value => value);
|
|
91
|
+
this.register(booleanDatatype, value => `${value}`);
|
|
92
|
+
this.register(integerDatatype, value => `${value}`);
|
|
93
|
+
this.register(jsonDatatype, value => JSON.stringify(value, null));
|
|
97
94
|
}
|
|
98
95
|
serializeValue(value, property) {
|
|
99
96
|
if (value === undefined) {
|
package/dist/m3/builtins.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builtins.js","sourceRoot":"","sources":["../../src/m3/builtins.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"builtins.js","sourceRoot":"","sources":["../../src/m3/builtins.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constraints.d.ts","sourceRoot":"","sources":["../../src/m3/constraints.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"constraints.d.ts","sourceRoot":"","sources":["../../src/m3/constraints.ts"],"names":[],"mappings":"AAGA,OAAO,EAAwB,QAAQ,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAGtE;;;GAGG;AACH,MAAM,MAAM,KAAK,GAAG;IAChB,QAAQ,EAAE,SAAS,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,SAAS,EAAE,CAAA;CAC3B,CAAA;AAcD;;;GAGG;AACH,eAAO,MAAM,cAAc,aAAc,QAAQ,KAAG,KAAK,EAsEpD,CAAA"}
|
package/dist/m3/constraints.js
CHANGED
|
@@ -1,9 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { allContaineds, flatMap, inheritedCycleWith, keyOf, namedsOf, qualifiedNameOf } from "./functions.js";
|
|
1
|
+
import { duplicatesAmong } from "@lionweb/ts-utils";
|
|
3
2
|
import { idOf } from "../functions.js";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
3
|
+
import { allContaineds, flatMap, inheritedCycleWith, keyOf, namedsOf, qualifiedNameOf } from "./functions.js";
|
|
4
|
+
import { Classifier, isINamed, Language } from "./types.js";
|
|
6
5
|
// TODO back this type with an M2
|
|
6
|
+
const base64urlRegex = /^[A-Za-z0-9_-]+$/;
|
|
7
|
+
/**
|
|
8
|
+
* @return whether the given string is a valid identifier according to the LionWeb specification – see [here](https://github.com/LionWeb-io/specification/blob/main/2023.1/metametamodel/metametamodel.adoc#identifiers) for the relevant part.
|
|
9
|
+
* This is essentially whether the given string is a valid, non-empty [Base64url](https://en.wikipedia.org/wiki/Base64#Variants_summary_table) string.
|
|
10
|
+
*/
|
|
11
|
+
const isValidIdentifier = (str) => base64urlRegex.test(str);
|
|
7
12
|
/**
|
|
8
13
|
* Computes the {@link Issue issues} (i.e., constraint violations) for the given language.
|
|
9
14
|
* (This computation is resilient against e.g. inheritance cycles.)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constraints.js","sourceRoot":"","sources":["../../src/m3/constraints.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"constraints.js","sourceRoot":"","sources":["../../src/m3/constraints.ts"],"names":[],"mappings":"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"}
|