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/tags/Example.d.mts
CHANGED
|
@@ -2,34 +2,34 @@ import { TagBase } from "./TagBase";
|
|
|
2
2
|
/**
|
|
3
3
|
* Example value tag that provides a single example value for documentation.
|
|
4
4
|
*
|
|
5
|
-
* This tag adds an example value to your JSON Schema, which is useful for
|
|
6
|
-
*
|
|
5
|
+
* This tag adds an example value to your JSON Schema, which is useful for API
|
|
6
|
+
* documentation, client code generation, and helping developers understand
|
|
7
7
|
* expected data formats. The example doesn't affect runtime validation.
|
|
8
8
|
*
|
|
9
9
|
* Use Example for a single representative value. For multiple named examples,
|
|
10
10
|
* use the Examples tag instead.
|
|
11
11
|
*
|
|
12
|
+
* @author Jeongho Nam - https://github.com/samchon
|
|
12
13
|
* @example
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
14
|
+
* ```typescript
|
|
15
|
+
* interface Product {
|
|
16
|
+
* name: string & Example<"iPhone 15 Pro">;
|
|
17
|
+
* price: number & Example<999.99>;
|
|
18
|
+
* inStock: boolean & Example<true>;
|
|
19
|
+
* }
|
|
20
|
+
* ```;
|
|
20
21
|
*
|
|
21
22
|
* @example
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
23
|
+
* ```typescript
|
|
24
|
+
* interface User {
|
|
25
|
+
* profile: {
|
|
26
|
+
* bio: string;
|
|
27
|
+
* tags: string[];
|
|
28
|
+
* } & Example<{ bio: "Software engineer", tags: ["typescript", "react"] }>;
|
|
29
|
+
* }
|
|
30
|
+
* ```;
|
|
30
31
|
*
|
|
31
32
|
* @template Value The example value (primitives, objects, arrays, or null)
|
|
32
|
-
* @author Jeongho Nam - https://github.com/samchon
|
|
33
33
|
*/
|
|
34
34
|
export type Example<Value extends boolean | bigint | number | string | object | Array<unknown> | null> = TagBase<{
|
|
35
35
|
target: "boolean" | "bigint" | "number" | "string" | "array" | "object";
|
package/lib/tags/Example.d.ts
CHANGED
|
@@ -2,34 +2,34 @@ import { TagBase } from "./TagBase";
|
|
|
2
2
|
/**
|
|
3
3
|
* Example value tag that provides a single example value for documentation.
|
|
4
4
|
*
|
|
5
|
-
* This tag adds an example value to your JSON Schema, which is useful for
|
|
6
|
-
*
|
|
5
|
+
* This tag adds an example value to your JSON Schema, which is useful for API
|
|
6
|
+
* documentation, client code generation, and helping developers understand
|
|
7
7
|
* expected data formats. The example doesn't affect runtime validation.
|
|
8
8
|
*
|
|
9
9
|
* Use Example for a single representative value. For multiple named examples,
|
|
10
10
|
* use the Examples tag instead.
|
|
11
11
|
*
|
|
12
|
+
* @author Jeongho Nam - https://github.com/samchon
|
|
12
13
|
* @example
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
14
|
+
* ```typescript
|
|
15
|
+
* interface Product {
|
|
16
|
+
* name: string & Example<"iPhone 15 Pro">;
|
|
17
|
+
* price: number & Example<999.99>;
|
|
18
|
+
* inStock: boolean & Example<true>;
|
|
19
|
+
* }
|
|
20
|
+
* ```;
|
|
20
21
|
*
|
|
21
22
|
* @example
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
23
|
+
* ```typescript
|
|
24
|
+
* interface User {
|
|
25
|
+
* profile: {
|
|
26
|
+
* bio: string;
|
|
27
|
+
* tags: string[];
|
|
28
|
+
* } & Example<{ bio: "Software engineer", tags: ["typescript", "react"] }>;
|
|
29
|
+
* }
|
|
30
|
+
* ```;
|
|
30
31
|
*
|
|
31
32
|
* @template Value The example value (primitives, objects, arrays, or null)
|
|
32
|
-
* @author Jeongho Nam - https://github.com/samchon
|
|
33
33
|
*/
|
|
34
34
|
export type Example<Value extends boolean | bigint | number | string | object | Array<unknown> | null> = TagBase<{
|
|
35
35
|
target: "boolean" | "bigint" | "number" | "string" | "array" | "object";
|
package/lib/tags/Examples.d.mts
CHANGED
|
@@ -10,34 +10,34 @@ import { TagBase } from "./TagBase";
|
|
|
10
10
|
* names and values are the example data. This helps in API documentation and
|
|
11
11
|
* test case generation.
|
|
12
12
|
*
|
|
13
|
+
* @author Jeongho Nam - https://github.com/samchon
|
|
13
14
|
* @example
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
15
|
+
* ```typescript
|
|
16
|
+
* interface PaymentRequest {
|
|
17
|
+
* amount: number & Examples<{
|
|
18
|
+
* small: 10.50,
|
|
19
|
+
* medium: 99.99,
|
|
20
|
+
* large: 1000.00
|
|
21
|
+
* }>;
|
|
22
|
+
* }
|
|
23
|
+
* ```;
|
|
23
24
|
*
|
|
24
25
|
* @example
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
26
|
+
* ```typescript
|
|
27
|
+
* interface UserStatus {
|
|
28
|
+
* state: string & Examples<{
|
|
29
|
+
* active: "active",
|
|
30
|
+
* inactive: "inactive",
|
|
31
|
+
* suspended: "suspended"
|
|
32
|
+
* }>;
|
|
33
|
+
* profile: object & Examples<{
|
|
34
|
+
* basic: { name: "John", age: 25 },
|
|
35
|
+
* detailed: { name: "Jane", age: 30, bio: "Developer", verified: true }
|
|
36
|
+
* }>;
|
|
37
|
+
* }
|
|
38
|
+
* ```;
|
|
38
39
|
*
|
|
39
40
|
* @template Value A record object mapping example names to example values
|
|
40
|
-
* @author Jeongho Nam - https://github.com/samchon
|
|
41
41
|
*/
|
|
42
42
|
export type Examples<Value extends Record<string, boolean | bigint | number | string | object | Array<unknown> | null>> = TagBase<{
|
|
43
43
|
target: "boolean" | "bigint" | "number" | "string" | "array" | "object";
|
package/lib/tags/Examples.d.ts
CHANGED
|
@@ -10,34 +10,34 @@ import { TagBase } from "./TagBase";
|
|
|
10
10
|
* names and values are the example data. This helps in API documentation and
|
|
11
11
|
* test case generation.
|
|
12
12
|
*
|
|
13
|
+
* @author Jeongho Nam - https://github.com/samchon
|
|
13
14
|
* @example
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
15
|
+
* ```typescript
|
|
16
|
+
* interface PaymentRequest {
|
|
17
|
+
* amount: number & Examples<{
|
|
18
|
+
* small: 10.50,
|
|
19
|
+
* medium: 99.99,
|
|
20
|
+
* large: 1000.00
|
|
21
|
+
* }>;
|
|
22
|
+
* }
|
|
23
|
+
* ```;
|
|
23
24
|
*
|
|
24
25
|
* @example
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
26
|
+
* ```typescript
|
|
27
|
+
* interface UserStatus {
|
|
28
|
+
* state: string & Examples<{
|
|
29
|
+
* active: "active",
|
|
30
|
+
* inactive: "inactive",
|
|
31
|
+
* suspended: "suspended"
|
|
32
|
+
* }>;
|
|
33
|
+
* profile: object & Examples<{
|
|
34
|
+
* basic: { name: "John", age: 25 },
|
|
35
|
+
* detailed: { name: "Jane", age: 30, bio: "Developer", verified: true }
|
|
36
|
+
* }>;
|
|
37
|
+
* }
|
|
38
|
+
* ```;
|
|
38
39
|
*
|
|
39
40
|
* @template Value A record object mapping example names to example values
|
|
40
|
-
* @author Jeongho Nam - https://github.com/samchon
|
|
41
41
|
*/
|
|
42
42
|
export type Examples<Value extends Record<string, boolean | bigint | number | string | object | Array<unknown> | null>> = TagBase<{
|
|
43
43
|
target: "boolean" | "bigint" | "number" | "string" | "array" | "object";
|
|
@@ -2,20 +2,23 @@ import { TagBase } from "./TagBase";
|
|
|
2
2
|
/**
|
|
3
3
|
* Exclusive maximum value constraint tag.
|
|
4
4
|
*
|
|
5
|
-
* Enforces that a numeric value must be strictly less than the specified
|
|
6
|
-
* This constraint validates that the input value
|
|
5
|
+
* Enforces that a numeric value must be strictly less than the specified
|
|
6
|
+
* maximum (not equal). This constraint validates that the input value
|
|
7
|
+
* satisfies: input < maximum.
|
|
7
8
|
*
|
|
8
9
|
* Example usage:
|
|
10
|
+
*
|
|
9
11
|
* ```typescript
|
|
10
|
-
* type Discount = number & tags.ExclusiveMaximum<100>;
|
|
11
|
-
* type ByteValue = bigint & tags.ExclusiveMaximum<256n>;
|
|
12
|
+
* type Discount = number & tags.ExclusiveMaximum<100>; // Must be < 100
|
|
13
|
+
* type ByteValue = bigint & tags.ExclusiveMaximum<256n>; // Must be < 256
|
|
12
14
|
* ```
|
|
13
15
|
*
|
|
14
16
|
* Note: This tag is mutually exclusive with Maximum. You cannot apply both
|
|
15
17
|
* ExclusiveMaximum and Maximum constraints to the same property.
|
|
16
18
|
*
|
|
17
|
-
* @template Value - The exclusive maximum value constraint (number or bigint literal)
|
|
18
19
|
* @author Jeongho Nam - https://github.com/samchon
|
|
20
|
+
* @template Value - The exclusive maximum value constraint (number or bigint
|
|
21
|
+
* literal)
|
|
19
22
|
*/
|
|
20
23
|
export type ExclusiveMaximum<Value extends number | bigint> = TagBase<{
|
|
21
24
|
target: Value extends bigint ? "bigint" : "number";
|
|
@@ -2,20 +2,23 @@ import { TagBase } from "./TagBase";
|
|
|
2
2
|
/**
|
|
3
3
|
* Exclusive maximum value constraint tag.
|
|
4
4
|
*
|
|
5
|
-
* Enforces that a numeric value must be strictly less than the specified
|
|
6
|
-
* This constraint validates that the input value
|
|
5
|
+
* Enforces that a numeric value must be strictly less than the specified
|
|
6
|
+
* maximum (not equal). This constraint validates that the input value
|
|
7
|
+
* satisfies: input < maximum.
|
|
7
8
|
*
|
|
8
9
|
* Example usage:
|
|
10
|
+
*
|
|
9
11
|
* ```typescript
|
|
10
|
-
* type Discount = number & tags.ExclusiveMaximum<100>;
|
|
11
|
-
* type ByteValue = bigint & tags.ExclusiveMaximum<256n>;
|
|
12
|
+
* type Discount = number & tags.ExclusiveMaximum<100>; // Must be < 100
|
|
13
|
+
* type ByteValue = bigint & tags.ExclusiveMaximum<256n>; // Must be < 256
|
|
12
14
|
* ```
|
|
13
15
|
*
|
|
14
16
|
* Note: This tag is mutually exclusive with Maximum. You cannot apply both
|
|
15
17
|
* ExclusiveMaximum and Maximum constraints to the same property.
|
|
16
18
|
*
|
|
17
|
-
* @template Value - The exclusive maximum value constraint (number or bigint literal)
|
|
18
19
|
* @author Jeongho Nam - https://github.com/samchon
|
|
20
|
+
* @template Value - The exclusive maximum value constraint (number or bigint
|
|
21
|
+
* literal)
|
|
19
22
|
*/
|
|
20
23
|
export type ExclusiveMaximum<Value extends number | bigint> = TagBase<{
|
|
21
24
|
target: Value extends bigint ? "bigint" : "number";
|
|
@@ -2,20 +2,23 @@ import { TagBase } from "./TagBase";
|
|
|
2
2
|
/**
|
|
3
3
|
* Exclusive minimum value constraint tag.
|
|
4
4
|
*
|
|
5
|
-
* Enforces that a numeric value must be strictly greater than the specified
|
|
6
|
-
* This constraint validates that the input value
|
|
5
|
+
* Enforces that a numeric value must be strictly greater than the specified
|
|
6
|
+
* minimum (not equal). This constraint validates that the input value
|
|
7
|
+
* satisfies: input > minimum.
|
|
7
8
|
*
|
|
8
9
|
* Example usage:
|
|
10
|
+
*
|
|
9
11
|
* ```typescript
|
|
10
|
-
* type PositiveNumber = number & tags.ExclusiveMinimum<0>;
|
|
11
|
-
* type LargeCount = bigint & tags.ExclusiveMinimum<999n>;
|
|
12
|
+
* type PositiveNumber = number & tags.ExclusiveMinimum<0>; // Must be > 0
|
|
13
|
+
* type LargeCount = bigint & tags.ExclusiveMinimum<999n>; // Must be > 999
|
|
12
14
|
* ```
|
|
13
15
|
*
|
|
14
16
|
* Note: This tag is mutually exclusive with Minimum. You cannot apply both
|
|
15
17
|
* ExclusiveMinimum and Minimum constraints to the same property.
|
|
16
18
|
*
|
|
17
|
-
* @template Value - The exclusive minimum value constraint (number or bigint literal)
|
|
18
19
|
* @author Jeongho Nam - https://github.com/samchon
|
|
20
|
+
* @template Value - The exclusive minimum value constraint (number or bigint
|
|
21
|
+
* literal)
|
|
19
22
|
*/
|
|
20
23
|
export type ExclusiveMinimum<Value extends number | bigint> = TagBase<{
|
|
21
24
|
target: Value extends bigint ? "bigint" : "number";
|
|
@@ -2,20 +2,23 @@ import { TagBase } from "./TagBase";
|
|
|
2
2
|
/**
|
|
3
3
|
* Exclusive minimum value constraint tag.
|
|
4
4
|
*
|
|
5
|
-
* Enforces that a numeric value must be strictly greater than the specified
|
|
6
|
-
* This constraint validates that the input value
|
|
5
|
+
* Enforces that a numeric value must be strictly greater than the specified
|
|
6
|
+
* minimum (not equal). This constraint validates that the input value
|
|
7
|
+
* satisfies: input > minimum.
|
|
7
8
|
*
|
|
8
9
|
* Example usage:
|
|
10
|
+
*
|
|
9
11
|
* ```typescript
|
|
10
|
-
* type PositiveNumber = number & tags.ExclusiveMinimum<0>;
|
|
11
|
-
* type LargeCount = bigint & tags.ExclusiveMinimum<999n>;
|
|
12
|
+
* type PositiveNumber = number & tags.ExclusiveMinimum<0>; // Must be > 0
|
|
13
|
+
* type LargeCount = bigint & tags.ExclusiveMinimum<999n>; // Must be > 999
|
|
12
14
|
* ```
|
|
13
15
|
*
|
|
14
16
|
* Note: This tag is mutually exclusive with Minimum. You cannot apply both
|
|
15
17
|
* ExclusiveMinimum and Minimum constraints to the same property.
|
|
16
18
|
*
|
|
17
|
-
* @template Value - The exclusive minimum value constraint (number or bigint literal)
|
|
18
19
|
* @author Jeongho Nam - https://github.com/samchon
|
|
20
|
+
* @template Value - The exclusive minimum value constraint (number or bigint
|
|
21
|
+
* literal)
|
|
19
22
|
*/
|
|
20
23
|
export type ExclusiveMinimum<Value extends number | bigint> = TagBase<{
|
|
21
24
|
target: Value extends bigint ? "bigint" : "number";
|
package/lib/tags/Format.d.mts
CHANGED
|
@@ -2,24 +2,28 @@ import type { TagBase } from "./TagBase";
|
|
|
2
2
|
/**
|
|
3
3
|
* String format constraint tag.
|
|
4
4
|
*
|
|
5
|
-
* Validates strings against predefined formats for common use cases.
|
|
6
|
-
*
|
|
7
|
-
*
|
|
5
|
+
* Validates strings against predefined formats for common use cases. This tag
|
|
6
|
+
* provides built-in validation for standard string formats without needing to
|
|
7
|
+
* write custom regular expressions.
|
|
8
8
|
*
|
|
9
9
|
* Examples:
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
10
|
+
*
|
|
11
|
+
* ```ts
|
|
12
|
+
* Type Email = string & Format<"email">; // user@example.com
|
|
13
|
+
* Type WebURL = string & Format<"url">; // https://example.com
|
|
14
|
+
* Type DateTime = string & Format<"date-time">; // 2024-01-15T10:30:00Z
|
|
15
|
+
* ```
|
|
13
16
|
*
|
|
14
17
|
* Supported formats include:
|
|
18
|
+
*
|
|
15
19
|
* - Network: email, url, hostname, ipv4, ipv6, uri
|
|
16
20
|
* - Identifiers: uuid, byte, password
|
|
17
21
|
* - Date/Time: date, time, date-time, duration
|
|
18
22
|
* - Data: json-pointer, regex
|
|
19
23
|
* - Internationalized: idn-email, idn-hostname, iri
|
|
20
24
|
*
|
|
21
|
-
* Note: This tag is mutually exclusive with the Pattern tag. You cannot use
|
|
22
|
-
* Format and Pattern on the same type.
|
|
25
|
+
* Note: This tag is mutually exclusive with the Pattern tag. You cannot use
|
|
26
|
+
* both Format and Pattern on the same type.
|
|
23
27
|
*
|
|
24
28
|
* @author Jeongho Nam - https://github.com/samchon
|
|
25
29
|
*/
|
package/lib/tags/Format.d.ts
CHANGED
|
@@ -2,24 +2,28 @@ import type { TagBase } from "./TagBase";
|
|
|
2
2
|
/**
|
|
3
3
|
* String format constraint tag.
|
|
4
4
|
*
|
|
5
|
-
* Validates strings against predefined formats for common use cases.
|
|
6
|
-
*
|
|
7
|
-
*
|
|
5
|
+
* Validates strings against predefined formats for common use cases. This tag
|
|
6
|
+
* provides built-in validation for standard string formats without needing to
|
|
7
|
+
* write custom regular expressions.
|
|
8
8
|
*
|
|
9
9
|
* Examples:
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
10
|
+
*
|
|
11
|
+
* ```ts
|
|
12
|
+
* Type Email = string & Format<"email">; // user@example.com
|
|
13
|
+
* Type WebURL = string & Format<"url">; // https://example.com
|
|
14
|
+
* Type DateTime = string & Format<"date-time">; // 2024-01-15T10:30:00Z
|
|
15
|
+
* ```
|
|
13
16
|
*
|
|
14
17
|
* Supported formats include:
|
|
18
|
+
*
|
|
15
19
|
* - Network: email, url, hostname, ipv4, ipv6, uri
|
|
16
20
|
* - Identifiers: uuid, byte, password
|
|
17
21
|
* - Date/Time: date, time, date-time, duration
|
|
18
22
|
* - Data: json-pointer, regex
|
|
19
23
|
* - Internationalized: idn-email, idn-hostname, iri
|
|
20
24
|
*
|
|
21
|
-
* Note: This tag is mutually exclusive with the Pattern tag. You cannot use
|
|
22
|
-
* Format and Pattern on the same type.
|
|
25
|
+
* Note: This tag is mutually exclusive with the Pattern tag. You cannot use
|
|
26
|
+
* both Format and Pattern on the same type.
|
|
23
27
|
*
|
|
24
28
|
* @author Jeongho Nam - https://github.com/samchon
|
|
25
29
|
*/
|
|
@@ -2,28 +2,30 @@ import { TagBase } from "./TagBase";
|
|
|
2
2
|
/**
|
|
3
3
|
* Injects custom properties into generated JSON Schema.
|
|
4
4
|
*
|
|
5
|
-
* The JsonSchemaPlugin tag allows you to add vendor-specific extensions or
|
|
6
|
-
* to the generated JSON Schema output. These properties are
|
|
7
|
-
* the schema and are commonly used for
|
|
8
|
-
*
|
|
5
|
+
* The JsonSchemaPlugin tag allows you to add vendor-specific extensions or
|
|
6
|
+
* custom metadata to the generated JSON Schema output. These properties are
|
|
7
|
+
* merged at the root level of the schema and are commonly used for
|
|
8
|
+
* documentation, tooling hints, or API-specific metadata. The custom properties
|
|
9
|
+
* only affect schema generation and do not impact runtime validation.
|
|
9
10
|
*
|
|
11
|
+
* @author Jeongho Nam - https://github.com/samchon
|
|
10
12
|
* @example
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
13
|
+
* ```typescript
|
|
14
|
+
* // Add OpenAPI vendor extensions
|
|
15
|
+
* type UserId = string & JsonSchemaPlugin<{
|
|
16
|
+
* "x-internal-id": true,
|
|
17
|
+
* "x-deprecated": "Use UUID instead"
|
|
18
|
+
* }>;
|
|
17
19
|
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
20
|
+
* // Add custom documentation metadata
|
|
21
|
+
* type Price = number & JsonSchemaPlugin<{
|
|
22
|
+
* "x-format": "currency",
|
|
23
|
+
* "x-example": 19.99
|
|
24
|
+
* }>;
|
|
25
|
+
* ```
|
|
24
26
|
*
|
|
25
|
-
* @template Schema - Object containing custom properties to add to the JSON
|
|
26
|
-
*
|
|
27
|
+
* @template Schema - Object containing custom properties to add to the JSON
|
|
28
|
+
* Schema
|
|
27
29
|
*/
|
|
28
30
|
export type JsonSchemaPlugin<Schema extends object> = TagBase<{
|
|
29
31
|
target: "string" | "boolean" | "bigint" | "number" | "array" | "object";
|
|
@@ -2,28 +2,30 @@ import { TagBase } from "./TagBase";
|
|
|
2
2
|
/**
|
|
3
3
|
* Injects custom properties into generated JSON Schema.
|
|
4
4
|
*
|
|
5
|
-
* The JsonSchemaPlugin tag allows you to add vendor-specific extensions or
|
|
6
|
-
* to the generated JSON Schema output. These properties are
|
|
7
|
-
* the schema and are commonly used for
|
|
8
|
-
*
|
|
5
|
+
* The JsonSchemaPlugin tag allows you to add vendor-specific extensions or
|
|
6
|
+
* custom metadata to the generated JSON Schema output. These properties are
|
|
7
|
+
* merged at the root level of the schema and are commonly used for
|
|
8
|
+
* documentation, tooling hints, or API-specific metadata. The custom properties
|
|
9
|
+
* only affect schema generation and do not impact runtime validation.
|
|
9
10
|
*
|
|
11
|
+
* @author Jeongho Nam - https://github.com/samchon
|
|
10
12
|
* @example
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
13
|
+
* ```typescript
|
|
14
|
+
* // Add OpenAPI vendor extensions
|
|
15
|
+
* type UserId = string & JsonSchemaPlugin<{
|
|
16
|
+
* "x-internal-id": true,
|
|
17
|
+
* "x-deprecated": "Use UUID instead"
|
|
18
|
+
* }>;
|
|
17
19
|
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
20
|
+
* // Add custom documentation metadata
|
|
21
|
+
* type Price = number & JsonSchemaPlugin<{
|
|
22
|
+
* "x-format": "currency",
|
|
23
|
+
* "x-example": 19.99
|
|
24
|
+
* }>;
|
|
25
|
+
* ```
|
|
24
26
|
*
|
|
25
|
-
* @template Schema - Object containing custom properties to add to the JSON
|
|
26
|
-
*
|
|
27
|
+
* @template Schema - Object containing custom properties to add to the JSON
|
|
28
|
+
* Schema
|
|
27
29
|
*/
|
|
28
30
|
export type JsonSchemaPlugin<Schema extends object> = TagBase<{
|
|
29
31
|
target: "string" | "boolean" | "bigint" | "number" | "array" | "object";
|
package/lib/tags/MaxItems.d.mts
CHANGED
|
@@ -2,21 +2,21 @@ import { TagBase } from "./TagBase";
|
|
|
2
2
|
/**
|
|
3
3
|
* Maximum items validation tag for arrays.
|
|
4
4
|
*
|
|
5
|
-
* Enforces that an array contains at most the specified number of items.
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
5
|
+
* Enforces that an array contains at most the specified number of items. This
|
|
6
|
+
* tag is useful for limiting array sizes, such as restricting the number of
|
|
7
|
+
* uploaded files, limiting selections in a form, or capping the size of
|
|
8
|
+
* collections to prevent performance issues.
|
|
9
9
|
*
|
|
10
|
+
* @author Jeongho Nam - https://github.com/samchon
|
|
10
11
|
* @example
|
|
11
|
-
*
|
|
12
|
-
*
|
|
12
|
+
* // Allow maximum 5 file uploads
|
|
13
|
+
* type FileList = File[] & MaxItems<5>;
|
|
13
14
|
*
|
|
14
15
|
* @example
|
|
15
|
-
*
|
|
16
|
-
*
|
|
16
|
+
* // Limit tags to 10 items
|
|
17
|
+
* type ProductTags = string[] & MaxItems<10>;
|
|
17
18
|
*
|
|
18
19
|
* @template Value - The maximum number of items allowed
|
|
19
|
-
* @author Jeongho Nam - https://github.com/samchon
|
|
20
20
|
*/
|
|
21
21
|
export type MaxItems<Value extends number> = TagBase<{
|
|
22
22
|
target: "array";
|
package/lib/tags/MaxItems.d.ts
CHANGED
|
@@ -2,21 +2,21 @@ import { TagBase } from "./TagBase";
|
|
|
2
2
|
/**
|
|
3
3
|
* Maximum items validation tag for arrays.
|
|
4
4
|
*
|
|
5
|
-
* Enforces that an array contains at most the specified number of items.
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
5
|
+
* Enforces that an array contains at most the specified number of items. This
|
|
6
|
+
* tag is useful for limiting array sizes, such as restricting the number of
|
|
7
|
+
* uploaded files, limiting selections in a form, or capping the size of
|
|
8
|
+
* collections to prevent performance issues.
|
|
9
9
|
*
|
|
10
|
+
* @author Jeongho Nam - https://github.com/samchon
|
|
10
11
|
* @example
|
|
11
|
-
*
|
|
12
|
-
*
|
|
12
|
+
* // Allow maximum 5 file uploads
|
|
13
|
+
* type FileList = File[] & MaxItems<5>;
|
|
13
14
|
*
|
|
14
15
|
* @example
|
|
15
|
-
*
|
|
16
|
-
*
|
|
16
|
+
* // Limit tags to 10 items
|
|
17
|
+
* type ProductTags = string[] & MaxItems<10>;
|
|
17
18
|
*
|
|
18
19
|
* @template Value - The maximum number of items allowed
|
|
19
|
-
* @author Jeongho Nam - https://github.com/samchon
|
|
20
20
|
*/
|
|
21
21
|
export type MaxItems<Value extends number> = TagBase<{
|
|
22
22
|
target: "array";
|
package/lib/tags/MaxLength.d.mts
CHANGED
|
@@ -2,12 +2,13 @@ import { TagBase } from "./TagBase";
|
|
|
2
2
|
/**
|
|
3
3
|
* String maximum length constraint tag.
|
|
4
4
|
*
|
|
5
|
-
* Validates that a string's length is less than or equal to the specified
|
|
6
|
-
* This tag enforces an upper limit on the number of characters in a
|
|
5
|
+
* Validates that a string's length is less than or equal to the specified
|
|
6
|
+
* value. This tag enforces an upper limit on the number of characters in a
|
|
7
|
+
* string.
|
|
7
8
|
*
|
|
8
|
-
* Examples:
|
|
9
|
-
*
|
|
10
|
-
*
|
|
9
|
+
* Examples: type ShortComment = string & MaxLength<200>; // Comment limited to
|
|
10
|
+
* 200 characters type ZipCode = string & MaxLength<10>; // Zip code with max 10
|
|
11
|
+
* characters
|
|
11
12
|
*
|
|
12
13
|
* @author Jeongho Nam - https://github.com/samchon
|
|
13
14
|
*/
|
package/lib/tags/MaxLength.d.ts
CHANGED
|
@@ -2,12 +2,13 @@ import { TagBase } from "./TagBase";
|
|
|
2
2
|
/**
|
|
3
3
|
* String maximum length constraint tag.
|
|
4
4
|
*
|
|
5
|
-
* Validates that a string's length is less than or equal to the specified
|
|
6
|
-
* This tag enforces an upper limit on the number of characters in a
|
|
5
|
+
* Validates that a string's length is less than or equal to the specified
|
|
6
|
+
* value. This tag enforces an upper limit on the number of characters in a
|
|
7
|
+
* string.
|
|
7
8
|
*
|
|
8
|
-
* Examples:
|
|
9
|
-
*
|
|
10
|
-
*
|
|
9
|
+
* Examples: type ShortComment = string & MaxLength<200>; // Comment limited to
|
|
10
|
+
* 200 characters type ZipCode = string & MaxLength<10>; // Zip code with max 10
|
|
11
|
+
* characters
|
|
11
12
|
*
|
|
12
13
|
* @author Jeongho Nam - https://github.com/samchon
|
|
13
14
|
*/
|