typia 9.7.1 → 9.7.2

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 (411) hide show
  1. package/lib/AssertionGuard.d.mts +27 -25
  2. package/lib/AssertionGuard.d.ts +27 -25
  3. package/lib/CamelCase.d.mts +1 -1
  4. package/lib/CamelCase.d.ts +1 -1
  5. package/lib/IRandomGenerator.d.mts +44 -42
  6. package/lib/IRandomGenerator.d.ts +44 -42
  7. package/lib/IReadableURLSearchParams.d.mts +2 -2
  8. package/lib/IReadableURLSearchParams.d.ts +2 -2
  9. package/lib/PascalCase.d.mts +1 -1
  10. package/lib/PascalCase.d.ts +1 -1
  11. package/lib/Primitive.d.mts +20 -22
  12. package/lib/Primitive.d.ts +20 -22
  13. package/lib/Resolved.d.mts +16 -18
  14. package/lib/Resolved.d.ts +16 -18
  15. package/lib/SnakeCase.d.mts +3 -2
  16. package/lib/SnakeCase.d.ts +3 -2
  17. package/lib/TypeGuardError.d.mts +88 -61
  18. package/lib/TypeGuardError.d.ts +88 -61
  19. package/lib/TypeGuardError.js +40 -29
  20. package/lib/TypeGuardError.js.map +1 -1
  21. package/lib/TypeGuardError.mjs +70 -48
  22. package/lib/factories/MetadataCollection.js +4 -12
  23. package/lib/factories/MetadataCollection.js.map +1 -1
  24. package/lib/factories/MetadataCollection.mjs +4 -12
  25. package/lib/factories/MetadataCommentTagFactory.js +5 -15
  26. package/lib/factories/MetadataCommentTagFactory.js.map +1 -1
  27. package/lib/factories/MetadataCommentTagFactory.mjs +5 -15
  28. package/lib/factories/MetadataFactory.js +1 -3
  29. package/lib/factories/MetadataFactory.js.map +1 -1
  30. package/lib/factories/MetadataFactory.mjs +1 -3
  31. package/lib/factories/ProtobufFactory.js +1 -3
  32. package/lib/factories/ProtobufFactory.js.map +1 -1
  33. package/lib/factories/ProtobufFactory.mjs +1 -3
  34. package/lib/functional.d.mts +196 -195
  35. package/lib/functional.d.ts +196 -195
  36. package/lib/functional.js +18 -54
  37. package/lib/functional.js.map +1 -1
  38. package/lib/functional.mjs +18 -54
  39. package/lib/http.d.mts +303 -319
  40. package/lib/http.d.ts +303 -319
  41. package/lib/http.js +26 -78
  42. package/lib/http.js.map +1 -1
  43. package/lib/http.mjs +26 -78
  44. package/lib/internal/_ProtobufReader.d.mts +3 -9
  45. package/lib/internal/_ProtobufReader.d.ts +3 -9
  46. package/lib/internal/_ProtobufReader.js.map +1 -1
  47. package/lib/internal/_ProtobufReader.mjs +3 -9
  48. package/lib/internal/_ProtobufSizer.d.mts +4 -12
  49. package/lib/internal/_ProtobufSizer.d.ts +4 -12
  50. package/lib/internal/_ProtobufSizer.js.map +1 -1
  51. package/lib/internal/_ProtobufSizer.mjs +4 -12
  52. package/lib/internal/_ProtobufWriter.d.mts +5 -15
  53. package/lib/internal/_ProtobufWriter.d.ts +5 -15
  54. package/lib/internal/_ProtobufWriter.js.map +1 -1
  55. package/lib/internal/_ProtobufWriter.mjs +5 -15
  56. package/lib/internal/_jsonStringifyString.d.mts +4 -4
  57. package/lib/internal/_jsonStringifyString.d.ts +4 -4
  58. package/lib/internal/_jsonStringifyString.js +4 -4
  59. package/lib/internal/_jsonStringifyString.mjs +4 -4
  60. package/lib/json.d.mts +174 -195
  61. package/lib/json.d.ts +174 -195
  62. package/lib/json.js +16 -48
  63. package/lib/json.js.map +1 -1
  64. package/lib/json.mjs +16 -48
  65. package/lib/llm.d.mts +275 -192
  66. package/lib/llm.d.ts +275 -192
  67. package/lib/llm.js +4 -12
  68. package/lib/llm.js.map +1 -1
  69. package/lib/llm.mjs +4 -12
  70. package/lib/misc.d.mts +149 -172
  71. package/lib/misc.d.ts +149 -172
  72. package/lib/misc.js +17 -51
  73. package/lib/misc.js.map +1 -1
  74. package/lib/misc.mjs +17 -51
  75. package/lib/module.d.mts +263 -275
  76. package/lib/module.d.ts +263 -275
  77. package/lib/module.js +18 -54
  78. package/lib/module.js.map +1 -1
  79. package/lib/module.mjs +18 -54
  80. package/lib/notations.d.mts +153 -174
  81. package/lib/notations.d.ts +153 -174
  82. package/lib/notations.js +24 -72
  83. package/lib/notations.js.map +1 -1
  84. package/lib/notations.mjs +24 -72
  85. package/lib/programmers/FeatureProgrammer.d.mts +19 -41
  86. package/lib/programmers/FeatureProgrammer.d.ts +19 -41
  87. package/lib/programmers/FeatureProgrammer.js.map +1 -1
  88. package/lib/programmers/ImportProgrammer.js +3 -9
  89. package/lib/programmers/ImportProgrammer.js.map +1 -1
  90. package/lib/programmers/ImportProgrammer.mjs +3 -9
  91. package/lib/programmers/RandomProgrammer.js +6 -0
  92. package/lib/programmers/RandomProgrammer.js.map +1 -1
  93. package/lib/programmers/RandomProgrammer.mjs +6 -0
  94. package/lib/programmers/helpers/ProtobufWire.d.mts +13 -13
  95. package/lib/programmers/helpers/ProtobufWire.d.ts +13 -13
  96. package/lib/programmers/internal/check_array_length.js +2 -6
  97. package/lib/programmers/internal/check_array_length.js.map +1 -1
  98. package/lib/programmers/internal/check_array_length.mjs +2 -6
  99. package/lib/programmers/internal/check_bigint.js +2 -6
  100. package/lib/programmers/internal/check_bigint.js.map +1 -1
  101. package/lib/programmers/internal/check_bigint.mjs +2 -6
  102. package/lib/programmers/internal/check_dynamic_key.js +2 -6
  103. package/lib/programmers/internal/check_dynamic_key.js.map +1 -1
  104. package/lib/programmers/internal/check_dynamic_key.mjs +2 -6
  105. package/lib/programmers/internal/check_dynamic_properties.js +3 -9
  106. package/lib/programmers/internal/check_dynamic_properties.js.map +1 -1
  107. package/lib/programmers/internal/check_dynamic_properties.mjs +3 -9
  108. package/lib/programmers/internal/check_everything.js +1 -3
  109. package/lib/programmers/internal/check_everything.js.map +1 -1
  110. package/lib/programmers/internal/check_everything.mjs +1 -3
  111. package/lib/programmers/internal/check_native.js +2 -6
  112. package/lib/programmers/internal/check_native.js.map +1 -1
  113. package/lib/programmers/internal/check_native.mjs +2 -6
  114. package/lib/programmers/internal/check_number.js +2 -6
  115. package/lib/programmers/internal/check_number.js.map +1 -1
  116. package/lib/programmers/internal/check_number.mjs +2 -6
  117. package/lib/programmers/internal/check_object.js +2 -6
  118. package/lib/programmers/internal/check_object.js.map +1 -1
  119. package/lib/programmers/internal/check_object.mjs +2 -6
  120. package/lib/programmers/internal/check_string.js +2 -6
  121. package/lib/programmers/internal/check_string.js.map +1 -1
  122. package/lib/programmers/internal/check_string.mjs +2 -6
  123. package/lib/programmers/internal/check_template.js +1 -3
  124. package/lib/programmers/internal/check_template.js.map +1 -1
  125. package/lib/programmers/internal/check_template.mjs +1 -3
  126. package/lib/programmers/internal/check_union_array_like.js +1 -3
  127. package/lib/programmers/internal/check_union_array_like.js.map +1 -1
  128. package/lib/programmers/internal/check_union_array_like.mjs +1 -3
  129. package/lib/programmers/internal/decode_union_object.js +2 -6
  130. package/lib/programmers/internal/decode_union_object.js.map +1 -1
  131. package/lib/programmers/internal/decode_union_object.mjs +2 -6
  132. package/lib/programmers/internal/feature_object_entries.js +1 -3
  133. package/lib/programmers/internal/feature_object_entries.js.map +1 -1
  134. package/lib/programmers/internal/feature_object_entries.mjs +1 -3
  135. package/lib/programmers/internal/json_schema_escaped.js +2 -6
  136. package/lib/programmers/internal/json_schema_escaped.js.map +1 -1
  137. package/lib/programmers/internal/json_schema_escaped.mjs +2 -6
  138. package/lib/programmers/internal/json_schema_object.js +3 -9
  139. package/lib/programmers/internal/json_schema_object.js.map +1 -1
  140. package/lib/programmers/internal/json_schema_object.mjs +3 -9
  141. package/lib/programmers/internal/metadata_to_pattern.js +1 -3
  142. package/lib/programmers/internal/metadata_to_pattern.js.map +1 -1
  143. package/lib/programmers/internal/metadata_to_pattern.mjs +1 -3
  144. package/lib/programmers/internal/postfix_of_tuple.js +1 -3
  145. package/lib/programmers/internal/postfix_of_tuple.js.map +1 -1
  146. package/lib/programmers/internal/postfix_of_tuple.mjs +1 -3
  147. package/lib/programmers/internal/prune_object_properties.js +1 -3
  148. package/lib/programmers/internal/prune_object_properties.js.map +1 -1
  149. package/lib/programmers/internal/prune_object_properties.mjs +1 -3
  150. package/lib/programmers/internal/stringify_dynamic_properties.js +2 -6
  151. package/lib/programmers/internal/stringify_dynamic_properties.js.map +1 -1
  152. package/lib/programmers/internal/stringify_dynamic_properties.mjs +2 -6
  153. package/lib/programmers/internal/stringify_native.js +1 -3
  154. package/lib/programmers/internal/stringify_native.js.map +1 -1
  155. package/lib/programmers/internal/stringify_native.mjs +1 -3
  156. package/lib/programmers/internal/stringify_regular_properties.js +2 -6
  157. package/lib/programmers/internal/stringify_regular_properties.js.map +1 -1
  158. package/lib/programmers/internal/stringify_regular_properties.mjs +2 -6
  159. package/lib/programmers/internal/template_to_pattern.js +1 -3
  160. package/lib/programmers/internal/template_to_pattern.js.map +1 -1
  161. package/lib/programmers/internal/template_to_pattern.mjs +1 -3
  162. package/lib/programmers/internal/wrap_metadata_rest_tuple.js +1 -3
  163. package/lib/programmers/internal/wrap_metadata_rest_tuple.js.map +1 -1
  164. package/lib/programmers/internal/wrap_metadata_rest_tuple.mjs +1 -3
  165. package/lib/programmers/json/JsonStringifyProgrammer.js +2 -2
  166. package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
  167. package/lib/programmers/json/JsonStringifyProgrammer.mjs +2 -2
  168. package/lib/protobuf.d.mts +290 -297
  169. package/lib/protobuf.d.ts +290 -297
  170. package/lib/protobuf.js +17 -51
  171. package/lib/protobuf.js.map +1 -1
  172. package/lib/protobuf.mjs +17 -51
  173. package/lib/reflect.d.mts +2 -4
  174. package/lib/reflect.d.ts +2 -4
  175. package/lib/reflect.js +1 -3
  176. package/lib/reflect.js.map +1 -1
  177. package/lib/reflect.mjs +1 -3
  178. package/lib/schemas/json/IJsonApplication.d.mts +4 -4
  179. package/lib/schemas/json/IJsonApplication.d.ts +4 -4
  180. package/lib/schemas/json/IJsonSchemaCollection.d.mts +73 -56
  181. package/lib/schemas/json/IJsonSchemaCollection.d.ts +73 -56
  182. package/lib/schemas/json/IJsonSchemaUnit.d.mts +83 -70
  183. package/lib/schemas/json/IJsonSchemaUnit.d.ts +83 -70
  184. package/lib/schemas/metadata/Metadata.d.mts +1 -3
  185. package/lib/schemas/metadata/Metadata.d.ts +1 -3
  186. package/lib/schemas/metadata/Metadata.js +9 -27
  187. package/lib/schemas/metadata/Metadata.js.map +1 -1
  188. package/lib/schemas/metadata/Metadata.mjs +9 -27
  189. package/lib/schemas/metadata/MetadataAliasType.d.mts +1 -3
  190. package/lib/schemas/metadata/MetadataAliasType.d.ts +1 -3
  191. package/lib/schemas/metadata/MetadataAliasType.js +3 -9
  192. package/lib/schemas/metadata/MetadataAliasType.js.map +1 -1
  193. package/lib/schemas/metadata/MetadataAliasType.mjs +3 -9
  194. package/lib/schemas/metadata/MetadataApplication.d.mts +1 -3
  195. package/lib/schemas/metadata/MetadataApplication.d.ts +1 -3
  196. package/lib/schemas/metadata/MetadataApplication.js +2 -6
  197. package/lib/schemas/metadata/MetadataApplication.js.map +1 -1
  198. package/lib/schemas/metadata/MetadataApplication.mjs +2 -6
  199. package/lib/schemas/metadata/MetadataArray.d.mts +1 -3
  200. package/lib/schemas/metadata/MetadataArray.d.ts +1 -3
  201. package/lib/schemas/metadata/MetadataArray.js +1 -3
  202. package/lib/schemas/metadata/MetadataArray.js.map +1 -1
  203. package/lib/schemas/metadata/MetadataArray.mjs +1 -3
  204. package/lib/schemas/metadata/MetadataArrayType.d.mts +1 -3
  205. package/lib/schemas/metadata/MetadataArrayType.d.ts +1 -3
  206. package/lib/schemas/metadata/MetadataArrayType.js +3 -9
  207. package/lib/schemas/metadata/MetadataArrayType.js.map +1 -1
  208. package/lib/schemas/metadata/MetadataArrayType.mjs +3 -9
  209. package/lib/schemas/metadata/MetadataAtomic.js +1 -3
  210. package/lib/schemas/metadata/MetadataAtomic.js.map +1 -1
  211. package/lib/schemas/metadata/MetadataAtomic.mjs +1 -3
  212. package/lib/schemas/metadata/MetadataEscaped.d.mts +1 -3
  213. package/lib/schemas/metadata/MetadataEscaped.d.ts +1 -3
  214. package/lib/schemas/metadata/MetadataEscaped.js +3 -9
  215. package/lib/schemas/metadata/MetadataEscaped.js.map +1 -1
  216. package/lib/schemas/metadata/MetadataEscaped.mjs +3 -9
  217. package/lib/schemas/metadata/MetadataFunction.d.mts +1 -3
  218. package/lib/schemas/metadata/MetadataFunction.d.ts +1 -3
  219. package/lib/schemas/metadata/MetadataFunction.js +2 -6
  220. package/lib/schemas/metadata/MetadataFunction.js.map +1 -1
  221. package/lib/schemas/metadata/MetadataFunction.mjs +2 -6
  222. package/lib/schemas/metadata/MetadataObject.d.mts +1 -3
  223. package/lib/schemas/metadata/MetadataObject.d.ts +1 -3
  224. package/lib/schemas/metadata/MetadataObject.js +1 -3
  225. package/lib/schemas/metadata/MetadataObject.js.map +1 -1
  226. package/lib/schemas/metadata/MetadataObject.mjs +1 -3
  227. package/lib/schemas/metadata/MetadataObjectType.d.mts +1 -3
  228. package/lib/schemas/metadata/MetadataObjectType.d.ts +1 -3
  229. package/lib/schemas/metadata/MetadataObjectType.js +5 -15
  230. package/lib/schemas/metadata/MetadataObjectType.js.map +1 -1
  231. package/lib/schemas/metadata/MetadataObjectType.mjs +6 -18
  232. package/lib/schemas/metadata/MetadataParameter.js +1 -3
  233. package/lib/schemas/metadata/MetadataParameter.js.map +1 -1
  234. package/lib/schemas/metadata/MetadataParameter.mjs +1 -3
  235. package/lib/schemas/metadata/MetadataProperty.d.mts +1 -3
  236. package/lib/schemas/metadata/MetadataProperty.d.ts +1 -3
  237. package/lib/schemas/metadata/MetadataProperty.js +3 -9
  238. package/lib/schemas/metadata/MetadataProperty.js.map +1 -1
  239. package/lib/schemas/metadata/MetadataProperty.mjs +3 -9
  240. package/lib/schemas/metadata/MetadataTemplate.js +1 -3
  241. package/lib/schemas/metadata/MetadataTemplate.js.map +1 -1
  242. package/lib/schemas/metadata/MetadataTemplate.mjs +1 -3
  243. package/lib/schemas/metadata/MetadataTuple.d.mts +1 -3
  244. package/lib/schemas/metadata/MetadataTuple.d.ts +1 -3
  245. package/lib/schemas/metadata/MetadataTuple.js +2 -6
  246. package/lib/schemas/metadata/MetadataTuple.js.map +1 -1
  247. package/lib/schemas/metadata/MetadataTuple.mjs +2 -6
  248. package/lib/schemas/metadata/MetadataTupleType.js +2 -6
  249. package/lib/schemas/metadata/MetadataTupleType.js.map +1 -1
  250. package/lib/schemas/metadata/MetadataTupleType.mjs +3 -9
  251. package/lib/tags/Constant.d.mts +16 -16
  252. package/lib/tags/Constant.d.ts +16 -16
  253. package/lib/tags/ContentMediaType.d.mts +7 -7
  254. package/lib/tags/ContentMediaType.d.ts +7 -7
  255. package/lib/tags/Default.d.mts +19 -19
  256. package/lib/tags/Default.d.ts +19 -19
  257. package/lib/tags/Example.d.mts +18 -18
  258. package/lib/tags/Example.d.ts +18 -18
  259. package/lib/tags/Examples.d.mts +23 -23
  260. package/lib/tags/Examples.d.ts +23 -23
  261. package/lib/tags/ExclusiveMaximum.d.mts +8 -5
  262. package/lib/tags/ExclusiveMaximum.d.ts +8 -5
  263. package/lib/tags/ExclusiveMinimum.d.mts +8 -5
  264. package/lib/tags/ExclusiveMinimum.d.ts +8 -5
  265. package/lib/tags/Format.d.mts +12 -8
  266. package/lib/tags/Format.d.ts +12 -8
  267. package/lib/tags/JsonSchemaPlugin.d.mts +20 -18
  268. package/lib/tags/JsonSchemaPlugin.d.ts +20 -18
  269. package/lib/tags/MaxItems.d.mts +9 -9
  270. package/lib/tags/MaxItems.d.ts +9 -9
  271. package/lib/tags/MaxLength.d.mts +6 -5
  272. package/lib/tags/MaxLength.d.ts +6 -5
  273. package/lib/tags/Maximum.d.mts +9 -7
  274. package/lib/tags/Maximum.d.ts +9 -7
  275. package/lib/tags/MinItems.d.mts +9 -9
  276. package/lib/tags/MinItems.d.ts +9 -9
  277. package/lib/tags/MinLength.d.mts +6 -5
  278. package/lib/tags/MinLength.d.ts +6 -5
  279. package/lib/tags/Minimum.d.mts +9 -7
  280. package/lib/tags/Minimum.d.ts +9 -7
  281. package/lib/tags/MultipleOf.d.mts +10 -7
  282. package/lib/tags/MultipleOf.d.ts +10 -7
  283. package/lib/tags/Pattern.d.mts +7 -4
  284. package/lib/tags/Pattern.d.ts +7 -4
  285. package/lib/tags/Sequence.d.mts +19 -17
  286. package/lib/tags/Sequence.d.ts +19 -17
  287. package/lib/tags/TagBase.d.mts +21 -28
  288. package/lib/tags/TagBase.d.ts +21 -28
  289. package/lib/tags/Type.d.mts +12 -11
  290. package/lib/tags/Type.d.ts +12 -11
  291. package/lib/tags/UniqueItems.d.mts +10 -9
  292. package/lib/tags/UniqueItems.d.ts +10 -9
  293. package/lib/tags/internal/FormatCheatSheet.d.mts +1 -3
  294. package/lib/tags/internal/FormatCheatSheet.d.ts +1 -3
  295. package/lib/tags/internal/FormatCheatSheet.js +1 -3
  296. package/lib/tags/internal/FormatCheatSheet.js.map +1 -1
  297. package/lib/tags/internal/FormatCheatSheet.mjs +1 -3
  298. package/lib/transformers/ITransformOptions.d.mts +27 -19
  299. package/lib/transformers/ITransformOptions.d.ts +27 -19
  300. package/lib/transformers/ImportTransformer.js +5 -10
  301. package/lib/transformers/ImportTransformer.js.map +1 -1
  302. package/lib/transformers/ImportTransformer.mjs +5 -10
  303. package/lib/transformers/NoTransformConfigurationError.js +1 -3
  304. package/lib/transformers/NoTransformConfigurationError.js.map +1 -1
  305. package/lib/transformers/NoTransformConfigurationError.mjs +1 -3
  306. package/lib/transformers/features/llm/LlmApplicationTransformer.js +1 -3
  307. package/lib/transformers/features/llm/LlmApplicationTransformer.js.map +1 -1
  308. package/lib/transformers/features/llm/LlmApplicationTransformer.mjs +1 -3
  309. package/lib/typings/Equal.d.mts +6 -6
  310. package/lib/typings/Equal.d.ts +6 -6
  311. package/package.json +2 -1
  312. package/src/AssertionGuard.ts +27 -25
  313. package/src/CamelCase.ts +1 -1
  314. package/src/IRandomGenerator.ts +44 -42
  315. package/src/IReadableURLSearchParams.ts +2 -2
  316. package/src/PascalCase.ts +1 -1
  317. package/src/Primitive.ts +20 -22
  318. package/src/Resolved.ts +16 -18
  319. package/src/SnakeCase.ts +3 -2
  320. package/src/TypeGuardError.ts +101 -64
  321. package/src/factories/MetadataCollection.ts +4 -12
  322. package/src/factories/MetadataCommentTagFactory.ts +8 -24
  323. package/src/factories/MetadataFactory.ts +1 -3
  324. package/src/factories/ProtobufFactory.ts +1 -3
  325. package/src/functional.ts +214 -249
  326. package/src/http.ts +329 -397
  327. package/src/internal/_ProtobufReader.ts +3 -9
  328. package/src/internal/_ProtobufSizer.ts +4 -12
  329. package/src/internal/_ProtobufWriter.ts +5 -15
  330. package/src/internal/_jsonStringifyString.ts +4 -4
  331. package/src/json.ts +190 -243
  332. package/src/llm.ts +279 -204
  333. package/src/misc.ts +166 -223
  334. package/src/module.ts +281 -329
  335. package/src/notations.ts +177 -246
  336. package/src/programmers/FeatureProgrammer.ts +19 -41
  337. package/src/programmers/ImportProgrammer.ts +3 -9
  338. package/src/programmers/RandomProgrammer.ts +6 -1
  339. package/src/programmers/helpers/ProtobufWire.ts +13 -13
  340. package/src/programmers/internal/check_array_length.ts +2 -6
  341. package/src/programmers/internal/check_bigint.ts +2 -6
  342. package/src/programmers/internal/check_dynamic_key.ts +2 -6
  343. package/src/programmers/internal/check_dynamic_properties.ts +3 -9
  344. package/src/programmers/internal/check_everything.ts +1 -3
  345. package/src/programmers/internal/check_native.ts +2 -6
  346. package/src/programmers/internal/check_number.ts +2 -6
  347. package/src/programmers/internal/check_object.ts +3 -9
  348. package/src/programmers/internal/check_string.ts +2 -6
  349. package/src/programmers/internal/check_template.ts +1 -3
  350. package/src/programmers/internal/check_union_array_like.ts +2 -6
  351. package/src/programmers/internal/decode_union_object.ts +3 -9
  352. package/src/programmers/internal/feature_object_entries.ts +1 -3
  353. package/src/programmers/internal/json_schema_escaped.ts +2 -6
  354. package/src/programmers/internal/json_schema_object.ts +4 -12
  355. package/src/programmers/internal/metadata_to_pattern.ts +1 -3
  356. package/src/programmers/internal/postfix_of_tuple.ts +1 -3
  357. package/src/programmers/internal/prune_object_properties.ts +1 -3
  358. package/src/programmers/internal/stringify_dynamic_properties.ts +2 -6
  359. package/src/programmers/internal/stringify_native.ts +1 -3
  360. package/src/programmers/internal/stringify_regular_properties.ts +2 -6
  361. package/src/programmers/internal/template_to_pattern.ts +1 -3
  362. package/src/programmers/internal/wrap_metadata_rest_tuple.ts +1 -3
  363. package/src/programmers/json/JsonStringifyProgrammer.ts +2 -2
  364. package/src/protobuf.ts +307 -348
  365. package/src/reflect.ts +3 -7
  366. package/src/schemas/json/IJsonApplication.ts +4 -4
  367. package/src/schemas/json/IJsonSchemaCollection.ts +73 -56
  368. package/src/schemas/json/IJsonSchemaUnit.ts +83 -70
  369. package/src/schemas/metadata/IMetadataTypeTag.ts +1 -3
  370. package/src/schemas/metadata/Metadata.ts +9 -27
  371. package/src/schemas/metadata/MetadataAliasType.ts +3 -9
  372. package/src/schemas/metadata/MetadataApplication.ts +2 -6
  373. package/src/schemas/metadata/MetadataArray.ts +1 -3
  374. package/src/schemas/metadata/MetadataArrayType.ts +3 -9
  375. package/src/schemas/metadata/MetadataAtomic.ts +1 -3
  376. package/src/schemas/metadata/MetadataEscaped.ts +3 -9
  377. package/src/schemas/metadata/MetadataFunction.ts +2 -6
  378. package/src/schemas/metadata/MetadataObject.ts +1 -3
  379. package/src/schemas/metadata/MetadataObjectType.ts +6 -18
  380. package/src/schemas/metadata/MetadataParameter.ts +1 -3
  381. package/src/schemas/metadata/MetadataProperty.ts +3 -9
  382. package/src/schemas/metadata/MetadataTemplate.ts +1 -3
  383. package/src/schemas/metadata/MetadataTuple.ts +2 -6
  384. package/src/schemas/metadata/MetadataTupleType.ts +3 -9
  385. package/src/tags/Constant.ts +16 -16
  386. package/src/tags/ContentMediaType.ts +7 -7
  387. package/src/tags/Default.ts +19 -19
  388. package/src/tags/Example.ts +18 -18
  389. package/src/tags/Examples.ts +23 -23
  390. package/src/tags/ExclusiveMaximum.ts +8 -5
  391. package/src/tags/ExclusiveMinimum.ts +8 -5
  392. package/src/tags/Format.ts +12 -8
  393. package/src/tags/JsonSchemaPlugin.ts +20 -18
  394. package/src/tags/MaxItems.ts +9 -9
  395. package/src/tags/MaxLength.ts +6 -5
  396. package/src/tags/Maximum.ts +9 -7
  397. package/src/tags/MinItems.ts +9 -9
  398. package/src/tags/MinLength.ts +6 -5
  399. package/src/tags/Minimum.ts +9 -7
  400. package/src/tags/MultipleOf.ts +10 -7
  401. package/src/tags/Pattern.ts +7 -4
  402. package/src/tags/Sequence.ts +19 -17
  403. package/src/tags/TagBase.ts +21 -28
  404. package/src/tags/Type.ts +12 -11
  405. package/src/tags/UniqueItems.ts +10 -9
  406. package/src/tags/internal/FormatCheatSheet.ts +1 -3
  407. package/src/transformers/ITransformOptions.ts +27 -19
  408. package/src/transformers/ImportTransformer.ts +5 -10
  409. package/src/transformers/NoTransformConfigurationError.ts +1 -3
  410. package/src/transformers/features/llm/LlmApplicationTransformer.ts +1 -3
  411. package/src/typings/Equal.ts +6 -6
@@ -3,20 +3,23 @@ import { TagBase } from "./TagBase";
3
3
  /**
4
4
  * Exclusive maximum value constraint tag.
5
5
  *
6
- * Enforces that a numeric value must be strictly less than the specified maximum (not equal).
7
- * This constraint validates that the input value satisfies: input < maximum.
6
+ * Enforces that a numeric value must be strictly less than the specified
7
+ * maximum (not equal). This constraint validates that the input value
8
+ * satisfies: input < maximum.
8
9
  *
9
10
  * Example usage:
11
+ *
10
12
  * ```typescript
11
- * type Discount = number & tags.ExclusiveMaximum<100>; // Must be < 100
12
- * type ByteValue = bigint & tags.ExclusiveMaximum<256n>; // Must be < 256
13
+ * type Discount = number & tags.ExclusiveMaximum<100>; // Must be < 100
14
+ * type ByteValue = bigint & tags.ExclusiveMaximum<256n>; // Must be < 256
13
15
  * ```
14
16
  *
15
17
  * Note: This tag is mutually exclusive with Maximum. You cannot apply both
16
18
  * ExclusiveMaximum and Maximum constraints to the same property.
17
19
  *
18
- * @template Value - The exclusive maximum value constraint (number or bigint literal)
19
20
  * @author Jeongho Nam - https://github.com/samchon
21
+ * @template Value - The exclusive maximum value constraint (number or bigint
22
+ * literal)
20
23
  */
21
24
  export type ExclusiveMaximum<Value extends number | bigint> = TagBase<{
22
25
  target: Value extends bigint ? "bigint" : "number";
@@ -3,20 +3,23 @@ import { TagBase } from "./TagBase";
3
3
  /**
4
4
  * Exclusive minimum value constraint tag.
5
5
  *
6
- * Enforces that a numeric value must be strictly greater than the specified minimum (not equal).
7
- * This constraint validates that the input value satisfies: input > minimum.
6
+ * Enforces that a numeric value must be strictly greater than the specified
7
+ * minimum (not equal). This constraint validates that the input value
8
+ * satisfies: input > minimum.
8
9
  *
9
10
  * Example usage:
11
+ *
10
12
  * ```typescript
11
- * type PositiveNumber = number & tags.ExclusiveMinimum<0>; // Must be > 0
12
- * type LargeCount = bigint & tags.ExclusiveMinimum<999n>; // Must be > 999
13
+ * type PositiveNumber = number & tags.ExclusiveMinimum<0>; // Must be > 0
14
+ * type LargeCount = bigint & tags.ExclusiveMinimum<999n>; // Must be > 999
13
15
  * ```
14
16
  *
15
17
  * Note: This tag is mutually exclusive with Minimum. You cannot apply both
16
18
  * ExclusiveMinimum and Minimum constraints to the same property.
17
19
  *
18
- * @template Value - The exclusive minimum value constraint (number or bigint literal)
19
20
  * @author Jeongho Nam - https://github.com/samchon
21
+ * @template Value - The exclusive minimum value constraint (number or bigint
22
+ * literal)
20
23
  */
21
24
  export type ExclusiveMinimum<Value extends number | bigint> = TagBase<{
22
25
  target: Value extends bigint ? "bigint" : "number";
@@ -3,24 +3,28 @@ import type { TagBase } from "./TagBase";
3
3
  /**
4
4
  * String format constraint tag.
5
5
  *
6
- * Validates strings against predefined formats for common use cases.
7
- * This tag provides built-in validation for standard string formats without
8
- * needing to write custom regular expressions.
6
+ * Validates strings against predefined formats for common use cases. This tag
7
+ * provides built-in validation for standard string formats without needing to
8
+ * write custom regular expressions.
9
9
  *
10
10
  * Examples:
11
- * type Email = string & Format<"email">; // user@example.com
12
- * type WebURL = string & Format<"url">; // https://example.com
13
- * type DateTime = string & Format<"date-time">; // 2024-01-15T10:30:00Z
11
+ *
12
+ * ```ts
13
+ * Type Email = string & Format<"email">; // user@example.com
14
+ * Type WebURL = string & Format<"url">; // https://example.com
15
+ * Type DateTime = string & Format<"date-time">; // 2024-01-15T10:30:00Z
16
+ * ```
14
17
  *
15
18
  * Supported formats include:
19
+ *
16
20
  * - Network: email, url, hostname, ipv4, ipv6, uri
17
21
  * - Identifiers: uuid, byte, password
18
22
  * - Date/Time: date, time, date-time, duration
19
23
  * - Data: json-pointer, regex
20
24
  * - Internationalized: idn-email, idn-hostname, iri
21
25
  *
22
- * Note: This tag is mutually exclusive with the Pattern tag. You cannot use both
23
- * Format and Pattern on the same type.
26
+ * Note: This tag is mutually exclusive with the Pattern tag. You cannot use
27
+ * both Format and Pattern on the same type.
24
28
  *
25
29
  * @author Jeongho Nam - https://github.com/samchon
26
30
  */
@@ -3,28 +3,30 @@ import { TagBase } from "./TagBase";
3
3
  /**
4
4
  * Injects custom properties into generated JSON Schema.
5
5
  *
6
- * The JsonSchemaPlugin tag allows you to add vendor-specific extensions or custom metadata
7
- * to the generated JSON Schema output. These properties are merged at the root level of
8
- * the schema and are commonly used for documentation, tooling hints, or API-specific metadata.
9
- * The custom properties only affect schema generation and do not impact runtime validation.
6
+ * The JsonSchemaPlugin tag allows you to add vendor-specific extensions or
7
+ * custom metadata to the generated JSON Schema output. These properties are
8
+ * merged at the root level of the schema and are commonly used for
9
+ * documentation, tooling hints, or API-specific metadata. The custom properties
10
+ * only affect schema generation and do not impact runtime validation.
10
11
  *
12
+ * @author Jeongho Nam - https://github.com/samchon
11
13
  * @example
12
- * ```typescript
13
- * // Add OpenAPI vendor extensions
14
- * type UserId = string & JsonSchemaPlugin<{
15
- * "x-internal-id": true,
16
- * "x-deprecated": "Use UUID instead"
17
- * }>;
14
+ * ```typescript
15
+ * // Add OpenAPI vendor extensions
16
+ * type UserId = string & JsonSchemaPlugin<{
17
+ * "x-internal-id": true,
18
+ * "x-deprecated": "Use UUID instead"
19
+ * }>;
18
20
  *
19
- * // Add custom documentation metadata
20
- * type Price = number & JsonSchemaPlugin<{
21
- * "x-format": "currency",
22
- * "x-example": 19.99
23
- * }>;
24
- * ```
21
+ * // Add custom documentation metadata
22
+ * type Price = number & JsonSchemaPlugin<{
23
+ * "x-format": "currency",
24
+ * "x-example": 19.99
25
+ * }>;
26
+ * ```
25
27
  *
26
- * @template Schema - Object containing custom properties to add to the JSON Schema
27
- * @author Jeongho Nam - https://github.com/samchon
28
+ * @template Schema - Object containing custom properties to add to the JSON
29
+ * Schema
28
30
  */
29
31
  export type JsonSchemaPlugin<Schema extends object> = TagBase<{
30
32
  target: "string" | "boolean" | "bigint" | "number" | "array" | "object";
@@ -3,21 +3,21 @@ import { TagBase } from "./TagBase";
3
3
  /**
4
4
  * Maximum items validation tag for arrays.
5
5
  *
6
- * Enforces that an array contains at most the specified number of items.
7
- * This tag is useful for limiting array sizes, such as restricting the
8
- * number of uploaded files, limiting selections in a form, or capping
9
- * the size of collections to prevent performance issues.
6
+ * Enforces that an array contains at most the specified number of items. This
7
+ * tag is useful for limiting array sizes, such as restricting the number of
8
+ * uploaded files, limiting selections in a form, or capping the size of
9
+ * collections to prevent performance issues.
10
10
  *
11
+ * @author Jeongho Nam - https://github.com/samchon
11
12
  * @example
12
- * // Allow maximum 5 file uploads
13
- * type FileList = File[] & MaxItems<5>;
13
+ * // Allow maximum 5 file uploads
14
+ * type FileList = File[] & MaxItems<5>;
14
15
  *
15
16
  * @example
16
- * // Limit tags to 10 items
17
- * type ProductTags = string[] & MaxItems<10>;
17
+ * // Limit tags to 10 items
18
+ * type ProductTags = string[] & MaxItems<10>;
18
19
  *
19
20
  * @template Value - The maximum number of items allowed
20
- * @author Jeongho Nam - https://github.com/samchon
21
21
  */
22
22
  export type MaxItems<Value extends number> = TagBase<{
23
23
  target: "array";
@@ -3,12 +3,13 @@ import { TagBase } from "./TagBase";
3
3
  /**
4
4
  * String maximum length constraint tag.
5
5
  *
6
- * Validates that a string's length is less than or equal to the specified value.
7
- * This tag enforces an upper limit on the number of characters in a string.
6
+ * Validates that a string's length is less than or equal to the specified
7
+ * value. This tag enforces an upper limit on the number of characters in a
8
+ * string.
8
9
  *
9
- * Examples:
10
- * type ShortComment = string & MaxLength<200>; // Comment limited to 200 characters
11
- * type ZipCode = string & MaxLength<10>; // Zip code with max 10 characters
10
+ * Examples: type ShortComment = string & MaxLength<200>; // Comment limited to
11
+ * 200 characters type ZipCode = string & MaxLength<10>; // Zip code with max 10
12
+ * characters
12
13
  *
13
14
  * @author Jeongho Nam - https://github.com/samchon
14
15
  */
@@ -3,20 +3,22 @@ import { TagBase } from "./TagBase";
3
3
  /**
4
4
  * Maximum value constraint tag.
5
5
  *
6
- * Enforces that a numeric value must be less than or equal to the specified maximum.
7
- * This constraint validates that the input value satisfies: input <= maximum.
6
+ * Enforces that a numeric value must be less than or equal to the specified
7
+ * maximum. This constraint validates that the input value satisfies: input <=
8
+ * maximum.
8
9
  *
9
10
  * Example usage:
11
+ *
10
12
  * ```typescript
11
- * type Percentage = number & tags.Maximum<100>; // Must be <= 100
12
- * type SmallInt = bigint & tags.Maximum<255n>; // BigInt must be <= 255
13
+ * type Percentage = number & tags.Maximum<100>; // Must be <= 100
14
+ * type SmallInt = bigint & tags.Maximum<255n>; // BigInt must be <= 255
13
15
  * ```
14
16
  *
15
- * Note: This tag is mutually exclusive with ExclusiveMaximum. You cannot apply both
16
- * Maximum and ExclusiveMaximum constraints to the same property.
17
+ * Note: This tag is mutually exclusive with ExclusiveMaximum. You cannot apply
18
+ * both Maximum and ExclusiveMaximum constraints to the same property.
17
19
  *
18
- * @template Value - The maximum value constraint (number or bigint literal)
19
20
  * @author Jeongho Nam - https://github.com/samchon
21
+ * @template Value - The maximum value constraint (number or bigint literal)
20
22
  */
21
23
  export type Maximum<Value extends number | bigint> = TagBase<{
22
24
  target: Value extends bigint ? "bigint" : "number";
@@ -3,21 +3,21 @@ import { TagBase } from "./TagBase";
3
3
  /**
4
4
  * Minimum items validation tag for arrays.
5
5
  *
6
- * Enforces that an array contains at least the specified number of items.
7
- * This tag is useful for ensuring arrays have a minimum length requirement,
8
- * such as requiring at least one item in a list or a minimum number of
9
- * selections in a multi-choice field.
6
+ * Enforces that an array contains at least the specified number of items. This
7
+ * tag is useful for ensuring arrays have a minimum length requirement, such as
8
+ * requiring at least one item in a list or a minimum number of selections in a
9
+ * multi-choice field.
10
10
  *
11
+ * @author Jeongho Nam - https://github.com/samchon
11
12
  * @example
12
- * // Require at least 1 item in the array
13
- * type Tags = string[] & MinItems<1>;
13
+ * // Require at least 1 item in the array
14
+ * type Tags = string[] & MinItems<1>;
14
15
  *
15
16
  * @example
16
- * // Require at least 3 selections
17
- * type MultipleChoice = number[] & MinItems<3>;
17
+ * // Require at least 3 selections
18
+ * type MultipleChoice = number[] & MinItems<3>;
18
19
  *
19
20
  * @template Value - The minimum number of items required
20
- * @author Jeongho Nam - https://github.com/samchon
21
21
  */
22
22
  export type MinItems<Value extends number> = TagBase<{
23
23
  target: "array";
@@ -3,12 +3,13 @@ import { TagBase } from "./TagBase";
3
3
  /**
4
4
  * String minimum length constraint tag.
5
5
  *
6
- * Validates that a string's length is greater than or equal to the specified value.
7
- * This tag ensures that string values meet a minimum character count requirement.
6
+ * Validates that a string's length is greater than or equal to the specified
7
+ * value. This tag ensures that string values meet a minimum character count
8
+ * requirement.
8
9
  *
9
- * Examples:
10
- * type Username = string & MinLength<3>; // Username must be at least 3 characters
11
- * type Password = string & MinLength<8>; // Password must be at least 8 characters
10
+ * Examples: type Username = string & MinLength<3>; // Username must be at least
11
+ * 3 characters type Password = string & MinLength<8>; // Password must be at
12
+ * least 8 characters
12
13
  *
13
14
  * @author Jeongho Nam - https://github.com/samchon
14
15
  */
@@ -3,20 +3,22 @@ import { TagBase } from "./TagBase";
3
3
  /**
4
4
  * Minimum value constraint tag.
5
5
  *
6
- * Enforces that a numeric value must be greater than or equal to the specified minimum.
7
- * This constraint validates that the input value satisfies: input >= minimum.
6
+ * Enforces that a numeric value must be greater than or equal to the specified
7
+ * minimum. This constraint validates that the input value satisfies: input >=
8
+ * minimum.
8
9
  *
9
10
  * Example usage:
11
+ *
10
12
  * ```typescript
11
- * type Age = number & tags.Minimum<0>; // Age must be 0 or greater
12
- * type Balance = bigint & tags.Minimum<0n>; // BigInt balance must be non-negative
13
+ * type Age = number & tags.Minimum<0>; // Age must be 0 or greater
14
+ * type Balance = bigint & tags.Minimum<0n>; // BigInt balance must be non-negative
13
15
  * ```
14
16
  *
15
- * Note: This tag is mutually exclusive with ExclusiveMinimum. You cannot apply both
16
- * Minimum and ExclusiveMinimum constraints to the same property.
17
+ * Note: This tag is mutually exclusive with ExclusiveMinimum. You cannot apply
18
+ * both Minimum and ExclusiveMinimum constraints to the same property.
17
19
  *
18
- * @template Value - The minimum value constraint (number or bigint literal)
19
20
  * @author Jeongho Nam - https://github.com/samchon
21
+ * @template Value - The minimum value constraint (number or bigint literal)
20
22
  */
21
23
  export type Minimum<Value extends number | bigint> = TagBase<{
22
24
  target: Value extends bigint ? "bigint" : "number";
@@ -3,20 +3,23 @@ import { TagBase } from "./TagBase";
3
3
  /**
4
4
  * Multiple of constraint tag.
5
5
  *
6
- * Enforces that a numeric value must be an exact multiple of the specified divisor.
7
- * This constraint validates that the input value satisfies: input % divisor === 0.
6
+ * Enforces that a numeric value must be an exact multiple of the specified
7
+ * divisor. This constraint validates that the input value satisfies: input %
8
+ * divisor === 0.
8
9
  *
9
10
  * Example usage:
11
+ *
10
12
  * ```typescript
11
- * type EvenNumber = number & tags.MultipleOf<2>; // Must be even (2, 4, 6, ...)
12
- * type DollarAmount = number & tags.MultipleOf<0.01>; // Must be in cents
13
+ * type EvenNumber = number & tags.MultipleOf<2>; // Must be even (2, 4, 6, ...)
14
+ * type DollarAmount = number & tags.MultipleOf<0.01>; // Must be in cents
13
15
  * ```
14
16
  *
15
- * Common use cases include validating even/odd numbers, currency amounts,
16
- * time intervals, or any value that must align to specific increments.
17
+ * Common use cases include validating even/odd numbers, currency amounts, time
18
+ * intervals, or any value that must align to specific increments.
17
19
  *
18
- * @template Value - The divisor value that input must be a multiple of (number or bigint literal)
19
20
  * @author Jeongho Nam - https://github.com/samchon
21
+ * @template Value - The divisor value that input must be a multiple of (number
22
+ * or bigint literal)
20
23
  */
21
24
  export type MultipleOf<Value extends number | bigint> = TagBase<{
22
25
  target: Value extends bigint ? "bigint" : "number";
@@ -3,12 +3,15 @@ import { TagBase } from "./TagBase";
3
3
  /**
4
4
  * String pattern (regular expression) constraint tag.
5
5
  *
6
- * Validates that a string matches a specified regular expression pattern.
7
- * Use this tag to enforce custom string formats through regex validation.
6
+ * Validates that a string matches a specified regular expression pattern. Use
7
+ * this tag to enforce custom string formats through regex validation.
8
8
  *
9
9
  * Examples:
10
- * type PhoneNumber = string & Pattern<"^\\d{3}-\\d{3}-\\d{4}$">; // 123-456-7890
11
- * type HexColor = string & Pattern<"^#[0-9A-Fa-f]{6}$">; // #FF5733
10
+ *
11
+ * ```ts
12
+ * type PhoneNumber = string & Pattern<"^\d{3}-\d{3}-\d{4}$">; // 123-456-7890
13
+ * type HexColor = string & Pattern<"^#[0-9A-Fa-f]{6}$">; // #FF5733
14
+ * ```
12
15
  *
13
16
  * Note: This tag is mutually exclusive with the Format tag. You cannot use both
14
17
  * Pattern and Format on the same type.
@@ -3,27 +3,29 @@ import { TagBase } from "./TagBase";
3
3
  /**
4
4
  * Assigns unique field numbers for Protocol Buffer serialization.
5
5
  *
6
- * In Protocol Buffer encoding, each field in a message must have a unique numeric identifier.
7
- * The Sequence tag assigns these field numbers to TypeScript properties, enabling proper
8
- * Protocol Buffer serialization and deserialization. Field numbers 1-15 require only one
9
- * byte to encode, making them ideal for frequently used fields. Numbers 19000-19999 are
10
- * reserved by the Protocol Buffer specification and should not be used.
6
+ * In Protocol Buffer encoding, each field in a message must have a unique
7
+ * numeric identifier. The Sequence tag assigns these field numbers to
8
+ * TypeScript properties, enabling proper Protocol Buffer serialization and
9
+ * deserialization. Field numbers 1-15 require only one byte to encode, making
10
+ * them ideal for frequently used fields. Numbers 19000-19999 are reserved by
11
+ * the Protocol Buffer specification and should not be used.
11
12
  *
13
+ * @author Jeongho Nam - https://github.com/samchon
12
14
  * @example
13
- * ```typescript
14
- * interface User {
15
- * id: string & Sequence<1>; // Most frequent field uses 1
16
- * email: string & Sequence<2>; // Common fields use low numbers
17
- * createdAt: number & Sequence<3>;
18
- * metadata?: object & Sequence<10>; // Optional fields work too
19
- * }
15
+ * ```typescript
16
+ * interface User {
17
+ * id: string & Sequence<1>; // Most frequent field uses 1
18
+ * email: string & Sequence<2>; // Common fields use low numbers
19
+ * createdAt: number & Sequence<3>;
20
+ * metadata?: object & Sequence<10>; // Optional fields work too
21
+ * }
20
22
  *
21
- * // Generate Protocol Buffer message
22
- * const message = typia.protobuf.message<User>();
23
- * ```
23
+ * // Generate Protocol Buffer message
24
+ * const message = typia.protobuf.message<User>();
25
+ * ```
24
26
  *
25
- * @template N - Field number (positive integer from 1 to 536,870,911, excluding 19000-19999)
26
- * @author Jeongho Nam - https://github.com/samchon
27
+ * @template N - Field number (positive integer from 1 to 536,870,911, excluding
28
+ * 19000-19999)
27
29
  */
28
30
  export type Sequence<N extends number> = TagBase<{
29
31
  target: "boolean" | "bigint" | "number" | "string" | "array" | "object";
@@ -2,23 +2,22 @@
2
2
  * Base type for all validation tags in typia.
3
3
  *
4
4
  * TagBase provides the foundation for all typia's validation tags. It attaches
5
- * metadata to TypeScript types that typia's transformer processes at compile-time
6
- * to generate optimized runtime validation code.
7
- *
8
- * @template Props - Tag properties that define validation behavior
5
+ * metadata to TypeScript types that typia's transformer processes at
6
+ * compile-time to generate optimized runtime validation code.
9
7
  *
8
+ * @author Jeongho Nam - https://github.com/samchon
10
9
  * @example
11
- * ```typescript
12
- * // Custom tag example
13
- * type MyCustomTag<Value extends number> = TagBase<{
10
+ * ```typescript
11
+ * // Custom tag example
12
+ * type MyCustomTag<Value extends number> = TagBase<{
14
13
  * target: "number";
15
14
  * kind: "MyCustom";
16
15
  * value: Value;
17
16
  * validate: `$input === ${Value}`;
18
- * }>;
19
- * ```
17
+ * }>;
18
+ * ```
20
19
  *
21
- * @author Jeongho Nam - https://github.com/samchon
20
+ * @template Props - Tag properties that define validation behavior
22
21
  */
23
22
  export type TagBase<
24
23
  Props extends TagBase.IProps<any, any, any, any, any, any>,
@@ -57,30 +56,26 @@ export namespace TagBase {
57
56
  /**
58
57
  * Target type.
59
58
  *
60
- * If user tries to adapt this tag to a different type, it would be a compile
61
- * error.
59
+ * If user tries to adapt this tag to a different type, it would be a
60
+ * compile error.
62
61
  *
63
- * For example, you've configured target type as `string`, but user adapted it
64
- * onto a `number` type (`number & YourCustomTag<Value>`), then it would be
65
- * blocked by TypeScript compiler.
62
+ * For example, you've configured target type as `string`, but user adapted
63
+ * it onto a `number` type (`number & YourCustomTag<Value>`), then it would
64
+ * be blocked by TypeScript compiler.
66
65
  */
67
66
  target: Target;
68
67
 
69
- /**
70
- * What kind of tag is this?
71
- */
68
+ /** What kind of tag is this? */
72
69
  kind: Kind;
73
70
 
74
- /**
75
- * Value to be configured by user.
76
- */
71
+ /** Value to be configured by user. */
77
72
  value: Value;
78
73
 
79
74
  /**
80
75
  * Validation script.
81
76
  *
82
- * This script would be inserted into the generated validation function.
83
- * In here script, target variable name must be `$input`. The variable name
77
+ * This script would be inserted into the generated validation function. In
78
+ * here script, target variable name must be `$input`. The variable name
84
79
  * `$input` would be transformed to the suitable when compilation.
85
80
  *
86
81
  * Also, If you've take a mistake on this script, compile error would be
@@ -94,16 +89,14 @@ export namespace TagBase {
94
89
  *
95
90
  * If this property configured as `true`, same {@link kind} tag cannot be
96
91
  * duplicated in the target type. Otherwise, if you've configured this
97
- * property as string array, all of the {@link kind} value assigned
98
- * tags cannot be compatible in the target type.
92
+ * property as string array, all of the {@link kind} value assigned tags
93
+ * cannot be compatible in the target type.
99
94
  *
100
95
  * @default false
101
96
  */
102
97
  exclusive?: Exclusive | string[];
103
98
 
104
- /**
105
- * Additional schema info assigned to the {@link IJsonSchema} object.
106
- */
99
+ /** Additional schema info assigned to the {@link IJsonSchema} object. */
107
100
  schema?: Schema;
108
101
  }
109
102
  }
package/src/tags/Type.ts CHANGED
@@ -3,10 +3,12 @@ import { TagBase } from "./TagBase";
3
3
  /**
4
4
  * Type tag for specifying numeric bit-width representations.
5
5
  *
6
- * Constrains numeric types to specific bit-width formats used in systems programming
7
- * and protocol buffers. Ensures numbers conform to platform-specific representations.
6
+ * Constrains numeric types to specific bit-width formats used in systems
7
+ * programming and protocol buffers. Ensures numbers conform to
8
+ * platform-specific representations.
8
9
  *
9
10
  * Supported types:
11
+ *
10
12
  * - `int32`: 32-bit signed integer (-2^31 to 2^31-1)
11
13
  * - `uint32`: 32-bit unsigned integer (0 to 2^32-1)
12
14
  * - `int64`: 64-bit signed integer (supports both bigint and number)
@@ -14,17 +16,16 @@ import { TagBase } from "./TagBase";
14
16
  * - `float`: 32-bit floating point (single precision)
15
17
  * - `double`: 64-bit floating point (double precision, default JS number)
16
18
  *
17
- * @template Value - The numeric type representation
18
- *
19
+ * @author Jeongho Nam - https://github.com/samchon
19
20
  * @example
20
- * ```typescript
21
- * type Score = number & Type<"int32">; // -2,147,483,648 to 2,147,483,647
22
- * type UserId = number & Type<"uint32">; // 0 to 4,294,967,295
23
- * type FileSize = bigint & Type<"int64">; // Large file sizes
24
- * type Coordinate = number & Type<"double">; // High precision coordinates
25
- * ```
21
+ * ```typescript
22
+ * type Score = number & Type<"int32">; // -2,147,483,648 to 2,147,483,647
23
+ * type UserId = number & Type<"uint32">; // 0 to 4,294,967,295
24
+ * type FileSize = bigint & Type<"int64">; // Large file sizes
25
+ * type Coordinate = number & Type<"double">; // High precision coordinates
26
+ * ```
26
27
  *
27
- * @author Jeongho Nam - https://github.com/samchon
28
+ * @template Value - The numeric type representation
28
29
  */
29
30
  export type Type<
30
31
  Value extends "int32" | "uint32" | "int64" | "uint64" | "float" | "double",
@@ -4,20 +4,21 @@ import { TagBase } from "./TagBase";
4
4
  * Unique items validation tag for arrays.
5
5
  *
6
6
  * Enforces that all items in an array are unique, preventing duplicate values.
7
- * Uniqueness is determined using strict equality (===) for primitives and
8
- * deep structural comparison for objects and arrays. This means two objects
9
- * with the same properties and values are considered duplicates.
7
+ * Uniqueness is determined using strict equality (===) for primitives and deep
8
+ * structural comparison for objects and arrays. This means two objects with the
9
+ * same properties and values are considered duplicates.
10
10
  *
11
+ * @author Jeongho Nam - https://github.com/samchon
11
12
  * @example
12
- * // Ensure all IDs are unique
13
- * type UserIds = number[] & UniqueItems;
13
+ * // Ensure all IDs are unique
14
+ * type UserIds = number[] & UniqueItems;
14
15
  *
15
16
  * @example
16
- * // Prevent duplicate email addresses
17
- * type EmailList = string[] & UniqueItems;
17
+ * // Prevent duplicate email addresses
18
+ * type EmailList = string[] & UniqueItems;
18
19
  *
19
- * @template Value - Boolean flag to enable/disable uniqueness validation (defaults to true)
20
- * @author Jeongho Nam - https://github.com/samchon
20
+ * @template Value - Boolean flag to enable/disable uniqueness validation
21
+ * (defaults to true)
21
22
  */
22
23
  export type UniqueItems<Value extends boolean = true> = TagBase<{
23
24
  target: "array";
@@ -1,9 +1,7 @@
1
1
  const RegexCall = <Text extends string>(text: Text) =>
2
2
  `${text}.test($input)` as const;
3
3
 
4
- /**
5
- * @reference https://github.dev/ajv-validator/ajv-formats/blob/master/src/formats.ts
6
- */
4
+ /** @reference https://github.dev/ajv-validator/ajv-formats/blob/master/src/formats.ts */
7
5
  export const FormatCheatSheet = {
8
6
  // SPECIAL CHARACTERS
9
7
  byte: RegexCall(