typia 7.0.0-dev.20241012 → 7.0.0-dev.20241019
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 +1266 -160
- 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 +6 -3
- package/lib/programmers/helpers/ProtobufUtil.js +216 -93
- 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 +169 -220
- 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.d.ts +1 -1
- package/lib/programmers/protobuf/ProtobufMessageProgrammer.js +53 -128
- 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/MetadataProperty.d.ts +2 -0
- package/lib/schemas/metadata/MetadataProperty.js.map +1 -1
- 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/schemas/protobuf/IProtobufProperty.d.ts +5 -0
- package/lib/schemas/protobuf/IProtobufProperty.js +3 -0
- package/lib/schemas/protobuf/IProtobufProperty.js.map +1 -0
- package/lib/schemas/protobuf/IProtobufPropertyType.d.ts +28 -0
- package/lib/schemas/protobuf/IProtobufPropertyType.js +3 -0
- package/lib/schemas/protobuf/IProtobufPropertyType.js.map +1 -0
- package/lib/schemas/protobuf/IProtobufSchema.d.ts +38 -0
- package/lib/schemas/protobuf/IProtobufSchema.js +3 -0
- package/lib/schemas/protobuf/IProtobufSchema.js.map +1 -0
- 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/lib/utils/{NameEncoder.d.ts → ProtobufNameEncoder.d.ts} +1 -1
- package/lib/utils/{NameEncoder.js → ProtobufNameEncoder.js} +7 -7
- package/lib/utils/ProtobufNameEncoder.js.map +1 -0
- 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 +794 -177
- 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 +147 -44
- 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 +254 -308
- package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +11 -8
- package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +73 -95
- 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 +3 -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/schemas/protobuf/IProtobufProperty.ts +6 -0
- package/src/schemas/protobuf/IProtobufPropertyType.ts +37 -0
- package/src/schemas/protobuf/IProtobufSchema.ts +50 -0
- 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/src/utils/{NameEncoder.ts → ProtobufNameEncoder.ts} +1 -1
- package/lib/schemas/metadata/IMetadataEntry.d.ts +0 -5
- package/lib/schemas/metadata/IMetadataEntry.js.map +0 -1
- package/lib/utils/NameEncoder.js.map +0 -1
- package/src/schemas/metadata/IMetadataEntry.ts +0 -6
|
@@ -11,7 +11,9 @@ import { ValueFactory } from "../factories/ValueFactory";
|
|
|
11
11
|
import { Metadata } from "../schemas/metadata/Metadata";
|
|
12
12
|
import { MetadataArray } from "../schemas/metadata/MetadataArray";
|
|
13
13
|
import { MetadataConstant } from "../schemas/metadata/MetadataConstant";
|
|
14
|
+
import { MetadataMap } from "../schemas/metadata/MetadataMap";
|
|
14
15
|
import { MetadataObjectType } from "../schemas/metadata/MetadataObjectType";
|
|
16
|
+
import { MetadataSet } from "../schemas/metadata/MetadataSet";
|
|
15
17
|
import { MetadataTuple } from "../schemas/metadata/MetadataTuple";
|
|
16
18
|
import { MetadataTupleType } from "../schemas/metadata/MetadataTupleType";
|
|
17
19
|
|
|
@@ -630,7 +632,7 @@ export namespace CheckerProgrammer {
|
|
|
630
632
|
for (const native of props.metadata.natives)
|
|
631
633
|
binaries.push({
|
|
632
634
|
expression: check_native({
|
|
633
|
-
|
|
635
|
+
name: native.name,
|
|
634
636
|
input: props.input,
|
|
635
637
|
}),
|
|
636
638
|
combined: false,
|
|
@@ -652,7 +654,7 @@ export namespace CheckerProgrammer {
|
|
|
652
654
|
const install = (body: ts.Expression | null) =>
|
|
653
655
|
prepare({
|
|
654
656
|
head: check_native({
|
|
655
|
-
|
|
657
|
+
name: "Set",
|
|
656
658
|
input: props.input,
|
|
657
659
|
}),
|
|
658
660
|
expected: props.metadata.sets
|
|
@@ -660,7 +662,7 @@ export namespace CheckerProgrammer {
|
|
|
660
662
|
.join(" | "),
|
|
661
663
|
body,
|
|
662
664
|
});
|
|
663
|
-
if (props.metadata.sets.some((elem) => elem.any)) install(null);
|
|
665
|
+
if (props.metadata.sets.some((elem) => elem.value.any)) install(null);
|
|
664
666
|
else
|
|
665
667
|
install(
|
|
666
668
|
explore_sets({
|
|
@@ -682,7 +684,7 @@ export namespace CheckerProgrammer {
|
|
|
682
684
|
const install = (body: ts.Expression | null) =>
|
|
683
685
|
prepare({
|
|
684
686
|
head: check_native({
|
|
685
|
-
|
|
687
|
+
name: "Map",
|
|
686
688
|
input: props.input,
|
|
687
689
|
}),
|
|
688
690
|
expected: props.metadata.maps
|
|
@@ -880,7 +882,7 @@ export namespace CheckerProgrammer {
|
|
|
880
882
|
props.metadata.escaped.original.size() === 1 &&
|
|
881
883
|
props.metadata.escaped.original.natives.length === 1
|
|
882
884
|
? check_native({
|
|
883
|
-
|
|
885
|
+
name: props.metadata.escaped.original.natives[0]!.name,
|
|
884
886
|
input: props.input,
|
|
885
887
|
})
|
|
886
888
|
: ts.factory.createLogicalAnd(
|
|
@@ -1228,7 +1230,7 @@ export namespace CheckerProgrammer {
|
|
|
1228
1230
|
context: ITypiaContext;
|
|
1229
1231
|
config: IConfig;
|
|
1230
1232
|
functor: FunctionProgrammer;
|
|
1231
|
-
sets:
|
|
1233
|
+
sets: MetadataSet[];
|
|
1232
1234
|
input: ts.Expression;
|
|
1233
1235
|
explore: IExplore;
|
|
1234
1236
|
}): ts.Expression =>
|
|
@@ -1272,7 +1274,7 @@ export namespace CheckerProgrammer {
|
|
|
1272
1274
|
config: IConfig;
|
|
1273
1275
|
functor: FunctionProgrammer;
|
|
1274
1276
|
input: ts.Expression;
|
|
1275
|
-
maps:
|
|
1277
|
+
maps: MetadataMap[];
|
|
1276
1278
|
explore: IExplore;
|
|
1277
1279
|
}): ts.Expression =>
|
|
1278
1280
|
ts.factory.createCallExpression(
|
|
@@ -15,7 +15,9 @@ import { Metadata } from "../schemas/metadata/Metadata";
|
|
|
15
15
|
import { MetadataArray } from "../schemas/metadata/MetadataArray";
|
|
16
16
|
import { MetadataArrayType } from "../schemas/metadata/MetadataArrayType";
|
|
17
17
|
import { MetadataAtomic } from "../schemas/metadata/MetadataAtomic";
|
|
18
|
+
import { MetadataMap } from "../schemas/metadata/MetadataMap";
|
|
18
19
|
import { MetadataObjectType } from "../schemas/metadata/MetadataObjectType";
|
|
20
|
+
import { MetadataSet } from "../schemas/metadata/MetadataSet";
|
|
19
21
|
import { MetadataTemplate } from "../schemas/metadata/MetadataTemplate";
|
|
20
22
|
import { MetadataTuple } from "../schemas/metadata/MetadataTuple";
|
|
21
23
|
import { MetadataTupleType } from "../schemas/metadata/MetadataTupleType";
|
|
@@ -64,9 +66,9 @@ export namespace RandomProgrammer {
|
|
|
64
66
|
absorb: true,
|
|
65
67
|
validate: (meta) => {
|
|
66
68
|
const output: string[] = [];
|
|
67
|
-
if (meta.natives.some((
|
|
69
|
+
if (meta.natives.some((native) => native.name === "WeakSet"))
|
|
68
70
|
output.push(`WeakSet is not supported.`);
|
|
69
|
-
else if (meta.natives.some((
|
|
71
|
+
else if (meta.natives.some((native) => native.name === "WeakMap"))
|
|
70
72
|
output.push(`WeakMap is not supported.`);
|
|
71
73
|
return output;
|
|
72
74
|
},
|
|
@@ -411,27 +413,27 @@ export namespace RandomProgrammer {
|
|
|
411
413
|
object: object.type,
|
|
412
414
|
}),
|
|
413
415
|
);
|
|
414
|
-
for (const
|
|
416
|
+
for (const native of props.metadata.natives)
|
|
415
417
|
expressions.push(
|
|
416
418
|
decode_native({
|
|
417
419
|
context: props.context,
|
|
418
420
|
functor: props.functor,
|
|
419
421
|
explore: props.explore,
|
|
420
|
-
name,
|
|
422
|
+
name: native.name,
|
|
421
423
|
}),
|
|
422
424
|
);
|
|
423
|
-
for (const
|
|
425
|
+
for (const set of props.metadata.sets)
|
|
424
426
|
expressions.push(
|
|
425
427
|
decode_set({
|
|
426
428
|
...props,
|
|
427
|
-
|
|
429
|
+
set,
|
|
428
430
|
}),
|
|
429
431
|
);
|
|
430
432
|
for (const entry of props.metadata.maps)
|
|
431
433
|
expressions.push(
|
|
432
434
|
decode_map({
|
|
433
435
|
...props,
|
|
434
|
-
entry,
|
|
436
|
+
map: entry,
|
|
435
437
|
}),
|
|
436
438
|
);
|
|
437
439
|
|
|
@@ -694,7 +696,7 @@ export namespace RandomProgrammer {
|
|
|
694
696
|
context: ITypiaContext;
|
|
695
697
|
functor: FunctionProgrammer;
|
|
696
698
|
explore: IExplore;
|
|
697
|
-
|
|
699
|
+
set: MetadataSet;
|
|
698
700
|
}) =>
|
|
699
701
|
ts.factory.createNewExpression(
|
|
700
702
|
ts.factory.createIdentifier("Set"),
|
|
@@ -705,11 +707,11 @@ export namespace RandomProgrammer {
|
|
|
705
707
|
array: MetadataArray.create({
|
|
706
708
|
tags: [],
|
|
707
709
|
type: MetadataArrayType.create({
|
|
708
|
-
value: props.
|
|
710
|
+
value: props.set.value,
|
|
709
711
|
recursive: false,
|
|
710
712
|
index: null,
|
|
711
713
|
nullables: [],
|
|
712
|
-
name:
|
|
714
|
+
name: props.set.getName(),
|
|
713
715
|
}),
|
|
714
716
|
}),
|
|
715
717
|
})[0]!,
|
|
@@ -720,7 +722,7 @@ export namespace RandomProgrammer {
|
|
|
720
722
|
context: ITypiaContext;
|
|
721
723
|
functor: FunctionProgrammer;
|
|
722
724
|
explore: IExplore;
|
|
723
|
-
|
|
725
|
+
map: MetadataMap;
|
|
724
726
|
}) =>
|
|
725
727
|
ts.factory.createNewExpression(
|
|
726
728
|
ts.factory.createIdentifier("Map"),
|
|
@@ -731,7 +733,7 @@ export namespace RandomProgrammer {
|
|
|
731
733
|
array: MetadataArray.create({
|
|
732
734
|
tags: [],
|
|
733
735
|
type: MetadataArrayType.create({
|
|
734
|
-
name:
|
|
736
|
+
name: props.map.getName(),
|
|
735
737
|
index: null,
|
|
736
738
|
recursive: false,
|
|
737
739
|
nullables: [],
|
|
@@ -740,11 +742,11 @@ export namespace RandomProgrammer {
|
|
|
740
742
|
tuples: [
|
|
741
743
|
(() => {
|
|
742
744
|
const type = MetadataTupleType.create({
|
|
743
|
-
name: `[${props.
|
|
745
|
+
name: `[${props.map.key.getName()}, ${props.map.value.getName()}]`,
|
|
744
746
|
index: null,
|
|
745
747
|
recursive: false,
|
|
746
748
|
nullables: [],
|
|
747
|
-
elements: [props.
|
|
749
|
+
elements: [props.map.key, props.map.value],
|
|
748
750
|
});
|
|
749
751
|
type.of_map = true;
|
|
750
752
|
return MetadataTuple.create({
|
|
@@ -11,7 +11,7 @@ export namespace AtomicPredicator {
|
|
|
11
11
|
}): boolean =>
|
|
12
12
|
!ArrayUtil.has(
|
|
13
13
|
props.metadata.natives,
|
|
14
|
-
(native) => native.toLowerCase() === props.name,
|
|
14
|
+
(native) => native.name.toLowerCase() === props.name,
|
|
15
15
|
);
|
|
16
16
|
|
|
17
17
|
export const atomic = (props: {
|
|
@@ -20,7 +20,7 @@ export namespace AtomicPredicator {
|
|
|
20
20
|
}): boolean =>
|
|
21
21
|
!ArrayUtil.has(
|
|
22
22
|
props.metadata.natives,
|
|
23
|
-
(native) => native.toLowerCase() === props.name,
|
|
23
|
+
(native) => native.name.toLowerCase() === props.name,
|
|
24
24
|
);
|
|
25
25
|
|
|
26
26
|
export const native = (name: string) => LIKE.has(name.toLowerCase());
|
|
@@ -28,7 +28,7 @@ export namespace AtomicPredicator {
|
|
|
28
28
|
export const template = (metadata: Metadata): boolean =>
|
|
29
29
|
!ArrayUtil.has(
|
|
30
30
|
metadata.natives,
|
|
31
|
-
(native) => native.toLowerCase() === "string",
|
|
31
|
+
(native) => native.name.toLowerCase() === "string",
|
|
32
32
|
);
|
|
33
33
|
}
|
|
34
34
|
|
|
@@ -10,56 +10,153 @@ export namespace ProtobufUtil {
|
|
|
10
10
|
obj.properties.every((p) => p.key.isSoleLiteral());
|
|
11
11
|
|
|
12
12
|
export const size = (meta: Metadata): number =>
|
|
13
|
-
getAtomics(meta).
|
|
13
|
+
getAtomics(meta).size +
|
|
14
14
|
meta.arrays.length +
|
|
15
15
|
meta.tuples.length +
|
|
16
16
|
meta.natives.length +
|
|
17
17
|
meta.objects.length +
|
|
18
18
|
meta.maps.length;
|
|
19
19
|
|
|
20
|
+
export const getSequence = (tags: IMetadataTypeTag[]): number | null => {
|
|
21
|
+
const sequence = tags.find(
|
|
22
|
+
(t) =>
|
|
23
|
+
t.kind === "sequence" &&
|
|
24
|
+
typeof (t.schema as any)?.["x-protobuf-sequence"] === "number",
|
|
25
|
+
);
|
|
26
|
+
if (sequence === undefined) return null;
|
|
27
|
+
const value: number = Number(
|
|
28
|
+
(sequence.schema as any)["x-protobuf-sequence"],
|
|
29
|
+
);
|
|
30
|
+
return Number.isNaN(value) ? null : value;
|
|
31
|
+
};
|
|
32
|
+
|
|
20
33
|
export const isUnion = (meta: Metadata): boolean => size(meta) > 1;
|
|
21
34
|
|
|
22
|
-
export const getAtomics = (
|
|
23
|
-
|
|
24
|
-
|
|
35
|
+
export const getAtomics = (
|
|
36
|
+
meta: Metadata,
|
|
37
|
+
union?: Map<string, number | null>,
|
|
38
|
+
): Map<string, number | null> => {
|
|
39
|
+
const map: Map<ProtobufAtomic, number | null> = union ?? new Map();
|
|
40
|
+
|
|
41
|
+
// CONSTANTS
|
|
25
42
|
for (const c of meta.constants)
|
|
26
|
-
if (c.type === "boolean")
|
|
27
|
-
|
|
28
|
-
else if (c.type === "
|
|
29
|
-
|
|
30
|
-
|
|
43
|
+
if (c.type === "boolean")
|
|
44
|
+
map.set("bool", getSequence(c.values[0]?.tags[0] ?? []));
|
|
45
|
+
else if (c.type === "bigint") {
|
|
46
|
+
const init: ProtobufAtomic.BigNumeric = deduce_bigint_type(
|
|
47
|
+
c.values.map((v) => BigInt(v.value)),
|
|
48
|
+
);
|
|
49
|
+
for (const value of c.values)
|
|
50
|
+
decode_bigint({
|
|
51
|
+
map,
|
|
52
|
+
tags: value.tags,
|
|
53
|
+
default: init,
|
|
54
|
+
});
|
|
55
|
+
} else if (c.type === "number") {
|
|
56
|
+
const init: ProtobufAtomic.Numeric = deduce_numeric_type(
|
|
57
|
+
c.values.map((v) => v.value) as number[],
|
|
58
|
+
);
|
|
59
|
+
for (const value of c.values)
|
|
60
|
+
decode_number({
|
|
61
|
+
map,
|
|
62
|
+
tags: value.tags,
|
|
63
|
+
default: init,
|
|
64
|
+
});
|
|
65
|
+
} else if (c.type === "string")
|
|
66
|
+
map.set("string", getSequence(c.values[0]?.tags[0] ?? []));
|
|
67
|
+
if (meta.templates.length)
|
|
68
|
+
map.set("string", getSequence(meta.templates[0]?.tags[0] ?? []));
|
|
69
|
+
|
|
70
|
+
// ATOMICS
|
|
31
71
|
for (const atomic of meta.atomics)
|
|
32
|
-
if (atomic.type === "boolean")
|
|
72
|
+
if (atomic.type === "boolean")
|
|
73
|
+
map.set("bool", getSequence(atomic.tags[0] ?? []));
|
|
33
74
|
else if (atomic.type === "bigint")
|
|
34
|
-
decode_bigint(
|
|
75
|
+
decode_bigint({
|
|
76
|
+
map,
|
|
77
|
+
tags: atomic.tags,
|
|
78
|
+
default: "int64",
|
|
79
|
+
});
|
|
35
80
|
else if (atomic.type === "number")
|
|
36
|
-
decode_number(
|
|
37
|
-
|
|
81
|
+
decode_number({
|
|
82
|
+
map,
|
|
83
|
+
tags: atomic.tags,
|
|
84
|
+
default: "double",
|
|
85
|
+
});
|
|
86
|
+
else if (atomic.type === "string")
|
|
87
|
+
map.set("string", getSequence(atomic.tags[0] ?? []));
|
|
38
88
|
|
|
39
|
-
|
|
89
|
+
// SORTING IF REQUIRED
|
|
90
|
+
if (Array.from(map.values()).some((v) => v === null)) arrange(map);
|
|
91
|
+
return map;
|
|
40
92
|
};
|
|
41
93
|
|
|
42
|
-
export const getNumbers = (
|
|
43
|
-
|
|
94
|
+
export const getNumbers = (
|
|
95
|
+
meta: Metadata,
|
|
96
|
+
union?: Map<string, number | null>,
|
|
97
|
+
): Map<string, number | null> => {
|
|
98
|
+
const map: Map<ProtobufAtomic.Numeric, number | null> = union ?? new Map();
|
|
44
99
|
for (const c of meta.constants)
|
|
45
|
-
if (c.type === "number")
|
|
46
|
-
|
|
100
|
+
if (c.type === "number") {
|
|
101
|
+
const init: ProtobufAtomic.Numeric = deduce_numeric_type(
|
|
102
|
+
c.values.map((v) => v.value) as number[],
|
|
103
|
+
);
|
|
104
|
+
for (const value of c.values)
|
|
105
|
+
decode_number({
|
|
106
|
+
map,
|
|
107
|
+
tags: value.tags,
|
|
108
|
+
default: init,
|
|
109
|
+
});
|
|
110
|
+
}
|
|
47
111
|
for (const atomic of meta.atomics)
|
|
48
112
|
if (atomic.type === "number")
|
|
49
|
-
decode_number(
|
|
50
|
-
|
|
113
|
+
decode_number({
|
|
114
|
+
map,
|
|
115
|
+
tags: atomic.tags,
|
|
116
|
+
default: "double",
|
|
117
|
+
});
|
|
118
|
+
if (Array.from(map.values()).some((v) => v === null)) arrange(map);
|
|
119
|
+
return map;
|
|
51
120
|
};
|
|
52
121
|
|
|
53
|
-
export const getBigints = (
|
|
54
|
-
|
|
55
|
-
|
|
122
|
+
export const getBigints = (
|
|
123
|
+
meta: Metadata,
|
|
124
|
+
union?: Map<string, number | null>,
|
|
125
|
+
): Map<string, number | null> => {
|
|
126
|
+
const map: Map<ProtobufAtomic.BigNumeric, number | null> =
|
|
127
|
+
union ?? new Map();
|
|
128
|
+
for (const c of meta.constants)
|
|
129
|
+
if (c.type === "bigint") {
|
|
130
|
+
const init: ProtobufAtomic.BigNumeric = deduce_bigint_type(
|
|
131
|
+
c.values.map((v) => BigInt(v.value)),
|
|
132
|
+
);
|
|
133
|
+
for (const value of c.values)
|
|
134
|
+
decode_bigint({
|
|
135
|
+
map,
|
|
136
|
+
tags: value.tags,
|
|
137
|
+
default: init,
|
|
138
|
+
});
|
|
139
|
+
}
|
|
56
140
|
for (const atomic of meta.atomics)
|
|
57
141
|
if (atomic.type === "bigint")
|
|
58
|
-
decode_bigint(
|
|
59
|
-
|
|
142
|
+
decode_bigint({
|
|
143
|
+
map,
|
|
144
|
+
tags: atomic.tags,
|
|
145
|
+
default: "int64",
|
|
146
|
+
});
|
|
147
|
+
if (Array.from(map.values()).some((v) => v === null)) arrange(map);
|
|
148
|
+
return map;
|
|
60
149
|
};
|
|
61
150
|
|
|
62
|
-
const
|
|
151
|
+
const arrange = (map: Map<ProtobufAtomic, number | null>): void => {
|
|
152
|
+
const entries = Array.from(map.entries()).sort((a, b) =>
|
|
153
|
+
compare(a[0], b[0]),
|
|
154
|
+
);
|
|
155
|
+
map.clear();
|
|
156
|
+
for (const [key, value] of entries) map.set(key, value);
|
|
157
|
+
};
|
|
158
|
+
|
|
159
|
+
export const compare = (x: ProtobufAtomic, y: ProtobufAtomic): number =>
|
|
63
160
|
ATOMIC_ORDER.get(x)! - ATOMIC_ORDER.get(y)!;
|
|
64
161
|
}
|
|
65
162
|
|
|
@@ -78,6 +175,8 @@ const ATOMIC_ORDER = new Map<ProtobufAtomic, number>(
|
|
|
78
175
|
).map((str, i) => [str, i]),
|
|
79
176
|
);
|
|
80
177
|
|
|
178
|
+
const deduce_bigint_type = (values: bigint[]): ProtobufAtomic.BigNumeric =>
|
|
179
|
+
values.some((v) => v < 0) ? "int64" : "uint64";
|
|
81
180
|
const deduce_numeric_type = (values: number[]): ProtobufAtomic.Numeric =>
|
|
82
181
|
values.every((v) => Math.floor(v) === v)
|
|
83
182
|
? values.every((v) => -2147483648 <= v && v <= 2147483647)
|
|
@@ -85,30 +184,35 @@ const deduce_numeric_type = (values: number[]): ProtobufAtomic.Numeric =>
|
|
|
85
184
|
: "int64"
|
|
86
185
|
: "double";
|
|
87
186
|
|
|
88
|
-
const decode_bigint = (
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
187
|
+
const decode_bigint = (next: {
|
|
188
|
+
map: Map<ProtobufAtomic, number | null>;
|
|
189
|
+
tags: IMetadataTypeTag[][];
|
|
190
|
+
default: ProtobufAtomic.BigNumeric;
|
|
191
|
+
}): void => {
|
|
192
|
+
if (next.tags.length === 0) {
|
|
193
|
+
next.map.set(next.default, null);
|
|
194
|
+
return;
|
|
195
|
+
}
|
|
196
|
+
for (const row of next.tags) {
|
|
95
197
|
const value: ProtobufAtomic.BigNumeric | undefined = row.find(
|
|
96
198
|
(tag) =>
|
|
97
199
|
tag.kind === "type" &&
|
|
98
200
|
(tag.value === "int64" || tag.value === "uint64"),
|
|
99
201
|
)?.value;
|
|
100
|
-
|
|
202
|
+
next.map.set(value ?? "int64", ProtobufUtil.getSequence(row));
|
|
101
203
|
}
|
|
102
|
-
return [...types];
|
|
103
204
|
};
|
|
104
205
|
|
|
105
|
-
const decode_number = (
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
206
|
+
const decode_number = (next: {
|
|
207
|
+
map: Map<ProtobufAtomic, number | null>;
|
|
208
|
+
tags: IMetadataTypeTag[][];
|
|
209
|
+
default: ProtobufAtomic.Numeric;
|
|
210
|
+
}): void => {
|
|
211
|
+
if (next.tags.length === 0) {
|
|
212
|
+
next.map.set(next.default, null);
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
for (const row of next.tags) {
|
|
112
216
|
const value: ProtobufAtomic.Numeric | undefined = row.find(
|
|
113
217
|
(tag) =>
|
|
114
218
|
tag.kind === "type" &&
|
|
@@ -119,7 +223,6 @@ const decode_number = (
|
|
|
119
223
|
tag.value === "float" ||
|
|
120
224
|
tag.value === "double"),
|
|
121
225
|
)?.value;
|
|
122
|
-
|
|
226
|
+
next.map.set(value ?? "double", ProtobufUtil.getSequence(row));
|
|
123
227
|
}
|
|
124
|
-
return [...types];
|
|
125
228
|
};
|
|
@@ -6,7 +6,9 @@ import { IdentifierFactory } from "../../factories/IdentifierFactory";
|
|
|
6
6
|
import { Metadata } from "../../schemas/metadata/Metadata";
|
|
7
7
|
import { MetadataArray } from "../../schemas/metadata/MetadataArray";
|
|
8
8
|
import { MetadataArrayType } from "../../schemas/metadata/MetadataArrayType";
|
|
9
|
+
import { MetadataMap } from "../../schemas/metadata/MetadataMap";
|
|
9
10
|
import { MetadataObjectType } from "../../schemas/metadata/MetadataObjectType";
|
|
11
|
+
import { MetadataSet } from "../../schemas/metadata/MetadataSet";
|
|
10
12
|
import { MetadataTuple } from "../../schemas/metadata/MetadataTuple";
|
|
11
13
|
import { MetadataTupleType } from "../../schemas/metadata/MetadataTupleType";
|
|
12
14
|
|
|
@@ -236,7 +238,7 @@ export namespace UnionExplorer {
|
|
|
236
238
|
config: set.IConfig;
|
|
237
239
|
parameters: ts.ParameterDeclaration[];
|
|
238
240
|
input: ts.Expression;
|
|
239
|
-
sets:
|
|
241
|
+
sets: MetadataSet[];
|
|
240
242
|
explore: FeatureProgrammer.IExplore;
|
|
241
243
|
}) =>
|
|
242
244
|
check_union_array_like<Metadata, MetadataArray, Metadata>({
|
|
@@ -280,7 +282,7 @@ export namespace UnionExplorer {
|
|
|
280
282
|
},
|
|
281
283
|
parameters: props.parameters,
|
|
282
284
|
input: props.input,
|
|
283
|
-
definitions: props.sets,
|
|
285
|
+
definitions: props.sets.map((s) => s.value),
|
|
284
286
|
explore: props.explore,
|
|
285
287
|
});
|
|
286
288
|
export namespace set {
|
|
@@ -294,74 +296,72 @@ export namespace UnionExplorer {
|
|
|
294
296
|
config: map.IConfig;
|
|
295
297
|
parameters: ts.ParameterDeclaration[];
|
|
296
298
|
input: ts.Expression;
|
|
297
|
-
maps:
|
|
299
|
+
maps: MetadataMap[];
|
|
298
300
|
explore: FeatureProgrammer.IExplore;
|
|
299
301
|
}) =>
|
|
300
|
-
check_union_array_like<
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
undefined,
|
|
315
|
-
),
|
|
316
|
-
"next",
|
|
302
|
+
check_union_array_like<MetadataMap, MetadataArray, [Metadata, Metadata]>({
|
|
303
|
+
config: props.config,
|
|
304
|
+
accessor: {
|
|
305
|
+
element: (array) =>
|
|
306
|
+
array.type.value.tuples[0]!.type.elements as [Metadata, Metadata],
|
|
307
|
+
size: (input) => IdentifierFactory.access(input, "size"),
|
|
308
|
+
front: (input) =>
|
|
309
|
+
IdentifierFactory.access(
|
|
310
|
+
ts.factory.createCallExpression(
|
|
311
|
+
IdentifierFactory.access(
|
|
312
|
+
ts.factory.createCallExpression(
|
|
313
|
+
IdentifierFactory.access(input, "entries"),
|
|
314
|
+
undefined,
|
|
315
|
+
undefined,
|
|
317
316
|
),
|
|
318
|
-
|
|
319
|
-
undefined,
|
|
317
|
+
"next",
|
|
320
318
|
),
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
array: (input) =>
|
|
324
|
-
ts.factory.createArrayLiteralExpression(
|
|
325
|
-
[ts.factory.createSpreadElement(input)],
|
|
326
|
-
false,
|
|
319
|
+
undefined,
|
|
320
|
+
undefined,
|
|
327
321
|
),
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
322
|
+
"value",
|
|
323
|
+
),
|
|
324
|
+
array: (input) =>
|
|
325
|
+
ts.factory.createArrayLiteralExpression(
|
|
326
|
+
[ts.factory.createSpreadElement(input)],
|
|
327
|
+
false,
|
|
328
|
+
),
|
|
329
|
+
name: (_m, [k, v]) => `Map<${k.getName()}, ${v.getName()}>`,
|
|
330
|
+
transform: (m: MetadataMap) =>
|
|
331
|
+
MetadataArray.create({
|
|
332
|
+
tags: [],
|
|
333
|
+
type: MetadataArrayType.create({
|
|
334
|
+
name: `Map<${m.key.getName()}, ${m.value.getName()}>`,
|
|
335
|
+
index: null,
|
|
336
|
+
recursive: false,
|
|
337
|
+
nullables: [],
|
|
338
|
+
value: Metadata.create({
|
|
339
|
+
...Metadata.initialize(),
|
|
340
|
+
tuples: [
|
|
341
|
+
(() => {
|
|
342
|
+
const tuple = MetadataTuple.create({
|
|
343
|
+
tags: [],
|
|
344
|
+
type: MetadataTupleType.create({
|
|
345
|
+
name: `[${m.key.getName()}, ${m.value.getName()}]`,
|
|
346
|
+
index: null,
|
|
347
|
+
recursive: false,
|
|
348
|
+
nullables: [],
|
|
349
|
+
elements: [m.key, m.value],
|
|
350
|
+
}),
|
|
351
|
+
});
|
|
352
|
+
tuple.type.of_map = true;
|
|
353
|
+
return tuple;
|
|
354
|
+
})(),
|
|
355
|
+
],
|
|
356
356
|
}),
|
|
357
357
|
}),
|
|
358
|
-
|
|
359
|
-
parameters: props.parameters,
|
|
360
|
-
input: props.input,
|
|
361
|
-
definitions: props.maps,
|
|
362
|
-
explore: props.explore,
|
|
358
|
+
}),
|
|
363
359
|
},
|
|
364
|
-
|
|
360
|
+
parameters: props.parameters,
|
|
361
|
+
input: props.input,
|
|
362
|
+
definitions: props.maps,
|
|
363
|
+
explore: props.explore,
|
|
364
|
+
});
|
|
365
365
|
|
|
366
366
|
export namespace map {
|
|
367
367
|
export type IConfig = check_union_array_like.IConfig<
|
|
@@ -129,7 +129,9 @@ export namespace HttpFormDataProgrammer {
|
|
|
129
129
|
meta.atomics.length +
|
|
130
130
|
meta.templates.length +
|
|
131
131
|
meta.constants.map((c) => c.values.length).reduce((a, b) => a + b, 0) +
|
|
132
|
-
meta.natives.filter(
|
|
132
|
+
meta.natives.filter(
|
|
133
|
+
(native) => native.name === "Blob" || native.name === "File",
|
|
134
|
+
).length;
|
|
133
135
|
if (atomics.size > 1) insert("union type is not allowed in array.");
|
|
134
136
|
if (meta.size() !== expected)
|
|
135
137
|
insert(
|
|
@@ -151,7 +153,9 @@ export namespace HttpFormDataProgrammer {
|
|
|
151
153
|
meta.objects.length ||
|
|
152
154
|
meta.sets.length ||
|
|
153
155
|
meta.maps.length ||
|
|
154
|
-
meta.natives.filter(
|
|
156
|
+
meta.natives.filter(
|
|
157
|
+
(native) => native.name !== "Blob" && native.name !== "File",
|
|
158
|
+
).length
|
|
155
159
|
)
|
|
156
160
|
insert("nested object type is not allowed.");
|
|
157
161
|
}
|
|
@@ -198,9 +202,9 @@ export namespace HttpFormDataProgrammer {
|
|
|
198
202
|
? [value.constants[0]!.type, false]
|
|
199
203
|
: value.templates.length
|
|
200
204
|
? ["string", false]
|
|
201
|
-
: value.natives.
|
|
205
|
+
: value.natives.some((native) => native.name === "Blob")
|
|
202
206
|
? ["blob", false]
|
|
203
|
-
: value.natives.
|
|
207
|
+
: value.natives.some((native) => native.name === "File")
|
|
204
208
|
? ["file", false]
|
|
205
209
|
: (() => {
|
|
206
210
|
const meta =
|
|
@@ -210,9 +214,9 @@ export namespace HttpFormDataProgrammer {
|
|
|
210
214
|
? [meta.atomics[0]!.type, true]
|
|
211
215
|
: meta.templates.length
|
|
212
216
|
? ["string", true]
|
|
213
|
-
: meta.natives.
|
|
217
|
+
: meta.natives.some((native) => native.name === "Blob")
|
|
214
218
|
? ["blob", true]
|
|
215
|
-
: meta.natives.
|
|
219
|
+
: meta.natives.some((native) => native.name === "File")
|
|
216
220
|
? ["file", true]
|
|
217
221
|
: [meta.constants[0]!.type, true];
|
|
218
222
|
})();
|