@lionweb/core 0.8.0-beta.2 → 0.8.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/deserializer.d.ts +43 -6
  3. package/dist/deserializer.d.ts.map +1 -1
  4. package/dist/deserializer.js +142 -129
  5. package/dist/deserializer.js.map +1 -1
  6. package/dist/functions.d.ts +6 -1
  7. package/dist/functions.d.ts.map +1 -1
  8. package/dist/functions.js +11 -0
  9. package/dist/functions.js.map +1 -1
  10. package/dist/index.d.ts +1 -1
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +1 -1
  13. package/dist/index.js.map +1 -1
  14. package/dist/m3/builtins.js +3 -3
  15. package/dist/m3/builtins.js.map +1 -1
  16. package/dist/m3/deserializer.d.ts +7 -3
  17. package/dist/m3/deserializer.d.ts.map +1 -1
  18. package/dist/m3/deserializer.js +14 -6
  19. package/dist/m3/deserializer.js.map +1 -1
  20. package/dist/m3/functions.d.ts +2 -2
  21. package/dist/m3/functions.d.ts.map +1 -1
  22. package/dist/m3/functions.js.map +1 -1
  23. package/dist/m3/reference-checker.js +2 -2
  24. package/dist/m3/reference-checker.js.map +1 -1
  25. package/dist/m3/serializer.d.ts.map +1 -1
  26. package/dist/m3/serializer.js +2 -2
  27. package/dist/m3/serializer.js.map +1 -1
  28. package/dist/m3/types.d.ts.map +1 -1
  29. package/dist/m3/types.js +4 -4
  30. package/dist/m3/types.js.map +1 -1
  31. package/dist/reading.d.ts +5 -4
  32. package/dist/reading.d.ts.map +1 -1
  33. package/dist/references.d.ts +14 -1
  34. package/dist/references.d.ts.map +1 -1
  35. package/dist/references.js +9 -0
  36. package/dist/references.js.map +1 -1
  37. package/dist/reporter.d.ts +49 -0
  38. package/dist/reporter.d.ts.map +1 -0
  39. package/dist/{handler.js → reporter.js} +15 -7
  40. package/dist/reporter.js.map +1 -0
  41. package/dist/serializer.d.ts +29 -7
  42. package/dist/serializer.d.ts.map +1 -1
  43. package/dist/serializer.js +14 -15
  44. package/dist/serializer.js.map +1 -1
  45. package/package.json +3 -3
  46. package/src/deserializer.ts +223 -168
  47. package/src/functions.ts +15 -1
  48. package/src/index.ts +1 -1
  49. package/src/m3/builtins.ts +3 -3
  50. package/src/m3/deserializer.ts +17 -12
  51. package/src/m3/functions.ts +2 -2
  52. package/src/m3/reference-checker.ts +2 -2
  53. package/src/m3/serializer.ts +2 -2
  54. package/src/m3/types.ts +4 -4
  55. package/src/reading.ts +5 -4
  56. package/src/references.ts +20 -1
  57. package/src/reporter.ts +78 -0
  58. package/src/serializer.ts +39 -23
  59. package/dist/handler.d.ts +0 -33
  60. package/dist/handler.d.ts.map +0 -1
  61. package/dist/handler.js.map +0 -1
  62. package/src/handler.ts +0 -57
package/CHANGELOG.md CHANGED
@@ -5,6 +5,13 @@
5
5
  * The `NT` type parameter of `SingleRef<NT>` now extends the `Node` base type.
6
6
  * Move `IdOrUnresolved` type to the `class-core` package, as it was used only there and in `delta-protocol-common`.
7
7
  * Remove the `serializedRef` function as it was a duplicate of `idFrom` in `class-core`.
8
+ * To be able to introduce multiple LionWeb versions explicitly:
9
+ * Introduce `Serializer` and `SerializerConfiguration` types, and `serializerWith` function as a replacement (keeping an alias for backward compatibility) for the `nodeSerializer` function with a better API (using the Parameter Object pattern).
10
+ * Introduce `Deserializer` and `DeserializerConfiguration` types, and a `deserializerWith` function as a replacement (keeping an alias for backward compatibility) for the `deserializeSerializationChunk` function with a better API (using the Parameter Object pattern).
11
+ * Rename `SimplisticHandler` interface to `ProblemReporter`, and propagate that renaming, keeping alias for backward compatibility.
12
+ * Introduce an explicit `UnresolvedReference` type, a corresponding `isUnresolvedReference` type function, and a `referenceToSet` function to produce reference (target) placeholders, and propagate their use throughout the codebase.
13
+ * Add a 2nd argument to the `ResolveInfoDeducer` function type, to also pass the containing reference.
14
+ *Note* that this is technically a breaking change, but the `ResolveInfoDeducer` type is essentially part of the internal API.
8
15
 
9
16
 
10
17
  ## 0.7.2
@@ -1,6 +1,6 @@
1
1
  import { LionWebJsonChunk } from "@lionweb/json";
2
2
  import { Writer } from "./writing.js";
3
- import { SimplisticHandler } from "./handler.js";
3
+ import { ProblemReporter } from "./reporter.js";
4
4
  import { Language, Property } from "./m3/types.js";
5
5
  import { Node } from "./types.js";
6
6
  /**
@@ -15,18 +15,55 @@ export interface PropertyValueDeserializer {
15
15
  export interface PrimitiveTypeDeserializer extends PropertyValueDeserializer {
16
16
  }
17
17
  /**
18
- * @return a deserialization of a {@link LionWebJsonChunk}
18
+ * Type definition for functions that deserialize a given {@link LionWebJsonChunk serialization chunk},
19
+ * being able to link to the given `dependentNodes` (as children/containments or reference targets).
20
+ */
21
+ export type Deserializer<NT extends Node> = (serializationChunk: LionWebJsonChunk, dependentNodes?: Node[]) => NT[];
22
+ /**
23
+ * Configuration parameters for a deserializer that are unchanging per invocation of the deserializer
24
+ * (and partially optional).
25
+ */
26
+ export type DeserializerConfiguration<NT extends Node> = {
27
+ /**
28
+ * A {@link Writer} that is used to instantiate nodes (with classifiers coming from the `languages` property) and set values on them.
29
+ */
30
+ writer: Writer<NT>;
31
+ /**
32
+ * An array of {@link Language languages} that the serialization chunk is expected to conform to.
33
+ */
34
+ languages: Language[];
35
+ /**
36
+ * A deserializer for values of properties.
37
+ * Default: {@link builtinPropertyValueDeserializer}.
38
+ */
39
+ propertyValueDeserializer?: PropertyValueDeserializer;
40
+ /**
41
+ * An object for reporting problems to.
42
+ * Default: {@link consoleProblemReporter}.
43
+ */
44
+ problemReporter?: ProblemReporter;
45
+ };
46
+ /**
47
+ * @return a {@link Deserializer} function.
48
+ *
49
+ * @param configuration - a {@link DeserializerConfiguration} object to configure the deserializer to return with.
50
+ */
51
+ export declare const deserializerWith: <NT extends Node>(configuration: DeserializerConfiguration<NT>) => Deserializer<NT>;
52
+ /**
53
+ * @return a deserialization of a {@link LionWebJsonChunk}.
19
54
  *
20
55
  * @param serializationChunk - a {@link SerializedModel model} from its LionWeb serialization JSON format
21
56
  * @param writer - a {@link Writer} that is used to instantiate nodes and set values on them
22
- * @param languages - a {@link Language language} that the serialized model is expected to conform to
57
+ * @param languages - {@link Language languages} that the serialized model is expected to conform to
23
58
  * @param dependentNodes - a collection of nodes from dependent models against which all references in the serialized model are supposed to resolve against
24
59
  * @param propertyValueDeserializer - a deserializer for values of properties (by default a {@link BuiltinPropertyValueDeserializer})
25
- * @param problemHandler - a handler for reporting problems (by default a {@link defaultSimplisticHandler})
60
+ * @param problemReporter - an object for reporting problems (by default a {@link consoleProblemReporter})
61
+ *
62
+ * This is a legacy variant of {@link deserializerWith}, kept for backward compatibility, and to be deprecated and removed later.
26
63
  */
27
- export declare const deserializeSerializationChunk: <NT extends Node>(serializationChunk: LionWebJsonChunk, writer: Writer<NT>, languages: Language[], dependentNodes: Node[], propertyValueDeserializer?: PropertyValueDeserializer, problemHandler?: SimplisticHandler) => NT[];
64
+ export declare const deserializeSerializationChunk: <NT extends Node>(serializationChunk: LionWebJsonChunk, writer: Writer<NT>, languages: Language[], dependentNodes: Node[], propertyValueDeserializer?: PropertyValueDeserializer, problemReporter?: ProblemReporter) => NT[];
28
65
  /**
29
66
  * Alias for {@link deserializeSerializationChunk}.
30
67
  */
31
- export declare const deserializeChunk: <NT extends Node>(serializationChunk: LionWebJsonChunk, writer: Writer<NT>, languages: Language[], dependentNodes: Node[], propertyValueDeserializer?: PropertyValueDeserializer, problemHandler?: SimplisticHandler) => NT[];
68
+ export declare const deserializeChunk: <NT extends Node>(serializationChunk: LionWebJsonChunk, writer: Writer<NT>, languages: Language[], dependentNodes: Node[], propertyValueDeserializer?: PropertyValueDeserializer, problemReporter?: ProblemReporter) => NT[];
32
69
  //# sourceMappingURL=deserializer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"deserializer.d.ts","sourceRoot":"","sources":["../src/deserializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,gBAAgB,EAGnB,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAA4B,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAO1E,OAAO,EAAwC,QAAQ,EAAiB,QAAQ,EAAa,MAAM,eAAe,CAAA;AAElH,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAEjC;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACtC,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAA;CACvF;AAED;;GAEG;AACH,MAAM,WAAW,yBAA0B,SAAQ,yBAAyB;CAAG;AAE/E;;;;;;;;;GASG;AACH,eAAO,MAAM,6BAA6B,GAAI,EAAE,SAAS,IAAI,EACzD,oBAAoB,gBAAgB,EACpC,QAAQ,MAAM,CAAC,EAAE,CAAC,EAClB,WAAW,QAAQ,EAAE,EAErB,gBAAgB,IAAI,EAAE,EAEtB,4BAA2B,yBAA4D,EACvF,iBAAgB,iBAA4C,KAC7D,EAAE,EA2KJ,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAzLiB,EAAE,SAAS,IAAI,sBACrC,gBAAgB,UAC5B,MAAM,CAAC,EAAE,CAAC,aACP,QAAQ,EAAE,kBAEL,IAAI,EAAE,8BAEK,yBAAyB,mBACpC,iBAAiB,KAClC,EAAE,EAgLwD,CAAA"}
1
+ {"version":3,"file":"deserializer.d.ts","sourceRoot":"","sources":["../src/deserializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,gBAAgB,EAGnB,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAA0B,eAAe,EAAE,MAAM,eAAe,CAAA;AAGvE,OAAO,EAAwC,QAAQ,EAAiB,QAAQ,EAAa,MAAM,eAAe,CAAA;AAElH,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAEjC;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACtC,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAA;CACvF;AAED;;GAEG;AACH,MAAM,WAAW,yBAA0B,SAAQ,yBAAyB;CAAG;AAG/E;;;GAGG;AACH,MAAM,MAAM,YAAY,CAAC,EAAE,SAAS,IAAI,IAAI,CAAC,kBAAkB,EAAE,gBAAgB,EAAE,cAAc,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAA;AAGnH;;;GAGG;AACH,MAAM,MAAM,yBAAyB,CAAC,EAAE,SAAS,IAAI,IAAI;IACrD;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IACnB;;OAEG;IACH,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB;;;OAGG;IACH,yBAAyB,CAAC,EAAE,yBAAyB,CAAC;IACtD;;;OAGG;IACH,eAAe,CAAC,EAAE,eAAe,CAAA;CACpC,CAAA;AAGD;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAAI,EAAE,SAAS,IAAI,EAAE,eAAe,yBAAyB,CAAC,EAAE,CAAC,KAAG,YAAY,CAAC,EAAE,CAyL/G,CAAA;AAGD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,6BAA6B,GAAI,EAAE,SAAS,IAAI,EACzD,oBAAoB,gBAAgB,EACpC,QAAQ,MAAM,CAAC,EAAE,CAAC,EAClB,WAAW,QAAQ,EAAE,EAErB,gBAAgB,IAAI,EAAE,EAEtB,4BAA2B,yBAA4D,EACvF,kBAAiB,eAAwC,KAC1D,EAAE,EAA8I,CAAA;AAEnJ;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAdiB,EAAE,SAAS,IAAI,sBACrC,gBAAgB,UAC5B,MAAM,CAAC,EAAE,CAAC,aACP,QAAQ,EAAE,kBAEL,IAAI,EAAE,8BAEK,yBAAyB,oBACnC,eAAe,KACjC,EAAE,EAKwD,CAAA"}
@@ -1,152 +1,165 @@
1
1
  import { currentSerializationFormatVersion } from "@lionweb/json";
2
2
  import { byIdMap, groupBy, keepDefineds } from "@lionweb/ts-utils";
3
- import { defaultSimplisticHandler } from "./handler.js";
3
+ import { consoleProblemReporter } from "./reporter.js";
4
4
  import { builtinPropertyValueDeserializer } from "./m3/builtins.js";
5
5
  import { MemoisingSymbolTable } from "./m3/symbol-table.js";
6
6
  import { Classifier, Containment, Enumeration, PrimitiveType, Property, Reference } from "./m3/types.js";
7
7
  import { unresolved } from "./references.js";
8
8
  /**
9
- * @return a deserialization of a {@link LionWebJsonChunk}
9
+ * @return a {@link Deserializer} function.
10
10
  *
11
- * @param serializationChunk - a {@link SerializedModel model} from its LionWeb serialization JSON format
12
- * @param writer - a {@link Writer} that is used to instantiate nodes and set values on them
13
- * @param languages - a {@link Language language} that the serialized model is expected to conform to
14
- * @param dependentNodes - a collection of nodes from dependent models against which all references in the serialized model are supposed to resolve against
15
- * @param propertyValueDeserializer - a deserializer for values of properties (by default a {@link BuiltinPropertyValueDeserializer})
16
- * @param problemHandler - a handler for reporting problems (by default a {@link defaultSimplisticHandler})
11
+ * @param configuration - a {@link DeserializerConfiguration} object to configure the deserializer to return with.
17
12
  */
18
- export const deserializeSerializationChunk = (serializationChunk, writer, languages,
19
- // TODO facades <--> languages, so it's weird that it looks split up like this
20
- dependentNodes,
21
- // TODO (#13) see if you can turn this into [nodes: Node[], writer: Writer<Node>][] after all
22
- propertyValueDeserializer = builtinPropertyValueDeserializer, problemHandler = defaultSimplisticHandler) => {
23
- if (serializationChunk.serializationFormatVersion !== currentSerializationFormatVersion) {
24
- problemHandler.reportProblem(`can't deserialize from serialization format other than version "${currentSerializationFormatVersion}" - assuming that version`);
25
- }
26
- const symbolTable = new MemoisingSymbolTable(languages);
27
- const { nodes: serializedNodes } = serializationChunk;
28
- const serializedNodeById = byIdMap(serializedNodes);
29
- const deserializedNodeById = {};
30
- /**
31
- * Instantiates a {@link Node} from the given {@link LionWebJsonNode},
32
- * and stores it under its ID so references to it can be resolved.
33
- * For every serialized node, only one instance will ever be constructed (through memoisation).
34
- */
35
- const instantiateMemoised = (serNode, parent) => {
36
- if (serNode.id in deserializedNodeById) {
37
- return deserializedNodeById[serNode.id];
38
- }
39
- const node = instantiate(serNode, parent);
40
- if (node !== null) {
41
- deserializedNodeById[node.id] = node;
42
- }
43
- return node;
44
- };
45
- const referencesToInstall = [];
46
- const tryInstantiate = (parent, classifier, id, propertySettings) => {
47
- try {
48
- return writer.nodeFor(parent, classifier, id, propertySettings);
49
- }
50
- catch (e) {
51
- problemHandler.reportProblem(`error occurred during instantiation of a node for classifier ${classifier.name} with meta-pointer (${classifier.language.key}, ${classifier.language.version}, ${classifier.key}); reason:`);
52
- problemHandler.reportProblem(e.toString());
53
- return null;
13
+ export const deserializerWith = (configuration) => {
14
+ const symbolTable = new MemoisingSymbolTable(configuration.languages);
15
+ const { writer } = configuration;
16
+ const propertyValueDeserializer = configuration.propertyValueDeserializer ?? builtinPropertyValueDeserializer;
17
+ const problemReporter = configuration.problemReporter ?? consoleProblemReporter;
18
+ return (serializationChunk, dependentNodes = []) => {
19
+ if (serializationChunk.serializationFormatVersion !== currentSerializationFormatVersion) {
20
+ problemReporter.reportProblem(`can't deserialize from serialization format other than version "${currentSerializationFormatVersion}" - assuming that version`);
54
21
  }
55
- };
56
- /**
57
- * Instantiates a {@link Node} from its {@link LionWebJsonNode serialization}.
58
- */
59
- const instantiate = ({ id, classifier: classifierMetaPointer, properties, containments, references, annotations }, parent) => {
60
- const classifier = symbolTable.entityMatching(classifierMetaPointer);
61
- if (classifier === undefined || !(classifier instanceof Classifier)) {
62
- problemHandler.reportProblem(`can't deserialize node with id=${id}: can't find the classifier with key ${classifierMetaPointer.key} in language (${classifierMetaPointer.language}, ${classifierMetaPointer.version})`);
63
- return null;
64
- }
65
- const allFeatures = symbolTable.allFeaturesOfEntityMatching(classifierMetaPointer);
66
- const propertySettings = {};
67
- const serializedPropertiesPerKey = properties === undefined ? {} : groupBy(properties, sp => sp.property.key); // (this assumes no duplicate keys among properties!)
68
- if (properties !== undefined) {
69
- allFeatures
70
- .filter(feature => feature instanceof Property)
71
- .map(feature => feature)
72
- .forEach(property => {
73
- if (property.key in serializedPropertiesPerKey) {
74
- const value = serializedPropertiesPerKey[property.key][0].value;
75
- if (property.type instanceof PrimitiveType) {
76
- propertySettings[property.key] =
77
- value === null ? undefined : propertyValueDeserializer.deserializeValue(value, property);
78
- return;
79
- }
80
- if (property.type instanceof Enumeration) {
81
- const literal = property.type.literals.find(literal => literal.key === value);
82
- if (literal !== undefined) {
83
- propertySettings[property.key] = writer.encodingOf(literal);
22
+ const { nodes: serializedNodes } = serializationChunk;
23
+ const serializedNodeById = byIdMap(serializedNodes);
24
+ const deserializedNodeById = {};
25
+ /**
26
+ * Instantiates a {@link Node} from the given {@link LionWebJsonNode},
27
+ * and stores it under its ID so references to it can be resolved.
28
+ * For every serialized node, only one instance will ever be constructed (through memoisation).
29
+ */
30
+ const instantiateMemoised = (serNode, parent) => {
31
+ if (serNode.id in deserializedNodeById) {
32
+ return deserializedNodeById[serNode.id];
33
+ }
34
+ const node = instantiate(serNode, parent);
35
+ if (node !== null) {
36
+ deserializedNodeById[node.id] = node;
37
+ }
38
+ return node;
39
+ };
40
+ const referencesToInstall = [];
41
+ const tryInstantiate = (parent, classifier, id, propertySettings) => {
42
+ try {
43
+ return writer.nodeFor(parent, classifier, id, propertySettings);
44
+ }
45
+ catch (e) {
46
+ problemReporter.reportProblem(`error occurred during instantiation of a node for classifier ${classifier.name} with meta-pointer (${classifier.language.key}, ${classifier.language.version}, ${classifier.key}); reason:`);
47
+ problemReporter.reportProblem(e.toString());
48
+ return null;
49
+ }
50
+ };
51
+ /**
52
+ * Instantiates a {@link Node} from its {@link LionWebJsonNode serialization}.
53
+ */
54
+ const instantiate = ({ id, classifier: classifierMetaPointer, properties, containments, references, annotations }, parent) => {
55
+ const classifier = symbolTable.entityMatching(classifierMetaPointer);
56
+ if (classifier === undefined || !(classifier instanceof Classifier)) {
57
+ problemReporter.reportProblem(`can't deserialize node with id=${id}: can't find the classifier with key ${classifierMetaPointer.key} in language (${classifierMetaPointer.language}, ${classifierMetaPointer.version})`);
58
+ return null;
59
+ }
60
+ const allFeatures = symbolTable.allFeaturesOfEntityMatching(classifierMetaPointer);
61
+ const propertySettings = {};
62
+ const serializedPropertiesPerKey = properties === undefined ? {} : groupBy(properties, sp => sp.property.key); // (this assumes no duplicate keys among properties!)
63
+ if (properties !== undefined) {
64
+ allFeatures
65
+ .filter(feature => feature instanceof Property)
66
+ .map(feature => feature)
67
+ .forEach(property => {
68
+ if (property.key in serializedPropertiesPerKey) {
69
+ const value = serializedPropertiesPerKey[property.key][0].value;
70
+ if (property.type instanceof PrimitiveType) {
71
+ propertySettings[property.key] =
72
+ value === null ? undefined : propertyValueDeserializer.deserializeValue(value, property);
73
+ return;
74
+ }
75
+ if (property.type instanceof Enumeration) {
76
+ const literal = property.type.literals.find(literal => literal.key === value);
77
+ if (literal !== undefined) {
78
+ propertySettings[property.key] = writer.encodingOf(literal);
79
+ }
80
+ return;
84
81
  }
85
- return;
82
+ problemReporter.reportProblem(`property ${property.name} on classifier ${classifier.name} is not handled, because its type is neither a primitive type nor an enumeration`);
86
83
  }
87
- // (property is not handled, because neither a primitive type nor of enumeration type)
88
- }
89
- });
90
- }
91
- const node = tryInstantiate(parent, classifier, id, propertySettings);
92
- if (node === null) {
93
- return null;
94
- }
95
- const serializedContainmentsPerKey = containments === undefined ? {} : groupBy(containments, sp => sp.containment.key); // (this assumes no duplicate keys among containments!)
96
- const serializedReferencesPerKey = references === undefined ? {} : groupBy(references, sp => sp.reference.key); // (this assumes no duplicate keys among references!)
97
- allFeatures.forEach(feature => {
98
- if (feature instanceof Property && properties !== undefined && feature.key in serializedPropertiesPerKey) {
99
- writer.setFeatureValue(node, feature, propertySettings[feature.key]);
84
+ });
100
85
  }
101
- else if (feature instanceof Containment && containments !== undefined && feature.key in serializedContainmentsPerKey) {
102
- const childIds = serializedContainmentsPerKey[feature.key].flatMap(serChildren => serChildren.children);
103
- if (feature.multiple) {
104
- childIds.forEach(childId => {
105
- if (childId in serializedNodeById) {
106
- writer.setFeatureValue(node, feature, instantiateMemoised(serializedNodeById[childId], node));
107
- }
108
- });
86
+ const node = tryInstantiate(parent, classifier, id, propertySettings);
87
+ if (node === null) {
88
+ return null;
89
+ }
90
+ const serializedContainmentsPerKey = containments === undefined ? {} : groupBy(containments, sp => sp.containment.key); // (this assumes no duplicate keys among containments!)
91
+ const serializedReferencesPerKey = references === undefined ? {} : groupBy(references, sp => sp.reference.key); // (this assumes no duplicate keys among references!)
92
+ allFeatures.forEach(feature => {
93
+ if (feature instanceof Property && properties !== undefined && feature.key in serializedPropertiesPerKey) {
94
+ writer.setFeatureValue(node, feature, propertySettings[feature.key]);
109
95
  }
110
- else {
111
- if (childIds.length > 0) {
112
- // just set the 1st one:
113
- const firstChildId = childIds[0];
114
- if (firstChildId in serializedNodeById) {
115
- writer.setFeatureValue(node, feature, instantiateMemoised(serializedNodeById[firstChildId], node));
96
+ else if (feature instanceof Containment && containments !== undefined && feature.key in serializedContainmentsPerKey) {
97
+ const childIds = serializedContainmentsPerKey[feature.key].flatMap(serChildren => serChildren.children);
98
+ if (feature.multiple) {
99
+ childIds.forEach(childId => {
100
+ if (childId in serializedNodeById) {
101
+ writer.setFeatureValue(node, feature, instantiateMemoised(serializedNodeById[childId], node));
102
+ }
103
+ });
104
+ }
105
+ else {
106
+ if (childIds.length > 0) {
107
+ // just set the 1st one:
108
+ const firstChildId = childIds[0];
109
+ if (firstChildId in serializedNodeById) {
110
+ writer.setFeatureValue(node, feature, instantiateMemoised(serializedNodeById[firstChildId], node));
111
+ }
116
112
  }
117
113
  }
118
114
  }
119
- }
120
- else if (feature instanceof Reference && references !== undefined && feature.key in serializedReferencesPerKey) {
121
- const serRefs = (serializedReferencesPerKey[feature.key] ?? []).flatMap(serReferences => serReferences.targets.map(t => t.reference));
122
- referencesToInstall.push(...serRefs.filter(serRef => typeof serRef === "string").map(refId => [node, feature, refId]));
123
- }
115
+ else if (feature instanceof Reference && references !== undefined && feature.key in serializedReferencesPerKey) {
116
+ const serRefs = (serializedReferencesPerKey[feature.key] ?? []).flatMap(serReferences => serReferences.targets.map(t => t.reference));
117
+ referencesToInstall.push(...serRefs.filter(serRef => typeof serRef === "string").map(refId => [node, feature, refId]));
118
+ }
119
+ });
120
+ node.annotations = keepDefineds(annotations
121
+ .filter(annotationId => annotationId in serializedNodeById)
122
+ .map(annotationId => instantiateMemoised(serializedNodeById[annotationId])))
123
+ .map(annotation => annotation);
124
+ return node;
125
+ };
126
+ const rootLikeNodes = keepDefineds(serializedNodes
127
+ .filter(({ parent }) => parent === null || !(parent in serializedNodeById))
128
+ .map(serializedNode => instantiateMemoised(serializedNode)))
129
+ .map(node => node);
130
+ const dependentNodesById = byIdMap(dependentNodes);
131
+ referencesToInstall.forEach(([node, reference, refId]) => {
132
+ const target = deserializedNodeById[refId] ?? dependentNodesById[refId];
133
+ const value = (() => {
134
+ if (target === undefined) {
135
+ const metaTypeMessage = "concept" in node ? ` and (meta-)type ${node.concept}` : "";
136
+ problemReporter.reportProblem(`couldn't resolve the target with id=${refId} of a "${reference.name}" reference on the node with id=${node.id}${metaTypeMessage}`);
137
+ return unresolved;
138
+ }
139
+ return target;
140
+ })();
141
+ writer.setFeatureValue(node, reference, value);
124
142
  });
125
- node.annotations = keepDefineds(annotations
126
- .filter(annotationId => annotationId in serializedNodeById)
127
- .map(annotationId => instantiateMemoised(serializedNodeById[annotationId])))
128
- .map(annotation => annotation);
129
- return node;
143
+ return rootLikeNodes;
130
144
  };
131
- const rootLikeNodes = keepDefineds(serializedNodes
132
- .filter(({ parent }) => parent === null || !(parent in serializedNodeById))
133
- .map(serializedNode => instantiateMemoised(serializedNode)))
134
- .map(node => node);
135
- const dependentNodesById = byIdMap(dependentNodes);
136
- referencesToInstall.forEach(([node, reference, refId]) => {
137
- const target = deserializedNodeById[refId] ?? dependentNodesById[refId];
138
- const value = (() => {
139
- if (target === undefined) {
140
- const metaTypeMessage = "concept" in node ? ` and (meta-)type ${node.concept}` : "";
141
- problemHandler.reportProblem(`couldn't resolve the target with id=${refId} of a "${reference.name}" reference on the node with id=${node.id}${metaTypeMessage}`);
142
- return unresolved;
143
- }
144
- return target;
145
- })();
146
- writer.setFeatureValue(node, reference, value);
147
- });
148
- return rootLikeNodes;
149
145
  };
146
+ /**
147
+ * @return a deserialization of a {@link LionWebJsonChunk}.
148
+ *
149
+ * @param serializationChunk - a {@link SerializedModel model} from its LionWeb serialization JSON format
150
+ * @param writer - a {@link Writer} that is used to instantiate nodes and set values on them
151
+ * @param languages - {@link Language languages} that the serialized model is expected to conform to
152
+ * @param dependentNodes - a collection of nodes from dependent models against which all references in the serialized model are supposed to resolve against
153
+ * @param propertyValueDeserializer - a deserializer for values of properties (by default a {@link BuiltinPropertyValueDeserializer})
154
+ * @param problemReporter - an object for reporting problems (by default a {@link consoleProblemReporter})
155
+ *
156
+ * This is a legacy variant of {@link deserializerWith}, kept for backward compatibility, and to be deprecated and removed later.
157
+ */
158
+ export const deserializeSerializationChunk = (serializationChunk, writer, languages,
159
+ // TODO facades <--> languages, so it's weird that it looks split up like this
160
+ dependentNodes,
161
+ // TODO (#13) see if you can turn this into [nodes: Node[], writer: Writer<Node>][] after all
162
+ propertyValueDeserializer = builtinPropertyValueDeserializer, problemReporter = consoleProblemReporter) => deserializerWith({ writer, languages, propertyValueDeserializer, problemReporter: problemReporter })(serializationChunk, dependentNodes);
150
163
  /**
151
164
  * Alias for {@link deserializeSerializationChunk}.
152
165
  */
@@ -1 +1 @@
1
- {"version":3,"file":"deserializer.js","sourceRoot":"","sources":["../src/deserializer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deserializer.js","sourceRoot":"","sources":["../src/deserializer.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
- import { LionWebId } from "@lionweb/json";
1
+ import { LionWebId, LionWebJsonMetaPointer } from "@lionweb/json";
2
2
  import { Node } from "./types.js";
3
+ import { Feature } from "./m3/index.js";
3
4
  /**
4
5
  * @return a list of itself and the ancestors of the given {@link Node node}, in anti-chronological order.
5
6
  */
@@ -13,4 +14,8 @@ export declare const asIds: (nodeOrNulls: (Node | null)[]) => (LionWebId | null)
13
14
  * @return the id of the given {@link Node node}.
14
15
  */
15
16
  export declare const idOf: <T extends Node>({ id }: T) => LionWebId;
17
+ /**
18
+ * @return the {@link LionWebJsonMetaPointer} for the given {@link Feature}.
19
+ */
20
+ export declare const metaPointerFor: (feature: Feature) => LionWebJsonMetaPointer;
16
21
  //# sourceMappingURL=functions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../src/functions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAEzC,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAGjC;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,MAAM,IAAI,KAAG,IAAI,EAGjD,CAAA;AAGD;;;GAGG;AACH,eAAO,MAAM,KAAK,GAAI,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,KAAG,CAAC,SAAS,GAAG,IAAI,CAAC,EACQ,CAAA;AAG/E;;GAEG;AACH,eAAO,MAAM,IAAI,GAAI,CAAC,SAAS,IAAI,EAAE,QAAM,CAAC,KAAG,SACzC,CAAA"}
1
+ {"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../src/functions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AAEjE,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAGvC;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,MAAM,IAAI,KAAG,IAAI,EAGjD,CAAA;AAGD;;;GAGG;AACH,eAAO,MAAM,KAAK,GAAI,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,KAAG,CAAC,SAAS,GAAG,IAAI,CAAC,EACQ,CAAA;AAG/E;;GAEG;AACH,eAAO,MAAM,IAAI,GAAI,CAAC,SAAS,IAAI,EAAE,QAAM,CAAC,KAAG,SACzC,CAAA;AAGN;;GAEG;AACH,eAAO,MAAM,cAAc,GAAI,SAAS,OAAO,KAAG,sBAOjD,CAAA"}
package/dist/functions.js CHANGED
@@ -15,4 +15,15 @@ export const asIds = (nodeOrNulls) => nodeOrNulls.map((nodeOrNull) => nodeOrNull
15
15
  * @return the id of the given {@link Node node}.
16
16
  */
17
17
  export const idOf = ({ id }) => id;
18
+ /**
19
+ * @return the {@link LionWebJsonMetaPointer} for the given {@link Feature}.
20
+ */
21
+ export const metaPointerFor = (feature) => {
22
+ const { language } = feature.classifier;
23
+ return {
24
+ language: language.key,
25
+ version: language.version,
26
+ key: feature.key
27
+ };
28
+ };
18
29
  //# sourceMappingURL=functions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"functions.js","sourceRoot":"","sources":["../src/functions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAIjF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAU,EAAU,EAAE;IACnD,MAAM,SAAS,GAAG,CAAC,CAAO,EAAU,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;IAC/E,OAAO,0BAA0B,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,CAAA;AACzE,CAAC,CAAA;AAGD;;;GAGG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,WAA4B,EAAwB,EAAE,CACxE,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;AAG/E;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAAiB,EAAC,EAAE,EAAI,EAAa,EAAE,CACvD,EAAE,CAAA"}
1
+ {"version":3,"file":"functions.js","sourceRoot":"","sources":["../src/functions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAKjF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAU,EAAU,EAAE;IACnD,MAAM,SAAS,GAAG,CAAC,CAAO,EAAU,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;IAC/E,OAAO,0BAA0B,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,CAAA;AACzE,CAAC,CAAA;AAGD;;;GAGG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,WAA4B,EAAwB,EAAE,CACxE,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;AAG/E;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAAiB,EAAC,EAAE,EAAI,EAAa,EAAE,CACvD,EAAE,CAAA;AAGN;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAgB,EAA0B,EAAE;IACvE,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,UAAU,CAAA;IACvC,OAAO;QACH,QAAQ,EAAE,QAAQ,CAAC,GAAG;QACtB,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,GAAG,EAAE,OAAO,CAAC,GAAG;KACnB,CAAA;AACL,CAAC,CAAA"}
package/dist/index.d.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  export * from "./deserializer.js";
2
2
  export * from "./dynamic-facade.js";
3
3
  export * from "./extraction.js";
4
- export * from "./handler.js";
5
4
  export * from "./functions.js";
6
5
  export * from "./reading.js";
7
6
  export * from "./references.js";
7
+ export * from "./reporter.js";
8
8
  export * from "./serializer.js";
9
9
  export * from "./types.js";
10
10
  export * from "./version.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,yBAAyB,CAAA;AACvC,cAAc,eAAe,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,yBAAyB,CAAA;AACvC,cAAc,eAAe,CAAA"}
package/dist/index.js CHANGED
@@ -1,10 +1,10 @@
1
1
  export * from "./deserializer.js";
2
2
  export * from "./dynamic-facade.js";
3
3
  export * from "./extraction.js";
4
- export * from "./handler.js";
5
4
  export * from "./functions.js";
6
5
  export * from "./reading.js";
7
6
  export * from "./references.js";
7
+ export * from "./reporter.js";
8
8
  export * from "./serializer.js";
9
9
  export * from "./types.js";
10
10
  export * from "./version.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,yBAAyB,CAAA;AACvC,cAAc,eAAe,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,yBAAyB,CAAA;AACvC,cAAc,eAAe,CAAA"}
@@ -2,7 +2,7 @@ import { asMinimalJsonString } from "@lionweb/ts-utils";
2
2
  import { currentReleaseVersion } from "../version.js";
3
3
  import { LanguageFactory } from "./factory.js";
4
4
  import { Concept, lioncoreBuiltinsKey } from "./types.js";
5
- import { unresolved } from "../references.js";
5
+ import { isUnresolvedReference } from "../references.js";
6
6
  const lioncoreBuiltinsIdAndKeyGenerator = (...names) => [lioncoreBuiltinsKey, ...names.slice(1)].join("-");
7
7
  const factory = new LanguageFactory("LionCore_builtins", currentReleaseVersion, lioncoreBuiltinsIdAndKeyGenerator, lioncoreBuiltinsIdAndKeyGenerator);
8
8
  /*
@@ -100,7 +100,7 @@ export class BuiltinPropertyValueDeserializer extends DataTypeRegister {
100
100
  throw new Error(`can't deserialize undefined as the value of required property "${property.name}" (on classifier "${property.classifier.name}" in language "${property.classifier.language.name}")`);
101
101
  }
102
102
  const { type } = property;
103
- if (type === unresolved) {
103
+ if (isUnresolvedReference(type)) {
104
104
  throw new Error(`can't deserialize property "${property.name}" (on classifier "${property.classifier.name}" in language "${property.classifier.language.name}") with unspecified type`);
105
105
  }
106
106
  const specificDeserializer = this.byType(type);
@@ -140,7 +140,7 @@ export class BuiltinPropertyValueSerializer extends DataTypeRegister {
140
140
  throw new Error(`can't serialize undefined as the value of required property "${property.name}" (on classifier "${property.classifier.name}" in language "${property.classifier.language.name}")`);
141
141
  }
142
142
  const { type } = property;
143
- if (type === unresolved) {
143
+ if (isUnresolvedReference(type)) {
144
144
  throw new Error(`can't serialize property "${property.name}" (on classifier "${property.classifier.name}" in language "${property.classifier.language.name}") with unspecified type`);
145
145
  }
146
146
  const specificSerializer = this.byType(type);
@@ -1 +1 @@
1
- {"version":3,"file":"builtins.js","sourceRoot":"","sources":["../../src/m3/builtins.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builtins.js","sourceRoot":"","sources":["../../src/m3/builtins.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { LionWebJsonChunk } from "@lionweb/json";
2
- import { SimplisticHandler } from "../handler.js";
2
+ import { ProblemReporter } from "../reporter.js";
3
3
  import { Language } from "./types.js";
4
4
  /**
5
5
  * Deserializes languages that have been serialized into the LionWeb serialization JSON format
@@ -9,7 +9,11 @@ export declare const deserializeLanguages: (serializationChunk: LionWebJsonChunk
9
9
  /**
10
10
  * Deserializes languages that have been serialized into the LionWeb serialization JSON format
11
11
  * as an instance of the LionCore metametamodel, using {@link _M3Concept these type definitions}.
12
- * This function takes a handler to be able to see what problems occurred.
12
+ * This function takes a {@link ProblemReporter} to be able to see what problems occurred.
13
13
  */
14
- export declare const deserializeLanguagesWithHandler: (serializationChunk: LionWebJsonChunk, handler: SimplisticHandler, ...dependentLanguages: Language[]) => Language[];
14
+ export declare const deserializeLanguagesWithReporter: (serializationChunk: LionWebJsonChunk, problemReporter: ProblemReporter, ...dependentLanguages: Language[]) => Language[];
15
+ /**
16
+ * Legacy alias for {@link deserializeLanguagesWithReporter}, kept for backward compatibility, and to be deprecated and removed later.
17
+ */
18
+ export declare const deserializeLanguagesWithHandler: (serializationChunk: LionWebJsonChunk, problemReporter: ProblemReporter, ...dependentLanguages: Language[]) => Language[];
15
19
  //# sourceMappingURL=deserializer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"deserializer.d.ts","sourceRoot":"","sources":["../../src/m3/deserializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAGhD,OAAO,EAA4B,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAI3E,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAGrC;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAAI,oBAAoB,gBAAgB,EAAE,GAAG,oBAAoB,QAAQ,EAAE,KAAG,QAAQ,EACf,CAAA;AAExG;;;;GAIG;AACH,eAAO,MAAM,+BAA+B,GACxC,oBAAoB,gBAAgB,EACpC,SAAS,iBAAiB,EAC1B,GAAG,oBAAoB,QAAQ,EAAE,KAClC,QAAQ,EAU0E,CAAA"}
1
+ {"version":3,"file":"deserializer.d.ts","sourceRoot":"","sources":["../../src/m3/deserializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAGhD,OAAO,EAA0B,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAIxE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAGrC;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAAI,oBAAoB,gBAAgB,EAAE,GAAG,oBAAoB,QAAQ,EAAE,KAAG,QAAQ,EAChB,CAAA;AAEvG;;;;GAIG;AACH,eAAO,MAAM,gCAAgC,GACzC,oBAAoB,gBAAgB,EACpC,iBAAiB,eAAe,EAChC,GAAG,oBAAoB,QAAQ,EAAE,KAClC,QAAQ,EAU0E,CAAA;AAErF;;GAEG;AACH,eAAO,MAAM,+BAA+B,uBAlBpB,gBAAgB,mBACnB,eAAe,yBACT,QAAQ,EAAE,KAClC,QAAQ,EAeoE,CAAA"}