@lionweb/core 0.5.0-beta.0 → 0.5.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -2
- package/README.md +38 -0
- package/build.sh +6 -0
- package/dist/api.d.ts +6 -6
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +1 -1
- package/dist/api.js.map +1 -1
- package/dist/deserializer.js +4 -4
- package/dist/deserializer.js.map +1 -1
- package/dist/dynamic-api.d.ts +2 -2
- package/dist/dynamic-api.d.ts.map +1 -1
- package/dist/dynamic-api.js +2 -2
- package/dist/dynamic-api.js.map +1 -1
- package/dist/m3/api.js +2 -2
- package/dist/m3/api.js.map +1 -1
- package/dist/m3/functions.d.ts +15 -19
- package/dist/m3/functions.d.ts.map +1 -1
- package/dist/m3/functions.js +22 -22
- package/dist/m3/functions.js.map +1 -1
- package/dist/serialization.d.ts +1 -1
- package/dist/serialization.d.ts.map +1 -1
- package/dist/serializer.js +2 -2
- package/dist/serializer.js.map +1 -1
- package/package.json +5 -5
package/CHANGELOG.md
CHANGED
|
@@ -2,9 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
## 0.5.0
|
|
4
4
|
|
|
5
|
-
*
|
|
5
|
+
* For Change name of `concept` fields to `classifier`, and their types (where applicable) to `Classifier`.
|
|
6
|
+
* Fix `license` field in `package.json` to `"Apache-2.0"`.
|
|
7
|
+
* Replace all occurrences of "LIon" (with uppercase 'I') with "Lion" (with lowercase 'i').
|
|
6
8
|
* Split the `ModelAPI` interface into a read- and write-part: `ReadModelAPI` vs. `WriteModelAPI`.
|
|
7
9
|
* Make fixes w.r.t. multi-language models.
|
|
8
10
|
* Migrate from Deno to Node.js.
|
|
9
|
-
* Implement import of Ecore
|
|
11
|
+
* Implement import of enums in Ecore importer.
|
|
10
12
|
|
package/README.md
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# The `core` package
|
|
2
|
+
|
|
3
|
+
An NPM package that can be added to a Node.js/NPM codebase as follows:
|
|
4
|
+
|
|
5
|
+
```shell
|
|
6
|
+
$ npm add @lionweb/core
|
|
7
|
+
```
|
|
8
|
+
It contains:
|
|
9
|
+
|
|
10
|
+
* several base types
|
|
11
|
+
* the LionCore M3, including the `builtins` language
|
|
12
|
+
* functions for (de-)serialization
|
|
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
|
+
|
|
23
|
+
## Starting points
|
|
24
|
+
|
|
25
|
+
The following is a list of links to potential starting points:
|
|
26
|
+
|
|
27
|
+
* Implementation of the LionCore metametamodel (M3): see the [specific README](src/m3/README.md).
|
|
28
|
+
* Metamodel-generic/-aspecific code regarding:
|
|
29
|
+
* [TypeScript type definitions](src/types.ts).
|
|
30
|
+
* Representation of [references](src/references.ts).
|
|
31
|
+
* [Serialization](src/serialization.ts).
|
|
32
|
+
* [Generation of IDs](src/id-generation.ts).
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
## API
|
|
36
|
+
|
|
37
|
+
**TODO** describe
|
|
38
|
+
|
package/build.sh
ADDED
package/dist/api.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Node } from "./types.js";
|
|
2
|
-
import {
|
|
2
|
+
import { Classifier, Enumeration, EnumerationLiteral, Feature } from "./m3/types.js";
|
|
3
3
|
/**
|
|
4
|
-
* Type def. for functions that deduce the {@link
|
|
4
|
+
* Type def. for functions that deduce the {@link Classifier classifier} of a given {@link Node node}.
|
|
5
5
|
*/
|
|
6
|
-
type
|
|
6
|
+
type ClassifierDeducer<NT extends Node> = (node: NT) => Classifier;
|
|
7
7
|
/**
|
|
8
8
|
* Two interfaces that defines APIs for in-memory models.
|
|
9
9
|
* Instances/implementations of this interface parametrize generic (de-)serialization.
|
|
@@ -15,7 +15,7 @@ interface ReadModelAPI<NT extends Node> {
|
|
|
15
15
|
/**
|
|
16
16
|
* @return The {@link Concept concept} of the given node
|
|
17
17
|
*/
|
|
18
|
-
|
|
18
|
+
classifierOf: ClassifierDeducer<NT>;
|
|
19
19
|
/**
|
|
20
20
|
* @return The value of the given {@link Feature feature} on the given node.
|
|
21
21
|
*/
|
|
@@ -32,7 +32,7 @@ interface WriteModelAPI<NT extends Node> {
|
|
|
32
32
|
* its ID and the values of the node's properties ("settings").
|
|
33
33
|
* (The latter may be required as arguments for the constructor of a class, whose instances represent nodes.)
|
|
34
34
|
*/
|
|
35
|
-
nodeFor: (parent: NT | undefined,
|
|
35
|
+
nodeFor: (parent: NT | undefined, classifier: Classifier, id: string, propertySettings: {
|
|
36
36
|
[propertyKey: string]: unknown;
|
|
37
37
|
}) => NT;
|
|
38
38
|
/**
|
|
@@ -67,6 +67,6 @@ declare const updateSettingsNameBased: (settings: Record<string, unknown>, featu
|
|
|
67
67
|
* (either a {@link Node node} or a sub object of it), using the feature's *key*.
|
|
68
68
|
*/
|
|
69
69
|
declare const updateSettingsKeyBased: (settings: Record<string, unknown>, feature: Feature, value: unknown) => void;
|
|
70
|
-
export type {
|
|
70
|
+
export type { ClassifierDeducer, NodesExtractor, ReadModelAPI, WriteModelAPI };
|
|
71
71
|
export { childrenExtractorUsing, nodesExtractorUsing, updateSettingsKeyBased, updateSettingsNameBased };
|
|
72
72
|
//# sourceMappingURL=api.d.ts.map
|
package/dist/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,YAAY,CAAA;AAC/B,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.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;AAGlE;;;;;;GAMG;AAGH,UAAU,YAAY,CAAC,EAAE,SAAS,IAAI;IAElC;;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;CAErG;AAED,UAAU,aAAa,CAAC,EAAE,SAAS,IAAI;IAEnC;;;;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;IAEjI;;;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,gEAIyD,CAAA;AAGrF;;GAEG;AACH,QAAA,MAAM,mBAAmB,gEACyD,CAAA;AAGlF;;;GAGG;AACH,QAAA,MAAM,uBAAuB,aAAc,OAAO,MAAM,EAAE,OAAO,CAAC,WAAW,OAAO,SAAS,OAAO,KAAG,IAUtG,CAAA;AAED;;;GAGG;AACH,QAAA,MAAM,sBAAsB,aAAc,OAAO,MAAM,EAAE,OAAO,CAAC,WAAW,OAAO,SAAS,OAAO,KAAG,IAUrG,CAAA;AAED,YAAY,EACR,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,aAAa,EAChB,CAAA;AAED,OAAO,EACH,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,EACtB,uBAAuB,EAC1B,CAAA"}
|
package/dist/api.js
CHANGED
|
@@ -4,7 +4,7 @@ import { allFeaturesOf, isContainment } from "./m3/functions.js";
|
|
|
4
4
|
/**
|
|
5
5
|
* @return A function that extracts the children from a given node.
|
|
6
6
|
*/
|
|
7
|
-
const childrenExtractorUsing = (api) => (node) => allFeaturesOf(api.
|
|
7
|
+
const childrenExtractorUsing = (api) => (node) => allFeaturesOf(api.classifierOf(node))
|
|
8
8
|
.filter(isContainment)
|
|
9
9
|
.flatMap((containment) => api.getFeatureValue(node, containment));
|
|
10
10
|
/**
|
package/dist/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.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;AAmE9D;;GAEG;AACH,MAAM,sBAAsB,GAAG,CAAkB,GAAqB,EAAsB,EAAE,CAC1F,CAAC,IAAQ,EAAQ,EAAE,CACf,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;KAChC,MAAM,CAAC,aAAa,CAAC;KACrB,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE,WAAW,CAAS,CAAC,CAAA;AAGrF;;GAEG;AACH,MAAM,mBAAmB,GAAG,CAAkB,GAAqB,EAAsB,EAAE,CACvF,0BAA0B,CAAC,iBAAiB,EAAE,sBAAsB,CAAK,GAAG,CAAC,CAAC,CAAA;AAGlF;;;GAGG;AACH,MAAM,uBAAuB,GAAG,CAAC,QAAiC,EAAE,OAAgB,EAAE,KAAc,EAAQ,EAAE;IAC1G,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAA;IAC1B,IAAI,OAAO,YAAY,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE;QAC7C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;YACjC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,CAAA;SACvB;QACA,QAAQ,CAAC,KAAK,CAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KAC7C;SAAM;QACH,QAAQ,CAAC,KAAK,CAAC,GAAG,KAAK,CAAA;KAC1B;AACL,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,sBAAsB,GAAG,CAAC,QAAiC,EAAE,OAAgB,EAAE,KAAc,EAAQ,EAAE;IACzG,MAAM,EAAC,GAAG,EAAC,GAAG,OAAO,CAAA;IACrB,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;AASD,OAAO,EACH,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,EACtB,uBAAuB,EAC1B,CAAA"}
|
package/dist/deserializer.js
CHANGED
|
@@ -27,7 +27,7 @@ dependentNodes
|
|
|
27
27
|
// TODO (#13) see if you can turn this into [nodes: Node[], api: ModelAPI<Node>][] after all
|
|
28
28
|
) => {
|
|
29
29
|
if (serializationChunk.serializationFormatVersion !== currentSerializationFormatVersion) {
|
|
30
|
-
throw new Error(`can't deserialize from serialization format other than version
|
|
30
|
+
throw new Error(`can't deserialize from serialization format other than version "${currentSerializationFormatVersion}"`);
|
|
31
31
|
}
|
|
32
32
|
const allEntities = languages.flatMap(({ entities }) => entities);
|
|
33
33
|
const { nodes: serializedNodes } = serializationChunk;
|
|
@@ -54,11 +54,11 @@ dependentNodes
|
|
|
54
54
|
/**
|
|
55
55
|
* Instantiates a {@link Node} from its {@link SerializedNode serialization}.
|
|
56
56
|
*/
|
|
57
|
-
const instantiate = ({
|
|
57
|
+
const instantiate = ({ classifier: classifierMetaPointer, id, properties, children, references }, parent) => {
|
|
58
58
|
const concept = allEntities
|
|
59
|
-
.find((element) => element instanceof Concept && element.key ===
|
|
59
|
+
.find((element) => element instanceof Concept && element.key === classifierMetaPointer.key);
|
|
60
60
|
if (concept === undefined) {
|
|
61
|
-
throw new Error(`can't deserialize a node having
|
|
61
|
+
throw new Error(`can't deserialize a node having a classifier with key "${classifierMetaPointer.key}"`);
|
|
62
62
|
}
|
|
63
63
|
const allFeatures = allFeaturesOf(concept);
|
|
64
64
|
const propertySettings = {};
|
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,EAAC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAY,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAC,MAAM,eAAe,CAAA;AAC7G,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,GAAsB,EACtB,SAAqB;AACrB,4EAA4E;AAC5E,cAAsB;AACtB,6FAA6F;EACzF,EAAE;IAEN,IAAI,kBAAkB,CAAC,0BAA0B,KAAK,iCAAiC,EAAE;QACrF,MAAM,IAAI,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"deserializer.js","sourceRoot":"","sources":["../src/deserializer.ts"],"names":[],"mappings":"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"}
|
package/dist/dynamic-api.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { Node } from "./types.js";
|
|
2
2
|
import { ReadModelAPI, WriteModelAPI } from "./api.js";
|
|
3
|
-
import {
|
|
3
|
+
import { Classifier } from "./m3/types.js";
|
|
4
4
|
/**
|
|
5
5
|
* Type definition for "dynamic nodes" that are not backed by specific types (e.g. classes).
|
|
6
6
|
*/
|
|
7
7
|
export type DynamicNode = Node & {
|
|
8
|
-
|
|
8
|
+
classifier: Classifier;
|
|
9
9
|
settings: Record<string, unknown>;
|
|
10
10
|
};
|
|
11
11
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamic-api.d.ts","sourceRoot":"","sources":["../src/dynamic-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,YAAY,CAAA;AAC/B,OAAO,EAAC,YAAY,EAA0B,aAAa,EAAC,MAAM,UAAU,CAAA;AAC5E,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"dynamic-api.d.ts","sourceRoot":"","sources":["../src/dynamic-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,YAAY,CAAA;AAC/B,OAAO,EAAC,YAAY,EAA0B,aAAa,EAAC,MAAM,UAAU,CAAA;AAC5E,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;AAID;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,YAAY,CAAC,WAAW,CAQxD,CAAA;AAGF;;GAEG;AAEH,eAAO,MAAM,oBAAoB,EAAE,aAAa,CAAC,WAAW,CAU1D,CAAA"}
|
package/dist/dynamic-api.js
CHANGED
|
@@ -4,7 +4,7 @@ import { updateSettingsKeyBased } from "./api.js";
|
|
|
4
4
|
* An implementation of {@link ReadModelAPI} for {@link DynamicNode dynamic nodes}.
|
|
5
5
|
*/
|
|
6
6
|
export const dynamicReadModelAPI = ({
|
|
7
|
-
|
|
7
|
+
classifierOf: (node) => node.classifier,
|
|
8
8
|
getFeatureValue: (node, feature) =>
|
|
9
9
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
10
10
|
node.settings[feature.key],
|
|
@@ -17,7 +17,7 @@ export const dynamicReadModelAPI = ({
|
|
|
17
17
|
export const dynamicWriteModelAPI = ({
|
|
18
18
|
nodeFor: (_parent, concept, id, _propertySettings) => ({
|
|
19
19
|
id,
|
|
20
|
-
concept,
|
|
20
|
+
classifier: concept,
|
|
21
21
|
settings: {}
|
|
22
22
|
}),
|
|
23
23
|
setFeatureValue: (node, feature, value) => {
|
package/dist/dynamic-api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamic-api.js","sourceRoot":"","sources":["../src/dynamic-api.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,sBAAsB,EAAgB,MAAM,UAAU,CAAA;AAW5E,2FAA2F;AAG3F;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAA8B,CAAC;IAC3D,
|
|
1
|
+
{"version":3,"file":"dynamic-api.js","sourceRoot":"","sources":["../src/dynamic-api.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,sBAAsB,EAAgB,MAAM,UAAU,CAAA;AAW5E,2FAA2F;AAG3F;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAA8B,CAAC;IAC3D,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,CAAI,sBAAsB;CACxC,CAAC,CAAA;AAGF;;GAEG;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAA+B,CAAC;IAC7D,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,CAAC,CAAC;QACnD,EAAE;QACF,UAAU,EAAE,OAAO;QACnB,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/m3/api.js
CHANGED
|
@@ -2,11 +2,11 @@ import { updateSettingsNameBased } from "../api.js";
|
|
|
2
2
|
import { Concept, ConceptInterface, Containment, Enumeration, EnumerationLiteral, Language, PrimitiveType, Property, Reference } from "./types.js";
|
|
3
3
|
import { builtinFeatures } from "./builtins.js";
|
|
4
4
|
import { lioncore, metaConcepts, metaFeatures } from "./lioncore.js";
|
|
5
|
-
import {
|
|
5
|
+
import { classBasedClassifierDeducerFor, qualifiedNameOf } from "./functions.js";
|
|
6
6
|
import { nameIsKeyGenerator } from "./key-generation.js";
|
|
7
7
|
const { inamed_name } = builtinFeatures;
|
|
8
8
|
export const lioncoreReadAPI = ({
|
|
9
|
-
|
|
9
|
+
classifierOf: classBasedClassifierDeducerFor(lioncore),
|
|
10
10
|
getFeatureValue: (node, feature) =>
|
|
11
11
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
12
12
|
node[feature.name],
|
package/dist/m3/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/m3/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,uBAAuB,EAAgB,MAAM,WAAW,CAAA;AAC9E,OAAO,EAEH,OAAO,EACP,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,kBAAkB,EAClB,QAAQ,EAER,aAAa,EACb,QAAQ,EACR,SAAS,EACZ,MAAM,YAAY,CAAA;AACnB,OAAO,EAAC,eAAe,EAAC,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAC,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAC,MAAM,eAAe,CAAA;AAClE,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/m3/api.ts"],"names":[],"mappings":"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"}
|
package/dist/m3/functions.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Various functions on M3 models.
|
|
3
3
|
*/
|
|
4
|
-
import { Classifier, Concept,
|
|
4
|
+
import { Annotation, Classifier, Concept, Containment, Datatype, Enumeration, Feature, IKeyed, INamed, Language, LanguageEntity, Link, M3Concept, Property, Reference } from "./types.js";
|
|
5
5
|
import { unresolved } from "../references.js";
|
|
6
6
|
import { Id, Node } from "../types.js";
|
|
7
|
-
import {
|
|
7
|
+
import { ClassifierDeducer } from "../api.js";
|
|
8
8
|
import { containmentChain } from "../functions.js";
|
|
9
9
|
/**
|
|
10
10
|
* @return The type of the given {@link Feature}
|
|
@@ -65,46 +65,42 @@ declare const idOf: <T extends M3Concept>({ id }: T) => string;
|
|
|
65
65
|
* Sorts the given {@link LanguageEntity language entities} by name.
|
|
66
66
|
*/
|
|
67
67
|
declare const entitiesSortedByName: (entities: LanguageEntity[]) => LanguageEntity[];
|
|
68
|
-
|
|
69
|
-
* A sum type of {@link Concept} and {@link ConceptInterface}.
|
|
70
|
-
*/
|
|
71
|
-
type ConceptType = Concept | ConceptInterface;
|
|
68
|
+
type ConcreteClassifier = Concept | Annotation;
|
|
72
69
|
/**
|
|
73
70
|
* Determines whether the given {@link LanguageEntity metamodel element} is
|
|
74
71
|
* *concrete*, i.e. is instantiable.
|
|
75
72
|
*/
|
|
76
|
-
declare const isConcrete: (thing: LanguageEntity) => thing is
|
|
73
|
+
declare const isConcrete: (thing: LanguageEntity) => thing is ConcreteClassifier;
|
|
77
74
|
/**
|
|
78
75
|
* @return an array that's either an inheritance cycle, or empty (meaning: no inheritance cycle).
|
|
79
76
|
*/
|
|
80
|
-
declare const inheritedCycleWith: (
|
|
77
|
+
declare const inheritedCycleWith: (classifier: Classifier) => Classifier[];
|
|
81
78
|
/**
|
|
82
79
|
* @return *all* super types (through `extends` or `implements`) of the given
|
|
83
80
|
* {@link Concept concept} or {@link ConceptInterface concept interface}.
|
|
84
81
|
*/
|
|
85
|
-
declare const allSuperTypesOf: (
|
|
82
|
+
declare const allSuperTypesOf: (classifier: Classifier) => Classifier[];
|
|
86
83
|
/**
|
|
87
84
|
* @return *all* {@link Feature features} of the given {@link Concept concept} or {@link ConceptInterface concept interface},
|
|
88
85
|
* including the inherited ones.
|
|
89
86
|
*/
|
|
90
|
-
declare const allFeaturesOf: (
|
|
87
|
+
declare const allFeaturesOf: (classifier: Classifier) => Feature[];
|
|
91
88
|
/**
|
|
92
89
|
* Determines whether the given {@link LanguageEntity language element} is an {@link Enumeration enumeration}.
|
|
93
90
|
*/
|
|
94
91
|
declare const isEnumeration: (element: LanguageEntity) => element is Enumeration;
|
|
95
92
|
/**
|
|
96
|
-
* @return a function that looks up a
|
|
93
|
+
* @return a function that looks up a classifier from the given {@link Language language} by its ID.
|
|
97
94
|
*/
|
|
98
|
-
declare const
|
|
95
|
+
declare const idBasedClassifierDeducerFor: (language: Language) => (id: Id) => Classifier;
|
|
99
96
|
/**
|
|
100
|
-
* @return a function that looks up a
|
|
97
|
+
* @return a function that looks up a classifier from the given {@link Language language} by its name.
|
|
101
98
|
*/
|
|
102
|
-
declare const
|
|
99
|
+
declare const nameBasedClassifierDeducerFor: (language: Language) => (name: string) => Classifier;
|
|
103
100
|
/**
|
|
104
|
-
* @return a {@link
|
|
105
|
-
* the
|
|
101
|
+
* @return a {@link ClassifierDeducer classifier deducer} that deduces the classifier of nodes by looking up
|
|
102
|
+
* the classifier in the given {@link Language language} by matching the node object's class name to classifiers' names.
|
|
106
103
|
*/
|
|
107
|
-
declare const
|
|
108
|
-
export { allFeaturesOf, allSuperTypesOf,
|
|
109
|
-
export type { ConceptType };
|
|
104
|
+
declare const classBasedClassifierDeducerFor: <NT extends Node>(language: Language) => ClassifierDeducer<NT>;
|
|
105
|
+
export { allFeaturesOf, allSuperTypesOf, classBasedClassifierDeducerFor, concatenateNamesOf, containeds, containmentChain, entitiesSortedByName, flatMap, idBasedClassifierDeducerFor, idOf, inheritedCycleWith, isConcrete, isContainment, isEnumeration, isProperty, isReference, keyOf, nameBasedClassifierDeducerFor, nameOf, namedsOf, nonRelationalFeatures, relations, relationsOf, type, qualifiedNameOf };
|
|
110
106
|
//# sourceMappingURL=functions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../src/m3/functions.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACH,UAAU,EACV,
|
|
1
|
+
{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../src/m3/functions.ts"],"names":[],"mappings":"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"}
|
package/dist/m3/functions.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Various functions on M3 models.
|
|
3
3
|
*/
|
|
4
|
-
import { Classifier, Concept, ConceptInterface, Containment, Enumeration, isINamed, Language, Link, Property, Reference } from "./types.js";
|
|
4
|
+
import { Annotation, Classifier, Concept, ConceptInterface, Containment, Enumeration, isINamed, Language, Link, Property, Reference } from "./types.js";
|
|
5
5
|
import { isRef } from "../references.js";
|
|
6
6
|
import { sortByStringKey } from "../utils/sorting.js";
|
|
7
7
|
import { cycleWith } from "../utils/cycles.js";
|
|
@@ -92,54 +92,54 @@ const entitiesSortedByName = (entities) => sortByStringKey(entities, nameOf);
|
|
|
92
92
|
* Determines whether the given {@link LanguageEntity metamodel element} is
|
|
93
93
|
* *concrete*, i.e. is instantiable.
|
|
94
94
|
*/
|
|
95
|
-
const isConcrete = (thing) => thing instanceof Concept && !thing.abstract;
|
|
96
|
-
const inheritsFrom = (
|
|
97
|
-
if (
|
|
95
|
+
const isConcrete = (thing) => (thing instanceof Concept && !thing.abstract) || (thing instanceof Annotation);
|
|
96
|
+
const inheritsFrom = (classifier) => {
|
|
97
|
+
if (classifier instanceof Concept || classifier instanceof Annotation) {
|
|
98
98
|
return [
|
|
99
|
-
...(isRef(
|
|
100
|
-
? [
|
|
99
|
+
...(isRef(classifier.extends)
|
|
100
|
+
? [classifier.extends]
|
|
101
101
|
: []),
|
|
102
|
-
...
|
|
102
|
+
...classifier.implements
|
|
103
103
|
];
|
|
104
104
|
}
|
|
105
|
-
if (
|
|
106
|
-
return
|
|
105
|
+
if (classifier instanceof ConceptInterface) {
|
|
106
|
+
return classifier.extends;
|
|
107
107
|
}
|
|
108
|
-
throw new Error(`concept type ${typeof
|
|
108
|
+
throw new Error(`concept type ${typeof classifier} not handled`);
|
|
109
109
|
};
|
|
110
110
|
/**
|
|
111
111
|
* @return an array that's either an inheritance cycle, or empty (meaning: no inheritance cycle).
|
|
112
112
|
*/
|
|
113
|
-
const inheritedCycleWith = (
|
|
113
|
+
const inheritedCycleWith = (classifier) => cycleWith(classifier, inheritsFrom);
|
|
114
114
|
/**
|
|
115
115
|
* @return *all* super types (through `extends` or `implements`) of the given
|
|
116
116
|
* {@link Concept concept} or {@link ConceptInterface concept interface}.
|
|
117
117
|
*/
|
|
118
|
-
const allSuperTypesOf = (
|
|
118
|
+
const allSuperTypesOf = (classifier) => flatMapNonCyclingFollowing(inheritsFrom, inheritsFrom)(classifier);
|
|
119
119
|
/**
|
|
120
120
|
* @return *all* {@link Feature features} of the given {@link Concept concept} or {@link ConceptInterface concept interface},
|
|
121
121
|
* including the inherited ones.
|
|
122
122
|
*/
|
|
123
|
-
const allFeaturesOf = (
|
|
123
|
+
const allFeaturesOf = (classifier) => flatMapNonCyclingFollowing((ci) => ci.features, inheritsFrom)(classifier);
|
|
124
124
|
/**
|
|
125
125
|
* Determines whether the given {@link LanguageEntity language element} is an {@link Enumeration enumeration}.
|
|
126
126
|
*/
|
|
127
127
|
const isEnumeration = (element) => element instanceof Enumeration;
|
|
128
128
|
/**
|
|
129
|
-
* @return a function that looks up a
|
|
129
|
+
* @return a function that looks up a classifier from the given {@link Language language} by its ID.
|
|
130
130
|
*/
|
|
131
|
-
const
|
|
131
|
+
const idBasedClassifierDeducerFor = (language) => (id) => language.entities.find((element) => element instanceof Classifier && element.id === id);
|
|
132
132
|
/**
|
|
133
|
-
* @return a function that looks up a
|
|
133
|
+
* @return a function that looks up a classifier from the given {@link Language language} by its name.
|
|
134
134
|
*/
|
|
135
|
-
const
|
|
135
|
+
const nameBasedClassifierDeducerFor = (language) => (name) => language.entities.find((element) => element instanceof Classifier && element.name === name);
|
|
136
136
|
/**
|
|
137
|
-
* @return a {@link
|
|
138
|
-
* the
|
|
137
|
+
* @return a {@link ClassifierDeducer classifier deducer} that deduces the classifier of nodes by looking up
|
|
138
|
+
* the classifier in the given {@link Language language} by matching the node object's class name to classifiers' names.
|
|
139
139
|
*/
|
|
140
|
-
const
|
|
141
|
-
const deducer =
|
|
140
|
+
const classBasedClassifierDeducerFor = (language) => {
|
|
141
|
+
const deducer = nameBasedClassifierDeducerFor(language);
|
|
142
142
|
return (node) => deducer(node.constructor.name);
|
|
143
143
|
};
|
|
144
|
-
export { allFeaturesOf, allSuperTypesOf,
|
|
144
|
+
export { allFeaturesOf, allSuperTypesOf, classBasedClassifierDeducerFor, concatenateNamesOf, containeds, containmentChain, entitiesSortedByName, flatMap, idBasedClassifierDeducerFor, idOf, inheritedCycleWith, isConcrete, isContainment, isEnumeration, isProperty, isReference, keyOf, nameBasedClassifierDeducerFor, nameOf, namedsOf, nonRelationalFeatures, relations, relationsOf, type, qualifiedNameOf };
|
|
145
145
|
//# sourceMappingURL=functions.js.map
|
package/dist/m3/functions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"functions.js","sourceRoot":"","sources":["../../src/m3/functions.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"functions.js","sourceRoot":"","sources":["../../src/m3/functions.ts"],"names":[],"mappings":"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"}
|
package/dist/serialization.d.ts
CHANGED
|
@@ -25,7 +25,7 @@ export type SerializedReference = {
|
|
|
25
25
|
* Type definition for an AST node serialized to JSON.
|
|
26
26
|
*/
|
|
27
27
|
export type SerializedNode = {
|
|
28
|
-
|
|
28
|
+
classifier: MetaPointer;
|
|
29
29
|
id: string;
|
|
30
30
|
properties: SerializedProperty[];
|
|
31
31
|
children: SerializedContainment[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialization.d.ts","sourceRoot":"","sources":["../src/serialization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,EAAE,EAAC,MAAM,YAAY,CAAA;AAG7B,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,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,EAAE,CAAA;CAChB,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,
|
|
1
|
+
{"version":3,"file":"serialization.d.ts","sourceRoot":"","sources":["../src/serialization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,EAAE,EAAC,MAAM,YAAY,CAAA;AAG7B,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,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,EAAE,CAAA;CAChB,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,UAAU,EAAE,WAAW,CAAA;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,kBAAkB,EAAE,CAAA;IAChC,QAAQ,EAAE,qBAAqB,EAAE,CAAA;IACjC,UAAU,EAAE,mBAAmB,EAAE,CAAA;IACjC,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;;GAEG;AACH,eAAO,MAAM,iCAAiC,WAAW,CAAA;AAEzD;;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"}
|
package/dist/serializer.js
CHANGED
|
@@ -20,12 +20,12 @@ export const serializeNodes = (nodes, api) => {
|
|
|
20
20
|
if (ids[node.id]) {
|
|
21
21
|
return;
|
|
22
22
|
}
|
|
23
|
-
const concept = api.
|
|
23
|
+
const concept = api.classifierOf(node);
|
|
24
24
|
const language = concept.language;
|
|
25
25
|
registerLanguageUsed(language);
|
|
26
26
|
const serializedNode = {
|
|
27
27
|
id: node.id,
|
|
28
|
-
|
|
28
|
+
classifier: {
|
|
29
29
|
language: language.key,
|
|
30
30
|
version: language.version,
|
|
31
31
|
key: concept.key
|
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,EAAC,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAY,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAC,MAAM,eAAe,CAAA;AAC9G,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAC,OAAO,EAAC,MAAM,0BAA0B,CAAA;AAChD,OAAO,EAAmB,gBAAgB,EAAE,gBAAgB,EAAC,MAAM,kBAAkB,CAAA;AAGrF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAkB,KAAW,EAAE,GAAqB,EAAqC,EAAE;IACrH,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,OAAO,GAAG,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"serializer.js","sourceRoot":"","sources":["../src/serializer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lionweb/core",
|
|
3
|
-
"version": "0.5.0-beta.
|
|
3
|
+
"version": "0.5.0-beta.2",
|
|
4
4
|
"description": "LionWeb core for {Java|Type}Script",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"typings": "dist/index.d.ts",
|
|
8
8
|
"type": "module",
|
|
9
|
-
"license": "
|
|
9
|
+
"license": "Apache-2.0",
|
|
10
10
|
"repository": {
|
|
11
11
|
"type": "git",
|
|
12
|
-
"url": "https://github.com/LionWeb-org/
|
|
12
|
+
"url": "https://github.com/LionWeb-org/lionweb-typescript.git"
|
|
13
13
|
},
|
|
14
14
|
"bugs": {
|
|
15
|
-
"url": "https://github.com/LionWeb-org/
|
|
15
|
+
"url": "https://github.com/LionWeb-org/lionweb-typescript/issues"
|
|
16
16
|
},
|
|
17
17
|
"devDependencies": {
|
|
18
|
-
"typescript": "
|
|
18
|
+
"typescript": "5.2.2"
|
|
19
19
|
},
|
|
20
20
|
"scripts": {
|
|
21
21
|
"build": "tsc"
|