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
package/src/reflect.ts CHANGED
@@ -13,10 +13,9 @@ import { NoTransformConfigurationError } from "./transformers/NoTransformConfigu
13
13
  * stored in the {@link IMetadataApplication.components} property. Also, alias
14
14
  * types are stored in the {@link IMetadataApplication.aliases} property, too.
15
15
  *
16
+ * @author Jeongho Nam - https://github.com/samchon
16
17
  * @template Types Tuple of target types
17
18
  * @returns Metadata application
18
- *
19
- * @author Jeongho Nam - https://github.com/samchon
20
19
  */
21
20
  export function metadata(): never;
22
21
 
@@ -29,16 +28,13 @@ export function metadata(): never;
29
28
  * stored in the {@link IMetadataApplication.components} property. Also, alias
30
29
  * types are stored in the {@link IMetadataApplication.aliases} property, too.
31
30
  *
31
+ * @author Jeongho Nam - https://github.com/samchon
32
32
  * @template Types Tuple of target types
33
33
  * @returns Metadata application
34
- *
35
- * @author Jeongho Nam - https://github.com/samchon
36
34
  */
37
35
  export function metadata<Types extends unknown[]>(): IMetadataApplication;
38
36
 
39
- /**
40
- * @internal
41
- */
37
+ /** @internal */
42
38
  export function metadata(): never {
43
39
  NoTransformConfigurationError("reflect.metadata");
44
40
  }
@@ -3,12 +3,12 @@ import { IJsonSchemaCollection } from "./IJsonSchemaCollection";
3
3
  /**
4
4
  * Collection of JSON schemas.
5
5
  *
6
- * @deprecated Use {@link IJsonSchemaCollection} instead please.
7
- * This interface type would be changed to {@link ILlmApplication} like
8
- * structure in the future version (maybe next v8 major update).
6
+ * @author Jeongho Nam - https://github.com/samchon
7
+ * @deprecated Use {@link IJsonSchemaCollection} instead please. This interface
8
+ * type would be changed to {@link ILlmApplication} like structure in the
9
+ * future version (maybe next v8 major update).
9
10
  * @template Version Version of the OpenAPI specification.
10
11
  * @template Types Original TypeScript types used in the JSON schemas.
11
- * @author Jeongho Nam - https://github.com/samchon
12
12
  */
13
13
  export type IJsonApplication = IJsonSchemaCollection;
14
14
  export namespace IJsonApplication {
@@ -4,37 +4,43 @@ import type { OpenApi, OpenApiV3 } from "@samchon/openapi";
4
4
  * Collection of JSON schemas with OpenAPI specification support.
5
5
  *
6
6
  * `IJsonSchemaCollection` represents a comprehensive collection of JSON schemas
7
- * that can be generated from TypeScript types using the `typia.json.schemas()` function.
8
- * This interface supports both OpenAPI v3.0 and v3.1 specifications, with the ability
9
- * to automatically generate appropriate schema definitions based on the specified version.
7
+ * that can be generated from TypeScript types using the `typia.json.schemas()`
8
+ * function. This interface supports both OpenAPI v3.0 and v3.1 specifications,
9
+ * with the ability to automatically generate appropriate schema definitions
10
+ * based on the specified version.
10
11
  *
11
12
  * The collection includes:
12
- * - Generated JSON schemas array containing schema definitions for the specified types
13
+ *
14
+ * - Generated JSON schemas array containing schema definitions for the specified
15
+ * types
13
16
  * - Reusable components that can be referenced across different schemas
14
- * - Version-specific formatting that adheres to either OpenAPI v3.0 or v3.1 standards
17
+ * - Version-specific formatting that adheres to either OpenAPI v3.0 or v3.1
18
+ * standards
15
19
  *
16
20
  * Key differences between versions:
17
- * - OpenAPI v3.0: Uses {@link OpenApiV3.IJsonSchema} format with limited tuple support
18
- * - OpenAPI v3.1: Uses {@link OpenApi.IJsonSchema} format with full JSON Schema Draft 2020-12 compatibility
19
21
  *
20
- * @template Version The OpenAPI specification version to target ("3.0" or "3.1").
21
- * Defaults to "3.1" for enhanced JSON Schema compatibility.
22
- * @template Types Array of original TypeScript types that were analyzed to generate
23
- * the JSON schemas. This provides type safety and traceability
24
- * back to the source TypeScript definitions.
22
+ * - OpenAPI v3.0: Uses {@link OpenApiV3.IJsonSchema} format with limited tuple
23
+ * support
24
+ * - OpenAPI v3.1: Uses {@link OpenApi.IJsonSchema} format with full JSON Schema
25
+ * Draft 2020-12 compatibility
25
26
  *
27
+ * @author Jeongho Nam - https://github.com/samchon
26
28
  * @example
27
- * ```typescript
28
- * // Generate schemas for OpenAPI v3.1 (default)
29
- * const schemas = typia.json.schemas<[User, Product]>();
30
- * // Type: IJsonSchemaCollection<"3.1", [User, Product]>
29
+ * ```typescript
30
+ * // Generate schemas for OpenAPI v3.1 (default)
31
+ * const schemas = typia.json.schemas<[User, Product]>();
32
+ * // Type: IJsonSchemaCollection<"3.1", [User, Product]>
31
33
  *
32
- * // Generate schemas for OpenAPI v3.0 (Swagger compatibility)
33
- * const swaggerSchemas = typia.json.schemas<[User, Product], "3.0">();
34
- * // Type: IJsonSchemaCollection<"3.0", [User, Product]>
35
- * ```
34
+ * // Generate schemas for OpenAPI v3.0 (Swagger compatibility)
35
+ * const swaggerSchemas = typia.json.schemas<[User, Product], "3.0">();
36
+ * // Type: IJsonSchemaCollection<"3.0", [User, Product]>
37
+ * ```;
36
38
  *
37
- * @author Jeongho Nam - https://github.com/samchon
39
+ * @template Version The OpenAPI specification version to target ("3.0" or
40
+ * "3.1"). Defaults to "3.1" for enhanced JSON Schema compatibility.
41
+ * @template Types Array of original TypeScript types that were analyzed to
42
+ * generate the JSON schemas. This provides type safety and traceability back
43
+ * to the source TypeScript definitions.
38
44
  */
39
45
  export type IJsonSchemaCollection<
40
46
  Version extends "3.0" | "3.1" = "3.1",
@@ -48,56 +54,61 @@ export namespace IJsonSchemaCollection {
48
54
  * JSON Schema collection formatted for OpenAPI v3.0 specification.
49
55
  *
50
56
  * This interface represents a collection of JSON schemas that comply with
51
- * OpenAPI v3.0 standards, which are compatible with Swagger tools and
52
- * legacy OpenAPI implementations. OpenAPI v3.0 has some limitations
53
- * compared to v3.1, particularly around tuple types and pattern properties.
57
+ * OpenAPI v3.0 standards, which are compatible with Swagger tools and legacy
58
+ * OpenAPI implementations. OpenAPI v3.0 has some limitations compared to
59
+ * v3.1, particularly around tuple types and pattern properties.
54
60
  *
55
61
  * Key characteristics of v3.0:
62
+ *
56
63
  * - Cannot express tuple types natively (falls back to array representations)
57
64
  * - Cannot express pattern properties in object schemas
58
65
  * - Uses nullable property instead of union with null type
59
66
  * - Limited JSON Schema Draft compatibility (based on Draft 4)
60
67
  *
61
- * @template Types Array of original TypeScript types used to generate the schemas.
62
- * This provides compile-time type information about what types
63
- * were analyzed during schema generation.
68
+ * @template Types Array of original TypeScript types used to generate the
69
+ * schemas. This provides compile-time type information about what types
70
+ * were analyzed during schema generation.
64
71
  */
65
72
  export interface IV3_0<Types = unknown[]> {
66
73
  /**
67
74
  * OpenAPI specification version identifier.
68
75
  *
69
- * Always set to "3.0" to indicate this collection uses OpenAPI v3.0
70
- * schema format and constraints.
76
+ * Always set to "3.0" to indicate this collection uses OpenAPI v3.0 schema
77
+ * format and constraints.
71
78
  */
72
79
  version: "3.0";
73
80
 
74
81
  /**
75
82
  * Array of generated JSON schemas.
76
83
  *
77
- * Contains the actual JSON schema definitions generated from the input TypeScript types.
78
- * Each schema in this array corresponds to one of the types specified in the `Types`
79
- * template parameter. The schemas follow OpenAPI v3.0 format and may contain
80
- * references to components defined in the {@link components} property.
84
+ * Contains the actual JSON schema definitions generated from the input
85
+ * TypeScript types. Each schema in this array corresponds to one of the
86
+ * types specified in the `Types` template parameter. The schemas follow
87
+ * OpenAPI v3.0 format and may contain references to components defined in
88
+ * the {@link components} property.
81
89
  *
82
- * Schema references typically use the format: `{ "$ref": "#/components/schemas/TypeName" }`
90
+ * Schema references typically use the format: `{ "$ref":
91
+ * "#/components/schemas/TypeName" }`
83
92
  */
84
93
  schemas: OpenApiV3.IJsonSchema[];
85
94
 
86
95
  /**
87
96
  * Reusable schema components for OpenAPI v3.0.
88
97
  *
89
- * Contains reusable schema definitions, security schemes, and other components
90
- * that can be referenced from the main schemas. This follows the OpenAPI v3.0
91
- * components structure and enables schema reuse and modularity.
98
+ * Contains reusable schema definitions, security schemes, and other
99
+ * components that can be referenced from the main schemas. This follows the
100
+ * OpenAPI v3.0 components structure and enables schema reuse and
101
+ * modularity.
92
102
  *
93
103
  * Components include:
94
- * - schemas: Named type definitions that can be referenced via $ref
95
- * - securitySchemes: Authentication and authorization schemes
96
- * - parameters: Reusable parameter definitions
97
- * - requestBodies: Reusable request body definitions
98
- * - responses: Reusable response definitions
99
- * - headers: Reusable header definitions
100
- * - examples: Reusable example definitions
104
+ *
105
+ * - Schemas: Named type definitions that can be referenced via $ref
106
+ * - SecuritySchemes: Authentication and authorization schemes
107
+ * - Parameters: Reusable parameter definitions
108
+ * - RequestBodies: Reusable request body definitions
109
+ * - Responses: Reusable response definitions
110
+ * - Headers: Reusable header definitions
111
+ * - Examples: Reusable example definitions
101
112
  */
102
113
  components: OpenApiV3.IComponents;
103
114
 
@@ -110,6 +121,7 @@ export namespace IJsonSchemaCollection {
110
121
  * and undefined to prevent it from appearing in serialized JSON output.
111
122
  *
112
123
  * This enables:
124
+ *
113
125
  * - Compile-time type checking against the original types
114
126
  * - IDE intellisense and autocompletion
115
127
  * - Type-safe schema validation and usage
@@ -122,26 +134,27 @@ export namespace IJsonSchemaCollection {
122
134
  *
123
135
  * This interface represents a collection of JSON schemas that comply with
124
136
  * OpenAPI v3.1 standards, which provide enhanced JSON Schema compatibility
125
- * and support for modern JSON Schema features. OpenAPI v3.1 is based on
126
- * JSON Schema Draft 2020-12 and offers significant improvements over v3.0.
137
+ * and support for modern JSON Schema features. OpenAPI v3.1 is based on JSON
138
+ * Schema Draft 2020-12 and offers significant improvements over v3.0.
127
139
  *
128
140
  * Key advantages of v3.1:
141
+ *
129
142
  * - Full tuple type support with prefixItems
130
143
  * - Pattern properties support for dynamic object keys
131
144
  * - Proper null type handling via union types
132
145
  * - Enhanced JSON Schema Draft 2020-12 compatibility
133
146
  * - Better const, enum, and validation support
134
147
  *
135
- * @template Types Array of original TypeScript types used to generate the schemas.
136
- * This provides compile-time type information about what types
137
- * were analyzed during schema generation.
148
+ * @template Types Array of original TypeScript types used to generate the
149
+ * schemas. This provides compile-time type information about what types
150
+ * were analyzed during schema generation.
138
151
  */
139
152
  export interface IV3_1<Types = unknown[]> {
140
153
  /**
141
154
  * OpenAPI specification version identifier.
142
155
  *
143
- * Always set to "3.1" to indicate this collection uses OpenAPI v3.1
144
- * schema format with enhanced JSON Schema compatibility.
156
+ * Always set to "3.1" to indicate this collection uses OpenAPI v3.1 schema
157
+ * format with enhanced JSON Schema compatibility.
145
158
  */
146
159
  version: "3.1";
147
160
 
@@ -149,12 +162,13 @@ export namespace IJsonSchemaCollection {
149
162
  * Reusable schema components for OpenAPI v3.1.
150
163
  *
151
164
  * Contains reusable schema definitions and other components following the
152
- * OpenAPI v3.1 specification. This structure is similar to v3.0 but supports
153
- * enhanced JSON Schema features and improved type definitions.
165
+ * OpenAPI v3.1 specification. This structure is similar to v3.0 but
166
+ * supports enhanced JSON Schema features and improved type definitions.
154
167
  *
155
168
  * Components include:
156
- * - schemas: Named type definitions with enhanced JSON Schema support
157
- * - securitySchemes: Authentication and authorization schemes
169
+ *
170
+ * - Schemas: Named type definitions with enhanced JSON Schema support
171
+ * - SecuritySchemes: Authentication and authorization schemes
158
172
  *
159
173
  * The emended OpenAPI v3.1 format used here removes ambiguous expressions
160
174
  * and standardizes certain patterns for better tooling compatibility.
@@ -167,6 +181,7 @@ export namespace IJsonSchemaCollection {
167
181
  * Contains JSON schema definitions that take advantage of OpenAPI v3.1's
168
182
  * enhanced capabilities. These schemas can express more complex TypeScript
169
183
  * types accurately, including:
184
+ *
170
185
  * - Tuple types using prefixItems
171
186
  * - Union types with proper null handling
172
187
  * - Complex nested object structures
@@ -182,9 +197,11 @@ export namespace IJsonSchemaCollection {
182
197
  *
183
198
  * This optional property stores the original TypeScript types that were
184
199
  * used to generate the JSON schemas. It provides compile-time type safety
185
- * and enables better development experience without affecting runtime behavior.
200
+ * and enables better development experience without affecting runtime
201
+ * behavior.
186
202
  *
187
203
  * Benefits include:
204
+ *
188
205
  * - Strong typing connection to original TypeScript definitions
189
206
  * - Enhanced IDE support and autocompletion
190
207
  * - Compile-time validation of schema usage
@@ -3,55 +3,57 @@ import { OpenApi, OpenApiV3 } from "@samchon/openapi";
3
3
  /**
4
4
  * Single unit of JSON schema representation.
5
5
  *
6
- * `IJsonSchemaUnit` represents a self-contained JSON schema unit that encapsulates
7
- * a single schema definition along with its associated reusable components. This is
8
- * typically used when generating a JSON schema for a single TypeScript type, as
9
- * opposed to a collection of multiple types.
6
+ * `IJsonSchemaUnit` represents a self-contained JSON schema unit that
7
+ * encapsulates a single schema definition along with its associated reusable
8
+ * components. This is typically used when generating a JSON schema for a single
9
+ * TypeScript type, as opposed to a collection of multiple types.
10
10
  *
11
- * Unlike {@link IJsonSchemaCollection} which handles multiple schemas, `IJsonSchemaUnit`
12
- * focuses on representing a single schema with its dependencies. This makes it ideal
13
- * for scenarios where you need to work with individual type definitions or when
14
- * integrating with systems that expect single schema documents.
11
+ * Unlike {@link IJsonSchemaCollection} which handles multiple schemas,
12
+ * `IJsonSchemaUnit` focuses on representing a single schema with its
13
+ * dependencies. This makes it ideal for scenarios where you need to work with
14
+ * individual type definitions or when integrating with systems that expect
15
+ * single schema documents.
15
16
  *
16
17
  * The unit contains:
18
+ *
17
19
  * - A single JSON schema definition for the specified TypeScript type
18
20
  * - All necessary reusable components that the schema may reference
19
21
  * - Version-specific formatting for either OpenAPI v3.0 or v3.1 compatibility
20
22
  * - Optional type metadata for compile-time type safety
21
23
  *
22
24
  * Key differences from collection:
25
+ *
23
26
  * - Contains only one schema instead of an array of schemas
24
27
  * - More lightweight for single-type use cases
25
28
  * - Simpler structure for direct schema consumption
26
29
  * - Still maintains full component reference support
27
30
  *
28
- * @template Version The OpenAPI specification version to target ("3.0" or "3.1").
29
- * Defaults to "3.1" for enhanced JSON Schema Draft 2020-12 compatibility.
30
- * This determines the schema format, validation capabilities, and
31
- * available features like tuple support and null type handling.
32
- * @template Type The original TypeScript type that was analyzed to generate this
33
- * JSON schema unit. This provides compile-time type safety and
34
- * enables IDEs to provide better intellisense and validation.
35
- *
31
+ * @author Jeongho Nam - https://github.com/samchon
36
32
  * @example
37
- * ```typescript
38
- * interface User {
39
- * id: string;
40
- * name: string;
41
- * email?: string;
42
- * }
33
+ * ```typescript
34
+ * interface User {
35
+ * id: string;
36
+ * name: string;
37
+ * email?: string;
38
+ * }
43
39
  *
44
- * // Generate a single schema unit for OpenAPI v3.1 (default)
45
- * const userSchema = typia.json.schema<User>();
46
- * // Type: IJsonSchemaUnit<"3.1", User>
40
+ * // Generate a single schema unit for OpenAPI v3.1 (default)
41
+ * const userSchema = typia.json.schema<User>();
42
+ * // Type: IJsonSchemaUnit<"3.1", User>
47
43
  *
48
- * // Generate a single schema unit for OpenAPI v3.0 (Swagger compatibility)
49
- * const swaggerUserSchema = typia.json.schema<User, "3.0">();
50
- * // Type: IJsonSchemaUnit<"3.0", User>
51
- * ```
44
+ * // Generate a single schema unit for OpenAPI v3.0 (Swagger compatibility)
45
+ * const swaggerUserSchema = typia.json.schema<User, "3.0">();
46
+ * // Type: IJsonSchemaUnit<"3.0", User>
47
+ * ```;
52
48
  *
49
+ * @template Version The OpenAPI specification version to target ("3.0" or
50
+ * "3.1"). Defaults to "3.1" for enhanced JSON Schema Draft 2020-12
51
+ * compatibility. This determines the schema format, validation capabilities,
52
+ * and available features like tuple support and null type handling.
53
+ * @template Type The original TypeScript type that was analyzed to generate
54
+ * this JSON schema unit. This provides compile-time type safety and enables
55
+ * IDEs to provide better intellisense and validation.
53
56
  * @see {@link IJsonSchemaCollection} For handling multiple schemas at once
54
- * @author Jeongho Nam - https://github.com/samchon
55
57
  */
56
58
  export type IJsonSchemaUnit<
57
59
  Version extends "3.0" | "3.1" = "3.1",
@@ -65,11 +67,12 @@ export namespace IJsonSchemaUnit {
65
67
  * JSON Schema unit formatted for OpenAPI v3.0 specification.
66
68
  *
67
69
  * This interface represents a single JSON schema unit that complies with
68
- * OpenAPI v3.0 standards. It contains one schema definition along with
69
- * any reusable components that the schema references, formatted according
70
- * to OpenAPI v3.0 constraints and limitations.
70
+ * OpenAPI v3.0 standards. It contains one schema definition along with any
71
+ * reusable components that the schema references, formatted according to
72
+ * OpenAPI v3.0 constraints and limitations.
71
73
  *
72
74
  * OpenAPI v3.0 characteristics affecting this unit:
75
+ *
73
76
  * - Schema follows OpenAPI v3.0 JSON Schema subset
74
77
  * - Limited support for advanced JSON Schema features
75
78
  * - Uses nullable property for optional null values
@@ -77,33 +80,35 @@ export namespace IJsonSchemaUnit {
77
80
  * - Based on JSON Schema Draft 4 with OpenAPI-specific extensions
78
81
  *
79
82
  * Use cases for v3.0:
83
+ *
80
84
  * - Integration with legacy Swagger tooling
81
85
  * - Compatibility with older OpenAPI implementations
82
86
  * - Systems that specifically require OpenAPI v3.0 format
83
87
  * - Code generation tools that expect v3.0 schemas
84
88
  *
85
- * @template Type The original TypeScript type represented by this schema unit.
86
- * Provides compile-time type information and enables type-safe
87
- * operations on the schema.
89
+ * @template Type The original TypeScript type represented by this schema
90
+ * unit. Provides compile-time type information and enables type-safe
91
+ * operations on the schema.
88
92
  */
89
93
  export interface IV3_0<Type> {
90
94
  /**
91
95
  * OpenAPI specification version identifier.
92
96
  *
93
- * Always set to "3.0" to indicate this schema unit uses OpenAPI v3.0
94
- * format and adheres to its specific constraints and limitations.
97
+ * Always set to "3.0" to indicate this schema unit uses OpenAPI v3.0 format
98
+ * and adheres to its specific constraints and limitations.
95
99
  */
96
100
  version: "3.0";
97
101
 
98
102
  /**
99
103
  * The primary JSON schema definition.
100
104
  *
101
- * Contains the main JSON schema that represents the TypeScript type specified
102
- * in the `Type` template parameter. This schema follows OpenAPI v3.0 format
103
- * and may contain references to reusable components defined in the
104
- * {@link components} property.
105
+ * Contains the main JSON schema that represents the TypeScript type
106
+ * specified in the `Type` template parameter. This schema follows OpenAPI
107
+ * v3.0 format and may contain references to reusable components defined in
108
+ * the {@link components} property.
105
109
  *
106
110
  * The schema structure includes:
111
+ *
107
112
  * - Type definitions following OpenAPI v3.0 constraints
108
113
  * - Property definitions with v3.0-compatible validation rules
109
114
  * - References to shared components using $ref syntax
@@ -122,13 +127,14 @@ export namespace IJsonSchemaUnit {
122
127
  * within the schema definition.
123
128
  *
124
129
  * Component categories include:
125
- * - schemas: Named type definitions for complex objects, arrays, and unions
126
- * - securitySchemes: Authentication and authorization definitions
127
- * - parameters: Reusable parameter specifications
128
- * - requestBodies: Reusable request body definitions
129
- * - responses: Reusable response specifications
130
- * - headers: Reusable header definitions
131
- * - examples: Reusable example values
130
+ *
131
+ * - Schemas: Named type definitions for complex objects, arrays, and unions
132
+ * - SecuritySchemes: Authentication and authorization definitions
133
+ * - Parameters: Reusable parameter specifications
134
+ * - RequestBodies: Reusable request body definitions
135
+ * - Responses: Reusable response specifications
136
+ * - Headers: Reusable header definitions
137
+ * - Examples: Reusable example values
132
138
  *
133
139
  * All components follow OpenAPI v3.0 format restrictions and capabilities.
134
140
  */
@@ -142,14 +148,15 @@ export namespace IJsonSchemaUnit {
142
148
  * type information without affecting the runtime JSON representation.
143
149
  *
144
150
  * Benefits of type metadata:
151
+ *
145
152
  * - Enables type-safe schema validation and usage
146
153
  * - Provides IDE intellisense and autocompletion
147
154
  * - Allows compile-time checking of schema operations
148
155
  * - Maintains traceability to original TypeScript definitions
149
156
  *
150
157
  * The property is intentionally marked as optional and undefined to ensure
151
- * it doesn't appear in serialized JSON output while preserving type information
152
- * at compile time.
158
+ * it doesn't appear in serialized JSON output while preserving type
159
+ * information at compile time.
153
160
  */
154
161
  __type?: Type | undefined;
155
162
  }
@@ -157,12 +164,13 @@ export namespace IJsonSchemaUnit {
157
164
  /**
158
165
  * JSON Schema unit formatted for OpenAPI v3.1 specification.
159
166
  *
160
- * This interface represents a single JSON schema unit that takes advantage
161
- * of OpenAPI v3.1's enhanced capabilities and improved JSON Schema compatibility.
162
- * It provides a more feature-rich and accurate representation of TypeScript
163
- * types compared to the v3.0 format.
167
+ * This interface represents a single JSON schema unit that takes advantage of
168
+ * OpenAPI v3.1's enhanced capabilities and improved JSON Schema
169
+ * compatibility. It provides a more feature-rich and accurate representation
170
+ * of TypeScript types compared to the v3.0 format.
164
171
  *
165
172
  * OpenAPI v3.1 advantages for this unit:
173
+ *
166
174
  * - Full JSON Schema Draft 2020-12 compatibility
167
175
  * - Native tuple type support using prefixItems
168
176
  * - Proper null type handling via union types
@@ -171,21 +179,22 @@ export namespace IJsonSchemaUnit {
171
179
  * - Better support for complex nested structures
172
180
  *
173
181
  * Use cases for v3.1:
182
+ *
174
183
  * - Modern OpenAPI implementations and tooling
175
184
  * - Systems requiring accurate TypeScript type representation
176
185
  * - Applications needing advanced JSON Schema features
177
186
  * - New projects without legacy compatibility requirements
178
187
  *
179
- * @template Type The original TypeScript type represented by this schema unit.
180
- * Enables compile-time type safety and provides enhanced
181
- * development experience with better IDE support.
188
+ * @template Type The original TypeScript type represented by this schema
189
+ * unit. Enables compile-time type safety and provides enhanced development
190
+ * experience with better IDE support.
182
191
  */
183
192
  export interface IV3_1<Type> {
184
193
  /**
185
194
  * OpenAPI specification version identifier.
186
195
  *
187
- * Always set to "3.1" to indicate this schema unit uses OpenAPI v3.1
188
- * format with enhanced JSON Schema compatibility and modern features.
196
+ * Always set to "3.1" to indicate this schema unit uses OpenAPI v3.1 format
197
+ * with enhanced JSON Schema compatibility and modern features.
189
198
  */
190
199
  version: "3.1";
191
200
 
@@ -194,9 +203,11 @@ export namespace IJsonSchemaUnit {
194
203
  *
195
204
  * Contains the main JSON schema that accurately represents the TypeScript
196
205
  * type using OpenAPI v3.1's enhanced capabilities. This schema can express
197
- * complex TypeScript constructs that were not possible or accurate in v3.0.
206
+ * complex TypeScript constructs that were not possible or accurate in
207
+ * v3.0.
198
208
  *
199
209
  * Enhanced schema features include:
210
+ *
200
211
  * - Tuple types using prefixItems for exact array structure
201
212
  * - Union types with proper null handling via oneOf
202
213
  * - Const values for literal types
@@ -204,21 +215,22 @@ export namespace IJsonSchemaUnit {
204
215
  * - Advanced validation constraints and metadata
205
216
  * - Recursive type definitions with proper $ref handling
206
217
  *
207
- * The schema follows the emended OpenAPI v3.1 format used by typia,
208
- * which removes ambiguous expressions while maintaining full compatibility.
218
+ * The schema follows the emended OpenAPI v3.1 format used by typia, which
219
+ * removes ambiguous expressions while maintaining full compatibility.
209
220
  */
210
221
  schema: OpenApi.IJsonSchema;
211
222
 
212
223
  /**
213
224
  * Reusable schema components for OpenAPI v3.1.
214
225
  *
215
- * Contains reusable schema definitions and components that leverage
216
- * OpenAPI v3.1's enhanced capabilities. These components provide better
217
- * type representation and more accurate schema definitions compared to v3.0.
226
+ * Contains reusable schema definitions and components that leverage OpenAPI
227
+ * v3.1's enhanced capabilities. These components provide better type
228
+ * representation and more accurate schema definitions compared to v3.0.
218
229
  *
219
230
  * Enhanced component features:
220
- * - schemas: More accurate type definitions with v3.1 JSON Schema features
221
- * - securitySchemes: Enhanced authentication scheme definitions
231
+ *
232
+ * - Schemas: More accurate type definitions with v3.1 JSON Schema features
233
+ * - SecuritySchemes: Enhanced authentication scheme definitions
222
234
  * - Better support for complex nested references
223
235
  * - Improved handling of recursive and circular type dependencies
224
236
  *
@@ -232,10 +244,11 @@ export namespace IJsonSchemaUnit {
232
244
  *
233
245
  * This optional property preserves the original TypeScript type information
234
246
  * for compile-time type checking and enhanced development experience. It
235
- * enables type-safe operations and better IDE support without affecting
236
- * the runtime JSON schema representation.
247
+ * enables type-safe operations and better IDE support without affecting the
248
+ * runtime JSON schema representation.
237
249
  *
238
250
  * Enhanced type safety features:
251
+ *
239
252
  * - Strong typing connection to original TypeScript definitions
240
253
  * - Better IDE intellisense and error detection
241
254
  * - Compile-time validation of schema usage patterns
@@ -9,8 +9,6 @@ export interface IMetadataTypeTag {
9
9
  validate?: string | undefined;
10
10
  schema?: object | undefined;
11
11
 
12
- /**
13
- * @internal
14
- */
12
+ /** @internal */
15
13
  predicate?: (input: ts.Expression) => ts.Expression;
16
14
  }