typia 7.0.0-dev.20241012 → 7.0.0-dev.20241018
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/lib/factories/JsonMetadataFactory.js +3 -2
- package/lib/factories/JsonMetadataFactory.js.map +1 -1
- package/lib/factories/MetadataCollection.d.ts +3 -3
- package/lib/factories/MetadataCollection.js +2 -2
- package/lib/factories/MetadataCollection.js.map +1 -1
- package/lib/factories/MetadataFactory.d.ts +2 -2
- package/lib/factories/MetadataFactory.js +3 -3
- package/lib/factories/MetadataFactory.js.map +1 -1
- package/lib/factories/MetadataTypeTagFactory.d.ts +3 -2
- package/lib/factories/MetadataTypeTagFactory.js +26 -3
- package/lib/factories/MetadataTypeTagFactory.js.map +1 -1
- package/lib/factories/ProtobufFactory.js +829 -156
- package/lib/factories/ProtobufFactory.js.map +1 -1
- package/lib/factories/internal/metadata/IMetadataIteratorProps.d.ts +1 -0
- package/lib/factories/internal/metadata/MetadataHelper.js +1 -1
- package/lib/factories/internal/metadata/MetadataHelper.js.map +1 -1
- package/lib/factories/internal/metadata/emplace_metadata_alias.d.ts +2 -2
- package/lib/factories/internal/metadata/emplace_metadata_object.js +5 -5
- package/lib/factories/internal/metadata/emplace_metadata_object.js.map +1 -1
- package/lib/factories/internal/metadata/explore_metadata.js +2 -0
- package/lib/factories/internal/metadata/explore_metadata.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata.js +1 -1
- package/lib/factories/internal/metadata/iterate_metadata.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_alias.js +8 -2
- package/lib/factories/internal/metadata/iterate_metadata_alias.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_collection.js +6 -6
- package/lib/factories/internal/metadata/iterate_metadata_collection.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_intersection.js +262 -137
- package/lib/factories/internal/metadata/iterate_metadata_intersection.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_map.js +4 -2
- package/lib/factories/internal/metadata/iterate_metadata_map.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_native.js +27 -11
- package/lib/factories/internal/metadata/iterate_metadata_native.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_set.js +8 -1
- package/lib/factories/internal/metadata/iterate_metadata_set.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_sort.js +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_sort.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_template.js +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_template.js.map +1 -1
- package/lib/programmers/CheckerProgrammer.js +5 -5
- package/lib/programmers/CheckerProgrammer.js.map +1 -1
- package/lib/programmers/RandomProgrammer.js +12 -12
- package/lib/programmers/RandomProgrammer.js.map +1 -1
- package/lib/programmers/helpers/AtomicPredicator.js +3 -3
- package/lib/programmers/helpers/AtomicPredicator.js.map +1 -1
- package/lib/programmers/helpers/ProtobufUtil.d.ts +5 -4
- package/lib/programmers/helpers/ProtobufUtil.js +215 -92
- package/lib/programmers/helpers/ProtobufUtil.js.map +1 -1
- package/lib/programmers/helpers/UnionExplorer.d.ts +4 -2
- package/lib/programmers/helpers/UnionExplorer.js +1 -1
- package/lib/programmers/helpers/UnionExplorer.js.map +1 -1
- package/lib/programmers/http/HttpFormDataProgrammer.js +6 -6
- package/lib/programmers/http/HttpFormDataProgrammer.js.map +1 -1
- package/lib/programmers/internal/application_escaped.js +2 -2
- package/lib/programmers/internal/application_escaped.js.map +1 -1
- package/lib/programmers/internal/application_v30_alias.js +13 -8
- package/lib/programmers/internal/application_v30_alias.js.map +1 -1
- package/lib/programmers/internal/application_v30_native.js +17 -10
- package/lib/programmers/internal/application_v30_native.js.map +1 -1
- package/lib/programmers/internal/application_v30_object.js +16 -6
- package/lib/programmers/internal/application_v30_object.js.map +1 -1
- package/lib/programmers/internal/application_v30_schema.js +24 -17
- package/lib/programmers/internal/application_v30_schema.js.map +1 -1
- package/lib/programmers/internal/application_v31_alias.js +12 -11
- package/lib/programmers/internal/application_v31_alias.js.map +1 -1
- package/lib/programmers/internal/application_v31_native.js +17 -10
- package/lib/programmers/internal/application_v31_native.js.map +1 -1
- package/lib/programmers/internal/application_v31_object.js +13 -6
- package/lib/programmers/internal/application_v31_object.js.map +1 -1
- package/lib/programmers/internal/application_v31_schema.js +23 -16
- package/lib/programmers/internal/application_v31_schema.js.map +1 -1
- package/lib/programmers/internal/check_dynamic_key.js +4 -4
- package/lib/programmers/internal/check_dynamic_key.js.map +1 -1
- package/lib/programmers/internal/check_native.js +3 -3
- package/lib/programmers/internal/check_union_array_like.js.map +1 -1
- package/lib/programmers/internal/llm_schema_escaped.js +2 -2
- package/lib/programmers/internal/llm_schema_escaped.js.map +1 -1
- package/lib/programmers/internal/llm_schema_object.js +18 -14
- package/lib/programmers/internal/llm_schema_object.js.map +1 -1
- package/lib/programmers/internal/llm_schema_station.js +8 -8
- package/lib/programmers/internal/llm_schema_station.js.map +1 -1
- package/lib/programmers/json/JsonSchemasProgrammer.js +5 -5
- package/lib/programmers/json/JsonSchemasProgrammer.js.map +1 -1
- package/lib/programmers/json/JsonStringifyProgrammer.js +18 -17
- package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
- package/lib/programmers/llm/LlmSchemaProgrammer.js +6 -6
- package/lib/programmers/llm/LlmSchemaProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscCloneProgrammer.js +7 -5
- package/lib/programmers/misc/MiscCloneProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscPruneProgrammer.js +1 -1
- package/lib/programmers/misc/MiscPruneProgrammer.js.map +1 -1
- package/lib/programmers/notations/NotationGeneralProgrammer.js +6 -4
- package/lib/programmers/notations/NotationGeneralProgrammer.js.map +1 -1
- package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js +15 -12
- package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js.map +1 -1
- package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js +6 -4
- package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js.map +1 -1
- package/lib/programmers/protobuf/ProtobufMessageProgrammer.js +51 -34
- package/lib/programmers/protobuf/ProtobufMessageProgrammer.js.map +1 -1
- package/lib/schemas/metadata/IMetadata.d.ts +14 -18
- package/lib/schemas/metadata/IMetadataAlias.d.ts +2 -7
- package/lib/schemas/metadata/IMetadataAliasType.d.ts +10 -0
- package/lib/schemas/metadata/IMetadataAliasType.js +3 -0
- package/lib/schemas/metadata/IMetadataAliasType.js.map +1 -0
- package/lib/schemas/metadata/IMetadataComponents.d.ts +2 -2
- package/lib/schemas/metadata/IMetadataConstantValue.d.ts +1 -1
- package/lib/schemas/metadata/IMetadataDictionary.d.ts +2 -2
- package/lib/schemas/metadata/IMetadataMap.d.ts +7 -0
- package/lib/schemas/metadata/{IMetadataEntry.js → IMetadataMap.js} +1 -1
- package/lib/schemas/metadata/IMetadataMap.js.map +1 -0
- package/lib/schemas/metadata/IMetadataNative.d.ts +5 -0
- package/lib/schemas/metadata/IMetadataNative.js +3 -0
- package/lib/schemas/metadata/IMetadataNative.js.map +1 -0
- package/lib/schemas/metadata/IMetadataSet.d.ts +6 -0
- package/lib/schemas/metadata/IMetadataSet.js +3 -0
- package/lib/schemas/metadata/IMetadataSet.js.map +1 -0
- package/lib/schemas/metadata/IMetadataTemplate.d.ts +1 -1
- package/lib/schemas/metadata/IMetadataTypeTag.d.ts +1 -1
- package/lib/schemas/metadata/Metadata.d.ts +6 -9
- package/lib/schemas/metadata/Metadata.js +136 -98
- package/lib/schemas/metadata/Metadata.js.map +1 -1
- package/lib/schemas/metadata/MetadataAlias.d.ts +8 -11
- package/lib/schemas/metadata/MetadataAlias.js +48 -33
- package/lib/schemas/metadata/MetadataAlias.js.map +1 -1
- package/lib/schemas/metadata/MetadataAliasType.d.ts +16 -0
- package/lib/schemas/metadata/MetadataAliasType.js +51 -0
- package/lib/schemas/metadata/MetadataAliasType.js.map +1 -0
- package/lib/schemas/metadata/MetadataComponents.d.ts +2 -2
- package/lib/schemas/metadata/MetadataComponents.js +2 -2
- package/lib/schemas/metadata/MetadataComponents.js.map +1 -1
- package/lib/schemas/metadata/MetadataConstantValue.d.ts +1 -1
- package/lib/schemas/metadata/MetadataMap.d.ts +14 -0
- package/lib/schemas/metadata/MetadataMap.js +66 -0
- package/lib/schemas/metadata/MetadataMap.js.map +1 -0
- package/lib/schemas/metadata/MetadataNative.d.ts +12 -0
- package/lib/schemas/metadata/MetadataNative.js +65 -0
- package/lib/schemas/metadata/MetadataNative.js.map +1 -0
- package/lib/schemas/metadata/MetadataSet.d.ts +13 -0
- package/lib/schemas/metadata/MetadataSet.js +64 -0
- package/lib/schemas/metadata/MetadataSet.js.map +1 -0
- package/lib/schemas/metadata/MetadataTemplate.d.ts +1 -1
- package/lib/tags/Example.d.ts +2 -2
- package/lib/tags/Examples.d.ts +2 -2
- package/lib/tags/JsonSchemaPlugin.d.ts +1 -1
- package/lib/tags/Sequence.d.ts +9 -0
- package/lib/tags/Sequence.js +3 -0
- package/lib/tags/Sequence.js.map +1 -0
- package/lib/tags/TagBase.d.ts +1 -1
- package/lib/tags/index.d.ts +1 -0
- package/lib/tags/index.js +1 -0
- package/lib/tags/index.js.map +1 -1
- package/package.json +1 -1
- package/src/factories/JsonMetadataFactory.ts +5 -2
- package/src/factories/MetadataCollection.ts +6 -6
- package/src/factories/MetadataFactory.ts +7 -7
- package/src/factories/MetadataTypeTagFactory.ts +31 -6
- package/src/factories/ProtobufFactory.ts +494 -176
- package/src/factories/internal/metadata/IMetadataIteratorProps.ts +1 -0
- package/src/factories/internal/metadata/MetadataHelper.ts +1 -1
- package/src/factories/internal/metadata/emplace_metadata_alias.ts +2 -2
- package/src/factories/internal/metadata/emplace_metadata_object.ts +5 -5
- package/src/factories/internal/metadata/explore_metadata.ts +1 -0
- package/src/factories/internal/metadata/iterate_metadata.ts +1 -1
- package/src/factories/internal/metadata/iterate_metadata_alias.ts +9 -4
- package/src/factories/internal/metadata/iterate_metadata_collection.ts +6 -6
- package/src/factories/internal/metadata/iterate_metadata_intersection.ts +163 -181
- package/src/factories/internal/metadata/iterate_metadata_map.ts +5 -2
- package/src/factories/internal/metadata/iterate_metadata_native.ts +20 -2
- package/src/factories/internal/metadata/iterate_metadata_set.ts +27 -11
- package/src/factories/internal/metadata/iterate_metadata_sort.ts +1 -1
- package/src/factories/internal/metadata/iterate_metadata_template.ts +1 -3
- package/src/programmers/CheckerProgrammer.ts +9 -7
- package/src/programmers/RandomProgrammer.ts +16 -14
- package/src/programmers/helpers/AtomicPredicator.ts +3 -3
- package/src/programmers/helpers/ProtobufUtil.ts +146 -43
- package/src/programmers/helpers/UnionExplorer.ts +62 -62
- package/src/programmers/http/HttpFormDataProgrammer.ts +10 -6
- package/src/programmers/internal/application_escaped.ts +2 -2
- package/src/programmers/internal/application_v30_alias.ts +18 -12
- package/src/programmers/internal/application_v30_native.ts +22 -12
- package/src/programmers/internal/application_v30_object.ts +23 -8
- package/src/programmers/internal/application_v30_schema.ts +31 -34
- package/src/programmers/internal/application_v31_alias.ts +16 -13
- package/src/programmers/internal/application_v31_native.ts +22 -12
- package/src/programmers/internal/application_v31_object.ts +19 -8
- package/src/programmers/internal/application_v31_schema.ts +26 -29
- package/src/programmers/internal/check_dynamic_key.ts +4 -4
- package/src/programmers/internal/check_native.ts +4 -4
- package/src/programmers/internal/check_union_array_like.ts +2 -1
- package/src/programmers/internal/llm_schema_escaped.ts +2 -2
- package/src/programmers/internal/llm_schema_object.ts +21 -18
- package/src/programmers/internal/llm_schema_station.ts +9 -11
- package/src/programmers/json/JsonSchemasProgrammer.ts +5 -5
- package/src/programmers/json/JsonStringifyProgrammer.ts +5 -5
- package/src/programmers/llm/LlmSchemaProgrammer.ts +6 -6
- package/src/programmers/misc/MiscCloneProgrammer.ts +11 -7
- package/src/programmers/misc/MiscPruneProgrammer.ts +1 -1
- package/src/programmers/notations/NotationGeneralProgrammer.ts +10 -6
- package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +14 -7
- package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +11 -8
- package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +45 -20
- package/src/schemas/metadata/IMetadata.ts +35 -39
- package/src/schemas/metadata/IMetadataAlias.ts +6 -12
- package/src/schemas/metadata/IMetadataAliasType.ts +12 -0
- package/src/schemas/metadata/IMetadataArray.ts +6 -6
- package/src/schemas/metadata/IMetadataComponents.ts +11 -11
- package/src/schemas/metadata/IMetadataConstantValue.ts +1 -1
- package/src/schemas/metadata/IMetadataDictionary.ts +2 -2
- package/src/schemas/metadata/IMetadataMap.ts +8 -0
- package/src/schemas/metadata/IMetadataNative.ts +6 -0
- package/src/schemas/metadata/IMetadataObjectType.ts +13 -13
- package/src/schemas/metadata/IMetadataSet.ts +7 -0
- package/src/schemas/metadata/IMetadataTemplate.ts +7 -7
- package/src/schemas/metadata/IMetadataTuple.ts +6 -6
- package/src/schemas/metadata/IMetadataTypeTag.ts +16 -16
- package/src/schemas/metadata/Metadata.ts +100 -47
- package/src/schemas/metadata/MetadataAlias.ts +46 -61
- package/src/schemas/metadata/MetadataAliasType.ts +63 -0
- package/src/schemas/metadata/MetadataArray.ts +49 -49
- package/src/schemas/metadata/MetadataComponents.ts +3 -3
- package/src/schemas/metadata/MetadataConstantValue.ts +1 -1
- package/src/schemas/metadata/MetadataMap.ts +48 -0
- package/src/schemas/metadata/MetadataNative.ts +44 -0
- package/src/schemas/metadata/MetadataProperty.ts +5 -0
- package/src/schemas/metadata/MetadataSet.ts +45 -0
- package/src/schemas/metadata/MetadataTemplate.ts +80 -80
- package/src/schemas/metadata/MetadataTuple.ts +32 -32
- package/src/tags/Example.ts +24 -17
- package/src/tags/Examples.ts +16 -16
- package/src/tags/JsonSchemaPlugin.ts +8 -8
- package/src/tags/Sequence.ts +10 -0
- package/src/tags/TagBase.ts +82 -76
- package/src/tags/index.ts +1 -0
- package/lib/schemas/metadata/IMetadataEntry.d.ts +0 -5
- package/lib/schemas/metadata/IMetadataEntry.js.map +0 -1
- package/src/schemas/metadata/IMetadataEntry.ts +0 -6
|
@@ -53,13 +53,16 @@ var TransformerError_1 = require("../transformers/TransformerError");
|
|
|
53
53
|
var MetadataFactory_1 = require("./MetadataFactory");
|
|
54
54
|
var ProtobufFactory;
|
|
55
55
|
(function (ProtobufFactory) {
|
|
56
|
+
/* -----------------------------------------------------------
|
|
57
|
+
METADATA COMPOSER
|
|
58
|
+
----------------------------------------------------------- */
|
|
56
59
|
ProtobufFactory.metadata = function (props) {
|
|
57
60
|
// COMPOSE METADATA WITH INDIVIDUAL VALIDATIONS
|
|
58
61
|
var result = MetadataFactory_1.MetadataFactory.analyze(__assign(__assign({}, props), { transformer: props.transformer, options: {
|
|
59
62
|
escape: false,
|
|
60
63
|
constant: true,
|
|
61
64
|
absorb: true,
|
|
62
|
-
validate: validate,
|
|
65
|
+
validate: validate(),
|
|
63
66
|
} }));
|
|
64
67
|
if (result.success === false)
|
|
65
68
|
throw TransformerError_1.TransformerError.from({
|
|
@@ -68,176 +71,837 @@ var ProtobufFactory;
|
|
|
68
71
|
});
|
|
69
72
|
return result.data;
|
|
70
73
|
};
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
74
|
+
/* -----------------------------------------------------------
|
|
75
|
+
VALIDATORS
|
|
76
|
+
----------------------------------------------------------- */
|
|
77
|
+
var validate = function () {
|
|
78
|
+
var visited = new WeakSet();
|
|
79
|
+
return function (meta, explore) {
|
|
80
|
+
var e_1, _a, e_2, _b, e_3, _c;
|
|
81
|
+
var errors = [];
|
|
82
|
+
var insert = function (msg) { return errors.push(msg); };
|
|
83
|
+
if (explore.top === true) {
|
|
84
|
+
var onlyObject = meta.size() === 1 &&
|
|
85
|
+
meta.objects.length === 1 &&
|
|
86
|
+
meta.objects[0].type.properties.every(function (p) {
|
|
87
|
+
return p.key.isSoleLiteral();
|
|
88
|
+
}) &&
|
|
89
|
+
meta.isRequired() === true &&
|
|
90
|
+
meta.nullable === false;
|
|
91
|
+
if (onlyObject === false)
|
|
92
|
+
insert("target type must be a sole and static object type");
|
|
93
|
+
}
|
|
94
|
+
if (explore.object !== null && visited.has(explore.object) === false) {
|
|
95
|
+
visited.add(explore.object);
|
|
96
|
+
validateRegularObject({
|
|
97
|
+
object: explore.object,
|
|
98
|
+
errors: errors,
|
|
99
|
+
});
|
|
100
|
+
try {
|
|
101
|
+
for (var _d = __values(explore.object.properties), _e = _d.next(); !_e.done; _e = _d.next()) {
|
|
102
|
+
var p = _e.value;
|
|
103
|
+
validateRegularProperty({
|
|
104
|
+
value: p.value,
|
|
105
|
+
errors: errors,
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
110
|
+
finally {
|
|
111
|
+
try {
|
|
112
|
+
if (_e && !_e.done && (_a = _d.return)) _a.call(_d);
|
|
113
|
+
}
|
|
114
|
+
finally { if (e_1) throw e_1.error; }
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
//----
|
|
118
|
+
// NOT SUPPORTED TYPES
|
|
119
|
+
//----
|
|
120
|
+
var noSupport = function (msg) { return insert("does not support ".concat(msg)); };
|
|
121
|
+
// PROHIBIT ANY TYPE
|
|
122
|
+
if (meta.any)
|
|
123
|
+
noSupport("any type");
|
|
124
|
+
// PROHIBIT FUNCTIONAL TYPE
|
|
125
|
+
if (meta.functions.length)
|
|
126
|
+
noSupport("functional type");
|
|
127
|
+
// PROHIBIT TUPLE TYPE
|
|
128
|
+
if (meta.tuples.length)
|
|
129
|
+
noSupport("tuple type");
|
|
130
|
+
// PROHIBIT SET TYPE
|
|
131
|
+
if (meta.sets.length)
|
|
132
|
+
noSupport("Set type");
|
|
133
|
+
// NATIVE TYPE, BUT NOT Uint8Array
|
|
134
|
+
if (meta.natives.length)
|
|
135
|
+
try {
|
|
136
|
+
for (var _f = __values(meta.natives), _g = _f.next(); !_g.done; _g = _f.next()) {
|
|
137
|
+
var native = _g.value;
|
|
138
|
+
if (native.name === "Uint8Array")
|
|
139
|
+
continue;
|
|
140
|
+
var instead = BANNED_NATIVE_TYPES.get(native.name);
|
|
141
|
+
if (instead === undefined)
|
|
142
|
+
noSupport("".concat(native.name, " type"));
|
|
143
|
+
else
|
|
144
|
+
noSupport("".concat(native.name, " type. Use ").concat(instead, " type instead."));
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
148
|
+
finally {
|
|
149
|
+
try {
|
|
150
|
+
if (_g && !_g.done && (_b = _f.return)) _b.call(_f);
|
|
151
|
+
}
|
|
152
|
+
finally { if (e_2) throw e_2.error; }
|
|
153
|
+
}
|
|
154
|
+
//----
|
|
155
|
+
// ATOMIC CASES
|
|
156
|
+
//----
|
|
157
|
+
if (meta.atomics.length) {
|
|
158
|
+
var numbers = ProtobufUtil_1.ProtobufUtil.getNumbers(meta);
|
|
159
|
+
var bigints = ProtobufUtil_1.ProtobufUtil.getBigints(meta);
|
|
160
|
+
try {
|
|
161
|
+
for (var _h = __values(["int64", "uint64"]), _j = _h.next(); !_j.done; _j = _h.next()) {
|
|
162
|
+
var type = _j.value;
|
|
163
|
+
if (numbers.has(type) && bigints.has(type))
|
|
164
|
+
insert("tags.Type<\"".concat(type, "\"> cannot be used in both number and bigint types. Recommend to remove from number type"));
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
168
|
+
finally {
|
|
169
|
+
try {
|
|
170
|
+
if (_j && !_j.done && (_c = _h.return)) _c.call(_h);
|
|
171
|
+
}
|
|
172
|
+
finally { if (e_3) throw e_3.error; }
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
//----
|
|
176
|
+
// ARRRAY CASES
|
|
177
|
+
//----
|
|
178
|
+
// DO NOT ALLOW MULTI-DIMENTIONAL ARRAY
|
|
179
|
+
if (meta.arrays.length &&
|
|
180
|
+
meta.arrays.some(function (array) { return !!array.type.value.arrays.length; }))
|
|
181
|
+
noSupport("over two dimenstional array type");
|
|
182
|
+
// CHILD OF ARRAY TYPE MUST BE REQUIRED
|
|
183
|
+
if (meta.arrays.length &&
|
|
184
|
+
meta.arrays.some(function (array) {
|
|
185
|
+
return array.type.value.isRequired() === false ||
|
|
186
|
+
array.type.value.nullable === true;
|
|
187
|
+
}))
|
|
188
|
+
noSupport("optional type in array");
|
|
189
|
+
// UNION IN ARRAY
|
|
190
|
+
if (meta.arrays.length &&
|
|
191
|
+
meta.arrays.some(function (a) {
|
|
192
|
+
var _a;
|
|
193
|
+
return a.type.value.size() > 1 &&
|
|
194
|
+
a.type.value.constants.length !== 1 &&
|
|
195
|
+
((_a = a.type.value.constants[0]) === null || _a === void 0 ? void 0 : _a.values.length) !== a.type.value.size();
|
|
196
|
+
}))
|
|
197
|
+
noSupport("union type in array");
|
|
198
|
+
// DO DYNAMIC OBJECT IN ARRAY
|
|
199
|
+
if (meta.arrays.length &&
|
|
200
|
+
meta.arrays.some(function (a) {
|
|
201
|
+
return a.type.value.maps.length ||
|
|
202
|
+
(a.type.value.objects.length &&
|
|
203
|
+
a.type.value.objects.some(function (o) { return ProtobufUtil_1.ProtobufUtil.isStaticObject(o.type) === false; }));
|
|
204
|
+
}))
|
|
205
|
+
noSupport("dynamic object in array");
|
|
206
|
+
// UNION WITH ARRAY
|
|
207
|
+
if (meta.size() > 1 && meta.arrays.length)
|
|
208
|
+
noSupport("union type with array type");
|
|
209
|
+
//----
|
|
210
|
+
// OBJECT CASES
|
|
211
|
+
//----
|
|
212
|
+
// EMPTY PROPERTY
|
|
213
|
+
if (meta.objects.length &&
|
|
214
|
+
meta.objects.some(function (obj) { return obj.type.properties.length === 0; }))
|
|
215
|
+
noSupport("empty object type");
|
|
216
|
+
// MULTIPLE DYNAMIC KEY TYPED PROPERTIES
|
|
217
|
+
if (meta.objects.length &&
|
|
218
|
+
meta.objects.some(function (obj) {
|
|
219
|
+
return obj.type.properties.filter(function (p) { return !p.key.isSoleLiteral(); }).length >
|
|
220
|
+
1;
|
|
221
|
+
}))
|
|
222
|
+
noSupport("object type with multiple dynamic key typed properties. Keep only one.");
|
|
223
|
+
// STATIC AND DYNAMIC PROPERTIES ARE COMPATIBLE
|
|
224
|
+
if (meta.objects.length &&
|
|
225
|
+
meta.objects.some(function (obj) {
|
|
226
|
+
return obj.type.properties.some(function (p) { return p.key.isSoleLiteral(); }) &&
|
|
227
|
+
obj.type.properties.some(function (p) { return !p.key.isSoleLiteral(); });
|
|
228
|
+
}))
|
|
229
|
+
noSupport("object type with mixed static and dynamic key typed properties. Keep statics or dynamic only.");
|
|
230
|
+
// DYNAMIC OBJECT, BUT PROPERTY VALUE TYPE IS ARRAY
|
|
231
|
+
if (meta.objects.length &&
|
|
232
|
+
isDynamicObject(meta.objects[0].type) &&
|
|
233
|
+
meta.objects[0].type.properties.some(function (p) { return !!p.value.arrays.length; }))
|
|
234
|
+
noSupport("dynamic object with array value type");
|
|
235
|
+
// UNION WITH DYNAMIC OBJECTa
|
|
236
|
+
if (meta.size() > 1 &&
|
|
237
|
+
meta.objects.length &&
|
|
238
|
+
isDynamicObject(meta.objects[0].type))
|
|
239
|
+
noSupport("union type with dynamic object type");
|
|
240
|
+
// UNION IN DYNAMIC PROPERTY VALUE
|
|
241
|
+
if (meta.objects.length &&
|
|
242
|
+
meta.objects.some(function (obj) {
|
|
243
|
+
return isDynamicObject(obj.type) &&
|
|
244
|
+
obj.type.properties.some(function (p) { return ProtobufUtil_1.ProtobufUtil.isUnion(p.value); });
|
|
245
|
+
}))
|
|
246
|
+
noSupport("union type in dynamic property");
|
|
247
|
+
//----
|
|
248
|
+
// MAP CASES
|
|
249
|
+
//----
|
|
250
|
+
// KEY TYPE IS UNION
|
|
251
|
+
if (meta.maps.length &&
|
|
252
|
+
meta.maps.some(function (m) { return ProtobufUtil_1.ProtobufUtil.isUnion(m.key); }))
|
|
253
|
+
noSupport("union key typed map");
|
|
254
|
+
// KEY TYPE IS NOT ATOMIC
|
|
255
|
+
if (meta.maps.length &&
|
|
256
|
+
meta.maps.some(function (m) { return ProtobufUtil_1.ProtobufUtil.getAtomics(m.key).size !== 1; }))
|
|
257
|
+
noSupport("non-atomic key typed map");
|
|
258
|
+
// MAP TYPE, BUT PROPERTY KEY TYPE IS OPTIONAL
|
|
259
|
+
if (meta.maps.length &&
|
|
260
|
+
meta.maps.some(function (m) { return m.key.isRequired() === false || m.key.nullable; }))
|
|
261
|
+
noSupport("optional key typed map");
|
|
262
|
+
// MAP TYPE, BUT VALUE TYPE IS ARRAY
|
|
263
|
+
if (meta.maps.length && meta.maps.some(function (m) { return !!m.value.arrays.length; }))
|
|
264
|
+
noSupport("map type with array value type");
|
|
265
|
+
// UNION WITH MAP
|
|
266
|
+
if (meta.size() > 1 && meta.maps.length)
|
|
267
|
+
noSupport("union type with map type");
|
|
268
|
+
// UNION IN MAP
|
|
269
|
+
if (meta.maps.length &&
|
|
270
|
+
meta.maps.some(function (m) { return ProtobufUtil_1.ProtobufUtil.isUnion(m.value); }))
|
|
271
|
+
noSupport("union type in map value type");
|
|
272
|
+
return errors;
|
|
273
|
+
};
|
|
274
|
+
};
|
|
275
|
+
/* -----------------------------------------------------------
|
|
276
|
+
SEQUENE VALIDATOR
|
|
277
|
+
----------------------------------------------------------- */
|
|
278
|
+
var validateRegularObject = function (next) {
|
|
279
|
+
var e_4, _a;
|
|
280
|
+
var entire = new Map();
|
|
281
|
+
var visitProperty = function (p) {
|
|
282
|
+
var e_5, _a, e_6, _b, e_7, _c, e_8, _d, e_9, _e, e_10, _f, e_11, _g;
|
|
283
|
+
var local = new Set();
|
|
284
|
+
var tagger = function (matrix) {
|
|
285
|
+
matrix.forEach(function (tags) {
|
|
286
|
+
var value = ProtobufUtil_1.ProtobufUtil.getSequence(tags);
|
|
287
|
+
if (value !== null)
|
|
288
|
+
local.add(value);
|
|
289
|
+
});
|
|
290
|
+
};
|
|
291
|
+
try {
|
|
292
|
+
for (var _h = __values(p.value.constants), _j = _h.next(); !_j.done; _j = _h.next()) {
|
|
293
|
+
var c = _j.value;
|
|
294
|
+
try {
|
|
295
|
+
for (var _k = (e_6 = void 0, __values(c.values)), _l = _k.next(); !_l.done; _l = _k.next()) {
|
|
296
|
+
var v = _l.value;
|
|
297
|
+
tagger(v.tags);
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
catch (e_6_1) { e_6 = { error: e_6_1 }; }
|
|
301
|
+
finally {
|
|
302
|
+
try {
|
|
303
|
+
if (_l && !_l.done && (_b = _k.return)) _b.call(_k);
|
|
304
|
+
}
|
|
305
|
+
finally { if (e_6) throw e_6.error; }
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
catch (e_5_1) { e_5 = { error: e_5_1 }; }
|
|
310
|
+
finally {
|
|
311
|
+
try {
|
|
312
|
+
if (_j && !_j.done && (_a = _h.return)) _a.call(_h);
|
|
313
|
+
}
|
|
314
|
+
finally { if (e_5) throw e_5.error; }
|
|
315
|
+
}
|
|
102
316
|
try {
|
|
103
|
-
for (var
|
|
104
|
-
var
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
317
|
+
for (var _m = __values(p.value.atomics), _o = _m.next(); !_o.done; _o = _m.next()) {
|
|
318
|
+
var a = _o.value;
|
|
319
|
+
tagger(a.tags);
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
catch (e_7_1) { e_7 = { error: e_7_1 }; }
|
|
323
|
+
finally {
|
|
324
|
+
try {
|
|
325
|
+
if (_o && !_o.done && (_c = _m.return)) _c.call(_m);
|
|
326
|
+
}
|
|
327
|
+
finally { if (e_7) throw e_7.error; }
|
|
328
|
+
}
|
|
329
|
+
try {
|
|
330
|
+
for (var _p = __values(p.value.templates), _q = _p.next(); !_q.done; _q = _p.next()) {
|
|
331
|
+
var t = _q.value;
|
|
332
|
+
tagger(t.tags);
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
catch (e_8_1) { e_8 = { error: e_8_1 }; }
|
|
336
|
+
finally {
|
|
337
|
+
try {
|
|
338
|
+
if (_q && !_q.done && (_d = _p.return)) _d.call(_p);
|
|
339
|
+
}
|
|
340
|
+
finally { if (e_8) throw e_8.error; }
|
|
341
|
+
}
|
|
342
|
+
try {
|
|
343
|
+
for (var _r = __values(p.value.objects), _s = _r.next(); !_s.done; _s = _r.next()) {
|
|
344
|
+
var o = _s.value;
|
|
345
|
+
tagger(o.tags);
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
catch (e_9_1) { e_9 = { error: e_9_1 }; }
|
|
349
|
+
finally {
|
|
350
|
+
try {
|
|
351
|
+
if (_s && !_s.done && (_e = _r.return)) _e.call(_r);
|
|
352
|
+
}
|
|
353
|
+
finally { if (e_9) throw e_9.error; }
|
|
354
|
+
}
|
|
355
|
+
try {
|
|
356
|
+
for (var _t = __values(p.value.arrays), _u = _t.next(); !_u.done; _u = _t.next()) {
|
|
357
|
+
var a = _u.value;
|
|
358
|
+
tagger(a.tags);
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
catch (e_10_1) { e_10 = { error: e_10_1 }; }
|
|
362
|
+
finally {
|
|
363
|
+
try {
|
|
364
|
+
if (_u && !_u.done && (_f = _t.return)) _f.call(_t);
|
|
365
|
+
}
|
|
366
|
+
finally { if (e_10) throw e_10.error; }
|
|
367
|
+
}
|
|
368
|
+
try {
|
|
369
|
+
for (var local_1 = __values(local), local_1_1 = local_1.next(); !local_1_1.done; local_1_1 = local_1.next()) {
|
|
370
|
+
var s = local_1_1.value;
|
|
371
|
+
if (entire.has(s))
|
|
372
|
+
next.errors.push("The Sequence<".concat(s, "> tag is duplicated in two properties (").concat(JSON.stringify(entire.get(s)), " and ").concat(JSON.stringify(p.key.getSoleLiteral()), ")"));
|
|
110
373
|
else
|
|
111
|
-
|
|
374
|
+
entire.set(s, p.key.getSoleLiteral());
|
|
112
375
|
}
|
|
113
376
|
}
|
|
114
|
-
catch (
|
|
377
|
+
catch (e_11_1) { e_11 = { error: e_11_1 }; }
|
|
115
378
|
finally {
|
|
116
379
|
try {
|
|
117
|
-
if (
|
|
118
|
-
}
|
|
119
|
-
finally { if (
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
380
|
+
if (local_1_1 && !local_1_1.done && (_g = local_1.return)) _g.call(local_1);
|
|
381
|
+
}
|
|
382
|
+
finally { if (e_11) throw e_11.error; }
|
|
383
|
+
}
|
|
384
|
+
};
|
|
385
|
+
try {
|
|
386
|
+
for (var _b = __values(next.object.properties), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
387
|
+
var p = _c.value;
|
|
388
|
+
visitProperty(p);
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
|
392
|
+
finally {
|
|
393
|
+
try {
|
|
394
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
395
|
+
}
|
|
396
|
+
finally { if (e_4) throw e_4.error; }
|
|
397
|
+
}
|
|
398
|
+
};
|
|
399
|
+
var validateRegularProperty = function (next) {
|
|
400
|
+
var e_12, _a, e_13, _b, e_14, _c, e_15, _d, e_16, _e;
|
|
401
|
+
var expected = 0;
|
|
402
|
+
var sequences = new Set();
|
|
403
|
+
var add = function (value) {
|
|
404
|
+
if (sequences.has(value))
|
|
405
|
+
return false;
|
|
406
|
+
sequences.add(value);
|
|
407
|
+
++expected;
|
|
408
|
+
return true;
|
|
409
|
+
};
|
|
410
|
+
try {
|
|
411
|
+
for (var _f = __values([
|
|
412
|
+
validateBooleanSequence,
|
|
413
|
+
validateNumericSequences({
|
|
414
|
+
type: "bigint",
|
|
415
|
+
default: "int64",
|
|
416
|
+
categories: BIGINT_TYPES,
|
|
417
|
+
}),
|
|
418
|
+
validateNumericSequences({
|
|
419
|
+
type: "number",
|
|
420
|
+
default: "double",
|
|
421
|
+
categories: NUMBER_TYPES,
|
|
422
|
+
}),
|
|
423
|
+
validateStringSequence,
|
|
424
|
+
]), _g = _f.next(); !_g.done; _g = _f.next()) {
|
|
425
|
+
var validator = _g.value;
|
|
426
|
+
validator({ metadata: next.value, errors: next.errors, add: add });
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
catch (e_12_1) { e_12 = { error: e_12_1 }; }
|
|
430
|
+
finally {
|
|
431
|
+
try {
|
|
432
|
+
if (_g && !_g.done && (_a = _f.return)) _a.call(_f);
|
|
433
|
+
}
|
|
434
|
+
finally { if (e_12) throw e_12.error; }
|
|
435
|
+
}
|
|
436
|
+
try {
|
|
437
|
+
for (var _h = __values(next.value.arrays), _j = _h.next(); !_j.done; _j = _h.next()) {
|
|
438
|
+
var array = _j.value;
|
|
439
|
+
validateInstanceSequence({
|
|
440
|
+
type: "array",
|
|
441
|
+
tags: array.tags,
|
|
442
|
+
errors: next.errors,
|
|
443
|
+
add: add,
|
|
444
|
+
});
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
catch (e_13_1) { e_13 = { error: e_13_1 }; }
|
|
448
|
+
finally {
|
|
449
|
+
try {
|
|
450
|
+
if (_j && !_j.done && (_b = _h.return)) _b.call(_h);
|
|
451
|
+
}
|
|
452
|
+
finally { if (e_13) throw e_13.error; }
|
|
453
|
+
}
|
|
454
|
+
try {
|
|
455
|
+
for (var _k = __values(next.value.objects), _l = _k.next(); !_l.done; _l = _k.next()) {
|
|
456
|
+
var object = _l.value;
|
|
457
|
+
validateInstanceSequence({
|
|
458
|
+
type: "object",
|
|
459
|
+
tags: object.tags,
|
|
460
|
+
errors: next.errors,
|
|
461
|
+
add: add,
|
|
462
|
+
});
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
catch (e_14_1) { e_14 = { error: e_14_1 }; }
|
|
466
|
+
finally {
|
|
467
|
+
try {
|
|
468
|
+
if (_l && !_l.done && (_c = _k.return)) _c.call(_k);
|
|
469
|
+
}
|
|
470
|
+
finally { if (e_14) throw e_14.error; }
|
|
471
|
+
}
|
|
472
|
+
try {
|
|
473
|
+
for (var _m = __values(next.value.maps), _o = _m.next(); !_o.done; _o = _m.next()) {
|
|
474
|
+
var map = _o.value;
|
|
475
|
+
validateInstanceSequence({
|
|
476
|
+
type: "map",
|
|
477
|
+
tags: map.tags,
|
|
478
|
+
errors: next.errors,
|
|
479
|
+
add: add,
|
|
480
|
+
});
|
|
481
|
+
}
|
|
482
|
+
}
|
|
483
|
+
catch (e_15_1) { e_15 = { error: e_15_1 }; }
|
|
484
|
+
finally {
|
|
485
|
+
try {
|
|
486
|
+
if (_o && !_o.done && (_d = _m.return)) _d.call(_m);
|
|
487
|
+
}
|
|
488
|
+
finally { if (e_15) throw e_15.error; }
|
|
489
|
+
}
|
|
490
|
+
try {
|
|
491
|
+
for (var _p = __values(next.value.natives), _q = _p.next(); !_q.done; _q = _p.next()) {
|
|
492
|
+
var native = _q.value;
|
|
493
|
+
if (native.name === "Uint8Array")
|
|
494
|
+
validateInstanceSequence({
|
|
495
|
+
type: "Uint8Array",
|
|
496
|
+
tags: native.tags,
|
|
497
|
+
errors: next.errors,
|
|
498
|
+
add: add,
|
|
499
|
+
});
|
|
500
|
+
}
|
|
501
|
+
}
|
|
502
|
+
catch (e_16_1) { e_16 = { error: e_16_1 }; }
|
|
503
|
+
finally {
|
|
131
504
|
try {
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
505
|
+
if (_q && !_q.done && (_e = _p.return)) _e.call(_p);
|
|
506
|
+
}
|
|
507
|
+
finally { if (e_16) throw e_16.error; }
|
|
508
|
+
}
|
|
509
|
+
};
|
|
510
|
+
var validateBooleanSequence = function (next) {
|
|
511
|
+
var e_17, _a, e_18, _b, e_19, _c;
|
|
512
|
+
// PREPARE EMPLACER
|
|
513
|
+
var unique = new Set();
|
|
514
|
+
var expected = 0;
|
|
515
|
+
var actual = 0;
|
|
516
|
+
var emplace = function (matrix) {
|
|
517
|
+
var e_20, _a, e_21, _b;
|
|
518
|
+
try {
|
|
519
|
+
for (var matrix_1 = __values(matrix), matrix_1_1 = matrix_1.next(); !matrix_1_1.done; matrix_1_1 = matrix_1.next()) {
|
|
520
|
+
var tags = matrix_1_1.value;
|
|
521
|
+
try {
|
|
522
|
+
for (var tags_1 = (e_21 = void 0, __values(tags)), tags_1_1 = tags_1.next(); !tags_1_1.done; tags_1_1 = tags_1.next()) {
|
|
523
|
+
var tag = tags_1_1.value;
|
|
524
|
+
var sequence = ProtobufUtil_1.ProtobufUtil.getSequence([tag]);
|
|
525
|
+
if (sequence !== null) {
|
|
526
|
+
unique.add(sequence);
|
|
527
|
+
++actual;
|
|
528
|
+
}
|
|
529
|
+
++expected;
|
|
530
|
+
}
|
|
531
|
+
}
|
|
532
|
+
catch (e_21_1) { e_21 = { error: e_21_1 }; }
|
|
533
|
+
finally {
|
|
534
|
+
try {
|
|
535
|
+
if (tags_1_1 && !tags_1_1.done && (_b = tags_1.return)) _b.call(tags_1);
|
|
536
|
+
}
|
|
537
|
+
finally { if (e_21) throw e_21.error; }
|
|
538
|
+
}
|
|
135
539
|
}
|
|
136
540
|
}
|
|
137
|
-
catch (
|
|
541
|
+
catch (e_20_1) { e_20 = { error: e_20_1 }; }
|
|
138
542
|
finally {
|
|
139
543
|
try {
|
|
140
|
-
if (
|
|
544
|
+
if (matrix_1_1 && !matrix_1_1.done && (_a = matrix_1.return)) _a.call(matrix_1);
|
|
141
545
|
}
|
|
142
|
-
finally { if (
|
|
546
|
+
finally { if (e_20) throw e_20.error; }
|
|
547
|
+
}
|
|
548
|
+
};
|
|
549
|
+
try {
|
|
550
|
+
// GATHER SEQUENCE TAGS
|
|
551
|
+
for (var _d = __values(next.metadata.atomics), _e = _d.next(); !_e.done; _e = _d.next()) {
|
|
552
|
+
var atomic = _e.value;
|
|
553
|
+
if (atomic.type === "boolean")
|
|
554
|
+
emplace(atomic.tags);
|
|
555
|
+
}
|
|
556
|
+
}
|
|
557
|
+
catch (e_17_1) { e_17 = { error: e_17_1 }; }
|
|
558
|
+
finally {
|
|
559
|
+
try {
|
|
560
|
+
if (_e && !_e.done && (_a = _d.return)) _a.call(_d);
|
|
561
|
+
}
|
|
562
|
+
finally { if (e_17) throw e_17.error; }
|
|
563
|
+
}
|
|
564
|
+
try {
|
|
565
|
+
for (var _f = __values(next.metadata.constants), _g = _f.next(); !_g.done; _g = _f.next()) {
|
|
566
|
+
var constant = _g.value;
|
|
567
|
+
if (constant.type === "boolean")
|
|
568
|
+
try {
|
|
569
|
+
for (var _h = (e_19 = void 0, __values(constant.values)), _j = _h.next(); !_j.done; _j = _h.next()) {
|
|
570
|
+
var value = _j.value;
|
|
571
|
+
emplace(value.tags);
|
|
572
|
+
}
|
|
573
|
+
}
|
|
574
|
+
catch (e_19_1) { e_19 = { error: e_19_1 }; }
|
|
575
|
+
finally {
|
|
576
|
+
try {
|
|
577
|
+
if (_j && !_j.done && (_c = _h.return)) _c.call(_h);
|
|
578
|
+
}
|
|
579
|
+
finally { if (e_19) throw e_19.error; }
|
|
580
|
+
}
|
|
581
|
+
}
|
|
582
|
+
}
|
|
583
|
+
catch (e_18_1) { e_18 = { error: e_18_1 }; }
|
|
584
|
+
finally {
|
|
585
|
+
try {
|
|
586
|
+
if (_g && !_g.done && (_b = _f.return)) _b.call(_f);
|
|
143
587
|
}
|
|
588
|
+
finally { if (e_18) throw e_18.error; }
|
|
589
|
+
}
|
|
590
|
+
// PREDICATE
|
|
591
|
+
if (unique.size && actual !== expected)
|
|
592
|
+
next.errors.push("The sequence tag must be declared in every union type members");
|
|
593
|
+
else if (unique.size > 1)
|
|
594
|
+
next.errors.push("The sequence tag value must be the same in boolean type (including literal types)");
|
|
595
|
+
else if (unique.size === 1) {
|
|
596
|
+
var value = unique.values().next().value;
|
|
597
|
+
if (next.add(value) === false)
|
|
598
|
+
next.errors.push("The sequence tag value ".concat(value, " in boolean type is duplicated with other types"));
|
|
144
599
|
}
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
// CHILD OF ARRAY TYPE MUST BE REQUIRED
|
|
153
|
-
if (meta.arrays.length &&
|
|
154
|
-
meta.arrays.some(function (array) {
|
|
155
|
-
return array.type.value.isRequired() === false ||
|
|
156
|
-
array.type.value.nullable === true;
|
|
157
|
-
}))
|
|
158
|
-
noSupport("optional type in array");
|
|
159
|
-
// UNION IN ARRAY
|
|
160
|
-
if (meta.arrays.length &&
|
|
161
|
-
meta.arrays.some(function (a) {
|
|
600
|
+
};
|
|
601
|
+
var validateNumericSequences = function (config) {
|
|
602
|
+
return function (next) {
|
|
603
|
+
var e_22, _a, e_23, _b, e_24, _c, e_25, _d;
|
|
604
|
+
// FIND TYPE CATEGORIES
|
|
605
|
+
var categories = new Set();
|
|
606
|
+
var getType = function (tags) {
|
|
162
607
|
var _a;
|
|
163
|
-
return
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
608
|
+
var found = tags.find(function (t) { return t.kind === "type" && config.categories.has(t.value); });
|
|
609
|
+
return (_a = found === null || found === void 0 ? void 0 : found.value) !== null && _a !== void 0 ? _a : config.default;
|
|
610
|
+
};
|
|
611
|
+
var exploreCategory = function (matrix) {
|
|
612
|
+
var e_26, _a;
|
|
613
|
+
try {
|
|
614
|
+
for (var matrix_2 = __values(matrix), matrix_2_1 = matrix_2.next(); !matrix_2_1.done; matrix_2_1 = matrix_2.next()) {
|
|
615
|
+
var tags = matrix_2_1.value;
|
|
616
|
+
categories.add(getType(tags));
|
|
617
|
+
}
|
|
618
|
+
}
|
|
619
|
+
catch (e_26_1) { e_26 = { error: e_26_1 }; }
|
|
620
|
+
finally {
|
|
621
|
+
try {
|
|
622
|
+
if (matrix_2_1 && !matrix_2_1.done && (_a = matrix_2.return)) _a.call(matrix_2);
|
|
623
|
+
}
|
|
624
|
+
finally { if (e_26) throw e_26.error; }
|
|
625
|
+
}
|
|
626
|
+
};
|
|
627
|
+
try {
|
|
628
|
+
for (var _e = __values(next.metadata.atomics), _f = _e.next(); !_f.done; _f = _e.next()) {
|
|
629
|
+
var atomic = _f.value;
|
|
630
|
+
if (atomic.type === config.type)
|
|
631
|
+
exploreCategory(atomic.tags);
|
|
632
|
+
}
|
|
633
|
+
}
|
|
634
|
+
catch (e_22_1) { e_22 = { error: e_22_1 }; }
|
|
635
|
+
finally {
|
|
636
|
+
try {
|
|
637
|
+
if (_f && !_f.done && (_a = _e.return)) _a.call(_e);
|
|
638
|
+
}
|
|
639
|
+
finally { if (e_22) throw e_22.error; }
|
|
640
|
+
}
|
|
641
|
+
try {
|
|
642
|
+
for (var _g = __values(next.metadata.constants), _h = _g.next(); !_h.done; _h = _g.next()) {
|
|
643
|
+
var constant = _h.value;
|
|
644
|
+
if (constant.type === config.type)
|
|
645
|
+
try {
|
|
646
|
+
for (var _j = (e_24 = void 0, __values(constant.values)), _k = _j.next(); !_k.done; _k = _j.next()) {
|
|
647
|
+
var value = _k.value;
|
|
648
|
+
exploreCategory(value.tags);
|
|
649
|
+
}
|
|
650
|
+
}
|
|
651
|
+
catch (e_24_1) { e_24 = { error: e_24_1 }; }
|
|
652
|
+
finally {
|
|
653
|
+
try {
|
|
654
|
+
if (_k && !_k.done && (_c = _j.return)) _c.call(_j);
|
|
655
|
+
}
|
|
656
|
+
finally { if (e_24) throw e_24.error; }
|
|
657
|
+
}
|
|
658
|
+
}
|
|
659
|
+
}
|
|
660
|
+
catch (e_23_1) { e_23 = { error: e_23_1 }; }
|
|
661
|
+
finally {
|
|
662
|
+
try {
|
|
663
|
+
if (_h && !_h.done && (_b = _g.return)) _b.call(_g);
|
|
664
|
+
}
|
|
665
|
+
finally { if (e_23) throw e_23.error; }
|
|
666
|
+
}
|
|
667
|
+
var _loop_1 = function (category) {
|
|
668
|
+
var e_27, _l, e_28, _m, e_29, _o, e_30, _p, e_31, _q;
|
|
669
|
+
var unique = new Set();
|
|
670
|
+
var expected = 0;
|
|
671
|
+
var actual = 0;
|
|
672
|
+
var emplace = function (tags) {
|
|
673
|
+
var sequence = ProtobufUtil_1.ProtobufUtil.getSequence(tags);
|
|
674
|
+
if (sequence !== null) {
|
|
675
|
+
unique.add(sequence);
|
|
676
|
+
++actual;
|
|
677
|
+
}
|
|
678
|
+
++expected;
|
|
679
|
+
};
|
|
680
|
+
try {
|
|
681
|
+
for (var _r = (e_27 = void 0, __values(next.metadata.atomics)), _s = _r.next(); !_s.done; _s = _r.next()) {
|
|
682
|
+
var atomic = _s.value;
|
|
683
|
+
if (atomic.type === config.type)
|
|
684
|
+
try {
|
|
685
|
+
for (var _t = (e_28 = void 0, __values(atomic.tags)), _u = _t.next(); !_u.done; _u = _t.next()) {
|
|
686
|
+
var tags = _u.value;
|
|
687
|
+
if (getType(tags) === category)
|
|
688
|
+
emplace(tags);
|
|
689
|
+
}
|
|
690
|
+
}
|
|
691
|
+
catch (e_28_1) { e_28 = { error: e_28_1 }; }
|
|
692
|
+
finally {
|
|
693
|
+
try {
|
|
694
|
+
if (_u && !_u.done && (_m = _t.return)) _m.call(_t);
|
|
695
|
+
}
|
|
696
|
+
finally { if (e_28) throw e_28.error; }
|
|
697
|
+
}
|
|
698
|
+
}
|
|
699
|
+
}
|
|
700
|
+
catch (e_27_1) { e_27 = { error: e_27_1 }; }
|
|
701
|
+
finally {
|
|
702
|
+
try {
|
|
703
|
+
if (_s && !_s.done && (_l = _r.return)) _l.call(_r);
|
|
704
|
+
}
|
|
705
|
+
finally { if (e_27) throw e_27.error; }
|
|
706
|
+
}
|
|
707
|
+
try {
|
|
708
|
+
for (var _v = (e_29 = void 0, __values(next.metadata.constants)), _w = _v.next(); !_w.done; _w = _v.next()) {
|
|
709
|
+
var constant = _w.value;
|
|
710
|
+
if (constant.type === config.type)
|
|
711
|
+
try {
|
|
712
|
+
for (var _x = (e_30 = void 0, __values(constant.values)), _y = _x.next(); !_y.done; _y = _x.next()) {
|
|
713
|
+
var value = _y.value;
|
|
714
|
+
try {
|
|
715
|
+
for (var _z = (e_31 = void 0, __values(value.tags)), _0 = _z.next(); !_0.done; _0 = _z.next()) {
|
|
716
|
+
var tags = _0.value;
|
|
717
|
+
if (getType(tags) === category)
|
|
718
|
+
emplace(tags);
|
|
719
|
+
}
|
|
720
|
+
}
|
|
721
|
+
catch (e_31_1) { e_31 = { error: e_31_1 }; }
|
|
722
|
+
finally {
|
|
723
|
+
try {
|
|
724
|
+
if (_0 && !_0.done && (_q = _z.return)) _q.call(_z);
|
|
725
|
+
}
|
|
726
|
+
finally { if (e_31) throw e_31.error; }
|
|
727
|
+
}
|
|
728
|
+
}
|
|
729
|
+
}
|
|
730
|
+
catch (e_30_1) { e_30 = { error: e_30_1 }; }
|
|
731
|
+
finally {
|
|
732
|
+
try {
|
|
733
|
+
if (_y && !_y.done && (_p = _x.return)) _p.call(_x);
|
|
734
|
+
}
|
|
735
|
+
finally { if (e_30) throw e_30.error; }
|
|
736
|
+
}
|
|
737
|
+
}
|
|
738
|
+
}
|
|
739
|
+
catch (e_29_1) { e_29 = { error: e_29_1 }; }
|
|
740
|
+
finally {
|
|
741
|
+
try {
|
|
742
|
+
if (_w && !_w.done && (_o = _v.return)) _o.call(_v);
|
|
743
|
+
}
|
|
744
|
+
finally { if (e_29) throw e_29.error; }
|
|
745
|
+
}
|
|
746
|
+
if (unique.size && actual !== expected) {
|
|
747
|
+
console.log(category, actual, expected, unique);
|
|
748
|
+
next.errors.push("The sequence tag must be declared in every union type members");
|
|
749
|
+
}
|
|
750
|
+
else if (unique.size > 1)
|
|
751
|
+
next.errors.push("The sequence tag value must be the same in ".concat(config.type, " type (including literal types)"));
|
|
752
|
+
else if (unique.size === 1) {
|
|
753
|
+
var value = unique.values().next().value;
|
|
754
|
+
if (next.add(value) === false)
|
|
755
|
+
next.errors.push("The sequence tag value ".concat(value, " in ").concat(config.type, " type is duplicated with other types"));
|
|
756
|
+
}
|
|
757
|
+
};
|
|
758
|
+
try {
|
|
759
|
+
// ITERATE TYPE CATEGORIES
|
|
760
|
+
for (var categories_1 = __values(categories), categories_1_1 = categories_1.next(); !categories_1_1.done; categories_1_1 = categories_1.next()) {
|
|
761
|
+
var category = categories_1_1.value;
|
|
762
|
+
_loop_1(category);
|
|
763
|
+
}
|
|
764
|
+
}
|
|
765
|
+
catch (e_25_1) { e_25 = { error: e_25_1 }; }
|
|
766
|
+
finally {
|
|
767
|
+
try {
|
|
768
|
+
if (categories_1_1 && !categories_1_1.done && (_d = categories_1.return)) _d.call(categories_1);
|
|
769
|
+
}
|
|
770
|
+
finally { if (e_25) throw e_25.error; }
|
|
771
|
+
}
|
|
772
|
+
};
|
|
773
|
+
};
|
|
774
|
+
var validateStringSequence = function (next) {
|
|
775
|
+
var e_32, _a, e_33, _b, e_34, _c, e_35, _d;
|
|
776
|
+
var unique = new Set();
|
|
777
|
+
var expected = 0;
|
|
778
|
+
var actual = 0;
|
|
779
|
+
var emplace = function (matrix) {
|
|
780
|
+
var e_36, _a, e_37, _b;
|
|
781
|
+
try {
|
|
782
|
+
for (var matrix_3 = __values(matrix), matrix_3_1 = matrix_3.next(); !matrix_3_1.done; matrix_3_1 = matrix_3.next()) {
|
|
783
|
+
var tags = matrix_3_1.value;
|
|
784
|
+
try {
|
|
785
|
+
for (var tags_2 = (e_37 = void 0, __values(tags)), tags_2_1 = tags_2.next(); !tags_2_1.done; tags_2_1 = tags_2.next()) {
|
|
786
|
+
var tag = tags_2_1.value;
|
|
787
|
+
var sequence = ProtobufUtil_1.ProtobufUtil.getSequence([tag]);
|
|
788
|
+
if (sequence !== null) {
|
|
789
|
+
unique.add(sequence);
|
|
790
|
+
++actual;
|
|
791
|
+
}
|
|
792
|
+
++expected;
|
|
793
|
+
}
|
|
794
|
+
}
|
|
795
|
+
catch (e_37_1) { e_37 = { error: e_37_1 }; }
|
|
796
|
+
finally {
|
|
797
|
+
try {
|
|
798
|
+
if (tags_2_1 && !tags_2_1.done && (_b = tags_2.return)) _b.call(tags_2);
|
|
799
|
+
}
|
|
800
|
+
finally { if (e_37) throw e_37.error; }
|
|
801
|
+
}
|
|
802
|
+
}
|
|
803
|
+
}
|
|
804
|
+
catch (e_36_1) { e_36 = { error: e_36_1 }; }
|
|
805
|
+
finally {
|
|
806
|
+
try {
|
|
807
|
+
if (matrix_3_1 && !matrix_3_1.done && (_a = matrix_3.return)) _a.call(matrix_3);
|
|
808
|
+
}
|
|
809
|
+
finally { if (e_36) throw e_36.error; }
|
|
810
|
+
}
|
|
811
|
+
};
|
|
812
|
+
try {
|
|
813
|
+
for (var _e = __values(next.metadata.atomics), _f = _e.next(); !_f.done; _f = _e.next()) {
|
|
814
|
+
var atomic = _f.value;
|
|
815
|
+
if (atomic.type === "string")
|
|
816
|
+
emplace(atomic.tags);
|
|
817
|
+
}
|
|
818
|
+
}
|
|
819
|
+
catch (e_32_1) { e_32 = { error: e_32_1 }; }
|
|
820
|
+
finally {
|
|
821
|
+
try {
|
|
822
|
+
if (_f && !_f.done && (_a = _e.return)) _a.call(_e);
|
|
823
|
+
}
|
|
824
|
+
finally { if (e_32) throw e_32.error; }
|
|
825
|
+
}
|
|
826
|
+
try {
|
|
827
|
+
for (var _g = __values(next.metadata.constants), _h = _g.next(); !_h.done; _h = _g.next()) {
|
|
828
|
+
var constant = _h.value;
|
|
829
|
+
if (constant.type === "string")
|
|
830
|
+
try {
|
|
831
|
+
for (var _j = (e_34 = void 0, __values(constant.values)), _k = _j.next(); !_k.done; _k = _j.next()) {
|
|
832
|
+
var value = _k.value;
|
|
833
|
+
emplace(value.tags);
|
|
834
|
+
}
|
|
835
|
+
}
|
|
836
|
+
catch (e_34_1) { e_34 = { error: e_34_1 }; }
|
|
837
|
+
finally {
|
|
838
|
+
try {
|
|
839
|
+
if (_k && !_k.done && (_c = _j.return)) _c.call(_j);
|
|
840
|
+
}
|
|
841
|
+
finally { if (e_34) throw e_34.error; }
|
|
842
|
+
}
|
|
843
|
+
}
|
|
844
|
+
}
|
|
845
|
+
catch (e_33_1) { e_33 = { error: e_33_1 }; }
|
|
846
|
+
finally {
|
|
847
|
+
try {
|
|
848
|
+
if (_h && !_h.done && (_b = _g.return)) _b.call(_g);
|
|
849
|
+
}
|
|
850
|
+
finally { if (e_33) throw e_33.error; }
|
|
851
|
+
}
|
|
852
|
+
try {
|
|
853
|
+
for (var _l = __values(next.metadata.templates), _m = _l.next(); !_m.done; _m = _l.next()) {
|
|
854
|
+
var template = _m.value;
|
|
855
|
+
emplace(template.tags);
|
|
856
|
+
}
|
|
857
|
+
}
|
|
858
|
+
catch (e_35_1) { e_35 = { error: e_35_1 }; }
|
|
859
|
+
finally {
|
|
860
|
+
try {
|
|
861
|
+
if (_m && !_m.done && (_d = _l.return)) _d.call(_l);
|
|
862
|
+
}
|
|
863
|
+
finally { if (e_35) throw e_35.error; }
|
|
864
|
+
}
|
|
865
|
+
if (unique.size && actual !== expected)
|
|
866
|
+
next.errors.push("The sequence tag must be declared in every union type members");
|
|
867
|
+
else if (unique.size > 1)
|
|
868
|
+
next.errors.push("The sequence tag value must be the same in string types including literal and template types");
|
|
869
|
+
else if (unique.size === 1) {
|
|
870
|
+
var value = unique.values().next().value;
|
|
871
|
+
if (next.add(value) === false)
|
|
872
|
+
next.errors.push("The sequence tag value ".concat(value, " in string type is duplicated with other types"));
|
|
873
|
+
}
|
|
874
|
+
};
|
|
875
|
+
var validateInstanceSequence = function (next) {
|
|
876
|
+
var e_38, _a;
|
|
877
|
+
var unique = new Set();
|
|
878
|
+
var count = 0;
|
|
879
|
+
try {
|
|
880
|
+
for (var _b = __values(next.tags), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
881
|
+
var tags = _c.value;
|
|
882
|
+
var value = ProtobufUtil_1.ProtobufUtil.getSequence(tags);
|
|
883
|
+
if (value === null)
|
|
884
|
+
continue;
|
|
885
|
+
unique.add(value);
|
|
886
|
+
++count;
|
|
887
|
+
}
|
|
888
|
+
}
|
|
889
|
+
catch (e_38_1) { e_38 = { error: e_38_1 }; }
|
|
890
|
+
finally {
|
|
891
|
+
try {
|
|
892
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
893
|
+
}
|
|
894
|
+
finally { if (e_38) throw e_38.error; }
|
|
895
|
+
}
|
|
896
|
+
if (unique.size && count !== next.tags.length)
|
|
897
|
+
next.errors.push("The sequence tag must be declared in every union type members");
|
|
898
|
+
else if (unique.size > 1)
|
|
899
|
+
next.errors.push("The sequence tag value must be the same in ".concat(next.type === "array" ? "an array" : "object", " type."));
|
|
900
|
+
else if (unique.size === 1) {
|
|
901
|
+
var value = unique.values().next().value;
|
|
902
|
+
if (next.add(value) === false)
|
|
903
|
+
next.errors.push("The sequence tag value ".concat(value, " in ").concat(next.type, " type is duplicated with other types"));
|
|
904
|
+
}
|
|
241
905
|
};
|
|
242
906
|
})(ProtobufFactory || (exports.ProtobufFactory = ProtobufFactory = {}));
|
|
243
907
|
var isDynamicObject = function (obj) {
|
|
@@ -268,4 +932,13 @@ var BANNED_NATIVE_TYPES = new Map(__spreadArray(__spreadArray([
|
|
|
268
932
|
["WeakSet", "Array"],
|
|
269
933
|
["WeakMap", "Map"],
|
|
270
934
|
], false));
|
|
935
|
+
var NUMBER_TYPES = new Set([
|
|
936
|
+
"int32",
|
|
937
|
+
"uint32",
|
|
938
|
+
"int64",
|
|
939
|
+
"uint64",
|
|
940
|
+
"float",
|
|
941
|
+
"double",
|
|
942
|
+
]);
|
|
943
|
+
var BIGINT_TYPES = new Set(["int64", "uint64"]);
|
|
271
944
|
//# sourceMappingURL=ProtobufFactory.js.map
|