typia 9.7.0 → 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/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 +32 -0
- package/lib/tags/Constant.d.ts +32 -0
- package/lib/tags/ContentMediaType.d.mts +17 -0
- package/lib/tags/ContentMediaType.d.ts +17 -0
- package/lib/tags/Default.d.mts +30 -0
- package/lib/tags/Default.d.ts +30 -0
- package/lib/tags/Example.d.mts +32 -0
- package/lib/tags/Example.d.ts +32 -0
- package/lib/tags/Examples.d.mts +40 -0
- package/lib/tags/Examples.d.ts +40 -0
- package/lib/tags/ExclusiveMaximum.d.mts +21 -0
- package/lib/tags/ExclusiveMaximum.d.ts +21 -0
- package/lib/tags/ExclusiveMinimum.d.mts +21 -0
- package/lib/tags/ExclusiveMinimum.d.ts +21 -0
- package/lib/tags/Format.d.mts +28 -0
- package/lib/tags/Format.d.ts +28 -0
- package/lib/tags/JsonSchemaPlugin.d.mts +28 -0
- package/lib/tags/JsonSchemaPlugin.d.ts +28 -0
- package/lib/tags/MaxItems.d.mts +19 -0
- package/lib/tags/MaxItems.d.ts +19 -0
- package/lib/tags/MaxLength.d.mts +13 -0
- package/lib/tags/MaxLength.d.ts +13 -0
- package/lib/tags/Maximum.d.mts +20 -0
- package/lib/tags/Maximum.d.ts +20 -0
- package/lib/tags/MinItems.d.mts +19 -0
- package/lib/tags/MinItems.d.ts +19 -0
- package/lib/tags/MinLength.d.mts +13 -0
- package/lib/tags/MinLength.d.ts +13 -0
- package/lib/tags/Minimum.d.mts +20 -0
- package/lib/tags/Minimum.d.ts +20 -0
- package/lib/tags/MultipleOf.d.mts +21 -0
- package/lib/tags/MultipleOf.d.ts +21 -0
- package/lib/tags/Pattern.d.mts +18 -0
- package/lib/tags/Pattern.d.ts +18 -0
- package/lib/tags/Sequence.d.mts +27 -0
- package/lib/tags/Sequence.d.ts +27 -0
- package/lib/tags/TagBase.d.mts +38 -18
- package/lib/tags/TagBase.d.ts +38 -18
- package/lib/tags/Type.d.mts +27 -0
- package/lib/tags/Type.d.ts +27 -0
- package/lib/tags/UniqueItems.d.mts +20 -0
- package/lib/tags/UniqueItems.d.ts +20 -0
- 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 +114 -1
- package/lib/transformers/ImportTransformer.js.map +1 -1
- package/lib/transformers/ImportTransformer.mjs +114 -1
- 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 +57 -47
- 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/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 +32 -0
- package/src/tags/ContentMediaType.ts +17 -0
- package/src/tags/Default.ts +30 -0
- package/src/tags/Example.ts +32 -0
- package/src/tags/Examples.ts +40 -0
- package/src/tags/ExclusiveMaximum.ts +21 -0
- package/src/tags/ExclusiveMinimum.ts +21 -0
- package/src/tags/Format.ts +28 -0
- package/src/tags/JsonSchemaPlugin.ts +28 -0
- package/src/tags/MaxItems.ts +19 -0
- package/src/tags/MaxLength.ts +13 -0
- package/src/tags/Maximum.ts +20 -0
- package/src/tags/MinItems.ts +19 -0
- package/src/tags/MinLength.ts +13 -0
- package/src/tags/Minimum.ts +20 -0
- package/src/tags/MultipleOf.ts +21 -0
- package/src/tags/Pattern.ts +18 -0
- package/src/tags/Sequence.ts +27 -0
- package/src/tags/TagBase.ts +38 -18
- package/src/tags/Type.ts +27 -0
- package/src/tags/UniqueItems.ts +20 -0
- package/src/tags/internal/FormatCheatSheet.ts +1 -3
- package/src/transformers/ITransformOptions.ts +27 -19
- package/src/transformers/ImportTransformer.ts +173 -1
- package/src/transformers/NoTransformConfigurationError.ts +1 -3
- package/src/transformers/features/llm/LlmApplicationTransformer.ts +1 -3
- package/src/typings/Equal.ts +6 -6
|
@@ -3,37 +3,43 @@ import type { OpenApi, OpenApiV3 } from "@samchon/openapi";
|
|
|
3
3
|
* Collection of JSON schemas with OpenAPI specification support.
|
|
4
4
|
*
|
|
5
5
|
* `IJsonSchemaCollection` represents a comprehensive collection of JSON schemas
|
|
6
|
-
* that can be generated from TypeScript types using the `typia.json.schemas()`
|
|
7
|
-
* This interface supports both OpenAPI v3.0 and v3.1 specifications,
|
|
8
|
-
* to automatically generate appropriate schema definitions
|
|
6
|
+
* that can be generated from TypeScript types using the `typia.json.schemas()`
|
|
7
|
+
* function. This interface supports both OpenAPI v3.0 and v3.1 specifications,
|
|
8
|
+
* with the ability to automatically generate appropriate schema definitions
|
|
9
|
+
* based on the specified version.
|
|
9
10
|
*
|
|
10
11
|
* The collection includes:
|
|
11
|
-
*
|
|
12
|
+
*
|
|
13
|
+
* - Generated JSON schemas array containing schema definitions for the specified
|
|
14
|
+
* types
|
|
12
15
|
* - Reusable components that can be referenced across different schemas
|
|
13
|
-
* - Version-specific formatting that adheres to either OpenAPI v3.0 or v3.1
|
|
16
|
+
* - Version-specific formatting that adheres to either OpenAPI v3.0 or v3.1
|
|
17
|
+
* standards
|
|
14
18
|
*
|
|
15
19
|
* Key differences between versions:
|
|
16
|
-
* - OpenAPI v3.0: Uses {@link OpenApiV3.IJsonSchema} format with limited tuple support
|
|
17
|
-
* - OpenAPI v3.1: Uses {@link OpenApi.IJsonSchema} format with full JSON Schema Draft 2020-12 compatibility
|
|
18
20
|
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
* back to the source TypeScript definitions.
|
|
21
|
+
* - OpenAPI v3.0: Uses {@link OpenApiV3.IJsonSchema} format with limited tuple
|
|
22
|
+
* support
|
|
23
|
+
* - OpenAPI v3.1: Uses {@link OpenApi.IJsonSchema} format with full JSON Schema
|
|
24
|
+
* Draft 2020-12 compatibility
|
|
24
25
|
*
|
|
26
|
+
* @author Jeongho Nam - https://github.com/samchon
|
|
25
27
|
* @example
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
28
|
+
* ```typescript
|
|
29
|
+
* // Generate schemas for OpenAPI v3.1 (default)
|
|
30
|
+
* const schemas = typia.json.schemas<[User, Product]>();
|
|
31
|
+
* // Type: IJsonSchemaCollection<"3.1", [User, Product]>
|
|
30
32
|
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
33
|
+
* // Generate schemas for OpenAPI v3.0 (Swagger compatibility)
|
|
34
|
+
* const swaggerSchemas = typia.json.schemas<[User, Product], "3.0">();
|
|
35
|
+
* // Type: IJsonSchemaCollection<"3.0", [User, Product]>
|
|
36
|
+
* ```;
|
|
35
37
|
*
|
|
36
|
-
* @
|
|
38
|
+
* @template Version The OpenAPI specification version to target ("3.0" or
|
|
39
|
+
* "3.1"). Defaults to "3.1" for enhanced JSON Schema compatibility.
|
|
40
|
+
* @template Types Array of original TypeScript types that were analyzed to
|
|
41
|
+
* generate the JSON schemas. This provides type safety and traceability back
|
|
42
|
+
* to the source TypeScript definitions.
|
|
37
43
|
*/
|
|
38
44
|
export type IJsonSchemaCollection<Version extends "3.0" | "3.1" = "3.1", Types = unknown[]> = Version extends "3.0" ? IJsonSchemaCollection.IV3_0<Types> : IJsonSchemaCollection.IV3_1<Types>;
|
|
39
45
|
export declare namespace IJsonSchemaCollection {
|
|
@@ -41,54 +47,59 @@ export declare namespace IJsonSchemaCollection {
|
|
|
41
47
|
* JSON Schema collection formatted for OpenAPI v3.0 specification.
|
|
42
48
|
*
|
|
43
49
|
* This interface represents a collection of JSON schemas that comply with
|
|
44
|
-
* OpenAPI v3.0 standards, which are compatible with Swagger tools and
|
|
45
|
-
*
|
|
46
|
-
*
|
|
50
|
+
* OpenAPI v3.0 standards, which are compatible with Swagger tools and legacy
|
|
51
|
+
* OpenAPI implementations. OpenAPI v3.0 has some limitations compared to
|
|
52
|
+
* v3.1, particularly around tuple types and pattern properties.
|
|
47
53
|
*
|
|
48
54
|
* Key characteristics of v3.0:
|
|
55
|
+
*
|
|
49
56
|
* - Cannot express tuple types natively (falls back to array representations)
|
|
50
57
|
* - Cannot express pattern properties in object schemas
|
|
51
58
|
* - Uses nullable property instead of union with null type
|
|
52
59
|
* - Limited JSON Schema Draft compatibility (based on Draft 4)
|
|
53
60
|
*
|
|
54
|
-
* @template Types Array of original TypeScript types used to generate the
|
|
55
|
-
*
|
|
56
|
-
*
|
|
61
|
+
* @template Types Array of original TypeScript types used to generate the
|
|
62
|
+
* schemas. This provides compile-time type information about what types
|
|
63
|
+
* were analyzed during schema generation.
|
|
57
64
|
*/
|
|
58
65
|
interface IV3_0<Types = unknown[]> {
|
|
59
66
|
/**
|
|
60
67
|
* OpenAPI specification version identifier.
|
|
61
68
|
*
|
|
62
|
-
* Always set to "3.0" to indicate this collection uses OpenAPI v3.0
|
|
63
|
-
*
|
|
69
|
+
* Always set to "3.0" to indicate this collection uses OpenAPI v3.0 schema
|
|
70
|
+
* format and constraints.
|
|
64
71
|
*/
|
|
65
72
|
version: "3.0";
|
|
66
73
|
/**
|
|
67
74
|
* Array of generated JSON schemas.
|
|
68
75
|
*
|
|
69
|
-
* Contains the actual JSON schema definitions generated from the input
|
|
70
|
-
* Each schema in this array corresponds to one of the
|
|
71
|
-
* template parameter. The schemas follow
|
|
72
|
-
* references to components defined in
|
|
76
|
+
* Contains the actual JSON schema definitions generated from the input
|
|
77
|
+
* TypeScript types. Each schema in this array corresponds to one of the
|
|
78
|
+
* types specified in the `Types` template parameter. The schemas follow
|
|
79
|
+
* OpenAPI v3.0 format and may contain references to components defined in
|
|
80
|
+
* the {@link components} property.
|
|
73
81
|
*
|
|
74
|
-
* Schema references typically use the format: `{ "$ref":
|
|
82
|
+
* Schema references typically use the format: `{ "$ref":
|
|
83
|
+
* "#/components/schemas/TypeName" }`
|
|
75
84
|
*/
|
|
76
85
|
schemas: OpenApiV3.IJsonSchema[];
|
|
77
86
|
/**
|
|
78
87
|
* Reusable schema components for OpenAPI v3.0.
|
|
79
88
|
*
|
|
80
|
-
* Contains reusable schema definitions, security schemes, and other
|
|
81
|
-
* that can be referenced from the main schemas. This follows the
|
|
82
|
-
* components structure and enables schema reuse and
|
|
89
|
+
* Contains reusable schema definitions, security schemes, and other
|
|
90
|
+
* components that can be referenced from the main schemas. This follows the
|
|
91
|
+
* OpenAPI v3.0 components structure and enables schema reuse and
|
|
92
|
+
* modularity.
|
|
83
93
|
*
|
|
84
94
|
* Components include:
|
|
85
|
-
*
|
|
86
|
-
* -
|
|
87
|
-
* -
|
|
88
|
-
* -
|
|
89
|
-
* -
|
|
90
|
-
* -
|
|
91
|
-
* -
|
|
95
|
+
*
|
|
96
|
+
* - Schemas: Named type definitions that can be referenced via $ref
|
|
97
|
+
* - SecuritySchemes: Authentication and authorization schemes
|
|
98
|
+
* - Parameters: Reusable parameter definitions
|
|
99
|
+
* - RequestBodies: Reusable request body definitions
|
|
100
|
+
* - Responses: Reusable response definitions
|
|
101
|
+
* - Headers: Reusable header definitions
|
|
102
|
+
* - Examples: Reusable example definitions
|
|
92
103
|
*/
|
|
93
104
|
components: OpenApiV3.IComponents;
|
|
94
105
|
/**
|
|
@@ -100,6 +111,7 @@ export declare namespace IJsonSchemaCollection {
|
|
|
100
111
|
* and undefined to prevent it from appearing in serialized JSON output.
|
|
101
112
|
*
|
|
102
113
|
* This enables:
|
|
114
|
+
*
|
|
103
115
|
* - Compile-time type checking against the original types
|
|
104
116
|
* - IDE intellisense and autocompletion
|
|
105
117
|
* - Type-safe schema validation and usage
|
|
@@ -111,38 +123,40 @@ export declare namespace IJsonSchemaCollection {
|
|
|
111
123
|
*
|
|
112
124
|
* This interface represents a collection of JSON schemas that comply with
|
|
113
125
|
* OpenAPI v3.1 standards, which provide enhanced JSON Schema compatibility
|
|
114
|
-
* and support for modern JSON Schema features. OpenAPI v3.1 is based on
|
|
115
|
-
*
|
|
126
|
+
* and support for modern JSON Schema features. OpenAPI v3.1 is based on JSON
|
|
127
|
+
* Schema Draft 2020-12 and offers significant improvements over v3.0.
|
|
116
128
|
*
|
|
117
129
|
* Key advantages of v3.1:
|
|
130
|
+
*
|
|
118
131
|
* - Full tuple type support with prefixItems
|
|
119
132
|
* - Pattern properties support for dynamic object keys
|
|
120
133
|
* - Proper null type handling via union types
|
|
121
134
|
* - Enhanced JSON Schema Draft 2020-12 compatibility
|
|
122
135
|
* - Better const, enum, and validation support
|
|
123
136
|
*
|
|
124
|
-
* @template Types Array of original TypeScript types used to generate the
|
|
125
|
-
*
|
|
126
|
-
*
|
|
137
|
+
* @template Types Array of original TypeScript types used to generate the
|
|
138
|
+
* schemas. This provides compile-time type information about what types
|
|
139
|
+
* were analyzed during schema generation.
|
|
127
140
|
*/
|
|
128
141
|
interface IV3_1<Types = unknown[]> {
|
|
129
142
|
/**
|
|
130
143
|
* OpenAPI specification version identifier.
|
|
131
144
|
*
|
|
132
|
-
* Always set to "3.1" to indicate this collection uses OpenAPI v3.1
|
|
133
|
-
*
|
|
145
|
+
* Always set to "3.1" to indicate this collection uses OpenAPI v3.1 schema
|
|
146
|
+
* format with enhanced JSON Schema compatibility.
|
|
134
147
|
*/
|
|
135
148
|
version: "3.1";
|
|
136
149
|
/**
|
|
137
150
|
* Reusable schema components for OpenAPI v3.1.
|
|
138
151
|
*
|
|
139
152
|
* Contains reusable schema definitions and other components following the
|
|
140
|
-
* OpenAPI v3.1 specification. This structure is similar to v3.0 but
|
|
141
|
-
* enhanced JSON Schema features and improved type definitions.
|
|
153
|
+
* OpenAPI v3.1 specification. This structure is similar to v3.0 but
|
|
154
|
+
* supports enhanced JSON Schema features and improved type definitions.
|
|
142
155
|
*
|
|
143
156
|
* Components include:
|
|
144
|
-
*
|
|
145
|
-
* -
|
|
157
|
+
*
|
|
158
|
+
* - Schemas: Named type definitions with enhanced JSON Schema support
|
|
159
|
+
* - SecuritySchemes: Authentication and authorization schemes
|
|
146
160
|
*
|
|
147
161
|
* The emended OpenAPI v3.1 format used here removes ambiguous expressions
|
|
148
162
|
* and standardizes certain patterns for better tooling compatibility.
|
|
@@ -154,6 +168,7 @@ export declare namespace IJsonSchemaCollection {
|
|
|
154
168
|
* Contains JSON schema definitions that take advantage of OpenAPI v3.1's
|
|
155
169
|
* enhanced capabilities. These schemas can express more complex TypeScript
|
|
156
170
|
* types accurately, including:
|
|
171
|
+
*
|
|
157
172
|
* - Tuple types using prefixItems
|
|
158
173
|
* - Union types with proper null handling
|
|
159
174
|
* - Complex nested object structures
|
|
@@ -168,9 +183,11 @@ export declare namespace IJsonSchemaCollection {
|
|
|
168
183
|
*
|
|
169
184
|
* This optional property stores the original TypeScript types that were
|
|
170
185
|
* used to generate the JSON schemas. It provides compile-time type safety
|
|
171
|
-
* and enables better development experience without affecting runtime
|
|
186
|
+
* and enables better development experience without affecting runtime
|
|
187
|
+
* behavior.
|
|
172
188
|
*
|
|
173
189
|
* Benefits include:
|
|
190
|
+
*
|
|
174
191
|
* - Strong typing connection to original TypeScript definitions
|
|
175
192
|
* - Enhanced IDE support and autocompletion
|
|
176
193
|
* - Compile-time validation of schema usage
|
|
@@ -2,55 +2,57 @@ import { OpenApi, OpenApiV3 } from "@samchon/openapi";
|
|
|
2
2
|
/**
|
|
3
3
|
* Single unit of JSON schema representation.
|
|
4
4
|
*
|
|
5
|
-
* `IJsonSchemaUnit` represents a self-contained JSON schema unit that
|
|
6
|
-
* a single schema definition along with its associated reusable
|
|
7
|
-
* typically used when generating a JSON schema for a single
|
|
8
|
-
* opposed to a collection of multiple types.
|
|
5
|
+
* `IJsonSchemaUnit` represents a self-contained JSON schema unit that
|
|
6
|
+
* encapsulates a single schema definition along with its associated reusable
|
|
7
|
+
* components. This is typically used when generating a JSON schema for a single
|
|
8
|
+
* TypeScript type, as opposed to a collection of multiple types.
|
|
9
9
|
*
|
|
10
|
-
* Unlike {@link IJsonSchemaCollection} which handles multiple schemas,
|
|
11
|
-
* focuses on representing a single schema with its
|
|
12
|
-
* for scenarios where you need to work with
|
|
13
|
-
* integrating with systems that expect
|
|
10
|
+
* Unlike {@link IJsonSchemaCollection} which handles multiple schemas,
|
|
11
|
+
* `IJsonSchemaUnit` focuses on representing a single schema with its
|
|
12
|
+
* dependencies. This makes it ideal for scenarios where you need to work with
|
|
13
|
+
* individual type definitions or when integrating with systems that expect
|
|
14
|
+
* single schema documents.
|
|
14
15
|
*
|
|
15
16
|
* The unit contains:
|
|
17
|
+
*
|
|
16
18
|
* - A single JSON schema definition for the specified TypeScript type
|
|
17
19
|
* - All necessary reusable components that the schema may reference
|
|
18
20
|
* - Version-specific formatting for either OpenAPI v3.0 or v3.1 compatibility
|
|
19
21
|
* - Optional type metadata for compile-time type safety
|
|
20
22
|
*
|
|
21
23
|
* Key differences from collection:
|
|
24
|
+
*
|
|
22
25
|
* - Contains only one schema instead of an array of schemas
|
|
23
26
|
* - More lightweight for single-type use cases
|
|
24
27
|
* - Simpler structure for direct schema consumption
|
|
25
28
|
* - Still maintains full component reference support
|
|
26
29
|
*
|
|
27
|
-
* @
|
|
28
|
-
* Defaults to "3.1" for enhanced JSON Schema Draft 2020-12 compatibility.
|
|
29
|
-
* This determines the schema format, validation capabilities, and
|
|
30
|
-
* available features like tuple support and null type handling.
|
|
31
|
-
* @template Type The original TypeScript type that was analyzed to generate this
|
|
32
|
-
* JSON schema unit. This provides compile-time type safety and
|
|
33
|
-
* enables IDEs to provide better intellisense and validation.
|
|
34
|
-
*
|
|
30
|
+
* @author Jeongho Nam - https://github.com/samchon
|
|
35
31
|
* @example
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
32
|
+
* ```typescript
|
|
33
|
+
* interface User {
|
|
34
|
+
* id: string;
|
|
35
|
+
* name: string;
|
|
36
|
+
* email?: string;
|
|
37
|
+
* }
|
|
42
38
|
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
39
|
+
* // Generate a single schema unit for OpenAPI v3.1 (default)
|
|
40
|
+
* const userSchema = typia.json.schema<User>();
|
|
41
|
+
* // Type: IJsonSchemaUnit<"3.1", User>
|
|
46
42
|
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
43
|
+
* // Generate a single schema unit for OpenAPI v3.0 (Swagger compatibility)
|
|
44
|
+
* const swaggerUserSchema = typia.json.schema<User, "3.0">();
|
|
45
|
+
* // Type: IJsonSchemaUnit<"3.0", User>
|
|
46
|
+
* ```;
|
|
51
47
|
*
|
|
48
|
+
* @template Version The OpenAPI specification version to target ("3.0" or
|
|
49
|
+
* "3.1"). Defaults to "3.1" for enhanced JSON Schema Draft 2020-12
|
|
50
|
+
* compatibility. This determines the schema format, validation capabilities,
|
|
51
|
+
* and available features like tuple support and null type handling.
|
|
52
|
+
* @template Type The original TypeScript type that was analyzed to generate
|
|
53
|
+
* this JSON schema unit. This provides compile-time type safety and enables
|
|
54
|
+
* IDEs to provide better intellisense and validation.
|
|
52
55
|
* @see {@link IJsonSchemaCollection} For handling multiple schemas at once
|
|
53
|
-
* @author Jeongho Nam - https://github.com/samchon
|
|
54
56
|
*/
|
|
55
57
|
export type IJsonSchemaUnit<Version extends "3.0" | "3.1" = "3.1", Type = unknown> = Version extends "3.0" ? IJsonSchemaUnit.IV3_0<Type> : IJsonSchemaUnit.IV3_1<Type>;
|
|
56
58
|
export declare namespace IJsonSchemaUnit {
|
|
@@ -58,11 +60,12 @@ export declare namespace IJsonSchemaUnit {
|
|
|
58
60
|
* JSON Schema unit formatted for OpenAPI v3.0 specification.
|
|
59
61
|
*
|
|
60
62
|
* This interface represents a single JSON schema unit that complies with
|
|
61
|
-
* OpenAPI v3.0 standards. It contains one schema definition along with
|
|
62
|
-
*
|
|
63
|
-
*
|
|
63
|
+
* OpenAPI v3.0 standards. It contains one schema definition along with any
|
|
64
|
+
* reusable components that the schema references, formatted according to
|
|
65
|
+
* OpenAPI v3.0 constraints and limitations.
|
|
64
66
|
*
|
|
65
67
|
* OpenAPI v3.0 characteristics affecting this unit:
|
|
68
|
+
*
|
|
66
69
|
* - Schema follows OpenAPI v3.0 JSON Schema subset
|
|
67
70
|
* - Limited support for advanced JSON Schema features
|
|
68
71
|
* - Uses nullable property for optional null values
|
|
@@ -70,32 +73,34 @@ export declare namespace IJsonSchemaUnit {
|
|
|
70
73
|
* - Based on JSON Schema Draft 4 with OpenAPI-specific extensions
|
|
71
74
|
*
|
|
72
75
|
* Use cases for v3.0:
|
|
76
|
+
*
|
|
73
77
|
* - Integration with legacy Swagger tooling
|
|
74
78
|
* - Compatibility with older OpenAPI implementations
|
|
75
79
|
* - Systems that specifically require OpenAPI v3.0 format
|
|
76
80
|
* - Code generation tools that expect v3.0 schemas
|
|
77
81
|
*
|
|
78
|
-
* @template Type The original TypeScript type represented by this schema
|
|
79
|
-
*
|
|
80
|
-
*
|
|
82
|
+
* @template Type The original TypeScript type represented by this schema
|
|
83
|
+
* unit. Provides compile-time type information and enables type-safe
|
|
84
|
+
* operations on the schema.
|
|
81
85
|
*/
|
|
82
86
|
interface IV3_0<Type> {
|
|
83
87
|
/**
|
|
84
88
|
* OpenAPI specification version identifier.
|
|
85
89
|
*
|
|
86
|
-
* Always set to "3.0" to indicate this schema unit uses OpenAPI v3.0
|
|
87
|
-
*
|
|
90
|
+
* Always set to "3.0" to indicate this schema unit uses OpenAPI v3.0 format
|
|
91
|
+
* and adheres to its specific constraints and limitations.
|
|
88
92
|
*/
|
|
89
93
|
version: "3.0";
|
|
90
94
|
/**
|
|
91
95
|
* The primary JSON schema definition.
|
|
92
96
|
*
|
|
93
|
-
* Contains the main JSON schema that represents the TypeScript type
|
|
94
|
-
* in the `Type` template parameter. This schema follows OpenAPI
|
|
95
|
-
* and may contain references to reusable components defined in
|
|
96
|
-
* {@link components} property.
|
|
97
|
+
* Contains the main JSON schema that represents the TypeScript type
|
|
98
|
+
* specified in the `Type` template parameter. This schema follows OpenAPI
|
|
99
|
+
* v3.0 format and may contain references to reusable components defined in
|
|
100
|
+
* the {@link components} property.
|
|
97
101
|
*
|
|
98
102
|
* The schema structure includes:
|
|
103
|
+
*
|
|
99
104
|
* - Type definitions following OpenAPI v3.0 constraints
|
|
100
105
|
* - Property definitions with v3.0-compatible validation rules
|
|
101
106
|
* - References to shared components using $ref syntax
|
|
@@ -113,13 +118,14 @@ export declare namespace IJsonSchemaUnit {
|
|
|
113
118
|
* within the schema definition.
|
|
114
119
|
*
|
|
115
120
|
* Component categories include:
|
|
116
|
-
*
|
|
117
|
-
* -
|
|
118
|
-
* -
|
|
119
|
-
* -
|
|
120
|
-
* -
|
|
121
|
-
* -
|
|
122
|
-
* -
|
|
121
|
+
*
|
|
122
|
+
* - Schemas: Named type definitions for complex objects, arrays, and unions
|
|
123
|
+
* - SecuritySchemes: Authentication and authorization definitions
|
|
124
|
+
* - Parameters: Reusable parameter specifications
|
|
125
|
+
* - RequestBodies: Reusable request body definitions
|
|
126
|
+
* - Responses: Reusable response specifications
|
|
127
|
+
* - Headers: Reusable header definitions
|
|
128
|
+
* - Examples: Reusable example values
|
|
123
129
|
*
|
|
124
130
|
* All components follow OpenAPI v3.0 format restrictions and capabilities.
|
|
125
131
|
*/
|
|
@@ -132,26 +138,28 @@ export declare namespace IJsonSchemaUnit {
|
|
|
132
138
|
* type information without affecting the runtime JSON representation.
|
|
133
139
|
*
|
|
134
140
|
* Benefits of type metadata:
|
|
141
|
+
*
|
|
135
142
|
* - Enables type-safe schema validation and usage
|
|
136
143
|
* - Provides IDE intellisense and autocompletion
|
|
137
144
|
* - Allows compile-time checking of schema operations
|
|
138
145
|
* - Maintains traceability to original TypeScript definitions
|
|
139
146
|
*
|
|
140
147
|
* The property is intentionally marked as optional and undefined to ensure
|
|
141
|
-
* it doesn't appear in serialized JSON output while preserving type
|
|
142
|
-
* at compile time.
|
|
148
|
+
* it doesn't appear in serialized JSON output while preserving type
|
|
149
|
+
* information at compile time.
|
|
143
150
|
*/
|
|
144
151
|
__type?: Type | undefined;
|
|
145
152
|
}
|
|
146
153
|
/**
|
|
147
154
|
* JSON Schema unit formatted for OpenAPI v3.1 specification.
|
|
148
155
|
*
|
|
149
|
-
* This interface represents a single JSON schema unit that takes advantage
|
|
150
|
-
*
|
|
151
|
-
* It provides a more feature-rich and accurate representation
|
|
152
|
-
* types compared to the v3.0 format.
|
|
156
|
+
* This interface represents a single JSON schema unit that takes advantage of
|
|
157
|
+
* OpenAPI v3.1's enhanced capabilities and improved JSON Schema
|
|
158
|
+
* compatibility. It provides a more feature-rich and accurate representation
|
|
159
|
+
* of TypeScript types compared to the v3.0 format.
|
|
153
160
|
*
|
|
154
161
|
* OpenAPI v3.1 advantages for this unit:
|
|
162
|
+
*
|
|
155
163
|
* - Full JSON Schema Draft 2020-12 compatibility
|
|
156
164
|
* - Native tuple type support using prefixItems
|
|
157
165
|
* - Proper null type handling via union types
|
|
@@ -160,21 +168,22 @@ export declare namespace IJsonSchemaUnit {
|
|
|
160
168
|
* - Better support for complex nested structures
|
|
161
169
|
*
|
|
162
170
|
* Use cases for v3.1:
|
|
171
|
+
*
|
|
163
172
|
* - Modern OpenAPI implementations and tooling
|
|
164
173
|
* - Systems requiring accurate TypeScript type representation
|
|
165
174
|
* - Applications needing advanced JSON Schema features
|
|
166
175
|
* - New projects without legacy compatibility requirements
|
|
167
176
|
*
|
|
168
|
-
* @template Type The original TypeScript type represented by this schema
|
|
169
|
-
*
|
|
170
|
-
*
|
|
177
|
+
* @template Type The original TypeScript type represented by this schema
|
|
178
|
+
* unit. Enables compile-time type safety and provides enhanced development
|
|
179
|
+
* experience with better IDE support.
|
|
171
180
|
*/
|
|
172
181
|
interface IV3_1<Type> {
|
|
173
182
|
/**
|
|
174
183
|
* OpenAPI specification version identifier.
|
|
175
184
|
*
|
|
176
|
-
* Always set to "3.1" to indicate this schema unit uses OpenAPI v3.1
|
|
177
|
-
*
|
|
185
|
+
* Always set to "3.1" to indicate this schema unit uses OpenAPI v3.1 format
|
|
186
|
+
* with enhanced JSON Schema compatibility and modern features.
|
|
178
187
|
*/
|
|
179
188
|
version: "3.1";
|
|
180
189
|
/**
|
|
@@ -182,9 +191,11 @@ export declare namespace IJsonSchemaUnit {
|
|
|
182
191
|
*
|
|
183
192
|
* Contains the main JSON schema that accurately represents the TypeScript
|
|
184
193
|
* type using OpenAPI v3.1's enhanced capabilities. This schema can express
|
|
185
|
-
* complex TypeScript constructs that were not possible or accurate in
|
|
194
|
+
* complex TypeScript constructs that were not possible or accurate in
|
|
195
|
+
* v3.0.
|
|
186
196
|
*
|
|
187
197
|
* Enhanced schema features include:
|
|
198
|
+
*
|
|
188
199
|
* - Tuple types using prefixItems for exact array structure
|
|
189
200
|
* - Union types with proper null handling via oneOf
|
|
190
201
|
* - Const values for literal types
|
|
@@ -192,20 +203,21 @@ export declare namespace IJsonSchemaUnit {
|
|
|
192
203
|
* - Advanced validation constraints and metadata
|
|
193
204
|
* - Recursive type definitions with proper $ref handling
|
|
194
205
|
*
|
|
195
|
-
* The schema follows the emended OpenAPI v3.1 format used by typia,
|
|
196
|
-
*
|
|
206
|
+
* The schema follows the emended OpenAPI v3.1 format used by typia, which
|
|
207
|
+
* removes ambiguous expressions while maintaining full compatibility.
|
|
197
208
|
*/
|
|
198
209
|
schema: OpenApi.IJsonSchema;
|
|
199
210
|
/**
|
|
200
211
|
* Reusable schema components for OpenAPI v3.1.
|
|
201
212
|
*
|
|
202
|
-
* Contains reusable schema definitions and components that leverage
|
|
203
|
-
*
|
|
204
|
-
*
|
|
213
|
+
* Contains reusable schema definitions and components that leverage OpenAPI
|
|
214
|
+
* v3.1's enhanced capabilities. These components provide better type
|
|
215
|
+
* representation and more accurate schema definitions compared to v3.0.
|
|
205
216
|
*
|
|
206
217
|
* Enhanced component features:
|
|
207
|
-
*
|
|
208
|
-
* -
|
|
218
|
+
*
|
|
219
|
+
* - Schemas: More accurate type definitions with v3.1 JSON Schema features
|
|
220
|
+
* - SecuritySchemes: Enhanced authentication scheme definitions
|
|
209
221
|
* - Better support for complex nested references
|
|
210
222
|
* - Improved handling of recursive and circular type dependencies
|
|
211
223
|
*
|
|
@@ -218,10 +230,11 @@ export declare namespace IJsonSchemaUnit {
|
|
|
218
230
|
*
|
|
219
231
|
* This optional property preserves the original TypeScript type information
|
|
220
232
|
* for compile-time type checking and enhanced development experience. It
|
|
221
|
-
* enables type-safe operations and better IDE support without affecting
|
|
222
|
-
*
|
|
233
|
+
* enables type-safe operations and better IDE support without affecting the
|
|
234
|
+
* runtime JSON schema representation.
|
|
223
235
|
*
|
|
224
236
|
* Enhanced type safety features:
|
|
237
|
+
*
|
|
225
238
|
* - Strong typing connection to original TypeScript definitions
|
|
226
239
|
* - Better IDE intellisense and error detection
|
|
227
240
|
* - Compile-time validation of schema usage patterns
|