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
@@ -2,34 +2,34 @@ import { TagBase } from "./TagBase";
2
2
  /**
3
3
  * Example value tag that provides a single example value for documentation.
4
4
  *
5
- * This tag adds an example value to your JSON Schema, which is useful for
6
- * API documentation, client code generation, and helping developers understand
5
+ * This tag adds an example value to your JSON Schema, which is useful for API
6
+ * documentation, client code generation, and helping developers understand
7
7
  * expected data formats. The example doesn't affect runtime validation.
8
8
  *
9
9
  * Use Example for a single representative value. For multiple named examples,
10
10
  * use the Examples tag instead.
11
11
  *
12
+ * @author Jeongho Nam - https://github.com/samchon
12
13
  * @example
13
- * ```typescript
14
- * interface Product {
15
- * name: string & Example<"iPhone 15 Pro">;
16
- * price: number & Example<999.99>;
17
- * inStock: boolean & Example<true>;
18
- * }
19
- * ```
14
+ * ```typescript
15
+ * interface Product {
16
+ * name: string & Example<"iPhone 15 Pro">;
17
+ * price: number & Example<999.99>;
18
+ * inStock: boolean & Example<true>;
19
+ * }
20
+ * ```;
20
21
  *
21
22
  * @example
22
- * ```typescript
23
- * interface User {
24
- * profile: {
25
- * bio: string;
26
- * tags: string[];
27
- * } & Example<{ bio: "Software engineer", tags: ["typescript", "react"] }>;
28
- * }
29
- * ```
23
+ * ```typescript
24
+ * interface User {
25
+ * profile: {
26
+ * bio: string;
27
+ * tags: string[];
28
+ * } & Example<{ bio: "Software engineer", tags: ["typescript", "react"] }>;
29
+ * }
30
+ * ```;
30
31
  *
31
32
  * @template Value The example value (primitives, objects, arrays, or null)
32
- * @author Jeongho Nam - https://github.com/samchon
33
33
  */
34
34
  export type Example<Value extends boolean | bigint | number | string | object | Array<unknown> | null> = TagBase<{
35
35
  target: "boolean" | "bigint" | "number" | "string" | "array" | "object";
@@ -2,34 +2,34 @@ import { TagBase } from "./TagBase";
2
2
  /**
3
3
  * Example value tag that provides a single example value for documentation.
4
4
  *
5
- * This tag adds an example value to your JSON Schema, which is useful for
6
- * API documentation, client code generation, and helping developers understand
5
+ * This tag adds an example value to your JSON Schema, which is useful for API
6
+ * documentation, client code generation, and helping developers understand
7
7
  * expected data formats. The example doesn't affect runtime validation.
8
8
  *
9
9
  * Use Example for a single representative value. For multiple named examples,
10
10
  * use the Examples tag instead.
11
11
  *
12
+ * @author Jeongho Nam - https://github.com/samchon
12
13
  * @example
13
- * ```typescript
14
- * interface Product {
15
- * name: string & Example<"iPhone 15 Pro">;
16
- * price: number & Example<999.99>;
17
- * inStock: boolean & Example<true>;
18
- * }
19
- * ```
14
+ * ```typescript
15
+ * interface Product {
16
+ * name: string & Example<"iPhone 15 Pro">;
17
+ * price: number & Example<999.99>;
18
+ * inStock: boolean & Example<true>;
19
+ * }
20
+ * ```;
20
21
  *
21
22
  * @example
22
- * ```typescript
23
- * interface User {
24
- * profile: {
25
- * bio: string;
26
- * tags: string[];
27
- * } & Example<{ bio: "Software engineer", tags: ["typescript", "react"] }>;
28
- * }
29
- * ```
23
+ * ```typescript
24
+ * interface User {
25
+ * profile: {
26
+ * bio: string;
27
+ * tags: string[];
28
+ * } & Example<{ bio: "Software engineer", tags: ["typescript", "react"] }>;
29
+ * }
30
+ * ```;
30
31
  *
31
32
  * @template Value The example value (primitives, objects, arrays, or null)
32
- * @author Jeongho Nam - https://github.com/samchon
33
33
  */
34
34
  export type Example<Value extends boolean | bigint | number | string | object | Array<unknown> | null> = TagBase<{
35
35
  target: "boolean" | "bigint" | "number" | "string" | "array" | "object";
@@ -10,34 +10,34 @@ import { TagBase } from "./TagBase";
10
10
  * names and values are the example data. This helps in API documentation and
11
11
  * test case generation.
12
12
  *
13
+ * @author Jeongho Nam - https://github.com/samchon
13
14
  * @example
14
- * ```typescript
15
- * interface PaymentRequest {
16
- * amount: number & Examples<{
17
- * small: 10.50,
18
- * medium: 99.99,
19
- * large: 1000.00
20
- * }>;
21
- * }
22
- * ```
15
+ * ```typescript
16
+ * interface PaymentRequest {
17
+ * amount: number & Examples<{
18
+ * small: 10.50,
19
+ * medium: 99.99,
20
+ * large: 1000.00
21
+ * }>;
22
+ * }
23
+ * ```;
23
24
  *
24
25
  * @example
25
- * ```typescript
26
- * interface UserStatus {
27
- * state: string & Examples<{
28
- * active: "active",
29
- * inactive: "inactive",
30
- * suspended: "suspended"
31
- * }>;
32
- * profile: object & Examples<{
33
- * basic: { name: "John", age: 25 },
34
- * detailed: { name: "Jane", age: 30, bio: "Developer", verified: true }
35
- * }>;
36
- * }
37
- * ```
26
+ * ```typescript
27
+ * interface UserStatus {
28
+ * state: string & Examples<{
29
+ * active: "active",
30
+ * inactive: "inactive",
31
+ * suspended: "suspended"
32
+ * }>;
33
+ * profile: object & Examples<{
34
+ * basic: { name: "John", age: 25 },
35
+ * detailed: { name: "Jane", age: 30, bio: "Developer", verified: true }
36
+ * }>;
37
+ * }
38
+ * ```;
38
39
  *
39
40
  * @template Value A record object mapping example names to example values
40
- * @author Jeongho Nam - https://github.com/samchon
41
41
  */
42
42
  export type Examples<Value extends Record<string, boolean | bigint | number | string | object | Array<unknown> | null>> = TagBase<{
43
43
  target: "boolean" | "bigint" | "number" | "string" | "array" | "object";
@@ -10,34 +10,34 @@ import { TagBase } from "./TagBase";
10
10
  * names and values are the example data. This helps in API documentation and
11
11
  * test case generation.
12
12
  *
13
+ * @author Jeongho Nam - https://github.com/samchon
13
14
  * @example
14
- * ```typescript
15
- * interface PaymentRequest {
16
- * amount: number & Examples<{
17
- * small: 10.50,
18
- * medium: 99.99,
19
- * large: 1000.00
20
- * }>;
21
- * }
22
- * ```
15
+ * ```typescript
16
+ * interface PaymentRequest {
17
+ * amount: number & Examples<{
18
+ * small: 10.50,
19
+ * medium: 99.99,
20
+ * large: 1000.00
21
+ * }>;
22
+ * }
23
+ * ```;
23
24
  *
24
25
  * @example
25
- * ```typescript
26
- * interface UserStatus {
27
- * state: string & Examples<{
28
- * active: "active",
29
- * inactive: "inactive",
30
- * suspended: "suspended"
31
- * }>;
32
- * profile: object & Examples<{
33
- * basic: { name: "John", age: 25 },
34
- * detailed: { name: "Jane", age: 30, bio: "Developer", verified: true }
35
- * }>;
36
- * }
37
- * ```
26
+ * ```typescript
27
+ * interface UserStatus {
28
+ * state: string & Examples<{
29
+ * active: "active",
30
+ * inactive: "inactive",
31
+ * suspended: "suspended"
32
+ * }>;
33
+ * profile: object & Examples<{
34
+ * basic: { name: "John", age: 25 },
35
+ * detailed: { name: "Jane", age: 30, bio: "Developer", verified: true }
36
+ * }>;
37
+ * }
38
+ * ```;
38
39
  *
39
40
  * @template Value A record object mapping example names to example values
40
- * @author Jeongho Nam - https://github.com/samchon
41
41
  */
42
42
  export type Examples<Value extends Record<string, boolean | bigint | number | string | object | Array<unknown> | null>> = TagBase<{
43
43
  target: "boolean" | "bigint" | "number" | "string" | "array" | "object";
@@ -2,20 +2,23 @@ import { TagBase } from "./TagBase";
2
2
  /**
3
3
  * Exclusive maximum value constraint tag.
4
4
  *
5
- * Enforces that a numeric value must be strictly less than the specified maximum (not equal).
6
- * This constraint validates that the input value satisfies: input < maximum.
5
+ * Enforces that a numeric value must be strictly less than the specified
6
+ * maximum (not equal). This constraint validates that the input value
7
+ * satisfies: input < maximum.
7
8
  *
8
9
  * Example usage:
10
+ *
9
11
  * ```typescript
10
- * type Discount = number & tags.ExclusiveMaximum<100>; // Must be < 100
11
- * type ByteValue = bigint & tags.ExclusiveMaximum<256n>; // Must be < 256
12
+ * type Discount = number & tags.ExclusiveMaximum<100>; // Must be < 100
13
+ * type ByteValue = bigint & tags.ExclusiveMaximum<256n>; // Must be < 256
12
14
  * ```
13
15
  *
14
16
  * Note: This tag is mutually exclusive with Maximum. You cannot apply both
15
17
  * ExclusiveMaximum and Maximum constraints to the same property.
16
18
  *
17
- * @template Value - The exclusive maximum value constraint (number or bigint literal)
18
19
  * @author Jeongho Nam - https://github.com/samchon
20
+ * @template Value - The exclusive maximum value constraint (number or bigint
21
+ * literal)
19
22
  */
20
23
  export type ExclusiveMaximum<Value extends number | bigint> = TagBase<{
21
24
  target: Value extends bigint ? "bigint" : "number";
@@ -2,20 +2,23 @@ import { TagBase } from "./TagBase";
2
2
  /**
3
3
  * Exclusive maximum value constraint tag.
4
4
  *
5
- * Enforces that a numeric value must be strictly less than the specified maximum (not equal).
6
- * This constraint validates that the input value satisfies: input < maximum.
5
+ * Enforces that a numeric value must be strictly less than the specified
6
+ * maximum (not equal). This constraint validates that the input value
7
+ * satisfies: input < maximum.
7
8
  *
8
9
  * Example usage:
10
+ *
9
11
  * ```typescript
10
- * type Discount = number & tags.ExclusiveMaximum<100>; // Must be < 100
11
- * type ByteValue = bigint & tags.ExclusiveMaximum<256n>; // Must be < 256
12
+ * type Discount = number & tags.ExclusiveMaximum<100>; // Must be < 100
13
+ * type ByteValue = bigint & tags.ExclusiveMaximum<256n>; // Must be < 256
12
14
  * ```
13
15
  *
14
16
  * Note: This tag is mutually exclusive with Maximum. You cannot apply both
15
17
  * ExclusiveMaximum and Maximum constraints to the same property.
16
18
  *
17
- * @template Value - The exclusive maximum value constraint (number or bigint literal)
18
19
  * @author Jeongho Nam - https://github.com/samchon
20
+ * @template Value - The exclusive maximum value constraint (number or bigint
21
+ * literal)
19
22
  */
20
23
  export type ExclusiveMaximum<Value extends number | bigint> = TagBase<{
21
24
  target: Value extends bigint ? "bigint" : "number";
@@ -2,20 +2,23 @@ import { TagBase } from "./TagBase";
2
2
  /**
3
3
  * Exclusive minimum value constraint tag.
4
4
  *
5
- * Enforces that a numeric value must be strictly greater than the specified minimum (not equal).
6
- * This constraint validates that the input value satisfies: input > minimum.
5
+ * Enforces that a numeric value must be strictly greater than the specified
6
+ * minimum (not equal). This constraint validates that the input value
7
+ * satisfies: input > minimum.
7
8
  *
8
9
  * Example usage:
10
+ *
9
11
  * ```typescript
10
- * type PositiveNumber = number & tags.ExclusiveMinimum<0>; // Must be > 0
11
- * type LargeCount = bigint & tags.ExclusiveMinimum<999n>; // Must be > 999
12
+ * type PositiveNumber = number & tags.ExclusiveMinimum<0>; // Must be > 0
13
+ * type LargeCount = bigint & tags.ExclusiveMinimum<999n>; // Must be > 999
12
14
  * ```
13
15
  *
14
16
  * Note: This tag is mutually exclusive with Minimum. You cannot apply both
15
17
  * ExclusiveMinimum and Minimum constraints to the same property.
16
18
  *
17
- * @template Value - The exclusive minimum value constraint (number or bigint literal)
18
19
  * @author Jeongho Nam - https://github.com/samchon
20
+ * @template Value - The exclusive minimum value constraint (number or bigint
21
+ * literal)
19
22
  */
20
23
  export type ExclusiveMinimum<Value extends number | bigint> = TagBase<{
21
24
  target: Value extends bigint ? "bigint" : "number";
@@ -2,20 +2,23 @@ import { TagBase } from "./TagBase";
2
2
  /**
3
3
  * Exclusive minimum value constraint tag.
4
4
  *
5
- * Enforces that a numeric value must be strictly greater than the specified minimum (not equal).
6
- * This constraint validates that the input value satisfies: input > minimum.
5
+ * Enforces that a numeric value must be strictly greater than the specified
6
+ * minimum (not equal). This constraint validates that the input value
7
+ * satisfies: input > minimum.
7
8
  *
8
9
  * Example usage:
10
+ *
9
11
  * ```typescript
10
- * type PositiveNumber = number & tags.ExclusiveMinimum<0>; // Must be > 0
11
- * type LargeCount = bigint & tags.ExclusiveMinimum<999n>; // Must be > 999
12
+ * type PositiveNumber = number & tags.ExclusiveMinimum<0>; // Must be > 0
13
+ * type LargeCount = bigint & tags.ExclusiveMinimum<999n>; // Must be > 999
12
14
  * ```
13
15
  *
14
16
  * Note: This tag is mutually exclusive with Minimum. You cannot apply both
15
17
  * ExclusiveMinimum and Minimum constraints to the same property.
16
18
  *
17
- * @template Value - The exclusive minimum value constraint (number or bigint literal)
18
19
  * @author Jeongho Nam - https://github.com/samchon
20
+ * @template Value - The exclusive minimum value constraint (number or bigint
21
+ * literal)
19
22
  */
20
23
  export type ExclusiveMinimum<Value extends number | bigint> = TagBase<{
21
24
  target: Value extends bigint ? "bigint" : "number";
@@ -2,24 +2,28 @@ import type { TagBase } from "./TagBase";
2
2
  /**
3
3
  * String format constraint tag.
4
4
  *
5
- * Validates strings against predefined formats for common use cases.
6
- * This tag provides built-in validation for standard string formats without
7
- * needing to write custom regular expressions.
5
+ * Validates strings against predefined formats for common use cases. This tag
6
+ * provides built-in validation for standard string formats without needing to
7
+ * write custom regular expressions.
8
8
  *
9
9
  * Examples:
10
- * type Email = string & Format<"email">; // user@example.com
11
- * type WebURL = string & Format<"url">; // https://example.com
12
- * type DateTime = string & Format<"date-time">; // 2024-01-15T10:30:00Z
10
+ *
11
+ * ```ts
12
+ * Type Email = string & Format<"email">; // user@example.com
13
+ * Type WebURL = string & Format<"url">; // https://example.com
14
+ * Type DateTime = string & Format<"date-time">; // 2024-01-15T10:30:00Z
15
+ * ```
13
16
  *
14
17
  * Supported formats include:
18
+ *
15
19
  * - Network: email, url, hostname, ipv4, ipv6, uri
16
20
  * - Identifiers: uuid, byte, password
17
21
  * - Date/Time: date, time, date-time, duration
18
22
  * - Data: json-pointer, regex
19
23
  * - Internationalized: idn-email, idn-hostname, iri
20
24
  *
21
- * Note: This tag is mutually exclusive with the Pattern tag. You cannot use both
22
- * Format and Pattern on the same type.
25
+ * Note: This tag is mutually exclusive with the Pattern tag. You cannot use
26
+ * both Format and Pattern on the same type.
23
27
  *
24
28
  * @author Jeongho Nam - https://github.com/samchon
25
29
  */
@@ -2,24 +2,28 @@ import type { TagBase } from "./TagBase";
2
2
  /**
3
3
  * String format constraint tag.
4
4
  *
5
- * Validates strings against predefined formats for common use cases.
6
- * This tag provides built-in validation for standard string formats without
7
- * needing to write custom regular expressions.
5
+ * Validates strings against predefined formats for common use cases. This tag
6
+ * provides built-in validation for standard string formats without needing to
7
+ * write custom regular expressions.
8
8
  *
9
9
  * Examples:
10
- * type Email = string & Format<"email">; // user@example.com
11
- * type WebURL = string & Format<"url">; // https://example.com
12
- * type DateTime = string & Format<"date-time">; // 2024-01-15T10:30:00Z
10
+ *
11
+ * ```ts
12
+ * Type Email = string & Format<"email">; // user@example.com
13
+ * Type WebURL = string & Format<"url">; // https://example.com
14
+ * Type DateTime = string & Format<"date-time">; // 2024-01-15T10:30:00Z
15
+ * ```
13
16
  *
14
17
  * Supported formats include:
18
+ *
15
19
  * - Network: email, url, hostname, ipv4, ipv6, uri
16
20
  * - Identifiers: uuid, byte, password
17
21
  * - Date/Time: date, time, date-time, duration
18
22
  * - Data: json-pointer, regex
19
23
  * - Internationalized: idn-email, idn-hostname, iri
20
24
  *
21
- * Note: This tag is mutually exclusive with the Pattern tag. You cannot use both
22
- * Format and Pattern on the same type.
25
+ * Note: This tag is mutually exclusive with the Pattern tag. You cannot use
26
+ * both Format and Pattern on the same type.
23
27
  *
24
28
  * @author Jeongho Nam - https://github.com/samchon
25
29
  */
@@ -2,28 +2,30 @@ import { TagBase } from "./TagBase";
2
2
  /**
3
3
  * Injects custom properties into generated JSON Schema.
4
4
  *
5
- * The JsonSchemaPlugin tag allows you to add vendor-specific extensions or custom metadata
6
- * to the generated JSON Schema output. These properties are merged at the root level of
7
- * the schema and are commonly used for documentation, tooling hints, or API-specific metadata.
8
- * The custom properties only affect schema generation and do not impact runtime validation.
5
+ * The JsonSchemaPlugin tag allows you to add vendor-specific extensions or
6
+ * custom metadata to the generated JSON Schema output. These properties are
7
+ * merged at the root level of the schema and are commonly used for
8
+ * documentation, tooling hints, or API-specific metadata. The custom properties
9
+ * only affect schema generation and do not impact runtime validation.
9
10
  *
11
+ * @author Jeongho Nam - https://github.com/samchon
10
12
  * @example
11
- * ```typescript
12
- * // Add OpenAPI vendor extensions
13
- * type UserId = string & JsonSchemaPlugin<{
14
- * "x-internal-id": true,
15
- * "x-deprecated": "Use UUID instead"
16
- * }>;
13
+ * ```typescript
14
+ * // Add OpenAPI vendor extensions
15
+ * type UserId = string & JsonSchemaPlugin<{
16
+ * "x-internal-id": true,
17
+ * "x-deprecated": "Use UUID instead"
18
+ * }>;
17
19
  *
18
- * // Add custom documentation metadata
19
- * type Price = number & JsonSchemaPlugin<{
20
- * "x-format": "currency",
21
- * "x-example": 19.99
22
- * }>;
23
- * ```
20
+ * // Add custom documentation metadata
21
+ * type Price = number & JsonSchemaPlugin<{
22
+ * "x-format": "currency",
23
+ * "x-example": 19.99
24
+ * }>;
25
+ * ```
24
26
  *
25
- * @template Schema - Object containing custom properties to add to the JSON Schema
26
- * @author Jeongho Nam - https://github.com/samchon
27
+ * @template Schema - Object containing custom properties to add to the JSON
28
+ * Schema
27
29
  */
28
30
  export type JsonSchemaPlugin<Schema extends object> = TagBase<{
29
31
  target: "string" | "boolean" | "bigint" | "number" | "array" | "object";
@@ -2,28 +2,30 @@ import { TagBase } from "./TagBase";
2
2
  /**
3
3
  * Injects custom properties into generated JSON Schema.
4
4
  *
5
- * The JsonSchemaPlugin tag allows you to add vendor-specific extensions or custom metadata
6
- * to the generated JSON Schema output. These properties are merged at the root level of
7
- * the schema and are commonly used for documentation, tooling hints, or API-specific metadata.
8
- * The custom properties only affect schema generation and do not impact runtime validation.
5
+ * The JsonSchemaPlugin tag allows you to add vendor-specific extensions or
6
+ * custom metadata to the generated JSON Schema output. These properties are
7
+ * merged at the root level of the schema and are commonly used for
8
+ * documentation, tooling hints, or API-specific metadata. The custom properties
9
+ * only affect schema generation and do not impact runtime validation.
9
10
  *
11
+ * @author Jeongho Nam - https://github.com/samchon
10
12
  * @example
11
- * ```typescript
12
- * // Add OpenAPI vendor extensions
13
- * type UserId = string & JsonSchemaPlugin<{
14
- * "x-internal-id": true,
15
- * "x-deprecated": "Use UUID instead"
16
- * }>;
13
+ * ```typescript
14
+ * // Add OpenAPI vendor extensions
15
+ * type UserId = string & JsonSchemaPlugin<{
16
+ * "x-internal-id": true,
17
+ * "x-deprecated": "Use UUID instead"
18
+ * }>;
17
19
  *
18
- * // Add custom documentation metadata
19
- * type Price = number & JsonSchemaPlugin<{
20
- * "x-format": "currency",
21
- * "x-example": 19.99
22
- * }>;
23
- * ```
20
+ * // Add custom documentation metadata
21
+ * type Price = number & JsonSchemaPlugin<{
22
+ * "x-format": "currency",
23
+ * "x-example": 19.99
24
+ * }>;
25
+ * ```
24
26
  *
25
- * @template Schema - Object containing custom properties to add to the JSON Schema
26
- * @author Jeongho Nam - https://github.com/samchon
27
+ * @template Schema - Object containing custom properties to add to the JSON
28
+ * Schema
27
29
  */
28
30
  export type JsonSchemaPlugin<Schema extends object> = TagBase<{
29
31
  target: "string" | "boolean" | "bigint" | "number" | "array" | "object";
@@ -2,21 +2,21 @@ import { TagBase } from "./TagBase";
2
2
  /**
3
3
  * Maximum items validation tag for arrays.
4
4
  *
5
- * Enforces that an array contains at most the specified number of items.
6
- * This tag is useful for limiting array sizes, such as restricting the
7
- * number of uploaded files, limiting selections in a form, or capping
8
- * the size of collections to prevent performance issues.
5
+ * Enforces that an array contains at most the specified number of items. This
6
+ * tag is useful for limiting array sizes, such as restricting the number of
7
+ * uploaded files, limiting selections in a form, or capping the size of
8
+ * collections to prevent performance issues.
9
9
  *
10
+ * @author Jeongho Nam - https://github.com/samchon
10
11
  * @example
11
- * // Allow maximum 5 file uploads
12
- * type FileList = File[] & MaxItems<5>;
12
+ * // Allow maximum 5 file uploads
13
+ * type FileList = File[] & MaxItems<5>;
13
14
  *
14
15
  * @example
15
- * // Limit tags to 10 items
16
- * type ProductTags = string[] & MaxItems<10>;
16
+ * // Limit tags to 10 items
17
+ * type ProductTags = string[] & MaxItems<10>;
17
18
  *
18
19
  * @template Value - The maximum number of items allowed
19
- * @author Jeongho Nam - https://github.com/samchon
20
20
  */
21
21
  export type MaxItems<Value extends number> = TagBase<{
22
22
  target: "array";
@@ -2,21 +2,21 @@ import { TagBase } from "./TagBase";
2
2
  /**
3
3
  * Maximum items validation tag for arrays.
4
4
  *
5
- * Enforces that an array contains at most the specified number of items.
6
- * This tag is useful for limiting array sizes, such as restricting the
7
- * number of uploaded files, limiting selections in a form, or capping
8
- * the size of collections to prevent performance issues.
5
+ * Enforces that an array contains at most the specified number of items. This
6
+ * tag is useful for limiting array sizes, such as restricting the number of
7
+ * uploaded files, limiting selections in a form, or capping the size of
8
+ * collections to prevent performance issues.
9
9
  *
10
+ * @author Jeongho Nam - https://github.com/samchon
10
11
  * @example
11
- * // Allow maximum 5 file uploads
12
- * type FileList = File[] & MaxItems<5>;
12
+ * // Allow maximum 5 file uploads
13
+ * type FileList = File[] & MaxItems<5>;
13
14
  *
14
15
  * @example
15
- * // Limit tags to 10 items
16
- * type ProductTags = string[] & MaxItems<10>;
16
+ * // Limit tags to 10 items
17
+ * type ProductTags = string[] & MaxItems<10>;
17
18
  *
18
19
  * @template Value - The maximum number of items allowed
19
- * @author Jeongho Nam - https://github.com/samchon
20
20
  */
21
21
  export type MaxItems<Value extends number> = TagBase<{
22
22
  target: "array";
@@ -2,12 +2,13 @@ import { TagBase } from "./TagBase";
2
2
  /**
3
3
  * String maximum length constraint tag.
4
4
  *
5
- * Validates that a string's length is less than or equal to the specified value.
6
- * This tag enforces an upper limit on the number of characters in a string.
5
+ * Validates that a string's length is less than or equal to the specified
6
+ * value. This tag enforces an upper limit on the number of characters in a
7
+ * string.
7
8
  *
8
- * Examples:
9
- * type ShortComment = string & MaxLength<200>; // Comment limited to 200 characters
10
- * type ZipCode = string & MaxLength<10>; // Zip code with max 10 characters
9
+ * Examples: type ShortComment = string & MaxLength<200>; // Comment limited to
10
+ * 200 characters type ZipCode = string & MaxLength<10>; // Zip code with max 10
11
+ * characters
11
12
  *
12
13
  * @author Jeongho Nam - https://github.com/samchon
13
14
  */
@@ -2,12 +2,13 @@ import { TagBase } from "./TagBase";
2
2
  /**
3
3
  * String maximum length constraint tag.
4
4
  *
5
- * Validates that a string's length is less than or equal to the specified value.
6
- * This tag enforces an upper limit on the number of characters in a string.
5
+ * Validates that a string's length is less than or equal to the specified
6
+ * value. This tag enforces an upper limit on the number of characters in a
7
+ * string.
7
8
  *
8
- * Examples:
9
- * type ShortComment = string & MaxLength<200>; // Comment limited to 200 characters
10
- * type ZipCode = string & MaxLength<10>; // Zip code with max 10 characters
9
+ * Examples: type ShortComment = string & MaxLength<200>; // Comment limited to
10
+ * 200 characters type ZipCode = string & MaxLength<10>; // Zip code with max 10
11
+ * characters
11
12
  *
12
13
  * @author Jeongho Nam - https://github.com/samchon
13
14
  */