@lionweb/utilities 0.9.0-beta.0 → 0.9.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/dist/serialization/chunk.d.ts +6 -0
- package/dist/serialization/chunk.d.ts.map +1 -1
- package/dist/serialization/chunk.js +25 -7
- package/dist/serialization/chunk.js.map +1 -1
- package/dist/serialization/index.d.ts +3 -2
- package/dist/serialization/index.d.ts.map +1 -1
- package/dist/serialization/index.js +2 -2
- package/dist/serialization/index.js.map +1 -1
- package/dist/serialization/metrics/functions.d.ts +16 -0
- package/dist/serialization/metrics/functions.d.ts.map +1 -0
- package/dist/serialization/metrics/functions.js +62 -0
- package/dist/serialization/metrics/functions.js.map +1 -0
- package/dist/serialization/metrics/index.d.ts +4 -0
- package/dist/serialization/metrics/index.d.ts.map +1 -0
- package/dist/serialization/metrics/index.js +3 -0
- package/dist/serialization/metrics/index.js.map +1 -0
- package/dist/serialization/{measurer.d.ts → metrics/measurer.d.ts} +1 -5
- package/dist/serialization/metrics/measurer.d.ts.map +1 -0
- package/dist/serialization/{measurer.js → metrics/measurer.js} +2 -6
- package/dist/serialization/metrics/measurer.js.map +1 -0
- package/dist/serialization/{metric-types.d.ts → metrics/types.d.ts} +5 -5
- package/dist/serialization/metrics/types.d.ts.map +1 -0
- package/dist/serialization/metrics/types.js +2 -0
- package/dist/serialization/metrics/types.js.map +1 -0
- package/package.json +5 -5
- package/src/serialization/chunk.ts +26 -7
- package/src/serialization/index.ts +3 -2
- package/src/serialization/metrics/functions.ts +94 -0
- package/src/serialization/metrics/index.ts +10 -0
- package/src/serialization/{measurer.ts → metrics/measurer.ts} +3 -10
- package/src/serialization/{metric-types.ts → metrics/types.ts} +7 -5
- package/dist/serialization/measurer.d.ts.map +0 -1
- package/dist/serialization/measurer.js.map +0 -1
- package/dist/serialization/metric-types.d.ts.map +0 -1
- package/dist/serialization/metric-types.js +0 -2
- package/dist/serialization/metric-types.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.9.0 — not yet released
|
|
4
|
+
|
|
5
|
+
* Expose types associated with the `measure` function — m.n. `Metrics`.
|
|
6
|
+
* Add a `zeroMetrics` constant, and `mergeMetrics` and `aggregateMetrics` functions, to aggregate `Metrics`.
|
|
7
|
+
* Add a `tryReadSerializationChunk` that plays better with async “versus” throwing exceptions.
|
|
8
|
+
|
|
9
|
+
|
|
3
10
|
## 0.8.0
|
|
4
11
|
|
|
5
12
|
* Propagate `reference` field of `LionWebJsonReferenceTarget` type now being `null`able.
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import { Language, LionWebVersion } from "@lionweb/core";
|
|
2
2
|
import { LionWebJsonChunk } from "@lionweb/json";
|
|
3
|
+
/**
|
|
4
|
+
* Tries to read the file at the given `path` as a {@link LionWebJsonChunk serialization chunk}.
|
|
5
|
+
* **Note** that it's only checked that the file exists and can be parsed as JSON,
|
|
6
|
+
* _not_ whether it satisfies the specified serialization chunk format!
|
|
7
|
+
*/
|
|
8
|
+
export declare const tryReadSerializationChunk: (path: string) => Promise<LionWebJsonChunk | Error>;
|
|
3
9
|
/**
|
|
4
10
|
* Reads the file at the given path as a {@link LionWebJsonChunk serialization chunk}.
|
|
5
11
|
* **Note** that it's only checked that the file exists and can be parsed as JSON,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunk.d.ts","sourceRoot":"","sources":["../../src/serialization/chunk.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,QAAQ,EAER,cAAc,EAEjB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,gBAAgB,EAA2B,MAAM,eAAe,CAAA;AAIzE;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GAAU,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"chunk.d.ts","sourceRoot":"","sources":["../../src/serialization/chunk.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,QAAQ,EAER,cAAc,EAEjB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,gBAAgB,EAA2B,MAAM,eAAe,CAAA;AAIzE;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,gBAAgB,GAAG,KAAK,CAa9F,CAAA;AAGD;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GAAU,MAAM,MAAM,8BAMxD,CAAA;AAMD;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,GAAI,MAAM,OAAO,EAAE,iBAAiB,cAAc,KAAG,OAQI,CAAA;AAGlG;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,GAAU,MAAM,MAAM,EAAE,iBAAiB,cAAc,KAAG,OAAO,CAAC,QAAQ,EAAE,CAa1G,CAAA;AAiBD;;;;;GAKG;AACH,eAAO,MAAM,aAAa,GAAI,qBAAqB,gBAAgB,EAAE,EAAE,iBAAiB,cAAc,KAAG,gBAOnG,CAAA;AAGN;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAAU,OAAO,MAAM,EAAE,EAAE,iBAAiB,cAAc,KAAG,OAAO,CAAC,QAAQ,EAAE,CAkBhH,CAAA"}
|
|
@@ -1,20 +1,38 @@
|
|
|
1
1
|
import { allLionWebVersions, deserializeLanguages, lioncoreKey, LionWebVersions } from "@lionweb/core";
|
|
2
|
-
import {
|
|
2
|
+
import { readFile } from "fs/promises";
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* Tries to read the file at the given `path` as a {@link LionWebJsonChunk serialization chunk}.
|
|
5
5
|
* **Note** that it's only checked that the file exists and can be parsed as JSON,
|
|
6
6
|
* _not_ whether it satisfies the specified serialization chunk format!
|
|
7
7
|
*/
|
|
8
|
-
export const
|
|
8
|
+
export const tryReadSerializationChunk = async (path) => {
|
|
9
9
|
try {
|
|
10
|
-
|
|
10
|
+
const json = await readFile(path);
|
|
11
|
+
try {
|
|
12
|
+
return JSON.parse(json.toString());
|
|
13
|
+
}
|
|
14
|
+
catch (e) {
|
|
15
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
16
|
+
return Promise.reject(new Error(`${path} is not a valid JSON file: ${e.message}`));
|
|
17
|
+
}
|
|
11
18
|
}
|
|
12
19
|
catch (e) {
|
|
13
|
-
|
|
14
|
-
|
|
20
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
21
|
+
return Promise.reject(new Error(`${path} is not a valid JSON file: ${e.message}`));
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Reads the file at the given path as a {@link LionWebJsonChunk serialization chunk}.
|
|
26
|
+
* **Note** that it's only checked that the file exists and can be parsed as JSON,
|
|
27
|
+
* _not_ whether it satisfies the specified serialization chunk format!
|
|
28
|
+
*/
|
|
29
|
+
export const readSerializationChunk = async (path) => {
|
|
30
|
+
const result = await tryReadSerializationChunk(path);
|
|
31
|
+
if (result instanceof Error) {
|
|
32
|
+
throw result;
|
|
15
33
|
}
|
|
34
|
+
return result;
|
|
16
35
|
};
|
|
17
|
-
// TODO don't throw, but return some kind of error object (– possibly using Promise.reject)
|
|
18
36
|
const isRecord = (json) => typeof json === "object" && !Array.isArray(json);
|
|
19
37
|
/**
|
|
20
38
|
* @return whether the given JSON looks like the serialization of languages.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunk.js","sourceRoot":"","sources":["../../src/serialization/chunk.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,kBAAkB,EAClB,oBAAoB,EAEpB,WAAW,EAEX,eAAe,EAClB,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"chunk.js","sourceRoot":"","sources":["../../src/serialization/chunk.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { withoutAnnotations } from "./annotation-remover.js";
|
|
2
|
-
export { looksLikeSerializedLanguages, readSerializationChunk, tryReadAllAsLanguages, tryReadAsLanguages } from "./chunk.js";
|
|
3
|
-
export { measure } from "./
|
|
2
|
+
export { looksLikeSerializedLanguages, readSerializationChunk, tryReadAllAsLanguages, tryReadAsLanguages, tryReadSerializationChunk } from "./chunk.js";
|
|
3
|
+
export { aggregateMetrics, measure, mergeMetrics, zeroMetrics } from "./metrics/index.js";
|
|
4
|
+
export type { ClassifierInstantiationMetric, ClassifierMetaTypes, ClassifierPointer, Metrics, LanguageMetric, LanguagePointer } from "./metrics/index.js";
|
|
4
5
|
export { orderedSerializationChunk } from "./ordering.js";
|
|
5
6
|
export { sortedSerializationChunk } from "./sorting.js";
|
|
6
7
|
export { genericAsTreeText } from "./textualizer.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/serialization/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAC,4BAA4B,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,kBAAkB,EAAC,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/serialization/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAC,4BAA4B,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,yBAAyB,EAAC,MAAM,YAAY,CAAA;AACrJ,OAAO,EAAC,gBAAgB,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAC,MAAM,oBAAoB,CAAA;AACvF,YAAY,EAAC,6BAA6B,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAC,MAAM,oBAAoB,CAAA;AACvJ,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,6 @@
|
|
|
1
1
|
export { withoutAnnotations } from "./annotation-remover.js";
|
|
2
|
-
export { looksLikeSerializedLanguages, readSerializationChunk, tryReadAllAsLanguages, tryReadAsLanguages } from "./chunk.js";
|
|
3
|
-
export { measure } from "./
|
|
2
|
+
export { looksLikeSerializedLanguages, readSerializationChunk, tryReadAllAsLanguages, tryReadAsLanguages, tryReadSerializationChunk } from "./chunk.js";
|
|
3
|
+
export { aggregateMetrics, measure, mergeMetrics, zeroMetrics } from "./metrics/index.js";
|
|
4
4
|
export { orderedSerializationChunk } from "./ordering.js";
|
|
5
5
|
export { sortedSerializationChunk } from "./sorting.js";
|
|
6
6
|
export { genericAsTreeText } from "./textualizer.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/serialization/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAC,4BAA4B,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,kBAAkB,EAAC,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/serialization/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAC,4BAA4B,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,yBAAyB,EAAC,MAAM,YAAY,CAAA;AACrJ,OAAO,EAAC,gBAAgB,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAC,MAAM,oBAAoB,CAAA;AAEvF,OAAO,EAAC,yBAAyB,EAAC,MAAM,eAAe,CAAA;AACvD,OAAO,EAAC,wBAAwB,EAAC,MAAM,cAAc,CAAA;AACrD,OAAO,EAAC,iBAAiB,EAAC,MAAM,kBAAkB,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Metrics } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* A “0” instance of the {@link Metrics metrics type},
|
|
4
|
+
* for use in combination with `Array.reduce`:
|
|
5
|
+
* ```reduce(mergeMetrics, zeroMetrics)```.
|
|
6
|
+
*/
|
|
7
|
+
export declare const zeroMetrics: Metrics;
|
|
8
|
+
/**
|
|
9
|
+
* @return a merging of the given `left` and `right` {@link Metrics metrics}.
|
|
10
|
+
*/
|
|
11
|
+
export declare const mergeMetrics: (left: Metrics, right: Metrics) => Metrics;
|
|
12
|
+
/**
|
|
13
|
+
* @return the aggregation of all given {@link Metric `metrics`}.
|
|
14
|
+
*/
|
|
15
|
+
export declare const aggregateMetrics: (metrics: Metrics[]) => Metrics;
|
|
16
|
+
//# sourceMappingURL=functions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../src/serialization/metrics/functions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsC,OAAO,EAAE,MAAM,YAAY,CAAA;AAExE;;;;GAIG;AACH,eAAO,MAAM,WAAW,EAAE,OAKzB,CAAA;AAYD;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,MAAM,OAAO,EAAE,OAAO,OAAO,KAAG,OA0D5D,CAAA;AAGD;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,SAAS,OAAO,EAAE,KAAG,OACT,CAAA"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A “0” instance of the {@link Metrics metrics type},
|
|
3
|
+
* for use in combination with `Array.reduce`:
|
|
4
|
+
* ```reduce(mergeMetrics, zeroMetrics)```.
|
|
5
|
+
*/
|
|
6
|
+
export const zeroMetrics = {
|
|
7
|
+
languagesWithInstantiations: [],
|
|
8
|
+
instantiatedClassifiers: [],
|
|
9
|
+
languagesWithoutInstantiations: [],
|
|
10
|
+
uninstantiatedInstantiableClassifiers: []
|
|
11
|
+
};
|
|
12
|
+
const isFromSameLanguage = (that) => (other) => that.key === other.key && that.version === other.version;
|
|
13
|
+
const isFromSameClassifier = (that) => (other) => isFromSameLanguage(that.language)(other.language) && that.key === other.key;
|
|
14
|
+
/**
|
|
15
|
+
* @return a merging of the given `left` and `right` {@link Metrics metrics}.
|
|
16
|
+
*/
|
|
17
|
+
export const mergeMetrics = (left, right) => {
|
|
18
|
+
const languagesWithInstantiations = [
|
|
19
|
+
...(left.languagesWithInstantiations.map((leftMetric) => {
|
|
20
|
+
const rightMetric = right.languagesWithInstantiations.find(isFromSameLanguage(leftMetric));
|
|
21
|
+
return {
|
|
22
|
+
key: leftMetric.key,
|
|
23
|
+
version: leftMetric.version,
|
|
24
|
+
name: leftMetric.name ?? rightMetric?.name,
|
|
25
|
+
instantiations: leftMetric.instantiations + (rightMetric?.instantiations ?? 0)
|
|
26
|
+
};
|
|
27
|
+
})),
|
|
28
|
+
...(right.languagesWithInstantiations.filter((rightMetric) => !left.languagesWithInstantiations.some(isFromSameLanguage(rightMetric))))
|
|
29
|
+
];
|
|
30
|
+
const instantiatedClassifiers = [
|
|
31
|
+
...(left.instantiatedClassifiers.map((leftMetric) => {
|
|
32
|
+
const rightMetric = right.instantiatedClassifiers.find(isFromSameClassifier(leftMetric));
|
|
33
|
+
return {
|
|
34
|
+
language: leftMetric.language,
|
|
35
|
+
key: leftMetric.key,
|
|
36
|
+
name: leftMetric.name ?? rightMetric?.name,
|
|
37
|
+
metaType: leftMetric.metaType,
|
|
38
|
+
instantiations: leftMetric.instantiations + (rightMetric?.instantiations ?? 0)
|
|
39
|
+
};
|
|
40
|
+
})),
|
|
41
|
+
...(right.instantiatedClassifiers.filter((rightMetric) => !left.instantiatedClassifiers.some(isFromSameClassifier(rightMetric))))
|
|
42
|
+
];
|
|
43
|
+
const languagesWithoutInstantiations = [...left.languagesWithoutInstantiations, ...right.languagesWithoutInstantiations]
|
|
44
|
+
.filter((languagePointer, index, all) => !languagesWithInstantiations.some(isFromSameLanguage(languagePointer)) // remove languages that have instantiations after all
|
|
45
|
+
&& !all.slice(0, index).some(isFromSameLanguage(languagePointer)) // remove languages that already occurred
|
|
46
|
+
);
|
|
47
|
+
const uninstantiatedInstantiableClassifiers = [...left.uninstantiatedInstantiableClassifiers, ...right.uninstantiatedInstantiableClassifiers]
|
|
48
|
+
.filter((classifierPointer, index, all) => !instantiatedClassifiers.some(isFromSameClassifier(classifierPointer)) // remove languages that have instantiations after all
|
|
49
|
+
&& !all.slice(0, index).some(isFromSameClassifier(classifierPointer)) // remove languages that already occurred
|
|
50
|
+
);
|
|
51
|
+
return {
|
|
52
|
+
languagesWithInstantiations,
|
|
53
|
+
instantiatedClassifiers,
|
|
54
|
+
languagesWithoutInstantiations,
|
|
55
|
+
uninstantiatedInstantiableClassifiers
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* @return the aggregation of all given {@link Metric `metrics`}.
|
|
60
|
+
*/
|
|
61
|
+
export const aggregateMetrics = (metrics) => metrics.reduce(mergeMetrics, zeroMetrics);
|
|
62
|
+
//# sourceMappingURL=functions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../src/serialization/metrics/functions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { measure } from "./measurer.js";
|
|
2
|
+
export { aggregateMetrics, mergeMetrics, zeroMetrics } from "./functions.js";
|
|
3
|
+
export type { ClassifierPointer, ClassifierInstantiationMetric, ClassifierMetaTypes, LanguageMetric, LanguagePointer, Metrics } from "./types.js";
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/serialization/metrics/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAA;AACrC,OAAO,EAAC,gBAAgB,EAAE,YAAY,EAAE,WAAW,EAAC,MAAM,gBAAgB,CAAA;AAC1E,YAAY,EACR,iBAAiB,EACjB,6BAA6B,EAC7B,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,OAAO,EACV,MAAM,YAAY,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/serialization/metrics/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAA;AACrC,OAAO,EAAC,gBAAgB,EAAE,YAAY,EAAE,WAAW,EAAC,MAAM,gBAAgB,CAAA"}
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
import { Language } from "@lionweb/core";
|
|
2
2
|
import { LionWebJsonChunk } from "@lionweb/json";
|
|
3
|
-
import { Metrics } from "./
|
|
4
|
-
/**
|
|
5
|
-
* Sum the given array of numbers.
|
|
6
|
-
*/
|
|
7
|
-
export declare const sumNumbers: (nums: number[]) => number;
|
|
3
|
+
import { Metrics } from "./types.js";
|
|
8
4
|
/**
|
|
9
5
|
* Computes {@link Metrics metrics} on the given {@link LionWebJsonChunk serialization chunk}.
|
|
10
6
|
* Passing it {@link Language languages} make this language-aware:
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"measurer.d.ts","sourceRoot":"","sources":["../../../src/serialization/metrics/measurer.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6D,QAAQ,EAAwC,MAAM,eAAe,CAAA;AACzI,OAAO,EAAE,gBAAgB,EAAoE,MAAM,eAAe,CAAA;AAElH,OAAO,EAAuB,OAAO,EAAE,MAAM,YAAY,CAAA;AASzD;;;;;GAKG;AACH,eAAO,MAAM,OAAO,GAAI,oBAAoB,gBAAgB,EAAE,WAAW,QAAQ,EAAE,KAAG,OAyFrF,CAAA"}
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
import { Annotation, Concept, instantiableClassifiersOf, Interface, MemoisingSymbolTable } from "@lionweb/core";
|
|
2
|
-
import { nested3Grouper, nested3Mapper, nestedFlatMap2, nestedFlatMap3 } from "@lionweb/ts-utils";
|
|
3
|
-
/**
|
|
4
|
-
* Sum the given array of numbers.
|
|
5
|
-
*/
|
|
6
|
-
export const sumNumbers = (nums) => nums.reduce((acc, cur) => acc + cur, 0);
|
|
2
|
+
import { nested3Grouper, nested3Mapper, nestedFlatMap2, nestedFlatMap3, sumOfNumbers } from "@lionweb/ts-utils";
|
|
7
3
|
/**
|
|
8
4
|
* Computes {@link Metrics metrics} on the given {@link LionWebJsonChunk serialization chunk}.
|
|
9
5
|
* Passing it {@link Language languages} make this language-aware:
|
|
@@ -21,7 +17,7 @@ export const measure = (serializationChunk, languages) => {
|
|
|
21
17
|
key: languageKey,
|
|
22
18
|
version,
|
|
23
19
|
name: symbolTable.languageMatching(languageKey, version)?.name,
|
|
24
|
-
instantiations:
|
|
20
|
+
instantiations: sumOfNumbers(Object.values(classifierKey2info).map(info => info.instantiations))
|
|
25
21
|
}));
|
|
26
22
|
const metaTypeOf = (entity) => {
|
|
27
23
|
if (entity instanceof Annotation) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"measurer.js","sourceRoot":"","sources":["../../../src/serialization/metrics/measurer.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ type LanguagePointer = {
|
|
|
6
6
|
key: LionWebKey;
|
|
7
7
|
version: string;
|
|
8
8
|
} & OptionallyNamed;
|
|
9
|
-
type
|
|
9
|
+
type ClassifierPointer = {
|
|
10
10
|
language: LanguagePointer;
|
|
11
11
|
key: LionWebKey;
|
|
12
12
|
} & OptionallyNamed;
|
|
@@ -14,15 +14,15 @@ type ClassifierMetaTypes = "annotation" | "concept" | "interface";
|
|
|
14
14
|
type ClassifierInstantiationMetric = {
|
|
15
15
|
metaType?: ClassifierMetaTypes;
|
|
16
16
|
instantiations: number;
|
|
17
|
-
} &
|
|
17
|
+
} & ClassifierPointer;
|
|
18
18
|
type LanguageMetric = {
|
|
19
19
|
instantiations: number;
|
|
20
20
|
} & LanguagePointer;
|
|
21
21
|
type Metrics = {
|
|
22
22
|
languagesWithInstantiations: LanguageMetric[];
|
|
23
23
|
instantiatedClassifiers: ClassifierInstantiationMetric[];
|
|
24
|
-
uninstantiatedInstantiableClassifiers: ClassifierMetric[];
|
|
25
24
|
languagesWithoutInstantiations: LanguagePointer[];
|
|
25
|
+
uninstantiatedInstantiableClassifiers: ClassifierPointer[];
|
|
26
26
|
};
|
|
27
|
-
export type { ClassifierInstantiationMetric, ClassifierMetaTypes, LanguagePointer, Metrics };
|
|
28
|
-
//# sourceMappingURL=
|
|
27
|
+
export type { ClassifierInstantiationMetric, ClassifierMetaTypes, ClassifierPointer, LanguageMetric, LanguagePointer, Metrics };
|
|
28
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/serialization/metrics/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE1C,KAAK,eAAe,GAAG;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,KAAK,eAAe,GAAG;IACnB,GAAG,EAAE,UAAU,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;CAClB,GAAG,eAAe,CAAA;AAEJ,KAAK,iBAAiB,GAAG;IACpC,QAAQ,EAAE,eAAe,CAAA;IACzB,GAAG,EAAE,UAAU,CAAA;CAClB,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,iBAAiB,CAAA;AAErB,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,8BAA8B,EAAE,eAAe,EAAE,CAAA;IACjD,qCAAqC,EAAE,iBAAiB,EAAE,CAAA;CAC7D,CAAA;AAGD,YAAY,EACR,6BAA6B,EAC7B,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,OAAO,EACV,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/serialization/metrics/types.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lionweb/utilities",
|
|
3
|
-
"version": "0.9.0-beta.
|
|
3
|
+
"version": "0.9.0-beta.2",
|
|
4
4
|
"description": "LionWeb utilities",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -15,10 +15,10 @@
|
|
|
15
15
|
"url": "https://github.com/LionWeb-io/lionweb-typescript/issues"
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@lionweb/core": "0.9.0-beta.
|
|
19
|
-
"@lionweb/json": "0.9.0-beta.
|
|
20
|
-
"@lionweb/textgen-utils": "0.9.0-beta.
|
|
21
|
-
"@lionweb/ts-utils": "0.9.0-beta.
|
|
18
|
+
"@lionweb/core": "0.9.0-beta.2",
|
|
19
|
+
"@lionweb/json": "0.9.0-beta.2",
|
|
20
|
+
"@lionweb/textgen-utils": "0.9.0-beta.2",
|
|
21
|
+
"@lionweb/ts-utils": "0.9.0-beta.2",
|
|
22
22
|
"littoral-templates": "0.5.1",
|
|
23
23
|
"nanoid": "5.1.6"
|
|
24
24
|
},
|
|
@@ -7,7 +7,28 @@ import {
|
|
|
7
7
|
LionWebVersions
|
|
8
8
|
} from "@lionweb/core"
|
|
9
9
|
import { LionWebJsonChunk, LionWebJsonUsedLanguage } from "@lionweb/json"
|
|
10
|
-
import {
|
|
10
|
+
import { readFile } from "fs/promises"
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Tries to read the file at the given `path` as a {@link LionWebJsonChunk serialization chunk}.
|
|
15
|
+
* **Note** that it's only checked that the file exists and can be parsed as JSON,
|
|
16
|
+
* _not_ whether it satisfies the specified serialization chunk format!
|
|
17
|
+
*/
|
|
18
|
+
export const tryReadSerializationChunk = async (path: string): Promise<LionWebJsonChunk | Error> => {
|
|
19
|
+
try {
|
|
20
|
+
const json = await readFile(path)
|
|
21
|
+
try {
|
|
22
|
+
return JSON.parse(json.toString()) as LionWebJsonChunk
|
|
23
|
+
} catch (e) {
|
|
24
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
25
|
+
return Promise.reject(new Error(`${path} is not a valid JSON file: ${(e as any).message}`))
|
|
26
|
+
}
|
|
27
|
+
} catch(e) {
|
|
28
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
29
|
+
return Promise.reject(new Error(`${path} is not a valid JSON file: ${(e as any).message}`))
|
|
30
|
+
}
|
|
31
|
+
}
|
|
11
32
|
|
|
12
33
|
|
|
13
34
|
/**
|
|
@@ -16,14 +37,12 @@ import { readFileAsJson } from "../utils/json.js"
|
|
|
16
37
|
* _not_ whether it satisfies the specified serialization chunk format!
|
|
17
38
|
*/
|
|
18
39
|
export const readSerializationChunk = async (path: string) => {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
console.error(`${path} is not a valid JSON file`)
|
|
23
|
-
throw e
|
|
40
|
+
const result = await tryReadSerializationChunk(path)
|
|
41
|
+
if (result instanceof Error) {
|
|
42
|
+
throw result
|
|
24
43
|
}
|
|
44
|
+
return result
|
|
25
45
|
}
|
|
26
|
-
// TODO don't throw, but return some kind of error object (– possibly using Promise.reject)
|
|
27
46
|
|
|
28
47
|
|
|
29
48
|
const isRecord = (json: unknown): json is Record<string, unknown> =>
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export {withoutAnnotations} from "./annotation-remover.js"
|
|
2
|
-
export {looksLikeSerializedLanguages, readSerializationChunk, tryReadAllAsLanguages, tryReadAsLanguages} from "./chunk.js"
|
|
3
|
-
export {measure} from "./
|
|
2
|
+
export {looksLikeSerializedLanguages, readSerializationChunk, tryReadAllAsLanguages, tryReadAsLanguages, tryReadSerializationChunk} from "./chunk.js"
|
|
3
|
+
export {aggregateMetrics, measure, mergeMetrics, zeroMetrics} from "./metrics/index.js"
|
|
4
|
+
export type {ClassifierInstantiationMetric, ClassifierMetaTypes, ClassifierPointer, Metrics, LanguageMetric, LanguagePointer} from "./metrics/index.js"
|
|
4
5
|
export {orderedSerializationChunk} from "./ordering.js"
|
|
5
6
|
export {sortedSerializationChunk} from "./sorting.js"
|
|
6
7
|
export {genericAsTreeText} from "./textualizer.js"
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { ClassifierPointer, LanguagePointer, Metrics } from "./types.js"
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* A “0” instance of the {@link Metrics metrics type},
|
|
5
|
+
* for use in combination with `Array.reduce`:
|
|
6
|
+
* ```reduce(mergeMetrics, zeroMetrics)```.
|
|
7
|
+
*/
|
|
8
|
+
export const zeroMetrics: Metrics = {
|
|
9
|
+
languagesWithInstantiations: [],
|
|
10
|
+
instantiatedClassifiers: [],
|
|
11
|
+
languagesWithoutInstantiations: [],
|
|
12
|
+
uninstantiatedInstantiableClassifiers: []
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
const isFromSameLanguage = (that: LanguagePointer) =>
|
|
17
|
+
(other: LanguagePointer) =>
|
|
18
|
+
that.key === other.key && that.version === other.version
|
|
19
|
+
|
|
20
|
+
const isFromSameClassifier = (that: ClassifierPointer) =>
|
|
21
|
+
(other: ClassifierPointer) =>
|
|
22
|
+
isFromSameLanguage(that.language)(other.language) && that.key === other.key
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* @return a merging of the given `left` and `right` {@link Metrics metrics}.
|
|
27
|
+
*/
|
|
28
|
+
export const mergeMetrics = (left: Metrics, right: Metrics): Metrics => {
|
|
29
|
+
const languagesWithInstantiations = [
|
|
30
|
+
...(
|
|
31
|
+
left.languagesWithInstantiations.map((leftMetric) => {
|
|
32
|
+
const rightMetric = right.languagesWithInstantiations.find(isFromSameLanguage(leftMetric))
|
|
33
|
+
return {
|
|
34
|
+
key: leftMetric.key,
|
|
35
|
+
version: leftMetric.version,
|
|
36
|
+
name: leftMetric.name ?? rightMetric?.name,
|
|
37
|
+
instantiations: leftMetric.instantiations + (rightMetric?.instantiations ?? 0)
|
|
38
|
+
}
|
|
39
|
+
})
|
|
40
|
+
),
|
|
41
|
+
...(
|
|
42
|
+
right.languagesWithInstantiations.filter((rightMetric) =>
|
|
43
|
+
!left.languagesWithInstantiations.some(isFromSameLanguage(rightMetric))
|
|
44
|
+
)
|
|
45
|
+
)
|
|
46
|
+
]
|
|
47
|
+
|
|
48
|
+
const instantiatedClassifiers = [
|
|
49
|
+
...(
|
|
50
|
+
left.instantiatedClassifiers.map((leftMetric) => {
|
|
51
|
+
const rightMetric = right.instantiatedClassifiers.find(isFromSameClassifier(leftMetric))
|
|
52
|
+
return {
|
|
53
|
+
language: leftMetric.language,
|
|
54
|
+
key: leftMetric.key,
|
|
55
|
+
name: leftMetric.name ?? rightMetric?.name,
|
|
56
|
+
metaType: leftMetric.metaType,
|
|
57
|
+
instantiations: leftMetric.instantiations + (rightMetric?.instantiations ?? 0)
|
|
58
|
+
}
|
|
59
|
+
})
|
|
60
|
+
),
|
|
61
|
+
...(
|
|
62
|
+
right.instantiatedClassifiers.filter((rightMetric) =>
|
|
63
|
+
!left.instantiatedClassifiers.some(isFromSameClassifier(rightMetric))
|
|
64
|
+
)
|
|
65
|
+
)
|
|
66
|
+
]
|
|
67
|
+
|
|
68
|
+
const languagesWithoutInstantiations = [...left.languagesWithoutInstantiations, ...right.languagesWithoutInstantiations]
|
|
69
|
+
.filter((languagePointer, index, all) =>
|
|
70
|
+
!languagesWithInstantiations.some(isFromSameLanguage(languagePointer)) // remove languages that have instantiations after all
|
|
71
|
+
&& !all.slice(0, index).some(isFromSameLanguage(languagePointer)) // remove languages that already occurred
|
|
72
|
+
)
|
|
73
|
+
|
|
74
|
+
const uninstantiatedInstantiableClassifiers = [...left.uninstantiatedInstantiableClassifiers, ...right.uninstantiatedInstantiableClassifiers]
|
|
75
|
+
.filter((classifierPointer, index, all) =>
|
|
76
|
+
!instantiatedClassifiers.some(isFromSameClassifier(classifierPointer)) // remove languages that have instantiations after all
|
|
77
|
+
&& !all.slice(0, index).some(isFromSameClassifier(classifierPointer)) // remove languages that already occurred
|
|
78
|
+
)
|
|
79
|
+
|
|
80
|
+
return {
|
|
81
|
+
languagesWithInstantiations,
|
|
82
|
+
instantiatedClassifiers,
|
|
83
|
+
languagesWithoutInstantiations,
|
|
84
|
+
uninstantiatedInstantiableClassifiers
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* @return the aggregation of all given {@link Metric `metrics`}.
|
|
91
|
+
*/
|
|
92
|
+
export const aggregateMetrics = (metrics: Metrics[]): Metrics =>
|
|
93
|
+
metrics.reduce(mergeMetrics, zeroMetrics)
|
|
94
|
+
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export {measure} from "./measurer.js"
|
|
2
|
+
export {aggregateMetrics, mergeMetrics, zeroMetrics} from "./functions.js"
|
|
3
|
+
export type {
|
|
4
|
+
ClassifierPointer,
|
|
5
|
+
ClassifierInstantiationMetric,
|
|
6
|
+
ClassifierMetaTypes,
|
|
7
|
+
LanguageMetric,
|
|
8
|
+
LanguagePointer,
|
|
9
|
+
Metrics
|
|
10
|
+
} from "./types.js"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Annotation, Concept, instantiableClassifiersOf, Interface, Language, LanguageEntity, MemoisingSymbolTable } from "@lionweb/core"
|
|
2
2
|
import { LionWebJsonChunk, LionWebJsonMetaPointer, LionWebJsonNode, LionWebJsonUsedLanguage } from "@lionweb/json"
|
|
3
|
-
import { nested3Grouper, nested3Mapper, nestedFlatMap2, nestedFlatMap3 } from "@lionweb/ts-utils"
|
|
4
|
-
import { ClassifierMetaTypes, Metrics } from "./
|
|
3
|
+
import { nested3Grouper, nested3Mapper, nestedFlatMap2, nestedFlatMap3, sumOfNumbers } from "@lionweb/ts-utils"
|
|
4
|
+
import { ClassifierMetaTypes, Metrics } from "./types.js"
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
type Info = {
|
|
@@ -10,13 +10,6 @@ type Info = {
|
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
|
|
13
|
-
/**
|
|
14
|
-
* Sum the given array of numbers.
|
|
15
|
-
*/
|
|
16
|
-
export const sumNumbers = (nums: number[]): number =>
|
|
17
|
-
nums.reduce((acc, cur) => acc + cur, 0)
|
|
18
|
-
|
|
19
|
-
|
|
20
13
|
/**
|
|
21
14
|
* Computes {@link Metrics metrics} on the given {@link LionWebJsonChunk serialization chunk}.
|
|
22
15
|
* Passing it {@link Language languages} make this language-aware:
|
|
@@ -44,7 +37,7 @@ export const measure = (serializationChunk: LionWebJsonChunk, languages: Languag
|
|
|
44
37
|
key: languageKey,
|
|
45
38
|
version,
|
|
46
39
|
name: symbolTable.languageMatching(languageKey, version)?.name,
|
|
47
|
-
instantiations:
|
|
40
|
+
instantiations: sumOfNumbers(Object.values(classifierKey2info).map(info => info.instantiations))
|
|
48
41
|
})
|
|
49
42
|
)
|
|
50
43
|
|
|
@@ -9,7 +9,7 @@ type LanguagePointer = {
|
|
|
9
9
|
version: string
|
|
10
10
|
} & OptionallyNamed
|
|
11
11
|
|
|
12
|
-
/* abstract */ type
|
|
12
|
+
/* abstract */ type ClassifierPointer = {
|
|
13
13
|
language: LanguagePointer
|
|
14
14
|
key: LionWebKey // key of classifier
|
|
15
15
|
} & OptionallyNamed
|
|
@@ -19,7 +19,7 @@ type ClassifierMetaTypes = "annotation" | "concept" | "interface"
|
|
|
19
19
|
type ClassifierInstantiationMetric = {
|
|
20
20
|
metaType?: ClassifierMetaTypes
|
|
21
21
|
instantiations: number
|
|
22
|
-
} &
|
|
22
|
+
} & ClassifierPointer
|
|
23
23
|
|
|
24
24
|
type LanguageMetric = {
|
|
25
25
|
instantiations: number
|
|
@@ -27,16 +27,18 @@ type LanguageMetric = {
|
|
|
27
27
|
|
|
28
28
|
// TODO order?
|
|
29
29
|
type Metrics = {
|
|
30
|
-
languagesWithInstantiations: LanguageMetric[]
|
|
30
|
+
languagesWithInstantiations: LanguageMetric[] // (note: is derivable from instantiatedClassifiers, in principle)
|
|
31
31
|
instantiatedClassifiers: ClassifierInstantiationMetric[]
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
languagesWithoutInstantiations: LanguagePointer[] // (note: is derivable from uninstantiatedInstantiableClassifiers, in principle)
|
|
33
|
+
uninstantiatedInstantiableClassifiers: ClassifierPointer[]
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
|
|
37
37
|
export type {
|
|
38
38
|
ClassifierInstantiationMetric,
|
|
39
39
|
ClassifierMetaTypes,
|
|
40
|
+
ClassifierPointer,
|
|
41
|
+
LanguageMetric,
|
|
40
42
|
LanguagePointer,
|
|
41
43
|
Metrics
|
|
42
44
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"measurer.d.ts","sourceRoot":"","sources":["../../src/serialization/measurer.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6D,QAAQ,EAAwC,MAAM,eAAe,CAAA;AACzI,OAAO,EAAE,gBAAgB,EAAoE,MAAM,eAAe,CAAA;AAElH,OAAO,EAAuB,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAShE;;GAEG;AACH,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,EAAE,KAAG,MACD,CAAA;AAG3C;;;;;GAKG;AACH,eAAO,MAAM,OAAO,GAAI,oBAAoB,gBAAgB,EAAE,WAAW,QAAQ,EAAE,KAAG,OAyFrF,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"measurer.js","sourceRoot":"","sources":["../../src/serialization/measurer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"metric-types.d.ts","sourceRoot":"","sources":["../../src/serialization/metric-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE1C,KAAK,eAAe,GAAG;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,KAAK,eAAe,GAAG;IACnB,GAAG,EAAE,UAAU,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;CAClB,GAAG,eAAe,CAAA;AAEJ,KAAK,gBAAgB,GAAG;IACnC,QAAQ,EAAE,eAAe,CAAA;IACzB,GAAG,EAAE,UAAU,CAAA;CAClB,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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"metric-types.js","sourceRoot":"","sources":["../../src/serialization/metric-types.ts"],"names":[],"mappings":""}
|