@lionweb/core 0.6.13-beta.5 → 0.6.13-beta.7
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 +32 -29
- 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 +5 -6
- 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 +3 -4
- 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 +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- 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 +19 -16
- package/dist/m3/builtins.js.map +1 -1
- package/dist/m3/constraints.d.ts.map +1 -1
- package/dist/m3/constraints.js +4 -9
- 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 +5 -6
- package/dist/m3/functions.d.ts.map +1 -1
- package/dist/m3/functions.js +5 -3
- package/dist/m3/functions.js.map +1 -1
- package/dist/m3/lioncore.d.ts.map +1 -1
- package/dist/m3/lioncore.js +59 -22
- 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/serialization.d.ts +52 -0
- package/dist/serialization.d.ts.map +1 -0
- package/dist/serialization.js +7 -0
- package/dist/serialization.js.map +1 -0
- package/dist/serializer.d.ts +6 -6
- package/dist/serializer.d.ts.map +1 -1
- package/dist/serializer.js +24 -18
- 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 +10 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +6 -1
- package/dist/types.js.map +1 -1
- package/dist/utils/array-helpers.d.ts +14 -0
- package/dist/utils/array-helpers.d.ts.map +1 -0
- package/dist/utils/array-helpers.js +15 -0
- package/dist/utils/array-helpers.js.map +1 -0
- package/dist/utils/cycles.d.ts +8 -0
- package/dist/utils/cycles.d.ts.map +1 -0
- package/dist/utils/cycles.js +26 -0
- package/dist/utils/cycles.js.map +1 -0
- package/dist/utils/index.d.ts +7 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +7 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/map-helpers.d.ts +26 -0
- package/dist/utils/map-helpers.d.ts.map +1 -0
- package/dist/utils/map-helpers.js +41 -0
- package/dist/utils/map-helpers.js.map +1 -0
- package/dist/utils/recursion.d.ts +13 -0
- package/dist/utils/recursion.d.ts.map +1 -0
- package/dist/utils/recursion.js +21 -0
- package/dist/utils/recursion.js.map +1 -0
- package/dist/utils/sorting.d.ts +7 -0
- package/dist/utils/sorting.d.ts.map +1 -0
- package/dist/utils/sorting.js +7 -0
- package/dist/utils/sorting.js.map +1 -0
- package/dist/utils/string-mapping.d.ts +6 -0
- package/dist/utils/string-mapping.d.ts.map +1 -0
- package/dist/utils/string-mapping.js +10 -0
- package/dist/utils/string-mapping.js.map +1 -0
- package/package.json +1 -5
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 `MetaPointer` 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 `Id` 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 `SerializedProperty.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 { Node } from "./types.js";
|
|
2
2
|
import { InstantiationFacade } from "./facade.js";
|
|
3
3
|
import { SimplisticHandler } from "./handler.js";
|
|
4
|
+
import { SerializationChunk } from "./serialization.js";
|
|
4
5
|
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 SerializationChunk}
|
|
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: SerializationChunk, 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: SerializationChunk, 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,EAAK,IAAI,EAAC,MAAM,YAAY,CAAA;AACnC,OAAO,EAAC,mBAAmB,EAAC,MAAM,aAAa,CAAA;AAC/C,OAAO,EAA2B,iBAAiB,EAAC,MAAM,cAAc,CAAA;AAExE,OAAO,EAAoC,kBAAkB,EAAiB,MAAM,oBAAoB,CAAA;AAGxG,OAAO,EAAuC,QAAQ,EAAiB,QAAQ,EAAY,MAAM,eAAe,CAAA;AAKhH,MAAM,WAAW,yBAAyB;IACtC,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAA;CACvF;AAGD;;;;;;;;;GASG;AACH,eAAO,MAAM,6BAA6B,wCAClB,kBAAkB,2DAE3B,QAAQ,EAAE,kBAEL,IAAI,EAAE,8BAEK,yBAAyB,mBACpC,iBAAiB,SAoKpC,CAAA;AAGD;;GAEG;AACH,eAAO,MAAM,gBAAgB,wCAjLL,kBAAkB,2DAE3B,QAAQ,EAAE,kBAEL,IAAI,EAAE,8BAEK,yBAAyB,mBACpC,iBAAiB,SA0KwB,CAAA"}
|
package/dist/deserializer.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { currentSerializationFormatVersion } from "@lionweb/json";
|
|
2
|
-
import { byIdMap, groupBy } from "@lionweb/ts-utils";
|
|
3
1
|
import { defaultSimplisticHandler } from "./handler.js";
|
|
4
|
-
import { DefaultPrimitiveTypeDeserializer } from "./m3/builtins.js";
|
|
5
|
-
import { allFeaturesOf } from "./m3/functions.js";
|
|
6
|
-
import { Classifier, Containment, Enumeration, PrimitiveType, Property, Reference } from "./m3/types.js";
|
|
7
2
|
import { unresolved } from "./references.js";
|
|
3
|
+
import { currentSerializationFormatVersion } from "./serialization.js";
|
|
8
4
|
import { MemoisingSymbolTable } from "./symbol-table.js";
|
|
5
|
+
import { DefaultPrimitiveTypeDeserializer } from "./m3/builtins.js";
|
|
6
|
+
import { Classifier, Containment, Enumeration, PrimitiveType, Property, Reference } from "./m3/types.js";
|
|
7
|
+
import { allFeaturesOf } from "./m3/functions.js";
|
|
8
|
+
import { byIdMap, groupBy } from "./utils/map-helpers.js";
|
|
9
9
|
/**
|
|
10
|
-
* @return a deserialization of a {@link
|
|
10
|
+
* @return a deserialization of a {@link SerializationChunk}
|
|
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 SerializedNode},
|
|
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 SerializedNode serialization}.
|
|
59
59
|
*/
|
|
60
60
|
const instantiate = ({ id, classifier: classifierMetaPointer, properties, containments, references, annotations }, parent) => {
|
|
61
61
|
const classifier = symbolTable.entityMatching(classifierMetaPointer);
|
|
@@ -65,21 +65,20 @@ primitiveTypeDeserializer = new DefaultPrimitiveTypeDeserializer(), problemHandl
|
|
|
65
65
|
}
|
|
66
66
|
const allFeatures = allFeaturesOf(classifier);
|
|
67
67
|
const propertySettings = {};
|
|
68
|
-
const serializedPropertiesPerKey = properties === undefined ? {} : groupBy(properties, sp => sp.property.key); // (this assumes no duplicate keys among 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(feature => feature instanceof Property)
|
|
72
|
-
.map(feature => feature)
|
|
73
|
-
.forEach(property => {
|
|
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] =
|
|
78
|
-
value === null ? undefined : primitiveTypeDeserializer.deserializeValue(value, property);
|
|
77
|
+
propertySettings[property.key] = value === null ? undefined : primitiveTypeDeserializer.deserializeValue(value, property);
|
|
79
78
|
return;
|
|
80
79
|
}
|
|
81
80
|
if (property.type instanceof Enumeration) {
|
|
82
|
-
const literal = property.type.literals.find(literal => literal.key === value);
|
|
81
|
+
const literal = property.type.literals.find((literal) => literal.key === value);
|
|
83
82
|
if (literal !== undefined) {
|
|
84
83
|
propertySettings[property.key] = instantiationFacade.encodingOf(literal);
|
|
85
84
|
}
|
|
@@ -93,16 +92,18 @@ primitiveTypeDeserializer = new DefaultPrimitiveTypeDeserializer(), problemHandl
|
|
|
93
92
|
if (node === null) {
|
|
94
93
|
return null;
|
|
95
94
|
}
|
|
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
|
|
95
|
+
const serializedContainmentsPerKey = containments === undefined ? {} : groupBy(containments, (sp) => sp.containment.key); // (this assumes no duplicate keys among containments!)
|
|
96
|
+
const serializedReferencesPerKey = references === undefined ? {} : groupBy(references, (sp) => sp.reference.key); // (this assumes no duplicate keys among references!)
|
|
97
|
+
allFeatures
|
|
98
|
+
.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(serChildren => serChildren.children);
|
|
103
|
+
const childIds = serializedContainmentsPerKey[feature.key].flatMap((serChildren) => serChildren.children);
|
|
104
104
|
if (feature.multiple) {
|
|
105
|
-
childIds
|
|
105
|
+
childIds
|
|
106
|
+
.forEach((childId) => {
|
|
106
107
|
if (childId in serializedNodeById) {
|
|
107
108
|
instantiationFacade.setFeatureValue(node, feature, instantiateMemoised(serializedNodeById[childId], node));
|
|
108
109
|
}
|
|
@@ -119,22 +120,24 @@ primitiveTypeDeserializer = new DefaultPrimitiveTypeDeserializer(), problemHandl
|
|
|
119
120
|
}
|
|
120
121
|
}
|
|
121
122
|
else if (feature instanceof Reference && references !== undefined && feature.key in serializedReferencesPerKey) {
|
|
122
|
-
const serRefs = (serializedReferencesPerKey[feature.key] ?? []).flatMap(serReferences => serReferences.targets.map(t => t.reference));
|
|
123
|
-
referencesToInstall.push(...serRefs
|
|
123
|
+
const serRefs = (serializedReferencesPerKey[feature.key] ?? []).flatMap((serReferences) => serReferences.targets.map((t) => t.reference));
|
|
124
|
+
referencesToInstall.push(...(serRefs
|
|
125
|
+
.filter((serRef) => typeof serRef === "string")
|
|
126
|
+
.map((refId) => [node, feature, refId])));
|
|
124
127
|
}
|
|
125
128
|
});
|
|
126
129
|
node.annotations = annotations
|
|
127
|
-
.filter(annotationId => annotationId in serializedNodeById)
|
|
128
|
-
.map(annotationId => instantiateMemoised(serializedNodeById[annotationId]))
|
|
129
|
-
.filter(annotationOrNull => annotationOrNull !== null)
|
|
130
|
-
.map(annotation => annotation);
|
|
130
|
+
.filter((annotationId) => annotationId in serializedNodeById)
|
|
131
|
+
.map((annotationId) => instantiateMemoised(serializedNodeById[annotationId]))
|
|
132
|
+
.filter((annotationOrNull) => annotationOrNull !== null)
|
|
133
|
+
.map((annotation) => annotation);
|
|
131
134
|
return node;
|
|
132
135
|
};
|
|
133
136
|
const rootLikeNodes = serializedNodes
|
|
134
137
|
.filter(({ parent }) => parent === null || !(parent in serializedNodeById))
|
|
135
|
-
.map(serializedNode => instantiateMemoised(serializedNode))
|
|
136
|
-
.filter(nodeOrNull => nodeOrNull !== null)
|
|
137
|
-
.map(node => node);
|
|
138
|
+
.map((serializedNode) => instantiateMemoised(serializedNode))
|
|
139
|
+
.filter((nodeOrNull) => nodeOrNull !== null)
|
|
140
|
+
.map((node) => node);
|
|
138
141
|
const dependentNodesById = byIdMap(dependentNodes);
|
|
139
142
|
referencesToInstall.forEach(([node, reference, refId]) => {
|
|
140
143
|
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";
|
|
1
2
|
import { ExtractionFacade, InstantiationFacade } from "./facade.js";
|
|
2
3
|
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":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,YAAY,CAAA;AAE/B,OAAO,EAAC,gBAAgB,EAAE,mBAAmB,EAA6C,MAAM,aAAa,CAAA;AAC7G,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAA;AAGxC;;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 { updateSettingsKeyBased } from "./facade.js";
|
|
2
1
|
import { builtinFeatures } from "./m3/builtins.js";
|
|
2
|
+
import { updateSettingsKeyBased } from "./facade.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,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAA4D,sBAAsB,EAAC,MAAM,aAAa,CAAA;AAW7G,2FAA2F;AAG3F,MAAM,iBAAiB,GAAG,CAAC,GAAW,EAAmC,EAAE,CACvE,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,13 +1,12 @@
|
|
|
1
|
-
import { LionWebId, LionWebKey } from "@lionweb/json";
|
|
2
|
-
import { Classifier, Enumeration, EnumerationLiteral, Feature } from "./m3/types.js";
|
|
3
1
|
import { Node } from "./types.js";
|
|
2
|
+
import { Classifier, Enumeration, EnumerationLiteral, Feature } from "./m3/types.js";
|
|
4
3
|
/**
|
|
5
4
|
* Type def. for functions that deduce the {@link Classifier classifier} of a given {@link Node node}.
|
|
6
5
|
*/
|
|
7
6
|
type ClassifierDeducer<NT extends Node> = (node: NT) => Classifier;
|
|
8
7
|
/**
|
|
9
8
|
* Type def. for functions that deduce the string value of the `resolveInfo` field of a
|
|
10
|
-
* {@link
|
|
9
|
+
* {@link SerializedReferenceTarget serialized reference target}, or {@code undefined}
|
|
11
10
|
* to indicate that no `resolveInfo` could be derived.
|
|
12
11
|
*/
|
|
13
12
|
type ResolveInfoDeducer<NT extends Node> = (node: NT) => string | undefined;
|
|
@@ -33,7 +32,7 @@ interface ExtractionFacade<NT extends Node> {
|
|
|
33
32
|
*/
|
|
34
33
|
enumerationLiteralFrom: (encoding: unknown, enumeration: Enumeration) => EnumerationLiteral | null;
|
|
35
34
|
/**
|
|
36
|
-
* @return The string value of the `resolveInfo` field of a {@link
|
|
35
|
+
* @return The string value of the `resolveInfo` field of a {@link SerializedReferenceTarget serialized reference target},
|
|
37
36
|
* or {@code undefined} to indicate that no `resolveInfo` could be derived.
|
|
38
37
|
*/
|
|
39
38
|
resolveInfoFor?: ResolveInfoDeducer<NT>;
|
|
@@ -44,8 +43,8 @@ interface InstantiationFacade<NT extends Node> {
|
|
|
44
43
|
* its ID and the values of the node's properties ("settings").
|
|
45
44
|
* (The latter may be required as arguments for the constructor of a class, whose instances represent nodes.)
|
|
46
45
|
*/
|
|
47
|
-
nodeFor: (parent: NT | undefined, classifier: Classifier, id:
|
|
48
|
-
[propertyKey:
|
|
46
|
+
nodeFor: (parent: NT | undefined, classifier: Classifier, id: string, propertySettings: {
|
|
47
|
+
[propertyKey: string]: unknown;
|
|
49
48
|
}) => NT;
|
|
50
49
|
/**
|
|
51
50
|
* 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,EAAC,IAAI,EAAC,MAAM,YAAY,CAAA;AAC/B,OAAO,EAAC,UAAU,EAAE,WAAW,EAAE,kBAAkB,EAAE,OAAO,EAAO,MAAM,eAAe,CAAA;AAKxF;;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,MAAM,EAAE,gBAAgB,EAAE;QAAE,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,KAAK,EAAE,CAAA;IAGjI;;;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 { flatMapNonCyclingFollowing, trivialFlatMapper } from "@lionweb/ts-utils";
|
|
2
|
-
import { allFeaturesOf, isContainment } from "./m3/functions.js";
|
|
3
1
|
import { Link } from "./m3/types.js";
|
|
2
|
+
import { flatMapNonCyclingFollowing, trivialFlatMapper } from "./utils/recursion.js";
|
|
3
|
+
import { allFeaturesOf, isContainment } from "./m3/functions.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,EAAuD,IAAI,EAAC,MAAM,eAAe,CAAA;AACxF,OAAO,EAAC,0BAA0B,EAAE,iBAAiB,EAAC,MAAM,sBAAsB,CAAA;AAClF,OAAO,EAAC,aAAa,EAAE,aAAa,EAAC,MAAM,mBAAmB,CAAA;AAiF9D;;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,OAAe,EAAmB,EAAE,CACzD,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,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Node } from "./types.js";
|
|
1
|
+
import { Id, Node } from "./types.js";
|
|
3
2
|
/**
|
|
4
3
|
* @return a list of itself and the ancestors of the given {@link Node node}, in anti-chronological order.
|
|
5
4
|
*/
|
|
@@ -8,9 +7,9 @@ export declare const containmentChain: (node: Node) => Node[];
|
|
|
8
7
|
* Maps an array of {@link Node AST nodes} or `null`s to their IDs.
|
|
9
8
|
* These `null`s might be the result of unresolved children.
|
|
10
9
|
*/
|
|
11
|
-
export declare const asIds: (nodeOrNulls: (Node | null)[]) => (
|
|
10
|
+
export declare const asIds: (nodeOrNulls: (Node | null)[]) => (Id | null)[];
|
|
12
11
|
/**
|
|
13
12
|
* @return the id of the given {@link Node node}.
|
|
14
13
|
*/
|
|
15
|
-
export declare const idOf: <T extends Node>({ id }: T) =>
|
|
14
|
+
export declare const idOf: <T extends Node>({ id }: T) => string;
|
|
16
15
|
//# 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,EAAC,EAAE,EAAE,IAAI,EAAC,MAAM,YAAY,CAAA;AAInC;;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,EAAE,GAAG,IAAI,CAAC,EACe,CAAA;AAG/E;;GAEG;AACH,eAAO,MAAM,IAAI,iCAA8B,MACzC,CAAA"}
|
package/dist/functions.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { flatMapNonCyclingFollowing, trivialFlatMapper } from "
|
|
1
|
+
import { flatMapNonCyclingFollowing, trivialFlatMapper } from "./utils/recursion.js";
|
|
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,EAAC,0BAA0B,EAAE,iBAAiB,EAAC,MAAM,sBAAsB,CAAA;AAGlF;;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,EAAiB,EAAE,CACjE,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,EAAU,EAAE,CACpD,EAAE,CAAA"}
|
package/dist/index.d.ts
CHANGED
|
@@ -5,8 +5,10 @@ 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";
|
|
8
9
|
export * from "./symbol-table.js";
|
|
9
10
|
export * from "./types.js";
|
|
11
|
+
export * from "./utils/index.js";
|
|
10
12
|
export * from "./version.js";
|
|
11
13
|
export * from "./m3/index.js";
|
|
12
14
|
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,mBAAmB,CAAA;AACjC,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,yBAAyB,CAAA"}
|
|
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,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,yBAAyB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -5,8 +5,10 @@ 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";
|
|
8
9
|
export * from "./symbol-table.js";
|
|
9
10
|
export * from "./types.js";
|
|
11
|
+
export * from "./utils/index.js";
|
|
10
12
|
export * from "./version.js";
|
|
11
13
|
export * from "./m3/index.js";
|
|
12
14
|
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,mBAAmB,CAAA;AACjC,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,yBAAyB,CAAA"}
|
|
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,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,yBAAyB,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ExtractionFacade } from "../facade.js";
|
|
2
1
|
import { Reference } from "../m3/index.js";
|
|
2
|
+
import { ExtractionFacade } from "../facade.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,EAAgB,SAAS,EAAC,MAAM,gBAAgB,CAAA;AACvD,OAAO,EAAC,gBAAgB,EAAC,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAC,IAAI,EAAC,MAAM,aAAa,CAAA;AAGhC;;;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":"AAAA,OAAO,EAAC,aAAa,EAAE,SAAS,EAAC,MAAM,gBAAgB,CAAA;AAKvD;;;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";
|
|
1
2
|
import { PrimitiveTypeDeserializer } from "../deserializer.js";
|
|
2
3
|
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,EAAE,
|
|
1
|
+
{"version":3,"file":"builtins.d.ts","sourceRoot":"","sources":["../../src/m3/builtins.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAuB,QAAQ,EAAC,MAAM,YAAY,CAAA;AAGvF,OAAO,EAAC,yBAAyB,EAAC,MAAM,oBAAoB,CAAA;AAC5D,OAAO,EAAC,uBAAuB,EAAC,MAAM,kBAAkB,CAAA;AAkBxD;;GAEG;AACH,QAAA,MAAM,gBAAgB,+BAAmB,CAAA;AAYzC,QAAA,MAAM,oBAAoB,eAAgB,UAAU,YAKb,CAAA;AASvC,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;AAGD;;GAEG;AACH,QAAA,MAAM,iBAAiB,SAAU,QAAQ,SAAS,QAAQ,KAAG,OAGlB,CAAA;AAE3C,uBAAe,gBAAgB,CAAC,CAAC;IAE7B,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;CAU5D;AAGD,qBAAa,gCAAiC,SAAQ,gBAAgB,CAAC,iCAAiC,CAAE,YAAW,yBAAyB;;IAU1I,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;;IAUpI,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,EAAE,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS;CAkBrF;AAED,YAAY,EACR,gBAAgB,EACnB,CAAA;AAED,OAAO,EACH,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACpB,CAAA"}
|
package/dist/m3/builtins.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { currentReleaseVersion } from "../version.js";
|
|
2
1
|
import { LanguageFactory } from "./factory.js";
|
|
3
2
|
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,13 +15,14 @@ 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
|
-
classifier.language.key === lioncoreBuiltinsKey
|
|
20
|
-
classifier.language.version === currentReleaseVersion
|
|
21
|
-
classifier.key === builtinClassifiers.node.key
|
|
22
|
-
classifier.abstract;
|
|
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")
|
|
24
|
+
const inamed_name = factory.property(inamed, "name")
|
|
25
|
+
.ofType(stringDatatype);
|
|
25
26
|
const builtinPrimitives = {
|
|
26
27
|
stringDatatype,
|
|
27
28
|
booleanDatatype,
|
|
@@ -38,7 +39,9 @@ const builtinFeatures = {
|
|
|
38
39
|
/**
|
|
39
40
|
* Determines whether two datatypes should be structurally equal based on equality of: meta type, key, and language's key.
|
|
40
41
|
*/
|
|
41
|
-
const shouldBeIdentical = (left, right) => left.key === right.key
|
|
42
|
+
const shouldBeIdentical = (left, right) => left.key === right.key
|
|
43
|
+
&& left.language.key === right.language.key
|
|
44
|
+
&& left.metaType() === right.metaType();
|
|
42
45
|
class DatatypeRegister {
|
|
43
46
|
constructor() {
|
|
44
47
|
this.map = new Map();
|
|
@@ -59,10 +62,10 @@ class DatatypeRegister {
|
|
|
59
62
|
export class DefaultPrimitiveTypeDeserializer extends DatatypeRegister {
|
|
60
63
|
constructor() {
|
|
61
64
|
super();
|
|
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));
|
|
65
|
+
this.register(stringDatatype, (value) => value);
|
|
66
|
+
this.register(booleanDatatype, (value) => JSON.parse(value));
|
|
67
|
+
this.register(integerDatatype, (value) => Number(value));
|
|
68
|
+
this.register(jsonDatatype, (value) => JSON.parse(value));
|
|
66
69
|
}
|
|
67
70
|
deserializeValue(value, property) {
|
|
68
71
|
if (value === undefined) {
|
|
@@ -87,10 +90,10 @@ export class DefaultPrimitiveTypeDeserializer extends DatatypeRegister {
|
|
|
87
90
|
export class DefaultPrimitiveTypeSerializer extends DatatypeRegister {
|
|
88
91
|
constructor() {
|
|
89
92
|
super();
|
|
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));
|
|
93
|
+
this.register(stringDatatype, (value) => value);
|
|
94
|
+
this.register(booleanDatatype, (value) => `${value}`);
|
|
95
|
+
this.register(integerDatatype, (value) => `${value}`);
|
|
96
|
+
this.register(jsonDatatype, (value) => JSON.stringify(value, null));
|
|
94
97
|
}
|
|
95
98
|
serializeValue(value, property) {
|
|
96
99
|
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":"AAAA,OAAO,EAAuB,QAAQ,EAAE,SAAS,EAAC,MAAM,YAAY,CAAA;AAOpE;;;GAGG;AACH,MAAM,MAAM,KAAK,GAAG;IAChB,QAAQ,EAAE,SAAS,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,SAAS,EAAE,CAAA;CAC3B,CAAA;AAID;;;GAGG;AACH,eAAO,MAAM,cAAc,aAAc,QAAQ,KAAG,KAAK,EAsEpD,CAAA"}
|
package/dist/m3/constraints.js
CHANGED
|
@@ -1,14 +1,9 @@
|
|
|
1
|
-
import { duplicatesAmong } from "@lionweb/ts-utils";
|
|
2
|
-
import { idOf } from "../functions.js";
|
|
3
|
-
import { allContaineds, flatMap, inheritedCycleWith, keyOf, namedsOf, qualifiedNameOf } from "./functions.js";
|
|
4
1
|
import { Classifier, isINamed, Language } from "./types.js";
|
|
2
|
+
import { allContaineds, flatMap, inheritedCycleWith, keyOf, namedsOf, qualifiedNameOf } from "./functions.js";
|
|
3
|
+
import { idOf } from "../functions.js";
|
|
4
|
+
import { isValidIdentifier } from "../types.js";
|
|
5
|
+
import { duplicatesAmong } from "../utils/map-helpers.js";
|
|
5
6
|
// 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);
|
|
12
7
|
/**
|
|
13
8
|
* Computes the {@link Issue issues} (i.e., constraint violations) for the given language.
|
|
14
9
|
* (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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"}
|