typia 9.7.1 → 10.0.0-dev.20251107

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (424) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +153 -153
  3. package/lib/AssertionGuard.d.mts +27 -25
  4. package/lib/AssertionGuard.d.ts +27 -25
  5. package/lib/CamelCase.d.mts +1 -1
  6. package/lib/CamelCase.d.ts +1 -1
  7. package/lib/IRandomGenerator.d.mts +44 -42
  8. package/lib/IRandomGenerator.d.ts +44 -42
  9. package/lib/IReadableURLSearchParams.d.mts +2 -2
  10. package/lib/IReadableURLSearchParams.d.ts +2 -2
  11. package/lib/PascalCase.d.mts +1 -1
  12. package/lib/PascalCase.d.ts +1 -1
  13. package/lib/Primitive.d.mts +20 -22
  14. package/lib/Primitive.d.ts +20 -22
  15. package/lib/Resolved.d.mts +16 -18
  16. package/lib/Resolved.d.ts +16 -18
  17. package/lib/SnakeCase.d.mts +3 -2
  18. package/lib/SnakeCase.d.ts +3 -2
  19. package/lib/TypeGuardError.d.mts +88 -61
  20. package/lib/TypeGuardError.d.ts +88 -61
  21. package/lib/TypeGuardError.js +40 -29
  22. package/lib/TypeGuardError.js.map +1 -1
  23. package/lib/TypeGuardError.mjs +70 -48
  24. package/lib/factories/MetadataCollection.js +4 -12
  25. package/lib/factories/MetadataCollection.js.map +1 -1
  26. package/lib/factories/MetadataCollection.mjs +4 -12
  27. package/lib/factories/MetadataCommentTagFactory.js +5 -15
  28. package/lib/factories/MetadataCommentTagFactory.js.map +1 -1
  29. package/lib/factories/MetadataCommentTagFactory.mjs +5 -15
  30. package/lib/factories/MetadataFactory.js +1 -3
  31. package/lib/factories/MetadataFactory.js.map +1 -1
  32. package/lib/factories/MetadataFactory.mjs +1 -3
  33. package/lib/factories/ProtobufFactory.js +2 -4
  34. package/lib/factories/ProtobufFactory.js.map +1 -1
  35. package/lib/factories/ProtobufFactory.mjs +2 -4
  36. package/lib/functional.d.mts +196 -195
  37. package/lib/functional.d.ts +196 -195
  38. package/lib/functional.js +18 -54
  39. package/lib/functional.js.map +1 -1
  40. package/lib/functional.mjs +18 -54
  41. package/lib/http.d.mts +303 -319
  42. package/lib/http.d.ts +303 -319
  43. package/lib/http.js +26 -78
  44. package/lib/http.js.map +1 -1
  45. package/lib/http.mjs +26 -78
  46. package/lib/internal/_ProtobufReader.d.mts +3 -9
  47. package/lib/internal/_ProtobufReader.d.ts +3 -9
  48. package/lib/internal/_ProtobufReader.js.map +1 -1
  49. package/lib/internal/_ProtobufReader.mjs +3 -9
  50. package/lib/internal/_ProtobufSizer.d.mts +4 -12
  51. package/lib/internal/_ProtobufSizer.d.ts +4 -12
  52. package/lib/internal/_ProtobufSizer.js.map +1 -1
  53. package/lib/internal/_ProtobufSizer.mjs +4 -12
  54. package/lib/internal/_ProtobufWriter.d.mts +5 -15
  55. package/lib/internal/_ProtobufWriter.d.ts +5 -15
  56. package/lib/internal/_ProtobufWriter.js.map +1 -1
  57. package/lib/internal/_ProtobufWriter.mjs +5 -15
  58. package/lib/internal/_jsonStringifyString.d.mts +4 -4
  59. package/lib/internal/_jsonStringifyString.d.ts +4 -4
  60. package/lib/internal/_jsonStringifyString.js +4 -4
  61. package/lib/internal/_jsonStringifyString.mjs +4 -4
  62. package/lib/json.d.mts +174 -195
  63. package/lib/json.d.ts +174 -195
  64. package/lib/json.js +16 -48
  65. package/lib/json.js.map +1 -1
  66. package/lib/json.mjs +16 -48
  67. package/lib/llm.d.mts +275 -192
  68. package/lib/llm.d.ts +275 -192
  69. package/lib/llm.js +4 -12
  70. package/lib/llm.js.map +1 -1
  71. package/lib/llm.mjs +4 -12
  72. package/lib/misc.d.mts +149 -172
  73. package/lib/misc.d.ts +149 -172
  74. package/lib/misc.js +17 -51
  75. package/lib/misc.js.map +1 -1
  76. package/lib/misc.mjs +17 -51
  77. package/lib/module.d.mts +263 -275
  78. package/lib/module.d.ts +263 -275
  79. package/lib/module.js +18 -54
  80. package/lib/module.js.map +1 -1
  81. package/lib/module.mjs +18 -54
  82. package/lib/notations.d.mts +153 -174
  83. package/lib/notations.d.ts +153 -174
  84. package/lib/notations.js +24 -72
  85. package/lib/notations.js.map +1 -1
  86. package/lib/notations.mjs +24 -72
  87. package/lib/programmers/FeatureProgrammer.d.mts +19 -41
  88. package/lib/programmers/FeatureProgrammer.d.ts +19 -41
  89. package/lib/programmers/FeatureProgrammer.js.map +1 -1
  90. package/lib/programmers/ImportProgrammer.js +3 -9
  91. package/lib/programmers/ImportProgrammer.js.map +1 -1
  92. package/lib/programmers/ImportProgrammer.mjs +3 -9
  93. package/lib/programmers/RandomProgrammer.js +6 -0
  94. package/lib/programmers/RandomProgrammer.js.map +1 -1
  95. package/lib/programmers/RandomProgrammer.mjs +6 -0
  96. package/lib/programmers/helpers/ProtobufWire.d.mts +13 -13
  97. package/lib/programmers/helpers/ProtobufWire.d.ts +13 -13
  98. package/lib/programmers/internal/check_array_length.js +2 -6
  99. package/lib/programmers/internal/check_array_length.js.map +1 -1
  100. package/lib/programmers/internal/check_array_length.mjs +2 -6
  101. package/lib/programmers/internal/check_bigint.js +2 -6
  102. package/lib/programmers/internal/check_bigint.js.map +1 -1
  103. package/lib/programmers/internal/check_bigint.mjs +2 -6
  104. package/lib/programmers/internal/check_dynamic_key.js +2 -6
  105. package/lib/programmers/internal/check_dynamic_key.js.map +1 -1
  106. package/lib/programmers/internal/check_dynamic_key.mjs +2 -6
  107. package/lib/programmers/internal/check_dynamic_properties.js +3 -9
  108. package/lib/programmers/internal/check_dynamic_properties.js.map +1 -1
  109. package/lib/programmers/internal/check_dynamic_properties.mjs +3 -9
  110. package/lib/programmers/internal/check_everything.js +1 -3
  111. package/lib/programmers/internal/check_everything.js.map +1 -1
  112. package/lib/programmers/internal/check_everything.mjs +1 -3
  113. package/lib/programmers/internal/check_native.js +2 -6
  114. package/lib/programmers/internal/check_native.js.map +1 -1
  115. package/lib/programmers/internal/check_native.mjs +2 -6
  116. package/lib/programmers/internal/check_number.js +2 -6
  117. package/lib/programmers/internal/check_number.js.map +1 -1
  118. package/lib/programmers/internal/check_number.mjs +2 -6
  119. package/lib/programmers/internal/check_object.js +2 -6
  120. package/lib/programmers/internal/check_object.js.map +1 -1
  121. package/lib/programmers/internal/check_object.mjs +2 -6
  122. package/lib/programmers/internal/check_string.js +2 -6
  123. package/lib/programmers/internal/check_string.js.map +1 -1
  124. package/lib/programmers/internal/check_string.mjs +2 -6
  125. package/lib/programmers/internal/check_template.js +1 -3
  126. package/lib/programmers/internal/check_template.js.map +1 -1
  127. package/lib/programmers/internal/check_template.mjs +1 -3
  128. package/lib/programmers/internal/check_union_array_like.js +1 -3
  129. package/lib/programmers/internal/check_union_array_like.js.map +1 -1
  130. package/lib/programmers/internal/check_union_array_like.mjs +1 -3
  131. package/lib/programmers/internal/decode_union_object.js +2 -6
  132. package/lib/programmers/internal/decode_union_object.js.map +1 -1
  133. package/lib/programmers/internal/decode_union_object.mjs +2 -6
  134. package/lib/programmers/internal/feature_object_entries.js +1 -3
  135. package/lib/programmers/internal/feature_object_entries.js.map +1 -1
  136. package/lib/programmers/internal/feature_object_entries.mjs +1 -3
  137. package/lib/programmers/internal/json_schema_escaped.js +2 -6
  138. package/lib/programmers/internal/json_schema_escaped.js.map +1 -1
  139. package/lib/programmers/internal/json_schema_escaped.mjs +2 -6
  140. package/lib/programmers/internal/json_schema_object.js +3 -9
  141. package/lib/programmers/internal/json_schema_object.js.map +1 -1
  142. package/lib/programmers/internal/json_schema_object.mjs +3 -9
  143. package/lib/programmers/internal/json_schema_station.d.mts +2 -2
  144. package/lib/programmers/internal/json_schema_station.d.ts +2 -2
  145. package/lib/programmers/internal/metadata_to_pattern.js +1 -3
  146. package/lib/programmers/internal/metadata_to_pattern.js.map +1 -1
  147. package/lib/programmers/internal/metadata_to_pattern.mjs +1 -3
  148. package/lib/programmers/internal/postfix_of_tuple.js +1 -3
  149. package/lib/programmers/internal/postfix_of_tuple.js.map +1 -1
  150. package/lib/programmers/internal/postfix_of_tuple.mjs +1 -3
  151. package/lib/programmers/internal/prune_object_properties.js +1 -3
  152. package/lib/programmers/internal/prune_object_properties.js.map +1 -1
  153. package/lib/programmers/internal/prune_object_properties.mjs +1 -3
  154. package/lib/programmers/internal/stringify_dynamic_properties.js +2 -6
  155. package/lib/programmers/internal/stringify_dynamic_properties.js.map +1 -1
  156. package/lib/programmers/internal/stringify_dynamic_properties.mjs +2 -6
  157. package/lib/programmers/internal/stringify_native.js +1 -3
  158. package/lib/programmers/internal/stringify_native.js.map +1 -1
  159. package/lib/programmers/internal/stringify_native.mjs +1 -3
  160. package/lib/programmers/internal/stringify_regular_properties.js +2 -6
  161. package/lib/programmers/internal/stringify_regular_properties.js.map +1 -1
  162. package/lib/programmers/internal/stringify_regular_properties.mjs +2 -6
  163. package/lib/programmers/internal/template_to_pattern.js +1 -3
  164. package/lib/programmers/internal/template_to_pattern.js.map +1 -1
  165. package/lib/programmers/internal/template_to_pattern.mjs +1 -3
  166. package/lib/programmers/internal/wrap_metadata_rest_tuple.js +1 -3
  167. package/lib/programmers/internal/wrap_metadata_rest_tuple.js.map +1 -1
  168. package/lib/programmers/internal/wrap_metadata_rest_tuple.mjs +1 -3
  169. package/lib/programmers/json/JsonStringifyProgrammer.js +2 -2
  170. package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
  171. package/lib/programmers/json/JsonStringifyProgrammer.mjs +2 -2
  172. package/lib/programmers/llm/LlmApplicationProgrammer.js +5 -1
  173. package/lib/programmers/llm/LlmApplicationProgrammer.js.map +1 -1
  174. package/lib/programmers/llm/LlmApplicationProgrammer.mjs +5 -1
  175. package/lib/programmers/llm/LlmSchemaProgrammer.js +1 -4
  176. package/lib/programmers/llm/LlmSchemaProgrammer.js.map +1 -1
  177. package/lib/programmers/llm/LlmSchemaProgrammer.mjs +1 -35
  178. package/lib/protobuf.d.mts +290 -297
  179. package/lib/protobuf.d.ts +290 -297
  180. package/lib/protobuf.js +17 -51
  181. package/lib/protobuf.js.map +1 -1
  182. package/lib/protobuf.mjs +17 -51
  183. package/lib/reflect.d.mts +2 -4
  184. package/lib/reflect.d.ts +2 -4
  185. package/lib/reflect.js +1 -3
  186. package/lib/reflect.js.map +1 -1
  187. package/lib/reflect.mjs +1 -3
  188. package/lib/schemas/json/IJsonApplication.d.mts +4 -4
  189. package/lib/schemas/json/IJsonApplication.d.ts +4 -4
  190. package/lib/schemas/json/IJsonSchemaCollection.d.mts +73 -56
  191. package/lib/schemas/json/IJsonSchemaCollection.d.ts +73 -56
  192. package/lib/schemas/json/IJsonSchemaUnit.d.mts +83 -70
  193. package/lib/schemas/json/IJsonSchemaUnit.d.ts +83 -70
  194. package/lib/schemas/metadata/Metadata.d.mts +1 -3
  195. package/lib/schemas/metadata/Metadata.d.ts +1 -3
  196. package/lib/schemas/metadata/Metadata.js +9 -27
  197. package/lib/schemas/metadata/Metadata.js.map +1 -1
  198. package/lib/schemas/metadata/Metadata.mjs +9 -27
  199. package/lib/schemas/metadata/MetadataAliasType.d.mts +1 -3
  200. package/lib/schemas/metadata/MetadataAliasType.d.ts +1 -3
  201. package/lib/schemas/metadata/MetadataAliasType.js +3 -9
  202. package/lib/schemas/metadata/MetadataAliasType.js.map +1 -1
  203. package/lib/schemas/metadata/MetadataAliasType.mjs +3 -9
  204. package/lib/schemas/metadata/MetadataApplication.d.mts +1 -3
  205. package/lib/schemas/metadata/MetadataApplication.d.ts +1 -3
  206. package/lib/schemas/metadata/MetadataApplication.js +2 -6
  207. package/lib/schemas/metadata/MetadataApplication.js.map +1 -1
  208. package/lib/schemas/metadata/MetadataApplication.mjs +2 -6
  209. package/lib/schemas/metadata/MetadataArray.d.mts +1 -3
  210. package/lib/schemas/metadata/MetadataArray.d.ts +1 -3
  211. package/lib/schemas/metadata/MetadataArray.js +1 -3
  212. package/lib/schemas/metadata/MetadataArray.js.map +1 -1
  213. package/lib/schemas/metadata/MetadataArray.mjs +1 -3
  214. package/lib/schemas/metadata/MetadataArrayType.d.mts +1 -3
  215. package/lib/schemas/metadata/MetadataArrayType.d.ts +1 -3
  216. package/lib/schemas/metadata/MetadataArrayType.js +3 -9
  217. package/lib/schemas/metadata/MetadataArrayType.js.map +1 -1
  218. package/lib/schemas/metadata/MetadataArrayType.mjs +3 -9
  219. package/lib/schemas/metadata/MetadataAtomic.js +1 -3
  220. package/lib/schemas/metadata/MetadataAtomic.js.map +1 -1
  221. package/lib/schemas/metadata/MetadataAtomic.mjs +1 -3
  222. package/lib/schemas/metadata/MetadataEscaped.d.mts +1 -3
  223. package/lib/schemas/metadata/MetadataEscaped.d.ts +1 -3
  224. package/lib/schemas/metadata/MetadataEscaped.js +3 -9
  225. package/lib/schemas/metadata/MetadataEscaped.js.map +1 -1
  226. package/lib/schemas/metadata/MetadataEscaped.mjs +3 -9
  227. package/lib/schemas/metadata/MetadataFunction.d.mts +1 -3
  228. package/lib/schemas/metadata/MetadataFunction.d.ts +1 -3
  229. package/lib/schemas/metadata/MetadataFunction.js +2 -6
  230. package/lib/schemas/metadata/MetadataFunction.js.map +1 -1
  231. package/lib/schemas/metadata/MetadataFunction.mjs +2 -6
  232. package/lib/schemas/metadata/MetadataObject.d.mts +1 -3
  233. package/lib/schemas/metadata/MetadataObject.d.ts +1 -3
  234. package/lib/schemas/metadata/MetadataObject.js +1 -3
  235. package/lib/schemas/metadata/MetadataObject.js.map +1 -1
  236. package/lib/schemas/metadata/MetadataObject.mjs +1 -3
  237. package/lib/schemas/metadata/MetadataObjectType.d.mts +1 -3
  238. package/lib/schemas/metadata/MetadataObjectType.d.ts +1 -3
  239. package/lib/schemas/metadata/MetadataObjectType.js +5 -15
  240. package/lib/schemas/metadata/MetadataObjectType.js.map +1 -1
  241. package/lib/schemas/metadata/MetadataObjectType.mjs +6 -18
  242. package/lib/schemas/metadata/MetadataParameter.js +1 -3
  243. package/lib/schemas/metadata/MetadataParameter.js.map +1 -1
  244. package/lib/schemas/metadata/MetadataParameter.mjs +1 -3
  245. package/lib/schemas/metadata/MetadataProperty.d.mts +1 -3
  246. package/lib/schemas/metadata/MetadataProperty.d.ts +1 -3
  247. package/lib/schemas/metadata/MetadataProperty.js +3 -9
  248. package/lib/schemas/metadata/MetadataProperty.js.map +1 -1
  249. package/lib/schemas/metadata/MetadataProperty.mjs +3 -9
  250. package/lib/schemas/metadata/MetadataTemplate.js +1 -3
  251. package/lib/schemas/metadata/MetadataTemplate.js.map +1 -1
  252. package/lib/schemas/metadata/MetadataTemplate.mjs +1 -3
  253. package/lib/schemas/metadata/MetadataTuple.d.mts +1 -3
  254. package/lib/schemas/metadata/MetadataTuple.d.ts +1 -3
  255. package/lib/schemas/metadata/MetadataTuple.js +2 -6
  256. package/lib/schemas/metadata/MetadataTuple.js.map +1 -1
  257. package/lib/schemas/metadata/MetadataTuple.mjs +2 -6
  258. package/lib/schemas/metadata/MetadataTupleType.js +2 -6
  259. package/lib/schemas/metadata/MetadataTupleType.js.map +1 -1
  260. package/lib/schemas/metadata/MetadataTupleType.mjs +3 -9
  261. package/lib/tags/Constant.d.mts +16 -16
  262. package/lib/tags/Constant.d.ts +16 -16
  263. package/lib/tags/ContentMediaType.d.mts +7 -7
  264. package/lib/tags/ContentMediaType.d.ts +7 -7
  265. package/lib/tags/Default.d.mts +19 -19
  266. package/lib/tags/Default.d.ts +19 -19
  267. package/lib/tags/Example.d.mts +18 -18
  268. package/lib/tags/Example.d.ts +18 -18
  269. package/lib/tags/Examples.d.mts +23 -23
  270. package/lib/tags/Examples.d.ts +23 -23
  271. package/lib/tags/ExclusiveMaximum.d.mts +8 -5
  272. package/lib/tags/ExclusiveMaximum.d.ts +8 -5
  273. package/lib/tags/ExclusiveMinimum.d.mts +8 -5
  274. package/lib/tags/ExclusiveMinimum.d.ts +8 -5
  275. package/lib/tags/Format.d.mts +12 -8
  276. package/lib/tags/Format.d.ts +12 -8
  277. package/lib/tags/JsonSchemaPlugin.d.mts +20 -18
  278. package/lib/tags/JsonSchemaPlugin.d.ts +20 -18
  279. package/lib/tags/MaxItems.d.mts +9 -9
  280. package/lib/tags/MaxItems.d.ts +9 -9
  281. package/lib/tags/MaxLength.d.mts +6 -5
  282. package/lib/tags/MaxLength.d.ts +6 -5
  283. package/lib/tags/Maximum.d.mts +9 -7
  284. package/lib/tags/Maximum.d.ts +9 -7
  285. package/lib/tags/MinItems.d.mts +9 -9
  286. package/lib/tags/MinItems.d.ts +9 -9
  287. package/lib/tags/MinLength.d.mts +6 -5
  288. package/lib/tags/MinLength.d.ts +6 -5
  289. package/lib/tags/Minimum.d.mts +9 -7
  290. package/lib/tags/Minimum.d.ts +9 -7
  291. package/lib/tags/MultipleOf.d.mts +10 -7
  292. package/lib/tags/MultipleOf.d.ts +10 -7
  293. package/lib/tags/Pattern.d.mts +7 -4
  294. package/lib/tags/Pattern.d.ts +7 -4
  295. package/lib/tags/Sequence.d.mts +19 -17
  296. package/lib/tags/Sequence.d.ts +19 -17
  297. package/lib/tags/TagBase.d.mts +21 -28
  298. package/lib/tags/TagBase.d.ts +21 -28
  299. package/lib/tags/Type.d.mts +12 -11
  300. package/lib/tags/Type.d.ts +12 -11
  301. package/lib/tags/UniqueItems.d.mts +10 -9
  302. package/lib/tags/UniqueItems.d.ts +10 -9
  303. package/lib/tags/internal/FormatCheatSheet.d.mts +1 -3
  304. package/lib/tags/internal/FormatCheatSheet.d.ts +1 -3
  305. package/lib/tags/internal/FormatCheatSheet.js +1 -3
  306. package/lib/tags/internal/FormatCheatSheet.js.map +1 -1
  307. package/lib/tags/internal/FormatCheatSheet.mjs +1 -3
  308. package/lib/transformers/ITransformOptions.d.mts +27 -19
  309. package/lib/transformers/ITransformOptions.d.ts +27 -19
  310. package/lib/transformers/ImportTransformer.js +5 -10
  311. package/lib/transformers/ImportTransformer.js.map +1 -1
  312. package/lib/transformers/ImportTransformer.mjs +5 -10
  313. package/lib/transformers/NoTransformConfigurationError.js +1 -3
  314. package/lib/transformers/NoTransformConfigurationError.js.map +1 -1
  315. package/lib/transformers/NoTransformConfigurationError.mjs +1 -3
  316. package/lib/transformers/features/llm/LlmApplicationTransformer.js +1 -3
  317. package/lib/transformers/features/llm/LlmApplicationTransformer.js.map +1 -1
  318. package/lib/transformers/features/llm/LlmApplicationTransformer.mjs +1 -3
  319. package/lib/typings/Equal.d.mts +6 -6
  320. package/lib/typings/Equal.d.ts +6 -6
  321. package/package.json +121 -120
  322. package/src/AssertionGuard.ts +41 -39
  323. package/src/CamelCase.ts +75 -75
  324. package/src/IRandomGenerator.ts +337 -335
  325. package/src/IReadableURLSearchParams.ts +9 -9
  326. package/src/PascalCase.ts +71 -71
  327. package/src/Primitive.ts +90 -92
  328. package/src/Resolved.ts +72 -74
  329. package/src/SnakeCase.ts +127 -126
  330. package/src/TypeGuardError.ts +216 -179
  331. package/src/factories/MetadataCollection.ts +270 -278
  332. package/src/factories/MetadataCommentTagFactory.ts +632 -648
  333. package/src/factories/MetadataFactory.ts +402 -404
  334. package/src/factories/ProtobufFactory.ts +873 -875
  335. package/src/functional.ts +705 -740
  336. package/src/http.ts +972 -1040
  337. package/src/internal/_ProtobufReader.ts +188 -194
  338. package/src/internal/_ProtobufSizer.ts +137 -145
  339. package/src/internal/_ProtobufWriter.ts +135 -145
  340. package/src/internal/_jsonStringifyString.ts +42 -42
  341. package/src/json.ts +643 -696
  342. package/src/llm.ts +615 -540
  343. package/src/misc.ts +594 -651
  344. package/src/module.ts +889 -937
  345. package/src/notations.ts +751 -820
  346. package/src/programmers/FeatureProgrammer.ts +605 -627
  347. package/src/programmers/ImportProgrammer.ts +179 -185
  348. package/src/programmers/RandomProgrammer.ts +1195 -1190
  349. package/src/programmers/helpers/ProtobufWire.ts +34 -34
  350. package/src/programmers/internal/check_array_length.ts +43 -47
  351. package/src/programmers/internal/check_bigint.ts +46 -50
  352. package/src/programmers/internal/check_dynamic_key.ts +197 -201
  353. package/src/programmers/internal/check_dynamic_properties.ts +231 -237
  354. package/src/programmers/internal/check_everything.ts +21 -23
  355. package/src/programmers/internal/check_native.ts +23 -27
  356. package/src/programmers/internal/check_number.ts +108 -112
  357. package/src/programmers/internal/check_object.ts +72 -78
  358. package/src/programmers/internal/check_string.ts +46 -50
  359. package/src/programmers/internal/check_template.ts +46 -48
  360. package/src/programmers/internal/check_union_array_like.ts +331 -335
  361. package/src/programmers/internal/decode_union_object.ts +110 -116
  362. package/src/programmers/internal/feature_object_entries.ts +59 -61
  363. package/src/programmers/internal/json_schema_escaped.ts +78 -82
  364. package/src/programmers/internal/json_schema_object.ts +150 -158
  365. package/src/programmers/internal/json_schema_station.ts +2 -2
  366. package/src/programmers/internal/metadata_to_pattern.ts +40 -42
  367. package/src/programmers/internal/postfix_of_tuple.ts +3 -5
  368. package/src/programmers/internal/prune_object_properties.ts +69 -71
  369. package/src/programmers/internal/stringify_dynamic_properties.ts +158 -162
  370. package/src/programmers/internal/stringify_native.ts +5 -7
  371. package/src/programmers/internal/stringify_regular_properties.ts +77 -81
  372. package/src/programmers/internal/template_to_pattern.ts +21 -23
  373. package/src/programmers/internal/wrap_metadata_rest_tuple.ts +21 -23
  374. package/src/programmers/json/JsonStringifyProgrammer.ts +1124 -1124
  375. package/src/programmers/llm/LlmApplicationProgrammer.ts +10 -1
  376. package/src/programmers/llm/LlmSchemaProgrammer.ts +2 -7
  377. package/src/protobuf.ts +820 -861
  378. package/src/reflect.ts +46 -50
  379. package/src/schemas/json/IJsonApplication.ts +77 -77
  380. package/src/schemas/json/IJsonSchemaCollection.ts +212 -195
  381. package/src/schemas/json/IJsonSchemaUnit.ts +263 -250
  382. package/src/schemas/metadata/IMetadataTypeTag.ts +14 -16
  383. package/src/schemas/metadata/Metadata.ts +669 -687
  384. package/src/schemas/metadata/MetadataAliasType.ts +57 -63
  385. package/src/schemas/metadata/MetadataApplication.ts +40 -44
  386. package/src/schemas/metadata/MetadataArray.ts +47 -49
  387. package/src/schemas/metadata/MetadataArrayType.ts +51 -57
  388. package/src/schemas/metadata/MetadataAtomic.ts +85 -87
  389. package/src/schemas/metadata/MetadataEscaped.ts +45 -51
  390. package/src/schemas/metadata/MetadataFunction.ts +45 -49
  391. package/src/schemas/metadata/MetadataObject.ts +46 -48
  392. package/src/schemas/metadata/MetadataObjectType.ts +137 -149
  393. package/src/schemas/metadata/MetadataParameter.ts +52 -54
  394. package/src/schemas/metadata/MetadataProperty.ts +53 -59
  395. package/src/schemas/metadata/MetadataTemplate.ts +78 -80
  396. package/src/schemas/metadata/MetadataTuple.ts +28 -32
  397. package/src/schemas/metadata/MetadataTupleType.ts +61 -67
  398. package/src/tags/Constant.ts +47 -47
  399. package/src/tags/ContentMediaType.ts +27 -27
  400. package/src/tags/Default.ts +52 -52
  401. package/src/tags/Example.ts +56 -56
  402. package/src/tags/Examples.ts +56 -56
  403. package/src/tags/ExclusiveMaximum.ts +44 -41
  404. package/src/tags/ExclusiveMinimum.ts +44 -41
  405. package/src/tags/Format.ts +78 -74
  406. package/src/tags/JsonSchemaPlugin.ts +36 -34
  407. package/src/tags/MaxItems.ts +31 -31
  408. package/src/tags/MaxLength.ts +25 -24
  409. package/src/tags/Maximum.ts +39 -37
  410. package/src/tags/MinItems.ts +31 -31
  411. package/src/tags/MinLength.ts +25 -24
  412. package/src/tags/Minimum.ts +39 -37
  413. package/src/tags/MultipleOf.ts +42 -39
  414. package/src/tags/Pattern.ts +49 -46
  415. package/src/tags/Sequence.ts +37 -35
  416. package/src/tags/TagBase.ts +102 -109
  417. package/src/tags/Type.ts +64 -63
  418. package/src/tags/UniqueItems.ts +34 -33
  419. package/src/tags/internal/FormatCheatSheet.ts +71 -73
  420. package/src/transformers/ITransformOptions.ts +70 -62
  421. package/src/transformers/ImportTransformer.ts +253 -258
  422. package/src/transformers/NoTransformConfigurationError.ts +16 -18
  423. package/src/transformers/features/llm/LlmApplicationTransformer.ts +224 -226
  424. package/src/typings/Equal.ts +18 -18
@@ -1,195 +1,212 @@
1
- import type { OpenApi, OpenApiV3 } from "@samchon/openapi";
2
-
3
- /**
4
- * Collection of JSON schemas with OpenAPI specification support.
5
- *
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.
10
- *
11
- * The collection includes:
12
- * - Generated JSON schemas array containing schema definitions for the specified types
13
- * - Reusable components that can be referenced across different schemas
14
- * - Version-specific formatting that adheres to either OpenAPI v3.0 or v3.1 standards
15
- *
16
- * 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
- *
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.
25
- *
26
- * @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]>
31
- *
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
- * ```
36
- *
37
- * @author Jeongho Nam - https://github.com/samchon
38
- */
39
- export type IJsonSchemaCollection<
40
- Version extends "3.0" | "3.1" = "3.1",
41
- Types = unknown[],
42
- > = Version extends "3.0"
43
- ? IJsonSchemaCollection.IV3_0<Types>
44
- : IJsonSchemaCollection.IV3_1<Types>;
45
-
46
- export namespace IJsonSchemaCollection {
47
- /**
48
- * JSON Schema collection formatted for OpenAPI v3.0 specification.
49
- *
50
- * 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.
54
- *
55
- * Key characteristics of v3.0:
56
- * - Cannot express tuple types natively (falls back to array representations)
57
- * - Cannot express pattern properties in object schemas
58
- * - Uses nullable property instead of union with null type
59
- * - Limited JSON Schema Draft compatibility (based on Draft 4)
60
- *
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.
64
- */
65
- export interface IV3_0<Types = unknown[]> {
66
- /**
67
- * OpenAPI specification version identifier.
68
- *
69
- * Always set to "3.0" to indicate this collection uses OpenAPI v3.0
70
- * schema format and constraints.
71
- */
72
- version: "3.0";
73
-
74
- /**
75
- * Array of generated JSON schemas.
76
- *
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.
81
- *
82
- * Schema references typically use the format: `{ "$ref": "#/components/schemas/TypeName" }`
83
- */
84
- schemas: OpenApiV3.IJsonSchema[];
85
-
86
- /**
87
- * Reusable schema components for OpenAPI v3.0.
88
- *
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.
92
- *
93
- * 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
101
- */
102
- components: OpenApiV3.IComponents;
103
-
104
- /**
105
- * Type metadata for compile-time type tracking.
106
- *
107
- * This optional property stores the original TypeScript types that were
108
- * used to generate the JSON schemas. It's primarily used for type safety
109
- * and doesn't affect runtime behavior. The property is marked as optional
110
- * and undefined to prevent it from appearing in serialized JSON output.
111
- *
112
- * This enables:
113
- * - Compile-time type checking against the original types
114
- * - IDE intellisense and autocompletion
115
- * - Type-safe schema validation and usage
116
- */
117
- __types?: Types | undefined;
118
- }
119
-
120
- /**
121
- * JSON Schema collection formatted for OpenAPI v3.1 specification.
122
- *
123
- * This interface represents a collection of JSON schemas that comply with
124
- * 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.
127
- *
128
- * Key advantages of v3.1:
129
- * - Full tuple type support with prefixItems
130
- * - Pattern properties support for dynamic object keys
131
- * - Proper null type handling via union types
132
- * - Enhanced JSON Schema Draft 2020-12 compatibility
133
- * - Better const, enum, and validation support
134
- *
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.
138
- */
139
- export interface IV3_1<Types = unknown[]> {
140
- /**
141
- * OpenAPI specification version identifier.
142
- *
143
- * Always set to "3.1" to indicate this collection uses OpenAPI v3.1
144
- * schema format with enhanced JSON Schema compatibility.
145
- */
146
- version: "3.1";
147
-
148
- /**
149
- * Reusable schema components for OpenAPI v3.1.
150
- *
151
- * 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.
154
- *
155
- * Components include:
156
- * - schemas: Named type definitions with enhanced JSON Schema support
157
- * - securitySchemes: Authentication and authorization schemes
158
- *
159
- * The emended OpenAPI v3.1 format used here removes ambiguous expressions
160
- * and standardizes certain patterns for better tooling compatibility.
161
- */
162
- components: OpenApi.IComponents;
163
-
164
- /**
165
- * Array of generated JSON schemas with v3.1 enhancements.
166
- *
167
- * Contains JSON schema definitions that take advantage of OpenAPI v3.1's
168
- * enhanced capabilities. These schemas can express more complex TypeScript
169
- * types accurately, including:
170
- * - Tuple types using prefixItems
171
- * - Union types with proper null handling
172
- * - Complex nested object structures
173
- * - Pattern-based property definitions
174
- *
175
- * Each schema corresponds to one of the input TypeScript types and may
176
- * reference components defined in the {@link components} property.
177
- */
178
- schemas: OpenApi.IJsonSchema[];
179
-
180
- /**
181
- * Type metadata for compile-time type tracking.
182
- *
183
- * This optional property stores the original TypeScript types that were
184
- * used to generate the JSON schemas. It provides compile-time type safety
185
- * and enables better development experience without affecting runtime behavior.
186
- *
187
- * Benefits include:
188
- * - Strong typing connection to original TypeScript definitions
189
- * - Enhanced IDE support and autocompletion
190
- * - Compile-time validation of schema usage
191
- * - Type-safe integration with validation libraries
192
- */
193
- __types?: Types | undefined;
194
- }
195
- }
1
+ import type { OpenApi, OpenApiV3 } from "@samchon/openapi";
2
+
3
+ /**
4
+ * Collection of JSON schemas with OpenAPI specification support.
5
+ *
6
+ * `IJsonSchemaCollection` represents a comprehensive collection of JSON schemas
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.
11
+ *
12
+ * The collection includes:
13
+ *
14
+ * - Generated JSON schemas array containing schema definitions for the specified
15
+ * types
16
+ * - Reusable components that can be referenced across different schemas
17
+ * - Version-specific formatting that adheres to either OpenAPI v3.0 or v3.1
18
+ * standards
19
+ *
20
+ * Key differences between versions:
21
+ *
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
26
+ *
27
+ * @author Jeongho Nam - https://github.com/samchon
28
+ * @example
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]>
33
+ *
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
+ * ```;
38
+ *
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.
44
+ */
45
+ export type IJsonSchemaCollection<
46
+ Version extends "3.0" | "3.1" = "3.1",
47
+ Types = unknown[],
48
+ > = Version extends "3.0"
49
+ ? IJsonSchemaCollection.IV3_0<Types>
50
+ : IJsonSchemaCollection.IV3_1<Types>;
51
+
52
+ export namespace IJsonSchemaCollection {
53
+ /**
54
+ * JSON Schema collection formatted for OpenAPI v3.0 specification.
55
+ *
56
+ * This interface represents a collection of JSON schemas that comply with
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.
60
+ *
61
+ * Key characteristics of v3.0:
62
+ *
63
+ * - Cannot express tuple types natively (falls back to array representations)
64
+ * - Cannot express pattern properties in object schemas
65
+ * - Uses nullable property instead of union with null type
66
+ * - Limited JSON Schema Draft compatibility (based on Draft 4)
67
+ *
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.
71
+ */
72
+ export interface IV3_0<Types = unknown[]> {
73
+ /**
74
+ * OpenAPI specification version identifier.
75
+ *
76
+ * Always set to "3.0" to indicate this collection uses OpenAPI v3.0 schema
77
+ * format and constraints.
78
+ */
79
+ version: "3.0";
80
+
81
+ /**
82
+ * Array of generated JSON schemas.
83
+ *
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.
89
+ *
90
+ * Schema references typically use the format: `{ "$ref":
91
+ * "#/components/schemas/TypeName" }`
92
+ */
93
+ schemas: OpenApiV3.IJsonSchema[];
94
+
95
+ /**
96
+ * Reusable schema components for OpenAPI v3.0.
97
+ *
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.
102
+ *
103
+ * Components include:
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
112
+ */
113
+ components: OpenApiV3.IComponents;
114
+
115
+ /**
116
+ * Type metadata for compile-time type tracking.
117
+ *
118
+ * This optional property stores the original TypeScript types that were
119
+ * used to generate the JSON schemas. It's primarily used for type safety
120
+ * and doesn't affect runtime behavior. The property is marked as optional
121
+ * and undefined to prevent it from appearing in serialized JSON output.
122
+ *
123
+ * This enables:
124
+ *
125
+ * - Compile-time type checking against the original types
126
+ * - IDE intellisense and autocompletion
127
+ * - Type-safe schema validation and usage
128
+ */
129
+ __types?: Types | undefined;
130
+ }
131
+
132
+ /**
133
+ * JSON Schema collection formatted for OpenAPI v3.1 specification.
134
+ *
135
+ * This interface represents a collection of JSON schemas that comply with
136
+ * OpenAPI v3.1 standards, which provide enhanced JSON Schema compatibility
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.
139
+ *
140
+ * Key advantages of v3.1:
141
+ *
142
+ * - Full tuple type support with prefixItems
143
+ * - Pattern properties support for dynamic object keys
144
+ * - Proper null type handling via union types
145
+ * - Enhanced JSON Schema Draft 2020-12 compatibility
146
+ * - Better const, enum, and validation support
147
+ *
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.
151
+ */
152
+ export interface IV3_1<Types = unknown[]> {
153
+ /**
154
+ * OpenAPI specification version identifier.
155
+ *
156
+ * Always set to "3.1" to indicate this collection uses OpenAPI v3.1 schema
157
+ * format with enhanced JSON Schema compatibility.
158
+ */
159
+ version: "3.1";
160
+
161
+ /**
162
+ * Reusable schema components for OpenAPI v3.1.
163
+ *
164
+ * Contains reusable schema definitions and other components following the
165
+ * OpenAPI v3.1 specification. This structure is similar to v3.0 but
166
+ * supports enhanced JSON Schema features and improved type definitions.
167
+ *
168
+ * Components include:
169
+ *
170
+ * - Schemas: Named type definitions with enhanced JSON Schema support
171
+ * - SecuritySchemes: Authentication and authorization schemes
172
+ *
173
+ * The emended OpenAPI v3.1 format used here removes ambiguous expressions
174
+ * and standardizes certain patterns for better tooling compatibility.
175
+ */
176
+ components: OpenApi.IComponents;
177
+
178
+ /**
179
+ * Array of generated JSON schemas with v3.1 enhancements.
180
+ *
181
+ * Contains JSON schema definitions that take advantage of OpenAPI v3.1's
182
+ * enhanced capabilities. These schemas can express more complex TypeScript
183
+ * types accurately, including:
184
+ *
185
+ * - Tuple types using prefixItems
186
+ * - Union types with proper null handling
187
+ * - Complex nested object structures
188
+ * - Pattern-based property definitions
189
+ *
190
+ * Each schema corresponds to one of the input TypeScript types and may
191
+ * reference components defined in the {@link components} property.
192
+ */
193
+ schemas: OpenApi.IJsonSchema[];
194
+
195
+ /**
196
+ * Type metadata for compile-time type tracking.
197
+ *
198
+ * This optional property stores the original TypeScript types that were
199
+ * used to generate the JSON schemas. It provides compile-time type safety
200
+ * and enables better development experience without affecting runtime
201
+ * behavior.
202
+ *
203
+ * Benefits include:
204
+ *
205
+ * - Strong typing connection to original TypeScript definitions
206
+ * - Enhanced IDE support and autocompletion
207
+ * - Compile-time validation of schema usage
208
+ * - Type-safe integration with validation libraries
209
+ */
210
+ __types?: Types | undefined;
211
+ }
212
+ }