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,335 +1,337 @@
1
- import { OpenApi } from "@samchon/openapi";
2
-
3
- /**
4
- * Interface for generating random values for various data types.
5
- *
6
- * `IRandomGenerator` defines the contract for generating random values
7
- * that can be used by typia for creating mock data, testing scenarios,
8
- * and random value generation based on JSON schema constraints.
9
- *
10
- * This interface supports generating random values for:
11
- * - Basic types (boolean, number, integer, bigint, string, array)
12
- * - String format patterns (email, URL, UUID, etc.)
13
- * - Date and time formats
14
- * - Various address and identifier formats
15
- *
16
- * @example
17
- * ```typescript
18
- * const generator: IRandomGenerator = {
19
- * boolean: () => Math.random() > 0.5,
20
- * number: (schema) => Math.random() * (schema.maximum ?? 100),
21
- * string: (schema) => "example-string",
22
- * email: () => "test@example.com",
23
- * // ... implement other methods
24
- * };
25
- * ```
26
- *
27
- * @author Jeongho Nam - https://github.com/samchon
28
- */
29
- export interface IRandomGenerator {
30
- // REGULAR DATA TYPES
31
-
32
- /**
33
- * Generates a random boolean value.
34
- *
35
- * @returns Random boolean value or undefined
36
- */
37
- boolean(): boolean | undefined;
38
-
39
- /**
40
- * Generates a random number based on JSON schema constraints.
41
- *
42
- * @param schema JSON schema with number constraints (min, max, etc.)
43
- * @returns Random number within the specified constraints
44
- */
45
- number(schema: OpenApi.IJsonSchema.INumber): number;
46
-
47
- /**
48
- * Generates a random integer based on JSON schema constraints.
49
- *
50
- * @param schema JSON schema with integer constraints (min, max, etc.)
51
- * @returns Random integer within the specified constraints
52
- */
53
- integer(schema: OpenApi.IJsonSchema.IInteger): number;
54
-
55
- /**
56
- * Generates a random bigint based on JSON schema constraints.
57
- *
58
- * @param schema JSON schema with integer constraints (min, max, etc.)
59
- * @returns Random bigint within the specified constraints
60
- */
61
- bigint(schema: OpenApi.IJsonSchema.IInteger): bigint;
62
-
63
- /**
64
- * Generates a random string based on JSON schema constraints.
65
- *
66
- * @param schema JSON schema with string constraints (minLength, maxLength, pattern, etc.)
67
- * @returns Random string matching the specified constraints
68
- */
69
- string(schema: OpenApi.IJsonSchema.IString): string;
70
-
71
- /**
72
- * Generates a random array with elements created by the provided generator function.
73
- *
74
- * @param schema Array schema with element generator function
75
- * @returns Random array with generated elements
76
- */
77
- array<T>(
78
- schema: Omit<OpenApi.IJsonSchema.IArray, "items"> & {
79
- element: (index: number, count: number) => T;
80
- },
81
- ): T[];
82
-
83
- /**
84
- * Generates a random string matching the given regular expression pattern.
85
- *
86
- * @param regex Regular expression pattern to match
87
- * @returns Random string matching the pattern
88
- */
89
- pattern(regex: RegExp): string;
90
-
91
- //----
92
- // STRING FORMATS
93
- //----
94
-
95
- // SPECIAL CHARACTER FORMATS
96
-
97
- /**
98
- * Generates a random base64-encoded byte string.
99
- *
100
- * @returns Random base64 string
101
- */
102
- byte(): string;
103
-
104
- /**
105
- * Generates a random password string.
106
- *
107
- * @returns Random password
108
- */
109
- password(): string;
110
-
111
- /**
112
- * Generates a random regular expression pattern string.
113
- *
114
- * @returns Random regex pattern
115
- */
116
- regex(): string;
117
-
118
- /**
119
- * Generates a random UUID (Universally Unique Identifier).
120
- *
121
- * @returns Random UUID string in standard format
122
- */
123
- uuid(): string;
124
-
125
- // ADDRESS AND IDENTIFIER FORMATS
126
-
127
- /**
128
- * Generates a random email address.
129
- *
130
- * @returns Random email address
131
- */
132
- email(): string;
133
-
134
- /**
135
- * Generates a random hostname.
136
- *
137
- * @returns Random hostname
138
- */
139
- hostname(): string;
140
-
141
- /**
142
- * Generates a random internationalized email address.
143
- *
144
- * @returns Random IDN email address
145
- */
146
- idnEmail(): string;
147
-
148
- /**
149
- * Generates a random internationalized hostname.
150
- *
151
- * @returns Random IDN hostname
152
- */
153
- idnHostname(): string;
154
-
155
- /**
156
- * Generates a random IRI (Internationalized Resource Identifier).
157
- *
158
- * @returns Random IRI
159
- */
160
- iri(): string;
161
-
162
- /**
163
- * Generates a random IRI reference.
164
- *
165
- * @returns Random IRI reference
166
- */
167
- iriReference(): string;
168
-
169
- /**
170
- * Generates a random IPv4 address.
171
- *
172
- * @returns Random IPv4 address
173
- */
174
- ipv4(): string;
175
-
176
- /**
177
- * Generates a random IPv6 address.
178
- *
179
- * @returns Random IPv6 address
180
- */
181
- ipv6(): string;
182
-
183
- /**
184
- * Generates a random URI (Uniform Resource Identifier).
185
- *
186
- * @returns Random URI
187
- */
188
- uri(): string;
189
-
190
- /**
191
- * Generates a random URI reference.
192
- *
193
- * @returns Random URI reference
194
- */
195
- uriReference(): string;
196
-
197
- /**
198
- * Generates a random URI template.
199
- *
200
- * @returns Random URI template
201
- */
202
- uriTemplate(): string;
203
-
204
- /**
205
- * Generates a random URL (Uniform Resource Locator).
206
- *
207
- * @returns Random URL
208
- */
209
- url(): string;
210
-
211
- // DATE AND TIME FORMATS
212
-
213
- /**
214
- * Generates a random datetime string in ISO 8601 format.
215
- *
216
- * @param props Optional constraints for minimum and maximum timestamp values
217
- * @returns Random datetime string
218
- */
219
- datetime(props?: { minimum?: number; maximum?: number }): string;
220
-
221
- /**
222
- * Generates a random date string in ISO 8601 format (YYYY-MM-DD).
223
- *
224
- * @param props Optional constraints for minimum and maximum timestamp values
225
- * @returns Random date string
226
- */
227
- date(props?: { minimum?: number; maximum?: number }): string;
228
-
229
- /**
230
- * Generates a random time string in ISO 8601 format (HH:MM:SS).
231
- *
232
- * @returns Random time string
233
- */
234
- time(): string;
235
-
236
- /**
237
- * Generates a random duration string in ISO 8601 format.
238
- *
239
- * @returns Random duration string
240
- */
241
- duration(): string;
242
-
243
- // JSON POINTER FORMATS
244
-
245
- /**
246
- * Generates a random JSON pointer string.
247
- *
248
- * @returns Random JSON pointer
249
- */
250
- jsonPointer(): string;
251
-
252
- /**
253
- * Generates a random relative JSON pointer string.
254
- *
255
- * @returns Random relative JSON pointer
256
- */
257
- relativeJsonPointer(): string;
258
- }
259
-
260
- export namespace IRandomGenerator {
261
- /**
262
- * Map of custom generators for different data types.
263
- *
264
- * This interface allows customization of random generation for specific
265
- * types when they have certain schema properties or constraints.
266
- *
267
- * @example
268
- * ```typescript
269
- * const generator: Partial<IRandomGenerator> = {
270
- * string: (schema) => {
271
- * if ((schema as any)["x-typia-monetary"] === "dollar") {
272
- * return "$" + Math.floor(Math.random() * 1000);
273
- * }
274
- * return "default-string";
275
- * },
276
- * number: (schema) => {
277
- * if ((schema as any)["x-typia-powerOf"] !== undefined) {
278
- * const powerOf = (schema as any)["x-typia-powerOf"];
279
- * return Math.pow(powerOf, Math.random() * 10 + 1);
280
- * }
281
- * return Math.random() * 100;
282
- * }
283
- * };
284
- * ```
285
- */
286
- export interface CustomMap {
287
- /**
288
- * Custom string generator that can handle special string formats
289
- * based on schema properties.
290
- */
291
- string?: (
292
- schema: OpenApi.IJsonSchema.IString & Record<string, any>,
293
- ) => string;
294
-
295
- /**
296
- * Custom number generator that can handle special number constraints
297
- * based on schema properties.
298
- */
299
- number?: (
300
- schema: OpenApi.IJsonSchema.INumber & Record<string, any>,
301
- ) => number;
302
-
303
- /**
304
- * Custom integer generator that can handle special integer constraints
305
- * based on schema properties.
306
- */
307
- integer?: (
308
- schema: OpenApi.IJsonSchema.IInteger & Record<string, any>,
309
- ) => number;
310
-
311
- /**
312
- * Custom bigint generator that can handle special bigint constraints
313
- * based on schema properties.
314
- */
315
- bigint?: (
316
- schema: OpenApi.IJsonSchema.IInteger & Record<string, any>,
317
- ) => bigint;
318
-
319
- /**
320
- * Custom boolean generator that can handle special boolean constraints
321
- * based on schema properties.
322
- */
323
- boolean?: (schema: Record<string, any>) => boolean | undefined;
324
-
325
- /**
326
- * Custom array generator that can handle special array constraints
327
- * based on schema properties.
328
- */
329
- array?: <T>(
330
- schema: Omit<OpenApi.IJsonSchema.IArray, "items"> & {
331
- element: (index: number, count: number) => T;
332
- } & Record<string, any>,
333
- ) => T[];
334
- }
335
- }
1
+ import { OpenApi } from "@samchon/openapi";
2
+
3
+ /**
4
+ * Interface for generating random values for various data types.
5
+ *
6
+ * `IRandomGenerator` defines the contract for generating random values that can
7
+ * be used by typia for creating mock data, testing scenarios, and random value
8
+ * generation based on JSON schema constraints.
9
+ *
10
+ * This interface supports generating random values for:
11
+ *
12
+ * - Basic types (boolean, number, integer, bigint, string, array)
13
+ * - String format patterns (email, URL, UUID, etc.)
14
+ * - Date and time formats
15
+ * - Various address and identifier formats
16
+ *
17
+ * @author Jeongho Nam - https://github.com/samchon
18
+ * @example
19
+ * ```typescript
20
+ * const generator: IRandomGenerator = {
21
+ * boolean: () => Math.random() > 0.5,
22
+ * number: (schema) => Math.random() * (schema.maximum ?? 100),
23
+ * string: (schema) => "example-string",
24
+ * email: () => "test@example.com",
25
+ * // ... implement other methods
26
+ * };
27
+ * ```;
28
+ */
29
+ export interface IRandomGenerator {
30
+ // REGULAR DATA TYPES
31
+
32
+ /**
33
+ * Generates a random boolean value.
34
+ *
35
+ * @returns Random boolean value or undefined
36
+ */
37
+ boolean(): boolean | undefined;
38
+
39
+ /**
40
+ * Generates a random number based on JSON schema constraints.
41
+ *
42
+ * @param schema JSON schema with number constraints (min, max, etc.)
43
+ * @returns Random number within the specified constraints
44
+ */
45
+ number(schema: OpenApi.IJsonSchema.INumber): number;
46
+
47
+ /**
48
+ * Generates a random integer based on JSON schema constraints.
49
+ *
50
+ * @param schema JSON schema with integer constraints (min, max, etc.)
51
+ * @returns Random integer within the specified constraints
52
+ */
53
+ integer(schema: OpenApi.IJsonSchema.IInteger): number;
54
+
55
+ /**
56
+ * Generates a random bigint based on JSON schema constraints.
57
+ *
58
+ * @param schema JSON schema with integer constraints (min, max, etc.)
59
+ * @returns Random bigint within the specified constraints
60
+ */
61
+ bigint(schema: OpenApi.IJsonSchema.IInteger): bigint;
62
+
63
+ /**
64
+ * Generates a random string based on JSON schema constraints.
65
+ *
66
+ * @param schema JSON schema with string constraints (minLength, maxLength,
67
+ * pattern, etc.)
68
+ * @returns Random string matching the specified constraints
69
+ */
70
+ string(schema: OpenApi.IJsonSchema.IString): string;
71
+
72
+ /**
73
+ * Generates a random array with elements created by the provided generator
74
+ * function.
75
+ *
76
+ * @param schema Array schema with element generator function
77
+ * @returns Random array with generated elements
78
+ */
79
+ array<T>(
80
+ schema: Omit<OpenApi.IJsonSchema.IArray, "items"> & {
81
+ element: (index: number, count: number) => T;
82
+ },
83
+ ): T[];
84
+
85
+ /**
86
+ * Generates a random string matching the given regular expression pattern.
87
+ *
88
+ * @param regex Regular expression pattern to match
89
+ * @returns Random string matching the pattern
90
+ */
91
+ pattern(regex: RegExp): string;
92
+
93
+ //----
94
+ // STRING FORMATS
95
+ //----
96
+
97
+ // SPECIAL CHARACTER FORMATS
98
+
99
+ /**
100
+ * Generates a random base64-encoded byte string.
101
+ *
102
+ * @returns Random base64 string
103
+ */
104
+ byte(): string;
105
+
106
+ /**
107
+ * Generates a random password string.
108
+ *
109
+ * @returns Random password
110
+ */
111
+ password(): string;
112
+
113
+ /**
114
+ * Generates a random regular expression pattern string.
115
+ *
116
+ * @returns Random regex pattern
117
+ */
118
+ regex(): string;
119
+
120
+ /**
121
+ * Generates a random UUID (Universally Unique Identifier).
122
+ *
123
+ * @returns Random UUID string in standard format
124
+ */
125
+ uuid(): string;
126
+
127
+ // ADDRESS AND IDENTIFIER FORMATS
128
+
129
+ /**
130
+ * Generates a random email address.
131
+ *
132
+ * @returns Random email address
133
+ */
134
+ email(): string;
135
+
136
+ /**
137
+ * Generates a random hostname.
138
+ *
139
+ * @returns Random hostname
140
+ */
141
+ hostname(): string;
142
+
143
+ /**
144
+ * Generates a random internationalized email address.
145
+ *
146
+ * @returns Random IDN email address
147
+ */
148
+ idnEmail(): string;
149
+
150
+ /**
151
+ * Generates a random internationalized hostname.
152
+ *
153
+ * @returns Random IDN hostname
154
+ */
155
+ idnHostname(): string;
156
+
157
+ /**
158
+ * Generates a random IRI (Internationalized Resource Identifier).
159
+ *
160
+ * @returns Random IRI
161
+ */
162
+ iri(): string;
163
+
164
+ /**
165
+ * Generates a random IRI reference.
166
+ *
167
+ * @returns Random IRI reference
168
+ */
169
+ iriReference(): string;
170
+
171
+ /**
172
+ * Generates a random IPv4 address.
173
+ *
174
+ * @returns Random IPv4 address
175
+ */
176
+ ipv4(): string;
177
+
178
+ /**
179
+ * Generates a random IPv6 address.
180
+ *
181
+ * @returns Random IPv6 address
182
+ */
183
+ ipv6(): string;
184
+
185
+ /**
186
+ * Generates a random URI (Uniform Resource Identifier).
187
+ *
188
+ * @returns Random URI
189
+ */
190
+ uri(): string;
191
+
192
+ /**
193
+ * Generates a random URI reference.
194
+ *
195
+ * @returns Random URI reference
196
+ */
197
+ uriReference(): string;
198
+
199
+ /**
200
+ * Generates a random URI template.
201
+ *
202
+ * @returns Random URI template
203
+ */
204
+ uriTemplate(): string;
205
+
206
+ /**
207
+ * Generates a random URL (Uniform Resource Locator).
208
+ *
209
+ * @returns Random URL
210
+ */
211
+ url(): string;
212
+
213
+ // DATE AND TIME FORMATS
214
+
215
+ /**
216
+ * Generates a random datetime string in ISO 8601 format.
217
+ *
218
+ * @param props Optional constraints for minimum and maximum timestamp values
219
+ * @returns Random datetime string
220
+ */
221
+ datetime(props?: { minimum?: number; maximum?: number }): string;
222
+
223
+ /**
224
+ * Generates a random date string in ISO 8601 format (YYYY-MM-DD).
225
+ *
226
+ * @param props Optional constraints for minimum and maximum timestamp values
227
+ * @returns Random date string
228
+ */
229
+ date(props?: { minimum?: number; maximum?: number }): string;
230
+
231
+ /**
232
+ * Generates a random time string in ISO 8601 format (HH:MM:SS).
233
+ *
234
+ * @returns Random time string
235
+ */
236
+ time(): string;
237
+
238
+ /**
239
+ * Generates a random duration string in ISO 8601 format.
240
+ *
241
+ * @returns Random duration string
242
+ */
243
+ duration(): string;
244
+
245
+ // JSON POINTER FORMATS
246
+
247
+ /**
248
+ * Generates a random JSON pointer string.
249
+ *
250
+ * @returns Random JSON pointer
251
+ */
252
+ jsonPointer(): string;
253
+
254
+ /**
255
+ * Generates a random relative JSON pointer string.
256
+ *
257
+ * @returns Random relative JSON pointer
258
+ */
259
+ relativeJsonPointer(): string;
260
+ }
261
+
262
+ export namespace IRandomGenerator {
263
+ /**
264
+ * Map of custom generators for different data types.
265
+ *
266
+ * This interface allows customization of random generation for specific types
267
+ * when they have certain schema properties or constraints.
268
+ *
269
+ * @example
270
+ * ```typescript
271
+ * const generator: Partial<IRandomGenerator> = {
272
+ * string: (schema) => {
273
+ * if ((schema as any)["x-typia-monetary"] === "dollar") {
274
+ * return "$" + Math.floor(Math.random() * 1000);
275
+ * }
276
+ * return "default-string";
277
+ * },
278
+ * number: (schema) => {
279
+ * if ((schema as any)["x-typia-powerOf"] !== undefined) {
280
+ * const powerOf = (schema as any)["x-typia-powerOf"];
281
+ * return Math.pow(powerOf, Math.random() * 10 + 1);
282
+ * }
283
+ * return Math.random() * 100;
284
+ * }
285
+ * };
286
+ * ```;
287
+ */
288
+ export interface CustomMap {
289
+ /**
290
+ * Custom string generator that can handle special string formats based on
291
+ * schema properties.
292
+ */
293
+ string?: (
294
+ schema: OpenApi.IJsonSchema.IString & Record<string, any>,
295
+ ) => string;
296
+
297
+ /**
298
+ * Custom number generator that can handle special number constraints based
299
+ * on schema properties.
300
+ */
301
+ number?: (
302
+ schema: OpenApi.IJsonSchema.INumber & Record<string, any>,
303
+ ) => number;
304
+
305
+ /**
306
+ * Custom integer generator that can handle special integer constraints
307
+ * based on schema properties.
308
+ */
309
+ integer?: (
310
+ schema: OpenApi.IJsonSchema.IInteger & Record<string, any>,
311
+ ) => number;
312
+
313
+ /**
314
+ * Custom bigint generator that can handle special bigint constraints based
315
+ * on schema properties.
316
+ */
317
+ bigint?: (
318
+ schema: OpenApi.IJsonSchema.IInteger & Record<string, any>,
319
+ ) => bigint;
320
+
321
+ /**
322
+ * Custom boolean generator that can handle special boolean constraints
323
+ * based on schema properties.
324
+ */
325
+ boolean?: (schema: Record<string, any>) => boolean | undefined;
326
+
327
+ /**
328
+ * Custom array generator that can handle special array constraints based on
329
+ * schema properties.
330
+ */
331
+ array?: <T>(
332
+ schema: Omit<OpenApi.IJsonSchema.IArray, "items"> & {
333
+ element: (index: number, count: number) => T;
334
+ } & Record<string, any>,
335
+ ) => T[];
336
+ }
337
+ }