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