typia 9.1.1 → 9.3.0-dev.20250511

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