@lionweb/core 0.5.0-beta.7 → 0.5.0-beta.9
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/README.md +43 -14
- package/dist/deserializer.d.ts.map +1 -1
- package/dist/deserializer.js +12 -8
- package/dist/deserializer.js.map +1 -1
- package/dist/dynamic-facade.d.ts +0 -9
- package/dist/dynamic-facade.d.ts.map +1 -1
- package/dist/dynamic-facade.js +7 -1
- package/dist/dynamic-facade.js.map +1 -1
- package/dist/facade.d.ts +15 -3
- package/dist/facade.d.ts.map +1 -1
- package/dist/facade.js +13 -22
- package/dist/facade.js.map +1 -1
- package/dist/m3/deserializer.d.ts +2 -2
- package/dist/m3/deserializer.d.ts.map +1 -1
- package/dist/m3/deserializer.js +5 -6
- package/dist/m3/deserializer.js.map +1 -1
- package/dist/m3/facade.d.ts.map +1 -1
- package/dist/m3/facade.js +3 -1
- package/dist/m3/facade.js.map +1 -1
- package/dist/m3/factory.d.ts.map +1 -1
- package/dist/m3/factory.js +1 -0
- package/dist/m3/factory.js.map +1 -1
- package/dist/m3/serializer.d.ts +2 -3
- package/dist/m3/serializer.d.ts.map +1 -1
- package/dist/m3/serializer.js +2 -3
- package/dist/m3/serializer.js.map +1 -1
- package/dist/m3/types.d.ts +4 -1
- package/dist/m3/types.d.ts.map +1 -1
- package/dist/m3/types.js +3 -1
- package/dist/m3/types.js.map +1 -1
- package/dist/serialization.d.ts +3 -2
- package/dist/serialization.d.ts.map +1 -1
- package/dist/serialization.js.map +1 -1
- package/dist/serializer.d.ts.map +1 -1
- package/dist/serializer.js +7 -3
- package/dist/serializer.js.map +1 -1
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/cycles.d.ts.map +1 -1
- package/dist/utils/cycles.js +15 -15
- package/dist/utils/cycles.js.map +1 -1
- package/package.json +1 -1
- package/CHANGELOG.md +0 -23
package/README.md
CHANGED
|
@@ -11,14 +11,6 @@ It contains:
|
|
|
11
11
|
* the LionCore M3, including the `builtins` language
|
|
12
12
|
* functions for (de-)serialization
|
|
13
13
|
|
|
14
|
-
Build it from source as follows:
|
|
15
|
-
|
|
16
|
-
```shell
|
|
17
|
-
$ ./build.sh
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
Consult the [changelog](./CHANGELOG.md) to see what changed from version to version.
|
|
21
|
-
|
|
22
14
|
|
|
23
15
|
## Starting points
|
|
24
16
|
|
|
@@ -26,13 +18,50 @@ The following is a list of links to potential starting points:
|
|
|
26
18
|
|
|
27
19
|
* Implementation of the LionCore metametamodel (M3): see the [specific README](src/m3/README.md).
|
|
28
20
|
* Metamodel-generic/-aspecific code regarding:
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
21
|
+
* [TypeScript type definitions](src/types.ts).
|
|
22
|
+
* Representation of [references](src/references.ts).
|
|
23
|
+
* [Serialization](src/serialization.ts).
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
## Changelog
|
|
33
27
|
|
|
28
|
+
### 0.5.0
|
|
34
29
|
|
|
35
|
-
|
|
30
|
+
This is the first version corresponding to a release of LionWeb (version: 2023.1) as a whole.
|
|
36
31
|
|
|
37
|
-
|
|
32
|
+
* Implement persistence of annotations on `Node`s, including (de-)serialization.
|
|
33
|
+
* Added an optional field `resolveInfoFor` to the `ExtractionFacade` type, to compute the field `resolveInfo` field of a serialized reference target.
|
|
34
|
+
The default used is to check whether a node instance implements `INamed` and takes the value of the `name` field.
|
|
35
|
+
* _Breaking change:_ `serializeLanguage` and `deserializeLanguage` are now "multi-lingual" in the sense that a serialization chunk can contain multiple `Language`s.
|
|
36
|
+
As a result, these functions have been renamed to (the plural) `serializeLanguages` (with varargs), and `deserializeLanguages` (returning `Language[]`).
|
|
37
|
+
* (Bugfix:) Deserialize `Annotation`s.
|
|
38
|
+
* _Breaking change:_ Rework ID and key generation in the LionCore `LanguageFactory`.
|
|
39
|
+
As part of that:
|
|
40
|
+
* Add `String[s]Mapper` types, a `StringsMapper` instance `last`, and functions `concatenator` and `chain` to produce instances of them.
|
|
41
|
+
* Remove `M3Node.keyed` and the "awkward" key generation in the `InstantiationFacade` for the LionCore language.
|
|
42
|
+
* Remove types `IdGenerator`, and `KeyGenerator` and everything related to that.
|
|
43
|
+
* Expose keys (instead of qualified names) for LionCore M3 and the LionCore built-ins.
|
|
44
|
+
* Add a type `DynamicINamed` and an M3-function `conceptsOf`, primarily for generation purposes.
|
|
45
|
+
* Move `asText` and ID checking to `@lionweb/utilities`.
|
|
46
|
+
* Expose a helper function `nameSorted`.
|
|
47
|
+
* Rename `ConceptInterface` → `Interface`.
|
|
48
|
+
* Change names: `ReadModelAPI` → `ExtractionFacade`, `WriteModelAPI` → `InstantiationFacade`.
|
|
49
|
+
* Change name of `concept` fields to `classifier`, and their types (where applicable) to `Classifier`.
|
|
50
|
+
* Fix `license` field in `package.json` to `"Apache-2.0"`.
|
|
51
|
+
* Replace all occurrences of "LIon" (with uppercase 'I') with "Lion" (with lowercase 'i').
|
|
52
|
+
* Split the `ModelAPI` interface into a read- and write-part: `ReadModelAPI` vs. `WriteModelAPI`.
|
|
53
|
+
* Make fixes w.r.t. multi-language models.
|
|
54
|
+
* Migrate from Deno to Node.js.
|
|
55
|
+
* Implement import of enums in Ecore importer.
|
|
56
|
+
|
|
57
|
+
No changelog has been kept for previous versions, regardless of whether these were published or not.
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
## Development
|
|
61
|
+
|
|
62
|
+
Build it from source as follows:
|
|
63
|
+
|
|
64
|
+
```shell
|
|
65
|
+
$ ./build.sh
|
|
66
|
+
```
|
|
38
67
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deserializer.d.ts","sourceRoot":"","sources":["../src/deserializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAK,IAAI,EAAC,MAAM,YAAY,CAAA;AACnC,OAAO,EAAoC,kBAAkB,EAAiB,MAAM,oBAAoB,CAAA;AACxG,OAAO,EAAC,mBAAmB,EAAC,MAAM,aAAa,CAAA;AAC/C,OAAO,EAKH,QAAQ,EAIX,MAAM,eAAe,CAAA;AAkBtB;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,wCACL,kBAAkB,2DAE3B,QAAQ,EAAE,kBAEL,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"deserializer.d.ts","sourceRoot":"","sources":["../src/deserializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAK,IAAI,EAAC,MAAM,YAAY,CAAA;AACnC,OAAO,EAAoC,kBAAkB,EAAiB,MAAM,oBAAoB,CAAA;AACxG,OAAO,EAAC,mBAAmB,EAAC,MAAM,aAAa,CAAA;AAC/C,OAAO,EAKH,QAAQ,EAIX,MAAM,eAAe,CAAA;AAkBtB;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,wCACL,kBAAkB,2DAE3B,QAAQ,EAAE,kBAEL,IAAI,EAAE,SAiJzB,CAAA"}
|
package/dist/deserializer.js
CHANGED
|
@@ -54,15 +54,18 @@ dependentNodes
|
|
|
54
54
|
/**
|
|
55
55
|
* Instantiates a {@link Node} from its {@link SerializedNode serialization}.
|
|
56
56
|
*/
|
|
57
|
-
const instantiate = ({ classifier: classifierMetaPointer,
|
|
57
|
+
const instantiate = ({ id, classifier: classifierMetaPointer, properties, containments, references, annotations }, parent) => {
|
|
58
58
|
const classifier = allEntities
|
|
59
|
-
.find((element) => element instanceof Classifier
|
|
59
|
+
.find((element) => element instanceof Classifier
|
|
60
|
+
&& element.key === classifierMetaPointer.key
|
|
61
|
+
&& element.language.key === classifierMetaPointer.language
|
|
62
|
+
&& element.language.version === classifierMetaPointer.version);
|
|
60
63
|
if (classifier === undefined) {
|
|
61
64
|
throw new Error(`can't deserialize a node having a classifier with key "${classifierMetaPointer.key}"`);
|
|
62
65
|
}
|
|
63
66
|
const allFeatures = allFeaturesOf(classifier);
|
|
64
67
|
const propertySettings = {};
|
|
65
|
-
const serializedPropertiesPerKey = properties === undefined ? {} : groupBy(properties, (sp) => sp.property.key);
|
|
68
|
+
const serializedPropertiesPerKey = properties === undefined ? {} : groupBy(properties, (sp) => sp.property.key); // (this assumes no duplicate keys among properties!)
|
|
66
69
|
if (properties !== undefined) {
|
|
67
70
|
allFeatures
|
|
68
71
|
.filter((feature) => feature instanceof Property)
|
|
@@ -86,15 +89,15 @@ dependentNodes
|
|
|
86
89
|
});
|
|
87
90
|
}
|
|
88
91
|
const node = instantiationFacade.nodeFor(parent, classifier, id, propertySettings);
|
|
89
|
-
const
|
|
90
|
-
const serializedReferencesPerKey = references === undefined ? {} : groupBy(references, (sp) => sp.reference.key);
|
|
92
|
+
const serializedContainmentsPerKey = containments === undefined ? {} : groupBy(containments, (sp) => sp.containment.key); // (this assumes no duplicate keys among containments!)
|
|
93
|
+
const serializedReferencesPerKey = references === undefined ? {} : groupBy(references, (sp) => sp.reference.key); // (this assumes no duplicate keys among references!)
|
|
91
94
|
allFeatures
|
|
92
95
|
.forEach((feature) => {
|
|
93
96
|
if (feature instanceof Property && properties !== undefined && feature.key in serializedPropertiesPerKey) {
|
|
94
97
|
instantiationFacade.setFeatureValue(node, feature, propertySettings[feature.key]);
|
|
95
98
|
}
|
|
96
|
-
else if (feature instanceof Containment && containments !== undefined && feature.key in
|
|
97
|
-
const childIds =
|
|
99
|
+
else if (feature instanceof Containment && containments !== undefined && feature.key in serializedContainmentsPerKey) {
|
|
100
|
+
const childIds = serializedContainmentsPerKey[feature.key].flatMap((serChildren) => serChildren.children);
|
|
98
101
|
if (feature.multiple) {
|
|
99
102
|
childIds
|
|
100
103
|
.forEach((childId) => {
|
|
@@ -103,7 +106,7 @@ dependentNodes
|
|
|
103
106
|
}
|
|
104
107
|
else {
|
|
105
108
|
if (childIds.length > 0) {
|
|
106
|
-
instantiationFacade.setFeatureValue(node, feature, instantiateMemoised(serializedNodeById[childIds[0]], node));
|
|
109
|
+
instantiationFacade.setFeatureValue(node, feature, instantiateMemoised(serializedNodeById[childIds[0]], node)); // (just set the 1st one)
|
|
107
110
|
}
|
|
108
111
|
}
|
|
109
112
|
}
|
|
@@ -114,6 +117,7 @@ dependentNodes
|
|
|
114
117
|
.map((refId) => [node, feature, refId])));
|
|
115
118
|
}
|
|
116
119
|
});
|
|
120
|
+
node.annotations = annotations.map((annotationId) => instantiateMemoised(serializedNodeById[annotationId]));
|
|
117
121
|
return node;
|
|
118
122
|
};
|
|
119
123
|
const rootNodes = serializedRootNodes.map((serializedRootNode) => instantiateMemoised(serializedRootNode));
|
package/dist/deserializer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deserializer.js","sourceRoot":"","sources":["../src/deserializer.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,iCAAiC,EAAqC,MAAM,oBAAoB,CAAA;AAExG,OAAO,EACH,UAAU,EAEV,WAAW,EACX,WAAW,EAEX,aAAa,EACb,QAAQ,EACR,SAAS,EACZ,MAAM,eAAe,CAAA;AACtB,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAC,kBAAkB,EAAC,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAC,OAAO,EAAC,MAAM,qBAAqB,CAAA;AAG3C;;GAEG;AACH,MAAM,OAAO,GAAG,CAAuB,EAAO,EAAmB,EAAE;IAC/D,MAAM,GAAG,GAAoB,EAAE,CAAA;IAC/B,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QACb,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;IACjB,CAAC,CAAC,CAAA;IACF,OAAO,GAAG,CAAA;AACd,CAAC,CAAA;AAGD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC5B,kBAAsC,EACtC,mBAA4C,EAC5C,SAAqB;AACrB,+EAA+E;AAC/E,cAAsB;AACtB,wHAAwH;EACpH,EAAE;IAEN,IAAI,kBAAkB,CAAC,0BAA0B,KAAK,iCAAiC,EAAE;QACrF,MAAM,IAAI,KAAK,CAAC,mEAAmE,iCAAiC,GAAG,CAAC,CAAA;KAC3H;IAED,MAAM,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,EAAC,QAAQ,EAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAA;IAE/D,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,kBAAkB,CAAA;IAErD,MAAM,mBAAmB,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,EAAC,MAAM,EAAC,EAAE,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,CAAA;IACjF,IAAI,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE;QAClC,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA;KAChE;IAED,MAAM,kBAAkB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;IAEnD,MAAM,oBAAoB,GAAqB,EAAE,CAAA;IAEjD;;;;OAIG;IACH,MAAM,mBAAmB,GAAG,CAAC,OAAuB,EAAE,MAAW,EAAM,EAAE;QACrE,IAAI,OAAO,CAAC,EAAE,IAAI,oBAAoB,EAAE;YACpC,OAAO,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;SAC1C;QACD,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QACzC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAA;QACpC,OAAO,IAAI,CAAA;IACf,CAAC,CAAA;IAGD,MAAM,mBAAmB,GAAyB,EAAE,CAAA;IAEpD;;OAEG;IACH,MAAM,WAAW,GAAG,CAAC,EAAC,
|
|
1
|
+
{"version":3,"file":"deserializer.js","sourceRoot":"","sources":["../src/deserializer.ts"],"names":[],"mappings":"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"}
|
package/dist/dynamic-facade.d.ts
CHANGED
|
@@ -8,15 +8,6 @@ export type DynamicNode = Node & {
|
|
|
8
8
|
classifier: Classifier;
|
|
9
9
|
settings: Record<string, unknown>;
|
|
10
10
|
};
|
|
11
|
-
/**
|
|
12
|
-
* A parallel version of {@link INamed} for dynamic nodes.
|
|
13
|
-
* (This type def. is predominantly meant for use in generated code.)
|
|
14
|
-
*/
|
|
15
|
-
export type DynamicINamed = DynamicNode & {
|
|
16
|
-
settings: {
|
|
17
|
-
name: string;
|
|
18
|
-
};
|
|
19
|
-
};
|
|
20
11
|
/**
|
|
21
12
|
* An implementation of {@link ExtractionFacade} for {@link DynamicNode dynamic nodes}.
|
|
22
13
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamic-facade.d.ts","sourceRoot":"","sources":["../src/dynamic-facade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,YAAY,CAAA;
|
|
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,4 +1,9 @@
|
|
|
1
|
+
import { builtinFeatures } from "./m3/builtins.js";
|
|
1
2
|
import { updateSettingsKeyBased } from "./facade.js";
|
|
3
|
+
// TODO could also have properties, containments, references - mimicking the serialization
|
|
4
|
+
const propertyGetterFor = (key) => (node) => (key in node.settings && typeof node.settings[key] === "string")
|
|
5
|
+
? node.settings[key] // FIXME type cast shouldn't be necessary
|
|
6
|
+
: undefined;
|
|
2
7
|
/**
|
|
3
8
|
* An implementation of {@link ExtractionFacade} for {@link DynamicNode dynamic nodes}.
|
|
4
9
|
*/
|
|
@@ -8,7 +13,8 @@ export const dynamicExtractionFacade = ({
|
|
|
8
13
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
9
14
|
node.settings[feature.key],
|
|
10
15
|
enumerationLiteralFrom: (value, enumeration) => enumeration.literals.find(({ key }) => key === value)
|
|
11
|
-
?? null
|
|
16
|
+
?? null,
|
|
17
|
+
resolveInfoFor: propertyGetterFor(builtinFeatures.inamed_name.key)
|
|
12
18
|
});
|
|
13
19
|
/**
|
|
14
20
|
* An implementation of {@link InstantiationFacade} for {@link DynamicNode dynamic nodes}.
|
|
@@ -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;IACX,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
|
@@ -4,6 +4,12 @@ import { Classifier, Enumeration, EnumerationLiteral, Feature } from "./m3/types
|
|
|
4
4
|
* Type def. for functions that deduce the {@link Classifier classifier} of a given {@link Node node}.
|
|
5
5
|
*/
|
|
6
6
|
type ClassifierDeducer<NT extends Node> = (node: NT) => Classifier;
|
|
7
|
+
/**
|
|
8
|
+
* Type def. for functions that deduce the string value of the `resolveInfo` field of a
|
|
9
|
+
* {@link SerializedReferenceTarget serialized reference target}, or {@code undefined}
|
|
10
|
+
* to indicate that no `resolveInfo` could be derived.
|
|
11
|
+
*/
|
|
12
|
+
type ResolveInfoDeducer<NT extends Node> = (node: NT) => string | undefined;
|
|
7
13
|
/**
|
|
8
14
|
* Two interfaces that defines façades for in-memory models.
|
|
9
15
|
* Instances/implementations of this interface parametrize generic (de-)serialization.
|
|
@@ -25,6 +31,11 @@ interface ExtractionFacade<NT extends Node> {
|
|
|
25
31
|
* the given {@link Enumeration} and the runtime encoding of a literal of it,
|
|
26
32
|
*/
|
|
27
33
|
enumerationLiteralFrom: (encoding: unknown, enumeration: Enumeration) => EnumerationLiteral | null;
|
|
34
|
+
/**
|
|
35
|
+
* @return The string value of the `resolveInfo` field of a {@link SerializedReferenceTarget serialized reference target},
|
|
36
|
+
* or {@code undefined} to indicate that no `resolveInfo` could be derived.
|
|
37
|
+
*/
|
|
38
|
+
resolveInfoFor?: ResolveInfoDeducer<NT>;
|
|
28
39
|
}
|
|
29
40
|
interface InstantiationFacade<NT extends Node> {
|
|
30
41
|
/**
|
|
@@ -57,16 +68,17 @@ declare const childrenExtractorUsing: <NT extends Node>(extractionFacade: Extrac
|
|
|
57
68
|
* @return a function that extracts *all* nodes from a given start node - usually a root node.
|
|
58
69
|
*/
|
|
59
70
|
declare const nodesExtractorUsing: <NT extends Node>(extractionFacade: ExtractionFacade<NT>) => NodesExtractor<NT>;
|
|
71
|
+
type SettingsUpdater = (settings: Record<string, unknown>, feature: Feature, value: unknown) => void;
|
|
60
72
|
/**
|
|
61
73
|
* Updates the value of the given {@link Feature feature} on the given "settings" object
|
|
62
74
|
* (either a {@link Node node} or a sub object of it), using the feature's *name*.
|
|
63
75
|
*/
|
|
64
|
-
declare const updateSettingsNameBased:
|
|
76
|
+
declare const updateSettingsNameBased: SettingsUpdater;
|
|
65
77
|
/**
|
|
66
78
|
* Updates the value of the given {@link Feature feature} on the given "settings" object
|
|
67
79
|
* (either a {@link Node node} or a sub object of it), using the feature's *key*.
|
|
68
80
|
*/
|
|
69
|
-
declare const updateSettingsKeyBased:
|
|
70
|
-
export type { ClassifierDeducer,
|
|
81
|
+
declare const updateSettingsKeyBased: SettingsUpdater;
|
|
82
|
+
export type { ClassifierDeducer, ExtractionFacade, InstantiationFacade, NodesExtractor, ResolveInfoDeducer };
|
|
71
83
|
export { childrenExtractorUsing, nodesExtractorUsing, updateSettingsKeyBased, updateSettingsNameBased };
|
|
72
84
|
//# sourceMappingURL=facade.d.ts.map
|
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,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;
|
|
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,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,CAAA;AAE1D;;GAEG;AACH,QAAA,MAAM,sBAAsB,iFAIsE,CAAA;AAGlG;;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
|
@@ -11,28 +11,9 @@ const childrenExtractorUsing = (extractionFacade) => (node) => allFeaturesOf(ext
|
|
|
11
11
|
* @return a function that extracts *all* nodes from a given start node - usually a root node.
|
|
12
12
|
*/
|
|
13
13
|
const nodesExtractorUsing = (extractionFacade) => flatMapNonCyclingFollowing(trivialFlatMapper, childrenExtractorUsing(extractionFacade));
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
*/
|
|
18
|
-
const updateSettingsNameBased = (settings, feature, value) => {
|
|
19
|
-
const fName = feature.name;
|
|
20
|
-
if (feature instanceof Link && feature.multiple) {
|
|
21
|
-
if (!Array.isArray(settings[fName])) {
|
|
22
|
-
settings[fName] = [];
|
|
23
|
-
}
|
|
24
|
-
settings[fName].push(value);
|
|
25
|
-
}
|
|
26
|
-
else {
|
|
27
|
-
settings[fName] = value;
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
/**
|
|
31
|
-
* Updates the value of the given {@link Feature feature} on the given "settings" object
|
|
32
|
-
* (either a {@link Node node} or a sub object of it), using the feature's *key*.
|
|
33
|
-
*/
|
|
34
|
-
const updateSettingsKeyBased = (settings, feature, value) => {
|
|
35
|
-
const { key } = feature;
|
|
14
|
+
const settingsUpdater = (metaKey) => (settings, feature, value) => {
|
|
15
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
16
|
+
const key = feature[metaKey];
|
|
36
17
|
if (feature instanceof Link && feature.multiple) {
|
|
37
18
|
if (!Array.isArray(settings[key])) {
|
|
38
19
|
settings[key] = [];
|
|
@@ -43,5 +24,15 @@ const updateSettingsKeyBased = (settings, feature, value) => {
|
|
|
43
24
|
settings[key] = value;
|
|
44
25
|
}
|
|
45
26
|
};
|
|
27
|
+
/**
|
|
28
|
+
* Updates the value of the given {@link Feature feature} on the given "settings" object
|
|
29
|
+
* (either a {@link Node node} or a sub object of it), using the feature's *name*.
|
|
30
|
+
*/
|
|
31
|
+
const updateSettingsNameBased = settingsUpdater("name");
|
|
32
|
+
/**
|
|
33
|
+
* Updates the value of the given {@link Feature feature} on the given "settings" object
|
|
34
|
+
* (either a {@link Node node} or a sub object of it), using the feature's *key*.
|
|
35
|
+
*/
|
|
36
|
+
const updateSettingsKeyBased = settingsUpdater("key");
|
|
46
37
|
export { childrenExtractorUsing, nodesExtractorUsing, updateSettingsKeyBased, updateSettingsNameBased };
|
|
47
38
|
//# sourceMappingURL=facade.js.map
|
package/dist/facade.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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;
|
|
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,CACf,aAAa,CAAC,gBAAgB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;KAC7C,MAAM,CAAC,aAAa,CAAC;KACrB,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,gBAAgB,CAAC,eAAe,CAAC,IAAI,EAAE,WAAW,CAAS,CAAC,CAAA;AAGlG;;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;QAC7C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE;YAC/B,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAA;SACrB;QACA,QAAQ,CAAC,GAAG,CAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KAC3C;SAAM;QACH,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;KACxB;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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Language } from "./types.js";
|
|
2
2
|
import { SerializationChunk } from "../serialization.js";
|
|
3
3
|
/**
|
|
4
|
-
* Deserializes
|
|
4
|
+
* Deserializes languages that have been serialized into the LionWeb serialization JSON format
|
|
5
5
|
* as an instance of the LionCore metametamodel, using {@link _M3Concept these type definitions}.
|
|
6
6
|
*/
|
|
7
|
-
export declare const
|
|
7
|
+
export declare const deserializeLanguages: (serializationChunk: SerializationChunk, ...dependentLanguages: Language[]) => Language[];
|
|
8
8
|
//# sourceMappingURL=deserializer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deserializer.d.ts","sourceRoot":"","sources":["../../src/m3/deserializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAA;AACnC,OAAO,EAAC,kBAAkB,EAAC,MAAM,qBAAqB,CAAA;AAQtD;;;GAGG;AACH,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"deserializer.d.ts","sourceRoot":"","sources":["../../src/m3/deserializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAA;AACnC,OAAO,EAAC,kBAAkB,EAAC,MAAM,qBAAqB,CAAA;AAQtD;;;GAGG;AACH,eAAO,MAAM,oBAAoB,uBAAwB,kBAAkB,yBAAyB,QAAQ,EAAE,KAAG,QAAQ,EAQpC,CAAA"}
|
package/dist/m3/deserializer.js
CHANGED
|
@@ -1,16 +1,15 @@
|
|
|
1
|
+
import { Language } from "./types.js";
|
|
1
2
|
import { lioncoreExtractionFacade, lioncoreInstantiationFacade } from "./facade.js";
|
|
2
3
|
import { nodesExtractorUsing } from "../facade.js";
|
|
3
4
|
import { deserializeChunk } from "../deserializer.js";
|
|
4
5
|
import { lioncore } from "./lioncore.js";
|
|
5
6
|
import { lioncoreBuiltins } from "./builtins.js";
|
|
6
7
|
/**
|
|
7
|
-
* Deserializes
|
|
8
|
+
* Deserializes languages that have been serialized into the LionWeb serialization JSON format
|
|
8
9
|
* as an instance of the LionCore metametamodel, using {@link _M3Concept these type definitions}.
|
|
9
10
|
*/
|
|
10
|
-
export const
|
|
11
|
-
|
|
12
|
-
language.dependingOn(...
|
|
13
|
-
return language;
|
|
14
|
-
};
|
|
11
|
+
export const deserializeLanguages = (serializationChunk, ...dependentLanguages) => deserializeChunk(serializationChunk, lioncoreInstantiationFacade, [lioncore], [lioncoreBuiltins, ...dependentLanguages].flatMap(nodesExtractorUsing(lioncoreExtractionFacade)))
|
|
12
|
+
.filter((rootNode) => rootNode instanceof Language)
|
|
13
|
+
.map((language) => language.dependingOn(...dependentLanguages));
|
|
15
14
|
// TODO pass a function that can resolve dependent metamodels, since they'd generally only known in the serialization
|
|
16
15
|
//# sourceMappingURL=deserializer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deserializer.js","sourceRoot":"","sources":["../../src/m3/deserializer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"deserializer.js","sourceRoot":"","sources":["../../src/m3/deserializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAA;AAEnC,OAAO,EAAC,wBAAwB,EAAE,2BAA2B,EAAC,MAAM,aAAa,CAAA;AACjF,OAAO,EAAC,mBAAmB,EAAC,MAAM,cAAc,CAAA;AAChD,OAAO,EAAC,gBAAgB,EAAC,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAA;AACtC,OAAO,EAAC,gBAAgB,EAAC,MAAM,eAAe,CAAA;AAG9C;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,kBAAsC,EAAE,GAAG,kBAA8B,EAAc,EAAE,CAC1H,gBAAgB,CACZ,kBAAkB,EAClB,2BAA2B,EAC3B,CAAC,QAAQ,CAAC,EACV,CAAC,gBAAgB,EAAE,GAAG,kBAAkB,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,wBAAwB,CAAC,CAAC,CACnG;KACI,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,YAAY,QAAQ,CAAC;KAClD,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAE,QAAqB,CAAC,WAAW,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAA;AACrF,sHAAsH"}
|
package/dist/m3/facade.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"facade.d.ts","sourceRoot":"","sources":["../../src/m3/facade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAE,mBAAmB,EAA0B,MAAM,cAAc,CAAA;AAC3F,OAAO,
|
|
1
|
+
{"version":3,"file":"facade.d.ts","sourceRoot":"","sources":["../../src/m3/facade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAE,mBAAmB,EAA0B,MAAM,cAAc,CAAA;AAC3F,OAAO,EASH,SAAS,EAIZ,MAAM,YAAY,CAAA;AAUnB,eAAO,MAAM,wBAAwB,EAAE,gBAAgB,CAAC,SAAS,CAM/D,CAAA;AAGF;;GAEG;AACH,eAAO,MAAM,2BAA2B,EAAE,mBAAmB,CAAC,SAAS,CA+BrE,CAAA"}
|
package/dist/m3/facade.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { updateSettingsNameBased } from "../facade.js";
|
|
2
|
-
import { Concept, Containment, Enumeration, EnumerationLiteral, Interface, Language, PrimitiveType, Property, Reference } from "./types.js";
|
|
2
|
+
import { Annotation, Concept, Containment, Enumeration, EnumerationLiteral, Interface, Language, PrimitiveType, Property, Reference } from "./types.js";
|
|
3
3
|
import { builtinFeatures } from "./builtins.js";
|
|
4
4
|
import { lioncore, metaConcepts, metaFeatures } from "./lioncore.js";
|
|
5
5
|
import { classBasedClassifierDeducerFor, qualifiedNameOf } from "./functions.js";
|
|
@@ -18,6 +18,8 @@ export const lioncoreExtractionFacade = ({
|
|
|
18
18
|
export const lioncoreInstantiationFacade = ({
|
|
19
19
|
nodeFor: (parent, classifier, id, propertySettings) => {
|
|
20
20
|
switch (classifier.key) {
|
|
21
|
+
case metaConcepts.annotation.key:
|
|
22
|
+
return new Annotation(parent, propertySettings[inamed_name.key], propertySettings[ikeyed_key.key], id);
|
|
21
23
|
case metaConcepts.concept.key:
|
|
22
24
|
return new Concept(parent, propertySettings[inamed_name.key], propertySettings[ikeyed_key.key], id, propertySettings[metaFeatures.concept_abstract.key]);
|
|
23
25
|
case metaConcepts.interface.key:
|
package/dist/m3/facade.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"facade.js","sourceRoot":"","sources":["../../src/m3/facade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwC,uBAAuB,EAAC,MAAM,cAAc,CAAA;AAC3F,OAAO,
|
|
1
|
+
{"version":3,"file":"facade.js","sourceRoot":"","sources":["../../src/m3/facade.ts"],"names":[],"mappings":"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"}
|
package/dist/m3/factory.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/m3/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,UAAU,EACV,UAAU,EACV,OAAO,EACP,WAAW,EACX,WAAW,EACX,kBAAkB,EAClB,SAAS,EACT,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,SAAS,EACZ,MAAM,YAAY,CAAA;AACnB,OAAO,EAAC,SAAS,EAAC,MAAM,kBAAkB,CAAA;AAC1C,OAAO,EAAC,aAAa,EAAC,MAAM,4BAA4B,CAAA;AAGxD;;;GAGG;AACH,qBAAa,eAAe;IAExB,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAA;IAC1B,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAA;IAC3B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;gBAEf,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,aAAa;
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/m3/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,UAAU,EACV,UAAU,EACV,OAAO,EACP,WAAW,EACX,WAAW,EACX,kBAAkB,EAClB,SAAS,EACT,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,SAAS,EACZ,MAAM,YAAY,CAAA;AACnB,OAAO,EAAC,SAAS,EAAC,MAAM,kBAAkB,CAAA;AAC1C,OAAO,EAAC,aAAa,EAAC,MAAM,4BAA4B,CAAA;AAGxD;;;GAGG;AACH,qBAAa,eAAe;IAExB,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAA;IAC1B,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAA;IAC3B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;gBAEf,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,aAAa;IAShF,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC;IAIzD,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC;IAItE,SAAS,CAAC,IAAI,EAAE,MAAM;IAItB,WAAW,CAAC,IAAI,EAAE,MAAM;IAIxB,aAAa,CAAC,IAAI,EAAE,MAAM;IAK1B,WAAW,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM;IAIhD,QAAQ,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM;IAI7C,SAAS,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM;IAK9C,kBAAkB,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM;CAI5D"}
|
package/dist/m3/factory.js
CHANGED
|
@@ -9,6 +9,7 @@ export class LanguageFactory {
|
|
|
9
9
|
this.key = key;
|
|
10
10
|
this.language = new Language(name, version, this.id(name), this.key(name));
|
|
11
11
|
}
|
|
12
|
+
// TODO also take care of containment immediately? (then most calls to .having<X> would be unnecessary/wrong)
|
|
12
13
|
annotation(name, extends_) {
|
|
13
14
|
return new Annotation(this.language, name, this.key(this.language.name, name), this.id(this.language.name, name), extends_);
|
|
14
15
|
}
|
package/dist/m3/factory.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/m3/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,UAAU,EAEV,OAAO,EACP,WAAW,EACX,WAAW,EACX,kBAAkB,EAClB,SAAS,EACT,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,SAAS,EACZ,MAAM,YAAY,CAAA;AAKnB;;;GAGG;AACH,MAAM,OAAO,eAAe;IAMxB,YAAY,IAAY,EAAE,OAAe,EAAE,EAAiB,EAAE,GAAkB;QAC5E,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;QACZ,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;IAC9E,CAAC;
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/m3/factory.ts"],"names":[],"mappings":"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"}
|
package/dist/m3/serializer.d.ts
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { Language } from "./types.js";
|
|
2
2
|
import { SerializationChunk } from "../serialization.js";
|
|
3
3
|
/**
|
|
4
|
-
* Serializes
|
|
5
|
-
* using {@link M3Concept these type definitions})
|
|
4
|
+
* Serializes languages (i.e., instances of the LionCore metametamodel, using {@link M3Concept these type definitions})
|
|
6
5
|
* into the LionWeb serialization JSON format.
|
|
7
6
|
*/
|
|
8
|
-
export declare const
|
|
7
|
+
export declare const serializeLanguages: (...languages: Language[]) => SerializationChunk;
|
|
9
8
|
//# sourceMappingURL=serializer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serializer.d.ts","sourceRoot":"","sources":["../../src/m3/serializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAA;AACnC,OAAO,EAAC,kBAAkB,EAAC,MAAM,qBAAqB,CAAA;AAKtD
|
|
1
|
+
{"version":3,"file":"serializer.d.ts","sourceRoot":"","sources":["../../src/m3/serializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAA;AACnC,OAAO,EAAC,kBAAkB,EAAC,MAAM,qBAAqB,CAAA;AAKtD;;;GAGG;AACH,eAAO,MAAM,kBAAkB,iBAAkB,QAAQ,EAAE,KAAG,kBACP,CAAA"}
|
package/dist/m3/serializer.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { serializeNodes } from "../serializer.js";
|
|
2
2
|
import { lioncoreExtractionFacade } from "./facade.js";
|
|
3
3
|
/**
|
|
4
|
-
* Serializes
|
|
5
|
-
* using {@link M3Concept these type definitions})
|
|
4
|
+
* Serializes languages (i.e., instances of the LionCore metametamodel, using {@link M3Concept these type definitions})
|
|
6
5
|
* into the LionWeb serialization JSON format.
|
|
7
6
|
*/
|
|
8
|
-
export const
|
|
7
|
+
export const serializeLanguages = (...languages) => serializeNodes(languages, lioncoreExtractionFacade);
|
|
9
8
|
//# sourceMappingURL=serializer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serializer.js","sourceRoot":"","sources":["../../src/m3/serializer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAC,wBAAwB,EAAC,MAAM,aAAa,CAAA;AAGpD
|
|
1
|
+
{"version":3,"file":"serializer.js","sourceRoot":"","sources":["../../src/m3/serializer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAC,wBAAwB,EAAC,MAAM,aAAa,CAAA;AAGpD;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,GAAG,SAAqB,EAAsB,EAAE,CAC/E,cAAc,CAAC,SAAS,EAAE,wBAAwB,CAAC,CAAA"}
|
package/dist/m3/types.d.ts
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* TypeScript type definitions for the `LionCore` M3 (=meta-meta) model.
|
|
3
3
|
* A LionWeb language (at the M2 meta level) can be represented as an instance of the {@link Language} type.
|
|
4
4
|
*/
|
|
5
|
+
import { ResolveInfoDeducer } from "../facade.js";
|
|
5
6
|
import { MultiRef, SingleRef } from "../references.js";
|
|
6
7
|
import { Id, Node } from "../types.js";
|
|
7
8
|
/**
|
|
@@ -13,6 +14,7 @@ interface INamed extends Node {
|
|
|
13
14
|
name: string;
|
|
14
15
|
}
|
|
15
16
|
declare const isINamed: (node: Node) => node is INamed;
|
|
17
|
+
declare const simpleNameDeducer: ResolveInfoDeducer<Node>;
|
|
16
18
|
interface IKeyed extends INamed {
|
|
17
19
|
key: Id;
|
|
18
20
|
}
|
|
@@ -28,6 +30,7 @@ declare abstract class M3Node implements IKeyed {
|
|
|
28
30
|
key: Id;
|
|
29
31
|
protected constructor(id: Id, name: string, key: Id, parent?: M3Node);
|
|
30
32
|
havingKey(key: Id): this;
|
|
33
|
+
annotations: Node[];
|
|
31
34
|
}
|
|
32
35
|
declare abstract class Feature extends M3Node {
|
|
33
36
|
optional: boolean;
|
|
@@ -103,6 +106,6 @@ declare class Language extends M3Node {
|
|
|
103
106
|
* so they also implement {@link INamed} and {@link IKeyed}.
|
|
104
107
|
*/
|
|
105
108
|
type M3Concept = Annotation | Concept | Containment | Enumeration | EnumerationLiteral | Interface | Language | PrimitiveType | Property | Reference;
|
|
106
|
-
export { Annotation, Classifier, Concept, Containment, Datatype, Enumeration, EnumerationLiteral, Feature, Interface, Language, LanguageEntity, Link, PrimitiveType, Property, Reference, isINamed, isIKeyed, lioncoreBuiltinsKey };
|
|
109
|
+
export { Annotation, Classifier, Concept, Containment, Datatype, Enumeration, EnumerationLiteral, Feature, Interface, Language, LanguageEntity, Link, PrimitiveType, Property, Reference, isINamed, isIKeyed, lioncoreBuiltinsKey, simpleNameDeducer };
|
|
107
110
|
export type { IKeyed, INamed, M3Concept, M3Node };
|
|
108
111
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/m3/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/m3/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAC,QAAQ,EAAE,SAAS,EAAa,MAAM,kBAAkB,CAAA;AAChE,OAAO,EAAC,EAAE,EAAE,IAAI,EAAC,MAAM,aAAa,CAAA;AAGpC;;;GAGG;AACH,QAAA,MAAM,mBAAmB,sBAAsB,CAAA;AAO/C,UAAU,MAAO,SAAQ,IAAI;IACzB,IAAI,EAAE,MAAM,CAAA;CACf;AAED,QAAA,MAAM,QAAQ,SAAU,IAAI,mBACuB,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/m3/types.ts"],"names":[],"mappings":"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"}
|
package/dist/m3/types.js
CHANGED
|
@@ -9,6 +9,7 @@ import { unresolved } from "../references.js";
|
|
|
9
9
|
*/
|
|
10
10
|
const lioncoreBuiltinsKey = "LionCore-builtins";
|
|
11
11
|
const isINamed = (node) => "name" in node && typeof node.name === "string";
|
|
12
|
+
const simpleNameDeducer = (node) => isINamed(node) ? node.name : undefined;
|
|
12
13
|
const isIKeyed = (node) => isINamed(node) && "key" in node && typeof node.key === "string";
|
|
13
14
|
/**
|
|
14
15
|
* Abstract base class for nodes in an LionCore instance,
|
|
@@ -16,6 +17,7 @@ const isIKeyed = (node) => isINamed(node) && "key" in node && typeof node.key ==
|
|
|
16
17
|
*/
|
|
17
18
|
class M3Node {
|
|
18
19
|
constructor(id, name, key, parent) {
|
|
20
|
+
this.annotations = []; // (containment)
|
|
19
21
|
this.id = id;
|
|
20
22
|
this.name = name;
|
|
21
23
|
this.key = key;
|
|
@@ -177,5 +179,5 @@ class Language extends M3Node {
|
|
|
177
179
|
return this.key === that.key && this.version === that.version;
|
|
178
180
|
}
|
|
179
181
|
}
|
|
180
|
-
export { Annotation, Classifier, Concept, Containment, Datatype, Enumeration, EnumerationLiteral, Feature, Interface, Language, LanguageEntity, Link, PrimitiveType, Property, Reference, isINamed, isIKeyed, lioncoreBuiltinsKey };
|
|
182
|
+
export { Annotation, Classifier, Concept, Containment, Datatype, Enumeration, EnumerationLiteral, Feature, Interface, Language, LanguageEntity, Link, PrimitiveType, Property, Reference, isINamed, isIKeyed, lioncoreBuiltinsKey, simpleNameDeducer };
|
|
181
183
|
//# sourceMappingURL=types.js.map
|
package/dist/m3/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/m3/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/m3/types.ts"],"names":[],"mappings":"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"}
|
package/dist/serialization.d.ts
CHANGED
|
@@ -14,8 +14,8 @@ export type SerializedContainment = {
|
|
|
14
14
|
children: Ids;
|
|
15
15
|
};
|
|
16
16
|
export type SerializedReferenceTarget = {
|
|
17
|
-
resolveInfo?: string;
|
|
18
17
|
reference: Id;
|
|
18
|
+
resolveInfo?: string;
|
|
19
19
|
};
|
|
20
20
|
export type SerializedReference = {
|
|
21
21
|
reference: MetaPointer;
|
|
@@ -25,11 +25,12 @@ export type SerializedReference = {
|
|
|
25
25
|
* Type definition for an AST node serialized to JSON.
|
|
26
26
|
*/
|
|
27
27
|
export type SerializedNode = {
|
|
28
|
-
classifier: MetaPointer;
|
|
29
28
|
id: string;
|
|
29
|
+
classifier: MetaPointer;
|
|
30
30
|
properties: SerializedProperty[];
|
|
31
31
|
containments: SerializedContainment[];
|
|
32
32
|
references: SerializedReference[];
|
|
33
|
+
annotations: Id[];
|
|
33
34
|
parent: Id | null;
|
|
34
35
|
};
|
|
35
36
|
export type SerializedLanguageReference = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialization.d.ts","sourceRoot":"","sources":["../src/serialization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,EAAE,EAAC,MAAM,YAAY,CAAA;AAI7B,MAAM,MAAM,GAAG,GAAG,EAAE,EAAE,CAAA;AAGtB,MAAM,MAAM,WAAW,GAAG;IACtB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC7B,QAAQ,EAAE,WAAW,CAAA;IACrB,KAAK,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAChC,WAAW,EAAE,WAAW,CAAA;IACxB,QAAQ,EAAE,GAAG,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG;IACpC,
|
|
1
|
+
{"version":3,"file":"serialization.d.ts","sourceRoot":"","sources":["../src/serialization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,EAAE,EAAC,MAAM,YAAY,CAAA;AAI7B,MAAM,MAAM,GAAG,GAAG,EAAE,EAAE,CAAA;AAGtB,MAAM,MAAM,WAAW,GAAG;IACtB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC7B,QAAQ,EAAE,WAAW,CAAA;IACrB,KAAK,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAChC,WAAW,EAAE,WAAW,CAAA;IACxB,QAAQ,EAAE,GAAG,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG;IACpC,SAAS,EAAE,EAAE,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAC9B,SAAS,EAAE,WAAW,CAAA;IACtB,OAAO,EAAE,yBAAyB,EAAE,CAAA;CACvC,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,WAAW,CAAA;IACvB,UAAU,EAAE,kBAAkB,EAAE,CAAA;IAChC,YAAY,EAAE,qBAAqB,EAAE,CAAA;IACrC,UAAU,EAAE,mBAAmB,EAAE,CAAA;IACjC,WAAW,EAAE,EAAE,EAAE,CAAA;IACjB,MAAM,EAAE,EAAE,GAAG,IAAI,CAAA;CACpB,CAAA;AAGD,MAAM,MAAM,2BAA2B,GAAG;IACtC,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;CAClB,CAAA;AAGD;;;GAGG;AACH,eAAO,MAAM,iCAAiC,WAAwB,CAAA;AAGtE;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC7B,0BAA0B,EAAE,MAAM,CAAA;IAClC,SAAS,EAAE,2BAA2B,EAAE,CAAA;IACxC,KAAK,EAAE,cAAc,EAAE,CAAA;CAC1B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialization.js","sourceRoot":"","sources":["../src/serialization.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,qBAAqB,EAAC,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"serialization.js","sourceRoot":"","sources":["../src/serialization.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,qBAAqB,EAAC,MAAM,cAAc,CAAA;AAoDlD;;;GAGG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,qBAAqB,CAAA"}
|
package/dist/serializer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serializer.d.ts","sourceRoot":"","sources":["../src/serializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAC,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAiD,kBAAkB,EAAiB,MAAM,oBAAoB,CAAA;AAErH,OAAO,EAAC,IAAI,EAAC,MAAM,YAAY,CAAA;AAO/B;;GAEG;AACH,eAAO,MAAM,cAAc,4EAA2E,
|
|
1
|
+
{"version":3,"file":"serializer.d.ts","sourceRoot":"","sources":["../src/serializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAC,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAiD,kBAAkB,EAAiB,MAAM,oBAAoB,CAAA;AAErH,OAAO,EAAC,IAAI,EAAC,MAAM,YAAY,CAAA;AAO/B;;GAEG;AACH,eAAO,MAAM,cAAc,4EAA2E,kBAkGrG,CAAA"}
|
package/dist/serializer.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { currentSerializationFormatVersion } from "./serialization.js";
|
|
2
2
|
import { asIds } from "./functions.js";
|
|
3
|
-
import {
|
|
3
|
+
import { lioncoreBuiltins, serializeBuiltin } from "./m3/builtins.js";
|
|
4
4
|
import { allFeaturesOf } from "./m3/functions.js";
|
|
5
|
+
import { Containment, Enumeration, PrimitiveType, Property, Reference, simpleNameDeducer } from "./m3/types.js";
|
|
5
6
|
import { asArray } from "./utils/array-helpers.js";
|
|
6
|
-
import { lioncoreBuiltins, serializeBuiltin } from "./m3/builtins.js";
|
|
7
7
|
/**
|
|
8
8
|
* @return a {@link SerializationChunk} of the given model (i.e., an array of {@link Node nodes} - the first argument) to the LionWeb serialization JSON format.
|
|
9
9
|
*/
|
|
@@ -33,6 +33,7 @@ export const serializeNodes = (nodes, extractionFacade) => {
|
|
|
33
33
|
properties: [],
|
|
34
34
|
containments: [],
|
|
35
35
|
references: [],
|
|
36
|
+
annotations: [],
|
|
36
37
|
parent: null
|
|
37
38
|
};
|
|
38
39
|
serializedNodes.push(serializedNode);
|
|
@@ -80,13 +81,16 @@ export const serializeNodes = (nodes, extractionFacade) => {
|
|
|
80
81
|
serializedNode.references.push({
|
|
81
82
|
reference: featureMetaPointer,
|
|
82
83
|
targets: targets.map((t) => ({
|
|
83
|
-
resolveInfo:
|
|
84
|
+
resolveInfo: extractionFacade.resolveInfoFor
|
|
85
|
+
? extractionFacade.resolveInfoFor(t)
|
|
86
|
+
: simpleNameDeducer(t),
|
|
84
87
|
reference: t.id
|
|
85
88
|
}))
|
|
86
89
|
});
|
|
87
90
|
return;
|
|
88
91
|
}
|
|
89
92
|
});
|
|
93
|
+
serializedNode.annotations = asArray(node.annotations).map((annotation) => annotation.id);
|
|
90
94
|
serializedNode.parent = parent?.id ?? null; // (undefined -> null)
|
|
91
95
|
};
|
|
92
96
|
nodes.forEach((node) => visit(node, undefined));
|
package/dist/serializer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serializer.js","sourceRoot":"","sources":["../src/serializer.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,iCAAiC,EAAkD,MAAM,oBAAoB,CAAA;AACrH,OAAO,EAAC,KAAK,EAAC,MAAM,gBAAgB,CAAA;AAEpC,OAAO,
|
|
1
|
+
{"version":3,"file":"serializer.js","sourceRoot":"","sources":["../src/serializer.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,iCAAiC,EAAkD,MAAM,oBAAoB,CAAA;AACrH,OAAO,EAAC,KAAK,EAAC,MAAM,gBAAgB,CAAA;AAEpC,OAAO,EAAmB,gBAAgB,EAAE,gBAAgB,EAAC,MAAM,kBAAkB,CAAA;AACrF,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAC,WAAW,EAAE,WAAW,EAAY,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,iBAAiB,EAAC,MAAM,eAAe,CAAA;AACvH,OAAO,EAAC,OAAO,EAAC,MAAM,0BAA0B,CAAA;AAGhD;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAkB,KAAW,EAAE,gBAAsC,EAAqC,EAAE;IACtI,MAAM,eAAe,GAAqB,EAAE,CAAA,CAAE,4CAA4C;IAC1F,MAAM,GAAG,GAA8B,EAAE,CAAA,CAAG,yEAAyE;IACrH,MAAM,aAAa,GAAe,EAAE,CAAA;IACpC,MAAM,oBAAoB,GAAG,CAAC,QAAkB,EAAE,EAAE;QAChD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE;YACtE,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;SAC/B;IACL,CAAC,CAAA;IAED,MAAM,KAAK,GAAG,CAAC,IAAQ,EAAE,MAAW,EAAE,EAAE;QACpC,IAAI,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;YACd,OAAM;SACT;QAED,MAAM,UAAU,GAAG,gBAAgB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;QACtD,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAA;QACpC,oBAAoB,CAAC,QAAQ,CAAC,CAAA;QAC9B,MAAM,cAAc,GAAmB;YACnC,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,UAAU,EAAE;gBACR,QAAQ,EAAE,QAAQ,CAAC,GAAG;gBACtB,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,GAAG,EAAE,UAAU,CAAC,GAAG;aACtB;YACD,UAAU,EAAE,EAAE;YACd,YAAY,EAAE,EAAE;YAChB,UAAU,EAAE,EAAE;YACd,WAAW,EAAE,EAAE;YACf,MAAM,EAAE,IAAI;SACf,CAAA;QACD,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QACpC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAA;QACnB,aAAa,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC1C,MAAM,KAAK,GAAG,gBAAgB,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;YAC7D,MAAM,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAA;YACnD,oBAAoB,CAAC,eAAe,CAAC,CAAA;YACrC,MAAM,kBAAkB,GAAgB;gBACpC,QAAQ,EAAE,eAAe,CAAC,GAAG;gBAC7B,OAAO,EAAE,eAAe,CAAC,OAAO;gBAChC,GAAG,EAAE,OAAO,CAAC,GAAG;aACnB,CAAA;YACD,IAAI,OAAO,YAAY,QAAQ,IAAI,KAAK,KAAK,SAAS,EAAE;gBACpD,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE;oBACvB,2CAA2C;oBAC3C,IAAI,OAAO,CAAC,IAAI,YAAY,aAAa,EAAE;wBACvC,OAAO,gBAAgB,CAAC,KAAyB,CAAC,CAAA;qBACrD;oBACD,IAAI,OAAO,CAAC,IAAI,YAAY,WAAW,EAAE;wBACrC,OAAO,gBAAgB,CAAC,sBAAsB,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG;+BACjE,IAAI,CAAA,CAAC,sBAAsB;qBACrC;oBACD,OAAO,IAAI,CAAA;gBACf,CAAC,CAAC,EAAE,CAAA;gBACJ,IAAI,YAAY,KAAK,IAAI,EAAE;oBACvB,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC;wBAC3B,QAAQ,EAAE,kBAAkB;wBAC5B,KAAK,EAAE,YAAY;qBACtB,CAAC,CAAA;iBACL;gBACD,OAAM;aACT;YACD,IAAI,OAAO,YAAY,WAAW,EAAE;gBAChC,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAS,CAAA;gBACvC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC;oBAC7B,WAAW,EAAE,kBAAkB;oBAC/B,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC;iBAC5B,CAAC,CAAA;gBACF,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAA;gBAC/C,OAAM;aACT;YACD,IAAI,OAAO,YAAY,SAAS,EAAE;gBAC9B,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;gBAC9B,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC;oBAC3B,SAAS,EAAE,kBAAkB;oBAC7B,OAAO,EAAG,OAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBACnC,WAAW,EAAE,gBAAgB,CAAC,cAAc;4BACxC,CAAC,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAC;4BACpC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;wBAC1B,SAAS,EAAE,CAAC,CAAC,EAAE;qBAClB,CAAC,CAAC;iBACN,CAAC,CAAA;gBACF,OAAM;aACT;QACL,CAAC,CAAC,CAAA;QACF,cAAc,CAAC,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;QACzF,cAAc,CAAC,MAAM,GAAG,MAAM,EAAE,EAAE,IAAI,IAAI,CAAA,CAAE,sBAAsB;IACtE,CAAC,CAAA;IAED,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAA;IAE/C,OAAO;QACH,0BAA0B,EAAE,iCAAiC;QAC7D,SAAS,EAAE,aAAa;aACnB,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;aACxD,GAAG,CAAC,CAAC,EAAC,GAAG,EAAE,OAAO,EAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;QAChD,KAAK,EAAE,eAAe;KACzB,CAAA;AACL,CAAC,CAAA"}
|
package/dist/types.d.ts
CHANGED
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,EAAE,GAAG,MAAM,CAAA;AAEvB;;GAEG;AACH,MAAM,MAAM,IAAI,GAAG;IACf,EAAE,EAAE,EAAE,CAAA;IACN,MAAM,CAAC,EAAE,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,EAAE,GAAG,MAAM,CAAA;AAEvB;;GAEG;AACH,MAAM,MAAM,IAAI,GAAG;IACf,EAAE,EAAE,EAAE,CAAA;IACN,MAAM,CAAC,EAAE,IAAI,CAAA;IACb,WAAW,EAAE,IAAI,EAAE,CAAA;CACtB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cycles.d.ts","sourceRoot":"","sources":["../../src/utils/cycles.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAA;AAG5C;;;;GAIG;AACH,eAAO,MAAM,SAAS,
|
|
1
|
+
{"version":3,"file":"cycles.d.ts","sourceRoot":"","sources":["../../src/utils/cycles.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAA;AAG5C;;;;GAIG;AACH,eAAO,MAAM,SAAS,uDAMrB,CAAA"}
|
package/dist/utils/cycles.js
CHANGED
|
@@ -4,23 +4,23 @@
|
|
|
4
4
|
* An array of length 0 means: the given `thing` is not part of any cycle.
|
|
5
5
|
*/
|
|
6
6
|
export const cycleWith = (thing, nextsFunction) => {
|
|
7
|
-
const
|
|
8
|
-
if (chain.indexOf(current) > -1) {
|
|
9
|
-
// Add current to end, so we know what sub-array constitutes the actual cycle:
|
|
10
|
-
return [...chain, current];
|
|
11
|
-
}
|
|
12
|
-
const extendedChain = [...chain, current];
|
|
13
|
-
for (const dependency of nextsFunction(current)) {
|
|
14
|
-
const recursion = visit(dependency, extendedChain);
|
|
15
|
-
if (recursion.length > 0) {
|
|
16
|
-
return recursion;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
return [];
|
|
20
|
-
};
|
|
21
|
-
const result = visit(thing, []);
|
|
7
|
+
const result = visit(thing, [], nextsFunction);
|
|
22
8
|
return result.length > 0 && result[result.length - 1] === thing
|
|
23
9
|
? result
|
|
24
10
|
: [];
|
|
25
11
|
};
|
|
12
|
+
const visit = (current, chain, nextsFunction) => {
|
|
13
|
+
if (chain.indexOf(current) > -1) {
|
|
14
|
+
// Add current to end, so we know what sub-array constitutes the actual cycle:
|
|
15
|
+
return [...chain, current];
|
|
16
|
+
}
|
|
17
|
+
const extendedChain = [...chain, current];
|
|
18
|
+
for (const dependency of nextsFunction(current)) {
|
|
19
|
+
const recursion = visit(dependency, extendedChain, nextsFunction);
|
|
20
|
+
if (recursion.length > 0) {
|
|
21
|
+
return recursion;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return [];
|
|
25
|
+
};
|
|
26
26
|
//# sourceMappingURL=cycles.js.map
|
package/dist/utils/cycles.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cycles.js","sourceRoot":"","sources":["../../src/utils/cycles.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAI,KAAQ,EAAE,aAA+B,EAAO,EAAE;IAE3E,MAAM,KAAK,GAAG,CAAC,OAAU,EAAE,KAAU,EAAO,EAAE;
|
|
1
|
+
{"version":3,"file":"cycles.js","sourceRoot":"","sources":["../../src/utils/cycles.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAI,KAAQ,EAAE,aAA+B,EAAO,EAAE;IAE3E,MAAM,MAAM,GAAG,KAAK,CAAI,KAAK,EAAE,EAAE,EAAE,aAAa,CAAC,CAAA;IACjD,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,KAAK;QAC3D,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,EAAE,CAAA;AACZ,CAAC,CAAA;AAED,MAAM,KAAK,GAAG,CAAI,OAAU,EAAE,KAAU,EAAE,aAA+B,EAAO,EAAE;IAC9E,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE;QAC7B,8EAA8E;QAC9E,OAAO,CAAE,GAAG,KAAK,EAAE,OAAO,CAAE,CAAA;KAC/B;IACD,MAAM,aAAa,GAAG,CAAE,GAAG,KAAK,EAAE,OAAO,CAAE,CAAA;IAC3C,KAAK,MAAM,UAAU,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE;QAC7C,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,EAAE,aAAa,EAAE,aAAa,CAAC,CAAA;QACjE,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YACtB,OAAO,SAAS,CAAA;SACnB;KACJ;IACD,OAAO,EAAE,CAAA;AACb,CAAC,CAAA"}
|
package/package.json
CHANGED
package/CHANGELOG.md
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
## 0.5.0
|
|
4
|
-
|
|
5
|
-
* _Breaking change:_ Rework ID and key generation in the LionCore `LanguageFactory`.
|
|
6
|
-
As part of that:
|
|
7
|
-
* Add `String[s]Mapper` types, a `StringsMapper` instance `last`, and functions `concatenator` and `chain` to produce instances of them.
|
|
8
|
-
* Remove `M3Node.keyed` and the "awkward" key generation in the `InstantiationFacade` for the LionCore language.
|
|
9
|
-
* Remove types `IdGenerator`, and `KeyGenerator` and everything related to that.
|
|
10
|
-
* Expose keys (instead of qualified names) for LionCore M3 and the LionCore built-ins.
|
|
11
|
-
* Add a type `DynamicINamed` and an M3-function `conceptsOf`, primarily for generation purposes.
|
|
12
|
-
* Move `asText` and ID checking to `@lionweb/utilities`.
|
|
13
|
-
* Expose a helper function `nameSorted`.
|
|
14
|
-
* Rename `ConceptInterface` → `Interface`.
|
|
15
|
-
* Change names: `ReadModelAPI` → `ExtractionFacade`, `WriteModelAPI` → `InstantiationFacade`.
|
|
16
|
-
* Change name of `concept` fields to `classifier`, and their types (where applicable) to `Classifier`.
|
|
17
|
-
* Fix `license` field in `package.json` to `"Apache-2.0"`.
|
|
18
|
-
* Replace all occurrences of "LIon" (with uppercase 'I') with "Lion" (with lowercase 'i').
|
|
19
|
-
* Split the `ModelAPI` interface into a read- and write-part: `ReadModelAPI` vs. `WriteModelAPI`.
|
|
20
|
-
* Make fixes w.r.t. multi-language models.
|
|
21
|
-
* Migrate from Deno to Node.js.
|
|
22
|
-
* Implement import of enums in Ecore importer.
|
|
23
|
-
|