@lionweb/core 0.8.0-beta.5 → 0.8.0-beta.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/CHANGELOG.md +31 -5
  2. package/dist/deserializer.d.ts +10 -2
  3. package/dist/deserializer.d.ts.map +1 -1
  4. package/dist/deserializer.js +8 -7
  5. package/dist/deserializer.js.map +1 -1
  6. package/dist/dynamic-facade.d.ts +3 -3
  7. package/dist/dynamic-facade.d.ts.map +1 -1
  8. package/dist/dynamic-facade.js +4 -3
  9. package/dist/dynamic-facade.js.map +1 -1
  10. package/dist/extraction.d.ts +2 -2
  11. package/dist/extraction.d.ts.map +1 -1
  12. package/dist/extraction.js.map +1 -1
  13. package/dist/index.d.ts +0 -1
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +0 -1
  16. package/dist/index.js.map +1 -1
  17. package/dist/m1/reference-utils.d.ts +3 -3
  18. package/dist/m1/reference-utils.d.ts.map +1 -1
  19. package/dist/m1/reference-utils.js.map +1 -1
  20. package/dist/m3/builtins-common.d.ts +70 -0
  21. package/dist/m3/builtins-common.d.ts.map +1 -0
  22. package/dist/m3/builtins-common.js +88 -0
  23. package/dist/m3/builtins-common.js.map +1 -0
  24. package/dist/m3/builtins-function.d.ts +9 -0
  25. package/dist/m3/builtins-function.d.ts.map +1 -0
  26. package/dist/m3/builtins-function.js +19 -0
  27. package/dist/m3/builtins-function.js.map +1 -0
  28. package/dist/m3/deserializer.d.ts +25 -0
  29. package/dist/m3/deserializer.d.ts.map +1 -1
  30. package/dist/m3/deserializer.js +18 -11
  31. package/dist/m3/deserializer.js.map +1 -1
  32. package/dist/m3/index.d.ts +7 -3
  33. package/dist/m3/index.d.ts.map +1 -1
  34. package/dist/m3/index.js +6 -3
  35. package/dist/m3/index.js.map +1 -1
  36. package/dist/m3/lioncore-common.d.ts +37 -0
  37. package/dist/m3/lioncore-common.d.ts.map +1 -0
  38. package/dist/m3/lioncore-common.js +10 -0
  39. package/dist/m3/lioncore-common.js.map +1 -0
  40. package/dist/m3/reading-writing.d.ts +41 -0
  41. package/dist/m3/reading-writing.d.ts.map +1 -0
  42. package/dist/m3/reading-writing.js +84 -0
  43. package/dist/m3/reading-writing.js.map +1 -0
  44. package/dist/m3/serializer.d.ts +17 -0
  45. package/dist/m3/serializer.d.ts.map +1 -1
  46. package/dist/m3/serializer.js +11 -2
  47. package/dist/m3/serializer.js.map +1 -1
  48. package/dist/m3/symbol-table.d.ts +3 -3
  49. package/dist/m3/types.d.ts +11 -15
  50. package/dist/m3/types.d.ts.map +1 -1
  51. package/dist/m3/types.js +2 -6
  52. package/dist/m3/types.js.map +1 -1
  53. package/dist/m3/version.d.ts +19 -0
  54. package/dist/m3/version.d.ts.map +1 -0
  55. package/dist/m3/version.js +19 -0
  56. package/dist/m3/version.js.map +1 -0
  57. package/dist/m3/versions/v2023_1/builtins-legacy.d.ts +44 -0
  58. package/dist/m3/versions/v2023_1/builtins-legacy.d.ts.map +1 -0
  59. package/dist/m3/{builtins.js → versions/v2023_1/builtins-legacy.js} +24 -79
  60. package/dist/m3/versions/v2023_1/builtins-legacy.js.map +1 -0
  61. package/dist/m3/versions/v2023_1/builtins.d.ts +34 -0
  62. package/dist/m3/versions/v2023_1/builtins.d.ts.map +1 -0
  63. package/dist/m3/versions/v2023_1/builtins.js +75 -0
  64. package/dist/m3/versions/v2023_1/builtins.js.map +1 -0
  65. package/dist/m3/versions/v2023_1/lioncore.d.ts +34 -0
  66. package/dist/m3/versions/v2023_1/lioncore.d.ts.map +1 -0
  67. package/dist/m3/versions/v2023_1/lioncore.js +86 -0
  68. package/dist/m3/versions/v2023_1/lioncore.js.map +1 -0
  69. package/dist/m3/versions/v2023_1/version.d.ts +6 -0
  70. package/dist/m3/versions/v2023_1/version.d.ts.map +1 -0
  71. package/dist/m3/versions/v2023_1/version.js +8 -0
  72. package/dist/m3/versions/v2023_1/version.js.map +1 -0
  73. package/dist/m3/versions.d.ts +23 -0
  74. package/dist/m3/versions.d.ts.map +1 -0
  75. package/dist/m3/versions.js +24 -0
  76. package/dist/m3/versions.js.map +1 -0
  77. package/dist/reading.d.ts +10 -6
  78. package/dist/reading.d.ts.map +1 -1
  79. package/dist/serializer.d.ts +17 -6
  80. package/dist/serializer.d.ts.map +1 -1
  81. package/dist/serializer.js +4 -5
  82. package/dist/serializer.js.map +1 -1
  83. package/dist/writing.d.ts +3 -1
  84. package/dist/writing.d.ts.map +1 -1
  85. package/dist/writing.js.map +1 -1
  86. package/package.json +3 -3
  87. package/src/deserializer.ts +18 -14
  88. package/src/dynamic-facade.ts +4 -4
  89. package/src/extraction.ts +3 -3
  90. package/src/index.ts +0 -1
  91. package/src/m1/reference-utils.ts +6 -6
  92. package/src/m3/README.md +1 -1
  93. package/src/m3/builtins-common.ts +143 -0
  94. package/src/m3/builtins-function.ts +22 -0
  95. package/src/m3/deserializer.ts +43 -14
  96. package/src/m3/index.ts +7 -3
  97. package/src/m3/lioncore-common.ts +42 -0
  98. package/src/m3/reading-writing.ts +160 -0
  99. package/src/m3/serializer.ts +25 -2
  100. package/src/m3/symbol-table.ts +3 -3
  101. package/src/m3/types.ts +12 -18
  102. package/src/m3/version.ts +23 -0
  103. package/src/m3/versions/v2023_1/builtins-legacy.ts +126 -0
  104. package/src/m3/versions/v2023_1/builtins.ts +102 -0
  105. package/src/m3/{lioncore.ts → versions/v2023_1/lioncore.ts} +53 -76
  106. package/src/m3/versions/v2023_1/version.ts +9 -0
  107. package/src/m3/versions.ts +32 -0
  108. package/src/reading.ts +10 -6
  109. package/src/serializer.ts +26 -14
  110. package/src/writing.ts +3 -1
  111. package/dist/m3/builtins.d.ts +0 -82
  112. package/dist/m3/builtins.d.ts.map +0 -1
  113. package/dist/m3/builtins.js.map +0 -1
  114. package/dist/m3/facade.d.ts +0 -17
  115. package/dist/m3/facade.d.ts.map +0 -1
  116. package/dist/m3/facade.js +0 -58
  117. package/dist/m3/facade.js.map +0 -1
  118. package/dist/m3/lioncore.d.ts +0 -41
  119. package/dist/m3/lioncore.d.ts.map +0 -1
  120. package/dist/m3/lioncore.js +0 -90
  121. package/dist/m3/lioncore.js.map +0 -1
  122. package/dist/version.d.ts +0 -5
  123. package/dist/version.d.ts.map +0 -1
  124. package/dist/version.js +0 -5
  125. package/dist/version.js.map +0 -1
  126. package/src/m3/builtins.ts +0 -198
  127. package/src/m3/facade.ts +0 -130
  128. package/src/version.ts +0 -5
@@ -1,41 +0,0 @@
1
- declare const lioncoreKey = "LionCore-M3";
2
- /**
3
- * Definition of LionCore in terms of itself.
4
- */
5
- export declare const lioncore: import("./types.js").Language;
6
- export declare const metaConcepts: {
7
- annotation: import("./types.js").Concept;
8
- classifier: import("./types.js").Concept;
9
- concept: import("./types.js").Concept;
10
- interface: import("./types.js").Concept;
11
- containment: import("./types.js").Concept;
12
- enumeration: import("./types.js").Concept;
13
- enumerationLiteral: import("./types.js").Concept;
14
- ikeyed: import("./types.js").Interface;
15
- language: import("./types.js").Concept;
16
- primitiveType: import("./types.js").Concept;
17
- property: import("./types.js").Concept;
18
- reference: import("./types.js").Concept;
19
- };
20
- export declare const metaFeatures: {
21
- annotation_annotates: import("./types.js").Reference;
22
- annotation_extends: import("./types.js").Reference;
23
- annotation_implements: import("./types.js").Reference;
24
- classifier_features: import("./types.js").Containment;
25
- concept_abstract: import("./types.js").Property;
26
- concept_partition: import("./types.js").Property;
27
- concept_extends: import("./types.js").Reference;
28
- concept_implements: import("./types.js").Reference;
29
- interface_extends: import("./types.js").Reference;
30
- enumeration_literals: import("./types.js").Containment;
31
- feature_optional: import("./types.js").Property;
32
- ikeyed_key: import("./types.js").Property;
33
- language_dependsOn: import("./types.js").Reference;
34
- language_entities: import("./types.js").Containment;
35
- language_version: import("./types.js").Property;
36
- link_multiple: import("./types.js").Property;
37
- link_type: import("./types.js").Reference;
38
- property_type: import("./types.js").Reference;
39
- };
40
- export { lioncoreKey };
41
- //# sourceMappingURL=lioncore.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lioncore.d.ts","sourceRoot":"","sources":["../../src/m3/lioncore.ts"],"names":[],"mappings":"AAIA,QAAA,MAAM,WAAW,gBAAgB,CAAA;AAajC;;GAEG;AACH,eAAO,MAAM,QAAQ,+BAA4C,CAAA;AAkFjE,eAAO,MAAM,YAAY;;;;;;;;;;;;;CAaxB,CAAA;AAED,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;CAmBxB,CAAA;AAED,OAAO,EAAE,WAAW,EAAE,CAAA"}
@@ -1,90 +0,0 @@
1
- import { currentReleaseVersion } from "../version.js";
2
- import { builtinClassifiers, builtinPrimitives } from "./builtins.js";
3
- import { LanguageFactory } from "./factory.js";
4
- const lioncoreKey = "LionCore-M3";
5
- const factory = new LanguageFactory("LionCore_M3", currentReleaseVersion, (...names) => "-id-" + (names.length === 1 ? lioncoreKey : names.slice(1).join("-")), (...names) => names.slice(1).join("-"));
6
- /*
7
- * ID: `-id-${key}`
8
- * key: qualified name _without_ "LionCore_M3", dash-separated
9
- */
10
- /**
11
- * Definition of LionCore in terms of itself.
12
- */
13
- export const lioncore = factory.language.havingKey("LionCore-M3");
14
- const { inamed } = builtinClassifiers;
15
- const { booleanDataType, stringDataType } = builtinPrimitives;
16
- const ikeyed = factory.interface("IKeyed").extending(inamed);
17
- const ikeyed_key = factory.property(ikeyed, "key").ofType(stringDataType);
18
- const feature = factory.concept("Feature", true).implementing(ikeyed);
19
- const feature_optional = factory.property(feature, "optional").ofType(booleanDataType);
20
- const property = factory.concept("Property", false, feature);
21
- const property_type = factory.reference(property, "type");
22
- const link = factory.concept("Link", true, feature);
23
- const link_multiple = factory.property(link, "multiple").ofType(booleanDataType);
24
- const link_type = factory.reference(link, "type");
25
- const containment = factory.concept("Containment", false, link);
26
- const reference = factory.concept("Reference", false, link);
27
- const languageEntity = factory.concept("LanguageEntity", true).implementing(ikeyed);
28
- const classifier = factory.concept("Classifier", true, languageEntity);
29
- const classifier_features = factory.containment(classifier, "features").isOptional().isMultiple().ofType(feature);
30
- link_type.ofType(classifier);
31
- const annotation = factory.concept("Annotation", false, classifier);
32
- const annotation_annotates = factory.reference(annotation, "annotates").isOptional().ofType(classifier);
33
- const annotation_extends = factory.reference(annotation, "extends").isOptional().ofType(annotation);
34
- const annotation_implements = factory.reference(annotation, "implements").isMultiple().isOptional();
35
- const concept = factory.concept("Concept", false, classifier);
36
- const concept_abstract = factory.property(concept, "abstract").ofType(booleanDataType);
37
- const concept_partition = factory.property(concept, "partition").ofType(booleanDataType);
38
- const concept_extends = factory.reference(concept, "extends").isOptional().ofType(concept);
39
- const concept_implements = factory.reference(concept, "implements").isOptional().isMultiple();
40
- const interface_ = factory.concept("Interface", false, classifier);
41
- const interface_extends = factory.reference(interface_, "extends").isOptional().isMultiple().ofType(interface_);
42
- annotation_implements.ofType(interface_);
43
- concept_implements.ofType(interface_);
44
- const dataType = factory.concept("DataType", true, languageEntity);
45
- property_type.ofType(dataType);
46
- const primitiveType = factory.concept("PrimitiveType", false, dataType);
47
- const enumeration = factory.concept("Enumeration", false, dataType);
48
- const enumeration_literals = factory.containment(enumeration, "literals").isMultiple().isOptional();
49
- const enumerationLiteral = factory.concept("EnumerationLiteral", false).implementing(ikeyed);
50
- enumeration_literals.ofType(enumerationLiteral);
51
- const language = factory.concept("Language", false).implementing(ikeyed).isPartition();
52
- const language_version = factory.property(language, "version").ofType(stringDataType);
53
- const language_entities = factory.containment(language, "entities").isOptional().isMultiple().ofType(languageEntity);
54
- const language_dependsOn = factory.reference(language, "dependsOn").isOptional().isMultiple().ofType(language);
55
- export const metaConcepts = {
56
- annotation,
57
- classifier,
58
- concept,
59
- interface: interface_,
60
- containment,
61
- enumeration,
62
- enumerationLiteral,
63
- ikeyed,
64
- language,
65
- primitiveType,
66
- property,
67
- reference
68
- };
69
- export const metaFeatures = {
70
- annotation_annotates,
71
- annotation_extends,
72
- annotation_implements,
73
- classifier_features,
74
- concept_abstract,
75
- concept_partition,
76
- concept_extends,
77
- concept_implements,
78
- interface_extends,
79
- enumeration_literals,
80
- feature_optional,
81
- ikeyed_key,
82
- language_dependsOn,
83
- language_entities,
84
- language_version,
85
- link_multiple,
86
- link_type,
87
- property_type
88
- };
89
- export { lioncoreKey };
90
- //# sourceMappingURL=lioncore.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lioncore.js","sourceRoot":"","sources":["../../src/m3/lioncore.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts DELETED
@@ -1,5 +0,0 @@
1
- /**
2
- * The *current* release(d) version.
3
- */
4
- export declare const currentReleaseVersion = "2023.1";
5
- //# sourceMappingURL=version.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,qBAAqB,WAAW,CAAA"}
package/dist/version.js DELETED
@@ -1,5 +0,0 @@
1
- /**
2
- * The *current* release(d) version.
3
- */
4
- export const currentReleaseVersion = "2023.1";
5
- //# sourceMappingURL=version.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,QAAQ,CAAA"}
@@ -1,198 +0,0 @@
1
- import { asMinimalJsonString, StringsMapper } from "@lionweb/ts-utils"
2
- import { PropertyValueDeserializer } from "../deserializer.js"
3
- import { PropertyValueSerializer } from "../serializer.js"
4
- import { currentReleaseVersion } from "../version.js"
5
- import { LanguageFactory } from "./factory.js"
6
- import { Classifier, Concept, DataType, lioncoreBuiltinsKey, Property } from "./types.js"
7
- import { isUnresolvedReference } from "../references.js"
8
-
9
- const lioncoreBuiltinsIdAndKeyGenerator: StringsMapper = (...names) => [lioncoreBuiltinsKey, ...names.slice(1)].join("-")
10
-
11
- const factory = new LanguageFactory(
12
- "LionCore_builtins",
13
- currentReleaseVersion,
14
- lioncoreBuiltinsIdAndKeyGenerator,
15
- lioncoreBuiltinsIdAndKeyGenerator
16
- )
17
- /*
18
- * ID == key: `LionCore-builtins-${qualified name _without_ "LionCore-builtins", dash-separated}`
19
- */
20
-
21
- /**
22
- * Definition of a LionCore language that serves as a standard library of built-in primitive types.
23
- */
24
- const lioncoreBuiltins = factory.language
25
-
26
- const stringDataType = factory.primitiveType("String")
27
- const booleanDataType = factory.primitiveType("Boolean")
28
- const integerDataType = factory.primitiveType("Integer")
29
- const jsonDataType = factory.primitiveType("JSON")
30
-
31
- const node = factory.concept("Node", true)
32
-
33
- const isBuiltinNodeConcept = (classifier: Classifier) =>
34
- classifier instanceof Concept &&
35
- classifier.language.key === lioncoreBuiltinsKey &&
36
- classifier.language.version === currentReleaseVersion &&
37
- classifier.key === builtinClassifiers.node.key &&
38
- (classifier as Concept).abstract
39
-
40
- const inamed = factory.interface("INamed")
41
-
42
- const inamed_name = factory.property(inamed, "name").ofType(stringDataType)
43
-
44
- const builtinPrimitives = {
45
- stringDataType,
46
- booleanDataType,
47
- integerDataType,
48
- jsonDataType,
49
- /**
50
- * Misspelled alias of {@link stringDataType}, kept for backward compatibility, and to be deprecated and removed later.
51
- */
52
- stringDatatype: stringDataType,
53
- /**
54
- * Misspelled alias of {@link booleanDataType}, kept for backward compatibility, and to be deprecated and removed later.
55
- */
56
- booleanDatatype: booleanDataType,
57
- /**
58
- * Misspelled alias of {@link integerDataType}, kept for backward compatibility, and to be deprecated and removed later.
59
- */
60
- integerDatatype: integerDataType,
61
- /**
62
- * Misspelled alias of {@link jsonDataType}, kept for backward compatibility, and to be deprecated and removed later.
63
- */
64
- jsonDatatype: jsonDataType
65
- }
66
-
67
- const builtinClassifiers = {
68
- node,
69
- inamed
70
- }
71
-
72
- const builtinFeatures = {
73
- inamed_name
74
- }
75
-
76
- /**
77
- * Determines whether two data types should be structurally equal based on equality of: meta type, key, and language's key.
78
- */
79
- const shouldBeIdentical = (left: DataType, right: DataType): boolean =>
80
- left.key === right.key && left.language.key === right.language.key && left.metaType() === right.metaType()
81
-
82
- abstract class DataTypeRegister<T> {
83
- private map = new Map<DataType, T>()
84
-
85
- private _sealed = false
86
-
87
- sealed() {
88
- this._sealed = true
89
- return this
90
- }
91
-
92
- public register(dataType: DataType, t: T) {
93
- if (this._sealed) {
94
- throw new Error(`can't register a data type with a register that has been sealed`)
95
- }
96
- this.map.set(dataType, t)
97
- }
98
-
99
- protected byType(targetDataType: DataType): T | undefined {
100
- for (const [dataType, t] of this.map.entries()) {
101
- if (shouldBeIdentical(targetDataType, dataType)) {
102
- return t
103
- }
104
- }
105
- return undefined
106
- }
107
- }
108
-
109
- /**
110
- * An implementation of {@link PropertyValueDeserializer} that knows how to deserialize serialized values of all the built-in primitive types.
111
- */
112
- export class BuiltinPropertyValueDeserializer
113
- extends DataTypeRegister<(value: string) => unknown>
114
- implements PropertyValueDeserializer
115
- {
116
- constructor() {
117
- super()
118
- this.register(stringDataType, value => value)
119
- this.register(booleanDataType, value => JSON.parse(value))
120
- this.register(integerDataType, value => Number(value))
121
- this.register(jsonDataType, value => JSON.parse(value as string))
122
- }
123
-
124
- deserializeValue(value: string | undefined, property: Property): unknown | undefined {
125
- if (value === undefined) {
126
- if (property.optional) {
127
- return undefined
128
- }
129
- 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}")`)
130
- }
131
- const { type } = property
132
- if (isUnresolvedReference(type)) {
133
- throw new Error(`can't deserialize property "${property.name}" (on classifier "${property.classifier.name}" in language "${property.classifier.language.name}") with unspecified type`)
134
- }
135
- const specificDeserializer = this.byType(type)
136
- if (specificDeserializer != undefined) {
137
- return specificDeserializer(value)
138
- } else {
139
- throw new Error(`can't deserialize value of property "${property.name}" (on classifier "${property.classifier.name}" in language "${property.classifier.language.name}") of type "${type!.name}": ${value}`)
140
- }
141
- }
142
- }
143
-
144
- /**
145
- * Singleton instance of {@link BuiltinPropertyValueDeserializer}.
146
- */
147
- export const builtinPropertyValueDeserializer = new BuiltinPropertyValueDeserializer().sealed()
148
-
149
- /**
150
- * Misspelled alias of {@link BuiltinPropertyValueDeserializer}, kept for backward compatibility, and to be deprecated and removed later.
151
- */
152
- export class DefaultPrimitiveTypeDeserializer extends BuiltinPropertyValueDeserializer {}
153
-
154
-
155
- /**
156
- * An implementation of {@link PropertyValueSerializer} that knows how to serialize values of all the built-in primitive types.
157
- */
158
- export class BuiltinPropertyValueSerializer extends DataTypeRegister<(value: unknown) => string> implements PropertyValueSerializer {
159
- constructor() {
160
- super()
161
- this.register(stringDataType, value => value as string)
162
- this.register(booleanDataType, value => `${value as boolean}`)
163
- this.register(integerDataType, value => `${value as number}`)
164
- this.register(jsonDataType, value => asMinimalJsonString(value))
165
- }
166
-
167
- serializeValue(value: unknown | undefined, property: Property): string | null {
168
- if (value === undefined) {
169
- if (property.optional) {
170
- return null
171
- }
172
- 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}")`)
173
- }
174
- const { type } = property
175
- if (isUnresolvedReference(type)) {
176
- throw new Error(`can't serialize property "${property.name}" (on classifier "${property.classifier.name}" in language "${property.classifier.language.name}") with unspecified type`)
177
- }
178
- const specificSerializer = this.byType(type)
179
- if (specificSerializer != undefined) {
180
- return specificSerializer(value)
181
- } else {
182
- throw new Error(`can't serialize value of property "${property.name}" (on classifier "${property.classifier.name}" in language "${property.classifier.language.name}") of type "${type!.name}": ${value}`)
183
- }
184
- }
185
- }
186
-
187
- /**
188
- * Singleton instance of {@link BuiltinPropertyValueSerializer}.
189
- */
190
- export const builtinPropertyValueSerializer = new BuiltinPropertyValueSerializer().sealed()
191
-
192
- /**
193
- * Misspelled alias of {@link BuiltinPropertyValueSerializer}, kept for backward compatibility, and to be deprecated and removed later.
194
- */
195
- export class DefaultPrimitiveTypeSerializer extends BuiltinPropertyValueSerializer {}
196
-
197
- export { builtinPrimitives, builtinClassifiers, builtinFeatures, isBuiltinNodeConcept, lioncoreBuiltins, shouldBeIdentical }
198
-
package/src/m3/facade.ts DELETED
@@ -1,130 +0,0 @@
1
- import { builtinFeatures } from "./builtins.js"
2
- import { metaTypedBasedClassifierDeducerFor, qualifiedNameOf } from "./functions.js"
3
- import { lioncore, metaConcepts, metaFeatures } from "./lioncore.js"
4
- import { Reader } from "../reading.js"
5
- import {
6
- Annotation,
7
- Classifier,
8
- Concept,
9
- Containment,
10
- Enumeration,
11
- EnumerationLiteral,
12
- Interface,
13
- Language,
14
- M3Concept,
15
- PrimitiveType,
16
- Property,
17
- Reference
18
- } from "./types.js"
19
- import { updateSettingsNameBased, Writer } from "../writing.js"
20
-
21
- const { inamed_name } = builtinFeatures
22
- const { ikeyed_key } = metaFeatures
23
-
24
- export const lioncoreReader: Reader<M3Concept> = {
25
- classifierOf: metaTypedBasedClassifierDeducerFor(lioncore),
26
- getFeatureValue: (node, feature) =>
27
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
28
- (node as any)[feature.name], // (mirrors name-based update of settings)
29
- enumerationLiteralFrom: (value, _) => value as EnumerationLiteral | null
30
- }
31
-
32
- /**
33
- * Alias for {@link lioncoreReader}, kept for backward compatibility, and to be deprecated and removed later.
34
- */
35
- export const lioncoreExtractionFacade = lioncoreReader
36
-
37
- /**
38
- * @return An implementation of {@link Writer} for instances of the LionCore M3 (so M2s).
39
- */
40
- export const lioncoreWriter: Writer<M3Concept> = {
41
- nodeFor: (parent, classifier, id, propertySettings) => {
42
- switch (classifier.key) {
43
- case metaConcepts.annotation.key:
44
- return new Annotation(
45
- parent as Language,
46
- propertySettings[inamed_name.key] as string,
47
- propertySettings[ikeyed_key.key] as string,
48
- id
49
- )
50
- case metaConcepts.concept.key:
51
- return new Concept(
52
- parent as Language,
53
- propertySettings[inamed_name.key] as string,
54
- propertySettings[ikeyed_key.key] as string,
55
- id,
56
- propertySettings[metaFeatures.concept_abstract.key] as boolean
57
- )
58
- case metaConcepts.interface.key:
59
- return new Interface(
60
- parent as Language,
61
- propertySettings[inamed_name.key] as string,
62
- propertySettings[ikeyed_key.key] as string,
63
- id
64
- )
65
- case metaConcepts.containment.key:
66
- return new Containment(
67
- parent as Classifier,
68
- propertySettings[inamed_name.key] as string,
69
- propertySettings[ikeyed_key.key] as string,
70
- id
71
- )
72
- case metaConcepts.enumeration.key:
73
- return new Enumeration(
74
- parent as Language,
75
- propertySettings[inamed_name.key] as string,
76
- propertySettings[ikeyed_key.key] as string,
77
- id
78
- )
79
- case metaConcepts.enumerationLiteral.key:
80
- return new EnumerationLiteral(
81
- parent as Enumeration,
82
- propertySettings[inamed_name.key] as string,
83
- propertySettings[ikeyed_key.key] as string,
84
- id
85
- )
86
- case metaConcepts.language.key:
87
- return new Language(
88
- propertySettings[inamed_name.key] as string,
89
- propertySettings[metaFeatures.language_version.key] as string,
90
- id,
91
- propertySettings[metaFeatures.ikeyed_key.key] as string
92
- )
93
- case metaConcepts.primitiveType.key:
94
- return new PrimitiveType(
95
- parent as Language,
96
- propertySettings[inamed_name.key] as string,
97
- propertySettings[ikeyed_key.key] as string,
98
- id
99
- )
100
- case metaConcepts.property.key:
101
- return new Property(
102
- parent as Classifier,
103
- propertySettings[inamed_name.key] as string,
104
- propertySettings[ikeyed_key.key] as string,
105
- id
106
- )
107
- case metaConcepts.reference.key:
108
- return new Reference(
109
- parent as Classifier,
110
- propertySettings[inamed_name.key] as string,
111
- propertySettings[ikeyed_key.key] as string,
112
- id
113
- )
114
- default:
115
- throw new Error(
116
- `don't know a node of concept ${qualifiedNameOf(classifier)} with key ${classifier.key} that's not in LionCore M3`
117
- )
118
- }
119
- },
120
- setFeatureValue: (node, feature, value) => {
121
- updateSettingsNameBased(node as unknown as Record<string, unknown>, feature, value)
122
- },
123
- encodingOf: literal => literal
124
- }
125
-
126
- /**
127
- * Alias for {@link lioncoreWriter}, kept for backward compatibility, and to be deprecated and removed later.
128
- */
129
- export const lioncoreInstantationFacade = lioncoreWriter
130
-
package/src/version.ts DELETED
@@ -1,5 +0,0 @@
1
- /**
2
- * The *current* release(d) version.
3
- */
4
- export const currentReleaseVersion = "2023.1"
5
-