typia 5.0.0-dev.20230824 → 5.0.0-dev.20230828
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 -2
- package/lib/IRandomGenerator.d.ts +4 -3
- package/lib/executable/TypiaGenerateWizard.js +1 -1
- package/lib/executable/TypiaGenerateWizard.js.map +1 -1
- package/lib/executable/TypiaSetupWizard.js +1 -1
- package/lib/executable/TypiaSetupWizard.js.map +1 -1
- package/lib/executable/setup/PackageManager.js +1 -1
- package/lib/executable/setup/PackageManager.js.map +1 -1
- package/lib/executable/setup/PluginConfigurator.js +2 -2
- package/lib/executable/setup/PluginConfigurator.js.map +1 -1
- package/lib/factories/ExpressionFactory.d.ts +1 -1
- package/lib/factories/ExpressionFactory.js +3 -3
- package/lib/factories/ExpressionFactory.js.map +1 -1
- package/lib/factories/JsonMetadataFactory.d.ts +7 -0
- package/lib/factories/JsonMetadataFactory.js +38 -0
- package/lib/factories/JsonMetadataFactory.js.map +1 -0
- package/lib/factories/LiteralFactory.js +6 -2
- package/lib/factories/LiteralFactory.js.map +1 -1
- package/lib/factories/MetadataCollection.js +0 -2
- package/lib/factories/MetadataCollection.js.map +1 -1
- package/lib/factories/MetadataCommentTagFactory.js +543 -0
- package/lib/factories/MetadataCommentTagFactory.js.map +1 -0
- package/lib/factories/MetadataFactory.d.ts +22 -2
- package/lib/factories/MetadataFactory.js +221 -17
- package/lib/factories/MetadataFactory.js.map +1 -1
- package/lib/factories/MetadataTypeTagFactory.d.ts +7 -0
- package/lib/factories/MetadataTypeTagFactory.js +280 -0
- package/lib/factories/MetadataTypeTagFactory.js.map +1 -0
- package/lib/factories/NumericRangeFactory.d.ts +6 -0
- package/lib/factories/NumericRangeFactory.js +34 -0
- package/lib/factories/NumericRangeFactory.js.map +1 -0
- package/lib/factories/ProtobufFactory.js +109 -73
- package/lib/factories/ProtobufFactory.js.map +1 -1
- package/lib/factories/TypeFactory.d.ts +0 -1
- package/lib/factories/TypeFactory.js +0 -5
- package/lib/factories/TypeFactory.js.map +1 -1
- package/lib/factories/internal/metadata/emend_metadata_atomics.js +7 -1
- package/lib/factories/internal/metadata/emend_metadata_atomics.js.map +1 -1
- package/lib/factories/internal/metadata/emplace_metadata_alias.d.ts +1 -1
- package/lib/factories/internal/metadata/emplace_metadata_alias.js +20 -19
- package/lib/factories/internal/metadata/emplace_metadata_alias.js.map +1 -1
- package/lib/factories/internal/metadata/emplace_metadata_array_type.d.ts +1 -1
- package/lib/factories/internal/metadata/emplace_metadata_array_type.js +20 -7
- package/lib/factories/internal/metadata/emplace_metadata_array_type.js.map +1 -1
- package/lib/factories/internal/metadata/emplace_metadata_object.d.ts +1 -1
- package/lib/factories/internal/metadata/emplace_metadata_object.js +100 -85
- package/lib/factories/internal/metadata/emplace_metadata_object.js.map +1 -1
- package/lib/factories/internal/metadata/emplace_metadata_tuple.d.ts +1 -1
- package/lib/factories/internal/metadata/emplace_metadata_tuple.js +34 -21
- package/lib/factories/internal/metadata/emplace_metadata_tuple.js.map +1 -1
- package/lib/factories/internal/metadata/explore_metadata.d.ts +1 -1
- package/lib/factories/internal/metadata/explore_metadata.js +12 -12
- package/lib/factories/internal/metadata/explore_metadata.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata.d.ts +1 -1
- package/lib/factories/internal/metadata/iterate_metadata.js +39 -19
- package/lib/factories/internal/metadata/iterate_metadata.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_alias.d.ts +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_alias.js +12 -10
- package/lib/factories/internal/metadata/iterate_metadata_alias.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_array.d.ts +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_array.js +11 -9
- package/lib/factories/internal/metadata/iterate_metadata_array.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_atomic.js +2 -1
- package/lib/factories/internal/metadata/iterate_metadata_atomic.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_collection.d.ts +2 -1
- package/lib/factories/internal/metadata/iterate_metadata_collection.js +47 -45
- package/lib/factories/internal/metadata/iterate_metadata_collection.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_comment_tags.d.ts +2 -1
- package/lib/factories/internal/metadata/iterate_metadata_comment_tags.js +17 -22
- package/lib/factories/internal/metadata/iterate_metadata_comment_tags.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_intersection.d.ts +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_intersection.js +147 -135
- package/lib/factories/internal/metadata/iterate_metadata_intersection.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_map.d.ts +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_map.js +28 -15
- package/lib/factories/internal/metadata/iterate_metadata_map.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_object.d.ts +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_object.js +16 -14
- package/lib/factories/internal/metadata/iterate_metadata_object.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_resolve.d.ts +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_resolve.js +28 -15
- package/lib/factories/internal/metadata/iterate_metadata_resolve.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_set.d.ts +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_set.js +24 -11
- package/lib/factories/internal/metadata/iterate_metadata_set.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_template.d.ts +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_template.js +28 -15
- package/lib/factories/internal/metadata/iterate_metadata_template.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_tuple.d.ts +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_tuple.js +11 -9
- package/lib/factories/internal/metadata/iterate_metadata_tuple.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_union.d.ts +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_union.js +20 -7
- package/lib/factories/internal/metadata/iterate_metadata_union.js.map +1 -1
- package/lib/functional/Namespace.js +0 -16
- package/lib/functional/Namespace.js.map +1 -1
- package/lib/programmers/AssertProgrammer.js +28 -8
- package/lib/programmers/AssertProgrammer.js.map +1 -1
- package/lib/programmers/CheckerProgrammer.js +78 -60
- package/lib/programmers/CheckerProgrammer.js.map +1 -1
- package/lib/programmers/FeatureProgrammer.d.ts +4 -6
- package/lib/programmers/FeatureProgrammer.js +7 -7
- package/lib/programmers/FeatureProgrammer.js.map +1 -1
- package/lib/programmers/IsProgrammer.d.ts +1 -1
- package/lib/programmers/IsProgrammer.js +33 -20
- package/lib/programmers/IsProgrammer.js.map +1 -1
- package/lib/programmers/RandomProgrammer.js +163 -138
- package/lib/programmers/RandomProgrammer.js.map +1 -1
- package/lib/programmers/TypiaProgrammer.js +58 -28
- package/lib/programmers/TypiaProgrammer.js.map +1 -1
- package/lib/programmers/ValidateProgrammer.js +28 -8
- package/lib/programmers/ValidateProgrammer.js.map +1 -1
- package/lib/programmers/helpers/CloneJoiner.js +10 -2
- package/lib/programmers/helpers/CloneJoiner.js.map +1 -1
- package/lib/programmers/helpers/ICheckEntry.d.ts +3 -2
- package/lib/programmers/helpers/ProtobufUtil.d.ts +6 -2
- package/lib/programmers/helpers/ProtobufUtil.js +175 -17
- package/lib/programmers/helpers/ProtobufUtil.js.map +1 -1
- package/lib/programmers/helpers/RandomJoiner.d.ts +3 -5
- package/lib/programmers/helpers/RandomJoiner.js +7 -10
- package/lib/programmers/helpers/RandomJoiner.js.map +1 -1
- package/lib/programmers/helpers/RandomRanger.d.ts +5 -6
- package/lib/programmers/helpers/RandomRanger.js +13 -33
- package/lib/programmers/helpers/RandomRanger.js.map +1 -1
- package/lib/programmers/helpers/UnionExplorer.d.ts +7 -8
- package/lib/programmers/helpers/UnionExplorer.js +6 -6
- package/lib/programmers/helpers/UnionExplorer.js.map +1 -1
- package/lib/programmers/internal/application_alias.js +0 -1
- package/lib/programmers/internal/application_alias.js.map +1 -1
- package/lib/programmers/internal/application_array.js +60 -20
- package/lib/programmers/internal/application_array.js.map +1 -1
- package/lib/programmers/internal/application_escaped.d.ts +4 -0
- package/lib/programmers/internal/{application_resolved.js → application_escaped.js} +4 -4
- package/lib/programmers/internal/application_escaped.js.map +1 -0
- package/lib/programmers/internal/application_number.js +95 -69
- package/lib/programmers/internal/application_number.js.map +1 -1
- package/lib/programmers/internal/application_object.js +0 -3
- package/lib/programmers/internal/application_object.js.map +1 -1
- package/lib/programmers/internal/application_schema.js +41 -24
- package/lib/programmers/internal/application_schema.js.map +1 -1
- package/lib/programmers/internal/application_string.js +56 -22
- package/lib/programmers/internal/application_string.js.map +1 -1
- package/lib/programmers/internal/check_array_length.js +25 -25
- package/lib/programmers/internal/check_array_length.js.map +1 -1
- package/lib/programmers/internal/check_bigint.js +13 -116
- package/lib/programmers/internal/check_bigint.js.map +1 -1
- package/lib/programmers/internal/check_dynamic_properties.js +1 -1
- package/lib/programmers/internal/check_dynamic_properties.js.map +1 -1
- package/lib/programmers/internal/check_number.js +62 -163
- package/lib/programmers/internal/check_number.js.map +1 -1
- package/lib/programmers/internal/check_string.js +16 -52
- package/lib/programmers/internal/check_string.js.map +1 -1
- package/lib/programmers/internal/check_template.js +16 -1
- package/lib/programmers/internal/check_template.js.map +1 -1
- package/lib/programmers/internal/check_union_array_like.js +4 -4
- package/lib/programmers/internal/check_union_array_like.js.map +1 -1
- package/lib/programmers/internal/feature_object_entries.js +1 -1
- package/lib/programmers/internal/feature_object_entries.js.map +1 -1
- package/lib/programmers/internal/random_custom.js +2 -2
- package/lib/programmers/internal/random_custom.js.map +1 -1
- package/lib/programmers/json/JsonApplicationProgrammer.js +5 -1
- package/lib/programmers/json/JsonApplicationProgrammer.js.map +1 -1
- package/lib/programmers/json/JsonAssertParseProgrammer.js +2 -0
- package/lib/programmers/json/JsonAssertParseProgrammer.js.map +1 -1
- package/lib/programmers/json/JsonIsParseProgrammer.js +2 -0
- package/lib/programmers/json/JsonIsParseProgrammer.js.map +1 -1
- package/lib/programmers/json/JsonStringifyProgrammer.js +41 -78
- package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
- package/lib/programmers/json/JsonValidateParseProgrammer.js +2 -0
- package/lib/programmers/json/JsonValidateParseProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscCloneProgrammer.js +26 -17
- package/lib/programmers/misc/MiscCloneProgrammer.js.map +1 -1
- package/lib/programmers/{IsPruneProgrammer.d.ts → misc/MiscIsPruneProgrammer.d.ts} +2 -2
- package/lib/programmers/{IsPruneProgrammer.js → misc/MiscIsPruneProgrammer.js} +11 -11
- package/lib/programmers/misc/MiscIsPruneProgrammer.js.map +1 -0
- package/lib/programmers/misc/MiscLiteralsProgrammer.js +10 -5
- package/lib/programmers/misc/MiscLiteralsProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscPruneProgrammer.js +23 -14
- package/lib/programmers/misc/MiscPruneProgrammer.js.map +1 -1
- package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js +24 -44
- package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js.map +1 -1
- package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js +138 -65
- package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js.map +1 -1
- package/lib/programmers/protobuf/ProtobufMessageProgrammer.js +59 -85
- package/lib/programmers/protobuf/ProtobufMessageProgrammer.js.map +1 -1
- package/lib/schemas/json/IJsonSchema.d.ts +10 -38
- package/lib/schemas/metadata/IMetadataAlias.d.ts +0 -2
- package/lib/schemas/metadata/IMetadataProperty.d.ts +0 -2
- package/lib/schemas/metadata/IMetadataTypeTag.d.ts +2 -0
- package/lib/schemas/metadata/Metadata.d.ts +2 -2
- package/lib/schemas/metadata/Metadata.js +29 -29
- package/lib/schemas/metadata/Metadata.js.map +1 -1
- package/lib/schemas/metadata/MetadataAlias.d.ts +0 -2
- package/lib/schemas/metadata/MetadataAlias.js +0 -3
- package/lib/schemas/metadata/MetadataAlias.js.map +1 -1
- package/lib/schemas/metadata/MetadataArray.d.ts +2 -0
- package/lib/schemas/metadata/MetadataArray.js +45 -2
- package/lib/schemas/metadata/MetadataArray.js.map +1 -1
- package/lib/schemas/metadata/MetadataAtomic.d.ts +9 -0
- package/lib/schemas/metadata/MetadataAtomic.js +59 -0
- package/lib/schemas/metadata/MetadataAtomic.js.map +1 -0
- package/lib/schemas/metadata/MetadataProperty.d.ts +0 -2
- package/lib/schemas/metadata/MetadataProperty.js +0 -3
- package/lib/schemas/metadata/MetadataProperty.js.map +1 -1
- package/lib/schemas/metadata/MetadataTuple.d.ts +4 -2
- package/lib/schemas/metadata/MetadataTuple.js +1 -2
- package/lib/schemas/metadata/MetadataTuple.js.map +1 -1
- package/lib/tags/ExclusiveMaximum.d.ts +10 -8
- package/lib/tags/ExclusiveMinimum.d.ts +10 -8
- package/lib/tags/Format.d.ts +8 -8
- package/lib/tags/MaxItems.d.ts +8 -8
- package/lib/tags/MaxLength.d.ts +8 -8
- package/lib/tags/Maximum.d.ts +10 -8
- package/lib/tags/MinItems.d.ts +8 -8
- package/lib/tags/MinLength.d.ts +8 -8
- package/lib/tags/Minimum.d.ts +10 -8
- package/lib/tags/MultipleOf.d.ts +10 -8
- package/lib/tags/Pattern.d.ts +7 -8
- package/lib/tags/TagBase.d.ts +10 -6
- package/lib/tags/Type.d.ts +14 -13
- 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/transform.d.ts +2 -1
- package/lib/transform.js +11 -3
- package/lib/transform.js.map +1 -1
- package/lib/transformers/CallExpressionTransformer.d.ts +1 -1
- package/lib/transformers/CallExpressionTransformer.js +2 -1
- package/lib/transformers/CallExpressionTransformer.js.map +1 -1
- package/lib/transformers/FileTransformer.js +18 -6
- package/lib/transformers/FileTransformer.js.map +1 -1
- package/lib/transformers/IProject.d.ts +3 -0
- package/lib/transformers/NodeTransformer.d.ts +1 -1
- package/lib/transformers/TransformerError.d.ts +12 -0
- package/lib/transformers/TransformerError.js +66 -0
- package/lib/transformers/TransformerError.js.map +1 -0
- package/lib/transformers/features/AssertTransformer.d.ts +1 -0
- package/lib/transformers/features/CreateAssertTransformer.d.ts +1 -0
- package/lib/transformers/features/CreateIsTransformer.d.ts +1 -0
- package/lib/transformers/features/CreateRandomTransformer.js +9 -4
- package/lib/transformers/features/CreateRandomTransformer.js.map +1 -1
- package/lib/transformers/features/CreateValidateTransformer.d.ts +1 -0
- package/lib/transformers/features/IsTransformer.d.ts +1 -0
- package/lib/transformers/features/RandomTransformer.js +9 -4
- package/lib/transformers/features/RandomTransformer.js.map +1 -1
- package/lib/transformers/features/ValidateTransformer.d.ts +1 -0
- package/lib/transformers/features/json/JsonApplicationTransformer.js +79 -19
- package/lib/transformers/features/json/JsonApplicationTransformer.js.map +1 -1
- package/lib/transformers/features/json/JsonAssertParseTransformer.d.ts +1 -0
- package/lib/transformers/features/json/JsonAssertStringifyTransformer.d.ts +1 -0
- package/lib/transformers/features/json/JsonCreateAssertParseTransformer.d.ts +1 -0
- package/lib/transformers/features/json/JsonCreateAssertStringifyTransformer.d.ts +1 -0
- package/lib/transformers/features/json/JsonCreateIsParseTransformer.d.ts +1 -0
- package/lib/transformers/features/json/JsonCreateIsStringifyTransformer.d.ts +1 -0
- package/lib/transformers/features/json/JsonCreateStringifyTransformer.d.ts +1 -0
- package/lib/transformers/features/json/JsonCreateValidateParseTransformer.d.ts +1 -0
- package/lib/transformers/features/json/JsonCreateValidateStringifyProgrammer.d.ts +1 -0
- package/lib/transformers/features/json/JsonIsParseTransformer.d.ts +1 -0
- package/lib/transformers/features/json/JsonIsStringifyTransformer.d.ts +1 -0
- package/lib/transformers/features/json/JsonStringifyTransformer.d.ts +1 -0
- package/lib/transformers/features/json/JsonValidateParseTransformer.d.ts +1 -0
- package/lib/transformers/features/json/JsonValidateStringifyTransformer.d.ts +1 -0
- package/lib/transformers/features/misc/MetadataTransformer.js +13 -5
- package/lib/transformers/features/misc/MetadataTransformer.js.map +1 -1
- package/lib/transformers/features/misc/MiscAssertCloneTransformer.d.ts +1 -0
- package/lib/transformers/features/misc/MiscAssertPruneTransformer.d.ts +1 -0
- package/lib/transformers/features/misc/MiscCloneTransformer.d.ts +1 -0
- package/lib/transformers/features/misc/MiscCreateAssertCloneTransformer.d.ts +1 -0
- package/lib/transformers/features/misc/MiscCreateAssertPruneTransformer.d.ts +1 -0
- package/lib/transformers/features/misc/MiscCreateCloneTransformer.d.ts +1 -0
- package/lib/transformers/features/misc/MiscCreateIsCloneTransformer.d.ts +1 -0
- package/lib/transformers/features/misc/MiscCreateIsPruneTransformer.d.ts +1 -0
- package/lib/transformers/features/misc/MiscCreateIsPruneTransformer.js +2 -2
- package/lib/transformers/features/misc/MiscCreateIsPruneTransformer.js.map +1 -1
- package/lib/transformers/features/misc/MiscCreatePruneTransformer.d.ts +1 -0
- package/lib/transformers/features/misc/MiscCreateValidateCloneTransformer.d.ts +1 -0
- package/lib/transformers/features/misc/MiscCreateValidatePruneTransformer.d.ts +1 -0
- package/lib/transformers/features/misc/MiscIsCloneTransformer.d.ts +1 -0
- package/lib/transformers/features/misc/MiscIsPruneTransformer.d.ts +1 -0
- package/lib/transformers/features/misc/MiscIsPruneTransformer.js +2 -2
- package/lib/transformers/features/misc/MiscIsPruneTransformer.js.map +1 -1
- package/lib/transformers/features/misc/MiscLiteralsTransformer.js +9 -4
- package/lib/transformers/features/misc/MiscLiteralsTransformer.js.map +1 -1
- package/lib/transformers/features/misc/MiscPruneTransformer.d.ts +1 -0
- package/lib/transformers/features/misc/MiscValidateCloneTransformer.d.ts +1 -0
- package/lib/transformers/features/misc/MiscValidatePruneTransformer.d.ts +1 -0
- package/lib/transformers/features/protobuf/CreateProtobufAssertDecodeTransformer.d.ts +1 -0
- package/lib/transformers/features/protobuf/CreateProtobufAssertEncodeTransformer.d.ts +1 -0
- package/lib/transformers/features/protobuf/CreateProtobufDecodeTransformer.d.ts +1 -0
- package/lib/transformers/features/protobuf/CreateProtobufEncodeTransformer.d.ts +1 -0
- package/lib/transformers/features/protobuf/CreateProtobufIsDecodeTransformer.d.ts +1 -0
- package/lib/transformers/features/protobuf/CreateProtobufIsEncodeTransformer.d.ts +1 -0
- package/lib/transformers/features/protobuf/CreateProtobufValidateDecodeTransformer.d.ts +1 -0
- package/lib/transformers/features/protobuf/CreateProtobufValidateEncodeTransformer.d.ts +1 -0
- package/lib/transformers/features/protobuf/ProtobufAssertDecodeTransformer.d.ts +1 -0
- package/lib/transformers/features/protobuf/ProtobufAssertEncodeTransformer.d.ts +1 -0
- package/lib/transformers/features/protobuf/ProtobufDecodeTransformer.d.ts +1 -0
- package/lib/transformers/features/protobuf/ProtobufEncodeTransformer.d.ts +1 -0
- package/lib/transformers/features/protobuf/ProtobufIsDecodeTransformer.d.ts +1 -0
- package/lib/transformers/features/protobuf/ProtobufIsEncodeTransformer.d.ts +1 -0
- package/lib/transformers/features/protobuf/ProtobufMessageTransformer.js +9 -2
- package/lib/transformers/features/protobuf/ProtobufMessageTransformer.js.map +1 -1
- package/lib/transformers/features/protobuf/ProtobufValidateDecodeTransformer.d.ts +1 -0
- package/lib/transformers/features/protobuf/ProtobufValidateEncodeTransformer.d.ts +1 -0
- package/lib/transformers/internal/GenericTransformer.js +17 -4
- package/lib/transformers/internal/GenericTransformer.js.map +1 -1
- package/lib/typings/ProtobufAtomic.d.ts +5 -0
- package/lib/{schemas/metadata/ICommentTag.js → typings/ProtobufAtomic.js} +1 -1
- package/lib/typings/ProtobufAtomic.js.map +1 -0
- package/lib/typings/ValidationPipe.d.ts +7 -0
- package/lib/{schemas/metadata/IMetadataCommentTag.js → typings/ValidationPipe.js} +1 -1
- package/lib/typings/ValidationPipe.js.map +1 -0
- package/package.json +4 -2
- package/src/IRandomGenerator.ts +4 -3
- package/src/executable/TypiaGenerateWizard.ts +1 -1
- package/src/executable/TypiaSetupWizard.ts +1 -1
- package/src/executable/setup/PackageManager.ts +1 -1
- package/src/executable/setup/PluginConfigurator.ts +2 -2
- package/src/factories/ExpressionFactory.ts +4 -4
- package/src/factories/JsonMetadataFactory.ts +43 -0
- package/src/factories/LiteralFactory.ts +11 -3
- package/src/factories/MetadataCollection.ts +0 -6
- package/src/factories/MetadataCommentTagFactory.ts +629 -0
- package/src/factories/MetadataFactory.ts +169 -7
- package/src/factories/MetadataTypeTagFactory.ts +313 -0
- package/src/factories/NumericRangeFactory.ts +33 -0
- package/src/factories/ProtobufFactory.ts +106 -99
- package/src/factories/TypeFactory.ts +0 -5
- package/src/factories/internal/metadata/emend_metadata_atomics.ts +6 -1
- package/src/factories/internal/metadata/emplace_metadata_alias.ts +12 -11
- package/src/factories/internal/metadata/emplace_metadata_array_type.ts +12 -5
- package/src/factories/internal/metadata/emplace_metadata_object.ts +20 -6
- package/src/factories/internal/metadata/emplace_metadata_tuple.ts +12 -2
- package/src/factories/internal/metadata/explore_metadata.ts +5 -11
- package/src/factories/internal/metadata/iterate_metadata.ts +44 -24
- package/src/factories/internal/metadata/iterate_metadata_alias.ts +7 -2
- package/src/factories/internal/metadata/iterate_metadata_array.ts +7 -2
- package/src/factories/internal/metadata/iterate_metadata_atomic.ts +2 -1
- package/src/factories/internal/metadata/iterate_metadata_collection.ts +30 -29
- package/src/factories/internal/metadata/iterate_metadata_comment_tags.ts +22 -27
- package/src/factories/internal/metadata/iterate_metadata_intersection.ts +44 -25
- package/src/factories/internal/metadata/iterate_metadata_map.ts +20 -4
- package/src/factories/internal/metadata/iterate_metadata_object.ts +2 -1
- package/src/factories/internal/metadata/iterate_metadata_resolve.ts +15 -12
- package/src/factories/internal/metadata/iterate_metadata_set.ts +11 -2
- package/src/factories/internal/metadata/iterate_metadata_template.ts +12 -3
- package/src/factories/internal/metadata/iterate_metadata_tuple.ts +7 -2
- package/src/factories/internal/metadata/iterate_metadata_union.ts +10 -7
- package/src/functional/Namespace.ts +0 -16
- package/src/programmers/AssertProgrammer.ts +57 -21
- package/src/programmers/CheckerProgrammer.ts +51 -120
- package/src/programmers/FeatureProgrammer.ts +15 -34
- package/src/programmers/IsProgrammer.ts +53 -42
- package/src/programmers/RandomProgrammer.ts +223 -242
- package/src/programmers/TypiaProgrammer.ts +27 -2
- package/src/programmers/ValidateProgrammer.ts +60 -21
- package/src/programmers/helpers/CloneJoiner.ts +57 -20
- package/src/programmers/helpers/ICheckEntry.ts +3 -2
- package/src/programmers/helpers/ProtobufUtil.ts +113 -17
- package/src/programmers/helpers/RandomJoiner.ts +11 -37
- package/src/programmers/helpers/RandomRanger.ts +16 -51
- package/src/programmers/helpers/UnionExplorer.ts +1 -20
- package/src/programmers/internal/application_alias.ts +0 -1
- package/src/programmers/internal/application_array.ts +32 -10
- package/src/programmers/internal/{application_resolved.ts → application_escaped.ts} +1 -1
- package/src/programmers/internal/application_number.ts +76 -70
- package/src/programmers/internal/application_object.ts +0 -3
- package/src/programmers/internal/application_schema.ts +40 -22
- package/src/programmers/internal/application_string.ts +33 -27
- package/src/programmers/internal/check_array_length.ts +34 -28
- package/src/programmers/internal/check_bigint.ts +25 -118
- package/src/programmers/internal/check_dynamic_properties.ts +1 -2
- package/src/programmers/internal/check_number.ts +81 -261
- package/src/programmers/internal/check_string.ts +28 -39
- package/src/programmers/internal/check_template.ts +17 -1
- package/src/programmers/internal/check_union_array_like.ts +1 -16
- package/src/programmers/internal/feature_object_entries.ts +12 -18
- package/src/programmers/internal/random_custom.ts +3 -3
- package/src/programmers/json/JsonApplicationProgrammer.ts +6 -3
- package/src/programmers/json/JsonAssertParseProgrammer.ts +7 -2
- package/src/programmers/json/JsonIsParseProgrammer.ts +7 -2
- package/src/programmers/json/JsonStringifyProgrammer.ts +32 -73
- package/src/programmers/json/JsonValidateParseProgrammer.ts +7 -2
- package/src/programmers/json/JsonValidateStringifyProgrammer.ts +1 -1
- package/src/programmers/misc/MiscCloneProgrammer.ts +24 -35
- package/src/programmers/{IsPruneProgrammer.ts → misc/MiscIsPruneProgrammer.ts} +7 -7
- package/src/programmers/misc/MiscLiteralsProgrammer.ts +11 -6
- package/src/programmers/misc/MiscPruneProgrammer.ts +16 -20
- package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +34 -68
- package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +153 -98
- package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +6 -36
- package/src/schemas/json/IJsonSchema.ts +11 -38
- package/src/schemas/metadata/IMetadataAlias.ts +0 -2
- package/src/schemas/metadata/IMetadataProperty.ts +0 -2
- package/src/schemas/metadata/IMetadataTypeTag.ts +2 -0
- package/src/schemas/metadata/Metadata.ts +32 -46
- package/src/schemas/metadata/MetadataAlias.ts +0 -5
- package/src/schemas/metadata/MetadataArray.ts +21 -3
- package/src/schemas/metadata/MetadataAtomic.ts +42 -0
- package/src/schemas/metadata/MetadataProperty.ts +0 -5
- package/src/schemas/metadata/MetadataTuple.ts +5 -4
- package/src/tags/ExclusiveMaximum.ts +13 -8
- package/src/tags/ExclusiveMinimum.ts +13 -8
- package/src/tags/Format.ts +21 -20
- package/src/tags/MaxItems.ts +9 -8
- package/src/tags/MaxLength.ts +9 -8
- package/src/tags/Maximum.ts +13 -8
- package/src/tags/MinItems.ts +9 -8
- package/src/tags/MinLength.ts +9 -8
- package/src/tags/Minimum.ts +13 -8
- package/src/tags/MultipleOf.ts +15 -10
- package/src/tags/Pattern.ts +8 -8
- package/src/tags/TagBase.ts +18 -13
- package/src/tags/Type.ts +26 -29
- package/src/tags/index.ts +1 -0
- package/src/transform.ts +13 -5
- package/src/transformers/CallExpressionTransformer.ts +6 -3
- package/src/transformers/FileTransformer.ts +25 -13
- package/src/transformers/IProject.ts +3 -0
- package/src/transformers/NodeTransformer.ts +1 -1
- package/src/transformers/TransformerError.ts +55 -0
- package/src/transformers/features/CreateRandomTransformer.ts +11 -7
- package/src/transformers/features/RandomTransformer.ts +11 -7
- package/src/transformers/features/json/JsonApplicationTransformer.ts +39 -35
- package/src/transformers/features/misc/MetadataTransformer.ts +18 -10
- package/src/transformers/features/misc/MiscCreateIsPruneTransformer.ts +2 -2
- package/src/transformers/features/misc/MiscIsPruneTransformer.ts +2 -2
- package/src/transformers/features/misc/MiscLiteralsTransformer.ts +11 -7
- package/src/transformers/features/protobuf/ProtobufMessageTransformer.ts +9 -7
- package/src/transformers/internal/GenericTransformer.ts +17 -10
- package/src/typings/ProtobufAtomic.ts +19 -0
- package/src/typings/ValidationPipe.ts +9 -0
- package/lib/factories/MetadataTagFactory.d.ts +0 -6
- package/lib/factories/MetadataTagFactory.js +0 -312
- package/lib/factories/MetadataTagFactory.js.map +0 -1
- package/lib/factories/internal/metadata/iterate_metadata_type_tags.d.ts +0 -3
- package/lib/factories/internal/metadata/iterate_metadata_type_tags.js +0 -157
- package/lib/factories/internal/metadata/iterate_metadata_type_tags.js.map +0 -1
- package/lib/functional/$is_custom.d.ts +0 -2
- package/lib/functional/$is_custom.js +0 -13
- package/lib/functional/$is_custom.js.map +0 -1
- package/lib/functional/$is_date.d.ts +0 -1
- package/lib/functional/$is_date.js +0 -7
- package/lib/functional/$is_date.js.map +0 -1
- package/lib/functional/$is_datetime.d.ts +0 -1
- package/lib/functional/$is_datetime.js +0 -8
- package/lib/functional/$is_datetime.js.map +0 -1
- package/lib/functional/$is_email.d.ts +0 -1
- package/lib/functional/$is_email.js +0 -7
- package/lib/functional/$is_email.js.map +0 -1
- package/lib/functional/$is_ipv4.d.ts +0 -1
- package/lib/functional/$is_ipv4.js +0 -7
- package/lib/functional/$is_ipv4.js.map +0 -1
- package/lib/functional/$is_ipv6.d.ts +0 -1
- package/lib/functional/$is_ipv6.js +0 -7
- package/lib/functional/$is_ipv6.js.map +0 -1
- package/lib/functional/$is_url.d.ts +0 -1
- package/lib/functional/$is_url.js +0 -7
- package/lib/functional/$is_url.js.map +0 -1
- package/lib/functional/$is_uuid.d.ts +0 -1
- package/lib/functional/$is_uuid.js +0 -7
- package/lib/functional/$is_uuid.js.map +0 -1
- package/lib/programmers/IsPruneProgrammer.js.map +0 -1
- package/lib/programmers/internal/application_resolved.d.ts +0 -4
- package/lib/programmers/internal/application_resolved.js.map +0 -1
- package/lib/programmers/internal/check_array_tags.js +0 -39
- package/lib/programmers/internal/check_array_tags.js.map +0 -1
- package/lib/programmers/internal/check_string_tags.d.ts +0 -1
- package/lib/programmers/internal/check_string_tags.js +0 -89
- package/lib/programmers/internal/check_string_tags.js.map +0 -1
- package/lib/programmers/internal/get_comment_tags.d.ts +0 -1
- package/lib/programmers/internal/get_comment_tags.js +0 -25
- package/lib/programmers/internal/get_comment_tags.js.map +0 -1
- package/lib/schemas/metadata/ICommentTag.d.ts +0 -4
- package/lib/schemas/metadata/ICommentTag.js.map +0 -1
- package/lib/schemas/metadata/IMetadataCommentTag.d.ts +0 -63
- package/lib/schemas/metadata/IMetadataCommentTag.js.map +0 -1
- package/src/factories/MetadataTagFactory.ts +0 -365
- package/src/factories/internal/metadata/iterate_metadata_type_tags.ts +0 -183
- package/src/functional/$is_custom.ts +0 -14
- package/src/functional/$is_date.ts +0 -3
- package/src/functional/$is_datetime.ts +0 -2
- package/src/functional/$is_email.ts +0 -4
- package/src/functional/$is_ipv4.ts +0 -4
- package/src/functional/$is_ipv6.ts +0 -4
- package/src/functional/$is_url.ts +0 -4
- package/src/functional/$is_uuid.ts +0 -4
- package/src/programmers/internal/check_array_tags.ts +0 -45
- package/src/programmers/internal/check_string_tags.ts +0 -67
- package/src/programmers/internal/get_comment_tags.ts +0 -23
- package/src/schemas/metadata/ICommentTag.ts +0 -4
- package/src/schemas/metadata/IMetadataCommentTag.ts +0 -112
- /package/lib/{programmers/internal/check_array_tags.d.ts → factories/MetadataCommentTagFactory.d.ts} +0 -0
|
@@ -3,11 +3,11 @@ import ts from "typescript";
|
|
|
3
3
|
import { ExpressionFactory } from "../../factories/ExpressionFactory";
|
|
4
4
|
import { IdentifierFactory } from "../../factories/IdentifierFactory";
|
|
5
5
|
import { MetadataCollection } from "../../factories/MetadataCollection";
|
|
6
|
+
import { NumericRangeFactory } from "../../factories/NumericRangeFactory";
|
|
6
7
|
import { ProtobufFactory } from "../../factories/ProtobufFactory";
|
|
7
8
|
import { StatementFactory } from "../../factories/StatementFactory";
|
|
8
9
|
import { TypeFactory } from "../../factories/TypeFactory";
|
|
9
10
|
|
|
10
|
-
import { IMetadataCommentTag } from "../../schemas/metadata/IMetadataCommentTag";
|
|
11
11
|
import { Metadata } from "../../schemas/metadata/Metadata";
|
|
12
12
|
import { MetadataArray } from "../../schemas/metadata/MetadataArray";
|
|
13
13
|
import { MetadataObject } from "../../schemas/metadata/MetadataObject";
|
|
@@ -15,7 +15,7 @@ import { MetadataProperty } from "../../schemas/metadata/MetadataProperty";
|
|
|
15
15
|
|
|
16
16
|
import { IProject } from "../../transformers/IProject";
|
|
17
17
|
|
|
18
|
-
import {
|
|
18
|
+
import { ProtobufAtomic } from "../../typings/ProtobufAtomic";
|
|
19
19
|
|
|
20
20
|
import { FeatureProgrammer } from "../FeatureProgrammer";
|
|
21
21
|
import { IsProgrammer } from "../IsProgrammer";
|
|
@@ -128,7 +128,6 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
128
128
|
tracable: false,
|
|
129
129
|
postfix: "",
|
|
130
130
|
},
|
|
131
|
-
[],
|
|
132
131
|
);
|
|
133
132
|
return ts.factory.createArrowFunction(
|
|
134
133
|
undefined,
|
|
@@ -170,9 +169,8 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
170
169
|
),
|
|
171
170
|
p.value,
|
|
172
171
|
explore,
|
|
173
|
-
p.tags,
|
|
174
172
|
);
|
|
175
|
-
index += p.value
|
|
173
|
+
index += ProtobufUtil.size(p.value);
|
|
176
174
|
return [
|
|
177
175
|
ts.factory.createExpressionStatement(
|
|
178
176
|
ts.factory.createIdentifier(
|
|
@@ -205,7 +203,6 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
205
203
|
input: ts.Expression,
|
|
206
204
|
meta: Metadata,
|
|
207
205
|
explore: FeatureProgrammer.IExplore,
|
|
208
|
-
tags: IMetadataCommentTag[],
|
|
209
206
|
): ts.Block => {
|
|
210
207
|
const wrapper: (block: ts.Block) => ts.Block =
|
|
211
208
|
meta.isRequired() && meta.nullable === false
|
|
@@ -263,18 +260,47 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
263
260
|
);
|
|
264
261
|
|
|
265
262
|
// STARTS FROM ATOMIC TYPES
|
|
266
|
-
const unions: IUnion[] =
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
)
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
263
|
+
const unions: IUnion[] = [];
|
|
264
|
+
const numbers = ProtobufUtil.getNumbers(meta);
|
|
265
|
+
const bigints = ProtobufUtil.getBigints(meta);
|
|
266
|
+
|
|
267
|
+
for (const atom of ProtobufUtil.getAtomics(meta))
|
|
268
|
+
if (atom === "bool")
|
|
269
|
+
unions.push({
|
|
270
|
+
type: "bool",
|
|
271
|
+
is: () =>
|
|
272
|
+
ts.factory.createStrictEquality(
|
|
273
|
+
ts.factory.createStringLiteral("boolean"),
|
|
274
|
+
ts.factory.createTypeOfExpression(input),
|
|
275
|
+
),
|
|
276
|
+
value: (index) => decode_bool(index)(input),
|
|
277
|
+
});
|
|
278
|
+
else if (
|
|
279
|
+
atom === "int32" ||
|
|
280
|
+
atom === "uint32" ||
|
|
281
|
+
atom === "float" ||
|
|
282
|
+
atom === "double"
|
|
283
|
+
)
|
|
284
|
+
unions.push(decode_number(project)(numbers)(atom)(input));
|
|
285
|
+
else if (atom === "int64" || atom === "uint64")
|
|
286
|
+
if (numbers.some((n) => n === atom))
|
|
287
|
+
unions.push(
|
|
288
|
+
decode_number(project)(numbers)(atom)(input),
|
|
289
|
+
);
|
|
290
|
+
else
|
|
291
|
+
unions.push(
|
|
292
|
+
decode_bigint(project)(bigints)(atom)(input),
|
|
293
|
+
);
|
|
294
|
+
else if (atom === "string")
|
|
295
|
+
unions.push({
|
|
296
|
+
type: "string",
|
|
297
|
+
is: () =>
|
|
298
|
+
ts.factory.createStrictEquality(
|
|
299
|
+
ts.factory.createStringLiteral("string"),
|
|
300
|
+
ts.factory.createTypeOfExpression(input),
|
|
301
|
+
),
|
|
302
|
+
value: (index) => decode_bytes("string")(index!)(input),
|
|
303
|
+
});
|
|
278
304
|
|
|
279
305
|
// CONSIDER BYTES
|
|
280
306
|
if (meta.natives.length)
|
|
@@ -298,7 +324,6 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
298
324
|
...explore,
|
|
299
325
|
from: "array",
|
|
300
326
|
},
|
|
301
|
-
tags,
|
|
302
327
|
),
|
|
303
328
|
});
|
|
304
329
|
|
|
@@ -315,7 +340,6 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
315
340
|
...explore,
|
|
316
341
|
from: "array",
|
|
317
342
|
},
|
|
318
|
-
tags,
|
|
319
343
|
),
|
|
320
344
|
});
|
|
321
345
|
|
|
@@ -336,7 +360,6 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
336
360
|
...explore,
|
|
337
361
|
from: "object",
|
|
338
362
|
},
|
|
339
|
-
tags,
|
|
340
363
|
),
|
|
341
364
|
});
|
|
342
365
|
|
|
@@ -388,7 +411,6 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
388
411
|
input: ts.Expression,
|
|
389
412
|
map: Metadata.Entry,
|
|
390
413
|
explore: FeatureProgrammer.IExplore,
|
|
391
|
-
tags: IMetadataCommentTag[],
|
|
392
414
|
): ts.Block => {
|
|
393
415
|
const each: ts.Statement[] = [
|
|
394
416
|
ts.factory.createExpressionStatement(
|
|
@@ -405,13 +427,11 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
405
427
|
ts.factory.createIdentifier("key"),
|
|
406
428
|
map.key,
|
|
407
429
|
explore,
|
|
408
|
-
[],
|
|
409
430
|
).statements,
|
|
410
431
|
...decode(project)(importer)(2)(
|
|
411
432
|
ts.factory.createIdentifier("value"),
|
|
412
433
|
map.value,
|
|
413
434
|
explore,
|
|
414
|
-
tags,
|
|
415
435
|
).statements,
|
|
416
436
|
ts.factory.createExpressionStatement(
|
|
417
437
|
ts.factory.createCallExpression(
|
|
@@ -442,7 +462,6 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
442
462
|
input: ts.Expression,
|
|
443
463
|
object: MetadataObject,
|
|
444
464
|
explore: FeatureProgrammer.IExplore,
|
|
445
|
-
tags: IMetadataCommentTag[],
|
|
446
465
|
): ts.Block => {
|
|
447
466
|
const top: MetadataProperty = object.properties[0]!;
|
|
448
467
|
if (top.key.isSoleLiteral() === false)
|
|
@@ -454,7 +473,6 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
454
473
|
),
|
|
455
474
|
top,
|
|
456
475
|
explore,
|
|
457
|
-
tags,
|
|
458
476
|
);
|
|
459
477
|
return ts.factory.createBlock(
|
|
460
478
|
[
|
|
@@ -502,9 +520,8 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
502
520
|
input: ts.Expression,
|
|
503
521
|
array: MetadataArray,
|
|
504
522
|
explore: FeatureProgrammer.IExplore,
|
|
505
|
-
tags: IMetadataCommentTag[],
|
|
506
523
|
): ts.Block => {
|
|
507
|
-
const wire = get_standalone_wire(array.type.value
|
|
524
|
+
const wire = get_standalone_wire(array.type.value);
|
|
508
525
|
const forLoop = (index: number | null) =>
|
|
509
526
|
ts.factory.createForOfStatement(
|
|
510
527
|
undefined,
|
|
@@ -517,7 +534,6 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
517
534
|
ts.factory.createIdentifier("elem"),
|
|
518
535
|
array.type.value,
|
|
519
536
|
explore,
|
|
520
|
-
tags,
|
|
521
537
|
),
|
|
522
538
|
);
|
|
523
539
|
const length = (block: ts.Block) =>
|
|
@@ -563,56 +579,94 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
563
579
|
);
|
|
564
580
|
};
|
|
565
581
|
|
|
566
|
-
const
|
|
567
|
-
(
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
582
|
+
const decode_bool = (index: number | null) => (input: ts.Expression) =>
|
|
583
|
+
ts.factory.createBlock(
|
|
584
|
+
[
|
|
585
|
+
...(index !== null
|
|
586
|
+
? [decode_tag(ProtobufWire.VARIANT)(index)]
|
|
587
|
+
: []),
|
|
588
|
+
ts.factory.createCallExpression(
|
|
589
|
+
IdentifierFactory.access(WRITER())("bool"),
|
|
590
|
+
undefined,
|
|
591
|
+
[input],
|
|
592
|
+
),
|
|
593
|
+
].map((exp) => ts.factory.createExpressionStatement(exp)),
|
|
594
|
+
true,
|
|
595
|
+
);
|
|
596
|
+
|
|
597
|
+
const decode_number =
|
|
598
|
+
(project: IProject) =>
|
|
599
|
+
(candidates: ProtobufAtomic.Numeric[]) =>
|
|
600
|
+
(type: ProtobufAtomic.Numeric) =>
|
|
601
|
+
(input: ts.Expression): IUnion => ({
|
|
602
|
+
type,
|
|
603
|
+
is: () =>
|
|
604
|
+
candidates.length === 1
|
|
605
|
+
? ts.factory.createStrictEquality(
|
|
606
|
+
ts.factory.createStringLiteral("number"),
|
|
607
|
+
ts.factory.createTypeOfExpression(input),
|
|
608
|
+
)
|
|
609
|
+
: ts.factory.createLogicalAnd(
|
|
610
|
+
ts.factory.createStrictEquality(
|
|
611
|
+
ts.factory.createStringLiteral("number"),
|
|
612
|
+
ts.factory.createTypeOfExpression(input),
|
|
613
|
+
),
|
|
614
|
+
NumericRangeFactory.number(project.context)(type)(
|
|
615
|
+
input,
|
|
616
|
+
),
|
|
617
|
+
),
|
|
618
|
+
value: (index) =>
|
|
619
|
+
ts.factory.createBlock(
|
|
620
|
+
[
|
|
621
|
+
...(index !== null
|
|
622
|
+
? [decode_tag(get_numeric_wire(type))(index)]
|
|
623
|
+
: []),
|
|
624
|
+
ts.factory.createCallExpression(
|
|
625
|
+
IdentifierFactory.access(WRITER())(type),
|
|
626
|
+
undefined,
|
|
627
|
+
[input],
|
|
591
628
|
),
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
:
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
629
|
+
].map((exp) => ts.factory.createExpressionStatement(exp)),
|
|
630
|
+
true,
|
|
631
|
+
),
|
|
632
|
+
});
|
|
633
|
+
|
|
634
|
+
const decode_bigint =
|
|
635
|
+
(project: IProject) =>
|
|
636
|
+
(candidates: ProtobufAtomic.BigNumeric[]) =>
|
|
637
|
+
(type: ProtobufAtomic.BigNumeric) =>
|
|
638
|
+
(input: ts.Expression): IUnion => ({
|
|
639
|
+
type,
|
|
640
|
+
is: () =>
|
|
641
|
+
candidates.length === 1
|
|
642
|
+
? ts.factory.createStrictEquality(
|
|
643
|
+
ts.factory.createStringLiteral("bigint"),
|
|
644
|
+
ts.factory.createTypeOfExpression(input),
|
|
645
|
+
)
|
|
646
|
+
: ts.factory.createLogicalAnd(
|
|
647
|
+
ts.factory.createStrictEquality(
|
|
648
|
+
ts.factory.createStringLiteral("bigint"),
|
|
649
|
+
ts.factory.createTypeOfExpression(input),
|
|
650
|
+
),
|
|
651
|
+
NumericRangeFactory.bigint(project.context)(type)(
|
|
652
|
+
input,
|
|
653
|
+
),
|
|
654
|
+
),
|
|
655
|
+
value: (index) =>
|
|
656
|
+
ts.factory.createBlock(
|
|
657
|
+
[
|
|
658
|
+
...(index !== null
|
|
659
|
+
? [decode_tag(ProtobufWire.VARIANT)(index)]
|
|
660
|
+
: []),
|
|
661
|
+
ts.factory.createCallExpression(
|
|
662
|
+
IdentifierFactory.access(WRITER())(type),
|
|
663
|
+
undefined,
|
|
664
|
+
[input],
|
|
665
|
+
),
|
|
666
|
+
].map((exp) => ts.factory.createExpressionStatement(exp)),
|
|
667
|
+
true,
|
|
668
|
+
),
|
|
669
|
+
});
|
|
616
670
|
|
|
617
671
|
const decode_bytes =
|
|
618
672
|
(method: "bytes" | "string") =>
|
|
@@ -639,10 +693,7 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
639
693
|
[ts.factory.createNumericLiteral((index << 3) | wire)],
|
|
640
694
|
);
|
|
641
695
|
|
|
642
|
-
const get_standalone_wire = (
|
|
643
|
-
meta: Metadata,
|
|
644
|
-
tags: IMetadataCommentTag[],
|
|
645
|
-
): ProtobufWire => {
|
|
696
|
+
const get_standalone_wire = (meta: Metadata): ProtobufWire => {
|
|
646
697
|
if (
|
|
647
698
|
meta.arrays.length ||
|
|
648
699
|
meta.objects.length ||
|
|
@@ -653,16 +704,25 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
653
704
|
|
|
654
705
|
const v = ProtobufUtil.getAtomics(meta)[0]!;
|
|
655
706
|
if (v === "string") return ProtobufWire.LEN;
|
|
656
|
-
else if (
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
707
|
+
else if (
|
|
708
|
+
v === "bool" ||
|
|
709
|
+
v === "int32" ||
|
|
710
|
+
v === "uint32" ||
|
|
711
|
+
v === "int64" ||
|
|
712
|
+
v === "uint64"
|
|
713
|
+
)
|
|
714
|
+
return ProtobufWire.VARIANT;
|
|
715
|
+
else if (v === "float") return ProtobufWire.I32;
|
|
716
|
+
return ProtobufWire.I64;
|
|
664
717
|
};
|
|
665
718
|
|
|
719
|
+
const get_numeric_wire = (type: ProtobufAtomic.Numeric) =>
|
|
720
|
+
type === "double"
|
|
721
|
+
? ProtobufWire.I64
|
|
722
|
+
: type === "float"
|
|
723
|
+
? ProtobufWire.I32
|
|
724
|
+
: ProtobufWire.VARIANT;
|
|
725
|
+
|
|
666
726
|
/* -----------------------------------------------------------
|
|
667
727
|
EXPLORERS
|
|
668
728
|
----------------------------------------------------------- */
|
|
@@ -675,13 +735,12 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
675
735
|
input: ts.Expression,
|
|
676
736
|
targets: MetadataObject[],
|
|
677
737
|
explore: FeatureProgrammer.IExplore,
|
|
678
|
-
tags: IMetadataCommentTag[],
|
|
679
738
|
indexes?: Map<MetadataObject, number>,
|
|
680
739
|
): ts.Block => {
|
|
681
740
|
if (targets.length === 1)
|
|
682
741
|
return decode_object(project)(importer)(
|
|
683
742
|
indexes ? indexes.get(targets[0]!)! : index,
|
|
684
|
-
)(input, targets[0]!, explore
|
|
743
|
+
)(input, targets[0]!, explore);
|
|
685
744
|
|
|
686
745
|
const expected: string = `(${targets
|
|
687
746
|
.map((t) => t.name)
|
|
@@ -700,7 +759,6 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
700
759
|
i,
|
|
701
760
|
o,
|
|
702
761
|
e,
|
|
703
|
-
tags,
|
|
704
762
|
),
|
|
705
763
|
),
|
|
706
764
|
)((expr) => expr)((value, expected) =>
|
|
@@ -728,8 +786,6 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
728
786
|
tracable: false,
|
|
729
787
|
postfix: IdentifierFactory.postfix(key),
|
|
730
788
|
},
|
|
731
|
-
tags,
|
|
732
|
-
[],
|
|
733
789
|
)
|
|
734
790
|
: ExpressionFactory.isRequired(accessor);
|
|
735
791
|
return ts.factory.createIfStatement(
|
|
@@ -738,7 +794,7 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
738
794
|
ExpressionFactory.selfCall(
|
|
739
795
|
decode_object(project)(importer)(
|
|
740
796
|
indexes!.get(spec.object)!,
|
|
741
|
-
)(input, spec.object, explore
|
|
797
|
+
)(input, spec.object, explore),
|
|
742
798
|
),
|
|
743
799
|
),
|
|
744
800
|
i === array.length - 1
|
|
@@ -751,8 +807,7 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
751
807
|
input,
|
|
752
808
|
remained,
|
|
753
809
|
explore,
|
|
754
|
-
|
|
755
|
-
indexes,
|
|
810
|
+
indexes!,
|
|
756
811
|
),
|
|
757
812
|
),
|
|
758
813
|
)
|
|
@@ -3,14 +3,11 @@ import ts from "typescript";
|
|
|
3
3
|
import { MetadataCollection } from "../../factories/MetadataCollection";
|
|
4
4
|
import { ProtobufFactory } from "../../factories/ProtobufFactory";
|
|
5
5
|
|
|
6
|
-
import { IMetadataCommentTag } from "../../schemas/metadata/IMetadataCommentTag";
|
|
7
6
|
import { Metadata } from "../../schemas/metadata/Metadata";
|
|
8
7
|
import { MetadataObject } from "../../schemas/metadata/MetadataObject";
|
|
9
8
|
|
|
10
9
|
import { IProject } from "../../transformers/IProject";
|
|
11
10
|
|
|
12
|
-
import { Atomic } from "../../typings/Atomic";
|
|
13
|
-
|
|
14
11
|
import { MapUtil } from "../../utils/MapUtil";
|
|
15
12
|
import { NameEncoder } from "../../utils/NameEncoder";
|
|
16
13
|
|
|
@@ -85,7 +82,7 @@ export namespace ProtobufMessageProgrammer {
|
|
|
85
82
|
return obj.properties
|
|
86
83
|
.map((prop) => {
|
|
87
84
|
const key: string = prop.key.getSoleLiteral()!;
|
|
88
|
-
const type: string = decode(ptr)(prop.
|
|
85
|
+
const type: string = decode(ptr)(prop.value);
|
|
89
86
|
return type.indexOf("${name}") !== -1
|
|
90
87
|
? type.replace("${name}", key)
|
|
91
88
|
: `${
|
|
@@ -104,22 +101,20 @@ export namespace ProtobufMessageProgrammer {
|
|
|
104
101
|
----------------------------------------------------------- */
|
|
105
102
|
const decode =
|
|
106
103
|
(ptr: IPointer<number>) =>
|
|
107
|
-
(tags: IMetadataCommentTag[]) =>
|
|
108
104
|
(meta: Metadata): string => {
|
|
109
105
|
const elements: Set<string> = new Set();
|
|
110
106
|
if (meta.natives.length) elements.add("bytes");
|
|
111
107
|
for (const atomic of ProtobufUtil.getAtomics(meta))
|
|
112
|
-
elements.add(
|
|
108
|
+
elements.add(atomic);
|
|
113
109
|
for (const array of meta.arrays)
|
|
114
|
-
elements.add(`repeated ${decode(ptr)(
|
|
110
|
+
elements.add(`repeated ${decode(ptr)(array.type.value)}`);
|
|
115
111
|
for (const obj of meta.objects)
|
|
116
112
|
elements.add(
|
|
117
113
|
is_dynamic_object(obj)
|
|
118
|
-
? decode_map(ptr)(
|
|
114
|
+
? decode_map(ptr)(obj.properties[0]!)
|
|
119
115
|
: NameEncoder.encode(obj.name),
|
|
120
116
|
);
|
|
121
|
-
for (const map of meta.maps)
|
|
122
|
-
elements.add(decode_map(ptr)(tags)(map));
|
|
117
|
+
for (const map of meta.maps) elements.add(decode_map(ptr)(map));
|
|
123
118
|
return elements.size === 1
|
|
124
119
|
? [...elements][0]!
|
|
125
120
|
: [
|
|
@@ -134,35 +129,10 @@ export namespace ProtobufMessageProgrammer {
|
|
|
134
129
|
].join("\n");
|
|
135
130
|
};
|
|
136
131
|
|
|
137
|
-
const decode_atomic =
|
|
138
|
-
(tags: IMetadataCommentTag[]) =>
|
|
139
|
-
(literal: Atomic.Literal): string => {
|
|
140
|
-
if (literal === "boolean") return "bool";
|
|
141
|
-
else if (literal === "bigint")
|
|
142
|
-
return tags.find(
|
|
143
|
-
(t) => t.kind === "type" && t.value === "uint64",
|
|
144
|
-
)
|
|
145
|
-
? "uint64"
|
|
146
|
-
: "int64";
|
|
147
|
-
else if (literal === "number") {
|
|
148
|
-
const type = tags.find((t) => t.kind === "type") as
|
|
149
|
-
| IMetadataCommentTag.INumberType
|
|
150
|
-
| undefined;
|
|
151
|
-
if (type?.value === undefined) return "double";
|
|
152
|
-
else if (type.value === "int") return "int32";
|
|
153
|
-
else if (type.value === "uint") return "uint32";
|
|
154
|
-
else return type.value;
|
|
155
|
-
}
|
|
156
|
-
return literal;
|
|
157
|
-
};
|
|
158
|
-
|
|
159
132
|
const decode_map =
|
|
160
133
|
(ptr: IPointer<number>) =>
|
|
161
|
-
(tags: IMetadataCommentTag[]) =>
|
|
162
134
|
(prop: Metadata.Entry): string =>
|
|
163
|
-
`map<${decode(ptr)(
|
|
164
|
-
prop.value,
|
|
165
|
-
)}>`;
|
|
135
|
+
`map<${decode(ptr)(prop.key)}, ${decode(ptr)(prop.value)}>`;
|
|
166
136
|
}
|
|
167
137
|
|
|
168
138
|
interface Hierarchy {
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { IJsDocTagInfo } from "../metadata/IJsDocTagInfo";
|
|
2
|
-
import { IMetadataCommentTag } from "../metadata/IMetadataCommentTag";
|
|
3
2
|
|
|
4
3
|
import { Atomic } from "../../typings/Atomic";
|
|
5
4
|
|
|
5
|
+
import { Type } from "../../tags/Type";
|
|
6
|
+
|
|
6
7
|
export type IJsonSchema = IJsonSchema.Known | IJsonSchema.IUnknown;
|
|
7
8
|
export namespace IJsonSchema {
|
|
8
9
|
export type Known =
|
|
@@ -36,14 +37,8 @@ export namespace IJsonSchema {
|
|
|
36
37
|
default?: Atomic.Mapper[Literal];
|
|
37
38
|
}
|
|
38
39
|
export interface IString extends IAtomic<"string"> {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
*/
|
|
42
|
-
minLength?: number;
|
|
43
|
-
/**
|
|
44
|
-
* @type uint
|
|
45
|
-
*/
|
|
46
|
-
maxLength?: number;
|
|
40
|
+
minLength?: number & Type<"uint32">;
|
|
41
|
+
maxLength?: number & Type<"uint32">;
|
|
47
42
|
pattern?: string;
|
|
48
43
|
format?: string;
|
|
49
44
|
}
|
|
@@ -55,20 +50,11 @@ export namespace IJsonSchema {
|
|
|
55
50
|
multipleOf?: number;
|
|
56
51
|
}
|
|
57
52
|
export interface IInteger extends IAtomic<"integer"> {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
*/
|
|
61
|
-
minimum?: number;
|
|
62
|
-
/**
|
|
63
|
-
* @type int
|
|
64
|
-
*/
|
|
65
|
-
maximum?: number;
|
|
53
|
+
minimum?: number & Type<"int32">;
|
|
54
|
+
maximum?: number & Type<"int32">;
|
|
66
55
|
exclusiveMinimum?: boolean;
|
|
67
56
|
exclusiveMaximum?: boolean;
|
|
68
|
-
|
|
69
|
-
* @type int
|
|
70
|
-
*/
|
|
71
|
-
multipleOf?: number;
|
|
57
|
+
multipleOf?: number & Type<"int32">;
|
|
72
58
|
}
|
|
73
59
|
export interface IBoolean extends IAtomic<"boolean"> {}
|
|
74
60
|
|
|
@@ -77,26 +63,14 @@ export namespace IJsonSchema {
|
|
|
77
63
|
----------------------------------------------------------- */
|
|
78
64
|
export interface IArray extends ISignificant<"array"> {
|
|
79
65
|
items: IJsonSchema;
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
*/
|
|
83
|
-
minItems?: number;
|
|
84
|
-
/**
|
|
85
|
-
* @type uint
|
|
86
|
-
*/
|
|
87
|
-
maxItems?: number;
|
|
66
|
+
minItems?: number & Type<"uint32">;
|
|
67
|
+
maxItems?: number & Type<"uint32">;
|
|
88
68
|
"x-typia-tuple"?: ITuple;
|
|
89
69
|
}
|
|
90
70
|
export interface ITuple extends ISignificant<"array"> {
|
|
91
71
|
items: IJsonSchema[];
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
*/
|
|
95
|
-
minItems: number;
|
|
96
|
-
/**
|
|
97
|
-
* @type uint
|
|
98
|
-
*/
|
|
99
|
-
maxItems?: number;
|
|
72
|
+
minItems: number & Type<"uint32">;
|
|
73
|
+
maxItems?: number & Type<"uint32">;
|
|
100
74
|
}
|
|
101
75
|
export interface IReference extends IAttribute {
|
|
102
76
|
$ref: string;
|
|
@@ -124,7 +98,6 @@ export namespace IJsonSchema {
|
|
|
124
98
|
deprecated?: boolean;
|
|
125
99
|
title?: string;
|
|
126
100
|
description?: string;
|
|
127
|
-
"x-typia-metaTags"?: IMetadataCommentTag[];
|
|
128
101
|
"x-typia-jsDocTags"?: IJsDocTagInfo[];
|
|
129
102
|
"x-typia-required"?: boolean;
|
|
130
103
|
"x-typia-optional"?: boolean;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { IJsDocTagInfo } from "./IJsDocTagInfo";
|
|
2
2
|
import { IMetadata } from "./IMetadata";
|
|
3
|
-
import { IMetadataCommentTag } from "./IMetadataCommentTag";
|
|
4
3
|
|
|
5
4
|
export interface IMetadataAlias {
|
|
6
5
|
name: string;
|
|
@@ -8,7 +7,6 @@ export interface IMetadataAlias {
|
|
|
8
7
|
nullables: boolean[];
|
|
9
8
|
|
|
10
9
|
description: string | null;
|
|
11
|
-
tags: IMetadataCommentTag[];
|
|
12
10
|
jsDocTags: IJsDocTagInfo[];
|
|
13
11
|
recursive: boolean;
|
|
14
12
|
}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import { IJsDocTagInfo } from "./IJsDocTagInfo";
|
|
2
2
|
import { IMetadata } from "./IMetadata";
|
|
3
|
-
import { IMetadataCommentTag } from "./IMetadataCommentTag";
|
|
4
3
|
|
|
5
4
|
export interface IMetadataProperty {
|
|
6
5
|
key: IMetadata;
|
|
7
6
|
value: IMetadata;
|
|
8
7
|
description: string | null;
|
|
9
|
-
tags: IMetadataCommentTag[];
|
|
10
8
|
jsDocTags: IJsDocTagInfo[];
|
|
11
9
|
}
|