typia 7.0.1 → 7.0.2-dev.20241205
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 +123 -122
- package/lib/executable/TypiaPatchWizard.js +10 -6
- package/lib/executable/TypiaPatchWizard.js.map +1 -1
- package/lib/executable/typia.js +17 -7
- package/lib/executable/typia.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_native.js +9 -6
- package/lib/factories/internal/metadata/iterate_metadata_native.js.map +1 -1
- package/lib/index.js +17 -7
- package/lib/index.js.map +1 -1
- package/lib/module.js +17 -7
- package/lib/module.js.map +1 -1
- package/lib/programmers/json/JsonAssertParseProgrammer.js +7 -0
- package/lib/programmers/json/JsonAssertParseProgrammer.js.map +1 -1
- package/package.json +5 -5
- package/src/IRandomGenerator.ts +49 -49
- package/src/IReadableURLSearchParams.ts +9 -9
- package/src/IValidation.ts +20 -20
- package/src/executable/TypiaGenerateWizard.ts +83 -83
- package/src/executable/TypiaPatchWizard.ts +45 -42
- package/src/executable/TypiaSetupWizard.ts +179 -179
- package/src/executable/setup/ArgumentParser.ts +42 -42
- package/src/executable/setup/FileRetriever.ts +19 -19
- package/src/executable/setup/PackageManager.ts +87 -87
- package/src/factories/ExpressionFactory.ts +216 -216
- package/src/factories/IdentifierFactory.ts +89 -89
- package/src/factories/JsonMetadataFactory.ts +76 -76
- package/src/factories/LiteralFactory.ts +50 -50
- package/src/factories/MetadataCollection.ts +278 -278
- package/src/factories/MetadataCommentTagFactory.ts +650 -650
- package/src/factories/MetadataFactory.ts +404 -404
- package/src/factories/MetadataTypeTagFactory.ts +411 -411
- 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/internal/metadata/IMetadataIteratorProps.ts +17 -17
- package/src/factories/internal/metadata/MetadataHelper.ts +21 -21
- 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 +208 -208
- 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 +90 -90
- package/src/factories/internal/metadata/iterate_metadata_intersection.ts +213 -213
- package/src/factories/internal/metadata/iterate_metadata_map.ts +57 -57
- package/src/factories/internal/metadata/iterate_metadata_native.ts +255 -254
- 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 +750 -750
- package/src/http.ts +1047 -1047
- 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/_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 +47 -47
- package/src/internal/_randomNumber.ts +74 -74
- 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 +752 -752
- package/src/llm.ts +342 -342
- package/src/misc.ts +658 -658
- package/src/module.ts +935 -935
- package/src/notations.ts +827 -827
- package/src/programmers/AssertProgrammer.ts +454 -454
- package/src/programmers/CheckerProgrammer.ts +1617 -1617
- package/src/programmers/FeatureProgrammer.ts +622 -622
- 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 +174 -174
- package/src/programmers/ValidateProgrammer.ts +434 -434
- 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/NotationJoiner.ts +144 -144
- package/src/programmers/helpers/OptionPredicator.ts +15 -15
- package/src/programmers/helpers/ProtobufUtil.ts +228 -228
- 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 +182 -182
- 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 +20 -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_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 +276 -276
- package/src/programmers/json/JsonAssertParseProgrammer.ts +113 -106
- 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/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 +276 -276
- package/src/programmers/llm/LlmModelPredicator.ts +127 -127
- package/src/programmers/llm/LlmParametersProgrammer.ts +90 -90
- package/src/programmers/llm/LlmSchemaProgrammer.ts +143 -143
- 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 +868 -868
- package/src/reflect.ts +57 -57
- package/src/schemas/json/IJsonApplication.ts +73 -73
- package/src/schemas/json/IJsonSchemaCollection.ts +29 -29
- package/src/schemas/json/__IJsonApplication.ts +63 -63
- 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/IMetadataComponents.ts +11 -11
- package/src/schemas/metadata/IMetadataConstantValue.ts +11 -11
- package/src/schemas/metadata/IMetadataDictionary.ts +11 -11
- 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/IMetadataSet.ts +7 -7
- package/src/schemas/metadata/IMetadataTemplate.ts +7 -7
- package/src/schemas/metadata/IMetadataTuple.ts +6 -6
- package/src/schemas/metadata/IMetadataTypeTag.ts +16 -16
- package/src/schemas/metadata/Metadata.ts +669 -669
- 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/MetadataAtomic.ts +87 -87
- package/src/schemas/metadata/MetadataComponents.ts +98 -98
- package/src/schemas/metadata/MetadataConstantValue.ts +62 -62
- 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/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/protobuf/IProtobufProperty.ts +6 -6
- package/src/schemas/protobuf/IProtobufPropertyType.ts +37 -37
- package/src/schemas/protobuf/IProtobufSchema.ts +50 -50
- package/src/tags/Example.ts +24 -24
- package/src/tags/Examples.ts +16 -16
- package/src/tags/Format.ts +50 -50
- package/src/tags/JsonSchemaPlugin.ts +8 -8
- package/src/tags/Sequence.ts +10 -10
- package/src/tags/TagBase.ts +82 -82
- package/src/tags/Type.ts +32 -32
- package/src/tags/UniqueItems.ts +14 -14
- package/src/tags/index.ts +21 -21
- package/src/transform.ts +35 -35
- package/src/transformers/CallExpressionTransformer.ts +545 -545
- 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/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/JsonSchemasTransformer.ts +143 -143
- 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 +113 -113
- package/src/transformers/features/llm/LlmParametersTransformer.ts +89 -89
- package/src/transformers/features/llm/LlmSchemaTransformer.ts +130 -130
- 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/utils/MapUtil.ts +14 -14
- package/src/utils/NamingConvention.ts +94 -94
- package/src/utils/ProtobufNameEncoder.ts +32 -32
- package/src/utils/StringUtil.ts +16 -16
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
import { ClassProperties } from "../../typings/ClassProperties";
|
|
2
|
-
|
|
3
|
-
import { IMetadataTuple } from "./IMetadataTuple";
|
|
4
|
-
import { IMetadataTypeTag } from "./IMetadataTypeTag";
|
|
5
|
-
import { MetadataTupleType } from "./MetadataTupleType";
|
|
6
|
-
|
|
7
|
-
export class MetadataTuple {
|
|
8
|
-
public readonly type: MetadataTupleType;
|
|
9
|
-
public readonly tags: IMetadataTypeTag[][];
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* @hidden
|
|
13
|
-
*/
|
|
14
|
-
private constructor(props: ClassProperties<MetadataTuple>) {
|
|
15
|
-
this.type = props.type;
|
|
16
|
-
this.tags = props.tags;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* @internal
|
|
21
|
-
*/
|
|
22
|
-
public static create(props: ClassProperties<MetadataTuple>): MetadataTuple {
|
|
23
|
-
return new MetadataTuple(props);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
public toJSON(): IMetadataTuple {
|
|
27
|
-
return {
|
|
28
|
-
name: this.type.name,
|
|
29
|
-
tags: this.tags.map((row) => row.slice()),
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
}
|
|
1
|
+
import { ClassProperties } from "../../typings/ClassProperties";
|
|
2
|
+
|
|
3
|
+
import { IMetadataTuple } from "./IMetadataTuple";
|
|
4
|
+
import { IMetadataTypeTag } from "./IMetadataTypeTag";
|
|
5
|
+
import { MetadataTupleType } from "./MetadataTupleType";
|
|
6
|
+
|
|
7
|
+
export class MetadataTuple {
|
|
8
|
+
public readonly type: MetadataTupleType;
|
|
9
|
+
public readonly tags: IMetadataTypeTag[][];
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* @hidden
|
|
13
|
+
*/
|
|
14
|
+
private constructor(props: ClassProperties<MetadataTuple>) {
|
|
15
|
+
this.type = props.type;
|
|
16
|
+
this.tags = props.tags;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* @internal
|
|
21
|
+
*/
|
|
22
|
+
public static create(props: ClassProperties<MetadataTuple>): MetadataTuple {
|
|
23
|
+
return new MetadataTuple(props);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
public toJSON(): IMetadataTuple {
|
|
27
|
+
return {
|
|
28
|
+
name: this.type.name,
|
|
29
|
+
tags: this.tags.map((row) => row.slice()),
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { IProtobufPropertyType } from "./IProtobufPropertyType";
|
|
2
|
-
|
|
3
|
-
export interface IProtobufProperty {
|
|
4
|
-
fixed: boolean;
|
|
5
|
-
union: IProtobufPropertyType[];
|
|
6
|
-
}
|
|
1
|
+
import { IProtobufPropertyType } from "./IProtobufPropertyType";
|
|
2
|
+
|
|
3
|
+
export interface IProtobufProperty {
|
|
4
|
+
fixed: boolean;
|
|
5
|
+
union: IProtobufPropertyType[];
|
|
6
|
+
}
|
|
@@ -1,37 +1,37 @@
|
|
|
1
|
-
import { IProtobufSchema } from "./IProtobufSchema";
|
|
2
|
-
|
|
3
|
-
export type IProtobufPropertyType =
|
|
4
|
-
| IProtobufPropertyType.IByte
|
|
5
|
-
| IProtobufPropertyType.IBoolean
|
|
6
|
-
| IProtobufPropertyType.IBigint
|
|
7
|
-
| IProtobufPropertyType.INumber
|
|
8
|
-
| IProtobufPropertyType.IString
|
|
9
|
-
| IProtobufPropertyType.IArray
|
|
10
|
-
| IProtobufPropertyType.IObject
|
|
11
|
-
| IProtobufPropertyType.IMap;
|
|
12
|
-
export namespace IProtobufPropertyType {
|
|
13
|
-
export interface IByte extends IProtobufSchema.IByte {
|
|
14
|
-
index: number;
|
|
15
|
-
}
|
|
16
|
-
export interface IBoolean extends IProtobufSchema.IBoolean {
|
|
17
|
-
index: number;
|
|
18
|
-
}
|
|
19
|
-
export interface IBigint extends IProtobufSchema.IBigint {
|
|
20
|
-
index: number;
|
|
21
|
-
}
|
|
22
|
-
export interface INumber extends IProtobufSchema.INumber {
|
|
23
|
-
index: number;
|
|
24
|
-
}
|
|
25
|
-
export interface IString extends IProtobufSchema.IString {
|
|
26
|
-
index: number;
|
|
27
|
-
}
|
|
28
|
-
export interface IArray extends IProtobufSchema.IArray {
|
|
29
|
-
index: number;
|
|
30
|
-
}
|
|
31
|
-
export interface IObject extends IProtobufSchema.IObject {
|
|
32
|
-
index: number;
|
|
33
|
-
}
|
|
34
|
-
export interface IMap extends IProtobufSchema.IMap {
|
|
35
|
-
index: number;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
1
|
+
import { IProtobufSchema } from "./IProtobufSchema";
|
|
2
|
+
|
|
3
|
+
export type IProtobufPropertyType =
|
|
4
|
+
| IProtobufPropertyType.IByte
|
|
5
|
+
| IProtobufPropertyType.IBoolean
|
|
6
|
+
| IProtobufPropertyType.IBigint
|
|
7
|
+
| IProtobufPropertyType.INumber
|
|
8
|
+
| IProtobufPropertyType.IString
|
|
9
|
+
| IProtobufPropertyType.IArray
|
|
10
|
+
| IProtobufPropertyType.IObject
|
|
11
|
+
| IProtobufPropertyType.IMap;
|
|
12
|
+
export namespace IProtobufPropertyType {
|
|
13
|
+
export interface IByte extends IProtobufSchema.IByte {
|
|
14
|
+
index: number;
|
|
15
|
+
}
|
|
16
|
+
export interface IBoolean extends IProtobufSchema.IBoolean {
|
|
17
|
+
index: number;
|
|
18
|
+
}
|
|
19
|
+
export interface IBigint extends IProtobufSchema.IBigint {
|
|
20
|
+
index: number;
|
|
21
|
+
}
|
|
22
|
+
export interface INumber extends IProtobufSchema.INumber {
|
|
23
|
+
index: number;
|
|
24
|
+
}
|
|
25
|
+
export interface IString extends IProtobufSchema.IString {
|
|
26
|
+
index: number;
|
|
27
|
+
}
|
|
28
|
+
export interface IArray extends IProtobufSchema.IArray {
|
|
29
|
+
index: number;
|
|
30
|
+
}
|
|
31
|
+
export interface IObject extends IProtobufSchema.IObject {
|
|
32
|
+
index: number;
|
|
33
|
+
}
|
|
34
|
+
export interface IMap extends IProtobufSchema.IMap {
|
|
35
|
+
index: number;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -1,50 +1,50 @@
|
|
|
1
|
-
import { MetadataArrayType } from "../metadata/MetadataArrayType";
|
|
2
|
-
import { MetadataMap } from "../metadata/MetadataMap";
|
|
3
|
-
import { MetadataObjectType } from "../metadata/MetadataObjectType";
|
|
4
|
-
|
|
5
|
-
export type IProtobufSchema =
|
|
6
|
-
| IProtobufSchema.IByte
|
|
7
|
-
| IProtobufSchema.IBoolean
|
|
8
|
-
| IProtobufSchema.IBigint
|
|
9
|
-
| IProtobufSchema.INumber
|
|
10
|
-
| IProtobufSchema.IString
|
|
11
|
-
| IProtobufSchema.IArray
|
|
12
|
-
| IProtobufSchema.IObject
|
|
13
|
-
| IProtobufSchema.IMap;
|
|
14
|
-
export namespace IProtobufSchema {
|
|
15
|
-
export interface IByte {
|
|
16
|
-
type: "bytes";
|
|
17
|
-
}
|
|
18
|
-
export interface IBoolean {
|
|
19
|
-
type: "bool";
|
|
20
|
-
}
|
|
21
|
-
export interface IBigint {
|
|
22
|
-
type: "bigint";
|
|
23
|
-
name: "int64" | "uint64";
|
|
24
|
-
}
|
|
25
|
-
export interface INumber {
|
|
26
|
-
type: "number";
|
|
27
|
-
name: "int32" | "int64" | "uint32" | "uint64" | "float" | "double";
|
|
28
|
-
}
|
|
29
|
-
export interface IString {
|
|
30
|
-
type: "string";
|
|
31
|
-
}
|
|
32
|
-
export interface IArray {
|
|
33
|
-
type: "array";
|
|
34
|
-
array: MetadataArrayType;
|
|
35
|
-
value: Exclude<IProtobufSchema, IArray | IMap>;
|
|
36
|
-
}
|
|
37
|
-
export interface IObject {
|
|
38
|
-
type: "object";
|
|
39
|
-
object: MetadataObjectType;
|
|
40
|
-
}
|
|
41
|
-
export interface IMap {
|
|
42
|
-
type: "map";
|
|
43
|
-
map: MetadataMap | MetadataObjectType;
|
|
44
|
-
key:
|
|
45
|
-
| IProtobufSchema.IBoolean
|
|
46
|
-
| IProtobufSchema.INumber
|
|
47
|
-
| IProtobufSchema.IString;
|
|
48
|
-
value: Exclude<IProtobufSchema, IArray | IMap>;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
1
|
+
import { MetadataArrayType } from "../metadata/MetadataArrayType";
|
|
2
|
+
import { MetadataMap } from "../metadata/MetadataMap";
|
|
3
|
+
import { MetadataObjectType } from "../metadata/MetadataObjectType";
|
|
4
|
+
|
|
5
|
+
export type IProtobufSchema =
|
|
6
|
+
| IProtobufSchema.IByte
|
|
7
|
+
| IProtobufSchema.IBoolean
|
|
8
|
+
| IProtobufSchema.IBigint
|
|
9
|
+
| IProtobufSchema.INumber
|
|
10
|
+
| IProtobufSchema.IString
|
|
11
|
+
| IProtobufSchema.IArray
|
|
12
|
+
| IProtobufSchema.IObject
|
|
13
|
+
| IProtobufSchema.IMap;
|
|
14
|
+
export namespace IProtobufSchema {
|
|
15
|
+
export interface IByte {
|
|
16
|
+
type: "bytes";
|
|
17
|
+
}
|
|
18
|
+
export interface IBoolean {
|
|
19
|
+
type: "bool";
|
|
20
|
+
}
|
|
21
|
+
export interface IBigint {
|
|
22
|
+
type: "bigint";
|
|
23
|
+
name: "int64" | "uint64";
|
|
24
|
+
}
|
|
25
|
+
export interface INumber {
|
|
26
|
+
type: "number";
|
|
27
|
+
name: "int32" | "int64" | "uint32" | "uint64" | "float" | "double";
|
|
28
|
+
}
|
|
29
|
+
export interface IString {
|
|
30
|
+
type: "string";
|
|
31
|
+
}
|
|
32
|
+
export interface IArray {
|
|
33
|
+
type: "array";
|
|
34
|
+
array: MetadataArrayType;
|
|
35
|
+
value: Exclude<IProtobufSchema, IArray | IMap>;
|
|
36
|
+
}
|
|
37
|
+
export interface IObject {
|
|
38
|
+
type: "object";
|
|
39
|
+
object: MetadataObjectType;
|
|
40
|
+
}
|
|
41
|
+
export interface IMap {
|
|
42
|
+
type: "map";
|
|
43
|
+
map: MetadataMap | MetadataObjectType;
|
|
44
|
+
key:
|
|
45
|
+
| IProtobufSchema.IBoolean
|
|
46
|
+
| IProtobufSchema.INumber
|
|
47
|
+
| IProtobufSchema.IString;
|
|
48
|
+
value: Exclude<IProtobufSchema, IArray | IMap>;
|
|
49
|
+
}
|
|
50
|
+
}
|
package/src/tags/Example.ts
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
import { TagBase } from "./TagBase";
|
|
2
|
-
|
|
3
|
-
export type Example<
|
|
4
|
-
Value extends
|
|
5
|
-
| boolean
|
|
6
|
-
| bigint
|
|
7
|
-
| number
|
|
8
|
-
| string
|
|
9
|
-
| object
|
|
10
|
-
| Array<unknown>
|
|
11
|
-
| null,
|
|
12
|
-
> = TagBase<{
|
|
13
|
-
target: "boolean" | "bigint" | "number" | "string" | "array" | "object";
|
|
14
|
-
kind: "example";
|
|
15
|
-
value: Value;
|
|
16
|
-
exclusive: true;
|
|
17
|
-
schema: Value extends bigint
|
|
18
|
-
? { example: Numeric<Value> }
|
|
19
|
-
: { example: Value };
|
|
20
|
-
}>;
|
|
21
|
-
|
|
22
|
-
type Numeric<T extends bigint> = `${T}` extends `${infer N extends number}`
|
|
23
|
-
? N
|
|
24
|
-
: never;
|
|
1
|
+
import { TagBase } from "./TagBase";
|
|
2
|
+
|
|
3
|
+
export type Example<
|
|
4
|
+
Value extends
|
|
5
|
+
| boolean
|
|
6
|
+
| bigint
|
|
7
|
+
| number
|
|
8
|
+
| string
|
|
9
|
+
| object
|
|
10
|
+
| Array<unknown>
|
|
11
|
+
| null,
|
|
12
|
+
> = TagBase<{
|
|
13
|
+
target: "boolean" | "bigint" | "number" | "string" | "array" | "object";
|
|
14
|
+
kind: "example";
|
|
15
|
+
value: Value;
|
|
16
|
+
exclusive: true;
|
|
17
|
+
schema: Value extends bigint
|
|
18
|
+
? { example: Numeric<Value> }
|
|
19
|
+
: { example: Value };
|
|
20
|
+
}>;
|
|
21
|
+
|
|
22
|
+
type Numeric<T extends bigint> = `${T}` extends `${infer N extends number}`
|
|
23
|
+
? N
|
|
24
|
+
: never;
|
package/src/tags/Examples.ts
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { TagBase } from "./TagBase";
|
|
2
|
-
|
|
3
|
-
export type Examples<
|
|
4
|
-
Dict extends Record<
|
|
5
|
-
string,
|
|
6
|
-
boolean | bigint | number | string | object | Array<unknown> | null
|
|
7
|
-
>,
|
|
8
|
-
> = TagBase<{
|
|
9
|
-
target: "boolean" | "bigint" | "number" | "string" | "array" | "object";
|
|
10
|
-
kind: "examples";
|
|
11
|
-
value: Dict;
|
|
12
|
-
exclusive: true;
|
|
13
|
-
schema: {
|
|
14
|
-
examples: Dict;
|
|
15
|
-
};
|
|
16
|
-
}>;
|
|
1
|
+
import { TagBase } from "./TagBase";
|
|
2
|
+
|
|
3
|
+
export type Examples<
|
|
4
|
+
Dict extends Record<
|
|
5
|
+
string,
|
|
6
|
+
boolean | bigint | number | string | object | Array<unknown> | null
|
|
7
|
+
>,
|
|
8
|
+
> = TagBase<{
|
|
9
|
+
target: "boolean" | "bigint" | "number" | "string" | "array" | "object";
|
|
10
|
+
kind: "examples";
|
|
11
|
+
value: Dict;
|
|
12
|
+
exclusive: true;
|
|
13
|
+
schema: {
|
|
14
|
+
examples: Dict;
|
|
15
|
+
};
|
|
16
|
+
}>;
|
package/src/tags/Format.ts
CHANGED
|
@@ -1,50 +1,50 @@
|
|
|
1
|
-
import type { TagBase } from "./TagBase";
|
|
2
|
-
|
|
3
|
-
export type Format<Value extends Format.Value> = TagBase<{
|
|
4
|
-
target: "string";
|
|
5
|
-
kind: "format";
|
|
6
|
-
value: Value;
|
|
7
|
-
validate: `$importInternal("isFormat${PascalizeString<Value>}")($input)`;
|
|
8
|
-
exclusive: ["format", "pattern"];
|
|
9
|
-
schema: {
|
|
10
|
-
format: Value;
|
|
11
|
-
};
|
|
12
|
-
}>;
|
|
13
|
-
export namespace Format {
|
|
14
|
-
export type Value =
|
|
15
|
-
| "byte"
|
|
16
|
-
| "password"
|
|
17
|
-
| "regex"
|
|
18
|
-
| "uuid"
|
|
19
|
-
| "email"
|
|
20
|
-
| "hostname"
|
|
21
|
-
| "idn-email"
|
|
22
|
-
| "idn-hostname"
|
|
23
|
-
| "iri"
|
|
24
|
-
| "iri-reference"
|
|
25
|
-
| "ipv4"
|
|
26
|
-
| "ipv6"
|
|
27
|
-
| "uri"
|
|
28
|
-
| "uri-reference"
|
|
29
|
-
| "uri-template"
|
|
30
|
-
| "url"
|
|
31
|
-
| "date-time"
|
|
32
|
-
| "date"
|
|
33
|
-
| "time"
|
|
34
|
-
| "duration"
|
|
35
|
-
| "json-pointer"
|
|
36
|
-
| "relative-json-pointer";
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
type PascalizeString<Key extends string> = Key extends `-${infer R}`
|
|
40
|
-
? `${PascalizeString<R>}`
|
|
41
|
-
: Key extends `${infer _F}-${infer _R}`
|
|
42
|
-
? PascalizeSnakeString<Key>
|
|
43
|
-
: Capitalize<Key>;
|
|
44
|
-
type PascalizeSnakeString<Key extends string> = Key extends `-${infer R}`
|
|
45
|
-
? PascalizeSnakeString<R>
|
|
46
|
-
: Key extends `${infer F}${infer M}-${infer R}`
|
|
47
|
-
? `${Uppercase<F>}${Lowercase<M>}${PascalizeSnakeString<R>}`
|
|
48
|
-
: Key extends `${infer F}${infer R}`
|
|
49
|
-
? `${Uppercase<F>}${Lowercase<R>}`
|
|
50
|
-
: Key;
|
|
1
|
+
import type { TagBase } from "./TagBase";
|
|
2
|
+
|
|
3
|
+
export type Format<Value extends Format.Value> = TagBase<{
|
|
4
|
+
target: "string";
|
|
5
|
+
kind: "format";
|
|
6
|
+
value: Value;
|
|
7
|
+
validate: `$importInternal("isFormat${PascalizeString<Value>}")($input)`;
|
|
8
|
+
exclusive: ["format", "pattern"];
|
|
9
|
+
schema: {
|
|
10
|
+
format: Value;
|
|
11
|
+
};
|
|
12
|
+
}>;
|
|
13
|
+
export namespace Format {
|
|
14
|
+
export type Value =
|
|
15
|
+
| "byte"
|
|
16
|
+
| "password"
|
|
17
|
+
| "regex"
|
|
18
|
+
| "uuid"
|
|
19
|
+
| "email"
|
|
20
|
+
| "hostname"
|
|
21
|
+
| "idn-email"
|
|
22
|
+
| "idn-hostname"
|
|
23
|
+
| "iri"
|
|
24
|
+
| "iri-reference"
|
|
25
|
+
| "ipv4"
|
|
26
|
+
| "ipv6"
|
|
27
|
+
| "uri"
|
|
28
|
+
| "uri-reference"
|
|
29
|
+
| "uri-template"
|
|
30
|
+
| "url"
|
|
31
|
+
| "date-time"
|
|
32
|
+
| "date"
|
|
33
|
+
| "time"
|
|
34
|
+
| "duration"
|
|
35
|
+
| "json-pointer"
|
|
36
|
+
| "relative-json-pointer";
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
type PascalizeString<Key extends string> = Key extends `-${infer R}`
|
|
40
|
+
? `${PascalizeString<R>}`
|
|
41
|
+
: Key extends `${infer _F}-${infer _R}`
|
|
42
|
+
? PascalizeSnakeString<Key>
|
|
43
|
+
: Capitalize<Key>;
|
|
44
|
+
type PascalizeSnakeString<Key extends string> = Key extends `-${infer R}`
|
|
45
|
+
? PascalizeSnakeString<R>
|
|
46
|
+
: Key extends `${infer F}${infer M}-${infer R}`
|
|
47
|
+
? `${Uppercase<F>}${Lowercase<M>}${PascalizeSnakeString<R>}`
|
|
48
|
+
: Key extends `${infer F}${infer R}`
|
|
49
|
+
? `${Uppercase<F>}${Lowercase<R>}`
|
|
50
|
+
: Key;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { TagBase } from "./TagBase";
|
|
2
|
-
|
|
3
|
-
export type JsonSchemaPlugin<Schema extends object> = TagBase<{
|
|
4
|
-
target: "string" | "boolean" | "bigint" | "number" | "array" | "object";
|
|
5
|
-
kind: "jsonPlugin";
|
|
6
|
-
value: undefined;
|
|
7
|
-
schema: Schema;
|
|
8
|
-
}>;
|
|
1
|
+
import { TagBase } from "./TagBase";
|
|
2
|
+
|
|
3
|
+
export type JsonSchemaPlugin<Schema extends object> = TagBase<{
|
|
4
|
+
target: "string" | "boolean" | "bigint" | "number" | "array" | "object";
|
|
5
|
+
kind: "jsonPlugin";
|
|
6
|
+
value: undefined;
|
|
7
|
+
schema: Schema;
|
|
8
|
+
}>;
|
package/src/tags/Sequence.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { TagBase } from "./TagBase";
|
|
2
|
-
|
|
3
|
-
export type Sequence<N extends number> = TagBase<{
|
|
4
|
-
target: "boolean" | "bigint" | "number" | "string" | "array" | "object";
|
|
5
|
-
kind: "sequence";
|
|
6
|
-
value: N;
|
|
7
|
-
schema: {
|
|
8
|
-
"x-protobuf-sequence": N;
|
|
9
|
-
};
|
|
10
|
-
}>;
|
|
1
|
+
import { TagBase } from "./TagBase";
|
|
2
|
+
|
|
3
|
+
export type Sequence<N extends number> = TagBase<{
|
|
4
|
+
target: "boolean" | "bigint" | "number" | "string" | "array" | "object";
|
|
5
|
+
kind: "sequence";
|
|
6
|
+
value: N;
|
|
7
|
+
schema: {
|
|
8
|
+
"x-protobuf-sequence": N;
|
|
9
|
+
};
|
|
10
|
+
}>;
|
package/src/tags/TagBase.ts
CHANGED
|
@@ -1,82 +1,82 @@
|
|
|
1
|
-
export type TagBase<
|
|
2
|
-
Props extends TagBase.IProps<any, any, any, any, any, any>,
|
|
3
|
-
> = {
|
|
4
|
-
/**
|
|
5
|
-
* This is a dummy property for compilation.
|
|
6
|
-
*
|
|
7
|
-
* It does not mean anything in runtime.
|
|
8
|
-
*/
|
|
9
|
-
"typia.tag"?: Props;
|
|
10
|
-
};
|
|
11
|
-
export namespace TagBase {
|
|
12
|
-
export interface IProps<
|
|
13
|
-
Target extends
|
|
14
|
-
| "boolean"
|
|
15
|
-
| "bigint"
|
|
16
|
-
| "number"
|
|
17
|
-
| "string"
|
|
18
|
-
| "array"
|
|
19
|
-
| "object",
|
|
20
|
-
Kind extends string,
|
|
21
|
-
Value extends boolean | bigint | number | string | undefined,
|
|
22
|
-
Validate extends
|
|
23
|
-
| string
|
|
24
|
-
| {
|
|
25
|
-
[key in Target]?: string;
|
|
26
|
-
},
|
|
27
|
-
Exclusive extends boolean | string[],
|
|
28
|
-
Schema extends object | undefined,
|
|
29
|
-
> {
|
|
30
|
-
/**
|
|
31
|
-
* Target type.
|
|
32
|
-
*
|
|
33
|
-
* If user tries to adapt this tag to a different type, it would be a compile
|
|
34
|
-
* error.
|
|
35
|
-
*
|
|
36
|
-
* For example, you've configured target type as `string`, but user adapted it
|
|
37
|
-
* onto a `number` type (`number & YourCustomTag<Value>`), then it would be
|
|
38
|
-
* blocked by TypeScript compiler.
|
|
39
|
-
*/
|
|
40
|
-
target: Target;
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* What kind of tag is this?
|
|
44
|
-
*/
|
|
45
|
-
kind: Kind;
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* Value to be configured by user.
|
|
49
|
-
*/
|
|
50
|
-
value: Value;
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* Validation script.
|
|
54
|
-
*
|
|
55
|
-
* This script would be inserted into the generated validation function.
|
|
56
|
-
* In here script, target variable name must be `$input`. The variable name
|
|
57
|
-
* `$input` would be transformed to the suitable when compilation.
|
|
58
|
-
*
|
|
59
|
-
* Also, If you've take a mistake on this script, compile error would be
|
|
60
|
-
* occured. So, define it with confidence. Compiler will block all your
|
|
61
|
-
* mistakes.
|
|
62
|
-
*/
|
|
63
|
-
validate?: Validate;
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* Exclusive option.
|
|
67
|
-
*
|
|
68
|
-
* If this property configured as `true`, same {@link kind} tag cannot be
|
|
69
|
-
* duplicated in the target type. Otherwise, if you've configured this
|
|
70
|
-
* property as string array, all of the {@link kind} value assigned
|
|
71
|
-
* tags cannot be compatible in the target type.
|
|
72
|
-
*
|
|
73
|
-
* @default false
|
|
74
|
-
*/
|
|
75
|
-
exclusive?: Exclusive | string[];
|
|
76
|
-
|
|
77
|
-
/**
|
|
78
|
-
* Additional schema info assigned to the {@link IJsonSchema} object.
|
|
79
|
-
*/
|
|
80
|
-
schema?: Schema;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
1
|
+
export type TagBase<
|
|
2
|
+
Props extends TagBase.IProps<any, any, any, any, any, any>,
|
|
3
|
+
> = {
|
|
4
|
+
/**
|
|
5
|
+
* This is a dummy property for compilation.
|
|
6
|
+
*
|
|
7
|
+
* It does not mean anything in runtime.
|
|
8
|
+
*/
|
|
9
|
+
"typia.tag"?: Props;
|
|
10
|
+
};
|
|
11
|
+
export namespace TagBase {
|
|
12
|
+
export interface IProps<
|
|
13
|
+
Target extends
|
|
14
|
+
| "boolean"
|
|
15
|
+
| "bigint"
|
|
16
|
+
| "number"
|
|
17
|
+
| "string"
|
|
18
|
+
| "array"
|
|
19
|
+
| "object",
|
|
20
|
+
Kind extends string,
|
|
21
|
+
Value extends boolean | bigint | number | string | undefined,
|
|
22
|
+
Validate extends
|
|
23
|
+
| string
|
|
24
|
+
| {
|
|
25
|
+
[key in Target]?: string;
|
|
26
|
+
},
|
|
27
|
+
Exclusive extends boolean | string[],
|
|
28
|
+
Schema extends object | undefined,
|
|
29
|
+
> {
|
|
30
|
+
/**
|
|
31
|
+
* Target type.
|
|
32
|
+
*
|
|
33
|
+
* If user tries to adapt this tag to a different type, it would be a compile
|
|
34
|
+
* error.
|
|
35
|
+
*
|
|
36
|
+
* For example, you've configured target type as `string`, but user adapted it
|
|
37
|
+
* onto a `number` type (`number & YourCustomTag<Value>`), then it would be
|
|
38
|
+
* blocked by TypeScript compiler.
|
|
39
|
+
*/
|
|
40
|
+
target: Target;
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* What kind of tag is this?
|
|
44
|
+
*/
|
|
45
|
+
kind: Kind;
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Value to be configured by user.
|
|
49
|
+
*/
|
|
50
|
+
value: Value;
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Validation script.
|
|
54
|
+
*
|
|
55
|
+
* This script would be inserted into the generated validation function.
|
|
56
|
+
* In here script, target variable name must be `$input`. The variable name
|
|
57
|
+
* `$input` would be transformed to the suitable when compilation.
|
|
58
|
+
*
|
|
59
|
+
* Also, If you've take a mistake on this script, compile error would be
|
|
60
|
+
* occured. So, define it with confidence. Compiler will block all your
|
|
61
|
+
* mistakes.
|
|
62
|
+
*/
|
|
63
|
+
validate?: Validate;
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Exclusive option.
|
|
67
|
+
*
|
|
68
|
+
* If this property configured as `true`, same {@link kind} tag cannot be
|
|
69
|
+
* duplicated in the target type. Otherwise, if you've configured this
|
|
70
|
+
* property as string array, all of the {@link kind} value assigned
|
|
71
|
+
* tags cannot be compatible in the target type.
|
|
72
|
+
*
|
|
73
|
+
* @default false
|
|
74
|
+
*/
|
|
75
|
+
exclusive?: Exclusive | string[];
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Additional schema info assigned to the {@link IJsonSchema} object.
|
|
79
|
+
*/
|
|
80
|
+
schema?: Schema;
|
|
81
|
+
}
|
|
82
|
+
}
|