@lionweb/core 0.6.13-beta.7 → 0.7.0-alpha.10

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 (125) hide show
  1. package/CHANGELOG.md +29 -7
  2. package/dist/deserializer.d.ts +18 -9
  3. package/dist/deserializer.d.ts.map +1 -1
  4. package/dist/deserializer.js +40 -43
  5. package/dist/deserializer.js.map +1 -1
  6. package/dist/dynamic-facade.d.ts +15 -6
  7. package/dist/dynamic-facade.d.ts.map +1 -1
  8. package/dist/dynamic-facade.js +13 -5
  9. package/dist/dynamic-facade.js.map +1 -1
  10. package/dist/extraction.d.ts +15 -0
  11. package/dist/extraction.d.ts.map +1 -0
  12. package/dist/extraction.js +17 -0
  13. package/dist/extraction.js.map +1 -0
  14. package/dist/functions.d.ts +4 -3
  15. package/dist/functions.d.ts.map +1 -1
  16. package/dist/functions.js +1 -1
  17. package/dist/functions.js.map +1 -1
  18. package/dist/index.d.ts +4 -4
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +4 -4
  21. package/dist/index.js.map +1 -1
  22. package/dist/m1/reference-utils.d.ts +7 -7
  23. package/dist/m1/reference-utils.d.ts.map +1 -1
  24. package/dist/m1/reference-utils.js +10 -10
  25. package/dist/m1/reference-utils.js.map +1 -1
  26. package/dist/m3/builtins.d.ts +38 -17
  27. package/dist/m3/builtins.d.ts.map +1 -1
  28. package/dist/m3/builtins.js +66 -44
  29. package/dist/m3/builtins.js.map +1 -1
  30. package/dist/m3/constraints.d.ts.map +1 -1
  31. package/dist/m3/constraints.js +10 -5
  32. package/dist/m3/constraints.js.map +1 -1
  33. package/dist/m3/deserializer.d.ts +3 -3
  34. package/dist/m3/deserializer.d.ts.map +1 -1
  35. package/dist/m3/deserializer.js +4 -4
  36. package/dist/m3/deserializer.js.map +1 -1
  37. package/dist/m3/facade.d.ts +13 -4
  38. package/dist/m3/facade.d.ts.map +1 -1
  39. package/dist/m3/facade.js +17 -9
  40. package/dist/m3/facade.js.map +1 -1
  41. package/dist/m3/factory.d.ts +2 -2
  42. package/dist/m3/factory.d.ts.map +1 -1
  43. package/dist/m3/factory.js.map +1 -1
  44. package/dist/m3/functions.d.ts +33 -12
  45. package/dist/m3/functions.d.ts.map +1 -1
  46. package/dist/m3/functions.js +32 -14
  47. package/dist/m3/functions.js.map +1 -1
  48. package/dist/m3/index.d.ts +1 -0
  49. package/dist/m3/index.d.ts.map +1 -1
  50. package/dist/m3/index.js +1 -0
  51. package/dist/m3/index.js.map +1 -1
  52. package/dist/m3/lioncore.d.ts +2 -0
  53. package/dist/m3/lioncore.d.ts.map +1 -1
  54. package/dist/m3/lioncore.js +25 -60
  55. package/dist/m3/lioncore.js.map +1 -1
  56. package/dist/m3/reference-checker.d.ts.map +1 -1
  57. package/dist/m3/reference-checker.js +2 -2
  58. package/dist/m3/reference-checker.js.map +1 -1
  59. package/dist/m3/serializer.d.ts +2 -2
  60. package/dist/m3/serializer.d.ts.map +1 -1
  61. package/dist/m3/serializer.js +3 -3
  62. package/dist/m3/serializer.js.map +1 -1
  63. package/dist/m3/types.d.ts +26 -21
  64. package/dist/m3/types.d.ts.map +1 -1
  65. package/dist/m3/types.js +9 -4
  66. package/dist/m3/types.js.map +1 -1
  67. package/dist/reading.d.ts +45 -0
  68. package/dist/reading.d.ts.map +1 -0
  69. package/dist/reading.js +2 -0
  70. package/dist/reading.js.map +1 -0
  71. package/dist/references.d.ts +3 -3
  72. package/dist/references.d.ts.map +1 -1
  73. package/dist/serializer.d.ts +31 -10
  74. package/dist/serializer.d.ts.map +1 -1
  75. package/dist/serializer.js +111 -109
  76. package/dist/serializer.js.map +1 -1
  77. package/dist/symbol-table.d.ts +15 -15
  78. package/dist/symbol-table.d.ts.map +1 -1
  79. package/dist/symbol-table.js +2 -9
  80. package/dist/symbol-table.js.map +1 -1
  81. package/dist/types.d.ts +2 -10
  82. package/dist/types.d.ts.map +1 -1
  83. package/dist/types.js +1 -6
  84. package/dist/types.js.map +1 -1
  85. package/dist/writing.d.ts +49 -0
  86. package/dist/writing.d.ts.map +1 -0
  87. package/dist/writing.js +30 -0
  88. package/dist/writing.js.map +1 -0
  89. package/package.json +13 -7
  90. package/dist/facade.d.ts +0 -84
  91. package/dist/facade.d.ts.map +0 -1
  92. package/dist/facade.js +0 -41
  93. package/dist/facade.js.map +0 -1
  94. package/dist/serialization.d.ts +0 -52
  95. package/dist/serialization.d.ts.map +0 -1
  96. package/dist/serialization.js +0 -7
  97. package/dist/serialization.js.map +0 -1
  98. package/dist/utils/array-helpers.d.ts +0 -14
  99. package/dist/utils/array-helpers.d.ts.map +0 -1
  100. package/dist/utils/array-helpers.js +0 -15
  101. package/dist/utils/array-helpers.js.map +0 -1
  102. package/dist/utils/cycles.d.ts +0 -8
  103. package/dist/utils/cycles.d.ts.map +0 -1
  104. package/dist/utils/cycles.js +0 -26
  105. package/dist/utils/cycles.js.map +0 -1
  106. package/dist/utils/index.d.ts +0 -7
  107. package/dist/utils/index.d.ts.map +0 -1
  108. package/dist/utils/index.js +0 -7
  109. package/dist/utils/index.js.map +0 -1
  110. package/dist/utils/map-helpers.d.ts +0 -26
  111. package/dist/utils/map-helpers.d.ts.map +0 -1
  112. package/dist/utils/map-helpers.js +0 -41
  113. package/dist/utils/map-helpers.js.map +0 -1
  114. package/dist/utils/recursion.d.ts +0 -13
  115. package/dist/utils/recursion.d.ts.map +0 -1
  116. package/dist/utils/recursion.js +0 -21
  117. package/dist/utils/recursion.js.map +0 -1
  118. package/dist/utils/sorting.d.ts +0 -7
  119. package/dist/utils/sorting.d.ts.map +0 -1
  120. package/dist/utils/sorting.js +0 -7
  121. package/dist/utils/sorting.js.map +0 -1
  122. package/dist/utils/string-mapping.d.ts +0 -6
  123. package/dist/utils/string-mapping.d.ts.map +0 -1
  124. package/dist/utils/string-mapping.js +0 -10
  125. package/dist/utils/string-mapping.js.map +0 -1
@@ -2,10 +2,10 @@
2
2
  * TypeScript type definitions for the `LionCore` M3 (=meta-meta) model.
3
3
  * A LionWeb language (at the M2 meta level) can be represented as an instance of the {@link Language} type.
4
4
  */
5
- import { ResolveInfoDeducer } from "../facade.js";
5
+ import { LionWebId, LionWebJsonMetaPointer, LionWebKey } from "@lionweb/json";
6
+ import { ResolveInfoDeducer } from "../reading.js";
6
7
  import { MultiRef, SingleRef } from "../references.js";
7
- import { MetaPointer } from "../serialization.js";
8
- import { Id, Node } from "../types.js";
8
+ import { Node } from "../types.js";
9
9
  /**
10
10
  * The key of the LionCore language containing the built-ins.
11
11
  * (It's defined here because of instantiation order.)
@@ -17,7 +17,7 @@ interface INamed {
17
17
  declare const isINamed: (node: object) => node is INamed;
18
18
  declare const simpleNameDeducer: ResolveInfoDeducer<Node>;
19
19
  interface IKeyed extends INamed {
20
- key: Id;
20
+ key: LionWebId;
21
21
  }
22
22
  /**
23
23
  * An interface with one method to return a meta type,
@@ -34,23 +34,23 @@ interface IMetaTyped {
34
34
  declare abstract class M3Node implements IKeyed, IMetaTyped {
35
35
  metaType(): string;
36
36
  parent?: M3Node;
37
- readonly id: Id;
37
+ readonly id: LionWebId;
38
38
  name: string;
39
- key: Id;
40
- protected constructor(id: Id, name: string, key: Id, parent?: M3Node);
41
- havingKey(key: Id): this;
39
+ key: LionWebId;
40
+ protected constructor(id: LionWebId, name: string, key: LionWebId, parent?: M3Node);
41
+ havingKey(key: LionWebId): this;
42
42
  annotations: Node[];
43
43
  }
44
44
  declare abstract class Feature extends M3Node {
45
45
  optional: boolean;
46
- constructor(classifier: Classifier, name: string, key: string, id: Id);
46
+ constructor(classifier: Classifier, name: string, key: LionWebKey, id: LionWebId);
47
47
  isOptional(): this;
48
48
  get classifier(): Classifier;
49
49
  }
50
50
  declare class Property extends Feature {
51
51
  metaType(): string;
52
- type: SingleRef<Datatype>;
53
- ofType(type: Datatype): Property;
52
+ type: SingleRef<DataType>;
53
+ ofType(type: DataType): Property;
54
54
  }
55
55
  declare abstract class Link extends Feature {
56
56
  multiple: boolean;
@@ -65,13 +65,13 @@ declare class Reference extends Link {
65
65
  metaType(): string;
66
66
  }
67
67
  declare abstract class LanguageEntity extends M3Node {
68
- constructor(language: Language, name: string, key: Id, id: Id);
68
+ constructor(language: Language, name: string, key: LionWebId, id: LionWebId);
69
69
  get language(): Language;
70
70
  }
71
71
  declare abstract class Classifier extends LanguageEntity {
72
72
  features: Feature[];
73
73
  havingFeatures(...features: Feature[]): this;
74
- metaPointer(): MetaPointer;
74
+ metaPointer(): LionWebJsonMetaPointer;
75
75
  }
76
76
  declare class Concept extends Classifier {
77
77
  metaType(): string;
@@ -79,7 +79,7 @@ declare class Concept extends Classifier {
79
79
  partition: boolean;
80
80
  extends?: SingleRef<Concept>;
81
81
  implements: MultiRef<Interface>;
82
- constructor(language: Language, name: string, key: string, id: Id, abstract: boolean, extends_?: SingleRef<Concept>);
82
+ constructor(language: Language, name: string, key: LionWebKey, id: LionWebId, abstract: boolean, extends_?: SingleRef<Concept>);
83
83
  implementing(...interfaces: Interface[]): Concept;
84
84
  isPartition(): Concept;
85
85
  }
@@ -88,7 +88,7 @@ declare class Annotation extends Classifier {
88
88
  extends?: SingleRef<Annotation>;
89
89
  implements: MultiRef<Interface>;
90
90
  annotates: SingleRef<Classifier>;
91
- constructor(language: Language, name: string, key: string, id: Id, extends_?: SingleRef<Annotation>);
91
+ constructor(language: Language, name: string, key: LionWebKey, id: LionWebId, extends_?: SingleRef<Annotation>);
92
92
  implementing(...interfaces: Interface[]): Annotation;
93
93
  annotating(classifier: Classifier): Annotation;
94
94
  }
@@ -97,19 +97,24 @@ declare class Interface extends Classifier {
97
97
  extends: MultiRef<Interface>;
98
98
  extending(...interfaces: Interface[]): Interface;
99
99
  }
100
- declare abstract class Datatype extends LanguageEntity {
100
+ declare abstract class DataType extends LanguageEntity {
101
101
  }
102
- declare class PrimitiveType extends Datatype {
102
+ /**
103
+ * Misspelled alias of {@link DataType}, kept for backward compatibility, and to be deprecated and removed later.
104
+ */
105
+ declare abstract class Datatype extends DataType {
106
+ }
107
+ declare class PrimitiveType extends DataType {
103
108
  metaType(): string;
104
109
  }
105
- declare class Enumeration extends Datatype {
110
+ declare class Enumeration extends DataType {
106
111
  metaType(): string;
107
112
  literals: EnumerationLiteral[];
108
113
  havingLiterals(...literals: EnumerationLiteral[]): this;
109
114
  }
110
115
  declare class EnumerationLiteral extends M3Node {
111
116
  metaType(): string;
112
- constructor(enumeration: Enumeration, name: string, key: string, id: Id);
117
+ constructor(enumeration: Enumeration, name: string, key: LionWebKey, id: LionWebId);
113
118
  get enumeration(): Enumeration;
114
119
  }
115
120
  declare class Language extends M3Node {
@@ -117,7 +122,7 @@ declare class Language extends M3Node {
117
122
  version: string;
118
123
  entities: LanguageEntity[];
119
124
  dependsOn: MultiRef<Language>;
120
- constructor(name: string, version: string, id: Id, key: Id);
125
+ constructor(name: string, version: string, id: LionWebId, key: LionWebKey);
121
126
  havingEntities(...entities: LanguageEntity[]): Language;
122
127
  dependingOn(...languages: Language[]): Language;
123
128
  equals(that: Language): boolean;
@@ -128,6 +133,6 @@ declare class Language extends M3Node {
128
133
  * so they also implement {@link INamed} and {@link IKeyed}.
129
134
  */
130
135
  type M3Concept = Annotation | Concept | Containment | Enumeration | EnumerationLiteral | Interface | Language | PrimitiveType | Property | Reference;
131
- export { Annotation, Classifier, Concept, Containment, Datatype, Enumeration, EnumerationLiteral, Feature, Interface, Language, LanguageEntity, Link, PrimitiveType, Property, Reference, isINamed, lioncoreBuiltinsKey, simpleNameDeducer };
136
+ export { Annotation, Classifier, Concept, Containment, DataType, Datatype, Enumeration, EnumerationLiteral, Feature, Interface, Language, LanguageEntity, Link, PrimitiveType, Property, Reference, isINamed, lioncoreBuiltinsKey, simpleNameDeducer };
132
137
  export type { IKeyed, IMetaTyped, INamed, M3Concept, M3Node };
133
138
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/m3/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/m3/types.ts"],"names":[],"mappings":"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"}
package/dist/m3/types.js CHANGED
@@ -163,14 +163,19 @@ class Interface extends Classifier {
163
163
  return this;
164
164
  }
165
165
  }
166
- class Datatype extends LanguageEntity {
166
+ class DataType extends LanguageEntity {
167
167
  }
168
- class PrimitiveType extends Datatype {
168
+ /**
169
+ * Misspelled alias of {@link DataType}, kept for backward compatibility, and to be deprecated and removed later.
170
+ */
171
+ class Datatype extends DataType {
172
+ }
173
+ class PrimitiveType extends DataType {
169
174
  metaType() {
170
175
  return "PrimitiveType";
171
176
  }
172
177
  }
173
- class Enumeration extends Datatype {
178
+ class Enumeration extends DataType {
174
179
  constructor() {
175
180
  super(...arguments);
176
181
  this.literals = []; // (containment)
@@ -218,5 +223,5 @@ class Language extends M3Node {
218
223
  return this.key === that.key && this.version === that.version;
219
224
  }
220
225
  }
221
- export { Annotation, Classifier, Concept, Containment, Datatype, Enumeration, EnumerationLiteral, Feature, Interface, Language, LanguageEntity, Link, PrimitiveType, Property, Reference, isINamed, lioncoreBuiltinsKey, simpleNameDeducer };
226
+ export { Annotation, Classifier, Concept, Containment, DataType, Datatype, Enumeration, EnumerationLiteral, Feature, Interface, Language, LanguageEntity, Link, PrimitiveType, Property, Reference, isINamed, lioncoreBuiltinsKey, simpleNameDeducer };
222
227
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/m3/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/m3/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAuB,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAIlE;;;GAGG;AACH,MAAM,mBAAmB,GAAG,mBAAmB,CAAA;AAW/C,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAkB,EAAE,CAC9C,MAAM,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAA;AAEnD,MAAM,iBAAiB,GACnB,CAAC,IAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;AAiB1D;;;GAGG;AACH,MAAe,MAAM;IACjB,QAAQ;QACJ,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;IAClD,CAAC;IAUD,YAAsB,EAAa,EAAE,IAAY,EAAE,GAAc,EAAE,MAAe;QAUlF,gBAAW,GAAW,EAAE,CAAA,CAAC,gBAAgB;QATrC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;QACZ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACxB,CAAC;IACD,SAAS,CAAC,GAAc;QACpB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,OAAO,IAAI,CAAA;IACf,CAAC;CAEJ;AAED,MAAe,OAAQ,SAAQ,MAAM;IAEjC,kDAAkD;IAClD,YAAY,UAAsB,EAAE,IAAY,EAAE,GAAe,EAAE,EAAa;QAC5E,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,CAAC,CAAA;QAHpC,aAAQ,CAAC,cAAc,GAAG,KAAK,CAAA;IAI/B,CAAC;IACD,UAAU;QACN,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;QACpB,OAAO,IAAI,CAAA;IACf,CAAC;IACD,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,MAAqB,CAAA;IACrC,CAAC;CACJ;AAED,MAAM,QAAS,SAAQ,OAAO;IAA9B;;QAII,SAAI,GAAwB,UAAU,CAAA,CAAG,cAAc;IAK3D,CAAC;IARG,QAAQ;QACJ,OAAO,UAAU,CAAA;IACrB,CAAC;IAED,MAAM,CAAC,IAAc;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,OAAO,IAAI,CAAA;IACf,CAAC;CACJ;AAED,MAAe,IAAK,SAAQ,OAAO;IAAnC;;QACI,aAAQ,CAAC,cAAc,GAAG,KAAK,CAAA;QAC/B,SAAI,GAA0B,UAAU,CAAA,CAAG,cAAc;IAS7D,CAAC;IARG,UAAU;QACN,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;QACpB,OAAO,IAAI,CAAA;IACf,CAAC;IACD,MAAM,CAAC,IAAgB;QACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,OAAO,IAAI,CAAA;IACf,CAAC;CACJ;AAED,MAAM,WAAY,SAAQ,IAAI;IAC1B,QAAQ;QACJ,OAAO,aAAa,CAAA;IACxB,CAAC;CACJ;AAED,MAAM,SAAU,SAAQ,IAAI;IACxB,QAAQ;QACJ,OAAO,WAAW,CAAA;IACtB,CAAC;CACJ;AAED,MAAe,cAAe,SAAQ,MAAM;IACxC,YAAY,QAAkB,EAAE,IAAY,EAAE,GAAc,EAAE,EAAa;QACvE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAA;IAClC,CAAC;IACD,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,MAAmB,CAAA;IACnC,CAAC;CACJ;AAED,MAAe,UAAW,SAAQ,cAAc;IAAhD;;QACI,aAAQ,GAAc,EAAE,CAAA,CAAC,gBAAgB;IAa7C,CAAC;IAZG,cAAc,CAAC,GAAG,QAAmB;QACjC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QACvF,OAAO,IAAI,CAAA;IACf,CAAC;IACD,WAAW;QACP,MAAM,EAAC,QAAQ,EAAC,GAAG,IAAI,CAAA;QACvB,OAAO;YACH,QAAQ,EAAE,QAAQ,CAAC,GAAG;YACtB,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,GAAG,EAAE,IAAI,CAAC,GAAG;SAChB,CAAA;IACL,CAAC;CACJ;AAED,MAAM,OAAQ,SAAQ,UAAU;IAC5B,QAAQ;QACJ,OAAO,SAAS,CAAA;IACpB,CAAC;IAKD,YAAY,QAAkB,EAAE,IAAY,EAAE,GAAe,EAAE,EAAa,EAAE,QAAiB,EAAE,QAA6B;QAC1H,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAAA;QAFlC,eAAU,GAAwB,EAAE,CAAA,CAAE,cAAc;QAGhD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAA;QACvB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;IAC1B,CAAC;IACD,YAAY,CAAC,GAAG,UAAuB;QACnC,wEAAwE;QACxE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAA;QACnC,OAAO,IAAI,CAAA;IACf,CAAC;IACD,WAAW;QACP,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;QACrB,OAAO,IAAI,CAAA;IACf,CAAC;CACJ;AAED,MAAM,UAAW,SAAQ,UAAU;IAC/B,QAAQ;QACJ,OAAO,YAAY,CAAA;IACvB,CAAC;IAID,YAAY,QAAkB,EAAE,IAAY,EAAE,GAAe,EAAE,EAAa,EAAE,QAAgC;QAC1G,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAAA;QAHlC,eAAU,GAAwB,EAAE,CAAA,CAAC,cAAc;QACnD,cAAS,GAA0B,UAAU,CAAA,CAAG,cAAc;QAG1D,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAA;IAC3B,CAAC;IACD,YAAY,CAAC,GAAG,UAAuB;QACnC,wEAAwE;QACxE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAA;QACnC,OAAO,IAAI,CAAA;IACf,CAAC;IACD,UAAU,CAAC,UAAsB;QAC7B,IAAI,CAAC,SAAS,GAAG,UAAU,CAAA;QAC3B,OAAO,IAAI,CAAA;IACf,CAAC;CACJ;AAED,MAAM,SAAU,SAAQ,UAAU;IAAlC;;QAII,YAAO,GAAwB,EAAE,CAAA,CAAI,cAAc;IAMvD,CAAC;IATG,QAAQ;QACJ,OAAO,WAAW,CAAA;IACtB,CAAC;IAED,SAAS,CAAC,GAAG,UAAuB;QAChC,wEAAwE;QACxE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAA;QAChC,OAAO,IAAI,CAAA;IACf,CAAC;CACJ;AAED,MAAe,QAAS,SAAQ,cAAc;CAAG;AAEjD;;GAEG;AACH,MAAe,QAAS,SAAQ,QAAQ;CAAG;AAE3C,MAAM,aAAc,SAAQ,QAAQ;IAChC,QAAQ;QACJ,OAAO,eAAe,CAAA;IAC1B,CAAC;CACJ;AAED,MAAM,WAAY,SAAQ,QAAQ;IAAlC;;QAII,aAAQ,GAAyB,EAAE,CAAA,CAAC,gBAAgB;IAKxD,CAAC;IARG,QAAQ;QACJ,OAAO,aAAa,CAAA;IACxB,CAAC;IAED,cAAc,CAAC,GAAG,QAA8B;QAC5C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QACvF,OAAO,IAAI,CAAA;IACf,CAAC;CACJ;AAED,MAAM,kBAAmB,SAAQ,MAAM;IACnC,QAAQ;QACJ,OAAO,oBAAoB,CAAA;IAC/B,CAAC;IACD,YAAY,WAAwB,EAAE,IAAY,EAAE,GAAe,EAAE,EAAa;QAC9E,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,CAAC,CAAA;IACrC,CAAC;IACD,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,MAAsB,CAAA;IACtC,CAAC;CACJ;AAED,MAAM,QAAS,SAAQ,MAAM;IACzB,QAAQ;QACJ,OAAO,UAAU,CAAA;IACrB,CAAC;IAIG,uFAAuF;IAC3F,YAAY,IAAY,EAAE,OAAe,EAAE,EAAa,EAAE,GAAe;QACrE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,CAAA;QAJxB,aAAQ,GAAqB,EAAE,CAAA,CAAG,gBAAgB;QAClD,cAAS,GAAuB,EAAE,CAAA,CAAE,wBAAwB;QAIxD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IAC1B,CAAC;IACD,cAAc,CAAC,GAAG,QAA0B;QACxC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QACrF,OAAO,IAAI,CAAA;IACf,CAAC;IACD,WAAW,CAAC,GAAG,SAAqB;QAChC,IAAI,CAAC,SAAS,CAAC,IAAI,CACf,GAAG,SAAS;aACP,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,KAAK,mBAAmB,CAAC,CAClE,CAAA;QACD,OAAO,IAAI,CAAA;IACf,CAAC;IACD,MAAM,CAAC,IAAc;QACjB,OAAO,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,CAAA;IACjE,CAAC;CACJ;AAqBD,OAAO,EACH,UAAU,EACV,UAAU,EACV,OAAO,EACP,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,kBAAkB,EAClB,OAAO,EACP,SAAS,EACT,QAAQ,EACR,cAAc,EACd,IAAI,EACJ,aAAa,EACb,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,mBAAmB,EACnB,iBAAiB,EACpB,CAAA"}
@@ -0,0 +1,45 @@
1
+ import { Classifier, Enumeration, EnumerationLiteral, Feature } from "./m3/index.js";
2
+ import { Node } from "./types.js";
3
+ /**
4
+ * Type def. for functions that deduce the {@link Classifier classifier} of a given {@link Node node}.
5
+ */
6
+ export type ClassifierDeducer<NT extends Node> = (node: NT) => Classifier;
7
+ /**
8
+ * Type def. for functions that deduce the string value of the `resolveInfo` field of a
9
+ * {@link LionWebJsonReferenceTarget serialized reference target}, or {@code undefined}
10
+ * to indicate that no `resolveInfo` could be derived.
11
+ */
12
+ export type ResolveInfoDeducer<NT extends Node> = (node: NT) => string | undefined;
13
+ /**
14
+ * An interface that's used to parametrize generic serialization of
15
+ * (in-memory) nodes of the given type (parameter).
16
+ * Implementations of these interfaces {w|c}ould be:
17
+ * - specific to LionCore (so to match m3/types.ts)
18
+ * - generic to serialize {@link DynamicNode dynamic nodes}
19
+ */
20
+ export interface Reader<NT extends Node> {
21
+ /**
22
+ * @return The {@link Concept concept} of the given node
23
+ */
24
+ classifierOf: ClassifierDeducer<NT>;
25
+ /**
26
+ * @return The value of the given {@link Feature feature} on the given node.
27
+ */
28
+ getFeatureValue: (node: NT, feature: Feature) => unknown;
29
+ /**
30
+ * @return The {@link EnumerationLiteral} corresponding to
31
+ * the given {@link Enumeration} and the runtime encoding of a literal of it,
32
+ */
33
+ enumerationLiteralFrom: (encoding: unknown, enumeration: Enumeration) => EnumerationLiteral | null;
34
+ /**
35
+ * @return The string value of the `resolveInfo` field of a {@link LionWebJsonReferenceTarget serialized reference target},
36
+ * or {@code undefined} to indicate that no `resolveInfo` could be derived.
37
+ */
38
+ resolveInfoFor?: ResolveInfoDeducer<NT>;
39
+ }
40
+ /**
41
+ * Alias for {@link Reader}, kept for backward compatibility, and to be deprecated and removed later.
42
+ */
43
+ export interface ExtractionFacade<NT extends Node> extends Reader<NT> {
44
+ }
45
+ //# sourceMappingURL=reading.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reading.d.ts","sourceRoot":"","sources":["../src/reading.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACpF,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAGjC;;GAEG;AACH,MAAM,MAAM,iBAAiB,CAAC,EAAE,SAAS,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,UAAU,CAAA;AAEzE;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,CAAC,EAAE,SAAS,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,MAAM,GAAG,SAAS,CAAA;AAElF;;;;;;GAMG;AACH,MAAM,WAAW,MAAM,CAAC,EAAE,SAAS,IAAI;IAEnC;;OAEG;IACH,YAAY,EAAE,iBAAiB,CAAC,EAAE,CAAC,CAAA;IAEnC;;OAEG;IACH,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAA;IAGxD;;;OAGG;IACH,sBAAsB,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,KAAK,kBAAkB,GAAG,IAAI,CAAA;IAElG;;;OAGG;IACH,cAAc,CAAC,EAAE,kBAAkB,CAAC,EAAE,CAAC,CAAA;CAE1C;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAAC,EAAE,SAAS,IAAI,CAAE,SAAQ,MAAM,CAAC,EAAE,CAAC;CAAG"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=reading.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reading.js","sourceRoot":"","sources":["../src/reading.ts"],"names":[],"mappings":""}
@@ -1,4 +1,4 @@
1
- import { Id } from "./types.js";
1
+ import { LionWebId } from "@lionweb/json";
2
2
  /**
3
3
  * The `unresolved` symbol indicates a reference value which hasn't been resolved yet.
4
4
  * It differs from an unset (`undefined`) value.
@@ -17,7 +17,7 @@ export declare const isRef: <T>(ref?: SingleRef<T> | undefined) => ref is T;
17
17
  */
18
18
  export type MultiRef<T> = T[];
19
19
  /**
20
- * A type that expresses a value is either an {@link Id} or a value to indicate that resolution to a node previously failed.
20
+ * A type that expresses a value is either an {@link LionWebId} or a value to indicate that resolution to a node previously failed.
21
21
  */
22
- export type IdOrUnresolved = Id | typeof unresolved;
22
+ export type IdOrUnresolved = LionWebId | typeof unresolved;
23
23
  //# sourceMappingURL=references.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"references.d.ts","sourceRoot":"","sources":["../src/references.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,EAAE,EAAC,MAAM,YAAY,CAAA;AAG7B;;;GAGG;AACH,eAAO,MAAM,UAAU,MAAO,CAAA;AAE9B;;GAEG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,OAAO,UAAU,GAAG,CAAC,CAAA;AAEhD;;GAEG;AACH,eAAO,MAAM,KAAK,iDACyB,CAAA;AAE3C;;GAEG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,CAAA;AAG7B;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,EAAE,GAAG,OAAO,UAAU,CAAC"}
1
+ {"version":3,"file":"references.d.ts","sourceRoot":"","sources":["../src/references.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAGzC;;;GAGG;AACH,eAAO,MAAM,UAAU,MAAO,CAAA;AAE9B;;GAEG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,OAAO,UAAU,GAAG,CAAC,CAAA;AAEhD;;GAEG;AACH,eAAO,MAAM,KAAK,iDACyB,CAAA;AAE3C;;GAEG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,CAAA;AAG7B;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,OAAO,UAAU,CAAC"}
@@ -1,12 +1,20 @@
1
- import { ExtractionFacade } from "./facade.js";
2
- import { MetaPointer, SerializationChunk } from "./serialization.js";
1
+ import { LionWebJsonChunk, LionWebJsonMetaPointer } from "@lionweb/json";
2
+ import { Reader } from "./reading.js";
3
3
  import { Node } from "./types.js";
4
4
  import { Feature, Property } from "./m3/types.js";
5
- export interface PrimitiveTypeSerializer {
6
- serializeValue(value: unknown, property: Property): string | undefined;
5
+ /**
6
+ * Interface for objects that expose a method to serialize a property's value.
7
+ */
8
+ export interface PropertyValueSerializer {
9
+ serializeValue(value: unknown, property: Property): string | null;
10
+ }
11
+ /**
12
+ * Misspelled alias of {@link PropertyValueSerializer}, kept for backward compatibility, and to be deprecated and removed later.
13
+ */
14
+ export interface PrimitiveTypeSerializer extends PropertyValueSerializer {
7
15
  }
8
16
  /**
9
- * Type to provide options to the serializer.
17
+ * Type to provide (non-required) options to the serializer.
10
18
  */
11
19
  export type SerializationOptions = Partial<{
12
20
  /**
@@ -15,14 +23,27 @@ export type SerializationOptions = Partial<{
15
23
  * Default = true, meaning that empty feature values are *not* skipped.
16
24
  */
17
25
  serializeEmptyFeatures: boolean;
18
- primitiveTypeSerializer: PrimitiveTypeSerializer;
26
+ /**
27
+ * A {@link PropertyValueSerializer} implementation.
28
+ * Default = DefaultPropertyValueSerializer.
29
+ */
30
+ propertyValueSerializer: PropertyValueSerializer;
31
+ /**
32
+ * Misspelled alias of {@link #propertyValueSerializer}, kept for backward compatibility, and to be deprecated and removed later.
33
+ */
34
+ primitiveTypeSerializer: PropertyValueSerializer;
19
35
  }>;
20
36
  /**
21
- * @return the {@link MetaPointer} for the given {@link Feature}.
37
+ * @return the {@link LionWebJsonMetaPointer} for the given {@link Feature}.
38
+ */
39
+ export declare const metaPointerFor: (feature: Feature) => LionWebJsonMetaPointer;
40
+ /**
41
+ * @return a function that serializes the {@link Node nodes} passed to it.
22
42
  */
23
- export declare const metaPointerFor: (feature: Feature) => MetaPointer;
43
+ export declare const nodeSerializer: <NT extends Node>(reader: Reader<NT>, serializationOptions?: SerializationOptions) => (nodes: NT[]) => LionWebJsonChunk;
24
44
  /**
25
- * @return a {@link SerializationChunk} of the given model (i.e., an array of {@link Node nodes} - the first argument) to the LionWeb serialization JSON format.
45
+ * @return a {@link LionWebJsonChunk} of the given model (i.e., an array of {@link Node nodes} - the first argument) to the LionWeb serialization JSON format.
46
+ * <em>Note:</em> this function will be deprecated and removed later — use {@link nodeSerializer} instead.
26
47
  */
27
- export declare const serializeNodes: <NT extends Node>(nodes: NT[], extractionFacade: ExtractionFacade<NT>, primitiveTypeSerializerOrOptions?: PrimitiveTypeSerializer | SerializationOptions) => SerializationChunk;
48
+ export declare const serializeNodes: <NT extends Node>(nodes: NT[], reader: Reader<NT>, propertyValueSerializerOrOptions?: PropertyValueSerializer | SerializationOptions) => LionWebJsonChunk;
28
49
  //# sourceMappingURL=serializer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"serializer.d.ts","sourceRoot":"","sources":["../src/serializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAC,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAoC,WAAW,EAAE,kBAAkB,EAAiB,MAAM,oBAAoB,CAAA;AAErH,OAAO,EAAC,IAAI,EAAC,MAAM,YAAY,CAAA;AAG/B,OAAO,EAGH,OAAO,EAGP,QAAQ,EAGX,MAAM,eAAe,CAAA;AAItB,MAAM,WAAW,uBAAuB;IACpC,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAA;CACzE;AASD;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAC;IACvC;;;;OAIG;IACH,sBAAsB,EAAE,OAAO,CAAA;IAE/B,uBAAuB,EAAE,uBAAuB,CAAA;CACnD,CAAC,CAAA;AAGF;;GAEG;AACH,eAAO,MAAM,cAAc,YAAa,OAAO,KAAG,WAOjD,CAAA;AAGD;;GAEG;AACH,eAAO,MAAM,cAAc,4GAGY,uBAAuB,GAAG,oBAAoB,KAClF,kBAwHF,CAAA"}
1
+ {"version":3,"file":"serializer.d.ts","sourceRoot":"","sources":["../src/serializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,gBAAgB,EAChB,sBAAsB,EAEzB,MAAM,eAAe,CAAA;AAGtB,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAGjC,OAAO,EAGH,OAAO,EAGP,QAAQ,EAGX,MAAM,eAAe,CAAA;AAGtB;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACpC,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI,CAAA;CACpE;AAED;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,uBAAuB;CAAG;AAQ3E;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAC;IACvC;;;;OAIG;IACH,sBAAsB,EAAE,OAAO,CAAA;IAE/B;;;OAGG;IACH,uBAAuB,EAAE,uBAAuB,CAAA;IAEhD;;OAEG;IACH,uBAAuB,EAAE,uBAAuB,CAAA;CACnD,CAAC,CAAA;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,YAAa,OAAO,KAAG,sBAOjD,CAAA;AAGD;;GAEG;AACH,eAAO,MAAM,cAAc,+DAAgE,oBAAoB,sBAKrF,gBA8GzB,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,wFAGY,uBAAuB,GAAG,oBAAoB,KAClF,gBAQS,CAAA"}
@@ -1,15 +1,12 @@
1
- import { currentSerializationFormatVersion } from "./serialization.js";
1
+ import { currentSerializationFormatVersion } from "@lionweb/json";
2
+ import { asArray } from "@lionweb/ts-utils";
2
3
  import { asIds } from "./functions.js";
3
- import { DefaultPrimitiveTypeSerializer } from "./m3/builtins.js";
4
+ import { BuiltinPropertyValueSerializer } from "./m3/builtins.js";
4
5
  import { allFeaturesOf } from "./m3/functions.js";
5
6
  import { Containment, Enumeration, PrimitiveType, Property, Reference, simpleNameDeducer } from "./m3/types.js";
6
- import { asArray } from "./utils/array-helpers.js";
7
- const isPrimitiveTypeSerializer = (value) => typeof value === "object"
8
- && value !== null
9
- && "serializeValue" in value
10
- && typeof value.serializeValue === "function";
7
+ const isPropertyValueSerializer = (value) => typeof value === "object" && value !== null && "serializeValue" in value && typeof value.serializeValue === "function";
11
8
  /**
12
- * @return the {@link MetaPointer} for the given {@link Feature}.
9
+ * @return the {@link LionWebJsonMetaPointer} for the given {@link Feature}.
13
10
  */
14
11
  export const metaPointerFor = (feature) => {
15
12
  const { language } = feature.classifier;
@@ -20,117 +17,122 @@ export const metaPointerFor = (feature) => {
20
17
  };
21
18
  };
22
19
  /**
23
- * @return a {@link SerializationChunk} of the given model (i.e., an array of {@link Node nodes} - the first argument) to the LionWeb serialization JSON format.
20
+ * @return a function that serializes the {@link Node nodes} passed to it.
24
21
  */
25
- export const serializeNodes = (nodes, extractionFacade, primitiveTypeSerializerOrOptions) => {
26
- const primitiveTypeSerializer = (isPrimitiveTypeSerializer(primitiveTypeSerializerOrOptions)
27
- ? primitiveTypeSerializerOrOptions
28
- : primitiveTypeSerializerOrOptions?.primitiveTypeSerializer) ?? new DefaultPrimitiveTypeSerializer();
29
- const serializeEmptyFeatures = isPrimitiveTypeSerializer(primitiveTypeSerializerOrOptions)
30
- ? true
31
- : (primitiveTypeSerializerOrOptions?.serializeEmptyFeatures ?? true);
32
- const serializedNodes = []; // keep nodes as much as possible "in order"
33
- const ids = {}; // maintain a map to keep track of IDs of nodes that have been serialized
34
- const languagesUsed = [];
35
- const registerLanguageUsed = (language) => {
36
- if (!languagesUsed.some((languageUsed) => language.equals(languageUsed))) {
37
- languagesUsed.push(language);
38
- }
39
- };
40
- const visit = (node, parent) => {
41
- if (ids[node.id]) {
42
- return;
43
- }
44
- const classifier = extractionFacade.classifierOf(node);
45
- const language = classifier.language;
46
- registerLanguageUsed(language);
47
- const serializedNode = {
48
- id: node.id,
49
- classifier: classifier.metaPointer(),
50
- properties: [],
51
- containments: [],
52
- references: [],
53
- annotations: [],
54
- parent: null
22
+ export const nodeSerializer = (reader, serializationOptions) => {
23
+ const propertyValueSerializer = serializationOptions?.propertyValueSerializer ?? serializationOptions?.primitiveTypeSerializer ?? new BuiltinPropertyValueSerializer();
24
+ const serializeEmptyFeatures = serializationOptions?.serializeEmptyFeatures ?? true;
25
+ return (nodes) => {
26
+ const serializedNodes = []; // keep nodes as much as possible "in order"
27
+ const ids = {}; // maintain a map to keep track of IDs of nodes that have been serialized
28
+ const languagesUsed = [];
29
+ const registerLanguageUsed = (language) => {
30
+ if (!languagesUsed.some(languageUsed => language.equals(languageUsed))) {
31
+ languagesUsed.push(language);
32
+ }
33
+ // TODO could make this more efficient by using a hash table
55
34
  };
56
- serializedNodes.push(serializedNode);
57
- ids[node.id] = true;
58
- allFeaturesOf(classifier).forEach((feature) => {
59
- const value = extractionFacade.getFeatureValue(node, feature);
60
- const featureLanguage = feature.classifier.language;
61
- registerLanguageUsed(featureLanguage);
62
- const featureMetaPointer = metaPointerFor(feature);
63
- if (feature instanceof Property) {
64
- if (value === undefined && !serializeEmptyFeatures) {
65
- // for immediate backward compatibility: skip empty property values regardless of options?.skipEmptyValues
35
+ const visit = (node, parent) => {
36
+ if (node.id in ids) {
37
+ return;
38
+ }
39
+ const classifier = reader.classifierOf(node);
40
+ const language = classifier.language;
41
+ registerLanguageUsed(language);
42
+ const serializedNode = {
43
+ id: node.id,
44
+ classifier: classifier.metaPointer(),
45
+ properties: [],
46
+ containments: [],
47
+ references: [],
48
+ annotations: [],
49
+ parent: null
50
+ };
51
+ serializedNodes.push(serializedNode);
52
+ ids[node.id] = true;
53
+ allFeaturesOf(classifier).forEach(feature => {
54
+ const value = reader.getFeatureValue(node, feature);
55
+ const featureLanguage = feature.classifier.language;
56
+ registerLanguageUsed(featureLanguage);
57
+ const featureMetaPointer = metaPointerFor(feature);
58
+ if (feature instanceof Property) {
59
+ if (value === undefined && !serializeEmptyFeatures) {
60
+ // for immediate backward compatibility: skip empty property values regardless of options?.skipEmptyValues
61
+ return;
62
+ }
63
+ const encodedValue = (() => {
64
+ // (could also just inspect type of value:)
65
+ if (feature.type instanceof PrimitiveType) {
66
+ return propertyValueSerializer.serializeValue(value, feature);
67
+ }
68
+ if (feature.type instanceof Enumeration) {
69
+ return reader.enumerationLiteralFrom(value, feature.type)?.key;
70
+ }
71
+ return undefined;
72
+ })();
73
+ serializedNode.properties.push({
74
+ property: featureMetaPointer,
75
+ value: encodedValue ?? null // (undefined -> null)
76
+ });
66
77
  return;
67
78
  }
68
- const encodedValue = (() => {
69
- // (could also just inspect type of value:)
70
- if (feature.type instanceof PrimitiveType) {
71
- return primitiveTypeSerializer.serializeValue(value, feature);
79
+ if (feature instanceof Containment) {
80
+ const children = asArray(value);
81
+ if (children.length === 0 && !serializeEmptyFeatures) {
82
+ return;
72
83
  }
73
- if (feature.type instanceof Enumeration) {
74
- return extractionFacade.enumerationLiteralFrom(value, feature.type)?.key;
75
- }
76
- return undefined;
77
- })();
78
- serializedNode.properties.push({
79
- property: featureMetaPointer,
80
- value: encodedValue ?? null // (undefined -> null)
81
- });
82
- return;
83
- }
84
- if (feature instanceof Containment) {
85
- const children = asArray(value);
86
- if (children.length === 0 && !serializeEmptyFeatures) {
84
+ serializedNode.containments.push({
85
+ containment: featureMetaPointer,
86
+ children: asIds(children)
87
+ .filter(childId => childId !== null)
88
+ .map(childId => childId)
89
+ });
90
+ children.forEach(childOrNull => {
91
+ if (childOrNull !== null) {
92
+ visit(childOrNull, node);
93
+ }
94
+ });
87
95
  return;
88
96
  }
89
- serializedNode.containments.push({
90
- containment: featureMetaPointer,
91
- children: asIds(children)
92
- .filter((childId) => childId !== null)
93
- .map((childId) => childId)
94
- });
95
- children.forEach((childOrNull) => {
96
- if (childOrNull !== null) {
97
- visit(childOrNull, node);
97
+ if (feature instanceof Reference) {
98
+ // Note: value can be null === typeof unresolved, e.g. on an unset (or previously unresolved) single-valued reference
99
+ const targets = asArray(value);
100
+ if (targets.length === 0 && !serializeEmptyFeatures) {
101
+ return;
98
102
  }
99
- });
100
- return;
101
- }
102
- if (feature instanceof Reference) {
103
- // Note: value can be null === typeof unresolved, e.g. on an unset (or previously unresolved) single-valued reference
104
- const targets = asArray(value);
105
- if (targets.length === 0 && !serializeEmptyFeatures) {
103
+ serializedNode.references.push({
104
+ reference: featureMetaPointer,
105
+ targets: targets
106
+ .filter(tOrNull => tOrNull !== null) // (skip "non-connected" targets)
107
+ .map(t => t)
108
+ .map(t => ({
109
+ resolveInfo: (reader.resolveInfoFor ? reader.resolveInfoFor(t) : simpleNameDeducer(t)) ?? null,
110
+ reference: t.id
111
+ }))
112
+ });
106
113
  return;
107
114
  }
108
- serializedNode.references.push({
109
- reference: featureMetaPointer,
110
- targets: targets
111
- .filter((tOrNull) => tOrNull !== null) // (skip "non-connected" targets)
112
- .map((t) => t)
113
- .map((t) => ({
114
- resolveInfo: (extractionFacade.resolveInfoFor
115
- ? extractionFacade.resolveInfoFor(t)
116
- : simpleNameDeducer(t)) ?? null,
117
- reference: t.id
118
- }))
119
- });
120
- return;
121
- }
122
- });
123
- const annotations = asArray(node.annotations); // assumes that annotations also all are of type NT (which is not unreasonable)
124
- serializedNode.annotations = annotations.map((annotation) => annotation.id);
125
- annotations.forEach((annotation) => visit(annotation, node));
126
- serializedNode.parent = parent?.id ?? null; // (undefined -> null)
127
- };
128
- nodes.forEach((node) => visit(node, undefined));
129
- return {
130
- serializationFormatVersion: currentSerializationFormatVersion,
131
- languages: languagesUsed
132
- .map(({ key, version }) => ({ key, version })),
133
- nodes: serializedNodes
115
+ });
116
+ const annotations = asArray(node.annotations); // assumes that annotations also all are of type NT (which is not unreasonable)
117
+ serializedNode.annotations = annotations.map(annotation => annotation.id);
118
+ annotations.forEach(annotation => visit(annotation, node));
119
+ serializedNode.parent = parent?.id ?? null; // (undefined -> null)
120
+ };
121
+ nodes.forEach(node => visit(node, undefined));
122
+ return {
123
+ serializationFormatVersion: currentSerializationFormatVersion,
124
+ languages: languagesUsed.map(({ key, version }) => ({ key, version })),
125
+ nodes: serializedNodes
126
+ };
134
127
  };
135
128
  };
129
+ /**
130
+ * @return a {@link LionWebJsonChunk} of the given model (i.e., an array of {@link Node nodes} - the first argument) to the LionWeb serialization JSON format.
131
+ * <em>Note:</em> this function will be deprecated and removed later — use {@link nodeSerializer} instead.
132
+ */
133
+ export const serializeNodes = (nodes, reader, propertyValueSerializerOrOptions) => nodeSerializer(reader, isPropertyValueSerializer(propertyValueSerializerOrOptions)
134
+ ? {
135
+ propertyValueSerializer: propertyValueSerializerOrOptions
136
+ }
137
+ : propertyValueSerializerOrOptions)(nodes);
136
138
  //# sourceMappingURL=serializer.js.map