typia 9.3.1 → 9.5.0-dev.20250710
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/LICENSE +21 -21
- package/README.md +153 -153
- package/lib/AssertionGuard.d.mts +38 -0
- package/lib/AssertionGuard.d.ts +38 -0
- package/lib/TypeGuardError.d.mts +124 -3
- package/lib/TypeGuardError.d.ts +124 -3
- package/lib/TypeGuardError.js +47 -0
- package/lib/TypeGuardError.js.map +1 -1
- package/lib/TypeGuardError.mjs +96 -0
- package/lib/executable/setup/PluginConfigurator.js +3 -3
- package/lib/executable/setup/PluginConfigurator.mjs +3 -3
- package/lib/executable/typia.d.mts +1 -1
- package/lib/executable/typia.d.ts +1 -1
- package/lib/executable/typia.js +15 -15
- package/lib/executable/typia.mjs +15 -15
- package/lib/programmers/internal/json_schema_title.js +2 -8
- package/lib/programmers/internal/json_schema_title.js.map +1 -1
- package/lib/programmers/internal/json_schema_title.mjs +1 -7
- package/lib/programmers/json/JsonSchemasProgrammer.js +2 -2
- package/lib/programmers/json/JsonSchemasProgrammer.mjs +2 -2
- package/lib/schemas/json/IJsonSchemaCollection.d.mts +161 -3
- package/lib/schemas/json/IJsonSchemaCollection.d.ts +161 -3
- package/lib/schemas/json/IJsonSchemaUnit.d.mts +215 -5
- package/lib/schemas/json/IJsonSchemaUnit.d.ts +215 -5
- package/package.json +3 -3
- package/src/AssertionGuard.ts +39 -1
- package/src/CamelCase.ts +75 -75
- package/src/IRandomGenerator.ts +49 -49
- package/src/IReadableURLSearchParams.ts +9 -9
- package/src/IValidation.ts +1 -1
- package/src/PascalCase.ts +71 -71
- package/src/Primitive.ts +92 -92
- package/src/Resolved.ts +74 -74
- package/src/SnakeCase.ts +126 -126
- package/src/TypeGuardError.ts +179 -37
- package/src/executable/TypiaGenerateWizard.ts +83 -83
- package/src/executable/TypiaPatchWizard.ts +45 -45
- package/src/executable/TypiaSetupWizard.ts +171 -171
- package/src/executable/setup/ArgumentParser.ts +42 -42
- package/src/executable/setup/CommandExecutor.ts +8 -8
- package/src/executable/setup/FileRetriever.ts +19 -19
- package/src/executable/setup/PackageManager.ts +87 -87
- package/src/executable/setup/PluginConfigurator.ts +74 -74
- package/src/executable/typia.ts +55 -55
- package/src/factories/CommentFactory.ts +79 -79
- package/src/factories/ExpressionFactory.ts +219 -219
- package/src/factories/IdentifierFactory.ts +89 -89
- package/src/factories/JsonMetadataFactory.ts +83 -83
- package/src/factories/LiteralFactory.ts +52 -52
- package/src/factories/MetadataCollection.ts +278 -278
- package/src/factories/MetadataCommentTagFactory.ts +648 -648
- package/src/factories/MetadataFactory.ts +404 -404
- package/src/factories/MetadataTypeTagFactory.ts +413 -413
- package/src/factories/MetadataTypeTagSchemaFactory.ts +82 -82
- package/src/factories/NumericRangeFactory.ts +72 -72
- package/src/factories/ProtobufFactory.ts +875 -875
- package/src/factories/StatementFactory.ts +90 -90
- package/src/factories/TemplateFactory.ts +64 -64
- package/src/factories/TypeFactory.ts +140 -140
- package/src/factories/ValueFactory.ts +12 -12
- package/src/factories/internal/metadata/IMetadataIteratorProps.ts +17 -17
- package/src/factories/internal/metadata/MetadataHelper.ts +21 -21
- package/src/factories/internal/metadata/emend_metadata_atomics.ts +45 -45
- package/src/factories/internal/metadata/emplace_metadata_alias.ts +33 -33
- package/src/factories/internal/metadata/emplace_metadata_array_type.ts +39 -39
- package/src/factories/internal/metadata/emplace_metadata_object.ts +212 -212
- package/src/factories/internal/metadata/emplace_metadata_tuple.ts +57 -57
- package/src/factories/internal/metadata/explore_metadata.ts +31 -31
- package/src/factories/internal/metadata/iterate_metadata.ts +54 -54
- package/src/factories/internal/metadata/iterate_metadata_alias.ts +33 -33
- package/src/factories/internal/metadata/iterate_metadata_array.ts +63 -63
- package/src/factories/internal/metadata/iterate_metadata_atomic.ts +62 -62
- package/src/factories/internal/metadata/iterate_metadata_coalesce.ts +28 -28
- package/src/factories/internal/metadata/iterate_metadata_collection.ts +146 -146
- package/src/factories/internal/metadata/iterate_metadata_comment_tags.ts +32 -32
- package/src/factories/internal/metadata/iterate_metadata_constant.ts +76 -76
- package/src/factories/internal/metadata/iterate_metadata_escape.ts +49 -49
- package/src/factories/internal/metadata/iterate_metadata_function.ts +91 -91
- package/src/factories/internal/metadata/iterate_metadata_intersection.ts +212 -212
- package/src/factories/internal/metadata/iterate_metadata_map.ts +57 -57
- package/src/factories/internal/metadata/iterate_metadata_native.ts +264 -264
- package/src/factories/internal/metadata/iterate_metadata_object.ts +35 -35
- package/src/factories/internal/metadata/iterate_metadata_set.ts +57 -57
- package/src/factories/internal/metadata/iterate_metadata_sort.ts +87 -87
- package/src/factories/internal/metadata/iterate_metadata_template.ts +41 -41
- package/src/factories/internal/metadata/iterate_metadata_tuple.ts +26 -26
- package/src/factories/internal/metadata/iterate_metadata_union.ts +19 -19
- package/src/functional.ts +740 -740
- package/src/http.ts +1040 -1040
- package/src/index.ts +4 -4
- package/src/internal/_IProtobufWriter.ts +18 -18
- package/src/internal/_ProtobufReader.ts +194 -194
- package/src/internal/_ProtobufSizer.ts +145 -145
- package/src/internal/_ProtobufWriter.ts +145 -145
- package/src/internal/_accessExpressionAsString.ts +46 -46
- package/src/internal/_assertGuard.ts +13 -13
- package/src/internal/_createStandardSchema.ts +134 -134
- package/src/internal/_functionalTypeGuardErrorFactory.ts +4 -4
- package/src/internal/_httpFormDataReadArray.ts +4 -4
- package/src/internal/_httpFormDataReadBigint.ts +18 -18
- package/src/internal/_httpFormDataReadBlob.ts +10 -10
- package/src/internal/_httpFormDataReadBoolean.ts +16 -16
- package/src/internal/_httpFormDataReadFile.ts +10 -10
- package/src/internal/_httpFormDataReadNumber.ts +15 -15
- package/src/internal/_httpFormDataReadString.ts +10 -10
- package/src/internal/_httpHeaderReadBigint.ts +10 -10
- package/src/internal/_httpHeaderReadBoolean.ts +8 -8
- package/src/internal/_httpHeaderReadNumber.ts +7 -7
- package/src/internal/_httpParameterReadBigint.ts +10 -10
- package/src/internal/_httpParameterReadBoolean.ts +8 -8
- package/src/internal/_httpParameterReadNumber.ts +7 -7
- package/src/internal/_httpParameterReadString.ts +2 -2
- package/src/internal/_httpQueryParseURLSearchParams.ts +12 -12
- package/src/internal/_httpQueryReadArray.ts +4 -4
- package/src/internal/_httpQueryReadBigint.ts +12 -12
- package/src/internal/_httpQueryReadBoolean.ts +14 -14
- package/src/internal/_httpQueryReadNumber.ts +9 -9
- package/src/internal/_httpQueryReadString.ts +4 -4
- package/src/internal/_isBetween.ts +2 -2
- package/src/internal/_isBigintString.ts +8 -8
- package/src/internal/_isFormatByte.ts +7 -7
- package/src/internal/_isFormatDate.ts +3 -3
- package/src/internal/_isFormatDateTime.ts +4 -4
- package/src/internal/_isFormatDuration.ts +4 -4
- package/src/internal/_isFormatEmail.ts +4 -4
- package/src/internal/_isFormatHostname.ts +4 -4
- package/src/internal/_isFormatIdnEmail.ts +4 -4
- package/src/internal/_isFormatIdnHostname.ts +4 -4
- package/src/internal/_isFormatIpv4.ts +4 -4
- package/src/internal/_isFormatIpv6.ts +4 -4
- package/src/internal/_isFormatIri.ts +3 -3
- package/src/internal/_isFormatIriReference.ts +4 -4
- package/src/internal/_isFormatJsonPointer.ts +3 -3
- package/src/internal/_isFormatPassword.ts +1 -1
- package/src/internal/_isFormatRegex.ts +8 -8
- package/src/internal/_isFormatRelativeJsonPointer.ts +4 -4
- package/src/internal/_isFormatTime.ts +4 -4
- package/src/internal/_isFormatUri.ts +6 -6
- package/src/internal/_isFormatUriReference.ts +5 -5
- package/src/internal/_isFormatUriTemplate.ts +4 -4
- package/src/internal/_isFormatUrl.ts +4 -4
- package/src/internal/_isFormatUuid.ts +3 -3
- package/src/internal/_isTypeFloat.ts +5 -5
- package/src/internal/_isTypeInt32.ts +5 -5
- package/src/internal/_isTypeInt64.ts +5 -5
- package/src/internal/_isTypeUint32.ts +5 -5
- package/src/internal/_isTypeUint64.ts +5 -5
- package/src/internal/_isUniqueItems.ts +159 -159
- package/src/internal/_jsonStringifyNumber.ts +12 -12
- package/src/internal/_jsonStringifyRest.ts +3 -3
- package/src/internal/_jsonStringifyString.ts +42 -42
- package/src/internal/_jsonStringifyTail.ts +2 -2
- package/src/internal/_llmApplicationFinalize.ts +20 -20
- package/src/internal/_miscCloneAny.ts +46 -46
- package/src/internal/_notationAny.ts +37 -37
- package/src/internal/_notationCamel.ts +13 -13
- package/src/internal/_notationPascal.ts +8 -8
- package/src/internal/_notationSnake.ts +43 -43
- package/src/internal/_randomArray.ts +21 -21
- package/src/internal/_randomBigint.ts +6 -6
- package/src/internal/_randomBoolean.ts +1 -1
- package/src/internal/_randomFormatByte.ts +3 -3
- package/src/internal/_randomFormatDate.ts +18 -18
- package/src/internal/_randomFormatDatetime.ts +16 -16
- package/src/internal/_randomFormatDuration.ts +27 -27
- package/src/internal/_randomFormatEmail.ts +11 -11
- package/src/internal/_randomFormatHostname.ts +6 -6
- package/src/internal/_randomFormatIdnEmail.ts +3 -3
- package/src/internal/_randomFormatIdnHostname.ts +3 -3
- package/src/internal/_randomFormatIpv4.ts +11 -11
- package/src/internal/_randomFormatIpv6.ts +11 -11
- package/src/internal/_randomFormatIri.ts +3 -3
- package/src/internal/_randomFormatIriReference.ts +3 -3
- package/src/internal/_randomFormatJsonPointer.ts +7 -7
- package/src/internal/_randomFormatPassword.ts +8 -8
- package/src/internal/_randomFormatRegex.ts +4 -4
- package/src/internal/_randomFormatRelativeJsonPointer.ts +8 -8
- package/src/internal/_randomFormatTime.ts +14 -14
- package/src/internal/_randomFormatUri.ts +3 -3
- package/src/internal/_randomFormatUriReference.ts +3 -3
- package/src/internal/_randomFormatUriTemplate.ts +3 -3
- package/src/internal/_randomFormatUrl.ts +11 -11
- package/src/internal/_randomFormatUuid.ts +6 -6
- package/src/internal/_randomInteger.ts +53 -53
- package/src/internal/_randomNumber.ts +80 -80
- package/src/internal/_randomPattern.ts +10 -10
- package/src/internal/_randomPick.ts +9 -9
- package/src/internal/_randomString.ts +24 -24
- package/src/internal/_throwTypeGuardError.ts +5 -5
- package/src/internal/_validateReport.ts +13 -13
- package/src/internal/private/__notationCapitalize.ts +2 -2
- package/src/internal/private/__notationUnsnake.ts +24 -24
- package/src/json.ts +696 -696
- package/src/llm.ts +506 -506
- package/src/misc.ts +651 -651
- package/src/module.ts +936 -936
- package/src/notations.ts +820 -820
- package/src/programmers/AssertProgrammer.ts +454 -454
- package/src/programmers/CheckerProgrammer.ts +1617 -1617
- package/src/programmers/FeatureProgrammer.ts +627 -627
- package/src/programmers/ImportProgrammer.ts +185 -185
- package/src/programmers/IsProgrammer.ts +273 -273
- package/src/programmers/RandomProgrammer.ts +1190 -1190
- package/src/programmers/TypiaProgrammer.ts +175 -175
- package/src/programmers/ValidateProgrammer.ts +448 -448
- package/src/programmers/functional/FunctionalAssertFunctionProgrammer.ts +153 -153
- package/src/programmers/functional/FunctionalAssertParametersProgrammer.ts +125 -125
- package/src/programmers/functional/FunctionalAssertReturnProgrammer.ts +115 -115
- package/src/programmers/functional/FunctionalIsFunctionProgrammer.ts +72 -72
- package/src/programmers/functional/FunctionalIsParametersProgrammer.ts +113 -113
- package/src/programmers/functional/FunctionalIsReturnProgrammer.ts +116 -116
- package/src/programmers/functional/FunctionalValidateFunctionProgrammer.ts +119 -119
- package/src/programmers/functional/FunctionalValidateParametersProgrammer.ts +274 -274
- package/src/programmers/functional/FunctionalValidateReturnProgrammer.ts +135 -135
- package/src/programmers/functional/internal/FunctionalGeneralProgrammer.ts +34 -34
- package/src/programmers/helpers/AtomicPredicator.ts +35 -35
- package/src/programmers/helpers/CloneJoiner.ts +143 -143
- package/src/programmers/helpers/FunctionProgrammer.ts +67 -67
- package/src/programmers/helpers/HttpMetadataUtil.ts +21 -21
- package/src/programmers/helpers/ICheckEntry.ts +13 -13
- package/src/programmers/helpers/IExpressionEntry.ts +12 -12
- package/src/programmers/helpers/NotationJoiner.ts +144 -144
- package/src/programmers/helpers/OptionPredicator.ts +15 -15
- package/src/programmers/helpers/ProtobufUtil.ts +228 -228
- package/src/programmers/helpers/ProtobufWire.ts +34 -34
- package/src/programmers/helpers/PruneJoiner.ts +148 -148
- package/src/programmers/helpers/RandomJoiner.ts +168 -168
- package/src/programmers/helpers/StringifyJoinder.ts +115 -115
- package/src/programmers/helpers/StringifyPredicator.ts +13 -13
- package/src/programmers/helpers/UnionExplorer.ts +372 -372
- package/src/programmers/helpers/UnionPredicator.ts +79 -79
- package/src/programmers/helpers/disable_function_programmer_declare.ts +32 -32
- package/src/programmers/http/HttpAssertFormDataProgrammer.ts +99 -99
- package/src/programmers/http/HttpAssertHeadersProgrammer.ts +99 -99
- package/src/programmers/http/HttpAssertQueryProgrammer.ts +105 -105
- package/src/programmers/http/HttpFormDataProgrammer.ts +308 -308
- package/src/programmers/http/HttpHeadersProgrammer.ts +400 -400
- package/src/programmers/http/HttpIsFormDataProgrammer.ts +108 -108
- package/src/programmers/http/HttpIsHeadersProgrammer.ts +108 -108
- package/src/programmers/http/HttpIsQueryProgrammer.ts +114 -114
- package/src/programmers/http/HttpParameterProgrammer.ts +115 -115
- package/src/programmers/http/HttpQueryProgrammer.ts +336 -336
- package/src/programmers/http/HttpValidateFormDataProgrammer.ts +92 -92
- package/src/programmers/http/HttpValidateHeadersProgrammer.ts +92 -92
- package/src/programmers/http/HttpValidateQueryProgrammer.ts +98 -98
- package/src/programmers/internal/check_array_length.ts +47 -47
- package/src/programmers/internal/check_bigint.ts +50 -50
- package/src/programmers/internal/check_dynamic_key.ts +201 -201
- package/src/programmers/internal/check_dynamic_properties.ts +208 -208
- package/src/programmers/internal/check_everything.ts +23 -23
- package/src/programmers/internal/check_native.ts +27 -27
- package/src/programmers/internal/check_number.ts +112 -112
- package/src/programmers/internal/check_object.ts +75 -75
- package/src/programmers/internal/check_string.ts +50 -50
- package/src/programmers/internal/check_template.ts +48 -48
- package/src/programmers/internal/check_union_array_like.ts +335 -335
- package/src/programmers/internal/decode_union_object.ts +116 -116
- package/src/programmers/internal/feature_object_entries.ts +61 -61
- package/src/programmers/internal/json_schema_alias.ts +47 -47
- package/src/programmers/internal/json_schema_array.ts +45 -45
- package/src/programmers/internal/json_schema_bigint.ts +15 -15
- package/src/programmers/internal/json_schema_boolean.ts +15 -15
- package/src/programmers/internal/json_schema_constant.ts +26 -26
- package/src/programmers/internal/json_schema_description.ts +12 -12
- package/src/programmers/internal/json_schema_discriminator.ts +35 -35
- package/src/programmers/internal/json_schema_escaped.ts +82 -82
- package/src/programmers/internal/json_schema_native.ts +33 -33
- package/src/programmers/internal/json_schema_number.ts +15 -15
- package/src/programmers/internal/json_schema_object.ts +158 -158
- package/src/programmers/internal/json_schema_plugin.ts +18 -18
- package/src/programmers/internal/json_schema_station.ts +185 -185
- package/src/programmers/internal/json_schema_string.ts +15 -15
- package/src/programmers/internal/json_schema_template.ts +55 -55
- package/src/programmers/internal/json_schema_title.ts +13 -20
- package/src/programmers/internal/json_schema_tuple.ts +35 -35
- package/src/programmers/internal/metadata_to_pattern.ts +42 -42
- package/src/programmers/internal/postfix_of_tuple.ts +5 -5
- package/src/programmers/internal/prune_object_properties.ts +71 -71
- package/src/programmers/internal/stringify_dynamic_properties.ts +162 -162
- package/src/programmers/internal/stringify_native.ts +7 -7
- package/src/programmers/internal/stringify_regular_properties.ts +81 -81
- package/src/programmers/internal/template_to_pattern.ts +23 -23
- package/src/programmers/internal/wrap_metadata_rest_tuple.ts +23 -23
- package/src/programmers/json/JsonApplicationProgrammer.ts +266 -266
- package/src/programmers/json/JsonAssertParseProgrammer.ts +113 -113
- package/src/programmers/json/JsonAssertStringifyProgrammer.ts +115 -115
- package/src/programmers/json/JsonIsParseProgrammer.ts +114 -114
- package/src/programmers/json/JsonIsStringifyProgrammer.ts +108 -108
- package/src/programmers/json/JsonSchemaProgrammer.ts +26 -26
- package/src/programmers/json/JsonSchemasProgrammer.ts +91 -91
- package/src/programmers/json/JsonStringifyProgrammer.ts +1124 -1124
- package/src/programmers/json/JsonValidateParseProgrammer.ts +105 -105
- package/src/programmers/json/JsonValidateStringifyProgrammer.ts +124 -124
- package/src/programmers/llm/LlmApplicationProgrammer.ts +401 -401
- package/src/programmers/llm/LlmModelPredicator.ts +127 -127
- package/src/programmers/llm/LlmParametersProgrammer.ts +93 -93
- package/src/programmers/llm/LlmSchemaProgrammer.ts +192 -192
- package/src/programmers/misc/MiscAssertCloneProgrammer.ts +95 -95
- package/src/programmers/misc/MiscAssertPruneProgrammer.ts +116 -116
- package/src/programmers/misc/MiscCloneProgrammer.ts +1032 -1032
- package/src/programmers/misc/MiscIsCloneProgrammer.ts +99 -99
- package/src/programmers/misc/MiscIsPruneProgrammer.ts +97 -97
- package/src/programmers/misc/MiscLiteralsProgrammer.ts +80 -80
- package/src/programmers/misc/MiscPruneProgrammer.ts +728 -728
- package/src/programmers/misc/MiscValidateCloneProgrammer.ts +111 -111
- package/src/programmers/misc/MiscValidatePruneProgrammer.ts +113 -113
- package/src/programmers/notations/NotationAssertGeneralProgrammer.ts +101 -101
- package/src/programmers/notations/NotationGeneralProgrammer.ts +984 -984
- package/src/programmers/notations/NotationIsGeneralProgrammer.ts +105 -105
- package/src/programmers/notations/NotationValidateGeneralProgrammer.ts +119 -119
- package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +98 -98
- package/src/programmers/protobuf/ProtobufAssertEncodeProgrammer.ts +102 -102
- package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +654 -654
- package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +945 -945
- package/src/programmers/protobuf/ProtobufIsDecodeProgrammer.ts +109 -109
- package/src/programmers/protobuf/ProtobufIsEncodeProgrammer.ts +98 -98
- package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +179 -179
- package/src/programmers/protobuf/ProtobufValidateDecodeProgrammer.ts +92 -92
- package/src/programmers/protobuf/ProtobufValidateEncodeProgrammer.ts +119 -119
- package/src/protobuf.ts +861 -861
- package/src/reflect.ts +50 -50
- package/src/schemas/json/IJsonApplication.ts +77 -77
- package/src/schemas/json/IJsonSchemaCollection.ts +195 -29
- package/src/schemas/json/IJsonSchemaUnit.ts +250 -32
- package/src/schemas/json/__IJsonApplication.ts +63 -63
- package/src/schemas/metadata/IJsDocTagInfo.ts +10 -10
- package/src/schemas/metadata/IMetadata.ts +35 -35
- package/src/schemas/metadata/IMetadataAlias.ts +6 -6
- package/src/schemas/metadata/IMetadataAliasType.ts +12 -12
- package/src/schemas/metadata/IMetadataApplication.ts +7 -7
- package/src/schemas/metadata/IMetadataArray.ts +6 -6
- package/src/schemas/metadata/IMetadataArrayType.ts +10 -10
- package/src/schemas/metadata/IMetadataAtomic.ts +6 -6
- package/src/schemas/metadata/IMetadataComponents.ts +11 -11
- package/src/schemas/metadata/IMetadataConstant.ts +18 -18
- package/src/schemas/metadata/IMetadataConstantValue.ts +11 -11
- package/src/schemas/metadata/IMetadataDictionary.ts +11 -11
- package/src/schemas/metadata/IMetadataEscaped.ts +6 -6
- package/src/schemas/metadata/IMetadataFunction.ts +8 -8
- package/src/schemas/metadata/IMetadataMap.ts +8 -8
- package/src/schemas/metadata/IMetadataNative.ts +6 -6
- package/src/schemas/metadata/IMetadataObject.ts +6 -6
- package/src/schemas/metadata/IMetadataObjectType.ts +13 -13
- package/src/schemas/metadata/IMetadataParameter.ts +9 -9
- package/src/schemas/metadata/IMetadataProperty.ts +9 -9
- package/src/schemas/metadata/IMetadataSet.ts +7 -7
- package/src/schemas/metadata/IMetadataTemplate.ts +7 -7
- package/src/schemas/metadata/IMetadataTuple.ts +6 -6
- package/src/schemas/metadata/IMetadataTupleType.ts +10 -10
- package/src/schemas/metadata/IMetadataTypeTag.ts +16 -16
- package/src/schemas/metadata/Metadata.ts +687 -687
- package/src/schemas/metadata/MetadataAlias.ts +46 -46
- package/src/schemas/metadata/MetadataAliasType.ts +63 -63
- package/src/schemas/metadata/MetadataApplication.ts +44 -44
- package/src/schemas/metadata/MetadataArray.ts +49 -49
- package/src/schemas/metadata/MetadataArrayType.ts +57 -57
- package/src/schemas/metadata/MetadataAtomic.ts +87 -87
- package/src/schemas/metadata/MetadataComponents.ts +98 -98
- package/src/schemas/metadata/MetadataConstant.ts +34 -34
- package/src/schemas/metadata/MetadataConstantValue.ts +62 -62
- package/src/schemas/metadata/MetadataEscaped.ts +51 -51
- package/src/schemas/metadata/MetadataFunction.ts +49 -49
- package/src/schemas/metadata/MetadataMap.ts +48 -48
- package/src/schemas/metadata/MetadataNative.ts +44 -44
- package/src/schemas/metadata/MetadataObject.ts +48 -48
- package/src/schemas/metadata/MetadataObjectType.ts +149 -149
- package/src/schemas/metadata/MetadataParameter.ts +54 -54
- package/src/schemas/metadata/MetadataProperty.ts +59 -59
- package/src/schemas/metadata/MetadataSet.ts +45 -45
- package/src/schemas/metadata/MetadataTemplate.ts +80 -80
- package/src/schemas/metadata/MetadataTuple.ts +32 -32
- package/src/schemas/metadata/MetadataTupleType.ts +67 -67
- package/src/schemas/protobuf/IProtobufProperty.ts +6 -6
- package/src/schemas/protobuf/IProtobufPropertyType.ts +37 -37
- package/src/schemas/protobuf/IProtobufSchema.ts +50 -50
- package/src/tags/Constant.ts +15 -15
- package/src/tags/ContentMediaType.ts +10 -10
- package/src/tags/Default.ts +22 -22
- package/src/tags/Example.ts +24 -24
- package/src/tags/Examples.ts +16 -16
- package/src/tags/ExclusiveMaximum.ts +23 -23
- package/src/tags/ExclusiveMinimum.ts +23 -23
- package/src/tags/Format.ts +50 -50
- package/src/tags/JsonSchemaPlugin.ts +8 -8
- package/src/tags/MaxItems.ts +12 -12
- package/src/tags/MaxLength.ts +12 -12
- package/src/tags/Maximum.ts +19 -19
- package/src/tags/MinItems.ts +12 -12
- package/src/tags/MinLength.ts +12 -12
- package/src/tags/Minimum.ts +19 -19
- package/src/tags/MultipleOf.ts +21 -21
- package/src/tags/Pattern.ts +31 -31
- package/src/tags/Sequence.ts +10 -10
- package/src/tags/TagBase.ts +82 -82
- package/src/tags/Type.ts +37 -37
- package/src/tags/UniqueItems.ts +14 -14
- package/src/tags/index.ts +21 -21
- package/src/tags/internal/FormatCheatSheet.ts +73 -73
- package/src/transform.ts +35 -35
- package/src/transformers/CallExpressionTransformer.ts +554 -554
- package/src/transformers/FileTransformer.ts +136 -136
- package/src/transformers/IProgrammerProps.ts +11 -11
- package/src/transformers/ITransformOptions.ts +62 -62
- package/src/transformers/ITransformProps.ts +9 -9
- package/src/transformers/ITypiaContext.ts +18 -18
- package/src/transformers/ImportTransformer.ts +81 -81
- package/src/transformers/NoTransformConfigurationError.ts +18 -18
- package/src/transformers/NodeTransformer.ts +17 -17
- package/src/transformers/TransformerError.ts +60 -60
- package/src/transformers/features/AssertTransformer.ts +24 -24
- package/src/transformers/features/CreateAssertTransformer.ts +24 -24
- package/src/transformers/features/CreateIsTransformer.ts +18 -18
- package/src/transformers/features/CreateRandomTransformer.ts +43 -43
- package/src/transformers/features/CreateValidateTransformer.ts +18 -18
- package/src/transformers/features/IsTransformer.ts +18 -18
- package/src/transformers/features/RandomTransformer.ts +41 -41
- package/src/transformers/features/ValidateTransformer.ts +18 -18
- package/src/transformers/features/functional/FunctionalGenericTransformer.ts +57 -57
- package/src/transformers/features/http/CreateHttpAssertFormDataTransformer.ts +13 -13
- package/src/transformers/features/http/CreateHttpAssertHeadersTransformer.ts +13 -13
- package/src/transformers/features/http/CreateHttpAssertQueryTransformer.ts +13 -13
- package/src/transformers/features/http/CreateHttpFormDataTransformer.ts +13 -13
- package/src/transformers/features/http/CreateHttpHeadersTransformer.ts +13 -13
- package/src/transformers/features/http/CreateHttpIsFormDataTransformer.ts +13 -13
- package/src/transformers/features/http/CreateHttpIsHeadersTransformer.ts +13 -13
- package/src/transformers/features/http/CreateHttpIsQueryTransformer.ts +13 -13
- package/src/transformers/features/http/CreateHttpParameterTransformer.ts +13 -13
- package/src/transformers/features/http/CreateHttpQueryTransformer.ts +13 -13
- package/src/transformers/features/http/CreateHttpValidateFormDataTransformer.ts +13 -13
- package/src/transformers/features/http/CreateHttpValidateHeadersTransformer.ts +13 -13
- package/src/transformers/features/http/CreateHttpValidateQueryTransformer.ts +13 -13
- package/src/transformers/features/http/HttpAssertFormDataTransformer.ts +13 -13
- package/src/transformers/features/http/HttpAssertHeadersTransformer.ts +13 -13
- package/src/transformers/features/http/HttpAssertQueryTransformer.ts +13 -13
- package/src/transformers/features/http/HttpFormDataTransformer.ts +13 -13
- package/src/transformers/features/http/HttpHeadersTransformer.ts +13 -13
- package/src/transformers/features/http/HttpIsFormDataTransformer.ts +13 -13
- package/src/transformers/features/http/HttpIsHeadersTransformer.ts +13 -13
- package/src/transformers/features/http/HttpIsQueryTransformer.ts +13 -13
- package/src/transformers/features/http/HttpParameterTransformer.ts +13 -13
- package/src/transformers/features/http/HttpQueryTransformer.ts +13 -13
- package/src/transformers/features/http/HttpValidateFormDataTransformer.ts +13 -13
- package/src/transformers/features/http/HttpValidateHeadersTransformer.ts +13 -13
- package/src/transformers/features/http/HttpValidateQueryTransformer.ts +13 -13
- package/src/transformers/features/json/JsonApplicationTransformer.ts +105 -105
- package/src/transformers/features/json/JsonAssertParseTransformer.ts +13 -13
- package/src/transformers/features/json/JsonAssertStringifyTransformer.ts +13 -13
- package/src/transformers/features/json/JsonCreateAssertParseTransformer.ts +13 -13
- package/src/transformers/features/json/JsonCreateAssertStringifyTransformer.ts +13 -13
- package/src/transformers/features/json/JsonCreateIsParseTransformer.ts +13 -13
- package/src/transformers/features/json/JsonCreateIsStringifyTransformer.ts +13 -13
- package/src/transformers/features/json/JsonCreateStringifyTransformer.ts +13 -13
- package/src/transformers/features/json/JsonCreateValidateParseTransformer.ts +13 -13
- package/src/transformers/features/json/JsonCreateValidateStringifyProgrammer.ts +13 -13
- package/src/transformers/features/json/JsonIsParseTransformer.ts +13 -13
- package/src/transformers/features/json/JsonIsStringifyTransformer.ts +13 -13
- package/src/transformers/features/json/JsonSchemaTransformer.ts +135 -135
- package/src/transformers/features/json/JsonSchemasTransformer.ts +145 -145
- package/src/transformers/features/json/JsonStringifyTransformer.ts +13 -13
- package/src/transformers/features/json/JsonValidateParseTransformer.ts +13 -13
- package/src/transformers/features/json/JsonValidateStringifyTransformer.ts +13 -13
- package/src/transformers/features/llm/LlmApplicationTransformer.ts +145 -145
- package/src/transformers/features/llm/LlmControllerTransformer.ts +93 -93
- package/src/transformers/features/llm/LlmParametersTransformer.ts +102 -102
- package/src/transformers/features/llm/LlmSchemaTransformer.ts +170 -170
- package/src/transformers/features/misc/MiscAssertCloneTransformer.ts +13 -13
- package/src/transformers/features/misc/MiscAssertPruneTransformer.ts +13 -13
- package/src/transformers/features/misc/MiscCloneTransformer.ts +13 -13
- package/src/transformers/features/misc/MiscCreateAssertCloneTransformer.ts +13 -13
- package/src/transformers/features/misc/MiscCreateAssertPruneTransformer.ts +13 -13
- package/src/transformers/features/misc/MiscCreateCloneTransformer.ts +13 -13
- package/src/transformers/features/misc/MiscCreateIsCloneTransformer.ts +13 -13
- package/src/transformers/features/misc/MiscCreateIsPruneTransformer.ts +13 -13
- package/src/transformers/features/misc/MiscCreatePruneTransformer.ts +13 -13
- package/src/transformers/features/misc/MiscCreateValidateCloneTransformer.ts +13 -13
- package/src/transformers/features/misc/MiscCreateValidatePruneTransformer.ts +13 -13
- package/src/transformers/features/misc/MiscIsCloneTransformer.ts +13 -13
- package/src/transformers/features/misc/MiscIsPruneTransformer.ts +13 -13
- package/src/transformers/features/misc/MiscLiteralsTransformer.ts +35 -35
- package/src/transformers/features/misc/MiscPruneTransformer.ts +13 -13
- package/src/transformers/features/misc/MiscValidateCloneTransformer.ts +13 -13
- package/src/transformers/features/misc/MiscValidatePruneTransformer.ts +13 -13
- package/src/transformers/features/notations/NotationAssertGeneralTransformer.ts +20 -20
- package/src/transformers/features/notations/NotationCreateAssertGeneralTransformer.ts +20 -20
- package/src/transformers/features/notations/NotationCreateGeneralTransformer.ts +20 -20
- package/src/transformers/features/notations/NotationCreateIsGeneralTransformer.ts +20 -20
- package/src/transformers/features/notations/NotationCreateValidateGeneralTransformer.ts +20 -20
- package/src/transformers/features/notations/NotationGeneralTransformer.ts +18 -18
- package/src/transformers/features/notations/NotationIsGeneralTransformer.ts +20 -20
- package/src/transformers/features/notations/NotationValidateGeneralTransformer.ts +20 -20
- package/src/transformers/features/protobuf/ProtobufAssertDecodeTransformer.ts +13 -13
- package/src/transformers/features/protobuf/ProtobufAssertEncodeTransformer.ts +13 -13
- package/src/transformers/features/protobuf/ProtobufCreateAssertDecodeTransformer.ts +13 -13
- package/src/transformers/features/protobuf/ProtobufCreateAssertEncodeTransformer.ts +13 -13
- package/src/transformers/features/protobuf/ProtobufCreateDecodeTransformer.ts +13 -13
- package/src/transformers/features/protobuf/ProtobufCreateEncodeTransformer.ts +13 -13
- package/src/transformers/features/protobuf/ProtobufCreateIsDecodeTransformer.ts +13 -13
- package/src/transformers/features/protobuf/ProtobufCreateIsEncodeTransformer.ts +13 -13
- package/src/transformers/features/protobuf/ProtobufCreateValidateDecodeTransformer.ts +13 -13
- package/src/transformers/features/protobuf/ProtobufCreateValidateEncodeTransformer.ts +13 -13
- package/src/transformers/features/protobuf/ProtobufDecodeTransformer.ts +13 -13
- package/src/transformers/features/protobuf/ProtobufEncodeTransformer.ts +13 -13
- package/src/transformers/features/protobuf/ProtobufIsDecodeTransformer.ts +13 -13
- package/src/transformers/features/protobuf/ProtobufIsEncodeTransformer.ts +13 -13
- package/src/transformers/features/protobuf/ProtobufMessageTransformer.ts +35 -35
- package/src/transformers/features/protobuf/ProtobufValidateDecodeTransformer.ts +13 -13
- package/src/transformers/features/protobuf/ProtobufValidateEncodeTransformer.ts +13 -13
- package/src/transformers/features/reflect/ReflectMetadataTransformer.ts +69 -69
- package/src/transformers/features/reflect/ReflectNameTransformer.ts +82 -82
- package/src/transformers/internal/GenericTransformer.ts +101 -101
- package/src/typings/Atomic.ts +13 -13
- package/src/typings/ClassProperties.ts +5 -5
- package/src/typings/Customizable.ts +5 -5
- package/src/typings/Equal.ts +18 -18
- package/src/typings/IsTuple.ts +9 -9
- package/src/typings/NativeClass.ts +23 -23
- package/src/typings/OmitNever.ts +3 -3
- package/src/typings/ProtobufAtomic.ts +19 -19
- package/src/typings/SpecialFields.ts +3 -3
- package/src/typings/ValidationPipe.ts +9 -9
- package/src/typings/ValueOf.ts +20 -20
- package/src/typings/Writable.ts +11 -11
- package/src/utils/ArrayUtil.ts +41 -41
- package/src/utils/Escaper.ts +50 -50
- package/src/utils/MapUtil.ts +14 -14
- package/src/utils/NamingConvention.ts +94 -94
- package/src/utils/PatternUtil.ts +29 -29
- package/src/utils/ProtobufNameEncoder.ts +32 -32
- package/src/utils/Singleton.ts +16 -16
- package/src/utils/StringUtil.ts +16 -16
package/src/reflect.ts
CHANGED
|
@@ -1,50 +1,50 @@
|
|
|
1
|
-
import { IMetadataApplication } from "./schemas/metadata/IMetadataApplication";
|
|
2
|
-
|
|
3
|
-
import { NoTransformConfigurationError } from "./transformers/NoTransformConfigurationError";
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* > You must configure the generic argument `Types`.
|
|
7
|
-
*
|
|
8
|
-
* Metadata Application.
|
|
9
|
-
*
|
|
10
|
-
* Creates a Metadata application which contains the metadata and components.
|
|
11
|
-
*
|
|
12
|
-
* Note that, all of the collection types like Array, Tuple and Objects are
|
|
13
|
-
* stored in the {@link IMetadataApplication.components} property. Also, alias
|
|
14
|
-
* types are stored in the {@link IMetadataApplication.aliases} property, too.
|
|
15
|
-
*
|
|
16
|
-
* @template Types Tuple of target types
|
|
17
|
-
* @returns Metadata application
|
|
18
|
-
*
|
|
19
|
-
* @author Jeongho Nam - https://github.com/samchon
|
|
20
|
-
*/
|
|
21
|
-
export function metadata(): never;
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Metadata Application.
|
|
25
|
-
*
|
|
26
|
-
* Creates a Metadata application which contains the metadata and components.
|
|
27
|
-
*
|
|
28
|
-
* Note that, all of the collection types like Array, Tuple and Objects are
|
|
29
|
-
* stored in the {@link IMetadataApplication.components} property. Also, alias
|
|
30
|
-
* types are stored in the {@link IMetadataApplication.aliases} property, too.
|
|
31
|
-
*
|
|
32
|
-
* @template Types Tuple of target types
|
|
33
|
-
* @returns Metadata application
|
|
34
|
-
*
|
|
35
|
-
* @author Jeongho Nam - https://github.com/samchon
|
|
36
|
-
*/
|
|
37
|
-
export function metadata<Types extends unknown[]>(): IMetadataApplication;
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* @internal
|
|
41
|
-
*/
|
|
42
|
-
export function metadata(): never {
|
|
43
|
-
NoTransformConfigurationError("reflect.metadata");
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
export function name<T, Regular extends boolean = false>(): string;
|
|
47
|
-
export function name(): never;
|
|
48
|
-
export function name(): never {
|
|
49
|
-
NoTransformConfigurationError("reflect.name");
|
|
50
|
-
}
|
|
1
|
+
import { IMetadataApplication } from "./schemas/metadata/IMetadataApplication";
|
|
2
|
+
|
|
3
|
+
import { NoTransformConfigurationError } from "./transformers/NoTransformConfigurationError";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* > You must configure the generic argument `Types`.
|
|
7
|
+
*
|
|
8
|
+
* Metadata Application.
|
|
9
|
+
*
|
|
10
|
+
* Creates a Metadata application which contains the metadata and components.
|
|
11
|
+
*
|
|
12
|
+
* Note that, all of the collection types like Array, Tuple and Objects are
|
|
13
|
+
* stored in the {@link IMetadataApplication.components} property. Also, alias
|
|
14
|
+
* types are stored in the {@link IMetadataApplication.aliases} property, too.
|
|
15
|
+
*
|
|
16
|
+
* @template Types Tuple of target types
|
|
17
|
+
* @returns Metadata application
|
|
18
|
+
*
|
|
19
|
+
* @author Jeongho Nam - https://github.com/samchon
|
|
20
|
+
*/
|
|
21
|
+
export function metadata(): never;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Metadata Application.
|
|
25
|
+
*
|
|
26
|
+
* Creates a Metadata application which contains the metadata and components.
|
|
27
|
+
*
|
|
28
|
+
* Note that, all of the collection types like Array, Tuple and Objects are
|
|
29
|
+
* stored in the {@link IMetadataApplication.components} property. Also, alias
|
|
30
|
+
* types are stored in the {@link IMetadataApplication.aliases} property, too.
|
|
31
|
+
*
|
|
32
|
+
* @template Types Tuple of target types
|
|
33
|
+
* @returns Metadata application
|
|
34
|
+
*
|
|
35
|
+
* @author Jeongho Nam - https://github.com/samchon
|
|
36
|
+
*/
|
|
37
|
+
export function metadata<Types extends unknown[]>(): IMetadataApplication;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* @internal
|
|
41
|
+
*/
|
|
42
|
+
export function metadata(): never {
|
|
43
|
+
NoTransformConfigurationError("reflect.metadata");
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export function name<T, Regular extends boolean = false>(): string;
|
|
47
|
+
export function name(): never;
|
|
48
|
+
export function name(): never {
|
|
49
|
+
NoTransformConfigurationError("reflect.name");
|
|
50
|
+
}
|
|
@@ -1,77 +1,77 @@
|
|
|
1
|
-
import { IJsonSchemaCollection } from "./IJsonSchemaCollection";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Collection of JSON schemas.
|
|
5
|
-
*
|
|
6
|
-
* @deprecated Use {@link IJsonSchemaCollection} instead please.
|
|
7
|
-
* This interface type would be changed to {@link ILlmApplication} like
|
|
8
|
-
* structure in the future version (maybe next v8 major update).
|
|
9
|
-
* @template Version Version of the OpenAPI specification.
|
|
10
|
-
* @template Types Original TypeScript types used in the JSON schemas.
|
|
11
|
-
* @author Jeongho Nam - https://github.com/samchon
|
|
12
|
-
*/
|
|
13
|
-
export type IJsonApplication = IJsonSchemaCollection;
|
|
14
|
-
export namespace IJsonApplication {
|
|
15
|
-
export type IV3_0 = IJsonSchemaCollection.IV3_0;
|
|
16
|
-
export type IV3_1 = IJsonSchemaCollection.IV3_1;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
// export interface IJsonApplication<
|
|
20
|
-
// Version extends "3.0" | "3.1" = "3.1",
|
|
21
|
-
// App extends any = object,
|
|
22
|
-
// > {
|
|
23
|
-
// version: Version;
|
|
24
|
-
// components: IJsonApplication.IComponents<IJsonApplication.Schema<Version>>;
|
|
25
|
-
// functions: IJsonApplication.IFunction<IJsonApplication.Schema<Version>>[];
|
|
26
|
-
// __application?: App | undefined;
|
|
27
|
-
// }
|
|
28
|
-
// export namespace IJsonApplication {
|
|
29
|
-
// export type Schema<Version extends "3.0" | "3.1"> = Version extends "3.1"
|
|
30
|
-
// ? OpenApi.IJsonSchema
|
|
31
|
-
// : OpenApiV3.IJsonSchema;
|
|
32
|
-
|
|
33
|
-
// export interface IComponents<
|
|
34
|
-
// Schema extends
|
|
35
|
-
// | OpenApi.IJsonSchema
|
|
36
|
-
// | OpenApiV3.IJsonSchema = OpenApi.IJsonSchema,
|
|
37
|
-
// > {
|
|
38
|
-
// schemas?: Record<string, Schema>;
|
|
39
|
-
// }
|
|
40
|
-
|
|
41
|
-
// export interface IFunction<
|
|
42
|
-
// Schema extends
|
|
43
|
-
// | OpenApi.IJsonSchema
|
|
44
|
-
// | OpenApiV3.IJsonSchema = OpenApi.IJsonSchema,
|
|
45
|
-
// > {
|
|
46
|
-
// async: boolean;
|
|
47
|
-
// name: string;
|
|
48
|
-
// parameters: IParameter<Schema>[];
|
|
49
|
-
// output: IOutput<Schema> | undefined;
|
|
50
|
-
// summary?: string | undefined;
|
|
51
|
-
// description?: string | undefined;
|
|
52
|
-
// deprecated?: boolean;
|
|
53
|
-
// tags?: string[];
|
|
54
|
-
// }
|
|
55
|
-
|
|
56
|
-
// export interface IParameter<
|
|
57
|
-
// Schema extends
|
|
58
|
-
// | OpenApi.IJsonSchema
|
|
59
|
-
// | OpenApiV3.IJsonSchema = OpenApi.IJsonSchema,
|
|
60
|
-
// > {
|
|
61
|
-
// name: string;
|
|
62
|
-
// required: boolean;
|
|
63
|
-
// schema: Schema;
|
|
64
|
-
// title?: string | undefined;
|
|
65
|
-
// description?: string | undefined;
|
|
66
|
-
// }
|
|
67
|
-
|
|
68
|
-
// export interface IOutput<
|
|
69
|
-
// Schema extends
|
|
70
|
-
// | OpenApi.IJsonSchema
|
|
71
|
-
// | OpenApiV3.IJsonSchema = OpenApi.IJsonSchema,
|
|
72
|
-
// > {
|
|
73
|
-
// schema: Schema;
|
|
74
|
-
// required: boolean;
|
|
75
|
-
// description?: string | undefined;
|
|
76
|
-
// }
|
|
77
|
-
// }
|
|
1
|
+
import { IJsonSchemaCollection } from "./IJsonSchemaCollection";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Collection of JSON schemas.
|
|
5
|
+
*
|
|
6
|
+
* @deprecated Use {@link IJsonSchemaCollection} instead please.
|
|
7
|
+
* This interface type would be changed to {@link ILlmApplication} like
|
|
8
|
+
* structure in the future version (maybe next v8 major update).
|
|
9
|
+
* @template Version Version of the OpenAPI specification.
|
|
10
|
+
* @template Types Original TypeScript types used in the JSON schemas.
|
|
11
|
+
* @author Jeongho Nam - https://github.com/samchon
|
|
12
|
+
*/
|
|
13
|
+
export type IJsonApplication = IJsonSchemaCollection;
|
|
14
|
+
export namespace IJsonApplication {
|
|
15
|
+
export type IV3_0 = IJsonSchemaCollection.IV3_0;
|
|
16
|
+
export type IV3_1 = IJsonSchemaCollection.IV3_1;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
// export interface IJsonApplication<
|
|
20
|
+
// Version extends "3.0" | "3.1" = "3.1",
|
|
21
|
+
// App extends any = object,
|
|
22
|
+
// > {
|
|
23
|
+
// version: Version;
|
|
24
|
+
// components: IJsonApplication.IComponents<IJsonApplication.Schema<Version>>;
|
|
25
|
+
// functions: IJsonApplication.IFunction<IJsonApplication.Schema<Version>>[];
|
|
26
|
+
// __application?: App | undefined;
|
|
27
|
+
// }
|
|
28
|
+
// export namespace IJsonApplication {
|
|
29
|
+
// export type Schema<Version extends "3.0" | "3.1"> = Version extends "3.1"
|
|
30
|
+
// ? OpenApi.IJsonSchema
|
|
31
|
+
// : OpenApiV3.IJsonSchema;
|
|
32
|
+
|
|
33
|
+
// export interface IComponents<
|
|
34
|
+
// Schema extends
|
|
35
|
+
// | OpenApi.IJsonSchema
|
|
36
|
+
// | OpenApiV3.IJsonSchema = OpenApi.IJsonSchema,
|
|
37
|
+
// > {
|
|
38
|
+
// schemas?: Record<string, Schema>;
|
|
39
|
+
// }
|
|
40
|
+
|
|
41
|
+
// export interface IFunction<
|
|
42
|
+
// Schema extends
|
|
43
|
+
// | OpenApi.IJsonSchema
|
|
44
|
+
// | OpenApiV3.IJsonSchema = OpenApi.IJsonSchema,
|
|
45
|
+
// > {
|
|
46
|
+
// async: boolean;
|
|
47
|
+
// name: string;
|
|
48
|
+
// parameters: IParameter<Schema>[];
|
|
49
|
+
// output: IOutput<Schema> | undefined;
|
|
50
|
+
// summary?: string | undefined;
|
|
51
|
+
// description?: string | undefined;
|
|
52
|
+
// deprecated?: boolean;
|
|
53
|
+
// tags?: string[];
|
|
54
|
+
// }
|
|
55
|
+
|
|
56
|
+
// export interface IParameter<
|
|
57
|
+
// Schema extends
|
|
58
|
+
// | OpenApi.IJsonSchema
|
|
59
|
+
// | OpenApiV3.IJsonSchema = OpenApi.IJsonSchema,
|
|
60
|
+
// > {
|
|
61
|
+
// name: string;
|
|
62
|
+
// required: boolean;
|
|
63
|
+
// schema: Schema;
|
|
64
|
+
// title?: string | undefined;
|
|
65
|
+
// description?: string | undefined;
|
|
66
|
+
// }
|
|
67
|
+
|
|
68
|
+
// export interface IOutput<
|
|
69
|
+
// Schema extends
|
|
70
|
+
// | OpenApi.IJsonSchema
|
|
71
|
+
// | OpenApiV3.IJsonSchema = OpenApi.IJsonSchema,
|
|
72
|
+
// > {
|
|
73
|
+
// schema: Schema;
|
|
74
|
+
// required: boolean;
|
|
75
|
+
// description?: string | undefined;
|
|
76
|
+
// }
|
|
77
|
+
// }
|
|
@@ -1,29 +1,195 @@
|
|
|
1
|
-
import type { OpenApi, OpenApiV3 } from "@samchon/openapi";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Collection of JSON schemas.
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
1
|
+
import type { OpenApi, OpenApiV3 } from "@samchon/openapi";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Collection of JSON schemas with OpenAPI specification support.
|
|
5
|
+
*
|
|
6
|
+
* `IJsonSchemaCollection` represents a comprehensive collection of JSON schemas
|
|
7
|
+
* that can be generated from TypeScript types using the `typia.json.schemas()` function.
|
|
8
|
+
* This interface supports both OpenAPI v3.0 and v3.1 specifications, with the ability
|
|
9
|
+
* to automatically generate appropriate schema definitions based on the specified version.
|
|
10
|
+
*
|
|
11
|
+
* The collection includes:
|
|
12
|
+
* - Generated JSON schemas array containing schema definitions for the specified types
|
|
13
|
+
* - Reusable components that can be referenced across different schemas
|
|
14
|
+
* - Version-specific formatting that adheres to either OpenAPI v3.0 or v3.1 standards
|
|
15
|
+
*
|
|
16
|
+
* Key differences between versions:
|
|
17
|
+
* - OpenAPI v3.0: Uses {@link OpenApiV3.IJsonSchema} format with limited tuple support
|
|
18
|
+
* - OpenAPI v3.1: Uses {@link OpenApi.IJsonSchema} format with full JSON Schema Draft 2020-12 compatibility
|
|
19
|
+
*
|
|
20
|
+
* @template Version The OpenAPI specification version to target ("3.0" or "3.1").
|
|
21
|
+
* Defaults to "3.1" for enhanced JSON Schema compatibility.
|
|
22
|
+
* @template Types Array of original TypeScript types that were analyzed to generate
|
|
23
|
+
* the JSON schemas. This provides type safety and traceability
|
|
24
|
+
* back to the source TypeScript definitions.
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```typescript
|
|
28
|
+
* // Generate schemas for OpenAPI v3.1 (default)
|
|
29
|
+
* const schemas = typia.json.schemas<[User, Product]>();
|
|
30
|
+
* // Type: IJsonSchemaCollection<"3.1", [User, Product]>
|
|
31
|
+
*
|
|
32
|
+
* // Generate schemas for OpenAPI v3.0 (Swagger compatibility)
|
|
33
|
+
* const swaggerSchemas = typia.json.schemas<[User, Product], "3.0">();
|
|
34
|
+
* // Type: IJsonSchemaCollection<"3.0", [User, Product]>
|
|
35
|
+
* ```
|
|
36
|
+
*
|
|
37
|
+
* @author Jeongho Nam - https://github.com/samchon
|
|
38
|
+
*/
|
|
39
|
+
export type IJsonSchemaCollection<
|
|
40
|
+
Version extends "3.0" | "3.1" = "3.1",
|
|
41
|
+
Types = unknown[],
|
|
42
|
+
> = Version extends "3.0"
|
|
43
|
+
? IJsonSchemaCollection.IV3_0<Types>
|
|
44
|
+
: IJsonSchemaCollection.IV3_1<Types>;
|
|
45
|
+
|
|
46
|
+
export namespace IJsonSchemaCollection {
|
|
47
|
+
/**
|
|
48
|
+
* JSON Schema collection formatted for OpenAPI v3.0 specification.
|
|
49
|
+
*
|
|
50
|
+
* This interface represents a collection of JSON schemas that comply with
|
|
51
|
+
* OpenAPI v3.0 standards, which are compatible with Swagger tools and
|
|
52
|
+
* legacy OpenAPI implementations. OpenAPI v3.0 has some limitations
|
|
53
|
+
* compared to v3.1, particularly around tuple types and pattern properties.
|
|
54
|
+
*
|
|
55
|
+
* Key characteristics of v3.0:
|
|
56
|
+
* - Cannot express tuple types natively (falls back to array representations)
|
|
57
|
+
* - Cannot express pattern properties in object schemas
|
|
58
|
+
* - Uses nullable property instead of union with null type
|
|
59
|
+
* - Limited JSON Schema Draft compatibility (based on Draft 4)
|
|
60
|
+
*
|
|
61
|
+
* @template Types Array of original TypeScript types used to generate the schemas.
|
|
62
|
+
* This provides compile-time type information about what types
|
|
63
|
+
* were analyzed during schema generation.
|
|
64
|
+
*/
|
|
65
|
+
export interface IV3_0<Types = unknown[]> {
|
|
66
|
+
/**
|
|
67
|
+
* OpenAPI specification version identifier.
|
|
68
|
+
*
|
|
69
|
+
* Always set to "3.0" to indicate this collection uses OpenAPI v3.0
|
|
70
|
+
* schema format and constraints.
|
|
71
|
+
*/
|
|
72
|
+
version: "3.0";
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Array of generated JSON schemas.
|
|
76
|
+
*
|
|
77
|
+
* Contains the actual JSON schema definitions generated from the input TypeScript types.
|
|
78
|
+
* Each schema in this array corresponds to one of the types specified in the `Types`
|
|
79
|
+
* template parameter. The schemas follow OpenAPI v3.0 format and may contain
|
|
80
|
+
* references to components defined in the {@link components} property.
|
|
81
|
+
*
|
|
82
|
+
* Schema references typically use the format: `{ "$ref": "#/components/schemas/TypeName" }`
|
|
83
|
+
*/
|
|
84
|
+
schemas: OpenApiV3.IJsonSchema[];
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Reusable schema components for OpenAPI v3.0.
|
|
88
|
+
*
|
|
89
|
+
* Contains reusable schema definitions, security schemes, and other components
|
|
90
|
+
* that can be referenced from the main schemas. This follows the OpenAPI v3.0
|
|
91
|
+
* components structure and enables schema reuse and modularity.
|
|
92
|
+
*
|
|
93
|
+
* Components include:
|
|
94
|
+
* - schemas: Named type definitions that can be referenced via $ref
|
|
95
|
+
* - securitySchemes: Authentication and authorization schemes
|
|
96
|
+
* - parameters: Reusable parameter definitions
|
|
97
|
+
* - requestBodies: Reusable request body definitions
|
|
98
|
+
* - responses: Reusable response definitions
|
|
99
|
+
* - headers: Reusable header definitions
|
|
100
|
+
* - examples: Reusable example definitions
|
|
101
|
+
*/
|
|
102
|
+
components: OpenApiV3.IComponents;
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Type metadata for compile-time type tracking.
|
|
106
|
+
*
|
|
107
|
+
* This optional property stores the original TypeScript types that were
|
|
108
|
+
* used to generate the JSON schemas. It's primarily used for type safety
|
|
109
|
+
* and doesn't affect runtime behavior. The property is marked as optional
|
|
110
|
+
* and undefined to prevent it from appearing in serialized JSON output.
|
|
111
|
+
*
|
|
112
|
+
* This enables:
|
|
113
|
+
* - Compile-time type checking against the original types
|
|
114
|
+
* - IDE intellisense and autocompletion
|
|
115
|
+
* - Type-safe schema validation and usage
|
|
116
|
+
*/
|
|
117
|
+
__types?: Types | undefined;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* JSON Schema collection formatted for OpenAPI v3.1 specification.
|
|
122
|
+
*
|
|
123
|
+
* This interface represents a collection of JSON schemas that comply with
|
|
124
|
+
* OpenAPI v3.1 standards, which provide enhanced JSON Schema compatibility
|
|
125
|
+
* and support for modern JSON Schema features. OpenAPI v3.1 is based on
|
|
126
|
+
* JSON Schema Draft 2020-12 and offers significant improvements over v3.0.
|
|
127
|
+
*
|
|
128
|
+
* Key advantages of v3.1:
|
|
129
|
+
* - Full tuple type support with prefixItems
|
|
130
|
+
* - Pattern properties support for dynamic object keys
|
|
131
|
+
* - Proper null type handling via union types
|
|
132
|
+
* - Enhanced JSON Schema Draft 2020-12 compatibility
|
|
133
|
+
* - Better const, enum, and validation support
|
|
134
|
+
*
|
|
135
|
+
* @template Types Array of original TypeScript types used to generate the schemas.
|
|
136
|
+
* This provides compile-time type information about what types
|
|
137
|
+
* were analyzed during schema generation.
|
|
138
|
+
*/
|
|
139
|
+
export interface IV3_1<Types = unknown[]> {
|
|
140
|
+
/**
|
|
141
|
+
* OpenAPI specification version identifier.
|
|
142
|
+
*
|
|
143
|
+
* Always set to "3.1" to indicate this collection uses OpenAPI v3.1
|
|
144
|
+
* schema format with enhanced JSON Schema compatibility.
|
|
145
|
+
*/
|
|
146
|
+
version: "3.1";
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* Reusable schema components for OpenAPI v3.1.
|
|
150
|
+
*
|
|
151
|
+
* Contains reusable schema definitions and other components following the
|
|
152
|
+
* OpenAPI v3.1 specification. This structure is similar to v3.0 but supports
|
|
153
|
+
* enhanced JSON Schema features and improved type definitions.
|
|
154
|
+
*
|
|
155
|
+
* Components include:
|
|
156
|
+
* - schemas: Named type definitions with enhanced JSON Schema support
|
|
157
|
+
* - securitySchemes: Authentication and authorization schemes
|
|
158
|
+
*
|
|
159
|
+
* The emended OpenAPI v3.1 format used here removes ambiguous expressions
|
|
160
|
+
* and standardizes certain patterns for better tooling compatibility.
|
|
161
|
+
*/
|
|
162
|
+
components: OpenApi.IComponents;
|
|
163
|
+
|
|
164
|
+
/**
|
|
165
|
+
* Array of generated JSON schemas with v3.1 enhancements.
|
|
166
|
+
*
|
|
167
|
+
* Contains JSON schema definitions that take advantage of OpenAPI v3.1's
|
|
168
|
+
* enhanced capabilities. These schemas can express more complex TypeScript
|
|
169
|
+
* types accurately, including:
|
|
170
|
+
* - Tuple types using prefixItems
|
|
171
|
+
* - Union types with proper null handling
|
|
172
|
+
* - Complex nested object structures
|
|
173
|
+
* - Pattern-based property definitions
|
|
174
|
+
*
|
|
175
|
+
* Each schema corresponds to one of the input TypeScript types and may
|
|
176
|
+
* reference components defined in the {@link components} property.
|
|
177
|
+
*/
|
|
178
|
+
schemas: OpenApi.IJsonSchema[];
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* Type metadata for compile-time type tracking.
|
|
182
|
+
*
|
|
183
|
+
* This optional property stores the original TypeScript types that were
|
|
184
|
+
* used to generate the JSON schemas. It provides compile-time type safety
|
|
185
|
+
* and enables better development experience without affecting runtime behavior.
|
|
186
|
+
*
|
|
187
|
+
* Benefits include:
|
|
188
|
+
* - Strong typing connection to original TypeScript definitions
|
|
189
|
+
* - Enhanced IDE support and autocompletion
|
|
190
|
+
* - Compile-time validation of schema usage
|
|
191
|
+
* - Type-safe integration with validation libraries
|
|
192
|
+
*/
|
|
193
|
+
__types?: Types | undefined;
|
|
194
|
+
}
|
|
195
|
+
}
|