typia 7.6.1 → 7.6.2-dev.20250205

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.
Files changed (523) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +150 -150
  3. package/lib/executable/setup/PluginConfigurator.js +3 -3
  4. package/lib/executable/typia.js +15 -15
  5. package/lib/factories/JsonMetadataFactory.js +1 -1
  6. package/lib/factories/JsonMetadataFactory.js.map +1 -1
  7. package/lib/programmers/llm/LlmModelPredicator.js +1 -1
  8. package/lib/programmers/llm/LlmModelPredicator.js.map +1 -1
  9. package/lib/transformers/features/json/JsonSchemasTransformer.js +32 -30
  10. package/lib/transformers/features/json/JsonSchemasTransformer.js.map +1 -1
  11. package/lib/transformers/features/llm/LlmApplicationOfValidateTransformer.js +29 -23
  12. package/lib/transformers/features/llm/LlmApplicationOfValidateTransformer.js.map +1 -1
  13. package/lib/transformers/features/llm/LlmApplicationTransformer.js +29 -23
  14. package/lib/transformers/features/llm/LlmApplicationTransformer.js.map +1 -1
  15. package/lib/transformers/features/llm/LlmParametersTransformer.js +28 -22
  16. package/lib/transformers/features/llm/LlmParametersTransformer.js.map +1 -1
  17. package/lib/transformers/features/llm/LlmSchemaTransformer.js +28 -22
  18. package/lib/transformers/features/llm/LlmSchemaTransformer.js.map +1 -1
  19. package/lib/transformers/features/reflect/ReflectNameTransformer.js +2 -2
  20. package/package.json +1 -1
  21. package/src/AssertionGuard.ts +1 -1
  22. package/src/CamelCase.ts +75 -75
  23. package/src/IRandomGenerator.ts +49 -49
  24. package/src/IReadableURLSearchParams.ts +9 -9
  25. package/src/IValidation.ts +21 -21
  26. package/src/PascalCase.ts +71 -71
  27. package/src/Primitive.ts +92 -92
  28. package/src/Resolved.ts +74 -74
  29. package/src/SnakeCase.ts +126 -126
  30. package/src/TypeGuardError.ts +37 -37
  31. package/src/executable/TypiaGenerateWizard.ts +83 -83
  32. package/src/executable/TypiaPatchWizard.ts +45 -45
  33. package/src/executable/TypiaSetupWizard.ts +179 -179
  34. package/src/executable/setup/ArgumentParser.ts +42 -42
  35. package/src/executable/setup/CommandExecutor.ts +8 -8
  36. package/src/executable/setup/FileRetriever.ts +19 -19
  37. package/src/executable/setup/PackageManager.ts +87 -87
  38. package/src/executable/setup/PluginConfigurator.ts +69 -69
  39. package/src/executable/typia.ts +55 -55
  40. package/src/factories/CommentFactory.ts +79 -79
  41. package/src/factories/ExpressionFactory.ts +216 -216
  42. package/src/factories/IdentifierFactory.ts +89 -89
  43. package/src/factories/JsonMetadataFactory.ts +83 -83
  44. package/src/factories/LiteralFactory.ts +52 -52
  45. package/src/factories/MetadataCollection.ts +278 -278
  46. package/src/factories/MetadataCommentTagFactory.ts +650 -650
  47. package/src/factories/MetadataFactory.ts +404 -404
  48. package/src/factories/MetadataTypeTagFactory.ts +411 -411
  49. package/src/factories/MetadataTypeTagSchemaFactory.ts +82 -82
  50. package/src/factories/NumericRangeFactory.ts +72 -72
  51. package/src/factories/ProtobufFactory.ts +875 -875
  52. package/src/factories/StatementFactory.ts +90 -90
  53. package/src/factories/TemplateFactory.ts +64 -64
  54. package/src/factories/TypeFactory.ts +140 -140
  55. package/src/factories/ValueFactory.ts +12 -12
  56. package/src/factories/internal/metadata/IMetadataIteratorProps.ts +17 -17
  57. package/src/factories/internal/metadata/MetadataHelper.ts +21 -21
  58. package/src/factories/internal/metadata/emend_metadata_atomics.ts +45 -45
  59. package/src/factories/internal/metadata/emplace_metadata_alias.ts +33 -33
  60. package/src/factories/internal/metadata/emplace_metadata_array_type.ts +39 -39
  61. package/src/factories/internal/metadata/emplace_metadata_object.ts +208 -208
  62. package/src/factories/internal/metadata/emplace_metadata_tuple.ts +57 -57
  63. package/src/factories/internal/metadata/explore_metadata.ts +31 -31
  64. package/src/factories/internal/metadata/iterate_metadata.ts +54 -54
  65. package/src/factories/internal/metadata/iterate_metadata_alias.ts +33 -33
  66. package/src/factories/internal/metadata/iterate_metadata_array.ts +63 -63
  67. package/src/factories/internal/metadata/iterate_metadata_atomic.ts +62 -62
  68. package/src/factories/internal/metadata/iterate_metadata_coalesce.ts +28 -28
  69. package/src/factories/internal/metadata/iterate_metadata_collection.ts +146 -146
  70. package/src/factories/internal/metadata/iterate_metadata_comment_tags.ts +32 -32
  71. package/src/factories/internal/metadata/iterate_metadata_constant.ts +76 -76
  72. package/src/factories/internal/metadata/iterate_metadata_escape.ts +49 -49
  73. package/src/factories/internal/metadata/iterate_metadata_function.ts +91 -91
  74. package/src/factories/internal/metadata/iterate_metadata_intersection.ts +213 -213
  75. package/src/factories/internal/metadata/iterate_metadata_map.ts +57 -57
  76. package/src/factories/internal/metadata/iterate_metadata_native.ts +255 -255
  77. package/src/factories/internal/metadata/iterate_metadata_object.ts +35 -35
  78. package/src/factories/internal/metadata/iterate_metadata_set.ts +57 -57
  79. package/src/factories/internal/metadata/iterate_metadata_sort.ts +87 -87
  80. package/src/factories/internal/metadata/iterate_metadata_template.ts +41 -41
  81. package/src/factories/internal/metadata/iterate_metadata_tuple.ts +26 -26
  82. package/src/factories/internal/metadata/iterate_metadata_union.ts +19 -19
  83. package/src/functional.ts +750 -750
  84. package/src/http.ts +1047 -1047
  85. package/src/index.ts +4 -4
  86. package/src/internal/_IProtobufWriter.ts +18 -18
  87. package/src/internal/_ProtobufReader.ts +194 -194
  88. package/src/internal/_ProtobufSizer.ts +145 -145
  89. package/src/internal/_ProtobufWriter.ts +145 -145
  90. package/src/internal/_accessExpressionAsString.ts +46 -46
  91. package/src/internal/_assertGuard.ts +13 -13
  92. package/src/internal/_functionalTypeGuardErrorFactory.ts +4 -4
  93. package/src/internal/_httpFormDataReadArray.ts +4 -4
  94. package/src/internal/_httpFormDataReadBigint.ts +18 -18
  95. package/src/internal/_httpFormDataReadBlob.ts +10 -10
  96. package/src/internal/_httpFormDataReadBoolean.ts +16 -16
  97. package/src/internal/_httpFormDataReadFile.ts +10 -10
  98. package/src/internal/_httpFormDataReadNumber.ts +15 -15
  99. package/src/internal/_httpFormDataReadString.ts +10 -10
  100. package/src/internal/_httpHeaderReadBigint.ts +10 -10
  101. package/src/internal/_httpHeaderReadBoolean.ts +8 -8
  102. package/src/internal/_httpHeaderReadNumber.ts +7 -7
  103. package/src/internal/_httpParameterReadBigint.ts +10 -10
  104. package/src/internal/_httpParameterReadBoolean.ts +8 -8
  105. package/src/internal/_httpParameterReadNumber.ts +7 -7
  106. package/src/internal/_httpParameterReadString.ts +2 -2
  107. package/src/internal/_httpQueryParseURLSearchParams.ts +12 -12
  108. package/src/internal/_httpQueryReadArray.ts +4 -4
  109. package/src/internal/_httpQueryReadBigint.ts +12 -12
  110. package/src/internal/_httpQueryReadBoolean.ts +14 -14
  111. package/src/internal/_httpQueryReadNumber.ts +9 -9
  112. package/src/internal/_httpQueryReadString.ts +4 -4
  113. package/src/internal/_isBetween.ts +2 -2
  114. package/src/internal/_isBigintString.ts +8 -8
  115. package/src/internal/_isFormatByte.ts +7 -7
  116. package/src/internal/_isFormatDate.ts +3 -3
  117. package/src/internal/_isFormatDateTime.ts +4 -4
  118. package/src/internal/_isFormatDuration.ts +4 -4
  119. package/src/internal/_isFormatEmail.ts +4 -4
  120. package/src/internal/_isFormatHostname.ts +4 -4
  121. package/src/internal/_isFormatIdnEmail.ts +4 -4
  122. package/src/internal/_isFormatIdnHostname.ts +4 -4
  123. package/src/internal/_isFormatIpv4.ts +4 -4
  124. package/src/internal/_isFormatIpv6.ts +4 -4
  125. package/src/internal/_isFormatIri.ts +3 -3
  126. package/src/internal/_isFormatIriReference.ts +4 -4
  127. package/src/internal/_isFormatJsonPointer.ts +3 -3
  128. package/src/internal/_isFormatPassword.ts +1 -1
  129. package/src/internal/_isFormatRegex.ts +8 -8
  130. package/src/internal/_isFormatRelativeJsonPointer.ts +4 -4
  131. package/src/internal/_isFormatTime.ts +4 -4
  132. package/src/internal/_isFormatUri.ts +6 -6
  133. package/src/internal/_isFormatUriReference.ts +5 -5
  134. package/src/internal/_isFormatUriTemplate.ts +4 -4
  135. package/src/internal/_isFormatUrl.ts +4 -4
  136. package/src/internal/_isFormatUuid.ts +3 -3
  137. package/src/internal/_isTypeFloat.ts +5 -5
  138. package/src/internal/_isTypeInt32.ts +5 -5
  139. package/src/internal/_isTypeInt64.ts +5 -5
  140. package/src/internal/_isTypeUint32.ts +5 -5
  141. package/src/internal/_isTypeUint64.ts +5 -5
  142. package/src/internal/_isUniqueItems.ts +159 -159
  143. package/src/internal/_jsonStringifyNumber.ts +12 -12
  144. package/src/internal/_jsonStringifyRest.ts +3 -3
  145. package/src/internal/_jsonStringifyString.ts +42 -42
  146. package/src/internal/_jsonStringifyTail.ts +2 -2
  147. package/src/internal/_llmApplicationFinalize.ts +20 -20
  148. package/src/internal/_miscCloneAny.ts +46 -46
  149. package/src/internal/_notationAny.ts +37 -37
  150. package/src/internal/_notationCamel.ts +13 -13
  151. package/src/internal/_notationPascal.ts +8 -8
  152. package/src/internal/_notationSnake.ts +43 -43
  153. package/src/internal/_randomArray.ts +21 -21
  154. package/src/internal/_randomBigint.ts +6 -6
  155. package/src/internal/_randomBoolean.ts +1 -1
  156. package/src/internal/_randomFormatByte.ts +3 -3
  157. package/src/internal/_randomFormatDate.ts +18 -18
  158. package/src/internal/_randomFormatDatetime.ts +16 -16
  159. package/src/internal/_randomFormatDuration.ts +27 -27
  160. package/src/internal/_randomFormatEmail.ts +11 -11
  161. package/src/internal/_randomFormatHostname.ts +6 -6
  162. package/src/internal/_randomFormatIdnEmail.ts +3 -3
  163. package/src/internal/_randomFormatIdnHostname.ts +3 -3
  164. package/src/internal/_randomFormatIpv4.ts +11 -11
  165. package/src/internal/_randomFormatIpv6.ts +11 -11
  166. package/src/internal/_randomFormatIri.ts +3 -3
  167. package/src/internal/_randomFormatIriReference.ts +3 -3
  168. package/src/internal/_randomFormatJsonPointer.ts +7 -7
  169. package/src/internal/_randomFormatPassword.ts +8 -8
  170. package/src/internal/_randomFormatRegex.ts +4 -4
  171. package/src/internal/_randomFormatRelativeJsonPointer.ts +8 -8
  172. package/src/internal/_randomFormatTime.ts +14 -14
  173. package/src/internal/_randomFormatUri.ts +3 -3
  174. package/src/internal/_randomFormatUriReference.ts +3 -3
  175. package/src/internal/_randomFormatUriTemplate.ts +3 -3
  176. package/src/internal/_randomFormatUrl.ts +11 -11
  177. package/src/internal/_randomFormatUuid.ts +6 -6
  178. package/src/internal/_randomInteger.ts +47 -47
  179. package/src/internal/_randomNumber.ts +74 -74
  180. package/src/internal/_randomPattern.ts +10 -10
  181. package/src/internal/_randomPick.ts +9 -9
  182. package/src/internal/_randomString.ts +24 -24
  183. package/src/internal/_throwTypeGuardError.ts +5 -5
  184. package/src/internal/_validateReport.ts +13 -13
  185. package/src/internal/private/__notationCapitalize.ts +2 -2
  186. package/src/internal/private/__notationUnsnake.ts +24 -24
  187. package/src/json.ts +752 -752
  188. package/src/llm.ts +481 -481
  189. package/src/misc.ts +658 -658
  190. package/src/module.ts +937 -937
  191. package/src/notations.ts +827 -827
  192. package/src/programmers/AssertProgrammer.ts +454 -454
  193. package/src/programmers/CheckerProgrammer.ts +1617 -1617
  194. package/src/programmers/FeatureProgrammer.ts +622 -622
  195. package/src/programmers/ImportProgrammer.ts +185 -185
  196. package/src/programmers/IsProgrammer.ts +273 -273
  197. package/src/programmers/RandomProgrammer.ts +1190 -1190
  198. package/src/programmers/TypiaProgrammer.ts +174 -174
  199. package/src/programmers/ValidateProgrammer.ts +439 -439
  200. package/src/programmers/functional/FunctionalAssertFunctionProgrammer.ts +153 -153
  201. package/src/programmers/functional/FunctionalAssertParametersProgrammer.ts +125 -125
  202. package/src/programmers/functional/FunctionalAssertReturnProgrammer.ts +115 -115
  203. package/src/programmers/functional/FunctionalIsFunctionProgrammer.ts +72 -72
  204. package/src/programmers/functional/FunctionalIsParametersProgrammer.ts +113 -113
  205. package/src/programmers/functional/FunctionalIsReturnProgrammer.ts +116 -116
  206. package/src/programmers/functional/FunctionalValidateFunctionProgrammer.ts +119 -119
  207. package/src/programmers/functional/FunctionalValidateParametersProgrammer.ts +274 -274
  208. package/src/programmers/functional/FunctionalValidateReturnProgrammer.ts +135 -135
  209. package/src/programmers/functional/internal/FunctionalGeneralProgrammer.ts +34 -34
  210. package/src/programmers/helpers/AtomicPredicator.ts +35 -35
  211. package/src/programmers/helpers/CloneJoiner.ts +143 -143
  212. package/src/programmers/helpers/FunctionProgrammer.ts +67 -67
  213. package/src/programmers/helpers/HttpMetadataUtil.ts +21 -21
  214. package/src/programmers/helpers/ICheckEntry.ts +13 -13
  215. package/src/programmers/helpers/IExpressionEntry.ts +12 -12
  216. package/src/programmers/helpers/NotationJoiner.ts +144 -144
  217. package/src/programmers/helpers/OptionPredicator.ts +15 -15
  218. package/src/programmers/helpers/ProtobufUtil.ts +228 -228
  219. package/src/programmers/helpers/ProtobufWire.ts +34 -34
  220. package/src/programmers/helpers/PruneJoiner.ts +148 -148
  221. package/src/programmers/helpers/RandomJoiner.ts +168 -168
  222. package/src/programmers/helpers/StringifyJoinder.ts +115 -115
  223. package/src/programmers/helpers/StringifyPredicator.ts +13 -13
  224. package/src/programmers/helpers/UnionExplorer.ts +372 -372
  225. package/src/programmers/helpers/UnionPredicator.ts +79 -79
  226. package/src/programmers/helpers/disable_function_programmer_declare.ts +32 -32
  227. package/src/programmers/http/HttpAssertFormDataProgrammer.ts +99 -99
  228. package/src/programmers/http/HttpAssertHeadersProgrammer.ts +99 -99
  229. package/src/programmers/http/HttpAssertQueryProgrammer.ts +105 -105
  230. package/src/programmers/http/HttpFormDataProgrammer.ts +308 -308
  231. package/src/programmers/http/HttpHeadersProgrammer.ts +400 -400
  232. package/src/programmers/http/HttpIsFormDataProgrammer.ts +108 -108
  233. package/src/programmers/http/HttpIsHeadersProgrammer.ts +108 -108
  234. package/src/programmers/http/HttpIsQueryProgrammer.ts +114 -114
  235. package/src/programmers/http/HttpParameterProgrammer.ts +115 -115
  236. package/src/programmers/http/HttpQueryProgrammer.ts +336 -336
  237. package/src/programmers/http/HttpValidateFormDataProgrammer.ts +92 -92
  238. package/src/programmers/http/HttpValidateHeadersProgrammer.ts +92 -92
  239. package/src/programmers/http/HttpValidateQueryProgrammer.ts +98 -98
  240. package/src/programmers/internal/check_array_length.ts +47 -47
  241. package/src/programmers/internal/check_bigint.ts +50 -50
  242. package/src/programmers/internal/check_dynamic_key.ts +201 -201
  243. package/src/programmers/internal/check_dynamic_properties.ts +208 -208
  244. package/src/programmers/internal/check_everything.ts +23 -23
  245. package/src/programmers/internal/check_native.ts +27 -27
  246. package/src/programmers/internal/check_number.ts +112 -112
  247. package/src/programmers/internal/check_object.ts +75 -75
  248. package/src/programmers/internal/check_string.ts +50 -50
  249. package/src/programmers/internal/check_template.ts +48 -48
  250. package/src/programmers/internal/check_union_array_like.ts +335 -335
  251. package/src/programmers/internal/decode_union_object.ts +116 -116
  252. package/src/programmers/internal/feature_object_entries.ts +61 -61
  253. package/src/programmers/internal/json_schema_alias.ts +47 -47
  254. package/src/programmers/internal/json_schema_array.ts +45 -45
  255. package/src/programmers/internal/json_schema_bigint.ts +15 -15
  256. package/src/programmers/internal/json_schema_boolean.ts +15 -15
  257. package/src/programmers/internal/json_schema_constant.ts +26 -26
  258. package/src/programmers/internal/json_schema_description.ts +12 -12
  259. package/src/programmers/internal/json_schema_discriminator.ts +35 -35
  260. package/src/programmers/internal/json_schema_escaped.ts +82 -82
  261. package/src/programmers/internal/json_schema_native.ts +33 -33
  262. package/src/programmers/internal/json_schema_number.ts +15 -15
  263. package/src/programmers/internal/json_schema_object.ts +158 -158
  264. package/src/programmers/internal/json_schema_plugin.ts +18 -18
  265. package/src/programmers/internal/json_schema_station.ts +182 -182
  266. package/src/programmers/internal/json_schema_string.ts +15 -15
  267. package/src/programmers/internal/json_schema_template.ts +55 -55
  268. package/src/programmers/internal/json_schema_title.ts +20 -20
  269. package/src/programmers/internal/json_schema_tuple.ts +35 -35
  270. package/src/programmers/internal/metadata_to_pattern.ts +42 -42
  271. package/src/programmers/internal/postfix_of_tuple.ts +5 -5
  272. package/src/programmers/internal/prune_object_properties.ts +71 -71
  273. package/src/programmers/internal/stringify_dynamic_properties.ts +162 -162
  274. package/src/programmers/internal/stringify_native.ts +7 -7
  275. package/src/programmers/internal/stringify_regular_properties.ts +81 -81
  276. package/src/programmers/internal/template_to_pattern.ts +23 -23
  277. package/src/programmers/internal/wrap_metadata_rest_tuple.ts +23 -23
  278. package/src/programmers/json/JsonApplicationProgrammer.ts +279 -279
  279. package/src/programmers/json/JsonAssertParseProgrammer.ts +113 -113
  280. package/src/programmers/json/JsonAssertStringifyProgrammer.ts +115 -115
  281. package/src/programmers/json/JsonIsParseProgrammer.ts +114 -114
  282. package/src/programmers/json/JsonIsStringifyProgrammer.ts +108 -108
  283. package/src/programmers/json/JsonSchemasProgrammer.ts +91 -91
  284. package/src/programmers/json/JsonStringifyProgrammer.ts +1124 -1124
  285. package/src/programmers/json/JsonValidateParseProgrammer.ts +105 -105
  286. package/src/programmers/json/JsonValidateStringifyProgrammer.ts +124 -124
  287. package/src/programmers/llm/LlmApplicationOfValidateProgrammer.ts +104 -104
  288. package/src/programmers/llm/LlmApplicationProgrammer.ts +327 -327
  289. package/src/programmers/llm/LlmModelPredicator.ts +127 -127
  290. package/src/programmers/llm/LlmParametersProgrammer.ts +93 -93
  291. package/src/programmers/llm/LlmSchemaProgrammer.ts +192 -192
  292. package/src/programmers/misc/MiscAssertCloneProgrammer.ts +95 -95
  293. package/src/programmers/misc/MiscAssertPruneProgrammer.ts +116 -116
  294. package/src/programmers/misc/MiscCloneProgrammer.ts +1032 -1032
  295. package/src/programmers/misc/MiscIsCloneProgrammer.ts +99 -99
  296. package/src/programmers/misc/MiscIsPruneProgrammer.ts +97 -97
  297. package/src/programmers/misc/MiscLiteralsProgrammer.ts +80 -80
  298. package/src/programmers/misc/MiscPruneProgrammer.ts +728 -728
  299. package/src/programmers/misc/MiscValidateCloneProgrammer.ts +111 -111
  300. package/src/programmers/misc/MiscValidatePruneProgrammer.ts +113 -113
  301. package/src/programmers/notations/NotationAssertGeneralProgrammer.ts +101 -101
  302. package/src/programmers/notations/NotationGeneralProgrammer.ts +984 -984
  303. package/src/programmers/notations/NotationIsGeneralProgrammer.ts +105 -105
  304. package/src/programmers/notations/NotationValidateGeneralProgrammer.ts +119 -119
  305. package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +98 -98
  306. package/src/programmers/protobuf/ProtobufAssertEncodeProgrammer.ts +102 -102
  307. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +654 -654
  308. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +945 -945
  309. package/src/programmers/protobuf/ProtobufIsDecodeProgrammer.ts +109 -109
  310. package/src/programmers/protobuf/ProtobufIsEncodeProgrammer.ts +98 -98
  311. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +179 -179
  312. package/src/programmers/protobuf/ProtobufValidateDecodeProgrammer.ts +92 -92
  313. package/src/programmers/protobuf/ProtobufValidateEncodeProgrammer.ts +119 -119
  314. package/src/protobuf.ts +868 -868
  315. package/src/reflect.ts +57 -57
  316. package/src/schemas/json/IJsonApplication.ts +73 -73
  317. package/src/schemas/json/IJsonSchemaCollection.ts +29 -29
  318. package/src/schemas/json/__IJsonApplication.ts +63 -63
  319. package/src/schemas/llm/ILlmApplicationOfValidate.ts +55 -55
  320. package/src/schemas/llm/ILlmFunctionOfValidate.ts +39 -39
  321. package/src/schemas/metadata/IJsDocTagInfo.ts +10 -10
  322. package/src/schemas/metadata/IMetadata.ts +35 -35
  323. package/src/schemas/metadata/IMetadataAlias.ts +6 -6
  324. package/src/schemas/metadata/IMetadataAliasType.ts +12 -12
  325. package/src/schemas/metadata/IMetadataApplication.ts +7 -7
  326. package/src/schemas/metadata/IMetadataArray.ts +6 -6
  327. package/src/schemas/metadata/IMetadataArrayType.ts +10 -10
  328. package/src/schemas/metadata/IMetadataAtomic.ts +6 -6
  329. package/src/schemas/metadata/IMetadataComponents.ts +11 -11
  330. package/src/schemas/metadata/IMetadataConstant.ts +18 -18
  331. package/src/schemas/metadata/IMetadataConstantValue.ts +11 -11
  332. package/src/schemas/metadata/IMetadataDictionary.ts +11 -11
  333. package/src/schemas/metadata/IMetadataEscaped.ts +6 -6
  334. package/src/schemas/metadata/IMetadataFunction.ts +8 -8
  335. package/src/schemas/metadata/IMetadataMap.ts +8 -8
  336. package/src/schemas/metadata/IMetadataNative.ts +6 -6
  337. package/src/schemas/metadata/IMetadataObject.ts +6 -6
  338. package/src/schemas/metadata/IMetadataObjectType.ts +13 -13
  339. package/src/schemas/metadata/IMetadataParameter.ts +9 -9
  340. package/src/schemas/metadata/IMetadataProperty.ts +9 -9
  341. package/src/schemas/metadata/IMetadataSet.ts +7 -7
  342. package/src/schemas/metadata/IMetadataTemplate.ts +7 -7
  343. package/src/schemas/metadata/IMetadataTuple.ts +6 -6
  344. package/src/schemas/metadata/IMetadataTupleType.ts +10 -10
  345. package/src/schemas/metadata/IMetadataTypeTag.ts +16 -16
  346. package/src/schemas/metadata/Metadata.ts +669 -669
  347. package/src/schemas/metadata/MetadataAlias.ts +46 -46
  348. package/src/schemas/metadata/MetadataAliasType.ts +63 -63
  349. package/src/schemas/metadata/MetadataApplication.ts +44 -44
  350. package/src/schemas/metadata/MetadataArray.ts +49 -49
  351. package/src/schemas/metadata/MetadataArrayType.ts +57 -57
  352. package/src/schemas/metadata/MetadataAtomic.ts +87 -87
  353. package/src/schemas/metadata/MetadataComponents.ts +98 -98
  354. package/src/schemas/metadata/MetadataConstant.ts +34 -34
  355. package/src/schemas/metadata/MetadataConstantValue.ts +62 -62
  356. package/src/schemas/metadata/MetadataEscaped.ts +51 -51
  357. package/src/schemas/metadata/MetadataFunction.ts +49 -49
  358. package/src/schemas/metadata/MetadataMap.ts +48 -48
  359. package/src/schemas/metadata/MetadataNative.ts +44 -44
  360. package/src/schemas/metadata/MetadataObject.ts +48 -48
  361. package/src/schemas/metadata/MetadataObjectType.ts +149 -149
  362. package/src/schemas/metadata/MetadataParameter.ts +54 -54
  363. package/src/schemas/metadata/MetadataProperty.ts +59 -59
  364. package/src/schemas/metadata/MetadataSet.ts +45 -45
  365. package/src/schemas/metadata/MetadataTemplate.ts +80 -80
  366. package/src/schemas/metadata/MetadataTuple.ts +32 -32
  367. package/src/schemas/metadata/MetadataTupleType.ts +67 -67
  368. package/src/schemas/protobuf/IProtobufProperty.ts +6 -6
  369. package/src/schemas/protobuf/IProtobufPropertyType.ts +37 -37
  370. package/src/schemas/protobuf/IProtobufSchema.ts +50 -50
  371. package/src/tags/Constant.ts +15 -15
  372. package/src/tags/ContentMediaType.ts +10 -10
  373. package/src/tags/Default.ts +22 -22
  374. package/src/tags/Example.ts +24 -24
  375. package/src/tags/Examples.ts +16 -16
  376. package/src/tags/ExclusiveMaximum.ts +25 -25
  377. package/src/tags/ExclusiveMinimum.ts +25 -25
  378. package/src/tags/Format.ts +50 -50
  379. package/src/tags/JsonSchemaPlugin.ts +8 -8
  380. package/src/tags/MaxItems.ts +12 -12
  381. package/src/tags/MaxLength.ts +12 -12
  382. package/src/tags/Maximum.ts +19 -19
  383. package/src/tags/MinItems.ts +12 -12
  384. package/src/tags/MinLength.ts +12 -12
  385. package/src/tags/Minimum.ts +19 -19
  386. package/src/tags/MultipleOf.ts +21 -21
  387. package/src/tags/Pattern.ts +31 -31
  388. package/src/tags/Sequence.ts +10 -10
  389. package/src/tags/TagBase.ts +82 -82
  390. package/src/tags/Type.ts +32 -32
  391. package/src/tags/UniqueItems.ts +14 -14
  392. package/src/tags/index.ts +21 -21
  393. package/src/tags/internal/FormatCheatSheet.ts +73 -73
  394. package/src/transform.ts +35 -35
  395. package/src/transformers/CallExpressionTransformer.ts +547 -547
  396. package/src/transformers/FileTransformer.ts +136 -136
  397. package/src/transformers/IProgrammerProps.ts +11 -11
  398. package/src/transformers/ITransformOptions.ts +62 -62
  399. package/src/transformers/ITransformProps.ts +9 -9
  400. package/src/transformers/ITypiaContext.ts +18 -18
  401. package/src/transformers/ImportTransformer.ts +81 -81
  402. package/src/transformers/NodeTransformer.ts +17 -17
  403. package/src/transformers/TransformerError.ts +60 -60
  404. package/src/transformers/features/AssertTransformer.ts +24 -24
  405. package/src/transformers/features/CreateAssertTransformer.ts +24 -24
  406. package/src/transformers/features/CreateIsTransformer.ts +18 -18
  407. package/src/transformers/features/CreateRandomTransformer.ts +43 -43
  408. package/src/transformers/features/CreateValidateTransformer.ts +18 -18
  409. package/src/transformers/features/IsTransformer.ts +18 -18
  410. package/src/transformers/features/RandomTransformer.ts +41 -41
  411. package/src/transformers/features/ValidateTransformer.ts +18 -18
  412. package/src/transformers/features/functional/FunctionalGenericTransformer.ts +57 -57
  413. package/src/transformers/features/http/CreateHttpAssertFormDataTransformer.ts +13 -13
  414. package/src/transformers/features/http/CreateHttpAssertHeadersTransformer.ts +13 -13
  415. package/src/transformers/features/http/CreateHttpAssertQueryTransformer.ts +13 -13
  416. package/src/transformers/features/http/CreateHttpFormDataTransformer.ts +13 -13
  417. package/src/transformers/features/http/CreateHttpHeadersTransformer.ts +13 -13
  418. package/src/transformers/features/http/CreateHttpIsFormDataTransformer.ts +13 -13
  419. package/src/transformers/features/http/CreateHttpIsHeadersTransformer.ts +13 -13
  420. package/src/transformers/features/http/CreateHttpIsQueryTransformer.ts +13 -13
  421. package/src/transformers/features/http/CreateHttpParameterTransformer.ts +13 -13
  422. package/src/transformers/features/http/CreateHttpQueryTransformer.ts +13 -13
  423. package/src/transformers/features/http/CreateHttpValidateFormDataTransformer.ts +13 -13
  424. package/src/transformers/features/http/CreateHttpValidateHeadersTransformer.ts +13 -13
  425. package/src/transformers/features/http/CreateHttpValidateQueryTransformer.ts +13 -13
  426. package/src/transformers/features/http/HttpAssertFormDataTransformer.ts +13 -13
  427. package/src/transformers/features/http/HttpAssertHeadersTransformer.ts +13 -13
  428. package/src/transformers/features/http/HttpAssertQueryTransformer.ts +13 -13
  429. package/src/transformers/features/http/HttpFormDataTransformer.ts +13 -13
  430. package/src/transformers/features/http/HttpHeadersTransformer.ts +13 -13
  431. package/src/transformers/features/http/HttpIsFormDataTransformer.ts +13 -13
  432. package/src/transformers/features/http/HttpIsHeadersTransformer.ts +13 -13
  433. package/src/transformers/features/http/HttpIsQueryTransformer.ts +13 -13
  434. package/src/transformers/features/http/HttpParameterTransformer.ts +13 -13
  435. package/src/transformers/features/http/HttpQueryTransformer.ts +13 -13
  436. package/src/transformers/features/http/HttpValidateFormDataTransformer.ts +13 -13
  437. package/src/transformers/features/http/HttpValidateHeadersTransformer.ts +13 -13
  438. package/src/transformers/features/http/HttpValidateQueryTransformer.ts +13 -13
  439. package/src/transformers/features/json/JsonApplicationTransformer.ts +105 -105
  440. package/src/transformers/features/json/JsonAssertParseTransformer.ts +13 -13
  441. package/src/transformers/features/json/JsonAssertStringifyTransformer.ts +13 -13
  442. package/src/transformers/features/json/JsonCreateAssertParseTransformer.ts +13 -13
  443. package/src/transformers/features/json/JsonCreateAssertStringifyTransformer.ts +13 -13
  444. package/src/transformers/features/json/JsonCreateIsParseTransformer.ts +13 -13
  445. package/src/transformers/features/json/JsonCreateIsStringifyTransformer.ts +13 -13
  446. package/src/transformers/features/json/JsonCreateStringifyTransformer.ts +13 -13
  447. package/src/transformers/features/json/JsonCreateValidateParseTransformer.ts +13 -13
  448. package/src/transformers/features/json/JsonCreateValidateStringifyProgrammer.ts +13 -13
  449. package/src/transformers/features/json/JsonIsParseTransformer.ts +13 -13
  450. package/src/transformers/features/json/JsonIsStringifyTransformer.ts +13 -13
  451. package/src/transformers/features/json/JsonSchemasTransformer.ts +145 -143
  452. package/src/transformers/features/json/JsonStringifyTransformer.ts +13 -13
  453. package/src/transformers/features/json/JsonValidateParseTransformer.ts +13 -13
  454. package/src/transformers/features/json/JsonValidateStringifyTransformer.ts +13 -13
  455. package/src/transformers/features/llm/LlmApplicationOfValidateTransformer.ts +129 -121
  456. package/src/transformers/features/llm/LlmApplicationTransformer.ts +125 -118
  457. package/src/transformers/features/llm/LlmParametersTransformer.ts +102 -94
  458. package/src/transformers/features/llm/LlmSchemaTransformer.ts +143 -135
  459. package/src/transformers/features/misc/MiscAssertCloneTransformer.ts +13 -13
  460. package/src/transformers/features/misc/MiscAssertPruneTransformer.ts +13 -13
  461. package/src/transformers/features/misc/MiscCloneTransformer.ts +13 -13
  462. package/src/transformers/features/misc/MiscCreateAssertCloneTransformer.ts +13 -13
  463. package/src/transformers/features/misc/MiscCreateAssertPruneTransformer.ts +13 -13
  464. package/src/transformers/features/misc/MiscCreateCloneTransformer.ts +13 -13
  465. package/src/transformers/features/misc/MiscCreateIsCloneTransformer.ts +13 -13
  466. package/src/transformers/features/misc/MiscCreateIsPruneTransformer.ts +13 -13
  467. package/src/transformers/features/misc/MiscCreatePruneTransformer.ts +13 -13
  468. package/src/transformers/features/misc/MiscCreateValidateCloneTransformer.ts +13 -13
  469. package/src/transformers/features/misc/MiscCreateValidatePruneTransformer.ts +13 -13
  470. package/src/transformers/features/misc/MiscIsCloneTransformer.ts +13 -13
  471. package/src/transformers/features/misc/MiscIsPruneTransformer.ts +13 -13
  472. package/src/transformers/features/misc/MiscLiteralsTransformer.ts +35 -35
  473. package/src/transformers/features/misc/MiscPruneTransformer.ts +13 -13
  474. package/src/transformers/features/misc/MiscValidateCloneTransformer.ts +13 -13
  475. package/src/transformers/features/misc/MiscValidatePruneTransformer.ts +13 -13
  476. package/src/transformers/features/notations/NotationAssertGeneralTransformer.ts +20 -20
  477. package/src/transformers/features/notations/NotationCreateAssertGeneralTransformer.ts +20 -20
  478. package/src/transformers/features/notations/NotationCreateGeneralTransformer.ts +20 -20
  479. package/src/transformers/features/notations/NotationCreateIsGeneralTransformer.ts +20 -20
  480. package/src/transformers/features/notations/NotationCreateValidateGeneralTransformer.ts +20 -20
  481. package/src/transformers/features/notations/NotationGeneralTransformer.ts +18 -18
  482. package/src/transformers/features/notations/NotationIsGeneralTransformer.ts +20 -20
  483. package/src/transformers/features/notations/NotationValidateGeneralTransformer.ts +20 -20
  484. package/src/transformers/features/protobuf/ProtobufAssertDecodeTransformer.ts +13 -13
  485. package/src/transformers/features/protobuf/ProtobufAssertEncodeTransformer.ts +13 -13
  486. package/src/transformers/features/protobuf/ProtobufCreateAssertDecodeTransformer.ts +13 -13
  487. package/src/transformers/features/protobuf/ProtobufCreateAssertEncodeTransformer.ts +13 -13
  488. package/src/transformers/features/protobuf/ProtobufCreateDecodeTransformer.ts +13 -13
  489. package/src/transformers/features/protobuf/ProtobufCreateEncodeTransformer.ts +13 -13
  490. package/src/transformers/features/protobuf/ProtobufCreateIsDecodeTransformer.ts +13 -13
  491. package/src/transformers/features/protobuf/ProtobufCreateIsEncodeTransformer.ts +13 -13
  492. package/src/transformers/features/protobuf/ProtobufCreateValidateDecodeTransformer.ts +13 -13
  493. package/src/transformers/features/protobuf/ProtobufCreateValidateEncodeTransformer.ts +13 -13
  494. package/src/transformers/features/protobuf/ProtobufDecodeTransformer.ts +13 -13
  495. package/src/transformers/features/protobuf/ProtobufEncodeTransformer.ts +13 -13
  496. package/src/transformers/features/protobuf/ProtobufIsDecodeTransformer.ts +13 -13
  497. package/src/transformers/features/protobuf/ProtobufIsEncodeTransformer.ts +13 -13
  498. package/src/transformers/features/protobuf/ProtobufMessageTransformer.ts +35 -35
  499. package/src/transformers/features/protobuf/ProtobufValidateDecodeTransformer.ts +13 -13
  500. package/src/transformers/features/protobuf/ProtobufValidateEncodeTransformer.ts +13 -13
  501. package/src/transformers/features/reflect/ReflectMetadataTransformer.ts +69 -69
  502. package/src/transformers/features/reflect/ReflectNameTransformer.ts +82 -82
  503. package/src/transformers/internal/GenericTransformer.ts +101 -101
  504. package/src/typings/Atomic.ts +13 -13
  505. package/src/typings/ClassProperties.ts +5 -5
  506. package/src/typings/Customizable.ts +5 -5
  507. package/src/typings/Equal.ts +18 -18
  508. package/src/typings/IsTuple.ts +9 -9
  509. package/src/typings/NativeClass.ts +23 -23
  510. package/src/typings/OmitNever.ts +3 -3
  511. package/src/typings/ProtobufAtomic.ts +19 -19
  512. package/src/typings/SpecialFields.ts +3 -3
  513. package/src/typings/ValidationPipe.ts +9 -9
  514. package/src/typings/ValueOf.ts +20 -20
  515. package/src/typings/Writable.ts +11 -11
  516. package/src/utils/ArrayUtil.ts +41 -41
  517. package/src/utils/Escaper.ts +50 -50
  518. package/src/utils/MapUtil.ts +14 -14
  519. package/src/utils/NamingConvention.ts +94 -94
  520. package/src/utils/PatternUtil.ts +29 -29
  521. package/src/utils/ProtobufNameEncoder.ts +32 -32
  522. package/src/utils/Singleton.ts +16 -16
  523. package/src/utils/StringUtil.ts +16 -16
package/src/notations.ts CHANGED
@@ -1,827 +1,827 @@
1
- import { CamelCase } from "./CamelCase";
2
- import { IValidation } from "./IValidation";
3
- import { PascalCase } from "./PascalCase";
4
- import { SnakeCase } from "./SnakeCase";
5
- import { TypeGuardError } from "./TypeGuardError";
6
-
7
- /* ===========================================================
8
- NOTATIONS (NAMING CONVENTIONS)
9
- - CAMEL CASE
10
- - PASCAL CASE
11
- - SNAKE CASE
12
- - FACTORY FUNCTIONS
13
- ==============================================================
14
- CAMEL CASE
15
- ----------------------------------------------------------- */
16
- /**
17
- * Convert to camel case.
18
- *
19
- * Convert every property names of nested objects to follow the camel case convention.
20
- *
21
- * For reference, this `typia.notations.camel()` function does not validate the input value
22
- * type. It just believes that the input value is following the type `T`. Therefore,
23
- * if you can't ensure the input value type, it would be better to call one of them below:
24
- *
25
- * - {@link assertCamel}
26
- * - {@link isCamel}
27
- * - {@link validateCamel}
28
- *
29
- * @template T Type of the input value
30
- * @param input Target object
31
- * @returns Camel case object
32
- *
33
- * @author Jeongho Nam - https://github.com/samchon
34
- */
35
- export function camel<T>(input: T): CamelCase<T>;
36
-
37
- /**
38
- * @internal
39
- */
40
- export function camel(): never {
41
- return halt("camel");
42
- }
43
-
44
- /**
45
- * Converts to camel case with type assertion.
46
- *
47
- * Convert every property names of nested objects to follow the camel case convention.
48
- * If the input value does not follow the type `T`, it throws {@link TypeGuardError}.
49
- *
50
- * @template T Type of the input value
51
- * @param input Target object
52
- * @param errorFactory Custom error factory. Default is `TypeGuardError`
53
- * @returns Camel case object
54
- *
55
- * @author Jeongho Nam - https://github.com/samchon
56
- */
57
- export function assertCamel<T>(
58
- input: T,
59
- errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
60
- ): CamelCase<T>;
61
-
62
- /**
63
- * Converts to camel case with type assertion.
64
- *
65
- * Convert every property names of nested objects to follow the camel case convention.
66
- * If the input value does not follow the type `T`, it throws {@link TypeGuardError}.
67
- *
68
- * @template T Type of the input value
69
- * @param input Target object
70
- * @param errorFactory Custom error factory. Default is `TypeGuardError`
71
- * @returns Camel case object
72
- *
73
- * @author Jeongho Nam - https://github.com/samchon
74
- */
75
- export function assertCamel<T>(
76
- input: unknown,
77
- errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
78
- ): CamelCase<T>;
79
-
80
- /**
81
- * @internal
82
- */
83
- export function assertCamel(): never {
84
- return halt("assertCamel");
85
- }
86
-
87
- /**
88
- * Converts to camel case with type checking.
89
- *
90
- * Convert every property names of nested objects to follow the camel case convention.
91
- * If the input value does not follow the type `T`, it returns `null` value instead.
92
- *
93
- * @template T Type of the input value
94
- * @param input Target object
95
- * @returns Camel case object when exact type, otherwise null
96
- *
97
- * @author Jeongho Nam - https://github.com/samchon
98
- */
99
- export function isCamel<T>(input: T): CamelCase<T> | null;
100
-
101
- /**
102
- * Converts to camel case with type checking.
103
- *
104
- * Convert every property names of nested objects to follow the camel case convention.
105
- * If the input value does not follow the type `T`, it returns `null` value instead.
106
- *
107
- * @template T Type of the input value
108
- * @param input Target object
109
- * @returns Camel case object when exact type, otherwise null
110
- *
111
- * @author Jeongho Nam - https://github.com/samchon
112
- */
113
- export function isCamel<T>(input: unknown): CamelCase<T> | null;
114
-
115
- /**
116
- * @internal
117
- */
118
- export function isCamel(): never {
119
- return halt("isCamel");
120
- }
121
-
122
- /**
123
- * Converts to camel case with type validation.
124
- *
125
- * Convert every property names of nested objects to follow the camel case convention.
126
- * If the input value does not follow the type `T`, it returns {@link IValidation.Failure}
127
- * object. Otherwise, there's no problem on the input value, camel cased converted data
128
- * would be stored in the `data` property of the output {@link IValidation.Success} object.
129
- *
130
- * @template T Type of the input value
131
- * @param input Target object
132
- * @returns Validation result with camel case object
133
- *
134
- * @author Jeongho Nam - https://github.com/samchon
135
- */
136
- export function validateCamel<T>(input: T): IValidation<CamelCase<T>>;
137
-
138
- /**
139
- * Converts to camel case with type validation.
140
- *
141
- * Convert every property names of nested objects to follow the camel case convention.
142
- * If the input value does not follow the type `T`, it returns {@link IValidation.Failure}
143
- * object. Otherwise, there's no problem on the input value, camel cased converted data
144
- * would be stored in the `data` property of the output {@link IValidation.Success} object.
145
- *
146
- * @template T Type of the input value
147
- * @param input Target object
148
- * @returns Validation result with camel case object
149
- *
150
- * @author Jeongho Nam - https://github.com/samchon
151
- */
152
- export function validateCamel<T>(input: unknown): IValidation<CamelCase<T>>;
153
-
154
- /**
155
- * @internal
156
- */
157
- export function validateCamel(): never {
158
- return halt("validateCamel");
159
- }
160
-
161
- /* -----------------------------------------------------------
162
- PASCAL CASE
163
- ----------------------------------------------------------- */
164
- /**
165
- * Convert to pascal case.
166
- *
167
- * Convert every property names of nested objects to follow the pascal case convention.
168
- *
169
- * For reference, this `typia.notations.pascal()` function does not validate the input value
170
- * type. It just believes that the input value is following the type `T`. Therefore,
171
- * if you can't ensure the input value type, it would be better to call one of them below:
172
- *
173
- * - {@link assertPascal}
174
- * - {@link isPascal}
175
- * - {@link validatePascal}
176
- *
177
- * @template T Type of the input value
178
- * @param input Target object
179
- * @returns Pascal case object
180
- *
181
- * @author Jeongho Nam - https://github.com/samchon
182
- */
183
- export function pascal<T>(input: T): PascalCase<T>;
184
-
185
- /**
186
- * @internal
187
- */
188
- export function pascal(): never {
189
- return halt("pascal");
190
- }
191
-
192
- /**
193
- * Converts to pascal case with type assertion.
194
- *
195
- * Convert every property names of nested objects to follow the pascal case convention.
196
- * If the input value does not follow the type `T`, it throws {@link TypeGuardError}.
197
- *
198
- * @template T Type of the input value
199
- * @param input Target object
200
- * @param errorFactory Custom error factory. Default is `TypeGuardError`
201
- * @returns Pascal case object
202
- *
203
- * @author Jeongho Nam - https://github.com/samchon
204
- */
205
- export function assertPascal<T>(
206
- input: T,
207
- errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
208
- ): PascalCase<T>;
209
-
210
- /**
211
- * Converts to pascal case with type assertion.
212
- *
213
- * Convert every property names of nested objects to follow the pascal case convention.
214
- * If the input value does not follow the type `T`, it throws {@link TypeGuardError}.
215
- *
216
- * @template T Type of the input value
217
- * @param input Target object
218
- * @param errorFactory Custom error factory. Default is `TypeGuardError`
219
- * @returns Pascal case object
220
- *
221
- * @author Jeongho Nam - https://github.com/samchon
222
- */
223
- export function assertPascal<T>(
224
- input: unknown,
225
- errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
226
- ): PascalCase<T>;
227
-
228
- /**
229
- * @internal
230
- */
231
- export function assertPascal(): never {
232
- return halt("assertPascal");
233
- }
234
-
235
- /**
236
- * Converts to pascal case with type checking.
237
- *
238
- * Convert every property names of nested objects to follow the pascal case convention.
239
- * If the input value does not follow the type `T`, it returns `null` value instead.
240
- *
241
- * @template T Type of the input value
242
- * @param input Target object
243
- * @returns Pascal case object when exact type, otherwise null
244
- *
245
- * @author Jeongho Nam - https://github.com/samchon
246
- */
247
- export function isPascal<T>(input: T): PascalCase<T> | null;
248
-
249
- /**
250
- * Converts to pascal case with type checking.
251
- *
252
- * Convert every property names of nested objects to follow the pascal case convention.
253
- * If the input value does not follow the type `T`, it returns `null` value instead.
254
- *
255
- * @template T Type of the input value
256
- * @param input Target object
257
- * @returns Pascal case object when exact type, otherwise null
258
- *
259
- * @author Jeongho Nam - https://github.com/samchon
260
- */
261
- export function isPascal<T>(input: unknown): PascalCase<T> | null;
262
-
263
- /**
264
- * @internal
265
- */
266
- export function isPascal(): never {
267
- return halt("isPascal");
268
- }
269
-
270
- /**
271
- * Converts to pascal case with type validation.
272
- *
273
- * Convert every property names of nested objects to follow the pascal case convention.
274
- * If the input value does not follow the type `T`, it returns {@link IValidation.Failure}
275
- * object. Otherwise, there's no problem on the input value, pascal cased converted data
276
- * would be stored in the `data` property of the output {@link IValidation.Success} object.
277
- *
278
- * @template T Type of the input value
279
- * @param input Target object
280
- * @returns Validation result with pascal case object
281
- *
282
- * @author Jeongho Nam - https://github.com/samchon
283
- */
284
- export function validatePascal<T>(input: T): IValidation<PascalCase<T>>;
285
-
286
- /**
287
- * Converts to pascal case with type validation.
288
- *
289
- * Convert every property names of nested objects to follow the pascal case convention.
290
- * If the input value does not follow the type `T`, it returns {@link IValidation.Failure}
291
- * object. Otherwise, there's no problem on the input value, pascal cased converted data
292
- * would be stored in the `data` property of the output {@link IValidation.Success} object.
293
- *
294
- * @template T Type of the input value
295
- * @param input Target object
296
- * @returns Validation result with pascal case object
297
- *
298
- * @author Jeongho Nam - https://github.com/samchon
299
- */
300
- export function validatePascal<T>(input: unknown): IValidation<PascalCase<T>>;
301
-
302
- /**
303
- * @internal
304
- */
305
- export function validatePascal(): never {
306
- return halt("validatePascal");
307
- }
308
-
309
- /* -----------------------------------------------------------
310
- SNAKE CASE
311
- ----------------------------------------------------------- */
312
- /**
313
- * Convert to snake case.
314
- *
315
- * Convert every property names of nested objects to follow the snake case convention.
316
- *
317
- * For reference, this `typia.notations.snake()` function does not validate the input value
318
- * type. It just believes that the input value is following the type `T`. Therefore,
319
- * if you can't ensure the input value type, it would be better to call one of them below:
320
- *
321
- * - {@link assertSnake}
322
- * - {@link isSnake}
323
- * - {@link validateSnake}
324
- *
325
- * @template T Type of the input value
326
- * @param input Target object
327
- * @returns Snake case object
328
- *
329
- * @author Jeongho Nam - https://github.com/samchon
330
- */
331
- export function snake<T>(input: T): SnakeCase<T>;
332
-
333
- /**
334
- * @internal
335
- */
336
- export function snake(): never {
337
- return halt("snake");
338
- }
339
-
340
- /**
341
- * Converts to snake case with type assertion.
342
- *
343
- * Convert every property names of nested objects to follow the snake case convention.
344
- * If the input value does not follow the type `T`, it throws {@link TypeGuardError}.
345
- *
346
- * @template T Type of the input value
347
- * @param input Target object
348
- * @param errorFactory Custom error factory. Default is `TypeGuardError`
349
- * @returns Snake case object
350
- *
351
- * @author Jeongho Nam - https://github.com/samchon
352
- */
353
- export function assertSnake<T>(
354
- input: T,
355
- errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
356
- ): SnakeCase<T>;
357
-
358
- /**
359
- * Converts to snake case with type assertion.
360
- *
361
- * Convert every property names of nested objects to follow the snake case convention.
362
- * If the input value does not follow the type `T`, it throws {@link TypeGuardError}.
363
- *
364
- * @template T Type of the input value
365
- * @param input Target object
366
- * @param errorFactory Custom error factory. Default is `TypeGuardError`
367
- * @returns Snake case object
368
- *
369
- * @author Jeongho Nam - https://github.com/samchon
370
- */
371
- export function assertSnake<T>(
372
- input: unknown,
373
- errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
374
- ): SnakeCase<T>;
375
-
376
- /**
377
- * @internal
378
- */
379
- export function assertSnake(): never {
380
- return halt("assertSnake");
381
- }
382
-
383
- /**
384
- * Converts to snake case with type checking.
385
- *
386
- * Convert every property names of nested objects to follow the snake case convention.
387
- * If the input value does not follow the type `T`, it returns `null` value instead.
388
- *
389
- * @template T Type of the input value
390
- * @param input Target object
391
- * @returns Snake case object when exact type, otherwise null
392
- *
393
- * @author Jeongho Nam - https://github.com/samchon
394
- */
395
- export function isSnake<T>(input: T): SnakeCase<T> | null;
396
-
397
- /**
398
- * Converts to snake case with type checking.
399
- *
400
- * Convert every property names of nested objects to follow the snake case convention.
401
- * If the input value does not follow the type `T`, it returns `null` value instead.
402
- *
403
- * @template T Type of the input value
404
- * @param input Target object
405
- * @returns Snake case object when exact type, otherwise null
406
- *
407
- * @author Jeongho Nam - https://github.com/samchon
408
- */
409
- export function isSnake<T>(input: unknown): SnakeCase<T> | null;
410
-
411
- /**
412
- * @internal
413
- */
414
- export function isSnake(): never {
415
- return halt("isSnake");
416
- }
417
-
418
- /**
419
- * Converts to snake case with type validation.
420
- *
421
- * Convert every property names of nested objects to follow the snake case convention.
422
- * If the input value does not follow the type `T`, it returns {@link IValidation.Failure}
423
- * object. Otherwise, there's no problem on the input value, snake cased converted data
424
- * would be stored in the `data` property of the output {@link IValidation.Success} object.
425
- *
426
- * @template T Type of the input value
427
- * @param input Target object
428
- * @returns Validation result with snake case object
429
- *
430
- * @author Jeongho Nam - https://github.com/samchon
431
- */
432
- export function validateSnake<T>(input: T): IValidation<SnakeCase<T>>;
433
-
434
- /**
435
- * Converts to snake case with type validation.
436
- *
437
- * Convert every property names of nested objects to follow the snake case convention.
438
- * If the input value does not follow the type `T`, it returns {@link IValidation.Failure}
439
- * object. Otherwise, there's no problem on the input value, snake cased converted data
440
- * would be stored in the `data` property of the output {@link IValidation.Success} object.
441
- *
442
- * @template T Type of the input value
443
- * @param input Target object
444
- * @returns Validation result with snake case object
445
- *
446
- * @author Jeongho Nam - https://github.com/samchon
447
- */
448
- export function validateSnake<T>(input: unknown): IValidation<SnakeCase<T>>;
449
-
450
- /**
451
- * @internal
452
- */
453
- export function validateSnake(): never {
454
- return halt("validateSnake");
455
- }
456
-
457
- /* -----------------------------------------------------------
458
- FACTORY FUNCTIONS
459
- ----------------------------------------------------------- */
460
- /**
461
- * Creates a reusable {@link camel} function.
462
- *
463
- * @danger You must configure the generic argument `T`
464
- * @returns Nothing until be configure the generic argument `T`
465
- * @throws compile error
466
- *
467
- * @author Jeongho Nam - https://github.com/samchon
468
- */
469
- export function createCamel(): never;
470
-
471
- /**
472
- * Creates a reusable {@link camel} function.
473
- *
474
- * @template T Type of the input value
475
- * @returns A reusable `camel` function
476
- *
477
- * @author Jeongho Nam - https://github.com/samchon
478
- */
479
- export function createCamel<T>(): (input: T) => CamelCase<T>;
480
-
481
- /**
482
- * @internal
483
- */
484
- export function createCamel(): never {
485
- halt("createCamel");
486
- }
487
-
488
- /**
489
- * Creates a reusable {@link assertCamel} function.
490
- *
491
- * @danger You must configure the generic argument `T`
492
- * @param errorFactory Custom error factory. Default is `TypeGuardError`
493
- * @returns Nothing until be configure the generic argument `T`
494
- * @throws compile error
495
- *
496
- * @author Jeongho Nam - https://github.com/samchon
497
- */
498
- export function createAssertCamel(
499
- errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
500
- ): never;
501
-
502
- /**
503
- * Creates a reusable {@link assertCamel} function.
504
- *
505
- * @template T Type of the input value
506
- * @param errorFactory Custom error factory. Default is `TypeGuardError`
507
- * @returns A reusable `assertCamel` function
508
- *
509
- * @author Jeongho Nam - https://github.com/samchon
510
- */
511
- export function createAssertCamel<T>(
512
- errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
513
- ): (input: T) => CamelCase<T>;
514
-
515
- /**
516
- * @internal
517
- */
518
- export function createAssertCamel(): never {
519
- halt("createAssertCamel");
520
- }
521
-
522
- /**
523
- * Creates a reusable {@link isCamel} function.
524
- *
525
- * @danger You must configure the generic argument `T`
526
- * @returns Nothing until be configure the generic argument `T`
527
- * @throws compile error
528
- *
529
- * @author Jeongho Nam - https://github.com/samchon
530
- */
531
- export function createIsCamel(): never;
532
-
533
- /**
534
- * Creates a reusable {@link isCamel} function.
535
- *
536
- * @template T Type of the input value
537
- * @returns A reusable `isCamel` function
538
- *
539
- * @author Jeongho Nam - https://github.com/samchon
540
- */
541
- export function createIsCamel<T>(): (input: T) => CamelCase<T> | null;
542
-
543
- /**
544
- * @internal
545
- */
546
- export function createIsCamel(): never {
547
- halt("createIsCamel");
548
- }
549
-
550
- /**
551
- * Creates a reusable {@link validateCamel} function.
552
- *
553
- * @danger You must configure the generic argument `T`
554
- * @returns Nothing until be configure the generic argument `T`
555
- * @throws compile error
556
- *
557
- * @author Jeongho Nam - https://github.com/samchon
558
- */
559
- export function createValidateCamel(): never;
560
-
561
- /**
562
- * Creates a reusable {@link validateCamel} function.
563
- *
564
- * @template T Type of the input value
565
- * @returns A reusable `validateCamel` function
566
- *
567
- * @author Jeongho Nam - https://github.com/samchon
568
- */
569
- export function createValidateCamel<T>(): (
570
- input: T,
571
- ) => IValidation<CamelCase<T>>;
572
-
573
- /**
574
- * @internal
575
- */
576
- export function createValidateCamel(): never {
577
- halt("createValidateCamel");
578
- }
579
-
580
- /**
581
- * Creates a reusable {@link pascal} function.
582
- *
583
- * @danger You must configure the generic argument `T`
584
- * @returns Nothing until be configure the generic argument `T`
585
- * @throws compile error
586
- *
587
- * @author Jeongho Nam - https://github.com/samchon
588
- */
589
- export function createPascal(): never;
590
-
591
- /**
592
- * Creates a reusable {@link pascal} function.
593
- *
594
- * @template T Type of the input value
595
- * @returns A reusable `pascal` function
596
- *
597
- * @author Jeongho Nam - https://github.com/samchon
598
- */
599
- export function createPascal<T>(): (input: T) => PascalCase<T>;
600
-
601
- /**
602
- * @internal
603
- */
604
- export function createPascal(): never {
605
- halt("createPascal");
606
- }
607
-
608
- /**
609
- * Creates a reusable {@link assertPascal} function.
610
- *
611
- * @danger You must configure the generic argument `T`
612
- * @param errorFactory Custom error factory. Default is `TypeGuardError`
613
- * @returns Nothing until be configure the generic argument `T`
614
- * @throws compile error
615
- *
616
- * @author Jeongho Nam - https://github.com/samchon
617
- */
618
- export function createAssertPascal(
619
- errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
620
- ): never;
621
-
622
- /**
623
- * Creates a reusable {@link assertPascal} function.
624
- *
625
- * @template T Type of the input value
626
- * @param errorFactory Custom error factory. Default is `TypeGuardError`
627
- * @returns A reusable `assertPascal` function
628
- *
629
- * @author Jeongho Nam - https://github.com/samchon
630
- */
631
- export function createAssertPascal<T>(
632
- errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
633
- ): (input: T) => PascalCase<T>;
634
-
635
- /**
636
- * @internal
637
- */
638
- export function createAssertPascal(): never {
639
- halt("createAssertPascal");
640
- }
641
-
642
- /**
643
- * Creates a reusable {@link isPascal} function.
644
- *
645
- * @danger You must configure the generic argument `T`
646
- * @returns Nothing until be configure the generic argument `T`
647
- * @throws compile error
648
- *
649
- * @author Jeongho Nam - https://github.com/samchon
650
- */
651
- export function createIsPascal(): never;
652
-
653
- /**
654
- * Creates a reusable {@link isPascal} function.
655
- *
656
- * @template T Type of the input value
657
- * @returns A reusable `isPascal` function
658
- *
659
- * @author Jeongho Nam - https://github.com/samchon
660
- */
661
- export function createIsPascal<T>(): (input: T) => PascalCase<T> | null;
662
-
663
- /**
664
- * @internal
665
- */
666
- export function createIsPascal(): never {
667
- halt("createIsPascal");
668
- }
669
-
670
- /**
671
- * Creates a reusable {@link validatePascal} function.
672
- *
673
- * @danger You must configure the generic argument `T`
674
- * @returns Nothing until be configure the generic argument `T`
675
- * @throws compile error
676
- *
677
- * @author Jeongho Nam - https://github.com/samchon
678
- */
679
- export function createValidatePascal(): never;
680
-
681
- /**
682
- * Creates a reusable {@link validatePascal} function.
683
- *
684
- * @template T Type of the input value
685
- * @returns A reusable `validatePascal` function
686
- *
687
- * @author Jeongho Nam - https://github.com/samchon
688
- */
689
- export function createValidatePascal<T>(): (
690
- input: T,
691
- ) => IValidation<PascalCase<T>>;
692
-
693
- /**
694
- * @internal
695
- */
696
- export function createValidatePascal(): never {
697
- halt("createValidatePascal");
698
- }
699
-
700
- /**
701
- * Creates a reusable {@link snake} function.
702
- *
703
- * @danger You must configure the generic argument `T`
704
- * @returns Nothing until be configure the generic argument `T`
705
- * @throws compile error
706
- *
707
- * @author Jeongho Nam - https://github.com/samchon
708
- */
709
- export function createSnake(): never;
710
-
711
- /**
712
- * Creates a reusable {@link snake} function.
713
- *
714
- * @template T Type of the input value
715
- * @returns A reusable `snake` function
716
- *
717
- * @author Jeongho Nam - https://github.com/samchon
718
- */
719
- export function createSnake<T>(): (input: T) => SnakeCase<T>;
720
-
721
- /**
722
- * @internal
723
- */
724
- export function createSnake(): never {
725
- halt("createSnake");
726
- }
727
-
728
- /**
729
- * Creates a reusable {@link assertSnake} function.
730
- *
731
- * @danger You must configure the generic argument `T`
732
- * @param errorFactory Custom error factory. Default is `TypeGuardError`
733
- * @returns Nothing until be configure the generic argument `T`
734
- * @throws compile error
735
- *
736
- * @author Jeongho Nam - https://github.com/samchon
737
- */
738
- export function createAssertSnake(
739
- errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
740
- ): never;
741
-
742
- /**
743
- * Creates a reusable {@link assertSnake} function.
744
- *
745
- * @template T Type of the input value
746
- * @param errorFactory Custom error factory. Default is `TypeGuardError`
747
- * @returns A reusable `assertSnake` function
748
- *
749
- * @author Jeongho Nam - https://github.com/samchon
750
- */
751
- export function createAssertSnake<T>(
752
- errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
753
- ): (input: T) => SnakeCase<T>;
754
-
755
- /**
756
- * @internal
757
- */
758
- export function createAssertSnake(): never {
759
- halt("createAssertSnake");
760
- }
761
-
762
- /**
763
- * Creates a reusable {@link isSnake} function.
764
- *
765
- * @danger You must configure the generic argument `T`
766
- * @returns Nothing until be configure the generic argument `T`
767
- * @throws compile error
768
- *
769
- * @author Jeongho Nam - https://github.com/samchon
770
- */
771
- export function createIsSnake(): never;
772
-
773
- /**
774
- * Creates a reusable {@link isSnake} function.
775
- *
776
- * @template T Type of the input value
777
- * @returns A reusable `isSnake` function
778
- *
779
- * @author Jeongho Nam - https://github.com/samchon
780
- */
781
- export function createIsSnake<T>(): (input: T) => SnakeCase<T> | null;
782
-
783
- /**
784
- * @internal
785
- */
786
- export function createIsSnake(): never {
787
- halt("createIsSnake");
788
- }
789
-
790
- /**
791
- * Creates a reusable {@link validateSnake} function.
792
- *
793
- * @danger You must configure the generic argument `T`
794
- * @returns Nothing until be configure the generic argument `T`
795
- * @throws compile error
796
- *
797
- * @author Jeongho Nam - https://github.com/samchon
798
- */
799
- export function createValidateSnake(): never;
800
-
801
- /**
802
- * Creates a reusable {@link validateSnake} function.
803
- *
804
- * @template T Type of the input value
805
- * @returns A reusable `validateSnake` function
806
- *
807
- * @author Jeongho Nam - https://github.com/samchon
808
- */
809
- export function createValidateSnake<T>(): (
810
- input: T,
811
- ) => IValidation<SnakeCase<T>>;
812
-
813
- /**
814
- * @internal
815
- */
816
- export function createValidateSnake(): never {
817
- halt("createValidateSnake");
818
- }
819
-
820
- /**
821
- * @internal
822
- */
823
- function halt(name: string): never {
824
- throw new Error(
825
- `Error on typia.notations.${name}(): no transform has been configured. Read and follow https://typia.io/docs/setup please.`,
826
- );
827
- }
1
+ import { CamelCase } from "./CamelCase";
2
+ import { IValidation } from "./IValidation";
3
+ import { PascalCase } from "./PascalCase";
4
+ import { SnakeCase } from "./SnakeCase";
5
+ import { TypeGuardError } from "./TypeGuardError";
6
+
7
+ /* ===========================================================
8
+ NOTATIONS (NAMING CONVENTIONS)
9
+ - CAMEL CASE
10
+ - PASCAL CASE
11
+ - SNAKE CASE
12
+ - FACTORY FUNCTIONS
13
+ ==============================================================
14
+ CAMEL CASE
15
+ ----------------------------------------------------------- */
16
+ /**
17
+ * Convert to camel case.
18
+ *
19
+ * Convert every property names of nested objects to follow the camel case convention.
20
+ *
21
+ * For reference, this `typia.notations.camel()` function does not validate the input value
22
+ * type. It just believes that the input value is following the type `T`. Therefore,
23
+ * if you can't ensure the input value type, it would be better to call one of them below:
24
+ *
25
+ * - {@link assertCamel}
26
+ * - {@link isCamel}
27
+ * - {@link validateCamel}
28
+ *
29
+ * @template T Type of the input value
30
+ * @param input Target object
31
+ * @returns Camel case object
32
+ *
33
+ * @author Jeongho Nam - https://github.com/samchon
34
+ */
35
+ export function camel<T>(input: T): CamelCase<T>;
36
+
37
+ /**
38
+ * @internal
39
+ */
40
+ export function camel(): never {
41
+ return halt("camel");
42
+ }
43
+
44
+ /**
45
+ * Converts to camel case with type assertion.
46
+ *
47
+ * Convert every property names of nested objects to follow the camel case convention.
48
+ * If the input value does not follow the type `T`, it throws {@link TypeGuardError}.
49
+ *
50
+ * @template T Type of the input value
51
+ * @param input Target object
52
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
53
+ * @returns Camel case object
54
+ *
55
+ * @author Jeongho Nam - https://github.com/samchon
56
+ */
57
+ export function assertCamel<T>(
58
+ input: T,
59
+ errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
60
+ ): CamelCase<T>;
61
+
62
+ /**
63
+ * Converts to camel case with type assertion.
64
+ *
65
+ * Convert every property names of nested objects to follow the camel case convention.
66
+ * If the input value does not follow the type `T`, it throws {@link TypeGuardError}.
67
+ *
68
+ * @template T Type of the input value
69
+ * @param input Target object
70
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
71
+ * @returns Camel case object
72
+ *
73
+ * @author Jeongho Nam - https://github.com/samchon
74
+ */
75
+ export function assertCamel<T>(
76
+ input: unknown,
77
+ errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
78
+ ): CamelCase<T>;
79
+
80
+ /**
81
+ * @internal
82
+ */
83
+ export function assertCamel(): never {
84
+ return halt("assertCamel");
85
+ }
86
+
87
+ /**
88
+ * Converts to camel case with type checking.
89
+ *
90
+ * Convert every property names of nested objects to follow the camel case convention.
91
+ * If the input value does not follow the type `T`, it returns `null` value instead.
92
+ *
93
+ * @template T Type of the input value
94
+ * @param input Target object
95
+ * @returns Camel case object when exact type, otherwise null
96
+ *
97
+ * @author Jeongho Nam - https://github.com/samchon
98
+ */
99
+ export function isCamel<T>(input: T): CamelCase<T> | null;
100
+
101
+ /**
102
+ * Converts to camel case with type checking.
103
+ *
104
+ * Convert every property names of nested objects to follow the camel case convention.
105
+ * If the input value does not follow the type `T`, it returns `null` value instead.
106
+ *
107
+ * @template T Type of the input value
108
+ * @param input Target object
109
+ * @returns Camel case object when exact type, otherwise null
110
+ *
111
+ * @author Jeongho Nam - https://github.com/samchon
112
+ */
113
+ export function isCamel<T>(input: unknown): CamelCase<T> | null;
114
+
115
+ /**
116
+ * @internal
117
+ */
118
+ export function isCamel(): never {
119
+ return halt("isCamel");
120
+ }
121
+
122
+ /**
123
+ * Converts to camel case with type validation.
124
+ *
125
+ * Convert every property names of nested objects to follow the camel case convention.
126
+ * If the input value does not follow the type `T`, it returns {@link IValidation.Failure}
127
+ * object. Otherwise, there's no problem on the input value, camel cased converted data
128
+ * would be stored in the `data` property of the output {@link IValidation.Success} object.
129
+ *
130
+ * @template T Type of the input value
131
+ * @param input Target object
132
+ * @returns Validation result with camel case object
133
+ *
134
+ * @author Jeongho Nam - https://github.com/samchon
135
+ */
136
+ export function validateCamel<T>(input: T): IValidation<CamelCase<T>>;
137
+
138
+ /**
139
+ * Converts to camel case with type validation.
140
+ *
141
+ * Convert every property names of nested objects to follow the camel case convention.
142
+ * If the input value does not follow the type `T`, it returns {@link IValidation.Failure}
143
+ * object. Otherwise, there's no problem on the input value, camel cased converted data
144
+ * would be stored in the `data` property of the output {@link IValidation.Success} object.
145
+ *
146
+ * @template T Type of the input value
147
+ * @param input Target object
148
+ * @returns Validation result with camel case object
149
+ *
150
+ * @author Jeongho Nam - https://github.com/samchon
151
+ */
152
+ export function validateCamel<T>(input: unknown): IValidation<CamelCase<T>>;
153
+
154
+ /**
155
+ * @internal
156
+ */
157
+ export function validateCamel(): never {
158
+ return halt("validateCamel");
159
+ }
160
+
161
+ /* -----------------------------------------------------------
162
+ PASCAL CASE
163
+ ----------------------------------------------------------- */
164
+ /**
165
+ * Convert to pascal case.
166
+ *
167
+ * Convert every property names of nested objects to follow the pascal case convention.
168
+ *
169
+ * For reference, this `typia.notations.pascal()` function does not validate the input value
170
+ * type. It just believes that the input value is following the type `T`. Therefore,
171
+ * if you can't ensure the input value type, it would be better to call one of them below:
172
+ *
173
+ * - {@link assertPascal}
174
+ * - {@link isPascal}
175
+ * - {@link validatePascal}
176
+ *
177
+ * @template T Type of the input value
178
+ * @param input Target object
179
+ * @returns Pascal case object
180
+ *
181
+ * @author Jeongho Nam - https://github.com/samchon
182
+ */
183
+ export function pascal<T>(input: T): PascalCase<T>;
184
+
185
+ /**
186
+ * @internal
187
+ */
188
+ export function pascal(): never {
189
+ return halt("pascal");
190
+ }
191
+
192
+ /**
193
+ * Converts to pascal case with type assertion.
194
+ *
195
+ * Convert every property names of nested objects to follow the pascal case convention.
196
+ * If the input value does not follow the type `T`, it throws {@link TypeGuardError}.
197
+ *
198
+ * @template T Type of the input value
199
+ * @param input Target object
200
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
201
+ * @returns Pascal case object
202
+ *
203
+ * @author Jeongho Nam - https://github.com/samchon
204
+ */
205
+ export function assertPascal<T>(
206
+ input: T,
207
+ errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
208
+ ): PascalCase<T>;
209
+
210
+ /**
211
+ * Converts to pascal case with type assertion.
212
+ *
213
+ * Convert every property names of nested objects to follow the pascal case convention.
214
+ * If the input value does not follow the type `T`, it throws {@link TypeGuardError}.
215
+ *
216
+ * @template T Type of the input value
217
+ * @param input Target object
218
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
219
+ * @returns Pascal case object
220
+ *
221
+ * @author Jeongho Nam - https://github.com/samchon
222
+ */
223
+ export function assertPascal<T>(
224
+ input: unknown,
225
+ errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
226
+ ): PascalCase<T>;
227
+
228
+ /**
229
+ * @internal
230
+ */
231
+ export function assertPascal(): never {
232
+ return halt("assertPascal");
233
+ }
234
+
235
+ /**
236
+ * Converts to pascal case with type checking.
237
+ *
238
+ * Convert every property names of nested objects to follow the pascal case convention.
239
+ * If the input value does not follow the type `T`, it returns `null` value instead.
240
+ *
241
+ * @template T Type of the input value
242
+ * @param input Target object
243
+ * @returns Pascal case object when exact type, otherwise null
244
+ *
245
+ * @author Jeongho Nam - https://github.com/samchon
246
+ */
247
+ export function isPascal<T>(input: T): PascalCase<T> | null;
248
+
249
+ /**
250
+ * Converts to pascal case with type checking.
251
+ *
252
+ * Convert every property names of nested objects to follow the pascal case convention.
253
+ * If the input value does not follow the type `T`, it returns `null` value instead.
254
+ *
255
+ * @template T Type of the input value
256
+ * @param input Target object
257
+ * @returns Pascal case object when exact type, otherwise null
258
+ *
259
+ * @author Jeongho Nam - https://github.com/samchon
260
+ */
261
+ export function isPascal<T>(input: unknown): PascalCase<T> | null;
262
+
263
+ /**
264
+ * @internal
265
+ */
266
+ export function isPascal(): never {
267
+ return halt("isPascal");
268
+ }
269
+
270
+ /**
271
+ * Converts to pascal case with type validation.
272
+ *
273
+ * Convert every property names of nested objects to follow the pascal case convention.
274
+ * If the input value does not follow the type `T`, it returns {@link IValidation.Failure}
275
+ * object. Otherwise, there's no problem on the input value, pascal cased converted data
276
+ * would be stored in the `data` property of the output {@link IValidation.Success} object.
277
+ *
278
+ * @template T Type of the input value
279
+ * @param input Target object
280
+ * @returns Validation result with pascal case object
281
+ *
282
+ * @author Jeongho Nam - https://github.com/samchon
283
+ */
284
+ export function validatePascal<T>(input: T): IValidation<PascalCase<T>>;
285
+
286
+ /**
287
+ * Converts to pascal case with type validation.
288
+ *
289
+ * Convert every property names of nested objects to follow the pascal case convention.
290
+ * If the input value does not follow the type `T`, it returns {@link IValidation.Failure}
291
+ * object. Otherwise, there's no problem on the input value, pascal cased converted data
292
+ * would be stored in the `data` property of the output {@link IValidation.Success} object.
293
+ *
294
+ * @template T Type of the input value
295
+ * @param input Target object
296
+ * @returns Validation result with pascal case object
297
+ *
298
+ * @author Jeongho Nam - https://github.com/samchon
299
+ */
300
+ export function validatePascal<T>(input: unknown): IValidation<PascalCase<T>>;
301
+
302
+ /**
303
+ * @internal
304
+ */
305
+ export function validatePascal(): never {
306
+ return halt("validatePascal");
307
+ }
308
+
309
+ /* -----------------------------------------------------------
310
+ SNAKE CASE
311
+ ----------------------------------------------------------- */
312
+ /**
313
+ * Convert to snake case.
314
+ *
315
+ * Convert every property names of nested objects to follow the snake case convention.
316
+ *
317
+ * For reference, this `typia.notations.snake()` function does not validate the input value
318
+ * type. It just believes that the input value is following the type `T`. Therefore,
319
+ * if you can't ensure the input value type, it would be better to call one of them below:
320
+ *
321
+ * - {@link assertSnake}
322
+ * - {@link isSnake}
323
+ * - {@link validateSnake}
324
+ *
325
+ * @template T Type of the input value
326
+ * @param input Target object
327
+ * @returns Snake case object
328
+ *
329
+ * @author Jeongho Nam - https://github.com/samchon
330
+ */
331
+ export function snake<T>(input: T): SnakeCase<T>;
332
+
333
+ /**
334
+ * @internal
335
+ */
336
+ export function snake(): never {
337
+ return halt("snake");
338
+ }
339
+
340
+ /**
341
+ * Converts to snake case with type assertion.
342
+ *
343
+ * Convert every property names of nested objects to follow the snake case convention.
344
+ * If the input value does not follow the type `T`, it throws {@link TypeGuardError}.
345
+ *
346
+ * @template T Type of the input value
347
+ * @param input Target object
348
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
349
+ * @returns Snake case object
350
+ *
351
+ * @author Jeongho Nam - https://github.com/samchon
352
+ */
353
+ export function assertSnake<T>(
354
+ input: T,
355
+ errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
356
+ ): SnakeCase<T>;
357
+
358
+ /**
359
+ * Converts to snake case with type assertion.
360
+ *
361
+ * Convert every property names of nested objects to follow the snake case convention.
362
+ * If the input value does not follow the type `T`, it throws {@link TypeGuardError}.
363
+ *
364
+ * @template T Type of the input value
365
+ * @param input Target object
366
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
367
+ * @returns Snake case object
368
+ *
369
+ * @author Jeongho Nam - https://github.com/samchon
370
+ */
371
+ export function assertSnake<T>(
372
+ input: unknown,
373
+ errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
374
+ ): SnakeCase<T>;
375
+
376
+ /**
377
+ * @internal
378
+ */
379
+ export function assertSnake(): never {
380
+ return halt("assertSnake");
381
+ }
382
+
383
+ /**
384
+ * Converts to snake case with type checking.
385
+ *
386
+ * Convert every property names of nested objects to follow the snake case convention.
387
+ * If the input value does not follow the type `T`, it returns `null` value instead.
388
+ *
389
+ * @template T Type of the input value
390
+ * @param input Target object
391
+ * @returns Snake case object when exact type, otherwise null
392
+ *
393
+ * @author Jeongho Nam - https://github.com/samchon
394
+ */
395
+ export function isSnake<T>(input: T): SnakeCase<T> | null;
396
+
397
+ /**
398
+ * Converts to snake case with type checking.
399
+ *
400
+ * Convert every property names of nested objects to follow the snake case convention.
401
+ * If the input value does not follow the type `T`, it returns `null` value instead.
402
+ *
403
+ * @template T Type of the input value
404
+ * @param input Target object
405
+ * @returns Snake case object when exact type, otherwise null
406
+ *
407
+ * @author Jeongho Nam - https://github.com/samchon
408
+ */
409
+ export function isSnake<T>(input: unknown): SnakeCase<T> | null;
410
+
411
+ /**
412
+ * @internal
413
+ */
414
+ export function isSnake(): never {
415
+ return halt("isSnake");
416
+ }
417
+
418
+ /**
419
+ * Converts to snake case with type validation.
420
+ *
421
+ * Convert every property names of nested objects to follow the snake case convention.
422
+ * If the input value does not follow the type `T`, it returns {@link IValidation.Failure}
423
+ * object. Otherwise, there's no problem on the input value, snake cased converted data
424
+ * would be stored in the `data` property of the output {@link IValidation.Success} object.
425
+ *
426
+ * @template T Type of the input value
427
+ * @param input Target object
428
+ * @returns Validation result with snake case object
429
+ *
430
+ * @author Jeongho Nam - https://github.com/samchon
431
+ */
432
+ export function validateSnake<T>(input: T): IValidation<SnakeCase<T>>;
433
+
434
+ /**
435
+ * Converts to snake case with type validation.
436
+ *
437
+ * Convert every property names of nested objects to follow the snake case convention.
438
+ * If the input value does not follow the type `T`, it returns {@link IValidation.Failure}
439
+ * object. Otherwise, there's no problem on the input value, snake cased converted data
440
+ * would be stored in the `data` property of the output {@link IValidation.Success} object.
441
+ *
442
+ * @template T Type of the input value
443
+ * @param input Target object
444
+ * @returns Validation result with snake case object
445
+ *
446
+ * @author Jeongho Nam - https://github.com/samchon
447
+ */
448
+ export function validateSnake<T>(input: unknown): IValidation<SnakeCase<T>>;
449
+
450
+ /**
451
+ * @internal
452
+ */
453
+ export function validateSnake(): never {
454
+ return halt("validateSnake");
455
+ }
456
+
457
+ /* -----------------------------------------------------------
458
+ FACTORY FUNCTIONS
459
+ ----------------------------------------------------------- */
460
+ /**
461
+ * Creates a reusable {@link camel} function.
462
+ *
463
+ * @danger You must configure the generic argument `T`
464
+ * @returns Nothing until be configure the generic argument `T`
465
+ * @throws compile error
466
+ *
467
+ * @author Jeongho Nam - https://github.com/samchon
468
+ */
469
+ export function createCamel(): never;
470
+
471
+ /**
472
+ * Creates a reusable {@link camel} function.
473
+ *
474
+ * @template T Type of the input value
475
+ * @returns A reusable `camel` function
476
+ *
477
+ * @author Jeongho Nam - https://github.com/samchon
478
+ */
479
+ export function createCamel<T>(): (input: T) => CamelCase<T>;
480
+
481
+ /**
482
+ * @internal
483
+ */
484
+ export function createCamel(): never {
485
+ halt("createCamel");
486
+ }
487
+
488
+ /**
489
+ * Creates a reusable {@link assertCamel} function.
490
+ *
491
+ * @danger You must configure the generic argument `T`
492
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
493
+ * @returns Nothing until be configure the generic argument `T`
494
+ * @throws compile error
495
+ *
496
+ * @author Jeongho Nam - https://github.com/samchon
497
+ */
498
+ export function createAssertCamel(
499
+ errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
500
+ ): never;
501
+
502
+ /**
503
+ * Creates a reusable {@link assertCamel} function.
504
+ *
505
+ * @template T Type of the input value
506
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
507
+ * @returns A reusable `assertCamel` function
508
+ *
509
+ * @author Jeongho Nam - https://github.com/samchon
510
+ */
511
+ export function createAssertCamel<T>(
512
+ errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
513
+ ): (input: T) => CamelCase<T>;
514
+
515
+ /**
516
+ * @internal
517
+ */
518
+ export function createAssertCamel(): never {
519
+ halt("createAssertCamel");
520
+ }
521
+
522
+ /**
523
+ * Creates a reusable {@link isCamel} function.
524
+ *
525
+ * @danger You must configure the generic argument `T`
526
+ * @returns Nothing until be configure the generic argument `T`
527
+ * @throws compile error
528
+ *
529
+ * @author Jeongho Nam - https://github.com/samchon
530
+ */
531
+ export function createIsCamel(): never;
532
+
533
+ /**
534
+ * Creates a reusable {@link isCamel} function.
535
+ *
536
+ * @template T Type of the input value
537
+ * @returns A reusable `isCamel` function
538
+ *
539
+ * @author Jeongho Nam - https://github.com/samchon
540
+ */
541
+ export function createIsCamel<T>(): (input: T) => CamelCase<T> | null;
542
+
543
+ /**
544
+ * @internal
545
+ */
546
+ export function createIsCamel(): never {
547
+ halt("createIsCamel");
548
+ }
549
+
550
+ /**
551
+ * Creates a reusable {@link validateCamel} function.
552
+ *
553
+ * @danger You must configure the generic argument `T`
554
+ * @returns Nothing until be configure the generic argument `T`
555
+ * @throws compile error
556
+ *
557
+ * @author Jeongho Nam - https://github.com/samchon
558
+ */
559
+ export function createValidateCamel(): never;
560
+
561
+ /**
562
+ * Creates a reusable {@link validateCamel} function.
563
+ *
564
+ * @template T Type of the input value
565
+ * @returns A reusable `validateCamel` function
566
+ *
567
+ * @author Jeongho Nam - https://github.com/samchon
568
+ */
569
+ export function createValidateCamel<T>(): (
570
+ input: T,
571
+ ) => IValidation<CamelCase<T>>;
572
+
573
+ /**
574
+ * @internal
575
+ */
576
+ export function createValidateCamel(): never {
577
+ halt("createValidateCamel");
578
+ }
579
+
580
+ /**
581
+ * Creates a reusable {@link pascal} function.
582
+ *
583
+ * @danger You must configure the generic argument `T`
584
+ * @returns Nothing until be configure the generic argument `T`
585
+ * @throws compile error
586
+ *
587
+ * @author Jeongho Nam - https://github.com/samchon
588
+ */
589
+ export function createPascal(): never;
590
+
591
+ /**
592
+ * Creates a reusable {@link pascal} function.
593
+ *
594
+ * @template T Type of the input value
595
+ * @returns A reusable `pascal` function
596
+ *
597
+ * @author Jeongho Nam - https://github.com/samchon
598
+ */
599
+ export function createPascal<T>(): (input: T) => PascalCase<T>;
600
+
601
+ /**
602
+ * @internal
603
+ */
604
+ export function createPascal(): never {
605
+ halt("createPascal");
606
+ }
607
+
608
+ /**
609
+ * Creates a reusable {@link assertPascal} function.
610
+ *
611
+ * @danger You must configure the generic argument `T`
612
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
613
+ * @returns Nothing until be configure the generic argument `T`
614
+ * @throws compile error
615
+ *
616
+ * @author Jeongho Nam - https://github.com/samchon
617
+ */
618
+ export function createAssertPascal(
619
+ errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
620
+ ): never;
621
+
622
+ /**
623
+ * Creates a reusable {@link assertPascal} function.
624
+ *
625
+ * @template T Type of the input value
626
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
627
+ * @returns A reusable `assertPascal` function
628
+ *
629
+ * @author Jeongho Nam - https://github.com/samchon
630
+ */
631
+ export function createAssertPascal<T>(
632
+ errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
633
+ ): (input: T) => PascalCase<T>;
634
+
635
+ /**
636
+ * @internal
637
+ */
638
+ export function createAssertPascal(): never {
639
+ halt("createAssertPascal");
640
+ }
641
+
642
+ /**
643
+ * Creates a reusable {@link isPascal} function.
644
+ *
645
+ * @danger You must configure the generic argument `T`
646
+ * @returns Nothing until be configure the generic argument `T`
647
+ * @throws compile error
648
+ *
649
+ * @author Jeongho Nam - https://github.com/samchon
650
+ */
651
+ export function createIsPascal(): never;
652
+
653
+ /**
654
+ * Creates a reusable {@link isPascal} function.
655
+ *
656
+ * @template T Type of the input value
657
+ * @returns A reusable `isPascal` function
658
+ *
659
+ * @author Jeongho Nam - https://github.com/samchon
660
+ */
661
+ export function createIsPascal<T>(): (input: T) => PascalCase<T> | null;
662
+
663
+ /**
664
+ * @internal
665
+ */
666
+ export function createIsPascal(): never {
667
+ halt("createIsPascal");
668
+ }
669
+
670
+ /**
671
+ * Creates a reusable {@link validatePascal} function.
672
+ *
673
+ * @danger You must configure the generic argument `T`
674
+ * @returns Nothing until be configure the generic argument `T`
675
+ * @throws compile error
676
+ *
677
+ * @author Jeongho Nam - https://github.com/samchon
678
+ */
679
+ export function createValidatePascal(): never;
680
+
681
+ /**
682
+ * Creates a reusable {@link validatePascal} function.
683
+ *
684
+ * @template T Type of the input value
685
+ * @returns A reusable `validatePascal` function
686
+ *
687
+ * @author Jeongho Nam - https://github.com/samchon
688
+ */
689
+ export function createValidatePascal<T>(): (
690
+ input: T,
691
+ ) => IValidation<PascalCase<T>>;
692
+
693
+ /**
694
+ * @internal
695
+ */
696
+ export function createValidatePascal(): never {
697
+ halt("createValidatePascal");
698
+ }
699
+
700
+ /**
701
+ * Creates a reusable {@link snake} function.
702
+ *
703
+ * @danger You must configure the generic argument `T`
704
+ * @returns Nothing until be configure the generic argument `T`
705
+ * @throws compile error
706
+ *
707
+ * @author Jeongho Nam - https://github.com/samchon
708
+ */
709
+ export function createSnake(): never;
710
+
711
+ /**
712
+ * Creates a reusable {@link snake} function.
713
+ *
714
+ * @template T Type of the input value
715
+ * @returns A reusable `snake` function
716
+ *
717
+ * @author Jeongho Nam - https://github.com/samchon
718
+ */
719
+ export function createSnake<T>(): (input: T) => SnakeCase<T>;
720
+
721
+ /**
722
+ * @internal
723
+ */
724
+ export function createSnake(): never {
725
+ halt("createSnake");
726
+ }
727
+
728
+ /**
729
+ * Creates a reusable {@link assertSnake} function.
730
+ *
731
+ * @danger You must configure the generic argument `T`
732
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
733
+ * @returns Nothing until be configure the generic argument `T`
734
+ * @throws compile error
735
+ *
736
+ * @author Jeongho Nam - https://github.com/samchon
737
+ */
738
+ export function createAssertSnake(
739
+ errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
740
+ ): never;
741
+
742
+ /**
743
+ * Creates a reusable {@link assertSnake} function.
744
+ *
745
+ * @template T Type of the input value
746
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
747
+ * @returns A reusable `assertSnake` function
748
+ *
749
+ * @author Jeongho Nam - https://github.com/samchon
750
+ */
751
+ export function createAssertSnake<T>(
752
+ errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
753
+ ): (input: T) => SnakeCase<T>;
754
+
755
+ /**
756
+ * @internal
757
+ */
758
+ export function createAssertSnake(): never {
759
+ halt("createAssertSnake");
760
+ }
761
+
762
+ /**
763
+ * Creates a reusable {@link isSnake} function.
764
+ *
765
+ * @danger You must configure the generic argument `T`
766
+ * @returns Nothing until be configure the generic argument `T`
767
+ * @throws compile error
768
+ *
769
+ * @author Jeongho Nam - https://github.com/samchon
770
+ */
771
+ export function createIsSnake(): never;
772
+
773
+ /**
774
+ * Creates a reusable {@link isSnake} function.
775
+ *
776
+ * @template T Type of the input value
777
+ * @returns A reusable `isSnake` function
778
+ *
779
+ * @author Jeongho Nam - https://github.com/samchon
780
+ */
781
+ export function createIsSnake<T>(): (input: T) => SnakeCase<T> | null;
782
+
783
+ /**
784
+ * @internal
785
+ */
786
+ export function createIsSnake(): never {
787
+ halt("createIsSnake");
788
+ }
789
+
790
+ /**
791
+ * Creates a reusable {@link validateSnake} function.
792
+ *
793
+ * @danger You must configure the generic argument `T`
794
+ * @returns Nothing until be configure the generic argument `T`
795
+ * @throws compile error
796
+ *
797
+ * @author Jeongho Nam - https://github.com/samchon
798
+ */
799
+ export function createValidateSnake(): never;
800
+
801
+ /**
802
+ * Creates a reusable {@link validateSnake} function.
803
+ *
804
+ * @template T Type of the input value
805
+ * @returns A reusable `validateSnake` function
806
+ *
807
+ * @author Jeongho Nam - https://github.com/samchon
808
+ */
809
+ export function createValidateSnake<T>(): (
810
+ input: T,
811
+ ) => IValidation<SnakeCase<T>>;
812
+
813
+ /**
814
+ * @internal
815
+ */
816
+ export function createValidateSnake(): never {
817
+ halt("createValidateSnake");
818
+ }
819
+
820
+ /**
821
+ * @internal
822
+ */
823
+ function halt(name: string): never {
824
+ throw new Error(
825
+ `Error on typia.notations.${name}(): no transform has been configured. Read and follow https://typia.io/docs/setup please.`,
826
+ );
827
+ }