@lionweb/core 0.8.0-beta.5 → 0.8.0-beta.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +27 -5
- package/dist/deserializer.d.ts +10 -2
- package/dist/deserializer.d.ts.map +1 -1
- package/dist/deserializer.js +8 -7
- package/dist/deserializer.js.map +1 -1
- package/dist/dynamic-facade.d.ts +1 -1
- package/dist/dynamic-facade.d.ts.map +1 -1
- package/dist/dynamic-facade.js +3 -3
- package/dist/dynamic-facade.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/m3/builtins-common.d.ts +70 -0
- package/dist/m3/builtins-common.d.ts.map +1 -0
- package/dist/m3/builtins-common.js +88 -0
- package/dist/m3/builtins-common.js.map +1 -0
- package/dist/m3/builtins-function.d.ts +9 -0
- package/dist/m3/builtins-function.d.ts.map +1 -0
- package/dist/m3/builtins-function.js +19 -0
- package/dist/m3/builtins-function.js.map +1 -0
- package/dist/m3/deserializer.d.ts +25 -0
- package/dist/m3/deserializer.d.ts.map +1 -1
- package/dist/m3/deserializer.js +18 -11
- package/dist/m3/deserializer.js.map +1 -1
- package/dist/m3/index.d.ts +7 -3
- package/dist/m3/index.d.ts.map +1 -1
- package/dist/m3/index.js +6 -3
- package/dist/m3/index.js.map +1 -1
- package/dist/m3/lioncore-common.d.ts +37 -0
- package/dist/m3/lioncore-common.d.ts.map +1 -0
- package/dist/m3/lioncore-common.js +10 -0
- package/dist/m3/lioncore-common.js.map +1 -0
- package/dist/m3/reading-writing.d.ts +41 -0
- package/dist/m3/reading-writing.d.ts.map +1 -0
- package/dist/m3/reading-writing.js +84 -0
- package/dist/m3/reading-writing.js.map +1 -0
- package/dist/m3/serializer.d.ts +17 -0
- package/dist/m3/serializer.d.ts.map +1 -1
- package/dist/m3/serializer.js +11 -2
- package/dist/m3/serializer.js.map +1 -1
- package/dist/m3/types.d.ts +9 -13
- package/dist/m3/types.d.ts.map +1 -1
- package/dist/m3/types.js +1 -5
- package/dist/m3/types.js.map +1 -1
- package/dist/m3/version.d.ts +19 -0
- package/dist/m3/version.d.ts.map +1 -0
- package/dist/m3/version.js +19 -0
- package/dist/m3/version.js.map +1 -0
- package/dist/m3/versions/v2023_1/builtins-legacy.d.ts +44 -0
- package/dist/m3/versions/v2023_1/builtins-legacy.d.ts.map +1 -0
- package/dist/m3/{builtins.js → versions/v2023_1/builtins-legacy.js} +24 -79
- package/dist/m3/versions/v2023_1/builtins-legacy.js.map +1 -0
- package/dist/m3/versions/v2023_1/builtins.d.ts +34 -0
- package/dist/m3/versions/v2023_1/builtins.d.ts.map +1 -0
- package/dist/m3/versions/v2023_1/builtins.js +75 -0
- package/dist/m3/versions/v2023_1/builtins.js.map +1 -0
- package/dist/m3/versions/v2023_1/lioncore.d.ts +34 -0
- package/dist/m3/versions/v2023_1/lioncore.d.ts.map +1 -0
- package/dist/m3/versions/v2023_1/lioncore.js +86 -0
- package/dist/m3/versions/v2023_1/lioncore.js.map +1 -0
- package/dist/m3/versions/v2023_1/version.d.ts +6 -0
- package/dist/m3/versions/v2023_1/version.d.ts.map +1 -0
- package/dist/m3/versions/v2023_1/version.js +8 -0
- package/dist/m3/versions/v2023_1/version.js.map +1 -0
- package/dist/m3/versions.d.ts +27 -0
- package/dist/m3/versions.d.ts.map +1 -0
- package/dist/m3/versions.js +28 -0
- package/dist/m3/versions.js.map +1 -0
- package/dist/reading.d.ts +2 -0
- package/dist/reading.d.ts.map +1 -1
- package/dist/serializer.d.ts +12 -1
- package/dist/serializer.d.ts.map +1 -1
- package/dist/serializer.js +4 -4
- package/dist/serializer.js.map +1 -1
- package/dist/writing.d.ts +2 -0
- package/dist/writing.d.ts.map +1 -1
- package/dist/writing.js.map +1 -1
- package/package.json +3 -3
- package/src/deserializer.ts +18 -14
- package/src/dynamic-facade.ts +3 -4
- package/src/index.ts +0 -1
- package/src/m3/README.md +1 -1
- package/src/m3/builtins-common.ts +143 -0
- package/src/m3/builtins-function.ts +22 -0
- package/src/m3/deserializer.ts +43 -14
- package/src/m3/index.ts +7 -3
- package/src/m3/lioncore-common.ts +42 -0
- package/src/m3/reading-writing.ts +160 -0
- package/src/m3/serializer.ts +25 -2
- package/src/m3/types.ts +10 -16
- package/src/m3/version.ts +23 -0
- package/src/m3/versions/v2023_1/builtins-legacy.ts +126 -0
- package/src/m3/versions/v2023_1/builtins.ts +102 -0
- package/src/m3/{lioncore.ts → versions/v2023_1/lioncore.ts} +53 -76
- package/src/m3/versions/v2023_1/version.ts +9 -0
- package/src/m3/versions.ts +37 -0
- package/src/reading.ts +2 -0
- package/src/serializer.ts +18 -5
- package/src/writing.ts +2 -0
- package/dist/m3/builtins.d.ts +0 -82
- package/dist/m3/builtins.d.ts.map +0 -1
- package/dist/m3/builtins.js.map +0 -1
- package/dist/m3/facade.d.ts +0 -17
- package/dist/m3/facade.d.ts.map +0 -1
- package/dist/m3/facade.js +0 -58
- package/dist/m3/facade.js.map +0 -1
- package/dist/m3/lioncore.d.ts +0 -41
- package/dist/m3/lioncore.d.ts.map +0 -1
- package/dist/m3/lioncore.js +0 -90
- package/dist/m3/lioncore.js.map +0 -1
- package/dist/version.d.ts +0 -5
- package/dist/version.d.ts.map +0 -1
- package/dist/version.js +0 -5
- package/dist/version.js.map +0 -1
- package/src/m3/builtins.ts +0 -198
- package/src/m3/facade.ts +0 -130
- package/src/version.ts +0 -5
|
@@ -1,63 +1,8 @@
|
|
|
1
1
|
import { asMinimalJsonString } from "@lionweb/ts-utils";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
const lioncoreBuiltinsIdAndKeyGenerator = (...names) => [lioncoreBuiltinsKey, ...names.slice(1)].join("-");
|
|
7
|
-
const factory = new LanguageFactory("LionCore_builtins", currentReleaseVersion, lioncoreBuiltinsIdAndKeyGenerator, lioncoreBuiltinsIdAndKeyGenerator);
|
|
8
|
-
/*
|
|
9
|
-
* ID == key: `LionCore-builtins-${qualified name _without_ "LionCore-builtins", dash-separated}`
|
|
10
|
-
*/
|
|
11
|
-
/**
|
|
12
|
-
* Definition of a LionCore language that serves as a standard library of built-in primitive types.
|
|
13
|
-
*/
|
|
14
|
-
const lioncoreBuiltins = factory.language;
|
|
15
|
-
const stringDataType = factory.primitiveType("String");
|
|
16
|
-
const booleanDataType = factory.primitiveType("Boolean");
|
|
17
|
-
const integerDataType = factory.primitiveType("Integer");
|
|
18
|
-
const jsonDataType = factory.primitiveType("JSON");
|
|
19
|
-
const node = factory.concept("Node", true);
|
|
20
|
-
const isBuiltinNodeConcept = (classifier) => classifier instanceof Concept &&
|
|
21
|
-
classifier.language.key === lioncoreBuiltinsKey &&
|
|
22
|
-
classifier.language.version === currentReleaseVersion &&
|
|
23
|
-
classifier.key === builtinClassifiers.node.key &&
|
|
24
|
-
classifier.abstract;
|
|
25
|
-
const inamed = factory.interface("INamed");
|
|
26
|
-
const inamed_name = factory.property(inamed, "name").ofType(stringDataType);
|
|
27
|
-
const builtinPrimitives = {
|
|
28
|
-
stringDataType,
|
|
29
|
-
booleanDataType,
|
|
30
|
-
integerDataType,
|
|
31
|
-
jsonDataType,
|
|
32
|
-
/**
|
|
33
|
-
* Misspelled alias of {@link stringDataType}, kept for backward compatibility, and to be deprecated and removed later.
|
|
34
|
-
*/
|
|
35
|
-
stringDatatype: stringDataType,
|
|
36
|
-
/**
|
|
37
|
-
* Misspelled alias of {@link booleanDataType}, kept for backward compatibility, and to be deprecated and removed later.
|
|
38
|
-
*/
|
|
39
|
-
booleanDatatype: booleanDataType,
|
|
40
|
-
/**
|
|
41
|
-
* Misspelled alias of {@link integerDataType}, kept for backward compatibility, and to be deprecated and removed later.
|
|
42
|
-
*/
|
|
43
|
-
integerDatatype: integerDataType,
|
|
44
|
-
/**
|
|
45
|
-
* Misspelled alias of {@link jsonDataType}, kept for backward compatibility, and to be deprecated and removed later.
|
|
46
|
-
*/
|
|
47
|
-
jsonDatatype: jsonDataType
|
|
48
|
-
};
|
|
49
|
-
const builtinClassifiers = {
|
|
50
|
-
node,
|
|
51
|
-
inamed
|
|
52
|
-
};
|
|
53
|
-
const builtinFeatures = {
|
|
54
|
-
inamed_name
|
|
55
|
-
};
|
|
56
|
-
/**
|
|
57
|
-
* Determines whether two data types should be structurally equal based on equality of: meta type, key, and language's key.
|
|
58
|
-
*/
|
|
59
|
-
const shouldBeIdentical = (left, right) => left.key === right.key && left.language.key === right.language.key && left.metaType() === right.metaType();
|
|
60
|
-
class DataTypeRegister {
|
|
2
|
+
import { shouldBeIdentical } from "../../builtins-common.js";
|
|
3
|
+
import { isUnresolvedReference } from "../../../references.js";
|
|
4
|
+
import { v2023_1 } from "./version.js";
|
|
5
|
+
class DataTypeRegistry {
|
|
61
6
|
constructor() {
|
|
62
7
|
this.map = new Map();
|
|
63
8
|
this._sealed = false;
|
|
@@ -81,16 +26,19 @@ class DataTypeRegister {
|
|
|
81
26
|
return undefined;
|
|
82
27
|
}
|
|
83
28
|
}
|
|
29
|
+
const { booleanDataType, integerDataType, jsonDataType, stringDataType } = v2023_1.builtinsFacade.primitiveTypes;
|
|
84
30
|
/**
|
|
85
31
|
* An implementation of {@link PropertyValueDeserializer} that knows how to deserialize serialized values of all the built-in primitive types.
|
|
32
|
+
*
|
|
33
|
+
* @deprecated
|
|
86
34
|
*/
|
|
87
|
-
export class BuiltinPropertyValueDeserializer extends
|
|
35
|
+
export class BuiltinPropertyValueDeserializer extends DataTypeRegistry {
|
|
88
36
|
constructor() {
|
|
89
37
|
super();
|
|
90
|
-
this.register(stringDataType, value => value);
|
|
91
|
-
this.register(booleanDataType, value => JSON.parse(value));
|
|
92
|
-
this.register(integerDataType, value => Number(value));
|
|
93
|
-
this.register(jsonDataType, value => JSON.parse(value));
|
|
38
|
+
this.register(stringDataType, (value) => value);
|
|
39
|
+
this.register(booleanDataType, (value) => JSON.parse(value));
|
|
40
|
+
this.register(integerDataType, (value) => Number(value));
|
|
41
|
+
this.register(jsonDataType, (value) => JSON.parse(value));
|
|
94
42
|
}
|
|
95
43
|
deserializeValue(value, property) {
|
|
96
44
|
if (value === undefined) {
|
|
@@ -112,25 +60,25 @@ export class BuiltinPropertyValueDeserializer extends DataTypeRegister {
|
|
|
112
60
|
}
|
|
113
61
|
}
|
|
114
62
|
}
|
|
115
|
-
/**
|
|
116
|
-
* Singleton instance of {@link BuiltinPropertyValueDeserializer}.
|
|
117
|
-
*/
|
|
118
|
-
export const builtinPropertyValueDeserializer = new BuiltinPropertyValueDeserializer().sealed();
|
|
119
63
|
/**
|
|
120
64
|
* Misspelled alias of {@link BuiltinPropertyValueDeserializer}, kept for backward compatibility, and to be deprecated and removed later.
|
|
65
|
+
*
|
|
66
|
+
* @deprecated
|
|
121
67
|
*/
|
|
122
68
|
export class DefaultPrimitiveTypeDeserializer extends BuiltinPropertyValueDeserializer {
|
|
123
69
|
}
|
|
124
70
|
/**
|
|
125
71
|
* An implementation of {@link PropertyValueSerializer} that knows how to serialize values of all the built-in primitive types.
|
|
72
|
+
*
|
|
73
|
+
* @deprecated
|
|
126
74
|
*/
|
|
127
|
-
export class BuiltinPropertyValueSerializer extends
|
|
75
|
+
export class BuiltinPropertyValueSerializer extends DataTypeRegistry {
|
|
128
76
|
constructor() {
|
|
129
77
|
super();
|
|
130
|
-
this.register(stringDataType, value => value);
|
|
131
|
-
this.register(booleanDataType, value => `${value}`);
|
|
132
|
-
this.register(integerDataType, value => `${value}`);
|
|
133
|
-
this.register(jsonDataType, value => asMinimalJsonString(value));
|
|
78
|
+
this.register(stringDataType, (value) => value);
|
|
79
|
+
this.register(booleanDataType, (value) => `${value}`);
|
|
80
|
+
this.register(integerDataType, (value) => `${value}`);
|
|
81
|
+
this.register(jsonDataType, (value) => asMinimalJsonString(value));
|
|
134
82
|
}
|
|
135
83
|
serializeValue(value, property) {
|
|
136
84
|
if (value === undefined) {
|
|
@@ -152,14 +100,11 @@ export class BuiltinPropertyValueSerializer extends DataTypeRegister {
|
|
|
152
100
|
}
|
|
153
101
|
}
|
|
154
102
|
}
|
|
155
|
-
/**
|
|
156
|
-
* Singleton instance of {@link BuiltinPropertyValueSerializer}.
|
|
157
|
-
*/
|
|
158
|
-
export const builtinPropertyValueSerializer = new BuiltinPropertyValueSerializer().sealed();
|
|
159
103
|
/**
|
|
160
104
|
* Misspelled alias of {@link BuiltinPropertyValueSerializer}, kept for backward compatibility, and to be deprecated and removed later.
|
|
105
|
+
*
|
|
106
|
+
* @deprecated
|
|
161
107
|
*/
|
|
162
108
|
export class DefaultPrimitiveTypeSerializer extends BuiltinPropertyValueSerializer {
|
|
163
109
|
}
|
|
164
|
-
|
|
165
|
-
//# sourceMappingURL=builtins.js.map
|
|
110
|
+
//# sourceMappingURL=builtins-legacy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builtins-legacy.js","sourceRoot":"","sources":["../../../../src/m3/versions/v2023_1/builtins-legacy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { LionCoreBuiltinsFacade } from "../../builtins-common.js";
|
|
2
|
+
export declare const lioncoreBuiltinsFacade: LionCoreBuiltinsFacade;
|
|
3
|
+
/**
|
|
4
|
+
* Definition of a LionCore language that serves as a standard library of built-in primitive types.
|
|
5
|
+
*
|
|
6
|
+
* @deprecated Use `<LionWebVersion>.builtinsFacade.isBuiltinNodeConcept` instead.
|
|
7
|
+
*/
|
|
8
|
+
export declare const lioncoreBuiltins: import("../../types.js").Language;
|
|
9
|
+
/**
|
|
10
|
+
* @deprecated Use `<LionWebVersion>.builtinsFacade.primitiveTypes` instead.
|
|
11
|
+
*/
|
|
12
|
+
export declare const builtinPrimitives: {
|
|
13
|
+
booleanDataType: import("../../types.js").PrimitiveType;
|
|
14
|
+
integerDataType: import("../../types.js").PrimitiveType;
|
|
15
|
+
stringDataType: import("../../types.js").PrimitiveType;
|
|
16
|
+
} & Record<string, import("../../types.js").PrimitiveType>;
|
|
17
|
+
/**
|
|
18
|
+
* @deprecated Use `<LionWebVersion>.builtinsFacade.classifiers` instead.
|
|
19
|
+
*/
|
|
20
|
+
export declare const builtinClassifiers: {
|
|
21
|
+
node: import("../../types.js").Concept;
|
|
22
|
+
inamed: import("../../types.js").Interface;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* @deprecated Use `<LionWebVersion>.builtinsFacade.features` instead.
|
|
26
|
+
*/
|
|
27
|
+
export declare const builtinFeatures: {
|
|
28
|
+
inamed_name: import("../../types.js").Property;
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* @deprecated Use {@link isBuiltinNodeConcept} instead.
|
|
32
|
+
*/
|
|
33
|
+
export declare const isBuiltinConcept: (classifier: import("../../types.js").Classifier, lionWebVersion?: import("../../version.js").LionWebVersion) => boolean;
|
|
34
|
+
//# sourceMappingURL=builtins.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { asMinimalJsonString } from "@lionweb/ts-utils";
|
|
2
|
+
import { lioncoreBuiltinsIdAndKeyGenerator, newPropertyValueDeserializerRegistry, newPropertyValueSerializerRegistry, propertyValueDeserializerFrom, propertyValueSerializerFrom } from "../../builtins-common.js";
|
|
3
|
+
import { isBuiltinNodeConcept } from "../../builtins-function.js";
|
|
4
|
+
import { LanguageFactory } from "../../factory.js";
|
|
5
|
+
const factory = new LanguageFactory("LionCore_builtins", "2023.1", lioncoreBuiltinsIdAndKeyGenerator, lioncoreBuiltinsIdAndKeyGenerator);
|
|
6
|
+
/*
|
|
7
|
+
* ID == key: `LionCore-builtins-${qualified name _without_ "LionCore-builtins", dash-separated}`
|
|
8
|
+
*/
|
|
9
|
+
const stringDataType = factory.primitiveType("String");
|
|
10
|
+
const booleanDataType = factory.primitiveType("Boolean");
|
|
11
|
+
const integerDataType = factory.primitiveType("Integer");
|
|
12
|
+
const jsonDataType = factory.primitiveType("JSON");
|
|
13
|
+
const node = factory.concept("Node", true);
|
|
14
|
+
const inamed = factory.interface("INamed");
|
|
15
|
+
const inamed_name = factory.property(inamed, "name").ofType(stringDataType);
|
|
16
|
+
export const lioncoreBuiltinsFacade = {
|
|
17
|
+
language: factory.language,
|
|
18
|
+
propertyValueDeserializer: propertyValueDeserializerFrom(newPropertyValueDeserializerRegistry()
|
|
19
|
+
.set(stringDataType, (value) => value)
|
|
20
|
+
.set(booleanDataType, (value) => JSON.parse(value))
|
|
21
|
+
.set(integerDataType, (value) => Number(value))
|
|
22
|
+
.set(jsonDataType, (value) => JSON.parse(value))),
|
|
23
|
+
propertyValueSerializer: propertyValueSerializerFrom(newPropertyValueSerializerRegistry()
|
|
24
|
+
.set(stringDataType, (value) => value)
|
|
25
|
+
.set(booleanDataType, (value) => `${value}`)
|
|
26
|
+
.set(integerDataType, (value) => `${value}`)
|
|
27
|
+
.set(jsonDataType, (value) => asMinimalJsonString(value))),
|
|
28
|
+
classifiers: { node, inamed },
|
|
29
|
+
features: { inamed_name },
|
|
30
|
+
primitiveTypes: {
|
|
31
|
+
stringDataType,
|
|
32
|
+
booleanDataType,
|
|
33
|
+
integerDataType,
|
|
34
|
+
jsonDataType,
|
|
35
|
+
/**
|
|
36
|
+
* Misspelled alias of {@link stringDataType}, kept for backward compatibility, and to be deprecated and removed later.
|
|
37
|
+
*/
|
|
38
|
+
stringDatatype: stringDataType,
|
|
39
|
+
/**
|
|
40
|
+
* Misspelled alias of {@link booleanDataType}, kept for backward compatibility, and to be deprecated and removed later.
|
|
41
|
+
*/
|
|
42
|
+
booleanDatatype: booleanDataType,
|
|
43
|
+
/**
|
|
44
|
+
* Misspelled alias of {@link integerDataType}, kept for backward compatibility, and to be deprecated and removed later.
|
|
45
|
+
*/
|
|
46
|
+
integerDatatype: integerDataType,
|
|
47
|
+
/**
|
|
48
|
+
* Misspelled alias of {@link jsonDataType}, kept for backward compatibility, and to be deprecated and removed later.
|
|
49
|
+
*/
|
|
50
|
+
jsonDatatype: jsonDataType
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* Definition of a LionCore language that serves as a standard library of built-in primitive types.
|
|
55
|
+
*
|
|
56
|
+
* @deprecated Use `<LionWebVersion>.builtinsFacade.isBuiltinNodeConcept` instead.
|
|
57
|
+
*/
|
|
58
|
+
export const lioncoreBuiltins = factory.language;
|
|
59
|
+
/**
|
|
60
|
+
* @deprecated Use `<LionWebVersion>.builtinsFacade.primitiveTypes` instead.
|
|
61
|
+
*/
|
|
62
|
+
export const builtinPrimitives = lioncoreBuiltinsFacade.primitiveTypes;
|
|
63
|
+
/**
|
|
64
|
+
* @deprecated Use `<LionWebVersion>.builtinsFacade.classifiers` instead.
|
|
65
|
+
*/
|
|
66
|
+
export const builtinClassifiers = lioncoreBuiltinsFacade.classifiers;
|
|
67
|
+
/**
|
|
68
|
+
* @deprecated Use `<LionWebVersion>.builtinsFacade.features` instead.
|
|
69
|
+
*/
|
|
70
|
+
export const builtinFeatures = lioncoreBuiltinsFacade.features;
|
|
71
|
+
/**
|
|
72
|
+
* @deprecated Use {@link isBuiltinNodeConcept} instead.
|
|
73
|
+
*/
|
|
74
|
+
export const isBuiltinConcept = isBuiltinNodeConcept;
|
|
75
|
+
//# sourceMappingURL=builtins.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builtins.js","sourceRoot":"","sources":["../../../../src/m3/versions/v2023_1/builtins.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { LionCoreFacade } from "../../lioncore-common.js";
|
|
2
|
+
/**
|
|
3
|
+
* Definition of LionCore in terms of itself.
|
|
4
|
+
*
|
|
5
|
+
* @deprecated Use {@code lioncoreFacade.language} instead.
|
|
6
|
+
*/
|
|
7
|
+
export declare const lioncore: import("../../types.js").Language;
|
|
8
|
+
export declare const lioncoreFacade: LionCoreFacade;
|
|
9
|
+
/**
|
|
10
|
+
* @deprecated Use {@code <LionWeb version>.lioncoreFacade.metaConcepts} instead.
|
|
11
|
+
*/
|
|
12
|
+
export declare const metaConcepts: {
|
|
13
|
+
annotation: import("../../types.js").Concept;
|
|
14
|
+
classifier: import("../../types.js").Concept;
|
|
15
|
+
concept: import("../../types.js").Concept;
|
|
16
|
+
interface: import("../../types.js").Concept;
|
|
17
|
+
containment: import("../../types.js").Concept;
|
|
18
|
+
enumeration: import("../../types.js").Concept;
|
|
19
|
+
enumerationLiteral: import("../../types.js").Concept;
|
|
20
|
+
ikeyed: import("../../types.js").Interface;
|
|
21
|
+
language: import("../../types.js").Concept;
|
|
22
|
+
primitiveType: import("../../types.js").Concept;
|
|
23
|
+
property: import("../../types.js").Concept;
|
|
24
|
+
reference: import("../../types.js").Concept;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* @deprecated Use {@code <LionWeb version>.lioncoreFacade.metaFeatures} instead.
|
|
28
|
+
*/
|
|
29
|
+
export declare const metaFeatures: {
|
|
30
|
+
concept_abstract: import("../../types.js").Property;
|
|
31
|
+
ikeyed_key: import("../../types.js").Property;
|
|
32
|
+
language_version: import("../../types.js").Property;
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=lioncore.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { lioncoreBuiltinsFacade } from "./builtins.js";
|
|
2
|
+
import { LanguageFactory } from "../../factory.js";
|
|
3
|
+
import { generatedLionCoreKeyFrom } from "../../lioncore-common.js";
|
|
4
|
+
const factory = new LanguageFactory("LionCore_M3", "2023.1", (...names) => "-id-" + generatedLionCoreKeyFrom(...names), generatedLionCoreKeyFrom);
|
|
5
|
+
/*
|
|
6
|
+
* ID: `-id-${key}`
|
|
7
|
+
* key: qualified name _without_ "LionCore_M3", dash-separated
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Definition of LionCore in terms of itself.
|
|
11
|
+
*
|
|
12
|
+
* @deprecated Use {@code lioncoreFacade.language} instead.
|
|
13
|
+
*/
|
|
14
|
+
export const lioncore = factory.language.havingKey("LionCore-M3");
|
|
15
|
+
const { inamed } = lioncoreBuiltinsFacade.classifiers;
|
|
16
|
+
const { booleanDataType, stringDataType } = lioncoreBuiltinsFacade.primitiveTypes;
|
|
17
|
+
const ikeyed = factory.interface("IKeyed").extending(inamed);
|
|
18
|
+
const ikeyed_key = factory.property(ikeyed, "key").ofType(stringDataType);
|
|
19
|
+
const feature = factory.concept("Feature", true).implementing(ikeyed);
|
|
20
|
+
factory.property(feature, "optional").ofType(booleanDataType);
|
|
21
|
+
const property = factory.concept("Property", false, feature);
|
|
22
|
+
const property_type = factory.reference(property, "type");
|
|
23
|
+
const link = factory.concept("Link", true, feature);
|
|
24
|
+
factory.property(link, "multiple").ofType(booleanDataType);
|
|
25
|
+
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);
|
|
30
|
+
factory.containment(classifier, "features").isOptional().isMultiple().ofType(feature);
|
|
31
|
+
link_type.ofType(classifier);
|
|
32
|
+
const annotation = factory.concept("Annotation", false, classifier);
|
|
33
|
+
factory.reference(annotation, "annotates").isOptional().ofType(classifier);
|
|
34
|
+
factory.reference(annotation, "extends").isOptional().ofType(annotation);
|
|
35
|
+
const annotation_implements = factory.reference(annotation, "implements").isMultiple().isOptional();
|
|
36
|
+
const concept = factory.concept("Concept", false, classifier);
|
|
37
|
+
const concept_abstract = factory.property(concept, "abstract").ofType(booleanDataType);
|
|
38
|
+
factory.property(concept, "partition").ofType(booleanDataType);
|
|
39
|
+
factory.reference(concept, "extends").isOptional().ofType(concept);
|
|
40
|
+
const concept_implements = factory.reference(concept, "implements").isOptional().isMultiple();
|
|
41
|
+
const interface_ = factory.concept("Interface", false, classifier);
|
|
42
|
+
factory.reference(interface_, "extends").isOptional().isMultiple().ofType(interface_);
|
|
43
|
+
annotation_implements.ofType(interface_);
|
|
44
|
+
concept_implements.ofType(interface_);
|
|
45
|
+
const dataType = factory.concept("DataType", true, languageEntity);
|
|
46
|
+
property_type.ofType(dataType);
|
|
47
|
+
const primitiveType = factory.concept("PrimitiveType", false, dataType);
|
|
48
|
+
const enumeration = factory.concept("Enumeration", false, dataType);
|
|
49
|
+
const enumeration_literals = factory.containment(enumeration, "literals").isMultiple().isOptional();
|
|
50
|
+
const enumerationLiteral = factory.concept("EnumerationLiteral", false).implementing(ikeyed);
|
|
51
|
+
enumeration_literals.ofType(enumerationLiteral);
|
|
52
|
+
const language = factory.concept("Language", false).implementing(ikeyed).isPartition();
|
|
53
|
+
const language_version = factory.property(language, "version").ofType(stringDataType);
|
|
54
|
+
factory.containment(language, "entities").isOptional().isMultiple().ofType(languageEntity);
|
|
55
|
+
factory.reference(language, "dependsOn").isOptional().isMultiple().ofType(language);
|
|
56
|
+
export const lioncoreFacade = {
|
|
57
|
+
language: factory.language,
|
|
58
|
+
metaConcepts: {
|
|
59
|
+
annotation,
|
|
60
|
+
classifier,
|
|
61
|
+
concept,
|
|
62
|
+
interface: interface_,
|
|
63
|
+
containment,
|
|
64
|
+
enumeration,
|
|
65
|
+
enumerationLiteral,
|
|
66
|
+
ikeyed,
|
|
67
|
+
language,
|
|
68
|
+
primitiveType,
|
|
69
|
+
property,
|
|
70
|
+
reference
|
|
71
|
+
},
|
|
72
|
+
metaFeatures: {
|
|
73
|
+
concept_abstract,
|
|
74
|
+
ikeyed_key,
|
|
75
|
+
language_version
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
/**
|
|
79
|
+
* @deprecated Use {@code <LionWeb version>.lioncoreFacade.metaConcepts} instead.
|
|
80
|
+
*/
|
|
81
|
+
export const metaConcepts = lioncoreFacade.metaConcepts;
|
|
82
|
+
/**
|
|
83
|
+
* @deprecated Use {@code <LionWeb version>.lioncoreFacade.metaFeatures} instead.
|
|
84
|
+
*/
|
|
85
|
+
export const metaFeatures = lioncoreFacade.metaFeatures;
|
|
86
|
+
//# sourceMappingURL=lioncore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lioncore.js","sourceRoot":"","sources":["../../../../src/m3/versions/v2023_1/lioncore.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../../../src/m3/versions/v2023_1/version.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD;;GAEG;AACH,eAAO,MAAM,OAAO,gBAAuE,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { lioncoreBuiltinsFacade } from "./builtins.js";
|
|
2
|
+
import { lioncoreFacade } from "./lioncore.js";
|
|
3
|
+
import { LionWebVersion } from "../../version.js";
|
|
4
|
+
/**
|
|
5
|
+
* A representation of the 2023.1 LionWeb version.
|
|
6
|
+
*/
|
|
7
|
+
export const v2023_1 = new LionWebVersion("2023.1", lioncoreFacade, lioncoreBuiltinsFacade);
|
|
8
|
+
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../../../src/m3/versions/v2023_1/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC,QAAQ,EAAE,cAAc,EAAE,sBAAsB,CAAC,CAAA"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { LionWebVersion } from "./version.js";
|
|
2
|
+
/**
|
|
3
|
+
* The *current* release(d) version.
|
|
4
|
+
*
|
|
5
|
+
* @deprecated Use {@code defaultLionWebVersion.serializationFormatVersion} instead.
|
|
6
|
+
*/
|
|
7
|
+
export declare const currentReleaseVersion = "2023.1";
|
|
8
|
+
/**
|
|
9
|
+
* An enumeration (as const object) of all LionWeb versions currently supported by the WIP specification.
|
|
10
|
+
*/
|
|
11
|
+
export declare const LionWebVersions: {
|
|
12
|
+
readonly v2023_1: LionWebVersion;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* All LionWeb versions.
|
|
16
|
+
*/
|
|
17
|
+
export declare const allLionWebVersions: LionWebVersion[];
|
|
18
|
+
/**
|
|
19
|
+
* The current default LionWeb version.
|
|
20
|
+
*/
|
|
21
|
+
export declare const defaultLionWebVersion: LionWebVersion;
|
|
22
|
+
/**
|
|
23
|
+
* @return the {@link LionWebVersion} matching the given `serializationFormatVersion` string,
|
|
24
|
+
* or {@link undefined} if there’s none.
|
|
25
|
+
*/
|
|
26
|
+
export declare const lionWebVersionFrom: (serializationFormatVersion: string) => LionWebVersion | undefined;
|
|
27
|
+
//# sourceMappingURL=versions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"versions.d.ts","sourceRoot":"","sources":["../../src/m3/versions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAG7C;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,WAAW,CAAA;AAG7C;;GAEG;AACH,eAAO,MAAM,eAAe;;CAGlB,CAAA;AAEV;;GAEG;AACH,eAAO,MAAM,kBAAkB,kBAAiC,CAAA;AAEhE;;GAEG;AACH,eAAO,MAAM,qBAAqB,gBAA0B,CAAA;AAE5D;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAAI,4BAA4B,MAAM,KAAG,cAAc,GAAG,SACkB,CAAA"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { v2023_1 } from "./versions/v2023_1/version.js";
|
|
2
|
+
/**
|
|
3
|
+
* The *current* release(d) version.
|
|
4
|
+
*
|
|
5
|
+
* @deprecated Use {@code defaultLionWebVersion.serializationFormatVersion} instead.
|
|
6
|
+
*/
|
|
7
|
+
export const currentReleaseVersion = "2023.1";
|
|
8
|
+
/**
|
|
9
|
+
* An enumeration (as const object) of all LionWeb versions currently supported by the WIP specification.
|
|
10
|
+
*/
|
|
11
|
+
export const LionWebVersions = {
|
|
12
|
+
// LionWeb standard version 2023.1 — defined at https://lionweb.io/specification/2023.1
|
|
13
|
+
v2023_1
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* All LionWeb versions.
|
|
17
|
+
*/
|
|
18
|
+
export const allLionWebVersions = Object.values(LionWebVersions);
|
|
19
|
+
/**
|
|
20
|
+
* The current default LionWeb version.
|
|
21
|
+
*/
|
|
22
|
+
export const defaultLionWebVersion = LionWebVersions.v2023_1;
|
|
23
|
+
/**
|
|
24
|
+
* @return the {@link LionWebVersion} matching the given `serializationFormatVersion` string,
|
|
25
|
+
* or {@link undefined} if there’s none.
|
|
26
|
+
*/
|
|
27
|
+
export const lionWebVersionFrom = (serializationFormatVersion) => allLionWebVersions.find((version) => version.serializationFormatVersion === serializationFormatVersion);
|
|
28
|
+
//# sourceMappingURL=versions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"versions.js","sourceRoot":"","sources":["../../src/m3/versions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAA;AAIvD;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,QAAQ,CAAA;AAG7C;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC3B,uFAAuF;IACvF,OAAO;CACD,CAAA;AAEV;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAA;AAEhE;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,eAAe,CAAC,OAAO,CAAA;AAE5D;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,0BAAkC,EAA8B,EAAE,CACjG,kBAAkB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,0BAA0B,KAAK,0BAA0B,CAAC,CAAA"}
|
package/dist/reading.d.ts
CHANGED
|
@@ -40,6 +40,8 @@ export interface Reader<NT extends Node> {
|
|
|
40
40
|
}
|
|
41
41
|
/**
|
|
42
42
|
* Alias for {@link Reader}, kept for backward compatibility, and to be deprecated and removed later.
|
|
43
|
+
*
|
|
44
|
+
* @deprecated Use {@link Reader} instead.
|
|
43
45
|
*/
|
|
44
46
|
export interface ExtractionFacade<NT extends Node> extends Reader<NT> {
|
|
45
47
|
}
|
package/dist/reading.d.ts.map
CHANGED
|
@@ -1 +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,SAAS,EAAE,MAAM,eAAe,CAAA;AAC/F,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;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,CAAC,EAAE,SAAS,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,KAAK,MAAM,GAAG,SAAS,CAAA;AAExG;;;;;;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
|
|
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,SAAS,EAAE,MAAM,eAAe,CAAA;AAC/F,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;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,CAAC,EAAE,SAAS,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,KAAK,MAAM,GAAG,SAAS,CAAA;AAExG;;;;;;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;;;;GAIG;AACH,MAAM,WAAW,gBAAgB,CAAC,EAAE,SAAS,IAAI,CAAE,SAAQ,MAAM,CAAC,EAAE,CAAC;CAAG"}
|
package/dist/serializer.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { LionWebJsonChunk } from "@lionweb/json";
|
|
|
2
2
|
import { Reader } from "./reading.js";
|
|
3
3
|
import { Node } from "./types.js";
|
|
4
4
|
import { Property } from "./m3/types.js";
|
|
5
|
+
import { LionWebVersion } from "./m3/version.js";
|
|
5
6
|
/**
|
|
6
7
|
* Type definition for functions that serializes nodes as a {@link LionWebJsonChunk serialization chunk}.
|
|
7
8
|
*/
|
|
@@ -14,6 +15,8 @@ export interface PropertyValueSerializer {
|
|
|
14
15
|
}
|
|
15
16
|
/**
|
|
16
17
|
* Misspelled alias of {@link PropertyValueSerializer}, kept for backward compatibility, and to be deprecated and removed later.
|
|
18
|
+
*
|
|
19
|
+
* @deprecated Use {@link PropertyValueSerializer} instead.
|
|
17
20
|
*/
|
|
18
21
|
export interface PrimitiveTypeSerializer extends PropertyValueSerializer {
|
|
19
22
|
}
|
|
@@ -29,11 +32,14 @@ export type SerializationOptions = Partial<{
|
|
|
29
32
|
serializeEmptyFeatures: boolean;
|
|
30
33
|
/**
|
|
31
34
|
* A {@link PropertyValueSerializer} implementation.
|
|
32
|
-
* Default = {@link
|
|
35
|
+
* Default = the value of the `propertyValueSerializer` property of the {@link LionWebVersion version} of the LionWeb serialization format,
|
|
36
|
+
* configured through {@code SerializerConfiguration.lionWebVersion} (which itself defaults to {@link defaultLionWebVersion}).
|
|
33
37
|
*/
|
|
34
38
|
propertyValueSerializer: PropertyValueSerializer;
|
|
35
39
|
/**
|
|
36
40
|
* Misspelled alias of {@link #propertyValueSerializer}, kept for backward compatibility, and to be deprecated and removed later.
|
|
41
|
+
*
|
|
42
|
+
* @deprecated Use {@link propertyValueSerializer} instead.
|
|
37
43
|
*/
|
|
38
44
|
primitiveTypeSerializer: PropertyValueSerializer;
|
|
39
45
|
}>;
|
|
@@ -49,6 +55,11 @@ export type SerializerConfiguration<NT extends Node> = {
|
|
|
49
55
|
* An interface with functions to “read” – i.e., introspect – nodes.
|
|
50
56
|
*/
|
|
51
57
|
reader: Reader<NT>;
|
|
58
|
+
/**
|
|
59
|
+
* The version of the LionWeb serialization format to serialize in.
|
|
60
|
+
* Default = {@link defaultLionWebVersion}.
|
|
61
|
+
*/
|
|
62
|
+
lionWebVersion?: LionWebVersion;
|
|
52
63
|
} & SerializationOptions;
|
|
53
64
|
/**
|
|
54
65
|
* @return a {@link Serializer} function that serializes the {@link Node nodes} passed to it,
|
package/dist/serializer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serializer.d.ts","sourceRoot":"","sources":["../src/serializer.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
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,IAAI;IACnD;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAA;IAElB;;;OAGG;IACH,cAAc,CAAC,EAAE,cAAc,CAAA;CAClC,GAAG,oBAAoB,CAAA;AAGxB;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,GAAI,EAAE,SAAS,IAAI,EAAE,QAAQ,MAAM,CAAC,EAAE,CAAC,EAAE,uBAAuB,oBAAoB,KAAG,UAAU,CAAC,EAAE,CACxE,CAAA;AAGvD;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,EAAE,SAAS,IAAI,EAAE,eAAe,uBAAuB,CAAC,EAAE,CAAC,KAAG,UAAU,CAAC,EAAE,CA6IzG,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,EAAE,SAAS,IAAI,EAC1C,OAAO,EAAE,EAAE,EACX,QAAQ,MAAM,CAAC,EAAE,CAAC,EAClB,mCAAmC,uBAAuB,GAAG,oBAAoB,KAClF,gBAQS,CAAA"}
|
package/dist/serializer.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { currentSerializationFormatVersion } from "@lionweb/json";
|
|
2
1
|
import { asArray, keepDefineds, lazyMapGet, uniquesAmong } from "@lionweb/ts-utils";
|
|
3
2
|
import { asIds, metaPointerFor } from "./functions.js";
|
|
4
|
-
import { builtinPropertyValueSerializer } from "./m3/builtins.js";
|
|
5
3
|
import { inheritsDirectlyFrom } from "./m3/functions.js";
|
|
6
4
|
import { Containment, Enumeration, PrimitiveType, Property, Reference, simpleNameDeducer } from "./m3/types.js";
|
|
5
|
+
import { defaultLionWebVersion } from "./m3/versions.js";
|
|
7
6
|
const isPropertyValueSerializer = (value) => typeof value === "object" && value !== null && "serializeValue" in value && typeof value.serializeValue === "function";
|
|
8
7
|
/**
|
|
9
8
|
* @return a {@link Serializer} function that serializes the {@link Node nodes} passed to it,
|
|
@@ -19,7 +18,8 @@ export const nodeSerializer = (reader, serializationOptions) => serializerWith({
|
|
|
19
18
|
*/
|
|
20
19
|
export const serializerWith = (configuration) => {
|
|
21
20
|
const { reader } = configuration;
|
|
22
|
-
const
|
|
21
|
+
const lionWebVersion = configuration?.lionWebVersion ?? defaultLionWebVersion;
|
|
22
|
+
const propertyValueSerializer = configuration.propertyValueSerializer ?? configuration.primitiveTypeSerializer ?? lionWebVersion.builtinsFacade.propertyValueSerializer;
|
|
23
23
|
const serializeEmptyFeatures = configuration.serializeEmptyFeatures ?? true;
|
|
24
24
|
const languageKey2version2classifierKey2allFeatures = {};
|
|
25
25
|
const memoisedAllFeaturesOf = (classifier) => lazyMapGet(lazyMapGet(lazyMapGet(languageKey2version2classifierKey2allFeatures, classifier.language.key, () => ({})), classifier.language.version, () => ({})), classifier.key, () => uniquesAmong(// make unique in case a feature was inherited from multiple super-classifiers
|
|
@@ -129,7 +129,7 @@ export const serializerWith = (configuration) => {
|
|
|
129
129
|
};
|
|
130
130
|
nodes.forEach(node => visit(node, undefined));
|
|
131
131
|
return {
|
|
132
|
-
serializationFormatVersion:
|
|
132
|
+
serializationFormatVersion: lionWebVersion.serializationFormatVersion,
|
|
133
133
|
languages: languagesUsed.map(({ key, version }) => ({ key, version })),
|
|
134
134
|
nodes: serializedNodes
|
|
135
135
|
};
|
package/dist/serializer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serializer.js","sourceRoot":"","sources":["../src/serializer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"serializer.js","sourceRoot":"","sources":["../src/serializer.ts"],"names":[],"mappings":"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"}
|