@lionweb/utilities 0.6.0-beta.2 → 0.6.0
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 +12 -8
- package/dist/m3/diagrams/Mermaid-generator.d.ts.map +1 -1
- package/dist/m3/diagrams/Mermaid-generator.js +23 -15
- package/dist/m3/diagrams/Mermaid-generator.js.map +1 -1
- package/dist/m3/diagrams/PlantUML-generator.d.ts.map +1 -1
- package/dist/m3/diagrams/PlantUML-generator.js +42 -17
- package/dist/m3/diagrams/PlantUML-generator.js.map +1 -1
- package/dist/m3/index.d.ts +1 -1
- package/dist/m3/index.d.ts.map +1 -1
- package/dist/m3/index.js +1 -1
- package/dist/m3/index.js.map +1 -1
- package/dist/m3/{textual-syntax.d.ts → textualizer.d.ts} +1 -1
- package/dist/m3/textualizer.d.ts.map +1 -0
- package/dist/m3/{textual-syntax.js → textualizer.js} +2 -2
- package/dist/m3/textualizer.js.map +1 -0
- package/dist/serialization/chunk.d.ts +8 -2
- package/dist/serialization/chunk.d.ts.map +1 -1
- package/dist/serialization/chunk.js +24 -3
- package/dist/serialization/chunk.js.map +1 -1
- package/dist/serialization/index.d.ts +2 -3
- package/dist/serialization/index.d.ts.map +1 -1
- package/dist/serialization/index.js +2 -3
- package/dist/serialization/index.js.map +1 -1
- package/dist/serialization/ordering.d.ts.map +1 -1
- package/dist/serialization/ordering.js +2 -3
- package/dist/serialization/ordering.js.map +1 -1
- package/dist/serialization/textualizer.d.ts +3 -0
- package/dist/serialization/textualizer.d.ts.map +1 -0
- package/dist/serialization/textualizer.js +53 -0
- package/dist/serialization/textualizer.js.map +1 -0
- package/package.json +5 -7
- package/build.sh +0 -6
- package/dist/m3/textual-syntax.d.ts.map +0 -1
- package/dist/m3/textual-syntax.js.map +0 -1
- package/dist/serialization/shortening.d.ts +0 -7
- package/dist/serialization/shortening.d.ts.map +0 -1
- package/dist/serialization/shortening.js +0 -15
- package/dist/serialization/shortening.js.map +0 -1
- package/dist/serialization/textual-syntax.d.ts +0 -3
- package/dist/serialization/textual-syntax.d.ts.map +0 -1
- package/dist/serialization/textual-syntax.js +0 -30
- package/dist/serialization/textual-syntax.js.map +0 -1
package/README.md
CHANGED
|
@@ -7,20 +7,24 @@ $ npm add @lionweb/utilities
|
|
|
7
7
|
```
|
|
8
8
|
It contains utilities on top of the `core` package, such as:
|
|
9
9
|
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
10
|
+
* Diagram generation (PlantUML and Mermaid) from an M2.
|
|
11
|
+
* “Textualization”, i.e. render a serialization chunk as text.
|
|
12
|
+
* Sort the contents of a serialization chunk as much as possible, for the sake of comparing serialization chunks.
|
|
13
|
+
* An Ecore → M2 importer.
|
|
13
14
|
|
|
14
15
|
|
|
15
16
|
## Changelog
|
|
16
17
|
|
|
17
18
|
### 0.6.0
|
|
18
19
|
|
|
20
|
+
* Add support for annotations in diagram generation (PlantUML and Mermaid), and textualization.
|
|
21
|
+
* **Remove** the `shortenedSerializationChunk` function, as it isn't used, nor very useful compared to the sorting and textualization.
|
|
19
22
|
* _Breaking name changes_: rename `asText` → `languageAsText`, `shortenedSerialization` → `shortenedSerializationChunk`, `sortedSerialization` → `sortedSerializationChunk`.
|
|
20
23
|
* Expose an `isSerializedLanguages` function.
|
|
21
|
-
* Expose an `orderedSerializationChunk` function that aligns the JSON key-value pairs in a serialization chunk according to the specification of the serialization format.
|
|
22
|
-
|
|
23
|
-
|
|
24
|
+
* Expose an `orderedSerializationChunk` function that aligns the JSON key-value pairs in a serialization chunk according to the specification of the serialization format.
|
|
25
|
+
That means that key-value pairs appear in precisely the same order as they do in the specification, and that missing key-value pairs are put in and get their default values.
|
|
26
|
+
* Expose a generic textual syntax for serialization chunks, through the `genericTreeAsText` function.
|
|
27
|
+
This function is optionally language-aware: by providing an array of `Language`s as its second argument, it will try and look up `LanguageEntity` and `Feature` names instead of rendering their keys.
|
|
24
28
|
|
|
25
29
|
### 0.5.0
|
|
26
30
|
|
|
@@ -44,7 +48,7 @@ No changelog has been kept for previous versions, regardless of whether these we
|
|
|
44
48
|
|
|
45
49
|
Build it from source as follows:
|
|
46
50
|
|
|
47
|
-
```
|
|
48
|
-
|
|
51
|
+
```
|
|
52
|
+
npm run build
|
|
49
53
|
```
|
|
50
54
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Mermaid-generator.d.ts","sourceRoot":"","sources":["../../../src/m3/diagrams/Mermaid-generator.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"Mermaid-generator.d.ts","sourceRoot":"","sources":["../../../src/m3/diagrams/Mermaid-generator.ts"],"names":[],"mappings":"AACA,OAAO,EASH,QAAQ,EAQX,MAAM,eAAe,CAAA;AAuBtB;;;GAGG;AACH,eAAO,MAAM,0BAA0B,iBAAgB,QAAQ,WAWzD,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { asString, indentWith } from "littoral-templates";
|
|
2
|
-
import { Concept, Containment, entitiesSortedByName, Enumeration, Interface, isRef, Link, nonRelationalFeatures, PrimitiveType, relationsOf, type, unresolved } from "@lionweb/core";
|
|
2
|
+
import { Annotation, Concept, Containment, entitiesSortedByName, Enumeration, Interface, isRef, Link, nonRelationalFeatures, PrimitiveType, relationsOf, type, unresolved } from "@lionweb/core";
|
|
3
3
|
// define some layouting basics/building algebra:
|
|
4
4
|
const indented = indentWith(` `)(1);
|
|
5
5
|
const block = (header, elements) => elements.length === 0
|
|
@@ -22,7 +22,7 @@ export const generateMermaidForLanguage = ({ entities }) => asString([
|
|
|
22
22
|
`classDiagram
|
|
23
23
|
|
|
24
24
|
`,
|
|
25
|
-
indented(entitiesSortedByName(entities).map(
|
|
25
|
+
indented(entitiesSortedByName(entities).map(generateForEntity)),
|
|
26
26
|
``,
|
|
27
27
|
indented(entitiesSortedByName(entities).map(generateForRelationsOf)),
|
|
28
28
|
``,
|
|
@@ -32,6 +32,11 @@ const generateForEnumeration = ({ name, literals }) => withNewLine(block(`class
|
|
|
32
32
|
`<<enumeration>>`,
|
|
33
33
|
literals.map(({ name }) => name)
|
|
34
34
|
]));
|
|
35
|
+
const generateForAnnotation = ({ name, features, extends: extends_ /*, implements: implements_*/ }) => [
|
|
36
|
+
block(`annotation ${name}`, nonRelationalFeatures(features).map(generateForNonRelationalFeature)),
|
|
37
|
+
isRef(extends_) ? `${extends_.name} <|-- ${name}` : [],
|
|
38
|
+
``
|
|
39
|
+
];
|
|
35
40
|
const generateForConcept = ({ name, features, abstract: abstract_, extends: extends_ /*, implements: implements_*/, partition }) => [
|
|
36
41
|
block(`class ${partition ? `<<partition>> ` : ``}${name}`, nonRelationalFeatures(features).map(generateForNonRelationalFeature)),
|
|
37
42
|
abstract_ ? `<<Abstract>> ${name}` : [],
|
|
@@ -55,27 +60,30 @@ const generateForPrimitiveType = ({ name }) => `%% primitive type: "${name}"
|
|
|
55
60
|
|
|
56
61
|
`;
|
|
57
62
|
// Note: No construct for PrimitiveType exists in PlantUML.
|
|
58
|
-
const
|
|
59
|
-
if (
|
|
60
|
-
return
|
|
63
|
+
const generateForEntity = (entity) => {
|
|
64
|
+
if (entity instanceof Annotation) {
|
|
65
|
+
return generateForAnnotation(entity);
|
|
66
|
+
}
|
|
67
|
+
if (entity instanceof Concept) {
|
|
68
|
+
return generateForConcept(entity);
|
|
61
69
|
}
|
|
62
|
-
if (
|
|
63
|
-
return generateForEnumeration(
|
|
70
|
+
if (entity instanceof Enumeration) {
|
|
71
|
+
return generateForEnumeration(entity);
|
|
64
72
|
}
|
|
65
|
-
if (
|
|
66
|
-
return generateForInterface(
|
|
73
|
+
if (entity instanceof Interface) {
|
|
74
|
+
return generateForInterface(entity);
|
|
67
75
|
}
|
|
68
|
-
if (
|
|
69
|
-
return generateForPrimitiveType(
|
|
76
|
+
if (entity instanceof PrimitiveType) {
|
|
77
|
+
return generateForPrimitiveType(entity);
|
|
70
78
|
}
|
|
71
|
-
return `// unhandled
|
|
79
|
+
return `// unhandled language entity: <${entity.constructor.name}>${entity.name}`;
|
|
72
80
|
};
|
|
73
|
-
const generateForRelationsOf = (
|
|
74
|
-
const relations = relationsOf(
|
|
81
|
+
const generateForRelationsOf = (entity) => {
|
|
82
|
+
const relations = relationsOf(entity);
|
|
75
83
|
return relations.length === 0
|
|
76
84
|
? ``
|
|
77
85
|
: relations
|
|
78
|
-
.map((relation) => generateForRelation(
|
|
86
|
+
.map((relation) => generateForRelation(entity, relation));
|
|
79
87
|
};
|
|
80
88
|
const generateForRelation = ({ name: leftName }, relation) => {
|
|
81
89
|
const { name: relationName, optional, multiple, type } = relation;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Mermaid-generator.js","sourceRoot":"","sources":["../../../src/m3/diagrams/Mermaid-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,UAAU,EAAe,MAAM,oBAAoB,CAAA;AACrE,OAAO,EACH,OAAO,EACP,WAAW,EACX,oBAAoB,EACpB,WAAW,EAEX,SAAS,EACT,KAAK,EAGL,IAAI,EACJ,qBAAqB,EACrB,aAAa,EACb,WAAW,EACX,IAAI,EACJ,UAAU,EACb,MAAM,eAAe,CAAA;AAGtB,iDAAiD;AAEjD,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;AAEpC,MAAM,KAAK,GAAG,CAAC,MAAc,EAAE,QAAsB,EAAgB,EAAE,CACnE,QAAQ,CAAC,MAAM,KAAK,CAAC;IACjB,CAAC,CAAC,MAAM;IACR,CAAC,CAAC;QACE,GAAG,MAAM,IAAI;QACb,QAAQ,CAAC,QAAQ,CAAC;QAClB,GAAG;KACN,CAAA;AAET,MAAM,WAAW,GAAG,CAAC,OAAqB,EAAgB,EAAE,CACxD;IACI,OAAO;IACP,EAAE;CACL,CAAA;AAGL;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,EAAC,QAAQ,EAAW,EAAE,EAAE,CAC/D,QAAQ,CAAC;IACL,YAAY;IACZ;;CAEP;IACO,QAAQ,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"Mermaid-generator.js","sourceRoot":"","sources":["../../../src/m3/diagrams/Mermaid-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlantUML-generator.d.ts","sourceRoot":"","sources":["../../../src/m3/diagrams/PlantUML-generator.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"PlantUML-generator.d.ts","sourceRoot":"","sources":["../../../src/m3/diagrams/PlantUML-generator.ts"],"names":[],"mappings":"AACA,OAAO,EASH,QAAQ,EASX,MAAM,eAAe,CAAA;AAMtB;;;GAGG;AACH,eAAO,MAAM,2BAA2B,uBAAsB,QAAQ,WAmBpE,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { asString, indentWith } from "littoral-templates";
|
|
2
|
-
import { Concept, Containment, entitiesSortedByName, Enumeration, Interface, isRef, Link, nameOf, nonRelationalFeatures, PrimitiveType, relationsOf, type, unresolved } from "@lionweb/core";
|
|
2
|
+
import { Annotation, Concept, Containment, entitiesSortedByName, Enumeration, Interface, isRef, Link, nameOf, nonRelationalFeatures, PrimitiveType, relationsOf, type, unresolved } from "@lionweb/core";
|
|
3
3
|
const indented = indentWith(` `)(1);
|
|
4
4
|
/**
|
|
5
5
|
* Generates a string with a PlantUML class diagram
|
|
@@ -13,7 +13,7 @@ hide empty members
|
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
`,
|
|
16
|
-
entitiesSortedByName(entities).map(
|
|
16
|
+
entitiesSortedByName(entities).map(generateForEntity),
|
|
17
17
|
`
|
|
18
18
|
|
|
19
19
|
' relations:
|
|
@@ -31,8 +31,29 @@ const generateForEnumeration = ({ name, literals }) => [
|
|
|
31
31
|
|
|
32
32
|
`
|
|
33
33
|
];
|
|
34
|
-
const
|
|
34
|
+
const generateForAnnotation = ({ name, features, extends: extends_, implements: implements_ }) => {
|
|
35
|
+
const fragments = [];
|
|
36
|
+
fragments.push(`annotation`, name);
|
|
37
|
+
if (isRef(extends_)) {
|
|
38
|
+
fragments.push(`extends`, extends_.name);
|
|
39
|
+
}
|
|
40
|
+
if (implements_.length > 0) {
|
|
41
|
+
fragments.push(`implements`, implements_.map(nameOf).sort().join(", "));
|
|
42
|
+
}
|
|
35
43
|
const nonRelationalFeatures_ = nonRelationalFeatures(features);
|
|
44
|
+
return nonRelationalFeatures_.length === 0
|
|
45
|
+
? [
|
|
46
|
+
`${fragments.join(" ")}`,
|
|
47
|
+
``
|
|
48
|
+
]
|
|
49
|
+
: [
|
|
50
|
+
`${fragments.join(" ")} {`,
|
|
51
|
+
indented(nonRelationalFeatures_.map(generateForNonRelationalFeature)),
|
|
52
|
+
`}`,
|
|
53
|
+
``
|
|
54
|
+
];
|
|
55
|
+
};
|
|
56
|
+
const generateForConcept = ({ name, features, abstract: abstract_, extends: extends_, implements: implements_, partition }) => {
|
|
36
57
|
const fragments = [];
|
|
37
58
|
if (abstract_) {
|
|
38
59
|
fragments.push(`abstract`);
|
|
@@ -47,6 +68,7 @@ const generateForConcept = ({ name, features, abstract: abstract_, extends: exte
|
|
|
47
68
|
if (implements_.length > 0) {
|
|
48
69
|
fragments.push(`implements`, implements_.map(nameOf).sort().join(", "));
|
|
49
70
|
}
|
|
71
|
+
const nonRelationalFeatures_ = nonRelationalFeatures(features);
|
|
50
72
|
return nonRelationalFeatures_.length === 0
|
|
51
73
|
? [
|
|
52
74
|
`${fragments.join(" ")}`,
|
|
@@ -60,11 +82,11 @@ const generateForConcept = ({ name, features, abstract: abstract_, extends: exte
|
|
|
60
82
|
];
|
|
61
83
|
};
|
|
62
84
|
const generateForInterface = ({ name, extends: extends_, features }) => {
|
|
63
|
-
const nonRelationalFeatures_ = nonRelationalFeatures(features);
|
|
64
85
|
const fragments = [`interface`, name];
|
|
65
86
|
if (extends_.length > 0) {
|
|
66
87
|
fragments.push(`extends`, extends_.map((superInterface) => superInterface.name).join(", "));
|
|
67
88
|
}
|
|
89
|
+
const nonRelationalFeatures_ = nonRelationalFeatures(features);
|
|
68
90
|
return nonRelationalFeatures_.length === 0
|
|
69
91
|
? `${fragments.join(" ")}`
|
|
70
92
|
: [
|
|
@@ -84,28 +106,31 @@ const generateForPrimitiveType = ({ name }) => `' primitive type: "${name}"
|
|
|
84
106
|
|
|
85
107
|
`;
|
|
86
108
|
// Note: No construct for PrimitiveType exists in PlantUML.
|
|
87
|
-
const
|
|
88
|
-
if (
|
|
89
|
-
return
|
|
109
|
+
const generateForEntity = (entity) => {
|
|
110
|
+
if (entity instanceof Annotation) {
|
|
111
|
+
return generateForAnnotation(entity);
|
|
112
|
+
}
|
|
113
|
+
if (entity instanceof Enumeration) {
|
|
114
|
+
return generateForEnumeration(entity);
|
|
90
115
|
}
|
|
91
|
-
if (
|
|
92
|
-
return generateForConcept(
|
|
116
|
+
if (entity instanceof Concept) {
|
|
117
|
+
return generateForConcept(entity);
|
|
93
118
|
}
|
|
94
|
-
if (
|
|
95
|
-
return generateForInterface(
|
|
119
|
+
if (entity instanceof Interface) {
|
|
120
|
+
return generateForInterface(entity);
|
|
96
121
|
}
|
|
97
|
-
if (
|
|
98
|
-
return generateForPrimitiveType(
|
|
122
|
+
if (entity instanceof PrimitiveType) {
|
|
123
|
+
return generateForPrimitiveType(entity);
|
|
99
124
|
}
|
|
100
|
-
return `' unhandled
|
|
125
|
+
return `' unhandled language entity: <${entity.constructor.name}>${entity.name}
|
|
101
126
|
`;
|
|
102
127
|
};
|
|
103
|
-
const generateForRelationsOf = (
|
|
104
|
-
const relations = relationsOf(
|
|
128
|
+
const generateForRelationsOf = (entity) => {
|
|
129
|
+
const relations = relationsOf(entity);
|
|
105
130
|
return relations.length === 0
|
|
106
131
|
? ``
|
|
107
132
|
: relations
|
|
108
|
-
.map((relation) => generateForRelation(
|
|
133
|
+
.map((relation) => generateForRelation(entity, relation));
|
|
109
134
|
};
|
|
110
135
|
const generateForRelation = ({ name: leftName }, relation) => {
|
|
111
136
|
const { name: relationName, type, optional, multiple } = relation;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlantUML-generator.js","sourceRoot":"","sources":["../../../src/m3/diagrams/PlantUML-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,UAAU,EAAC,MAAM,oBAAoB,CAAA;AACvD,OAAO,EACH,OAAO,EACP,WAAW,EACX,oBAAoB,EACpB,WAAW,EAEX,SAAS,EACT,KAAK,EAGL,IAAI,EACJ,MAAM,EACN,qBAAqB,EACrB,aAAa,EACb,WAAW,EACX,IAAI,EACJ,UAAU,EACb,MAAM,eAAe,CAAA;AAGtB,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;AAGpC;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAW,EAAE,EAAE,CACtE,QAAQ,CAAC;IACb;;;qBAGqB,IAAI;;;CAGxB;IACG,oBAAoB,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"PlantUML-generator.js","sourceRoot":"","sources":["../../../src/m3/diagrams/PlantUML-generator.ts"],"names":[],"mappings":"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"}
|
package/dist/m3/index.d.ts
CHANGED
|
@@ -3,5 +3,5 @@ export * from "./diagrams/PlantUML-generator.js";
|
|
|
3
3
|
export * from "./ecore/importer.js";
|
|
4
4
|
export * from "./ecore/types.js";
|
|
5
5
|
export * from "./ts-generation/ts-types-generator.js";
|
|
6
|
-
export * from "./
|
|
6
|
+
export * from "./textualizer.js";
|
|
7
7
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/m3/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/m3/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAA;AAC/C,cAAc,kCAAkC,CAAA;AAChD,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,uCAAuC,CAAA;AACrD,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/m3/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAA;AAC/C,cAAc,kCAAkC,CAAA;AAChD,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,uCAAuC,CAAA;AACrD,cAAc,kBAAkB,CAAA"}
|
package/dist/m3/index.js
CHANGED
|
@@ -3,5 +3,5 @@ export * from "./diagrams/PlantUML-generator.js";
|
|
|
3
3
|
export * from "./ecore/importer.js";
|
|
4
4
|
export * from "./ecore/types.js";
|
|
5
5
|
export * from "./ts-generation/ts-types-generator.js";
|
|
6
|
-
export * from "./
|
|
6
|
+
export * from "./textualizer.js";
|
|
7
7
|
//# sourceMappingURL=index.js.map
|
package/dist/m3/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/m3/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAA;AAC/C,cAAc,kCAAkC,CAAA;AAChD,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,uCAAuC,CAAA;AACrD,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/m3/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAA;AAC/C,cAAc,kCAAkC,CAAA;AAChD,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,uCAAuC,CAAA;AACrD,cAAc,kBAAkB,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { Language, M3Node } from "@lionweb/core";
|
|
2
2
|
export declare const languageAsText: (node: M3Node) => string;
|
|
3
3
|
export declare const languagesAsText: (languages: Language[]) => string;
|
|
4
|
-
//# sourceMappingURL=
|
|
4
|
+
//# sourceMappingURL=textualizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"textualizer.d.ts","sourceRoot":"","sources":["../../src/m3/textualizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAQH,QAAQ,EAER,MAAM,EAOT,MAAM,eAAe,CAAA;AA4EtB,eAAO,MAAM,cAAc,SA7DL,MAAM,KAAG,MA6DK,CAAA;AAEpC,eAAO,MAAM,eAAe,cAAe,QAAQ,EAAE,KAAG,MACN,CAAA"}
|
|
@@ -34,7 +34,7 @@ ${descent(node.literals, "\n")}`}`;
|
|
|
34
34
|
return `language ${node.name}
|
|
35
35
|
version: ${node.version}${node.dependsOn.length > 0
|
|
36
36
|
? `\n dependsOn:
|
|
37
|
-
${node.dependsOn.map((language) => ` ${language.
|
|
37
|
+
${node.dependsOn.map((language) => ` ${language.name} (${language.version})`).join("\n")}
|
|
38
38
|
`
|
|
39
39
|
: ``}
|
|
40
40
|
entities (↓name):
|
|
@@ -53,4 +53,4 @@ ${descent(node.entities, "\n\n")}
|
|
|
53
53
|
};
|
|
54
54
|
export const languageAsText = asText;
|
|
55
55
|
export const languagesAsText = (languages) => nameSorted(languages).map(asText).join("\n\n");
|
|
56
|
-
//# sourceMappingURL=
|
|
56
|
+
//# sourceMappingURL=textualizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"textualizer.js","sourceRoot":"","sources":["../../src/m3/textualizer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
import { SerializationChunk } from "@lionweb/core";
|
|
1
|
+
import { Language, SerializationChunk } from "@lionweb/core";
|
|
2
2
|
export declare const readChunk: (path: string) => Promise<SerializationChunk>;
|
|
3
|
-
export declare const
|
|
3
|
+
export declare const looksLikeSerializedLanguages: (json: unknown) => boolean;
|
|
4
|
+
/**
|
|
5
|
+
* Check whether the given path exists, is a JSON file containing the serialization of languages,
|
|
6
|
+
* and attempt to deserialize when it is. If any of that fails, return an empty list.
|
|
7
|
+
*/
|
|
8
|
+
export declare const tryLoadAsLanguages: (path: string) => Promise<Language[]>;
|
|
9
|
+
export declare const tryLoadAllAsLanguages: (paths: string[]) => Promise<Language[]>;
|
|
4
10
|
//# sourceMappingURL=chunk.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunk.d.ts","sourceRoot":"","sources":["../../src/serialization/chunk.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"chunk.d.ts","sourceRoot":"","sources":["../../src/serialization/chunk.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,QAAQ,EAER,kBAAkB,EACrB,MAAM,eAAe,CAAA;AAItB,eAAO,MAAM,SAAS,SAAgB,MAAM,gCAO3C,CAAA;AAMD,eAAO,MAAM,4BAA4B,SAAU,OAAO,KAAG,OAKqC,CAAA;AAGlG;;;GAGG;AACH,eAAO,MAAM,kBAAkB,SAAgB,MAAM,KAAG,QAAQ,QAAQ,EAAE,CAazE,CAAA;AAGD,eAAO,MAAM,qBAAqB,UAAiB,MAAM,EAAE,KAAG,QAAQ,QAAQ,EAAE,CACnB,CAAA"}
|
|
@@ -1,18 +1,39 @@
|
|
|
1
|
-
import { currentSerializationFormatVersion, lioncoreKey } from "@lionweb/core";
|
|
1
|
+
import { currentSerializationFormatVersion, deserializeLanguages, lioncoreKey } from "@lionweb/core";
|
|
2
2
|
import { readFileAsJson } from "../json.js";
|
|
3
3
|
export const readChunk = async (path) => {
|
|
4
4
|
try {
|
|
5
5
|
return readFileAsJson(path);
|
|
6
6
|
}
|
|
7
7
|
catch (e) {
|
|
8
|
-
console.error(
|
|
8
|
+
console.error(`${path} is not a valid JSON file`);
|
|
9
9
|
throw e;
|
|
10
10
|
}
|
|
11
11
|
};
|
|
12
12
|
const isRecord = (json) => typeof json === "object" && !Array.isArray(json);
|
|
13
|
-
export const
|
|
13
|
+
export const looksLikeSerializedLanguages = (json) => isRecord(json)
|
|
14
14
|
&& json["serializationFormatVersion"] === currentSerializationFormatVersion
|
|
15
15
|
&& "languages" in json
|
|
16
16
|
&& Array.isArray(json["languages"])
|
|
17
17
|
&& json["languages"].some((language) => isRecord(language) && language["key"] === lioncoreKey);
|
|
18
|
+
/**
|
|
19
|
+
* Check whether the given path exists, is a JSON file containing the serialization of languages,
|
|
20
|
+
* and attempt to deserialize when it is. If any of that fails, return an empty list.
|
|
21
|
+
*/
|
|
22
|
+
export const tryLoadAsLanguages = async (path) => {
|
|
23
|
+
const chunk = await readChunk(path);
|
|
24
|
+
if (!looksLikeSerializedLanguages(chunk)) {
|
|
25
|
+
console.error(`${path} is not a valid JSON serialization chunk of LionCore languages`);
|
|
26
|
+
return [];
|
|
27
|
+
}
|
|
28
|
+
try {
|
|
29
|
+
return deserializeLanguages(chunk);
|
|
30
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
31
|
+
}
|
|
32
|
+
catch (e) {
|
|
33
|
+
console.error(`${path} is not a valid JSON serialization chunk of LionCore languages: ${e.message}`);
|
|
34
|
+
return [];
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
export const tryLoadAllAsLanguages = async (paths) => (await Promise.all(paths.map(tryLoadAsLanguages))).flat();
|
|
38
|
+
// TODO load languages “in dependency order”, i.e.: later-named languages can be dependent on earlier-named languages -- (this is a foldRight, really)
|
|
18
39
|
//# sourceMappingURL=chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunk.js","sourceRoot":"","sources":["../../src/serialization/chunk.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"chunk.js","sourceRoot":"","sources":["../../src/serialization/chunk.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,iCAAiC,EACjC,oBAAoB,EAEpB,WAAW,EAEd,MAAM,eAAe,CAAA;AACtB,OAAO,EAAC,cAAc,EAAC,MAAM,YAAY,CAAA;AAGzC,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAAE,IAAY,EAAE,EAAE;IAC5C,IAAI,CAAC;QACD,OAAO,cAAc,CAAC,IAAI,CAAuB,CAAA;IACrD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,2BAA2B,CAAC,CAAA;QACjD,MAAM,CAAC,CAAA;IACX,CAAC;AACL,CAAC,CAAA;AAGD,MAAM,QAAQ,GAAG,CAAC,IAAa,EAAmC,EAAE,CAChE,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;AAEpD,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,IAAa,EAAW,EAAE,CACnE,QAAQ,CAAC,IAAI,CAAC;OACX,IAAI,CAAC,4BAA4B,CAAC,KAAK,iCAAiC;OACxE,WAAW,IAAI,IAAI;OACnB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;OAChC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,WAAW,CAAC,CAAA;AAGlG;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EAAE,IAAY,EAAuB,EAAE;IAC1E,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAA;IACnC,IAAI,CAAC,4BAA4B,CAAC,KAAK,CAAC,EAAE,CAAC;QACvC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,gEAAgE,CAAC,CAAA;QACtF,OAAO,EAAE,CAAA;IACb,CAAC;IACD,IAAI,CAAC;QACD,OAAO,oBAAoB,CAAC,KAAK,CAAC,CAAA;QAC1C,8DAA8D;IAC1D,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,mEAAmE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;QACpG,OAAO,EAAE,CAAA;IACb,CAAC;AACL,CAAC,CAAA;AAGD,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EAAE,KAAe,EAAuB,EAAE,CAChF,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;AAC7D,uJAAuJ"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { looksLikeSerializedLanguages, readChunk, tryLoadAllAsLanguages, tryLoadAsLanguages } from "./chunk.js";
|
|
2
2
|
export { orderedSerializationChunk } from "./ordering.js";
|
|
3
|
-
export { shortenedSerializationChunk } from "./shortening.js";
|
|
4
3
|
export { sortedSerializationChunk } from "./sorting.js";
|
|
5
|
-
export { genericAsTreeText } from "./
|
|
4
|
+
export { genericAsTreeText } from "./textualizer.js";
|
|
6
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/serialization/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/serialization/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,4BAA4B,EAAE,SAAS,EAAE,qBAAqB,EAAE,kBAAkB,EAAC,MAAM,YAAY,CAAA;AAC7G,OAAO,EAAC,yBAAyB,EAAC,MAAM,eAAe,CAAA;AACvD,OAAO,EAAC,wBAAwB,EAAC,MAAM,cAAc,CAAA;AACrD,OAAO,EAAC,iBAAiB,EAAC,MAAM,kBAAkB,CAAA"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { looksLikeSerializedLanguages, readChunk, tryLoadAllAsLanguages, tryLoadAsLanguages } from "./chunk.js";
|
|
2
2
|
export { orderedSerializationChunk } from "./ordering.js";
|
|
3
|
-
export { shortenedSerializationChunk } from "./shortening.js";
|
|
4
3
|
export { sortedSerializationChunk } from "./sorting.js";
|
|
5
|
-
export { genericAsTreeText } from "./
|
|
4
|
+
export { genericAsTreeText } from "./textualizer.js";
|
|
6
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/serialization/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/serialization/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,4BAA4B,EAAE,SAAS,EAAE,qBAAqB,EAAE,kBAAkB,EAAC,MAAM,YAAY,CAAA;AAC7G,OAAO,EAAC,yBAAyB,EAAC,MAAM,eAAe,CAAA;AACvD,OAAO,EAAC,wBAAwB,EAAC,MAAM,cAAc,CAAA;AACrD,OAAO,EAAC,iBAAiB,EAAC,MAAM,kBAAkB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ordering.d.ts","sourceRoot":"","sources":["../../src/serialization/ordering.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,WAAW,EACX,kBAAkB,EAElB,2BAA2B,EAE3B,kBAAkB,EAElB,yBAAyB,EAC5B,MAAM,eAAe,CAAA;AAGtB,QAAA,MAAM,kBAAkB,+BAA8B,WAAW,KAAG,WAK9D,CAAA;AAEN,QAAA,MAAM,kCAAkC,qBAAoB,2BAA2B,KAAG,
|
|
1
|
+
{"version":3,"file":"ordering.d.ts","sourceRoot":"","sources":["../../src/serialization/ordering.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,WAAW,EACX,kBAAkB,EAElB,2BAA2B,EAE3B,kBAAkB,EAElB,yBAAyB,EAC5B,MAAM,eAAe,CAAA;AAGtB,QAAA,MAAM,kBAAkB,+BAA8B,WAAW,KAAG,WAK9D,CAAA;AAEN,QAAA,MAAM,kCAAkC,qBAAoB,2BAA2B,KAAG,2BAIpF,CAAA;AAEN,QAAA,MAAM,gCAAgC,+BAA8B,yBAAyB,KAAG,yBAI1F,CAAA;AAEN,QAAA,MAAM,yBAAyB,wBAAuB,kBAAkB,KAAG,kBAIrE,CAAA;AA0BN,QAAA,MAAM,yBAAyB,qDAAoD,kBAAkB,KAAG,kBAKlG,CAAA;AAGN,OAAO,EACH,kBAAkB,EAClB,yBAAyB,EACzB,kCAAkC,EAClC,yBAAyB,EACzB,gCAAgC,EACnC,CAAA"}
|
|
@@ -4,9 +4,8 @@ const orderedMetaPointer = ({ language, version, key }) => ({
|
|
|
4
4
|
key
|
|
5
5
|
});
|
|
6
6
|
const orderedSerializedLanguageReference = ({ key, version }) => ({
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
// FIXME swap around to align with specification after lionweb-java is aligned as well
|
|
7
|
+
key,
|
|
8
|
+
version
|
|
10
9
|
});
|
|
11
10
|
const orderedSerializedReferenceTarget = ({ reference, resolveInfo }) => ({
|
|
12
11
|
resolveInfo,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ordering.js","sourceRoot":"","sources":["../../src/serialization/ordering.ts"],"names":[],"mappings":"AAYA,MAAM,kBAAkB,GAAG,CAAC,EAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAc,EAAe,EAAE,CAC9E,CAAC;IACG,QAAQ;IACR,OAAO;IACP,GAAG;CACN,CAAC,CAAA;AAEN,MAAM,kCAAkC,GAAG,CAAC,EAAC,GAAG,EAAE,OAAO,EAA8B,EAA+B,EAAE,CACpH,CAAC;IACG,
|
|
1
|
+
{"version":3,"file":"ordering.js","sourceRoot":"","sources":["../../src/serialization/ordering.ts"],"names":[],"mappings":"AAYA,MAAM,kBAAkB,GAAG,CAAC,EAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAc,EAAe,EAAE,CAC9E,CAAC;IACG,QAAQ;IACR,OAAO;IACP,GAAG;CACN,CAAC,CAAA;AAEN,MAAM,kCAAkC,GAAG,CAAC,EAAC,GAAG,EAAE,OAAO,EAA8B,EAA+B,EAAE,CACpH,CAAC;IACG,GAAG;IACH,OAAO;CACV,CAAC,CAAA;AAEN,MAAM,gCAAgC,GAAG,CAAC,EAAC,SAAS,EAAE,WAAW,EAA4B,EAA6B,EAAE,CACxH,CAAC;IACG,WAAW;IACX,SAAS;CACZ,CAAC,CAAA;AAEN,MAAM,yBAAyB,GAAG,CAAC,EAAC,QAAQ,EAAE,KAAK,EAAqB,EAAsB,EAAE,CAC5F,CAAC;IACG,QAAQ,EAAE,kBAAkB,CAAC,QAAQ,CAAC;IACtC,KAAK;CACR,CAAC,CAAA;AAEN,MAAM,4BAA4B,GAAG,CAAC,EAAC,WAAW,EAAE,QAAQ,EAAwB,EAAyB,EAAE,CAC3G,CAAC;IACG,WAAW,EAAE,kBAAkB,CAAC,WAAW,CAAC;IAC5C,QAAQ;CACX,CAAC,CAAA;AAEN,MAAM,0BAA0B,GAAG,CAAC,EAAC,SAAS,EAAE,OAAO,EAAsB,EAAuB,EAAE,CAClG,CAAC;IACG,SAAS,EAAE,kBAAkB,CAAC,SAAS,CAAC;IACxC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC;CACzD,CAAC,CAAA;AAEN,MAAM,qBAAqB,GAAG,CAAC,EAAC,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAiB,EAAkB,EAAE,CAC1I,CAAC;IACG,EAAE;IACF,UAAU,EAAE,kBAAkB,CAAC,UAAU,CAAC;IAC1C,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,yBAAyB,CAAC;IACrD,YAAY,EAAE,YAAY,CAAC,GAAG,CAAC,4BAA4B,CAAC;IAC5D,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,0BAA0B,CAAC;IACtD,WAAW;IACX,MAAM;CACT,CAAC,CAAA;AAGN,MAAM,yBAAyB,GAAG,CAAC,EAAC,0BAA0B,EAAE,SAAS,EAAE,KAAK,EAAqB,EAAsB,EAAE,CACzH,CAAC;IACG,0BAA0B;IAC1B,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,kCAAkC,CAAC;IAC5D,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,qBAAqB,CAAC;CAC1C,CAAC,CAAA;AAGN,OAAO,EACH,kBAAkB,EAClB,yBAAyB,EACzB,kCAAkC,EAClC,yBAAyB,EACzB,gCAAgC,EACnC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"textualizer.d.ts","sourceRoot":"","sources":["../../src/serialization/textualizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,QAAQ,EAIR,kBAAkB,EAMrB,MAAM,eAAe,CAAA;AAStB,eAAO,MAAM,iBAAiB,cAAa,kBAAkB,cAAa,QAAQ,EAAE,WAyEnF,CAAA"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { Enumeration, MemoisingSymbolTable, Property } from "@lionweb/core";
|
|
2
|
+
import { asString, indentWith } from "littoral-templates";
|
|
3
|
+
const indent = indentWith(" ")(1);
|
|
4
|
+
const prependWith = (nestedString, prefix) => prefix + asString(nestedString);
|
|
5
|
+
export const genericAsTreeText = ({ nodes }, languages = []) => {
|
|
6
|
+
const nodesById = {};
|
|
7
|
+
nodes.forEach((node) => {
|
|
8
|
+
nodesById[node.id] = node;
|
|
9
|
+
});
|
|
10
|
+
const symbolTable = new MemoisingSymbolTable(languages);
|
|
11
|
+
const nameOrKey = (classifier, feature) => symbolTable.featureMatching(classifier, feature)?.name ?? `[${feature.key}]`;
|
|
12
|
+
const propertyAsText = (classifier, { property: propertyMetaPointer, value }) => {
|
|
13
|
+
const property = symbolTable.featureMatching(classifier, propertyMetaPointer);
|
|
14
|
+
const identification = nameOrKey(classifier, propertyMetaPointer);
|
|
15
|
+
const displayValue = property instanceof Property
|
|
16
|
+
? (property.type instanceof Enumeration
|
|
17
|
+
? (property.type.literals.find((literal) => literal.key === value)?.name ?? value)
|
|
18
|
+
: (() => {
|
|
19
|
+
switch (property?.type?.name) {
|
|
20
|
+
case "String": return `'${value}'`;
|
|
21
|
+
default: return value;
|
|
22
|
+
}
|
|
23
|
+
})())
|
|
24
|
+
: value;
|
|
25
|
+
return `${identification} = ${displayValue}`;
|
|
26
|
+
};
|
|
27
|
+
const referenceTargetAsText = ({ reference: referenceId, resolveInfo }) => `${referenceId}${resolveInfo === undefined ? `` : ` (${resolveInfo})`}`;
|
|
28
|
+
const referenceAsText = (classifier, { reference, targets }) => `${nameOrKey(classifier, reference)} -> ${targets.length === 0 ? `<none>` : targets.map(referenceTargetAsText).join(",")}`;
|
|
29
|
+
const containmentAsText = (classifier, { containment, children }) => [
|
|
30
|
+
`${nameOrKey(classifier, containment)}:${children.length === 0 ? ` <none>` : ``}`,
|
|
31
|
+
indent(children.map((childId) => childId in nodesById
|
|
32
|
+
? asText(nodesById[childId])
|
|
33
|
+
: `<child with id=${childId} not present in this chunk>`))
|
|
34
|
+
];
|
|
35
|
+
const annotationAsText = (annotationId) => annotationId in nodesById
|
|
36
|
+
? prependWith(asText(nodesById[annotationId]), "@ ")
|
|
37
|
+
: `<annotation with id=${annotationId} not present in this chunk>`;
|
|
38
|
+
const curry1 = (func, t1) => (t2) => func(t1, t2);
|
|
39
|
+
const asText = ({ id, classifier: classifierMetaPointer, properties, containments, references, annotations }) => [
|
|
40
|
+
`${symbolTable.entityMatching(classifierMetaPointer)?.name ?? `[${classifierMetaPointer.key}]`} (id: ${id}) {`,
|
|
41
|
+
indent([
|
|
42
|
+
properties.map(curry1(propertyAsText, classifierMetaPointer)),
|
|
43
|
+
references.map(curry1(referenceAsText, classifierMetaPointer)),
|
|
44
|
+
containments.map(curry1(containmentAsText, classifierMetaPointer)),
|
|
45
|
+
annotations.map(annotationAsText)
|
|
46
|
+
]),
|
|
47
|
+
`}`
|
|
48
|
+
];
|
|
49
|
+
return asString(nodes
|
|
50
|
+
.filter((node) => node.parent === null) // root nodes
|
|
51
|
+
.map(asText));
|
|
52
|
+
};
|
|
53
|
+
//# sourceMappingURL=textualizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"textualizer.js","sourceRoot":"","sources":["../../src/serialization/textualizer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lionweb/utilities",
|
|
3
|
-
"version": "0.6.0
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "LionWeb utilities",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -15,16 +15,14 @@
|
|
|
15
15
|
"url": "https://github.com/LionWeb-io/lionweb-typescript/issues"
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@lionweb/core": "0.6.0
|
|
18
|
+
"@lionweb/core": "0.6.0",
|
|
19
19
|
"littoral-templates": "0.2.2",
|
|
20
20
|
"nanoid": "4.0.2"
|
|
21
21
|
},
|
|
22
|
-
"devDependencies": {
|
|
23
|
-
"@types/node": "20.10.4",
|
|
24
|
-
"typescript": "5.3.3"
|
|
25
|
-
},
|
|
26
22
|
"scripts": {
|
|
23
|
+
"clean": "rm -rf dist/",
|
|
27
24
|
"build": "tsc",
|
|
28
|
-
"
|
|
25
|
+
"lint": "eslint src",
|
|
26
|
+
"release": "npm publish"
|
|
29
27
|
}
|
|
30
28
|
}
|
package/build.sh
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"textual-syntax.d.ts","sourceRoot":"","sources":["../../src/m3/textual-syntax.ts"],"names":[],"mappings":"AAAA,OAAO,EAQH,QAAQ,EAER,MAAM,EAOT,MAAM,eAAe,CAAA;AA4EtB,eAAO,MAAM,cAAc,SA7DL,MAAM,KAAG,MA6DK,CAAA;AAEpC,eAAO,MAAM,eAAe,cAAe,QAAQ,EAAE,KAAG,MACN,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"textual-syntax.js","sourceRoot":"","sources":["../../src/m3/textual-syntax.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { SerializationChunk } from "@lionweb/core";
|
|
2
|
-
/**
|
|
3
|
-
* @return A shortened version of a {@link SerializedModel JSON serialization}, which should make it easier to inspect.
|
|
4
|
-
* Note that the shortened version doesn't contain all information, and could (in theory) be malformed.
|
|
5
|
-
*/
|
|
6
|
-
export declare const shortenedSerializationChunk: ({ nodes }: SerializationChunk) => any[];
|
|
7
|
-
//# sourceMappingURL=shortening.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"shortening.d.ts","sourceRoot":"","sources":["../../src/serialization/shortening.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAC,MAAM,eAAe,CAAA;AAGhD;;;GAGG;AACH,eAAO,MAAM,2BAA2B,cAAa,kBAAkB,UAYhE,CAAA"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @return A shortened version of a {@link SerializedModel JSON serialization}, which should make it easier to inspect.
|
|
3
|
-
* Note that the shortened version doesn't contain all information, and could (in theory) be malformed.
|
|
4
|
-
*/
|
|
5
|
-
export const shortenedSerializationChunk = ({ nodes }) => nodes.map((node) => ({
|
|
6
|
-
id: node.id,
|
|
7
|
-
classifier: node.classifier.key,
|
|
8
|
-
...Object.fromEntries([
|
|
9
|
-
...node.properties.map((serProp) => [serProp.property.key, serProp.value]),
|
|
10
|
-
...node.containments.map((serContainment) => [serContainment.containment.key, serContainment.children]),
|
|
11
|
-
...node.references.map((serReference) => [serReference.reference.key, serReference.targets.map(({ reference }) => reference)])
|
|
12
|
-
]),
|
|
13
|
-
parent: node.parent ?? undefined
|
|
14
|
-
}));
|
|
15
|
-
//# sourceMappingURL=shortening.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"shortening.js","sourceRoot":"","sources":["../../src/serialization/shortening.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,EAAC,KAAK,EAAqB,EAAE,EAAE,CACvE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACjB,EAAE,EAAE,IAAI,CAAC,EAAE;IACX,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG;IAC/B,GAAG,MAAM,CAAC,WAAW,CACjB;QACI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAC1E,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;QACvG,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,EAAE,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAC,SAAS,EAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;KAC/H,CACJ;IACD,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,SAAS;CACnC,CAAC,CAAC,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"textual-syntax.d.ts","sourceRoot":"","sources":["../../src/serialization/textual-syntax.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,kBAAkB,EAMrB,MAAM,eAAe,CAAA;AAiBtB,eAAO,MAAM,iBAAiB,cAAa,kBAAkB,WAkC5D,CAAA"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { asString, indentWith } from "littoral-templates";
|
|
2
|
-
const indent = indentWith(" ")(1);
|
|
3
|
-
const propertyAsText = ({ property, value }) => `[${property.key}] = ${value}`;
|
|
4
|
-
const referenceTargetAsText = ({ reference, resolveInfo }) => `${reference}${resolveInfo === undefined ? `` : ` (${resolveInfo})`}`;
|
|
5
|
-
const referenceAsText = ({ reference, targets }) => `[${reference.key}] -> ${targets.length === 0 ? `<none>` : targets.map(referenceTargetAsText).join(",")}`;
|
|
6
|
-
export const genericAsTreeText = ({ nodes }) => {
|
|
7
|
-
const nodesById = {};
|
|
8
|
-
nodes.forEach((node) => {
|
|
9
|
-
nodesById[node.id] = node;
|
|
10
|
-
});
|
|
11
|
-
const containmentAsText = ({ containment, children }) => [
|
|
12
|
-
`[${containment.key}]:${children.length === 0 ? ` <none>` : ``}`,
|
|
13
|
-
indent(children.map((childId) => childId in nodesById
|
|
14
|
-
? asText(nodesById[childId])
|
|
15
|
-
: `<child with id=${childId} not present in this chunk>`))
|
|
16
|
-
];
|
|
17
|
-
const asText = ({ id, classifier, properties, containments, references }) => [
|
|
18
|
-
`[${classifier.key}] (id: ${id}) {`,
|
|
19
|
-
indent([
|
|
20
|
-
properties.map(propertyAsText),
|
|
21
|
-
references.map(referenceAsText),
|
|
22
|
-
containments.map(containmentAsText)
|
|
23
|
-
]),
|
|
24
|
-
`}`
|
|
25
|
-
];
|
|
26
|
-
return asString(nodes
|
|
27
|
-
.filter((node) => node.parent === null) // root nodes
|
|
28
|
-
.map(asText));
|
|
29
|
-
};
|
|
30
|
-
//# sourceMappingURL=textual-syntax.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"textual-syntax.js","sourceRoot":"","sources":["../../src/serialization/textual-syntax.ts"],"names":[],"mappings":"AASA,OAAO,EAAC,QAAQ,EAAE,UAAU,EAAe,MAAM,oBAAoB,CAAA;AAGrE,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;AAGpC,MAAM,cAAc,GAAG,CAAC,EAAC,QAAQ,EAAE,KAAK,EAAqB,EAAE,EAAE,CAC7D,IAAI,QAAQ,CAAC,GAAG,OAAO,KAAK,EAAE,CAAA;AAElC,MAAM,qBAAqB,GAAG,CAAC,EAAC,SAAS,EAAE,WAAW,EAA4B,EAAE,EAAE,CAClF,GAAG,SAAS,GAAG,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,WAAW,GAAG,EAAE,CAAA;AAEzE,MAAM,eAAe,GAAG,CAAC,EAAC,SAAS,EAAE,OAAO,EAAsB,EAAE,EAAE,CAClE,IAAI,SAAS,CAAC,GAAG,QAAQ,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;AAG7G,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,EAAC,KAAK,EAAqB,EAAE,EAAE;IAC7D,MAAM,SAAS,GAAiC,EAAE,CAAA;IAClD,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACnB,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAA;IAC7B,CAAC,CAAC,CAAA;IAEF,MAAM,iBAAiB,GAAG,CAAC,EAAC,WAAW,EAAE,QAAQ,EAAwB,EAAE,EAAE,CACzE;QACI,IAAI,WAAW,CAAC,GAAG,KAAK,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE;QAChE,MAAM,CAAC,QAAQ,CAAC,GAAG,CACf,CAAC,OAAO,EAAE,EAAE,CACR,OAAO,IAAI,SAAS;YAChB,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAC5B,CAAC,CAAC,kBAAkB,OAAO,6BAA6B,CACnE,CAAC;KACL,CAAA;IAGL,MAAM,MAAM,GAAG,CAAC,EAAC,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAiB,EAAgB,EAAE,CACpG;QACI,IAAI,UAAU,CAAC,GAAG,UAAU,EAAE,KAAK;QACnC,MAAM,CAAC;YACH,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC;YAC9B,UAAU,CAAC,GAAG,CAAC,eAAe,CAAC;YAC/B,YAAY,CAAC,GAAG,CAAC,iBAAiB,CAAC;SACtC,CAAC;QACF,GAAG;KACN,CAAA;IAEL,OAAO,QAAQ,CACX,KAAK;SACA,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,aAAa;SACpD,GAAG,CAAC,MAAM,CAAC,CACnB,CAAA;AACL,CAAC,CAAA"}
|