@lionweb/utilities 0.6.13-beta.5 → 0.6.13-beta.7
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/dist/hashing.d.ts.map +1 -1
- package/dist/hashing.js +1 -1
- package/dist/hashing.js.map +1 -1
- package/dist/m3/diagrams/Mermaid-generator.d.ts.map +1 -1
- package/dist/m3/diagrams/Mermaid-generator.js +30 -10
- 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 +38 -12
- package/dist/m3/diagrams/PlantUML-generator.js.map +1 -1
- package/dist/m3/infer-languages.d.ts +3 -4
- package/dist/m3/infer-languages.d.ts.map +1 -1
- package/dist/m3/infer-languages.js +1 -2
- package/dist/m3/infer-languages.js.map +1 -1
- package/dist/m3/textualizer.d.ts.map +1 -1
- package/dist/m3/textualizer.js +20 -7
- package/dist/m3/textualizer.js.map +1 -1
- package/dist/m3/ts-generation/textgen.d.ts.map +1 -1
- package/dist/m3/ts-generation/textgen.js.map +1 -1
- package/dist/m3/ts-generation/ts-types-generator.d.ts.map +1 -1
- package/dist/m3/ts-generation/ts-types-generator.js +33 -26
- package/dist/m3/ts-generation/ts-types-generator.js.map +1 -1
- package/dist/m3/ts-generation/type-def.d.ts.map +1 -1
- package/dist/m3/ts-generation/type-def.js +5 -1
- package/dist/m3/ts-generation/type-def.js.map +1 -1
- package/dist/serialization/annotation-remover.d.ts +6 -6
- package/dist/serialization/annotation-remover.d.ts.map +1 -1
- package/dist/serialization/annotation-remover.js +3 -3
- package/dist/serialization/annotation-remover.js.map +1 -1
- package/dist/serialization/chunk.d.ts +5 -6
- package/dist/serialization/chunk.d.ts.map +1 -1
- package/dist/serialization/chunk.js +6 -6
- package/dist/serialization/chunk.js.map +1 -1
- package/dist/serialization/measurer.d.ts +3 -8
- package/dist/serialization/measurer.d.ts.map +1 -1
- package/dist/serialization/measurer.js +18 -24
- package/dist/serialization/measurer.js.map +1 -1
- package/dist/serialization/metric-types.d.ts +2 -3
- package/dist/serialization/metric-types.d.ts.map +1 -1
- package/dist/serialization/ordering.d.ts +6 -6
- package/dist/serialization/ordering.d.ts.map +1 -1
- package/dist/serialization/ordering.js.map +1 -1
- package/dist/serialization/sorting.d.ts +2 -2
- package/dist/serialization/sorting.d.ts.map +1 -1
- package/dist/serialization/sorting.js +5 -4
- package/dist/serialization/sorting.js.map +1 -1
- package/dist/serialization/textualizer.d.ts +2 -3
- package/dist/serialization/textualizer.d.ts.map +1 -1
- package/dist/serialization/textualizer.js +10 -11
- package/dist/serialization/textualizer.js.map +1 -1
- package/dist/utils/array.d.ts +9 -0
- package/dist/utils/array.d.ts.map +1 -0
- package/dist/utils/array.js +9 -0
- package/dist/utils/array.js.map +1 -0
- package/dist/utils/json.d.ts.map +1 -1
- package/dist/utils/json.js.map +1 -1
- package/dist/utils/nested-map.d.ts +46 -0
- package/dist/utils/nested-map.d.ts.map +1 -0
- package/dist/utils/nested-map.js +50 -0
- package/dist/utils/nested-map.js.map +1 -0
- package/dist/utils/object.d.ts +5 -0
- package/dist/utils/object.d.ts.map +1 -0
- package/dist/utils/object.js +5 -0
- package/dist/utils/object.js.map +1 -0
- package/package.json +2 -4
|
@@ -14,7 +14,11 @@ export const tsFromTypeDef = ({ modifier, name, mixinNames, bodyComment, fields
|
|
|
14
14
|
when(hasBody)([
|
|
15
15
|
indent([
|
|
16
16
|
when(!!bodyComment)(`// ${bodyComment}`),
|
|
17
|
-
when(fields.length > 0)([
|
|
17
|
+
when(fields.length > 0)([
|
|
18
|
+
`settings: {`,
|
|
19
|
+
indent(fields.map(tsFromField)),
|
|
20
|
+
`};`
|
|
21
|
+
])
|
|
18
22
|
]),
|
|
19
23
|
`};` // (`{` was already rendered as part of the header)
|
|
20
24
|
]),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type-def.js","sourceRoot":"","sources":["../../../src/m3/ts-generation/type-def.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"type-def.js","sourceRoot":"","sources":["../../../src/m3/ts-generation/type-def.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,IAAI,EAAC,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAA;AAGnC,MAAM,CAAN,IAAY,eAIX;AAJD,WAAY,eAAe;IACvB,qDAAI,CAAA;IACJ,6DAAQ,CAAA;IACR,+DAAS,CAAA;AACb,CAAC,EAJW,eAAe,KAAf,eAAe,QAI1B;AAiBD,MAAM,WAAW,GAAG,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAQ,EAAY,EAAE,CAC5D,GAAG,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,GAAG,CAAA;AAG7C,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAU,EAAY,EAAE;IAClG,MAAM,OAAO,GAAG,CAAC,CAAC,WAAW,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAA;IAClD,OAAO;QACH,GAAG,QAAQ,KAAK,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,eAAe,CAAC,QAAQ,CAAC,MAAM,eAAe,IAAI,MAAM,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE;QAC7J,IAAI,CAAC,OAAO,CAAC,CAAC;YACV,MAAM,CAAC;gBACH,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,MAAM,WAAW,EAAE,CAAC;gBACxC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBACpB,aAAa;oBACb,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;oBAC/B,IAAI;iBACP,CAAC;aACL,CAAC;YACF,IAAI,CAAI,mDAAmD;SAC9D,CAAC;QACF,EAAE;KACL,CAAA;AACL,CAAC,CAAA;AAGD,6HAA6H"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { SerializationChunk, SerializedNode } from "@lionweb/core";
|
|
2
2
|
/**
|
|
3
|
-
* Removes all annotations from the given {@link
|
|
3
|
+
* Removes all annotations from the given {@link SerializationChunk}, i.e.:
|
|
4
4
|
* * all annotations on nodes in the form of the {@code annotations} property,
|
|
5
5
|
* * all nodes that can be identified as instances of an {@link Annotation} by being referred to from {@code annotations}.
|
|
6
6
|
* It also removes all descendants of all annotations (insofar present in the given chunk).
|
|
7
|
-
* @param serializationChunk - The {@link
|
|
7
|
+
* @param serializationChunk - The {@link SerializationChunk}
|
|
8
8
|
*/
|
|
9
|
-
export declare const withoutAnnotations: (serializationChunk:
|
|
9
|
+
export declare const withoutAnnotations: (serializationChunk: SerializationChunk) => {
|
|
10
10
|
serializationFormatVersion: string;
|
|
11
|
-
languages: import("@lionweb/
|
|
12
|
-
nodes:
|
|
11
|
+
languages: import("@lionweb/core").SerializedLanguageReference[];
|
|
12
|
+
nodes: SerializedNode[];
|
|
13
13
|
};
|
|
14
14
|
//# sourceMappingURL=annotation-remover.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"annotation-remover.d.ts","sourceRoot":"","sources":["../../src/serialization/annotation-remover.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"annotation-remover.d.ts","sourceRoot":"","sources":["../../src/serialization/annotation-remover.ts"],"names":[],"mappings":"AAAA,OAAO,EAKH,kBAAkB,EAClB,cAAc,EACjB,MAAM,eAAe,CAAA;AAEtB;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,uBAAwB,kBAAkB;;;;CA8BxE,CAAA"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { byIdMap } from "@lionweb/
|
|
1
|
+
import { byIdMap } from "@lionweb/core";
|
|
2
2
|
/**
|
|
3
|
-
* Removes all annotations from the given {@link
|
|
3
|
+
* Removes all annotations from the given {@link SerializationChunk}, i.e.:
|
|
4
4
|
* * all annotations on nodes in the form of the {@code annotations} property,
|
|
5
5
|
* * all nodes that can be identified as instances of an {@link Annotation} by being referred to from {@code annotations}.
|
|
6
6
|
* It also removes all descendants of all annotations (insofar present in the given chunk).
|
|
7
|
-
* @param serializationChunk - The {@link
|
|
7
|
+
* @param serializationChunk - The {@link SerializationChunk}
|
|
8
8
|
*/
|
|
9
9
|
export const withoutAnnotations = (serializationChunk) => {
|
|
10
10
|
const { serializationFormatVersion, languages, nodes } = serializationChunk;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"annotation-remover.js","sourceRoot":"","sources":["../../src/serialization/annotation-remover.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"annotation-remover.js","sourceRoot":"","sources":["../../src/serialization/annotation-remover.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,OAAO,EAIV,MAAM,eAAe,CAAA;AAEtB;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,kBAAsC,EAAE,EAAE;IACzE,MAAM,EAAC,0BAA0B,EAAE,SAAS,EAAE,KAAK,EAAC,GAAG,kBAAkB,CAAA;IACzE,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;IAC9B,MAAM,QAAQ,GAAG,CAAC,EAAM,EAAE,EAAE,CACxB,CAAC,EAAE,IAAI,OAAO,CAAC;QACX,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC;QACzE,CAAC,CAAC,EAAE,CAAA;IACZ,MAAM,aAAa,GAAG,CAAC,EAAM,EAAQ,EAAE,CACnC,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAA;IAChD,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA,CAAC,iDAAiD;IACjH,MAAM,kBAAkB,GAAG;QACvB,GAAG,aAAa;QAChB,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;KAC/C,CAAA;IACD,MAAM,kBAAkB,GAAG,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAkB,EAAkB,EAAE,CAAC,CAAC;QAC9H,EAAE;QACF,UAAU;QACV,UAAU;QACV,YAAY;QACZ,UAAU;QACV,WAAW,EAAE,EAAE;QACf,MAAM;KACT,CAAC,CAAA;IACF,OAAO;QACH,0BAA0B;QAC1B,SAAS;QACT,KAAK,EAAE,KAAK;aACP,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,mCAAmC;aAC3F,GAAG,CAAC,kBAAkB,CAAC;KAC/B,CAAA;AACL,CAAC,CAAA"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import { Language } from "@lionweb/core";
|
|
2
|
-
import { LionWebJsonChunk } from "@lionweb/json";
|
|
1
|
+
import { Language, SerializationChunk } from "@lionweb/core";
|
|
3
2
|
/**
|
|
4
|
-
* Reads the file at the given path as a {@link
|
|
3
|
+
* Reads the file at the given path as a {@link SerializationChunk serialization chunk}.
|
|
5
4
|
* **Note** that it's only checked that the file exists and can be parsed as JSON,
|
|
6
5
|
* _not_ whether it satisfies the specified serialization chunk format!
|
|
7
6
|
*/
|
|
8
|
-
export declare const readSerializationChunk: (path: string) => Promise<
|
|
7
|
+
export declare const readSerializationChunk: (path: string) => Promise<SerializationChunk>;
|
|
9
8
|
/**
|
|
10
9
|
* @return whether the given JSON looks like the serialization of languages.
|
|
11
10
|
*/
|
|
@@ -17,9 +16,9 @@ export declare const looksLikeSerializedLanguages: (json: unknown) => boolean;
|
|
|
17
16
|
*/
|
|
18
17
|
export declare const tryReadAsLanguages: (path: string) => Promise<Language[]>;
|
|
19
18
|
/**
|
|
20
|
-
* @return the combination of the given {@link
|
|
19
|
+
* @return the combination of the given {@link SerializationChunk serialization chunks} into one.
|
|
21
20
|
*/
|
|
22
|
-
export declare const combinationOf: (serializationChunks:
|
|
21
|
+
export declare const combinationOf: (serializationChunks: SerializationChunk[]) => SerializationChunk;
|
|
23
22
|
/**
|
|
24
23
|
* Tries to read all the given paths as JSON serialization chunks that are serializations of languages,
|
|
25
24
|
* and attempts to combine those chunks into one chunk, and deserializes that.
|
|
@@ -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,EAErB,MAAM,eAAe,CAAA;AAKtB;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,SAAgB,MAAM,gCAOxD,CAAA;AAOD;;GAEG;AACH,eAAO,MAAM,4BAA4B,SAAU,OAAO,KAAG,OAKqC,CAAA;AAGlG;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,SAAgB,MAAM,KAAG,QAAQ,QAAQ,EAAE,CAazE,CAAA;AAiBD;;GAEG;AACH,eAAO,MAAM,aAAa,wBAAyB,kBAAkB,EAAE,KAAG,kBAKpE,CAAA;AAGN;;;GAGG;AACH,eAAO,MAAM,qBAAqB,UAAiB,MAAM,EAAE,KAAG,QAAQ,QAAQ,EAAE,CAkB/E,CAAA"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { deserializeLanguages, lioncoreKey } from "@lionweb/core";
|
|
2
|
-
import { currentSerializationFormatVersion } from "@lionweb/json";
|
|
1
|
+
import { currentSerializationFormatVersion, deserializeLanguages, lioncoreKey } from "@lionweb/core";
|
|
3
2
|
import { readFileAsJson } from "../utils/json.js";
|
|
3
|
+
import { picker } from "../utils/object.js";
|
|
4
4
|
/**
|
|
5
|
-
* Reads the file at the given path as a {@link
|
|
5
|
+
* Reads the file at the given path as a {@link SerializationChunk serialization chunk}.
|
|
6
6
|
* **Note** that it's only checked that the file exists and can be parsed as JSON,
|
|
7
7
|
* _not_ whether it satisfies the specified serialization chunk format!
|
|
8
8
|
*/
|
|
@@ -51,12 +51,12 @@ const flatMapDistinct = (tss, equalFunc) => tss.reduce((acc, ts) => [
|
|
|
51
51
|
], []);
|
|
52
52
|
const areEqual = (left, right) => left.key === right.key && left.version === right.version;
|
|
53
53
|
/**
|
|
54
|
-
* @return the combination of the given {@link
|
|
54
|
+
* @return the combination of the given {@link SerializationChunk serialization chunks} into one.
|
|
55
55
|
*/
|
|
56
56
|
export const combinationOf = (serializationChunks) => ({
|
|
57
57
|
serializationFormatVersion: currentSerializationFormatVersion,
|
|
58
|
-
languages: flatMapDistinct(serializationChunks.map((
|
|
59
|
-
nodes: serializationChunks.flatMap((
|
|
58
|
+
languages: flatMapDistinct(serializationChunks.map(picker("languages")), areEqual),
|
|
59
|
+
nodes: serializationChunks.flatMap(picker("nodes"))
|
|
60
60
|
});
|
|
61
61
|
/**
|
|
62
62
|
* Tries to read all the given paths as JSON serialization chunks that are serializations of languages,
|
|
@@ -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":"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"}
|
|
@@ -1,15 +1,10 @@
|
|
|
1
|
-
import { Language } from "@lionweb/core";
|
|
2
|
-
import { LionWebJsonChunk } from "@lionweb/json";
|
|
1
|
+
import { Language, SerializationChunk } from "@lionweb/core";
|
|
3
2
|
import { Metrics } from "./metric-types.js";
|
|
4
3
|
/**
|
|
5
|
-
*
|
|
6
|
-
*/
|
|
7
|
-
export declare const sumNumbers: (nums: number[]) => number;
|
|
8
|
-
/**
|
|
9
|
-
* Computes {@link Metrics metrics} on the given {@link LionWebJsonChunk serialization chunk}.
|
|
4
|
+
* Computes {@link Metrics metrics} on the given {@link SerializationChunk serialization chunk}.
|
|
10
5
|
* Passing it {@link Language languages} make this language-aware:
|
|
11
6
|
* * language and classifier names are looked up,
|
|
12
7
|
* * unused instantiable classifiers and languages without instantiations are computed as well.
|
|
13
8
|
*/
|
|
14
|
-
export declare const measure: (serializationChunk:
|
|
9
|
+
export declare const measure: (serializationChunk: SerializationChunk, languages: Language[]) => Metrics;
|
|
15
10
|
//# sourceMappingURL=measurer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"measurer.d.ts","sourceRoot":"","sources":["../../src/serialization/measurer.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"measurer.d.ts","sourceRoot":"","sources":["../../src/serialization/measurer.ts"],"names":[],"mappings":"AAAA,OAAO,EAKH,QAAQ,EAIR,kBAAkB,EAGrB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAsB,OAAO,EAAC,MAAM,mBAAmB,CAAA;AAU9D;;;;;GAKG;AACH,eAAO,MAAM,OAAO,uBAAwB,kBAAkB,aAAa,QAAQ,EAAE,KAAG,OAkGvF,CAAA"}
|
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
import { Annotation, Concept, instantiableClassifiersOf, Interface, MemoisingSymbolTable } from "@lionweb/core";
|
|
2
|
-
import {
|
|
2
|
+
import { sumNumbers } from "../utils/array.js";
|
|
3
|
+
import { nested3Grouper, nested3Mapper, nestedFlatMap2, nestedFlatMap3 } from "../utils/nested-map.js";
|
|
3
4
|
/**
|
|
4
|
-
*
|
|
5
|
-
*/
|
|
6
|
-
export const sumNumbers = (nums) => nums.reduce((acc, cur) => acc + cur, 0);
|
|
7
|
-
/**
|
|
8
|
-
* Computes {@link Metrics metrics} on the given {@link LionWebJsonChunk serialization chunk}.
|
|
5
|
+
* Computes {@link Metrics metrics} on the given {@link SerializationChunk serialization chunk}.
|
|
9
6
|
* Passing it {@link Language languages} make this language-aware:
|
|
10
7
|
* * language and classifier names are looked up,
|
|
11
8
|
* * unused instantiable classifiers and languages without instantiations are computed as well.
|
|
@@ -13,15 +10,12 @@ export const sumNumbers = (nums) => nums.reduce((acc, cur) => acc + cur, 0);
|
|
|
13
10
|
export const measure = (serializationChunk, languages) => {
|
|
14
11
|
const symbolTable = new MemoisingSymbolTable(languages);
|
|
15
12
|
// group nodes by language key, version, and classifier key, mapped to the classifier meta-pointer and #instantiations:
|
|
16
|
-
const languageKey2version2classifierKey2info = nested3Mapper(nodes => ({
|
|
17
|
-
classifier: nodes[0].classifier,
|
|
18
|
-
instantiations: nodes.length
|
|
19
|
-
}))(nested3Grouper(({ classifier }) => classifier.language, ({ classifier }) => classifier.version, ({ classifier }) => classifier.key)(serializationChunk.nodes));
|
|
13
|
+
const languageKey2version2classifierKey2info = nested3Mapper((nodes) => ({ classifier: nodes[0].classifier, instantiations: nodes.length }))(nested3Grouper(({ classifier }) => classifier.language, ({ classifier }) => classifier.version, ({ classifier }) => classifier.key)(serializationChunk.nodes));
|
|
20
14
|
const languagesWithInstantiations = nestedFlatMap2(languageKey2version2classifierKey2info, (classifierKey2info, languageKey, version) => ({
|
|
21
15
|
key: languageKey,
|
|
22
16
|
version,
|
|
23
17
|
name: symbolTable.languageMatching(languageKey, version)?.name,
|
|
24
|
-
instantiations: sumNumbers(Object.values(classifierKey2info).map(info => info.instantiations))
|
|
18
|
+
instantiations: sumNumbers(Object.values(classifierKey2info).map((info) => info.instantiations))
|
|
25
19
|
}));
|
|
26
20
|
const metaTypeOf = (entity) => {
|
|
27
21
|
if (entity instanceof Annotation) {
|
|
@@ -38,7 +32,7 @@ export const measure = (serializationChunk, languages) => {
|
|
|
38
32
|
// map grouped nodes to info including #instantiations:
|
|
39
33
|
const instantiatedClassifiers = nestedFlatMap3(languageKey2version2classifierKey2info, (info, languageKey, version, classifierKey) => {
|
|
40
34
|
const classifier = symbolTable.entityMatching(info.classifier);
|
|
41
|
-
return {
|
|
35
|
+
return ({
|
|
42
36
|
language: {
|
|
43
37
|
key: languageKey,
|
|
44
38
|
version,
|
|
@@ -48,23 +42,23 @@ export const measure = (serializationChunk, languages) => {
|
|
|
48
42
|
name: classifier?.name,
|
|
49
43
|
metaType: metaTypeOf(classifier),
|
|
50
44
|
instantiations: info.instantiations
|
|
51
|
-
};
|
|
45
|
+
});
|
|
52
46
|
});
|
|
53
|
-
const doesLanguageHaveInstantiations = (language) => language.key in languageKey2version2classifierKey2info
|
|
47
|
+
const doesLanguageHaveInstantiations = (language) => language.key in languageKey2version2classifierKey2info
|
|
48
|
+
&& language.version in languageKey2version2classifierKey2info[language.key];
|
|
54
49
|
const languagesWithoutInstantiations = serializationChunk.languages
|
|
55
|
-
.filter(language => !doesLanguageHaveInstantiations(language))
|
|
56
|
-
.map(language => ({
|
|
50
|
+
.filter((language) => !doesLanguageHaveInstantiations(language))
|
|
51
|
+
.map((language) => ({
|
|
57
52
|
...language,
|
|
58
53
|
name: symbolTable.languageMatching(language.key, language.version)?.name
|
|
59
54
|
}));
|
|
60
|
-
const isClassifierUsed = (metaPointer) => metaPointer.language in languageKey2version2classifierKey2info
|
|
61
|
-
metaPointer.version in languageKey2version2classifierKey2info[metaPointer.language]
|
|
62
|
-
metaPointer.key in languageKey2version2classifierKey2info[metaPointer.language][metaPointer.version];
|
|
63
|
-
const uninstantiatedInstantiableClassifiers = languages
|
|
64
|
-
.
|
|
65
|
-
.
|
|
66
|
-
.
|
|
67
|
-
.map(metaPointer => ({
|
|
55
|
+
const isClassifierUsed = (metaPointer) => metaPointer.language in languageKey2version2classifierKey2info
|
|
56
|
+
&& metaPointer.version in languageKey2version2classifierKey2info[metaPointer.language]
|
|
57
|
+
&& metaPointer.key in languageKey2version2classifierKey2info[metaPointer.language][metaPointer.version];
|
|
58
|
+
const uninstantiatedInstantiableClassifiers = languages.flatMap(instantiableClassifiersOf)
|
|
59
|
+
.map((classifier) => classifier.metaPointer())
|
|
60
|
+
.filter((metaPointer) => !isClassifierUsed(metaPointer))
|
|
61
|
+
.map((metaPointer) => ({
|
|
68
62
|
language: {
|
|
69
63
|
key: metaPointer.language,
|
|
70
64
|
version: metaPointer.version,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"measurer.js","sourceRoot":"","sources":["../../src/serialization/measurer.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"measurer.js","sourceRoot":"","sources":["../../src/serialization/measurer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import { LionWebKey } from "@lionweb/json";
|
|
2
1
|
type OptionallyNamed = {
|
|
3
2
|
name?: string;
|
|
4
3
|
};
|
|
5
4
|
type LanguagePointer = {
|
|
6
|
-
key:
|
|
5
|
+
key: string;
|
|
7
6
|
version: string;
|
|
8
7
|
} & OptionallyNamed;
|
|
9
8
|
type ClassifierMetric = {
|
|
10
9
|
language: LanguagePointer;
|
|
11
|
-
key:
|
|
10
|
+
key: string;
|
|
12
11
|
} & OptionallyNamed;
|
|
13
12
|
type ClassifierMetaTypes = "annotation" | "concept" | "interface";
|
|
14
13
|
type ClassifierInstantiationMetric = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metric-types.d.ts","sourceRoot":"","sources":["../../src/serialization/metric-types.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"metric-types.d.ts","sourceRoot":"","sources":["../../src/serialization/metric-types.ts"],"names":[],"mappings":"AAAA,KAAK,eAAe,GAAG;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,KAAK,eAAe,GAAG;IACnB,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;CAClB,GAAG,eAAe,CAAA;AAEJ,KAAK,gBAAgB,GAAG;IACnC,QAAQ,EAAE,eAAe,CAAA;IACzB,GAAG,EAAE,MAAM,CAAA;CACd,GAAG,eAAe,CAAA;AAEnB,KAAK,mBAAmB,GAAG,YAAY,GAAG,SAAS,GAAG,WAAW,CAAA;AAEjE,KAAK,6BAA6B,GAAG;IACjC,QAAQ,CAAC,EAAE,mBAAmB,CAAA;IAC9B,cAAc,EAAE,MAAM,CAAA;CACzB,GAAG,gBAAgB,CAAA;AAEpB,KAAK,cAAc,GAAG;IAClB,cAAc,EAAE,MAAM,CAAA;CACzB,GAAG,eAAe,CAAA;AAGnB,KAAK,OAAO,GAAG;IACX,2BAA2B,EAAE,cAAc,EAAE,CAAA;IAC7C,uBAAuB,EAAE,6BAA6B,EAAE,CAAA;IACxD,qCAAqC,EAAE,gBAAgB,EAAE,CAAA;IACzD,8BAA8B,EAAE,eAAe,EAAE,CAAA;CACpD,CAAA;AAGD,YAAY,EACR,6BAA6B,EAC7B,mBAAmB,EACnB,eAAe,EACf,OAAO,EACV,CAAA"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
declare const orderedMetaPointer: ({ language, version, key }:
|
|
3
|
-
declare const orderedSerializedLanguageReference: ({ key, version }:
|
|
4
|
-
declare const orderedSerializedReferenceTarget: ({ reference, resolveInfo }:
|
|
5
|
-
declare const orderedSerializedProperty: ({ property, value }:
|
|
6
|
-
declare const orderedSerializationChunk: ({ serializationFormatVersion, languages, nodes }:
|
|
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
7
|
export { orderedMetaPointer, orderedSerializationChunk, orderedSerializedLanguageReference, orderedSerializedProperty, orderedSerializedReferenceTarget };
|
|
8
8
|
//# sourceMappingURL=ordering.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ordering.d.ts","sourceRoot":"","sources":["../../src/serialization/ordering.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,
|
|
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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ordering.js","sourceRoot":"","sources":["../../src/serialization/ordering.ts"],"names":[],"mappings":"
|
|
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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { SerializationChunk } from "@lionweb/core";
|
|
2
2
|
/**
|
|
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 sortedSerializationChunk: ({ serializationFormatVersion, languages, nodes }:
|
|
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,
|
|
1
|
+
{"version":3,"file":"sorting.d.ts","sourceRoot":"","sources":["../../src/serialization/sorting.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAkB,MAAM,eAAe,CAAA;AAUjE;;;GAGG;AACH,eAAO,MAAM,wBAAwB,qDAAoD,kBAAkB,KAAG,kBAsBxG,CAAA"}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import { sortByStringKey } from "@lionweb/
|
|
1
|
+
import { sortByStringKey } from "@lionweb/core";
|
|
2
2
|
import { orderedMetaPointer, orderedSerializedLanguageReference, orderedSerializedProperty, orderedSerializedReferenceTarget } from "./ordering.js";
|
|
3
|
+
import { picker } from "../utils/object.js";
|
|
3
4
|
/**
|
|
4
5
|
* @return A sorted version of a {@link SerializedModel JSON serialization}, which should make it easier to inspect.
|
|
5
6
|
* Note that the sorted version destroy the order of links, which might effectively alter semantics.
|
|
6
7
|
*/
|
|
7
8
|
export const sortedSerializationChunk = ({ serializationFormatVersion, languages, nodes }) => ({
|
|
8
9
|
serializationFormatVersion,
|
|
9
|
-
languages: sortByStringKey(languages, (
|
|
10
|
-
nodes: sortByStringKey(nodes, (
|
|
10
|
+
languages: sortByStringKey(languages, picker("key")).map(orderedSerializedLanguageReference),
|
|
11
|
+
nodes: sortByStringKey(nodes, picker("id"))
|
|
11
12
|
.map((node) => ({
|
|
12
13
|
id: node.id,
|
|
13
14
|
classifier: orderedMetaPointer(node.classifier),
|
|
@@ -20,7 +21,7 @@ export const sortedSerializationChunk = ({ serializationFormatVersion, languages
|
|
|
20
21
|
references: sortByStringKey(node.references, ({ reference }) => reference.key)
|
|
21
22
|
.map(({ reference, targets }) => ({
|
|
22
23
|
reference: orderedMetaPointer(reference),
|
|
23
|
-
targets: sortByStringKey(targets, (
|
|
24
|
+
targets: sortByStringKey(targets, picker("reference")).map(orderedSerializedReferenceTarget)
|
|
24
25
|
})),
|
|
25
26
|
annotations: node.annotations.sort(),
|
|
26
27
|
parent: node.parent
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sorting.js","sourceRoot":"","sources":["../../src/serialization/sorting.ts"],"names":[],"mappings":"
|
|
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;AACtB,OAAO,EAAC,MAAM,EAAC,MAAM,oBAAoB,CAAA;AAGzC;;;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,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,kCAAkC,CAAC;IAC5F,KAAK,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;SACtC,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,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,gCAAgC,CAAC;SAC/F,CAAC,CAAC;QACX,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;QACpC,MAAM,EAAE,IAAI,CAAC,MAAM;KACtB,CAAC,CAAC;CACV,CAAC,CAAA"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { Language } from "@lionweb/core";
|
|
2
|
-
|
|
3
|
-
export declare const genericAsTreeText: ({ nodes }: LionWebJsonChunk, languages?: Language[]) => string;
|
|
1
|
+
import { Language, SerializationChunk } from "@lionweb/core";
|
|
2
|
+
export declare const genericAsTreeText: ({ nodes }: SerializationChunk, languages?: Language[]) => string;
|
|
4
3
|
//# sourceMappingURL=textualizer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"textualizer.d.ts","sourceRoot":"","sources":["../../src/serialization/textualizer.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"textualizer.d.ts","sourceRoot":"","sources":["../../src/serialization/textualizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,QAAQ,EAIR,kBAAkB,EAMrB,MAAM,eAAe,CAAA;AAStB,eAAO,MAAM,iBAAiB,cAAa,kBAAkB,cAAa,QAAQ,EAAE,WAoEnF,CAAA"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { Enumeration, MemoisingSymbolTable, Property } from "@lionweb/core";
|
|
2
|
-
import { byIdMap } from "@lionweb/ts-utils";
|
|
1
|
+
import { byIdMap, Enumeration, MemoisingSymbolTable, Property } from "@lionweb/core";
|
|
3
2
|
import { asString, indentWith } from "littoral-templates";
|
|
4
3
|
const indent = indentWith(" ")(1);
|
|
5
4
|
const prependWith = (template, prefix) => prefix + asString(template);
|
|
@@ -11,16 +10,14 @@ export const genericAsTreeText = ({ nodes }, languages = []) => {
|
|
|
11
10
|
const property = symbolTable.featureMatching(classifier, propertyMetaPointer);
|
|
12
11
|
const identification = nameOrKey(classifier, propertyMetaPointer);
|
|
13
12
|
const displayValue = property instanceof Property
|
|
14
|
-
? property.type instanceof Enumeration
|
|
15
|
-
? (property.type.literals.find(literal => literal.key === value)?.name ?? value)
|
|
13
|
+
? (property.type instanceof Enumeration
|
|
14
|
+
? (property.type.literals.find((literal) => literal.key === value)?.name ?? value)
|
|
16
15
|
: (() => {
|
|
17
16
|
switch (property?.type?.name) {
|
|
18
|
-
case "String":
|
|
19
|
-
|
|
20
|
-
default:
|
|
21
|
-
return value;
|
|
17
|
+
case "String": return `'${value}'`;
|
|
18
|
+
default: return value;
|
|
22
19
|
}
|
|
23
|
-
})()
|
|
20
|
+
})())
|
|
24
21
|
: value;
|
|
25
22
|
return `${identification} = ${displayValue}`;
|
|
26
23
|
};
|
|
@@ -28,7 +25,9 @@ export const genericAsTreeText = ({ nodes }, languages = []) => {
|
|
|
28
25
|
const referenceAsText = (classifier, { reference, targets }) => `${nameOrKey(classifier, reference)} -> ${targets.length === 0 ? `<none>` : targets.map(referenceTargetAsText).join(",")}`;
|
|
29
26
|
const containmentAsText = (classifier, { containment, children }) => [
|
|
30
27
|
`${nameOrKey(classifier, containment)}:${children.length === 0 ? ` <none>` : ``}`,
|
|
31
|
-
indent(children.map(childId => childId in nodesById
|
|
28
|
+
indent(children.map((childId) => childId in nodesById
|
|
29
|
+
? asText(nodesById[childId])
|
|
30
|
+
: `<child with id=${childId} not present in this chunk>`))
|
|
32
31
|
];
|
|
33
32
|
const annotationAsText = (annotationId) => annotationId in nodesById
|
|
34
33
|
? prependWith(asText(nodesById[annotationId]), "@ ")
|
|
@@ -45,7 +44,7 @@ export const genericAsTreeText = ({ nodes }, languages = []) => {
|
|
|
45
44
|
`}`
|
|
46
45
|
];
|
|
47
46
|
return asString(nodes
|
|
48
|
-
.filter(node => node.parent === null) // root nodes
|
|
47
|
+
.filter((node) => node.parent === null) // root nodes
|
|
49
48
|
.map(asText));
|
|
50
49
|
};
|
|
51
50
|
//# sourceMappingURL=textualizer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"textualizer.js","sourceRoot":"","sources":["../../src/serialization/textualizer.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"textualizer.js","sourceRoot":"","sources":["../../src/serialization/textualizer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sum the given array of numbers.
|
|
3
|
+
*/
|
|
4
|
+
export declare const sumNumbers: (nums: number[]) => number;
|
|
5
|
+
/**
|
|
6
|
+
* @return a view of the given array of items with duplicates removed.
|
|
7
|
+
*/
|
|
8
|
+
export declare const uniquesAmong: <T>(ts: T[]) => T[];
|
|
9
|
+
//# sourceMappingURL=array.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../src/utils/array.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,UAAU,SAAU,MAAM,EAAE,KAAG,MACD,CAAA;AAE3C;;GAEG;AACH,eAAO,MAAM,YAAY,qBACL,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sum the given array of numbers.
|
|
3
|
+
*/
|
|
4
|
+
export const sumNumbers = (nums) => nums.reduce((acc, cur) => acc + cur, 0);
|
|
5
|
+
/**
|
|
6
|
+
* @return a view of the given array of items with duplicates removed.
|
|
7
|
+
*/
|
|
8
|
+
export const uniquesAmong = (ts) => [...new Set(ts)];
|
|
9
|
+
//# sourceMappingURL=array.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"array.js","sourceRoot":"","sources":["../../src/utils/array.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAc,EAAU,EAAE,CACjD,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,CAAA;AAE3C;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAI,EAAO,EAAO,EAAE,CAC5C,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA"}
|
package/dist/utils/json.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../src/utils/json.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../src/utils/json.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,eAAe,SAAU,MAAM,QAAQ,OAAO,SACd,CAAA;AAG7C,eAAO,MAAM,cAAc,SAAU,MAAM,KAAG,OACD,CAAA"}
|
package/dist/utils/json.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/utils/json.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/utils/json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAE,aAAa,EAAC,MAAM,IAAI,CAAA;AAG9C,MAAM,cAAc,GAAG,CAAC,IAAa,EAAU,EAAE,CAC7C,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;AAGjC,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,IAAa,EAAE,EAAE,CAC3D,aAAa,CAAC,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,CAAA;AAG7C,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAAY,EAAW,EAAE,CACpD,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
export type Nested1Map<T> = Record<string, T>;
|
|
2
|
+
export type Nested2Map<T> = Record<string, Record<string, T>>;
|
|
3
|
+
export type Nested3Map<T> = Record<string, Record<string, Record<string, T>>>;
|
|
4
|
+
export declare const mapValuesMapper: <T, R>(valueMapFunc: (t: T) => R) => (map: Record<string, T>) => Record<string, R>;
|
|
5
|
+
export declare const nested2Mapper: <T, R>(valueMapFunc: (t: T) => R) => (map: Record<string, Record<string, T>>) => Record<string, Record<string, R>>;
|
|
6
|
+
export declare const nested3Mapper: <T, R>(valueMapFunc: (t: T) => R) => (map: Record<string, Record<string, Record<string, T>>>) => Record<string, Record<string, Record<string, R>>>;
|
|
7
|
+
/**
|
|
8
|
+
* Return a function that groups an array of things using a group function as a
|
|
9
|
+
* map : string (group key) → array of grouped things.
|
|
10
|
+
*/
|
|
11
|
+
export declare const grouper: <T>(key1Func: (t: T) => string) => (ts: T[]) => Nested1Map<T[]>;
|
|
12
|
+
/**
|
|
13
|
+
* Return a function that groups an array of things using two group functions as a nested map
|
|
14
|
+
* map : string (group key 1) →
|
|
15
|
+
* map : string (group key 2) → array of grouped things.
|
|
16
|
+
*/
|
|
17
|
+
export declare const nested2Grouper: <T>(key1Func: (t: T) => string, key2Func: (t: T) => string) => (ts: T[]) => Nested2Map<T[]>;
|
|
18
|
+
/**
|
|
19
|
+
* Return a function that groups an array of things using two group functions as a nested map
|
|
20
|
+
* map : string (group key 1) →
|
|
21
|
+
* map : string (group key 2) →
|
|
22
|
+
* map : string (group key 3) → array of grouped things.
|
|
23
|
+
*/
|
|
24
|
+
export declare const nested3Grouper: <T>(key1Func: (t: T) => string, key2Func: (t: T) => string, key3Func: (t: T) => string) => (ts: T[]) => Nested3Map<T[]>;
|
|
25
|
+
/**
|
|
26
|
+
* Flat-maps over the values of a
|
|
27
|
+
* map : string (group key) → values
|
|
28
|
+
* using the map function, which is also provided with the keys.
|
|
29
|
+
*/
|
|
30
|
+
export declare const flatMapValues: <T, R>(map: Record<string, T>, mapFunc: (t: T, key1: string) => R) => R[];
|
|
31
|
+
/**
|
|
32
|
+
* Flat-maps over the values of a nested map
|
|
33
|
+
* map : string (group key 1) →
|
|
34
|
+
* map: string (group key 2) → values
|
|
35
|
+
* using the map function, which is also provided with the keys.
|
|
36
|
+
*/
|
|
37
|
+
export declare const nestedFlatMap2: <T, R>(nested2Map: Nested2Map<T>, map2Func: (t: T, key1: string, key2: string) => R) => R[];
|
|
38
|
+
/**
|
|
39
|
+
* Flat-maps over the values of a nested map
|
|
40
|
+
* map : string (group key 1) →
|
|
41
|
+
* map: string (group key 2) →
|
|
42
|
+
* map: string (group key 3) → values
|
|
43
|
+
* using the map function, which is also provided with the keys.
|
|
44
|
+
*/
|
|
45
|
+
export declare const nestedFlatMap3: <T, R>(nested3Map: Nested3Map<T>, map3Func: (t: T, key1: string, key2: string, key3: string) => R) => R[];
|
|
46
|
+
//# sourceMappingURL=nested-map.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nested-map.d.ts","sourceRoot":"","sources":["../../src/utils/nested-map.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;AAC7C,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAA;AAC7D,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;AAG7E,eAAO,MAAM,eAAe,oFAKnB,CAAA;AAGT,eAAO,MAAM,aAAa,oHAC4B,CAAA;AAEtD,eAAO,MAAM,aAAa,oJAC0B,CAAA;AAGpD;;;GAGG;AACH,eAAO,MAAM,OAAO,0BACI,MAAM,iCAEQ,CAAA;AAEtC;;;;GAIG;AACH,eAAO,MAAM,cAAc,0BACH,MAAM,sBACN,MAAM,iCAE4C,CAAA;AAG1E;;;;;GAKG;AACH,eAAO,MAAM,cAAc,0BACH,MAAM,sBACN,MAAM,sBACN,MAAM,iCAE6D,CAAA;AAI3F;;;;GAIG;AACH,eAAO,MAAM,aAAa,uDAEA,MAAM,cAGa,CAAA;AAE7C;;;;;GAKG;AACH,eAAO,MAAM,cAAc,2DAEA,MAAM,QAAQ,MAAM,cAKtC,CAAA;AAET;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,2DAEA,MAAM,QAAQ,MAAM,QAAQ,MAAM,cAKpD,CAAA"}
|