typia 9.7.1 → 9.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/AssertionGuard.d.mts +27 -25
- package/lib/AssertionGuard.d.ts +27 -25
- package/lib/CamelCase.d.mts +1 -1
- package/lib/CamelCase.d.ts +1 -1
- package/lib/IRandomGenerator.d.mts +44 -42
- package/lib/IRandomGenerator.d.ts +44 -42
- package/lib/IReadableURLSearchParams.d.mts +2 -2
- package/lib/IReadableURLSearchParams.d.ts +2 -2
- package/lib/PascalCase.d.mts +1 -1
- package/lib/PascalCase.d.ts +1 -1
- package/lib/Primitive.d.mts +20 -22
- package/lib/Primitive.d.ts +20 -22
- package/lib/Resolved.d.mts +16 -18
- package/lib/Resolved.d.ts +16 -18
- package/lib/SnakeCase.d.mts +3 -2
- package/lib/SnakeCase.d.ts +3 -2
- package/lib/TypeGuardError.d.mts +88 -61
- package/lib/TypeGuardError.d.ts +88 -61
- package/lib/TypeGuardError.js +40 -29
- package/lib/TypeGuardError.js.map +1 -1
- package/lib/TypeGuardError.mjs +70 -48
- package/lib/factories/MetadataCollection.js +4 -12
- package/lib/factories/MetadataCollection.js.map +1 -1
- package/lib/factories/MetadataCollection.mjs +4 -12
- package/lib/factories/MetadataCommentTagFactory.js +5 -15
- package/lib/factories/MetadataCommentTagFactory.js.map +1 -1
- package/lib/factories/MetadataCommentTagFactory.mjs +5 -15
- package/lib/factories/MetadataFactory.js +1 -3
- package/lib/factories/MetadataFactory.js.map +1 -1
- package/lib/factories/MetadataFactory.mjs +1 -3
- package/lib/factories/ProtobufFactory.js +1 -3
- package/lib/factories/ProtobufFactory.js.map +1 -1
- package/lib/factories/ProtobufFactory.mjs +1 -3
- package/lib/functional.d.mts +196 -195
- package/lib/functional.d.ts +196 -195
- package/lib/functional.js +18 -54
- package/lib/functional.js.map +1 -1
- package/lib/functional.mjs +18 -54
- package/lib/http.d.mts +303 -319
- package/lib/http.d.ts +303 -319
- package/lib/http.js +26 -78
- package/lib/http.js.map +1 -1
- package/lib/http.mjs +26 -78
- package/lib/internal/_ProtobufReader.d.mts +3 -9
- package/lib/internal/_ProtobufReader.d.ts +3 -9
- package/lib/internal/_ProtobufReader.js.map +1 -1
- package/lib/internal/_ProtobufReader.mjs +3 -9
- package/lib/internal/_ProtobufSizer.d.mts +4 -12
- package/lib/internal/_ProtobufSizer.d.ts +4 -12
- package/lib/internal/_ProtobufSizer.js.map +1 -1
- package/lib/internal/_ProtobufSizer.mjs +4 -12
- package/lib/internal/_ProtobufWriter.d.mts +5 -15
- package/lib/internal/_ProtobufWriter.d.ts +5 -15
- package/lib/internal/_ProtobufWriter.js.map +1 -1
- package/lib/internal/_ProtobufWriter.mjs +5 -15
- package/lib/internal/_jsonStringifyString.d.mts +4 -4
- package/lib/internal/_jsonStringifyString.d.ts +4 -4
- package/lib/internal/_jsonStringifyString.js +4 -4
- package/lib/internal/_jsonStringifyString.mjs +4 -4
- package/lib/json.d.mts +174 -195
- package/lib/json.d.ts +174 -195
- package/lib/json.js +16 -48
- package/lib/json.js.map +1 -1
- package/lib/json.mjs +16 -48
- package/lib/llm.d.mts +275 -192
- package/lib/llm.d.ts +275 -192
- package/lib/llm.js +4 -12
- package/lib/llm.js.map +1 -1
- package/lib/llm.mjs +4 -12
- package/lib/misc.d.mts +149 -172
- package/lib/misc.d.ts +149 -172
- package/lib/misc.js +17 -51
- package/lib/misc.js.map +1 -1
- package/lib/misc.mjs +17 -51
- package/lib/module.d.mts +263 -275
- package/lib/module.d.ts +263 -275
- package/lib/module.js +18 -54
- package/lib/module.js.map +1 -1
- package/lib/module.mjs +18 -54
- package/lib/notations.d.mts +153 -174
- package/lib/notations.d.ts +153 -174
- package/lib/notations.js +24 -72
- package/lib/notations.js.map +1 -1
- package/lib/notations.mjs +24 -72
- package/lib/programmers/FeatureProgrammer.d.mts +19 -41
- package/lib/programmers/FeatureProgrammer.d.ts +19 -41
- package/lib/programmers/FeatureProgrammer.js.map +1 -1
- package/lib/programmers/ImportProgrammer.js +3 -9
- package/lib/programmers/ImportProgrammer.js.map +1 -1
- package/lib/programmers/ImportProgrammer.mjs +3 -9
- package/lib/programmers/RandomProgrammer.js +6 -0
- package/lib/programmers/RandomProgrammer.js.map +1 -1
- package/lib/programmers/RandomProgrammer.mjs +6 -0
- package/lib/programmers/helpers/ProtobufWire.d.mts +13 -13
- package/lib/programmers/helpers/ProtobufWire.d.ts +13 -13
- package/lib/programmers/internal/check_array_length.js +2 -6
- package/lib/programmers/internal/check_array_length.js.map +1 -1
- package/lib/programmers/internal/check_array_length.mjs +2 -6
- package/lib/programmers/internal/check_bigint.js +2 -6
- package/lib/programmers/internal/check_bigint.js.map +1 -1
- package/lib/programmers/internal/check_bigint.mjs +2 -6
- package/lib/programmers/internal/check_dynamic_key.js +2 -6
- package/lib/programmers/internal/check_dynamic_key.js.map +1 -1
- package/lib/programmers/internal/check_dynamic_key.mjs +2 -6
- package/lib/programmers/internal/check_dynamic_properties.js +3 -9
- package/lib/programmers/internal/check_dynamic_properties.js.map +1 -1
- package/lib/programmers/internal/check_dynamic_properties.mjs +3 -9
- package/lib/programmers/internal/check_everything.js +1 -3
- package/lib/programmers/internal/check_everything.js.map +1 -1
- package/lib/programmers/internal/check_everything.mjs +1 -3
- package/lib/programmers/internal/check_native.js +2 -6
- package/lib/programmers/internal/check_native.js.map +1 -1
- package/lib/programmers/internal/check_native.mjs +2 -6
- package/lib/programmers/internal/check_number.js +2 -6
- package/lib/programmers/internal/check_number.js.map +1 -1
- package/lib/programmers/internal/check_number.mjs +2 -6
- package/lib/programmers/internal/check_object.js +2 -6
- package/lib/programmers/internal/check_object.js.map +1 -1
- package/lib/programmers/internal/check_object.mjs +2 -6
- package/lib/programmers/internal/check_string.js +2 -6
- package/lib/programmers/internal/check_string.js.map +1 -1
- package/lib/programmers/internal/check_string.mjs +2 -6
- package/lib/programmers/internal/check_template.js +1 -3
- package/lib/programmers/internal/check_template.js.map +1 -1
- package/lib/programmers/internal/check_template.mjs +1 -3
- package/lib/programmers/internal/check_union_array_like.js +1 -3
- package/lib/programmers/internal/check_union_array_like.js.map +1 -1
- package/lib/programmers/internal/check_union_array_like.mjs +1 -3
- package/lib/programmers/internal/decode_union_object.js +2 -6
- package/lib/programmers/internal/decode_union_object.js.map +1 -1
- package/lib/programmers/internal/decode_union_object.mjs +2 -6
- package/lib/programmers/internal/feature_object_entries.js +1 -3
- package/lib/programmers/internal/feature_object_entries.js.map +1 -1
- package/lib/programmers/internal/feature_object_entries.mjs +1 -3
- package/lib/programmers/internal/json_schema_escaped.js +2 -6
- package/lib/programmers/internal/json_schema_escaped.js.map +1 -1
- package/lib/programmers/internal/json_schema_escaped.mjs +2 -6
- package/lib/programmers/internal/json_schema_object.js +3 -9
- package/lib/programmers/internal/json_schema_object.js.map +1 -1
- package/lib/programmers/internal/json_schema_object.mjs +3 -9
- package/lib/programmers/internal/metadata_to_pattern.js +1 -3
- package/lib/programmers/internal/metadata_to_pattern.js.map +1 -1
- package/lib/programmers/internal/metadata_to_pattern.mjs +1 -3
- package/lib/programmers/internal/postfix_of_tuple.js +1 -3
- package/lib/programmers/internal/postfix_of_tuple.js.map +1 -1
- package/lib/programmers/internal/postfix_of_tuple.mjs +1 -3
- package/lib/programmers/internal/prune_object_properties.js +1 -3
- package/lib/programmers/internal/prune_object_properties.js.map +1 -1
- package/lib/programmers/internal/prune_object_properties.mjs +1 -3
- package/lib/programmers/internal/stringify_dynamic_properties.js +2 -6
- package/lib/programmers/internal/stringify_dynamic_properties.js.map +1 -1
- package/lib/programmers/internal/stringify_dynamic_properties.mjs +2 -6
- package/lib/programmers/internal/stringify_native.js +1 -3
- package/lib/programmers/internal/stringify_native.js.map +1 -1
- package/lib/programmers/internal/stringify_native.mjs +1 -3
- package/lib/programmers/internal/stringify_regular_properties.js +2 -6
- package/lib/programmers/internal/stringify_regular_properties.js.map +1 -1
- package/lib/programmers/internal/stringify_regular_properties.mjs +2 -6
- package/lib/programmers/internal/template_to_pattern.js +1 -3
- package/lib/programmers/internal/template_to_pattern.js.map +1 -1
- package/lib/programmers/internal/template_to_pattern.mjs +1 -3
- package/lib/programmers/internal/wrap_metadata_rest_tuple.js +1 -3
- package/lib/programmers/internal/wrap_metadata_rest_tuple.js.map +1 -1
- package/lib/programmers/internal/wrap_metadata_rest_tuple.mjs +1 -3
- package/lib/programmers/json/JsonStringifyProgrammer.js +2 -2
- package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
- package/lib/programmers/json/JsonStringifyProgrammer.mjs +2 -2
- package/lib/protobuf.d.mts +290 -297
- package/lib/protobuf.d.ts +290 -297
- package/lib/protobuf.js +17 -51
- package/lib/protobuf.js.map +1 -1
- package/lib/protobuf.mjs +17 -51
- package/lib/reflect.d.mts +2 -4
- package/lib/reflect.d.ts +2 -4
- package/lib/reflect.js +1 -3
- package/lib/reflect.js.map +1 -1
- package/lib/reflect.mjs +1 -3
- package/lib/schemas/json/IJsonApplication.d.mts +4 -4
- package/lib/schemas/json/IJsonApplication.d.ts +4 -4
- package/lib/schemas/json/IJsonSchemaCollection.d.mts +73 -56
- package/lib/schemas/json/IJsonSchemaCollection.d.ts +73 -56
- package/lib/schemas/json/IJsonSchemaUnit.d.mts +83 -70
- package/lib/schemas/json/IJsonSchemaUnit.d.ts +83 -70
- package/lib/schemas/metadata/Metadata.d.mts +1 -3
- package/lib/schemas/metadata/Metadata.d.ts +1 -3
- package/lib/schemas/metadata/Metadata.js +9 -27
- package/lib/schemas/metadata/Metadata.js.map +1 -1
- package/lib/schemas/metadata/Metadata.mjs +9 -27
- package/lib/schemas/metadata/MetadataAliasType.d.mts +1 -3
- package/lib/schemas/metadata/MetadataAliasType.d.ts +1 -3
- package/lib/schemas/metadata/MetadataAliasType.js +3 -9
- package/lib/schemas/metadata/MetadataAliasType.js.map +1 -1
- package/lib/schemas/metadata/MetadataAliasType.mjs +3 -9
- package/lib/schemas/metadata/MetadataApplication.d.mts +1 -3
- package/lib/schemas/metadata/MetadataApplication.d.ts +1 -3
- package/lib/schemas/metadata/MetadataApplication.js +2 -6
- package/lib/schemas/metadata/MetadataApplication.js.map +1 -1
- package/lib/schemas/metadata/MetadataApplication.mjs +2 -6
- package/lib/schemas/metadata/MetadataArray.d.mts +1 -3
- package/lib/schemas/metadata/MetadataArray.d.ts +1 -3
- package/lib/schemas/metadata/MetadataArray.js +1 -3
- package/lib/schemas/metadata/MetadataArray.js.map +1 -1
- package/lib/schemas/metadata/MetadataArray.mjs +1 -3
- package/lib/schemas/metadata/MetadataArrayType.d.mts +1 -3
- package/lib/schemas/metadata/MetadataArrayType.d.ts +1 -3
- package/lib/schemas/metadata/MetadataArrayType.js +3 -9
- package/lib/schemas/metadata/MetadataArrayType.js.map +1 -1
- package/lib/schemas/metadata/MetadataArrayType.mjs +3 -9
- package/lib/schemas/metadata/MetadataAtomic.js +1 -3
- package/lib/schemas/metadata/MetadataAtomic.js.map +1 -1
- package/lib/schemas/metadata/MetadataAtomic.mjs +1 -3
- package/lib/schemas/metadata/MetadataEscaped.d.mts +1 -3
- package/lib/schemas/metadata/MetadataEscaped.d.ts +1 -3
- package/lib/schemas/metadata/MetadataEscaped.js +3 -9
- package/lib/schemas/metadata/MetadataEscaped.js.map +1 -1
- package/lib/schemas/metadata/MetadataEscaped.mjs +3 -9
- package/lib/schemas/metadata/MetadataFunction.d.mts +1 -3
- package/lib/schemas/metadata/MetadataFunction.d.ts +1 -3
- package/lib/schemas/metadata/MetadataFunction.js +2 -6
- package/lib/schemas/metadata/MetadataFunction.js.map +1 -1
- package/lib/schemas/metadata/MetadataFunction.mjs +2 -6
- package/lib/schemas/metadata/MetadataObject.d.mts +1 -3
- package/lib/schemas/metadata/MetadataObject.d.ts +1 -3
- package/lib/schemas/metadata/MetadataObject.js +1 -3
- package/lib/schemas/metadata/MetadataObject.js.map +1 -1
- package/lib/schemas/metadata/MetadataObject.mjs +1 -3
- package/lib/schemas/metadata/MetadataObjectType.d.mts +1 -3
- package/lib/schemas/metadata/MetadataObjectType.d.ts +1 -3
- package/lib/schemas/metadata/MetadataObjectType.js +5 -15
- package/lib/schemas/metadata/MetadataObjectType.js.map +1 -1
- package/lib/schemas/metadata/MetadataObjectType.mjs +6 -18
- package/lib/schemas/metadata/MetadataParameter.js +1 -3
- package/lib/schemas/metadata/MetadataParameter.js.map +1 -1
- package/lib/schemas/metadata/MetadataParameter.mjs +1 -3
- package/lib/schemas/metadata/MetadataProperty.d.mts +1 -3
- package/lib/schemas/metadata/MetadataProperty.d.ts +1 -3
- package/lib/schemas/metadata/MetadataProperty.js +3 -9
- package/lib/schemas/metadata/MetadataProperty.js.map +1 -1
- package/lib/schemas/metadata/MetadataProperty.mjs +3 -9
- package/lib/schemas/metadata/MetadataTemplate.js +1 -3
- package/lib/schemas/metadata/MetadataTemplate.js.map +1 -1
- package/lib/schemas/metadata/MetadataTemplate.mjs +1 -3
- package/lib/schemas/metadata/MetadataTuple.d.mts +1 -3
- package/lib/schemas/metadata/MetadataTuple.d.ts +1 -3
- package/lib/schemas/metadata/MetadataTuple.js +2 -6
- package/lib/schemas/metadata/MetadataTuple.js.map +1 -1
- package/lib/schemas/metadata/MetadataTuple.mjs +2 -6
- package/lib/schemas/metadata/MetadataTupleType.js +2 -6
- package/lib/schemas/metadata/MetadataTupleType.js.map +1 -1
- package/lib/schemas/metadata/MetadataTupleType.mjs +3 -9
- package/lib/tags/Constant.d.mts +16 -16
- package/lib/tags/Constant.d.ts +16 -16
- package/lib/tags/ContentMediaType.d.mts +7 -7
- package/lib/tags/ContentMediaType.d.ts +7 -7
- package/lib/tags/Default.d.mts +19 -19
- package/lib/tags/Default.d.ts +19 -19
- package/lib/tags/Example.d.mts +18 -18
- package/lib/tags/Example.d.ts +18 -18
- package/lib/tags/Examples.d.mts +23 -23
- package/lib/tags/Examples.d.ts +23 -23
- package/lib/tags/ExclusiveMaximum.d.mts +8 -5
- package/lib/tags/ExclusiveMaximum.d.ts +8 -5
- package/lib/tags/ExclusiveMinimum.d.mts +8 -5
- package/lib/tags/ExclusiveMinimum.d.ts +8 -5
- package/lib/tags/Format.d.mts +12 -8
- package/lib/tags/Format.d.ts +12 -8
- package/lib/tags/JsonSchemaPlugin.d.mts +20 -18
- package/lib/tags/JsonSchemaPlugin.d.ts +20 -18
- package/lib/tags/MaxItems.d.mts +9 -9
- package/lib/tags/MaxItems.d.ts +9 -9
- package/lib/tags/MaxLength.d.mts +6 -5
- package/lib/tags/MaxLength.d.ts +6 -5
- package/lib/tags/Maximum.d.mts +9 -7
- package/lib/tags/Maximum.d.ts +9 -7
- package/lib/tags/MinItems.d.mts +9 -9
- package/lib/tags/MinItems.d.ts +9 -9
- package/lib/tags/MinLength.d.mts +6 -5
- package/lib/tags/MinLength.d.ts +6 -5
- package/lib/tags/Minimum.d.mts +9 -7
- package/lib/tags/Minimum.d.ts +9 -7
- package/lib/tags/MultipleOf.d.mts +10 -7
- package/lib/tags/MultipleOf.d.ts +10 -7
- package/lib/tags/Pattern.d.mts +7 -4
- package/lib/tags/Pattern.d.ts +7 -4
- package/lib/tags/Sequence.d.mts +19 -17
- package/lib/tags/Sequence.d.ts +19 -17
- package/lib/tags/TagBase.d.mts +21 -28
- package/lib/tags/TagBase.d.ts +21 -28
- package/lib/tags/Type.d.mts +12 -11
- package/lib/tags/Type.d.ts +12 -11
- package/lib/tags/UniqueItems.d.mts +10 -9
- package/lib/tags/UniqueItems.d.ts +10 -9
- package/lib/tags/internal/FormatCheatSheet.d.mts +1 -3
- package/lib/tags/internal/FormatCheatSheet.d.ts +1 -3
- package/lib/tags/internal/FormatCheatSheet.js +1 -3
- package/lib/tags/internal/FormatCheatSheet.js.map +1 -1
- package/lib/tags/internal/FormatCheatSheet.mjs +1 -3
- package/lib/transformers/ITransformOptions.d.mts +27 -19
- package/lib/transformers/ITransformOptions.d.ts +27 -19
- package/lib/transformers/ImportTransformer.js +5 -10
- package/lib/transformers/ImportTransformer.js.map +1 -1
- package/lib/transformers/ImportTransformer.mjs +5 -10
- package/lib/transformers/NoTransformConfigurationError.js +1 -3
- package/lib/transformers/NoTransformConfigurationError.js.map +1 -1
- package/lib/transformers/NoTransformConfigurationError.mjs +1 -3
- package/lib/transformers/features/llm/LlmApplicationTransformer.js +1 -3
- package/lib/transformers/features/llm/LlmApplicationTransformer.js.map +1 -1
- package/lib/transformers/features/llm/LlmApplicationTransformer.mjs +1 -3
- package/lib/typings/Equal.d.mts +6 -6
- package/lib/typings/Equal.d.ts +6 -6
- package/package.json +2 -1
- package/src/AssertionGuard.ts +27 -25
- package/src/CamelCase.ts +1 -1
- package/src/IRandomGenerator.ts +44 -42
- package/src/IReadableURLSearchParams.ts +2 -2
- package/src/PascalCase.ts +1 -1
- package/src/Primitive.ts +20 -22
- package/src/Resolved.ts +16 -18
- package/src/SnakeCase.ts +3 -2
- package/src/TypeGuardError.ts +101 -64
- package/src/factories/MetadataCollection.ts +4 -12
- package/src/factories/MetadataCommentTagFactory.ts +8 -24
- package/src/factories/MetadataFactory.ts +1 -3
- package/src/factories/ProtobufFactory.ts +1 -3
- package/src/functional.ts +214 -249
- package/src/http.ts +329 -397
- package/src/internal/_ProtobufReader.ts +3 -9
- package/src/internal/_ProtobufSizer.ts +4 -12
- package/src/internal/_ProtobufWriter.ts +5 -15
- package/src/internal/_jsonStringifyString.ts +4 -4
- package/src/json.ts +190 -243
- package/src/llm.ts +279 -204
- package/src/misc.ts +166 -223
- package/src/module.ts +281 -329
- package/src/notations.ts +177 -246
- package/src/programmers/FeatureProgrammer.ts +19 -41
- package/src/programmers/ImportProgrammer.ts +3 -9
- package/src/programmers/RandomProgrammer.ts +6 -1
- package/src/programmers/helpers/ProtobufWire.ts +13 -13
- package/src/programmers/internal/check_array_length.ts +2 -6
- package/src/programmers/internal/check_bigint.ts +2 -6
- package/src/programmers/internal/check_dynamic_key.ts +2 -6
- package/src/programmers/internal/check_dynamic_properties.ts +3 -9
- package/src/programmers/internal/check_everything.ts +1 -3
- package/src/programmers/internal/check_native.ts +2 -6
- package/src/programmers/internal/check_number.ts +2 -6
- package/src/programmers/internal/check_object.ts +3 -9
- package/src/programmers/internal/check_string.ts +2 -6
- package/src/programmers/internal/check_template.ts +1 -3
- package/src/programmers/internal/check_union_array_like.ts +2 -6
- package/src/programmers/internal/decode_union_object.ts +3 -9
- package/src/programmers/internal/feature_object_entries.ts +1 -3
- package/src/programmers/internal/json_schema_escaped.ts +2 -6
- package/src/programmers/internal/json_schema_object.ts +4 -12
- package/src/programmers/internal/metadata_to_pattern.ts +1 -3
- package/src/programmers/internal/postfix_of_tuple.ts +1 -3
- package/src/programmers/internal/prune_object_properties.ts +1 -3
- package/src/programmers/internal/stringify_dynamic_properties.ts +2 -6
- package/src/programmers/internal/stringify_native.ts +1 -3
- package/src/programmers/internal/stringify_regular_properties.ts +2 -6
- package/src/programmers/internal/template_to_pattern.ts +1 -3
- package/src/programmers/internal/wrap_metadata_rest_tuple.ts +1 -3
- package/src/programmers/json/JsonStringifyProgrammer.ts +2 -2
- package/src/protobuf.ts +307 -348
- package/src/reflect.ts +3 -7
- package/src/schemas/json/IJsonApplication.ts +4 -4
- package/src/schemas/json/IJsonSchemaCollection.ts +73 -56
- package/src/schemas/json/IJsonSchemaUnit.ts +83 -70
- package/src/schemas/metadata/IMetadataTypeTag.ts +1 -3
- package/src/schemas/metadata/Metadata.ts +9 -27
- package/src/schemas/metadata/MetadataAliasType.ts +3 -9
- package/src/schemas/metadata/MetadataApplication.ts +2 -6
- package/src/schemas/metadata/MetadataArray.ts +1 -3
- package/src/schemas/metadata/MetadataArrayType.ts +3 -9
- package/src/schemas/metadata/MetadataAtomic.ts +1 -3
- package/src/schemas/metadata/MetadataEscaped.ts +3 -9
- package/src/schemas/metadata/MetadataFunction.ts +2 -6
- package/src/schemas/metadata/MetadataObject.ts +1 -3
- package/src/schemas/metadata/MetadataObjectType.ts +6 -18
- package/src/schemas/metadata/MetadataParameter.ts +1 -3
- package/src/schemas/metadata/MetadataProperty.ts +3 -9
- package/src/schemas/metadata/MetadataTemplate.ts +1 -3
- package/src/schemas/metadata/MetadataTuple.ts +2 -6
- package/src/schemas/metadata/MetadataTupleType.ts +3 -9
- package/src/tags/Constant.ts +16 -16
- package/src/tags/ContentMediaType.ts +7 -7
- package/src/tags/Default.ts +19 -19
- package/src/tags/Example.ts +18 -18
- package/src/tags/Examples.ts +23 -23
- package/src/tags/ExclusiveMaximum.ts +8 -5
- package/src/tags/ExclusiveMinimum.ts +8 -5
- package/src/tags/Format.ts +12 -8
- package/src/tags/JsonSchemaPlugin.ts +20 -18
- package/src/tags/MaxItems.ts +9 -9
- package/src/tags/MaxLength.ts +6 -5
- package/src/tags/Maximum.ts +9 -7
- package/src/tags/MinItems.ts +9 -9
- package/src/tags/MinLength.ts +6 -5
- package/src/tags/Minimum.ts +9 -7
- package/src/tags/MultipleOf.ts +10 -7
- package/src/tags/Pattern.ts +7 -4
- package/src/tags/Sequence.ts +19 -17
- package/src/tags/TagBase.ts +21 -28
- package/src/tags/Type.ts +12 -11
- package/src/tags/UniqueItems.ts +10 -9
- package/src/tags/internal/FormatCheatSheet.ts +1 -3
- package/src/transformers/ITransformOptions.ts +27 -19
- package/src/transformers/ImportTransformer.ts +5 -10
- package/src/transformers/NoTransformConfigurationError.ts +1 -3
- package/src/transformers/features/llm/LlmApplicationTransformer.ts +1 -3
- package/src/typings/Equal.ts +6 -6
package/lib/Resolved.d.ts
CHANGED
|
@@ -5,30 +5,28 @@ import { ValueOf } from "./typings/ValueOf";
|
|
|
5
5
|
/**
|
|
6
6
|
* Resolved type that erases every method.
|
|
7
7
|
*
|
|
8
|
-
* `Resolved` is a TMP (Type Meta Programming) type which converts
|
|
9
|
-
*
|
|
8
|
+
* `Resolved` is a TMP (Type Meta Programming) type which converts its argument
|
|
9
|
+
* as a resolved type that erases every method property.
|
|
10
10
|
*
|
|
11
|
-
* If the target argument is a built-in class which returns its origin primitive
|
|
12
|
-
* through the `valueOf()` method like the `String` or `Number`, its return
|
|
13
|
-
* be the `string` or `number`. Otherwise, if the built-in class does
|
|
14
|
-
* `valueOf()` method, the return type will be the same as the
|
|
11
|
+
* If the target argument is a built-in class which returns its origin primitive
|
|
12
|
+
* type through the `valueOf()` method like the `String` or `Number`, its return
|
|
13
|
+
* type will be the `string` or `number`. Otherwise, if the built-in class does
|
|
14
|
+
* not have the `valueOf()` method, the return type will be the same as the
|
|
15
|
+
* target argument.
|
|
15
16
|
*
|
|
16
|
-
* Otherwise, if the target argument is a type of custom class, all of its
|
|
17
|
-
* will be erased and its prototype will be changed to the
|
|
18
|
-
* Therefore, the return type of the TMP type will finally
|
|
17
|
+
* Otherwise, if the target argument is a type of custom class, all of its
|
|
18
|
+
* custom methods will be erased and its prototype will be changed to the
|
|
19
|
+
* primitive `object`. Therefore, the return type of the TMP type will finally
|
|
20
|
+
* be the resolved object.
|
|
19
21
|
*
|
|
20
|
-
* Before
|
|
21
|
-
* ------------------------|----------------------------------------
|
|
22
|
-
* `
|
|
23
|
-
* `
|
|
24
|
-
* `BigInt` | `bigint`
|
|
25
|
-
* `String` | `string`
|
|
26
|
-
* `Class` | `interface`
|
|
27
|
-
* Native Class or Others | No change
|
|
22
|
+
* Before | After
|
|
23
|
+
* ------------------------|---------------------------------------- `Boolean` |
|
|
24
|
+
* `boolean` `Number` | `number` `BigInt` | `bigint` `String` | `string` `Class`
|
|
25
|
+
* | `interface` Native Class or Others | No change
|
|
28
26
|
*
|
|
29
|
-
* @template T Target argument type.
|
|
30
27
|
* @author Jeongho Nam - https://github.com/samchon
|
|
31
28
|
* @author Kyungsu Kang - https://github.com/kakasoo
|
|
29
|
+
* @template T Target argument type.
|
|
32
30
|
*/
|
|
33
31
|
export type Resolved<T> = Equal<T, ResolvedMain<T>> extends true ? T : ResolvedMain<T>;
|
|
34
32
|
type ResolvedMain<T> = T extends [never] ? never : ValueOf<T> extends boolean | number | bigint | string ? ValueOf<T> : T extends Function ? never : T extends object ? ResolvedObject<T> : ValueOf<T>;
|
package/lib/SnakeCase.d.mts
CHANGED
|
@@ -4,12 +4,13 @@ import { ValueOf } from "./typings/ValueOf";
|
|
|
4
4
|
/**
|
|
5
5
|
* Snake case type.
|
|
6
6
|
*
|
|
7
|
-
* `SnakeCase` type is a type that all keys of an object are converted to snake
|
|
7
|
+
* `SnakeCase` type is a type that all keys of an object are converted to snake
|
|
8
|
+
* case.
|
|
8
9
|
*
|
|
9
10
|
* It also erases every method property like {@link Resolved} type.
|
|
10
11
|
*
|
|
11
|
-
* @template T Target type to be snake cased
|
|
12
12
|
* @author Jeongho Nam - https://github.com/samchon
|
|
13
|
+
* @template T Target type to be snake cased
|
|
13
14
|
*/
|
|
14
15
|
export type SnakeCase<T> = Equal<T, SnakageMain<T>> extends true ? T : SnakageMain<T>;
|
|
15
16
|
type SnakageMain<T> = T extends [never] ? never : T extends {
|
package/lib/SnakeCase.d.ts
CHANGED
|
@@ -4,12 +4,13 @@ import { ValueOf } from "./typings/ValueOf";
|
|
|
4
4
|
/**
|
|
5
5
|
* Snake case type.
|
|
6
6
|
*
|
|
7
|
-
* `SnakeCase` type is a type that all keys of an object are converted to snake
|
|
7
|
+
* `SnakeCase` type is a type that all keys of an object are converted to snake
|
|
8
|
+
* case.
|
|
8
9
|
*
|
|
9
10
|
* It also erases every method property like {@link Resolved} type.
|
|
10
11
|
*
|
|
11
|
-
* @template T Target type to be snake cased
|
|
12
12
|
* @author Jeongho Nam - https://github.com/samchon
|
|
13
|
+
* @template T Target type to be snake cased
|
|
13
14
|
*/
|
|
14
15
|
export type SnakeCase<T> = Equal<T, SnakageMain<T>> extends true ? T : SnakageMain<T>;
|
|
15
16
|
type SnakageMain<T> = T extends [never] ? never : T extends {
|
package/lib/TypeGuardError.d.mts
CHANGED
|
@@ -1,51 +1,55 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Custom error class thrown when runtime assertion fails in `typia.assert<T>()`
|
|
2
|
+
* Custom error class thrown when runtime assertion fails in `typia.assert<T>()`
|
|
3
|
+
* function.
|
|
3
4
|
*
|
|
4
5
|
* This error is thrown by the `typia.assert<T>()` function when the input value
|
|
5
6
|
* doesn't match the expected type.
|
|
6
7
|
*
|
|
7
|
-
* The error provides detailed information about the first assertion failure
|
|
8
|
-
* including the access path where the error occurred, the expected
|
|
8
|
+
* The error provides detailed information about the first assertion failure
|
|
9
|
+
* encountered, including the access path where the error occurred, the expected
|
|
10
|
+
* type, and the actual value.
|
|
9
11
|
*
|
|
10
|
-
* @template T - The expected type (generic for type safety)
|
|
11
12
|
* @author Jeongho Nam - https://github.com/samchon
|
|
12
13
|
* @example
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
14
|
+
* ```typescript
|
|
15
|
+
* interface IMember {
|
|
16
|
+
* name: string;
|
|
17
|
+
* age: number & ExclusiveMinimum<19>;
|
|
18
|
+
* }
|
|
18
19
|
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
20
|
+
* try {
|
|
21
|
+
* typia.assert<IMember>({ name: "John", age: 18 });
|
|
22
|
+
* } catch (error) {
|
|
23
|
+
* if (error instanceof TypeGuardError) {
|
|
24
|
+
* console.log(error.method); // "typia.assert"
|
|
25
|
+
* console.log(error.path); // "input.age"
|
|
26
|
+
* console.log(error.expected); // "number & ExclusiveMinimum<19>"
|
|
27
|
+
* console.log(error.value); // 18
|
|
28
|
+
* }
|
|
27
29
|
* }
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
+
* ```;
|
|
31
|
+
*
|
|
32
|
+
* @template T - The expected type (generic for type safety)
|
|
30
33
|
*/
|
|
31
34
|
export declare class TypeGuardError<T = any> extends Error {
|
|
32
35
|
/**
|
|
33
36
|
* The name of the typia method that threw this error.
|
|
34
37
|
*
|
|
35
|
-
* @example
|
|
38
|
+
* @example
|
|
39
|
+
* typia.assert;
|
|
36
40
|
*/
|
|
37
41
|
readonly method: string;
|
|
38
42
|
/**
|
|
39
43
|
* The access path to the property where the assertion error occurred.
|
|
40
44
|
*
|
|
41
|
-
* Uses dot notation to indicate the path for nested object properties.
|
|
42
|
-
*
|
|
45
|
+
* Uses dot notation to indicate the path for nested object properties. May be
|
|
46
|
+
* `undefined` if the error occurred at the root level.
|
|
43
47
|
*
|
|
44
48
|
* @example
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
+
* - `"input.age"` - Error in the age property of the object
|
|
50
|
+
* - `"input.profile.email"` - Error in the email property of a nested object
|
|
51
|
+
* - `"input[0].name"` - Error in the name property of the first array element
|
|
52
|
+
* - `undefined` - Error occurred at the root level
|
|
49
53
|
*/
|
|
50
54
|
readonly path: string | undefined;
|
|
51
55
|
/**
|
|
@@ -55,38 +59,48 @@ export declare class TypeGuardError<T = any> extends Error {
|
|
|
55
59
|
* for complex types.
|
|
56
60
|
*
|
|
57
61
|
* @example
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
+
* - `"string"` - Expected string type
|
|
63
|
+
* - `"number & ExclusiveMinimum<19>"` - Expected number greater than 19
|
|
64
|
+
* - `"undefined"` - Expected undefined (when superfluous property found in assertion)
|
|
65
|
+
* - `"{ name: string; age: number }"` - Expected object type
|
|
62
66
|
*/
|
|
63
67
|
readonly expected: string;
|
|
64
68
|
/**
|
|
65
69
|
* The actual value that failed assertion.
|
|
66
70
|
*
|
|
67
|
-
* Stores the actual value at the error path as-is.
|
|
68
|
-
*
|
|
71
|
+
* Stores the actual value at the error path as-is. Useful for debugging by
|
|
72
|
+
* comparing the expected type with the actual value.
|
|
69
73
|
*
|
|
70
74
|
* @example
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
-
*
|
|
75
|
+
* - `18` - Numeric value
|
|
76
|
+
* - `"invalid"` - String value
|
|
77
|
+
* - `{ name: "John", age: 18, sex: 1 }` - Object value
|
|
74
78
|
*/
|
|
75
79
|
readonly value: unknown;
|
|
76
80
|
/**
|
|
77
|
-
*
|
|
81
|
+
* Optional human-readable description of the type guard error
|
|
78
82
|
*
|
|
79
|
-
*
|
|
83
|
+
* This field is rarely populated in standard typia type assertion and is
|
|
84
|
+
* primarily intended for specialized AI agent libraries or custom validation
|
|
85
|
+
* scenarios that require additional context beyond the technical type
|
|
86
|
+
* information. Most assertion errors rely solely on the path, expected, and
|
|
87
|
+
* value fields for comprehensive error reporting.
|
|
88
|
+
*/
|
|
89
|
+
readonly description?: string | undefined;
|
|
90
|
+
/**
|
|
91
|
+
* Creates a new TypeGuardError instance.
|
|
80
92
|
*
|
|
81
93
|
* @example
|
|
82
|
-
*
|
|
83
|
-
*
|
|
84
|
-
*
|
|
85
|
-
*
|
|
86
|
-
*
|
|
87
|
-
*
|
|
88
|
-
*
|
|
89
|
-
*
|
|
94
|
+
* ```typescript
|
|
95
|
+
* const error = new TypeGuardError({
|
|
96
|
+
* method: "typia.assert",
|
|
97
|
+
* path: "input.age",
|
|
98
|
+
* expected: "number & ExclusiveMinimum<19>",
|
|
99
|
+
* value: 18
|
|
100
|
+
* });
|
|
101
|
+
* ```;
|
|
102
|
+
*
|
|
103
|
+
* @param props - Object containing the properties needed to create the error
|
|
90
104
|
*/
|
|
91
105
|
constructor(props: TypeGuardError.IProps);
|
|
92
106
|
}
|
|
@@ -95,43 +109,56 @@ export declare namespace TypeGuardError {
|
|
|
95
109
|
* Interface for properties passed to the TypeGuardError constructor.
|
|
96
110
|
*
|
|
97
111
|
* @example
|
|
98
|
-
*
|
|
99
|
-
*
|
|
100
|
-
*
|
|
101
|
-
*
|
|
102
|
-
*
|
|
103
|
-
*
|
|
104
|
-
*
|
|
105
|
-
*
|
|
106
|
-
*
|
|
112
|
+
* ```typescript
|
|
113
|
+
* const props: TypeGuardError.IProps = {
|
|
114
|
+
* method: "typia.assertEquals",
|
|
115
|
+
* path: "input.sex",
|
|
116
|
+
* expected: "undefined",
|
|
117
|
+
* value: 1,
|
|
118
|
+
* message: "Custom error message" // optional
|
|
119
|
+
* };
|
|
120
|
+
* ```;
|
|
107
121
|
*/
|
|
108
122
|
interface IProps {
|
|
109
123
|
/**
|
|
110
124
|
* The name of the typia method that threw the error.
|
|
111
125
|
*
|
|
112
|
-
* @example
|
|
126
|
+
* @example
|
|
127
|
+
* typia.assert, "typia.assertEquals";
|
|
113
128
|
*/
|
|
114
129
|
method: string;
|
|
115
130
|
/**
|
|
116
|
-
* The access path to the property where the assertion error occurred
|
|
131
|
+
* The access path to the property where the assertion error occurred
|
|
132
|
+
* (optional).
|
|
117
133
|
*
|
|
118
|
-
* @example
|
|
134
|
+
* @example
|
|
135
|
+
* input.age, "input.profile.email";
|
|
119
136
|
*/
|
|
120
137
|
path?: undefined | string;
|
|
121
138
|
/**
|
|
122
139
|
* String representation of the expected type at the error location.
|
|
123
140
|
*
|
|
124
|
-
* @example
|
|
141
|
+
* @example
|
|
142
|
+
* string, "number & ExclusiveMinimum<19>";
|
|
125
143
|
*/
|
|
126
144
|
expected: string;
|
|
145
|
+
/** The actual value that failed assertion. */
|
|
146
|
+
value: unknown;
|
|
127
147
|
/**
|
|
128
|
-
*
|
|
148
|
+
* Optional human-readable description of the type guard error
|
|
149
|
+
*
|
|
150
|
+
* This field is rarely populated in standard typia type assertion and is
|
|
151
|
+
* primarily intended for specialized AI agent libraries or custom
|
|
152
|
+
* validation scenarios that require additional context beyond the technical
|
|
153
|
+
* type information. Most assertion errors rely solely on the path,
|
|
154
|
+
* expected, and value fields for comprehensive error reporting.
|
|
129
155
|
*/
|
|
130
|
-
|
|
156
|
+
description?: string;
|
|
131
157
|
/**
|
|
132
158
|
* Custom error message (optional).
|
|
133
159
|
*
|
|
134
|
-
* If not provided, a default format message will be automatically
|
|
160
|
+
* If not provided, a default format message will be automatically
|
|
161
|
+
* generated.
|
|
135
162
|
*/
|
|
136
163
|
message?: undefined | string;
|
|
137
164
|
}
|
package/lib/TypeGuardError.d.ts
CHANGED
|
@@ -1,51 +1,55 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Custom error class thrown when runtime assertion fails in `typia.assert<T>()`
|
|
2
|
+
* Custom error class thrown when runtime assertion fails in `typia.assert<T>()`
|
|
3
|
+
* function.
|
|
3
4
|
*
|
|
4
5
|
* This error is thrown by the `typia.assert<T>()` function when the input value
|
|
5
6
|
* doesn't match the expected type.
|
|
6
7
|
*
|
|
7
|
-
* The error provides detailed information about the first assertion failure
|
|
8
|
-
* including the access path where the error occurred, the expected
|
|
8
|
+
* The error provides detailed information about the first assertion failure
|
|
9
|
+
* encountered, including the access path where the error occurred, the expected
|
|
10
|
+
* type, and the actual value.
|
|
9
11
|
*
|
|
10
|
-
* @template T - The expected type (generic for type safety)
|
|
11
12
|
* @author Jeongho Nam - https://github.com/samchon
|
|
12
13
|
* @example
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
14
|
+
* ```typescript
|
|
15
|
+
* interface IMember {
|
|
16
|
+
* name: string;
|
|
17
|
+
* age: number & ExclusiveMinimum<19>;
|
|
18
|
+
* }
|
|
18
19
|
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
20
|
+
* try {
|
|
21
|
+
* typia.assert<IMember>({ name: "John", age: 18 });
|
|
22
|
+
* } catch (error) {
|
|
23
|
+
* if (error instanceof TypeGuardError) {
|
|
24
|
+
* console.log(error.method); // "typia.assert"
|
|
25
|
+
* console.log(error.path); // "input.age"
|
|
26
|
+
* console.log(error.expected); // "number & ExclusiveMinimum<19>"
|
|
27
|
+
* console.log(error.value); // 18
|
|
28
|
+
* }
|
|
27
29
|
* }
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
+
* ```;
|
|
31
|
+
*
|
|
32
|
+
* @template T - The expected type (generic for type safety)
|
|
30
33
|
*/
|
|
31
34
|
export declare class TypeGuardError<T = any> extends Error {
|
|
32
35
|
/**
|
|
33
36
|
* The name of the typia method that threw this error.
|
|
34
37
|
*
|
|
35
|
-
* @example
|
|
38
|
+
* @example
|
|
39
|
+
* typia.assert;
|
|
36
40
|
*/
|
|
37
41
|
readonly method: string;
|
|
38
42
|
/**
|
|
39
43
|
* The access path to the property where the assertion error occurred.
|
|
40
44
|
*
|
|
41
|
-
* Uses dot notation to indicate the path for nested object properties.
|
|
42
|
-
*
|
|
45
|
+
* Uses dot notation to indicate the path for nested object properties. May be
|
|
46
|
+
* `undefined` if the error occurred at the root level.
|
|
43
47
|
*
|
|
44
48
|
* @example
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
+
* - `"input.age"` - Error in the age property of the object
|
|
50
|
+
* - `"input.profile.email"` - Error in the email property of a nested object
|
|
51
|
+
* - `"input[0].name"` - Error in the name property of the first array element
|
|
52
|
+
* - `undefined` - Error occurred at the root level
|
|
49
53
|
*/
|
|
50
54
|
readonly path: string | undefined;
|
|
51
55
|
/**
|
|
@@ -55,38 +59,48 @@ export declare class TypeGuardError<T = any> extends Error {
|
|
|
55
59
|
* for complex types.
|
|
56
60
|
*
|
|
57
61
|
* @example
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
+
* - `"string"` - Expected string type
|
|
63
|
+
* - `"number & ExclusiveMinimum<19>"` - Expected number greater than 19
|
|
64
|
+
* - `"undefined"` - Expected undefined (when superfluous property found in assertion)
|
|
65
|
+
* - `"{ name: string; age: number }"` - Expected object type
|
|
62
66
|
*/
|
|
63
67
|
readonly expected: string;
|
|
64
68
|
/**
|
|
65
69
|
* The actual value that failed assertion.
|
|
66
70
|
*
|
|
67
|
-
* Stores the actual value at the error path as-is.
|
|
68
|
-
*
|
|
71
|
+
* Stores the actual value at the error path as-is. Useful for debugging by
|
|
72
|
+
* comparing the expected type with the actual value.
|
|
69
73
|
*
|
|
70
74
|
* @example
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
-
*
|
|
75
|
+
* - `18` - Numeric value
|
|
76
|
+
* - `"invalid"` - String value
|
|
77
|
+
* - `{ name: "John", age: 18, sex: 1 }` - Object value
|
|
74
78
|
*/
|
|
75
79
|
readonly value: unknown;
|
|
76
80
|
/**
|
|
77
|
-
*
|
|
81
|
+
* Optional human-readable description of the type guard error
|
|
78
82
|
*
|
|
79
|
-
*
|
|
83
|
+
* This field is rarely populated in standard typia type assertion and is
|
|
84
|
+
* primarily intended for specialized AI agent libraries or custom validation
|
|
85
|
+
* scenarios that require additional context beyond the technical type
|
|
86
|
+
* information. Most assertion errors rely solely on the path, expected, and
|
|
87
|
+
* value fields for comprehensive error reporting.
|
|
88
|
+
*/
|
|
89
|
+
readonly description?: string | undefined;
|
|
90
|
+
/**
|
|
91
|
+
* Creates a new TypeGuardError instance.
|
|
80
92
|
*
|
|
81
93
|
* @example
|
|
82
|
-
*
|
|
83
|
-
*
|
|
84
|
-
*
|
|
85
|
-
*
|
|
86
|
-
*
|
|
87
|
-
*
|
|
88
|
-
*
|
|
89
|
-
*
|
|
94
|
+
* ```typescript
|
|
95
|
+
* const error = new TypeGuardError({
|
|
96
|
+
* method: "typia.assert",
|
|
97
|
+
* path: "input.age",
|
|
98
|
+
* expected: "number & ExclusiveMinimum<19>",
|
|
99
|
+
* value: 18
|
|
100
|
+
* });
|
|
101
|
+
* ```;
|
|
102
|
+
*
|
|
103
|
+
* @param props - Object containing the properties needed to create the error
|
|
90
104
|
*/
|
|
91
105
|
constructor(props: TypeGuardError.IProps);
|
|
92
106
|
}
|
|
@@ -95,43 +109,56 @@ export declare namespace TypeGuardError {
|
|
|
95
109
|
* Interface for properties passed to the TypeGuardError constructor.
|
|
96
110
|
*
|
|
97
111
|
* @example
|
|
98
|
-
*
|
|
99
|
-
*
|
|
100
|
-
*
|
|
101
|
-
*
|
|
102
|
-
*
|
|
103
|
-
*
|
|
104
|
-
*
|
|
105
|
-
*
|
|
106
|
-
*
|
|
112
|
+
* ```typescript
|
|
113
|
+
* const props: TypeGuardError.IProps = {
|
|
114
|
+
* method: "typia.assertEquals",
|
|
115
|
+
* path: "input.sex",
|
|
116
|
+
* expected: "undefined",
|
|
117
|
+
* value: 1,
|
|
118
|
+
* message: "Custom error message" // optional
|
|
119
|
+
* };
|
|
120
|
+
* ```;
|
|
107
121
|
*/
|
|
108
122
|
interface IProps {
|
|
109
123
|
/**
|
|
110
124
|
* The name of the typia method that threw the error.
|
|
111
125
|
*
|
|
112
|
-
* @example
|
|
126
|
+
* @example
|
|
127
|
+
* typia.assert, "typia.assertEquals";
|
|
113
128
|
*/
|
|
114
129
|
method: string;
|
|
115
130
|
/**
|
|
116
|
-
* The access path to the property where the assertion error occurred
|
|
131
|
+
* The access path to the property where the assertion error occurred
|
|
132
|
+
* (optional).
|
|
117
133
|
*
|
|
118
|
-
* @example
|
|
134
|
+
* @example
|
|
135
|
+
* input.age, "input.profile.email";
|
|
119
136
|
*/
|
|
120
137
|
path?: undefined | string;
|
|
121
138
|
/**
|
|
122
139
|
* String representation of the expected type at the error location.
|
|
123
140
|
*
|
|
124
|
-
* @example
|
|
141
|
+
* @example
|
|
142
|
+
* string, "number & ExclusiveMinimum<19>";
|
|
125
143
|
*/
|
|
126
144
|
expected: string;
|
|
145
|
+
/** The actual value that failed assertion. */
|
|
146
|
+
value: unknown;
|
|
127
147
|
/**
|
|
128
|
-
*
|
|
148
|
+
* Optional human-readable description of the type guard error
|
|
149
|
+
*
|
|
150
|
+
* This field is rarely populated in standard typia type assertion and is
|
|
151
|
+
* primarily intended for specialized AI agent libraries or custom
|
|
152
|
+
* validation scenarios that require additional context beyond the technical
|
|
153
|
+
* type information. Most assertion errors rely solely on the path,
|
|
154
|
+
* expected, and value fields for comprehensive error reporting.
|
|
129
155
|
*/
|
|
130
|
-
|
|
156
|
+
description?: string;
|
|
131
157
|
/**
|
|
132
158
|
* Custom error message (optional).
|
|
133
159
|
*
|
|
134
|
-
* If not provided, a default format message will be automatically
|
|
160
|
+
* If not provided, a default format message will be automatically
|
|
161
|
+
* generated.
|
|
135
162
|
*/
|
|
136
163
|
message?: undefined | string;
|
|
137
164
|
}
|
package/lib/TypeGuardError.js
CHANGED
|
@@ -2,52 +2,56 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.TypeGuardError = void 0;
|
|
4
4
|
/**
|
|
5
|
-
* Custom error class thrown when runtime assertion fails in `typia.assert<T>()`
|
|
5
|
+
* Custom error class thrown when runtime assertion fails in `typia.assert<T>()`
|
|
6
|
+
* function.
|
|
6
7
|
*
|
|
7
8
|
* This error is thrown by the `typia.assert<T>()` function when the input value
|
|
8
9
|
* doesn't match the expected type.
|
|
9
10
|
*
|
|
10
|
-
* The error provides detailed information about the first assertion failure
|
|
11
|
-
* including the access path where the error occurred, the expected
|
|
11
|
+
* The error provides detailed information about the first assertion failure
|
|
12
|
+
* encountered, including the access path where the error occurred, the expected
|
|
13
|
+
* type, and the actual value.
|
|
12
14
|
*
|
|
13
|
-
* @template T - The expected type (generic for type safety)
|
|
14
15
|
* @author Jeongho Nam - https://github.com/samchon
|
|
15
16
|
* @example
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
17
|
+
* ```typescript
|
|
18
|
+
* interface IMember {
|
|
19
|
+
* name: string;
|
|
20
|
+
* age: number & ExclusiveMinimum<19>;
|
|
21
|
+
* }
|
|
21
22
|
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
23
|
+
* try {
|
|
24
|
+
* typia.assert<IMember>({ name: "John", age: 18 });
|
|
25
|
+
* } catch (error) {
|
|
26
|
+
* if (error instanceof TypeGuardError) {
|
|
27
|
+
* console.log(error.method); // "typia.assert"
|
|
28
|
+
* console.log(error.path); // "input.age"
|
|
29
|
+
* console.log(error.expected); // "number & ExclusiveMinimum<19>"
|
|
30
|
+
* console.log(error.value); // 18
|
|
31
|
+
* }
|
|
30
32
|
* }
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
+
* ```;
|
|
34
|
+
*
|
|
35
|
+
* @template T - The expected type (generic for type safety)
|
|
33
36
|
*/
|
|
34
37
|
class TypeGuardError extends Error {
|
|
35
38
|
/**
|
|
36
39
|
* Creates a new TypeGuardError instance.
|
|
37
40
|
*
|
|
38
|
-
* @param props - Object containing the properties needed to create the error
|
|
39
|
-
*
|
|
40
41
|
* @example
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
42
|
+
* ```typescript
|
|
43
|
+
* const error = new TypeGuardError({
|
|
44
|
+
* method: "typia.assert",
|
|
45
|
+
* path: "input.age",
|
|
46
|
+
* expected: "number & ExclusiveMinimum<19>",
|
|
47
|
+
* value: 18
|
|
48
|
+
* });
|
|
49
|
+
* ```;
|
|
50
|
+
*
|
|
51
|
+
* @param props - Object containing the properties needed to create the error
|
|
49
52
|
*/
|
|
50
53
|
constructor(props) {
|
|
54
|
+
var _a;
|
|
51
55
|
// MESSAGE CONSTRUCTION
|
|
52
56
|
// Use custom message if provided, otherwise generate default format
|
|
53
57
|
super(props.message ||
|
|
@@ -64,6 +68,13 @@ class TypeGuardError extends Error {
|
|
|
64
68
|
this.path = props.path;
|
|
65
69
|
this.expected = props.expected;
|
|
66
70
|
this.value = props.value;
|
|
71
|
+
if (props.description || props.value === undefined)
|
|
72
|
+
this.description =
|
|
73
|
+
(_a = props.description) !== null && _a !== void 0 ? _a : [
|
|
74
|
+
"The value at this path is `undefined`.",
|
|
75
|
+
"",
|
|
76
|
+
`Please fill the \`${props.expected}\` typed value next time.`,
|
|
77
|
+
].join("\n");
|
|
67
78
|
}
|
|
68
79
|
}
|
|
69
80
|
exports.TypeGuardError = TypeGuardError;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypeGuardError.js","sourceRoot":"","sources":["../src/TypeGuardError.ts"],"names":[],"mappings":";;;AAAA
|
|
1
|
+
{"version":3,"file":"TypeGuardError.js","sourceRoot":"","sources":["../src/TypeGuardError.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAa,cAAwB,SAAQ,KAAK;IAwEhD;;;;;;;;;;;;;;OAcG;IACH,YAAmB,KAA4B;;QAC7C,uBAAuB;QACvB,oEAAoE;QACpE,KAAK,CACH,KAAK,CAAC,OAAO;YACX,YAAY,KAAK,CAAC,MAAM,mBACtB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EACrC,kBAAkB,KAAK,CAAC,QAAQ,EAAE,CACrC,CAAC;QAEF,uBAAuB;QACvB,8EAA8E;QAC9E,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC;QACnC,IAAI,MAAM,CAAC,cAAc;YAAE,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;;YACxD,IAAY,CAAC,SAAS,GAAG,KAAK,CAAC;QAErC,iBAAiB;QACjB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QACzB,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;YAChD,IAAI,CAAC,WAAW;gBACd,MAAA,KAAK,CAAC,WAAW,mCACjB;oBACE,wCAAwC;oBACxC,EAAE;oBACF,qBAAqB,KAAK,CAAC,QAAQ,2BAA2B;iBAC/D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;CACF;AArHD,wCAqHC"}
|