typia 6.10.2 → 6.10.3-dev.20240925

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 +118 -118
  3. package/lib/index.mjs +1 -0
  4. package/lib/index.mjs.map +1 -1
  5. package/lib/programmers/llm/LlmApplicationProgrammer.js +3 -0
  6. package/lib/programmers/llm/LlmApplicationProgrammer.js.map +1 -1
  7. package/lib/tags/Example.d.ts +14 -0
  8. package/lib/tags/Example.js +3 -0
  9. package/lib/tags/Example.js.map +1 -0
  10. package/lib/tags/Examples.d.ts +10 -0
  11. package/lib/tags/Examples.js +3 -0
  12. package/lib/tags/Examples.js.map +1 -0
  13. package/lib/tags/index.d.ts +2 -0
  14. package/lib/tags/index.js +2 -0
  15. package/lib/tags/index.js.map +1 -1
  16. package/package.json +2 -2
  17. package/src/AssertionGuard.ts +1 -1
  18. package/src/CamelCase.ts +75 -75
  19. package/src/IRandomGenerator.ts +66 -66
  20. package/src/IValidation.ts +21 -21
  21. package/src/PascalCase.ts +71 -71
  22. package/src/Primitive.ts +92 -92
  23. package/src/Resolved.ts +74 -74
  24. package/src/SnakeCase.ts +126 -126
  25. package/src/TypeGuardError.ts +37 -37
  26. package/src/executable/TypiaGenerateWizard.ts +83 -83
  27. package/src/executable/TypiaPatchWizard.ts +42 -42
  28. package/src/executable/TypiaSetupWizard.ts +174 -174
  29. package/src/executable/setup/ArgumentParser.ts +43 -43
  30. package/src/executable/setup/CommandExecutor.ts +8 -8
  31. package/src/executable/setup/FileRetriever.ts +22 -22
  32. package/src/executable/setup/PackageManager.ts +86 -86
  33. package/src/executable/setup/PluginConfigurator.ts +69 -69
  34. package/src/executable/typia.ts +55 -55
  35. package/src/factories/CommentFactory.ts +79 -79
  36. package/src/factories/ExpressionFactory.ts +150 -150
  37. package/src/factories/IdentifierFactory.ts +70 -70
  38. package/src/factories/JsonMetadataFactory.ts +53 -53
  39. package/src/factories/LiteralFactory.ts +47 -47
  40. package/src/factories/MetadataCollection.ts +274 -274
  41. package/src/factories/MetadataCommentTagFactory.ts +534 -534
  42. package/src/factories/MetadataFactory.ts +314 -314
  43. package/src/factories/MetadataTypeTagFactory.ts +336 -336
  44. package/src/factories/MetadataTypeTagSchemaFactory.ts +59 -59
  45. package/src/factories/NumericRangeFactory.ts +72 -72
  46. package/src/factories/ProtobufFactory.ts +267 -267
  47. package/src/factories/StatementFactory.ts +74 -74
  48. package/src/factories/TemplateFactory.ts +56 -56
  49. package/src/factories/TypeFactory.ts +118 -118
  50. package/src/factories/ValueFactory.ts +12 -12
  51. package/src/factories/internal/metadata/MetadataHelper.ts +21 -21
  52. package/src/factories/internal/metadata/emend_metadata_atomics.ts +45 -45
  53. package/src/factories/internal/metadata/emplace_metadata_alias.ts +41 -41
  54. package/src/factories/internal/metadata/emplace_metadata_array_type.ts +42 -42
  55. package/src/factories/internal/metadata/emplace_metadata_object.ts +186 -186
  56. package/src/factories/internal/metadata/emplace_metadata_tuple.ts +57 -57
  57. package/src/factories/internal/metadata/explore_metadata.ts +28 -28
  58. package/src/factories/internal/metadata/iterate_metadata.ts +100 -100
  59. package/src/factories/internal/metadata/iterate_metadata_alias.ts +34 -34
  60. package/src/factories/internal/metadata/iterate_metadata_array.ts +63 -63
  61. package/src/factories/internal/metadata/iterate_metadata_atomic.ts +62 -62
  62. package/src/factories/internal/metadata/iterate_metadata_coalesce.ts +28 -28
  63. package/src/factories/internal/metadata/iterate_metadata_collection.ts +131 -131
  64. package/src/factories/internal/metadata/iterate_metadata_comment_tags.ts +28 -28
  65. package/src/factories/internal/metadata/iterate_metadata_constant.ts +76 -76
  66. package/src/factories/internal/metadata/iterate_metadata_escape.ts +52 -52
  67. package/src/factories/internal/metadata/iterate_metadata_function.ts +89 -89
  68. package/src/factories/internal/metadata/iterate_metadata_intersection.ts +213 -213
  69. package/src/factories/internal/metadata/iterate_metadata_map.ts +50 -50
  70. package/src/factories/internal/metadata/iterate_metadata_native.ts +220 -220
  71. package/src/factories/internal/metadata/iterate_metadata_object.ts +33 -33
  72. package/src/factories/internal/metadata/iterate_metadata_set.ts +41 -41
  73. package/src/factories/internal/metadata/iterate_metadata_sort.ts +74 -74
  74. package/src/factories/internal/metadata/iterate_metadata_template.ts +44 -44
  75. package/src/factories/internal/metadata/iterate_metadata_tuple.ts +37 -37
  76. package/src/factories/internal/metadata/iterate_metadata_union.ts +27 -27
  77. package/src/functional/$FormDataReader/$FormDataReader.ts +83 -83
  78. package/src/functional/$FormDataReader/index.ts +1 -1
  79. package/src/functional/$HeadersReader/$HeadersReader.ts +26 -26
  80. package/src/functional/$HeadersReader/index.ts +1 -1
  81. package/src/functional/$ParameterReader/$ParameterReader.ts +29 -29
  82. package/src/functional/$ParameterReader/index.ts +1 -1
  83. package/src/functional/$ProtobufReader.ts +194 -194
  84. package/src/functional/$ProtobufSizer.ts +144 -144
  85. package/src/functional/$ProtobufWriter.ts +145 -145
  86. package/src/functional/$QueryReader/$QueryReader.ts +46 -46
  87. package/src/functional/$QueryReader/index.ts +1 -1
  88. package/src/functional/$any.ts +3 -3
  89. package/src/functional/$clone.ts +48 -48
  90. package/src/functional/$convention.ts +37 -37
  91. package/src/functional/$dictionary.ts +22 -22
  92. package/src/functional/$every.ts +11 -11
  93. package/src/functional/$guard.ts +21 -21
  94. package/src/functional/$is_between.ts +2 -2
  95. package/src/functional/$join.ts +46 -46
  96. package/src/functional/$number.ts +12 -12
  97. package/src/functional/$report.ts +13 -13
  98. package/src/functional/$rest.ts +3 -3
  99. package/src/functional/$stoll.ts +8 -8
  100. package/src/functional/$string.ts +43 -43
  101. package/src/functional/$strlen.ts +7 -7
  102. package/src/functional/$tail.ts +5 -5
  103. package/src/functional/$throws.ts +10 -10
  104. package/src/functional/$varint.ts +130 -130
  105. package/src/functional/$zigzag.ts +39 -39
  106. package/src/functional/IProtobufWriter.ts +18 -18
  107. package/src/functional/Namespace/functional.ts +5 -5
  108. package/src/functional/Namespace/http.ts +9 -9
  109. package/src/functional/Namespace/index.ts +77 -77
  110. package/src/functional/Namespace/json.ts +15 -15
  111. package/src/functional/Namespace/llm.ts +20 -20
  112. package/src/functional/Namespace/misc.ts +14 -14
  113. package/src/functional/Namespace/notations.ts +23 -23
  114. package/src/functional/Namespace/protobuf.ts +20 -20
  115. package/src/functional/is.ts +10 -10
  116. package/src/functional.ts +872 -872
  117. package/src/http.ts +1266 -1266
  118. package/src/index.ts +4 -4
  119. package/src/json.ts +738 -738
  120. package/src/llm.ts +186 -186
  121. package/src/misc.ts +757 -757
  122. package/src/module.ts +1023 -1023
  123. package/src/notations.ts +1020 -1020
  124. package/src/programmers/AssertProgrammer.ts +397 -397
  125. package/src/programmers/CheckerProgrammer.ts +1138 -1138
  126. package/src/programmers/FeatureProgrammer.ts +549 -549
  127. package/src/programmers/IsProgrammer.ts +220 -220
  128. package/src/programmers/RandomProgrammer.ts +955 -955
  129. package/src/programmers/TypiaProgrammer.ts +157 -157
  130. package/src/programmers/ValidateProgrammer.ts +382 -382
  131. package/src/programmers/functional/FunctionalAssertFunctionProgrammer.ts +141 -141
  132. package/src/programmers/functional/FunctionalAssertParametersProgrammer.ts +108 -108
  133. package/src/programmers/functional/FunctionalAssertReturnProgrammer.ts +98 -98
  134. package/src/programmers/functional/FunctionalIsFunctionProgrammer.ts +72 -72
  135. package/src/programmers/functional/FunctionalIsParametersProgrammer.ts +101 -101
  136. package/src/programmers/functional/FunctionalIsReturnProgrammer.ts +106 -106
  137. package/src/programmers/functional/FunctionalValidateFunctionProgrammer.ts +123 -123
  138. package/src/programmers/functional/FunctionalValidateParametersProgrammer.ts +267 -267
  139. package/src/programmers/functional/FunctionalValidateReturnProgrammer.ts +126 -126
  140. package/src/programmers/functional/internal/FunctionalGeneralProgrammer.ts +34 -34
  141. package/src/programmers/helpers/AtomicPredicator.ts +24 -24
  142. package/src/programmers/helpers/CloneJoiner.ts +130 -130
  143. package/src/programmers/helpers/FunctionImporeter.ts +1 -1
  144. package/src/programmers/helpers/FunctionImporter.ts +97 -97
  145. package/src/programmers/helpers/HttpMetadataUtil.ts +21 -21
  146. package/src/programmers/helpers/ICheckEntry.ts +13 -13
  147. package/src/programmers/helpers/IExpressionEntry.ts +12 -12
  148. package/src/programmers/helpers/NotationJoiner.ts +132 -132
  149. package/src/programmers/helpers/OptionPredicator.ts +15 -15
  150. package/src/programmers/helpers/ProtobufUtil.ts +125 -125
  151. package/src/programmers/helpers/ProtobufWire.ts +34 -34
  152. package/src/programmers/helpers/PruneJoiner.ts +139 -139
  153. package/src/programmers/helpers/RandomJoiner.ts +145 -145
  154. package/src/programmers/helpers/RandomRanger.ts +171 -171
  155. package/src/programmers/helpers/StringifyJoinder.ts +105 -105
  156. package/src/programmers/helpers/StringifyPredicator.ts +12 -12
  157. package/src/programmers/helpers/UnionExplorer.ts +269 -269
  158. package/src/programmers/helpers/UnionPredicator.ts +77 -77
  159. package/src/programmers/helpers/disable_function_importer_declare.ts +33 -33
  160. package/src/programmers/http/HttpAssertFormDataProgrammer.ts +91 -91
  161. package/src/programmers/http/HttpAssertHeadersProgrammer.ts +91 -91
  162. package/src/programmers/http/HttpAssertQueryProgrammer.ts +93 -93
  163. package/src/programmers/http/HttpFormDataProgrammer.ts +278 -278
  164. package/src/programmers/http/HttpHeadersProgrammer.ts +347 -347
  165. package/src/programmers/http/HttpIsFormDataProgrammer.ts +102 -102
  166. package/src/programmers/http/HttpIsHeadersProgrammer.ts +102 -102
  167. package/src/programmers/http/HttpIsQueryProgrammer.ts +104 -104
  168. package/src/programmers/http/HttpParameterProgrammer.ts +97 -97
  169. package/src/programmers/http/HttpQueryProgrammer.ts +298 -298
  170. package/src/programmers/http/HttpValidateFormDataProgrammer.ts +85 -85
  171. package/src/programmers/http/HttpValidateHeadersProgrammer.ts +85 -85
  172. package/src/programmers/http/HttpValidateQueryProgrammer.ts +87 -87
  173. package/src/programmers/internal/application_array.ts +61 -61
  174. package/src/programmers/internal/application_bigint.ts +25 -25
  175. package/src/programmers/internal/application_boolean.ts +25 -25
  176. package/src/programmers/internal/application_description.ts +12 -12
  177. package/src/programmers/internal/application_escaped.ts +74 -74
  178. package/src/programmers/internal/application_number.ts +25 -25
  179. package/src/programmers/internal/application_plugin.ts +19 -19
  180. package/src/programmers/internal/application_string.ts +25 -25
  181. package/src/programmers/internal/application_templates.ts +62 -62
  182. package/src/programmers/internal/application_title.ts +20 -20
  183. package/src/programmers/internal/application_union_discriminator.ts +35 -35
  184. package/src/programmers/internal/application_v30_alias.ts +52 -52
  185. package/src/programmers/internal/application_v30_constant.ts +18 -18
  186. package/src/programmers/internal/application_v30_native.ts +28 -28
  187. package/src/programmers/internal/application_v30_object.ts +149 -149
  188. package/src/programmers/internal/application_v30_schema.ts +161 -161
  189. package/src/programmers/internal/application_v30_tuple.ts +33 -33
  190. package/src/programmers/internal/application_v31_alias.ts +41 -41
  191. package/src/programmers/internal/application_v31_constant.ts +29 -29
  192. package/src/programmers/internal/application_v31_native.ts +24 -24
  193. package/src/programmers/internal/application_v31_object.ts +130 -130
  194. package/src/programmers/internal/application_v31_schema.ts +159 -159
  195. package/src/programmers/internal/application_v31_tuple.ts +21 -21
  196. package/src/programmers/internal/check_array_length.ts +45 -45
  197. package/src/programmers/internal/check_bigint.ts +49 -49
  198. package/src/programmers/internal/check_dynamic_key.ts +174 -174
  199. package/src/programmers/internal/check_dynamic_properties.ts +211 -211
  200. package/src/programmers/internal/check_everything.ts +23 -23
  201. package/src/programmers/internal/check_native.ts +21 -21
  202. package/src/programmers/internal/check_number.ts +107 -107
  203. package/src/programmers/internal/check_object.ts +61 -61
  204. package/src/programmers/internal/check_string.ts +48 -48
  205. package/src/programmers/internal/check_template.ts +46 -46
  206. package/src/programmers/internal/check_union_array_like.ts +307 -307
  207. package/src/programmers/internal/decode_union_object.ts +99 -99
  208. package/src/programmers/internal/feature_object_entries.ts +58 -58
  209. package/src/programmers/internal/llm_schema_array.ts +22 -22
  210. package/src/programmers/internal/llm_schema_escaped.ts +61 -61
  211. package/src/programmers/internal/llm_schema_native.ts +17 -17
  212. package/src/programmers/internal/llm_schema_object.ts +129 -129
  213. package/src/programmers/internal/llm_schema_station.ts +185 -185
  214. package/src/programmers/internal/llm_schema_tuple.ts +31 -31
  215. package/src/programmers/internal/metadata_to_pattern.ts +34 -34
  216. package/src/programmers/internal/postfix_of_tuple.ts +2 -2
  217. package/src/programmers/internal/prune_object_properties.ts +60 -60
  218. package/src/programmers/internal/random_custom.ts +37 -37
  219. package/src/programmers/internal/stringify_dynamic_properties.ts +157 -157
  220. package/src/programmers/internal/stringify_native.ts +7 -7
  221. package/src/programmers/internal/stringify_regular_properties.ts +81 -81
  222. package/src/programmers/internal/template_to_pattern.ts +15 -15
  223. package/src/programmers/internal/wrap_metadata_rest_tuple.ts +20 -20
  224. package/src/programmers/json/JsonApplicationProgrammer.ts +82 -82
  225. package/src/programmers/json/JsonAssertParseProgrammer.ts +96 -96
  226. package/src/programmers/json/JsonAssertStringifyProgrammer.ts +104 -104
  227. package/src/programmers/json/JsonIsParseProgrammer.ts +110 -110
  228. package/src/programmers/json/JsonIsStringifyProgrammer.ts +102 -102
  229. package/src/programmers/json/JsonStringifyProgrammer.ts +909 -909
  230. package/src/programmers/json/JsonValidateParseProgrammer.ts +87 -87
  231. package/src/programmers/json/JsonValidateStringifyProgrammer.ts +111 -111
  232. package/src/programmers/llm/LlmApplicationProgrammer.ts +219 -216
  233. package/src/programmers/llm/LlmSchemaProgrammer.ts +49 -49
  234. package/src/programmers/misc/MiscAssertCloneProgrammer.ts +87 -87
  235. package/src/programmers/misc/MiscAssertPruneProgrammer.ts +105 -105
  236. package/src/programmers/misc/MiscCloneProgrammer.ts +781 -781
  237. package/src/programmers/misc/MiscIsCloneProgrammer.ts +93 -93
  238. package/src/programmers/misc/MiscIsPruneProgrammer.ts +91 -91
  239. package/src/programmers/misc/MiscLiteralsProgrammer.ts +70 -70
  240. package/src/programmers/misc/MiscPruneProgrammer.ts +560 -560
  241. package/src/programmers/misc/MiscValidateCloneProgrammer.ts +104 -104
  242. package/src/programmers/misc/MiscValidatePruneProgrammer.ts +101 -101
  243. package/src/programmers/notations/NotationAssertGeneralProgrammer.ts +91 -91
  244. package/src/programmers/notations/NotationGeneralProgrammer.ts +714 -714
  245. package/src/programmers/notations/NotationIsGeneralProgrammer.ts +97 -97
  246. package/src/programmers/notations/NotationValidateGeneralProgrammer.ts +110 -110
  247. package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +91 -91
  248. package/src/programmers/protobuf/ProtobufAssertEncodeProgrammer.ts +95 -95
  249. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +646 -646
  250. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +852 -852
  251. package/src/programmers/protobuf/ProtobufIsDecodeProgrammer.ts +104 -104
  252. package/src/programmers/protobuf/ProtobufIsEncodeProgrammer.ts +93 -93
  253. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +160 -160
  254. package/src/programmers/protobuf/ProtobufValidateDecodeProgrammer.ts +85 -85
  255. package/src/programmers/protobuf/ProtobufValidateEncodeProgrammer.ts +109 -109
  256. package/src/protobuf.ts +999 -999
  257. package/src/reflect.ts +63 -63
  258. package/src/schemas/json/IJsonApplication.ts +22 -22
  259. package/src/schemas/metadata/IJsDocTagInfo.ts +10 -10
  260. package/src/schemas/metadata/IMetadata.ts +36 -36
  261. package/src/schemas/metadata/IMetadataAlias.ts +12 -12
  262. package/src/schemas/metadata/IMetadataApplication.ts +7 -7
  263. package/src/schemas/metadata/IMetadataArray.ts +7 -7
  264. package/src/schemas/metadata/IMetadataArrayType.ts +10 -10
  265. package/src/schemas/metadata/IMetadataAtomic.ts +6 -6
  266. package/src/schemas/metadata/IMetadataComponents.ts +11 -11
  267. package/src/schemas/metadata/IMetadataConstant.ts +18 -18
  268. package/src/schemas/metadata/IMetadataConstantValue.ts +11 -11
  269. package/src/schemas/metadata/IMetadataDictionary.ts +11 -11
  270. package/src/schemas/metadata/IMetadataEntry.ts +6 -6
  271. package/src/schemas/metadata/IMetadataEscaped.ts +6 -6
  272. package/src/schemas/metadata/IMetadataFunction.ts +8 -8
  273. package/src/schemas/metadata/IMetadataObject.ts +13 -13
  274. package/src/schemas/metadata/IMetadataParameter.ts +9 -9
  275. package/src/schemas/metadata/IMetadataProperty.ts +9 -9
  276. package/src/schemas/metadata/IMetadataTemplate.ts +7 -7
  277. package/src/schemas/metadata/IMetadataTuple.ts +7 -7
  278. package/src/schemas/metadata/IMetadataTupleType.ts +10 -10
  279. package/src/schemas/metadata/IMetadataTypeTag.ts +16 -16
  280. package/src/schemas/metadata/Metadata.ts +616 -616
  281. package/src/schemas/metadata/MetadataAlias.ts +61 -61
  282. package/src/schemas/metadata/MetadataApplication.ts +44 -44
  283. package/src/schemas/metadata/MetadataArray.ts +49 -49
  284. package/src/schemas/metadata/MetadataArrayType.ts +57 -57
  285. package/src/schemas/metadata/MetadataAtomic.ts +87 -87
  286. package/src/schemas/metadata/MetadataComponents.ts +98 -98
  287. package/src/schemas/metadata/MetadataConstant.ts +34 -34
  288. package/src/schemas/metadata/MetadataConstantValue.ts +62 -62
  289. package/src/schemas/metadata/MetadataEscaped.ts +51 -51
  290. package/src/schemas/metadata/MetadataFunction.ts +49 -49
  291. package/src/schemas/metadata/MetadataObject.ts +139 -139
  292. package/src/schemas/metadata/MetadataParameter.ts +50 -50
  293. package/src/schemas/metadata/MetadataProperty.ts +56 -56
  294. package/src/schemas/metadata/MetadataTemplate.ts +80 -80
  295. package/src/schemas/metadata/MetadataTuple.ts +32 -32
  296. package/src/schemas/metadata/MetadataTupleType.ts +67 -67
  297. package/src/tags/Constant.ts +15 -15
  298. package/src/tags/ContentMediaType.ts +10 -10
  299. package/src/tags/Default.ts +22 -22
  300. package/src/tags/Example.ts +17 -0
  301. package/src/tags/Examples.ts +16 -0
  302. package/src/tags/ExclusiveMaximum.ts +25 -25
  303. package/src/tags/ExclusiveMinimum.ts +25 -25
  304. package/src/tags/Format.ts +16 -16
  305. package/src/tags/JsonSchemaPlugin.ts +8 -8
  306. package/src/tags/MaxItems.ts +12 -12
  307. package/src/tags/MaxLength.ts +12 -12
  308. package/src/tags/Maximum.ts +19 -19
  309. package/src/tags/MinItems.ts +12 -12
  310. package/src/tags/MinLength.ts +12 -12
  311. package/src/tags/Minimum.ts +19 -19
  312. package/src/tags/MultipleOf.ts +21 -21
  313. package/src/tags/Pattern.ts +31 -31
  314. package/src/tags/TagBase.ts +76 -76
  315. package/src/tags/Type.ts +32 -32
  316. package/src/tags/UniqueItems.ts +14 -14
  317. package/src/tags/index.ts +20 -18
  318. package/src/tags/internal/FormatCheatSheet.ts +73 -73
  319. package/src/transform.ts +35 -35
  320. package/src/transformers/CallExpressionTransformer.ts +508 -508
  321. package/src/transformers/FileTransformer.ts +91 -91
  322. package/src/transformers/IProject.ts +15 -15
  323. package/src/transformers/ITransformOptions.ts +62 -62
  324. package/src/transformers/ImportTransformer.ts +66 -66
  325. package/src/transformers/NodeTransformer.ts +13 -13
  326. package/src/transformers/TransformerError.ts +60 -60
  327. package/src/transformers/features/AssertTransformer.ts +16 -16
  328. package/src/transformers/features/CreateAssertTransformer.ts +16 -16
  329. package/src/transformers/features/CreateIsTransformer.ts +10 -10
  330. package/src/transformers/features/CreateRandomTransformer.ts +40 -40
  331. package/src/transformers/features/CreateValidateTransformer.ts +13 -13
  332. package/src/transformers/features/IsTransformer.ts +10 -10
  333. package/src/transformers/features/RandomTransformer.ts +44 -44
  334. package/src/transformers/features/ValidateTransformer.ts +11 -11
  335. package/src/transformers/features/functional/FunctionalGenericTransformer.ts +57 -57
  336. package/src/transformers/features/http/CreateHttpAssertFormDataTransformer.ts +12 -12
  337. package/src/transformers/features/http/CreateHttpAssertHeadersTransformer.ts +11 -11
  338. package/src/transformers/features/http/CreateHttpAssertQueryTransformer.ts +9 -9
  339. package/src/transformers/features/http/CreateHttpFormDataTransformer.ts +9 -9
  340. package/src/transformers/features/http/CreateHttpHeadersTransformer.ts +9 -9
  341. package/src/transformers/features/http/CreateHttpIsFormDataTransformer.ts +9 -9
  342. package/src/transformers/features/http/CreateHttpIsHeadersTransformer.ts +9 -9
  343. package/src/transformers/features/http/CreateHttpIsQueryTransformer.ts +9 -9
  344. package/src/transformers/features/http/CreateHttpParameterTransformer.ts +9 -9
  345. package/src/transformers/features/http/CreateHttpQueryTransformer.ts +9 -9
  346. package/src/transformers/features/http/CreateHttpValidateFormDataTransformer.ts +12 -12
  347. package/src/transformers/features/http/CreateHttpValidateHeadersTransformer.ts +12 -12
  348. package/src/transformers/features/http/CreateHttpValidateQueryTransformer.ts +11 -11
  349. package/src/transformers/features/http/HttpAssertFormDataTransformer.ts +10 -10
  350. package/src/transformers/features/http/HttpAssertHeadersTransformer.ts +9 -9
  351. package/src/transformers/features/http/HttpAssertQueryTransformer.ts +9 -9
  352. package/src/transformers/features/http/HttpFormDataTransformer.ts +9 -9
  353. package/src/transformers/features/http/HttpHeadersTransformer.ts +9 -9
  354. package/src/transformers/features/http/HttpIsFormDataTransformer.ts +9 -9
  355. package/src/transformers/features/http/HttpIsHeadersTransformer.ts +9 -9
  356. package/src/transformers/features/http/HttpIsQueryTransformer.ts +9 -9
  357. package/src/transformers/features/http/HttpParameterTransformer.ts +9 -9
  358. package/src/transformers/features/http/HttpQueryTransformer.ts +9 -9
  359. package/src/transformers/features/http/HttpValidateFormDataTransformer.ts +10 -10
  360. package/src/transformers/features/http/HttpValidateHeadersTransformer.ts +10 -10
  361. package/src/transformers/features/http/HttpValidateQueryTransformer.ts +9 -9
  362. package/src/transformers/features/json/JsonApplicationTransformer.ts +124 -124
  363. package/src/transformers/features/json/JsonAssertParseTransformer.ts +9 -9
  364. package/src/transformers/features/json/JsonAssertStringifyTransformer.ts +10 -10
  365. package/src/transformers/features/json/JsonCreateAssertParseTransformer.ts +9 -9
  366. package/src/transformers/features/json/JsonCreateAssertStringifyTransformer.ts +12 -12
  367. package/src/transformers/features/json/JsonCreateIsParseTransformer.ts +9 -9
  368. package/src/transformers/features/json/JsonCreateIsStringifyTransformer.ts +9 -9
  369. package/src/transformers/features/json/JsonCreateStringifyTransformer.ts +9 -9
  370. package/src/transformers/features/json/JsonCreateValidateParseTransformer.ts +11 -11
  371. package/src/transformers/features/json/JsonCreateValidateStringifyProgrammer.ts +12 -12
  372. package/src/transformers/features/json/JsonIsParseTransformer.ts +9 -9
  373. package/src/transformers/features/json/JsonIsStringifyTransformer.ts +9 -9
  374. package/src/transformers/features/json/JsonStringifyTransformer.ts +9 -9
  375. package/src/transformers/features/json/JsonValidateParseTransformer.ts +9 -9
  376. package/src/transformers/features/json/JsonValidateStringifyTransformer.ts +10 -10
  377. package/src/transformers/features/llm/LlmApplicationTransformer.ts +83 -83
  378. package/src/transformers/features/llm/LlmSchemaTransformer.ts +53 -53
  379. package/src/transformers/features/misc/MiscAssertCloneTransformer.ts +9 -9
  380. package/src/transformers/features/misc/MiscAssertPruneTransformer.ts +9 -9
  381. package/src/transformers/features/misc/MiscCloneTransformer.ts +9 -9
  382. package/src/transformers/features/misc/MiscCreateAssertCloneTransformer.ts +9 -9
  383. package/src/transformers/features/misc/MiscCreateAssertPruneTransformer.ts +9 -9
  384. package/src/transformers/features/misc/MiscCreateCloneTransformer.ts +9 -9
  385. package/src/transformers/features/misc/MiscCreateIsCloneTransformer.ts +9 -9
  386. package/src/transformers/features/misc/MiscCreateIsPruneTransformer.ts +9 -9
  387. package/src/transformers/features/misc/MiscCreatePruneTransformer.ts +9 -9
  388. package/src/transformers/features/misc/MiscCreateValidateCloneTransformer.ts +11 -11
  389. package/src/transformers/features/misc/MiscCreateValidatePruneTransformer.ts +11 -11
  390. package/src/transformers/features/misc/MiscIsCloneTransformer.ts +9 -9
  391. package/src/transformers/features/misc/MiscIsPruneTransformer.ts +9 -9
  392. package/src/transformers/features/misc/MiscLiteralsTransformer.ts +32 -32
  393. package/src/transformers/features/misc/MiscPruneTransformer.ts +9 -9
  394. package/src/transformers/features/misc/MiscValidateCloneTransformer.ts +9 -9
  395. package/src/transformers/features/misc/MiscValidatePruneTransformer.ts +9 -9
  396. package/src/transformers/features/notations/NotationAssertGeneralTransformer.ts +15 -15
  397. package/src/transformers/features/notations/NotationCreateAssertGeneralTransformer.ts +15 -15
  398. package/src/transformers/features/notations/NotationCreateGeneralTransformer.ts +15 -15
  399. package/src/transformers/features/notations/NotationCreateIsGeneralTransformer.ts +15 -15
  400. package/src/transformers/features/notations/NotationCreateValidateGeneralTransformer.ts +15 -15
  401. package/src/transformers/features/notations/NotationGeneralTransformer.ts +11 -11
  402. package/src/transformers/features/notations/NotationIsGeneralTransformer.ts +15 -15
  403. package/src/transformers/features/notations/NotationValidateGeneralTransformer.ts +15 -15
  404. package/src/transformers/features/protobuf/ProtobufAssertDecodeTransformer.ts +10 -10
  405. package/src/transformers/features/protobuf/ProtobufAssertEncodeTransformer.ts +10 -10
  406. package/src/transformers/features/protobuf/ProtobufCreateAssertDecodeTransformer.ts +12 -12
  407. package/src/transformers/features/protobuf/ProtobufCreateAssertEncodeTransformer.ts +12 -12
  408. package/src/transformers/features/protobuf/ProtobufCreateDecodeTransformer.ts +9 -9
  409. package/src/transformers/features/protobuf/ProtobufCreateEncodeTransformer.ts +9 -9
  410. package/src/transformers/features/protobuf/ProtobufCreateIsDecodeTransformer.ts +9 -9
  411. package/src/transformers/features/protobuf/ProtobufCreateIsEncodeTransformer.ts +9 -9
  412. package/src/transformers/features/protobuf/ProtobufCreateValidateDecodeTransformer.ts +12 -12
  413. package/src/transformers/features/protobuf/ProtobufCreateValidateEncodeTransformer.ts +12 -12
  414. package/src/transformers/features/protobuf/ProtobufDecodeTransformer.ts +9 -9
  415. package/src/transformers/features/protobuf/ProtobufEncodeTransformer.ts +9 -9
  416. package/src/transformers/features/protobuf/ProtobufIsDecodeTransformer.ts +9 -9
  417. package/src/transformers/features/protobuf/ProtobufIsEncodeTransformer.ts +9 -9
  418. package/src/transformers/features/protobuf/ProtobufMessageTransformer.ts +33 -33
  419. package/src/transformers/features/protobuf/ProtobufValidateDecodeTransformer.ts +10 -10
  420. package/src/transformers/features/protobuf/ProtobufValidateEncodeTransformer.ts +10 -10
  421. package/src/transformers/features/reflect/ReflectMetadataTransformer.ts +63 -63
  422. package/src/transformers/features/reflect/ReflectNameTransformer.ts +66 -66
  423. package/src/transformers/internal/GenericTransformer.ts +104 -104
  424. package/src/typings/Atomic.ts +13 -13
  425. package/src/typings/ClassProperties.ts +5 -5
  426. package/src/typings/Customizable.ts +5 -5
  427. package/src/typings/Equal.ts +18 -18
  428. package/src/typings/IsTuple.ts +9 -9
  429. package/src/typings/NativeClass.ts +23 -23
  430. package/src/typings/OmitNever.ts +3 -3
  431. package/src/typings/ProtobufAtomic.ts +19 -19
  432. package/src/typings/SpecialFields.ts +3 -3
  433. package/src/typings/ValidationPipe.ts +9 -9
  434. package/src/typings/ValueOf.ts +20 -20
  435. package/src/typings/Writable.ts +11 -11
  436. package/src/utils/ArrayUtil.ts +41 -41
  437. package/src/utils/Escaper.ts +50 -50
  438. package/src/utils/MapUtil.ts +12 -12
  439. package/src/utils/NameEncoder.ts +32 -32
  440. package/src/utils/NamingConvention/NamingConvention.ts +89 -89
  441. package/src/utils/NamingConvention/index.ts +1 -1
  442. package/src/utils/PatternUtil.ts +29 -29
  443. package/src/utils/RandomGenerator/RandomGenerator.ts +119 -119
  444. package/src/utils/RandomGenerator/index.ts +1 -1
  445. package/src/utils/Singleton.ts +16 -16
  446. package/src/utils/StringUtil/StringUtil.ts +7 -7
  447. package/src/utils/StringUtil/index.ts +1 -1
package/src/llm.ts CHANGED
@@ -1,186 +1,186 @@
1
- import { ILlmApplication, ILlmSchema } from "@samchon/openapi";
2
-
3
- import * as Namespace from "./functional/Namespace";
4
-
5
- /**
6
- * > You must configure the generic argument `App`.
7
- *
8
- * TypeScript functions to LLM function calling application.
9
- *
10
- * Creates an application of LLM (Large Language Model) function calling application
11
- * from a TypeScript class or interface type containig the target functions to be
12
- * called by the LLM function calling feature.
13
- *
14
- * If you put the returned {@link ILlmApplication.functions} objects to the LLM provider
15
- * like [OpenAI (ChatGPT)](https://openai.com/), the LLM will automatically select the
16
- * proper function and fill its arguments from the conversation (maybe chatting text)
17
- * with user (human). This is the concept of the LLM function calling.
18
- *
19
- * By the way, there can be some parameters (or their nested properties) which must be
20
- * composed by human, not by LLM. File uploading feature or some sensitive information
21
- * like secrety key (password) are the examples. In that case, you can separate the
22
- * function parameters to both LLM and human sides by configuring the
23
- * {@link ILlmApplication.IOptions.separate} property. The separated parameters are
24
- * assigned to the {@link ILlmFunction.separated} property.
25
- *
26
- * For reference, the actual function call execution is not by LLM, but by you.
27
- * When the LLM selects the proper function and fills the arguments, you just call
28
- * the function with the LLM prepared arguments. And then informs the return value to
29
- * the LLM by system prompt. The LLM will continue the next conversation based on
30
- * the return value.
31
- *
32
- * Additionally, if you've configured {@link ILlmApplication.IOptions.separate},
33
- * so that the parameters are separated to human and LLM sides, you can merge these
34
- * humand and LLM sides' parameters into one through {@link HttpLlm.mergeParameters}
35
- * before the actual LLM function call execution.
36
- *
37
- * @template App Target class or interface type collecting the functions to call
38
- * @param options Options for the LLM application construction
39
- * @returns Application of LLM function calling schemas
40
- * @reference https://platform.openai.com/docs/guides/function-calling
41
- * @author Jeongho Nam - https://github.com/samchon
42
- */
43
- function application(options?: ILlmApplication.IOptions): never;
44
-
45
- /**
46
- * TypeScript functions to LLM function calling application.
47
- *
48
- * Creates an application of LLM (Large Language Model) function calling application
49
- * from a TypeScript class or interface type containig the target functions to be
50
- * called by the LLM function calling feature.
51
- *
52
- * If you put the returned {@link ILlmApplication.functions} objects to the LLM provider
53
- * like [OpenAI (ChatGPT)](https://openai.com/), the LLM will automatically select the
54
- * proper function and fill its arguments from the conversation (maybe chatting text)
55
- * with user (human). This is the concept of the LLM function calling.
56
- *
57
- * By the way, there can be some parameters (or their nested properties) which must be
58
- * composed by human, not by LLM. File uploading feature or some sensitive information
59
- * like secrety key (password) are the examples. In that case, you can separate the
60
- * function parameters to both LLM and human sides by configuring the
61
- * {@link ILlmApplication.IOptions.separate} property. The separated parameters are
62
- * assigned to the {@link ILlmFunction.separated} property.
63
- *
64
- * For reference, the actual function call execution is not by LLM, but by you.
65
- * When the LLM selects the proper function and fills the arguments, you just call
66
- * the function with the LLM prepared arguments. And then informs the return value to
67
- * the LLM by system prompt. The LLM will continue the next conversation based on
68
- * the return value.
69
- *
70
- * Additionally, if you've configured {@link ILlmApplication.IOptions.separate},
71
- * so that the parameters are separated to human and LLM sides, you can merge these
72
- * humand and LLM sides' parameters into one through {@link HttpLlm.mergeParameters}
73
- * before the actual LLM function call execution.
74
- *
75
- * @template App Target class or interface type collecting the functions to call
76
- * @param options Options for the LLM application construction
77
- * @returns Application of LLM function calling schemas
78
- * @reference https://platform.openai.com/docs/guides/function-calling
79
- * @author Jeongho Nam - https://github.com/samchon
80
- */
81
- function application<App extends object>(
82
- options?: ILlmApplication.IOptions,
83
- ): ILlmApplication;
84
-
85
- /**
86
- * @internal
87
- */
88
- function application(): never {
89
- halt("application");
90
- }
91
-
92
- const applicationPure = /** @__PURE__ */ Object.assign<typeof application, {}>(
93
- application,
94
- /** @__PURE__ */ Namespace.llm.application(),
95
- );
96
- export { applicationPure as application };
97
-
98
- /**
99
- * > You must configure the generic argument `T`.
100
- *
101
- * TypeScript type to LLM type schema.
102
- *
103
- * Creates an LLM (Large Language Model) type schema, a type metadata that is used in the
104
- * [LLM function calling](@reference https://platform.openai.com/docs/guides/function-calling),
105
- * from a TypeScript type.
106
- *
107
- * The returned {@link ILlmSchema} type is similar to the OpenAPI v3.0 based JSON schema
108
- * definition, but it is more simplified for the LLM function calling by remmoving the
109
- * {@link OpenApiV3.IJson.IReference reference} type embodied by the
110
- * {@link OpenApiV3.IJson.IReference.$ref `$ref`} proeprty.
111
- *
112
- * If you actually want to perform the LLM function calling with TypeScript functions,
113
- * you can do it with the {@link application} function. Let's enjoy the
114
- * LLM function calling with native TypeScript functions and types.
115
- *
116
- * > **What LLM function calling is?
117
- * >
118
- * > LLM (Large Language Model) selects propert function and fill the arguments,
119
- * > but actuall function call execution is not by LLM, but by you.
120
- * >
121
- * > In nowadays, most LLM (Large Language Model) like OpenAI are supporting
122
- * > "function calling" feature. The "function calling" means that LLM automatically selects
123
- * > a proper function and compose parameter values from the user's chatting text.
124
- * >
125
- * > When LLM selects the proper function and its arguments, you just call the function
126
- * > with the arguments. And then informs the return value to the LLM by system prompt,
127
- * > LLM will continue the next conversation based on the return value.
128
- *
129
- * @template T Target type
130
- * @returns LLM schema
131
- * @reference https://platform.openai.com/docs/guides/function-calling
132
- * @author Jeongho Nam - https://github.com/samchon
133
- */
134
- export function schema(): never;
135
-
136
- /**
137
- * TypeScript type to LLM type schema.
138
- *
139
- * Creates an LLM (Large Language Model) type schema, a type metadata that is used in the
140
- * [LLM function calling](@reference https://platform.openai.com/docs/guides/function-calling),
141
- * from a TypeScript type.
142
- *
143
- * The returned {@link ILlmSchema} type is similar to the OpenAPI v3.0 based JSON schema
144
- * definition, but it is more simplified for the LLM function calling by remmoving the
145
- * {@link OpenApiV3.IJson.IReference reference} type embodied by the
146
- * {@link OpenApiV3.IJson.IReference.$ref `$ref`} proeprty.
147
- *
148
- * If you actually want to perform the LLM function calling with TypeScript functions,
149
- * you can do it with the {@link application} function. Let's enjoy the
150
- * LLM function calling with native TypeScript functions and types.
151
- *
152
- * > **What LLM function calling is?
153
- * >
154
- * > LLM (Large Language Model) selects propert function and fill the arguments,
155
- * > but actuall function call execution is not by LLM, but by you.
156
- * >
157
- * > In nowadays, most LLM (Large Language Model) like OpenAI are supporting
158
- * > "function calling" feature. The "function calling" means that LLM automatically selects
159
- * > a proper function and compose parameter values from the user's chatting text.
160
- * >
161
- * > When LLM selects the proper function and its arguments, you just call the function
162
- * > with the arguments. And then informs the return value to the LLM by system prompt,
163
- * > LLM will continue the next conversation based on the return value.
164
- *
165
- * @template T Target type
166
- * @returns LLM schema
167
- * @reference https://platform.openai.com/docs/guides/function-calling
168
- * @author Jeongho Nam - https://github.com/samchon
169
- */
170
- export function schema<T>(): ILlmSchema;
171
-
172
- /**
173
- * @internal
174
- */
175
- export function schema(): never {
176
- halt("schema");
177
- }
178
-
179
- /**
180
- * @internal
181
- */
182
- function halt(name: string): never {
183
- throw new Error(
184
- `Error on typia.llm.${name}(): no transform has been configured. Read and follow https://typia.io/docs/setup please.`,
185
- );
186
- }
1
+ import { ILlmApplication, ILlmSchema } from "@samchon/openapi";
2
+
3
+ import * as Namespace from "./functional/Namespace";
4
+
5
+ /**
6
+ * > You must configure the generic argument `App`.
7
+ *
8
+ * TypeScript functions to LLM function calling application.
9
+ *
10
+ * Creates an application of LLM (Large Language Model) function calling application
11
+ * from a TypeScript class or interface type containig the target functions to be
12
+ * called by the LLM function calling feature.
13
+ *
14
+ * If you put the returned {@link ILlmApplication.functions} objects to the LLM provider
15
+ * like [OpenAI (ChatGPT)](https://openai.com/), the LLM will automatically select the
16
+ * proper function and fill its arguments from the conversation (maybe chatting text)
17
+ * with user (human). This is the concept of the LLM function calling.
18
+ *
19
+ * By the way, there can be some parameters (or their nested properties) which must be
20
+ * composed by human, not by LLM. File uploading feature or some sensitive information
21
+ * like secrety key (password) are the examples. In that case, you can separate the
22
+ * function parameters to both LLM and human sides by configuring the
23
+ * {@link ILlmApplication.IOptions.separate} property. The separated parameters are
24
+ * assigned to the {@link ILlmFunction.separated} property.
25
+ *
26
+ * For reference, the actual function call execution is not by LLM, but by you.
27
+ * When the LLM selects the proper function and fills the arguments, you just call
28
+ * the function with the LLM prepared arguments. And then informs the return value to
29
+ * the LLM by system prompt. The LLM will continue the next conversation based on
30
+ * the return value.
31
+ *
32
+ * Additionally, if you've configured {@link ILlmApplication.IOptions.separate},
33
+ * so that the parameters are separated to human and LLM sides, you can merge these
34
+ * humand and LLM sides' parameters into one through {@link HttpLlm.mergeParameters}
35
+ * before the actual LLM function call execution.
36
+ *
37
+ * @template App Target class or interface type collecting the functions to call
38
+ * @param options Options for the LLM application construction
39
+ * @returns Application of LLM function calling schemas
40
+ * @reference https://platform.openai.com/docs/guides/function-calling
41
+ * @author Jeongho Nam - https://github.com/samchon
42
+ */
43
+ function application(options?: ILlmApplication.IOptions): never;
44
+
45
+ /**
46
+ * TypeScript functions to LLM function calling application.
47
+ *
48
+ * Creates an application of LLM (Large Language Model) function calling application
49
+ * from a TypeScript class or interface type containig the target functions to be
50
+ * called by the LLM function calling feature.
51
+ *
52
+ * If you put the returned {@link ILlmApplication.functions} objects to the LLM provider
53
+ * like [OpenAI (ChatGPT)](https://openai.com/), the LLM will automatically select the
54
+ * proper function and fill its arguments from the conversation (maybe chatting text)
55
+ * with user (human). This is the concept of the LLM function calling.
56
+ *
57
+ * By the way, there can be some parameters (or their nested properties) which must be
58
+ * composed by human, not by LLM. File uploading feature or some sensitive information
59
+ * like secrety key (password) are the examples. In that case, you can separate the
60
+ * function parameters to both LLM and human sides by configuring the
61
+ * {@link ILlmApplication.IOptions.separate} property. The separated parameters are
62
+ * assigned to the {@link ILlmFunction.separated} property.
63
+ *
64
+ * For reference, the actual function call execution is not by LLM, but by you.
65
+ * When the LLM selects the proper function and fills the arguments, you just call
66
+ * the function with the LLM prepared arguments. And then informs the return value to
67
+ * the LLM by system prompt. The LLM will continue the next conversation based on
68
+ * the return value.
69
+ *
70
+ * Additionally, if you've configured {@link ILlmApplication.IOptions.separate},
71
+ * so that the parameters are separated to human and LLM sides, you can merge these
72
+ * humand and LLM sides' parameters into one through {@link HttpLlm.mergeParameters}
73
+ * before the actual LLM function call execution.
74
+ *
75
+ * @template App Target class or interface type collecting the functions to call
76
+ * @param options Options for the LLM application construction
77
+ * @returns Application of LLM function calling schemas
78
+ * @reference https://platform.openai.com/docs/guides/function-calling
79
+ * @author Jeongho Nam - https://github.com/samchon
80
+ */
81
+ function application<App extends object>(
82
+ options?: ILlmApplication.IOptions,
83
+ ): ILlmApplication;
84
+
85
+ /**
86
+ * @internal
87
+ */
88
+ function application(): never {
89
+ halt("application");
90
+ }
91
+
92
+ const applicationPure = /** @__PURE__ */ Object.assign<typeof application, {}>(
93
+ application,
94
+ /** @__PURE__ */ Namespace.llm.application(),
95
+ );
96
+ export { applicationPure as application };
97
+
98
+ /**
99
+ * > You must configure the generic argument `T`.
100
+ *
101
+ * TypeScript type to LLM type schema.
102
+ *
103
+ * Creates an LLM (Large Language Model) type schema, a type metadata that is used in the
104
+ * [LLM function calling](@reference https://platform.openai.com/docs/guides/function-calling),
105
+ * from a TypeScript type.
106
+ *
107
+ * The returned {@link ILlmSchema} type is similar to the OpenAPI v3.0 based JSON schema
108
+ * definition, but it is more simplified for the LLM function calling by remmoving the
109
+ * {@link OpenApiV3.IJson.IReference reference} type embodied by the
110
+ * {@link OpenApiV3.IJson.IReference.$ref `$ref`} proeprty.
111
+ *
112
+ * If you actually want to perform the LLM function calling with TypeScript functions,
113
+ * you can do it with the {@link application} function. Let's enjoy the
114
+ * LLM function calling with native TypeScript functions and types.
115
+ *
116
+ * > **What LLM function calling is?
117
+ * >
118
+ * > LLM (Large Language Model) selects propert function and fill the arguments,
119
+ * > but actuall function call execution is not by LLM, but by you.
120
+ * >
121
+ * > In nowadays, most LLM (Large Language Model) like OpenAI are supporting
122
+ * > "function calling" feature. The "function calling" means that LLM automatically selects
123
+ * > a proper function and compose parameter values from the user's chatting text.
124
+ * >
125
+ * > When LLM selects the proper function and its arguments, you just call the function
126
+ * > with the arguments. And then informs the return value to the LLM by system prompt,
127
+ * > LLM will continue the next conversation based on the return value.
128
+ *
129
+ * @template T Target type
130
+ * @returns LLM schema
131
+ * @reference https://platform.openai.com/docs/guides/function-calling
132
+ * @author Jeongho Nam - https://github.com/samchon
133
+ */
134
+ export function schema(): never;
135
+
136
+ /**
137
+ * TypeScript type to LLM type schema.
138
+ *
139
+ * Creates an LLM (Large Language Model) type schema, a type metadata that is used in the
140
+ * [LLM function calling](@reference https://platform.openai.com/docs/guides/function-calling),
141
+ * from a TypeScript type.
142
+ *
143
+ * The returned {@link ILlmSchema} type is similar to the OpenAPI v3.0 based JSON schema
144
+ * definition, but it is more simplified for the LLM function calling by remmoving the
145
+ * {@link OpenApiV3.IJson.IReference reference} type embodied by the
146
+ * {@link OpenApiV3.IJson.IReference.$ref `$ref`} proeprty.
147
+ *
148
+ * If you actually want to perform the LLM function calling with TypeScript functions,
149
+ * you can do it with the {@link application} function. Let's enjoy the
150
+ * LLM function calling with native TypeScript functions and types.
151
+ *
152
+ * > **What LLM function calling is?
153
+ * >
154
+ * > LLM (Large Language Model) selects propert function and fill the arguments,
155
+ * > but actuall function call execution is not by LLM, but by you.
156
+ * >
157
+ * > In nowadays, most LLM (Large Language Model) like OpenAI are supporting
158
+ * > "function calling" feature. The "function calling" means that LLM automatically selects
159
+ * > a proper function and compose parameter values from the user's chatting text.
160
+ * >
161
+ * > When LLM selects the proper function and its arguments, you just call the function
162
+ * > with the arguments. And then informs the return value to the LLM by system prompt,
163
+ * > LLM will continue the next conversation based on the return value.
164
+ *
165
+ * @template T Target type
166
+ * @returns LLM schema
167
+ * @reference https://platform.openai.com/docs/guides/function-calling
168
+ * @author Jeongho Nam - https://github.com/samchon
169
+ */
170
+ export function schema<T>(): ILlmSchema;
171
+
172
+ /**
173
+ * @internal
174
+ */
175
+ export function schema(): never {
176
+ halt("schema");
177
+ }
178
+
179
+ /**
180
+ * @internal
181
+ */
182
+ function halt(name: string): never {
183
+ throw new Error(
184
+ `Error on typia.llm.${name}(): no transform has been configured. Read and follow https://typia.io/docs/setup please.`,
185
+ );
186
+ }