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
|
@@ -31,29 +31,65 @@ export namespace AssertProgrammer {
|
|
|
31
31
|
trace: true,
|
|
32
32
|
numeric: OptionPredicator.numeric(project.options),
|
|
33
33
|
equals,
|
|
34
|
-
atomist: (explore) => (
|
|
34
|
+
atomist: (explore) => (entry) => (input) =>
|
|
35
35
|
[
|
|
36
|
-
...(
|
|
37
|
-
...
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
36
|
+
...(entry.expression ? [entry.expression] : []),
|
|
37
|
+
...(entry.conditions.length === 0
|
|
38
|
+
? []
|
|
39
|
+
: entry.conditions.length === 1
|
|
40
|
+
? entry.conditions[0]!.map((cond) =>
|
|
41
|
+
ts.factory.createLogicalOr(
|
|
42
|
+
cond.expression,
|
|
43
|
+
create_guard_call(importer)(
|
|
44
|
+
explore.from === "top"
|
|
45
|
+
? ts.factory.createTrue()
|
|
46
|
+
: ts.factory.createIdentifier(
|
|
47
|
+
"_exceptionable",
|
|
48
|
+
),
|
|
49
|
+
)(
|
|
50
|
+
ts.factory.createIdentifier(
|
|
51
|
+
explore.postfix
|
|
52
|
+
? `_path + ${explore.postfix}`
|
|
53
|
+
: "_path",
|
|
45
54
|
),
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
55
|
+
cond.expected,
|
|
56
|
+
input,
|
|
57
|
+
),
|
|
58
|
+
),
|
|
59
|
+
)
|
|
60
|
+
: [
|
|
61
|
+
ts.factory.createLogicalOr(
|
|
62
|
+
entry.conditions
|
|
63
|
+
.map((set) =>
|
|
64
|
+
set
|
|
65
|
+
.map((s) => s.expression)
|
|
66
|
+
.reduce((a, b) =>
|
|
67
|
+
ts.factory.createLogicalAnd(
|
|
68
|
+
a,
|
|
69
|
+
b,
|
|
70
|
+
),
|
|
71
|
+
),
|
|
72
|
+
)
|
|
73
|
+
.reduce((a, b) =>
|
|
74
|
+
ts.factory.createLogicalOr(a, b),
|
|
75
|
+
),
|
|
76
|
+
create_guard_call(importer)(
|
|
77
|
+
explore.from === "top"
|
|
78
|
+
? ts.factory.createTrue()
|
|
79
|
+
: ts.factory.createIdentifier(
|
|
80
|
+
"_exceptionable",
|
|
81
|
+
),
|
|
82
|
+
)(
|
|
83
|
+
ts.factory.createIdentifier(
|
|
84
|
+
explore.postfix
|
|
85
|
+
? `_path + ${explore.postfix}`
|
|
86
|
+
: "_path",
|
|
87
|
+
),
|
|
88
|
+
entry.expected,
|
|
89
|
+
input,
|
|
90
|
+
),
|
|
91
|
+
),
|
|
92
|
+
]),
|
|
57
93
|
].reduce((x, y) => ts.factory.createLogicalAnd(x, y)),
|
|
58
94
|
combiner: combiner(equals)(importer),
|
|
59
95
|
joiner: joiner(equals)(importer),
|
|
@@ -8,17 +8,14 @@ import { StatementFactory } from "../factories/StatementFactory";
|
|
|
8
8
|
import { TypeFactory } from "../factories/TypeFactory";
|
|
9
9
|
import { ValueFactory } from "../factories/ValueFactory";
|
|
10
10
|
|
|
11
|
-
import { IJsDocTagInfo } from "../schemas/metadata/IJsDocTagInfo";
|
|
12
|
-
import { IMetadataCommentTag } from "../schemas/metadata/IMetadataCommentTag";
|
|
13
|
-
import { IMetadataTypeTag } from "../schemas/metadata/IMetadataTypeTag";
|
|
14
11
|
import { Metadata } from "../schemas/metadata/Metadata";
|
|
15
12
|
import { MetadataArray } from "../schemas/metadata/MetadataArray";
|
|
16
|
-
import { MetadataArrayType } from "../schemas/metadata/MetadataArrayType";
|
|
17
13
|
import { MetadataObject } from "../schemas/metadata/MetadataObject";
|
|
18
14
|
import { MetadataTuple } from "../schemas/metadata/MetadataTuple";
|
|
19
15
|
import { MetadataTupleType } from "../schemas/metadata/MetadataTupleType";
|
|
20
16
|
|
|
21
17
|
import { IProject } from "../transformers/IProject";
|
|
18
|
+
import { TransformerError } from "../transformers/TransformerError";
|
|
22
19
|
|
|
23
20
|
import { FeatureProgrammer } from "./FeatureProgrammer";
|
|
24
21
|
import { AtomicPredicator } from "./helpers/AtomicPredicator";
|
|
@@ -28,7 +25,6 @@ import { IExpressionEntry } from "./helpers/IExpressionEntry";
|
|
|
28
25
|
import { OptionPredicator } from "./helpers/OptionPredicator";
|
|
29
26
|
import { UnionExplorer } from "./helpers/UnionExplorer";
|
|
30
27
|
import { check_array_length } from "./internal/check_array_length";
|
|
31
|
-
import { check_array_tags } from "./internal/check_array_tags";
|
|
32
28
|
import { check_bigint } from "./internal/check_bigint";
|
|
33
29
|
import { check_native } from "./internal/check_native";
|
|
34
30
|
import { check_number } from "./internal/check_number";
|
|
@@ -131,7 +127,7 @@ export namespace CheckerProgrammer {
|
|
|
131
127
|
collection
|
|
132
128
|
.arrays()
|
|
133
129
|
.filter((a) => a.recursive)
|
|
134
|
-
.map((
|
|
130
|
+
.map((type, i) =>
|
|
135
131
|
StatementFactory.constant(
|
|
136
132
|
`${config.prefix}a${i}`,
|
|
137
133
|
ts.factory.createArrowFunction(
|
|
@@ -144,16 +140,16 @@ export namespace CheckerProgrammer {
|
|
|
144
140
|
undefined,
|
|
145
141
|
decode_array_inline(project)(config)(importer)(
|
|
146
142
|
ts.factory.createIdentifier("input"),
|
|
147
|
-
|
|
143
|
+
MetadataArray.create({
|
|
144
|
+
type,
|
|
145
|
+
tags: [],
|
|
146
|
+
}),
|
|
148
147
|
{
|
|
149
148
|
tracable: config.trace,
|
|
150
149
|
source: "function",
|
|
151
150
|
from: "array",
|
|
152
151
|
postfix: "",
|
|
153
152
|
},
|
|
154
|
-
[],
|
|
155
|
-
[],
|
|
156
|
-
[],
|
|
157
153
|
),
|
|
158
154
|
),
|
|
159
155
|
),
|
|
@@ -187,8 +183,6 @@ export namespace CheckerProgrammer {
|
|
|
187
183
|
from: "array",
|
|
188
184
|
postfix: "",
|
|
189
185
|
},
|
|
190
|
-
[],
|
|
191
|
-
[],
|
|
192
186
|
),
|
|
193
187
|
),
|
|
194
188
|
),
|
|
@@ -215,15 +209,20 @@ export namespace CheckerProgrammer {
|
|
|
215
209
|
prefix: config.prefix,
|
|
216
210
|
initializer:
|
|
217
211
|
({ checker }) =>
|
|
212
|
+
(importer) =>
|
|
218
213
|
(type) => {
|
|
219
214
|
const collection: MetadataCollection =
|
|
220
215
|
new MetadataCollection();
|
|
221
|
-
const
|
|
216
|
+
const result = MetadataFactory.analyze(checker)({
|
|
222
217
|
escape: false,
|
|
223
218
|
constant: true,
|
|
224
219
|
absorb: true,
|
|
225
220
|
})(collection)(type);
|
|
226
|
-
|
|
221
|
+
if (result.success === false)
|
|
222
|
+
throw TransformerError.from(`typia.${importer.method}`)(
|
|
223
|
+
result.errors,
|
|
224
|
+
);
|
|
225
|
+
return [collection, result.data];
|
|
227
226
|
},
|
|
228
227
|
addition: config.addition,
|
|
229
228
|
decoder: () =>
|
|
@@ -296,8 +295,6 @@ export namespace CheckerProgrammer {
|
|
|
296
295
|
input: ts.Expression,
|
|
297
296
|
meta: Metadata,
|
|
298
297
|
explore: IExplore,
|
|
299
|
-
metaTags: IMetadataCommentTag[],
|
|
300
|
-
jsDocTags: ts.JSDocTagInfo[],
|
|
301
298
|
): ts.Expression => {
|
|
302
299
|
if (meta.any) return config.success;
|
|
303
300
|
|
|
@@ -306,10 +303,13 @@ export namespace CheckerProgrammer {
|
|
|
306
303
|
const add = create_add(binaries)(input);
|
|
307
304
|
const getConstantValue = (
|
|
308
305
|
value: number | string | bigint | boolean,
|
|
309
|
-
) =>
|
|
310
|
-
typeof value === "string"
|
|
311
|
-
|
|
312
|
-
|
|
306
|
+
) => {
|
|
307
|
+
if (typeof value === "string")
|
|
308
|
+
return ts.factory.createStringLiteral(value);
|
|
309
|
+
else if (typeof value === "bigint")
|
|
310
|
+
return ExpressionFactory.bigint(value);
|
|
311
|
+
return ts.factory.createIdentifier(value.toString());
|
|
312
|
+
};
|
|
313
313
|
|
|
314
314
|
//----
|
|
315
315
|
// CHECK OPTIONAL
|
|
@@ -364,27 +364,21 @@ export namespace CheckerProgrammer {
|
|
|
364
364
|
else if (atom.type === "number")
|
|
365
365
|
binaries.push({
|
|
366
366
|
expression: config.atomist(explore)(
|
|
367
|
-
check_number(project, config.numeric)(
|
|
368
|
-
atom.tags,
|
|
369
|
-
metaTags,
|
|
370
|
-
)(input),
|
|
367
|
+
check_number(project, config.numeric)(atom)(input),
|
|
371
368
|
)(input),
|
|
372
369
|
combined: false,
|
|
373
370
|
});
|
|
374
371
|
else if (atom.type === "bigint")
|
|
375
372
|
binaries.push({
|
|
376
373
|
expression: config.atomist(explore)(
|
|
377
|
-
check_bigint(project)(atom
|
|
374
|
+
check_bigint(project)(atom)(input),
|
|
378
375
|
)(input),
|
|
379
376
|
combined: false,
|
|
380
377
|
});
|
|
381
378
|
else if (atom.type === "string")
|
|
382
379
|
binaries.push({
|
|
383
380
|
expression: config.atomist(explore)(
|
|
384
|
-
check_string(project)(
|
|
385
|
-
atom.tags,
|
|
386
|
-
metaTags,
|
|
387
|
-
)(input),
|
|
381
|
+
check_string(project)(atom)(input),
|
|
388
382
|
)(input),
|
|
389
383
|
combined: false,
|
|
390
384
|
});
|
|
@@ -448,8 +442,6 @@ export namespace CheckerProgrammer {
|
|
|
448
442
|
...explore,
|
|
449
443
|
from: "array",
|
|
450
444
|
},
|
|
451
|
-
[],
|
|
452
|
-
[],
|
|
453
445
|
),
|
|
454
446
|
);
|
|
455
447
|
}
|
|
@@ -473,8 +465,6 @@ export namespace CheckerProgrammer {
|
|
|
473
465
|
...explore,
|
|
474
466
|
from: "array",
|
|
475
467
|
},
|
|
476
|
-
metaTags,
|
|
477
|
-
jsDocTags,
|
|
478
468
|
),
|
|
479
469
|
);
|
|
480
470
|
}
|
|
@@ -483,8 +473,12 @@ export namespace CheckerProgrammer {
|
|
|
483
473
|
if (meta.tuples.length + meta.arrays.length > 0) {
|
|
484
474
|
const install = prepare(
|
|
485
475
|
config.atomist(explore)({
|
|
476
|
+
expected: [
|
|
477
|
+
...meta.tuples.map((t) => t.type.name),
|
|
478
|
+
...meta.arrays.map((a) => a.getName()),
|
|
479
|
+
].join(" | "),
|
|
486
480
|
expression: ExpressionFactory.isArray(input),
|
|
487
|
-
|
|
481
|
+
conditions: [],
|
|
488
482
|
})(input),
|
|
489
483
|
[...meta.tuples, ...meta.arrays]
|
|
490
484
|
.map((elem) => elem.type.name)
|
|
@@ -500,8 +494,6 @@ export namespace CheckerProgrammer {
|
|
|
500
494
|
...explore,
|
|
501
495
|
from: "array",
|
|
502
496
|
},
|
|
503
|
-
metaTags,
|
|
504
|
-
jsDocTags,
|
|
505
497
|
),
|
|
506
498
|
);
|
|
507
499
|
// TUPLE ONLY
|
|
@@ -514,8 +506,6 @@ export namespace CheckerProgrammer {
|
|
|
514
506
|
...explore,
|
|
515
507
|
from: "array",
|
|
516
508
|
},
|
|
517
|
-
metaTags,
|
|
518
|
-
jsDocTags,
|
|
519
509
|
),
|
|
520
510
|
);
|
|
521
511
|
else if (meta.arrays.some((elem) => elem.type.value.any))
|
|
@@ -531,8 +521,6 @@ export namespace CheckerProgrammer {
|
|
|
531
521
|
...explore,
|
|
532
522
|
from: "array",
|
|
533
523
|
},
|
|
534
|
-
metaTags,
|
|
535
|
-
jsDocTags,
|
|
536
524
|
),
|
|
537
525
|
);
|
|
538
526
|
else
|
|
@@ -544,8 +532,6 @@ export namespace CheckerProgrammer {
|
|
|
544
532
|
...explore,
|
|
545
533
|
from: "array",
|
|
546
534
|
},
|
|
547
|
-
metaTags,
|
|
548
|
-
jsDocTags,
|
|
549
535
|
),
|
|
550
536
|
);
|
|
551
537
|
else
|
|
@@ -554,8 +540,6 @@ export namespace CheckerProgrammer {
|
|
|
554
540
|
input,
|
|
555
541
|
[...meta.tuples, ...meta.arrays],
|
|
556
542
|
explore,
|
|
557
|
-
metaTags,
|
|
558
|
-
jsDocTags,
|
|
559
543
|
),
|
|
560
544
|
);
|
|
561
545
|
}
|
|
@@ -670,21 +654,12 @@ export namespace CheckerProgrammer {
|
|
|
670
654
|
(project: IProject) =>
|
|
671
655
|
(config: IConfig) =>
|
|
672
656
|
(importer: FunctionImporter) =>
|
|
673
|
-
(
|
|
674
|
-
input: ts.Expression,
|
|
675
|
-
array: MetadataArray,
|
|
676
|
-
explore: IExplore,
|
|
677
|
-
metaTags: IMetadataCommentTag[],
|
|
678
|
-
jsDocTags: IJsDocTagInfo[],
|
|
679
|
-
) => {
|
|
657
|
+
(input: ts.Expression, array: MetadataArray, explore: IExplore) => {
|
|
680
658
|
if (array.type.recursive === false)
|
|
681
659
|
return decode_array_inline(project)(config)(importer)(
|
|
682
660
|
input,
|
|
683
|
-
array
|
|
661
|
+
array,
|
|
684
662
|
explore,
|
|
685
|
-
array.tags,
|
|
686
|
-
metaTags,
|
|
687
|
-
jsDocTags,
|
|
688
663
|
);
|
|
689
664
|
|
|
690
665
|
explore = {
|
|
@@ -716,29 +691,20 @@ export namespace CheckerProgrammer {
|
|
|
716
691
|
(importer: FunctionImporter) =>
|
|
717
692
|
(
|
|
718
693
|
input: ts.Expression,
|
|
719
|
-
array:
|
|
694
|
+
array: MetadataArray,
|
|
720
695
|
explore: IExplore,
|
|
721
|
-
matrix: IMetadataTypeTag[][],
|
|
722
|
-
metaTags: IMetadataCommentTag[],
|
|
723
|
-
jsDocTags: IJsDocTagInfo[],
|
|
724
696
|
): ts.Expression => {
|
|
725
|
-
const
|
|
697
|
+
const length = check_array_length(project)(array)(input);
|
|
726
698
|
const main = FeatureProgrammer.decode_array({
|
|
727
699
|
prefix: config.prefix,
|
|
728
700
|
trace: config.trace,
|
|
729
701
|
path: config.path,
|
|
730
702
|
decoder: () => decode(project)(config)(importer),
|
|
731
|
-
})(importer)(config.joiner.array)(
|
|
732
|
-
|
|
733
|
-
array,
|
|
734
|
-
explore,
|
|
735
|
-
metaTags,
|
|
736
|
-
jsDocTags,
|
|
737
|
-
);
|
|
738
|
-
return tagger.expression === null && tagger.tags.length === 0
|
|
703
|
+
})(importer)(config.joiner.array)(input, array, explore);
|
|
704
|
+
return length.expression === null && length.conditions.length === 0
|
|
739
705
|
? main
|
|
740
706
|
: ts.factory.createLogicalAnd(
|
|
741
|
-
config.atomist(explore)(
|
|
707
|
+
config.atomist(explore)(length)(input),
|
|
742
708
|
main,
|
|
743
709
|
);
|
|
744
710
|
};
|
|
@@ -751,16 +717,12 @@ export namespace CheckerProgrammer {
|
|
|
751
717
|
input: ts.Expression,
|
|
752
718
|
tuple: MetadataTuple,
|
|
753
719
|
explore: IExplore,
|
|
754
|
-
tagList: IMetadataCommentTag[],
|
|
755
|
-
jsDocTags: ts.JSDocTagInfo[],
|
|
756
720
|
): ts.Expression => {
|
|
757
721
|
if (tuple.type.recursive === false)
|
|
758
722
|
return decode_tuple_inline(project)(config)(importer)(
|
|
759
723
|
input,
|
|
760
724
|
tuple.type,
|
|
761
725
|
explore,
|
|
762
|
-
tagList,
|
|
763
|
-
jsDocTags,
|
|
764
726
|
);
|
|
765
727
|
explore = {
|
|
766
728
|
...explore,
|
|
@@ -792,8 +754,6 @@ export namespace CheckerProgrammer {
|
|
|
792
754
|
input: ts.Expression,
|
|
793
755
|
tuple: MetadataTupleType,
|
|
794
756
|
explore: IExplore,
|
|
795
|
-
tagList: IMetadataCommentTag[],
|
|
796
|
-
jsDocTags: ts.JSDocTagInfo[],
|
|
797
757
|
): ts.Expression => {
|
|
798
758
|
const binaries: ts.Expression[] = tuple.elements
|
|
799
759
|
.filter((meta) => meta.rest === null)
|
|
@@ -808,8 +768,6 @@ export namespace CheckerProgrammer {
|
|
|
808
768
|
? `${explore.postfix.slice(0, -1)}[${index}]"`
|
|
809
769
|
: `"[${index}]"`,
|
|
810
770
|
},
|
|
811
|
-
tuple.of_map === true && index !== 1 ? [] : tagList,
|
|
812
|
-
tuple.of_map === true && index !== 1 ? [] : jsDocTags,
|
|
813
771
|
),
|
|
814
772
|
);
|
|
815
773
|
const rest: ts.Expression | null =
|
|
@@ -831,8 +789,6 @@ export namespace CheckerProgrammer {
|
|
|
831
789
|
...explore,
|
|
832
790
|
start: tuple.elements.length - 1,
|
|
833
791
|
},
|
|
834
|
-
tagList,
|
|
835
|
-
jsDocTags,
|
|
836
792
|
)
|
|
837
793
|
: null;
|
|
838
794
|
|
|
@@ -915,8 +871,6 @@ export namespace CheckerProgrammer {
|
|
|
915
871
|
input: ts.Expression,
|
|
916
872
|
sets: Metadata[],
|
|
917
873
|
explore: IExplore,
|
|
918
|
-
tags: IMetadataCommentTag[],
|
|
919
|
-
jsDocTags: IJsDocTagInfo[],
|
|
920
874
|
): ts.Expression =>
|
|
921
875
|
ts.factory.createCallExpression(
|
|
922
876
|
UnionExplorer.set({
|
|
@@ -928,7 +882,7 @@ export namespace CheckerProgrammer {
|
|
|
928
882
|
ts.factory.createReturnStatement(
|
|
929
883
|
config.joiner.failure(input, expected, explore),
|
|
930
884
|
),
|
|
931
|
-
})([])(input, sets, explore
|
|
885
|
+
})([])(input, sets, explore),
|
|
932
886
|
undefined,
|
|
933
887
|
undefined,
|
|
934
888
|
);
|
|
@@ -941,8 +895,6 @@ export namespace CheckerProgrammer {
|
|
|
941
895
|
input: ts.Expression,
|
|
942
896
|
maps: Metadata.Entry[],
|
|
943
897
|
explore: IExplore,
|
|
944
|
-
tags: IMetadataCommentTag[],
|
|
945
|
-
jsDocTags: IJsDocTagInfo[],
|
|
946
898
|
): ts.Expression =>
|
|
947
899
|
ts.factory.createCallExpression(
|
|
948
900
|
UnionExplorer.map({
|
|
@@ -959,8 +911,6 @@ export namespace CheckerProgrammer {
|
|
|
959
911
|
...explore,
|
|
960
912
|
postfix: `${explore.postfix}[0]`,
|
|
961
913
|
},
|
|
962
|
-
[],
|
|
963
|
-
[],
|
|
964
914
|
),
|
|
965
915
|
func(
|
|
966
916
|
ts.factory.createElementAccessExpression(
|
|
@@ -972,8 +922,6 @@ export namespace CheckerProgrammer {
|
|
|
972
922
|
...explore,
|
|
973
923
|
postfix: `${explore.postfix}[1]`,
|
|
974
924
|
},
|
|
975
|
-
[],
|
|
976
|
-
[],
|
|
977
925
|
),
|
|
978
926
|
);
|
|
979
927
|
},
|
|
@@ -984,7 +932,7 @@ export namespace CheckerProgrammer {
|
|
|
984
932
|
ts.factory.createReturnStatement(
|
|
985
933
|
config.joiner.failure(input, expected, explore),
|
|
986
934
|
),
|
|
987
|
-
})([])(input, maps, explore
|
|
935
|
+
})([])(input, maps, explore),
|
|
988
936
|
undefined,
|
|
989
937
|
undefined,
|
|
990
938
|
);
|
|
@@ -997,8 +945,6 @@ export namespace CheckerProgrammer {
|
|
|
997
945
|
input: ts.Expression,
|
|
998
946
|
tuples: MetadataTuple[],
|
|
999
947
|
explore: IExplore,
|
|
1000
|
-
tags: IMetadataCommentTag[],
|
|
1001
|
-
jsDocTags: IJsDocTagInfo[],
|
|
1002
948
|
): ts.Expression =>
|
|
1003
949
|
explore_array_like_union_types(config)(importer)(
|
|
1004
950
|
UnionExplorer.tuple({
|
|
@@ -1011,7 +957,7 @@ export namespace CheckerProgrammer {
|
|
|
1011
957
|
config.joiner.failure(input, expected, explore),
|
|
1012
958
|
),
|
|
1013
959
|
}),
|
|
1014
|
-
)(input, tuples, explore
|
|
960
|
+
)(input, tuples, explore);
|
|
1015
961
|
|
|
1016
962
|
const explore_arrays =
|
|
1017
963
|
(project: IProject) =>
|
|
@@ -1021,8 +967,6 @@ export namespace CheckerProgrammer {
|
|
|
1021
967
|
input: ts.Expression,
|
|
1022
968
|
arrays: MetadataArray[],
|
|
1023
969
|
explore: IExplore,
|
|
1024
|
-
tags: IMetadataCommentTag[],
|
|
1025
|
-
jsDocTags: IJsDocTagInfo[],
|
|
1026
970
|
): ts.Expression =>
|
|
1027
971
|
explore_array_like_union_types(config)(importer)(
|
|
1028
972
|
UnionExplorer.array({
|
|
@@ -1035,7 +979,7 @@ export namespace CheckerProgrammer {
|
|
|
1035
979
|
config.joiner.failure(input, expected, explore),
|
|
1036
980
|
),
|
|
1037
981
|
}),
|
|
1038
|
-
)(input, arrays, explore
|
|
982
|
+
)(input, arrays, explore);
|
|
1039
983
|
|
|
1040
984
|
const explore_arrays_and_tuples =
|
|
1041
985
|
(project: IProject) =>
|
|
@@ -1045,45 +989,42 @@ export namespace CheckerProgrammer {
|
|
|
1045
989
|
input: ts.Expression,
|
|
1046
990
|
elements: Array<MetadataArray | MetadataTuple>,
|
|
1047
991
|
explore: IExplore,
|
|
1048
|
-
tags: IMetadataCommentTag[],
|
|
1049
|
-
jsDocTags: IJsDocTagInfo[],
|
|
1050
992
|
): ts.Expression =>
|
|
1051
993
|
explore_array_like_union_types(config)(importer)(
|
|
1052
994
|
UnionExplorer.array_or_tuple({
|
|
1053
|
-
checker: (front, target, explore,
|
|
995
|
+
checker: (front, target, explore, array) =>
|
|
1054
996
|
target instanceof MetadataTuple
|
|
1055
997
|
? decode_tuple(project)(config)(importer)(
|
|
1056
998
|
front,
|
|
1057
999
|
target,
|
|
1058
1000
|
explore,
|
|
1059
|
-
tags,
|
|
1060
|
-
jsDocTags,
|
|
1061
1001
|
)
|
|
1062
1002
|
: config.atomist(explore)({
|
|
1003
|
+
expected: elements
|
|
1004
|
+
.map((elem) =>
|
|
1005
|
+
elem instanceof MetadataArray
|
|
1006
|
+
? elem.getName()
|
|
1007
|
+
: elem.type.name,
|
|
1008
|
+
)
|
|
1009
|
+
.join(" | "),
|
|
1063
1010
|
expression: decode(project)(config)(importer)(
|
|
1064
1011
|
front,
|
|
1065
1012
|
target,
|
|
1066
1013
|
explore,
|
|
1067
|
-
tags,
|
|
1068
|
-
jsDocTags,
|
|
1069
1014
|
),
|
|
1070
|
-
|
|
1015
|
+
conditions: [],
|
|
1071
1016
|
})(array),
|
|
1072
|
-
decoder: (input, target, explore
|
|
1017
|
+
decoder: (input, target, explore) =>
|
|
1073
1018
|
target instanceof MetadataTuple
|
|
1074
1019
|
? decode_tuple(project)(config)(importer)(
|
|
1075
1020
|
input,
|
|
1076
1021
|
target,
|
|
1077
1022
|
explore,
|
|
1078
|
-
tags,
|
|
1079
|
-
jsDocTags,
|
|
1080
1023
|
)
|
|
1081
1024
|
: decode_array(project)(config)(importer)(
|
|
1082
1025
|
input,
|
|
1083
1026
|
target,
|
|
1084
1027
|
explore,
|
|
1085
|
-
tags,
|
|
1086
|
-
jsDocTags,
|
|
1087
1028
|
),
|
|
1088
1029
|
empty: config.success,
|
|
1089
1030
|
success: config.success,
|
|
@@ -1092,7 +1033,7 @@ export namespace CheckerProgrammer {
|
|
|
1092
1033
|
config.joiner.failure(input, expected, explore),
|
|
1093
1034
|
),
|
|
1094
1035
|
}),
|
|
1095
|
-
)(input, elements, explore
|
|
1036
|
+
)(input, elements, explore);
|
|
1096
1037
|
|
|
1097
1038
|
const explore_array_like_union_types =
|
|
1098
1039
|
(config: IConfig) =>
|
|
@@ -1104,28 +1045,18 @@ export namespace CheckerProgrammer {
|
|
|
1104
1045
|
input: ts.Expression,
|
|
1105
1046
|
elements: T[],
|
|
1106
1047
|
explore: IExplore,
|
|
1107
|
-
tags: IMetadataCommentTag[],
|
|
1108
|
-
jsDocTags: IJsDocTagInfo[],
|
|
1109
1048
|
) => ts.ArrowFunction,
|
|
1110
1049
|
) =>
|
|
1111
1050
|
(
|
|
1112
1051
|
input: ts.Expression,
|
|
1113
1052
|
elements: T[],
|
|
1114
1053
|
explore: IExplore,
|
|
1115
|
-
tags: IMetadataCommentTag[],
|
|
1116
|
-
jsDocTags: IJsDocTagInfo[],
|
|
1117
1054
|
): ts.Expression => {
|
|
1118
1055
|
const arrow =
|
|
1119
1056
|
(parameters: ts.ParameterDeclaration[]) =>
|
|
1120
1057
|
(explore: IExplore) =>
|
|
1121
1058
|
(input: ts.Expression): ts.ArrowFunction =>
|
|
1122
|
-
factory(parameters)(
|
|
1123
|
-
input,
|
|
1124
|
-
elements,
|
|
1125
|
-
explore,
|
|
1126
|
-
tags,
|
|
1127
|
-
jsDocTags,
|
|
1128
|
-
);
|
|
1059
|
+
factory(parameters)(input, elements, explore);
|
|
1129
1060
|
if (elements.every((e) => e.type.recursive === false))
|
|
1130
1061
|
ts.factory.createCallExpression(
|
|
1131
1062
|
arrow([])(explore)(input),
|