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,47 +1,47 @@
1
- import { TagBase } from "./TagBase";
2
-
3
- /**
4
- * Constant tag that adds title and description metadata to literal types.
5
- *
6
- * This tag enhances literal values with human-readable documentation without
7
- * changing their runtime type. It's particularly useful for enum-like values
8
- * where you want to provide context about what each value represents.
9
- *
10
- * The metadata appears in generated JSON Schema, making API documentation
11
- * more descriptive and helping developers understand the meaning of specific
12
- * constant values.
13
- *
14
- * @example
15
- * ```typescript
16
- * type Status =
17
- * | Constant<"active", { title: "Active", description: "User is currently active" }>
18
- * | Constant<"inactive", { title: "Inactive", description: "User account is disabled" }>
19
- * | Constant<"pending", { title: "Pending", description: "Awaiting verification" }>;
20
- * ```
21
- *
22
- * @example
23
- * ```typescript
24
- * interface Config {
25
- * debugLevel: Constant<0, { title: "Off", description: "No debug output" }>
26
- * | Constant<1, { title: "Basic", description: "Basic logging" }>
27
- * | Constant<2, { title: "Verbose", description: "Detailed debug info" }>;
28
- * }
29
- * ```
30
- *
31
- * @template Value The literal value (boolean, number, string, or bigint)
32
- * @template Content Metadata with optional title and description
33
- * @author Jeongho Nam - https://github.com/samchon
34
- */
35
- export type Constant<
36
- Value extends boolean | number | string | bigint,
37
- Content extends {
38
- title?: string | undefined;
39
- description?: string | undefined;
40
- },
41
- > = Value &
42
- TagBase<{
43
- target: "string" | "boolean" | "number" | "bigint";
44
- kind: "constant";
45
- value: undefined;
46
- schema: Content;
47
- }>;
1
+ import { TagBase } from "./TagBase";
2
+
3
+ /**
4
+ * Constant tag that adds title and description metadata to literal types.
5
+ *
6
+ * This tag enhances literal values with human-readable documentation without
7
+ * changing their runtime type. It's particularly useful for enum-like values
8
+ * where you want to provide context about what each value represents.
9
+ *
10
+ * The metadata appears in generated JSON Schema, making API documentation more
11
+ * descriptive and helping developers understand the meaning of specific
12
+ * constant values.
13
+ *
14
+ * @author Jeongho Nam - https://github.com/samchon
15
+ * @example
16
+ * ```typescript
17
+ * type Status =
18
+ * | Constant<"active", { title: "Active", description: "User is currently active" }>
19
+ * | Constant<"inactive", { title: "Inactive", description: "User account is disabled" }>
20
+ * | Constant<"pending", { title: "Pending", description: "Awaiting verification" }>;
21
+ * ```;
22
+ *
23
+ * @example
24
+ * ```typescript
25
+ * interface Config {
26
+ * debugLevel: Constant<0, { title: "Off", description: "No debug output" }>
27
+ * | Constant<1, { title: "Basic", description: "Basic logging" }>
28
+ * | Constant<2, { title: "Verbose", description: "Detailed debug info" }>;
29
+ * }
30
+ * ```;
31
+ *
32
+ * @template Value The literal value (boolean, number, string, or bigint)
33
+ * @template Content Metadata with optional title and description
34
+ */
35
+ export type Constant<
36
+ Value extends boolean | number | string | bigint,
37
+ Content extends {
38
+ title?: string | undefined;
39
+ description?: string | undefined;
40
+ },
41
+ > = Value &
42
+ TagBase<{
43
+ target: "string" | "boolean" | "number" | "bigint";
44
+ kind: "constant";
45
+ value: undefined;
46
+ schema: Content;
47
+ }>;
@@ -1,27 +1,27 @@
1
- import { TagBase } from "./TagBase";
2
-
3
- /**
4
- * String content media type constraint tag.
5
- *
6
- * Specifies the MIME type of string content for proper interpretation.
7
- * This tag serves as metadata to indicate how the string content should be
8
- * interpreted, but does not perform validation on the content itself.
9
- *
10
- * Examples:
11
- * type JsonData = string & ContentMediaType<"application/json">; // JSON string
12
- * type Base64Image = string & ContentMediaType<"image/png">; // Base64 PNG
13
- * type XmlContent = string & ContentMediaType<"application/xml">; // XML data
14
- *
15
- * Common MIME types: application/json, text/html, image/jpeg, image/png,
16
- * application/pdf, text/plain, application/xml, and many more.
17
- *
18
- * @author Jeongho Nam - https://github.com/samchon
19
- */
20
- export type ContentMediaType<Value extends string> = TagBase<{
21
- target: "string";
22
- kind: "contentMediaType";
23
- value: undefined;
24
- schema: {
25
- contentMediaType: Value;
26
- };
27
- }>;
1
+ import { TagBase } from "./TagBase";
2
+
3
+ /**
4
+ * String content media type constraint tag.
5
+ *
6
+ * Specifies the MIME type of string content for proper interpretation. This tag
7
+ * serves as metadata to indicate how the string content should be interpreted,
8
+ * but does not perform validation on the content itself.
9
+ *
10
+ * Examples: type JsonData = string & ContentMediaType<"application/json">; //
11
+ * JSON string type Base64Image = string & ContentMediaType<"image/png">; //
12
+ * Base64 PNG type XmlContent = string & ContentMediaType<"application/xml">; //
13
+ * XML data
14
+ *
15
+ * Common MIME types: application/json, text/html, image/jpeg, image/png,
16
+ * application/pdf, text/plain, application/xml, and many more.
17
+ *
18
+ * @author Jeongho Nam - https://github.com/samchon
19
+ */
20
+ export type ContentMediaType<Value extends string> = TagBase<{
21
+ target: "string";
22
+ kind: "contentMediaType";
23
+ value: undefined;
24
+ schema: {
25
+ contentMediaType: Value;
26
+ };
27
+ }>;
@@ -1,52 +1,52 @@
1
- import { TagBase } from "./TagBase";
2
-
3
- /**
4
- * Default value tag that specifies a default value for properties.
5
- *
6
- * When a property is not provided during validation, this tag instructs
7
- * typia to use the specified default value. This is useful for optional
8
- * properties that should have a specific fallback value.
9
- *
10
- * Supported types: boolean, bigint, number, and string primitives.
11
- * Note: Default values are applied during validation, not at compile time.
12
- *
13
- * @example
14
- * ```typescript
15
- * interface User {
16
- * name: string;
17
- * active: boolean & Default<true>; // defaults to true if not provided
18
- * retries: number & Default<3>; // defaults to 3 if not provided
19
- * }
20
- * ```
21
- *
22
- * @example
23
- * ```typescript
24
- * interface Config {
25
- * timeout: bigint & Default<5000n>; // defaults to 5000n
26
- * prefix: string & Default<"user_">; // defaults to "user_"
27
- * }
28
- * ```
29
- *
30
- * @template Value The default value (boolean, bigint, number, or string)
31
- * @author Jeongho Nam - https://github.com/samchon
32
- */
33
- export type Default<Value extends boolean | bigint | number | string> =
34
- TagBase<{
35
- target: Value extends boolean
36
- ? "boolean"
37
- : Value extends bigint
38
- ? "bigint"
39
- : Value extends number
40
- ? "number"
41
- : "string";
42
- kind: "default";
43
- value: Value;
44
- exclusive: true;
45
- schema: Value extends bigint
46
- ? { default: Numeric<Value> }
47
- : { default: Value };
48
- }>;
49
-
50
- type Numeric<T extends bigint> = `${T}` extends `${infer N extends number}`
51
- ? N
52
- : never;
1
+ import { TagBase } from "./TagBase";
2
+
3
+ /**
4
+ * Default value tag that specifies a default value for properties.
5
+ *
6
+ * When a property is not provided during validation, this tag instructs typia
7
+ * to use the specified default value. This is useful for optional properties
8
+ * that should have a specific fallback value.
9
+ *
10
+ * Supported types: boolean, bigint, number, and string primitives. Note:
11
+ * Default values are applied during validation, not at compile time.
12
+ *
13
+ * @author Jeongho Nam - https://github.com/samchon
14
+ * @example
15
+ * ```typescript
16
+ * interface User {
17
+ * name: string;
18
+ * active: boolean & Default<true>; // defaults to true if not provided
19
+ * retries: number & Default<3>; // defaults to 3 if not provided
20
+ * }
21
+ * ```;
22
+ *
23
+ * @example
24
+ * ```typescript
25
+ * interface Config {
26
+ * timeout: bigint & Default<5000n>; // defaults to 5000n
27
+ * prefix: string & Default<"user_">; // defaults to "user_"
28
+ * }
29
+ * ```;
30
+ *
31
+ * @template Value The default value (boolean, bigint, number, or string)
32
+ */
33
+ export type Default<Value extends boolean | bigint | number | string> =
34
+ TagBase<{
35
+ target: Value extends boolean
36
+ ? "boolean"
37
+ : Value extends bigint
38
+ ? "bigint"
39
+ : Value extends number
40
+ ? "number"
41
+ : "string";
42
+ kind: "default";
43
+ value: Value;
44
+ exclusive: true;
45
+ schema: Value extends bigint
46
+ ? { default: Numeric<Value> }
47
+ : { default: Value };
48
+ }>;
49
+
50
+ type Numeric<T extends bigint> = `${T}` extends `${infer N extends number}`
51
+ ? N
52
+ : never;
@@ -1,56 +1,56 @@
1
- import { TagBase } from "./TagBase";
2
-
3
- /**
4
- * Example value tag that provides a single example value for documentation.
5
- *
6
- * This tag adds an example value to your JSON Schema, which is useful for
7
- * API documentation, client code generation, and helping developers understand
8
- * expected data formats. The example doesn't affect runtime validation.
9
- *
10
- * Use Example for a single representative value. For multiple named examples,
11
- * use the Examples tag instead.
12
- *
13
- * @example
14
- * ```typescript
15
- * interface Product {
16
- * name: string & Example<"iPhone 15 Pro">;
17
- * price: number & Example<999.99>;
18
- * inStock: boolean & Example<true>;
19
- * }
20
- * ```
21
- *
22
- * @example
23
- * ```typescript
24
- * interface User {
25
- * profile: {
26
- * bio: string;
27
- * tags: string[];
28
- * } & Example<{ bio: "Software engineer", tags: ["typescript", "react"] }>;
29
- * }
30
- * ```
31
- *
32
- * @template Value The example value (primitives, objects, arrays, or null)
33
- * @author Jeongho Nam - https://github.com/samchon
34
- */
35
- export type Example<
36
- Value extends
37
- | boolean
38
- | bigint
39
- | number
40
- | string
41
- | object
42
- | Array<unknown>
43
- | null,
44
- > = TagBase<{
45
- target: "boolean" | "bigint" | "number" | "string" | "array" | "object";
46
- kind: "example";
47
- value: Value;
48
- exclusive: true;
49
- schema: Value extends bigint
50
- ? { example: Numeric<Value> }
51
- : { example: Value };
52
- }>;
53
-
54
- type Numeric<T extends bigint> = `${T}` extends `${infer N extends number}`
55
- ? N
56
- : never;
1
+ import { TagBase } from "./TagBase";
2
+
3
+ /**
4
+ * Example value tag that provides a single example value for documentation.
5
+ *
6
+ * This tag adds an example value to your JSON Schema, which is useful for API
7
+ * documentation, client code generation, and helping developers understand
8
+ * expected data formats. The example doesn't affect runtime validation.
9
+ *
10
+ * Use Example for a single representative value. For multiple named examples,
11
+ * use the Examples tag instead.
12
+ *
13
+ * @author Jeongho Nam - https://github.com/samchon
14
+ * @example
15
+ * ```typescript
16
+ * interface Product {
17
+ * name: string & Example<"iPhone 15 Pro">;
18
+ * price: number & Example<999.99>;
19
+ * inStock: boolean & Example<true>;
20
+ * }
21
+ * ```;
22
+ *
23
+ * @example
24
+ * ```typescript
25
+ * interface User {
26
+ * profile: {
27
+ * bio: string;
28
+ * tags: string[];
29
+ * } & Example<{ bio: "Software engineer", tags: ["typescript", "react"] }>;
30
+ * }
31
+ * ```;
32
+ *
33
+ * @template Value The example value (primitives, objects, arrays, or null)
34
+ */
35
+ export type Example<
36
+ Value extends
37
+ | boolean
38
+ | bigint
39
+ | number
40
+ | string
41
+ | object
42
+ | Array<unknown>
43
+ | null,
44
+ > = TagBase<{
45
+ target: "boolean" | "bigint" | "number" | "string" | "array" | "object";
46
+ kind: "example";
47
+ value: Value;
48
+ exclusive: true;
49
+ schema: Value extends bigint
50
+ ? { example: Numeric<Value> }
51
+ : { example: Value };
52
+ }>;
53
+
54
+ type Numeric<T extends bigint> = `${T}` extends `${infer N extends number}`
55
+ ? N
56
+ : never;
@@ -1,56 +1,56 @@
1
- import { TagBase } from "./TagBase";
2
-
3
- /**
4
- * Multiple examples tag that provides named example values for documentation.
5
- *
6
- * Unlike the Example tag which provides a single example, Examples allows you
7
- * to provide multiple labeled examples. This is particularly useful when you
8
- * want to show different scenarios or use cases for the same type.
9
- *
10
- * The examples are added to JSON Schema as an object where keys are descriptive
11
- * names and values are the example data. This helps in API documentation and
12
- * test case generation.
13
- *
14
- * @example
15
- * ```typescript
16
- * interface PaymentRequest {
17
- * amount: number & Examples<{
18
- * small: 10.50,
19
- * medium: 99.99,
20
- * large: 1000.00
21
- * }>;
22
- * }
23
- * ```
24
- *
25
- * @example
26
- * ```typescript
27
- * interface UserStatus {
28
- * state: string & Examples<{
29
- * active: "active",
30
- * inactive: "inactive",
31
- * suspended: "suspended"
32
- * }>;
33
- * profile: object & Examples<{
34
- * basic: { name: "John", age: 25 },
35
- * detailed: { name: "Jane", age: 30, bio: "Developer", verified: true }
36
- * }>;
37
- * }
38
- * ```
39
- *
40
- * @template Value A record object mapping example names to example values
41
- * @author Jeongho Nam - https://github.com/samchon
42
- */
43
- export type Examples<
44
- Value extends Record<
45
- string,
46
- boolean | bigint | number | string | object | Array<unknown> | null
47
- >,
48
- > = TagBase<{
49
- target: "boolean" | "bigint" | "number" | "string" | "array" | "object";
50
- kind: "examples";
51
- value: Value;
52
- exclusive: true;
53
- schema: {
54
- examples: Value;
55
- };
56
- }>;
1
+ import { TagBase } from "./TagBase";
2
+
3
+ /**
4
+ * Multiple examples tag that provides named example values for documentation.
5
+ *
6
+ * Unlike the Example tag which provides a single example, Examples allows you
7
+ * to provide multiple labeled examples. This is particularly useful when you
8
+ * want to show different scenarios or use cases for the same type.
9
+ *
10
+ * The examples are added to JSON Schema as an object where keys are descriptive
11
+ * names and values are the example data. This helps in API documentation and
12
+ * test case generation.
13
+ *
14
+ * @author Jeongho Nam - https://github.com/samchon
15
+ * @example
16
+ * ```typescript
17
+ * interface PaymentRequest {
18
+ * amount: number & Examples<{
19
+ * small: 10.50,
20
+ * medium: 99.99,
21
+ * large: 1000.00
22
+ * }>;
23
+ * }
24
+ * ```;
25
+ *
26
+ * @example
27
+ * ```typescript
28
+ * interface UserStatus {
29
+ * state: string & Examples<{
30
+ * active: "active",
31
+ * inactive: "inactive",
32
+ * suspended: "suspended"
33
+ * }>;
34
+ * profile: object & Examples<{
35
+ * basic: { name: "John", age: 25 },
36
+ * detailed: { name: "Jane", age: 30, bio: "Developer", verified: true }
37
+ * }>;
38
+ * }
39
+ * ```;
40
+ *
41
+ * @template Value A record object mapping example names to example values
42
+ */
43
+ export type Examples<
44
+ Value extends Record<
45
+ string,
46
+ boolean | bigint | number | string | object | Array<unknown> | null
47
+ >,
48
+ > = TagBase<{
49
+ target: "boolean" | "bigint" | "number" | "string" | "array" | "object";
50
+ kind: "examples";
51
+ value: Value;
52
+ exclusive: true;
53
+ schema: {
54
+ examples: Value;
55
+ };
56
+ }>;
@@ -1,41 +1,44 @@
1
- import { TagBase } from "./TagBase";
2
-
3
- /**
4
- * Exclusive maximum value constraint tag.
5
- *
6
- * Enforces that a numeric value must be strictly less than the specified maximum (not equal).
7
- * This constraint validates that the input value satisfies: input < maximum.
8
- *
9
- * Example usage:
10
- * ```typescript
11
- * type Discount = number & tags.ExclusiveMaximum<100>; // Must be < 100
12
- * type ByteValue = bigint & tags.ExclusiveMaximum<256n>; // Must be < 256
13
- * ```
14
- *
15
- * Note: This tag is mutually exclusive with Maximum. You cannot apply both
16
- * ExclusiveMaximum and Maximum constraints to the same property.
17
- *
18
- * @template Value - The exclusive maximum value constraint (number or bigint literal)
19
- * @author Jeongho Nam - https://github.com/samchon
20
- */
21
- export type ExclusiveMaximum<Value extends number | bigint> = TagBase<{
22
- target: Value extends bigint ? "bigint" : "number";
23
- kind: "exclusiveMaximum";
24
- value: Value;
25
- validate: `$input < ${Cast<Value>}`;
26
- exclusive: ["exclusiveMaximum", "maximum"];
27
- schema: Value extends bigint
28
- ? {
29
- exclusiveMaximum: Numeric<Value>;
30
- }
31
- : {
32
- exclusiveMaximum: Value;
33
- };
34
- }>;
35
-
36
- type Cast<Value extends number | bigint> = Value extends number
37
- ? Value
38
- : `BigInt(${Value})`;
39
- type Numeric<T extends bigint> = `${T}` extends `${infer N extends number}`
40
- ? N
41
- : never;
1
+ import { TagBase } from "./TagBase";
2
+
3
+ /**
4
+ * Exclusive maximum value constraint tag.
5
+ *
6
+ * Enforces that a numeric value must be strictly less than the specified
7
+ * maximum (not equal). This constraint validates that the input value
8
+ * satisfies: input < maximum.
9
+ *
10
+ * Example usage:
11
+ *
12
+ * ```typescript
13
+ * type Discount = number & tags.ExclusiveMaximum<100>; // Must be < 100
14
+ * type ByteValue = bigint & tags.ExclusiveMaximum<256n>; // Must be < 256
15
+ * ```
16
+ *
17
+ * Note: This tag is mutually exclusive with Maximum. You cannot apply both
18
+ * ExclusiveMaximum and Maximum constraints to the same property.
19
+ *
20
+ * @author Jeongho Nam - https://github.com/samchon
21
+ * @template Value - The exclusive maximum value constraint (number or bigint
22
+ * literal)
23
+ */
24
+ export type ExclusiveMaximum<Value extends number | bigint> = TagBase<{
25
+ target: Value extends bigint ? "bigint" : "number";
26
+ kind: "exclusiveMaximum";
27
+ value: Value;
28
+ validate: `$input < ${Cast<Value>}`;
29
+ exclusive: ["exclusiveMaximum", "maximum"];
30
+ schema: Value extends bigint
31
+ ? {
32
+ exclusiveMaximum: Numeric<Value>;
33
+ }
34
+ : {
35
+ exclusiveMaximum: Value;
36
+ };
37
+ }>;
38
+
39
+ type Cast<Value extends number | bigint> = Value extends number
40
+ ? Value
41
+ : `BigInt(${Value})`;
42
+ type Numeric<T extends bigint> = `${T}` extends `${infer N extends number}`
43
+ ? N
44
+ : never;