typia 5.0.0-dev.20230823 → 5.0.0-dev.20230824
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/Primitive.d.ts +14 -12
- package/lib/Resolved.d.ts +46 -0
- package/lib/{schemas/metadata/IMetadataTag.js → Resolved.js} +1 -1
- package/lib/Resolved.js.map +1 -0
- package/lib/factories/ExpressionFactory.d.ts +2 -0
- package/lib/factories/ExpressionFactory.js +24 -0
- 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/MetadataCollection.d.ts +7 -7
- package/lib/factories/MetadataCollection.js +4 -4
- package/lib/factories/MetadataCollection.js.map +1 -1
- package/lib/factories/MetadataFactory.d.ts +1 -1
- package/lib/factories/MetadataTagFactory.d.ts +2 -2
- package/lib/factories/MetadataTagFactory.js +15 -13
- package/lib/factories/MetadataTagFactory.js.map +1 -1
- package/lib/factories/ProtobufFactory.js +11 -10
- package/lib/factories/ProtobufFactory.js.map +1 -1
- package/lib/factories/internal/metadata/emend_metadata_atomics.js +6 -6
- package/lib/factories/internal/metadata/emend_metadata_atomics.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_tuple.d.ts +2 -2
- package/lib/factories/internal/metadata/explore_metadata.js +3 -3
- package/lib/factories/internal/metadata/explore_metadata.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_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 +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_atomic.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_collection.js +26 -18
- 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} +4 -4
- package/lib/factories/internal/metadata/iterate_metadata_comment_tags.js.map +1 -0
- package/lib/factories/internal/metadata/iterate_metadata_intersection.js +138 -16
- package/lib/factories/internal/metadata/iterate_metadata_intersection.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_native.js +2 -10
- package/lib/factories/internal/metadata/iterate_metadata_native.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_object.js +0 -7
- package/lib/factories/internal/metadata/iterate_metadata_object.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_resolve.js +6 -6
- package/lib/factories/internal/metadata/iterate_metadata_resolve.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_sort.js +4 -4
- 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/factories/internal/metadata/iterate_metadata_type_tags.d.ts +3 -0
- package/lib/factories/internal/metadata/iterate_metadata_type_tags.js +157 -0
- package/lib/factories/internal/metadata/iterate_metadata_type_tags.js.map +1 -0
- package/lib/functional/$ProtobufWriter.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/json.d.ts +15 -15
- package/lib/misc.d.ts +42 -42
- package/lib/module.d.ts +20 -56
- package/lib/module.js +4 -17
- package/lib/module.js.map +1 -1
- package/lib/programmers/AssertProgrammer.js +2 -4
- package/lib/programmers/AssertProgrammer.js.map +1 -1
- package/lib/programmers/CheckerProgrammer.js +39 -30
- package/lib/programmers/CheckerProgrammer.js.map +1 -1
- package/lib/programmers/FeatureProgrammer.d.ts +4 -4
- package/lib/programmers/FeatureProgrammer.js.map +1 -1
- package/lib/programmers/IsProgrammer.d.ts +1 -1
- package/lib/programmers/IsProgrammer.js +3 -5
- package/lib/programmers/IsProgrammer.js.map +1 -1
- package/lib/programmers/RandomProgrammer.js +328 -142
- package/lib/programmers/RandomProgrammer.js.map +1 -1
- package/lib/programmers/ValidateProgrammer.js +2 -4
- 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/FunctionImporeter.d.ts +2 -0
- package/lib/programmers/helpers/FunctionImporeter.js +2 -1
- package/lib/programmers/helpers/FunctionImporeter.js.map +1 -1
- package/lib/programmers/helpers/ICheckEntry.d.ts +1 -1
- package/lib/programmers/helpers/ProtobufUtil.js +2 -2
- package/lib/programmers/helpers/ProtobufUtil.js.map +1 -1
- package/lib/programmers/helpers/RandomJoiner.d.ts +4 -4
- package/lib/programmers/helpers/RandomJoiner.js.map +1 -1
- package/lib/programmers/helpers/RandomRanger.d.ts +6 -6
- package/lib/programmers/helpers/RandomRanger.js.map +1 -1
- package/lib/programmers/helpers/StringifyPredicator.js +1 -2
- package/lib/programmers/helpers/StringifyPredicator.js.map +1 -1
- package/lib/programmers/helpers/UnionExplorer.d.ts +8 -8
- package/lib/programmers/helpers/UnionExplorer.js +40 -29
- package/lib/programmers/helpers/UnionExplorer.js.map +1 -1
- package/lib/programmers/helpers/disable_function_importer_declare.js +1 -0
- package/lib/programmers/helpers/disable_function_importer_declare.js.map +1 -1
- package/lib/programmers/internal/application_array.js +1 -1
- 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_resolved.d.ts +2 -2
- 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 +7 -7
- package/lib/programmers/internal/application_schema.js.map +1 -1
- 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.map +1 -1
- package/lib/programmers/internal/check_array_tags.js +39 -0
- package/lib/programmers/internal/check_array_tags.js.map +1 -0
- package/lib/programmers/internal/check_bigint.js +88 -74
- package/lib/programmers/internal/check_bigint.js.map +1 -1
- package/lib/programmers/internal/check_number.js +142 -131
- package/lib/programmers/internal/check_number.js.map +1 -1
- package/lib/programmers/internal/check_string.js +30 -6
- package/lib/programmers/internal/check_string.js.map +1 -1
- package/lib/programmers/internal/check_string_tags.js.map +1 -1
- package/lib/programmers/internal/check_template.js +16 -49
- package/lib/programmers/internal/check_template.js.map +1 -1
- package/lib/programmers/internal/check_union_array_like.js +3 -2
- package/lib/programmers/internal/check_union_array_like.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/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 +33 -27
- package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscAssertCloneProgrammer.js +1 -1
- package/lib/programmers/misc/MiscAssertCloneProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscCloneProgrammer.js +124 -43
- package/lib/programmers/misc/MiscCloneProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscIsCloneProgrammer.js +1 -1
- package/lib/programmers/misc/MiscIsCloneProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscLiteralsProgrammer.js +3 -3
- package/lib/programmers/misc/MiscLiteralsProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscPruneProgrammer.js +15 -15
- package/lib/programmers/misc/MiscPruneProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscValidateCloneProgrammer.js +1 -1
- package/lib/programmers/misc/MiscValidateCloneProgrammer.js.map +1 -1
- package/lib/programmers/protobuf/ProtobufAssertDecodeProgrammer.js +3 -3
- package/lib/programmers/protobuf/ProtobufAssertDecodeProgrammer.js.map +1 -1
- package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js +8 -8
- package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js.map +1 -1
- package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js +3 -3
- package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js.map +1 -1
- package/lib/programmers/protobuf/ProtobufIsDecodeProgrammer.js +2 -2
- package/lib/programmers/protobuf/ProtobufIsDecodeProgrammer.js.map +1 -1
- package/lib/programmers/protobuf/ProtobufMessageProgrammer.js +1 -1
- package/lib/programmers/protobuf/ProtobufMessageProgrammer.js.map +1 -1
- package/lib/programmers/protobuf/ProtobufValidateDecodeProgrammer.js +1 -1
- package/lib/programmers/protobuf/ProtobufValidateDecodeProgrammer.js.map +1 -1
- package/lib/protobuf.d.ts +631 -10
- package/lib/protobuf.js +13 -13
- package/lib/protobuf.js.map +1 -1
- package/lib/schemas/json/IJsonSchema.d.ts +2 -2
- package/lib/schemas/metadata/IMetadata.d.ts +13 -6
- package/lib/schemas/metadata/IMetadataAlias.d.ts +2 -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/{IMetadataResolved.js → IMetadataAtomic.js} +1 -1
- package/lib/schemas/metadata/IMetadataAtomic.js.map +1 -0
- package/lib/schemas/metadata/IMetadataCollection.d.ts +4 -4
- package/lib/schemas/metadata/{IMetadataTag.d.ts → IMetadataCommentTag.d.ts} +2 -2
- package/lib/schemas/metadata/IMetadataCommentTag.js +3 -0
- package/lib/schemas/metadata/IMetadataCommentTag.js.map +1 -0
- package/lib/schemas/metadata/{IMetadataResolved.d.ts → IMetadataEscaped.d.ts} +1 -1
- package/lib/schemas/metadata/IMetadataEscaped.js +3 -0
- package/lib/schemas/metadata/IMetadataEscaped.js.map +1 -0
- package/lib/schemas/metadata/IMetadataProperty.d.ts +2 -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 +6 -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 +4 -4
- package/lib/schemas/metadata/Metadata.js +217 -157
- package/lib/schemas/metadata/Metadata.js.map +1 -1
- package/lib/schemas/metadata/MetadataAlias.d.ts +2 -2
- package/lib/schemas/metadata/MetadataArray.d.ts +6 -6
- package/lib/schemas/metadata/MetadataArray.js +5 -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/{MetadataResolved.d.ts → MetadataEscaped.d.ts} +3 -3
- package/lib/schemas/metadata/{MetadataResolved.js → MetadataEscaped.js} +11 -11
- package/lib/schemas/metadata/MetadataEscaped.js.map +1 -0
- package/lib/schemas/metadata/MetadataProperty.d.ts +2 -2
- package/lib/schemas/metadata/MetadataTuple.d.ts +4 -6
- package/lib/schemas/metadata/MetadataTuple.js +5 -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 +8 -0
- package/lib/tags/ExclusiveMaximum.js +3 -0
- package/lib/tags/ExclusiveMaximum.js.map +1 -0
- package/lib/tags/ExclusiveMinimum.d.ts +8 -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/tags/Format.js +3 -0
- package/lib/tags/Format.js.map +1 -0
- package/lib/tags/MaxItems.d.ts +8 -0
- package/lib/tags/MaxItems.js +3 -0
- 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 +8 -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 +8 -0
- package/lib/tags/Minimum.js +3 -0
- package/lib/tags/Minimum.js.map +1 -0
- package/lib/tags/MultipleOf.d.ts +8 -0
- package/lib/tags/MultipleOf.js +3 -0
- package/lib/tags/MultipleOf.js.map +1 -0
- package/lib/tags/Pattern.d.ts +8 -0
- package/lib/tags/Pattern.js +3 -0
- package/lib/tags/Pattern.js.map +1 -0
- package/lib/tags/TagBase.d.ts +10 -0
- package/lib/tags/TagBase.js +3 -0
- package/lib/tags/TagBase.js.map +1 -0
- package/lib/tags/Type.d.ts +13 -0
- package/lib/tags/Type.js +3 -0
- package/lib/tags/Type.js.map +1 -0
- package/lib/tags/index.d.ts +12 -0
- package/lib/tags/index.js +29 -0
- package/lib/tags/index.js.map +1 -0
- package/lib/transformers/FileTransformer.d.ts +1 -1
- package/lib/transformers/FileTransformer.js +12 -1
- package/lib/transformers/FileTransformer.js.map +1 -1
- package/lib/transformers/IProject.d.ts +1 -0
- package/lib/transformers/features/json/JsonApplicationTransformer.js +5 -3
- package/lib/transformers/features/json/JsonApplicationTransformer.js.map +1 -1
- package/lib/transformers/features/misc/MetadataTransformer.js +1 -1
- package/lib/transformers/features/misc/MetadataTransformer.js.map +1 -1
- package/lib/utils/RandomGenerator.js +3 -2
- package/lib/utils/RandomGenerator.js.map +1 -1
- package/package.json +2 -1
- package/src/Primitive.ts +19 -15
- package/src/Resolved.ts +116 -0
- package/src/factories/ExpressionFactory.ts +44 -0
- package/src/factories/IdentifierFactory.ts +15 -0
- package/src/factories/MetadataCollection.ts +18 -12
- package/src/factories/MetadataFactory.ts +1 -1
- package/src/factories/MetadataTagFactory.ts +28 -27
- package/src/factories/ProtobufFactory.ts +12 -10
- package/src/factories/internal/metadata/emend_metadata_atomics.ts +7 -5
- package/src/factories/internal/metadata/{emplace_metadata_array.ts → emplace_metadata_array_type.ts} +3 -3
- package/src/factories/internal/metadata/emplace_metadata_tuple.ts +2 -2
- package/src/factories/internal/metadata/explore_metadata.ts +3 -3
- package/src/factories/internal/metadata/iterate_metadata_array.ts +13 -5
- package/src/factories/internal/metadata/iterate_metadata_atomic.ts +6 -4
- package/src/factories/internal/metadata/iterate_metadata_collection.ts +29 -22
- package/src/factories/internal/metadata/{iterate_metadata_tag.ts → iterate_metadata_comment_tags.ts} +1 -1
- package/src/factories/internal/metadata/iterate_metadata_intersection.ts +109 -15
- package/src/factories/internal/metadata/iterate_metadata_native.ts +0 -9
- package/src/factories/internal/metadata/iterate_metadata_object.ts +10 -10
- package/src/factories/internal/metadata/iterate_metadata_resolve.ts +6 -6
- package/src/factories/internal/metadata/iterate_metadata_sort.ts +4 -4
- package/src/factories/internal/metadata/iterate_metadata_tuple.ts +12 -4
- package/src/factories/internal/metadata/iterate_metadata_type_tags.ts +183 -0
- package/src/functional/$any.ts +3 -1
- package/src/functional/$clone.ts +4 -0
- package/src/json.ts +15 -15
- package/src/misc.ts +42 -42
- package/src/module.ts +20 -72
- package/src/programmers/AssertProgrammer.ts +4 -2
- package/src/programmers/CheckerProgrammer.ts +81 -48
- package/src/programmers/FeatureProgrammer.ts +6 -6
- package/src/programmers/IsProgrammer.ts +5 -3
- package/src/programmers/RandomProgrammer.ts +360 -41
- package/src/programmers/ValidateProgrammer.ts +4 -2
- package/src/programmers/helpers/AtomicPredicator.ts +2 -2
- package/src/programmers/helpers/FunctionImporeter.ts +2 -0
- package/src/programmers/helpers/ICheckEntry.ts +1 -1
- package/src/programmers/helpers/ProtobufUtil.ts +1 -1
- package/src/programmers/helpers/RandomJoiner.ts +8 -4
- package/src/programmers/helpers/RandomRanger.ts +8 -8
- package/src/programmers/helpers/StringifyPredicator.ts +1 -2
- package/src/programmers/helpers/UnionExplorer.ts +48 -34
- package/src/programmers/helpers/disable_function_importer_declare.ts +6 -1
- package/src/programmers/internal/application_array.ts +5 -4
- package/src/programmers/internal/application_default_string.ts +6 -2
- package/src/programmers/internal/application_resolved.ts +4 -4
- package/src/programmers/internal/application_schema.ts +7 -7
- package/src/programmers/internal/application_string.ts +2 -2
- package/src/programmers/internal/application_tuple.ts +12 -11
- package/src/programmers/internal/check_array_length.ts +2 -2
- package/src/programmers/internal/check_array_tags.ts +45 -0
- package/src/programmers/internal/check_bigint.ts +45 -17
- package/src/programmers/internal/check_number.ts +97 -70
- package/src/programmers/internal/check_string.ts +43 -12
- package/src/programmers/internal/check_string_tags.ts +3 -3
- package/src/programmers/internal/check_template.ts +1 -12
- package/src/programmers/internal/check_union_array_like.ts +6 -5
- package/src/programmers/internal/metadata_to_pattern.ts +4 -4
- 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 +47 -29
- package/src/programmers/misc/MiscAssertCloneProgrammer.ts +1 -1
- package/src/programmers/misc/MiscCloneProgrammer.ts +253 -55
- package/src/programmers/misc/MiscIsCloneProgrammer.ts +1 -1
- package/src/programmers/misc/MiscLiteralsProgrammer.ts +3 -3
- package/src/programmers/misc/MiscPruneProgrammer.ts +31 -19
- package/src/programmers/misc/MiscValidateCloneProgrammer.ts +1 -1
- package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +18 -9
- package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +18 -14
- package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +15 -15
- package/src/programmers/protobuf/ProtobufIsDecodeProgrammer.ts +12 -2
- package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +6 -6
- package/src/programmers/protobuf/ProtobufValidateDecodeProgrammer.ts +2 -2
- package/src/protobuf.ts +663 -31
- package/src/schemas/json/IJsonSchema.ts +2 -2
- package/src/schemas/metadata/IMetadata.ts +13 -7
- package/src/schemas/metadata/IMetadataAlias.ts +2 -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/{IMetadataTag.ts → IMetadataCommentTag.ts} +17 -17
- package/src/schemas/metadata/IMetadataDictionary.ts +4 -4
- package/src/schemas/metadata/{IMetadataResolved.ts → IMetadataEscaped.ts} +1 -1
- package/src/schemas/metadata/IMetadataProperty.ts +2 -2
- package/src/schemas/metadata/IMetadataTuple.ts +4 -7
- package/src/schemas/metadata/IMetadataTupleType.ts +10 -0
- package/src/schemas/metadata/IMetadataTypeTag.ts +6 -0
- package/src/schemas/metadata/Metadata.ts +125 -63
- package/src/schemas/metadata/MetadataAlias.ts +2 -2
- package/src/schemas/metadata/MetadataArray.ts +10 -34
- package/src/schemas/metadata/MetadataArrayType.ts +57 -0
- package/src/schemas/metadata/{MetadataResolved.ts → MetadataEscaped.ts} +9 -9
- package/src/schemas/metadata/MetadataProperty.ts +2 -2
- package/src/schemas/metadata/MetadataTuple.ts +10 -37
- package/src/schemas/metadata/MetadataTupleType.ts +67 -0
- package/src/tags/ExclusiveMaximum.ts +8 -0
- package/src/tags/ExclusiveMinimum.ts +8 -0
- package/src/tags/Format.ts +29 -0
- package/src/tags/MaxItems.ts +8 -0
- package/src/tags/MaxLength.ts +8 -0
- package/src/tags/Maximum.ts +8 -0
- package/src/tags/MinItems.ts +8 -0
- package/src/tags/MinLength.ts +8 -0
- package/src/tags/Minimum.ts +8 -0
- package/src/tags/MultipleOf.ts +10 -0
- package/src/tags/Pattern.ts +8 -0
- package/src/tags/TagBase.ts +17 -0
- package/src/tags/Type.ts +30 -0
- package/src/tags/index.ts +12 -0
- package/src/transformers/FileTransformer.ts +2 -2
- package/src/transformers/IProject.ts +1 -0
- package/src/transformers/features/json/JsonApplicationTransformer.ts +4 -3
- package/src/transformers/features/misc/MetadataTransformer.ts +1 -1
- package/src/typings/Atomic.ts +1 -0
- package/src/utils/RandomGenerator.ts +4 -2
- package/lib/CustomValidatorMap.d.ts +0 -110
- package/lib/CustomValidatorMap.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/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/schemas/metadata/IMetadataResolved.js.map +0 -1
- package/lib/schemas/metadata/IMetadataTag.js.map +0 -1
- package/lib/schemas/metadata/MetadataResolved.js.map +0 -1
- package/src/CustomValidatorMap.ts +0 -126
- package/src/programmers/internal/check_array.ts +0 -30
- package/src/programmers/internal/check_custom.ts +0 -31
- /package/lib/programmers/internal/{check_array.d.ts → check_array_tags.d.ts} +0 -0
|
@@ -9,11 +9,13 @@ import { TypeFactory } from "../../factories/TypeFactory";
|
|
|
9
9
|
import { ValueFactory } from "../../factories/ValueFactory";
|
|
10
10
|
|
|
11
11
|
import { IJsDocTagInfo } from "../../schemas/metadata/IJsDocTagInfo";
|
|
12
|
-
import {
|
|
12
|
+
import { IMetadataCommentTag } from "../../schemas/metadata/IMetadataCommentTag";
|
|
13
13
|
import { Metadata } from "../../schemas/metadata/Metadata";
|
|
14
14
|
import { MetadataArray } from "../../schemas/metadata/MetadataArray";
|
|
15
|
+
import { MetadataArrayType } from "../../schemas/metadata/MetadataArrayType";
|
|
15
16
|
import { MetadataObject } from "../../schemas/metadata/MetadataObject";
|
|
16
17
|
import { MetadataTuple } from "../../schemas/metadata/MetadataTuple";
|
|
18
|
+
import { MetadataTupleType } from "../../schemas/metadata/MetadataTupleType";
|
|
17
19
|
|
|
18
20
|
import { IProject } from "../../transformers/IProject";
|
|
19
21
|
|
|
@@ -42,7 +44,9 @@ export namespace JsonStringifyProgrammer {
|
|
|
42
44
|
|
|
43
45
|
export const write =
|
|
44
46
|
(project: IProject) => (modulo: ts.LeftHandSideExpression) => {
|
|
45
|
-
const importer: FunctionImporter = new FunctionImporter(
|
|
47
|
+
const importer: FunctionImporter = new FunctionImporter(
|
|
48
|
+
modulo.getText(),
|
|
49
|
+
);
|
|
46
50
|
const config: FeatureProgrammer.IConfig =
|
|
47
51
|
configure(project)(importer);
|
|
48
52
|
|
|
@@ -186,14 +190,14 @@ export namespace JsonStringifyProgrammer {
|
|
|
186
190
|
const unions: IUnion[] = [];
|
|
187
191
|
|
|
188
192
|
// toJSON() METHOD
|
|
189
|
-
if (meta.
|
|
193
|
+
if (meta.escaped !== null)
|
|
190
194
|
unions.push({
|
|
191
195
|
type: "resolved",
|
|
192
196
|
is: () => IsProgrammer.decode_to_json(false)(input),
|
|
193
197
|
value: () =>
|
|
194
198
|
decode_to_json(project)(config)(importer)(
|
|
195
199
|
input,
|
|
196
|
-
meta.
|
|
200
|
+
meta.escaped!.returns,
|
|
197
201
|
explore,
|
|
198
202
|
),
|
|
199
203
|
});
|
|
@@ -211,7 +215,7 @@ export namespace JsonStringifyProgrammer {
|
|
|
211
215
|
)
|
|
212
216
|
if (AtomicPredicator.template(meta)) {
|
|
213
217
|
const partial = Metadata.initialize();
|
|
214
|
-
partial.atomics.push("string"),
|
|
218
|
+
partial.atomics.push({ type: "string", tags: [] }),
|
|
215
219
|
unions.push({
|
|
216
220
|
type: "template literal",
|
|
217
221
|
is: () =>
|
|
@@ -243,7 +247,10 @@ export namespace JsonStringifyProgrammer {
|
|
|
243
247
|
input,
|
|
244
248
|
(() => {
|
|
245
249
|
const partial = Metadata.initialize();
|
|
246
|
-
partial.atomics.push(
|
|
250
|
+
partial.atomics.push({
|
|
251
|
+
type: constant.type,
|
|
252
|
+
tags: [],
|
|
253
|
+
});
|
|
247
254
|
return partial;
|
|
248
255
|
})(),
|
|
249
256
|
explore,
|
|
@@ -265,7 +272,10 @@ export namespace JsonStringifyProgrammer {
|
|
|
265
272
|
input,
|
|
266
273
|
(() => {
|
|
267
274
|
const partial = Metadata.initialize();
|
|
268
|
-
partial.atomics.push(
|
|
275
|
+
partial.atomics.push({
|
|
276
|
+
type: "string",
|
|
277
|
+
tags: [],
|
|
278
|
+
});
|
|
269
279
|
return partial;
|
|
270
280
|
})(),
|
|
271
281
|
explore,
|
|
@@ -281,8 +291,8 @@ export namespace JsonStringifyProgrammer {
|
|
|
281
291
|
});
|
|
282
292
|
|
|
283
293
|
/// ATOMICS
|
|
284
|
-
for (const
|
|
285
|
-
if (AtomicPredicator.atomic(meta)(type))
|
|
294
|
+
for (const a of meta.atomics)
|
|
295
|
+
if (AtomicPredicator.atomic(meta)(a.type))
|
|
286
296
|
unions.push({
|
|
287
297
|
type: "atomic",
|
|
288
298
|
is: () =>
|
|
@@ -290,7 +300,7 @@ export namespace JsonStringifyProgrammer {
|
|
|
290
300
|
input,
|
|
291
301
|
(() => {
|
|
292
302
|
const partial = Metadata.initialize();
|
|
293
|
-
partial.atomics.push(
|
|
303
|
+
partial.atomics.push(a);
|
|
294
304
|
return partial;
|
|
295
305
|
})(),
|
|
296
306
|
explore,
|
|
@@ -300,14 +310,14 @@ export namespace JsonStringifyProgrammer {
|
|
|
300
310
|
value: () =>
|
|
301
311
|
decode_atomic(project)(importer)(
|
|
302
312
|
input,
|
|
303
|
-
type,
|
|
313
|
+
a.type,
|
|
304
314
|
explore,
|
|
305
315
|
),
|
|
306
316
|
});
|
|
307
317
|
|
|
308
318
|
// TUPLES
|
|
309
319
|
for (const tuple of meta.tuples) {
|
|
310
|
-
for (const child of tuple.elements)
|
|
320
|
+
for (const child of tuple.type.elements)
|
|
311
321
|
if (StringifyPredicator.undefindable(meta))
|
|
312
322
|
throw new Error(
|
|
313
323
|
`Error on typia.json.stringify(): tuple cannot contain undefined value - (${child.getName()}).`,
|
|
@@ -338,9 +348,9 @@ export namespace JsonStringifyProgrammer {
|
|
|
338
348
|
// ARRAYS
|
|
339
349
|
if (meta.arrays.length) {
|
|
340
350
|
for (const child of meta.arrays)
|
|
341
|
-
if (StringifyPredicator.undefindable(child.value))
|
|
351
|
+
if (StringifyPredicator.undefindable(child.type.value))
|
|
342
352
|
throw new Error(
|
|
343
|
-
`Error on typia.json.stringify(): array cannot contain undefined value (${child.value.getName()}).`,
|
|
353
|
+
`Error on typia.json.stringify(): array cannot contain undefined value (${child.type.value.getName()}).`,
|
|
344
354
|
);
|
|
345
355
|
const value: () => ts.Expression =
|
|
346
356
|
meta.arrays.length === 1
|
|
@@ -353,7 +363,7 @@ export namespace JsonStringifyProgrammer {
|
|
|
353
363
|
from: "array",
|
|
354
364
|
},
|
|
355
365
|
)
|
|
356
|
-
: meta.arrays.some((elem) => elem.value.any)
|
|
366
|
+
: meta.arrays.some((elem) => elem.type.value.any)
|
|
357
367
|
? () =>
|
|
358
368
|
ts.factory.createCallExpression(
|
|
359
369
|
ts.factory.createIdentifier("JSON.stringify"),
|
|
@@ -510,10 +520,12 @@ export namespace JsonStringifyProgrammer {
|
|
|
510
520
|
array: MetadataArray,
|
|
511
521
|
explore: FeatureProgrammer.IExplore,
|
|
512
522
|
) =>
|
|
513
|
-
array.recursive
|
|
523
|
+
array.type.recursive
|
|
514
524
|
? ts.factory.createCallExpression(
|
|
515
525
|
ts.factory.createIdentifier(
|
|
516
|
-
importer.useLocal(
|
|
526
|
+
importer.useLocal(
|
|
527
|
+
`${config.prefix}a${array.type.index}`,
|
|
528
|
+
),
|
|
517
529
|
),
|
|
518
530
|
undefined,
|
|
519
531
|
FeatureProgrammer.argumentsArray(config)({
|
|
@@ -522,14 +534,18 @@ export namespace JsonStringifyProgrammer {
|
|
|
522
534
|
from: "array",
|
|
523
535
|
})(input),
|
|
524
536
|
)
|
|
525
|
-
: decode_array_inline(config)(importer)(
|
|
537
|
+
: decode_array_inline(config)(importer)(
|
|
538
|
+
input,
|
|
539
|
+
array.type,
|
|
540
|
+
explore,
|
|
541
|
+
);
|
|
526
542
|
|
|
527
543
|
const decode_array_inline =
|
|
528
544
|
(config: FeatureProgrammer.IConfig) =>
|
|
529
545
|
(importer: FunctionImporter) =>
|
|
530
546
|
(
|
|
531
547
|
input: ts.Expression,
|
|
532
|
-
array:
|
|
548
|
+
array: MetadataArrayType,
|
|
533
549
|
explore: FeatureProgrammer.IExplore,
|
|
534
550
|
) =>
|
|
535
551
|
FeatureProgrammer.decode_array(config)(importer)(
|
|
@@ -545,10 +561,12 @@ export namespace JsonStringifyProgrammer {
|
|
|
545
561
|
tuple: MetadataTuple,
|
|
546
562
|
explore: FeatureProgrammer.IExplore,
|
|
547
563
|
): ts.Expression =>
|
|
548
|
-
tuple.recursive
|
|
564
|
+
tuple.type.recursive
|
|
549
565
|
? ts.factory.createCallExpression(
|
|
550
566
|
ts.factory.createIdentifier(
|
|
551
|
-
importer.useLocal(
|
|
567
|
+
importer.useLocal(
|
|
568
|
+
`${config.prefix}t${tuple.type.index}`,
|
|
569
|
+
),
|
|
552
570
|
),
|
|
553
571
|
undefined,
|
|
554
572
|
FeatureProgrammer.argumentsArray(config)({
|
|
@@ -558,7 +576,7 @@ export namespace JsonStringifyProgrammer {
|
|
|
558
576
|
)
|
|
559
577
|
: decode_tuple_inline(project)(config)(importer)(
|
|
560
578
|
input,
|
|
561
|
-
tuple,
|
|
579
|
+
tuple.type,
|
|
562
580
|
explore,
|
|
563
581
|
);
|
|
564
582
|
|
|
@@ -568,7 +586,7 @@ export namespace JsonStringifyProgrammer {
|
|
|
568
586
|
(importer: FunctionImporter) =>
|
|
569
587
|
(
|
|
570
588
|
input: ts.Expression,
|
|
571
|
-
tuple:
|
|
589
|
+
tuple: MetadataTupleType,
|
|
572
590
|
explore: FeatureProgrammer.IExplore,
|
|
573
591
|
): ts.Expression => {
|
|
574
592
|
const children: ts.Expression[] = tuple.elements
|
|
@@ -747,7 +765,7 @@ export namespace JsonStringifyProgrammer {
|
|
|
747
765
|
input: ts.Expression,
|
|
748
766
|
elements: T[],
|
|
749
767
|
explore: FeatureProgrammer.IExplore,
|
|
750
|
-
tags:
|
|
768
|
+
tags: IMetadataCommentTag[],
|
|
751
769
|
jsDocTags: IJsDocTagInfo[],
|
|
752
770
|
) => ts.ArrowFunction,
|
|
753
771
|
) =>
|
|
@@ -761,7 +779,7 @@ export namespace JsonStringifyProgrammer {
|
|
|
761
779
|
(explore: FeatureProgrammer.IExplore) =>
|
|
762
780
|
(input: ts.Expression): ts.ArrowFunction =>
|
|
763
781
|
factory(parameters)(input, elements, explore, [], []);
|
|
764
|
-
if (elements.every((e) => e.recursive === false))
|
|
782
|
+
if (elements.every((e) => e.type.recursive === false))
|
|
765
783
|
ts.factory.createCallExpression(
|
|
766
784
|
arrow([])(explore)(input),
|
|
767
785
|
undefined,
|
|
@@ -777,7 +795,7 @@ export namespace JsonStringifyProgrammer {
|
|
|
777
795
|
ts.factory.createIdentifier(
|
|
778
796
|
importer.emplaceUnion(
|
|
779
797
|
config.prefix,
|
|
780
|
-
elements.map((e) => e.name).join(" | "),
|
|
798
|
+
elements.map((e) => e.type.name).join(" | "),
|
|
781
799
|
() =>
|
|
782
800
|
arrow(
|
|
783
801
|
FeatureProgrammer.parameterDeclarations(config)(
|
|
@@ -931,15 +949,15 @@ export namespace JsonStringifyProgrammer {
|
|
|
931
949
|
(type) => {
|
|
932
950
|
const collection: MetadataCollection = new MetadataCollection();
|
|
933
951
|
const meta: Metadata = MetadataFactory.analyze(checker)({
|
|
934
|
-
|
|
952
|
+
escape: true,
|
|
935
953
|
constant: true,
|
|
936
954
|
absorb: true,
|
|
937
955
|
validate: (meta) => {
|
|
938
|
-
if (meta.atomics.find((
|
|
956
|
+
if (meta.atomics.find((a) => a.type === "bigint"))
|
|
939
957
|
throw new Error(NO_BIGINT);
|
|
940
958
|
else if (
|
|
941
959
|
meta.arrays.some(
|
|
942
|
-
(array) => array.value.isRequired() === false,
|
|
960
|
+
(array) => array.type.value.isRequired() === false,
|
|
943
961
|
)
|
|
944
962
|
)
|
|
945
963
|
throw new Error(NO_UNDEFINED_IN_ARRAY);
|