typia 7.3.0-dev.20241213 → 7.3.0
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 +148 -148
- package/lib/executable/typia.js +0 -0
- package/package.json +1 -1
- package/src/IRandomGenerator.ts +49 -49
- package/src/IReadableURLSearchParams.ts +9 -9
- package/src/IValidation.ts +21 -21
- package/src/executable/TypiaGenerateWizard.ts +83 -83
- package/src/executable/TypiaPatchWizard.ts +45 -45
- 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 +52 -52
- 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 +91 -91
- 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 -255
- 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 +481 -481
- package/src/misc.ts +658 -658
- package/src/module.ts +937 -937
- 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 +439 -439
- 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 +279 -279
- 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/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/LlmApplicationOfValidateProgrammer.ts +81 -81
- package/src/programmers/llm/LlmApplicationProgrammer.ts +277 -277
- 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/llm/ILlmApplicationOfValidate.ts +55 -55
- package/src/schemas/llm/ILlmFunctionOfValidate.ts +39 -39
- 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/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/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 +547 -547
- 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/LlmApplicationOfValidateTransformer.ts +115 -115
- 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,4 +1,4 @@
|
|
|
1
|
-
export const _isFormatRelativeJsonPointer = (str: string): boolean =>
|
|
2
|
-
PATTERN.test(str);
|
|
3
|
-
|
|
4
|
-
const PATTERN = /^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;
|
|
1
|
+
export const _isFormatRelativeJsonPointer = (str: string): boolean =>
|
|
2
|
+
PATTERN.test(str);
|
|
3
|
+
|
|
4
|
+
const PATTERN = /^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export const _isFormatTime = (str: string): boolean => PATTERN.test(str);
|
|
2
|
-
|
|
3
|
-
const PATTERN =
|
|
4
|
-
/^([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\.[0-9]{1,9})?(Z|[+-]([01][0-9]|2[0-3]):[0-5][0-9])$/i;
|
|
1
|
+
export const _isFormatTime = (str: string): boolean => PATTERN.test(str);
|
|
2
|
+
|
|
3
|
+
const PATTERN =
|
|
4
|
+
/^([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\.[0-9]{1,9})?(Z|[+-]([01][0-9]|2[0-3]):[0-5][0-9])$/i;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export const _isFormatUri = (str: string): boolean =>
|
|
2
|
-
NOT_URI_FRAGMENT.test(str) && URI.test(str);
|
|
3
|
-
|
|
4
|
-
const NOT_URI_FRAGMENT = /\/|:/;
|
|
5
|
-
const URI =
|
|
6
|
-
/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;
|
|
1
|
+
export const _isFormatUri = (str: string): boolean =>
|
|
2
|
+
NOT_URI_FRAGMENT.test(str) && URI.test(str);
|
|
3
|
+
|
|
4
|
+
const NOT_URI_FRAGMENT = /\/|:/;
|
|
5
|
+
const URI =
|
|
6
|
+
/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export const _isFormatUriReference = (str: string): boolean =>
|
|
2
|
-
PATTERN.test(str);
|
|
3
|
-
|
|
4
|
-
const PATTERN =
|
|
5
|
-
/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;
|
|
1
|
+
export const _isFormatUriReference = (str: string): boolean =>
|
|
2
|
+
PATTERN.test(str);
|
|
3
|
+
|
|
4
|
+
const PATTERN =
|
|
5
|
+
/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export const _isFormatUriTemplate = (str: string): boolean => PATTERN.test(str);
|
|
2
|
-
|
|
3
|
-
const PATTERN =
|
|
4
|
-
/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i;
|
|
1
|
+
export const _isFormatUriTemplate = (str: string): boolean => PATTERN.test(str);
|
|
2
|
+
|
|
3
|
+
const PATTERN =
|
|
4
|
+
/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export const _isFormatUrl = (str: string): boolean => PATTERN.test(str);
|
|
2
|
-
|
|
3
|
-
const PATTERN =
|
|
4
|
-
/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu;
|
|
1
|
+
export const _isFormatUrl = (str: string): boolean => PATTERN.test(str);
|
|
2
|
+
|
|
3
|
+
const PATTERN =
|
|
4
|
+
/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export const _isFormatUuid = (str: string): boolean => PATTERN.test(str);
|
|
2
|
-
|
|
3
|
-
const PATTERN = /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;
|
|
1
|
+
export const _isFormatUuid = (str: string): boolean => PATTERN.test(str);
|
|
2
|
+
|
|
3
|
+
const PATTERN = /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export const _isTypeFloat = (value: number): boolean =>
|
|
2
|
-
MINIMUM <= value && value <= MAXIMUM;
|
|
3
|
-
|
|
4
|
-
const MINIMUM = -1.175494351e38;
|
|
5
|
-
const MAXIMUM = 3.4028235e38;
|
|
1
|
+
export const _isTypeFloat = (value: number): boolean =>
|
|
2
|
+
MINIMUM <= value && value <= MAXIMUM;
|
|
3
|
+
|
|
4
|
+
const MINIMUM = -1.175494351e38;
|
|
5
|
+
const MAXIMUM = 3.4028235e38;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export const _isTypeInt32 = (value: number): boolean =>
|
|
2
|
-
Math.floor(value) === value && MINIMUM <= value && value <= MAXIMUM;
|
|
3
|
-
|
|
4
|
-
const MINIMUM = -(2 ** 31);
|
|
5
|
-
const MAXIMUM = 2 ** 31 - 1;
|
|
1
|
+
export const _isTypeInt32 = (value: number): boolean =>
|
|
2
|
+
Math.floor(value) === value && MINIMUM <= value && value <= MAXIMUM;
|
|
3
|
+
|
|
4
|
+
const MINIMUM = -(2 ** 31);
|
|
5
|
+
const MAXIMUM = 2 ** 31 - 1;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export const _isTypeInt64 = (value: number): boolean =>
|
|
2
|
-
Math.floor(value) === value && MINIMUM <= value && value <= MAXIMUM;
|
|
3
|
-
|
|
4
|
-
const MINIMUM = -(2 ** 63);
|
|
5
|
-
const MAXIMUM = 2 ** 63 - 1;
|
|
1
|
+
export const _isTypeInt64 = (value: number): boolean =>
|
|
2
|
+
Math.floor(value) === value && MINIMUM <= value && value <= MAXIMUM;
|
|
3
|
+
|
|
4
|
+
const MINIMUM = -(2 ** 63);
|
|
5
|
+
const MAXIMUM = 2 ** 63 - 1;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export const _isTypeUint32 = (value: number): boolean =>
|
|
2
|
-
Math.floor(value) === value && MINIMUM <= value && value <= MAXIMUM;
|
|
3
|
-
|
|
4
|
-
const MINIMUM = 0;
|
|
5
|
-
const MAXIMUM = 2 ** 32 - 1;
|
|
1
|
+
export const _isTypeUint32 = (value: number): boolean =>
|
|
2
|
+
Math.floor(value) === value && MINIMUM <= value && value <= MAXIMUM;
|
|
3
|
+
|
|
4
|
+
const MINIMUM = 0;
|
|
5
|
+
const MAXIMUM = 2 ** 32 - 1;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export const _isTypeUint64 = (value: number): boolean =>
|
|
2
|
-
Math.floor(value) === value && MINIMUM <= value && value <= MAXIMUM;
|
|
3
|
-
|
|
4
|
-
const MINIMUM = 0;
|
|
5
|
-
const MAXIMUM = 2 ** 64 - 1;
|
|
1
|
+
export const _isTypeUint64 = (value: number): boolean =>
|
|
2
|
+
Math.floor(value) === value && MINIMUM <= value && value <= MAXIMUM;
|
|
3
|
+
|
|
4
|
+
const MINIMUM = 0;
|
|
5
|
+
const MAXIMUM = 2 ** 64 - 1;
|
|
@@ -1,159 +1,159 @@
|
|
|
1
|
-
export const _isUniqueItems = (elements: any[]): boolean => {
|
|
2
|
-
// EMTPY OR ONLY ONE
|
|
3
|
-
if (elements.length < 2) return true;
|
|
4
|
-
|
|
5
|
-
// SHALLOW COMPARISON
|
|
6
|
-
if (["boolean", "bigint", "number", "string"].includes(typeof elements[0]))
|
|
7
|
-
return new Set(elements).size === elements.length;
|
|
8
|
-
|
|
9
|
-
// DEEP COMPARISON
|
|
10
|
-
for (let i = 0; i < elements.length; i++)
|
|
11
|
-
for (let j = i + 1; j < elements.length; j++)
|
|
12
|
-
if (equals(new WeakMap())(elements[i], elements[j])) return false;
|
|
13
|
-
return true;
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
const equals = (visited: WeakMap<object, WeakMap<object, boolean>>) => {
|
|
17
|
-
const next = (a: any, b: any): boolean => {
|
|
18
|
-
// SHALLOW EQUAL
|
|
19
|
-
if (a === b) return true;
|
|
20
|
-
else if (typeof a !== typeof b || typeof a !== "object") return false;
|
|
21
|
-
// COMPARE CONTAINERS
|
|
22
|
-
else if (Array.isArray(a))
|
|
23
|
-
return Array.isArray(b) && a.map((x, i) => next(x, b[i])).every((x) => x);
|
|
24
|
-
else if (a instanceof Set)
|
|
25
|
-
return (
|
|
26
|
-
b instanceof Set && a.size === b.size && [...a].every((x) => b.has(x))
|
|
27
|
-
);
|
|
28
|
-
else if (a instanceof Map)
|
|
29
|
-
return (
|
|
30
|
-
b instanceof Map &&
|
|
31
|
-
a.size === b.size &&
|
|
32
|
-
[...a].every(([k, v]) => b.has(k) && next(v, b.get(k)))
|
|
33
|
-
);
|
|
34
|
-
// ATOMIC CLASSES
|
|
35
|
-
else if (a instanceof Boolean)
|
|
36
|
-
return b instanceof Boolean
|
|
37
|
-
? a.valueOf() === b.valueOf()
|
|
38
|
-
: a.valueOf() === b;
|
|
39
|
-
else if (a instanceof BigInt)
|
|
40
|
-
return b instanceof BigInt ? a === b : a === BigInt(b);
|
|
41
|
-
else if (a instanceof Number)
|
|
42
|
-
return b instanceof Number
|
|
43
|
-
? a.valueOf() === b.valueOf()
|
|
44
|
-
: a.valueOf() === b;
|
|
45
|
-
else if (a instanceof String)
|
|
46
|
-
return b instanceof String
|
|
47
|
-
? a.valueOf() === b.valueOf()
|
|
48
|
-
: a.valueOf() === b;
|
|
49
|
-
else if (a instanceof Date)
|
|
50
|
-
return b instanceof Date && a.getTime() === b.getTime();
|
|
51
|
-
// BINARY DATA
|
|
52
|
-
else if (a instanceof Uint8Array)
|
|
53
|
-
return (
|
|
54
|
-
b instanceof Uint8Array &&
|
|
55
|
-
a.length === b.length &&
|
|
56
|
-
a.every((x, i) => x === b[i])
|
|
57
|
-
);
|
|
58
|
-
else if (a instanceof Uint8ClampedArray)
|
|
59
|
-
return (
|
|
60
|
-
b instanceof Uint8ClampedArray &&
|
|
61
|
-
a.length === b.length &&
|
|
62
|
-
a.every((x, i) => x === b[i])
|
|
63
|
-
);
|
|
64
|
-
else if (a instanceof Uint16Array)
|
|
65
|
-
return (
|
|
66
|
-
b instanceof Uint16Array &&
|
|
67
|
-
a.length === b.length &&
|
|
68
|
-
a.every((x, i) => x === b[i])
|
|
69
|
-
);
|
|
70
|
-
else if (a instanceof Uint32Array)
|
|
71
|
-
return (
|
|
72
|
-
b instanceof Uint32Array &&
|
|
73
|
-
a.length === b.length &&
|
|
74
|
-
a.every((x, i) => x === b[i])
|
|
75
|
-
);
|
|
76
|
-
else if (a instanceof BigUint64Array)
|
|
77
|
-
return (
|
|
78
|
-
b instanceof BigUint64Array &&
|
|
79
|
-
a.length === b.length &&
|
|
80
|
-
a.every((x, i) => x === b[i])
|
|
81
|
-
);
|
|
82
|
-
else if (a instanceof Int8Array)
|
|
83
|
-
return (
|
|
84
|
-
b instanceof Int8Array &&
|
|
85
|
-
a.length === b.length &&
|
|
86
|
-
a.every((x, i) => x === b[i])
|
|
87
|
-
);
|
|
88
|
-
else if (a instanceof Int16Array)
|
|
89
|
-
return (
|
|
90
|
-
b instanceof Int16Array &&
|
|
91
|
-
a.length === b.length &&
|
|
92
|
-
a.every((x, i) => x === b[i])
|
|
93
|
-
);
|
|
94
|
-
else if (a instanceof Int32Array)
|
|
95
|
-
return (
|
|
96
|
-
b instanceof Int32Array &&
|
|
97
|
-
a.length === b.length &&
|
|
98
|
-
a.every((x, i) => x === b[i])
|
|
99
|
-
);
|
|
100
|
-
else if (a instanceof BigInt64Array)
|
|
101
|
-
return (
|
|
102
|
-
b instanceof BigInt64Array &&
|
|
103
|
-
a.length === b.length &&
|
|
104
|
-
a.every((x, i) => x === b[i])
|
|
105
|
-
);
|
|
106
|
-
else if (a instanceof Float32Array)
|
|
107
|
-
return (
|
|
108
|
-
b instanceof Float32Array &&
|
|
109
|
-
a.length === b.length &&
|
|
110
|
-
a.every((x, i) => x === b[i])
|
|
111
|
-
);
|
|
112
|
-
else if (a instanceof Float64Array)
|
|
113
|
-
return (
|
|
114
|
-
b instanceof Float64Array &&
|
|
115
|
-
a.length === b.length &&
|
|
116
|
-
a.every((x, i) => x === b[i])
|
|
117
|
-
);
|
|
118
|
-
else if (a instanceof ArrayBuffer) {
|
|
119
|
-
if (!(b instanceof ArrayBuffer) || a.byteLength !== b.byteLength)
|
|
120
|
-
return false;
|
|
121
|
-
const x: Uint8Array = new Uint8Array(a);
|
|
122
|
-
const y: Uint8Array = new Uint8Array(b);
|
|
123
|
-
return x.every((v, i) => v === y[i]);
|
|
124
|
-
} else if (a instanceof SharedArrayBuffer) {
|
|
125
|
-
if (!(b instanceof SharedArrayBuffer) || a.byteLength !== b.byteLength)
|
|
126
|
-
return false;
|
|
127
|
-
const x: Uint8Array = new Uint8Array(a);
|
|
128
|
-
const y: Uint8Array = new Uint8Array(b);
|
|
129
|
-
return x.every((v, i) => v === y[i]);
|
|
130
|
-
} else if (a instanceof DataView) {
|
|
131
|
-
if (!(b instanceof DataView) || a.byteLength !== b.byteLength)
|
|
132
|
-
return false;
|
|
133
|
-
const x: Uint8Array = new Uint8Array(a.buffer);
|
|
134
|
-
const y: Uint8Array = new Uint8Array(b.buffer);
|
|
135
|
-
return x.every((v, i) => v === y[i]);
|
|
136
|
-
} else if (a instanceof File)
|
|
137
|
-
return (
|
|
138
|
-
b instanceof File &&
|
|
139
|
-
a.name === b.name &&
|
|
140
|
-
a.size === b.size &&
|
|
141
|
-
a.type === b.type &&
|
|
142
|
-
next(a.slice(), b.slice())
|
|
143
|
-
);
|
|
144
|
-
// JUST PLAIN OBJECTS
|
|
145
|
-
else if (a !== null && b !== null) {
|
|
146
|
-
if (visited.has(a) && visited.get(a)!.has(b))
|
|
147
|
-
return visited.get(a)!.get(b)!;
|
|
148
|
-
if (!visited.has(a)) visited.set(a, new WeakMap());
|
|
149
|
-
visited.get(a)!.set(b, true);
|
|
150
|
-
const res: boolean =
|
|
151
|
-
Object.keys(a).length === Object.keys(b).length &&
|
|
152
|
-
Object.keys(a).every((x) => next(a[x], b[x]));
|
|
153
|
-
visited.get(a)!.set(b, res);
|
|
154
|
-
return res;
|
|
155
|
-
}
|
|
156
|
-
return false;
|
|
157
|
-
};
|
|
158
|
-
return next;
|
|
159
|
-
};
|
|
1
|
+
export const _isUniqueItems = (elements: any[]): boolean => {
|
|
2
|
+
// EMTPY OR ONLY ONE
|
|
3
|
+
if (elements.length < 2) return true;
|
|
4
|
+
|
|
5
|
+
// SHALLOW COMPARISON
|
|
6
|
+
if (["boolean", "bigint", "number", "string"].includes(typeof elements[0]))
|
|
7
|
+
return new Set(elements).size === elements.length;
|
|
8
|
+
|
|
9
|
+
// DEEP COMPARISON
|
|
10
|
+
for (let i = 0; i < elements.length; i++)
|
|
11
|
+
for (let j = i + 1; j < elements.length; j++)
|
|
12
|
+
if (equals(new WeakMap())(elements[i], elements[j])) return false;
|
|
13
|
+
return true;
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
const equals = (visited: WeakMap<object, WeakMap<object, boolean>>) => {
|
|
17
|
+
const next = (a: any, b: any): boolean => {
|
|
18
|
+
// SHALLOW EQUAL
|
|
19
|
+
if (a === b) return true;
|
|
20
|
+
else if (typeof a !== typeof b || typeof a !== "object") return false;
|
|
21
|
+
// COMPARE CONTAINERS
|
|
22
|
+
else if (Array.isArray(a))
|
|
23
|
+
return Array.isArray(b) && a.map((x, i) => next(x, b[i])).every((x) => x);
|
|
24
|
+
else if (a instanceof Set)
|
|
25
|
+
return (
|
|
26
|
+
b instanceof Set && a.size === b.size && [...a].every((x) => b.has(x))
|
|
27
|
+
);
|
|
28
|
+
else if (a instanceof Map)
|
|
29
|
+
return (
|
|
30
|
+
b instanceof Map &&
|
|
31
|
+
a.size === b.size &&
|
|
32
|
+
[...a].every(([k, v]) => b.has(k) && next(v, b.get(k)))
|
|
33
|
+
);
|
|
34
|
+
// ATOMIC CLASSES
|
|
35
|
+
else if (a instanceof Boolean)
|
|
36
|
+
return b instanceof Boolean
|
|
37
|
+
? a.valueOf() === b.valueOf()
|
|
38
|
+
: a.valueOf() === b;
|
|
39
|
+
else if (a instanceof BigInt)
|
|
40
|
+
return b instanceof BigInt ? a === b : a === BigInt(b);
|
|
41
|
+
else if (a instanceof Number)
|
|
42
|
+
return b instanceof Number
|
|
43
|
+
? a.valueOf() === b.valueOf()
|
|
44
|
+
: a.valueOf() === b;
|
|
45
|
+
else if (a instanceof String)
|
|
46
|
+
return b instanceof String
|
|
47
|
+
? a.valueOf() === b.valueOf()
|
|
48
|
+
: a.valueOf() === b;
|
|
49
|
+
else if (a instanceof Date)
|
|
50
|
+
return b instanceof Date && a.getTime() === b.getTime();
|
|
51
|
+
// BINARY DATA
|
|
52
|
+
else if (a instanceof Uint8Array)
|
|
53
|
+
return (
|
|
54
|
+
b instanceof Uint8Array &&
|
|
55
|
+
a.length === b.length &&
|
|
56
|
+
a.every((x, i) => x === b[i])
|
|
57
|
+
);
|
|
58
|
+
else if (a instanceof Uint8ClampedArray)
|
|
59
|
+
return (
|
|
60
|
+
b instanceof Uint8ClampedArray &&
|
|
61
|
+
a.length === b.length &&
|
|
62
|
+
a.every((x, i) => x === b[i])
|
|
63
|
+
);
|
|
64
|
+
else if (a instanceof Uint16Array)
|
|
65
|
+
return (
|
|
66
|
+
b instanceof Uint16Array &&
|
|
67
|
+
a.length === b.length &&
|
|
68
|
+
a.every((x, i) => x === b[i])
|
|
69
|
+
);
|
|
70
|
+
else if (a instanceof Uint32Array)
|
|
71
|
+
return (
|
|
72
|
+
b instanceof Uint32Array &&
|
|
73
|
+
a.length === b.length &&
|
|
74
|
+
a.every((x, i) => x === b[i])
|
|
75
|
+
);
|
|
76
|
+
else if (a instanceof BigUint64Array)
|
|
77
|
+
return (
|
|
78
|
+
b instanceof BigUint64Array &&
|
|
79
|
+
a.length === b.length &&
|
|
80
|
+
a.every((x, i) => x === b[i])
|
|
81
|
+
);
|
|
82
|
+
else if (a instanceof Int8Array)
|
|
83
|
+
return (
|
|
84
|
+
b instanceof Int8Array &&
|
|
85
|
+
a.length === b.length &&
|
|
86
|
+
a.every((x, i) => x === b[i])
|
|
87
|
+
);
|
|
88
|
+
else if (a instanceof Int16Array)
|
|
89
|
+
return (
|
|
90
|
+
b instanceof Int16Array &&
|
|
91
|
+
a.length === b.length &&
|
|
92
|
+
a.every((x, i) => x === b[i])
|
|
93
|
+
);
|
|
94
|
+
else if (a instanceof Int32Array)
|
|
95
|
+
return (
|
|
96
|
+
b instanceof Int32Array &&
|
|
97
|
+
a.length === b.length &&
|
|
98
|
+
a.every((x, i) => x === b[i])
|
|
99
|
+
);
|
|
100
|
+
else if (a instanceof BigInt64Array)
|
|
101
|
+
return (
|
|
102
|
+
b instanceof BigInt64Array &&
|
|
103
|
+
a.length === b.length &&
|
|
104
|
+
a.every((x, i) => x === b[i])
|
|
105
|
+
);
|
|
106
|
+
else if (a instanceof Float32Array)
|
|
107
|
+
return (
|
|
108
|
+
b instanceof Float32Array &&
|
|
109
|
+
a.length === b.length &&
|
|
110
|
+
a.every((x, i) => x === b[i])
|
|
111
|
+
);
|
|
112
|
+
else if (a instanceof Float64Array)
|
|
113
|
+
return (
|
|
114
|
+
b instanceof Float64Array &&
|
|
115
|
+
a.length === b.length &&
|
|
116
|
+
a.every((x, i) => x === b[i])
|
|
117
|
+
);
|
|
118
|
+
else if (a instanceof ArrayBuffer) {
|
|
119
|
+
if (!(b instanceof ArrayBuffer) || a.byteLength !== b.byteLength)
|
|
120
|
+
return false;
|
|
121
|
+
const x: Uint8Array = new Uint8Array(a);
|
|
122
|
+
const y: Uint8Array = new Uint8Array(b);
|
|
123
|
+
return x.every((v, i) => v === y[i]);
|
|
124
|
+
} else if (a instanceof SharedArrayBuffer) {
|
|
125
|
+
if (!(b instanceof SharedArrayBuffer) || a.byteLength !== b.byteLength)
|
|
126
|
+
return false;
|
|
127
|
+
const x: Uint8Array = new Uint8Array(a);
|
|
128
|
+
const y: Uint8Array = new Uint8Array(b);
|
|
129
|
+
return x.every((v, i) => v === y[i]);
|
|
130
|
+
} else if (a instanceof DataView) {
|
|
131
|
+
if (!(b instanceof DataView) || a.byteLength !== b.byteLength)
|
|
132
|
+
return false;
|
|
133
|
+
const x: Uint8Array = new Uint8Array(a.buffer);
|
|
134
|
+
const y: Uint8Array = new Uint8Array(b.buffer);
|
|
135
|
+
return x.every((v, i) => v === y[i]);
|
|
136
|
+
} else if (a instanceof File)
|
|
137
|
+
return (
|
|
138
|
+
b instanceof File &&
|
|
139
|
+
a.name === b.name &&
|
|
140
|
+
a.size === b.size &&
|
|
141
|
+
a.type === b.type &&
|
|
142
|
+
next(a.slice(), b.slice())
|
|
143
|
+
);
|
|
144
|
+
// JUST PLAIN OBJECTS
|
|
145
|
+
else if (a !== null && b !== null) {
|
|
146
|
+
if (visited.has(a) && visited.get(a)!.has(b))
|
|
147
|
+
return visited.get(a)!.get(b)!;
|
|
148
|
+
if (!visited.has(a)) visited.set(a, new WeakMap());
|
|
149
|
+
visited.get(a)!.set(b, true);
|
|
150
|
+
const res: boolean =
|
|
151
|
+
Object.keys(a).length === Object.keys(b).length &&
|
|
152
|
+
Object.keys(a).every((x) => next(a[x], b[x]));
|
|
153
|
+
visited.get(a)!.set(b, res);
|
|
154
|
+
return res;
|
|
155
|
+
}
|
|
156
|
+
return false;
|
|
157
|
+
};
|
|
158
|
+
return next;
|
|
159
|
+
};
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { TypeGuardError } from "../TypeGuardError";
|
|
2
|
-
|
|
3
|
-
export const _jsonStringifyNumber = (value: number): number => {
|
|
4
|
-
if (isFinite(value) === false)
|
|
5
|
-
throw new TypeGuardError({
|
|
6
|
-
method: "typia.json.stringify",
|
|
7
|
-
expected: "number",
|
|
8
|
-
value,
|
|
9
|
-
message: "Error on typia.json.stringify(): infinite or not a number.",
|
|
10
|
-
});
|
|
11
|
-
return value;
|
|
12
|
-
};
|
|
1
|
+
import { TypeGuardError } from "../TypeGuardError";
|
|
2
|
+
|
|
3
|
+
export const _jsonStringifyNumber = (value: number): number => {
|
|
4
|
+
if (isFinite(value) === false)
|
|
5
|
+
throw new TypeGuardError({
|
|
6
|
+
method: "typia.json.stringify",
|
|
7
|
+
expected: "number",
|
|
8
|
+
value,
|
|
9
|
+
message: "Error on typia.json.stringify(): infinite or not a number.",
|
|
10
|
+
});
|
|
11
|
+
return value;
|
|
12
|
+
};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export const _jsonStringifyRest = (str: string): string => {
|
|
2
|
-
return str.length === 2 ? "" : "," + str.substring(1, str.length - 1);
|
|
3
|
-
};
|
|
1
|
+
export const _jsonStringifyRest = (str: string): string => {
|
|
2
|
+
return str.length === 2 ? "" : "," + str.substring(1, str.length - 1);
|
|
3
|
+
};
|
|
@@ -1,42 +1,42 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* In the past, name of `typia` was `typescript-json`, and supported
|
|
3
|
-
* JSON serialization by wrapping `fast-json-stringify. `typescript-json` was
|
|
4
|
-
* a helper library of `fast-json-stringify`, which can skip manual JSON schema
|
|
5
|
-
* definition just by putting pure TypeScript type.
|
|
6
|
-
*
|
|
7
|
-
* This `$string` function is a part of `fast-json-stringify` at that time, and
|
|
8
|
-
* still being used in `typia` for the string serialization.
|
|
9
|
-
*
|
|
10
|
-
* @reference https://github.com/fastify/fast-json-stringify/blob/master/lib/serializer.js
|
|
11
|
-
* @blog https://dev.to/samchon/good-bye-typescript-is-ancestor-of-typia-20000x-faster-validator-49fi
|
|
12
|
-
*/
|
|
13
|
-
export const _jsonStringifyString = (str: string): string => {
|
|
14
|
-
const len = str.length;
|
|
15
|
-
let result = "";
|
|
16
|
-
let last = -1;
|
|
17
|
-
let point = 255;
|
|
18
|
-
|
|
19
|
-
// eslint-disable-next-line
|
|
20
|
-
for (var i = 0; i < len; i++) {
|
|
21
|
-
point = str.charCodeAt(i);
|
|
22
|
-
if (point < 32) {
|
|
23
|
-
return JSON.stringify(str);
|
|
24
|
-
}
|
|
25
|
-
if (point >= 0xd800 && point <= 0xdfff) {
|
|
26
|
-
// The current character is a surrogate.
|
|
27
|
-
return JSON.stringify(str);
|
|
28
|
-
}
|
|
29
|
-
if (
|
|
30
|
-
point === 0x22 || // '"'
|
|
31
|
-
point === 0x5c // '\'
|
|
32
|
-
) {
|
|
33
|
-
last === -1 && (last = 0);
|
|
34
|
-
result += str.slice(last, i) + "\\";
|
|
35
|
-
last = i;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
return (
|
|
40
|
-
(last === -1 && '"' + str + '"') || '"' + result + str.slice(last) + '"'
|
|
41
|
-
);
|
|
42
|
-
};
|
|
1
|
+
/**
|
|
2
|
+
* In the past, name of `typia` was `typescript-json`, and supported
|
|
3
|
+
* JSON serialization by wrapping `fast-json-stringify. `typescript-json` was
|
|
4
|
+
* a helper library of `fast-json-stringify`, which can skip manual JSON schema
|
|
5
|
+
* definition just by putting pure TypeScript type.
|
|
6
|
+
*
|
|
7
|
+
* This `$string` function is a part of `fast-json-stringify` at that time, and
|
|
8
|
+
* still being used in `typia` for the string serialization.
|
|
9
|
+
*
|
|
10
|
+
* @reference https://github.com/fastify/fast-json-stringify/blob/master/lib/serializer.js
|
|
11
|
+
* @blog https://dev.to/samchon/good-bye-typescript-is-ancestor-of-typia-20000x-faster-validator-49fi
|
|
12
|
+
*/
|
|
13
|
+
export const _jsonStringifyString = (str: string): string => {
|
|
14
|
+
const len = str.length;
|
|
15
|
+
let result = "";
|
|
16
|
+
let last = -1;
|
|
17
|
+
let point = 255;
|
|
18
|
+
|
|
19
|
+
// eslint-disable-next-line
|
|
20
|
+
for (var i = 0; i < len; i++) {
|
|
21
|
+
point = str.charCodeAt(i);
|
|
22
|
+
if (point < 32) {
|
|
23
|
+
return JSON.stringify(str);
|
|
24
|
+
}
|
|
25
|
+
if (point >= 0xd800 && point <= 0xdfff) {
|
|
26
|
+
// The current character is a surrogate.
|
|
27
|
+
return JSON.stringify(str);
|
|
28
|
+
}
|
|
29
|
+
if (
|
|
30
|
+
point === 0x22 || // '"'
|
|
31
|
+
point === 0x5c // '\'
|
|
32
|
+
) {
|
|
33
|
+
last === -1 && (last = 0);
|
|
34
|
+
result += str.slice(last, i) + "\\";
|
|
35
|
+
last = i;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
return (
|
|
40
|
+
(last === -1 && '"' + str + '"') || '"' + result + str.slice(last) + '"'
|
|
41
|
+
);
|
|
42
|
+
};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const _jsonStringifyTail = (str: string): string =>
|
|
2
|
-
str[str.length - 1] === "," ? str.substring(0, str.length - 1) : str;
|
|
1
|
+
export const _jsonStringifyTail = (str: string): string =>
|
|
2
|
+
str[str.length - 1] === "," ? str.substring(0, str.length - 1) : str;
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import { ILlmApplication, ILlmFunction, ILlmSchema } from "@samchon/openapi";
|
|
2
|
-
import { LlmSchemaComposer } from "@samchon/openapi/lib/composers/LlmSchemaComposer";
|
|
3
|
-
|
|
4
|
-
export const _llmApplicationFinalize = <Model extends ILlmSchema.Model>(
|
|
5
|
-
app: ILlmApplication<Model>,
|
|
6
|
-
options?: Partial<Pick<ILlmApplication.IOptions<Model>, "separate">>,
|
|
7
|
-
): void => {
|
|
8
|
-
app.options = {
|
|
9
|
-
...LlmSchemaComposer.defaultConfig(app.model),
|
|
10
|
-
separate: options?.separate ?? null,
|
|
11
|
-
};
|
|
12
|
-
if (app.options.separate === null) return;
|
|
13
|
-
for (const func of app.functions)
|
|
14
|
-
func.separated = LlmSchemaComposer.separateParameters(app.model)({
|
|
15
|
-
parameters:
|
|
16
|
-
func.parameters satisfies ILlmSchema.IParameters<Model> as any,
|
|
17
|
-
predicate: app.options
|
|
18
|
-
.separate as ILlmApplication.IOptions<Model>["separate"] as any,
|
|
19
|
-
}) as ILlmFunction.ISeparated<Model>;
|
|
20
|
-
};
|
|
1
|
+
import { ILlmApplication, ILlmFunction, ILlmSchema } from "@samchon/openapi";
|
|
2
|
+
import { LlmSchemaComposer } from "@samchon/openapi/lib/composers/LlmSchemaComposer";
|
|
3
|
+
|
|
4
|
+
export const _llmApplicationFinalize = <Model extends ILlmSchema.Model>(
|
|
5
|
+
app: ILlmApplication<Model>,
|
|
6
|
+
options?: Partial<Pick<ILlmApplication.IOptions<Model>, "separate">>,
|
|
7
|
+
): void => {
|
|
8
|
+
app.options = {
|
|
9
|
+
...LlmSchemaComposer.defaultConfig(app.model),
|
|
10
|
+
separate: options?.separate ?? null,
|
|
11
|
+
};
|
|
12
|
+
if (app.options.separate === null) return;
|
|
13
|
+
for (const func of app.functions)
|
|
14
|
+
func.separated = LlmSchemaComposer.separateParameters(app.model)({
|
|
15
|
+
parameters:
|
|
16
|
+
func.parameters satisfies ILlmSchema.IParameters<Model> as any,
|
|
17
|
+
predicate: app.options
|
|
18
|
+
.separate as ILlmApplication.IOptions<Model>["separate"] as any,
|
|
19
|
+
}) as ILlmFunction.ISeparated<Model>;
|
|
20
|
+
};
|