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
|
@@ -8,12 +8,11 @@ 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 { IMetadataTag } from "../schemas/metadata/IMetadataTag";
|
|
13
11
|
import { Metadata } from "../schemas/metadata/Metadata";
|
|
14
12
|
import { MetadataArray } from "../schemas/metadata/MetadataArray";
|
|
15
13
|
import { MetadataObject } from "../schemas/metadata/MetadataObject";
|
|
16
14
|
import { MetadataTuple } from "../schemas/metadata/MetadataTuple";
|
|
15
|
+
import { MetadataTupleType } from "../schemas/metadata/MetadataTupleType";
|
|
17
16
|
|
|
18
17
|
import { IProject } from "../transformers/IProject";
|
|
19
18
|
|
|
@@ -24,7 +23,6 @@ import { ICheckEntry } from "./helpers/ICheckEntry";
|
|
|
24
23
|
import { IExpressionEntry } from "./helpers/IExpressionEntry";
|
|
25
24
|
import { OptionPredicator } from "./helpers/OptionPredicator";
|
|
26
25
|
import { UnionExplorer } from "./helpers/UnionExplorer";
|
|
27
|
-
import { check_array } from "./internal/check_array";
|
|
28
26
|
import { check_array_length } from "./internal/check_array_length";
|
|
29
27
|
import { check_bigint } from "./internal/check_bigint";
|
|
30
28
|
import { check_native } from "./internal/check_native";
|
|
@@ -128,7 +126,7 @@ export namespace CheckerProgrammer {
|
|
|
128
126
|
collection
|
|
129
127
|
.arrays()
|
|
130
128
|
.filter((a) => a.recursive)
|
|
131
|
-
.map((
|
|
129
|
+
.map((type, i) =>
|
|
132
130
|
StatementFactory.constant(
|
|
133
131
|
`${config.prefix}a${i}`,
|
|
134
132
|
ts.factory.createArrowFunction(
|
|
@@ -141,15 +139,16 @@ export namespace CheckerProgrammer {
|
|
|
141
139
|
undefined,
|
|
142
140
|
decode_array_inline(project)(config)(importer)(
|
|
143
141
|
ts.factory.createIdentifier("input"),
|
|
144
|
-
|
|
142
|
+
MetadataArray.create({
|
|
143
|
+
type,
|
|
144
|
+
tags: [],
|
|
145
|
+
}),
|
|
145
146
|
{
|
|
146
147
|
tracable: config.trace,
|
|
147
148
|
source: "function",
|
|
148
149
|
from: "array",
|
|
149
150
|
postfix: "",
|
|
150
151
|
},
|
|
151
|
-
[],
|
|
152
|
-
[],
|
|
153
152
|
),
|
|
154
153
|
),
|
|
155
154
|
),
|
|
@@ -183,8 +182,6 @@ export namespace CheckerProgrammer {
|
|
|
183
182
|
from: "array",
|
|
184
183
|
postfix: "",
|
|
185
184
|
},
|
|
186
|
-
[],
|
|
187
|
-
[],
|
|
188
185
|
),
|
|
189
186
|
),
|
|
190
187
|
),
|
|
@@ -292,8 +289,6 @@ export namespace CheckerProgrammer {
|
|
|
292
289
|
input: ts.Expression,
|
|
293
290
|
meta: Metadata,
|
|
294
291
|
explore: IExplore,
|
|
295
|
-
metaTags: IMetadataTag[],
|
|
296
|
-
jsDocTags: ts.JSDocTagInfo[],
|
|
297
292
|
): ts.Expression => {
|
|
298
293
|
if (meta.any) return config.success;
|
|
299
294
|
|
|
@@ -302,10 +297,13 @@ export namespace CheckerProgrammer {
|
|
|
302
297
|
const add = create_add(binaries)(input);
|
|
303
298
|
const getConstantValue = (
|
|
304
299
|
value: number | string | bigint | boolean,
|
|
305
|
-
) =>
|
|
306
|
-
typeof value === "string"
|
|
307
|
-
|
|
308
|
-
|
|
300
|
+
) => {
|
|
301
|
+
if (typeof value === "string")
|
|
302
|
+
return ts.factory.createStringLiteral(value);
|
|
303
|
+
else if (typeof value === "bigint")
|
|
304
|
+
return ExpressionFactory.bigint(value);
|
|
305
|
+
return ts.factory.createIdentifier(value.toString());
|
|
306
|
+
};
|
|
309
307
|
|
|
310
308
|
//----
|
|
311
309
|
// CHECK OPTIONAL
|
|
@@ -354,35 +352,34 @@ export namespace CheckerProgrammer {
|
|
|
354
352
|
add(true, getConstantValue(val));
|
|
355
353
|
|
|
356
354
|
// ATOMIC VALUES
|
|
357
|
-
for (const
|
|
358
|
-
if (AtomicPredicator.atomic(meta)(type) === false)
|
|
359
|
-
|
|
355
|
+
for (const atom of meta.atomics)
|
|
356
|
+
if (AtomicPredicator.atomic(meta)(atom.type) === false)
|
|
357
|
+
continue;
|
|
358
|
+
else if (atom.type === "number")
|
|
360
359
|
binaries.push({
|
|
361
360
|
expression: config.atomist(explore)(
|
|
362
|
-
check_number(project, config.numeric)(
|
|
363
|
-
metaTags,
|
|
364
|
-
)(jsDocTags)(input),
|
|
361
|
+
check_number(project, config.numeric)(atom)(input),
|
|
365
362
|
)(input),
|
|
366
363
|
combined: false,
|
|
367
364
|
});
|
|
368
|
-
else if (type === "bigint")
|
|
365
|
+
else if (atom.type === "bigint")
|
|
369
366
|
binaries.push({
|
|
370
367
|
expression: config.atomist(explore)(
|
|
371
|
-
check_bigint(
|
|
368
|
+
check_bigint(project)(atom)(input),
|
|
372
369
|
)(input),
|
|
373
370
|
combined: false,
|
|
374
371
|
});
|
|
375
|
-
else if (type === "string")
|
|
372
|
+
else if (atom.type === "string")
|
|
376
373
|
binaries.push({
|
|
377
374
|
expression: config.atomist(explore)(
|
|
378
|
-
check_string(
|
|
375
|
+
check_string(project)(atom)(input),
|
|
379
376
|
)(input),
|
|
380
377
|
combined: false,
|
|
381
378
|
});
|
|
382
379
|
else
|
|
383
380
|
add(
|
|
384
381
|
true,
|
|
385
|
-
ts.factory.createStringLiteral(type),
|
|
382
|
+
ts.factory.createStringLiteral(atom.type),
|
|
386
383
|
ValueFactory.TYPEOF(input),
|
|
387
384
|
);
|
|
388
385
|
|
|
@@ -391,9 +388,7 @@ export namespace CheckerProgrammer {
|
|
|
391
388
|
if (AtomicPredicator.template(meta))
|
|
392
389
|
binaries.push({
|
|
393
390
|
expression: config.atomist(explore)(
|
|
394
|
-
check_template(
|
|
395
|
-
meta.templates,
|
|
396
|
-
)(input),
|
|
391
|
+
check_template(meta.templates)(input),
|
|
397
392
|
)(input),
|
|
398
393
|
combined: false,
|
|
399
394
|
});
|
|
@@ -441,8 +436,6 @@ export namespace CheckerProgrammer {
|
|
|
441
436
|
...explore,
|
|
442
437
|
from: "array",
|
|
443
438
|
},
|
|
444
|
-
[],
|
|
445
|
-
[],
|
|
446
439
|
),
|
|
447
440
|
);
|
|
448
441
|
}
|
|
@@ -466,8 +459,6 @@ export namespace CheckerProgrammer {
|
|
|
466
459
|
...explore,
|
|
467
460
|
from: "array",
|
|
468
461
|
},
|
|
469
|
-
metaTags,
|
|
470
|
-
jsDocTags,
|
|
471
462
|
),
|
|
472
463
|
);
|
|
473
464
|
}
|
|
@@ -475,13 +466,16 @@ export namespace CheckerProgrammer {
|
|
|
475
466
|
// ARRAYS AND TUPLES
|
|
476
467
|
if (meta.tuples.length + meta.arrays.length > 0) {
|
|
477
468
|
const install = prepare(
|
|
478
|
-
config.atomist(explore)(
|
|
479
|
-
|
|
480
|
-
meta.tuples.
|
|
481
|
-
|
|
482
|
-
|
|
469
|
+
config.atomist(explore)({
|
|
470
|
+
expected: [
|
|
471
|
+
...meta.tuples.map((t) => t.type.name),
|
|
472
|
+
...meta.arrays.map((a) => a.getName()),
|
|
473
|
+
].join(" | "),
|
|
474
|
+
expression: ExpressionFactory.isArray(input),
|
|
475
|
+
conditions: [],
|
|
476
|
+
})(input),
|
|
483
477
|
[...meta.tuples, ...meta.arrays]
|
|
484
|
-
.map((elem) => elem.name)
|
|
478
|
+
.map((elem) => elem.type.name)
|
|
485
479
|
.join(" | "),
|
|
486
480
|
);
|
|
487
481
|
if (meta.arrays.length === 0)
|
|
@@ -494,8 +488,6 @@ export namespace CheckerProgrammer {
|
|
|
494
488
|
...explore,
|
|
495
489
|
from: "array",
|
|
496
490
|
},
|
|
497
|
-
metaTags,
|
|
498
|
-
jsDocTags,
|
|
499
491
|
),
|
|
500
492
|
);
|
|
501
493
|
// TUPLE ONLY
|
|
@@ -508,11 +500,9 @@ export namespace CheckerProgrammer {
|
|
|
508
500
|
...explore,
|
|
509
501
|
from: "array",
|
|
510
502
|
},
|
|
511
|
-
metaTags,
|
|
512
|
-
jsDocTags,
|
|
513
503
|
),
|
|
514
504
|
);
|
|
515
|
-
else if (meta.arrays.some((elem) => elem.value.any))
|
|
505
|
+
else if (meta.arrays.some((elem) => elem.type.value.any))
|
|
516
506
|
install(null);
|
|
517
507
|
else if (meta.tuples.length === 0)
|
|
518
508
|
if (meta.arrays.length === 1)
|
|
@@ -525,8 +515,6 @@ export namespace CheckerProgrammer {
|
|
|
525
515
|
...explore,
|
|
526
516
|
from: "array",
|
|
527
517
|
},
|
|
528
|
-
metaTags,
|
|
529
|
-
jsDocTags,
|
|
530
518
|
),
|
|
531
519
|
);
|
|
532
520
|
else
|
|
@@ -538,8 +526,6 @@ export namespace CheckerProgrammer {
|
|
|
538
526
|
...explore,
|
|
539
527
|
from: "array",
|
|
540
528
|
},
|
|
541
|
-
metaTags,
|
|
542
|
-
jsDocTags,
|
|
543
529
|
),
|
|
544
530
|
);
|
|
545
531
|
else
|
|
@@ -548,8 +534,6 @@ export namespace CheckerProgrammer {
|
|
|
548
534
|
input,
|
|
549
535
|
[...meta.tuples, ...meta.arrays],
|
|
550
536
|
explore,
|
|
551
|
-
metaTags,
|
|
552
|
-
jsDocTags,
|
|
553
537
|
),
|
|
554
538
|
);
|
|
555
539
|
}
|
|
@@ -664,20 +648,12 @@ export namespace CheckerProgrammer {
|
|
|
664
648
|
(project: IProject) =>
|
|
665
649
|
(config: IConfig) =>
|
|
666
650
|
(importer: FunctionImporter) =>
|
|
667
|
-
(
|
|
668
|
-
|
|
669
|
-
array: MetadataArray,
|
|
670
|
-
explore: IExplore,
|
|
671
|
-
metaTags: IMetadataTag[],
|
|
672
|
-
jsDocTags: IJsDocTagInfo[],
|
|
673
|
-
) => {
|
|
674
|
-
if (array.recursive === false)
|
|
651
|
+
(input: ts.Expression, array: MetadataArray, explore: IExplore) => {
|
|
652
|
+
if (array.type.recursive === false)
|
|
675
653
|
return decode_array_inline(project)(config)(importer)(
|
|
676
654
|
input,
|
|
677
655
|
array,
|
|
678
656
|
explore,
|
|
679
|
-
metaTags,
|
|
680
|
-
jsDocTags,
|
|
681
657
|
);
|
|
682
658
|
|
|
683
659
|
explore = {
|
|
@@ -688,7 +664,9 @@ export namespace CheckerProgrammer {
|
|
|
688
664
|
return ts.factory.createLogicalOr(
|
|
689
665
|
ts.factory.createCallExpression(
|
|
690
666
|
ts.factory.createIdentifier(
|
|
691
|
-
importer.useLocal(
|
|
667
|
+
importer.useLocal(
|
|
668
|
+
`${config.prefix}a${array.type.index}`,
|
|
669
|
+
),
|
|
692
670
|
),
|
|
693
671
|
undefined,
|
|
694
672
|
FeatureProgrammer.argumentsArray(config)({
|
|
@@ -697,7 +675,7 @@ export namespace CheckerProgrammer {
|
|
|
697
675
|
from: "array",
|
|
698
676
|
})(input),
|
|
699
677
|
),
|
|
700
|
-
config.joiner.failure(input, array.name, explore),
|
|
678
|
+
config.joiner.failure(input, array.type.name, explore),
|
|
701
679
|
);
|
|
702
680
|
};
|
|
703
681
|
|
|
@@ -705,12 +683,25 @@ export namespace CheckerProgrammer {
|
|
|
705
683
|
(project: IProject) =>
|
|
706
684
|
(config: IConfig) =>
|
|
707
685
|
(importer: FunctionImporter) =>
|
|
708
|
-
|
|
686
|
+
(
|
|
687
|
+
input: ts.Expression,
|
|
688
|
+
array: MetadataArray,
|
|
689
|
+
explore: IExplore,
|
|
690
|
+
): ts.Expression => {
|
|
691
|
+
const length = check_array_length(project)(array)(input);
|
|
692
|
+
const main = FeatureProgrammer.decode_array({
|
|
709
693
|
prefix: config.prefix,
|
|
710
694
|
trace: config.trace,
|
|
711
695
|
path: config.path,
|
|
712
696
|
decoder: () => decode(project)(config)(importer),
|
|
713
|
-
})(importer)(config.joiner.array);
|
|
697
|
+
})(importer)(config.joiner.array)(input, array, explore);
|
|
698
|
+
return length.expression === null && length.conditions.length === 0
|
|
699
|
+
? main
|
|
700
|
+
: ts.factory.createLogicalAnd(
|
|
701
|
+
config.atomist(explore)(length)(input),
|
|
702
|
+
main,
|
|
703
|
+
);
|
|
704
|
+
};
|
|
714
705
|
|
|
715
706
|
const decode_tuple =
|
|
716
707
|
(project: IProject) =>
|
|
@@ -720,16 +711,12 @@ export namespace CheckerProgrammer {
|
|
|
720
711
|
input: ts.Expression,
|
|
721
712
|
tuple: MetadataTuple,
|
|
722
713
|
explore: IExplore,
|
|
723
|
-
tagList: IMetadataTag[],
|
|
724
|
-
jsDocTags: ts.JSDocTagInfo[],
|
|
725
714
|
): ts.Expression => {
|
|
726
|
-
if (tuple.recursive === false)
|
|
715
|
+
if (tuple.type.recursive === false)
|
|
727
716
|
return decode_tuple_inline(project)(config)(importer)(
|
|
728
717
|
input,
|
|
729
|
-
tuple,
|
|
718
|
+
tuple.type,
|
|
730
719
|
explore,
|
|
731
|
-
tagList,
|
|
732
|
-
jsDocTags,
|
|
733
720
|
);
|
|
734
721
|
explore = {
|
|
735
722
|
...explore,
|
|
@@ -739,7 +726,9 @@ export namespace CheckerProgrammer {
|
|
|
739
726
|
return ts.factory.createLogicalOr(
|
|
740
727
|
ts.factory.createCallExpression(
|
|
741
728
|
ts.factory.createIdentifier(
|
|
742
|
-
importer.useLocal(
|
|
729
|
+
importer.useLocal(
|
|
730
|
+
`${config.prefix}t${tuple.type.index}`,
|
|
731
|
+
),
|
|
743
732
|
),
|
|
744
733
|
undefined,
|
|
745
734
|
FeatureProgrammer.argumentsArray(config)({
|
|
@@ -747,7 +736,7 @@ export namespace CheckerProgrammer {
|
|
|
747
736
|
source: "function",
|
|
748
737
|
})(input),
|
|
749
738
|
),
|
|
750
|
-
config.joiner.failure(input, tuple.name, explore),
|
|
739
|
+
config.joiner.failure(input, tuple.type.name, explore),
|
|
751
740
|
);
|
|
752
741
|
};
|
|
753
742
|
|
|
@@ -757,10 +746,8 @@ export namespace CheckerProgrammer {
|
|
|
757
746
|
(importer: FunctionImporter) =>
|
|
758
747
|
(
|
|
759
748
|
input: ts.Expression,
|
|
760
|
-
tuple:
|
|
749
|
+
tuple: MetadataTupleType,
|
|
761
750
|
explore: IExplore,
|
|
762
|
-
tagList: IMetadataTag[],
|
|
763
|
-
jsDocTags: ts.JSDocTagInfo[],
|
|
764
751
|
): ts.Expression => {
|
|
765
752
|
const binaries: ts.Expression[] = tuple.elements
|
|
766
753
|
.filter((meta) => meta.rest === null)
|
|
@@ -775,8 +762,6 @@ export namespace CheckerProgrammer {
|
|
|
775
762
|
? `${explore.postfix.slice(0, -1)}[${index}]"`
|
|
776
763
|
: `"[${index}]"`,
|
|
777
764
|
},
|
|
778
|
-
tuple.of_map === true && index !== 1 ? [] : tagList,
|
|
779
|
-
tuple.of_map === true && index !== 1 ? [] : jsDocTags,
|
|
780
765
|
),
|
|
781
766
|
);
|
|
782
767
|
const rest: ts.Expression | null =
|
|
@@ -798,8 +783,6 @@ export namespace CheckerProgrammer {
|
|
|
798
783
|
...explore,
|
|
799
784
|
start: tuple.elements.length - 1,
|
|
800
785
|
},
|
|
801
|
-
tagList,
|
|
802
|
-
jsDocTags,
|
|
803
786
|
)
|
|
804
787
|
: null;
|
|
805
788
|
|
|
@@ -882,8 +865,6 @@ export namespace CheckerProgrammer {
|
|
|
882
865
|
input: ts.Expression,
|
|
883
866
|
sets: Metadata[],
|
|
884
867
|
explore: IExplore,
|
|
885
|
-
tags: IMetadataTag[],
|
|
886
|
-
jsDocTags: IJsDocTagInfo[],
|
|
887
868
|
): ts.Expression =>
|
|
888
869
|
ts.factory.createCallExpression(
|
|
889
870
|
UnionExplorer.set({
|
|
@@ -895,7 +876,7 @@ export namespace CheckerProgrammer {
|
|
|
895
876
|
ts.factory.createReturnStatement(
|
|
896
877
|
config.joiner.failure(input, expected, explore),
|
|
897
878
|
),
|
|
898
|
-
})([])(input, sets, explore
|
|
879
|
+
})([])(input, sets, explore),
|
|
899
880
|
undefined,
|
|
900
881
|
undefined,
|
|
901
882
|
);
|
|
@@ -908,8 +889,6 @@ export namespace CheckerProgrammer {
|
|
|
908
889
|
input: ts.Expression,
|
|
909
890
|
maps: Metadata.Entry[],
|
|
910
891
|
explore: IExplore,
|
|
911
|
-
tags: IMetadataTag[],
|
|
912
|
-
jsDocTags: IJsDocTagInfo[],
|
|
913
892
|
): ts.Expression =>
|
|
914
893
|
ts.factory.createCallExpression(
|
|
915
894
|
UnionExplorer.map({
|
|
@@ -926,8 +905,6 @@ export namespace CheckerProgrammer {
|
|
|
926
905
|
...explore,
|
|
927
906
|
postfix: `${explore.postfix}[0]`,
|
|
928
907
|
},
|
|
929
|
-
[],
|
|
930
|
-
[],
|
|
931
908
|
),
|
|
932
909
|
func(
|
|
933
910
|
ts.factory.createElementAccessExpression(
|
|
@@ -939,8 +916,6 @@ export namespace CheckerProgrammer {
|
|
|
939
916
|
...explore,
|
|
940
917
|
postfix: `${explore.postfix}[1]`,
|
|
941
918
|
},
|
|
942
|
-
[],
|
|
943
|
-
[],
|
|
944
919
|
),
|
|
945
920
|
);
|
|
946
921
|
},
|
|
@@ -951,7 +926,7 @@ export namespace CheckerProgrammer {
|
|
|
951
926
|
ts.factory.createReturnStatement(
|
|
952
927
|
config.joiner.failure(input, expected, explore),
|
|
953
928
|
),
|
|
954
|
-
})([])(input, maps, explore
|
|
929
|
+
})([])(input, maps, explore),
|
|
955
930
|
undefined,
|
|
956
931
|
undefined,
|
|
957
932
|
);
|
|
@@ -964,8 +939,6 @@ export namespace CheckerProgrammer {
|
|
|
964
939
|
input: ts.Expression,
|
|
965
940
|
tuples: MetadataTuple[],
|
|
966
941
|
explore: IExplore,
|
|
967
|
-
tags: IMetadataTag[],
|
|
968
|
-
jsDocTags: IJsDocTagInfo[],
|
|
969
942
|
): ts.Expression =>
|
|
970
943
|
explore_array_like_union_types(config)(importer)(
|
|
971
944
|
UnionExplorer.tuple({
|
|
@@ -978,7 +951,7 @@ export namespace CheckerProgrammer {
|
|
|
978
951
|
config.joiner.failure(input, expected, explore),
|
|
979
952
|
),
|
|
980
953
|
}),
|
|
981
|
-
)(input, tuples, explore
|
|
954
|
+
)(input, tuples, explore);
|
|
982
955
|
|
|
983
956
|
const explore_arrays =
|
|
984
957
|
(project: IProject) =>
|
|
@@ -988,8 +961,6 @@ export namespace CheckerProgrammer {
|
|
|
988
961
|
input: ts.Expression,
|
|
989
962
|
arrays: MetadataArray[],
|
|
990
963
|
explore: IExplore,
|
|
991
|
-
tags: IMetadataTag[],
|
|
992
|
-
jsDocTags: IJsDocTagInfo[],
|
|
993
964
|
): ts.Expression =>
|
|
994
965
|
explore_array_like_union_types(config)(importer)(
|
|
995
966
|
UnionExplorer.array({
|
|
@@ -1002,7 +973,7 @@ export namespace CheckerProgrammer {
|
|
|
1002
973
|
config.joiner.failure(input, expected, explore),
|
|
1003
974
|
),
|
|
1004
975
|
}),
|
|
1005
|
-
)(input, arrays, explore
|
|
976
|
+
)(input, arrays, explore);
|
|
1006
977
|
|
|
1007
978
|
const explore_arrays_and_tuples =
|
|
1008
979
|
(project: IProject) =>
|
|
@@ -1012,45 +983,42 @@ export namespace CheckerProgrammer {
|
|
|
1012
983
|
input: ts.Expression,
|
|
1013
984
|
elements: Array<MetadataArray | MetadataTuple>,
|
|
1014
985
|
explore: IExplore,
|
|
1015
|
-
tags: IMetadataTag[],
|
|
1016
|
-
jsDocTags: IJsDocTagInfo[],
|
|
1017
986
|
): ts.Expression =>
|
|
1018
987
|
explore_array_like_union_types(config)(importer)(
|
|
1019
988
|
UnionExplorer.array_or_tuple({
|
|
1020
|
-
checker: (front, target, explore,
|
|
989
|
+
checker: (front, target, explore, array) =>
|
|
1021
990
|
target instanceof MetadataTuple
|
|
1022
991
|
? decode_tuple(project)(config)(importer)(
|
|
1023
992
|
front,
|
|
1024
993
|
target,
|
|
1025
994
|
explore,
|
|
1026
|
-
tags,
|
|
1027
|
-
jsDocTags,
|
|
1028
995
|
)
|
|
1029
996
|
: config.atomist(explore)({
|
|
997
|
+
expected: elements
|
|
998
|
+
.map((elem) =>
|
|
999
|
+
elem instanceof MetadataArray
|
|
1000
|
+
? elem.getName()
|
|
1001
|
+
: elem.type.name,
|
|
1002
|
+
)
|
|
1003
|
+
.join(" | "),
|
|
1030
1004
|
expression: decode(project)(config)(importer)(
|
|
1031
1005
|
front,
|
|
1032
1006
|
target,
|
|
1033
1007
|
explore,
|
|
1034
|
-
tags,
|
|
1035
|
-
jsDocTags,
|
|
1036
1008
|
),
|
|
1037
|
-
|
|
1009
|
+
conditions: [],
|
|
1038
1010
|
})(array),
|
|
1039
|
-
decoder: (input, target, explore
|
|
1011
|
+
decoder: (input, target, explore) =>
|
|
1040
1012
|
target instanceof MetadataTuple
|
|
1041
1013
|
? decode_tuple(project)(config)(importer)(
|
|
1042
1014
|
input,
|
|
1043
1015
|
target,
|
|
1044
1016
|
explore,
|
|
1045
|
-
tags,
|
|
1046
|
-
jsDocTags,
|
|
1047
1017
|
)
|
|
1048
1018
|
: decode_array(project)(config)(importer)(
|
|
1049
1019
|
input,
|
|
1050
1020
|
target,
|
|
1051
1021
|
explore,
|
|
1052
|
-
tags,
|
|
1053
|
-
jsDocTags,
|
|
1054
1022
|
),
|
|
1055
1023
|
empty: config.success,
|
|
1056
1024
|
success: config.success,
|
|
@@ -1059,7 +1027,7 @@ export namespace CheckerProgrammer {
|
|
|
1059
1027
|
config.joiner.failure(input, expected, explore),
|
|
1060
1028
|
),
|
|
1061
1029
|
}),
|
|
1062
|
-
)(input, elements, explore
|
|
1030
|
+
)(input, elements, explore);
|
|
1063
1031
|
|
|
1064
1032
|
const explore_array_like_union_types =
|
|
1065
1033
|
(config: IConfig) =>
|
|
@@ -1071,29 +1039,19 @@ export namespace CheckerProgrammer {
|
|
|
1071
1039
|
input: ts.Expression,
|
|
1072
1040
|
elements: T[],
|
|
1073
1041
|
explore: IExplore,
|
|
1074
|
-
tags: IMetadataTag[],
|
|
1075
|
-
jsDocTags: IJsDocTagInfo[],
|
|
1076
1042
|
) => ts.ArrowFunction,
|
|
1077
1043
|
) =>
|
|
1078
1044
|
(
|
|
1079
1045
|
input: ts.Expression,
|
|
1080
1046
|
elements: T[],
|
|
1081
1047
|
explore: IExplore,
|
|
1082
|
-
tags: IMetadataTag[],
|
|
1083
|
-
jsDocTags: IJsDocTagInfo[],
|
|
1084
1048
|
): ts.Expression => {
|
|
1085
1049
|
const arrow =
|
|
1086
1050
|
(parameters: ts.ParameterDeclaration[]) =>
|
|
1087
1051
|
(explore: IExplore) =>
|
|
1088
1052
|
(input: ts.Expression): ts.ArrowFunction =>
|
|
1089
|
-
factory(parameters)(
|
|
1090
|
-
|
|
1091
|
-
elements,
|
|
1092
|
-
explore,
|
|
1093
|
-
tags,
|
|
1094
|
-
jsDocTags,
|
|
1095
|
-
);
|
|
1096
|
-
if (elements.every((e) => e.recursive === false))
|
|
1053
|
+
factory(parameters)(input, elements, explore);
|
|
1054
|
+
if (elements.every((e) => e.type.recursive === false))
|
|
1097
1055
|
ts.factory.createCallExpression(
|
|
1098
1056
|
arrow([])(explore)(input),
|
|
1099
1057
|
undefined,
|
|
@@ -1109,7 +1067,7 @@ export namespace CheckerProgrammer {
|
|
|
1109
1067
|
ts.factory.createIdentifier(
|
|
1110
1068
|
importer.emplaceUnion(
|
|
1111
1069
|
config.prefix,
|
|
1112
|
-
elements.map((e) => e.name).join(" | "),
|
|
1070
|
+
elements.map((e) => e.type.name).join(" | "),
|
|
1113
1071
|
() =>
|
|
1114
1072
|
arrow(
|
|
1115
1073
|
FeatureProgrammer.parameterDeclarations(
|
|
@@ -1128,7 +1086,7 @@ export namespace CheckerProgrammer {
|
|
|
1128
1086
|
),
|
|
1129
1087
|
config.joiner.failure(
|
|
1130
1088
|
input,
|
|
1131
|
-
elements.map((e) => e.name).join(" | "),
|
|
1089
|
+
elements.map((e) => e.type.name).join(" | "),
|
|
1132
1090
|
explore,
|
|
1133
1091
|
),
|
|
1134
1092
|
);
|
|
@@ -6,8 +6,6 @@ import { StatementFactory } from "../factories/StatementFactory";
|
|
|
6
6
|
import { TypeFactory } from "../factories/TypeFactory";
|
|
7
7
|
import { ValueFactory } from "../factories/ValueFactory";
|
|
8
8
|
|
|
9
|
-
import { IJsDocTagInfo } from "../schemas/metadata/IJsDocTagInfo";
|
|
10
|
-
import { IMetadataTag } from "../schemas/metadata/IMetadataTag";
|
|
11
9
|
import { Metadata } from "../schemas/metadata/Metadata";
|
|
12
10
|
import { MetadataArray } from "../schemas/metadata/MetadataArray";
|
|
13
11
|
import { MetadataObject } from "../schemas/metadata/MetadataObject";
|
|
@@ -191,13 +189,7 @@ export namespace FeatureProgrammer {
|
|
|
191
189
|
T,
|
|
192
190
|
Output extends ts.ConciseBody = ts.ConciseBody,
|
|
193
191
|
> {
|
|
194
|
-
(
|
|
195
|
-
input: ts.Expression,
|
|
196
|
-
target: T,
|
|
197
|
-
explore: IExplore,
|
|
198
|
-
metaTags: IMetadataTag[],
|
|
199
|
-
jsDocTags: ts.JSDocTagInfo[],
|
|
200
|
-
): Output;
|
|
192
|
+
(input: ts.Expression, target: T, explore: IExplore): Output;
|
|
201
193
|
}
|
|
202
194
|
|
|
203
195
|
/* -----------------------------------------------------------
|
|
@@ -220,8 +212,6 @@ export namespace FeatureProgrammer {
|
|
|
220
212
|
from: "top",
|
|
221
213
|
postfix: '""',
|
|
222
214
|
},
|
|
223
|
-
[],
|
|
224
|
-
[],
|
|
225
215
|
);
|
|
226
216
|
|
|
227
217
|
// RETURNS THE OPTIMAL ARROW FUNCTION
|
|
@@ -324,18 +314,12 @@ export namespace FeatureProgrammer {
|
|
|
324
314
|
),
|
|
325
315
|
TypeFactory.keyword("any"),
|
|
326
316
|
undefined,
|
|
327
|
-
explorer(
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
from: "object",
|
|
334
|
-
postfix: "",
|
|
335
|
-
},
|
|
336
|
-
[],
|
|
337
|
-
[],
|
|
338
|
-
),
|
|
317
|
+
explorer(input, meta, {
|
|
318
|
+
tracable: config.path || config.trace,
|
|
319
|
+
source: "function",
|
|
320
|
+
from: "object",
|
|
321
|
+
postfix: "",
|
|
322
|
+
}),
|
|
339
323
|
);
|
|
340
324
|
};
|
|
341
325
|
|
|
@@ -349,8 +333,6 @@ export namespace FeatureProgrammer {
|
|
|
349
333
|
combiner: (
|
|
350
334
|
input: ts.Expression,
|
|
351
335
|
arrow: ts.ArrowFunction,
|
|
352
|
-
metaTags: IMetadataTag[],
|
|
353
|
-
jsDocTags: ts.JSDocTagInfo[],
|
|
354
336
|
) => ts.Expression,
|
|
355
337
|
) => {
|
|
356
338
|
const rand: string = importer.increment().toString();
|
|
@@ -368,8 +350,6 @@ export namespace FeatureProgrammer {
|
|
|
368
350
|
input: ts.Expression,
|
|
369
351
|
array: MetadataArray,
|
|
370
352
|
explore: IExplore,
|
|
371
|
-
metaTags: IMetadataTag[],
|
|
372
|
-
jsDocTags: IJsDocTagInfo[],
|
|
373
353
|
) => {
|
|
374
354
|
const arrow: ts.ArrowFunction = ts.factory.createArrowFunction(
|
|
375
355
|
undefined,
|
|
@@ -385,7 +365,7 @@ export namespace FeatureProgrammer {
|
|
|
385
365
|
undefined,
|
|
386
366
|
config.decoder()(
|
|
387
367
|
ValueFactory.INPUT("elem"),
|
|
388
|
-
array.value,
|
|
368
|
+
array.type.value,
|
|
389
369
|
{
|
|
390
370
|
tracable: explore.tracable,
|
|
391
371
|
source: explore.source,
|
|
@@ -394,11 +374,9 @@ export namespace FeatureProgrammer {
|
|
|
394
374
|
explore.postfix,
|
|
395
375
|
)(rand),
|
|
396
376
|
},
|
|
397
|
-
metaTags,
|
|
398
|
-
jsDocTags,
|
|
399
377
|
),
|
|
400
378
|
);
|
|
401
|
-
return combiner(input, arrow
|
|
379
|
+
return combiner(input, arrow);
|
|
402
380
|
};
|
|
403
381
|
};
|
|
404
382
|
|