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
|
@@ -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,53 +10,150 @@ 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;
|
|
149
|
+
};
|
|
150
|
+
|
|
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);
|
|
60
157
|
};
|
|
61
158
|
|
|
62
159
|
const compare = (x: ProtobufAtomic, y: ProtobufAtomic): number =>
|
|
@@ -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
|
})();
|