@lionweb/core 0.10.0-beta.0 → 0.10.0-beta.1

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 (56) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/deserializer.d.ts.map +1 -1
  3. package/dist/deserializer.js +27 -22
  4. package/dist/deserializer.js.map +1 -1
  5. package/dist/functions.d.ts +2 -3
  6. package/dist/functions.d.ts.map +1 -1
  7. package/dist/functions.js +2 -3
  8. package/dist/functions.js.map +1 -1
  9. package/dist/m1/reference-utils.d.ts.map +1 -1
  10. package/dist/m1/reference-utils.js +0 -1
  11. package/dist/m1/reference-utils.js.map +1 -1
  12. package/dist/m3/builtins-common.js +3 -3
  13. package/dist/m3/builtins-common.js.map +1 -1
  14. package/dist/m3/constraints.d.ts +5 -0
  15. package/dist/m3/constraints.d.ts.map +1 -1
  16. package/dist/m3/constraints.js +1 -1
  17. package/dist/m3/constraints.js.map +1 -1
  18. package/dist/m3/factory.d.ts +2 -2
  19. package/dist/m3/factory.d.ts.map +1 -1
  20. package/dist/m3/factory.js.map +1 -1
  21. package/dist/m3/functions.d.ts.map +1 -1
  22. package/dist/m3/functions.js +2 -2
  23. package/dist/m3/functions.js.map +1 -1
  24. package/dist/m3/types.d.ts +6 -2
  25. package/dist/m3/types.d.ts.map +1 -1
  26. package/dist/m3/types.js +10 -5
  27. package/dist/m3/types.js.map +1 -1
  28. package/dist/m3/versions/v2023_1/builtins-legacy.js +3 -3
  29. package/dist/m3/versions/v2023_1/builtins-legacy.js.map +1 -1
  30. package/dist/m3/versions/v2023_1/builtins.d.ts.map +1 -1
  31. package/dist/m3/versions/v2023_1/builtins.js +2 -1
  32. package/dist/m3/versions/v2023_1/builtins.js.map +1 -1
  33. package/dist/m3/versions/v2023_1/lioncore.d.ts.map +1 -1
  34. package/dist/m3/versions/v2023_1/lioncore.js +16 -15
  35. package/dist/m3/versions/v2023_1/lioncore.js.map +1 -1
  36. package/dist/references.d.ts +31 -8
  37. package/dist/references.d.ts.map +1 -1
  38. package/dist/references.js +41 -6
  39. package/dist/references.js.map +1 -1
  40. package/dist/serializer.d.ts.map +1 -1
  41. package/dist/serializer.js +23 -9
  42. package/dist/serializer.js.map +1 -1
  43. package/package.json +3 -3
  44. package/src/deserializer.ts +30 -27
  45. package/src/functions.ts +3 -4
  46. package/src/m1/reference-utils.ts +0 -1
  47. package/src/m3/builtins-common.ts +3 -3
  48. package/src/m3/constraints.ts +1 -1
  49. package/src/m3/factory.ts +10 -2
  50. package/src/m3/functions.ts +9 -3
  51. package/src/m3/types.ts +11 -5
  52. package/src/m3/versions/v2023_1/builtins-legacy.ts +3 -3
  53. package/src/m3/versions/v2023_1/builtins.ts +2 -1
  54. package/src/m3/versions/v2023_1/lioncore.ts +16 -15
  55. package/src/references.ts +46 -11
  56. package/src/serializer.ts +26 -11
@@ -1,6 +1,6 @@
1
1
  import { asMinimalJsonString } from "@lionweb/ts-utils";
2
2
  import { shouldBeIdentical } from "../../builtins-common.js";
3
- import { isUnresolvedReference } from "../../../references.js";
3
+ import { isRef } from "../../../references.js";
4
4
  import { v2023_1 } from "./version.js";
5
5
  class DataTypeRegistry {
6
6
  constructor() {
@@ -48,7 +48,7 @@ export class BuiltinPropertyValueDeserializer extends DataTypeRegistry {
48
48
  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}")`);
49
49
  }
50
50
  const { type } = property;
51
- if (isUnresolvedReference(type)) {
51
+ if (!isRef(type)) {
52
52
  throw new Error(`can't deserialize property "${property.name}" (on classifier "${property.classifier.name}" in language "${property.classifier.language.name}") with unspecified type`);
53
53
  }
54
54
  const specificDeserializer = this.byType(type);
@@ -88,7 +88,7 @@ export class BuiltinPropertyValueSerializer extends DataTypeRegistry {
88
88
  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}")`);
89
89
  }
90
90
  const { type } = property;
91
- if (isUnresolvedReference(type)) {
91
+ if (!isRef(type)) {
92
92
  throw new Error(`can't serialize property "${property.name}" (on classifier "${property.classifier.name}" in language "${property.classifier.language.name}") with unspecified type`);
93
93
  }
94
94
  const specificSerializer = this.byType(type);
@@ -1 +1 @@
1
- {"version":3,"file":"builtins-legacy.js","sourceRoot":"","sources":["../../../../src/m3/versions/v2023_1/builtins-legacy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builtins-legacy.js","sourceRoot":"","sources":["../../../../src/m3/versions/v2023_1/builtins-legacy.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"builtins.d.ts","sourceRoot":"","sources":["../../../../src/m3/versions/v2023_1/builtins.ts"],"names":[],"mappings":"AACA,OAAO,EACH,sBAAsB,EAMzB,MAAM,0BAA0B,CAAA;AA4BjC,eAAO,MAAM,sBAAsB,EAAE,sBAwCpC,CAAA;AAGD;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,mCAAmB,CAAA;AAChD;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;0DAAwC,CAAA;AACtE;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;CAAqC,CAAA;AACpE;;GAEG;AACH,eAAO,MAAM,eAAe;;CAAkC,CAAA;AAC9D;;GAEG;AACH,eAAO,MAAM,gBAAgB,0HAAuB,CAAA"}
1
+ {"version":3,"file":"builtins.d.ts","sourceRoot":"","sources":["../../../../src/m3/versions/v2023_1/builtins.ts"],"names":[],"mappings":"AACA,OAAO,EACH,sBAAsB,EAMzB,MAAM,0BAA0B,CAAA;AA6BjC,eAAO,MAAM,sBAAsB,EAAE,sBAwCpC,CAAA;AAGD;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,mCAAmB,CAAA;AAChD;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;0DAAwC,CAAA;AACtE;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;CAAqC,CAAA;AACpE;;GAEG;AACH,eAAO,MAAM,eAAe;;CAAkC,CAAA;AAC9D;;GAEG;AACH,eAAO,MAAM,gBAAgB,0HAAuB,CAAA"}
@@ -2,6 +2,7 @@ import { asMinimalJsonString } from "@lionweb/ts-utils";
2
2
  import { lioncoreBuiltinsIdAndKeyGenerator, newPropertyValueDeserializerRegistry, newPropertyValueSerializerRegistry, propertyValueDeserializerFrom, propertyValueSerializerFrom } from "../../builtins-common.js";
3
3
  import { isBuiltinNodeConcept } from "../../builtins-function.js";
4
4
  import { LanguageFactory } from "../../factory.js";
5
+ import { ConceptModifier } from "../../types.js";
5
6
  const factory = new LanguageFactory("LionCore_builtins", "2023.1", lioncoreBuiltinsIdAndKeyGenerator, lioncoreBuiltinsIdAndKeyGenerator);
6
7
  /*
7
8
  * ID == key: `LionCore-builtins-${qualified name _without_ "LionCore-builtins", dash-separated}`
@@ -10,7 +11,7 @@ const stringDataType = factory.primitiveType("String");
10
11
  const booleanDataType = factory.primitiveType("Boolean");
11
12
  const integerDataType = factory.primitiveType("Integer");
12
13
  const jsonDataType = factory.primitiveType("JSON");
13
- const node = factory.concept("Node", true);
14
+ const node = factory.concept("Node", ConceptModifier.abstract);
14
15
  const inamed = factory.interface("INamed");
15
16
  const inamed_name = factory.property(inamed, "name").ofType(stringDataType);
16
17
  export const lioncoreBuiltinsFacade = {
@@ -1 +1 @@
1
- {"version":3,"file":"builtins.js","sourceRoot":"","sources":["../../../../src/m3/versions/v2023_1/builtins.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builtins.js","sourceRoot":"","sources":["../../../../src/m3/versions/v2023_1/builtins.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"lioncore.d.ts","sourceRoot":"","sources":["../../../../src/m3/versions/v2023_1/lioncore.ts"],"names":[],"mappings":"AAEA,OAAO,EAA4B,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAcnF;;;;GAIG;AACH,eAAO,MAAM,QAAQ,mCAA4C,CAAA;AA6DjE,eAAO,MAAM,cAAc,EAAE,cAqB5B,CAAA;AAGD;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;CAA8B,CAAA;AAEvD;;GAEG;AACH,eAAO,MAAM,YAAY;;;;CAA8B,CAAA"}
1
+ {"version":3,"file":"lioncore.d.ts","sourceRoot":"","sources":["../../../../src/m3/versions/v2023_1/lioncore.ts"],"names":[],"mappings":"AAEA,OAAO,EAA4B,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAenF;;;;GAIG;AACH,eAAO,MAAM,QAAQ,mCAA4C,CAAA;AA6DjE,eAAO,MAAM,cAAc,EAAE,cAqB5B,CAAA;AAGD;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;CAA8B,CAAA;AAEvD;;GAEG;AACH,eAAO,MAAM,YAAY;;;;CAA8B,CAAA"}
@@ -1,6 +1,7 @@
1
1
  import { lioncoreBuiltinsFacade } from "./builtins.js";
2
2
  import { LanguageFactory } from "../../factory.js";
3
3
  import { generatedLionCoreKeyFrom } from "../../lioncore-common.js";
4
+ import { ConceptModifier } from "../../types.js";
4
5
  const factory = new LanguageFactory("LionCore_M3", "2023.1", (...names) => "-id-" + generatedLionCoreKeyFrom(...names), generatedLionCoreKeyFrom);
5
6
  /*
6
7
  * ID: `-id-${key}`
@@ -16,40 +17,40 @@ const { inamed } = lioncoreBuiltinsFacade.classifiers;
16
17
  const { booleanDataType, stringDataType } = lioncoreBuiltinsFacade.primitiveTypes;
17
18
  const ikeyed = factory.interface("IKeyed").extending(inamed);
18
19
  const ikeyed_key = factory.property(ikeyed, "key").ofType(stringDataType);
19
- const feature = factory.concept("Feature", true).implementing(ikeyed);
20
+ const feature = factory.concept("Feature", ConceptModifier.abstract).implementing(ikeyed);
20
21
  factory.property(feature, "optional").ofType(booleanDataType);
21
- const property = factory.concept("Property", false, feature);
22
+ const property = factory.concept("Property", ConceptModifier.concrete, feature);
22
23
  const property_type = factory.reference(property, "type");
23
- const link = factory.concept("Link", true, feature);
24
+ const link = factory.concept("Link", ConceptModifier.abstract, feature);
24
25
  factory.property(link, "multiple").ofType(booleanDataType);
25
26
  const link_type = factory.reference(link, "type");
26
- const containment = factory.concept("Containment", false, link);
27
- const reference = factory.concept("Reference", false, link);
28
- const languageEntity = factory.concept("LanguageEntity", true).implementing(ikeyed);
29
- const classifier = factory.concept("Classifier", true, languageEntity);
27
+ const containment = factory.concept("Containment", ConceptModifier.concrete, link);
28
+ const reference = factory.concept("Reference", ConceptModifier.concrete, link);
29
+ const languageEntity = factory.concept("LanguageEntity", ConceptModifier.abstract).implementing(ikeyed);
30
+ const classifier = factory.concept("Classifier", ConceptModifier.abstract, languageEntity);
30
31
  factory.containment(classifier, "features").isOptional().isMultiple().ofType(feature);
31
32
  link_type.ofType(classifier);
32
- const annotation = factory.concept("Annotation", false, classifier);
33
+ const annotation = factory.concept("Annotation", ConceptModifier.concrete, classifier);
33
34
  factory.reference(annotation, "annotates").isOptional().ofType(classifier);
34
35
  factory.reference(annotation, "extends").isOptional().ofType(annotation);
35
36
  const annotation_implements = factory.reference(annotation, "implements").isMultiple().isOptional();
36
- const concept = factory.concept("Concept", false, classifier);
37
+ const concept = factory.concept("Concept", ConceptModifier.concrete, classifier);
37
38
  const concept_abstract = factory.property(concept, "abstract").ofType(booleanDataType);
38
39
  factory.property(concept, "partition").ofType(booleanDataType);
39
40
  factory.reference(concept, "extends").isOptional().ofType(concept);
40
41
  const concept_implements = factory.reference(concept, "implements").isOptional().isMultiple();
41
- const interface_ = factory.concept("Interface", false, classifier);
42
+ const interface_ = factory.concept("Interface", ConceptModifier.concrete, classifier);
42
43
  factory.reference(interface_, "extends").isOptional().isMultiple().ofType(interface_);
43
44
  annotation_implements.ofType(interface_);
44
45
  concept_implements.ofType(interface_);
45
- const dataType = factory.concept("DataType", true, languageEntity);
46
+ const dataType = factory.concept("DataType", ConceptModifier.abstract, languageEntity);
46
47
  property_type.ofType(dataType);
47
- const primitiveType = factory.concept("PrimitiveType", false, dataType);
48
- const enumeration = factory.concept("Enumeration", false, dataType);
48
+ const primitiveType = factory.concept("PrimitiveType", ConceptModifier.concrete, dataType);
49
+ const enumeration = factory.concept("Enumeration", ConceptModifier.concrete, dataType);
49
50
  const enumeration_literals = factory.containment(enumeration, "literals").isMultiple().isOptional();
50
- const enumerationLiteral = factory.concept("EnumerationLiteral", false).implementing(ikeyed);
51
+ const enumerationLiteral = factory.concept("EnumerationLiteral", ConceptModifier.concrete).implementing(ikeyed);
51
52
  enumeration_literals.ofType(enumerationLiteral);
52
- const language = factory.concept("Language", false).implementing(ikeyed).isPartition();
53
+ const language = factory.concept("Language", ConceptModifier.concrete).implementing(ikeyed).isPartition();
53
54
  const language_version = factory.property(language, "version").ofType(stringDataType);
54
55
  factory.containment(language, "entities").isOptional().isMultiple().ofType(languageEntity);
55
56
  factory.reference(language, "dependsOn").isOptional().isMultiple().ofType(language);
@@ -1 +1 @@
1
- {"version":3,"file":"lioncore.js","sourceRoot":"","sources":["../../../../src/m3/versions/v2023_1/lioncore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,wBAAwB,EAAkB,MAAM,0BAA0B,CAAA;AAGnF,MAAM,OAAO,GAAG,IAAI,eAAe,CAC/B,aAAa,EACb,QAAQ,EACR,CAAC,GAAG,KAAK,EAAE,EAAE,CAAC,MAAM,GAAG,wBAAwB,CAAC,GAAG,KAAK,CAAC,EACzD,wBAAwB,CAC3B,CAAA;AACD;;;GAGG;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,aAAa,CAAC,CAAA;AAEjE,MAAM,EAAE,MAAM,EAAE,GAAG,sBAAsB,CAAC,WAAW,CAAA;AACrD,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,GAAG,sBAAsB,CAAC,cAAc,CAAA;AAEjF,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;AAC5D,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAA;AAEzE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;AACrE,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAA;AAE7D,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;AAC5D,MAAM,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;AAEzD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;AACnD,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAA;AAC1D,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;AAEjD,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;AAE/D,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;AAE3D,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;AAEnF,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,EAAE,cAAc,CAAC,CAAA;AACtE,OAAO,CAAC,WAAW,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;AACrF,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;AAE5B,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,EAAE,UAAU,CAAC,CAAA;AACnE,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;AAC1E,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;AACxE,MAAM,qBAAqB,GAAG,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,CAAA;AAEnG,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,CAAC,CAAA;AAC7D,MAAM,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAA;AACtF,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAA;AAC9D,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;AAClE,MAAM,kBAAkB,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,CAAA;AAE7F,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC,CAAA;AAClE,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;AAErF,qBAAqB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;AACxC,kBAAkB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;AAErC,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,EAAE,cAAc,CAAC,CAAA;AAClE,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;AAE9B,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,eAAe,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;AAEvE,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;AACnE,MAAM,oBAAoB,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,CAAA;AACnG,MAAM,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;AAC5F,oBAAoB,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAA;AAE/C,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAA;AACtF,MAAM,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAA;AACrF,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAA;AAC1F,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;AAGnF,MAAM,CAAC,MAAM,cAAc,GAAmB;IAC1C,QAAQ,EAAE,OAAO,CAAC,QAAQ;IAC1B,YAAY,EAAE;QACV,UAAU;QACV,UAAU;QACV,OAAO;QACP,SAAS,EAAE,UAAU;QACrB,WAAW;QACX,WAAW;QACX,kBAAkB;QAClB,MAAM;QACN,QAAQ;QACR,aAAa;QACb,QAAQ;QACR,SAAS;KACZ;IACD,YAAY,EAAE;QACV,gBAAgB;QAChB,UAAU;QACV,gBAAgB;KACnB;CACJ,CAAA;AAGD;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,cAAc,CAAC,YAAY,CAAA;AAEvD;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,cAAc,CAAC,YAAY,CAAA"}
1
+ {"version":3,"file":"lioncore.js","sourceRoot":"","sources":["../../../../src/m3/versions/v2023_1/lioncore.ts"],"names":[],"mappings":"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"}
@@ -1,32 +1,55 @@
1
+ import { LionWebId } from "@lionweb/json";
1
2
  import { Node } from "./types.js";
3
+ import { INamed } from "./m3/index.js";
2
4
  /**
3
- * The `unresolved` symbol indicates a reference value which hasn't been resolved yet.
5
+ * The `unresolved` symbol indicates a reference value which hasn't been resolved yet.
4
6
  * It differs from an unset (`undefined`) value.
5
7
  * This value shouldn’t be manipulated/compared to directly!
8
+ *
9
+ * @deprecated Use {@link referenceToSet} or {@link UnresolvedReference} instead.
6
10
  */
7
11
  export declare const unresolved: null;
8
12
  /**
9
- * Type for unresolved references.
13
+ * Representation of an unresolved reference.
14
+ * At most one of `targetId` or `resolveInfo` can be `undefined`.
15
+ *
16
+ * *Note* that this instance will **not** exhibit object equality,
17
+ * i.e.: the resolved target of an unresolved reference will be a different object!
10
18
  */
11
- export type UnresolvedReference = typeof unresolved;
19
+ export declare class UnresolvedReference {
20
+ readonly targetId?: LionWebId | undefined;
21
+ resolveInfo?: string | undefined;
22
+ constructor(targetId?: LionWebId | undefined, resolveInfo?: string | undefined);
23
+ toString: () => string;
24
+ }
12
25
  /**
13
- * @return a value of {@link UnresolvedReference} that’s a placeholder for a yet-to-set reference.
26
+ * A singleton representing an unset reference that’s meant to be set,
27
+ * distinguishing that from a reference that’s intentionally not set
28
+ * — which can only happen if that reference is (defined as) optional.
14
29
  */
15
- export declare const referenceToSet: () => null;
30
+ export declare const referenceToSet: unique symbol;
16
31
  /**
17
32
  * A type definition for a reference value that can be unresolved.
18
33
  * Note: this type is primarily meant to be used to type nodes’ properties,
19
34
  * but should be avoided as a return type for “auxiliary” functions.
20
35
  */
21
- export type SingleRef<NT extends Node> = NT | UnresolvedReference;
36
+ export type SingleRef<NT extends Node> = NT | UnresolvedReference | typeof referenceToSet;
22
37
  /**
23
- * @return whether a given (at most) single-valued reference actually refers to something.
38
+ * @return whether the given {@link UnresolvedReference} corresponds to an (explicitly-)unset (yet-to-set) reference.
24
39
  */
25
- export declare const isRef: <NT extends Node>(ref?: SingleRef<NT>) => ref is NT;
40
+ export declare const isReferenceToSet: <T extends Node>(ref?: SingleRef<T>) => ref is typeof referenceToSet;
26
41
  /**
27
42
  * Type function for the {@link UnresolvedReference} type.
28
43
  */
29
44
  export declare const isUnresolvedReference: <NT extends Node>(ref?: SingleRef<NT>) => ref is UnresolvedReference;
45
+ /**
46
+ * @return whether a given (at most) single-valued reference actually refers to something.
47
+ */
48
+ export declare const isRef: <NT extends Node>(ref?: SingleRef<NT>) => ref is NT;
49
+ /**
50
+ * @return either the referenced node’s name, or the `resolveInfo` if the reference is unresolved, or `undefined`.
51
+ */
52
+ export declare const tryToRenderAsText: <T extends Node & INamed>(ref?: SingleRef<T>) => string | undefined;
30
53
  /**
31
54
  * A type alias for a multi-valued reference, to make it look consistent with {@link SingleRef}.
32
55
  * Note: this type is primarily meant to be used to type nodes’ properties,
@@ -1 +1 @@
1
- {"version":3,"file":"references.d.ts","sourceRoot":"","sources":["../src/references.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAGjC;;;;GAIG;AACH,eAAO,MAAM,UAAU,MAAO,CAAA;AAE9B;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,OAAO,UAAU,CAAA;AAEnD;;GAEG;AACH,eAAO,MAAM,cAAc,YACb,CAAA;AAEd;;;;GAIG;AACH,MAAM,MAAM,SAAS,CAAC,EAAE,SAAS,IAAI,IAAI,EAAE,GAAG,mBAAmB,CAAA;AAEjE;;GAEG;AACH,eAAO,MAAM,KAAK,GAAI,EAAE,SAAS,IAAI,EAAE,MAAM,SAAS,CAAC,EAAE,CAAC,KAAG,GAAG,IAAI,EACzB,CAAA;AAE3C;;GAEG;AACH,eAAO,MAAM,qBAAqB,GAAI,EAAE,SAAS,IAAI,EAAE,MAAM,SAAS,CAAC,EAAE,CAAC,KAAG,GAAG,IAAI,mBAC9D,CAAA;AAGtB;;;;GAIG;AACH,MAAM,MAAM,QAAQ,CAAC,EAAE,SAAS,IAAI,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE,CAAA"}
1
+ {"version":3,"file":"references.d.ts","sourceRoot":"","sources":["../src/references.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAGzC,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAGtC;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,MAAO,CAAA;AAG9B;;;;;;GAMG;AACH,qBAAa,mBAAmB;aACA,QAAQ,CAAC,EAAE,SAAS;IAAS,WAAW,CAAC,EAAE,MAAM;gBAAjD,QAAQ,CAAC,EAAE,SAAS,YAAA,EAAS,WAAW,CAAC,EAAE,MAAM,YAAA;IAC7E,QAAQ,eACsF;CACjG;AAED;;;;GAIG;AACH,eAAO,MAAM,cAAc,eAA8B,CAAA;AAEzD;;;;GAIG;AACH,MAAM,MAAM,SAAS,CAAC,EAAE,SAAS,IAAI,IAAI,EAAE,GAAG,mBAAmB,GAAG,OAAO,cAAc,CAAA;AAEzF;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,IAAI,EAAE,MAAM,SAAS,CAAC,CAAC,CAAC,KAAG,GAAG,IAAI,OAAO,cAC1D,CAAA;AAE1B;;GAEG;AACH,eAAO,MAAM,qBAAqB,GAAI,EAAE,SAAS,IAAI,EAAE,MAAM,SAAS,CAAC,EAAE,CAAC,KAAG,GAAG,IAAI,mBAC9C,CAAA;AAEtC;;GAEG;AACH,eAAO,MAAM,KAAK,GAAI,EAAE,SAAS,IAAI,EAAE,MAAM,SAAS,CAAC,EAAE,CAAC,KAAG,GAAG,IAAI,EACU,CAAA;AAE9E;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,CAAC,SAAS,IAAI,GAAG,MAAM,EAAE,MAAM,SAAS,CAAC,CAAC,CAAC,KAAG,MAAM,GAAG,SAQxF,CAAA;AAGD;;;;GAIG;AACH,MAAM,MAAM,QAAQ,CAAC,EAAE,SAAS,IAAI,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE,CAAA"}
@@ -1,19 +1,54 @@
1
+ import { stringifyPropertiesOf } from "@lionweb/ts-utils";
1
2
  /**
2
- * The `unresolved` symbol indicates a reference value which hasn't been resolved yet.
3
+ * The `unresolved` symbol indicates a reference value which hasn't been resolved yet.
3
4
  * It differs from an unset (`undefined`) value.
4
5
  * This value shouldn’t be manipulated/compared to directly!
6
+ *
7
+ * @deprecated Use {@link referenceToSet} or {@link UnresolvedReference} instead.
5
8
  */
6
9
  export const unresolved = null;
7
10
  /**
8
- * @return a value of {@link UnresolvedReference} that’s a placeholder for a yet-to-set reference.
11
+ * Representation of an unresolved reference.
12
+ * At most one of `targetId` or `resolveInfo` can be `undefined`.
13
+ *
14
+ * *Note* that this instance will **not** exhibit object equality,
15
+ * i.e.: the resolved target of an unresolved reference will be a different object!
9
16
  */
10
- export const referenceToSet = () => unresolved;
17
+ export class UnresolvedReference {
18
+ constructor(targetId, resolveInfo) {
19
+ this.targetId = targetId;
20
+ this.resolveInfo = resolveInfo;
21
+ this.toString = () => `unresolved reference to target:` + stringifyPropertiesOf(this, "targetId", "resolveInfo");
22
+ }
23
+ }
11
24
  /**
12
- * @return whether a given (at most) single-valued reference actually refers to something.
25
+ * A singleton representing an unset reference that’s meant to be set,
26
+ * distinguishing that from a reference that’s intentionally not set
27
+ * — which can only happen if that reference is (defined as) optional.
28
+ */
29
+ export const referenceToSet = Symbol("<unset reference>");
30
+ /**
31
+ * @return whether the given {@link UnresolvedReference} corresponds to an (explicitly-)unset (yet-to-set) reference.
13
32
  */
14
- export const isRef = (ref) => ref !== undefined && ref !== unresolved;
33
+ export const isReferenceToSet = (ref) => ref === referenceToSet;
15
34
  /**
16
35
  * Type function for the {@link UnresolvedReference} type.
17
36
  */
18
- export const isUnresolvedReference = (ref) => ref === unresolved;
37
+ export const isUnresolvedReference = (ref) => ref instanceof UnresolvedReference;
38
+ /**
39
+ * @return whether a given (at most) single-valued reference actually refers to something.
40
+ */
41
+ export const isRef = (ref) => ref !== undefined && !isReferenceToSet(ref) && !isUnresolvedReference(ref);
42
+ /**
43
+ * @return either the referenced node’s name, or the `resolveInfo` if the reference is unresolved, or `undefined`.
44
+ */
45
+ export const tryToRenderAsText = (ref) => {
46
+ if (ref === undefined || isReferenceToSet(ref)) {
47
+ return undefined;
48
+ }
49
+ if (isUnresolvedReference(ref)) {
50
+ return ref.resolveInfo;
51
+ }
52
+ return ref.name;
53
+ };
19
54
  //# sourceMappingURL=references.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"references.js","sourceRoot":"","sources":["../src/references.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAA;AAO9B;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE,CAC/B,UAAU,CAAA;AASd;;GAEG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAkB,GAAmB,EAAa,EAAE,CACrE,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,UAAU,CAAA;AAE3C;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAkB,GAAmB,EAA8B,EAAE,CACtG,GAAG,KAAK,UAAU,CAAA"}
1
+ {"version":3,"file":"references.js","sourceRoot":"","sources":["../src/references.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAMzD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAA;AAG9B;;;;;;GAMG;AACH,MAAM,OAAO,mBAAmB;IAC5B,YAA4B,QAAoB,EAAS,WAAoB;QAAjD,aAAQ,GAAR,QAAQ,CAAY;QAAS,gBAAW,GAAX,WAAW,CAAS;QAC7E,aAAQ,GAAG,GAAG,EAAE,CACZ,iCAAiC,GAAG,qBAAqB,CAAC,IAAI,EAAE,UAAU,EAAE,aAAa,CAAC,CAAA;IAFd,CAAC;CAGpF;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAA;AASzD;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAiB,GAAkB,EAAgC,EAAE,CACjG,GAAG,KAAK,cAAc,CAAA;AAE1B;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAkB,GAAmB,EAA8B,EAAE,CACtG,GAAG,YAAY,mBAAmB,CAAA;AAEtC;;GAEG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAkB,GAAmB,EAAa,EAAE,CACrE,GAAG,KAAK,SAAS,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAA;AAE9E;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAA0B,GAAkB,EAAsB,EAAE;IACjG,IAAI,GAAG,KAAK,SAAS,IAAI,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7C,OAAO,SAAS,CAAA;IACpB,CAAC;IACD,IAAI,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,GAAG,CAAC,WAAW,CAAA;IAC1B,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,CAAA;AACnB,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"serializer.d.ts","sourceRoot":"","sources":["../src/serializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,gBAAgB,EAAmB,MAAM,eAAe,CAAA;AAG5E,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAEjC,OAAO,EAOH,QAAQ,EAGX,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAIhD;;GAEG;AACH,MAAM,MAAM,UAAU,CAAC,EAAE,SAAS,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,gBAAgB,CAAA;AAG3E;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACpC,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI,CAAA;CACpE;AAED;;;;GAIG;AACH,MAAM,WAAW,uBAAwB,SAAQ,uBAAuB;CAAG;AAQ3E;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAC;IAEvC;;;;OAIG;IACH,sBAAsB,EAAE,OAAO,CAAA;IAE/B;;;;OAIG;IACH,uBAAuB,EAAE,uBAAuB,CAAA;IAEhD;;;;OAIG;IACH,uBAAuB,EAAE,uBAAuB,CAAA;CAEnD,CAAC,CAAA;AAGF;;;;;;GAMG;AACH,MAAM,MAAM,uBAAuB,CAAC,EAAE,SAAS,IAAI,EAAE,EAAE,SAAS,IAAI,GAAG,EAAE,IAAI;IACzE;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IAEtB;;;OAGG;IACH,cAAc,CAAC,EAAE,cAAc,CAAA;CAClC,GAAG,oBAAoB,CAAA;AAGxB;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,GAAI,EAAE,SAAS,IAAI,EAAE,EAAE,SAAS,IAAI,GAAG,EAAE,EAAE,QAAQ,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,uBAAuB,oBAAoB,KAAG,UAAU,CAAC,EAAE,CAClG,CAAA;AAGvD;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,EAAE,SAAS,IAAI,EAAE,EAAE,SAAS,IAAI,GAAG,EAAE,EAAE,eAAe,uBAAuB,CAAC,EAAE,EAAE,EAAE,CAAC,KAAG,UAAU,CAAC,EAAE,CA4InI,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,EAAE,SAAS,IAAI,EAAE,EAAE,SAAS,IAAI,GAAG,EAAE,EAChE,OAAO,EAAE,EAAE,EACX,QAAQ,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,EACtB,mCAAmC,uBAAuB,GAAG,oBAAoB,KAClF,gBAQS,CAAA"}
1
+ {"version":3,"file":"serializer.d.ts","sourceRoot":"","sources":["../src/serializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,gBAAgB,EAA+C,MAAM,eAAe,CAAA;AAGxG,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAErC,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAEjC,OAAO,EAOH,QAAQ,EAGX,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAIhD;;GAEG;AACH,MAAM,MAAM,UAAU,CAAC,EAAE,SAAS,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,gBAAgB,CAAA;AAG3E;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACpC,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI,CAAA;CACpE;AAED;;;;GAIG;AACH,MAAM,WAAW,uBAAwB,SAAQ,uBAAuB;CAAG;AAQ3E;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAC;IAEvC;;;;OAIG;IACH,sBAAsB,EAAE,OAAO,CAAA;IAE/B;;;;OAIG;IACH,uBAAuB,EAAE,uBAAuB,CAAA;IAEhD;;;;OAIG;IACH,uBAAuB,EAAE,uBAAuB,CAAA;CAEnD,CAAC,CAAA;AAGF;;;;;;GAMG;AACH,MAAM,MAAM,uBAAuB,CAAC,EAAE,SAAS,IAAI,EAAE,EAAE,SAAS,IAAI,GAAG,EAAE,IAAI;IACzE;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IAEtB;;;OAGG;IACH,cAAc,CAAC,EAAE,cAAc,CAAA;CAClC,GAAG,oBAAoB,CAAA;AAGxB;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,GAAI,EAAE,SAAS,IAAI,EAAE,EAAE,SAAS,IAAI,GAAG,EAAE,EAAE,QAAQ,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,uBAAuB,oBAAoB,KAAG,UAAU,CAAC,EAAE,CAClG,CAAA;AAGvD;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,EAAE,SAAS,IAAI,EAAE,EAAE,SAAS,IAAI,GAAG,EAAE,EAAE,eAAe,uBAAuB,CAAC,EAAE,EAAE,EAAE,CAAC,KAAG,UAAU,CAAC,EAAE,CA0JnI,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,EAAE,SAAS,IAAI,EAAE,EAAE,SAAS,IAAI,GAAG,EAAE,EAChE,OAAO,EAAE,EAAE,EACX,QAAQ,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,EACtB,mCAAmC,uBAAuB,GAAG,oBAAoB,KAClF,gBAQS,CAAA"}
@@ -1,5 +1,6 @@
1
1
  import { asArray, keepDefineds, lazyMapGet, uniquesAmong } from "@lionweb/ts-utils";
2
2
  import { asIds, metaPointerForFeature } from "./functions.js";
3
+ import { isRef, isReferenceToSet, UnresolvedReference } from "./references.js";
3
4
  import { inheritsDirectlyFrom } from "./m3/functions.js";
4
5
  import { Containment, Enumeration, PrimitiveType, Property, Reference, simpleNameDeducer } from "./m3/types.js";
5
6
  import { LionWebVersions } from "./m3/versions.js";
@@ -94,8 +95,7 @@ export const serializerWith = (configuration) => {
94
95
  }
95
96
  serializedNode.containments.push({
96
97
  containment: featureMetaPointer,
97
- children: keepDefineds(asIds(children))
98
- .map(childId => childId)
98
+ children: asIds(keepDefineds(children))
99
99
  });
100
100
  children.forEach(childOrNull => {
101
101
  if (childOrNull !== null) {
@@ -105,18 +105,32 @@ export const serializerWith = (configuration) => {
105
105
  return;
106
106
  }
107
107
  if (feature instanceof Reference) {
108
- // Note: value can be null === typeof unresolved, e.g. on an unset (or previously unresolved) single-valued reference
109
- const targets = asArray(value);
108
+ const targets = asArray(value).filter((ref) => {
109
+ if (isRef(ref)) {
110
+ return true; // (1) ref is a node, having an ID
111
+ }
112
+ if (isReferenceToSet(ref)) {
113
+ return false;
114
+ }
115
+ return ref.targetId !== undefined || ref.resolveInfo !== undefined; // (2) not both are undefined
116
+ });
110
117
  if (targets.length === 0 && !serializeEmptyFeatures) {
111
118
  return;
112
119
  }
113
120
  serializedNode.references.push({
114
121
  reference: featureMetaPointer,
115
- targets: keepDefineds(targets) // (skip "non-connected" targets)
116
- .map(t => ({
117
- resolveInfo: (reader.resolveInfoFor ? reader.resolveInfoFor(t, feature) : simpleNameDeducer(t, feature)) ?? null,
118
- reference: t.id
119
- }))
122
+ targets: targets
123
+ .map((t) => t instanceof UnresolvedReference
124
+ ? {
125
+ resolveInfo: t.resolveInfo ?? null,
126
+ reference: t.targetId ?? null
127
+ // at least one of these will be non-null <== (2)
128
+ }
129
+ : {
130
+ resolveInfo: (reader.resolveInfoFor ? reader.resolveInfoFor(t, feature) : simpleNameDeducer(t, feature)) ?? null,
131
+ reference: t.id
132
+ // reference will be a non-null string (~(1))
133
+ })
120
134
  });
121
135
  return;
122
136
  }
@@ -1 +1 @@
1
- {"version":3,"file":"serializer.js","sourceRoot":"","sources":["../src/serializer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serializer.js","sourceRoot":"","sources":["../src/serializer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lionweb/core",
3
- "version": "0.10.0-beta.0",
3
+ "version": "0.10.0-beta.1",
4
4
  "description": "LionWeb core for {Java|Type}Script",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -27,7 +27,7 @@
27
27
  "release": "npm publish"
28
28
  },
29
29
  "dependencies": {
30
- "@lionweb/json": "0.10.0-beta.0",
31
- "@lionweb/ts-utils": "0.10.0-beta.0"
30
+ "@lionweb/json": "0.10.0-beta.1",
31
+ "@lionweb/ts-utils": "0.10.0-beta.1"
32
32
  }
33
33
  }
@@ -6,7 +6,7 @@ import { MemoisingSymbolTable } from "./m3/symbol-table.js"
6
6
  import { Classifier, Containment, Enumeration, Language, PrimitiveType, Property, Reference } from "./m3/types.js"
7
7
  import { LionWebVersion } from "./m3/version.js"
8
8
  import { LionWebVersions } from "./m3/versions.js"
9
- import { unresolved } from "./references.js"
9
+ import { UnresolvedReference } from "./references.js"
10
10
  import { Node } from "./types.js"
11
11
 
12
12
  /**
@@ -105,7 +105,7 @@ export const deserializerWith = <NT extends Node>(configuration: DeserializerCon
105
105
  return node
106
106
  }
107
107
 
108
- type ReferenceToInstall = [node: NT, feature: Reference, refId: LionWebId]
108
+ type ReferenceToInstall = [node: NT, feature: Reference, refId: LionWebId, resolveInfo?: string]
109
109
  const referencesToInstall: ReferenceToInstall[] = []
110
110
 
111
111
  const tryInstantiate = (
@@ -156,7 +156,6 @@ export const deserializerWith = <NT extends Node>(configuration: DeserializerCon
156
156
  if (properties !== undefined) {
157
157
  allFeatures
158
158
  .filter(feature => feature instanceof Property)
159
- .map(feature => feature as Property)
160
159
  .forEach(property => {
161
160
  if (property.key in serializedPropertiesPerKey) {
162
161
  const value = serializedPropertiesPerKey[property.key][0].value
@@ -190,29 +189,33 @@ export const deserializerWith = <NT extends Node>(configuration: DeserializerCon
190
189
  writer.setFeatureValue(node, feature, propertySettings[feature.key])
191
190
  } else if (feature instanceof Containment && containments !== undefined && feature.key in serializedContainmentsPerKey) {
192
191
  const childIds = serializedContainmentsPerKey[feature.key].flatMap(serChildren => serChildren.children) as LionWebId[]
193
- if (feature.multiple) {
194
- childIds.forEach(childId => {
195
- if (childId in serializedNodeById) {
196
- writer.setFeatureValue(node, feature, instantiateMemoised(serializedNodeById[childId], node))
197
- }
198
- })
199
- } else {
200
- if (childIds.length > 0) {
201
- // just set the 1st one:
202
- const firstChildId = childIds[0]
203
- if (firstChildId in serializedNodeById) {
204
- writer.setFeatureValue(node, feature, instantiateMemoised(serializedNodeById[firstChildId], node))
192
+ const deserializeChild = (childId: LionWebId) => {
193
+ if (childId in serializedNodeById) {
194
+ const child = instantiateMemoised(serializedNodeById[childId], node)
195
+ if (child !== null) {
196
+ writer.setFeatureValue(node, feature, child)
197
+ } else {
198
+ problemReporter.reportProblem(`child with id=${childId} is not instantiable, so can’t add it to containment ${feature.name} on node with id=${node.id}`)
199
+ // TODO set/add an UnresolvedContainment?
205
200
  }
201
+ } else {
202
+ problemReporter.reportProblem(`child with id=${childId} doesn’t reside in this serialization chunk, so can’t add it to containment ${feature.name} on node with id=${node.id}`)
206
203
  }
207
204
  }
205
+ if (feature.multiple) {
206
+ childIds.forEach(deserializeChild)
207
+ } else if (childIds.length > 0) {
208
+ // just set the 1st one:
209
+ deserializeChild(childIds[0])
210
+ }
208
211
  } else if (feature instanceof Reference && references !== undefined && feature.key in serializedReferencesPerKey) {
209
212
  const serRefs = (serializedReferencesPerKey[feature.key] ?? []).flatMap(serReferences =>
210
- serReferences.targets.map(t => t.reference)
213
+ serReferences.targets
211
214
  )
212
215
  referencesToInstall.push(
213
- ...(serRefs.filter(serRef => typeof serRef === "string") as LionWebId[]).map(
214
- refId => [node, feature, refId] as ReferenceToInstall
215
- )
216
+ ...(serRefs.map(
217
+ ({reference, resolveInfo}) => [node, feature, reference, resolveInfo] as ReferenceToInstall
218
+ ))
216
219
  )
217
220
  }
218
221
  })
@@ -236,17 +239,17 @@ export const deserializerWith = <NT extends Node>(configuration: DeserializerCon
236
239
 
237
240
  const dependentNodesById = byIdMap(dependentNodes)
238
241
 
239
- referencesToInstall.forEach(([node, reference, refId]) => {
242
+ referencesToInstall.forEach(([node, reference, refId, resolveInfo]) => {
240
243
  const target = deserializedNodeById[refId] ?? dependentNodesById[refId]
241
244
  const value = (() => {
242
- if (target === undefined) {
243
- const metaTypeMessage = "concept" in node ? ` and (meta-)type ${node.concept}` : ""
244
- problemReporter.reportProblem(
245
- `couldn't resolve the target with id=${refId} of a "${reference.name}" reference on the node with id=${node.id}${metaTypeMessage}`
246
- )
247
- return unresolved
245
+ if (target !== undefined) {
246
+ return target
248
247
  }
249
- return target
248
+ const metaTypeMessage = "concept" in node ? ` and (meta-)type ${node.concept}` : ""
249
+ problemReporter.reportProblem(
250
+ `couldn't resolve the target with id=${refId} of a "${reference.name}" reference on the node with id=${node.id}${metaTypeMessage}`
251
+ )
252
+ return new UnresolvedReference(refId, resolveInfo)
250
253
  })()
251
254
  writer.setFeatureValue(node, reference, value)
252
255
  })
package/src/functions.ts CHANGED
@@ -14,11 +14,10 @@ export const containmentChain = (node: Node): Node[] => {
14
14
 
15
15
 
16
16
  /**
17
- * Maps an array of {@link Node AST nodes} or `null`s to their IDs.
18
- * These `null`s might be the result of unresolved children.
17
+ * Maps an array of {@link Node AST nodes} to their IDs.
19
18
  */
20
- export const asIds = (nodeOrNulls: (Node | null)[]): (LionWebId | null)[] =>
21
- nodeOrNulls.map((nodeOrNull) => nodeOrNull === null ? null : nodeOrNull.id)
19
+ export const asIds = (nodes: Node[]): LionWebId[] =>
20
+ nodes.map(idOf)
22
21
 
23
22
 
24
23
  /**
@@ -54,7 +54,6 @@ export const referenceValues = <NT extends Node, RT extends Node = NT>(
54
54
  .flatMap((sourceNode) =>
55
55
  allFeaturesOf(reader.classifierOf(sourceNode))
56
56
  .filter((feature) => feature instanceof Reference)
57
- .map((feature) => feature as Reference)
58
57
  .flatMap((reference) => visit(sourceNode, reference))
59
58
  )
60
59
  }
@@ -1,7 +1,7 @@
1
1
  import { StringsMapper } from "@lionweb/ts-utils"
2
2
  import { PropertyValueDeserializer } from "../deserializer.js"
3
3
  import { Concept, DataType, Interface, Language, PrimitiveType, Property } from "./types.js"
4
- import { isUnresolvedReference } from "../references.js"
4
+ import { isRef } from "../references.js"
5
5
  import { PropertyValueSerializer } from "../serializer.js"
6
6
 
7
7
 
@@ -49,7 +49,7 @@ export const propertyValueDeserializerFrom = (registry: Map<DataType, PropertyVa
49
49
  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}")`)
50
50
  }
51
51
  const { type } = property
52
- if (isUnresolvedReference(type)) {
52
+ if (!isRef(type)) {
53
53
  throw new Error(`can't deserialize property "${property.name}" (on classifier "${property.classifier.name}" in language "${property.classifier.language.name}") with unspecified type`)
54
54
  }
55
55
  const specificDeserializer = byType(type)
@@ -89,7 +89,7 @@ export const propertyValueSerializerFrom = (registry: Map<DataType, PropertyValu
89
89
  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}")`)
90
90
  }
91
91
  const { type } = property
92
- if (isUnresolvedReference(type)) {
92
+ if (!isRef(type)) {
93
93
  throw new Error(`can't serialize property "${property.name}" (on classifier "${property.classifier.name}" in language "${property.classifier.language.name}") with unspecified type`)
94
94
  }
95
95
  const specificSerializer = byType(type)
@@ -22,7 +22,7 @@ const base64urlRegex = /^[A-Za-z0-9_-]+$/
22
22
  * @return whether the given string is a valid identifier according to the LionWeb specification – see [here](https://github.com/LionWeb-io/specification/blob/main/2023.1/metametamodel/metametamodel.adoc#identifiers) for the relevant part.
23
23
  * This is essentially whether the given string is a valid, non-empty [Base64url](https://en.wikipedia.org/wiki/Base64#Variants_summary_table) string.
24
24
  */
25
- const isValidIdentifier = (str: string): boolean =>
25
+ export const isValidIdentifier = (str: string): boolean =>
26
26
  base64urlRegex.test(str)
27
27
 
28
28