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,37 +1,39 @@
1
- import { TagBase } from "./TagBase";
2
-
3
- /**
4
- * Minimum value constraint tag.
5
- *
6
- * Enforces that a numeric value must be greater than or equal to the specified minimum.
7
- * This constraint validates that the input value satisfies: input >= minimum.
8
- *
9
- * Example usage:
10
- * ```typescript
11
- * type Age = number & tags.Minimum<0>; // Age must be 0 or greater
12
- * type Balance = bigint & tags.Minimum<0n>; // BigInt balance must be non-negative
13
- * ```
14
- *
15
- * Note: This tag is mutually exclusive with ExclusiveMinimum. You cannot apply both
16
- * Minimum and ExclusiveMinimum constraints to the same property.
17
- *
18
- * @template Value - The minimum value constraint (number or bigint literal)
19
- * @author Jeongho Nam - https://github.com/samchon
20
- */
21
- export type Minimum<Value extends number | bigint> = TagBase<{
22
- target: Value extends bigint ? "bigint" : "number";
23
- kind: "minimum";
24
- value: Value;
25
- validate: `${Cast<Value>} <= $input`;
26
- exclusive: ["minimum", "exclusiveMinimum"];
27
- schema: Value extends bigint
28
- ? { minimum: Numeric<Value> }
29
- : { minimum: Value };
30
- }>;
31
-
32
- type Cast<Value extends number | bigint> = Value extends number
33
- ? Value
34
- : `BigInt(${Value})`;
35
- type Numeric<T extends bigint> = `${T}` extends `${infer N extends number}`
36
- ? N
37
- : never;
1
+ import { TagBase } from "./TagBase";
2
+
3
+ /**
4
+ * Minimum value constraint tag.
5
+ *
6
+ * Enforces that a numeric value must be greater than or equal to the specified
7
+ * minimum. This constraint validates that the input value satisfies: input >=
8
+ * minimum.
9
+ *
10
+ * Example usage:
11
+ *
12
+ * ```typescript
13
+ * type Age = number & tags.Minimum<0>; // Age must be 0 or greater
14
+ * type Balance = bigint & tags.Minimum<0n>; // BigInt balance must be non-negative
15
+ * ```
16
+ *
17
+ * Note: This tag is mutually exclusive with ExclusiveMinimum. You cannot apply
18
+ * both Minimum and ExclusiveMinimum constraints to the same property.
19
+ *
20
+ * @author Jeongho Nam - https://github.com/samchon
21
+ * @template Value - The minimum value constraint (number or bigint literal)
22
+ */
23
+ export type Minimum<Value extends number | bigint> = TagBase<{
24
+ target: Value extends bigint ? "bigint" : "number";
25
+ kind: "minimum";
26
+ value: Value;
27
+ validate: `${Cast<Value>} <= $input`;
28
+ exclusive: ["minimum", "exclusiveMinimum"];
29
+ schema: Value extends bigint
30
+ ? { minimum: Numeric<Value> }
31
+ : { minimum: Value };
32
+ }>;
33
+
34
+ type Cast<Value extends number | bigint> = Value extends number
35
+ ? Value
36
+ : `BigInt(${Value})`;
37
+ type Numeric<T extends bigint> = `${T}` extends `${infer N extends number}`
38
+ ? N
39
+ : never;
@@ -1,39 +1,42 @@
1
- import { TagBase } from "./TagBase";
2
-
3
- /**
4
- * Multiple of constraint tag.
5
- *
6
- * Enforces that a numeric value must be an exact multiple of the specified divisor.
7
- * This constraint validates that the input value satisfies: input % divisor === 0.
8
- *
9
- * Example usage:
10
- * ```typescript
11
- * type EvenNumber = number & tags.MultipleOf<2>; // Must be even (2, 4, 6, ...)
12
- * type DollarAmount = number & tags.MultipleOf<0.01>; // Must be in cents
13
- * ```
14
- *
15
- * Common use cases include validating even/odd numbers, currency amounts,
16
- * time intervals, or any value that must align to specific increments.
17
- *
18
- * @template Value - The divisor value that input must be a multiple of (number or bigint literal)
19
- * @author Jeongho Nam - https://github.com/samchon
20
- */
21
- export type MultipleOf<Value extends number | bigint> = TagBase<{
22
- target: Value extends bigint ? "bigint" : "number";
23
- kind: "multipleOf";
24
- value: Value;
25
- validate: `$input % ${Cast<Value>} === ${Value extends bigint
26
- ? Cast<0n>
27
- : 0}`;
28
- exclusive: true;
29
- schema: Value extends bigint
30
- ? { multipleOf: Numeric<Value> }
31
- : { multipleOf: Value };
32
- }>;
33
-
34
- type Cast<Value extends number | bigint> = Value extends number
35
- ? Value
36
- : `BigInt(${Value})`;
37
- type Numeric<T extends bigint> = `${T}` extends `${infer N extends number}`
38
- ? N
39
- : never;
1
+ import { TagBase } from "./TagBase";
2
+
3
+ /**
4
+ * Multiple of constraint tag.
5
+ *
6
+ * Enforces that a numeric value must be an exact multiple of the specified
7
+ * divisor. This constraint validates that the input value satisfies: input %
8
+ * divisor === 0.
9
+ *
10
+ * Example usage:
11
+ *
12
+ * ```typescript
13
+ * type EvenNumber = number & tags.MultipleOf<2>; // Must be even (2, 4, 6, ...)
14
+ * type DollarAmount = number & tags.MultipleOf<0.01>; // Must be in cents
15
+ * ```
16
+ *
17
+ * Common use cases include validating even/odd numbers, currency amounts, time
18
+ * intervals, or any value that must align to specific increments.
19
+ *
20
+ * @author Jeongho Nam - https://github.com/samchon
21
+ * @template Value - The divisor value that input must be a multiple of (number
22
+ * or bigint literal)
23
+ */
24
+ export type MultipleOf<Value extends number | bigint> = TagBase<{
25
+ target: Value extends bigint ? "bigint" : "number";
26
+ kind: "multipleOf";
27
+ value: Value;
28
+ validate: `$input % ${Cast<Value>} === ${Value extends bigint
29
+ ? Cast<0n>
30
+ : 0}`;
31
+ exclusive: true;
32
+ schema: Value extends bigint
33
+ ? { multipleOf: Numeric<Value> }
34
+ : { multipleOf: Value };
35
+ }>;
36
+
37
+ type Cast<Value extends number | bigint> = Value extends number
38
+ ? Value
39
+ : `BigInt(${Value})`;
40
+ type Numeric<T extends bigint> = `${T}` extends `${infer N extends number}`
41
+ ? N
42
+ : never;
@@ -1,46 +1,49 @@
1
- import { TagBase } from "./TagBase";
2
-
3
- /**
4
- * String pattern (regular expression) constraint tag.
5
- *
6
- * Validates that a string matches a specified regular expression pattern.
7
- * Use this tag to enforce custom string formats through regex validation.
8
- *
9
- * Examples:
10
- * type PhoneNumber = string & Pattern<"^\\d{3}-\\d{3}-\\d{4}$">; // 123-456-7890
11
- * type HexColor = string & Pattern<"^#[0-9A-Fa-f]{6}$">; // #FF5733
12
- *
13
- * Note: This tag is mutually exclusive with the Format tag. You cannot use both
14
- * Pattern and Format on the same type.
15
- *
16
- * @author Jeongho Nam - https://github.com/samchon
17
- */
18
- export type Pattern<Value extends string> = TagBase<{
19
- target: "string";
20
- kind: "pattern";
21
- value: Value;
22
- validate: `RegExp("${Serialize<Value>}").test($input)`;
23
- exclusive: ["format", "pattern"];
24
- schema: {
25
- pattern: Value;
26
- };
27
- }>;
28
-
29
- /// reference: https://github.com/type-challenges/type-challenges/issues/22394#issuecomment-1397158205
30
- type Serialize<T extends string, Output extends string = ""> = string extends T
31
- ? never
32
- : T extends ""
33
- ? Output
34
- : T extends `${infer P}${infer R}`
35
- ? Serialize<R, `${Output}${P extends keyof Escaper ? Escaper[P] : P}`>
36
- : never;
37
-
38
- type Escaper = {
39
- '"': '\\"';
40
- "\\": "\\\\";
41
- "\b": "\\b";
42
- "\f": "\\f";
43
- "\n": "\\n";
44
- "\r": "\\r";
45
- "\t": "\\t";
46
- };
1
+ import { TagBase } from "./TagBase";
2
+
3
+ /**
4
+ * String pattern (regular expression) constraint tag.
5
+ *
6
+ * Validates that a string matches a specified regular expression pattern. Use
7
+ * this tag to enforce custom string formats through regex validation.
8
+ *
9
+ * Examples:
10
+ *
11
+ * ```ts
12
+ * type PhoneNumber = string & Pattern<"^\d{3}-\d{3}-\d{4}$">; // 123-456-7890
13
+ * type HexColor = string & Pattern<"^#[0-9A-Fa-f]{6}$">; // #FF5733
14
+ * ```
15
+ *
16
+ * Note: This tag is mutually exclusive with the Format tag. You cannot use both
17
+ * Pattern and Format on the same type.
18
+ *
19
+ * @author Jeongho Nam - https://github.com/samchon
20
+ */
21
+ export type Pattern<Value extends string> = TagBase<{
22
+ target: "string";
23
+ kind: "pattern";
24
+ value: Value;
25
+ validate: `RegExp("${Serialize<Value>}").test($input)`;
26
+ exclusive: ["format", "pattern"];
27
+ schema: {
28
+ pattern: Value;
29
+ };
30
+ }>;
31
+
32
+ /// reference: https://github.com/type-challenges/type-challenges/issues/22394#issuecomment-1397158205
33
+ type Serialize<T extends string, Output extends string = ""> = string extends T
34
+ ? never
35
+ : T extends ""
36
+ ? Output
37
+ : T extends `${infer P}${infer R}`
38
+ ? Serialize<R, `${Output}${P extends keyof Escaper ? Escaper[P] : P}`>
39
+ : never;
40
+
41
+ type Escaper = {
42
+ '"': '\\"';
43
+ "\\": "\\\\";
44
+ "\b": "\\b";
45
+ "\f": "\\f";
46
+ "\n": "\\n";
47
+ "\r": "\\r";
48
+ "\t": "\\t";
49
+ };
@@ -1,35 +1,37 @@
1
- import { TagBase } from "./TagBase";
2
-
3
- /**
4
- * Assigns unique field numbers for Protocol Buffer serialization.
5
- *
6
- * In Protocol Buffer encoding, each field in a message must have a unique numeric identifier.
7
- * The Sequence tag assigns these field numbers to TypeScript properties, enabling proper
8
- * Protocol Buffer serialization and deserialization. Field numbers 1-15 require only one
9
- * byte to encode, making them ideal for frequently used fields. Numbers 19000-19999 are
10
- * reserved by the Protocol Buffer specification and should not be used.
11
- *
12
- * @example
13
- * ```typescript
14
- * interface User {
15
- * id: string & Sequence<1>; // Most frequent field uses 1
16
- * email: string & Sequence<2>; // Common fields use low numbers
17
- * createdAt: number & Sequence<3>;
18
- * metadata?: object & Sequence<10>; // Optional fields work too
19
- * }
20
- *
21
- * // Generate Protocol Buffer message
22
- * const message = typia.protobuf.message<User>();
23
- * ```
24
- *
25
- * @template N - Field number (positive integer from 1 to 536,870,911, excluding 19000-19999)
26
- * @author Jeongho Nam - https://github.com/samchon
27
- */
28
- export type Sequence<N extends number> = TagBase<{
29
- target: "boolean" | "bigint" | "number" | "string" | "array" | "object";
30
- kind: "sequence";
31
- value: N;
32
- schema: {
33
- "x-protobuf-sequence": N;
34
- };
35
- }>;
1
+ import { TagBase } from "./TagBase";
2
+
3
+ /**
4
+ * Assigns unique field numbers for Protocol Buffer serialization.
5
+ *
6
+ * In Protocol Buffer encoding, each field in a message must have a unique
7
+ * numeric identifier. The Sequence tag assigns these field numbers to
8
+ * TypeScript properties, enabling proper Protocol Buffer serialization and
9
+ * deserialization. Field numbers 1-15 require only one byte to encode, making
10
+ * them ideal for frequently used fields. Numbers 19000-19999 are reserved by
11
+ * the Protocol Buffer specification and should not be used.
12
+ *
13
+ * @author Jeongho Nam - https://github.com/samchon
14
+ * @example
15
+ * ```typescript
16
+ * interface User {
17
+ * id: string & Sequence<1>; // Most frequent field uses 1
18
+ * email: string & Sequence<2>; // Common fields use low numbers
19
+ * createdAt: number & Sequence<3>;
20
+ * metadata?: object & Sequence<10>; // Optional fields work too
21
+ * }
22
+ *
23
+ * // Generate Protocol Buffer message
24
+ * const message = typia.protobuf.message<User>();
25
+ * ```
26
+ *
27
+ * @template N - Field number (positive integer from 1 to 536,870,911, excluding
28
+ * 19000-19999)
29
+ */
30
+ export type Sequence<N extends number> = TagBase<{
31
+ target: "boolean" | "bigint" | "number" | "string" | "array" | "object";
32
+ kind: "sequence";
33
+ value: N;
34
+ schema: {
35
+ "x-protobuf-sequence": N;
36
+ };
37
+ }>;
@@ -1,109 +1,102 @@
1
- /**
2
- * Base type for all validation tags in typia.
3
- *
4
- * TagBase provides the foundation for all typia's validation tags. It attaches
5
- * metadata to TypeScript types that typia's transformer processes at compile-time
6
- * to generate optimized runtime validation code.
7
- *
8
- * @template Props - Tag properties that define validation behavior
9
- *
10
- * @example
11
- * ```typescript
12
- * // Custom tag example
13
- * type MyCustomTag<Value extends number> = TagBase<{
14
- * target: "number";
15
- * kind: "MyCustom";
16
- * value: Value;
17
- * validate: `$input === ${Value}`;
18
- * }>;
19
- * ```
20
- *
21
- * @author Jeongho Nam - https://github.com/samchon
22
- */
23
- export type TagBase<
24
- Props extends TagBase.IProps<any, any, any, any, any, any>,
25
- > = {
26
- /**
27
- * This is a dummy property for compilation.
28
- *
29
- * It does not mean anything in runtime.
30
- */
31
- "typia.tag"?: Props;
32
- };
33
- export namespace TagBase {
34
- /**
35
- * Properties interface for validation tags.
36
- *
37
- * @author Jeongho Nam - https://github.com/samchon
38
- */
39
- export interface IProps<
40
- Target extends
41
- | "boolean"
42
- | "bigint"
43
- | "number"
44
- | "string"
45
- | "array"
46
- | "object",
47
- Kind extends string,
48
- Value extends boolean | bigint | number | string | undefined,
49
- Validate extends
50
- | string
51
- | {
52
- [key in Target]?: string;
53
- },
54
- Exclusive extends boolean | string[],
55
- Schema extends object | undefined,
56
- > {
57
- /**
58
- * Target type.
59
- *
60
- * If user tries to adapt this tag to a different type, it would be a compile
61
- * error.
62
- *
63
- * For example, you've configured target type as `string`, but user adapted it
64
- * onto a `number` type (`number & YourCustomTag<Value>`), then it would be
65
- * blocked by TypeScript compiler.
66
- */
67
- target: Target;
68
-
69
- /**
70
- * What kind of tag is this?
71
- */
72
- kind: Kind;
73
-
74
- /**
75
- * Value to be configured by user.
76
- */
77
- value: Value;
78
-
79
- /**
80
- * Validation script.
81
- *
82
- * This script would be inserted into the generated validation function.
83
- * In here script, target variable name must be `$input`. The variable name
84
- * `$input` would be transformed to the suitable when compilation.
85
- *
86
- * Also, If you've take a mistake on this script, compile error would be
87
- * occurred. So, define it with confidence. Compiler will block all your
88
- * mistakes.
89
- */
90
- validate?: Validate;
91
-
92
- /**
93
- * Exclusive option.
94
- *
95
- * If this property configured as `true`, same {@link kind} tag cannot be
96
- * duplicated in the target type. Otherwise, if you've configured this
97
- * property as string array, all of the {@link kind} value assigned
98
- * tags cannot be compatible in the target type.
99
- *
100
- * @default false
101
- */
102
- exclusive?: Exclusive | string[];
103
-
104
- /**
105
- * Additional schema info assigned to the {@link IJsonSchema} object.
106
- */
107
- schema?: Schema;
108
- }
109
- }
1
+ /**
2
+ * Base type for all validation tags in typia.
3
+ *
4
+ * TagBase provides the foundation for all typia's validation tags. It attaches
5
+ * metadata to TypeScript types that typia's transformer processes at
6
+ * compile-time to generate optimized runtime validation code.
7
+ *
8
+ * @author Jeongho Nam - https://github.com/samchon
9
+ * @example
10
+ * ```typescript
11
+ * // Custom tag example
12
+ * type MyCustomTag<Value extends number> = TagBase<{
13
+ * target: "number";
14
+ * kind: "MyCustom";
15
+ * value: Value;
16
+ * validate: `$input === ${Value}`;
17
+ * }>;
18
+ * ```
19
+ *
20
+ * @template Props - Tag properties that define validation behavior
21
+ */
22
+ export type TagBase<
23
+ Props extends TagBase.IProps<any, any, any, any, any, any>,
24
+ > = {
25
+ /**
26
+ * This is a dummy property for compilation.
27
+ *
28
+ * It does not mean anything in runtime.
29
+ */
30
+ "typia.tag"?: Props;
31
+ };
32
+ export namespace TagBase {
33
+ /**
34
+ * Properties interface for validation tags.
35
+ *
36
+ * @author Jeongho Nam - https://github.com/samchon
37
+ */
38
+ export interface IProps<
39
+ Target extends
40
+ | "boolean"
41
+ | "bigint"
42
+ | "number"
43
+ | "string"
44
+ | "array"
45
+ | "object",
46
+ Kind extends string,
47
+ Value extends boolean | bigint | number | string | undefined,
48
+ Validate extends
49
+ | string
50
+ | {
51
+ [key in Target]?: string;
52
+ },
53
+ Exclusive extends boolean | string[],
54
+ Schema extends object | undefined,
55
+ > {
56
+ /**
57
+ * Target type.
58
+ *
59
+ * If user tries to adapt this tag to a different type, it would be a
60
+ * compile error.
61
+ *
62
+ * For example, you've configured target type as `string`, but user adapted
63
+ * it onto a `number` type (`number & YourCustomTag<Value>`), then it would
64
+ * be blocked by TypeScript compiler.
65
+ */
66
+ target: Target;
67
+
68
+ /** What kind of tag is this? */
69
+ kind: Kind;
70
+
71
+ /** Value to be configured by user. */
72
+ value: Value;
73
+
74
+ /**
75
+ * Validation script.
76
+ *
77
+ * This script would be inserted into the generated validation function. In
78
+ * here script, target variable name must be `$input`. The variable name
79
+ * `$input` would be transformed to the suitable when compilation.
80
+ *
81
+ * Also, If you've take a mistake on this script, compile error would be
82
+ * occurred. So, define it with confidence. Compiler will block all your
83
+ * mistakes.
84
+ */
85
+ validate?: Validate;
86
+
87
+ /**
88
+ * Exclusive option.
89
+ *
90
+ * If this property configured as `true`, same {@link kind} tag cannot be
91
+ * duplicated in the target type. Otherwise, if you've configured this
92
+ * property as string array, all of the {@link kind} value assigned tags
93
+ * cannot be compatible in the target type.
94
+ *
95
+ * @default false
96
+ */
97
+ exclusive?: Exclusive | string[];
98
+
99
+ /** Additional schema info assigned to the {@link IJsonSchema} object. */
100
+ schema?: Schema;
101
+ }
102
+ }