typia 7.1.0-dev.20241209 → 7.2.0

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 (447) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +123 -123
  3. package/lib/IValidation.d.ts +1 -0
  4. package/lib/executable/typia.js +0 -0
  5. package/lib/programmers/ValidateProgrammer.js +6 -4
  6. package/lib/programmers/ValidateProgrammer.js.map +1 -1
  7. package/package.json +1 -1
  8. package/src/IRandomGenerator.ts +49 -49
  9. package/src/IReadableURLSearchParams.ts +9 -9
  10. package/src/IValidation.ts +21 -20
  11. package/src/executable/TypiaGenerateWizard.ts +83 -83
  12. package/src/executable/TypiaPatchWizard.ts +45 -45
  13. package/src/executable/TypiaSetupWizard.ts +179 -179
  14. package/src/executable/setup/ArgumentParser.ts +42 -42
  15. package/src/executable/setup/FileRetriever.ts +19 -19
  16. package/src/executable/setup/PackageManager.ts +87 -87
  17. package/src/factories/ExpressionFactory.ts +216 -216
  18. package/src/factories/IdentifierFactory.ts +89 -89
  19. package/src/factories/JsonMetadataFactory.ts +76 -76
  20. package/src/factories/LiteralFactory.ts +52 -52
  21. package/src/factories/MetadataCollection.ts +278 -278
  22. package/src/factories/MetadataCommentTagFactory.ts +650 -650
  23. package/src/factories/MetadataFactory.ts +404 -404
  24. package/src/factories/MetadataTypeTagFactory.ts +411 -411
  25. package/src/factories/MetadataTypeTagSchemaFactory.ts +82 -82
  26. package/src/factories/NumericRangeFactory.ts +72 -72
  27. package/src/factories/ProtobufFactory.ts +875 -875
  28. package/src/factories/StatementFactory.ts +90 -90
  29. package/src/factories/TemplateFactory.ts +64 -64
  30. package/src/factories/TypeFactory.ts +140 -140
  31. package/src/factories/internal/metadata/IMetadataIteratorProps.ts +17 -17
  32. package/src/factories/internal/metadata/MetadataHelper.ts +21 -21
  33. package/src/factories/internal/metadata/emplace_metadata_alias.ts +33 -33
  34. package/src/factories/internal/metadata/emplace_metadata_array_type.ts +39 -39
  35. package/src/factories/internal/metadata/emplace_metadata_object.ts +208 -208
  36. package/src/factories/internal/metadata/emplace_metadata_tuple.ts +57 -57
  37. package/src/factories/internal/metadata/explore_metadata.ts +31 -31
  38. package/src/factories/internal/metadata/iterate_metadata.ts +54 -54
  39. package/src/factories/internal/metadata/iterate_metadata_alias.ts +33 -33
  40. package/src/factories/internal/metadata/iterate_metadata_array.ts +63 -63
  41. package/src/factories/internal/metadata/iterate_metadata_atomic.ts +62 -62
  42. package/src/factories/internal/metadata/iterate_metadata_coalesce.ts +28 -28
  43. package/src/factories/internal/metadata/iterate_metadata_collection.ts +146 -146
  44. package/src/factories/internal/metadata/iterate_metadata_comment_tags.ts +32 -32
  45. package/src/factories/internal/metadata/iterate_metadata_constant.ts +76 -76
  46. package/src/factories/internal/metadata/iterate_metadata_escape.ts +49 -49
  47. package/src/factories/internal/metadata/iterate_metadata_function.ts +91 -91
  48. package/src/factories/internal/metadata/iterate_metadata_intersection.ts +213 -213
  49. package/src/factories/internal/metadata/iterate_metadata_map.ts +57 -57
  50. package/src/factories/internal/metadata/iterate_metadata_native.ts +255 -255
  51. package/src/factories/internal/metadata/iterate_metadata_object.ts +35 -35
  52. package/src/factories/internal/metadata/iterate_metadata_set.ts +57 -57
  53. package/src/factories/internal/metadata/iterate_metadata_sort.ts +87 -87
  54. package/src/factories/internal/metadata/iterate_metadata_template.ts +41 -41
  55. package/src/factories/internal/metadata/iterate_metadata_tuple.ts +26 -26
  56. package/src/factories/internal/metadata/iterate_metadata_union.ts +19 -19
  57. package/src/functional.ts +750 -750
  58. package/src/http.ts +1047 -1047
  59. package/src/internal/_IProtobufWriter.ts +18 -18
  60. package/src/internal/_ProtobufReader.ts +194 -194
  61. package/src/internal/_ProtobufSizer.ts +145 -145
  62. package/src/internal/_ProtobufWriter.ts +145 -145
  63. package/src/internal/_accessExpressionAsString.ts +46 -46
  64. package/src/internal/_assertGuard.ts +13 -13
  65. package/src/internal/_functionalTypeGuardErrorFactory.ts +4 -4
  66. package/src/internal/_httpFormDataReadArray.ts +4 -4
  67. package/src/internal/_httpFormDataReadBigint.ts +18 -18
  68. package/src/internal/_httpFormDataReadBlob.ts +10 -10
  69. package/src/internal/_httpFormDataReadBoolean.ts +16 -16
  70. package/src/internal/_httpFormDataReadFile.ts +10 -10
  71. package/src/internal/_httpFormDataReadNumber.ts +15 -15
  72. package/src/internal/_httpFormDataReadString.ts +10 -10
  73. package/src/internal/_httpHeaderReadBigint.ts +10 -10
  74. package/src/internal/_httpHeaderReadBoolean.ts +8 -8
  75. package/src/internal/_httpHeaderReadNumber.ts +7 -7
  76. package/src/internal/_httpParameterReadBigint.ts +10 -10
  77. package/src/internal/_httpParameterReadBoolean.ts +8 -8
  78. package/src/internal/_httpParameterReadNumber.ts +7 -7
  79. package/src/internal/_httpParameterReadString.ts +2 -2
  80. package/src/internal/_httpQueryParseURLSearchParams.ts +12 -12
  81. package/src/internal/_httpQueryReadArray.ts +4 -4
  82. package/src/internal/_httpQueryReadBigint.ts +12 -12
  83. package/src/internal/_httpQueryReadBoolean.ts +14 -14
  84. package/src/internal/_httpQueryReadNumber.ts +9 -9
  85. package/src/internal/_httpQueryReadString.ts +4 -4
  86. package/src/internal/_isBetween.ts +2 -2
  87. package/src/internal/_isBigintString.ts +8 -8
  88. package/src/internal/_isFormatByte.ts +7 -7
  89. package/src/internal/_isFormatDate.ts +3 -3
  90. package/src/internal/_isFormatDateTime.ts +4 -4
  91. package/src/internal/_isFormatDuration.ts +4 -4
  92. package/src/internal/_isFormatEmail.ts +4 -4
  93. package/src/internal/_isFormatHostname.ts +4 -4
  94. package/src/internal/_isFormatIdnEmail.ts +4 -4
  95. package/src/internal/_isFormatIdnHostname.ts +4 -4
  96. package/src/internal/_isFormatIpv4.ts +4 -4
  97. package/src/internal/_isFormatIpv6.ts +4 -4
  98. package/src/internal/_isFormatIri.ts +3 -3
  99. package/src/internal/_isFormatIriReference.ts +4 -4
  100. package/src/internal/_isFormatJsonPointer.ts +3 -3
  101. package/src/internal/_isFormatPassword.ts +1 -1
  102. package/src/internal/_isFormatRegex.ts +8 -8
  103. package/src/internal/_isFormatRelativeJsonPointer.ts +4 -4
  104. package/src/internal/_isFormatTime.ts +4 -4
  105. package/src/internal/_isFormatUri.ts +6 -6
  106. package/src/internal/_isFormatUriReference.ts +5 -5
  107. package/src/internal/_isFormatUriTemplate.ts +4 -4
  108. package/src/internal/_isFormatUrl.ts +4 -4
  109. package/src/internal/_isFormatUuid.ts +3 -3
  110. package/src/internal/_isTypeFloat.ts +5 -5
  111. package/src/internal/_isTypeInt32.ts +5 -5
  112. package/src/internal/_isTypeInt64.ts +5 -5
  113. package/src/internal/_isTypeUint32.ts +5 -5
  114. package/src/internal/_isTypeUint64.ts +5 -5
  115. package/src/internal/_isUniqueItems.ts +159 -159
  116. package/src/internal/_jsonStringifyNumber.ts +12 -12
  117. package/src/internal/_jsonStringifyRest.ts +3 -3
  118. package/src/internal/_jsonStringifyString.ts +42 -42
  119. package/src/internal/_jsonStringifyTail.ts +2 -2
  120. package/src/internal/_llmApplicationFinalize.ts +20 -20
  121. package/src/internal/_miscCloneAny.ts +46 -46
  122. package/src/internal/_notationAny.ts +37 -37
  123. package/src/internal/_notationCamel.ts +13 -13
  124. package/src/internal/_notationPascal.ts +8 -8
  125. package/src/internal/_notationSnake.ts +43 -43
  126. package/src/internal/_randomArray.ts +21 -21
  127. package/src/internal/_randomBigint.ts +6 -6
  128. package/src/internal/_randomBoolean.ts +1 -1
  129. package/src/internal/_randomFormatByte.ts +3 -3
  130. package/src/internal/_randomFormatDate.ts +18 -18
  131. package/src/internal/_randomFormatDatetime.ts +16 -16
  132. package/src/internal/_randomFormatDuration.ts +27 -27
  133. package/src/internal/_randomFormatEmail.ts +11 -11
  134. package/src/internal/_randomFormatHostname.ts +6 -6
  135. package/src/internal/_randomFormatIdnEmail.ts +3 -3
  136. package/src/internal/_randomFormatIdnHostname.ts +3 -3
  137. package/src/internal/_randomFormatIpv4.ts +11 -11
  138. package/src/internal/_randomFormatIpv6.ts +11 -11
  139. package/src/internal/_randomFormatIri.ts +3 -3
  140. package/src/internal/_randomFormatIriReference.ts +3 -3
  141. package/src/internal/_randomFormatJsonPointer.ts +7 -7
  142. package/src/internal/_randomFormatPassword.ts +8 -8
  143. package/src/internal/_randomFormatRegex.ts +4 -4
  144. package/src/internal/_randomFormatRelativeJsonPointer.ts +8 -8
  145. package/src/internal/_randomFormatTime.ts +14 -14
  146. package/src/internal/_randomFormatUri.ts +3 -3
  147. package/src/internal/_randomFormatUriReference.ts +3 -3
  148. package/src/internal/_randomFormatUriTemplate.ts +3 -3
  149. package/src/internal/_randomFormatUrl.ts +11 -11
  150. package/src/internal/_randomFormatUuid.ts +6 -6
  151. package/src/internal/_randomInteger.ts +47 -47
  152. package/src/internal/_randomNumber.ts +74 -74
  153. package/src/internal/_randomPattern.ts +10 -10
  154. package/src/internal/_randomPick.ts +9 -9
  155. package/src/internal/_randomString.ts +24 -24
  156. package/src/internal/_throwTypeGuardError.ts +5 -5
  157. package/src/internal/_validateReport.ts +13 -13
  158. package/src/internal/private/__notationCapitalize.ts +2 -2
  159. package/src/internal/private/__notationUnsnake.ts +24 -24
  160. package/src/json.ts +752 -752
  161. package/src/llm.ts +481 -481
  162. package/src/misc.ts +658 -658
  163. package/src/module.ts +937 -937
  164. package/src/notations.ts +827 -827
  165. package/src/programmers/AssertProgrammer.ts +454 -454
  166. package/src/programmers/CheckerProgrammer.ts +1617 -1617
  167. package/src/programmers/FeatureProgrammer.ts +622 -622
  168. package/src/programmers/ImportProgrammer.ts +185 -185
  169. package/src/programmers/IsProgrammer.ts +273 -273
  170. package/src/programmers/RandomProgrammer.ts +1190 -1190
  171. package/src/programmers/TypiaProgrammer.ts +174 -174
  172. package/src/programmers/ValidateProgrammer.ts +439 -434
  173. package/src/programmers/functional/FunctionalAssertFunctionProgrammer.ts +153 -153
  174. package/src/programmers/functional/FunctionalAssertParametersProgrammer.ts +125 -125
  175. package/src/programmers/functional/FunctionalAssertReturnProgrammer.ts +115 -115
  176. package/src/programmers/functional/FunctionalIsFunctionProgrammer.ts +72 -72
  177. package/src/programmers/functional/FunctionalIsParametersProgrammer.ts +113 -113
  178. package/src/programmers/functional/FunctionalIsReturnProgrammer.ts +116 -116
  179. package/src/programmers/functional/FunctionalValidateFunctionProgrammer.ts +119 -119
  180. package/src/programmers/functional/FunctionalValidateParametersProgrammer.ts +274 -274
  181. package/src/programmers/functional/FunctionalValidateReturnProgrammer.ts +135 -135
  182. package/src/programmers/functional/internal/FunctionalGeneralProgrammer.ts +34 -34
  183. package/src/programmers/helpers/AtomicPredicator.ts +35 -35
  184. package/src/programmers/helpers/CloneJoiner.ts +143 -143
  185. package/src/programmers/helpers/FunctionProgrammer.ts +67 -67
  186. package/src/programmers/helpers/HttpMetadataUtil.ts +21 -21
  187. package/src/programmers/helpers/NotationJoiner.ts +144 -144
  188. package/src/programmers/helpers/OptionPredicator.ts +15 -15
  189. package/src/programmers/helpers/ProtobufUtil.ts +228 -228
  190. package/src/programmers/helpers/PruneJoiner.ts +148 -148
  191. package/src/programmers/helpers/RandomJoiner.ts +168 -168
  192. package/src/programmers/helpers/StringifyJoinder.ts +115 -115
  193. package/src/programmers/helpers/StringifyPredicator.ts +13 -13
  194. package/src/programmers/helpers/UnionExplorer.ts +372 -372
  195. package/src/programmers/helpers/UnionPredicator.ts +79 -79
  196. package/src/programmers/helpers/disable_function_programmer_declare.ts +32 -32
  197. package/src/programmers/http/HttpAssertFormDataProgrammer.ts +99 -99
  198. package/src/programmers/http/HttpAssertHeadersProgrammer.ts +99 -99
  199. package/src/programmers/http/HttpAssertQueryProgrammer.ts +105 -105
  200. package/src/programmers/http/HttpFormDataProgrammer.ts +308 -308
  201. package/src/programmers/http/HttpHeadersProgrammer.ts +400 -400
  202. package/src/programmers/http/HttpIsFormDataProgrammer.ts +108 -108
  203. package/src/programmers/http/HttpIsHeadersProgrammer.ts +108 -108
  204. package/src/programmers/http/HttpIsQueryProgrammer.ts +114 -114
  205. package/src/programmers/http/HttpParameterProgrammer.ts +115 -115
  206. package/src/programmers/http/HttpQueryProgrammer.ts +336 -336
  207. package/src/programmers/http/HttpValidateFormDataProgrammer.ts +92 -92
  208. package/src/programmers/http/HttpValidateHeadersProgrammer.ts +92 -92
  209. package/src/programmers/http/HttpValidateQueryProgrammer.ts +98 -98
  210. package/src/programmers/internal/check_array_length.ts +47 -47
  211. package/src/programmers/internal/check_bigint.ts +50 -50
  212. package/src/programmers/internal/check_dynamic_key.ts +201 -201
  213. package/src/programmers/internal/check_dynamic_properties.ts +208 -208
  214. package/src/programmers/internal/check_everything.ts +23 -23
  215. package/src/programmers/internal/check_native.ts +27 -27
  216. package/src/programmers/internal/check_number.ts +112 -112
  217. package/src/programmers/internal/check_object.ts +75 -75
  218. package/src/programmers/internal/check_string.ts +50 -50
  219. package/src/programmers/internal/check_template.ts +48 -48
  220. package/src/programmers/internal/check_union_array_like.ts +335 -335
  221. package/src/programmers/internal/decode_union_object.ts +116 -116
  222. package/src/programmers/internal/feature_object_entries.ts +61 -61
  223. package/src/programmers/internal/json_schema_alias.ts +47 -47
  224. package/src/programmers/internal/json_schema_array.ts +45 -45
  225. package/src/programmers/internal/json_schema_bigint.ts +15 -15
  226. package/src/programmers/internal/json_schema_boolean.ts +15 -15
  227. package/src/programmers/internal/json_schema_constant.ts +26 -26
  228. package/src/programmers/internal/json_schema_description.ts +12 -12
  229. package/src/programmers/internal/json_schema_discriminator.ts +35 -35
  230. package/src/programmers/internal/json_schema_escaped.ts +82 -82
  231. package/src/programmers/internal/json_schema_native.ts +33 -33
  232. package/src/programmers/internal/json_schema_number.ts +15 -15
  233. package/src/programmers/internal/json_schema_object.ts +158 -158
  234. package/src/programmers/internal/json_schema_plugin.ts +18 -18
  235. package/src/programmers/internal/json_schema_station.ts +182 -182
  236. package/src/programmers/internal/json_schema_string.ts +15 -15
  237. package/src/programmers/internal/json_schema_template.ts +55 -55
  238. package/src/programmers/internal/json_schema_title.ts +20 -20
  239. package/src/programmers/internal/json_schema_tuple.ts +35 -35
  240. package/src/programmers/internal/metadata_to_pattern.ts +42 -42
  241. package/src/programmers/internal/postfix_of_tuple.ts +5 -5
  242. package/src/programmers/internal/prune_object_properties.ts +71 -71
  243. package/src/programmers/internal/stringify_dynamic_properties.ts +162 -162
  244. package/src/programmers/internal/stringify_regular_properties.ts +81 -81
  245. package/src/programmers/internal/template_to_pattern.ts +23 -23
  246. package/src/programmers/internal/wrap_metadata_rest_tuple.ts +23 -23
  247. package/src/programmers/json/JsonApplicationProgrammer.ts +276 -276
  248. package/src/programmers/json/JsonAssertParseProgrammer.ts +113 -113
  249. package/src/programmers/json/JsonAssertStringifyProgrammer.ts +115 -115
  250. package/src/programmers/json/JsonIsParseProgrammer.ts +114 -114
  251. package/src/programmers/json/JsonIsStringifyProgrammer.ts +108 -108
  252. package/src/programmers/json/JsonSchemasProgrammer.ts +91 -91
  253. package/src/programmers/json/JsonStringifyProgrammer.ts +1124 -1124
  254. package/src/programmers/json/JsonValidateParseProgrammer.ts +105 -105
  255. package/src/programmers/json/JsonValidateStringifyProgrammer.ts +124 -124
  256. package/src/programmers/llm/LlmApplicationOfValidateProgrammer.ts +81 -81
  257. package/src/programmers/llm/LlmApplicationProgrammer.ts +276 -276
  258. package/src/programmers/llm/LlmModelPredicator.ts +127 -127
  259. package/src/programmers/llm/LlmParametersProgrammer.ts +90 -90
  260. package/src/programmers/llm/LlmSchemaProgrammer.ts +143 -143
  261. package/src/programmers/misc/MiscAssertCloneProgrammer.ts +95 -95
  262. package/src/programmers/misc/MiscAssertPruneProgrammer.ts +116 -116
  263. package/src/programmers/misc/MiscCloneProgrammer.ts +1032 -1032
  264. package/src/programmers/misc/MiscIsCloneProgrammer.ts +99 -99
  265. package/src/programmers/misc/MiscIsPruneProgrammer.ts +97 -97
  266. package/src/programmers/misc/MiscLiteralsProgrammer.ts +80 -80
  267. package/src/programmers/misc/MiscPruneProgrammer.ts +728 -728
  268. package/src/programmers/misc/MiscValidateCloneProgrammer.ts +111 -111
  269. package/src/programmers/misc/MiscValidatePruneProgrammer.ts +113 -113
  270. package/src/programmers/notations/NotationAssertGeneralProgrammer.ts +101 -101
  271. package/src/programmers/notations/NotationGeneralProgrammer.ts +984 -984
  272. package/src/programmers/notations/NotationIsGeneralProgrammer.ts +105 -105
  273. package/src/programmers/notations/NotationValidateGeneralProgrammer.ts +119 -119
  274. package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +98 -98
  275. package/src/programmers/protobuf/ProtobufAssertEncodeProgrammer.ts +102 -102
  276. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +654 -654
  277. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +945 -945
  278. package/src/programmers/protobuf/ProtobufIsDecodeProgrammer.ts +109 -109
  279. package/src/programmers/protobuf/ProtobufIsEncodeProgrammer.ts +98 -98
  280. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +179 -179
  281. package/src/programmers/protobuf/ProtobufValidateDecodeProgrammer.ts +92 -92
  282. package/src/programmers/protobuf/ProtobufValidateEncodeProgrammer.ts +119 -119
  283. package/src/protobuf.ts +868 -868
  284. package/src/reflect.ts +57 -57
  285. package/src/schemas/json/IJsonApplication.ts +73 -73
  286. package/src/schemas/json/IJsonSchemaCollection.ts +29 -29
  287. package/src/schemas/json/__IJsonApplication.ts +63 -63
  288. package/src/schemas/llm/ILlmApplicationOfValidate.ts +55 -55
  289. package/src/schemas/llm/ILlmFunctionOfValidate.ts +39 -39
  290. package/src/schemas/metadata/IMetadata.ts +35 -35
  291. package/src/schemas/metadata/IMetadataAlias.ts +6 -6
  292. package/src/schemas/metadata/IMetadataAliasType.ts +12 -12
  293. package/src/schemas/metadata/IMetadataApplication.ts +7 -7
  294. package/src/schemas/metadata/IMetadataArray.ts +6 -6
  295. package/src/schemas/metadata/IMetadataComponents.ts +11 -11
  296. package/src/schemas/metadata/IMetadataConstantValue.ts +11 -11
  297. package/src/schemas/metadata/IMetadataDictionary.ts +11 -11
  298. package/src/schemas/metadata/IMetadataMap.ts +8 -8
  299. package/src/schemas/metadata/IMetadataNative.ts +6 -6
  300. package/src/schemas/metadata/IMetadataObject.ts +6 -6
  301. package/src/schemas/metadata/IMetadataObjectType.ts +13 -13
  302. package/src/schemas/metadata/IMetadataSet.ts +7 -7
  303. package/src/schemas/metadata/IMetadataTemplate.ts +7 -7
  304. package/src/schemas/metadata/IMetadataTuple.ts +6 -6
  305. package/src/schemas/metadata/IMetadataTypeTag.ts +16 -16
  306. package/src/schemas/metadata/Metadata.ts +669 -669
  307. package/src/schemas/metadata/MetadataAlias.ts +46 -46
  308. package/src/schemas/metadata/MetadataAliasType.ts +63 -63
  309. package/src/schemas/metadata/MetadataApplication.ts +44 -44
  310. package/src/schemas/metadata/MetadataArray.ts +49 -49
  311. package/src/schemas/metadata/MetadataAtomic.ts +87 -87
  312. package/src/schemas/metadata/MetadataComponents.ts +98 -98
  313. package/src/schemas/metadata/MetadataConstantValue.ts +62 -62
  314. package/src/schemas/metadata/MetadataMap.ts +48 -48
  315. package/src/schemas/metadata/MetadataNative.ts +44 -44
  316. package/src/schemas/metadata/MetadataObject.ts +48 -48
  317. package/src/schemas/metadata/MetadataObjectType.ts +149 -149
  318. package/src/schemas/metadata/MetadataProperty.ts +59 -59
  319. package/src/schemas/metadata/MetadataSet.ts +45 -45
  320. package/src/schemas/metadata/MetadataTemplate.ts +80 -80
  321. package/src/schemas/metadata/MetadataTuple.ts +32 -32
  322. package/src/schemas/protobuf/IProtobufProperty.ts +6 -6
  323. package/src/schemas/protobuf/IProtobufPropertyType.ts +37 -37
  324. package/src/schemas/protobuf/IProtobufSchema.ts +50 -50
  325. package/src/tags/Example.ts +24 -24
  326. package/src/tags/Examples.ts +16 -16
  327. package/src/tags/Format.ts +50 -50
  328. package/src/tags/JsonSchemaPlugin.ts +8 -8
  329. package/src/tags/Sequence.ts +10 -10
  330. package/src/tags/TagBase.ts +82 -82
  331. package/src/tags/Type.ts +32 -32
  332. package/src/tags/UniqueItems.ts +14 -14
  333. package/src/tags/index.ts +21 -21
  334. package/src/transform.ts +35 -35
  335. package/src/transformers/CallExpressionTransformer.ts +547 -547
  336. package/src/transformers/FileTransformer.ts +136 -136
  337. package/src/transformers/IProgrammerProps.ts +11 -11
  338. package/src/transformers/ITransformOptions.ts +62 -62
  339. package/src/transformers/ITransformProps.ts +9 -9
  340. package/src/transformers/ITypiaContext.ts +18 -18
  341. package/src/transformers/ImportTransformer.ts +81 -81
  342. package/src/transformers/NodeTransformer.ts +17 -17
  343. package/src/transformers/TransformerError.ts +60 -60
  344. package/src/transformers/features/AssertTransformer.ts +24 -24
  345. package/src/transformers/features/CreateAssertTransformer.ts +24 -24
  346. package/src/transformers/features/CreateIsTransformer.ts +18 -18
  347. package/src/transformers/features/CreateRandomTransformer.ts +43 -43
  348. package/src/transformers/features/CreateValidateTransformer.ts +18 -18
  349. package/src/transformers/features/IsTransformer.ts +18 -18
  350. package/src/transformers/features/RandomTransformer.ts +41 -41
  351. package/src/transformers/features/ValidateTransformer.ts +18 -18
  352. package/src/transformers/features/functional/FunctionalGenericTransformer.ts +57 -57
  353. package/src/transformers/features/http/CreateHttpAssertFormDataTransformer.ts +13 -13
  354. package/src/transformers/features/http/CreateHttpAssertHeadersTransformer.ts +13 -13
  355. package/src/transformers/features/http/CreateHttpAssertQueryTransformer.ts +13 -13
  356. package/src/transformers/features/http/CreateHttpFormDataTransformer.ts +13 -13
  357. package/src/transformers/features/http/CreateHttpHeadersTransformer.ts +13 -13
  358. package/src/transformers/features/http/CreateHttpIsFormDataTransformer.ts +13 -13
  359. package/src/transformers/features/http/CreateHttpIsHeadersTransformer.ts +13 -13
  360. package/src/transformers/features/http/CreateHttpIsQueryTransformer.ts +13 -13
  361. package/src/transformers/features/http/CreateHttpParameterTransformer.ts +13 -13
  362. package/src/transformers/features/http/CreateHttpQueryTransformer.ts +13 -13
  363. package/src/transformers/features/http/CreateHttpValidateFormDataTransformer.ts +13 -13
  364. package/src/transformers/features/http/CreateHttpValidateHeadersTransformer.ts +13 -13
  365. package/src/transformers/features/http/CreateHttpValidateQueryTransformer.ts +13 -13
  366. package/src/transformers/features/http/HttpAssertFormDataTransformer.ts +13 -13
  367. package/src/transformers/features/http/HttpAssertHeadersTransformer.ts +13 -13
  368. package/src/transformers/features/http/HttpAssertQueryTransformer.ts +13 -13
  369. package/src/transformers/features/http/HttpFormDataTransformer.ts +13 -13
  370. package/src/transformers/features/http/HttpHeadersTransformer.ts +13 -13
  371. package/src/transformers/features/http/HttpIsFormDataTransformer.ts +13 -13
  372. package/src/transformers/features/http/HttpIsHeadersTransformer.ts +13 -13
  373. package/src/transformers/features/http/HttpIsQueryTransformer.ts +13 -13
  374. package/src/transformers/features/http/HttpParameterTransformer.ts +13 -13
  375. package/src/transformers/features/http/HttpQueryTransformer.ts +13 -13
  376. package/src/transformers/features/http/HttpValidateFormDataTransformer.ts +13 -13
  377. package/src/transformers/features/http/HttpValidateHeadersTransformer.ts +13 -13
  378. package/src/transformers/features/http/HttpValidateQueryTransformer.ts +13 -13
  379. package/src/transformers/features/json/JsonApplicationTransformer.ts +105 -105
  380. package/src/transformers/features/json/JsonAssertParseTransformer.ts +13 -13
  381. package/src/transformers/features/json/JsonAssertStringifyTransformer.ts +13 -13
  382. package/src/transformers/features/json/JsonCreateAssertParseTransformer.ts +13 -13
  383. package/src/transformers/features/json/JsonCreateAssertStringifyTransformer.ts +13 -13
  384. package/src/transformers/features/json/JsonCreateIsParseTransformer.ts +13 -13
  385. package/src/transformers/features/json/JsonCreateIsStringifyTransformer.ts +13 -13
  386. package/src/transformers/features/json/JsonCreateStringifyTransformer.ts +13 -13
  387. package/src/transformers/features/json/JsonCreateValidateParseTransformer.ts +13 -13
  388. package/src/transformers/features/json/JsonCreateValidateStringifyProgrammer.ts +13 -13
  389. package/src/transformers/features/json/JsonIsParseTransformer.ts +13 -13
  390. package/src/transformers/features/json/JsonIsStringifyTransformer.ts +13 -13
  391. package/src/transformers/features/json/JsonSchemasTransformer.ts +143 -143
  392. package/src/transformers/features/json/JsonStringifyTransformer.ts +13 -13
  393. package/src/transformers/features/json/JsonValidateParseTransformer.ts +13 -13
  394. package/src/transformers/features/json/JsonValidateStringifyTransformer.ts +13 -13
  395. package/src/transformers/features/llm/LlmApplicationOfValidateTransformer.ts +115 -115
  396. package/src/transformers/features/llm/LlmApplicationTransformer.ts +113 -113
  397. package/src/transformers/features/llm/LlmParametersTransformer.ts +89 -89
  398. package/src/transformers/features/llm/LlmSchemaTransformer.ts +130 -130
  399. package/src/transformers/features/misc/MiscAssertCloneTransformer.ts +13 -13
  400. package/src/transformers/features/misc/MiscAssertPruneTransformer.ts +13 -13
  401. package/src/transformers/features/misc/MiscCloneTransformer.ts +13 -13
  402. package/src/transformers/features/misc/MiscCreateAssertCloneTransformer.ts +13 -13
  403. package/src/transformers/features/misc/MiscCreateAssertPruneTransformer.ts +13 -13
  404. package/src/transformers/features/misc/MiscCreateCloneTransformer.ts +13 -13
  405. package/src/transformers/features/misc/MiscCreateIsCloneTransformer.ts +13 -13
  406. package/src/transformers/features/misc/MiscCreateIsPruneTransformer.ts +13 -13
  407. package/src/transformers/features/misc/MiscCreatePruneTransformer.ts +13 -13
  408. package/src/transformers/features/misc/MiscCreateValidateCloneTransformer.ts +13 -13
  409. package/src/transformers/features/misc/MiscCreateValidatePruneTransformer.ts +13 -13
  410. package/src/transformers/features/misc/MiscIsCloneTransformer.ts +13 -13
  411. package/src/transformers/features/misc/MiscIsPruneTransformer.ts +13 -13
  412. package/src/transformers/features/misc/MiscLiteralsTransformer.ts +35 -35
  413. package/src/transformers/features/misc/MiscPruneTransformer.ts +13 -13
  414. package/src/transformers/features/misc/MiscValidateCloneTransformer.ts +13 -13
  415. package/src/transformers/features/misc/MiscValidatePruneTransformer.ts +13 -13
  416. package/src/transformers/features/notations/NotationAssertGeneralTransformer.ts +20 -20
  417. package/src/transformers/features/notations/NotationCreateAssertGeneralTransformer.ts +20 -20
  418. package/src/transformers/features/notations/NotationCreateGeneralTransformer.ts +20 -20
  419. package/src/transformers/features/notations/NotationCreateIsGeneralTransformer.ts +20 -20
  420. package/src/transformers/features/notations/NotationCreateValidateGeneralTransformer.ts +20 -20
  421. package/src/transformers/features/notations/NotationGeneralTransformer.ts +18 -18
  422. package/src/transformers/features/notations/NotationIsGeneralTransformer.ts +20 -20
  423. package/src/transformers/features/notations/NotationValidateGeneralTransformer.ts +20 -20
  424. package/src/transformers/features/protobuf/ProtobufAssertDecodeTransformer.ts +13 -13
  425. package/src/transformers/features/protobuf/ProtobufAssertEncodeTransformer.ts +13 -13
  426. package/src/transformers/features/protobuf/ProtobufCreateAssertDecodeTransformer.ts +13 -13
  427. package/src/transformers/features/protobuf/ProtobufCreateAssertEncodeTransformer.ts +13 -13
  428. package/src/transformers/features/protobuf/ProtobufCreateDecodeTransformer.ts +13 -13
  429. package/src/transformers/features/protobuf/ProtobufCreateEncodeTransformer.ts +13 -13
  430. package/src/transformers/features/protobuf/ProtobufCreateIsDecodeTransformer.ts +13 -13
  431. package/src/transformers/features/protobuf/ProtobufCreateIsEncodeTransformer.ts +13 -13
  432. package/src/transformers/features/protobuf/ProtobufCreateValidateDecodeTransformer.ts +13 -13
  433. package/src/transformers/features/protobuf/ProtobufCreateValidateEncodeTransformer.ts +13 -13
  434. package/src/transformers/features/protobuf/ProtobufDecodeTransformer.ts +13 -13
  435. package/src/transformers/features/protobuf/ProtobufEncodeTransformer.ts +13 -13
  436. package/src/transformers/features/protobuf/ProtobufIsDecodeTransformer.ts +13 -13
  437. package/src/transformers/features/protobuf/ProtobufIsEncodeTransformer.ts +13 -13
  438. package/src/transformers/features/protobuf/ProtobufMessageTransformer.ts +35 -35
  439. package/src/transformers/features/protobuf/ProtobufValidateDecodeTransformer.ts +13 -13
  440. package/src/transformers/features/protobuf/ProtobufValidateEncodeTransformer.ts +13 -13
  441. package/src/transformers/features/reflect/ReflectMetadataTransformer.ts +69 -69
  442. package/src/transformers/features/reflect/ReflectNameTransformer.ts +82 -82
  443. package/src/transformers/internal/GenericTransformer.ts +101 -101
  444. package/src/utils/MapUtil.ts +14 -14
  445. package/src/utils/NamingConvention.ts +94 -94
  446. package/src/utils/ProtobufNameEncoder.ts +32 -32
  447. package/src/utils/StringUtil.ts +16 -16
package/src/reflect.ts CHANGED
@@ -1,57 +1,57 @@
1
- import { IMetadataApplication } from "./schemas/metadata/IMetadataApplication";
2
-
3
- /**
4
- * > You must configure the generic argument `Types`.
5
- *
6
- * Metadata Application.
7
- *
8
- * Creates a Metadata application which contains the metadata and components.
9
- *
10
- * Note that, all of the collection types like Array, Tuple and Objects are
11
- * stored in the {@link IMetadataApplication.components} property. Also, alias
12
- * types are stored in the {@link IMetadataApplication.aliases} property, too.
13
- *
14
- * @template Types Tuple of target types
15
- * @returns Metadata application
16
- *
17
- * @author Jeongho Nam - https://github.com/samchon
18
- */
19
- export function metadata(): never;
20
-
21
- /**
22
- * Metadata Application.
23
- *
24
- * Creates a Metadata application which contains the metadata and components.
25
- *
26
- * Note that, all of the collection types like Array, Tuple and Objects are
27
- * stored in the {@link IMetadataApplication.components} property. Also, alias
28
- * types are stored in the {@link IMetadataApplication.aliases} property, too.
29
- *
30
- * @template Types Tuple of target types
31
- * @returns Metadata application
32
- *
33
- * @author Jeongho Nam - https://github.com/samchon
34
- */
35
- export function metadata<Types extends unknown[]>(): IMetadataApplication;
36
-
37
- /**
38
- * @internal
39
- */
40
- export function metadata(): never {
41
- halt("metadata");
42
- }
43
-
44
- export function name<T, Regular extends boolean = false>(): string;
45
- export function name(): never;
46
- export function name(): never {
47
- halt("name");
48
- }
49
-
50
- /**
51
- * @internal
52
- */
53
- function halt(name: string): never {
54
- throw new Error(
55
- `Error on typia.reflect.${name}(): no transform has been configured. Read and follow https://typia.io/docs/setup please.`,
56
- );
57
- }
1
+ import { IMetadataApplication } from "./schemas/metadata/IMetadataApplication";
2
+
3
+ /**
4
+ * > You must configure the generic argument `Types`.
5
+ *
6
+ * Metadata Application.
7
+ *
8
+ * Creates a Metadata application which contains the metadata and components.
9
+ *
10
+ * Note that, all of the collection types like Array, Tuple and Objects are
11
+ * stored in the {@link IMetadataApplication.components} property. Also, alias
12
+ * types are stored in the {@link IMetadataApplication.aliases} property, too.
13
+ *
14
+ * @template Types Tuple of target types
15
+ * @returns Metadata application
16
+ *
17
+ * @author Jeongho Nam - https://github.com/samchon
18
+ */
19
+ export function metadata(): never;
20
+
21
+ /**
22
+ * Metadata Application.
23
+ *
24
+ * Creates a Metadata application which contains the metadata and components.
25
+ *
26
+ * Note that, all of the collection types like Array, Tuple and Objects are
27
+ * stored in the {@link IMetadataApplication.components} property. Also, alias
28
+ * types are stored in the {@link IMetadataApplication.aliases} property, too.
29
+ *
30
+ * @template Types Tuple of target types
31
+ * @returns Metadata application
32
+ *
33
+ * @author Jeongho Nam - https://github.com/samchon
34
+ */
35
+ export function metadata<Types extends unknown[]>(): IMetadataApplication;
36
+
37
+ /**
38
+ * @internal
39
+ */
40
+ export function metadata(): never {
41
+ halt("metadata");
42
+ }
43
+
44
+ export function name<T, Regular extends boolean = false>(): string;
45
+ export function name(): never;
46
+ export function name(): never {
47
+ halt("name");
48
+ }
49
+
50
+ /**
51
+ * @internal
52
+ */
53
+ function halt(name: string): never {
54
+ throw new Error(
55
+ `Error on typia.reflect.${name}(): no transform has been configured. Read and follow https://typia.io/docs/setup please.`,
56
+ );
57
+ }
@@ -1,73 +1,73 @@
1
- import { IJsonSchemaCollection } from "./IJsonSchemaCollection";
2
-
3
- /**
4
- * Collection of JSON schemas.
5
- *
6
- * @deprecated Use {@link IJsonSchemaCollection} instead please.
7
- * This interface type would be changed to {@link ILlmApplication} like
8
- * structure in the future version (maybe next v8 major update).
9
- * @template Version Version of the OpenAPI specification.
10
- * @template Types Original TypeScript types used in the JSON schemas.
11
- * @author Jeongho Nam - https://github.com/samchon
12
- */
13
- export import IJsonApplication = IJsonSchemaCollection;
14
-
15
- // export interface IJsonApplication<
16
- // Version extends "3.0" | "3.1" = "3.1",
17
- // App extends any = object,
18
- // > {
19
- // version: Version;
20
- // components: IJsonApplication.IComponents<IJsonApplication.Schema<Version>>;
21
- // functions: IJsonApplication.IFunction<IJsonApplication.Schema<Version>>[];
22
- // __application?: App | undefined;
23
- // }
24
- // export namespace IJsonApplication {
25
- // export type Schema<Version extends "3.0" | "3.1"> = Version extends "3.1"
26
- // ? OpenApi.IJsonSchema
27
- // : OpenApiV3.IJsonSchema;
28
-
29
- // export interface IComponents<
30
- // Schema extends
31
- // | OpenApi.IJsonSchema
32
- // | OpenApiV3.IJsonSchema = OpenApi.IJsonSchema,
33
- // > {
34
- // schemas?: Record<string, Schema>;
35
- // }
36
-
37
- // export interface IFunction<
38
- // Schema extends
39
- // | OpenApi.IJsonSchema
40
- // | OpenApiV3.IJsonSchema = OpenApi.IJsonSchema,
41
- // > {
42
- // async: boolean;
43
- // name: string;
44
- // parameters: IParameter<Schema>[];
45
- // output: IOutput<Schema> | undefined;
46
- // summary?: string | undefined;
47
- // description?: string | undefined;
48
- // deprecated?: boolean;
49
- // tags?: string[];
50
- // }
51
-
52
- // export interface IParameter<
53
- // Schema extends
54
- // | OpenApi.IJsonSchema
55
- // | OpenApiV3.IJsonSchema = OpenApi.IJsonSchema,
56
- // > {
57
- // name: string;
58
- // required: boolean;
59
- // schema: Schema;
60
- // title?: string | undefined;
61
- // description?: string | undefined;
62
- // }
63
-
64
- // export interface IOutput<
65
- // Schema extends
66
- // | OpenApi.IJsonSchema
67
- // | OpenApiV3.IJsonSchema = OpenApi.IJsonSchema,
68
- // > {
69
- // schema: Schema;
70
- // required: boolean;
71
- // description?: string | undefined;
72
- // }
73
- // }
1
+ import { IJsonSchemaCollection } from "./IJsonSchemaCollection";
2
+
3
+ /**
4
+ * Collection of JSON schemas.
5
+ *
6
+ * @deprecated Use {@link IJsonSchemaCollection} instead please.
7
+ * This interface type would be changed to {@link ILlmApplication} like
8
+ * structure in the future version (maybe next v8 major update).
9
+ * @template Version Version of the OpenAPI specification.
10
+ * @template Types Original TypeScript types used in the JSON schemas.
11
+ * @author Jeongho Nam - https://github.com/samchon
12
+ */
13
+ export import IJsonApplication = IJsonSchemaCollection;
14
+
15
+ // export interface IJsonApplication<
16
+ // Version extends "3.0" | "3.1" = "3.1",
17
+ // App extends any = object,
18
+ // > {
19
+ // version: Version;
20
+ // components: IJsonApplication.IComponents<IJsonApplication.Schema<Version>>;
21
+ // functions: IJsonApplication.IFunction<IJsonApplication.Schema<Version>>[];
22
+ // __application?: App | undefined;
23
+ // }
24
+ // export namespace IJsonApplication {
25
+ // export type Schema<Version extends "3.0" | "3.1"> = Version extends "3.1"
26
+ // ? OpenApi.IJsonSchema
27
+ // : OpenApiV3.IJsonSchema;
28
+
29
+ // export interface IComponents<
30
+ // Schema extends
31
+ // | OpenApi.IJsonSchema
32
+ // | OpenApiV3.IJsonSchema = OpenApi.IJsonSchema,
33
+ // > {
34
+ // schemas?: Record<string, Schema>;
35
+ // }
36
+
37
+ // export interface IFunction<
38
+ // Schema extends
39
+ // | OpenApi.IJsonSchema
40
+ // | OpenApiV3.IJsonSchema = OpenApi.IJsonSchema,
41
+ // > {
42
+ // async: boolean;
43
+ // name: string;
44
+ // parameters: IParameter<Schema>[];
45
+ // output: IOutput<Schema> | undefined;
46
+ // summary?: string | undefined;
47
+ // description?: string | undefined;
48
+ // deprecated?: boolean;
49
+ // tags?: string[];
50
+ // }
51
+
52
+ // export interface IParameter<
53
+ // Schema extends
54
+ // | OpenApi.IJsonSchema
55
+ // | OpenApiV3.IJsonSchema = OpenApi.IJsonSchema,
56
+ // > {
57
+ // name: string;
58
+ // required: boolean;
59
+ // schema: Schema;
60
+ // title?: string | undefined;
61
+ // description?: string | undefined;
62
+ // }
63
+
64
+ // export interface IOutput<
65
+ // Schema extends
66
+ // | OpenApi.IJsonSchema
67
+ // | OpenApiV3.IJsonSchema = OpenApi.IJsonSchema,
68
+ // > {
69
+ // schema: Schema;
70
+ // required: boolean;
71
+ // description?: string | undefined;
72
+ // }
73
+ // }
@@ -1,29 +1,29 @@
1
- import type { OpenApi, OpenApiV3 } from "@samchon/openapi";
2
-
3
- /**
4
- * Collection of JSON schemas.
5
- *
6
- * @template Version Version of the OpenAPI specification.
7
- * @template Types Original TypeScript types used in the JSON schemas.
8
- * @author Jeongho Nam - https://github.com/samchon
9
- */
10
- export type IJsonSchemaCollection<
11
- Version extends "3.0" | "3.1" = "3.1",
12
- Types = unknown[],
13
- > = Version extends "3.0"
14
- ? IJsonSchemaCollection.IV3_0<Types>
15
- : IJsonSchemaCollection.IV3_1<Types>;
16
- export namespace IJsonSchemaCollection {
17
- export interface IV3_0<Types = unknown[]> {
18
- version: "3.0";
19
- schemas: OpenApiV3.IJsonSchema[];
20
- components: OpenApiV3.IComponents;
21
- __types?: Types | undefined;
22
- }
23
- export interface IV3_1<Types = unknown[]> {
24
- version: "3.1";
25
- components: OpenApi.IComponents;
26
- schemas: OpenApi.IJsonSchema[];
27
- __types?: Types | undefined;
28
- }
29
- }
1
+ import type { OpenApi, OpenApiV3 } from "@samchon/openapi";
2
+
3
+ /**
4
+ * Collection of JSON schemas.
5
+ *
6
+ * @template Version Version of the OpenAPI specification.
7
+ * @template Types Original TypeScript types used in the JSON schemas.
8
+ * @author Jeongho Nam - https://github.com/samchon
9
+ */
10
+ export type IJsonSchemaCollection<
11
+ Version extends "3.0" | "3.1" = "3.1",
12
+ Types = unknown[],
13
+ > = Version extends "3.0"
14
+ ? IJsonSchemaCollection.IV3_0<Types>
15
+ : IJsonSchemaCollection.IV3_1<Types>;
16
+ export namespace IJsonSchemaCollection {
17
+ export interface IV3_0<Types = unknown[]> {
18
+ version: "3.0";
19
+ schemas: OpenApiV3.IJsonSchema[];
20
+ components: OpenApiV3.IComponents;
21
+ __types?: Types | undefined;
22
+ }
23
+ export interface IV3_1<Types = unknown[]> {
24
+ version: "3.1";
25
+ components: OpenApi.IComponents;
26
+ schemas: OpenApi.IJsonSchema[];
27
+ __types?: Types | undefined;
28
+ }
29
+ }
@@ -1,63 +1,63 @@
1
- import { OpenApi, OpenApiV3 } from "@samchon/openapi";
2
-
3
- export interface __IJsonApplication<
4
- Version extends "3.0" | "3.1" = "3.1",
5
- App extends any = object,
6
- > {
7
- version: Version;
8
- components: __IJsonApplication.IComponents<
9
- __IJsonApplication.Schema<Version>
10
- >;
11
- functions: __IJsonApplication.IFunction<__IJsonApplication.Schema<Version>>[];
12
- __application?: App | undefined;
13
- }
14
- export namespace __IJsonApplication {
15
- export type Schema<Version extends "3.0" | "3.1"> = Version extends "3.1"
16
- ? OpenApi.IJsonSchema
17
- : OpenApiV3.IJsonSchema;
18
-
19
- export interface IComponents<
20
- Schema extends
21
- | OpenApi.IJsonSchema
22
- | OpenApiV3.IJsonSchema = OpenApi.IJsonSchema,
23
- > {
24
- schemas?: Record<string, Schema>;
25
- }
26
-
27
- export interface IFunction<
28
- Schema extends
29
- | OpenApi.IJsonSchema
30
- | OpenApiV3.IJsonSchema = OpenApi.IJsonSchema,
31
- > {
32
- async: boolean;
33
- name: string;
34
- parameters: IParameter<Schema>[];
35
- output: IOutput<Schema> | undefined;
36
- summary?: string | undefined;
37
- description?: string | undefined;
38
- deprecated?: boolean;
39
- tags?: string[];
40
- }
41
-
42
- export interface IParameter<
43
- Schema extends
44
- | OpenApi.IJsonSchema
45
- | OpenApiV3.IJsonSchema = OpenApi.IJsonSchema,
46
- > {
47
- name: string;
48
- required: boolean;
49
- schema: Schema;
50
- title?: string | undefined;
51
- description?: string | undefined;
52
- }
53
-
54
- export interface IOutput<
55
- Schema extends
56
- | OpenApi.IJsonSchema
57
- | OpenApiV3.IJsonSchema = OpenApi.IJsonSchema,
58
- > {
59
- schema: Schema;
60
- required: boolean;
61
- description?: string | undefined;
62
- }
63
- }
1
+ import { OpenApi, OpenApiV3 } from "@samchon/openapi";
2
+
3
+ export interface __IJsonApplication<
4
+ Version extends "3.0" | "3.1" = "3.1",
5
+ App extends any = object,
6
+ > {
7
+ version: Version;
8
+ components: __IJsonApplication.IComponents<
9
+ __IJsonApplication.Schema<Version>
10
+ >;
11
+ functions: __IJsonApplication.IFunction<__IJsonApplication.Schema<Version>>[];
12
+ __application?: App | undefined;
13
+ }
14
+ export namespace __IJsonApplication {
15
+ export type Schema<Version extends "3.0" | "3.1"> = Version extends "3.1"
16
+ ? OpenApi.IJsonSchema
17
+ : OpenApiV3.IJsonSchema;
18
+
19
+ export interface IComponents<
20
+ Schema extends
21
+ | OpenApi.IJsonSchema
22
+ | OpenApiV3.IJsonSchema = OpenApi.IJsonSchema,
23
+ > {
24
+ schemas?: Record<string, Schema>;
25
+ }
26
+
27
+ export interface IFunction<
28
+ Schema extends
29
+ | OpenApi.IJsonSchema
30
+ | OpenApiV3.IJsonSchema = OpenApi.IJsonSchema,
31
+ > {
32
+ async: boolean;
33
+ name: string;
34
+ parameters: IParameter<Schema>[];
35
+ output: IOutput<Schema> | undefined;
36
+ summary?: string | undefined;
37
+ description?: string | undefined;
38
+ deprecated?: boolean;
39
+ tags?: string[];
40
+ }
41
+
42
+ export interface IParameter<
43
+ Schema extends
44
+ | OpenApi.IJsonSchema
45
+ | OpenApiV3.IJsonSchema = OpenApi.IJsonSchema,
46
+ > {
47
+ name: string;
48
+ required: boolean;
49
+ schema: Schema;
50
+ title?: string | undefined;
51
+ description?: string | undefined;
52
+ }
53
+
54
+ export interface IOutput<
55
+ Schema extends
56
+ | OpenApi.IJsonSchema
57
+ | OpenApiV3.IJsonSchema = OpenApi.IJsonSchema,
58
+ > {
59
+ schema: Schema;
60
+ required: boolean;
61
+ description?: string | undefined;
62
+ }
63
+ }
@@ -1,55 +1,55 @@
1
- import { ILlmApplication, ILlmSchema } from "@samchon/openapi";
2
-
3
- import { ILlmFunctionOfValidate } from "./ILlmFunctionOfValidate";
4
-
5
- /**
6
- * Application of LLM function calling with validators.
7
- *
8
- * `ILlmApplication` is a data structure representing a collection of
9
- * {@link ILlmFunctionOfValidate LLM function calling schemas}, composed from a native
10
- * TypeScript class (or interface) type by the `typia.llm.applicationOfValidate<App, Model>()`
11
- * function.
12
- *
13
- * If you put the returned {@link ILlmApplicationOfValidate.functions} objects to the
14
- * LLM provider like [OpenAI (ChatGPT)](https://openai.com/), the LLM will automatically
15
- * select the proper function and fill its arguments from the conversation
16
- * (maybe chatting text) with user (human). This is the concept of the LLM function calling.
17
- *
18
- * Additionally, the LLM function calling sometimes take a mistake that composing wrong typed
19
- * {@link ILlmFunctionOfValidate.parameters}. In that case, deliver return value of the
20
- * {@link ILlmFunctionOfValidate.validate} function, then LLM provider will correct the
21
- * parameters at the next conversation. The {@link ILlmFunctionOfValidate.validate} function
22
- * is a validator function reporting the detailed information about the wrong typed parameters.
23
- *
24
- * By the way, there can be some parameters (or their nested properties) which must be
25
- * composed by Human, not by LLM. File uploading feature or some sensitive information
26
- * like secrety key (password) are the examples. In that case, you can separate the
27
- * function parameters to both LLM and human sides by configuring the
28
- * {@link ILlmApplication.IOptions.separate} property. The separated parameters are
29
- * assigned to the {@link ILlmFunction.separated} property.
30
- *
31
- * For reference, when both LLM and Human filled parameter values to call, you can
32
- * merge them by calling the {@link HttpLlm.mergeParameters} function. In other words,
33
- * if you've configured the {@link ILlmApplication.IOptions.separate} property, you
34
- * have to merge the separated parameters before the funtion call execution.
35
- *
36
- * @reference https://platform.openai.com/docs/guides/function-calling
37
- * @author Jeongho Nam - https://github.com/samchon
38
- */
39
- export interface ILlmApplicationOfValidate<Model extends ILlmSchema.Model>
40
- extends ILlmApplication<Model> {
41
- /**
42
- * List of function metadata.
43
- *
44
- * List of function metadata that can be used for the LLM function call.
45
- *
46
- * Also, every functions have their own parameters validator
47
- * {@link ILlmFunctionOfValidate.validate}. If the LLM function calling composes wrong
48
- * typed parameters, then deliver return value of it, then LLM will correct parameters
49
- * at the next conversation.
50
- */
51
- functions: ILlmFunctionOfValidate<Model>[];
52
- }
53
- export namespace ILlmApplicationOfValidate {
54
- export import IOptions = ILlmApplication.IOptions;
55
- }
1
+ import { ILlmApplication, ILlmSchema } from "@samchon/openapi";
2
+
3
+ import { ILlmFunctionOfValidate } from "./ILlmFunctionOfValidate";
4
+
5
+ /**
6
+ * Application of LLM function calling with validators.
7
+ *
8
+ * `ILlmApplication` is a data structure representing a collection of
9
+ * {@link ILlmFunctionOfValidate LLM function calling schemas}, composed from a native
10
+ * TypeScript class (or interface) type by the `typia.llm.applicationOfValidate<App, Model>()`
11
+ * function.
12
+ *
13
+ * If you put the returned {@link ILlmApplicationOfValidate.functions} objects to the
14
+ * LLM provider like [OpenAI (ChatGPT)](https://openai.com/), the LLM will automatically
15
+ * select the proper function and fill its arguments from the conversation
16
+ * (maybe chatting text) with user (human). This is the concept of the LLM function calling.
17
+ *
18
+ * Additionally, the LLM function calling sometimes take a mistake that composing wrong typed
19
+ * {@link ILlmFunctionOfValidate.parameters}. In that case, deliver return value of the
20
+ * {@link ILlmFunctionOfValidate.validate} function, then LLM provider will correct the
21
+ * parameters at the next conversation. The {@link ILlmFunctionOfValidate.validate} function
22
+ * is a validator function reporting the detailed information about the wrong typed parameters.
23
+ *
24
+ * By the way, there can be some parameters (or their nested properties) which must be
25
+ * composed by Human, not by LLM. File uploading feature or some sensitive information
26
+ * like secrety key (password) are the examples. In that case, you can separate the
27
+ * function parameters to both LLM and human sides by configuring the
28
+ * {@link ILlmApplication.IOptions.separate} property. The separated parameters are
29
+ * assigned to the {@link ILlmFunction.separated} property.
30
+ *
31
+ * For reference, when both LLM and Human filled parameter values to call, you can
32
+ * merge them by calling the {@link HttpLlm.mergeParameters} function. In other words,
33
+ * if you've configured the {@link ILlmApplication.IOptions.separate} property, you
34
+ * have to merge the separated parameters before the funtion call execution.
35
+ *
36
+ * @reference https://platform.openai.com/docs/guides/function-calling
37
+ * @author Jeongho Nam - https://github.com/samchon
38
+ */
39
+ export interface ILlmApplicationOfValidate<Model extends ILlmSchema.Model>
40
+ extends ILlmApplication<Model> {
41
+ /**
42
+ * List of function metadata.
43
+ *
44
+ * List of function metadata that can be used for the LLM function call.
45
+ *
46
+ * Also, every functions have their own parameters validator
47
+ * {@link ILlmFunctionOfValidate.validate}. If the LLM function calling composes wrong
48
+ * typed parameters, then deliver return value of it, then LLM will correct parameters
49
+ * at the next conversation.
50
+ */
51
+ functions: ILlmFunctionOfValidate<Model>[];
52
+ }
53
+ export namespace ILlmApplicationOfValidate {
54
+ export import IOptions = ILlmApplication.IOptions;
55
+ }
@@ -1,39 +1,39 @@
1
- import { ILlmFunction, ILlmSchema } from "@samchon/openapi";
2
-
3
- import { IValidation } from "../../IValidation";
4
-
5
- /**
6
- * LLM function metadata with validator.
7
- *
8
- * `ILlmFunctionOfValidate` is an interface representing a function metadata,
9
- * which has been used for the LLM (Language Large Model) function
10
- * calling. Also, it's a function structure containing the function
11
- * {@link name}, {@link parameters} and {@link output return type}.
12
- *
13
- * If you provide this `ILlmFunctionOfValidate` data to the LLM provider like "OpenAI",
14
- * the "OpenAI" will compose a function arguments by analyzing conversations
15
- * with the user. With the LLM composed arguments, you can execute the function
16
- * and get the result.
17
- *
18
- * If the LLM function calling take s a mistake that composing wrong typed
19
- * {@link parameters}, you can correct the parameters by delivering the return
20
- * value of the {@link validate} function. The {@link validate} function is a
21
- * validator function reporting the detailed information about the wrong typed
22
- * {@link parameters}.
23
- *
24
- * By the way, do not ensure that LLM will always provide the correct arguments.
25
- * The LLM of present age is not perfect, and sometimes takes a mistake that composing
26
- * wrong typed {@link parameters}. In that case, you can correc the parameters by
27
- * delivering the return value of the {@link validate} function. The {@link validate}
28
- * function reports the detailed information about the wrong typed {@link parameters},
29
- *
30
- * @reference https://platform.openai.com/docs/guides/function-calling
31
- * @author Jeongho Nam - https://github.com/samchon
32
- */
33
- export interface ILlmFunctionOfValidate<Model extends ILlmSchema.Model>
34
- extends ILlmFunction<Model> {
35
- validate(props: object): IValidation<unknown>;
36
- }
37
- export namespace ILlmFunctionOfValidate {
38
- export import ISeparated = ILlmFunction.ISeparated;
39
- }
1
+ import { ILlmFunction, ILlmSchema } from "@samchon/openapi";
2
+
3
+ import { IValidation } from "../../IValidation";
4
+
5
+ /**
6
+ * LLM function metadata with validator.
7
+ *
8
+ * `ILlmFunctionOfValidate` is an interface representing a function metadata,
9
+ * which has been used for the LLM (Language Large Model) function
10
+ * calling. Also, it's a function structure containing the function
11
+ * {@link name}, {@link parameters} and {@link output return type}.
12
+ *
13
+ * If you provide this `ILlmFunctionOfValidate` data to the LLM provider like "OpenAI",
14
+ * the "OpenAI" will compose a function arguments by analyzing conversations
15
+ * with the user. With the LLM composed arguments, you can execute the function
16
+ * and get the result.
17
+ *
18
+ * If the LLM function calling take s a mistake that composing wrong typed
19
+ * {@link parameters}, you can correct the parameters by delivering the return
20
+ * value of the {@link validate} function. The {@link validate} function is a
21
+ * validator function reporting the detailed information about the wrong typed
22
+ * {@link parameters}.
23
+ *
24
+ * By the way, do not ensure that LLM will always provide the correct arguments.
25
+ * The LLM of present age is not perfect, and sometimes takes a mistake that composing
26
+ * wrong typed {@link parameters}. In that case, you can correc the parameters by
27
+ * delivering the return value of the {@link validate} function. The {@link validate}
28
+ * function reports the detailed information about the wrong typed {@link parameters},
29
+ *
30
+ * @reference https://platform.openai.com/docs/guides/function-calling
31
+ * @author Jeongho Nam - https://github.com/samchon
32
+ */
33
+ export interface ILlmFunctionOfValidate<Model extends ILlmSchema.Model>
34
+ extends ILlmFunction<Model> {
35
+ validate(props: object): IValidation<unknown>;
36
+ }
37
+ export namespace ILlmFunctionOfValidate {
38
+ export import ISeparated = ILlmFunction.ISeparated;
39
+ }