@lionweb/utilities 0.5.0 → 0.6.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/README.md CHANGED
@@ -14,6 +14,14 @@ It contains utilities on top of the `core` package, such as:
14
14
 
15
15
  ## Changelog
16
16
 
17
+ ### 0.6.0
18
+
19
+ * _Breaking name changes_: rename `asText` → `languageAsText`, `shortenedSerialization` → `shortenedSerializationChunk`, `sortedSerialization` → `sortedSerializationChunk`.
20
+ * 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
+ * Expose a generic textual syntax for serialization chunks.
23
+
24
+
17
25
  ### 0.5.0
18
26
 
19
27
  This is the first version corresponding to a release of LionWeb (version: 2023.1) as a whole.
@@ -1,5 +1,4 @@
1
1
  import { Language, M3Node } from "@lionweb/core";
2
- declare const asText: (node: M3Node) => string;
3
- declare const languagesAsText: (languages: Language[]) => string;
4
- export { asText, languagesAsText };
2
+ export declare const languageAsText: (node: M3Node) => string;
3
+ export declare const languagesAsText: (languages: Language[]) => string;
5
4
  //# sourceMappingURL=textual-syntax.d.ts.map
@@ -1 +1 @@
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;AAetB,QAAA,MAAM,MAAM,SAAU,MAAM,KAAG,MA0D9B,CAAA;AAGD,QAAA,MAAM,eAAe,cAAe,QAAQ,EAAE,KAAG,MACC,CAAA;AAGlD,OAAO,EACH,MAAM,EACN,eAAe,EAClB,CAAA"}
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"}
@@ -51,6 +51,6 @@ ${descent(node.entities, "\n\n")}
51
51
  }
52
52
  return `node (key=${node.key}, ID=${node.id}) of class ${node.constructor.name} not handled`;
53
53
  };
54
- const languagesAsText = (languages) => nameSorted(languages).map(asText).join("\n\n");
55
- export { asText, languagesAsText };
54
+ export const languageAsText = asText;
55
+ export const languagesAsText = (languages) => nameSorted(languages).map(asText).join("\n\n");
56
56
  //# sourceMappingURL=textual-syntax.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"textual-syntax.js","sourceRoot":"","sources":["../../src/m3/textual-syntax.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"textual-syntax.js","sourceRoot":"","sources":["../../src/m3/textual-syntax.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  import { SerializationChunk } from "@lionweb/core";
2
2
  export declare const readChunk: (path: string) => Promise<SerializationChunk>;
3
+ export declare const isSerializedLanguages: (json: unknown) => boolean;
3
4
  //# sourceMappingURL=chunk.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chunk.d.ts","sourceRoot":"","sources":["../../src/serialization/chunk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAC,MAAM,eAAe,CAAA;AAIhD,eAAO,MAAM,SAAS,SAAgB,MAAM,gCAO3C,CAAA"}
1
+ {"version":3,"file":"chunk.d.ts","sourceRoot":"","sources":["../../src/serialization/chunk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiD,kBAAkB,EAAC,MAAM,eAAe,CAAA;AAIhG,eAAO,MAAM,SAAS,SAAgB,MAAM,gCAO3C,CAAA;AAMD,eAAO,MAAM,qBAAqB,SAAU,OAAO,KAAG,OAK4C,CAAA"}
@@ -1,3 +1,4 @@
1
+ import { currentSerializationFormatVersion, lioncoreKey } from "@lionweb/core";
1
2
  import { readFileAsJson } from "../json.js";
2
3
  export const readChunk = async (path) => {
3
4
  try {
@@ -8,4 +9,10 @@ export const readChunk = async (path) => {
8
9
  throw e;
9
10
  }
10
11
  };
12
+ const isRecord = (json) => typeof json === "object" && !Array.isArray(json);
13
+ export const isSerializedLanguages = (json) => isRecord(json)
14
+ && json["serializationFormatVersion"] === currentSerializationFormatVersion
15
+ && "languages" in json
16
+ && Array.isArray(json["languages"])
17
+ && json["languages"].some((language) => isRecord(language) && language["key"] === lioncoreKey);
11
18
  //# sourceMappingURL=chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chunk.js","sourceRoot":"","sources":["../../src/serialization/chunk.ts"],"names":[],"mappings":"AACA,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,IAAI,IAAI,4BAA4B,CAAC,CAAA;QACnD,MAAM,CAAC,CAAA;IACX,CAAC;AACL,CAAC,CAAA"}
1
+ {"version":3,"file":"chunk.js","sourceRoot":"","sources":["../../src/serialization/chunk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iCAAiC,EAAE,WAAW,EAAqB,MAAM,eAAe,CAAA;AAChG,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,IAAI,IAAI,4BAA4B,CAAC,CAAA;QACnD,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,qBAAqB,GAAG,CAAC,IAAa,EAAW,EAAE,CAC5D,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"}
@@ -1,4 +1,6 @@
1
- export { readChunk } from "./chunk.js";
2
- export { shortenedSerialization } from "./shortening.js";
3
- export { sortedSerialization } from "./sorting.js";
1
+ export { isSerializedLanguages, readChunk } from "./chunk.js";
2
+ export { orderedSerializationChunk } from "./ordering.js";
3
+ export { shortenedSerializationChunk } from "./shortening.js";
4
+ export { sortedSerializationChunk } from "./sorting.js";
5
+ export { genericAsTreeText } from "./textual-syntax.js";
4
6
  //# 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,SAAS,EAAC,MAAM,YAAY,CAAA;AACpC,OAAO,EAAC,sBAAsB,EAAC,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAAC,mBAAmB,EAAC,MAAM,cAAc,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/serialization/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,qBAAqB,EAAE,SAAS,EAAC,MAAM,YAAY,CAAA;AAC3D,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,4 +1,6 @@
1
- export { readChunk } from "./chunk.js";
2
- export { shortenedSerialization } from "./shortening.js";
3
- export { sortedSerialization } from "./sorting.js";
1
+ export { isSerializedLanguages, readChunk } from "./chunk.js";
2
+ export { orderedSerializationChunk } from "./ordering.js";
3
+ export { shortenedSerializationChunk } from "./shortening.js";
4
+ export { sortedSerializationChunk } from "./sorting.js";
5
+ export { genericAsTreeText } from "./textual-syntax.js";
4
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/serialization/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,YAAY,CAAA;AACpC,OAAO,EAAC,sBAAsB,EAAC,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAAC,mBAAmB,EAAC,MAAM,cAAc,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/serialization/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,qBAAqB,EAAE,SAAS,EAAC,MAAM,YAAY,CAAA;AAC3D,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"}
@@ -0,0 +1,8 @@
1
+ import { MetaPointer, SerializationChunk, SerializedLanguageReference, SerializedProperty, SerializedReferenceTarget } from "@lionweb/core";
2
+ declare const orderedMetaPointer: ({ language, version, key }: MetaPointer) => MetaPointer;
3
+ declare const orderedSerializedLanguageReference: ({ key, version }: SerializedLanguageReference) => SerializedLanguageReference;
4
+ declare const orderedSerializedReferenceTarget: ({ reference, resolveInfo }: SerializedReferenceTarget) => SerializedReferenceTarget;
5
+ declare const orderedSerializedProperty: ({ property, value }: SerializedProperty) => SerializedProperty;
6
+ declare const orderedSerializationChunk: ({ serializationFormatVersion, languages, nodes }: SerializationChunk) => SerializationChunk;
7
+ export { orderedMetaPointer, orderedSerializationChunk, orderedSerializedLanguageReference, orderedSerializedProperty, orderedSerializedReferenceTarget };
8
+ //# sourceMappingURL=ordering.d.ts.map
@@ -0,0 +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,2BAKpF,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"}
@@ -0,0 +1,42 @@
1
+ const orderedMetaPointer = ({ language, version, key }) => ({
2
+ language,
3
+ version,
4
+ key
5
+ });
6
+ const orderedSerializedLanguageReference = ({ key, version }) => ({
7
+ version,
8
+ key
9
+ // FIXME swap around to align with specification after lionweb-java is aligned as well
10
+ });
11
+ const orderedSerializedReferenceTarget = ({ reference, resolveInfo }) => ({
12
+ resolveInfo,
13
+ reference
14
+ });
15
+ const orderedSerializedProperty = ({ property, value }) => ({
16
+ property: orderedMetaPointer(property),
17
+ value
18
+ });
19
+ const orderedSerializedContainment = ({ containment, children }) => ({
20
+ containment: orderedMetaPointer(containment),
21
+ children
22
+ });
23
+ const orderedSerializedReference = ({ reference, targets }) => ({
24
+ reference: orderedMetaPointer(reference),
25
+ targets: targets.map(orderedSerializedReferenceTarget)
26
+ });
27
+ const orderedSerializedNode = ({ id, classifier, properties, containments, references, annotations, parent }) => ({
28
+ id,
29
+ classifier: orderedMetaPointer(classifier),
30
+ properties: properties.map(orderedSerializedProperty),
31
+ containments: containments.map(orderedSerializedContainment),
32
+ references: references.map(orderedSerializedReference),
33
+ annotations,
34
+ parent
35
+ });
36
+ const orderedSerializationChunk = ({ serializationFormatVersion, languages, nodes }) => ({
37
+ serializationFormatVersion,
38
+ languages: languages.map(orderedSerializedLanguageReference),
39
+ nodes: nodes.map(orderedSerializedNode)
40
+ });
41
+ export { orderedMetaPointer, orderedSerializationChunk, orderedSerializedLanguageReference, orderedSerializedProperty, orderedSerializedReferenceTarget };
42
+ //# sourceMappingURL=ordering.js.map
@@ -0,0 +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,OAAO;IACP,GAAG;IACH,uFAAuF;CAC1F,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"}
@@ -3,5 +3,5 @@ import { SerializationChunk } from "@lionweb/core";
3
3
  * @return A shortened version of a {@link SerializedModel JSON serialization}, which should make it easier to inspect.
4
4
  * Note that the shortened version doesn't contain all information, and could (in theory) be malformed.
5
5
  */
6
- export declare const shortenedSerialization: ({ nodes }: SerializationChunk) => any[];
6
+ export declare const shortenedSerializationChunk: ({ nodes }: SerializationChunk) => any[];
7
7
  //# sourceMappingURL=shortening.d.ts.map
@@ -1 +1 @@
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,sBAAsB,cAAa,kBAAkB,UAY3D,CAAA"}
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"}
@@ -2,7 +2,7 @@
2
2
  * @return A shortened version of a {@link SerializedModel JSON serialization}, which should make it easier to inspect.
3
3
  * Note that the shortened version doesn't contain all information, and could (in theory) be malformed.
4
4
  */
5
- export const shortenedSerialization = ({ nodes }) => nodes.map((node) => ({
5
+ export const shortenedSerializationChunk = ({ nodes }) => nodes.map((node) => ({
6
6
  id: node.id,
7
7
  classifier: node.classifier.key,
8
8
  ...Object.fromEntries([
@@ -1 +1 @@
1
- {"version":3,"file":"shortening.js","sourceRoot":"","sources":["../../src/serialization/shortening.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,EAAC,KAAK,EAAqB,EAAE,EAAE,CAClE,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
+ {"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"}
@@ -3,5 +3,5 @@ import { SerializationChunk } from "@lionweb/core";
3
3
  * @return A sorted version of a {@link SerializedModel JSON serialization}, which should make it easier to inspect.
4
4
  * Note that the sorted version destroy the order of links, which might effectively alter semantics.
5
5
  */
6
- export declare const sortedSerialization: ({ serializationFormatVersion, languages, nodes }: SerializationChunk) => SerializationChunk;
6
+ export declare const sortedSerializationChunk: ({ serializationFormatVersion, languages, nodes }: SerializationChunk) => SerializationChunk;
7
7
  //# sourceMappingURL=sorting.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sorting.d.ts","sourceRoot":"","sources":["../../src/serialization/sorting.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,kBAAkB,EAIrB,MAAM,eAAe,CAAA;AA0BtB;;;GAGG;AACH,eAAO,MAAM,mBAAmB,qDAAoD,kBAAkB,KAAG,kBAsBnG,CAAA"}
1
+ {"version":3,"file":"sorting.d.ts","sourceRoot":"","sources":["../../src/serialization/sorting.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAkB,MAAM,eAAe,CAAA;AAajE;;;GAGG;AACH,eAAO,MAAM,wBAAwB,qDAAoD,kBAAkB,KAAG,kBAsBxG,CAAA"}
@@ -1,40 +1,28 @@
1
1
  import { sortByStringKey } from "@lionweb/core";
2
- const sortedMetaPointer = ({ language, version, key }) => ({
3
- language,
4
- version,
5
- key
6
- });
7
- const sortedSerializedLanguageReference = ({ key, version }) => ({
8
- key,
9
- version
10
- });
11
- const sortedSerializedReferenceTarget = ({ reference, resolveInfo }) => ({
12
- reference,
13
- resolveInfo
14
- });
2
+ import { orderedMetaPointer, orderedSerializedLanguageReference, orderedSerializedProperty, orderedSerializedReferenceTarget } from "./ordering.js";
15
3
  const pick = (key) => (t) => t[key];
16
4
  // TODO (find a nice way to compose such things)
17
5
  /**
18
6
  * @return A sorted version of a {@link SerializedModel JSON serialization}, which should make it easier to inspect.
19
7
  * Note that the sorted version destroy the order of links, which might effectively alter semantics.
20
8
  */
21
- export const sortedSerialization = ({ serializationFormatVersion, languages, nodes }) => ({
9
+ export const sortedSerializationChunk = ({ serializationFormatVersion, languages, nodes }) => ({
22
10
  serializationFormatVersion,
23
- languages: sortByStringKey(languages, pick("key")).map(sortedSerializedLanguageReference),
11
+ languages: sortByStringKey(languages, pick("key")).map(orderedSerializedLanguageReference),
24
12
  nodes: sortByStringKey(nodes, pick("id"))
25
13
  .map((node) => ({
26
14
  id: node.id,
27
- classifier: sortedMetaPointer(node.classifier),
28
- properties: sortByStringKey(node.properties, ({ property }) => property.key),
15
+ classifier: orderedMetaPointer(node.classifier),
16
+ properties: sortByStringKey(node.properties, ({ property }) => property.key).map(orderedSerializedProperty),
29
17
  containments: sortByStringKey(node.containments, ({ containment }) => containment.key)
30
18
  .map(({ containment, children }) => ({
31
- containment,
19
+ containment: orderedMetaPointer(containment),
32
20
  children: children.sort()
33
21
  })),
34
22
  references: sortByStringKey(node.references, ({ reference }) => reference.key)
35
23
  .map(({ reference, targets }) => ({
36
- reference,
37
- targets: sortByStringKey(targets, pick("reference")).map(sortedSerializedReferenceTarget)
24
+ reference: orderedMetaPointer(reference),
25
+ targets: sortByStringKey(targets, pick("reference")).map(orderedSerializedReferenceTarget)
38
26
  })),
39
27
  annotations: node.annotations.sort(),
40
28
  parent: node.parent
@@ -1 +1 @@
1
- {"version":3,"file":"sorting.js","sourceRoot":"","sources":["../../src/serialization/sorting.ts"],"names":[],"mappings":"AAAA,OAAO,EAKH,eAAe,EAClB,MAAM,eAAe,CAAA;AAGtB,MAAM,iBAAiB,GAAG,CAAC,EAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAc,EAAe,EAAE,CAC7E,CAAC;IACG,QAAQ;IACR,OAAO;IACP,GAAG;CACN,CAAC,CAAA;AAEN,MAAM,iCAAiC,GAAG,CAAC,EAAC,GAAG,EAAE,OAAO,EAA8B,EAA+B,EAAE,CACnH,CAAC;IACG,GAAG;IACH,OAAO;CACV,CAAC,CAAA;AAEN,MAAM,+BAA+B,GAAG,CAAC,EAAC,SAAS,EAAE,WAAW,EAA4B,EAA6B,EAAE,CACvH,CAAC;IACG,SAAS;IACT,WAAW;CACd,CAAC,CAAA;AAEN,MAAM,IAAI,GAAG,CAAuB,GAAM,EAAkB,EAAE,CAC1D,CAAC,CAAI,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;AACpB,iDAAiD;AAEjD;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAAC,0BAA0B,EAAE,SAAS,EAAE,KAAK,EAAqB,EAAsB,EAAE,CAC1H,CAAC;IACG,0BAA0B;IAC1B,SAAS,EAAE,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,iCAAiC,CAAC;IACzF,KAAK,EAAE,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;SACpC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACZ,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,UAAU,EAAE,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC;QAC9C,UAAU,EAAE,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAC,QAAQ,EAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC;QAC1E,YAAY,EAAE,eAAe,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC,WAAW,EAAC,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC;aAC3E,GAAG,CAAC,CAAC,EAAC,WAAW,EAAE,QAAQ,EAAC,EAAE,EAAE,CAAC,CAAC;YAC/B,WAAW;YACX,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE;SAC5B,CAAC,CAAC;QACX,UAAU,EAAE,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAC,SAAS,EAAC,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC;aACnE,GAAG,CAAC,CAAC,EAAC,SAAS,EAAE,OAAO,EAAC,EAAE,EAAE,CAAC,CAAC;YAC5B,SAAS;YACT,OAAO,EAAE,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,+BAA+B,CAAC;SAC5F,CAAC,CAAC;QACX,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;QACpC,MAAM,EAAE,IAAI,CAAC,MAAM;KACtB,CAAC,CAAC;CACV,CAAC,CAAA"}
1
+ {"version":3,"file":"sorting.js","sourceRoot":"","sources":["../../src/serialization/sorting.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,eAAe,EAAC,MAAM,eAAe,CAAA;AACjE,OAAO,EACH,kBAAkB,EAClB,kCAAkC,EAClC,yBAAyB,EACzB,gCAAgC,EACnC,MAAM,eAAe,CAAA;AAGtB,MAAM,IAAI,GAAG,CAAuB,GAAM,EAAkB,EAAE,CAC1D,CAAC,CAAI,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;AACpB,iDAAiD;AAEjD;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,EAAC,0BAA0B,EAAE,SAAS,EAAE,KAAK,EAAqB,EAAsB,EAAE,CAC/H,CAAC;IACG,0BAA0B;IAC1B,SAAS,EAAE,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,kCAAkC,CAAC;IAC1F,KAAK,EAAE,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;SACpC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACZ,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,UAAU,EAAE,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;QAC/C,UAAU,EAAE,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAC,QAAQ,EAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,yBAAyB,CAAC;QACzG,YAAY,EAAE,eAAe,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC,WAAW,EAAC,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC;aAC3E,GAAG,CAAC,CAAC,EAAC,WAAW,EAAE,QAAQ,EAAC,EAAE,EAAE,CAAC,CAAC;YAC/B,WAAW,EAAE,kBAAkB,CAAC,WAAW,CAAC;YAC5C,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE;SAC5B,CAAC,CAAC;QACX,UAAU,EAAE,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAC,SAAS,EAAC,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC;aACnE,GAAG,CAAC,CAAC,EAAC,SAAS,EAAE,OAAO,EAAC,EAAE,EAAE,CAAC,CAAC;YAC5B,SAAS,EAAE,kBAAkB,CAAC,SAAS,CAAC;YACxC,OAAO,EAAE,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,gCAAgC,CAAC;SAC7F,CAAC,CAAC;QACX,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;QACpC,MAAM,EAAE,IAAI,CAAC,MAAM;KACtB,CAAC,CAAC;CACV,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { SerializationChunk } from "@lionweb/core";
2
+ export declare const genericAsTreeText: ({ nodes }: SerializationChunk) => string;
3
+ //# sourceMappingURL=textual-syntax.d.ts.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,30 @@
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
@@ -0,0 +1 @@
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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lionweb/utilities",
3
- "version": "0.5.0",
3
+ "version": "0.6.0-beta.2",
4
4
  "description": "LionWeb utilities",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -15,7 +15,7 @@
15
15
  "url": "https://github.com/LionWeb-io/lionweb-typescript/issues"
16
16
  },
17
17
  "dependencies": {
18
- "@lionweb/core": "0.5.0",
18
+ "@lionweb/core": "0.6.0-beta.2",
19
19
  "littoral-templates": "0.2.2",
20
20
  "nanoid": "4.0.2"
21
21
  },