@lionweb/utilities 0.6.0-beta.3 → 0.6.1

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.
Files changed (41) hide show
  1. package/README.md +19 -7
  2. package/dist/m3/diagrams/Mermaid-generator.d.ts.map +1 -1
  3. package/dist/m3/diagrams/Mermaid-generator.js +32 -19
  4. package/dist/m3/diagrams/Mermaid-generator.js.map +1 -1
  5. package/dist/m3/diagrams/PlantUML-generator.d.ts.map +1 -1
  6. package/dist/m3/diagrams/PlantUML-generator.js +47 -24
  7. package/dist/m3/diagrams/PlantUML-generator.js.map +1 -1
  8. package/dist/m3/index.d.ts +1 -3
  9. package/dist/m3/index.d.ts.map +1 -1
  10. package/dist/m3/index.js +1 -3
  11. package/dist/m3/index.js.map +1 -1
  12. package/dist/m3/{textual-syntax.d.ts → textualizer.d.ts} +1 -1
  13. package/dist/m3/textualizer.d.ts.map +1 -0
  14. package/dist/m3/{textual-syntax.js → textualizer.js} +2 -2
  15. package/dist/m3/textualizer.js.map +1 -0
  16. package/dist/serialization/index.d.ts +1 -2
  17. package/dist/serialization/index.d.ts.map +1 -1
  18. package/dist/serialization/index.js +1 -2
  19. package/dist/serialization/index.js.map +1 -1
  20. package/dist/serialization/{textual-syntax.d.ts → textualizer.d.ts} +1 -1
  21. package/dist/serialization/textualizer.d.ts.map +1 -0
  22. package/dist/serialization/{textual-syntax.js → textualizer.js} +8 -3
  23. package/dist/serialization/textualizer.js.map +1 -0
  24. package/package.json +5 -7
  25. package/build.sh +0 -6
  26. package/dist/m3/ecore/importer.d.ts +0 -7
  27. package/dist/m3/ecore/importer.d.ts.map +0 -1
  28. package/dist/m3/ecore/importer.js +0 -102
  29. package/dist/m3/ecore/importer.js.map +0 -1
  30. package/dist/m3/ecore/types.d.ts +0 -60
  31. package/dist/m3/ecore/types.d.ts.map +0 -1
  32. package/dist/m3/ecore/types.js +0 -2
  33. package/dist/m3/ecore/types.js.map +0 -1
  34. package/dist/m3/textual-syntax.d.ts.map +0 -1
  35. package/dist/m3/textual-syntax.js.map +0 -1
  36. package/dist/serialization/shortening.d.ts +0 -7
  37. package/dist/serialization/shortening.d.ts.map +0 -1
  38. package/dist/serialization/shortening.js +0 -15
  39. package/dist/serialization/shortening.js.map +0 -1
  40. package/dist/serialization/textual-syntax.d.ts.map +0 -1
  41. package/dist/serialization/textual-syntax.js.map +0 -1
package/README.md CHANGED
@@ -7,22 +7,34 @@ $ npm add @lionweb/utilities
7
7
  ```
8
8
  It contains utilities on top of the `core` package, such as:
9
9
 
10
- * diagram generation (PlantUML and Mermaid) from an M2
11
- * an Ecore → M2 importer
12
- * functions to order, sort, shorten, or “textualize” i.e.: render as text – a serialization to make introspection easier, and to possibly repair it (or at least make it more aligned with the specification)
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
 
18
+ ### 0.6.1
19
+
20
+ * Improve PlantUML and Mermaid diagram generation:
21
+ * Primitive types now rendered as classes marked as "<<primitive type>>".
22
+ * Concepts or Annotations that extend the "Node" concept built into LionCore don't show that.
23
+ * Optional (single-valued) features are now shown with a question mark (`?`) directly after the type, instead of being marked as "<<optional>>".
24
+ * Fix/add support for annotations.
25
+ * **Remove** all Ecore functionality (=[issue #121](https://github.com/LionWeb-io/lionweb-typescript/issues/121))
26
+
17
27
  ### 0.6.0
18
28
 
29
+ * Add support for annotations in diagram generation (PlantUML and Mermaid), and textualization.
30
+ * **Remove** the `shortenedSerializationChunk` function, as it isn't used, nor very useful compared to the sorting and textualization.
19
31
  * _Breaking name changes_: rename `asText` &rarr; `languageAsText`, `shortenedSerialization` &rarr; `shortenedSerializationChunk`, `sortedSerialization` &rarr; `sortedSerializationChunk`.
20
32
  * 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.
33
+ * Expose an `orderedSerializationChunk` function that aligns the JSON key-value pairs in a serialization chunk according to the specification of the serialization format.
34
+ 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.
22
35
  * Expose a generic textual syntax for serialization chunks, through the `genericTreeAsText` function.
23
36
  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
37
 
25
-
26
38
  ### 0.5.0
27
39
 
28
40
  This is the first version corresponding to a release of LionWeb (version: 2023.1) as a whole.
@@ -45,7 +57,7 @@ No changelog has been kept for previous versions, regardless of whether these we
45
57
 
46
58
  Build it from source as follows:
47
59
 
48
- ```shell
49
- $ ./build.sh
60
+ ```
61
+ npm run build
50
62
  ```
51
63
 
@@ -1 +1 @@
1
- {"version":3,"file":"Mermaid-generator.d.ts","sourceRoot":"","sources":["../../../src/m3/diagrams/Mermaid-generator.ts"],"names":[],"mappings":"AACA,OAAO,EAQH,QAAQ,EAQX,MAAM,eAAe,CAAA;AAuBtB;;;GAGG;AACH,eAAO,MAAM,0BAA0B,iBAAgB,QAAQ,WAWzD,CAAA"}
1
+ {"version":3,"file":"Mermaid-generator.d.ts","sourceRoot":"","sources":["../../../src/m3/diagrams/Mermaid-generator.ts"],"names":[],"mappings":"AACA,OAAO,EAUH,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, isBuiltinNodeConcept, 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(generateForElement)),
25
+ indented(entitiesSortedByName(entities).map(generateForEntity)),
26
26
  ``,
27
27
  indented(entitiesSortedByName(entities).map(generateForRelationsOf)),
28
28
  ``,
@@ -32,10 +32,20 @@ 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_, annotates }) => [
36
+ block([
37
+ `class ${name}`,
38
+ `<<Annotation>> ${name}`,
39
+ isRef(annotates) ? `${name} ..> ${annotates.name}` : []
40
+ ], nonRelationalFeatures(features).map(generateForNonRelationalFeature)),
41
+ (isRef(extends_) && !isBuiltinNodeConcept(extends_)) ? `${extends_.name} <|-- ${name}` : [],
42
+ implements_.filter(isRef).map((interface_) => `${interface_.name} <|.. ${name}`),
43
+ ``
44
+ ];
35
45
  const generateForConcept = ({ name, features, abstract: abstract_, extends: extends_ /*, implements: implements_*/, partition }) => [
36
46
  block(`class ${partition ? `<<partition>> ` : ``}${name}`, nonRelationalFeatures(features).map(generateForNonRelationalFeature)),
37
47
  abstract_ ? `<<Abstract>> ${name}` : [],
38
- isRef(extends_) ? `${extends_.name} <|-- ${name}` : [],
48
+ (isRef(extends_) && !isBuiltinNodeConcept(extends_)) ? `${extends_.name} <|-- ${name}` : [],
39
49
  ``
40
50
  ];
41
51
  const generateForInterface = ({ name, features, extends: extends_ }) => [
@@ -51,31 +61,34 @@ const generateForNonRelationalFeature = (feature) => {
51
61
  const typeText = `${multiple ? `List~` : ``}${type_ === unresolved ? `???` : type_.name}${multiple ? `~` : ``}${optional ? `?` : ``}`;
52
62
  return `+${typeText} ${name}`;
53
63
  };
54
- const generateForPrimitiveType = ({ name }) => `%% primitive type: "${name}"
64
+ const generateForPrimitiveType = ({ name }) => `class ${name}
65
+ <<PrimitiveType>> ${name}
55
66
 
56
67
  `;
57
- // Note: No construct for PrimitiveType exists in PlantUML.
58
- const generateForElement = (element) => {
59
- if (element instanceof Concept) {
60
- return generateForConcept(element);
68
+ const generateForEntity = (entity) => {
69
+ if (entity instanceof Annotation) {
70
+ return generateForAnnotation(entity);
71
+ }
72
+ if (entity instanceof Concept) {
73
+ return generateForConcept(entity);
61
74
  }
62
- if (element instanceof Enumeration) {
63
- return generateForEnumeration(element);
75
+ if (entity instanceof Enumeration) {
76
+ return generateForEnumeration(entity);
64
77
  }
65
- if (element instanceof Interface) {
66
- return generateForInterface(element);
78
+ if (entity instanceof Interface) {
79
+ return generateForInterface(entity);
67
80
  }
68
- if (element instanceof PrimitiveType) {
69
- return generateForPrimitiveType(element);
81
+ if (entity instanceof PrimitiveType) {
82
+ return generateForPrimitiveType(entity);
70
83
  }
71
- return `// unhandled metamodel element: ${element.name}`;
84
+ return `// unhandled language entity: <${entity.constructor.name}>${entity.name}`;
72
85
  };
73
- const generateForRelationsOf = (element) => {
74
- const relations = relationsOf(element);
86
+ const generateForRelationsOf = (entity) => {
87
+ const relations = relationsOf(entity);
75
88
  return relations.length === 0
76
89
  ? ``
77
90
  : relations
78
- .map((relation) => generateForRelation(element, relation));
91
+ .map((relation) => generateForRelation(entity, relation));
79
92
  };
80
93
  const generateForRelation = ({ name: leftName }, relation) => {
81
94
  const { name: relationName, optional, multiple, type } = relation;
@@ -88,6 +101,6 @@ const generateForRelation = ({ name: leftName }, relation) => {
88
101
  }
89
102
  return optional ? "0..1" : "1";
90
103
  })();
91
- return `${leftName} "${leftMultiplicity}" ${isContainment ? `o` : ``}-- "${rightMultiplicity}" ${rightName}: ${relationName}`;
104
+ return `${leftName} "${leftMultiplicity}" ${isContainment ? `o` : ``}--> "${rightMultiplicity}" ${rightName}: ${relationName}`;
92
105
  };
93
106
  //# sourceMappingURL=Mermaid-generator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Mermaid-generator.js","sourceRoot":"","sources":["../../../src/m3/diagrams/Mermaid-generator.ts"],"names":[],"mappings":"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"}
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,EAQH,QAAQ,EASX,MAAM,eAAe,CAAA;AAMtB;;;GAGG;AACH,eAAO,MAAM,2BAA2B,uBAAsB,QAAQ,WAmBpE,CAAA"}
1
+ {"version":3,"file":"PlantUML-generator.d.ts","sourceRoot":"","sources":["../../../src/m3/diagrams/PlantUML-generator.ts"],"names":[],"mappings":"AACA,OAAO,EAUH,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, isBuiltinNodeConcept, 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(generateForElement),
16
+ entitiesSortedByName(entities).map(generateForEntity),
17
17
  `
18
18
 
19
19
  ' relations:
@@ -31,8 +31,30 @@ const generateForEnumeration = ({ name, literals }) => [
31
31
 
32
32
  `
33
33
  ];
34
- const generateForConcept = ({ name, features, abstract: abstract_, extends: extends_, implements: implements_, partition }) => {
34
+ const generateForAnnotation = ({ name, features, extends: extends_, implements: implements_, annotates }) => {
35
+ const fragments = [];
36
+ fragments.push(`annotation`, name);
37
+ if (isRef(extends_) && !isBuiltinNodeConcept(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
+ isRef(annotates) ? `${name} ..> ${annotates.name}` : [],
48
+ ``
49
+ ]
50
+ : [
51
+ `${fragments.join(" ")} {`,
52
+ indented(nonRelationalFeatures_.map(generateForNonRelationalFeature)),
53
+ `}`,
54
+ ``
55
+ ];
56
+ };
57
+ const generateForConcept = ({ name, features, abstract: abstract_, extends: extends_, implements: implements_, partition }) => {
36
58
  const fragments = [];
37
59
  if (abstract_) {
38
60
  fragments.push(`abstract`);
@@ -41,12 +63,13 @@ const generateForConcept = ({ name, features, abstract: abstract_, extends: exte
41
63
  if (partition) {
42
64
  fragments.push(`<<partition>>`);
43
65
  }
44
- if (isRef(extends_)) {
66
+ if (isRef(extends_) && !isBuiltinNodeConcept(extends_)) {
45
67
  fragments.push(`extends`, extends_.name);
46
68
  }
47
69
  if (implements_.length > 0) {
48
70
  fragments.push(`implements`, implements_.map(nameOf).sort().join(", "));
49
71
  }
72
+ const nonRelationalFeatures_ = nonRelationalFeatures(features);
50
73
  return nonRelationalFeatures_.length === 0
51
74
  ? [
52
75
  `${fragments.join(" ")}`,
@@ -60,11 +83,11 @@ const generateForConcept = ({ name, features, abstract: abstract_, extends: exte
60
83
  ];
61
84
  };
62
85
  const generateForInterface = ({ name, extends: extends_, features }) => {
63
- const nonRelationalFeatures_ = nonRelationalFeatures(features);
64
86
  const fragments = [`interface`, name];
65
87
  if (extends_.length > 0) {
66
88
  fragments.push(`extends`, extends_.map((superInterface) => superInterface.name).join(", "));
67
89
  }
90
+ const nonRelationalFeatures_ = nonRelationalFeatures(features);
68
91
  return nonRelationalFeatures_.length === 0
69
92
  ? `${fragments.join(" ")}`
70
93
  : [
@@ -78,34 +101,34 @@ const generateForNonRelationalFeature = (feature) => {
78
101
  const { name, optional } = feature;
79
102
  const multiple = feature instanceof Link && feature.multiple;
80
103
  const type_ = type(feature);
81
- return `${name}: ${multiple ? `List<` : ``}${type_ === unresolved ? `???` : type_.name}${multiple ? `>` : ``}${(optional && !multiple) ? ` <<optional>>` : ``}`;
104
+ return `${name}: ${multiple ? `List<` : ``}${type_ === unresolved ? `???` : type_.name}${(optional && !multiple) ? `?` : ``}${multiple ? `>` : ``}`;
82
105
  };
83
- const generateForPrimitiveType = ({ name }) => `' primitive type: "${name}"
84
-
85
- `;
86
- // Note: No construct for PrimitiveType exists in PlantUML.
87
- const generateForElement = (element) => {
88
- if (element instanceof Enumeration) {
89
- return generateForEnumeration(element);
106
+ const generateForPrimitiveType = ({ name }) => `class "${name}" <<primitive type>>`;
107
+ const generateForEntity = (entity) => {
108
+ if (entity instanceof Annotation) {
109
+ return generateForAnnotation(entity);
110
+ }
111
+ if (entity instanceof Enumeration) {
112
+ return generateForEnumeration(entity);
90
113
  }
91
- if (element instanceof Concept) {
92
- return generateForConcept(element);
114
+ if (entity instanceof Concept) {
115
+ return generateForConcept(entity);
93
116
  }
94
- if (element instanceof Interface) {
95
- return generateForInterface(element);
117
+ if (entity instanceof Interface) {
118
+ return generateForInterface(entity);
96
119
  }
97
- if (element instanceof PrimitiveType) {
98
- return generateForPrimitiveType(element);
120
+ if (entity instanceof PrimitiveType) {
121
+ return generateForPrimitiveType(entity);
99
122
  }
100
- return `' unhandled metamodel element: ${element.name}
123
+ return `' unhandled language entity: <${entity.constructor.name}>${entity.name}
101
124
  `;
102
125
  };
103
- const generateForRelationsOf = (element) => {
104
- const relations = relationsOf(element);
126
+ const generateForRelationsOf = (entity) => {
127
+ const relations = relationsOf(entity);
105
128
  return relations.length === 0
106
129
  ? ``
107
130
  : relations
108
- .map((relation) => generateForRelation(element, relation));
131
+ .map((relation) => generateForRelation(entity, relation));
109
132
  };
110
133
  const generateForRelation = ({ name: leftName }, relation) => {
111
134
  const { name: relationName, type, optional, multiple } = relation;
@@ -113,7 +136,7 @@ const generateForRelation = ({ name: leftName }, relation) => {
113
136
  const isContainment = relation instanceof Containment;
114
137
  const leftMultiplicity = isContainment ? `1` : `*`;
115
138
  const rightMultiplicity = multiple ? "*" : (optional ? "0..1" : "1");
116
- return `${leftName} "${leftMultiplicity}" ${isContainment ? `o` : ``}-- "${rightMultiplicity}" ${rightName}: ${relationName}`;
139
+ return `${leftName} "${leftMultiplicity}" ${isContainment ? `o` : ``}--> "${rightMultiplicity}" ${rightName}: ${relationName}`;
117
140
  };
118
141
  /*
119
142
  Notes:
@@ -1 +1 @@
1
- {"version":3,"file":"PlantUML-generator.js","sourceRoot":"","sources":["../../../src/m3/diagrams/PlantUML-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PlantUML-generator.js","sourceRoot":"","sources":["../../../src/m3/diagrams/PlantUML-generator.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,5 @@
1
1
  export * from "./diagrams/Mermaid-generator.js";
2
2
  export * from "./diagrams/PlantUML-generator.js";
3
- export * from "./ecore/importer.js";
4
- export * from "./ecore/types.js";
5
3
  export * from "./ts-generation/ts-types-generator.js";
6
- export * from "./textual-syntax.js";
4
+ export * from "./textualizer.js";
7
5
  //# sourceMappingURL=index.d.ts.map
@@ -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,qBAAqB,CAAA"}
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,uCAAuC,CAAA;AACrD,cAAc,kBAAkB,CAAA"}
package/dist/m3/index.js CHANGED
@@ -1,7 +1,5 @@
1
1
  export * from "./diagrams/Mermaid-generator.js";
2
2
  export * from "./diagrams/PlantUML-generator.js";
3
- export * from "./ecore/importer.js";
4
- export * from "./ecore/types.js";
5
3
  export * from "./ts-generation/ts-types-generator.js";
6
- export * from "./textual-syntax.js";
4
+ export * from "./textualizer.js";
7
5
  //# sourceMappingURL=index.js.map
@@ -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,qBAAqB,CAAA"}
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,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=textual-syntax.d.ts.map
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.key} (${language.version})`).join("\n")}
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=textual-syntax.js.map
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,6 +1,5 @@
1
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 "./textual-syntax.js";
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,4BAA4B,EAAE,SAAS,EAAE,qBAAqB,EAAE,kBAAkB,EAAC,MAAM,YAAY,CAAA;AAC7G,OAAO,EAAC,yBAAyB,EAAC,MAAM,eAAe,CAAA;AACvD,OAAO,EAAC,2BAA2B,EAAC,MAAM,iBAAiB,CAAA;AAC3D,OAAO,EAAC,wBAAwB,EAAC,MAAM,cAAc,CAAA;AACrD,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAA"}
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
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 "./textual-syntax.js";
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,4BAA4B,EAAE,SAAS,EAAE,qBAAqB,EAAE,kBAAkB,EAAC,MAAM,YAAY,CAAA;AAC7G,OAAO,EAAC,yBAAyB,EAAC,MAAM,eAAe,CAAA;AACvD,OAAO,EAAC,2BAA2B,EAAC,MAAM,iBAAiB,CAAA;AAC3D,OAAO,EAAC,wBAAwB,EAAC,MAAM,cAAc,CAAA;AACrD,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAA"}
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,3 +1,3 @@
1
1
  import { Language, SerializationChunk } from "@lionweb/core";
2
2
  export declare const genericAsTreeText: ({ nodes }: SerializationChunk, languages?: Language[]) => string;
3
- //# sourceMappingURL=textual-syntax.d.ts.map
3
+ //# sourceMappingURL=textualizer.d.ts.map
@@ -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"}
@@ -1,6 +1,7 @@
1
1
  import { Enumeration, MemoisingSymbolTable, Property } from "@lionweb/core";
2
2
  import { asString, indentWith } from "littoral-templates";
3
3
  const indent = indentWith(" ")(1);
4
+ const prependWith = (nestedString, prefix) => prefix + asString(nestedString);
4
5
  export const genericAsTreeText = ({ nodes }, languages = []) => {
5
6
  const nodesById = {};
6
7
  nodes.forEach((node) => {
@@ -31,13 +32,17 @@ export const genericAsTreeText = ({ nodes }, languages = []) => {
31
32
  ? asText(nodesById[childId])
32
33
  : `<child with id=${childId} not present in this chunk>`))
33
34
  ];
35
+ const annotationAsText = (annotationId) => annotationId in nodesById
36
+ ? prependWith(asText(nodesById[annotationId]), "@ ")
37
+ : `<annotation with id=${annotationId} not present in this chunk>`;
34
38
  const curry1 = (func, t1) => (t2) => func(t1, t2);
35
- const asText = ({ id, classifier: classifierMetaPointer, properties, containments, references }) => [
39
+ const asText = ({ id, classifier: classifierMetaPointer, properties, containments, references, annotations }) => [
36
40
  `${symbolTable.entityMatching(classifierMetaPointer)?.name ?? `[${classifierMetaPointer.key}]`} (id: ${id}) {`,
37
41
  indent([
38
42
  properties.map(curry1(propertyAsText, classifierMetaPointer)),
39
43
  references.map(curry1(referenceAsText, classifierMetaPointer)),
40
- containments.map(curry1(containmentAsText, classifierMetaPointer))
44
+ containments.map(curry1(containmentAsText, classifierMetaPointer)),
45
+ annotations.map(annotationAsText)
41
46
  ]),
42
47
  `}`
43
48
  ];
@@ -45,4 +50,4 @@ export const genericAsTreeText = ({ nodes }, languages = []) => {
45
50
  .filter((node) => node.parent === null) // root nodes
46
51
  .map(asText));
47
52
  };
48
- //# sourceMappingURL=textual-syntax.js.map
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-beta.3",
3
+ "version": "0.6.1",
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-beta.3",
18
+ "@lionweb/core": "0.6.1",
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
- "clean": "rm -rf dist/ && rm -rf node_modules/"
25
+ "lint": "eslint src",
26
+ "release": "npm publish"
29
27
  }
30
28
  }
package/build.sh DELETED
@@ -1,6 +0,0 @@
1
- #!/usr/bin/env sh
2
-
3
- rm -rf dist/ node_modules/ lionweb-utilities-*.tgz
4
- npm i
5
- npm run build
6
-
@@ -1,7 +0,0 @@
1
- import { Language } from "@lionweb/core";
2
- import { EcoreXml } from "./types.js";
3
- /**
4
- * Converts a parsed Ecore XML metamodel (file) to a {@link Language LionCore instance}.
5
- */
6
- export declare const asLionCoreLanguage: (ecoreXml: EcoreXml, version: string) => Language;
7
- //# sourceMappingURL=importer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"importer.d.ts","sourceRoot":"","sources":["../../../src/m3/ecore/importer.ts"],"names":[],"mappings":"AAAA,OAAO,EAWH,QAAQ,EAOX,MAAM,eAAe,CAAA;AAStB,OAAO,EAAsB,QAAQ,EAA4B,MAAM,YAAY,CAAA;AAuBnF;;GAEG;AACH,eAAO,MAAM,kBAAkB,aAAc,QAAQ,WAAW,MAAM,KAAG,QA4HxE,CAAA"}
@@ -1,102 +0,0 @@
1
- import { asArray, builtinPrimitives, chain, concatenator, duplicatesAmong, keyOf, LanguageFactory, lastOf, namedsOf, qualifiedNameOf } from "@lionweb/core";
2
- import { chain as chainHashers, checkDefinedData, checkUniqueData, checkUniqueId, checkValidId, hasher } from "../../hashing.js";
3
- const localRefPrefix = "#//";
4
- /**
5
- * "Dereferences" a type descriptor string by removing the optional <pre>"#//"</pre> prefix.
6
- */
7
- const deref = (typeDescriptor) => typeDescriptor.startsWith(localRefPrefix)
8
- ? typeDescriptor.substring(localRefPrefix.length)
9
- : typeDescriptor;
10
- const { booleanDatatype, integerDatatype, stringDatatype } = builtinPrimitives;
11
- const typeDesc2primitiveType = {
12
- "ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString": stringDatatype,
13
- "ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String": stringDatatype,
14
- "ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Boolean": booleanDatatype,
15
- "ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Int": integerDatatype
16
- };
17
- /**
18
- * Converts a parsed Ecore XML metamodel (file) to a {@link Language LionCore instance}.
19
- */
20
- export const asLionCoreLanguage = (ecoreXml, version) => {
21
- const idGen = chainHashers(hasher(), checkDefinedData, checkUniqueData, checkValidId, checkUniqueId);
22
- const ePackage = ecoreXml["ecore:EPackage"];
23
- // TODO (#10) an Ecore XML can contain multiple EPackage-s
24
- const factory = new LanguageFactory(ePackage["$"]["name"], version, chain(concatenator("-"), idGen), lastOf);
25
- // phase 1: convert EClassifiers but without their EStructuralFeatures (in the case of EClasses)
26
- const convertEClassifier = (eClassifier) => {
27
- const xsiType = eClassifier["$"]["xsi:type"];
28
- if (xsiType === "ecore:EClass") {
29
- return factory.concept(eClassifier["$"]["name"], false);
30
- }
31
- if (xsiType === "ecore:EEnum") {
32
- return factory.enumeration(eClassifier["$"]["name"]);
33
- }
34
- throw new Error(`don't know how to convert an EClassifier with descriptor "${xsiType}"`);
35
- };
36
- // TODO (#10) Interface?
37
- const convertedEClassifiers = ePackage["eClassifiers"]
38
- .map((eClassifier) => [eClassifier, convertEClassifier(eClassifier)]);
39
- const eClassifierConversionFor = (eClassifierName) => convertedEClassifiers
40
- .find(([source, _]) => source["$"]["name"] === eClassifierName)[1];
41
- // phase 2: also convert features of EClasses
42
- const convertEStructuralFeature = (container, feature) => {
43
- const metaType = feature["$"]["xsi:type"];
44
- const name = feature["$"]["name"];
45
- switch (metaType) {
46
- case "ecore:EAttribute": {
47
- const typeDesc = feature["$"]["eType"];
48
- const property = factory.property(container, name)
49
- .ofType(typeDesc in typeDesc2primitiveType
50
- ? typeDesc2primitiveType[typeDesc]
51
- : eClassifierConversionFor(deref(typeDesc)));
52
- if (feature["$"]["lowerBound"] === "0") {
53
- property.isOptional();
54
- }
55
- return property;
56
- }
57
- case "ecore:EReference": {
58
- const link = (feature["$"]["containment"]
59
- ? factory.containment(container, name)
60
- : factory.reference(container, name))
61
- .ofType(eClassifierConversionFor(deref(feature["$"]["eType"])));
62
- if (feature["$"]["lowerBound"] === "0") {
63
- link.isOptional();
64
- }
65
- if (feature["$"]["upperBound"] === "-1") {
66
- link.isMultiple();
67
- }
68
- return link;
69
- }
70
- default:
71
- throw new Error(`feature of meta type ${metaType} not handled`);
72
- }
73
- };
74
- convertedEClassifiers.forEach(([source, target]) => {
75
- const xsiType = source["$"]["xsi:type"];
76
- if (xsiType === "ecore:EClass") {
77
- const classifier = target;
78
- classifier
79
- .havingFeatures(...asArray(source.eStructuralFeatures)
80
- .map((feature) => convertEStructuralFeature(classifier, feature)));
81
- if (source["$"]["eSuperTypes"] !== undefined) {
82
- target.extends = eClassifierConversionFor(deref(source["$"]["eSuperTypes"]));
83
- }
84
- }
85
- if (xsiType === "ecore:EEnum") {
86
- const classifier = target;
87
- classifier
88
- .havingLiterals(...asArray(source.eLiterals)
89
- .map((literal) => factory.enumerationLiteral(classifier, literal["$"]["name"])));
90
- }
91
- });
92
- // phase 3: put all converted things into the metamodel
93
- factory.language
94
- .havingEntities(...convertedEClassifiers.map(([_, mmElement]) => mmElement));
95
- // phase 4: dedup keys (crudely, using the qualified name) where necessary
96
- Object.entries(duplicatesAmong(namedsOf(factory.language), keyOf))
97
- .forEach(([_, mmElements]) => {
98
- mmElements.forEach((mmElement) => mmElement.havingKey(qualifiedNameOf(mmElement, "_")));
99
- });
100
- return factory.language;
101
- };
102
- //# sourceMappingURL=importer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"importer.js","sourceRoot":"","sources":["../../../src/m3/ecore/importer.ts"],"names":[],"mappings":"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"}
@@ -1,60 +0,0 @@
1
- import { AnyNumberOf } from "@lionweb/core";
2
- /**
3
- * Type definitions that correspond to an Ecore XML metamodel (file),
4
- * parsed using the <tt>xml2js</tt> XML parser library
5
- * (or with a parser exactly compatible with that.)
6
- *
7
- * For completeness' sake, the required code could look as follows:
8
- * ```ts
9
- * import {parseString} from "xml2js"
10
- *
11
- * parseString(data, (err, ecoreXml) => {
12
- * const language = asLionCoreLanguage(ecoreXml as EcoreXml, "1")
13
- * })
14
- * ```
15
- * (It's assumed that {@link EcoreXml} is already imported.)
16
- */
17
- export type ENamed = {
18
- "$": {
19
- "name": string;
20
- };
21
- };
22
- export type EcoreXml = {
23
- "ecore:EPackage": EcorePackage;
24
- };
25
- export type EcorePackage = ENamed & {
26
- "eClassifiers": EClassifier[];
27
- };
28
- export type EClassifier = EClass | EEnum;
29
- export type EClass = ENamed & {
30
- "$": {
31
- "xsi:type": "ecore:EClass";
32
- "eSuperTypes"?: string;
33
- };
34
- "eStructuralFeatures"?: AnyNumberOf<EStructuralFeature>;
35
- };
36
- export type EStructuralFeature = EAttribute | EReference;
37
- export type EAttribute = ENamed & {
38
- "$": {
39
- "xsi:type": "ecore:EAttribute";
40
- "lowerBound": string;
41
- "eType": string;
42
- };
43
- };
44
- export type EReference = ENamed & {
45
- "$": {
46
- "xsi:type": "ecore:EReference";
47
- "lowerBound"?: string;
48
- "upperBound": string;
49
- "eType": string;
50
- "containment"?: boolean;
51
- };
52
- };
53
- export type EEnum = ENamed & {
54
- "$": {
55
- "xsi:type": "ecore:EEnum";
56
- };
57
- "eLiterals"?: AnyNumberOf<EEnumLiteral>;
58
- };
59
- export type EEnumLiteral = ENamed;
60
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/m3/ecore/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAA;AAGzC;;;;;;;;;;;;;;GAcG;AAEH,MAAM,MAAM,MAAM,GAAG;IACjB,GAAG,EAAE;QACD,MAAM,EAAE,MAAM,CAAA;KACjB,CAAA;CACJ,CAAA;AAED,MAAM,MAAM,QAAQ,GAAG;IACnB,gBAAgB,EAAE,YAAY,CAAA;CACjC,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG;IAChC,cAAc,EAAE,WAAW,EAAE,CAAA;CAChC,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,KAAK,CAAA;AAExC,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG;IAC1B,GAAG,EAAE;QACD,UAAU,EAAE,cAAc,CAAA;QAC1B,aAAa,CAAC,EAAE,MAAM,CAAA;KACzB,CAAA;IACD,qBAAqB,CAAC,EAAE,WAAW,CAAC,kBAAkB,CAAC,CAAA;CAC1D,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,UAAU,CAAA;AAExD,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG;IAC9B,GAAG,EAAE;QACD,UAAU,EAAE,kBAAkB,CAAA;QAC9B,YAAY,EAAE,MAAM,CAAA;QACpB,OAAO,EAAE,MAAM,CAAA;KAClB,CAAA;CACJ,CAAA;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG;IAC9B,GAAG,EAAE;QACD,UAAU,EAAE,kBAAkB,CAAA;QAC9B,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,YAAY,EAAE,MAAM,CAAA;QACpB,OAAO,EAAE,MAAM,CAAA;QACf,aAAa,CAAC,EAAE,OAAO,CAAA;KAC1B,CAAA;CACJ,CAAA;AAED,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG;IACzB,GAAG,EAAE;QACD,UAAU,EAAE,aAAa,CAAA;KAC5B,CAAA;IACD,WAAW,CAAC,EAAE,WAAW,CAAC,YAAY,CAAC,CAAA;CAC1C,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,CAAA"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/m3/ecore/types.ts"],"names":[],"mappings":""}
@@ -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,EAGH,QAAQ,EAIR,kBAAkB,EAMrB,MAAM,eAAe,CAAA;AAOtB,eAAO,MAAM,iBAAiB,cAAa,kBAAkB,cAAa,QAAQ,EAAE,WAoEnF,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"textual-syntax.js","sourceRoot":"","sources":["../../src/serialization/textual-syntax.ts"],"names":[],"mappings":"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"}