typia 8.0.0-dev.20250225 → 8.0.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 (541) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +150 -150
  3. package/lib/IValidation.d.ts +1 -17
  4. package/lib/executable/setup/PluginConfigurator.js +3 -3
  5. package/lib/executable/typia.js +15 -15
  6. package/lib/index.mjs +0 -2
  7. package/lib/index.mjs.map +1 -1
  8. package/lib/llm.d.ts +33 -115
  9. package/lib/llm.js +5 -5
  10. package/lib/llm.js.map +1 -1
  11. package/lib/llm.mjs +4 -4
  12. package/lib/llm.mjs.map +1 -1
  13. package/lib/module.mjs +0 -2
  14. package/lib/module.mjs.map +1 -1
  15. package/lib/programmers/llm/LlmApplicationProgrammer.d.ts +5 -0
  16. package/lib/programmers/llm/LlmApplicationProgrammer.js +57 -16
  17. package/lib/programmers/llm/LlmApplicationProgrammer.js.map +1 -1
  18. package/lib/schemas/llm/ILlmApplicationOfValidate.d.ts +3 -50
  19. package/lib/schemas/llm/ILlmApplicationOfValidate.js +0 -4
  20. package/lib/schemas/llm/ILlmApplicationOfValidate.js.map +1 -1
  21. package/lib/schemas/llm/ILlmFunctionOfValidate.d.ts +3 -34
  22. package/lib/schemas/llm/ILlmFunctionOfValidate.js +0 -4
  23. package/lib/schemas/llm/ILlmFunctionOfValidate.js.map +1 -1
  24. package/lib/transformers/CallExpressionTransformer.js +1 -2
  25. package/lib/transformers/CallExpressionTransformer.js.map +1 -1
  26. package/lib/transformers/features/llm/LlmApplicationTransformer.js +3 -0
  27. package/lib/transformers/features/llm/LlmApplicationTransformer.js.map +1 -1
  28. package/package.json +4 -5
  29. package/src/AssertionGuard.ts +1 -1
  30. package/src/CamelCase.ts +75 -75
  31. package/src/IRandomGenerator.ts +49 -49
  32. package/src/IReadableURLSearchParams.ts +9 -9
  33. package/src/IValidation.ts +1 -21
  34. package/src/PascalCase.ts +71 -71
  35. package/src/Primitive.ts +92 -92
  36. package/src/Resolved.ts +74 -74
  37. package/src/SnakeCase.ts +126 -126
  38. package/src/TypeGuardError.ts +37 -37
  39. package/src/executable/TypiaGenerateWizard.ts +83 -83
  40. package/src/executable/TypiaPatchWizard.ts +45 -45
  41. package/src/executable/TypiaSetupWizard.ts +171 -171
  42. package/src/executable/setup/ArgumentParser.ts +42 -42
  43. package/src/executable/setup/CommandExecutor.ts +8 -8
  44. package/src/executable/setup/FileRetriever.ts +19 -19
  45. package/src/executable/setup/PackageManager.ts +87 -87
  46. package/src/executable/setup/PluginConfigurator.ts +69 -69
  47. package/src/executable/typia.ts +55 -55
  48. package/src/factories/CommentFactory.ts +79 -79
  49. package/src/factories/ExpressionFactory.ts +216 -216
  50. package/src/factories/IdentifierFactory.ts +89 -89
  51. package/src/factories/JsonMetadataFactory.ts +83 -83
  52. package/src/factories/LiteralFactory.ts +52 -52
  53. package/src/factories/MetadataCollection.ts +278 -278
  54. package/src/factories/MetadataCommentTagFactory.ts +650 -650
  55. package/src/factories/MetadataFactory.ts +404 -404
  56. package/src/factories/MetadataTypeTagFactory.ts +413 -413
  57. package/src/factories/MetadataTypeTagSchemaFactory.ts +82 -82
  58. package/src/factories/NumericRangeFactory.ts +72 -72
  59. package/src/factories/ProtobufFactory.ts +875 -875
  60. package/src/factories/StatementFactory.ts +90 -90
  61. package/src/factories/TemplateFactory.ts +64 -64
  62. package/src/factories/TypeFactory.ts +140 -140
  63. package/src/factories/ValueFactory.ts +12 -12
  64. package/src/factories/internal/metadata/IMetadataIteratorProps.ts +17 -17
  65. package/src/factories/internal/metadata/MetadataHelper.ts +21 -21
  66. package/src/factories/internal/metadata/emend_metadata_atomics.ts +45 -45
  67. package/src/factories/internal/metadata/emplace_metadata_alias.ts +33 -33
  68. package/src/factories/internal/metadata/emplace_metadata_array_type.ts +39 -39
  69. package/src/factories/internal/metadata/emplace_metadata_object.ts +208 -208
  70. package/src/factories/internal/metadata/emplace_metadata_tuple.ts +57 -57
  71. package/src/factories/internal/metadata/explore_metadata.ts +31 -31
  72. package/src/factories/internal/metadata/iterate_metadata.ts +54 -54
  73. package/src/factories/internal/metadata/iterate_metadata_alias.ts +33 -33
  74. package/src/factories/internal/metadata/iterate_metadata_array.ts +63 -63
  75. package/src/factories/internal/metadata/iterate_metadata_atomic.ts +62 -62
  76. package/src/factories/internal/metadata/iterate_metadata_coalesce.ts +28 -28
  77. package/src/factories/internal/metadata/iterate_metadata_collection.ts +146 -146
  78. package/src/factories/internal/metadata/iterate_metadata_comment_tags.ts +32 -32
  79. package/src/factories/internal/metadata/iterate_metadata_constant.ts +76 -76
  80. package/src/factories/internal/metadata/iterate_metadata_escape.ts +49 -49
  81. package/src/factories/internal/metadata/iterate_metadata_function.ts +91 -91
  82. package/src/factories/internal/metadata/iterate_metadata_intersection.ts +212 -212
  83. package/src/factories/internal/metadata/iterate_metadata_map.ts +57 -57
  84. package/src/factories/internal/metadata/iterate_metadata_native.ts +255 -255
  85. package/src/factories/internal/metadata/iterate_metadata_object.ts +35 -35
  86. package/src/factories/internal/metadata/iterate_metadata_set.ts +57 -57
  87. package/src/factories/internal/metadata/iterate_metadata_sort.ts +87 -87
  88. package/src/factories/internal/metadata/iterate_metadata_template.ts +41 -41
  89. package/src/factories/internal/metadata/iterate_metadata_tuple.ts +26 -26
  90. package/src/factories/internal/metadata/iterate_metadata_union.ts +19 -19
  91. package/src/functional.ts +750 -750
  92. package/src/http.ts +1047 -1047
  93. package/src/index.ts +4 -4
  94. package/src/internal/_IProtobufWriter.ts +18 -18
  95. package/src/internal/_ProtobufReader.ts +194 -194
  96. package/src/internal/_ProtobufSizer.ts +145 -145
  97. package/src/internal/_ProtobufWriter.ts +145 -145
  98. package/src/internal/_accessExpressionAsString.ts +46 -46
  99. package/src/internal/_assertGuard.ts +13 -13
  100. package/src/internal/_functionalTypeGuardErrorFactory.ts +4 -4
  101. package/src/internal/_httpFormDataReadArray.ts +4 -4
  102. package/src/internal/_httpFormDataReadBigint.ts +18 -18
  103. package/src/internal/_httpFormDataReadBlob.ts +10 -10
  104. package/src/internal/_httpFormDataReadBoolean.ts +16 -16
  105. package/src/internal/_httpFormDataReadFile.ts +10 -10
  106. package/src/internal/_httpFormDataReadNumber.ts +15 -15
  107. package/src/internal/_httpFormDataReadString.ts +10 -10
  108. package/src/internal/_httpHeaderReadBigint.ts +10 -10
  109. package/src/internal/_httpHeaderReadBoolean.ts +8 -8
  110. package/src/internal/_httpHeaderReadNumber.ts +7 -7
  111. package/src/internal/_httpParameterReadBigint.ts +10 -10
  112. package/src/internal/_httpParameterReadBoolean.ts +8 -8
  113. package/src/internal/_httpParameterReadNumber.ts +7 -7
  114. package/src/internal/_httpParameterReadString.ts +2 -2
  115. package/src/internal/_httpQueryParseURLSearchParams.ts +12 -12
  116. package/src/internal/_httpQueryReadArray.ts +4 -4
  117. package/src/internal/_httpQueryReadBigint.ts +12 -12
  118. package/src/internal/_httpQueryReadBoolean.ts +14 -14
  119. package/src/internal/_httpQueryReadNumber.ts +9 -9
  120. package/src/internal/_httpQueryReadString.ts +4 -4
  121. package/src/internal/_isBetween.ts +2 -2
  122. package/src/internal/_isBigintString.ts +8 -8
  123. package/src/internal/_isFormatByte.ts +7 -7
  124. package/src/internal/_isFormatDate.ts +3 -3
  125. package/src/internal/_isFormatDateTime.ts +4 -4
  126. package/src/internal/_isFormatDuration.ts +4 -4
  127. package/src/internal/_isFormatEmail.ts +4 -4
  128. package/src/internal/_isFormatHostname.ts +4 -4
  129. package/src/internal/_isFormatIdnEmail.ts +4 -4
  130. package/src/internal/_isFormatIdnHostname.ts +4 -4
  131. package/src/internal/_isFormatIpv4.ts +4 -4
  132. package/src/internal/_isFormatIpv6.ts +4 -4
  133. package/src/internal/_isFormatIri.ts +3 -3
  134. package/src/internal/_isFormatIriReference.ts +4 -4
  135. package/src/internal/_isFormatJsonPointer.ts +3 -3
  136. package/src/internal/_isFormatPassword.ts +1 -1
  137. package/src/internal/_isFormatRegex.ts +8 -8
  138. package/src/internal/_isFormatRelativeJsonPointer.ts +4 -4
  139. package/src/internal/_isFormatTime.ts +4 -4
  140. package/src/internal/_isFormatUri.ts +6 -6
  141. package/src/internal/_isFormatUriReference.ts +5 -5
  142. package/src/internal/_isFormatUriTemplate.ts +4 -4
  143. package/src/internal/_isFormatUrl.ts +4 -4
  144. package/src/internal/_isFormatUuid.ts +3 -3
  145. package/src/internal/_isTypeFloat.ts +5 -5
  146. package/src/internal/_isTypeInt32.ts +5 -5
  147. package/src/internal/_isTypeInt64.ts +5 -5
  148. package/src/internal/_isTypeUint32.ts +5 -5
  149. package/src/internal/_isTypeUint64.ts +5 -5
  150. package/src/internal/_isUniqueItems.ts +159 -159
  151. package/src/internal/_jsonStringifyNumber.ts +12 -12
  152. package/src/internal/_jsonStringifyRest.ts +3 -3
  153. package/src/internal/_jsonStringifyString.ts +42 -42
  154. package/src/internal/_jsonStringifyTail.ts +2 -2
  155. package/src/internal/_llmApplicationFinalize.ts +20 -20
  156. package/src/internal/_miscCloneAny.ts +46 -46
  157. package/src/internal/_notationAny.ts +37 -37
  158. package/src/internal/_notationCamel.ts +13 -13
  159. package/src/internal/_notationPascal.ts +8 -8
  160. package/src/internal/_notationSnake.ts +43 -43
  161. package/src/internal/_randomArray.ts +21 -21
  162. package/src/internal/_randomBigint.ts +6 -6
  163. package/src/internal/_randomBoolean.ts +1 -1
  164. package/src/internal/_randomFormatByte.ts +3 -3
  165. package/src/internal/_randomFormatDate.ts +18 -18
  166. package/src/internal/_randomFormatDatetime.ts +16 -16
  167. package/src/internal/_randomFormatDuration.ts +27 -27
  168. package/src/internal/_randomFormatEmail.ts +11 -11
  169. package/src/internal/_randomFormatHostname.ts +6 -6
  170. package/src/internal/_randomFormatIdnEmail.ts +3 -3
  171. package/src/internal/_randomFormatIdnHostname.ts +3 -3
  172. package/src/internal/_randomFormatIpv4.ts +11 -11
  173. package/src/internal/_randomFormatIpv6.ts +11 -11
  174. package/src/internal/_randomFormatIri.ts +3 -3
  175. package/src/internal/_randomFormatIriReference.ts +3 -3
  176. package/src/internal/_randomFormatJsonPointer.ts +7 -7
  177. package/src/internal/_randomFormatPassword.ts +8 -8
  178. package/src/internal/_randomFormatRegex.ts +4 -4
  179. package/src/internal/_randomFormatRelativeJsonPointer.ts +8 -8
  180. package/src/internal/_randomFormatTime.ts +14 -14
  181. package/src/internal/_randomFormatUri.ts +3 -3
  182. package/src/internal/_randomFormatUriReference.ts +3 -3
  183. package/src/internal/_randomFormatUriTemplate.ts +3 -3
  184. package/src/internal/_randomFormatUrl.ts +11 -11
  185. package/src/internal/_randomFormatUuid.ts +6 -6
  186. package/src/internal/_randomInteger.ts +47 -47
  187. package/src/internal/_randomNumber.ts +74 -74
  188. package/src/internal/_randomPattern.ts +10 -10
  189. package/src/internal/_randomPick.ts +9 -9
  190. package/src/internal/_randomString.ts +24 -24
  191. package/src/internal/_throwTypeGuardError.ts +5 -5
  192. package/src/internal/_validateReport.ts +13 -13
  193. package/src/internal/private/__notationCapitalize.ts +2 -2
  194. package/src/internal/private/__notationUnsnake.ts +24 -24
  195. package/src/json.ts +752 -752
  196. package/src/llm.ts +396 -481
  197. package/src/misc.ts +658 -658
  198. package/src/module.ts +937 -937
  199. package/src/notations.ts +827 -827
  200. package/src/programmers/AssertProgrammer.ts +454 -454
  201. package/src/programmers/CheckerProgrammer.ts +1617 -1617
  202. package/src/programmers/FeatureProgrammer.ts +622 -622
  203. package/src/programmers/ImportProgrammer.ts +185 -185
  204. package/src/programmers/IsProgrammer.ts +273 -273
  205. package/src/programmers/RandomProgrammer.ts +1190 -1190
  206. package/src/programmers/TypiaProgrammer.ts +174 -174
  207. package/src/programmers/ValidateProgrammer.ts +439 -439
  208. package/src/programmers/functional/FunctionalAssertFunctionProgrammer.ts +153 -153
  209. package/src/programmers/functional/FunctionalAssertParametersProgrammer.ts +125 -125
  210. package/src/programmers/functional/FunctionalAssertReturnProgrammer.ts +115 -115
  211. package/src/programmers/functional/FunctionalIsFunctionProgrammer.ts +72 -72
  212. package/src/programmers/functional/FunctionalIsParametersProgrammer.ts +113 -113
  213. package/src/programmers/functional/FunctionalIsReturnProgrammer.ts +116 -116
  214. package/src/programmers/functional/FunctionalValidateFunctionProgrammer.ts +119 -119
  215. package/src/programmers/functional/FunctionalValidateParametersProgrammer.ts +274 -274
  216. package/src/programmers/functional/FunctionalValidateReturnProgrammer.ts +135 -135
  217. package/src/programmers/functional/internal/FunctionalGeneralProgrammer.ts +34 -34
  218. package/src/programmers/helpers/AtomicPredicator.ts +35 -35
  219. package/src/programmers/helpers/CloneJoiner.ts +143 -143
  220. package/src/programmers/helpers/FunctionProgrammer.ts +67 -67
  221. package/src/programmers/helpers/HttpMetadataUtil.ts +21 -21
  222. package/src/programmers/helpers/ICheckEntry.ts +13 -13
  223. package/src/programmers/helpers/IExpressionEntry.ts +12 -12
  224. package/src/programmers/helpers/NotationJoiner.ts +144 -144
  225. package/src/programmers/helpers/OptionPredicator.ts +15 -15
  226. package/src/programmers/helpers/ProtobufUtil.ts +228 -228
  227. package/src/programmers/helpers/ProtobufWire.ts +34 -34
  228. package/src/programmers/helpers/PruneJoiner.ts +148 -148
  229. package/src/programmers/helpers/RandomJoiner.ts +168 -168
  230. package/src/programmers/helpers/StringifyJoinder.ts +115 -115
  231. package/src/programmers/helpers/StringifyPredicator.ts +13 -13
  232. package/src/programmers/helpers/UnionExplorer.ts +372 -372
  233. package/src/programmers/helpers/UnionPredicator.ts +79 -79
  234. package/src/programmers/helpers/disable_function_programmer_declare.ts +32 -32
  235. package/src/programmers/http/HttpAssertFormDataProgrammer.ts +99 -99
  236. package/src/programmers/http/HttpAssertHeadersProgrammer.ts +99 -99
  237. package/src/programmers/http/HttpAssertQueryProgrammer.ts +105 -105
  238. package/src/programmers/http/HttpFormDataProgrammer.ts +308 -308
  239. package/src/programmers/http/HttpHeadersProgrammer.ts +400 -400
  240. package/src/programmers/http/HttpIsFormDataProgrammer.ts +108 -108
  241. package/src/programmers/http/HttpIsHeadersProgrammer.ts +108 -108
  242. package/src/programmers/http/HttpIsQueryProgrammer.ts +114 -114
  243. package/src/programmers/http/HttpParameterProgrammer.ts +115 -115
  244. package/src/programmers/http/HttpQueryProgrammer.ts +336 -336
  245. package/src/programmers/http/HttpValidateFormDataProgrammer.ts +92 -92
  246. package/src/programmers/http/HttpValidateHeadersProgrammer.ts +92 -92
  247. package/src/programmers/http/HttpValidateQueryProgrammer.ts +98 -98
  248. package/src/programmers/internal/check_array_length.ts +47 -47
  249. package/src/programmers/internal/check_bigint.ts +50 -50
  250. package/src/programmers/internal/check_dynamic_key.ts +201 -201
  251. package/src/programmers/internal/check_dynamic_properties.ts +208 -208
  252. package/src/programmers/internal/check_everything.ts +23 -23
  253. package/src/programmers/internal/check_native.ts +27 -27
  254. package/src/programmers/internal/check_number.ts +112 -112
  255. package/src/programmers/internal/check_object.ts +75 -75
  256. package/src/programmers/internal/check_string.ts +50 -50
  257. package/src/programmers/internal/check_template.ts +48 -48
  258. package/src/programmers/internal/check_union_array_like.ts +335 -335
  259. package/src/programmers/internal/decode_union_object.ts +116 -116
  260. package/src/programmers/internal/feature_object_entries.ts +61 -61
  261. package/src/programmers/internal/json_schema_alias.ts +47 -47
  262. package/src/programmers/internal/json_schema_array.ts +45 -45
  263. package/src/programmers/internal/json_schema_bigint.ts +15 -15
  264. package/src/programmers/internal/json_schema_boolean.ts +15 -15
  265. package/src/programmers/internal/json_schema_constant.ts +26 -26
  266. package/src/programmers/internal/json_schema_description.ts +12 -12
  267. package/src/programmers/internal/json_schema_discriminator.ts +35 -35
  268. package/src/programmers/internal/json_schema_escaped.ts +82 -82
  269. package/src/programmers/internal/json_schema_native.ts +33 -33
  270. package/src/programmers/internal/json_schema_number.ts +15 -15
  271. package/src/programmers/internal/json_schema_object.ts +158 -158
  272. package/src/programmers/internal/json_schema_plugin.ts +18 -18
  273. package/src/programmers/internal/json_schema_station.ts +182 -182
  274. package/src/programmers/internal/json_schema_string.ts +15 -15
  275. package/src/programmers/internal/json_schema_template.ts +55 -55
  276. package/src/programmers/internal/json_schema_title.ts +20 -20
  277. package/src/programmers/internal/json_schema_tuple.ts +35 -35
  278. package/src/programmers/internal/metadata_to_pattern.ts +42 -42
  279. package/src/programmers/internal/postfix_of_tuple.ts +5 -5
  280. package/src/programmers/internal/prune_object_properties.ts +71 -71
  281. package/src/programmers/internal/stringify_dynamic_properties.ts +162 -162
  282. package/src/programmers/internal/stringify_native.ts +7 -7
  283. package/src/programmers/internal/stringify_regular_properties.ts +81 -81
  284. package/src/programmers/internal/template_to_pattern.ts +23 -23
  285. package/src/programmers/internal/wrap_metadata_rest_tuple.ts +23 -23
  286. package/src/programmers/json/JsonApplicationProgrammer.ts +279 -279
  287. package/src/programmers/json/JsonAssertParseProgrammer.ts +113 -113
  288. package/src/programmers/json/JsonAssertStringifyProgrammer.ts +115 -115
  289. package/src/programmers/json/JsonIsParseProgrammer.ts +114 -114
  290. package/src/programmers/json/JsonIsStringifyProgrammer.ts +108 -108
  291. package/src/programmers/json/JsonSchemasProgrammer.ts +91 -91
  292. package/src/programmers/json/JsonStringifyProgrammer.ts +1124 -1124
  293. package/src/programmers/json/JsonValidateParseProgrammer.ts +105 -105
  294. package/src/programmers/json/JsonValidateStringifyProgrammer.ts +124 -124
  295. package/src/programmers/llm/LlmApplicationProgrammer.ts +413 -327
  296. package/src/programmers/llm/LlmModelPredicator.ts +127 -127
  297. package/src/programmers/llm/LlmParametersProgrammer.ts +93 -93
  298. package/src/programmers/llm/LlmSchemaProgrammer.ts +192 -192
  299. package/src/programmers/misc/MiscAssertCloneProgrammer.ts +95 -95
  300. package/src/programmers/misc/MiscAssertPruneProgrammer.ts +116 -116
  301. package/src/programmers/misc/MiscCloneProgrammer.ts +1032 -1032
  302. package/src/programmers/misc/MiscIsCloneProgrammer.ts +99 -99
  303. package/src/programmers/misc/MiscIsPruneProgrammer.ts +97 -97
  304. package/src/programmers/misc/MiscLiteralsProgrammer.ts +80 -80
  305. package/src/programmers/misc/MiscPruneProgrammer.ts +728 -728
  306. package/src/programmers/misc/MiscValidateCloneProgrammer.ts +111 -111
  307. package/src/programmers/misc/MiscValidatePruneProgrammer.ts +113 -113
  308. package/src/programmers/notations/NotationAssertGeneralProgrammer.ts +101 -101
  309. package/src/programmers/notations/NotationGeneralProgrammer.ts +984 -984
  310. package/src/programmers/notations/NotationIsGeneralProgrammer.ts +105 -105
  311. package/src/programmers/notations/NotationValidateGeneralProgrammer.ts +119 -119
  312. package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +98 -98
  313. package/src/programmers/protobuf/ProtobufAssertEncodeProgrammer.ts +102 -102
  314. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +654 -654
  315. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +945 -945
  316. package/src/programmers/protobuf/ProtobufIsDecodeProgrammer.ts +109 -109
  317. package/src/programmers/protobuf/ProtobufIsEncodeProgrammer.ts +98 -98
  318. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +179 -179
  319. package/src/programmers/protobuf/ProtobufValidateDecodeProgrammer.ts +92 -92
  320. package/src/programmers/protobuf/ProtobufValidateEncodeProgrammer.ts +119 -119
  321. package/src/protobuf.ts +868 -868
  322. package/src/reflect.ts +57 -57
  323. package/src/schemas/json/IJsonApplication.ts +73 -73
  324. package/src/schemas/json/IJsonSchemaCollection.ts +29 -29
  325. package/src/schemas/json/__IJsonApplication.ts +63 -63
  326. package/src/schemas/llm/ILlmApplicationOfValidate.ts +6 -55
  327. package/src/schemas/llm/ILlmFunctionOfValidate.ts +6 -39
  328. package/src/schemas/metadata/IJsDocTagInfo.ts +10 -10
  329. package/src/schemas/metadata/IMetadata.ts +35 -35
  330. package/src/schemas/metadata/IMetadataAlias.ts +6 -6
  331. package/src/schemas/metadata/IMetadataAliasType.ts +12 -12
  332. package/src/schemas/metadata/IMetadataApplication.ts +7 -7
  333. package/src/schemas/metadata/IMetadataArray.ts +6 -6
  334. package/src/schemas/metadata/IMetadataArrayType.ts +10 -10
  335. package/src/schemas/metadata/IMetadataAtomic.ts +6 -6
  336. package/src/schemas/metadata/IMetadataComponents.ts +11 -11
  337. package/src/schemas/metadata/IMetadataConstant.ts +18 -18
  338. package/src/schemas/metadata/IMetadataConstantValue.ts +11 -11
  339. package/src/schemas/metadata/IMetadataDictionary.ts +11 -11
  340. package/src/schemas/metadata/IMetadataEscaped.ts +6 -6
  341. package/src/schemas/metadata/IMetadataFunction.ts +8 -8
  342. package/src/schemas/metadata/IMetadataMap.ts +8 -8
  343. package/src/schemas/metadata/IMetadataNative.ts +6 -6
  344. package/src/schemas/metadata/IMetadataObject.ts +6 -6
  345. package/src/schemas/metadata/IMetadataObjectType.ts +13 -13
  346. package/src/schemas/metadata/IMetadataParameter.ts +9 -9
  347. package/src/schemas/metadata/IMetadataProperty.ts +9 -9
  348. package/src/schemas/metadata/IMetadataSet.ts +7 -7
  349. package/src/schemas/metadata/IMetadataTemplate.ts +7 -7
  350. package/src/schemas/metadata/IMetadataTuple.ts +6 -6
  351. package/src/schemas/metadata/IMetadataTupleType.ts +10 -10
  352. package/src/schemas/metadata/IMetadataTypeTag.ts +16 -16
  353. package/src/schemas/metadata/Metadata.ts +669 -669
  354. package/src/schemas/metadata/MetadataAlias.ts +46 -46
  355. package/src/schemas/metadata/MetadataAliasType.ts +63 -63
  356. package/src/schemas/metadata/MetadataApplication.ts +44 -44
  357. package/src/schemas/metadata/MetadataArray.ts +49 -49
  358. package/src/schemas/metadata/MetadataArrayType.ts +57 -57
  359. package/src/schemas/metadata/MetadataAtomic.ts +87 -87
  360. package/src/schemas/metadata/MetadataComponents.ts +98 -98
  361. package/src/schemas/metadata/MetadataConstant.ts +34 -34
  362. package/src/schemas/metadata/MetadataConstantValue.ts +62 -62
  363. package/src/schemas/metadata/MetadataEscaped.ts +51 -51
  364. package/src/schemas/metadata/MetadataFunction.ts +49 -49
  365. package/src/schemas/metadata/MetadataMap.ts +48 -48
  366. package/src/schemas/metadata/MetadataNative.ts +44 -44
  367. package/src/schemas/metadata/MetadataObject.ts +48 -48
  368. package/src/schemas/metadata/MetadataObjectType.ts +149 -149
  369. package/src/schemas/metadata/MetadataParameter.ts +54 -54
  370. package/src/schemas/metadata/MetadataProperty.ts +59 -59
  371. package/src/schemas/metadata/MetadataSet.ts +45 -45
  372. package/src/schemas/metadata/MetadataTemplate.ts +80 -80
  373. package/src/schemas/metadata/MetadataTuple.ts +32 -32
  374. package/src/schemas/metadata/MetadataTupleType.ts +67 -67
  375. package/src/schemas/protobuf/IProtobufProperty.ts +6 -6
  376. package/src/schemas/protobuf/IProtobufPropertyType.ts +37 -37
  377. package/src/schemas/protobuf/IProtobufSchema.ts +50 -50
  378. package/src/tags/Constant.ts +15 -15
  379. package/src/tags/ContentMediaType.ts +10 -10
  380. package/src/tags/Default.ts +22 -22
  381. package/src/tags/Example.ts +24 -24
  382. package/src/tags/Examples.ts +16 -16
  383. package/src/tags/ExclusiveMaximum.ts +25 -25
  384. package/src/tags/ExclusiveMinimum.ts +25 -25
  385. package/src/tags/Format.ts +50 -50
  386. package/src/tags/JsonSchemaPlugin.ts +8 -8
  387. package/src/tags/MaxItems.ts +12 -12
  388. package/src/tags/MaxLength.ts +12 -12
  389. package/src/tags/Maximum.ts +19 -19
  390. package/src/tags/MinItems.ts +12 -12
  391. package/src/tags/MinLength.ts +12 -12
  392. package/src/tags/Minimum.ts +19 -19
  393. package/src/tags/MultipleOf.ts +21 -21
  394. package/src/tags/Pattern.ts +31 -31
  395. package/src/tags/Sequence.ts +10 -10
  396. package/src/tags/TagBase.ts +82 -82
  397. package/src/tags/Type.ts +32 -32
  398. package/src/tags/UniqueItems.ts +14 -14
  399. package/src/tags/index.ts +21 -21
  400. package/src/tags/internal/FormatCheatSheet.ts +73 -73
  401. package/src/transform.ts +35 -35
  402. package/src/transformers/CallExpressionTransformer.ts +546 -547
  403. package/src/transformers/FileTransformer.ts +136 -136
  404. package/src/transformers/IProgrammerProps.ts +11 -11
  405. package/src/transformers/ITransformOptions.ts +62 -62
  406. package/src/transformers/ITransformProps.ts +9 -9
  407. package/src/transformers/ITypiaContext.ts +18 -18
  408. package/src/transformers/ImportTransformer.ts +81 -81
  409. package/src/transformers/NodeTransformer.ts +17 -17
  410. package/src/transformers/TransformerError.ts +60 -60
  411. package/src/transformers/features/AssertTransformer.ts +24 -24
  412. package/src/transformers/features/CreateAssertTransformer.ts +24 -24
  413. package/src/transformers/features/CreateIsTransformer.ts +18 -18
  414. package/src/transformers/features/CreateRandomTransformer.ts +43 -43
  415. package/src/transformers/features/CreateValidateTransformer.ts +18 -18
  416. package/src/transformers/features/IsTransformer.ts +18 -18
  417. package/src/transformers/features/RandomTransformer.ts +41 -41
  418. package/src/transformers/features/ValidateTransformer.ts +18 -18
  419. package/src/transformers/features/functional/FunctionalGenericTransformer.ts +57 -57
  420. package/src/transformers/features/http/CreateHttpAssertFormDataTransformer.ts +13 -13
  421. package/src/transformers/features/http/CreateHttpAssertHeadersTransformer.ts +13 -13
  422. package/src/transformers/features/http/CreateHttpAssertQueryTransformer.ts +13 -13
  423. package/src/transformers/features/http/CreateHttpFormDataTransformer.ts +13 -13
  424. package/src/transformers/features/http/CreateHttpHeadersTransformer.ts +13 -13
  425. package/src/transformers/features/http/CreateHttpIsFormDataTransformer.ts +13 -13
  426. package/src/transformers/features/http/CreateHttpIsHeadersTransformer.ts +13 -13
  427. package/src/transformers/features/http/CreateHttpIsQueryTransformer.ts +13 -13
  428. package/src/transformers/features/http/CreateHttpParameterTransformer.ts +13 -13
  429. package/src/transformers/features/http/CreateHttpQueryTransformer.ts +13 -13
  430. package/src/transformers/features/http/CreateHttpValidateFormDataTransformer.ts +13 -13
  431. package/src/transformers/features/http/CreateHttpValidateHeadersTransformer.ts +13 -13
  432. package/src/transformers/features/http/CreateHttpValidateQueryTransformer.ts +13 -13
  433. package/src/transformers/features/http/HttpAssertFormDataTransformer.ts +13 -13
  434. package/src/transformers/features/http/HttpAssertHeadersTransformer.ts +13 -13
  435. package/src/transformers/features/http/HttpAssertQueryTransformer.ts +13 -13
  436. package/src/transformers/features/http/HttpFormDataTransformer.ts +13 -13
  437. package/src/transformers/features/http/HttpHeadersTransformer.ts +13 -13
  438. package/src/transformers/features/http/HttpIsFormDataTransformer.ts +13 -13
  439. package/src/transformers/features/http/HttpIsHeadersTransformer.ts +13 -13
  440. package/src/transformers/features/http/HttpIsQueryTransformer.ts +13 -13
  441. package/src/transformers/features/http/HttpParameterTransformer.ts +13 -13
  442. package/src/transformers/features/http/HttpQueryTransformer.ts +13 -13
  443. package/src/transformers/features/http/HttpValidateFormDataTransformer.ts +13 -13
  444. package/src/transformers/features/http/HttpValidateHeadersTransformer.ts +13 -13
  445. package/src/transformers/features/http/HttpValidateQueryTransformer.ts +13 -13
  446. package/src/transformers/features/json/JsonApplicationTransformer.ts +105 -105
  447. package/src/transformers/features/json/JsonAssertParseTransformer.ts +13 -13
  448. package/src/transformers/features/json/JsonAssertStringifyTransformer.ts +13 -13
  449. package/src/transformers/features/json/JsonCreateAssertParseTransformer.ts +13 -13
  450. package/src/transformers/features/json/JsonCreateAssertStringifyTransformer.ts +13 -13
  451. package/src/transformers/features/json/JsonCreateIsParseTransformer.ts +13 -13
  452. package/src/transformers/features/json/JsonCreateIsStringifyTransformer.ts +13 -13
  453. package/src/transformers/features/json/JsonCreateStringifyTransformer.ts +13 -13
  454. package/src/transformers/features/json/JsonCreateValidateParseTransformer.ts +13 -13
  455. package/src/transformers/features/json/JsonCreateValidateStringifyProgrammer.ts +13 -13
  456. package/src/transformers/features/json/JsonIsParseTransformer.ts +13 -13
  457. package/src/transformers/features/json/JsonIsStringifyTransformer.ts +13 -13
  458. package/src/transformers/features/json/JsonSchemasTransformer.ts +145 -145
  459. package/src/transformers/features/json/JsonStringifyTransformer.ts +13 -13
  460. package/src/transformers/features/json/JsonValidateParseTransformer.ts +13 -13
  461. package/src/transformers/features/json/JsonValidateStringifyTransformer.ts +13 -13
  462. package/src/transformers/features/llm/LlmApplicationTransformer.ts +128 -125
  463. package/src/transformers/features/llm/LlmParametersTransformer.ts +102 -102
  464. package/src/transformers/features/llm/LlmSchemaTransformer.ts +143 -143
  465. package/src/transformers/features/misc/MiscAssertCloneTransformer.ts +13 -13
  466. package/src/transformers/features/misc/MiscAssertPruneTransformer.ts +13 -13
  467. package/src/transformers/features/misc/MiscCloneTransformer.ts +13 -13
  468. package/src/transformers/features/misc/MiscCreateAssertCloneTransformer.ts +13 -13
  469. package/src/transformers/features/misc/MiscCreateAssertPruneTransformer.ts +13 -13
  470. package/src/transformers/features/misc/MiscCreateCloneTransformer.ts +13 -13
  471. package/src/transformers/features/misc/MiscCreateIsCloneTransformer.ts +13 -13
  472. package/src/transformers/features/misc/MiscCreateIsPruneTransformer.ts +13 -13
  473. package/src/transformers/features/misc/MiscCreatePruneTransformer.ts +13 -13
  474. package/src/transformers/features/misc/MiscCreateValidateCloneTransformer.ts +13 -13
  475. package/src/transformers/features/misc/MiscCreateValidatePruneTransformer.ts +13 -13
  476. package/src/transformers/features/misc/MiscIsCloneTransformer.ts +13 -13
  477. package/src/transformers/features/misc/MiscIsPruneTransformer.ts +13 -13
  478. package/src/transformers/features/misc/MiscLiteralsTransformer.ts +35 -35
  479. package/src/transformers/features/misc/MiscPruneTransformer.ts +13 -13
  480. package/src/transformers/features/misc/MiscValidateCloneTransformer.ts +13 -13
  481. package/src/transformers/features/misc/MiscValidatePruneTransformer.ts +13 -13
  482. package/src/transformers/features/notations/NotationAssertGeneralTransformer.ts +20 -20
  483. package/src/transformers/features/notations/NotationCreateAssertGeneralTransformer.ts +20 -20
  484. package/src/transformers/features/notations/NotationCreateGeneralTransformer.ts +20 -20
  485. package/src/transformers/features/notations/NotationCreateIsGeneralTransformer.ts +20 -20
  486. package/src/transformers/features/notations/NotationCreateValidateGeneralTransformer.ts +20 -20
  487. package/src/transformers/features/notations/NotationGeneralTransformer.ts +18 -18
  488. package/src/transformers/features/notations/NotationIsGeneralTransformer.ts +20 -20
  489. package/src/transformers/features/notations/NotationValidateGeneralTransformer.ts +20 -20
  490. package/src/transformers/features/protobuf/ProtobufAssertDecodeTransformer.ts +13 -13
  491. package/src/transformers/features/protobuf/ProtobufAssertEncodeTransformer.ts +13 -13
  492. package/src/transformers/features/protobuf/ProtobufCreateAssertDecodeTransformer.ts +13 -13
  493. package/src/transformers/features/protobuf/ProtobufCreateAssertEncodeTransformer.ts +13 -13
  494. package/src/transformers/features/protobuf/ProtobufCreateDecodeTransformer.ts +13 -13
  495. package/src/transformers/features/protobuf/ProtobufCreateEncodeTransformer.ts +13 -13
  496. package/src/transformers/features/protobuf/ProtobufCreateIsDecodeTransformer.ts +13 -13
  497. package/src/transformers/features/protobuf/ProtobufCreateIsEncodeTransformer.ts +13 -13
  498. package/src/transformers/features/protobuf/ProtobufCreateValidateDecodeTransformer.ts +13 -13
  499. package/src/transformers/features/protobuf/ProtobufCreateValidateEncodeTransformer.ts +13 -13
  500. package/src/transformers/features/protobuf/ProtobufDecodeTransformer.ts +13 -13
  501. package/src/transformers/features/protobuf/ProtobufEncodeTransformer.ts +13 -13
  502. package/src/transformers/features/protobuf/ProtobufIsDecodeTransformer.ts +13 -13
  503. package/src/transformers/features/protobuf/ProtobufIsEncodeTransformer.ts +13 -13
  504. package/src/transformers/features/protobuf/ProtobufMessageTransformer.ts +35 -35
  505. package/src/transformers/features/protobuf/ProtobufValidateDecodeTransformer.ts +13 -13
  506. package/src/transformers/features/protobuf/ProtobufValidateEncodeTransformer.ts +13 -13
  507. package/src/transformers/features/reflect/ReflectMetadataTransformer.ts +69 -69
  508. package/src/transformers/features/reflect/ReflectNameTransformer.ts +82 -82
  509. package/src/transformers/internal/GenericTransformer.ts +101 -101
  510. package/src/typings/Atomic.ts +13 -13
  511. package/src/typings/ClassProperties.ts +5 -5
  512. package/src/typings/Customizable.ts +5 -5
  513. package/src/typings/Equal.ts +18 -18
  514. package/src/typings/IsTuple.ts +9 -9
  515. package/src/typings/NativeClass.ts +23 -23
  516. package/src/typings/OmitNever.ts +3 -3
  517. package/src/typings/ProtobufAtomic.ts +19 -19
  518. package/src/typings/SpecialFields.ts +3 -3
  519. package/src/typings/ValidationPipe.ts +9 -9
  520. package/src/typings/ValueOf.ts +20 -20
  521. package/src/typings/Writable.ts +11 -11
  522. package/src/utils/ArrayUtil.ts +41 -41
  523. package/src/utils/Escaper.ts +50 -50
  524. package/src/utils/MapUtil.ts +14 -14
  525. package/src/utils/NamingConvention.ts +94 -94
  526. package/src/utils/PatternUtil.ts +29 -29
  527. package/src/utils/ProtobufNameEncoder.ts +32 -32
  528. package/src/utils/Singleton.ts +16 -16
  529. package/src/utils/StringUtil.ts +16 -16
  530. package/lib/programmers/llm/LlmApplicationOfValidateProgrammer.d.ts +0 -19
  531. package/lib/programmers/llm/LlmApplicationOfValidateProgrammer.js +0 -49
  532. package/lib/programmers/llm/LlmApplicationOfValidateProgrammer.js.map +0 -1
  533. package/lib/schemas/llm/ILlmApplicationOfValidate.mjs +0 -6
  534. package/lib/schemas/llm/ILlmApplicationOfValidate.mjs.map +0 -1
  535. package/lib/schemas/llm/ILlmFunctionOfValidate.mjs +0 -6
  536. package/lib/schemas/llm/ILlmFunctionOfValidate.mjs.map +0 -1
  537. package/lib/transformers/features/llm/LlmApplicationOfValidateTransformer.d.ts +0 -5
  538. package/lib/transformers/features/llm/LlmApplicationOfValidateTransformer.js +0 -105
  539. package/lib/transformers/features/llm/LlmApplicationOfValidateTransformer.js.map +0 -1
  540. package/src/programmers/llm/LlmApplicationOfValidateProgrammer.ts +0 -104
  541. package/src/transformers/features/llm/LlmApplicationOfValidateTransformer.ts +0 -129
package/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2022 Jeongho Nam
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2022 Jeongho Nam
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,150 +1,150 @@
1
- # Typia
2
- ![Typia Logo](https://typia.io/logo.png)
3
-
4
- [![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/typia/blob/master/LICENSE)
5
- [![NPM Version](https://img.shields.io/npm/v/typia.svg)](https://www.npmjs.com/package/typia)
6
- [![NPM Downloads](https://img.shields.io/npm/dm/typia.svg)](https://www.npmjs.com/package/typia)
7
- [![Build Status](https://github.com/samchon/typia/workflows/build/badge.svg)](https://github.com/samchon/typia/actions?query=workflow%3Abuild)
8
- [![Guide Documents](https://img.shields.io/badge/Guide-Documents-forestgreen)](https://typia.io/docs/)
9
- [![Gurubase](https://img.shields.io/badge/Gurubase-Document%20Chatbot-006BFF)](https://gurubase.io/g/typia)
10
- [![Discord Badge](https://img.shields.io/badge/discord-samchon-d91965?style=flat&labelColor=5866f2&logo=discord&logoColor=white&link=https://discord.gg/E94XhzrUCZ)](https://discord.gg/E94XhzrUCZ)
11
-
12
- ```typescript
13
- // RUNTIME VALIDATORS
14
- export function is<T>(input: unknown): input is T; // returns boolean
15
- export function assert<T>(input: unknown): T; // throws TypeGuardError
16
- export function assertGuard<T>(input: unknown): asserts input is T;
17
- export function validate<T>(input: unknown): IValidation<T>; // detailed
18
-
19
- // JSON FUNCTIONS
20
- export namespace json {
21
- export function application<T>(): IJsonApplication; // JSON schema
22
- export function assertParse<T>(input: string): T; // type safe parser
23
- export function assertStringify<T>(input: T): string; // safe and faster
24
- }
25
-
26
- // LLM FUNCTION CALLING SCHEMA
27
- export namespace llm {
28
- // application schema from a class or interface type
29
- export function application<App, Model>(): ILlmApplication<Model>;
30
- // structured output
31
- export function parameters<P, Model>(): ILlmSchema.IParameters<Model>;
32
- export function schema<T, Model>(): ILlmSchema<Model>; // type schema
33
- }
34
-
35
- // PROTOCOL BUFFER
36
- export namespace protobuf {
37
- export function message<T>(): string; // Protocol Buffer message
38
- export function assertDecode<T>(buffer: Uint8Array): T; // safe decoder
39
- export function assertEncode<T>(input: T): Uint8Array; // safe encoder
40
- }
41
-
42
- // RANDOM GENERATOR
43
- export function random<T>(g?: Partial<IRandomGenerator>): T;
44
- ```
45
-
46
- `typia` is a transformer library supporting below features:
47
-
48
- - Super-fast Runtime Validators
49
- - Enhanced JSON schema and serde functions
50
- - LLM function calling schema and structured output
51
- - Protocol Buffer encoder and decoder
52
- - Random data generator
53
-
54
- > [!NOTE]
55
- >
56
- > - **Only one line** required, with pure TypeScript type
57
- > - Runtime validator is **20,000x faster** than `class-validator`
58
- > - JSON serialization is **200x faster** than `class-transformer`
59
-
60
-
61
-
62
-
63
- ## Transformation
64
- If you call `typia` function, it would be compiled like below.
65
-
66
- This is the key concept of `typia`, transforming TypeScript type to a runtime function. The `typia.is<T>()` function is transformed to a dedicated type checker by analyzing the target type `T` in the compilation level.
67
-
68
- This feature enables developers to ensure type safety in their applications, leveraging TypeScript's static typing while also providing runtime validation. Instead of defining additional schemas, you can simply utilize the pure TypeScript type itself.
69
-
70
- ```typescript
71
- //----
72
- // examples/checkString.ts
73
- //----
74
- import typia, { tags } from "typia";
75
- export const checkString = typia.createIs<string>();
76
-
77
- //----
78
- // examples/checkUUID.js
79
- //----
80
- import typia from "typia";
81
- export const checkString = (() => {
82
- return (input) => "string" === typeof input;
83
- })();
84
- ```
85
-
86
-
87
-
88
- ## Sponsors
89
- Thanks for your support.
90
-
91
- Your donation encourages `typia` development.
92
-
93
- Also, `typia` is re-distributing half of donations to core contributors of `typia`.
94
-
95
- - [`nonara/ts-patch`](https://github.com/nonara/ts-patch)
96
- - [`ryoppippi/unplugin-typia`](https://github.com/ryoppippi/unplugin-typia)
97
-
98
- [![Sponsors](https://opencollective.com/typia/badge.svg?avatarHeight=75&width=600)](https://opencollective.com/typia)
99
-
100
-
101
-
102
-
103
- ## Playground
104
- You can experience how typia works by [playground website](https://typia.io/playground):
105
-
106
- - 💻 https://typia.io/playground
107
-
108
-
109
-
110
-
111
- ## Guide Documents
112
- Check out the document in the [website](https://typia.io/docs/):
113
-
114
- ### 🏠 Home
115
- - [Introduction](https://typia.io/docs/)
116
- - [Setup](https://typia.io/docs/setup/)
117
- - [Pure TypeScript](https://typia.io/docs/pure/)
118
-
119
- ### 📖 Features
120
- - Runtime Validators
121
- - [`assert()` function](https://typia.io/docs/validators/assert/)
122
- - [`is()` function](https://typia.io/docs/validators/is/)
123
- - [`validate()` function](https://typia.io/docs/validators/validate/)
124
- - [Functional Module](https://typia.io/docs/validators/functional)
125
- - [Special Tags](https://typia.io/docs/validators/tags/)
126
- - Enhanced JSON
127
- - [JSON Schema](https://typia.io/docs/json/schema/)
128
- - [`stringify()` functions](https://typia.io/docs/json/stringify/)
129
- - [`parse()` functions](https://typia.io/docs/json/parse/)
130
- - LLM Function Calling
131
- - [`application()` function](https://typia.io/docs/llm/application/)
132
- - [`parameters()` function](https://typia.io/docs/llm/parameters/)
133
- - [`schema()` function](https://typia.io/docs/llm/schema/)
134
- - [AI Chatbot Development](https://typia.io/docs/llm/chat/)
135
- - [Documentation Strategy](https://typia.io/docs/llm/strategy/)
136
- - Protocol Buffer
137
- - [Message Schema](https://typia.io/docs/protobuf/message)
138
- - [`decode()` functions](https://typia.io/docs/protobuf/decode/)
139
- - [`encode()` functions](https://typia.io/docs/protobuf/encode/)
140
- - [Random Generator](https://typia.io/docs/random/)
141
- - [Miscellaneous](https://typia.io/docs/misc/)
142
-
143
- ### 🔗 Appendix
144
- - [API Documents](https://typia.io/api)
145
- - Utillization Cases
146
- - [NestJS](https://typia.io/docs/utilization/nestjs/)
147
- - [Prisma](https://typia.io/docs/utilization/prisma/)
148
- - [tRPC](https://typia.io/docs/utilization/trpc/)
149
- - [⇲ Benchmark Result](https://github.com/samchon/typia/tree/master/benchmark/results/11th%20Gen%20Intel(R)%20Core(TM)%20i5-1135G7%20%40%202.40GHz)
150
- - [⇲ `dev.to` Articles](https://dev.to/samchon/series/22474)
1
+ # Typia
2
+ ![Typia Logo](https://typia.io/logo.png)
3
+
4
+ [![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/typia/blob/master/LICENSE)
5
+ [![NPM Version](https://img.shields.io/npm/v/typia.svg)](https://www.npmjs.com/package/typia)
6
+ [![NPM Downloads](https://img.shields.io/npm/dm/typia.svg)](https://www.npmjs.com/package/typia)
7
+ [![Build Status](https://github.com/samchon/typia/workflows/build/badge.svg)](https://github.com/samchon/typia/actions?query=workflow%3Abuild)
8
+ [![Guide Documents](https://img.shields.io/badge/Guide-Documents-forestgreen)](https://typia.io/docs/)
9
+ [![Gurubase](https://img.shields.io/badge/Gurubase-Document%20Chatbot-006BFF)](https://gurubase.io/g/typia)
10
+ [![Discord Badge](https://img.shields.io/badge/discord-samchon-d91965?style=flat&labelColor=5866f2&logo=discord&logoColor=white&link=https://discord.gg/E94XhzrUCZ)](https://discord.gg/E94XhzrUCZ)
11
+
12
+ ```typescript
13
+ // RUNTIME VALIDATORS
14
+ export function is<T>(input: unknown): input is T; // returns boolean
15
+ export function assert<T>(input: unknown): T; // throws TypeGuardError
16
+ export function assertGuard<T>(input: unknown): asserts input is T;
17
+ export function validate<T>(input: unknown): IValidation<T>; // detailed
18
+
19
+ // JSON FUNCTIONS
20
+ export namespace json {
21
+ export function application<T>(): IJsonApplication; // JSON schema
22
+ export function assertParse<T>(input: string): T; // type safe parser
23
+ export function assertStringify<T>(input: T): string; // safe and faster
24
+ }
25
+
26
+ // LLM FUNCTION CALLING SCHEMA
27
+ export namespace llm {
28
+ // application schema from a class or interface type
29
+ export function application<App, Model>(): ILlmApplication<Model>;
30
+ // structured output
31
+ export function parameters<P, Model>(): ILlmSchema.IParameters<Model>;
32
+ export function schema<T, Model>(): ILlmSchema<Model>; // type schema
33
+ }
34
+
35
+ // PROTOCOL BUFFER
36
+ export namespace protobuf {
37
+ export function message<T>(): string; // Protocol Buffer message
38
+ export function assertDecode<T>(buffer: Uint8Array): T; // safe decoder
39
+ export function assertEncode<T>(input: T): Uint8Array; // safe encoder
40
+ }
41
+
42
+ // RANDOM GENERATOR
43
+ export function random<T>(g?: Partial<IRandomGenerator>): T;
44
+ ```
45
+
46
+ `typia` is a transformer library supporting below features:
47
+
48
+ - Super-fast Runtime Validators
49
+ - Enhanced JSON schema and serde functions
50
+ - LLM function calling schema and structured output
51
+ - Protocol Buffer encoder and decoder
52
+ - Random data generator
53
+
54
+ > [!NOTE]
55
+ >
56
+ > - **Only one line** required, with pure TypeScript type
57
+ > - Runtime validator is **20,000x faster** than `class-validator`
58
+ > - JSON serialization is **200x faster** than `class-transformer`
59
+
60
+
61
+
62
+
63
+ ## Transformation
64
+ If you call `typia` function, it would be compiled like below.
65
+
66
+ This is the key concept of `typia`, transforming TypeScript type to a runtime function. The `typia.is<T>()` function is transformed to a dedicated type checker by analyzing the target type `T` in the compilation level.
67
+
68
+ This feature enables developers to ensure type safety in their applications, leveraging TypeScript's static typing while also providing runtime validation. Instead of defining additional schemas, you can simply utilize the pure TypeScript type itself.
69
+
70
+ ```typescript
71
+ //----
72
+ // examples/checkString.ts
73
+ //----
74
+ import typia, { tags } from "typia";
75
+ export const checkString = typia.createIs<string>();
76
+
77
+ //----
78
+ // examples/checkUUID.js
79
+ //----
80
+ import typia from "typia";
81
+ export const checkString = (() => {
82
+ return (input) => "string" === typeof input;
83
+ })();
84
+ ```
85
+
86
+
87
+
88
+ ## Sponsors
89
+ Thanks for your support.
90
+
91
+ Your donation encourages `typia` development.
92
+
93
+ Also, `typia` is re-distributing half of donations to core contributors of `typia`.
94
+
95
+ - [`nonara/ts-patch`](https://github.com/nonara/ts-patch)
96
+ - [`ryoppippi/unplugin-typia`](https://github.com/ryoppippi/unplugin-typia)
97
+
98
+ [![Sponsors](https://opencollective.com/typia/badge.svg?avatarHeight=75&width=600)](https://opencollective.com/typia)
99
+
100
+
101
+
102
+
103
+ ## Playground
104
+ You can experience how typia works by [playground website](https://typia.io/playground):
105
+
106
+ - 💻 https://typia.io/playground
107
+
108
+
109
+
110
+
111
+ ## Guide Documents
112
+ Check out the document in the [website](https://typia.io/docs/):
113
+
114
+ ### 🏠 Home
115
+ - [Introduction](https://typia.io/docs/)
116
+ - [Setup](https://typia.io/docs/setup/)
117
+ - [Pure TypeScript](https://typia.io/docs/pure/)
118
+
119
+ ### 📖 Features
120
+ - Runtime Validators
121
+ - [`assert()` function](https://typia.io/docs/validators/assert/)
122
+ - [`is()` function](https://typia.io/docs/validators/is/)
123
+ - [`validate()` function](https://typia.io/docs/validators/validate/)
124
+ - [Functional Module](https://typia.io/docs/validators/functional)
125
+ - [Special Tags](https://typia.io/docs/validators/tags/)
126
+ - Enhanced JSON
127
+ - [JSON Schema](https://typia.io/docs/json/schema/)
128
+ - [`stringify()` functions](https://typia.io/docs/json/stringify/)
129
+ - [`parse()` functions](https://typia.io/docs/json/parse/)
130
+ - LLM Function Calling
131
+ - [`application()` function](https://typia.io/docs/llm/application/)
132
+ - [`parameters()` function](https://typia.io/docs/llm/parameters/)
133
+ - [`schema()` function](https://typia.io/docs/llm/schema/)
134
+ - [AI Chatbot Development](https://typia.io/docs/llm/chat/)
135
+ - [Documentation Strategy](https://typia.io/docs/llm/strategy/)
136
+ - Protocol Buffer
137
+ - [Message Schema](https://typia.io/docs/protobuf/message)
138
+ - [`decode()` functions](https://typia.io/docs/protobuf/decode/)
139
+ - [`encode()` functions](https://typia.io/docs/protobuf/encode/)
140
+ - [Random Generator](https://typia.io/docs/random/)
141
+ - [Miscellaneous](https://typia.io/docs/misc/)
142
+
143
+ ### 🔗 Appendix
144
+ - [API Documents](https://typia.io/api)
145
+ - Utillization Cases
146
+ - [NestJS](https://typia.io/docs/utilization/nestjs/)
147
+ - [Prisma](https://typia.io/docs/utilization/prisma/)
148
+ - [tRPC](https://typia.io/docs/utilization/trpc/)
149
+ - [⇲ Benchmark Result](https://github.com/samchon/typia/tree/master/benchmark/results/11th%20Gen%20Intel(R)%20Core(TM)%20i5-1135G7%20%40%202.40GHz)
150
+ - [⇲ `dev.to` Articles](https://dev.to/samchon/series/22474)
@@ -1,17 +1 @@
1
- export type IValidation<T = unknown> = IValidation.ISuccess<T> | IValidation.IFailure;
2
- export declare namespace IValidation {
3
- interface ISuccess<T = unknown> {
4
- success: true;
5
- data: T;
6
- }
7
- interface IFailure {
8
- success: false;
9
- errors: IError[];
10
- data: unknown;
11
- }
12
- interface IError {
13
- path: string;
14
- expected: string;
15
- value: any;
16
- }
17
- }
1
+ export { IValidation } from "@samchon/openapi";
@@ -47,9 +47,9 @@ var PluginConfigurator;
47
47
  if (strict === undefined && strictNullChecks === undefined)
48
48
  compilerOptions.strict = true;
49
49
  if (oldbie === undefined)
50
- plugins.push(comment_json_1.default.parse(`
51
- {
52
- "transform": "typia/lib/transform"
50
+ plugins.push(comment_json_1.default.parse(`
51
+ {
52
+ "transform": "typia/lib/transform"
53
53
  }`));
54
54
  yield fs_1.default.promises.writeFile(args.project, comment_json_1.default.stringify(config, null, 2));
55
55
  });
@@ -42,21 +42,21 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
42
42
  step((generator = generator.apply(thisArg, _arguments || [])).next());
43
43
  });
44
44
  };
45
- const USAGE = `Wrong command has been detected. Use like below:
46
-
47
- npx typia setup \\
48
- --manager (npm|pnpm|yarn) \\
49
- --project {tsconfig.json file path}
50
-
51
- - npx typia setup
52
- - npx typia setup --manager pnpm
53
- - npx typia setup --project tsconfig.test.json
54
-
55
- npx typia generate
56
- --input {directory} \\
57
- --output {directory}
58
-
59
- --npx typia generate --input src/templates --output src/functinoal
45
+ const USAGE = `Wrong command has been detected. Use like below:
46
+
47
+ npx typia setup \\
48
+ --manager (npm|pnpm|yarn) \\
49
+ --project {tsconfig.json file path}
50
+
51
+ - npx typia setup
52
+ - npx typia setup --manager pnpm
53
+ - npx typia setup --project tsconfig.test.json
54
+
55
+ npx typia generate
56
+ --input {directory} \\
57
+ --output {directory}
58
+
59
+ --npx typia generate --input src/templates --output src/functinoal
60
60
  `;
61
61
  const halt = (desc) => {
62
62
  console.error(desc);
package/lib/index.mjs CHANGED
@@ -18,8 +18,6 @@ import * as reflect from './reflect.mjs';
18
18
  export { reflect };
19
19
  import * as index from './tags/index.mjs';
20
20
  export { index as tags };
21
- export { ILlmApplicationOfValidate } from './schemas/llm/ILlmApplicationOfValidate.mjs';
22
- export { ILlmFunctionOfValidate } from './schemas/llm/ILlmFunctionOfValidate.mjs';
23
21
  export { TypeGuardError } from './TypeGuardError.mjs';
24
22
 
25
23
 
package/lib/index.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;"}
package/lib/llm.d.ts CHANGED
@@ -1,89 +1,24 @@
1
1
  import { ILlmApplication, ILlmSchema } from "@samchon/openapi";
2
- import { ILlmApplicationOfValidate } from "./module";
3
2
  /**
4
3
  * > You must configure the generic argument `App`.
5
4
  *
6
- * TypeScript functions to LLM function calling application with validators.
7
- *
8
- * Creates an application of LLM (Large Language Model) function calling application
9
- * from a TypeScript class or interface type containing the target functions to be
10
- * called by the LLM function calling feature.
11
- *
12
- * If you put the returned {@link ILlmApplicationOfValidate.functions} objects to the
13
- * LLM provider like [OpenAI (ChatGPT)](https://openai.com/), the LLM will automatically
14
- * select the proper function and fill its arguments from the conversation
15
- * (maybe chatting text) with user (human). This is the concept of the LLM function calling.
16
- *
17
- * Additionally, the LLM function calling sometimes take a mistake that composing wrong typed
18
- * {@link ILlmFunctionOfValidate.parameters}. In that case, deliver return value of the
19
- * {@link ILlmFunctionOfValidate.validate} function, then LLM provider will correct the
20
- * parameters at the next conversation. The {@link ILlmFunctionOfValidate.validate} function
21
- * is a validator function reporting the detailed information about the wrong typed parameters.
22
- *
23
- * By the way, there can be some parameters (or their nested properties) which must be
24
- * composed by human, not by LLM. File uploading feature or some sensitive information
25
- * like security keys (password) are the examples. In that case, you can separate the
26
- * function parameters to both LLM and human sides by configuring the
27
- * {@link ILlmApplicationOfValidate.IOptions.separate} property. The separated parameters
28
- * are assigned to the {@link ILlmFunctionOfValidate.separated} property.
29
- *
30
- * For reference, the actual function call execution is not by LLM, but by you.
31
- * When the LLM selects the proper function and fills the arguments, you just call
32
- * the function with the LLM prepared arguments. And then informs the return value to
33
- * the LLM by system prompt. The LLM will continue the next conversation based on
34
- * the return value.
35
- *
36
- * Additionally, if you've configured {@link ILlmApplicationOfValidate.IOptions.separate},
37
- * so that the parameters are separated to human and LLM sides, you can merge these
38
- * humand and LLM sides' parameters into one through {@link HttpLlm.mergeParameters}
39
- * before the actual LLM function call execution.
40
- *
41
- * Here is the list of available `Model` types with their corresponding LLM schema.
42
- * Reading the following list, and determine the `Model` type considering the
43
- * characteristics of the target LLM provider.
44
- *
45
- * - LLM provider schemas
46
- * - `chatgpt`: [`IChatGptSchema`](https://github.com/samchon/openapi/blob/master/src/structures/IChatGptSchema.ts)
47
- * - `claude`: [`IClaudeSchema`](https://github.com/samchon/openapi/blob/master/src/structures/IClaudeSchema.ts)
48
- * - `gemini`: [`IGeminiSchema`](https://github.com/samchon/openapi/blob/master/src/structures/IGeminiSchema.ts)
49
- * - `llama`: [`ILlamaSchema`](https://github.com/samchon/openapi/blob/master/src/structures/ILlamaSchema.ts)
50
- * - Midldle layer schemas
51
- * - `3.0`: [`ILlmSchemaV3`](https://github.com/samchon/openapi/blob/master/src/structures/ILlmSchemaV3.ts)
52
- * - `3.1`: [`ILlmSchemaV3_1`](https://github.com/samchon/openapi/blob/master/src/structures/ILlmSchemaV3_1.ts)
53
- *
54
- * @template App Target class or interface type collecting the functions to call
55
- * @template Model LLM schema model
56
- * @template Config Configuration of LLM schema composition
57
- * @param options Options for the LLM application construction
58
- * @returns Application of LLM function calling schemas
59
- * @reference https://platform.openai.com/docs/guides/function-calling
60
- * @author Jeongho Nam - https://github.com/samchon
61
- */
62
- export declare function applicationOfValidate(options?: Partial<Pick<ILlmApplicationOfValidate.IOptions<any>, "separate">>): never;
63
- /**
64
- * TypeScript functions to LLM function calling application with validators.
5
+ * TypeScript functions to LLM function calling application.
65
6
  *
66
7
  * Creates an application of LLM (Large Language Model) function calling application
67
8
  * from a TypeScript class or interface type containing the target functions to be
68
9
  * called by the LLM function calling feature.
69
10
  *
70
- * If you put the returned {@link ILlmApplicationOfValidate.functions} objects to the
71
- * LLM provider like [OpenAI (ChatGPT)](https://openai.com/), the LLM will automatically
72
- * select the proper function and fill its arguments from the conversation
73
- * (maybe chatting text) with user (human). This is the concept of the LLM function calling.
74
- *
75
- * Additionally, the LLM function calling sometimes take a mistake that composing wrong typed
76
- * {@link ILlmFunctionOfValidate.parameters}. In that case, deliver return value of the
77
- * {@link ILlmFunctionOfValidate.validate} function, then LLM provider will correct the
78
- * parameters at the next conversation. The {@link ILlmFunctionOfValidate.validate} function
79
- * is a validator function reporting the detailed information about the wrong typed parameters.
11
+ * If you put the returned {@link ILlmApplication.functions} objects to the LLM provider
12
+ * like [OpenAI (ChatGPT)](https://openai.com/), the LLM will automatically select the
13
+ * proper function and fill its arguments from the conversation (maybe chatting text)
14
+ * with user (human). This is the concept of the LLM function calling.
80
15
  *
81
16
  * By the way, there can be some parameters (or their nested properties) which must be
82
17
  * composed by human, not by LLM. File uploading feature or some sensitive information
83
18
  * like security keys (password) are the examples. In that case, you can separate the
84
19
  * function parameters to both LLM and human sides by configuring the
85
- * {@link ILlmApplicationOfValidate.IOptions.separate} property. The separated parameters
86
- * are assigned to the {@link ILlmFunctionOfValidate.separated} property.
20
+ * {@link ILlmApplication.IOptions.separate} property. The separated parameters are
21
+ * assigned to the {@link ILlmFunction.separated} property.
87
22
  *
88
23
  * For reference, the actual function call execution is not by LLM, but by you.
89
24
  * When the LLM selects the proper function and fills the arguments, you just call
@@ -91,7 +26,7 @@ export declare function applicationOfValidate(options?: Partial<Pick<ILlmApplica
91
26
  * the LLM by system prompt. The LLM will continue the next conversation based on
92
27
  * the return value.
93
28
  *
94
- * Additionally, if you've configured {@link ILlmApplicationOfValidate.IOptions.separate},
29
+ * Additionally, if you've configured {@link ILlmApplication.IOptions.separate},
95
30
  * so that the parameters are separated to human and LLM sides, you can merge these
96
31
  * humand and LLM sides' parameters into one through {@link HttpLlm.mergeParameters}
97
32
  * before the actual LLM function call execution.
@@ -117,10 +52,8 @@ export declare function applicationOfValidate(options?: Partial<Pick<ILlmApplica
117
52
  * @reference https://platform.openai.com/docs/guides/function-calling
118
53
  * @author Jeongho Nam - https://github.com/samchon
119
54
  */
120
- export declare function applicationOfValidate<App extends Record<string, any>, Model extends ILlmSchema.Model, Config extends Partial<ILlmSchema.ModelConfig[Model]> = {}>(options?: Partial<Pick<ILlmApplicationOfValidate.IOptions<Model>, "separate">>): ILlmApplicationOfValidate<Model>;
55
+ export declare function application(options?: Partial<Pick<ILlmApplication.IOptions<any>, "separate">>): never;
121
56
  /**
122
- * > You must configure the generic argument `App`.
123
- *
124
57
  * TypeScript functions to LLM function calling application.
125
58
  *
126
59
  * Creates an application of LLM (Large Language Model) function calling application
@@ -171,59 +104,44 @@ export declare function applicationOfValidate<App extends Record<string, any>, M
171
104
  * @reference https://platform.openai.com/docs/guides/function-calling
172
105
  * @author Jeongho Nam - https://github.com/samchon
173
106
  */
174
- export declare function application(options?: Partial<Pick<ILlmApplication.IOptions<any>, "separate">>): never;
107
+ export declare function application<App extends Record<string, any>, Model extends ILlmSchema.Model, Config extends Partial<ILlmSchema.ModelConfig[Model]> = {}>(options?: Partial<Pick<ILlmApplication.IOptions<Model>, "separate">>): ILlmApplication<Model, App>;
175
108
  /**
176
- * TypeScript functions to LLM function calling application.
177
- *
178
- * Creates an application of LLM (Large Language Model) function calling application
179
- * from a TypeScript class or interface type containing the target functions to be
180
- * called by the LLM function calling feature.
109
+ * > You must configure the generic argument `App`.
181
110
  *
182
- * If you put the returned {@link ILlmApplication.functions} objects to the LLM provider
183
- * like [OpenAI (ChatGPT)](https://openai.com/), the LLM will automatically select the
184
- * proper function and fill its arguments from the conversation (maybe chatting text)
185
- * with user (human). This is the concept of the LLM function calling.
111
+ * Use {@link application} instead.
186
112
  *
187
- * By the way, there can be some parameters (or their nested properties) which must be
188
- * composed by human, not by LLM. File uploading feature or some sensitive information
189
- * like security keys (password) are the examples. In that case, you can separate the
190
- * function parameters to both LLM and human sides by configuring the
191
- * {@link ILlmApplication.IOptions.separate} property. The separated parameters are
192
- * assigned to the {@link ILlmFunction.separated} property.
113
+ * Since the version `typia@8.0.0`, {@link application} function has
114
+ * started supporting the {@link ILlmFunction.validate} function which
115
+ * has been designed for the validation feedback strategy of the LLM
116
+ * function calling.
193
117
  *
194
- * For reference, the actual function call execution is not by LLM, but by you.
195
- * When the LLM selects the proper function and fills the arguments, you just call
196
- * the function with the LLM prepared arguments. And then informs the return value to
197
- * the LLM by system prompt. The LLM will continue the next conversation based on
198
- * the return value.
118
+ * This `applicationOfValidate` function would be eliminated in the
119
+ * next major version `typia@9.0.0`. So please use {@link application}
120
+ * function instead.
199
121
  *
200
- * Additionally, if you've configured {@link ILlmApplication.IOptions.separate},
201
- * so that the parameters are separated to human and LLM sides, you can merge these
202
- * humand and LLM sides' parameters into one through {@link HttpLlm.mergeParameters}
203
- * before the actual LLM function call execution.
122
+ * @deprecated
123
+ */
124
+ export declare function applicationOfValidate(options?: Partial<Pick<ILlmApplication.IOptions<any>, "separate">>): never;
125
+ /**
126
+ * Use {@link application} instead.
204
127
  *
205
- * Here is the list of available `Model` types with their corresponding LLM schema.
206
- * Reading the following list, and determine the `Model` type considering the
207
- * characteristics of the target LLM provider.
128
+ * Since the version `typia@8.0.0`, {@link application} function has
129
+ * started supporting the {@link ILlmFunction.validate} function which
130
+ * has been designed for the validation feedback strategy of the LLM
131
+ * function calling.
208
132
  *
209
- * - LLM provider schemas
210
- * - `chatgpt`: [`IChatGptSchema`](https://github.com/samchon/openapi/blob/master/src/structures/IChatGptSchema.ts)
211
- * - `claude`: [`IClaudeSchema`](https://github.com/samchon/openapi/blob/master/src/structures/IClaudeSchema.ts)
212
- * - `gemini`: [`IGeminiSchema`](https://github.com/samchon/openapi/blob/master/src/structures/IGeminiSchema.ts)
213
- * - `llama`: [`ILlamaSchema`](https://github.com/samchon/openapi/blob/master/src/structures/ILlamaSchema.ts)
214
- * - Midldle layer schemas
215
- * - `3.0`: [`ILlmSchemaV3`](https://github.com/samchon/openapi/blob/master/src/structures/ILlmSchemaV3.ts)
216
- * - `3.1`: [`ILlmSchemaV3_1`](https://github.com/samchon/openapi/blob/master/src/structures/ILlmSchemaV3_1.ts)
133
+ * This `applicationOfValidate` function would be eliminated in the
134
+ * next major version `typia@9.0.0`. So please use {@link application}
135
+ * function instead.
217
136
  *
218
137
  * @template App Target class or interface type collecting the functions to call
219
138
  * @template Model LLM schema model
220
139
  * @template Config Configuration of LLM schema composition
221
140
  * @param options Options for the LLM application construction
222
141
  * @returns Application of LLM function calling schemas
223
- * @reference https://platform.openai.com/docs/guides/function-calling
224
- * @author Jeongho Nam - https://github.com/samchon
142
+ * @deprecated
225
143
  */
226
- export declare function application<App extends Record<string, any>, Model extends ILlmSchema.Model, Config extends Partial<ILlmSchema.ModelConfig[Model]> = {}>(options?: Partial<Pick<ILlmApplication.IOptions<Model>, "separate">>): ILlmApplication<Model>;
144
+ export declare function applicationOfValidate<App extends Record<string, any>, Model extends ILlmSchema.Model, Config extends Partial<ILlmSchema.ModelConfig[Model]> = {}>(options?: Partial<Pick<ILlmApplication.IOptions<Model>, "separate">>): ILlmApplication<Model, App>;
227
145
  /**
228
146
  * > You must configure the generic argument `Parameters`.
229
147
  *