typia 9.7.0 → 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 (407) 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/protobuf.d.mts +290 -297
  166. package/lib/protobuf.d.ts +290 -297
  167. package/lib/protobuf.js +17 -51
  168. package/lib/protobuf.js.map +1 -1
  169. package/lib/protobuf.mjs +17 -51
  170. package/lib/reflect.d.mts +2 -4
  171. package/lib/reflect.d.ts +2 -4
  172. package/lib/reflect.js +1 -3
  173. package/lib/reflect.js.map +1 -1
  174. package/lib/reflect.mjs +1 -3
  175. package/lib/schemas/json/IJsonApplication.d.mts +4 -4
  176. package/lib/schemas/json/IJsonApplication.d.ts +4 -4
  177. package/lib/schemas/json/IJsonSchemaCollection.d.mts +73 -56
  178. package/lib/schemas/json/IJsonSchemaCollection.d.ts +73 -56
  179. package/lib/schemas/json/IJsonSchemaUnit.d.mts +83 -70
  180. package/lib/schemas/json/IJsonSchemaUnit.d.ts +83 -70
  181. package/lib/schemas/metadata/Metadata.d.mts +1 -3
  182. package/lib/schemas/metadata/Metadata.d.ts +1 -3
  183. package/lib/schemas/metadata/Metadata.js +9 -27
  184. package/lib/schemas/metadata/Metadata.js.map +1 -1
  185. package/lib/schemas/metadata/Metadata.mjs +9 -27
  186. package/lib/schemas/metadata/MetadataAliasType.d.mts +1 -3
  187. package/lib/schemas/metadata/MetadataAliasType.d.ts +1 -3
  188. package/lib/schemas/metadata/MetadataAliasType.js +3 -9
  189. package/lib/schemas/metadata/MetadataAliasType.js.map +1 -1
  190. package/lib/schemas/metadata/MetadataAliasType.mjs +3 -9
  191. package/lib/schemas/metadata/MetadataApplication.d.mts +1 -3
  192. package/lib/schemas/metadata/MetadataApplication.d.ts +1 -3
  193. package/lib/schemas/metadata/MetadataApplication.js +2 -6
  194. package/lib/schemas/metadata/MetadataApplication.js.map +1 -1
  195. package/lib/schemas/metadata/MetadataApplication.mjs +2 -6
  196. package/lib/schemas/metadata/MetadataArray.d.mts +1 -3
  197. package/lib/schemas/metadata/MetadataArray.d.ts +1 -3
  198. package/lib/schemas/metadata/MetadataArray.js +1 -3
  199. package/lib/schemas/metadata/MetadataArray.js.map +1 -1
  200. package/lib/schemas/metadata/MetadataArray.mjs +1 -3
  201. package/lib/schemas/metadata/MetadataArrayType.d.mts +1 -3
  202. package/lib/schemas/metadata/MetadataArrayType.d.ts +1 -3
  203. package/lib/schemas/metadata/MetadataArrayType.js +3 -9
  204. package/lib/schemas/metadata/MetadataArrayType.js.map +1 -1
  205. package/lib/schemas/metadata/MetadataArrayType.mjs +3 -9
  206. package/lib/schemas/metadata/MetadataAtomic.js +1 -3
  207. package/lib/schemas/metadata/MetadataAtomic.js.map +1 -1
  208. package/lib/schemas/metadata/MetadataAtomic.mjs +1 -3
  209. package/lib/schemas/metadata/MetadataEscaped.d.mts +1 -3
  210. package/lib/schemas/metadata/MetadataEscaped.d.ts +1 -3
  211. package/lib/schemas/metadata/MetadataEscaped.js +3 -9
  212. package/lib/schemas/metadata/MetadataEscaped.js.map +1 -1
  213. package/lib/schemas/metadata/MetadataEscaped.mjs +3 -9
  214. package/lib/schemas/metadata/MetadataFunction.d.mts +1 -3
  215. package/lib/schemas/metadata/MetadataFunction.d.ts +1 -3
  216. package/lib/schemas/metadata/MetadataFunction.js +2 -6
  217. package/lib/schemas/metadata/MetadataFunction.js.map +1 -1
  218. package/lib/schemas/metadata/MetadataFunction.mjs +2 -6
  219. package/lib/schemas/metadata/MetadataObject.d.mts +1 -3
  220. package/lib/schemas/metadata/MetadataObject.d.ts +1 -3
  221. package/lib/schemas/metadata/MetadataObject.js +1 -3
  222. package/lib/schemas/metadata/MetadataObject.js.map +1 -1
  223. package/lib/schemas/metadata/MetadataObject.mjs +1 -3
  224. package/lib/schemas/metadata/MetadataObjectType.d.mts +1 -3
  225. package/lib/schemas/metadata/MetadataObjectType.d.ts +1 -3
  226. package/lib/schemas/metadata/MetadataObjectType.js +5 -15
  227. package/lib/schemas/metadata/MetadataObjectType.js.map +1 -1
  228. package/lib/schemas/metadata/MetadataObjectType.mjs +6 -18
  229. package/lib/schemas/metadata/MetadataParameter.js +1 -3
  230. package/lib/schemas/metadata/MetadataParameter.js.map +1 -1
  231. package/lib/schemas/metadata/MetadataParameter.mjs +1 -3
  232. package/lib/schemas/metadata/MetadataProperty.d.mts +1 -3
  233. package/lib/schemas/metadata/MetadataProperty.d.ts +1 -3
  234. package/lib/schemas/metadata/MetadataProperty.js +3 -9
  235. package/lib/schemas/metadata/MetadataProperty.js.map +1 -1
  236. package/lib/schemas/metadata/MetadataProperty.mjs +3 -9
  237. package/lib/schemas/metadata/MetadataTemplate.js +1 -3
  238. package/lib/schemas/metadata/MetadataTemplate.js.map +1 -1
  239. package/lib/schemas/metadata/MetadataTemplate.mjs +1 -3
  240. package/lib/schemas/metadata/MetadataTuple.d.mts +1 -3
  241. package/lib/schemas/metadata/MetadataTuple.d.ts +1 -3
  242. package/lib/schemas/metadata/MetadataTuple.js +2 -6
  243. package/lib/schemas/metadata/MetadataTuple.js.map +1 -1
  244. package/lib/schemas/metadata/MetadataTuple.mjs +2 -6
  245. package/lib/schemas/metadata/MetadataTupleType.js +2 -6
  246. package/lib/schemas/metadata/MetadataTupleType.js.map +1 -1
  247. package/lib/schemas/metadata/MetadataTupleType.mjs +3 -9
  248. package/lib/tags/Constant.d.mts +32 -0
  249. package/lib/tags/Constant.d.ts +32 -0
  250. package/lib/tags/ContentMediaType.d.mts +17 -0
  251. package/lib/tags/ContentMediaType.d.ts +17 -0
  252. package/lib/tags/Default.d.mts +30 -0
  253. package/lib/tags/Default.d.ts +30 -0
  254. package/lib/tags/Example.d.mts +32 -0
  255. package/lib/tags/Example.d.ts +32 -0
  256. package/lib/tags/Examples.d.mts +40 -0
  257. package/lib/tags/Examples.d.ts +40 -0
  258. package/lib/tags/ExclusiveMaximum.d.mts +21 -0
  259. package/lib/tags/ExclusiveMaximum.d.ts +21 -0
  260. package/lib/tags/ExclusiveMinimum.d.mts +21 -0
  261. package/lib/tags/ExclusiveMinimum.d.ts +21 -0
  262. package/lib/tags/Format.d.mts +28 -0
  263. package/lib/tags/Format.d.ts +28 -0
  264. package/lib/tags/JsonSchemaPlugin.d.mts +28 -0
  265. package/lib/tags/JsonSchemaPlugin.d.ts +28 -0
  266. package/lib/tags/MaxItems.d.mts +19 -0
  267. package/lib/tags/MaxItems.d.ts +19 -0
  268. package/lib/tags/MaxLength.d.mts +13 -0
  269. package/lib/tags/MaxLength.d.ts +13 -0
  270. package/lib/tags/Maximum.d.mts +20 -0
  271. package/lib/tags/Maximum.d.ts +20 -0
  272. package/lib/tags/MinItems.d.mts +19 -0
  273. package/lib/tags/MinItems.d.ts +19 -0
  274. package/lib/tags/MinLength.d.mts +13 -0
  275. package/lib/tags/MinLength.d.ts +13 -0
  276. package/lib/tags/Minimum.d.mts +20 -0
  277. package/lib/tags/Minimum.d.ts +20 -0
  278. package/lib/tags/MultipleOf.d.mts +21 -0
  279. package/lib/tags/MultipleOf.d.ts +21 -0
  280. package/lib/tags/Pattern.d.mts +18 -0
  281. package/lib/tags/Pattern.d.ts +18 -0
  282. package/lib/tags/Sequence.d.mts +27 -0
  283. package/lib/tags/Sequence.d.ts +27 -0
  284. package/lib/tags/TagBase.d.mts +38 -18
  285. package/lib/tags/TagBase.d.ts +38 -18
  286. package/lib/tags/Type.d.mts +27 -0
  287. package/lib/tags/Type.d.ts +27 -0
  288. package/lib/tags/UniqueItems.d.mts +20 -0
  289. package/lib/tags/UniqueItems.d.ts +20 -0
  290. package/lib/tags/internal/FormatCheatSheet.d.mts +1 -3
  291. package/lib/tags/internal/FormatCheatSheet.d.ts +1 -3
  292. package/lib/tags/internal/FormatCheatSheet.js +1 -3
  293. package/lib/tags/internal/FormatCheatSheet.js.map +1 -1
  294. package/lib/tags/internal/FormatCheatSheet.mjs +1 -3
  295. package/lib/transformers/ITransformOptions.d.mts +27 -19
  296. package/lib/transformers/ITransformOptions.d.ts +27 -19
  297. package/lib/transformers/ImportTransformer.js +114 -1
  298. package/lib/transformers/ImportTransformer.js.map +1 -1
  299. package/lib/transformers/ImportTransformer.mjs +114 -1
  300. package/lib/transformers/NoTransformConfigurationError.js +1 -3
  301. package/lib/transformers/NoTransformConfigurationError.js.map +1 -1
  302. package/lib/transformers/NoTransformConfigurationError.mjs +1 -3
  303. package/lib/transformers/features/llm/LlmApplicationTransformer.js +1 -3
  304. package/lib/transformers/features/llm/LlmApplicationTransformer.js.map +1 -1
  305. package/lib/transformers/features/llm/LlmApplicationTransformer.mjs +1 -3
  306. package/lib/typings/Equal.d.mts +6 -6
  307. package/lib/typings/Equal.d.ts +6 -6
  308. package/package.json +2 -1
  309. package/src/AssertionGuard.ts +27 -25
  310. package/src/CamelCase.ts +1 -1
  311. package/src/IRandomGenerator.ts +57 -47
  312. package/src/IReadableURLSearchParams.ts +2 -2
  313. package/src/PascalCase.ts +1 -1
  314. package/src/Primitive.ts +20 -22
  315. package/src/Resolved.ts +16 -18
  316. package/src/SnakeCase.ts +3 -2
  317. package/src/TypeGuardError.ts +101 -64
  318. package/src/factories/MetadataCollection.ts +4 -12
  319. package/src/factories/MetadataCommentTagFactory.ts +8 -24
  320. package/src/factories/MetadataFactory.ts +1 -3
  321. package/src/factories/ProtobufFactory.ts +1 -3
  322. package/src/functional.ts +214 -249
  323. package/src/http.ts +329 -397
  324. package/src/internal/_ProtobufReader.ts +3 -9
  325. package/src/internal/_ProtobufSizer.ts +4 -12
  326. package/src/internal/_ProtobufWriter.ts +5 -15
  327. package/src/internal/_jsonStringifyString.ts +4 -4
  328. package/src/json.ts +190 -243
  329. package/src/llm.ts +279 -204
  330. package/src/misc.ts +166 -223
  331. package/src/module.ts +281 -329
  332. package/src/notations.ts +177 -246
  333. package/src/programmers/FeatureProgrammer.ts +19 -41
  334. package/src/programmers/ImportProgrammer.ts +3 -9
  335. package/src/programmers/RandomProgrammer.ts +6 -1
  336. package/src/programmers/helpers/ProtobufWire.ts +13 -13
  337. package/src/programmers/internal/check_array_length.ts +2 -6
  338. package/src/programmers/internal/check_bigint.ts +2 -6
  339. package/src/programmers/internal/check_dynamic_key.ts +2 -6
  340. package/src/programmers/internal/check_dynamic_properties.ts +3 -9
  341. package/src/programmers/internal/check_everything.ts +1 -3
  342. package/src/programmers/internal/check_native.ts +2 -6
  343. package/src/programmers/internal/check_number.ts +2 -6
  344. package/src/programmers/internal/check_object.ts +3 -9
  345. package/src/programmers/internal/check_string.ts +2 -6
  346. package/src/programmers/internal/check_template.ts +1 -3
  347. package/src/programmers/internal/check_union_array_like.ts +2 -6
  348. package/src/programmers/internal/decode_union_object.ts +3 -9
  349. package/src/programmers/internal/feature_object_entries.ts +1 -3
  350. package/src/programmers/internal/json_schema_escaped.ts +2 -6
  351. package/src/programmers/internal/json_schema_object.ts +4 -12
  352. package/src/programmers/internal/metadata_to_pattern.ts +1 -3
  353. package/src/programmers/internal/postfix_of_tuple.ts +1 -3
  354. package/src/programmers/internal/prune_object_properties.ts +1 -3
  355. package/src/programmers/internal/stringify_dynamic_properties.ts +2 -6
  356. package/src/programmers/internal/stringify_native.ts +1 -3
  357. package/src/programmers/internal/stringify_regular_properties.ts +2 -6
  358. package/src/programmers/internal/template_to_pattern.ts +1 -3
  359. package/src/programmers/internal/wrap_metadata_rest_tuple.ts +1 -3
  360. package/src/protobuf.ts +307 -348
  361. package/src/reflect.ts +3 -7
  362. package/src/schemas/json/IJsonApplication.ts +4 -4
  363. package/src/schemas/json/IJsonSchemaCollection.ts +73 -56
  364. package/src/schemas/json/IJsonSchemaUnit.ts +83 -70
  365. package/src/schemas/metadata/IMetadataTypeTag.ts +1 -3
  366. package/src/schemas/metadata/Metadata.ts +9 -27
  367. package/src/schemas/metadata/MetadataAliasType.ts +3 -9
  368. package/src/schemas/metadata/MetadataApplication.ts +2 -6
  369. package/src/schemas/metadata/MetadataArray.ts +1 -3
  370. package/src/schemas/metadata/MetadataArrayType.ts +3 -9
  371. package/src/schemas/metadata/MetadataAtomic.ts +1 -3
  372. package/src/schemas/metadata/MetadataEscaped.ts +3 -9
  373. package/src/schemas/metadata/MetadataFunction.ts +2 -6
  374. package/src/schemas/metadata/MetadataObject.ts +1 -3
  375. package/src/schemas/metadata/MetadataObjectType.ts +6 -18
  376. package/src/schemas/metadata/MetadataParameter.ts +1 -3
  377. package/src/schemas/metadata/MetadataProperty.ts +3 -9
  378. package/src/schemas/metadata/MetadataTemplate.ts +1 -3
  379. package/src/schemas/metadata/MetadataTuple.ts +2 -6
  380. package/src/schemas/metadata/MetadataTupleType.ts +3 -9
  381. package/src/tags/Constant.ts +32 -0
  382. package/src/tags/ContentMediaType.ts +17 -0
  383. package/src/tags/Default.ts +30 -0
  384. package/src/tags/Example.ts +32 -0
  385. package/src/tags/Examples.ts +40 -0
  386. package/src/tags/ExclusiveMaximum.ts +21 -0
  387. package/src/tags/ExclusiveMinimum.ts +21 -0
  388. package/src/tags/Format.ts +28 -0
  389. package/src/tags/JsonSchemaPlugin.ts +28 -0
  390. package/src/tags/MaxItems.ts +19 -0
  391. package/src/tags/MaxLength.ts +13 -0
  392. package/src/tags/Maximum.ts +20 -0
  393. package/src/tags/MinItems.ts +19 -0
  394. package/src/tags/MinLength.ts +13 -0
  395. package/src/tags/Minimum.ts +20 -0
  396. package/src/tags/MultipleOf.ts +21 -0
  397. package/src/tags/Pattern.ts +18 -0
  398. package/src/tags/Sequence.ts +27 -0
  399. package/src/tags/TagBase.ts +38 -18
  400. package/src/tags/Type.ts +27 -0
  401. package/src/tags/UniqueItems.ts +20 -0
  402. package/src/tags/internal/FormatCheatSheet.ts +1 -3
  403. package/src/transformers/ITransformOptions.ts +27 -19
  404. package/src/transformers/ImportTransformer.ts +173 -1
  405. package/src/transformers/NoTransformConfigurationError.ts +1 -3
  406. package/src/transformers/features/llm/LlmApplicationTransformer.ts +1 -3
  407. package/src/typings/Equal.ts +6 -6
@@ -51,9 +51,7 @@ export class Metadata {
51
51
  /* -----------------------------------------------------------
52
52
  CONSTRUCTORS
53
53
  ----------------------------------------------------------- */
54
- /**
55
- * @hidden
56
- */
54
+ /** @ignore */
57
55
  private constructor(props: ClassProperties<Metadata>) {
58
56
  this.any = props.any;
59
57
  this.required = props.required;
@@ -77,16 +75,12 @@ export class Metadata {
77
75
  this.maps = props.maps;
78
76
  }
79
77
 
80
- /**
81
- * @internal
82
- */
78
+ /** @internal */
83
79
  public static create(props: ClassProperties<Metadata>): Metadata {
84
80
  return new Metadata(props);
85
81
  }
86
82
 
87
- /**
88
- * @internal
89
- */
83
+ /** @internal */
90
84
  public static initialize(parentResolved: boolean = false): Metadata {
91
85
  const meta: Metadata = Metadata.create({
92
86
  any: false,
@@ -262,9 +256,7 @@ export class Metadata {
262
256
  );
263
257
  }
264
258
 
265
- /**
266
- * @internal
267
- */
259
+ /** @internal */
268
260
  public isSequence(): boolean {
269
261
  return (this.is_sequence_ ??= (() => {
270
262
  const exists = (tags: IMetadataTypeTag[][]): boolean =>
@@ -303,9 +295,7 @@ export class Metadata {
303
295
  return this.required === true && this.optional === false;
304
296
  }
305
297
 
306
- /**
307
- * @internal
308
- */
298
+ /** @internal */
309
299
  public isUnionBucket(): boolean {
310
300
  const size: number = this.bucket();
311
301
  const emended: number =
@@ -313,9 +303,7 @@ export class Metadata {
313
303
  return emended > 1;
314
304
  }
315
305
 
316
- /**
317
- * @internal
318
- */
306
+ /** @internal */
319
307
  public getSoleLiteral(): string | null {
320
308
  if (
321
309
  this.size() === 1 &&
@@ -331,9 +319,7 @@ export class Metadata {
331
319
  return this.getSoleLiteral() !== null;
332
320
  }
333
321
 
334
- /**
335
- * @internal
336
- */
322
+ /** @internal */
337
323
  public isParentResolved(): boolean {
338
324
  return this.parent_resolved_;
339
325
  }
@@ -513,9 +499,7 @@ export namespace Metadata {
513
499
  return true;
514
500
  };
515
501
 
516
- /**
517
- * @internal
518
- */
502
+ /** @internal */
519
503
  export const merge = (x: Metadata, y: Metadata): Metadata => {
520
504
  const output: Metadata = Metadata.create({
521
505
  any: x.any || y.any,
@@ -595,9 +579,7 @@ export namespace Metadata {
595
579
  return output;
596
580
  };
597
581
 
598
- /**
599
- * @internal
600
- */
582
+ /** @internal */
601
583
  export const unalias = (w: Metadata) => {
602
584
  const visited: Set<Metadata> = new Set();
603
585
  while (
@@ -15,9 +15,7 @@ export class MetadataAliasType {
15
15
  /* -----------------------------------------------------------
16
16
  CONSTRUCTORS
17
17
  ----------------------------------------------------------- */
18
- /**
19
- * @hidden
20
- */
18
+ /** @ignore */
21
19
  private constructor(props: ClassProperties<MetadataAliasType>) {
22
20
  this.name = props.name;
23
21
  this.value = props.value;
@@ -27,18 +25,14 @@ export class MetadataAliasType {
27
25
  this.nullables = props.nullables;
28
26
  }
29
27
 
30
- /**
31
- * @internal
32
- */
28
+ /** @internal */
33
29
  public static create(
34
30
  props: ClassProperties<MetadataAliasType>,
35
31
  ): MetadataAliasType {
36
32
  return new MetadataAliasType(props);
37
33
  }
38
34
 
39
- /**
40
- * @internal
41
- */
35
+ /** @internal */
42
36
  public static _From_without_value(props: Omit<IMetadataAliasType, "value">) {
43
37
  return MetadataAliasType.create({
44
38
  name: props.name,
@@ -8,17 +8,13 @@ export class MetadataApplication {
8
8
  public readonly metadatas: Metadata[];
9
9
  public readonly components: MetadataComponents;
10
10
 
11
- /**
12
- * @hidden
13
- */
11
+ /** @ignore */
14
12
  private constructor(props: ClassProperties<MetadataApplication>) {
15
13
  this.metadatas = props.metadatas;
16
14
  this.components = props.components;
17
15
  }
18
16
 
19
- /**
20
- * @internal
21
- */
17
+ /** @internal */
22
18
  public static create(
23
19
  props: ClassProperties<MetadataApplication>,
24
20
  ): MetadataApplication {
@@ -10,9 +10,7 @@ export class MetadataArray {
10
10
 
11
11
  private name_?: string;
12
12
 
13
- /**
14
- * @hidden
15
- */
13
+ /** @ignore */
16
14
  private constructor(props: ClassProperties<MetadataArray>) {
17
15
  this.type = props.type;
18
16
  this.tags = props.tags;
@@ -10,9 +10,7 @@ export class MetadataArrayType {
10
10
  public readonly recursive: boolean;
11
11
  public readonly index: number | null;
12
12
 
13
- /**
14
- * @hidden
15
- */
13
+ /** @ignore */
16
14
  private constructor(props: ClassProperties<MetadataArrayType>) {
17
15
  this.name = props.name;
18
16
  this.value = props.value;
@@ -21,9 +19,7 @@ export class MetadataArrayType {
21
19
  this.nullables = props.nullables;
22
20
  }
23
21
 
24
- /**
25
- * @internal
26
- */
22
+ /** @internal */
27
23
  public static _From_without_value(
28
24
  props: Omit<IMetadataArrayType, "value">,
29
25
  ): MetadataArrayType {
@@ -36,9 +32,7 @@ export class MetadataArrayType {
36
32
  });
37
33
  }
38
34
 
39
- /**
40
- * @internal
41
- */
35
+ /** @internal */
42
36
  public static create(
43
37
  props: ClassProperties<MetadataArrayType>,
44
38
  ): MetadataArrayType {
@@ -9,9 +9,7 @@ export class MetadataAtomic {
9
9
 
10
10
  private name_?: string;
11
11
 
12
- /**
13
- * @internal
14
- */
12
+ /** @internal */
15
13
  private constructor(props: ClassProperties<MetadataAtomic>) {
16
14
  this.type = props.type;
17
15
  this.tags = props.tags;
@@ -8,17 +8,13 @@ export class MetadataEscaped {
8
8
  public readonly original: Metadata;
9
9
  public readonly returns: Metadata;
10
10
 
11
- /**
12
- * @hidden
13
- */
11
+ /** @ignore */
14
12
  private constructor(props: ClassProperties<MetadataEscaped>) {
15
13
  this.original = props.original;
16
14
  this.returns = props.returns;
17
15
  }
18
16
 
19
- /**
20
- * @internal
21
- */
17
+ /** @internal */
22
18
  public static from(
23
19
  props: IMetadataEscaped,
24
20
  dict: IMetadataDictionary,
@@ -29,9 +25,7 @@ export class MetadataEscaped {
29
25
  });
30
26
  }
31
27
 
32
- /**
33
- * @internal
34
- */
28
+ /** @internal */
35
29
  public static create(
36
30
  props: ClassProperties<MetadataEscaped>,
37
31
  ): MetadataEscaped {
@@ -10,18 +10,14 @@ export class MetadataFunction {
10
10
  public output: Metadata;
11
11
  public async: boolean;
12
12
 
13
- /**
14
- * @hidden
15
- */
13
+ /** @ignore */
16
14
  private constructor(props: ClassProperties<MetadataFunction>) {
17
15
  this.parameters = props.parameters;
18
16
  this.output = props.output;
19
17
  this.async = props.async;
20
18
  }
21
19
 
22
- /**
23
- * @internal
24
- */
20
+ /** @internal */
25
21
  public static create(
26
22
  props: ClassProperties<MetadataFunction>,
27
23
  ): MetadataFunction {
@@ -9,9 +9,7 @@ export class MetadataObject {
9
9
  public readonly tags: IMetadataTypeTag[][];
10
10
  private name_?: string;
11
11
 
12
- /**
13
- * @hidden
14
- */
12
+ /** @ignore */
15
13
  private constructor(props: ClassProperties<MetadataObject>) {
16
14
  this.type = props.type;
17
15
  this.tags = props.tags;
@@ -15,22 +15,16 @@ export class MetadataObjectType {
15
15
  public recursive: boolean;
16
16
  public nullables: boolean[] = [];
17
17
 
18
- /**
19
- * @internal
20
- */
18
+ /** @internal */
21
19
  public tagged_: boolean = false;
22
20
 
23
- /**
24
- * @internal
25
- */
21
+ /** @internal */
26
22
  private literal_?: boolean;
27
23
 
28
24
  /* -----------------------------------------------------------
29
25
  CONSTRUCTORS
30
26
  ----------------------------------------------------------- */
31
- /**
32
- * @hidden
33
- */
27
+ /** @ignore */
34
28
  private constructor(
35
29
  props: Omit<ClassProperties<MetadataObjectType>, "tagged_">,
36
30
  ) {
@@ -47,18 +41,14 @@ export class MetadataObjectType {
47
41
  this.tagged_ = false;
48
42
  }
49
43
 
50
- /**
51
- * @internal
52
- */
44
+ /** @internal */
53
45
  public static create(
54
46
  props: Omit<ClassProperties<MetadataObjectType>, "tagged_">,
55
47
  ) {
56
48
  return new MetadataObjectType(props);
57
49
  }
58
50
 
59
- /**
60
- * @internal
61
- */
51
+ /** @internal */
62
52
  public static _From_without_properties(
63
53
  obj: IMetadataObjectType,
64
54
  ): MetadataObjectType {
@@ -120,9 +110,7 @@ export class MetadataObjectType {
120
110
  }
121
111
  }
122
112
 
123
- /**
124
- * @internal
125
- */
113
+ /** @internal */
126
114
  export namespace MetadataObjectType {
127
115
  export const intersects = (
128
116
  x: MetadataObjectType,
@@ -22,9 +22,7 @@ export class MetadataParameter {
22
22
  this.tsType = props.tsType;
23
23
  }
24
24
 
25
- /**
26
- * @internal
27
- */
25
+ /** @internal */
28
26
  public static create(
29
27
  props: ClassProperties<MetadataParameter>,
30
28
  ): MetadataParameter {
@@ -17,9 +17,7 @@ export class MetadataProperty {
17
17
  /* -----------------------------------------------------------
18
18
  CONSTRUCTORS
19
19
  ----------------------------------------------------------- */
20
- /**
21
- * @hidden
22
- */
20
+ /** @ignore */
23
21
  private constructor(props: ClassProperties<MetadataProperty>) {
24
22
  this.key = props.key;
25
23
  this.value = props.value;
@@ -27,18 +25,14 @@ export class MetadataProperty {
27
25
  this.jsDocTags = props.jsDocTags;
28
26
  }
29
27
 
30
- /**
31
- * @internal
32
- */
28
+ /** @internal */
33
29
  public static create(
34
30
  props: ClassProperties<MetadataProperty>,
35
31
  ): MetadataProperty {
36
32
  return new MetadataProperty(props);
37
33
  }
38
34
 
39
- /**
40
- * @internal
41
- */
35
+ /** @internal */
42
36
  public static from(property: IMetadataProperty, dict: IMetadataDictionary) {
43
37
  return MetadataProperty.create({
44
38
  key: Metadata.from(property.key, dict),
@@ -36,9 +36,7 @@ export class MetadataTemplate {
36
36
  return (this.name_ ??= getName(this));
37
37
  }
38
38
 
39
- /**
40
- * @internal
41
- */
39
+ /** @internal */
42
40
  public getBaseName(): string {
43
41
  return (
44
42
  "`" +
@@ -8,17 +8,13 @@ export class MetadataTuple {
8
8
  public readonly type: MetadataTupleType;
9
9
  public readonly tags: IMetadataTypeTag[][];
10
10
 
11
- /**
12
- * @hidden
13
- */
11
+ /** @ignore */
14
12
  private constructor(props: ClassProperties<MetadataTuple>) {
15
13
  this.type = props.type;
16
14
  this.tags = props.tags;
17
15
  }
18
16
 
19
- /**
20
- * @internal
21
- */
17
+ /** @internal */
22
18
  public static create(props: ClassProperties<MetadataTuple>): MetadataTuple {
23
19
  return new MetadataTuple(props);
24
20
  }
@@ -11,14 +11,10 @@ export class MetadataTupleType {
11
11
  public readonly recursive: boolean;
12
12
  public readonly nullables: boolean[];
13
13
 
14
- /**
15
- * @internal
16
- */
14
+ /** @internal */
17
15
  public of_map?: boolean;
18
16
 
19
- /**
20
- * @internal
21
- */
17
+ /** @internal */
22
18
  private constructor(props: ClassProperties<MetadataTupleType>) {
23
19
  this.name = props.name;
24
20
  this.elements = props.elements;
@@ -27,9 +23,7 @@ export class MetadataTupleType {
27
23
  this.nullables = props.nullables;
28
24
  }
29
25
 
30
- /**
31
- * @internal
32
- */
26
+ /** @internal */
33
27
  public static _From_without_elements(
34
28
  props: Omit<IMetadataTupleType, "elements">,
35
29
  ): MetadataTupleType {
@@ -1,5 +1,37 @@
1
1
  import { TagBase } from "./TagBase";
2
2
 
3
+ /**
4
+ * Constant tag that adds title and description metadata to literal types.
5
+ *
6
+ * This tag enhances literal values with human-readable documentation without
7
+ * changing their runtime type. It's particularly useful for enum-like values
8
+ * where you want to provide context about what each value represents.
9
+ *
10
+ * The metadata appears in generated JSON Schema, making API documentation more
11
+ * descriptive and helping developers understand the meaning of specific
12
+ * constant values.
13
+ *
14
+ * @author Jeongho Nam - https://github.com/samchon
15
+ * @example
16
+ * ```typescript
17
+ * type Status =
18
+ * | Constant<"active", { title: "Active", description: "User is currently active" }>
19
+ * | Constant<"inactive", { title: "Inactive", description: "User account is disabled" }>
20
+ * | Constant<"pending", { title: "Pending", description: "Awaiting verification" }>;
21
+ * ```;
22
+ *
23
+ * @example
24
+ * ```typescript
25
+ * interface Config {
26
+ * debugLevel: Constant<0, { title: "Off", description: "No debug output" }>
27
+ * | Constant<1, { title: "Basic", description: "Basic logging" }>
28
+ * | Constant<2, { title: "Verbose", description: "Detailed debug info" }>;
29
+ * }
30
+ * ```;
31
+ *
32
+ * @template Value The literal value (boolean, number, string, or bigint)
33
+ * @template Content Metadata with optional title and description
34
+ */
3
35
  export type Constant<
4
36
  Value extends boolean | number | string | bigint,
5
37
  Content extends {
@@ -1,5 +1,22 @@
1
1
  import { TagBase } from "./TagBase";
2
2
 
3
+ /**
4
+ * String content media type constraint tag.
5
+ *
6
+ * Specifies the MIME type of string content for proper interpretation. This tag
7
+ * serves as metadata to indicate how the string content should be interpreted,
8
+ * but does not perform validation on the content itself.
9
+ *
10
+ * Examples: type JsonData = string & ContentMediaType<"application/json">; //
11
+ * JSON string type Base64Image = string & ContentMediaType<"image/png">; //
12
+ * Base64 PNG type XmlContent = string & ContentMediaType<"application/xml">; //
13
+ * XML data
14
+ *
15
+ * Common MIME types: application/json, text/html, image/jpeg, image/png,
16
+ * application/pdf, text/plain, application/xml, and many more.
17
+ *
18
+ * @author Jeongho Nam - https://github.com/samchon
19
+ */
3
20
  export type ContentMediaType<Value extends string> = TagBase<{
4
21
  target: "string";
5
22
  kind: "contentMediaType";
@@ -1,5 +1,35 @@
1
1
  import { TagBase } from "./TagBase";
2
2
 
3
+ /**
4
+ * Default value tag that specifies a default value for properties.
5
+ *
6
+ * When a property is not provided during validation, this tag instructs typia
7
+ * to use the specified default value. This is useful for optional properties
8
+ * that should have a specific fallback value.
9
+ *
10
+ * Supported types: boolean, bigint, number, and string primitives. Note:
11
+ * Default values are applied during validation, not at compile time.
12
+ *
13
+ * @author Jeongho Nam - https://github.com/samchon
14
+ * @example
15
+ * ```typescript
16
+ * interface User {
17
+ * name: string;
18
+ * active: boolean & Default<true>; // defaults to true if not provided
19
+ * retries: number & Default<3>; // defaults to 3 if not provided
20
+ * }
21
+ * ```;
22
+ *
23
+ * @example
24
+ * ```typescript
25
+ * interface Config {
26
+ * timeout: bigint & Default<5000n>; // defaults to 5000n
27
+ * prefix: string & Default<"user_">; // defaults to "user_"
28
+ * }
29
+ * ```;
30
+ *
31
+ * @template Value The default value (boolean, bigint, number, or string)
32
+ */
3
33
  export type Default<Value extends boolean | bigint | number | string> =
4
34
  TagBase<{
5
35
  target: Value extends boolean
@@ -1,5 +1,37 @@
1
1
  import { TagBase } from "./TagBase";
2
2
 
3
+ /**
4
+ * Example value tag that provides a single example value for documentation.
5
+ *
6
+ * This tag adds an example value to your JSON Schema, which is useful for API
7
+ * documentation, client code generation, and helping developers understand
8
+ * expected data formats. The example doesn't affect runtime validation.
9
+ *
10
+ * Use Example for a single representative value. For multiple named examples,
11
+ * use the Examples tag instead.
12
+ *
13
+ * @author Jeongho Nam - https://github.com/samchon
14
+ * @example
15
+ * ```typescript
16
+ * interface Product {
17
+ * name: string & Example<"iPhone 15 Pro">;
18
+ * price: number & Example<999.99>;
19
+ * inStock: boolean & Example<true>;
20
+ * }
21
+ * ```;
22
+ *
23
+ * @example
24
+ * ```typescript
25
+ * interface User {
26
+ * profile: {
27
+ * bio: string;
28
+ * tags: string[];
29
+ * } & Example<{ bio: "Software engineer", tags: ["typescript", "react"] }>;
30
+ * }
31
+ * ```;
32
+ *
33
+ * @template Value The example value (primitives, objects, arrays, or null)
34
+ */
3
35
  export type Example<
4
36
  Value extends
5
37
  | boolean
@@ -1,5 +1,45 @@
1
1
  import { TagBase } from "./TagBase";
2
2
 
3
+ /**
4
+ * Multiple examples tag that provides named example values for documentation.
5
+ *
6
+ * Unlike the Example tag which provides a single example, Examples allows you
7
+ * to provide multiple labeled examples. This is particularly useful when you
8
+ * want to show different scenarios or use cases for the same type.
9
+ *
10
+ * The examples are added to JSON Schema as an object where keys are descriptive
11
+ * names and values are the example data. This helps in API documentation and
12
+ * test case generation.
13
+ *
14
+ * @author Jeongho Nam - https://github.com/samchon
15
+ * @example
16
+ * ```typescript
17
+ * interface PaymentRequest {
18
+ * amount: number & Examples<{
19
+ * small: 10.50,
20
+ * medium: 99.99,
21
+ * large: 1000.00
22
+ * }>;
23
+ * }
24
+ * ```;
25
+ *
26
+ * @example
27
+ * ```typescript
28
+ * interface UserStatus {
29
+ * state: string & Examples<{
30
+ * active: "active",
31
+ * inactive: "inactive",
32
+ * suspended: "suspended"
33
+ * }>;
34
+ * profile: object & Examples<{
35
+ * basic: { name: "John", age: 25 },
36
+ * detailed: { name: "Jane", age: 30, bio: "Developer", verified: true }
37
+ * }>;
38
+ * }
39
+ * ```;
40
+ *
41
+ * @template Value A record object mapping example names to example values
42
+ */
3
43
  export type Examples<
4
44
  Value extends Record<
5
45
  string,
@@ -1,5 +1,26 @@
1
1
  import { TagBase } from "./TagBase";
2
2
 
3
+ /**
4
+ * Exclusive maximum value constraint tag.
5
+ *
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.
9
+ *
10
+ * Example usage:
11
+ *
12
+ * ```typescript
13
+ * type Discount = number & tags.ExclusiveMaximum<100>; // Must be < 100
14
+ * type ByteValue = bigint & tags.ExclusiveMaximum<256n>; // Must be < 256
15
+ * ```
16
+ *
17
+ * Note: This tag is mutually exclusive with Maximum. You cannot apply both
18
+ * ExclusiveMaximum and Maximum constraints to the same property.
19
+ *
20
+ * @author Jeongho Nam - https://github.com/samchon
21
+ * @template Value - The exclusive maximum value constraint (number or bigint
22
+ * literal)
23
+ */
3
24
  export type ExclusiveMaximum<Value extends number | bigint> = TagBase<{
4
25
  target: Value extends bigint ? "bigint" : "number";
5
26
  kind: "exclusiveMaximum";
@@ -1,5 +1,26 @@
1
1
  import { TagBase } from "./TagBase";
2
2
 
3
+ /**
4
+ * Exclusive minimum value constraint tag.
5
+ *
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.
9
+ *
10
+ * Example usage:
11
+ *
12
+ * ```typescript
13
+ * type PositiveNumber = number & tags.ExclusiveMinimum<0>; // Must be > 0
14
+ * type LargeCount = bigint & tags.ExclusiveMinimum<999n>; // Must be > 999
15
+ * ```
16
+ *
17
+ * Note: This tag is mutually exclusive with Minimum. You cannot apply both
18
+ * ExclusiveMinimum and Minimum constraints to the same property.
19
+ *
20
+ * @author Jeongho Nam - https://github.com/samchon
21
+ * @template Value - The exclusive minimum value constraint (number or bigint
22
+ * literal)
23
+ */
3
24
  export type ExclusiveMinimum<Value extends number | bigint> = TagBase<{
4
25
  target: Value extends bigint ? "bigint" : "number";
5
26
  kind: "exclusiveMinimum";