typia 9.5.0 → 9.6.0-dev.20250719

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 (524) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +153 -153
  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/llm.d.mts +24 -2
  8. package/lib/llm.d.ts +24 -2
  9. package/lib/llm.js.map +1 -1
  10. package/lib/programmers/llm/LlmApplicationProgrammer.d.mts +3 -1
  11. package/lib/programmers/llm/LlmApplicationProgrammer.d.ts +3 -1
  12. package/lib/programmers/llm/LlmApplicationProgrammer.js +7 -5
  13. package/lib/programmers/llm/LlmApplicationProgrammer.js.map +1 -1
  14. package/lib/programmers/llm/LlmApplicationProgrammer.mjs +6 -4
  15. package/lib/programmers/llm/LlmModelPredicator.d.mts +3 -1
  16. package/lib/programmers/llm/LlmModelPredicator.d.ts +3 -1
  17. package/lib/programmers/llm/LlmModelPredicator.js.map +1 -1
  18. package/lib/transformers/features/llm/LlmApplicationTransformer.js.map +1 -1
  19. package/package.json +1 -1
  20. package/src/AssertionGuard.ts +39 -39
  21. package/src/CamelCase.ts +75 -75
  22. package/src/IRandomGenerator.ts +49 -49
  23. package/src/IReadableURLSearchParams.ts +9 -9
  24. package/src/IValidation.ts +1 -1
  25. package/src/PascalCase.ts +71 -71
  26. package/src/Primitive.ts +92 -92
  27. package/src/Resolved.ts +74 -74
  28. package/src/SnakeCase.ts +126 -126
  29. package/src/TypeGuardError.ts +179 -179
  30. package/src/executable/TypiaGenerateWizard.ts +83 -83
  31. package/src/executable/TypiaPatchWizard.ts +45 -45
  32. package/src/executable/TypiaSetupWizard.ts +171 -171
  33. package/src/executable/setup/ArgumentParser.ts +42 -42
  34. package/src/executable/setup/CommandExecutor.ts +8 -8
  35. package/src/executable/setup/FileRetriever.ts +19 -19
  36. package/src/executable/setup/PackageManager.ts +87 -87
  37. package/src/executable/setup/PluginConfigurator.ts +74 -74
  38. package/src/executable/typia.ts +55 -55
  39. package/src/factories/CommentFactory.ts +79 -79
  40. package/src/factories/ExpressionFactory.ts +219 -219
  41. package/src/factories/IdentifierFactory.ts +89 -89
  42. package/src/factories/JsonMetadataFactory.ts +83 -83
  43. package/src/factories/LiteralFactory.ts +52 -52
  44. package/src/factories/MetadataCollection.ts +278 -278
  45. package/src/factories/MetadataCommentTagFactory.ts +648 -648
  46. package/src/factories/MetadataFactory.ts +404 -404
  47. package/src/factories/MetadataTypeTagFactory.ts +413 -413
  48. package/src/factories/MetadataTypeTagSchemaFactory.ts +82 -82
  49. package/src/factories/NumericRangeFactory.ts +72 -72
  50. package/src/factories/ProtobufFactory.ts +875 -875
  51. package/src/factories/StatementFactory.ts +90 -90
  52. package/src/factories/TemplateFactory.ts +64 -64
  53. package/src/factories/TypeFactory.ts +140 -140
  54. package/src/factories/ValueFactory.ts +12 -12
  55. package/src/factories/internal/metadata/IMetadataIteratorProps.ts +17 -17
  56. package/src/factories/internal/metadata/MetadataHelper.ts +21 -21
  57. package/src/factories/internal/metadata/emend_metadata_atomics.ts +45 -45
  58. package/src/factories/internal/metadata/emplace_metadata_alias.ts +33 -33
  59. package/src/factories/internal/metadata/emplace_metadata_array_type.ts +39 -39
  60. package/src/factories/internal/metadata/emplace_metadata_object.ts +212 -212
  61. package/src/factories/internal/metadata/emplace_metadata_tuple.ts +57 -57
  62. package/src/factories/internal/metadata/explore_metadata.ts +31 -31
  63. package/src/factories/internal/metadata/iterate_metadata.ts +54 -54
  64. package/src/factories/internal/metadata/iterate_metadata_alias.ts +33 -33
  65. package/src/factories/internal/metadata/iterate_metadata_array.ts +63 -63
  66. package/src/factories/internal/metadata/iterate_metadata_atomic.ts +62 -62
  67. package/src/factories/internal/metadata/iterate_metadata_coalesce.ts +28 -28
  68. package/src/factories/internal/metadata/iterate_metadata_collection.ts +146 -146
  69. package/src/factories/internal/metadata/iterate_metadata_comment_tags.ts +32 -32
  70. package/src/factories/internal/metadata/iterate_metadata_constant.ts +76 -76
  71. package/src/factories/internal/metadata/iterate_metadata_escape.ts +49 -49
  72. package/src/factories/internal/metadata/iterate_metadata_function.ts +91 -91
  73. package/src/factories/internal/metadata/iterate_metadata_intersection.ts +212 -212
  74. package/src/factories/internal/metadata/iterate_metadata_map.ts +57 -57
  75. package/src/factories/internal/metadata/iterate_metadata_native.ts +264 -264
  76. package/src/factories/internal/metadata/iterate_metadata_object.ts +35 -35
  77. package/src/factories/internal/metadata/iterate_metadata_set.ts +57 -57
  78. package/src/factories/internal/metadata/iterate_metadata_sort.ts +87 -87
  79. package/src/factories/internal/metadata/iterate_metadata_template.ts +41 -41
  80. package/src/factories/internal/metadata/iterate_metadata_tuple.ts +26 -26
  81. package/src/factories/internal/metadata/iterate_metadata_union.ts +19 -19
  82. package/src/functional.ts +740 -740
  83. package/src/http.ts +1040 -1040
  84. package/src/index.ts +4 -4
  85. package/src/internal/_IProtobufWriter.ts +18 -18
  86. package/src/internal/_ProtobufReader.ts +194 -194
  87. package/src/internal/_ProtobufSizer.ts +145 -145
  88. package/src/internal/_ProtobufWriter.ts +145 -145
  89. package/src/internal/_accessExpressionAsString.ts +46 -46
  90. package/src/internal/_assertGuard.ts +13 -13
  91. package/src/internal/_createStandardSchema.ts +134 -134
  92. package/src/internal/_functionalTypeGuardErrorFactory.ts +4 -4
  93. package/src/internal/_httpFormDataReadArray.ts +4 -4
  94. package/src/internal/_httpFormDataReadBigint.ts +18 -18
  95. package/src/internal/_httpFormDataReadBlob.ts +10 -10
  96. package/src/internal/_httpFormDataReadBoolean.ts +16 -16
  97. package/src/internal/_httpFormDataReadFile.ts +10 -10
  98. package/src/internal/_httpFormDataReadNumber.ts +15 -15
  99. package/src/internal/_httpFormDataReadString.ts +10 -10
  100. package/src/internal/_httpHeaderReadBigint.ts +10 -10
  101. package/src/internal/_httpHeaderReadBoolean.ts +8 -8
  102. package/src/internal/_httpHeaderReadNumber.ts +7 -7
  103. package/src/internal/_httpParameterReadBigint.ts +10 -10
  104. package/src/internal/_httpParameterReadBoolean.ts +8 -8
  105. package/src/internal/_httpParameterReadNumber.ts +7 -7
  106. package/src/internal/_httpParameterReadString.ts +2 -2
  107. package/src/internal/_httpQueryParseURLSearchParams.ts +12 -12
  108. package/src/internal/_httpQueryReadArray.ts +4 -4
  109. package/src/internal/_httpQueryReadBigint.ts +12 -12
  110. package/src/internal/_httpQueryReadBoolean.ts +14 -14
  111. package/src/internal/_httpQueryReadNumber.ts +9 -9
  112. package/src/internal/_httpQueryReadString.ts +4 -4
  113. package/src/internal/_isBetween.ts +2 -2
  114. package/src/internal/_isBigintString.ts +8 -8
  115. package/src/internal/_isFormatByte.ts +7 -7
  116. package/src/internal/_isFormatDate.ts +3 -3
  117. package/src/internal/_isFormatDateTime.ts +4 -4
  118. package/src/internal/_isFormatDuration.ts +4 -4
  119. package/src/internal/_isFormatEmail.ts +4 -4
  120. package/src/internal/_isFormatHostname.ts +4 -4
  121. package/src/internal/_isFormatIdnEmail.ts +4 -4
  122. package/src/internal/_isFormatIdnHostname.ts +4 -4
  123. package/src/internal/_isFormatIpv4.ts +4 -4
  124. package/src/internal/_isFormatIpv6.ts +4 -4
  125. package/src/internal/_isFormatIri.ts +3 -3
  126. package/src/internal/_isFormatIriReference.ts +4 -4
  127. package/src/internal/_isFormatJsonPointer.ts +3 -3
  128. package/src/internal/_isFormatPassword.ts +1 -1
  129. package/src/internal/_isFormatRegex.ts +8 -8
  130. package/src/internal/_isFormatRelativeJsonPointer.ts +4 -4
  131. package/src/internal/_isFormatTime.ts +4 -4
  132. package/src/internal/_isFormatUri.ts +6 -6
  133. package/src/internal/_isFormatUriReference.ts +5 -5
  134. package/src/internal/_isFormatUriTemplate.ts +4 -4
  135. package/src/internal/_isFormatUrl.ts +4 -4
  136. package/src/internal/_isFormatUuid.ts +3 -3
  137. package/src/internal/_isTypeFloat.ts +5 -5
  138. package/src/internal/_isTypeInt32.ts +5 -5
  139. package/src/internal/_isTypeInt64.ts +5 -5
  140. package/src/internal/_isTypeUint32.ts +5 -5
  141. package/src/internal/_isTypeUint64.ts +5 -5
  142. package/src/internal/_isUniqueItems.ts +159 -159
  143. package/src/internal/_jsonStringifyNumber.ts +12 -12
  144. package/src/internal/_jsonStringifyRest.ts +3 -3
  145. package/src/internal/_jsonStringifyString.ts +42 -42
  146. package/src/internal/_jsonStringifyTail.ts +2 -2
  147. package/src/internal/_llmApplicationFinalize.ts +20 -20
  148. package/src/internal/_miscCloneAny.ts +46 -46
  149. package/src/internal/_notationAny.ts +37 -37
  150. package/src/internal/_notationCamel.ts +13 -13
  151. package/src/internal/_notationPascal.ts +8 -8
  152. package/src/internal/_notationSnake.ts +43 -43
  153. package/src/internal/_randomArray.ts +21 -21
  154. package/src/internal/_randomBigint.ts +6 -6
  155. package/src/internal/_randomBoolean.ts +1 -1
  156. package/src/internal/_randomFormatByte.ts +3 -3
  157. package/src/internal/_randomFormatDate.ts +18 -18
  158. package/src/internal/_randomFormatDatetime.ts +16 -16
  159. package/src/internal/_randomFormatDuration.ts +27 -27
  160. package/src/internal/_randomFormatEmail.ts +11 -11
  161. package/src/internal/_randomFormatHostname.ts +6 -6
  162. package/src/internal/_randomFormatIdnEmail.ts +3 -3
  163. package/src/internal/_randomFormatIdnHostname.ts +3 -3
  164. package/src/internal/_randomFormatIpv4.ts +11 -11
  165. package/src/internal/_randomFormatIpv6.ts +11 -11
  166. package/src/internal/_randomFormatIri.ts +3 -3
  167. package/src/internal/_randomFormatIriReference.ts +3 -3
  168. package/src/internal/_randomFormatJsonPointer.ts +7 -7
  169. package/src/internal/_randomFormatPassword.ts +8 -8
  170. package/src/internal/_randomFormatRegex.ts +4 -4
  171. package/src/internal/_randomFormatRelativeJsonPointer.ts +8 -8
  172. package/src/internal/_randomFormatTime.ts +14 -14
  173. package/src/internal/_randomFormatUri.ts +3 -3
  174. package/src/internal/_randomFormatUriReference.ts +3 -3
  175. package/src/internal/_randomFormatUriTemplate.ts +3 -3
  176. package/src/internal/_randomFormatUrl.ts +11 -11
  177. package/src/internal/_randomFormatUuid.ts +6 -6
  178. package/src/internal/_randomInteger.ts +53 -53
  179. package/src/internal/_randomNumber.ts +80 -80
  180. package/src/internal/_randomPattern.ts +10 -10
  181. package/src/internal/_randomPick.ts +9 -9
  182. package/src/internal/_randomString.ts +24 -24
  183. package/src/internal/_throwTypeGuardError.ts +5 -5
  184. package/src/internal/_validateReport.ts +13 -13
  185. package/src/internal/private/__notationCapitalize.ts +2 -2
  186. package/src/internal/private/__notationUnsnake.ts +24 -24
  187. package/src/json.ts +696 -696
  188. package/src/llm.ts +532 -506
  189. package/src/misc.ts +651 -651
  190. package/src/module.ts +936 -936
  191. package/src/notations.ts +820 -820
  192. package/src/programmers/AssertProgrammer.ts +454 -454
  193. package/src/programmers/CheckerProgrammer.ts +1617 -1617
  194. package/src/programmers/FeatureProgrammer.ts +627 -627
  195. package/src/programmers/ImportProgrammer.ts +185 -185
  196. package/src/programmers/IsProgrammer.ts +273 -273
  197. package/src/programmers/RandomProgrammer.ts +1190 -1190
  198. package/src/programmers/TypiaProgrammer.ts +175 -175
  199. package/src/programmers/ValidateProgrammer.ts +448 -448
  200. package/src/programmers/functional/FunctionalAssertFunctionProgrammer.ts +153 -153
  201. package/src/programmers/functional/FunctionalAssertParametersProgrammer.ts +125 -125
  202. package/src/programmers/functional/FunctionalAssertReturnProgrammer.ts +115 -115
  203. package/src/programmers/functional/FunctionalIsFunctionProgrammer.ts +72 -72
  204. package/src/programmers/functional/FunctionalIsParametersProgrammer.ts +113 -113
  205. package/src/programmers/functional/FunctionalIsReturnProgrammer.ts +116 -116
  206. package/src/programmers/functional/FunctionalValidateFunctionProgrammer.ts +119 -119
  207. package/src/programmers/functional/FunctionalValidateParametersProgrammer.ts +274 -274
  208. package/src/programmers/functional/FunctionalValidateReturnProgrammer.ts +135 -135
  209. package/src/programmers/functional/internal/FunctionalGeneralProgrammer.ts +34 -34
  210. package/src/programmers/helpers/AtomicPredicator.ts +35 -35
  211. package/src/programmers/helpers/CloneJoiner.ts +143 -143
  212. package/src/programmers/helpers/FunctionProgrammer.ts +67 -67
  213. package/src/programmers/helpers/HttpMetadataUtil.ts +21 -21
  214. package/src/programmers/helpers/ICheckEntry.ts +13 -13
  215. package/src/programmers/helpers/IExpressionEntry.ts +12 -12
  216. package/src/programmers/helpers/NotationJoiner.ts +144 -144
  217. package/src/programmers/helpers/OptionPredicator.ts +15 -15
  218. package/src/programmers/helpers/ProtobufUtil.ts +228 -228
  219. package/src/programmers/helpers/ProtobufWire.ts +34 -34
  220. package/src/programmers/helpers/PruneJoiner.ts +148 -148
  221. package/src/programmers/helpers/RandomJoiner.ts +168 -168
  222. package/src/programmers/helpers/StringifyJoinder.ts +115 -115
  223. package/src/programmers/helpers/StringifyPredicator.ts +13 -13
  224. package/src/programmers/helpers/UnionExplorer.ts +372 -372
  225. package/src/programmers/helpers/UnionPredicator.ts +79 -79
  226. package/src/programmers/helpers/disable_function_programmer_declare.ts +32 -32
  227. package/src/programmers/http/HttpAssertFormDataProgrammer.ts +99 -99
  228. package/src/programmers/http/HttpAssertHeadersProgrammer.ts +99 -99
  229. package/src/programmers/http/HttpAssertQueryProgrammer.ts +105 -105
  230. package/src/programmers/http/HttpFormDataProgrammer.ts +308 -308
  231. package/src/programmers/http/HttpHeadersProgrammer.ts +400 -400
  232. package/src/programmers/http/HttpIsFormDataProgrammer.ts +108 -108
  233. package/src/programmers/http/HttpIsHeadersProgrammer.ts +108 -108
  234. package/src/programmers/http/HttpIsQueryProgrammer.ts +114 -114
  235. package/src/programmers/http/HttpParameterProgrammer.ts +115 -115
  236. package/src/programmers/http/HttpQueryProgrammer.ts +336 -336
  237. package/src/programmers/http/HttpValidateFormDataProgrammer.ts +92 -92
  238. package/src/programmers/http/HttpValidateHeadersProgrammer.ts +92 -92
  239. package/src/programmers/http/HttpValidateQueryProgrammer.ts +98 -98
  240. package/src/programmers/internal/check_array_length.ts +47 -47
  241. package/src/programmers/internal/check_bigint.ts +50 -50
  242. package/src/programmers/internal/check_dynamic_key.ts +201 -201
  243. package/src/programmers/internal/check_dynamic_properties.ts +208 -208
  244. package/src/programmers/internal/check_everything.ts +23 -23
  245. package/src/programmers/internal/check_native.ts +27 -27
  246. package/src/programmers/internal/check_number.ts +112 -112
  247. package/src/programmers/internal/check_object.ts +75 -75
  248. package/src/programmers/internal/check_string.ts +50 -50
  249. package/src/programmers/internal/check_template.ts +48 -48
  250. package/src/programmers/internal/check_union_array_like.ts +335 -335
  251. package/src/programmers/internal/decode_union_object.ts +116 -116
  252. package/src/programmers/internal/feature_object_entries.ts +61 -61
  253. package/src/programmers/internal/json_schema_alias.ts +47 -47
  254. package/src/programmers/internal/json_schema_array.ts +45 -45
  255. package/src/programmers/internal/json_schema_bigint.ts +15 -15
  256. package/src/programmers/internal/json_schema_boolean.ts +15 -15
  257. package/src/programmers/internal/json_schema_constant.ts +26 -26
  258. package/src/programmers/internal/json_schema_description.ts +12 -12
  259. package/src/programmers/internal/json_schema_discriminator.ts +35 -35
  260. package/src/programmers/internal/json_schema_escaped.ts +82 -82
  261. package/src/programmers/internal/json_schema_native.ts +33 -33
  262. package/src/programmers/internal/json_schema_number.ts +15 -15
  263. package/src/programmers/internal/json_schema_object.ts +158 -158
  264. package/src/programmers/internal/json_schema_plugin.ts +18 -18
  265. package/src/programmers/internal/json_schema_station.ts +185 -185
  266. package/src/programmers/internal/json_schema_string.ts +15 -15
  267. package/src/programmers/internal/json_schema_template.ts +55 -55
  268. package/src/programmers/internal/json_schema_title.ts +13 -13
  269. package/src/programmers/internal/json_schema_tuple.ts +35 -35
  270. package/src/programmers/internal/metadata_to_pattern.ts +42 -42
  271. package/src/programmers/internal/postfix_of_tuple.ts +5 -5
  272. package/src/programmers/internal/prune_object_properties.ts +71 -71
  273. package/src/programmers/internal/stringify_dynamic_properties.ts +162 -162
  274. package/src/programmers/internal/stringify_native.ts +7 -7
  275. package/src/programmers/internal/stringify_regular_properties.ts +81 -81
  276. package/src/programmers/internal/template_to_pattern.ts +23 -23
  277. package/src/programmers/internal/wrap_metadata_rest_tuple.ts +23 -23
  278. package/src/programmers/json/JsonApplicationProgrammer.ts +266 -266
  279. package/src/programmers/json/JsonAssertParseProgrammer.ts +113 -113
  280. package/src/programmers/json/JsonAssertStringifyProgrammer.ts +115 -115
  281. package/src/programmers/json/JsonIsParseProgrammer.ts +114 -114
  282. package/src/programmers/json/JsonIsStringifyProgrammer.ts +108 -108
  283. package/src/programmers/json/JsonSchemaProgrammer.ts +26 -26
  284. package/src/programmers/json/JsonSchemasProgrammer.ts +91 -91
  285. package/src/programmers/json/JsonStringifyProgrammer.ts +1124 -1124
  286. package/src/programmers/json/JsonValidateParseProgrammer.ts +105 -105
  287. package/src/programmers/json/JsonValidateStringifyProgrammer.ts +124 -124
  288. package/src/programmers/llm/LlmApplicationProgrammer.ts +415 -401
  289. package/src/programmers/llm/LlmModelPredicator.ts +133 -127
  290. package/src/programmers/llm/LlmParametersProgrammer.ts +93 -93
  291. package/src/programmers/llm/LlmSchemaProgrammer.ts +192 -192
  292. package/src/programmers/misc/MiscAssertCloneProgrammer.ts +95 -95
  293. package/src/programmers/misc/MiscAssertPruneProgrammer.ts +116 -116
  294. package/src/programmers/misc/MiscCloneProgrammer.ts +1032 -1032
  295. package/src/programmers/misc/MiscIsCloneProgrammer.ts +99 -99
  296. package/src/programmers/misc/MiscIsPruneProgrammer.ts +97 -97
  297. package/src/programmers/misc/MiscLiteralsProgrammer.ts +80 -80
  298. package/src/programmers/misc/MiscPruneProgrammer.ts +728 -728
  299. package/src/programmers/misc/MiscValidateCloneProgrammer.ts +111 -111
  300. package/src/programmers/misc/MiscValidatePruneProgrammer.ts +113 -113
  301. package/src/programmers/notations/NotationAssertGeneralProgrammer.ts +101 -101
  302. package/src/programmers/notations/NotationGeneralProgrammer.ts +984 -984
  303. package/src/programmers/notations/NotationIsGeneralProgrammer.ts +105 -105
  304. package/src/programmers/notations/NotationValidateGeneralProgrammer.ts +119 -119
  305. package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +98 -98
  306. package/src/programmers/protobuf/ProtobufAssertEncodeProgrammer.ts +102 -102
  307. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +654 -654
  308. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +945 -945
  309. package/src/programmers/protobuf/ProtobufIsDecodeProgrammer.ts +109 -109
  310. package/src/programmers/protobuf/ProtobufIsEncodeProgrammer.ts +98 -98
  311. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +179 -179
  312. package/src/programmers/protobuf/ProtobufValidateDecodeProgrammer.ts +92 -92
  313. package/src/programmers/protobuf/ProtobufValidateEncodeProgrammer.ts +119 -119
  314. package/src/protobuf.ts +861 -861
  315. package/src/reflect.ts +50 -50
  316. package/src/schemas/json/IJsonApplication.ts +77 -77
  317. package/src/schemas/json/IJsonSchemaCollection.ts +195 -195
  318. package/src/schemas/json/IJsonSchemaUnit.ts +250 -250
  319. package/src/schemas/json/__IJsonApplication.ts +63 -63
  320. package/src/schemas/metadata/IJsDocTagInfo.ts +10 -10
  321. package/src/schemas/metadata/IMetadata.ts +35 -35
  322. package/src/schemas/metadata/IMetadataAlias.ts +6 -6
  323. package/src/schemas/metadata/IMetadataAliasType.ts +12 -12
  324. package/src/schemas/metadata/IMetadataApplication.ts +7 -7
  325. package/src/schemas/metadata/IMetadataArray.ts +6 -6
  326. package/src/schemas/metadata/IMetadataArrayType.ts +10 -10
  327. package/src/schemas/metadata/IMetadataAtomic.ts +6 -6
  328. package/src/schemas/metadata/IMetadataComponents.ts +11 -11
  329. package/src/schemas/metadata/IMetadataConstant.ts +18 -18
  330. package/src/schemas/metadata/IMetadataConstantValue.ts +11 -11
  331. package/src/schemas/metadata/IMetadataDictionary.ts +11 -11
  332. package/src/schemas/metadata/IMetadataEscaped.ts +6 -6
  333. package/src/schemas/metadata/IMetadataFunction.ts +8 -8
  334. package/src/schemas/metadata/IMetadataMap.ts +8 -8
  335. package/src/schemas/metadata/IMetadataNative.ts +6 -6
  336. package/src/schemas/metadata/IMetadataObject.ts +6 -6
  337. package/src/schemas/metadata/IMetadataObjectType.ts +13 -13
  338. package/src/schemas/metadata/IMetadataParameter.ts +9 -9
  339. package/src/schemas/metadata/IMetadataProperty.ts +9 -9
  340. package/src/schemas/metadata/IMetadataSet.ts +7 -7
  341. package/src/schemas/metadata/IMetadataTemplate.ts +7 -7
  342. package/src/schemas/metadata/IMetadataTuple.ts +6 -6
  343. package/src/schemas/metadata/IMetadataTupleType.ts +10 -10
  344. package/src/schemas/metadata/IMetadataTypeTag.ts +16 -16
  345. package/src/schemas/metadata/Metadata.ts +687 -687
  346. package/src/schemas/metadata/MetadataAlias.ts +46 -46
  347. package/src/schemas/metadata/MetadataAliasType.ts +63 -63
  348. package/src/schemas/metadata/MetadataApplication.ts +44 -44
  349. package/src/schemas/metadata/MetadataArray.ts +49 -49
  350. package/src/schemas/metadata/MetadataArrayType.ts +57 -57
  351. package/src/schemas/metadata/MetadataAtomic.ts +87 -87
  352. package/src/schemas/metadata/MetadataComponents.ts +98 -98
  353. package/src/schemas/metadata/MetadataConstant.ts +34 -34
  354. package/src/schemas/metadata/MetadataConstantValue.ts +62 -62
  355. package/src/schemas/metadata/MetadataEscaped.ts +51 -51
  356. package/src/schemas/metadata/MetadataFunction.ts +49 -49
  357. package/src/schemas/metadata/MetadataMap.ts +48 -48
  358. package/src/schemas/metadata/MetadataNative.ts +44 -44
  359. package/src/schemas/metadata/MetadataObject.ts +48 -48
  360. package/src/schemas/metadata/MetadataObjectType.ts +149 -149
  361. package/src/schemas/metadata/MetadataParameter.ts +54 -54
  362. package/src/schemas/metadata/MetadataProperty.ts +59 -59
  363. package/src/schemas/metadata/MetadataSet.ts +45 -45
  364. package/src/schemas/metadata/MetadataTemplate.ts +80 -80
  365. package/src/schemas/metadata/MetadataTuple.ts +32 -32
  366. package/src/schemas/metadata/MetadataTupleType.ts +67 -67
  367. package/src/schemas/protobuf/IProtobufProperty.ts +6 -6
  368. package/src/schemas/protobuf/IProtobufPropertyType.ts +37 -37
  369. package/src/schemas/protobuf/IProtobufSchema.ts +50 -50
  370. package/src/tags/Constant.ts +15 -15
  371. package/src/tags/ContentMediaType.ts +10 -10
  372. package/src/tags/Default.ts +22 -22
  373. package/src/tags/Example.ts +24 -24
  374. package/src/tags/Examples.ts +16 -16
  375. package/src/tags/ExclusiveMaximum.ts +23 -23
  376. package/src/tags/ExclusiveMinimum.ts +23 -23
  377. package/src/tags/Format.ts +50 -50
  378. package/src/tags/JsonSchemaPlugin.ts +8 -8
  379. package/src/tags/MaxItems.ts +12 -12
  380. package/src/tags/MaxLength.ts +12 -12
  381. package/src/tags/Maximum.ts +19 -19
  382. package/src/tags/MinItems.ts +12 -12
  383. package/src/tags/MinLength.ts +12 -12
  384. package/src/tags/Minimum.ts +19 -19
  385. package/src/tags/MultipleOf.ts +21 -21
  386. package/src/tags/Pattern.ts +31 -31
  387. package/src/tags/Sequence.ts +10 -10
  388. package/src/tags/TagBase.ts +82 -82
  389. package/src/tags/Type.ts +37 -37
  390. package/src/tags/UniqueItems.ts +14 -14
  391. package/src/tags/index.ts +21 -21
  392. package/src/tags/internal/FormatCheatSheet.ts +73 -73
  393. package/src/transform.ts +35 -35
  394. package/src/transformers/CallExpressionTransformer.ts +554 -554
  395. package/src/transformers/FileTransformer.ts +136 -136
  396. package/src/transformers/IProgrammerProps.ts +11 -11
  397. package/src/transformers/ITransformOptions.ts +62 -62
  398. package/src/transformers/ITransformProps.ts +9 -9
  399. package/src/transformers/ITypiaContext.ts +18 -18
  400. package/src/transformers/ImportTransformer.ts +81 -81
  401. package/src/transformers/NoTransformConfigurationError.ts +18 -18
  402. package/src/transformers/NodeTransformer.ts +17 -17
  403. package/src/transformers/TransformerError.ts +60 -60
  404. package/src/transformers/features/AssertTransformer.ts +24 -24
  405. package/src/transformers/features/CreateAssertTransformer.ts +24 -24
  406. package/src/transformers/features/CreateIsTransformer.ts +18 -18
  407. package/src/transformers/features/CreateRandomTransformer.ts +43 -43
  408. package/src/transformers/features/CreateValidateTransformer.ts +18 -18
  409. package/src/transformers/features/IsTransformer.ts +18 -18
  410. package/src/transformers/features/RandomTransformer.ts +41 -41
  411. package/src/transformers/features/ValidateTransformer.ts +18 -18
  412. package/src/transformers/features/functional/FunctionalGenericTransformer.ts +57 -57
  413. package/src/transformers/features/http/CreateHttpAssertFormDataTransformer.ts +13 -13
  414. package/src/transformers/features/http/CreateHttpAssertHeadersTransformer.ts +13 -13
  415. package/src/transformers/features/http/CreateHttpAssertQueryTransformer.ts +13 -13
  416. package/src/transformers/features/http/CreateHttpFormDataTransformer.ts +13 -13
  417. package/src/transformers/features/http/CreateHttpHeadersTransformer.ts +13 -13
  418. package/src/transformers/features/http/CreateHttpIsFormDataTransformer.ts +13 -13
  419. package/src/transformers/features/http/CreateHttpIsHeadersTransformer.ts +13 -13
  420. package/src/transformers/features/http/CreateHttpIsQueryTransformer.ts +13 -13
  421. package/src/transformers/features/http/CreateHttpParameterTransformer.ts +13 -13
  422. package/src/transformers/features/http/CreateHttpQueryTransformer.ts +13 -13
  423. package/src/transformers/features/http/CreateHttpValidateFormDataTransformer.ts +13 -13
  424. package/src/transformers/features/http/CreateHttpValidateHeadersTransformer.ts +13 -13
  425. package/src/transformers/features/http/CreateHttpValidateQueryTransformer.ts +13 -13
  426. package/src/transformers/features/http/HttpAssertFormDataTransformer.ts +13 -13
  427. package/src/transformers/features/http/HttpAssertHeadersTransformer.ts +13 -13
  428. package/src/transformers/features/http/HttpAssertQueryTransformer.ts +13 -13
  429. package/src/transformers/features/http/HttpFormDataTransformer.ts +13 -13
  430. package/src/transformers/features/http/HttpHeadersTransformer.ts +13 -13
  431. package/src/transformers/features/http/HttpIsFormDataTransformer.ts +13 -13
  432. package/src/transformers/features/http/HttpIsHeadersTransformer.ts +13 -13
  433. package/src/transformers/features/http/HttpIsQueryTransformer.ts +13 -13
  434. package/src/transformers/features/http/HttpParameterTransformer.ts +13 -13
  435. package/src/transformers/features/http/HttpQueryTransformer.ts +13 -13
  436. package/src/transformers/features/http/HttpValidateFormDataTransformer.ts +13 -13
  437. package/src/transformers/features/http/HttpValidateHeadersTransformer.ts +13 -13
  438. package/src/transformers/features/http/HttpValidateQueryTransformer.ts +13 -13
  439. package/src/transformers/features/json/JsonApplicationTransformer.ts +105 -105
  440. package/src/transformers/features/json/JsonAssertParseTransformer.ts +13 -13
  441. package/src/transformers/features/json/JsonAssertStringifyTransformer.ts +13 -13
  442. package/src/transformers/features/json/JsonCreateAssertParseTransformer.ts +13 -13
  443. package/src/transformers/features/json/JsonCreateAssertStringifyTransformer.ts +13 -13
  444. package/src/transformers/features/json/JsonCreateIsParseTransformer.ts +13 -13
  445. package/src/transformers/features/json/JsonCreateIsStringifyTransformer.ts +13 -13
  446. package/src/transformers/features/json/JsonCreateStringifyTransformer.ts +13 -13
  447. package/src/transformers/features/json/JsonCreateValidateParseTransformer.ts +13 -13
  448. package/src/transformers/features/json/JsonCreateValidateStringifyProgrammer.ts +13 -13
  449. package/src/transformers/features/json/JsonIsParseTransformer.ts +13 -13
  450. package/src/transformers/features/json/JsonIsStringifyTransformer.ts +13 -13
  451. package/src/transformers/features/json/JsonSchemaTransformer.ts +135 -135
  452. package/src/transformers/features/json/JsonSchemasTransformer.ts +145 -145
  453. package/src/transformers/features/json/JsonStringifyTransformer.ts +13 -13
  454. package/src/transformers/features/json/JsonValidateParseTransformer.ts +13 -13
  455. package/src/transformers/features/json/JsonValidateStringifyTransformer.ts +13 -13
  456. package/src/transformers/features/llm/LlmApplicationTransformer.ts +149 -145
  457. package/src/transformers/features/llm/LlmControllerTransformer.ts +93 -93
  458. package/src/transformers/features/llm/LlmParametersTransformer.ts +102 -102
  459. package/src/transformers/features/llm/LlmSchemaTransformer.ts +170 -170
  460. package/src/transformers/features/misc/MiscAssertCloneTransformer.ts +13 -13
  461. package/src/transformers/features/misc/MiscAssertPruneTransformer.ts +13 -13
  462. package/src/transformers/features/misc/MiscCloneTransformer.ts +13 -13
  463. package/src/transformers/features/misc/MiscCreateAssertCloneTransformer.ts +13 -13
  464. package/src/transformers/features/misc/MiscCreateAssertPruneTransformer.ts +13 -13
  465. package/src/transformers/features/misc/MiscCreateCloneTransformer.ts +13 -13
  466. package/src/transformers/features/misc/MiscCreateIsCloneTransformer.ts +13 -13
  467. package/src/transformers/features/misc/MiscCreateIsPruneTransformer.ts +13 -13
  468. package/src/transformers/features/misc/MiscCreatePruneTransformer.ts +13 -13
  469. package/src/transformers/features/misc/MiscCreateValidateCloneTransformer.ts +13 -13
  470. package/src/transformers/features/misc/MiscCreateValidatePruneTransformer.ts +13 -13
  471. package/src/transformers/features/misc/MiscIsCloneTransformer.ts +13 -13
  472. package/src/transformers/features/misc/MiscIsPruneTransformer.ts +13 -13
  473. package/src/transformers/features/misc/MiscLiteralsTransformer.ts +35 -35
  474. package/src/transformers/features/misc/MiscPruneTransformer.ts +13 -13
  475. package/src/transformers/features/misc/MiscValidateCloneTransformer.ts +13 -13
  476. package/src/transformers/features/misc/MiscValidatePruneTransformer.ts +13 -13
  477. package/src/transformers/features/notations/NotationAssertGeneralTransformer.ts +20 -20
  478. package/src/transformers/features/notations/NotationCreateAssertGeneralTransformer.ts +20 -20
  479. package/src/transformers/features/notations/NotationCreateGeneralTransformer.ts +20 -20
  480. package/src/transformers/features/notations/NotationCreateIsGeneralTransformer.ts +20 -20
  481. package/src/transformers/features/notations/NotationCreateValidateGeneralTransformer.ts +20 -20
  482. package/src/transformers/features/notations/NotationGeneralTransformer.ts +18 -18
  483. package/src/transformers/features/notations/NotationIsGeneralTransformer.ts +20 -20
  484. package/src/transformers/features/notations/NotationValidateGeneralTransformer.ts +20 -20
  485. package/src/transformers/features/protobuf/ProtobufAssertDecodeTransformer.ts +13 -13
  486. package/src/transformers/features/protobuf/ProtobufAssertEncodeTransformer.ts +13 -13
  487. package/src/transformers/features/protobuf/ProtobufCreateAssertDecodeTransformer.ts +13 -13
  488. package/src/transformers/features/protobuf/ProtobufCreateAssertEncodeTransformer.ts +13 -13
  489. package/src/transformers/features/protobuf/ProtobufCreateDecodeTransformer.ts +13 -13
  490. package/src/transformers/features/protobuf/ProtobufCreateEncodeTransformer.ts +13 -13
  491. package/src/transformers/features/protobuf/ProtobufCreateIsDecodeTransformer.ts +13 -13
  492. package/src/transformers/features/protobuf/ProtobufCreateIsEncodeTransformer.ts +13 -13
  493. package/src/transformers/features/protobuf/ProtobufCreateValidateDecodeTransformer.ts +13 -13
  494. package/src/transformers/features/protobuf/ProtobufCreateValidateEncodeTransformer.ts +13 -13
  495. package/src/transformers/features/protobuf/ProtobufDecodeTransformer.ts +13 -13
  496. package/src/transformers/features/protobuf/ProtobufEncodeTransformer.ts +13 -13
  497. package/src/transformers/features/protobuf/ProtobufIsDecodeTransformer.ts +13 -13
  498. package/src/transformers/features/protobuf/ProtobufIsEncodeTransformer.ts +13 -13
  499. package/src/transformers/features/protobuf/ProtobufMessageTransformer.ts +35 -35
  500. package/src/transformers/features/protobuf/ProtobufValidateDecodeTransformer.ts +13 -13
  501. package/src/transformers/features/protobuf/ProtobufValidateEncodeTransformer.ts +13 -13
  502. package/src/transformers/features/reflect/ReflectMetadataTransformer.ts +69 -69
  503. package/src/transformers/features/reflect/ReflectNameTransformer.ts +82 -82
  504. package/src/transformers/internal/GenericTransformer.ts +101 -101
  505. package/src/typings/Atomic.ts +13 -13
  506. package/src/typings/ClassProperties.ts +5 -5
  507. package/src/typings/Customizable.ts +5 -5
  508. package/src/typings/Equal.ts +18 -18
  509. package/src/typings/IsTuple.ts +9 -9
  510. package/src/typings/NativeClass.ts +23 -23
  511. package/src/typings/OmitNever.ts +3 -3
  512. package/src/typings/ProtobufAtomic.ts +19 -19
  513. package/src/typings/SpecialFields.ts +3 -3
  514. package/src/typings/ValidationPipe.ts +9 -9
  515. package/src/typings/ValueOf.ts +20 -20
  516. package/src/typings/Writable.ts +11 -11
  517. package/src/utils/ArrayUtil.ts +41 -41
  518. package/src/utils/Escaper.ts +50 -50
  519. package/src/utils/MapUtil.ts +14 -14
  520. package/src/utils/NamingConvention.ts +94 -94
  521. package/src/utils/PatternUtil.ts +29 -29
  522. package/src/utils/ProtobufNameEncoder.ts +32 -32
  523. package/src/utils/Singleton.ts +16 -16
  524. package/src/utils/StringUtil.ts +16 -16
package/src/SnakeCase.ts CHANGED
@@ -1,126 +1,126 @@
1
- import { Equal } from "./typings/Equal";
2
- import { NativeClass } from "./typings/NativeClass";
3
- import { ValueOf } from "./typings/ValueOf";
4
-
5
- /**
6
- * Snake case type.
7
- *
8
- * `SnakeCase` type is a type that all keys of an object are converted to snake case.
9
- *
10
- * It also erase every method properties like {@link Resolved} type.
11
- *
12
- * @template T Target type to be snake cased
13
- * @author Jeongho Nam - https://github.com/samchon
14
- */
15
- export type SnakeCase<T> =
16
- Equal<T, SnakageMain<T>> extends true ? T : SnakageMain<T>;
17
-
18
- /* -----------------------------------------------------------
19
- OBJECT CONVERSION
20
- ----------------------------------------------------------- */
21
-
22
- type SnakageMain<T> = T extends [never]
23
- ? never // special trick for (jsonable | null) type
24
- : T extends { valueOf(): boolean | bigint | number | string }
25
- ? ValueOf<T>
26
- : T extends Function
27
- ? never
28
- : T extends object
29
- ? SnakageObject<T>
30
- : T;
31
-
32
- type SnakageObject<T extends object> =
33
- T extends Array<infer U>
34
- ? IsTuple<T> extends true
35
- ? SnakageTuple<T>
36
- : SnakageMain<U>[]
37
- : T extends Set<infer U>
38
- ? Set<SnakageMain<U>>
39
- : T extends Map<infer K, infer V>
40
- ? Map<SnakageMain<K>, SnakageMain<V>>
41
- : T extends WeakSet<any> | WeakMap<any, any>
42
- ? never
43
- : T extends NativeClass
44
- ? T
45
- : {
46
- [Key in keyof T as SnakageString<Key & string>]: SnakageMain<
47
- T[Key]
48
- >;
49
- };
50
-
51
- /* -----------------------------------------------------------
52
- SPECIAL CASES
53
- ----------------------------------------------------------- */
54
- type IsTuple<T extends readonly any[] | { length: number }> = [T] extends [
55
- never,
56
- ]
57
- ? false
58
- : T extends readonly any[]
59
- ? number extends T["length"]
60
- ? false
61
- : true
62
- : false;
63
- type SnakageTuple<T extends readonly any[]> = T extends []
64
- ? []
65
- : T extends [infer F]
66
- ? [SnakageMain<F>]
67
- : T extends [infer F, ...infer Rest extends readonly any[]]
68
- ? [SnakageMain<F>, ...SnakageTuple<Rest>]
69
- : T extends [(infer F)?]
70
- ? [SnakageMain<F>?]
71
- : T extends [(infer F)?, ...infer Rest extends readonly any[]]
72
- ? [SnakageMain<F>?, ...SnakageTuple<Rest>]
73
- : [];
74
-
75
- /* -----------------------------------------------------------
76
- STRING CONVERTER
77
- ----------------------------------------------------------- */
78
- type SnakageString<Key extends string> = Key extends `${infer _}`
79
- ? SnakageStringRepeatedly<Key, "">
80
- : Key;
81
- type SnakageStringRepeatedly<
82
- S extends string,
83
- Previous extends string,
84
- > = S extends `${infer First}${infer Second}${infer Rest}`
85
- ? `${Underscore<Previous, First>}${Lowercase<First>}${Underscore<
86
- First,
87
- Second
88
- >}${Lowercase<Second>}${SnakageStringRepeatedly<Rest, Second>}`
89
- : S extends `${infer First}`
90
- ? `${Underscore<Previous, First>}${Lowercase<First>}`
91
- : "";
92
- type Underscore<First extends string, Second extends string> = First extends
93
- | UpperAlphabetic
94
- | ""
95
- | "_"
96
- ? ""
97
- : Second extends UpperAlphabetic
98
- ? "_"
99
- : "";
100
- type UpperAlphabetic =
101
- | "A"
102
- | "B"
103
- | "C"
104
- | "D"
105
- | "E"
106
- | "F"
107
- | "G"
108
- | "H"
109
- | "I"
110
- | "J"
111
- | "K"
112
- | "L"
113
- | "M"
114
- | "N"
115
- | "O"
116
- | "P"
117
- | "Q"
118
- | "R"
119
- | "S"
120
- | "T"
121
- | "U"
122
- | "V"
123
- | "W"
124
- | "X"
125
- | "Y"
126
- | "Z";
1
+ import { Equal } from "./typings/Equal";
2
+ import { NativeClass } from "./typings/NativeClass";
3
+ import { ValueOf } from "./typings/ValueOf";
4
+
5
+ /**
6
+ * Snake case type.
7
+ *
8
+ * `SnakeCase` type is a type that all keys of an object are converted to snake case.
9
+ *
10
+ * It also erase every method properties like {@link Resolved} type.
11
+ *
12
+ * @template T Target type to be snake cased
13
+ * @author Jeongho Nam - https://github.com/samchon
14
+ */
15
+ export type SnakeCase<T> =
16
+ Equal<T, SnakageMain<T>> extends true ? T : SnakageMain<T>;
17
+
18
+ /* -----------------------------------------------------------
19
+ OBJECT CONVERSION
20
+ ----------------------------------------------------------- */
21
+
22
+ type SnakageMain<T> = T extends [never]
23
+ ? never // special trick for (jsonable | null) type
24
+ : T extends { valueOf(): boolean | bigint | number | string }
25
+ ? ValueOf<T>
26
+ : T extends Function
27
+ ? never
28
+ : T extends object
29
+ ? SnakageObject<T>
30
+ : T;
31
+
32
+ type SnakageObject<T extends object> =
33
+ T extends Array<infer U>
34
+ ? IsTuple<T> extends true
35
+ ? SnakageTuple<T>
36
+ : SnakageMain<U>[]
37
+ : T extends Set<infer U>
38
+ ? Set<SnakageMain<U>>
39
+ : T extends Map<infer K, infer V>
40
+ ? Map<SnakageMain<K>, SnakageMain<V>>
41
+ : T extends WeakSet<any> | WeakMap<any, any>
42
+ ? never
43
+ : T extends NativeClass
44
+ ? T
45
+ : {
46
+ [Key in keyof T as SnakageString<Key & string>]: SnakageMain<
47
+ T[Key]
48
+ >;
49
+ };
50
+
51
+ /* -----------------------------------------------------------
52
+ SPECIAL CASES
53
+ ----------------------------------------------------------- */
54
+ type IsTuple<T extends readonly any[] | { length: number }> = [T] extends [
55
+ never,
56
+ ]
57
+ ? false
58
+ : T extends readonly any[]
59
+ ? number extends T["length"]
60
+ ? false
61
+ : true
62
+ : false;
63
+ type SnakageTuple<T extends readonly any[]> = T extends []
64
+ ? []
65
+ : T extends [infer F]
66
+ ? [SnakageMain<F>]
67
+ : T extends [infer F, ...infer Rest extends readonly any[]]
68
+ ? [SnakageMain<F>, ...SnakageTuple<Rest>]
69
+ : T extends [(infer F)?]
70
+ ? [SnakageMain<F>?]
71
+ : T extends [(infer F)?, ...infer Rest extends readonly any[]]
72
+ ? [SnakageMain<F>?, ...SnakageTuple<Rest>]
73
+ : [];
74
+
75
+ /* -----------------------------------------------------------
76
+ STRING CONVERTER
77
+ ----------------------------------------------------------- */
78
+ type SnakageString<Key extends string> = Key extends `${infer _}`
79
+ ? SnakageStringRepeatedly<Key, "">
80
+ : Key;
81
+ type SnakageStringRepeatedly<
82
+ S extends string,
83
+ Previous extends string,
84
+ > = S extends `${infer First}${infer Second}${infer Rest}`
85
+ ? `${Underscore<Previous, First>}${Lowercase<First>}${Underscore<
86
+ First,
87
+ Second
88
+ >}${Lowercase<Second>}${SnakageStringRepeatedly<Rest, Second>}`
89
+ : S extends `${infer First}`
90
+ ? `${Underscore<Previous, First>}${Lowercase<First>}`
91
+ : "";
92
+ type Underscore<First extends string, Second extends string> = First extends
93
+ | UpperAlphabetic
94
+ | ""
95
+ | "_"
96
+ ? ""
97
+ : Second extends UpperAlphabetic
98
+ ? "_"
99
+ : "";
100
+ type UpperAlphabetic =
101
+ | "A"
102
+ | "B"
103
+ | "C"
104
+ | "D"
105
+ | "E"
106
+ | "F"
107
+ | "G"
108
+ | "H"
109
+ | "I"
110
+ | "J"
111
+ | "K"
112
+ | "L"
113
+ | "M"
114
+ | "N"
115
+ | "O"
116
+ | "P"
117
+ | "Q"
118
+ | "R"
119
+ | "S"
120
+ | "T"
121
+ | "U"
122
+ | "V"
123
+ | "W"
124
+ | "X"
125
+ | "Y"
126
+ | "Z";
@@ -1,179 +1,179 @@
1
- /**
2
- * Custom error class thrown when runtime assertion fails in `typia.assert<T>()` function.
3
- *
4
- * This error is thrown by the `typia.assert<T>()` function when the input value
5
- * doesn't match the expected type.
6
- *
7
- * The error provides detailed information about the first assertion failure encountered,
8
- * including the access path where the error occurred, the expected type, and the actual value.
9
- *
10
- * @template T - The expected type (generic for type safety)
11
- * @author Jeongho Nam - https://github.com/samchon
12
- * @example
13
- * ```typescript
14
- * interface IMember {
15
- * name: string;
16
- * age: number & ExclusiveMinimum<19>;
17
- * }
18
- *
19
- * try {
20
- * typia.assert<IMember>({ name: "John", age: 18 });
21
- * } catch (error) {
22
- * if (error instanceof TypeGuardError) {
23
- * console.log(error.method); // "typia.assert"
24
- * console.log(error.path); // "input.age"
25
- * console.log(error.expected); // "number & ExclusiveMinimum<19>"
26
- * console.log(error.value); // 18
27
- * }
28
- * }
29
- * ```
30
- */
31
- export class TypeGuardError<T = any> extends Error {
32
- /**
33
- * The name of the typia method that threw this error.
34
- *
35
- * @example "typia.assert"
36
- */
37
- public readonly method: string;
38
-
39
- /**
40
- * The access path to the property where the assertion error occurred.
41
- *
42
- * Uses dot notation to indicate the path for nested object properties.
43
- * May be `undefined` if the error occurred at the root level.
44
- *
45
- * @example
46
- * - `"input.age"` - Error in the age property of the object
47
- * - `"input.profile.email"` - Error in the email property of a nested object
48
- * - `"input[0].name"` - Error in the name property of the first array element
49
- * - `undefined` - Error occurred at the root level
50
- */
51
- public readonly path: string | undefined;
52
-
53
- /**
54
- * String representation of the expected type at the error location.
55
- *
56
- * Represents TypeScript types as strings, including detailed type information
57
- * for complex types.
58
- *
59
- * @example
60
- * - `"string"` - Expected string type
61
- * - `"number & ExclusiveMinimum<19>"` - Expected number greater than 19
62
- * - `"undefined"` - Expected undefined (when superfluous property found in assertion)
63
- * - `"{ name: string; age: number }"` - Expected object type
64
- */
65
- public readonly expected: string;
66
-
67
- /**
68
- * The actual value that failed assertion.
69
- *
70
- * Stores the actual value at the error path as-is.
71
- * Useful for debugging by comparing the expected type with the actual value.
72
- *
73
- * @example
74
- * - `18` - Numeric value
75
- * - `"invalid"` - String value
76
- * - `{ name: "John", age: 18, sex: 1 }` - Object value
77
- */
78
- public readonly value: unknown;
79
-
80
- /**
81
- * Phantom property for type safety purposes.
82
- *
83
- * This property is not actually used and exists only to maintain
84
- * the generic type T in TypeScript's type system.
85
- * Always has an `undefined` value at runtime.
86
- *
87
- * @internal
88
- */
89
- protected readonly fake_expected_typed_value_?: T | undefined;
90
-
91
- /**
92
- * Creates a new TypeGuardError instance.
93
- *
94
- * @param props - Object containing the properties needed to create the error
95
- *
96
- * @example
97
- * ```typescript
98
- * const error = new TypeGuardError({
99
- * method: "typia.assert",
100
- * path: "input.age",
101
- * expected: "number & ExclusiveMinimum<19>",
102
- * value: 18
103
- * });
104
- * ```
105
- */
106
- public constructor(props: TypeGuardError.IProps) {
107
- // MESSAGE CONSTRUCTION
108
- // Use custom message if provided, otherwise generate default format
109
- super(
110
- props.message ||
111
- `Error on ${props.method}(): invalid type${
112
- props.path ? ` on ${props.path}` : ""
113
- }, expect to be ${props.expected}`,
114
- );
115
-
116
- // INHERITANCE POLYFILL
117
- // Set up prototype for compatibility across different JavaScript environments
118
- const proto = new.target.prototype;
119
- if (Object.setPrototypeOf) Object.setPrototypeOf(this, proto);
120
- else (this as any).__proto__ = proto;
121
-
122
- // ASSIGN MEMBERS
123
- this.method = props.method;
124
- this.path = props.path;
125
- this.expected = props.expected;
126
- this.value = props.value;
127
- }
128
- }
129
-
130
- export namespace TypeGuardError {
131
- /**
132
- * Interface for properties passed to the TypeGuardError constructor.
133
- *
134
- * @example
135
- * ```typescript
136
- * const props: TypeGuardError.IProps = {
137
- * method: "typia.assertEquals",
138
- * path: "input.sex",
139
- * expected: "undefined",
140
- * value: 1,
141
- * message: "Custom error message" // optional
142
- * };
143
- * ```
144
- */
145
- export interface IProps {
146
- /**
147
- * The name of the typia method that threw the error.
148
- *
149
- * @example "typia.assert", "typia.assertEquals"
150
- */
151
- method: string;
152
-
153
- /**
154
- * The access path to the property where the assertion error occurred (optional).
155
- *
156
- * @example "input.age", "input.profile.email"
157
- */
158
- path?: undefined | string;
159
-
160
- /**
161
- * String representation of the expected type at the error location.
162
- *
163
- * @example "string", "number & ExclusiveMinimum<19>"
164
- */
165
- expected: string;
166
-
167
- /**
168
- * The actual value that failed assertion.
169
- */
170
- value: unknown;
171
-
172
- /**
173
- * Custom error message (optional).
174
- *
175
- * If not provided, a default format message will be automatically generated.
176
- */
177
- message?: undefined | string;
178
- }
179
- }
1
+ /**
2
+ * Custom error class thrown when runtime assertion fails in `typia.assert<T>()` function.
3
+ *
4
+ * This error is thrown by the `typia.assert<T>()` function when the input value
5
+ * doesn't match the expected type.
6
+ *
7
+ * The error provides detailed information about the first assertion failure encountered,
8
+ * including the access path where the error occurred, the expected type, and the actual value.
9
+ *
10
+ * @template T - The expected type (generic for type safety)
11
+ * @author Jeongho Nam - https://github.com/samchon
12
+ * @example
13
+ * ```typescript
14
+ * interface IMember {
15
+ * name: string;
16
+ * age: number & ExclusiveMinimum<19>;
17
+ * }
18
+ *
19
+ * try {
20
+ * typia.assert<IMember>({ name: "John", age: 18 });
21
+ * } catch (error) {
22
+ * if (error instanceof TypeGuardError) {
23
+ * console.log(error.method); // "typia.assert"
24
+ * console.log(error.path); // "input.age"
25
+ * console.log(error.expected); // "number & ExclusiveMinimum<19>"
26
+ * console.log(error.value); // 18
27
+ * }
28
+ * }
29
+ * ```
30
+ */
31
+ export class TypeGuardError<T = any> extends Error {
32
+ /**
33
+ * The name of the typia method that threw this error.
34
+ *
35
+ * @example "typia.assert"
36
+ */
37
+ public readonly method: string;
38
+
39
+ /**
40
+ * The access path to the property where the assertion error occurred.
41
+ *
42
+ * Uses dot notation to indicate the path for nested object properties.
43
+ * May be `undefined` if the error occurred at the root level.
44
+ *
45
+ * @example
46
+ * - `"input.age"` - Error in the age property of the object
47
+ * - `"input.profile.email"` - Error in the email property of a nested object
48
+ * - `"input[0].name"` - Error in the name property of the first array element
49
+ * - `undefined` - Error occurred at the root level
50
+ */
51
+ public readonly path: string | undefined;
52
+
53
+ /**
54
+ * String representation of the expected type at the error location.
55
+ *
56
+ * Represents TypeScript types as strings, including detailed type information
57
+ * for complex types.
58
+ *
59
+ * @example
60
+ * - `"string"` - Expected string type
61
+ * - `"number & ExclusiveMinimum<19>"` - Expected number greater than 19
62
+ * - `"undefined"` - Expected undefined (when superfluous property found in assertion)
63
+ * - `"{ name: string; age: number }"` - Expected object type
64
+ */
65
+ public readonly expected: string;
66
+
67
+ /**
68
+ * The actual value that failed assertion.
69
+ *
70
+ * Stores the actual value at the error path as-is.
71
+ * Useful for debugging by comparing the expected type with the actual value.
72
+ *
73
+ * @example
74
+ * - `18` - Numeric value
75
+ * - `"invalid"` - String value
76
+ * - `{ name: "John", age: 18, sex: 1 }` - Object value
77
+ */
78
+ public readonly value: unknown;
79
+
80
+ /**
81
+ * Phantom property for type safety purposes.
82
+ *
83
+ * This property is not actually used and exists only to maintain
84
+ * the generic type T in TypeScript's type system.
85
+ * Always has an `undefined` value at runtime.
86
+ *
87
+ * @internal
88
+ */
89
+ protected readonly fake_expected_typed_value_?: T | undefined;
90
+
91
+ /**
92
+ * Creates a new TypeGuardError instance.
93
+ *
94
+ * @param props - Object containing the properties needed to create the error
95
+ *
96
+ * @example
97
+ * ```typescript
98
+ * const error = new TypeGuardError({
99
+ * method: "typia.assert",
100
+ * path: "input.age",
101
+ * expected: "number & ExclusiveMinimum<19>",
102
+ * value: 18
103
+ * });
104
+ * ```
105
+ */
106
+ public constructor(props: TypeGuardError.IProps) {
107
+ // MESSAGE CONSTRUCTION
108
+ // Use custom message if provided, otherwise generate default format
109
+ super(
110
+ props.message ||
111
+ `Error on ${props.method}(): invalid type${
112
+ props.path ? ` on ${props.path}` : ""
113
+ }, expect to be ${props.expected}`,
114
+ );
115
+
116
+ // INHERITANCE POLYFILL
117
+ // Set up prototype for compatibility across different JavaScript environments
118
+ const proto = new.target.prototype;
119
+ if (Object.setPrototypeOf) Object.setPrototypeOf(this, proto);
120
+ else (this as any).__proto__ = proto;
121
+
122
+ // ASSIGN MEMBERS
123
+ this.method = props.method;
124
+ this.path = props.path;
125
+ this.expected = props.expected;
126
+ this.value = props.value;
127
+ }
128
+ }
129
+
130
+ export namespace TypeGuardError {
131
+ /**
132
+ * Interface for properties passed to the TypeGuardError constructor.
133
+ *
134
+ * @example
135
+ * ```typescript
136
+ * const props: TypeGuardError.IProps = {
137
+ * method: "typia.assertEquals",
138
+ * path: "input.sex",
139
+ * expected: "undefined",
140
+ * value: 1,
141
+ * message: "Custom error message" // optional
142
+ * };
143
+ * ```
144
+ */
145
+ export interface IProps {
146
+ /**
147
+ * The name of the typia method that threw the error.
148
+ *
149
+ * @example "typia.assert", "typia.assertEquals"
150
+ */
151
+ method: string;
152
+
153
+ /**
154
+ * The access path to the property where the assertion error occurred (optional).
155
+ *
156
+ * @example "input.age", "input.profile.email"
157
+ */
158
+ path?: undefined | string;
159
+
160
+ /**
161
+ * String representation of the expected type at the error location.
162
+ *
163
+ * @example "string", "number & ExclusiveMinimum<19>"
164
+ */
165
+ expected: string;
166
+
167
+ /**
168
+ * The actual value that failed assertion.
169
+ */
170
+ value: unknown;
171
+
172
+ /**
173
+ * Custom error message (optional).
174
+ *
175
+ * If not provided, a default format message will be automatically generated.
176
+ */
177
+ message?: undefined | string;
178
+ }
179
+ }