typia 5.0.0-dev.20230822 → 5.0.0-dev.20230823-2
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/README.md +1 -1
- package/lib/Primitive.d.ts +14 -12
- package/lib/Resolved.d.ts +46 -0
- package/lib/{schemas/metadata/IMetadataResolved.js → Resolved.js} +1 -1
- package/lib/Resolved.js.map +1 -0
- package/lib/factories/MetadataFactory.d.ts +1 -1
- package/lib/factories/MetadataTagFactory.js +6 -6
- package/lib/factories/MetadataTagFactory.js.map +1 -1
- package/lib/factories/ProtobufFactory.js +2 -2
- package/lib/factories/ProtobufFactory.js.map +1 -1
- package/lib/factories/internal/metadata/explore_metadata.js +3 -3
- package/lib/factories/internal/metadata/explore_metadata.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_native.js +2 -10
- package/lib/factories/internal/metadata/iterate_metadata_native.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_resolve.js +6 -6
- package/lib/factories/internal/metadata/iterate_metadata_resolve.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_sort.js +2 -2
- package/lib/factories/internal/metadata/iterate_metadata_sort.js.map +1 -1
- package/lib/functional/$ProtobufWriter.js.map +1 -1
- package/lib/json.d.ts +15 -15
- package/lib/misc.d.ts +42 -42
- package/lib/module.d.ts +18 -17
- package/lib/module.js +1 -0
- package/lib/module.js.map +1 -1
- package/lib/programmers/AssertProgrammer.js +1 -1
- package/lib/programmers/AssertProgrammer.js.map +1 -1
- package/lib/programmers/CheckerProgrammer.js +1 -1
- package/lib/programmers/CheckerProgrammer.js.map +1 -1
- package/lib/programmers/IsProgrammer.js +2 -2
- package/lib/programmers/IsProgrammer.js.map +1 -1
- package/lib/programmers/RandomProgrammer.js +307 -132
- package/lib/programmers/RandomProgrammer.js.map +1 -1
- package/lib/programmers/ValidateProgrammer.js +1 -1
- package/lib/programmers/ValidateProgrammer.js.map +1 -1
- package/lib/programmers/helpers/FunctionImporeter.d.ts +2 -0
- package/lib/programmers/helpers/FunctionImporeter.js +2 -1
- package/lib/programmers/helpers/FunctionImporeter.js.map +1 -1
- package/lib/programmers/helpers/StringifyPredicator.js +1 -2
- package/lib/programmers/helpers/StringifyPredicator.js.map +1 -1
- package/lib/programmers/helpers/disable_function_importer_declare.js +1 -0
- package/lib/programmers/helpers/disable_function_importer_declare.js.map +1 -1
- package/lib/programmers/internal/application_resolved.d.ts +2 -2
- package/lib/programmers/internal/application_resolved.js.map +1 -1
- package/lib/programmers/internal/application_schema.js +2 -2
- package/lib/programmers/internal/application_schema.js.map +1 -1
- package/lib/programmers/json/JsonStringifyProgrammer.js +4 -4
- package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscAssertCloneProgrammer.js +1 -1
- package/lib/programmers/misc/MiscAssertCloneProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscCloneProgrammer.js +114 -33
- package/lib/programmers/misc/MiscCloneProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscIsCloneProgrammer.js +1 -1
- package/lib/programmers/misc/MiscIsCloneProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscLiteralsProgrammer.js +1 -1
- package/lib/programmers/misc/MiscLiteralsProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscPruneProgrammer.js +2 -2
- package/lib/programmers/misc/MiscPruneProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscValidateCloneProgrammer.js +1 -1
- package/lib/programmers/misc/MiscValidateCloneProgrammer.js.map +1 -1
- package/lib/programmers/protobuf/ProtobufAssertDecodeProgrammer.js +3 -3
- package/lib/programmers/protobuf/ProtobufAssertDecodeProgrammer.js.map +1 -1
- package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js +15 -10
- package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js.map +1 -1
- package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js +8 -6
- package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js.map +1 -1
- package/lib/programmers/protobuf/ProtobufIsDecodeProgrammer.js +2 -2
- package/lib/programmers/protobuf/ProtobufIsDecodeProgrammer.js.map +1 -1
- package/lib/programmers/protobuf/ProtobufValidateDecodeProgrammer.js +1 -1
- package/lib/programmers/protobuf/ProtobufValidateDecodeProgrammer.js.map +1 -1
- package/lib/protobuf.d.ts +631 -10
- package/lib/protobuf.js +13 -13
- package/lib/protobuf.js.map +1 -1
- package/lib/schemas/metadata/IMetadata.d.ts +2 -2
- package/lib/schemas/metadata/{IMetadataResolved.d.ts → IMetadataEscaped.d.ts} +1 -1
- package/lib/schemas/metadata/IMetadataEscaped.js +3 -0
- package/lib/schemas/metadata/IMetadataEscaped.js.map +1 -0
- package/lib/schemas/metadata/Metadata.d.ts +2 -2
- package/lib/schemas/metadata/Metadata.js +15 -15
- package/lib/schemas/metadata/Metadata.js.map +1 -1
- package/lib/schemas/metadata/{MetadataResolved.d.ts → MetadataEscaped.d.ts} +3 -3
- package/lib/schemas/metadata/{MetadataResolved.js → MetadataEscaped.js} +11 -11
- package/lib/schemas/metadata/MetadataEscaped.js.map +1 -0
- package/lib/transformers/features/json/JsonApplicationTransformer.js +1 -1
- package/lib/transformers/features/json/JsonApplicationTransformer.js.map +1 -1
- package/lib/transformers/features/misc/MetadataTransformer.js +1 -1
- package/lib/transformers/features/misc/MetadataTransformer.js.map +1 -1
- package/lib/utils/RandomGenerator.js +3 -2
- package/lib/utils/RandomGenerator.js.map +1 -1
- package/package.json +2 -1
- package/src/Primitive.ts +19 -15
- package/src/Resolved.ts +116 -0
- package/src/factories/MetadataFactory.ts +1 -1
- package/src/factories/MetadataTagFactory.ts +6 -6
- package/src/factories/ProtobufFactory.ts +2 -2
- package/src/factories/internal/metadata/explore_metadata.ts +3 -3
- package/src/factories/internal/metadata/iterate_metadata_collection.ts +6 -6
- package/src/factories/internal/metadata/iterate_metadata_native.ts +0 -9
- package/src/factories/internal/metadata/iterate_metadata_resolve.ts +6 -6
- package/src/factories/internal/metadata/iterate_metadata_sort.ts +2 -2
- package/src/functional/$ProtobufWriter.ts +1 -2
- package/src/json.ts +15 -15
- package/src/misc.ts +42 -42
- package/src/module.ts +18 -17
- package/src/programmers/AssertProgrammer.ts +3 -1
- package/src/programmers/CheckerProgrammer.ts +1 -1
- package/src/programmers/IsProgrammer.ts +4 -2
- package/src/programmers/RandomProgrammer.ts +322 -26
- package/src/programmers/ValidateProgrammer.ts +3 -1
- package/src/programmers/helpers/FunctionImporeter.ts +2 -0
- package/src/programmers/helpers/StringifyPredicator.ts +1 -2
- package/src/programmers/helpers/disable_function_importer_declare.ts +6 -1
- package/src/programmers/internal/application_resolved.ts +2 -2
- package/src/programmers/internal/application_schema.ts +2 -2
- package/src/programmers/json/JsonStringifyProgrammer.ts +6 -4
- package/src/programmers/misc/MiscAssertCloneProgrammer.ts +1 -1
- package/src/programmers/misc/MiscCloneProgrammer.ts +229 -41
- package/src/programmers/misc/MiscIsCloneProgrammer.ts +1 -1
- package/src/programmers/misc/MiscLiteralsProgrammer.ts +1 -1
- package/src/programmers/misc/MiscPruneProgrammer.ts +4 -2
- package/src/programmers/misc/MiscValidateCloneProgrammer.ts +1 -1
- package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +18 -9
- package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +45 -25
- package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +15 -13
- package/src/programmers/protobuf/ProtobufIsDecodeProgrammer.ts +12 -2
- package/src/programmers/protobuf/ProtobufValidateDecodeProgrammer.ts +2 -2
- package/src/protobuf.ts +663 -31
- package/src/schemas/metadata/IMetadata.ts +2 -2
- package/src/schemas/metadata/{IMetadataResolved.ts → IMetadataEscaped.ts} +1 -1
- package/src/schemas/metadata/Metadata.ts +17 -20
- package/src/schemas/metadata/{MetadataResolved.ts → MetadataEscaped.ts} +9 -9
- package/src/transformers/features/json/JsonApplicationTransformer.ts +1 -1
- package/src/transformers/features/misc/MetadataTransformer.ts +1 -1
- package/src/utils/RandomGenerator.ts +4 -2
- package/lib/schemas/metadata/IMetadataResolved.js.map +0 -1
- package/lib/schemas/metadata/MetadataResolved.js.map +0 -1
|
@@ -30,7 +30,7 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
30
30
|
(project: IProject) =>
|
|
31
31
|
(modulo: ts.LeftHandSideExpression) =>
|
|
32
32
|
(type: ts.Type, name?: string): ts.ArrowFunction => {
|
|
33
|
-
const importer = new FunctionImporter();
|
|
33
|
+
const importer = new FunctionImporter(modulo.getText());
|
|
34
34
|
const collection = new MetadataCollection();
|
|
35
35
|
const meta: Metadata = ProtobufFactory.metadata(modulo.getText())(
|
|
36
36
|
project.checker,
|
|
@@ -75,7 +75,6 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
75
75
|
),
|
|
76
76
|
];
|
|
77
77
|
|
|
78
|
-
// @todo
|
|
79
78
|
return ts.factory.createArrowFunction(
|
|
80
79
|
undefined,
|
|
81
80
|
undefined,
|
|
@@ -459,6 +458,11 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
459
458
|
);
|
|
460
459
|
return ts.factory.createBlock(
|
|
461
460
|
[
|
|
461
|
+
ts.factory.createIdentifier(
|
|
462
|
+
`//${index !== null ? ` ${index} -> ` : ""}${
|
|
463
|
+
object.name
|
|
464
|
+
}`,
|
|
465
|
+
),
|
|
462
466
|
...(index !== null
|
|
463
467
|
? [
|
|
464
468
|
decode_tag(ProtobufWire.LEN)(index),
|
|
@@ -672,30 +676,27 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
672
676
|
targets: MetadataObject[],
|
|
673
677
|
explore: FeatureProgrammer.IExplore,
|
|
674
678
|
tags: IMetadataTag[],
|
|
679
|
+
indexes?: Map<MetadataObject, number>,
|
|
675
680
|
): ts.Block => {
|
|
676
681
|
if (targets.length === 1)
|
|
677
|
-
return decode_object(project)(importer)(
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
explore,
|
|
681
|
-
tags,
|
|
682
|
-
);
|
|
682
|
+
return decode_object(project)(importer)(
|
|
683
|
+
indexes ? indexes.get(targets[0]!)! : index,
|
|
684
|
+
)(input, targets[0]!, explore, tags);
|
|
683
685
|
|
|
684
686
|
const expected: string = `(${targets
|
|
685
687
|
.map((t) => t.name)
|
|
686
688
|
.join(" | ")})`;
|
|
687
|
-
const indexes: Map<MetadataObject, number> = new Map(
|
|
688
|
-
targets.map((t, i) => [t, index! + i]),
|
|
689
|
-
);
|
|
690
689
|
|
|
691
690
|
// POSSIBLE TO SPECIALIZE?
|
|
692
691
|
const specList = UnionPredicator.object(targets);
|
|
692
|
+
indexes ??= new Map(targets.map((t, i) => [t, index! + i]));
|
|
693
|
+
|
|
693
694
|
if (specList.length === 0) {
|
|
694
695
|
const condition: ts.Expression = decode_union_object(
|
|
695
696
|
IsProgrammer.decode_object(importer),
|
|
696
697
|
)((i, o, e) =>
|
|
697
698
|
ExpressionFactory.selfCall(
|
|
698
|
-
decode_object(project)(importer)(indexes
|
|
699
|
+
decode_object(project)(importer)(indexes!.get(o)!)(
|
|
699
700
|
i,
|
|
700
701
|
o,
|
|
701
702
|
e,
|
|
@@ -736,7 +737,7 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
736
737
|
ts.factory.createReturnStatement(
|
|
737
738
|
ExpressionFactory.selfCall(
|
|
738
739
|
decode_object(project)(importer)(
|
|
739
|
-
indexes
|
|
740
|
+
indexes!.get(spec.object)!,
|
|
740
741
|
)(input, spec.object, explore, tags),
|
|
741
742
|
),
|
|
742
743
|
),
|
|
@@ -751,6 +752,7 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
751
752
|
remained,
|
|
752
753
|
explore,
|
|
753
754
|
tags,
|
|
755
|
+
indexes,
|
|
754
756
|
),
|
|
755
757
|
),
|
|
756
758
|
)
|
|
@@ -25,7 +25,10 @@ export namespace ProtobufIsDecodeProgrammer {
|
|
|
25
25
|
],
|
|
26
26
|
ts.factory.createUnionTypeNode([
|
|
27
27
|
ts.factory.createTypeReferenceNode(
|
|
28
|
-
|
|
28
|
+
`typia.Resolved<${
|
|
29
|
+
name ??
|
|
30
|
+
TypeFactory.getFullName(project.checker)(type)
|
|
31
|
+
}>`,
|
|
29
32
|
),
|
|
30
33
|
ts.factory.createLiteralTypeNode(ts.factory.createNull()),
|
|
31
34
|
]),
|
|
@@ -33,7 +36,14 @@ export namespace ProtobufIsDecodeProgrammer {
|
|
|
33
36
|
ts.factory.createBlock([
|
|
34
37
|
StatementFactory.constant(
|
|
35
38
|
"is",
|
|
36
|
-
IsProgrammer.write(
|
|
39
|
+
IsProgrammer.write({
|
|
40
|
+
...project,
|
|
41
|
+
options: {
|
|
42
|
+
...project.options,
|
|
43
|
+
functional: false,
|
|
44
|
+
numeric: false,
|
|
45
|
+
},
|
|
46
|
+
})(modulo)(false)(type, name),
|
|
37
47
|
),
|
|
38
48
|
StatementFactory.constant(
|
|
39
49
|
"decode",
|
|
@@ -24,9 +24,9 @@ export namespace ProtobufValidateDecodeProgrammer {
|
|
|
24
24
|
),
|
|
25
25
|
],
|
|
26
26
|
ts.factory.createTypeReferenceNode(
|
|
27
|
-
`typia.IValidation<${
|
|
27
|
+
`typia.IValidation<typia.Resolved<${
|
|
28
28
|
name ?? TypeFactory.getFullName(project.checker)(type)
|
|
29
|
-
}
|
|
29
|
+
}>>`,
|
|
30
30
|
),
|
|
31
31
|
undefined,
|
|
32
32
|
ts.factory.createBlock([
|