typia 9.7.1 → 10.0.0-dev.20251107

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 (424) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +153 -153
  3. package/lib/AssertionGuard.d.mts +27 -25
  4. package/lib/AssertionGuard.d.ts +27 -25
  5. package/lib/CamelCase.d.mts +1 -1
  6. package/lib/CamelCase.d.ts +1 -1
  7. package/lib/IRandomGenerator.d.mts +44 -42
  8. package/lib/IRandomGenerator.d.ts +44 -42
  9. package/lib/IReadableURLSearchParams.d.mts +2 -2
  10. package/lib/IReadableURLSearchParams.d.ts +2 -2
  11. package/lib/PascalCase.d.mts +1 -1
  12. package/lib/PascalCase.d.ts +1 -1
  13. package/lib/Primitive.d.mts +20 -22
  14. package/lib/Primitive.d.ts +20 -22
  15. package/lib/Resolved.d.mts +16 -18
  16. package/lib/Resolved.d.ts +16 -18
  17. package/lib/SnakeCase.d.mts +3 -2
  18. package/lib/SnakeCase.d.ts +3 -2
  19. package/lib/TypeGuardError.d.mts +88 -61
  20. package/lib/TypeGuardError.d.ts +88 -61
  21. package/lib/TypeGuardError.js +40 -29
  22. package/lib/TypeGuardError.js.map +1 -1
  23. package/lib/TypeGuardError.mjs +70 -48
  24. package/lib/factories/MetadataCollection.js +4 -12
  25. package/lib/factories/MetadataCollection.js.map +1 -1
  26. package/lib/factories/MetadataCollection.mjs +4 -12
  27. package/lib/factories/MetadataCommentTagFactory.js +5 -15
  28. package/lib/factories/MetadataCommentTagFactory.js.map +1 -1
  29. package/lib/factories/MetadataCommentTagFactory.mjs +5 -15
  30. package/lib/factories/MetadataFactory.js +1 -3
  31. package/lib/factories/MetadataFactory.js.map +1 -1
  32. package/lib/factories/MetadataFactory.mjs +1 -3
  33. package/lib/factories/ProtobufFactory.js +2 -4
  34. package/lib/factories/ProtobufFactory.js.map +1 -1
  35. package/lib/factories/ProtobufFactory.mjs +2 -4
  36. package/lib/functional.d.mts +196 -195
  37. package/lib/functional.d.ts +196 -195
  38. package/lib/functional.js +18 -54
  39. package/lib/functional.js.map +1 -1
  40. package/lib/functional.mjs +18 -54
  41. package/lib/http.d.mts +303 -319
  42. package/lib/http.d.ts +303 -319
  43. package/lib/http.js +26 -78
  44. package/lib/http.js.map +1 -1
  45. package/lib/http.mjs +26 -78
  46. package/lib/internal/_ProtobufReader.d.mts +3 -9
  47. package/lib/internal/_ProtobufReader.d.ts +3 -9
  48. package/lib/internal/_ProtobufReader.js.map +1 -1
  49. package/lib/internal/_ProtobufReader.mjs +3 -9
  50. package/lib/internal/_ProtobufSizer.d.mts +4 -12
  51. package/lib/internal/_ProtobufSizer.d.ts +4 -12
  52. package/lib/internal/_ProtobufSizer.js.map +1 -1
  53. package/lib/internal/_ProtobufSizer.mjs +4 -12
  54. package/lib/internal/_ProtobufWriter.d.mts +5 -15
  55. package/lib/internal/_ProtobufWriter.d.ts +5 -15
  56. package/lib/internal/_ProtobufWriter.js.map +1 -1
  57. package/lib/internal/_ProtobufWriter.mjs +5 -15
  58. package/lib/internal/_jsonStringifyString.d.mts +4 -4
  59. package/lib/internal/_jsonStringifyString.d.ts +4 -4
  60. package/lib/internal/_jsonStringifyString.js +4 -4
  61. package/lib/internal/_jsonStringifyString.mjs +4 -4
  62. package/lib/json.d.mts +174 -195
  63. package/lib/json.d.ts +174 -195
  64. package/lib/json.js +16 -48
  65. package/lib/json.js.map +1 -1
  66. package/lib/json.mjs +16 -48
  67. package/lib/llm.d.mts +275 -192
  68. package/lib/llm.d.ts +275 -192
  69. package/lib/llm.js +4 -12
  70. package/lib/llm.js.map +1 -1
  71. package/lib/llm.mjs +4 -12
  72. package/lib/misc.d.mts +149 -172
  73. package/lib/misc.d.ts +149 -172
  74. package/lib/misc.js +17 -51
  75. package/lib/misc.js.map +1 -1
  76. package/lib/misc.mjs +17 -51
  77. package/lib/module.d.mts +263 -275
  78. package/lib/module.d.ts +263 -275
  79. package/lib/module.js +18 -54
  80. package/lib/module.js.map +1 -1
  81. package/lib/module.mjs +18 -54
  82. package/lib/notations.d.mts +153 -174
  83. package/lib/notations.d.ts +153 -174
  84. package/lib/notations.js +24 -72
  85. package/lib/notations.js.map +1 -1
  86. package/lib/notations.mjs +24 -72
  87. package/lib/programmers/FeatureProgrammer.d.mts +19 -41
  88. package/lib/programmers/FeatureProgrammer.d.ts +19 -41
  89. package/lib/programmers/FeatureProgrammer.js.map +1 -1
  90. package/lib/programmers/ImportProgrammer.js +3 -9
  91. package/lib/programmers/ImportProgrammer.js.map +1 -1
  92. package/lib/programmers/ImportProgrammer.mjs +3 -9
  93. package/lib/programmers/RandomProgrammer.js +6 -0
  94. package/lib/programmers/RandomProgrammer.js.map +1 -1
  95. package/lib/programmers/RandomProgrammer.mjs +6 -0
  96. package/lib/programmers/helpers/ProtobufWire.d.mts +13 -13
  97. package/lib/programmers/helpers/ProtobufWire.d.ts +13 -13
  98. package/lib/programmers/internal/check_array_length.js +2 -6
  99. package/lib/programmers/internal/check_array_length.js.map +1 -1
  100. package/lib/programmers/internal/check_array_length.mjs +2 -6
  101. package/lib/programmers/internal/check_bigint.js +2 -6
  102. package/lib/programmers/internal/check_bigint.js.map +1 -1
  103. package/lib/programmers/internal/check_bigint.mjs +2 -6
  104. package/lib/programmers/internal/check_dynamic_key.js +2 -6
  105. package/lib/programmers/internal/check_dynamic_key.js.map +1 -1
  106. package/lib/programmers/internal/check_dynamic_key.mjs +2 -6
  107. package/lib/programmers/internal/check_dynamic_properties.js +3 -9
  108. package/lib/programmers/internal/check_dynamic_properties.js.map +1 -1
  109. package/lib/programmers/internal/check_dynamic_properties.mjs +3 -9
  110. package/lib/programmers/internal/check_everything.js +1 -3
  111. package/lib/programmers/internal/check_everything.js.map +1 -1
  112. package/lib/programmers/internal/check_everything.mjs +1 -3
  113. package/lib/programmers/internal/check_native.js +2 -6
  114. package/lib/programmers/internal/check_native.js.map +1 -1
  115. package/lib/programmers/internal/check_native.mjs +2 -6
  116. package/lib/programmers/internal/check_number.js +2 -6
  117. package/lib/programmers/internal/check_number.js.map +1 -1
  118. package/lib/programmers/internal/check_number.mjs +2 -6
  119. package/lib/programmers/internal/check_object.js +2 -6
  120. package/lib/programmers/internal/check_object.js.map +1 -1
  121. package/lib/programmers/internal/check_object.mjs +2 -6
  122. package/lib/programmers/internal/check_string.js +2 -6
  123. package/lib/programmers/internal/check_string.js.map +1 -1
  124. package/lib/programmers/internal/check_string.mjs +2 -6
  125. package/lib/programmers/internal/check_template.js +1 -3
  126. package/lib/programmers/internal/check_template.js.map +1 -1
  127. package/lib/programmers/internal/check_template.mjs +1 -3
  128. package/lib/programmers/internal/check_union_array_like.js +1 -3
  129. package/lib/programmers/internal/check_union_array_like.js.map +1 -1
  130. package/lib/programmers/internal/check_union_array_like.mjs +1 -3
  131. package/lib/programmers/internal/decode_union_object.js +2 -6
  132. package/lib/programmers/internal/decode_union_object.js.map +1 -1
  133. package/lib/programmers/internal/decode_union_object.mjs +2 -6
  134. package/lib/programmers/internal/feature_object_entries.js +1 -3
  135. package/lib/programmers/internal/feature_object_entries.js.map +1 -1
  136. package/lib/programmers/internal/feature_object_entries.mjs +1 -3
  137. package/lib/programmers/internal/json_schema_escaped.js +2 -6
  138. package/lib/programmers/internal/json_schema_escaped.js.map +1 -1
  139. package/lib/programmers/internal/json_schema_escaped.mjs +2 -6
  140. package/lib/programmers/internal/json_schema_object.js +3 -9
  141. package/lib/programmers/internal/json_schema_object.js.map +1 -1
  142. package/lib/programmers/internal/json_schema_object.mjs +3 -9
  143. package/lib/programmers/internal/json_schema_station.d.mts +2 -2
  144. package/lib/programmers/internal/json_schema_station.d.ts +2 -2
  145. package/lib/programmers/internal/metadata_to_pattern.js +1 -3
  146. package/lib/programmers/internal/metadata_to_pattern.js.map +1 -1
  147. package/lib/programmers/internal/metadata_to_pattern.mjs +1 -3
  148. package/lib/programmers/internal/postfix_of_tuple.js +1 -3
  149. package/lib/programmers/internal/postfix_of_tuple.js.map +1 -1
  150. package/lib/programmers/internal/postfix_of_tuple.mjs +1 -3
  151. package/lib/programmers/internal/prune_object_properties.js +1 -3
  152. package/lib/programmers/internal/prune_object_properties.js.map +1 -1
  153. package/lib/programmers/internal/prune_object_properties.mjs +1 -3
  154. package/lib/programmers/internal/stringify_dynamic_properties.js +2 -6
  155. package/lib/programmers/internal/stringify_dynamic_properties.js.map +1 -1
  156. package/lib/programmers/internal/stringify_dynamic_properties.mjs +2 -6
  157. package/lib/programmers/internal/stringify_native.js +1 -3
  158. package/lib/programmers/internal/stringify_native.js.map +1 -1
  159. package/lib/programmers/internal/stringify_native.mjs +1 -3
  160. package/lib/programmers/internal/stringify_regular_properties.js +2 -6
  161. package/lib/programmers/internal/stringify_regular_properties.js.map +1 -1
  162. package/lib/programmers/internal/stringify_regular_properties.mjs +2 -6
  163. package/lib/programmers/internal/template_to_pattern.js +1 -3
  164. package/lib/programmers/internal/template_to_pattern.js.map +1 -1
  165. package/lib/programmers/internal/template_to_pattern.mjs +1 -3
  166. package/lib/programmers/internal/wrap_metadata_rest_tuple.js +1 -3
  167. package/lib/programmers/internal/wrap_metadata_rest_tuple.js.map +1 -1
  168. package/lib/programmers/internal/wrap_metadata_rest_tuple.mjs +1 -3
  169. package/lib/programmers/json/JsonStringifyProgrammer.js +2 -2
  170. package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
  171. package/lib/programmers/json/JsonStringifyProgrammer.mjs +2 -2
  172. package/lib/programmers/llm/LlmApplicationProgrammer.js +5 -1
  173. package/lib/programmers/llm/LlmApplicationProgrammer.js.map +1 -1
  174. package/lib/programmers/llm/LlmApplicationProgrammer.mjs +5 -1
  175. package/lib/programmers/llm/LlmSchemaProgrammer.js +1 -4
  176. package/lib/programmers/llm/LlmSchemaProgrammer.js.map +1 -1
  177. package/lib/programmers/llm/LlmSchemaProgrammer.mjs +1 -35
  178. package/lib/protobuf.d.mts +290 -297
  179. package/lib/protobuf.d.ts +290 -297
  180. package/lib/protobuf.js +17 -51
  181. package/lib/protobuf.js.map +1 -1
  182. package/lib/protobuf.mjs +17 -51
  183. package/lib/reflect.d.mts +2 -4
  184. package/lib/reflect.d.ts +2 -4
  185. package/lib/reflect.js +1 -3
  186. package/lib/reflect.js.map +1 -1
  187. package/lib/reflect.mjs +1 -3
  188. package/lib/schemas/json/IJsonApplication.d.mts +4 -4
  189. package/lib/schemas/json/IJsonApplication.d.ts +4 -4
  190. package/lib/schemas/json/IJsonSchemaCollection.d.mts +73 -56
  191. package/lib/schemas/json/IJsonSchemaCollection.d.ts +73 -56
  192. package/lib/schemas/json/IJsonSchemaUnit.d.mts +83 -70
  193. package/lib/schemas/json/IJsonSchemaUnit.d.ts +83 -70
  194. package/lib/schemas/metadata/Metadata.d.mts +1 -3
  195. package/lib/schemas/metadata/Metadata.d.ts +1 -3
  196. package/lib/schemas/metadata/Metadata.js +9 -27
  197. package/lib/schemas/metadata/Metadata.js.map +1 -1
  198. package/lib/schemas/metadata/Metadata.mjs +9 -27
  199. package/lib/schemas/metadata/MetadataAliasType.d.mts +1 -3
  200. package/lib/schemas/metadata/MetadataAliasType.d.ts +1 -3
  201. package/lib/schemas/metadata/MetadataAliasType.js +3 -9
  202. package/lib/schemas/metadata/MetadataAliasType.js.map +1 -1
  203. package/lib/schemas/metadata/MetadataAliasType.mjs +3 -9
  204. package/lib/schemas/metadata/MetadataApplication.d.mts +1 -3
  205. package/lib/schemas/metadata/MetadataApplication.d.ts +1 -3
  206. package/lib/schemas/metadata/MetadataApplication.js +2 -6
  207. package/lib/schemas/metadata/MetadataApplication.js.map +1 -1
  208. package/lib/schemas/metadata/MetadataApplication.mjs +2 -6
  209. package/lib/schemas/metadata/MetadataArray.d.mts +1 -3
  210. package/lib/schemas/metadata/MetadataArray.d.ts +1 -3
  211. package/lib/schemas/metadata/MetadataArray.js +1 -3
  212. package/lib/schemas/metadata/MetadataArray.js.map +1 -1
  213. package/lib/schemas/metadata/MetadataArray.mjs +1 -3
  214. package/lib/schemas/metadata/MetadataArrayType.d.mts +1 -3
  215. package/lib/schemas/metadata/MetadataArrayType.d.ts +1 -3
  216. package/lib/schemas/metadata/MetadataArrayType.js +3 -9
  217. package/lib/schemas/metadata/MetadataArrayType.js.map +1 -1
  218. package/lib/schemas/metadata/MetadataArrayType.mjs +3 -9
  219. package/lib/schemas/metadata/MetadataAtomic.js +1 -3
  220. package/lib/schemas/metadata/MetadataAtomic.js.map +1 -1
  221. package/lib/schemas/metadata/MetadataAtomic.mjs +1 -3
  222. package/lib/schemas/metadata/MetadataEscaped.d.mts +1 -3
  223. package/lib/schemas/metadata/MetadataEscaped.d.ts +1 -3
  224. package/lib/schemas/metadata/MetadataEscaped.js +3 -9
  225. package/lib/schemas/metadata/MetadataEscaped.js.map +1 -1
  226. package/lib/schemas/metadata/MetadataEscaped.mjs +3 -9
  227. package/lib/schemas/metadata/MetadataFunction.d.mts +1 -3
  228. package/lib/schemas/metadata/MetadataFunction.d.ts +1 -3
  229. package/lib/schemas/metadata/MetadataFunction.js +2 -6
  230. package/lib/schemas/metadata/MetadataFunction.js.map +1 -1
  231. package/lib/schemas/metadata/MetadataFunction.mjs +2 -6
  232. package/lib/schemas/metadata/MetadataObject.d.mts +1 -3
  233. package/lib/schemas/metadata/MetadataObject.d.ts +1 -3
  234. package/lib/schemas/metadata/MetadataObject.js +1 -3
  235. package/lib/schemas/metadata/MetadataObject.js.map +1 -1
  236. package/lib/schemas/metadata/MetadataObject.mjs +1 -3
  237. package/lib/schemas/metadata/MetadataObjectType.d.mts +1 -3
  238. package/lib/schemas/metadata/MetadataObjectType.d.ts +1 -3
  239. package/lib/schemas/metadata/MetadataObjectType.js +5 -15
  240. package/lib/schemas/metadata/MetadataObjectType.js.map +1 -1
  241. package/lib/schemas/metadata/MetadataObjectType.mjs +6 -18
  242. package/lib/schemas/metadata/MetadataParameter.js +1 -3
  243. package/lib/schemas/metadata/MetadataParameter.js.map +1 -1
  244. package/lib/schemas/metadata/MetadataParameter.mjs +1 -3
  245. package/lib/schemas/metadata/MetadataProperty.d.mts +1 -3
  246. package/lib/schemas/metadata/MetadataProperty.d.ts +1 -3
  247. package/lib/schemas/metadata/MetadataProperty.js +3 -9
  248. package/lib/schemas/metadata/MetadataProperty.js.map +1 -1
  249. package/lib/schemas/metadata/MetadataProperty.mjs +3 -9
  250. package/lib/schemas/metadata/MetadataTemplate.js +1 -3
  251. package/lib/schemas/metadata/MetadataTemplate.js.map +1 -1
  252. package/lib/schemas/metadata/MetadataTemplate.mjs +1 -3
  253. package/lib/schemas/metadata/MetadataTuple.d.mts +1 -3
  254. package/lib/schemas/metadata/MetadataTuple.d.ts +1 -3
  255. package/lib/schemas/metadata/MetadataTuple.js +2 -6
  256. package/lib/schemas/metadata/MetadataTuple.js.map +1 -1
  257. package/lib/schemas/metadata/MetadataTuple.mjs +2 -6
  258. package/lib/schemas/metadata/MetadataTupleType.js +2 -6
  259. package/lib/schemas/metadata/MetadataTupleType.js.map +1 -1
  260. package/lib/schemas/metadata/MetadataTupleType.mjs +3 -9
  261. package/lib/tags/Constant.d.mts +16 -16
  262. package/lib/tags/Constant.d.ts +16 -16
  263. package/lib/tags/ContentMediaType.d.mts +7 -7
  264. package/lib/tags/ContentMediaType.d.ts +7 -7
  265. package/lib/tags/Default.d.mts +19 -19
  266. package/lib/tags/Default.d.ts +19 -19
  267. package/lib/tags/Example.d.mts +18 -18
  268. package/lib/tags/Example.d.ts +18 -18
  269. package/lib/tags/Examples.d.mts +23 -23
  270. package/lib/tags/Examples.d.ts +23 -23
  271. package/lib/tags/ExclusiveMaximum.d.mts +8 -5
  272. package/lib/tags/ExclusiveMaximum.d.ts +8 -5
  273. package/lib/tags/ExclusiveMinimum.d.mts +8 -5
  274. package/lib/tags/ExclusiveMinimum.d.ts +8 -5
  275. package/lib/tags/Format.d.mts +12 -8
  276. package/lib/tags/Format.d.ts +12 -8
  277. package/lib/tags/JsonSchemaPlugin.d.mts +20 -18
  278. package/lib/tags/JsonSchemaPlugin.d.ts +20 -18
  279. package/lib/tags/MaxItems.d.mts +9 -9
  280. package/lib/tags/MaxItems.d.ts +9 -9
  281. package/lib/tags/MaxLength.d.mts +6 -5
  282. package/lib/tags/MaxLength.d.ts +6 -5
  283. package/lib/tags/Maximum.d.mts +9 -7
  284. package/lib/tags/Maximum.d.ts +9 -7
  285. package/lib/tags/MinItems.d.mts +9 -9
  286. package/lib/tags/MinItems.d.ts +9 -9
  287. package/lib/tags/MinLength.d.mts +6 -5
  288. package/lib/tags/MinLength.d.ts +6 -5
  289. package/lib/tags/Minimum.d.mts +9 -7
  290. package/lib/tags/Minimum.d.ts +9 -7
  291. package/lib/tags/MultipleOf.d.mts +10 -7
  292. package/lib/tags/MultipleOf.d.ts +10 -7
  293. package/lib/tags/Pattern.d.mts +7 -4
  294. package/lib/tags/Pattern.d.ts +7 -4
  295. package/lib/tags/Sequence.d.mts +19 -17
  296. package/lib/tags/Sequence.d.ts +19 -17
  297. package/lib/tags/TagBase.d.mts +21 -28
  298. package/lib/tags/TagBase.d.ts +21 -28
  299. package/lib/tags/Type.d.mts +12 -11
  300. package/lib/tags/Type.d.ts +12 -11
  301. package/lib/tags/UniqueItems.d.mts +10 -9
  302. package/lib/tags/UniqueItems.d.ts +10 -9
  303. package/lib/tags/internal/FormatCheatSheet.d.mts +1 -3
  304. package/lib/tags/internal/FormatCheatSheet.d.ts +1 -3
  305. package/lib/tags/internal/FormatCheatSheet.js +1 -3
  306. package/lib/tags/internal/FormatCheatSheet.js.map +1 -1
  307. package/lib/tags/internal/FormatCheatSheet.mjs +1 -3
  308. package/lib/transformers/ITransformOptions.d.mts +27 -19
  309. package/lib/transformers/ITransformOptions.d.ts +27 -19
  310. package/lib/transformers/ImportTransformer.js +5 -10
  311. package/lib/transformers/ImportTransformer.js.map +1 -1
  312. package/lib/transformers/ImportTransformer.mjs +5 -10
  313. package/lib/transformers/NoTransformConfigurationError.js +1 -3
  314. package/lib/transformers/NoTransformConfigurationError.js.map +1 -1
  315. package/lib/transformers/NoTransformConfigurationError.mjs +1 -3
  316. package/lib/transformers/features/llm/LlmApplicationTransformer.js +1 -3
  317. package/lib/transformers/features/llm/LlmApplicationTransformer.js.map +1 -1
  318. package/lib/transformers/features/llm/LlmApplicationTransformer.mjs +1 -3
  319. package/lib/typings/Equal.d.mts +6 -6
  320. package/lib/typings/Equal.d.ts +6 -6
  321. package/package.json +121 -120
  322. package/src/AssertionGuard.ts +41 -39
  323. package/src/CamelCase.ts +75 -75
  324. package/src/IRandomGenerator.ts +337 -335
  325. package/src/IReadableURLSearchParams.ts +9 -9
  326. package/src/PascalCase.ts +71 -71
  327. package/src/Primitive.ts +90 -92
  328. package/src/Resolved.ts +72 -74
  329. package/src/SnakeCase.ts +127 -126
  330. package/src/TypeGuardError.ts +216 -179
  331. package/src/factories/MetadataCollection.ts +270 -278
  332. package/src/factories/MetadataCommentTagFactory.ts +632 -648
  333. package/src/factories/MetadataFactory.ts +402 -404
  334. package/src/factories/ProtobufFactory.ts +873 -875
  335. package/src/functional.ts +705 -740
  336. package/src/http.ts +972 -1040
  337. package/src/internal/_ProtobufReader.ts +188 -194
  338. package/src/internal/_ProtobufSizer.ts +137 -145
  339. package/src/internal/_ProtobufWriter.ts +135 -145
  340. package/src/internal/_jsonStringifyString.ts +42 -42
  341. package/src/json.ts +643 -696
  342. package/src/llm.ts +615 -540
  343. package/src/misc.ts +594 -651
  344. package/src/module.ts +889 -937
  345. package/src/notations.ts +751 -820
  346. package/src/programmers/FeatureProgrammer.ts +605 -627
  347. package/src/programmers/ImportProgrammer.ts +179 -185
  348. package/src/programmers/RandomProgrammer.ts +1195 -1190
  349. package/src/programmers/helpers/ProtobufWire.ts +34 -34
  350. package/src/programmers/internal/check_array_length.ts +43 -47
  351. package/src/programmers/internal/check_bigint.ts +46 -50
  352. package/src/programmers/internal/check_dynamic_key.ts +197 -201
  353. package/src/programmers/internal/check_dynamic_properties.ts +231 -237
  354. package/src/programmers/internal/check_everything.ts +21 -23
  355. package/src/programmers/internal/check_native.ts +23 -27
  356. package/src/programmers/internal/check_number.ts +108 -112
  357. package/src/programmers/internal/check_object.ts +72 -78
  358. package/src/programmers/internal/check_string.ts +46 -50
  359. package/src/programmers/internal/check_template.ts +46 -48
  360. package/src/programmers/internal/check_union_array_like.ts +331 -335
  361. package/src/programmers/internal/decode_union_object.ts +110 -116
  362. package/src/programmers/internal/feature_object_entries.ts +59 -61
  363. package/src/programmers/internal/json_schema_escaped.ts +78 -82
  364. package/src/programmers/internal/json_schema_object.ts +150 -158
  365. package/src/programmers/internal/json_schema_station.ts +2 -2
  366. package/src/programmers/internal/metadata_to_pattern.ts +40 -42
  367. package/src/programmers/internal/postfix_of_tuple.ts +3 -5
  368. package/src/programmers/internal/prune_object_properties.ts +69 -71
  369. package/src/programmers/internal/stringify_dynamic_properties.ts +158 -162
  370. package/src/programmers/internal/stringify_native.ts +5 -7
  371. package/src/programmers/internal/stringify_regular_properties.ts +77 -81
  372. package/src/programmers/internal/template_to_pattern.ts +21 -23
  373. package/src/programmers/internal/wrap_metadata_rest_tuple.ts +21 -23
  374. package/src/programmers/json/JsonStringifyProgrammer.ts +1124 -1124
  375. package/src/programmers/llm/LlmApplicationProgrammer.ts +10 -1
  376. package/src/programmers/llm/LlmSchemaProgrammer.ts +2 -7
  377. package/src/protobuf.ts +820 -861
  378. package/src/reflect.ts +46 -50
  379. package/src/schemas/json/IJsonApplication.ts +77 -77
  380. package/src/schemas/json/IJsonSchemaCollection.ts +212 -195
  381. package/src/schemas/json/IJsonSchemaUnit.ts +263 -250
  382. package/src/schemas/metadata/IMetadataTypeTag.ts +14 -16
  383. package/src/schemas/metadata/Metadata.ts +669 -687
  384. package/src/schemas/metadata/MetadataAliasType.ts +57 -63
  385. package/src/schemas/metadata/MetadataApplication.ts +40 -44
  386. package/src/schemas/metadata/MetadataArray.ts +47 -49
  387. package/src/schemas/metadata/MetadataArrayType.ts +51 -57
  388. package/src/schemas/metadata/MetadataAtomic.ts +85 -87
  389. package/src/schemas/metadata/MetadataEscaped.ts +45 -51
  390. package/src/schemas/metadata/MetadataFunction.ts +45 -49
  391. package/src/schemas/metadata/MetadataObject.ts +46 -48
  392. package/src/schemas/metadata/MetadataObjectType.ts +137 -149
  393. package/src/schemas/metadata/MetadataParameter.ts +52 -54
  394. package/src/schemas/metadata/MetadataProperty.ts +53 -59
  395. package/src/schemas/metadata/MetadataTemplate.ts +78 -80
  396. package/src/schemas/metadata/MetadataTuple.ts +28 -32
  397. package/src/schemas/metadata/MetadataTupleType.ts +61 -67
  398. package/src/tags/Constant.ts +47 -47
  399. package/src/tags/ContentMediaType.ts +27 -27
  400. package/src/tags/Default.ts +52 -52
  401. package/src/tags/Example.ts +56 -56
  402. package/src/tags/Examples.ts +56 -56
  403. package/src/tags/ExclusiveMaximum.ts +44 -41
  404. package/src/tags/ExclusiveMinimum.ts +44 -41
  405. package/src/tags/Format.ts +78 -74
  406. package/src/tags/JsonSchemaPlugin.ts +36 -34
  407. package/src/tags/MaxItems.ts +31 -31
  408. package/src/tags/MaxLength.ts +25 -24
  409. package/src/tags/Maximum.ts +39 -37
  410. package/src/tags/MinItems.ts +31 -31
  411. package/src/tags/MinLength.ts +25 -24
  412. package/src/tags/Minimum.ts +39 -37
  413. package/src/tags/MultipleOf.ts +42 -39
  414. package/src/tags/Pattern.ts +49 -46
  415. package/src/tags/Sequence.ts +37 -35
  416. package/src/tags/TagBase.ts +102 -109
  417. package/src/tags/Type.ts +64 -63
  418. package/src/tags/UniqueItems.ts +34 -33
  419. package/src/tags/internal/FormatCheatSheet.ts +71 -73
  420. package/src/transformers/ITransformOptions.ts +70 -62
  421. package/src/transformers/ImportTransformer.ts +253 -258
  422. package/src/transformers/NoTransformConfigurationError.ts +16 -18
  423. package/src/transformers/features/llm/LlmApplicationTransformer.ts +224 -226
  424. package/src/typings/Equal.ts +18 -18
package/src/SnakeCase.ts CHANGED
@@ -1,126 +1,127 @@
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 erases every method property 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
9
+ * case.
10
+ *
11
+ * It also erases every method property like {@link Resolved} type.
12
+ *
13
+ * @author Jeongho Nam - https://github.com/samchon
14
+ * @template T Target type to be snake cased
15
+ */
16
+ export type SnakeCase<T> =
17
+ Equal<T, SnakageMain<T>> extends true ? T : SnakageMain<T>;
18
+
19
+ /* -----------------------------------------------------------
20
+ OBJECT CONVERSION
21
+ ----------------------------------------------------------- */
22
+
23
+ type SnakageMain<T> = T extends [never]
24
+ ? never // special trick for (jsonable | null) type
25
+ : T extends { valueOf(): boolean | bigint | number | string }
26
+ ? ValueOf<T>
27
+ : T extends Function
28
+ ? never
29
+ : T extends object
30
+ ? SnakageObject<T>
31
+ : T;
32
+
33
+ type SnakageObject<T extends object> =
34
+ T extends Array<infer U>
35
+ ? IsTuple<T> extends true
36
+ ? SnakageTuple<T>
37
+ : SnakageMain<U>[]
38
+ : T extends Set<infer U>
39
+ ? Set<SnakageMain<U>>
40
+ : T extends Map<infer K, infer V>
41
+ ? Map<SnakageMain<K>, SnakageMain<V>>
42
+ : T extends WeakSet<any> | WeakMap<any, any>
43
+ ? never
44
+ : T extends NativeClass
45
+ ? T
46
+ : {
47
+ [Key in keyof T as SnakageString<Key & string>]: SnakageMain<
48
+ T[Key]
49
+ >;
50
+ };
51
+
52
+ /* -----------------------------------------------------------
53
+ SPECIAL CASES
54
+ ----------------------------------------------------------- */
55
+ type IsTuple<T extends readonly any[] | { length: number }> = [T] extends [
56
+ never,
57
+ ]
58
+ ? false
59
+ : T extends readonly any[]
60
+ ? number extends T["length"]
61
+ ? false
62
+ : true
63
+ : false;
64
+ type SnakageTuple<T extends readonly any[]> = T extends []
65
+ ? []
66
+ : T extends [infer F]
67
+ ? [SnakageMain<F>]
68
+ : T extends [infer F, ...infer Rest extends readonly any[]]
69
+ ? [SnakageMain<F>, ...SnakageTuple<Rest>]
70
+ : T extends [(infer F)?]
71
+ ? [SnakageMain<F>?]
72
+ : T extends [(infer F)?, ...infer Rest extends readonly any[]]
73
+ ? [SnakageMain<F>?, ...SnakageTuple<Rest>]
74
+ : [];
75
+
76
+ /* -----------------------------------------------------------
77
+ STRING CONVERTER
78
+ ----------------------------------------------------------- */
79
+ type SnakageString<Key extends string> = Key extends `${infer _}`
80
+ ? SnakageStringRepeatedly<Key, "">
81
+ : Key;
82
+ type SnakageStringRepeatedly<
83
+ S extends string,
84
+ Previous extends string,
85
+ > = S extends `${infer First}${infer Second}${infer Rest}`
86
+ ? `${Underscore<Previous, First>}${Lowercase<First>}${Underscore<
87
+ First,
88
+ Second
89
+ >}${Lowercase<Second>}${SnakageStringRepeatedly<Rest, Second>}`
90
+ : S extends `${infer First}`
91
+ ? `${Underscore<Previous, First>}${Lowercase<First>}`
92
+ : "";
93
+ type Underscore<First extends string, Second extends string> = First extends
94
+ | UpperAlphabetic
95
+ | ""
96
+ | "_"
97
+ ? ""
98
+ : Second extends UpperAlphabetic
99
+ ? "_"
100
+ : "";
101
+ type UpperAlphabetic =
102
+ | "A"
103
+ | "B"
104
+ | "C"
105
+ | "D"
106
+ | "E"
107
+ | "F"
108
+ | "G"
109
+ | "H"
110
+ | "I"
111
+ | "J"
112
+ | "K"
113
+ | "L"
114
+ | "M"
115
+ | "N"
116
+ | "O"
117
+ | "P"
118
+ | "Q"
119
+ | "R"
120
+ | "S"
121
+ | "T"
122
+ | "U"
123
+ | "V"
124
+ | "W"
125
+ | "X"
126
+ | "Y"
127
+ | "Z";
@@ -1,179 +1,216 @@
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>()`
3
+ * function.
4
+ *
5
+ * This error is thrown by the `typia.assert<T>()` function when the input value
6
+ * doesn't match the expected type.
7
+ *
8
+ * The error provides detailed information about the first assertion failure
9
+ * encountered, including the access path where the error occurred, the expected
10
+ * type, and the actual value.
11
+ *
12
+ * @author Jeongho Nam - https://github.com/samchon
13
+ * @example
14
+ * ```typescript
15
+ * interface IMember {
16
+ * name: string;
17
+ * age: number & ExclusiveMinimum<19>;
18
+ * }
19
+ *
20
+ * try {
21
+ * typia.assert<IMember>({ name: "John", age: 18 });
22
+ * } catch (error) {
23
+ * if (error instanceof TypeGuardError) {
24
+ * console.log(error.method); // "typia.assert"
25
+ * console.log(error.path); // "input.age"
26
+ * console.log(error.expected); // "number & ExclusiveMinimum<19>"
27
+ * console.log(error.value); // 18
28
+ * }
29
+ * }
30
+ * ```;
31
+ *
32
+ * @template T - The expected type (generic for type safety)
33
+ */
34
+ export class TypeGuardError<T = any> extends Error {
35
+ /**
36
+ * The name of the typia method that threw this error.
37
+ *
38
+ * @example
39
+ * typia.assert;
40
+ */
41
+ public readonly method: string;
42
+
43
+ /**
44
+ * The access path to the property where the assertion error occurred.
45
+ *
46
+ * Uses dot notation to indicate the path for nested object properties. May be
47
+ * `undefined` if the error occurred at the root level.
48
+ *
49
+ * @example
50
+ * - `"input.age"` - Error in the age property of the object
51
+ * - `"input.profile.email"` - Error in the email property of a nested object
52
+ * - `"input[0].name"` - Error in the name property of the first array element
53
+ * - `undefined` - Error occurred at the root level
54
+ */
55
+ public readonly path: string | undefined;
56
+
57
+ /**
58
+ * String representation of the expected type at the error location.
59
+ *
60
+ * Represents TypeScript types as strings, including detailed type information
61
+ * for complex types.
62
+ *
63
+ * @example
64
+ * - `"string"` - Expected string type
65
+ * - `"number & ExclusiveMinimum<19>"` - Expected number greater than 19
66
+ * - `"undefined"` - Expected undefined (when superfluous property found in assertion)
67
+ * - `"{ name: string; age: number }"` - Expected object type
68
+ */
69
+ public readonly expected: string;
70
+
71
+ /**
72
+ * The actual value that failed assertion.
73
+ *
74
+ * Stores the actual value at the error path as-is. Useful for debugging by
75
+ * comparing the expected type with the actual value.
76
+ *
77
+ * @example
78
+ * - `18` - Numeric value
79
+ * - `"invalid"` - String value
80
+ * - `{ name: "John", age: 18, sex: 1 }` - Object value
81
+ */
82
+ public readonly value: unknown;
83
+
84
+ /**
85
+ * Optional human-readable description of the type guard error
86
+ *
87
+ * This field is rarely populated in standard typia type assertion and is
88
+ * primarily intended for specialized AI agent libraries or custom validation
89
+ * scenarios that require additional context beyond the technical type
90
+ * information. Most assertion errors rely solely on the path, expected, and
91
+ * value fields for comprehensive error reporting.
92
+ */
93
+ public readonly description?: string | undefined;
94
+
95
+ /**
96
+ * Phantom property for type safety purposes.
97
+ *
98
+ * This property is not actually used and exists only to maintain the generic
99
+ * type T in TypeScript's type system. Always has an `undefined` value at
100
+ * runtime.
101
+ *
102
+ * @internal
103
+ */
104
+ protected readonly fake_expected_typed_value_?: T | undefined;
105
+
106
+ /**
107
+ * Creates a new TypeGuardError instance.
108
+ *
109
+ * @example
110
+ * ```typescript
111
+ * const error = new TypeGuardError({
112
+ * method: "typia.assert",
113
+ * path: "input.age",
114
+ * expected: "number & ExclusiveMinimum<19>",
115
+ * value: 18
116
+ * });
117
+ * ```;
118
+ *
119
+ * @param props - Object containing the properties needed to create the error
120
+ */
121
+ public constructor(props: TypeGuardError.IProps) {
122
+ // MESSAGE CONSTRUCTION
123
+ // Use custom message if provided, otherwise generate default format
124
+ super(
125
+ props.message ||
126
+ `Error on ${props.method}(): invalid type${
127
+ props.path ? ` on ${props.path}` : ""
128
+ }, expect to be ${props.expected}`,
129
+ );
130
+
131
+ // INHERITANCE POLYFILL
132
+ // Set up prototype for compatibility across different JavaScript environments
133
+ const proto = new.target.prototype;
134
+ if (Object.setPrototypeOf) Object.setPrototypeOf(this, proto);
135
+ else (this as any).__proto__ = proto;
136
+
137
+ // ASSIGN MEMBERS
138
+ this.method = props.method;
139
+ this.path = props.path;
140
+ this.expected = props.expected;
141
+ this.value = props.value;
142
+ if (props.description || props.value === undefined)
143
+ this.description =
144
+ props.description ??
145
+ [
146
+ "The value at this path is `undefined`.",
147
+ "",
148
+ `Please fill the \`${props.expected}\` typed value next time.`,
149
+ ].join("\n");
150
+ }
151
+ }
152
+
153
+ export namespace TypeGuardError {
154
+ /**
155
+ * Interface for properties passed to the TypeGuardError constructor.
156
+ *
157
+ * @example
158
+ * ```typescript
159
+ * const props: TypeGuardError.IProps = {
160
+ * method: "typia.assertEquals",
161
+ * path: "input.sex",
162
+ * expected: "undefined",
163
+ * value: 1,
164
+ * message: "Custom error message" // optional
165
+ * };
166
+ * ```;
167
+ */
168
+ export interface IProps {
169
+ /**
170
+ * The name of the typia method that threw the error.
171
+ *
172
+ * @example
173
+ * typia.assert, "typia.assertEquals";
174
+ */
175
+ method: string;
176
+
177
+ /**
178
+ * The access path to the property where the assertion error occurred
179
+ * (optional).
180
+ *
181
+ * @example
182
+ * input.age, "input.profile.email";
183
+ */
184
+ path?: undefined | string;
185
+
186
+ /**
187
+ * String representation of the expected type at the error location.
188
+ *
189
+ * @example
190
+ * string, "number & ExclusiveMinimum<19>";
191
+ */
192
+ expected: string;
193
+
194
+ /** The actual value that failed assertion. */
195
+ value: unknown;
196
+
197
+ /**
198
+ * Optional human-readable description of the type guard error
199
+ *
200
+ * This field is rarely populated in standard typia type assertion and is
201
+ * primarily intended for specialized AI agent libraries or custom
202
+ * validation scenarios that require additional context beyond the technical
203
+ * type information. Most assertion errors rely solely on the path,
204
+ * expected, and value fields for comprehensive error reporting.
205
+ */
206
+ description?: string;
207
+
208
+ /**
209
+ * Custom error message (optional).
210
+ *
211
+ * If not provided, a default format message will be automatically
212
+ * generated.
213
+ */
214
+ message?: undefined | string;
215
+ }
216
+ }