typia 5.0.0-dev.20230823-2 → 5.0.0-dev.20230827
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/factories/ExpressionFactory.d.ts +3 -1
- package/lib/factories/ExpressionFactory.js +25 -1
- package/lib/factories/ExpressionFactory.js.map +1 -1
- package/lib/factories/IdentifierFactory.d.ts +2 -1
- package/lib/factories/IdentifierFactory.js +11 -0
- package/lib/factories/IdentifierFactory.js.map +1 -1
- package/lib/factories/LiteralFactory.js +6 -2
- package/lib/factories/LiteralFactory.js.map +1 -1
- package/lib/factories/MetadataCollection.d.ts +7 -7
- package/lib/factories/MetadataCollection.js +4 -5
- package/lib/factories/MetadataCollection.js.map +1 -1
- package/lib/factories/MetadataCommentTagFactory.js +532 -0
- package/lib/factories/MetadataCommentTagFactory.js.map +1 -0
- package/lib/factories/MetadataTypeTagFactory.d.ts +6 -0
- package/lib/factories/MetadataTypeTagFactory.js +207 -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 +48 -16
- package/lib/factories/ProtobufFactory.js.map +1 -1
- package/lib/factories/internal/metadata/emend_metadata_atomics.js +12 -6
- package/lib/factories/internal/metadata/emend_metadata_atomics.js.map +1 -1
- package/lib/factories/internal/metadata/emplace_metadata_alias.js +1 -13
- package/lib/factories/internal/metadata/emplace_metadata_alias.js.map +1 -1
- package/lib/factories/internal/metadata/emplace_metadata_array_type.d.ts +5 -0
- package/lib/factories/internal/metadata/{emplace_metadata_array.js → emplace_metadata_array_type.js} +4 -4
- package/lib/factories/internal/metadata/emplace_metadata_array_type.js.map +1 -0
- package/lib/factories/internal/metadata/emplace_metadata_object.js +0 -1
- package/lib/factories/internal/metadata/emplace_metadata_object.js.map +1 -1
- package/lib/factories/internal/metadata/emplace_metadata_tuple.d.ts +2 -2
- package/lib/factories/internal/metadata/iterate_metadata_array.js +7 -3
- 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.js +20 -12
- package/lib/factories/internal/metadata/iterate_metadata_collection.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_comment_tags.d.ts +2 -0
- package/lib/factories/internal/metadata/{iterate_metadata_tag.js → iterate_metadata_comment_tags.js} +7 -8
- package/lib/factories/internal/metadata/iterate_metadata_comment_tags.js.map +1 -0
- package/lib/factories/internal/metadata/iterate_metadata_intersection.js +140 -16
- package/lib/factories/internal/metadata/iterate_metadata_intersection.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_object.js +0 -7
- package/lib/factories/internal/metadata/iterate_metadata_object.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/factories/internal/metadata/iterate_metadata_tuple.js +6 -2
- package/lib/factories/internal/metadata/iterate_metadata_tuple.js.map +1 -1
- package/lib/functional/$any.js +2 -1
- package/lib/functional/$any.js.map +1 -1
- package/lib/functional/$clone.d.ts +2 -0
- package/lib/functional/$clone.js +8 -0
- package/lib/functional/$clone.js.map +1 -0
- package/lib/functional/Namespace.js +0 -16
- package/lib/functional/Namespace.js.map +1 -1
- package/lib/module.d.ts +2 -39
- package/lib/module.js +3 -17
- package/lib/module.js.map +1 -1
- package/lib/programmers/AssertProgrammer.js +28 -10
- package/lib/programmers/AssertProgrammer.js.map +1 -1
- package/lib/programmers/CheckerProgrammer.js +90 -68
- package/lib/programmers/CheckerProgrammer.js.map +1 -1
- package/lib/programmers/FeatureProgrammer.d.ts +2 -4
- package/lib/programmers/FeatureProgrammer.js +6 -6
- package/lib/programmers/FeatureProgrammer.js.map +1 -1
- package/lib/programmers/IsProgrammer.d.ts +1 -1
- package/lib/programmers/IsProgrammer.js +32 -21
- package/lib/programmers/IsProgrammer.js.map +1 -1
- package/lib/programmers/RandomProgrammer.js +187 -156
- package/lib/programmers/RandomProgrammer.js.map +1 -1
- package/lib/programmers/ValidateProgrammer.js +28 -10
- package/lib/programmers/ValidateProgrammer.js.map +1 -1
- package/lib/programmers/helpers/AtomicPredicator.js +2 -2
- package/lib/programmers/helpers/AtomicPredicator.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 +4 -3
- 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 +46 -35
- 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_default_string.js +2 -2
- package/lib/programmers/internal/application_default_string.js.map +1 -1
- 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_resolved.js +2 -2
- package/lib/programmers/internal/application_resolved.js.map +1 -1
- package/lib/programmers/internal/application_schema.js +39 -22
- 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/application_tuple.js +10 -9
- package/lib/programmers/internal/application_tuple.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 +20 -109
- 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 +57 -147
- package/lib/programmers/internal/check_number.js.map +1 -1
- package/lib/programmers/internal/check_string.js +21 -33
- package/lib/programmers/internal/check_string.js.map +1 -1
- package/lib/programmers/internal/check_template.js +31 -49
- package/lib/programmers/internal/check_template.js.map +1 -1
- package/lib/programmers/internal/check_union_array_like.js +7 -6
- 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/metadata_to_pattern.js +4 -4
- package/lib/programmers/internal/metadata_to_pattern.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/internal/stringify_dynamic_properties.js +2 -1
- package/lib/programmers/internal/stringify_dynamic_properties.js.map +1 -1
- package/lib/programmers/internal/wrap_metadata_rest_tuple.js +9 -5
- package/lib/programmers/internal/wrap_metadata_rest_tuple.js.map +1 -1
- package/lib/programmers/json/JsonStringifyProgrammer.js +43 -32
- package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscCloneProgrammer.js +21 -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 +2 -2
- package/lib/programmers/misc/MiscLiteralsProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscPruneProgrammer.js +21 -17
- package/lib/programmers/misc/MiscPruneProgrammer.js.map +1 -1
- package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js +29 -49
- 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/IMetadata.d.ts +11 -4
- package/lib/schemas/metadata/IMetadataAlias.d.ts +0 -2
- package/lib/schemas/metadata/IMetadataArray.d.ts +4 -6
- package/lib/schemas/metadata/IMetadataArrayType.d.ts +8 -0
- package/lib/{CustomValidatorMap.js → schemas/metadata/IMetadataArrayType.js} +1 -1
- package/lib/schemas/metadata/IMetadataArrayType.js.map +1 -0
- package/lib/schemas/metadata/IMetadataAtomic.d.ts +5 -0
- package/lib/schemas/metadata/IMetadataAtomic.js +3 -0
- package/lib/schemas/metadata/IMetadataAtomic.js.map +1 -0
- package/lib/schemas/metadata/IMetadataCollection.d.ts +4 -4
- package/lib/schemas/metadata/IMetadataProperty.d.ts +0 -2
- package/lib/schemas/metadata/IMetadataTuple.d.ts +4 -6
- package/lib/schemas/metadata/IMetadataTupleType.d.ts +8 -0
- package/lib/schemas/metadata/IMetadataTupleType.js +3 -0
- package/lib/schemas/metadata/IMetadataTupleType.js.map +1 -0
- package/lib/schemas/metadata/IMetadataTypeTag.d.ts +8 -0
- package/lib/schemas/metadata/IMetadataTypeTag.js +3 -0
- package/lib/schemas/metadata/IMetadataTypeTag.js.map +1 -0
- package/lib/schemas/metadata/Metadata.d.ts +2 -2
- package/lib/schemas/metadata/Metadata.js +219 -159
- 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 +8 -6
- package/lib/schemas/metadata/MetadataArray.js +48 -19
- package/lib/schemas/metadata/MetadataArray.js.map +1 -1
- package/lib/schemas/metadata/MetadataArrayType.d.ts +14 -0
- package/lib/schemas/metadata/MetadataArrayType.js +36 -0
- package/lib/schemas/metadata/MetadataArrayType.js.map +1 -0
- 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 +8 -8
- package/lib/schemas/metadata/MetadataTuple.js +4 -19
- package/lib/schemas/metadata/MetadataTuple.js.map +1 -1
- package/lib/schemas/metadata/MetadataTupleType.d.ts +13 -0
- package/lib/schemas/metadata/MetadataTupleType.js +40 -0
- package/lib/schemas/metadata/MetadataTupleType.js.map +1 -0
- package/lib/tags/ExclusiveMaximum.d.ts +10 -0
- package/lib/tags/ExclusiveMaximum.js +3 -0
- package/lib/tags/ExclusiveMaximum.js.map +1 -0
- package/lib/tags/ExclusiveMinimum.d.ts +10 -0
- package/lib/tags/ExclusiveMinimum.js +3 -0
- package/lib/tags/ExclusiveMinimum.js.map +1 -0
- package/lib/tags/Format.d.ts +8 -0
- package/lib/{schemas/metadata/ICommentTag.js → tags/Format.js} +1 -1
- package/lib/tags/Format.js.map +1 -0
- package/lib/tags/MaxItems.d.ts +8 -0
- package/lib/{schemas/metadata/IMetadataTag.js → tags/MaxItems.js} +1 -1
- package/lib/tags/MaxItems.js.map +1 -0
- package/lib/tags/MaxLength.d.ts +8 -0
- package/lib/tags/MaxLength.js +3 -0
- package/lib/tags/MaxLength.js.map +1 -0
- package/lib/tags/Maximum.d.ts +10 -0
- package/lib/tags/Maximum.js +3 -0
- package/lib/tags/Maximum.js.map +1 -0
- package/lib/tags/MinItems.d.ts +8 -0
- package/lib/tags/MinItems.js +3 -0
- package/lib/tags/MinItems.js.map +1 -0
- package/lib/tags/MinLength.d.ts +8 -0
- package/lib/tags/MinLength.js +3 -0
- package/lib/tags/MinLength.js.map +1 -0
- package/lib/tags/Minimum.d.ts +10 -0
- package/lib/tags/Minimum.js +3 -0
- package/lib/tags/Minimum.js.map +1 -0
- package/lib/tags/MultipleOf.d.ts +10 -0
- package/lib/tags/MultipleOf.js +3 -0
- package/lib/tags/MultipleOf.js.map +1 -0
- package/lib/tags/Pattern.d.ts +7 -0
- package/lib/tags/Pattern.js +3 -0
- package/lib/tags/Pattern.js.map +1 -0
- package/lib/tags/TagBase.d.ts +14 -0
- package/lib/tags/TagBase.js +3 -0
- package/lib/tags/TagBase.js.map +1 -0
- package/lib/tags/Type.d.ts +14 -0
- package/lib/tags/Type.js +3 -0
- package/lib/tags/Type.js.map +1 -0
- package/lib/tags/index.d.ts +13 -0
- package/lib/tags/index.js +30 -0
- package/lib/tags/index.js.map +1 -0
- package/lib/transformers/FileTransformer.d.ts +1 -1
- package/lib/transformers/FileTransformer.js +15 -2
- package/lib/transformers/FileTransformer.js.map +1 -1
- package/lib/transformers/IProject.d.ts +1 -0
- package/lib/transformers/features/json/JsonApplicationTransformer.js +4 -2
- package/lib/transformers/features/json/JsonApplicationTransformer.js.map +1 -1
- package/lib/transformers/features/misc/MiscCreateIsPruneTransformer.js +2 -2
- package/lib/transformers/features/misc/MiscCreateIsPruneTransformer.js.map +1 -1
- package/lib/transformers/features/misc/MiscIsPruneTransformer.js +2 -2
- package/lib/transformers/features/misc/MiscIsPruneTransformer.js.map +1 -1
- package/lib/typings/ProtobufAtomic.d.ts +5 -0
- package/lib/typings/ProtobufAtomic.js +3 -0
- package/lib/typings/ProtobufAtomic.js.map +1 -0
- package/package.json +2 -2
- package/src/IRandomGenerator.ts +4 -3
- package/src/factories/ExpressionFactory.ts +46 -2
- package/src/factories/IdentifierFactory.ts +15 -0
- package/src/factories/LiteralFactory.ts +10 -3
- package/src/factories/MetadataCollection.ts +18 -13
- package/src/factories/MetadataCommentTagFactory.ts +583 -0
- package/src/factories/MetadataTypeTagFactory.ts +263 -0
- package/src/factories/NumericRangeFactory.ts +33 -0
- package/src/factories/ProtobufFactory.ts +34 -18
- package/src/factories/internal/metadata/emend_metadata_atomics.ts +12 -5
- package/src/factories/internal/metadata/emplace_metadata_alias.ts +0 -6
- package/src/factories/internal/metadata/{emplace_metadata_array.ts → emplace_metadata_array_type.ts} +3 -3
- package/src/factories/internal/metadata/emplace_metadata_object.ts +0 -1
- package/src/factories/internal/metadata/emplace_metadata_tuple.ts +2 -2
- package/src/factories/internal/metadata/iterate_metadata_array.ts +13 -5
- package/src/factories/internal/metadata/iterate_metadata_atomic.ts +7 -4
- package/src/factories/internal/metadata/iterate_metadata_collection.ts +23 -16
- package/src/factories/internal/metadata/{iterate_metadata_tag.ts → iterate_metadata_comment_tags.ts} +4 -8
- package/src/factories/internal/metadata/iterate_metadata_intersection.ts +113 -16
- package/src/factories/internal/metadata/iterate_metadata_object.ts +10 -10
- package/src/factories/internal/metadata/iterate_metadata_sort.ts +2 -2
- package/src/factories/internal/metadata/iterate_metadata_tuple.ts +12 -4
- package/src/functional/$any.ts +3 -1
- package/src/functional/$clone.ts +4 -0
- package/src/functional/Namespace.ts +0 -16
- package/src/module.ts +2 -55
- package/src/programmers/AssertProgrammer.ts +57 -21
- package/src/programmers/CheckerProgrammer.ts +81 -123
- package/src/programmers/FeatureProgrammer.ts +9 -31
- package/src/programmers/IsProgrammer.ts +53 -42
- package/src/programmers/RandomProgrammer.ts +242 -239
- package/src/programmers/ValidateProgrammer.ts +60 -21
- package/src/programmers/helpers/AtomicPredicator.ts +2 -2
- package/src/programmers/helpers/CloneJoiner.ts +57 -20
- package/src/programmers/helpers/ICheckEntry.ts +4 -3
- package/src/programmers/helpers/ProtobufUtil.ts +113 -17
- package/src/programmers/helpers/RandomJoiner.ts +11 -33
- package/src/programmers/helpers/RandomRanger.ts +16 -51
- package/src/programmers/helpers/UnionExplorer.ts +46 -51
- package/src/programmers/internal/application_alias.ts +0 -1
- package/src/programmers/internal/application_array.ts +33 -10
- package/src/programmers/internal/application_default_string.ts +6 -2
- package/src/programmers/internal/application_number.ts +76 -70
- package/src/programmers/internal/application_object.ts +0 -3
- package/src/programmers/internal/application_resolved.ts +2 -2
- package/src/programmers/internal/application_schema.ts +38 -20
- package/src/programmers/internal/application_string.ts +33 -27
- package/src/programmers/internal/application_tuple.ts +12 -11
- package/src/programmers/internal/check_array_length.ts +34 -28
- package/src/programmers/internal/check_bigint.ts +26 -91
- package/src/programmers/internal/check_dynamic_properties.ts +1 -2
- package/src/programmers/internal/check_number.ts +83 -236
- package/src/programmers/internal/check_string.ts +37 -17
- package/src/programmers/internal/check_template.ts +17 -12
- package/src/programmers/internal/check_union_array_like.ts +4 -18
- package/src/programmers/internal/feature_object_entries.ts +12 -18
- package/src/programmers/internal/metadata_to_pattern.ts +4 -4
- package/src/programmers/internal/random_custom.ts +3 -3
- package/src/programmers/internal/stringify_dynamic_properties.ts +1 -1
- package/src/programmers/internal/wrap_metadata_rest_tuple.ts +9 -5
- package/src/programmers/json/JsonStringifyProgrammer.ts +46 -41
- package/src/programmers/misc/MiscCloneProgrammer.ts +23 -27
- package/src/programmers/{IsPruneProgrammer.ts → misc/MiscIsPruneProgrammer.ts} +7 -7
- package/src/programmers/misc/MiscLiteralsProgrammer.ts +2 -2
- package/src/programmers/misc/MiscPruneProgrammer.ts +24 -24
- package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +40 -74
- package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +154 -99
- package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +6 -36
- package/src/schemas/json/IJsonSchema.ts +11 -38
- package/src/schemas/metadata/IMetadata.ts +11 -5
- package/src/schemas/metadata/IMetadataAlias.ts +0 -2
- package/src/schemas/metadata/IMetadataArray.ts +4 -7
- package/src/schemas/metadata/IMetadataArrayType.ts +10 -0
- package/src/schemas/metadata/IMetadataAtomic.ts +6 -0
- package/src/schemas/metadata/IMetadataCollection.ts +4 -4
- package/src/schemas/metadata/IMetadataDictionary.ts +4 -4
- package/src/schemas/metadata/IMetadataProperty.ts +0 -2
- package/src/schemas/metadata/IMetadataTuple.ts +4 -7
- package/src/schemas/metadata/IMetadataTupleType.ts +10 -0
- package/src/schemas/metadata/IMetadataTypeTag.ts +8 -0
- package/src/schemas/metadata/Metadata.ts +121 -70
- package/src/schemas/metadata/MetadataAlias.ts +0 -5
- package/src/schemas/metadata/MetadataArray.ts +28 -34
- package/src/schemas/metadata/MetadataArrayType.ts +57 -0
- package/src/schemas/metadata/MetadataAtomic.ts +42 -0
- package/src/schemas/metadata/MetadataProperty.ts +0 -5
- package/src/schemas/metadata/MetadataTuple.ts +9 -35
- package/src/schemas/metadata/MetadataTupleType.ts +67 -0
- package/src/tags/ExclusiveMaximum.ts +13 -0
- package/src/tags/ExclusiveMinimum.ts +13 -0
- package/src/tags/Format.ts +30 -0
- package/src/tags/MaxItems.ts +9 -0
- package/src/tags/MaxLength.ts +9 -0
- package/src/tags/Maximum.ts +13 -0
- package/src/tags/MinItems.ts +9 -0
- package/src/tags/MinLength.ts +9 -0
- package/src/tags/Minimum.ts +13 -0
- package/src/tags/MultipleOf.ts +15 -0
- package/src/tags/Pattern.ts +8 -0
- package/src/tags/TagBase.ts +22 -0
- package/src/tags/Type.ts +27 -0
- package/src/tags/index.ts +13 -0
- package/src/transformers/FileTransformer.ts +6 -6
- package/src/transformers/IProject.ts +1 -0
- package/src/transformers/features/json/JsonApplicationTransformer.ts +3 -2
- package/src/transformers/features/misc/MiscCreateIsPruneTransformer.ts +2 -2
- package/src/transformers/features/misc/MiscIsPruneTransformer.ts +2 -2
- package/src/typings/Atomic.ts +1 -0
- package/src/typings/ProtobufAtomic.ts +19 -0
- package/lib/CustomValidatorMap.d.ts +0 -110
- package/lib/CustomValidatorMap.js.map +0 -1
- package/lib/factories/MetadataTagFactory.d.ts +0 -6
- package/lib/factories/MetadataTagFactory.js +0 -310
- package/lib/factories/MetadataTagFactory.js.map +0 -1
- package/lib/factories/internal/metadata/emplace_metadata_array.d.ts +0 -5
- package/lib/factories/internal/metadata/emplace_metadata_array.js.map +0 -1
- package/lib/factories/internal/metadata/iterate_metadata_tag.d.ts +0 -2
- package/lib/factories/internal/metadata/iterate_metadata_tag.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/check_array.js +0 -44
- package/lib/programmers/internal/check_array.js.map +0 -1
- package/lib/programmers/internal/check_custom.d.ts +0 -1
- package/lib/programmers/internal/check_custom.js +0 -30
- package/lib/programmers/internal/check_custom.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/IMetadataTag.d.ts +0 -63
- package/lib/schemas/metadata/IMetadataTag.js.map +0 -1
- package/src/CustomValidatorMap.ts +0 -126
- package/src/factories/MetadataTagFactory.ts +0 -364
- 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.ts +0 -30
- package/src/programmers/internal/check_custom.ts +0 -31
- 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/IMetadataTag.ts +0 -112
- /package/lib/{programmers/internal/check_array.d.ts → factories/MetadataCommentTagFactory.d.ts} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Format.js","sourceRoot":"","sources":["../../src/tags/Format.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MaxItems.js","sourceRoot":"","sources":["../../src/tags/MaxItems.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MaxLength.js","sourceRoot":"","sources":["../../src/tags/MaxLength.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { TagBase } from "./TagBase";
|
|
2
|
+
export type Maximum<Value extends number | bigint> = TagBase<{
|
|
3
|
+
target: Value extends number ? "number" : "bigint";
|
|
4
|
+
kind: "maximum";
|
|
5
|
+
value: Value;
|
|
6
|
+
validate: `$input <= ${Numeric<Value>}`;
|
|
7
|
+
exclusive: ["maximum", "exclusiveMaximum"];
|
|
8
|
+
}>;
|
|
9
|
+
type Numeric<Value extends number | bigint> = Value extends number ? Value : `BigInt(${Value})`;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Maximum.js","sourceRoot":"","sources":["../../src/tags/Maximum.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MinItems.js","sourceRoot":"","sources":["../../src/tags/MinItems.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MinLength.js","sourceRoot":"","sources":["../../src/tags/MinLength.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { TagBase } from "./TagBase";
|
|
2
|
+
export type Minimum<Value extends number | bigint> = TagBase<{
|
|
3
|
+
target: Value extends number ? "number" : "bigint";
|
|
4
|
+
kind: "minimum";
|
|
5
|
+
value: Value;
|
|
6
|
+
validate: `${Numeric<Value>} <= $input`;
|
|
7
|
+
exclusive: ["minimum", "exclusiveMinimum"];
|
|
8
|
+
}>;
|
|
9
|
+
type Numeric<Value extends number | bigint> = Value extends number ? Value : `BigInt(${Value})`;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Minimum.js","sourceRoot":"","sources":["../../src/tags/Minimum.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { TagBase } from "./TagBase";
|
|
2
|
+
export type MultipleOf<Value extends number | bigint> = TagBase<{
|
|
3
|
+
target: Value extends bigint ? "bigint" : "number";
|
|
4
|
+
kind: "multipleOf";
|
|
5
|
+
value: Value;
|
|
6
|
+
validate: `$input % ${Numeric<Value>} === ${Value extends bigint ? Numeric<0n> : 0}`;
|
|
7
|
+
exclusive: true;
|
|
8
|
+
}>;
|
|
9
|
+
type Numeric<Value extends number | bigint> = Value extends number ? Value : `BigInt(${Value})`;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MultipleOf.js","sourceRoot":"","sources":["../../src/tags/MultipleOf.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Pattern.js","sourceRoot":"","sources":["../../src/tags/Pattern.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export type TagBase<Props extends TagBase.IProps<any, any, any, any, any>> = {
|
|
2
|
+
"typia.tag"?: Props;
|
|
3
|
+
};
|
|
4
|
+
export declare namespace TagBase {
|
|
5
|
+
interface IProps<Target extends "bigint" | "number" | "string" | "array", Kind extends string, Value extends boolean | bigint | number | string | undefined, Validate extends string | {
|
|
6
|
+
[key in Target]?: string;
|
|
7
|
+
}, Exclusive extends boolean | string[]> {
|
|
8
|
+
target: Target;
|
|
9
|
+
kind: Kind;
|
|
10
|
+
value: Value;
|
|
11
|
+
validate: Validate;
|
|
12
|
+
exclusive?: Exclusive | string[];
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TagBase.js","sourceRoot":"","sources":["../../src/tags/TagBase.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { TagBase } from "./TagBase";
|
|
2
|
+
export type Type<Value extends "int32" | "uint32" | "int64" | "uint64" | "float" | "double"> = TagBase<{
|
|
3
|
+
target: Value extends "int64" | "uint64" ? "bigint" | "number" : "number";
|
|
4
|
+
kind: "type";
|
|
5
|
+
value: Value;
|
|
6
|
+
validate: Value extends "int32" ? `Math.floor($input) === $input && -2147483648 <= $input && $input <= 2147483647` : Value extends "uint32" ? `Math.floor($input) === $input && 0 <= $input && $input <= 4294967295` : Value extends "int64" ? {
|
|
7
|
+
number: `Math.floor($input) === $input && -9223372036854775808 <= $input && $input <= 9223372036854775807`;
|
|
8
|
+
bigint: `true`;
|
|
9
|
+
} : Value extends "uint64" ? {
|
|
10
|
+
number: `Math.floor($input) === $input && 0 <= $input && $input <= 18446744073709551615`;
|
|
11
|
+
bigint: `BigInt(0) <= $input`;
|
|
12
|
+
} : Value extends "float" ? `-1.175494351e38 <= $input && $input <= 3.4028235e38` : `true`;
|
|
13
|
+
exclusive: true;
|
|
14
|
+
}>;
|
package/lib/tags/Type.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Type.js","sourceRoot":"","sources":["../../src/tags/Type.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export * from "./ExclusiveMaximum";
|
|
2
|
+
export * from "./ExclusiveMinimum";
|
|
3
|
+
export * from "./Format";
|
|
4
|
+
export * from "./Maximum";
|
|
5
|
+
export * from "./MaxItems";
|
|
6
|
+
export * from "./MaxLength";
|
|
7
|
+
export * from "./Minimum";
|
|
8
|
+
export * from "./MinItems";
|
|
9
|
+
export * from "./MinLength";
|
|
10
|
+
export * from "./MultipleOf";
|
|
11
|
+
export * from "./Pattern";
|
|
12
|
+
export * from "./TagBase";
|
|
13
|
+
export * from "./Type";
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./ExclusiveMaximum"), exports);
|
|
18
|
+
__exportStar(require("./ExclusiveMinimum"), exports);
|
|
19
|
+
__exportStar(require("./Format"), exports);
|
|
20
|
+
__exportStar(require("./Maximum"), exports);
|
|
21
|
+
__exportStar(require("./MaxItems"), exports);
|
|
22
|
+
__exportStar(require("./MaxLength"), exports);
|
|
23
|
+
__exportStar(require("./Minimum"), exports);
|
|
24
|
+
__exportStar(require("./MinItems"), exports);
|
|
25
|
+
__exportStar(require("./MinLength"), exports);
|
|
26
|
+
__exportStar(require("./MultipleOf"), exports);
|
|
27
|
+
__exportStar(require("./Pattern"), exports);
|
|
28
|
+
__exportStar(require("./TagBase"), exports);
|
|
29
|
+
__exportStar(require("./Type"), exports);
|
|
30
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tags/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,qDAAmC;AACnC,2CAAyB;AACzB,4CAA0B;AAC1B,6CAA2B;AAC3B,8CAA4B;AAC5B,4CAA0B;AAC1B,6CAA2B;AAC3B,8CAA4B;AAC5B,+CAA6B;AAC7B,4CAA0B;AAC1B,4CAA0B;AAC1B,yCAAuB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import ts from "typescript";
|
|
2
2
|
import { IProject } from "./IProject";
|
|
3
3
|
export declare namespace FileTransformer {
|
|
4
|
-
const transform: (project: IProject) => (context: ts.TransformationContext) => (file: ts.SourceFile) => ts.SourceFile;
|
|
4
|
+
const transform: (project: Omit<IProject, "context">) => (context: ts.TransformationContext) => (file: ts.SourceFile) => ts.SourceFile;
|
|
5
5
|
}
|
|
@@ -1,4 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
2
13
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
14
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
15
|
};
|
|
@@ -13,7 +24,7 @@ var FileTransformer;
|
|
|
13
24
|
return function (file) {
|
|
14
25
|
if (file.isDeclarationFile)
|
|
15
26
|
return file;
|
|
16
|
-
return typescript_1.default.visitEachChild(file, function (node) { return iterate_node(project)(context)(node); }, context);
|
|
27
|
+
return typescript_1.default.visitEachChild(file, function (node) { return iterate_node(__assign(__assign({}, project), { context: context }))(context)(node); }, context);
|
|
17
28
|
};
|
|
18
29
|
};
|
|
19
30
|
};
|
|
@@ -33,8 +44,10 @@ var FileTransformer;
|
|
|
33
44
|
if (!(exp instanceof Error))
|
|
34
45
|
throw exp;
|
|
35
46
|
var file = node.getSourceFile();
|
|
47
|
+
if (file === undefined)
|
|
48
|
+
throw exp;
|
|
36
49
|
var _a = file.getLineAndCharacterOfPosition(node.pos), line = _a.line, character = _a.character;
|
|
37
|
-
|
|
50
|
+
console.error("".concat(file.fileName, ":").concat(line, ":").concat(character, ":"), exp);
|
|
38
51
|
throw exp;
|
|
39
52
|
}
|
|
40
53
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileTransformer.js","sourceRoot":"","sources":["../../src/transformers/FileTransformer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FileTransformer.js","sourceRoot":"","sources":["../../src/transformers/FileTransformer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAG5B,qDAAoD;AAEpD,IAAiB,eAAe,CAyC/B;AAzCD,WAAiB,eAAe;IACf,yBAAS,GAClB,UAAC,OAAkC;QACnC,OAAA,UAAC,OAAiC;YAClC,OAAA,UAAC,IAAmB;gBAChB,IAAI,IAAI,CAAC,iBAAiB;oBAAE,OAAO,IAAI,CAAC;gBACxC,OAAO,oBAAE,CAAC,cAAc,CACpB,IAAI,EACJ,UAAC,IAAI,IAAK,OAAA,YAAY,uBAAM,OAAO,KAAE,OAAO,SAAA,IAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAApD,CAAoD,EAC9D,OAAO,CACV,CAAC;YACN,CAAC;QAPD,CAOC;IARD,CAQC,CAAC;IAEN,IAAM,YAAY,GACd,UAAC,OAAiB;QAClB,OAAA,UAAC,OAAiC;YAClC,OAAA,UAAC,IAAa;gBACV,OAAA,oBAAE,CAAC,cAAc,CACb,kBAAkB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EACjC,UAAC,KAAK,IAAK,OAAA,YAAY,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,EAArC,CAAqC,EAChD,OAAO,CACV;YAJD,CAIC;QALL,CAKK;IANL,CAMK,CAAC;IAEV,IAAM,kBAAkB,GACpB,UAAC,OAAiB;QAClB,OAAA,UAAC,IAAa;YACV,IAAI;gBACA,OAAO,iCAAe,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;aACnD;YAAC,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,CAAC,GAAG,YAAY,KAAK,CAAC;oBAAE,MAAM,GAAG,CAAC;gBAEvC,IAAM,IAAI,GAA8B,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC7D,IAAI,IAAI,KAAK,SAAS;oBAAE,MAAM,GAAG,CAAC;gBAE5B,IAAA,KAAsB,IAAI,CAAC,6BAA6B,CAC1D,IAAI,CAAC,GAAG,CACX,EAFO,IAAI,UAAA,EAAE,SAAS,eAEtB,CAAC;gBACF,OAAO,CAAC,KAAK,CAAC,UAAG,IAAI,CAAC,QAAQ,cAAI,IAAI,cAAI,SAAS,MAAG,EAAE,GAAG,CAAC,CAAC;gBAC7D,MAAM,GAAG,CAAC;aACb;QACL,CAAC;IAfD,CAeC,CAAC;AACV,CAAC,EAzCgB,eAAe,+BAAf,eAAe,QAyC/B"}
|
|
@@ -35,9 +35,11 @@ var JsonApplicationTransformer;
|
|
|
35
35
|
constant: true,
|
|
36
36
|
absorb: false,
|
|
37
37
|
validate: function (meta) {
|
|
38
|
-
if (meta.atomics.find(function (
|
|
38
|
+
if (meta.atomics.find(function (atom) { return atom.type === "bigint"; }))
|
|
39
39
|
throw new Error(NO_BIGIT);
|
|
40
|
-
else if (meta.arrays.some(function (array) {
|
|
40
|
+
else if (meta.arrays.some(function (array) {
|
|
41
|
+
return array.type.value.isRequired() === false;
|
|
42
|
+
}))
|
|
41
43
|
throw new Error(NO_UNDEFINED_IN_ARRAY);
|
|
42
44
|
},
|
|
43
45
|
})(collection)(type);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JsonApplicationTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/json/JsonApplicationTransformer.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAE5B,oEAAmE;AACnE,4EAA2E;AAC3E,sEAAqE;AAKrE,iGAAgG;AAIhG,IAAiB,0BAA0B,
|
|
1
|
+
{"version":3,"file":"JsonApplicationTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/json/JsonApplicationTransformer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MiscCreateIsPruneTransformer = void 0;
|
|
4
|
-
var
|
|
4
|
+
var MiscIsPruneProgrammer_1 = require("../../../programmers/misc/MiscIsPruneProgrammer");
|
|
5
5
|
var GenericTransformer_1 = require("../../internal/GenericTransformer");
|
|
6
6
|
var MiscCreateIsPruneTransformer;
|
|
7
7
|
(function (MiscCreateIsPruneTransformer) {
|
|
8
|
-
MiscCreateIsPruneTransformer.transform = GenericTransformer_1.GenericTransformer.factory("createIsPrune")(function (project) { return function (modulo) { return
|
|
8
|
+
MiscCreateIsPruneTransformer.transform = GenericTransformer_1.GenericTransformer.factory("createIsPrune")(function (project) { return function (modulo) { return MiscIsPruneProgrammer_1.MiscIsPruneProgrammer.write(project)(modulo); }; });
|
|
9
9
|
})(MiscCreateIsPruneTransformer || (exports.MiscCreateIsPruneTransformer = MiscCreateIsPruneTransformer = {}));
|
|
10
10
|
//# sourceMappingURL=MiscCreateIsPruneTransformer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MiscCreateIsPruneTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/misc/MiscCreateIsPruneTransformer.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"MiscCreateIsPruneTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/misc/MiscCreateIsPruneTransformer.ts"],"names":[],"mappings":";;;AAAA,yFAAwF;AAExF,wEAAuE;AAEvE,IAAiB,4BAA4B,CAI5C;AAJD,WAAiB,4BAA4B;IAC5B,sCAAS,GAAG,uCAAkB,CAAC,OAAO,CAAC,eAAe,CAAC,CAChE,UAAC,OAAO,IAAK,OAAA,UAAC,MAAM,IAAK,OAAA,6CAAqB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,EAA5C,CAA4C,EAAxD,CAAwD,CACxE,CAAC;AACN,CAAC,EAJgB,4BAA4B,4CAA5B,4BAA4B,QAI5C"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MiscIsPruneTransformer = void 0;
|
|
4
|
-
var
|
|
4
|
+
var MiscIsPruneProgrammer_1 = require("../../../programmers/misc/MiscIsPruneProgrammer");
|
|
5
5
|
var GenericTransformer_1 = require("../../internal/GenericTransformer");
|
|
6
6
|
var MiscIsPruneTransformer;
|
|
7
7
|
(function (MiscIsPruneTransformer) {
|
|
8
|
-
MiscIsPruneTransformer.transform = GenericTransformer_1.GenericTransformer.scalar("isPrune")(function (project) { return function (modulo) { return
|
|
8
|
+
MiscIsPruneTransformer.transform = GenericTransformer_1.GenericTransformer.scalar("isPrune")(function (project) { return function (modulo) { return MiscIsPruneProgrammer_1.MiscIsPruneProgrammer.write(project)(modulo); }; });
|
|
9
9
|
})(MiscIsPruneTransformer || (exports.MiscIsPruneTransformer = MiscIsPruneTransformer = {}));
|
|
10
10
|
//# sourceMappingURL=MiscIsPruneTransformer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MiscIsPruneTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/misc/MiscIsPruneTransformer.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"MiscIsPruneTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/misc/MiscIsPruneTransformer.ts"],"names":[],"mappings":";;;AAAA,yFAAwF;AAExF,wEAAuE;AAEvE,IAAiB,sBAAsB,CAItC;AAJD,WAAiB,sBAAsB;IACtB,gCAAS,GAAG,uCAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,CACzD,UAAC,OAAO,IAAK,OAAA,UAAC,MAAM,IAAK,OAAA,6CAAqB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,EAA5C,CAA4C,EAAxD,CAAwD,CACxE,CAAC;AACN,CAAC,EAJgB,sBAAsB,sCAAtB,sBAAsB,QAItC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export type ProtobufAtomic = "bool" | "int32" | "uint32" | "int64" | "uint64" | "float" | "double" | "string";
|
|
2
|
+
export declare namespace ProtobufAtomic {
|
|
3
|
+
type Numeric = "int32" | "uint32" | "int64" | "uint64" | "float" | "double";
|
|
4
|
+
type BigNumeric = "int64" | "uint64";
|
|
5
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProtobufAtomic.js","sourceRoot":"","sources":["../../src/typings/ProtobufAtomic.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "typia",
|
|
3
|
-
"version": "5.0.0-dev.
|
|
3
|
+
"version": "5.0.0-dev.20230827",
|
|
4
4
|
"description": "Superfast runtime validators with only one line",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"typings": "lib/index.d.ts",
|
|
@@ -124,7 +124,7 @@
|
|
|
124
124
|
"ts-node": "^10.9.1",
|
|
125
125
|
"ts-patch": "^3.0.2",
|
|
126
126
|
"tstl": "^2.5.13",
|
|
127
|
-
"typescript": "^5.
|
|
127
|
+
"typescript": "^5.2.2",
|
|
128
128
|
"typescript-transform-paths": "^3.4.6",
|
|
129
129
|
"uuid": "^8.3.2",
|
|
130
130
|
"zod": "^3.19.1"
|
package/src/IRandomGenerator.ts
CHANGED
|
@@ -23,12 +23,13 @@ export interface IRandomGenerator {
|
|
|
23
23
|
export namespace IRandomGenerator {
|
|
24
24
|
export type CustomMap = {
|
|
25
25
|
[Type in keyof Customizable]?: (
|
|
26
|
-
tags:
|
|
26
|
+
tags: ITypeTag[],
|
|
27
27
|
) => Customizable[Type] | undefined;
|
|
28
28
|
};
|
|
29
29
|
|
|
30
|
-
export interface
|
|
30
|
+
export interface ITypeTag {
|
|
31
31
|
name: string;
|
|
32
|
-
|
|
32
|
+
kind: string;
|
|
33
|
+
value: any;
|
|
33
34
|
}
|
|
34
35
|
}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import ts from "typescript";
|
|
2
2
|
|
|
3
|
+
import { RandomGenerator } from "../utils/RandomGenerator";
|
|
4
|
+
|
|
3
5
|
export namespace ExpressionFactory {
|
|
4
|
-
export const bigint = (value: number) =>
|
|
6
|
+
export const bigint = (value: number | bigint) =>
|
|
5
7
|
ts.factory.createCallExpression(
|
|
6
8
|
ts.factory.createIdentifier("BigInt"),
|
|
7
9
|
undefined,
|
|
8
|
-
[ts.factory.
|
|
10
|
+
[ts.factory.createIdentifier(value.toString())],
|
|
9
11
|
);
|
|
10
12
|
|
|
11
13
|
export const isRequired = (input: ts.Expression): ts.Expression =>
|
|
@@ -112,4 +114,46 @@ export namespace ExpressionFactory {
|
|
|
112
114
|
undefined,
|
|
113
115
|
undefined,
|
|
114
116
|
);
|
|
117
|
+
|
|
118
|
+
export const getEscapedText =
|
|
119
|
+
(printer: ts.Printer) =>
|
|
120
|
+
(input: ts.Expression): string =>
|
|
121
|
+
printer.printNode(
|
|
122
|
+
ts.EmitHint.Expression,
|
|
123
|
+
input,
|
|
124
|
+
input.getSourceFile(),
|
|
125
|
+
);
|
|
126
|
+
|
|
127
|
+
export const transpile =
|
|
128
|
+
(context: ts.TransformationContext) =>
|
|
129
|
+
(script: string) =>
|
|
130
|
+
(input: ts.Expression): ts.Expression => {
|
|
131
|
+
const file: ts.SourceFile = ts.createSourceFile(
|
|
132
|
+
`${RandomGenerator.uuid()}.ts`,
|
|
133
|
+
script,
|
|
134
|
+
ts.ScriptTarget.ESNext,
|
|
135
|
+
true,
|
|
136
|
+
ts.ScriptKind.TS,
|
|
137
|
+
);
|
|
138
|
+
const statement: ts.Statement | undefined = file.statements[0];
|
|
139
|
+
if (statement === undefined)
|
|
140
|
+
throw new Error(
|
|
141
|
+
"Error on ExpressionFactory.transpile(): no statement exists.",
|
|
142
|
+
);
|
|
143
|
+
else if (!ts.isExpressionStatement(statement))
|
|
144
|
+
throw new Error(
|
|
145
|
+
"Error on ExpressionFactory.transpile(): statement is not an expression statement.",
|
|
146
|
+
);
|
|
147
|
+
|
|
148
|
+
const visitor = (node: ts.Node): ts.Node => {
|
|
149
|
+
if (ts.isIdentifier(node) && node.text === "$input")
|
|
150
|
+
return input;
|
|
151
|
+
return ts.visitEachChild(
|
|
152
|
+
(ts.factory as any).cloneNode(node),
|
|
153
|
+
visitor,
|
|
154
|
+
context,
|
|
155
|
+
);
|
|
156
|
+
};
|
|
157
|
+
return visitor(statement.expression) as ts.Expression;
|
|
158
|
+
};
|
|
115
159
|
}
|
|
@@ -17,6 +17,21 @@ export namespace IdentifierFactory {
|
|
|
17
17
|
: ts.factory.createPropertyAccessExpression(target, postfix);
|
|
18
18
|
};
|
|
19
19
|
|
|
20
|
+
export const getName = (input: ts.Expression): string => {
|
|
21
|
+
const value: any = (input as any).escapedText?.toString();
|
|
22
|
+
if (typeof value === "string") return value;
|
|
23
|
+
|
|
24
|
+
if (ts.isPropertyAccessExpression(input))
|
|
25
|
+
return `${getName(
|
|
26
|
+
input.expression,
|
|
27
|
+
)}.${input.name.escapedText.toString()}`;
|
|
28
|
+
else if (ts.isElementAccessExpression(input))
|
|
29
|
+
return `${getName(input.expression)}[${getName(
|
|
30
|
+
input.argumentExpression,
|
|
31
|
+
)}]`;
|
|
32
|
+
return "uknown";
|
|
33
|
+
};
|
|
34
|
+
|
|
20
35
|
export const postfix = (str: string): string =>
|
|
21
36
|
Escaper.variable(str)
|
|
22
37
|
? `".${str}"`
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import ts from "typescript";
|
|
2
2
|
|
|
3
|
+
import { ExpressionFactory } from "./ExpressionFactory";
|
|
3
4
|
import { IdentifierFactory } from "./IdentifierFactory";
|
|
4
5
|
|
|
5
6
|
export namespace LiteralFactory {
|
|
@@ -11,8 +12,11 @@ export namespace LiteralFactory {
|
|
|
11
12
|
else if (typeof input === "string") return generate_string(input);
|
|
12
13
|
else if (typeof input === "boolean") return generate_value(input);
|
|
13
14
|
else if (typeof input === "number") return generate_value(input);
|
|
14
|
-
else if (typeof input === "bigint") return
|
|
15
|
-
else
|
|
15
|
+
else if (typeof input === "bigint") return generate_bigint(input);
|
|
16
|
+
else
|
|
17
|
+
throw new Error(
|
|
18
|
+
"Error on LiteralFactory.generate(): unknown type.",
|
|
19
|
+
);
|
|
16
20
|
};
|
|
17
21
|
|
|
18
22
|
const generate_object = (obj: object): ts.ObjectLiteralExpression =>
|
|
@@ -31,9 +35,12 @@ export namespace LiteralFactory {
|
|
|
31
35
|
const generate_array = (array: any[]): ts.ArrayLiteralExpression =>
|
|
32
36
|
ts.factory.createArrayLiteralExpression(array.map(generate), true);
|
|
33
37
|
|
|
34
|
-
const generate_value = (value: number | boolean | bigint): ts.
|
|
38
|
+
const generate_value = (value: number | boolean | bigint): ts.Expression =>
|
|
35
39
|
ts.factory.createIdentifier(value.toString());
|
|
36
40
|
|
|
41
|
+
const generate_bigint = (value: bigint): ts.Expression =>
|
|
42
|
+
ExpressionFactory.bigint(value);
|
|
43
|
+
|
|
37
44
|
const generate_string = (value: string): ts.StringLiteral =>
|
|
38
45
|
ts.factory.createStringLiteral(value);
|
|
39
46
|
}
|