typia 9.5.0-dev.20250710 → 9.5.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 (512) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +153 -153
  3. package/lib/executable/setup/PluginConfigurator.js +3 -3
  4. package/lib/executable/setup/PluginConfigurator.mjs +3 -3
  5. package/lib/executable/typia.js +15 -15
  6. package/lib/executable/typia.mjs +15 -15
  7. package/package.json +2 -3
  8. package/src/AssertionGuard.ts +39 -39
  9. package/src/CamelCase.ts +75 -75
  10. package/src/IRandomGenerator.ts +49 -49
  11. package/src/IReadableURLSearchParams.ts +9 -9
  12. package/src/IValidation.ts +1 -1
  13. package/src/PascalCase.ts +71 -71
  14. package/src/Primitive.ts +92 -92
  15. package/src/Resolved.ts +74 -74
  16. package/src/SnakeCase.ts +126 -126
  17. package/src/TypeGuardError.ts +179 -179
  18. package/src/executable/TypiaGenerateWizard.ts +83 -83
  19. package/src/executable/TypiaPatchWizard.ts +45 -45
  20. package/src/executable/TypiaSetupWizard.ts +171 -171
  21. package/src/executable/setup/ArgumentParser.ts +42 -42
  22. package/src/executable/setup/CommandExecutor.ts +8 -8
  23. package/src/executable/setup/FileRetriever.ts +19 -19
  24. package/src/executable/setup/PackageManager.ts +87 -87
  25. package/src/executable/setup/PluginConfigurator.ts +74 -74
  26. package/src/executable/typia.ts +55 -55
  27. package/src/factories/CommentFactory.ts +79 -79
  28. package/src/factories/ExpressionFactory.ts +219 -219
  29. package/src/factories/IdentifierFactory.ts +89 -89
  30. package/src/factories/JsonMetadataFactory.ts +83 -83
  31. package/src/factories/LiteralFactory.ts +52 -52
  32. package/src/factories/MetadataCollection.ts +278 -278
  33. package/src/factories/MetadataCommentTagFactory.ts +648 -648
  34. package/src/factories/MetadataFactory.ts +404 -404
  35. package/src/factories/MetadataTypeTagFactory.ts +413 -413
  36. package/src/factories/MetadataTypeTagSchemaFactory.ts +82 -82
  37. package/src/factories/NumericRangeFactory.ts +72 -72
  38. package/src/factories/ProtobufFactory.ts +875 -875
  39. package/src/factories/StatementFactory.ts +90 -90
  40. package/src/factories/TemplateFactory.ts +64 -64
  41. package/src/factories/TypeFactory.ts +140 -140
  42. package/src/factories/ValueFactory.ts +12 -12
  43. package/src/factories/internal/metadata/IMetadataIteratorProps.ts +17 -17
  44. package/src/factories/internal/metadata/MetadataHelper.ts +21 -21
  45. package/src/factories/internal/metadata/emend_metadata_atomics.ts +45 -45
  46. package/src/factories/internal/metadata/emplace_metadata_alias.ts +33 -33
  47. package/src/factories/internal/metadata/emplace_metadata_array_type.ts +39 -39
  48. package/src/factories/internal/metadata/emplace_metadata_object.ts +212 -212
  49. package/src/factories/internal/metadata/emplace_metadata_tuple.ts +57 -57
  50. package/src/factories/internal/metadata/explore_metadata.ts +31 -31
  51. package/src/factories/internal/metadata/iterate_metadata.ts +54 -54
  52. package/src/factories/internal/metadata/iterate_metadata_alias.ts +33 -33
  53. package/src/factories/internal/metadata/iterate_metadata_array.ts +63 -63
  54. package/src/factories/internal/metadata/iterate_metadata_atomic.ts +62 -62
  55. package/src/factories/internal/metadata/iterate_metadata_coalesce.ts +28 -28
  56. package/src/factories/internal/metadata/iterate_metadata_collection.ts +146 -146
  57. package/src/factories/internal/metadata/iterate_metadata_comment_tags.ts +32 -32
  58. package/src/factories/internal/metadata/iterate_metadata_constant.ts +76 -76
  59. package/src/factories/internal/metadata/iterate_metadata_escape.ts +49 -49
  60. package/src/factories/internal/metadata/iterate_metadata_function.ts +91 -91
  61. package/src/factories/internal/metadata/iterate_metadata_intersection.ts +212 -212
  62. package/src/factories/internal/metadata/iterate_metadata_map.ts +57 -57
  63. package/src/factories/internal/metadata/iterate_metadata_native.ts +264 -264
  64. package/src/factories/internal/metadata/iterate_metadata_object.ts +35 -35
  65. package/src/factories/internal/metadata/iterate_metadata_set.ts +57 -57
  66. package/src/factories/internal/metadata/iterate_metadata_sort.ts +87 -87
  67. package/src/factories/internal/metadata/iterate_metadata_template.ts +41 -41
  68. package/src/factories/internal/metadata/iterate_metadata_tuple.ts +26 -26
  69. package/src/factories/internal/metadata/iterate_metadata_union.ts +19 -19
  70. package/src/functional.ts +740 -740
  71. package/src/http.ts +1040 -1040
  72. package/src/index.ts +4 -4
  73. package/src/internal/_IProtobufWriter.ts +18 -18
  74. package/src/internal/_ProtobufReader.ts +194 -194
  75. package/src/internal/_ProtobufSizer.ts +145 -145
  76. package/src/internal/_ProtobufWriter.ts +145 -145
  77. package/src/internal/_accessExpressionAsString.ts +46 -46
  78. package/src/internal/_assertGuard.ts +13 -13
  79. package/src/internal/_createStandardSchema.ts +134 -134
  80. package/src/internal/_functionalTypeGuardErrorFactory.ts +4 -4
  81. package/src/internal/_httpFormDataReadArray.ts +4 -4
  82. package/src/internal/_httpFormDataReadBigint.ts +18 -18
  83. package/src/internal/_httpFormDataReadBlob.ts +10 -10
  84. package/src/internal/_httpFormDataReadBoolean.ts +16 -16
  85. package/src/internal/_httpFormDataReadFile.ts +10 -10
  86. package/src/internal/_httpFormDataReadNumber.ts +15 -15
  87. package/src/internal/_httpFormDataReadString.ts +10 -10
  88. package/src/internal/_httpHeaderReadBigint.ts +10 -10
  89. package/src/internal/_httpHeaderReadBoolean.ts +8 -8
  90. package/src/internal/_httpHeaderReadNumber.ts +7 -7
  91. package/src/internal/_httpParameterReadBigint.ts +10 -10
  92. package/src/internal/_httpParameterReadBoolean.ts +8 -8
  93. package/src/internal/_httpParameterReadNumber.ts +7 -7
  94. package/src/internal/_httpParameterReadString.ts +2 -2
  95. package/src/internal/_httpQueryParseURLSearchParams.ts +12 -12
  96. package/src/internal/_httpQueryReadArray.ts +4 -4
  97. package/src/internal/_httpQueryReadBigint.ts +12 -12
  98. package/src/internal/_httpQueryReadBoolean.ts +14 -14
  99. package/src/internal/_httpQueryReadNumber.ts +9 -9
  100. package/src/internal/_httpQueryReadString.ts +4 -4
  101. package/src/internal/_isBetween.ts +2 -2
  102. package/src/internal/_isBigintString.ts +8 -8
  103. package/src/internal/_isFormatByte.ts +7 -7
  104. package/src/internal/_isFormatDate.ts +3 -3
  105. package/src/internal/_isFormatDateTime.ts +4 -4
  106. package/src/internal/_isFormatDuration.ts +4 -4
  107. package/src/internal/_isFormatEmail.ts +4 -4
  108. package/src/internal/_isFormatHostname.ts +4 -4
  109. package/src/internal/_isFormatIdnEmail.ts +4 -4
  110. package/src/internal/_isFormatIdnHostname.ts +4 -4
  111. package/src/internal/_isFormatIpv4.ts +4 -4
  112. package/src/internal/_isFormatIpv6.ts +4 -4
  113. package/src/internal/_isFormatIri.ts +3 -3
  114. package/src/internal/_isFormatIriReference.ts +4 -4
  115. package/src/internal/_isFormatJsonPointer.ts +3 -3
  116. package/src/internal/_isFormatPassword.ts +1 -1
  117. package/src/internal/_isFormatRegex.ts +8 -8
  118. package/src/internal/_isFormatRelativeJsonPointer.ts +4 -4
  119. package/src/internal/_isFormatTime.ts +4 -4
  120. package/src/internal/_isFormatUri.ts +6 -6
  121. package/src/internal/_isFormatUriReference.ts +5 -5
  122. package/src/internal/_isFormatUriTemplate.ts +4 -4
  123. package/src/internal/_isFormatUrl.ts +4 -4
  124. package/src/internal/_isFormatUuid.ts +3 -3
  125. package/src/internal/_isTypeFloat.ts +5 -5
  126. package/src/internal/_isTypeInt32.ts +5 -5
  127. package/src/internal/_isTypeInt64.ts +5 -5
  128. package/src/internal/_isTypeUint32.ts +5 -5
  129. package/src/internal/_isTypeUint64.ts +5 -5
  130. package/src/internal/_isUniqueItems.ts +159 -159
  131. package/src/internal/_jsonStringifyNumber.ts +12 -12
  132. package/src/internal/_jsonStringifyRest.ts +3 -3
  133. package/src/internal/_jsonStringifyString.ts +42 -42
  134. package/src/internal/_jsonStringifyTail.ts +2 -2
  135. package/src/internal/_llmApplicationFinalize.ts +20 -20
  136. package/src/internal/_miscCloneAny.ts +46 -46
  137. package/src/internal/_notationAny.ts +37 -37
  138. package/src/internal/_notationCamel.ts +13 -13
  139. package/src/internal/_notationPascal.ts +8 -8
  140. package/src/internal/_notationSnake.ts +43 -43
  141. package/src/internal/_randomArray.ts +21 -21
  142. package/src/internal/_randomBigint.ts +6 -6
  143. package/src/internal/_randomBoolean.ts +1 -1
  144. package/src/internal/_randomFormatByte.ts +3 -3
  145. package/src/internal/_randomFormatDate.ts +18 -18
  146. package/src/internal/_randomFormatDatetime.ts +16 -16
  147. package/src/internal/_randomFormatDuration.ts +27 -27
  148. package/src/internal/_randomFormatEmail.ts +11 -11
  149. package/src/internal/_randomFormatHostname.ts +6 -6
  150. package/src/internal/_randomFormatIdnEmail.ts +3 -3
  151. package/src/internal/_randomFormatIdnHostname.ts +3 -3
  152. package/src/internal/_randomFormatIpv4.ts +11 -11
  153. package/src/internal/_randomFormatIpv6.ts +11 -11
  154. package/src/internal/_randomFormatIri.ts +3 -3
  155. package/src/internal/_randomFormatIriReference.ts +3 -3
  156. package/src/internal/_randomFormatJsonPointer.ts +7 -7
  157. package/src/internal/_randomFormatPassword.ts +8 -8
  158. package/src/internal/_randomFormatRegex.ts +4 -4
  159. package/src/internal/_randomFormatRelativeJsonPointer.ts +8 -8
  160. package/src/internal/_randomFormatTime.ts +14 -14
  161. package/src/internal/_randomFormatUri.ts +3 -3
  162. package/src/internal/_randomFormatUriReference.ts +3 -3
  163. package/src/internal/_randomFormatUriTemplate.ts +3 -3
  164. package/src/internal/_randomFormatUrl.ts +11 -11
  165. package/src/internal/_randomFormatUuid.ts +6 -6
  166. package/src/internal/_randomInteger.ts +53 -53
  167. package/src/internal/_randomNumber.ts +80 -80
  168. package/src/internal/_randomPattern.ts +10 -10
  169. package/src/internal/_randomPick.ts +9 -9
  170. package/src/internal/_randomString.ts +24 -24
  171. package/src/internal/_throwTypeGuardError.ts +5 -5
  172. package/src/internal/_validateReport.ts +13 -13
  173. package/src/internal/private/__notationCapitalize.ts +2 -2
  174. package/src/internal/private/__notationUnsnake.ts +24 -24
  175. package/src/json.ts +696 -696
  176. package/src/llm.ts +506 -506
  177. package/src/misc.ts +651 -651
  178. package/src/module.ts +936 -936
  179. package/src/notations.ts +820 -820
  180. package/src/programmers/AssertProgrammer.ts +454 -454
  181. package/src/programmers/CheckerProgrammer.ts +1617 -1617
  182. package/src/programmers/FeatureProgrammer.ts +627 -627
  183. package/src/programmers/ImportProgrammer.ts +185 -185
  184. package/src/programmers/IsProgrammer.ts +273 -273
  185. package/src/programmers/RandomProgrammer.ts +1190 -1190
  186. package/src/programmers/TypiaProgrammer.ts +175 -175
  187. package/src/programmers/ValidateProgrammer.ts +448 -448
  188. package/src/programmers/functional/FunctionalAssertFunctionProgrammer.ts +153 -153
  189. package/src/programmers/functional/FunctionalAssertParametersProgrammer.ts +125 -125
  190. package/src/programmers/functional/FunctionalAssertReturnProgrammer.ts +115 -115
  191. package/src/programmers/functional/FunctionalIsFunctionProgrammer.ts +72 -72
  192. package/src/programmers/functional/FunctionalIsParametersProgrammer.ts +113 -113
  193. package/src/programmers/functional/FunctionalIsReturnProgrammer.ts +116 -116
  194. package/src/programmers/functional/FunctionalValidateFunctionProgrammer.ts +119 -119
  195. package/src/programmers/functional/FunctionalValidateParametersProgrammer.ts +274 -274
  196. package/src/programmers/functional/FunctionalValidateReturnProgrammer.ts +135 -135
  197. package/src/programmers/functional/internal/FunctionalGeneralProgrammer.ts +34 -34
  198. package/src/programmers/helpers/AtomicPredicator.ts +35 -35
  199. package/src/programmers/helpers/CloneJoiner.ts +143 -143
  200. package/src/programmers/helpers/FunctionProgrammer.ts +67 -67
  201. package/src/programmers/helpers/HttpMetadataUtil.ts +21 -21
  202. package/src/programmers/helpers/ICheckEntry.ts +13 -13
  203. package/src/programmers/helpers/IExpressionEntry.ts +12 -12
  204. package/src/programmers/helpers/NotationJoiner.ts +144 -144
  205. package/src/programmers/helpers/OptionPredicator.ts +15 -15
  206. package/src/programmers/helpers/ProtobufUtil.ts +228 -228
  207. package/src/programmers/helpers/ProtobufWire.ts +34 -34
  208. package/src/programmers/helpers/PruneJoiner.ts +148 -148
  209. package/src/programmers/helpers/RandomJoiner.ts +168 -168
  210. package/src/programmers/helpers/StringifyJoinder.ts +115 -115
  211. package/src/programmers/helpers/StringifyPredicator.ts +13 -13
  212. package/src/programmers/helpers/UnionExplorer.ts +372 -372
  213. package/src/programmers/helpers/UnionPredicator.ts +79 -79
  214. package/src/programmers/helpers/disable_function_programmer_declare.ts +32 -32
  215. package/src/programmers/http/HttpAssertFormDataProgrammer.ts +99 -99
  216. package/src/programmers/http/HttpAssertHeadersProgrammer.ts +99 -99
  217. package/src/programmers/http/HttpAssertQueryProgrammer.ts +105 -105
  218. package/src/programmers/http/HttpFormDataProgrammer.ts +308 -308
  219. package/src/programmers/http/HttpHeadersProgrammer.ts +400 -400
  220. package/src/programmers/http/HttpIsFormDataProgrammer.ts +108 -108
  221. package/src/programmers/http/HttpIsHeadersProgrammer.ts +108 -108
  222. package/src/programmers/http/HttpIsQueryProgrammer.ts +114 -114
  223. package/src/programmers/http/HttpParameterProgrammer.ts +115 -115
  224. package/src/programmers/http/HttpQueryProgrammer.ts +336 -336
  225. package/src/programmers/http/HttpValidateFormDataProgrammer.ts +92 -92
  226. package/src/programmers/http/HttpValidateHeadersProgrammer.ts +92 -92
  227. package/src/programmers/http/HttpValidateQueryProgrammer.ts +98 -98
  228. package/src/programmers/internal/check_array_length.ts +47 -47
  229. package/src/programmers/internal/check_bigint.ts +50 -50
  230. package/src/programmers/internal/check_dynamic_key.ts +201 -201
  231. package/src/programmers/internal/check_dynamic_properties.ts +208 -208
  232. package/src/programmers/internal/check_everything.ts +23 -23
  233. package/src/programmers/internal/check_native.ts +27 -27
  234. package/src/programmers/internal/check_number.ts +112 -112
  235. package/src/programmers/internal/check_object.ts +75 -75
  236. package/src/programmers/internal/check_string.ts +50 -50
  237. package/src/programmers/internal/check_template.ts +48 -48
  238. package/src/programmers/internal/check_union_array_like.ts +335 -335
  239. package/src/programmers/internal/decode_union_object.ts +116 -116
  240. package/src/programmers/internal/feature_object_entries.ts +61 -61
  241. package/src/programmers/internal/json_schema_alias.ts +47 -47
  242. package/src/programmers/internal/json_schema_array.ts +45 -45
  243. package/src/programmers/internal/json_schema_bigint.ts +15 -15
  244. package/src/programmers/internal/json_schema_boolean.ts +15 -15
  245. package/src/programmers/internal/json_schema_constant.ts +26 -26
  246. package/src/programmers/internal/json_schema_description.ts +12 -12
  247. package/src/programmers/internal/json_schema_discriminator.ts +35 -35
  248. package/src/programmers/internal/json_schema_escaped.ts +82 -82
  249. package/src/programmers/internal/json_schema_native.ts +33 -33
  250. package/src/programmers/internal/json_schema_number.ts +15 -15
  251. package/src/programmers/internal/json_schema_object.ts +158 -158
  252. package/src/programmers/internal/json_schema_plugin.ts +18 -18
  253. package/src/programmers/internal/json_schema_station.ts +185 -185
  254. package/src/programmers/internal/json_schema_string.ts +15 -15
  255. package/src/programmers/internal/json_schema_template.ts +55 -55
  256. package/src/programmers/internal/json_schema_title.ts +13 -13
  257. package/src/programmers/internal/json_schema_tuple.ts +35 -35
  258. package/src/programmers/internal/metadata_to_pattern.ts +42 -42
  259. package/src/programmers/internal/postfix_of_tuple.ts +5 -5
  260. package/src/programmers/internal/prune_object_properties.ts +71 -71
  261. package/src/programmers/internal/stringify_dynamic_properties.ts +162 -162
  262. package/src/programmers/internal/stringify_native.ts +7 -7
  263. package/src/programmers/internal/stringify_regular_properties.ts +81 -81
  264. package/src/programmers/internal/template_to_pattern.ts +23 -23
  265. package/src/programmers/internal/wrap_metadata_rest_tuple.ts +23 -23
  266. package/src/programmers/json/JsonApplicationProgrammer.ts +266 -266
  267. package/src/programmers/json/JsonAssertParseProgrammer.ts +113 -113
  268. package/src/programmers/json/JsonAssertStringifyProgrammer.ts +115 -115
  269. package/src/programmers/json/JsonIsParseProgrammer.ts +114 -114
  270. package/src/programmers/json/JsonIsStringifyProgrammer.ts +108 -108
  271. package/src/programmers/json/JsonSchemaProgrammer.ts +26 -26
  272. package/src/programmers/json/JsonSchemasProgrammer.ts +91 -91
  273. package/src/programmers/json/JsonStringifyProgrammer.ts +1124 -1124
  274. package/src/programmers/json/JsonValidateParseProgrammer.ts +105 -105
  275. package/src/programmers/json/JsonValidateStringifyProgrammer.ts +124 -124
  276. package/src/programmers/llm/LlmApplicationProgrammer.ts +401 -401
  277. package/src/programmers/llm/LlmModelPredicator.ts +127 -127
  278. package/src/programmers/llm/LlmParametersProgrammer.ts +93 -93
  279. package/src/programmers/llm/LlmSchemaProgrammer.ts +192 -192
  280. package/src/programmers/misc/MiscAssertCloneProgrammer.ts +95 -95
  281. package/src/programmers/misc/MiscAssertPruneProgrammer.ts +116 -116
  282. package/src/programmers/misc/MiscCloneProgrammer.ts +1032 -1032
  283. package/src/programmers/misc/MiscIsCloneProgrammer.ts +99 -99
  284. package/src/programmers/misc/MiscIsPruneProgrammer.ts +97 -97
  285. package/src/programmers/misc/MiscLiteralsProgrammer.ts +80 -80
  286. package/src/programmers/misc/MiscPruneProgrammer.ts +728 -728
  287. package/src/programmers/misc/MiscValidateCloneProgrammer.ts +111 -111
  288. package/src/programmers/misc/MiscValidatePruneProgrammer.ts +113 -113
  289. package/src/programmers/notations/NotationAssertGeneralProgrammer.ts +101 -101
  290. package/src/programmers/notations/NotationGeneralProgrammer.ts +984 -984
  291. package/src/programmers/notations/NotationIsGeneralProgrammer.ts +105 -105
  292. package/src/programmers/notations/NotationValidateGeneralProgrammer.ts +119 -119
  293. package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +98 -98
  294. package/src/programmers/protobuf/ProtobufAssertEncodeProgrammer.ts +102 -102
  295. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +654 -654
  296. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +945 -945
  297. package/src/programmers/protobuf/ProtobufIsDecodeProgrammer.ts +109 -109
  298. package/src/programmers/protobuf/ProtobufIsEncodeProgrammer.ts +98 -98
  299. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +179 -179
  300. package/src/programmers/protobuf/ProtobufValidateDecodeProgrammer.ts +92 -92
  301. package/src/programmers/protobuf/ProtobufValidateEncodeProgrammer.ts +119 -119
  302. package/src/protobuf.ts +861 -861
  303. package/src/reflect.ts +50 -50
  304. package/src/schemas/json/IJsonApplication.ts +77 -77
  305. package/src/schemas/json/IJsonSchemaCollection.ts +195 -195
  306. package/src/schemas/json/IJsonSchemaUnit.ts +250 -250
  307. package/src/schemas/json/__IJsonApplication.ts +63 -63
  308. package/src/schemas/metadata/IJsDocTagInfo.ts +10 -10
  309. package/src/schemas/metadata/IMetadata.ts +35 -35
  310. package/src/schemas/metadata/IMetadataAlias.ts +6 -6
  311. package/src/schemas/metadata/IMetadataAliasType.ts +12 -12
  312. package/src/schemas/metadata/IMetadataApplication.ts +7 -7
  313. package/src/schemas/metadata/IMetadataArray.ts +6 -6
  314. package/src/schemas/metadata/IMetadataArrayType.ts +10 -10
  315. package/src/schemas/metadata/IMetadataAtomic.ts +6 -6
  316. package/src/schemas/metadata/IMetadataComponents.ts +11 -11
  317. package/src/schemas/metadata/IMetadataConstant.ts +18 -18
  318. package/src/schemas/metadata/IMetadataConstantValue.ts +11 -11
  319. package/src/schemas/metadata/IMetadataDictionary.ts +11 -11
  320. package/src/schemas/metadata/IMetadataEscaped.ts +6 -6
  321. package/src/schemas/metadata/IMetadataFunction.ts +8 -8
  322. package/src/schemas/metadata/IMetadataMap.ts +8 -8
  323. package/src/schemas/metadata/IMetadataNative.ts +6 -6
  324. package/src/schemas/metadata/IMetadataObject.ts +6 -6
  325. package/src/schemas/metadata/IMetadataObjectType.ts +13 -13
  326. package/src/schemas/metadata/IMetadataParameter.ts +9 -9
  327. package/src/schemas/metadata/IMetadataProperty.ts +9 -9
  328. package/src/schemas/metadata/IMetadataSet.ts +7 -7
  329. package/src/schemas/metadata/IMetadataTemplate.ts +7 -7
  330. package/src/schemas/metadata/IMetadataTuple.ts +6 -6
  331. package/src/schemas/metadata/IMetadataTupleType.ts +10 -10
  332. package/src/schemas/metadata/IMetadataTypeTag.ts +16 -16
  333. package/src/schemas/metadata/Metadata.ts +687 -687
  334. package/src/schemas/metadata/MetadataAlias.ts +46 -46
  335. package/src/schemas/metadata/MetadataAliasType.ts +63 -63
  336. package/src/schemas/metadata/MetadataApplication.ts +44 -44
  337. package/src/schemas/metadata/MetadataArray.ts +49 -49
  338. package/src/schemas/metadata/MetadataArrayType.ts +57 -57
  339. package/src/schemas/metadata/MetadataAtomic.ts +87 -87
  340. package/src/schemas/metadata/MetadataComponents.ts +98 -98
  341. package/src/schemas/metadata/MetadataConstant.ts +34 -34
  342. package/src/schemas/metadata/MetadataConstantValue.ts +62 -62
  343. package/src/schemas/metadata/MetadataEscaped.ts +51 -51
  344. package/src/schemas/metadata/MetadataFunction.ts +49 -49
  345. package/src/schemas/metadata/MetadataMap.ts +48 -48
  346. package/src/schemas/metadata/MetadataNative.ts +44 -44
  347. package/src/schemas/metadata/MetadataObject.ts +48 -48
  348. package/src/schemas/metadata/MetadataObjectType.ts +149 -149
  349. package/src/schemas/metadata/MetadataParameter.ts +54 -54
  350. package/src/schemas/metadata/MetadataProperty.ts +59 -59
  351. package/src/schemas/metadata/MetadataSet.ts +45 -45
  352. package/src/schemas/metadata/MetadataTemplate.ts +80 -80
  353. package/src/schemas/metadata/MetadataTuple.ts +32 -32
  354. package/src/schemas/metadata/MetadataTupleType.ts +67 -67
  355. package/src/schemas/protobuf/IProtobufProperty.ts +6 -6
  356. package/src/schemas/protobuf/IProtobufPropertyType.ts +37 -37
  357. package/src/schemas/protobuf/IProtobufSchema.ts +50 -50
  358. package/src/tags/Constant.ts +15 -15
  359. package/src/tags/ContentMediaType.ts +10 -10
  360. package/src/tags/Default.ts +22 -22
  361. package/src/tags/Example.ts +24 -24
  362. package/src/tags/Examples.ts +16 -16
  363. package/src/tags/ExclusiveMaximum.ts +23 -23
  364. package/src/tags/ExclusiveMinimum.ts +23 -23
  365. package/src/tags/Format.ts +50 -50
  366. package/src/tags/JsonSchemaPlugin.ts +8 -8
  367. package/src/tags/MaxItems.ts +12 -12
  368. package/src/tags/MaxLength.ts +12 -12
  369. package/src/tags/Maximum.ts +19 -19
  370. package/src/tags/MinItems.ts +12 -12
  371. package/src/tags/MinLength.ts +12 -12
  372. package/src/tags/Minimum.ts +19 -19
  373. package/src/tags/MultipleOf.ts +21 -21
  374. package/src/tags/Pattern.ts +31 -31
  375. package/src/tags/Sequence.ts +10 -10
  376. package/src/tags/TagBase.ts +82 -82
  377. package/src/tags/Type.ts +37 -37
  378. package/src/tags/UniqueItems.ts +14 -14
  379. package/src/tags/index.ts +21 -21
  380. package/src/tags/internal/FormatCheatSheet.ts +73 -73
  381. package/src/transform.ts +35 -35
  382. package/src/transformers/CallExpressionTransformer.ts +554 -554
  383. package/src/transformers/FileTransformer.ts +136 -136
  384. package/src/transformers/IProgrammerProps.ts +11 -11
  385. package/src/transformers/ITransformOptions.ts +62 -62
  386. package/src/transformers/ITransformProps.ts +9 -9
  387. package/src/transformers/ITypiaContext.ts +18 -18
  388. package/src/transformers/ImportTransformer.ts +81 -81
  389. package/src/transformers/NoTransformConfigurationError.ts +18 -18
  390. package/src/transformers/NodeTransformer.ts +17 -17
  391. package/src/transformers/TransformerError.ts +60 -60
  392. package/src/transformers/features/AssertTransformer.ts +24 -24
  393. package/src/transformers/features/CreateAssertTransformer.ts +24 -24
  394. package/src/transformers/features/CreateIsTransformer.ts +18 -18
  395. package/src/transformers/features/CreateRandomTransformer.ts +43 -43
  396. package/src/transformers/features/CreateValidateTransformer.ts +18 -18
  397. package/src/transformers/features/IsTransformer.ts +18 -18
  398. package/src/transformers/features/RandomTransformer.ts +41 -41
  399. package/src/transformers/features/ValidateTransformer.ts +18 -18
  400. package/src/transformers/features/functional/FunctionalGenericTransformer.ts +57 -57
  401. package/src/transformers/features/http/CreateHttpAssertFormDataTransformer.ts +13 -13
  402. package/src/transformers/features/http/CreateHttpAssertHeadersTransformer.ts +13 -13
  403. package/src/transformers/features/http/CreateHttpAssertQueryTransformer.ts +13 -13
  404. package/src/transformers/features/http/CreateHttpFormDataTransformer.ts +13 -13
  405. package/src/transformers/features/http/CreateHttpHeadersTransformer.ts +13 -13
  406. package/src/transformers/features/http/CreateHttpIsFormDataTransformer.ts +13 -13
  407. package/src/transformers/features/http/CreateHttpIsHeadersTransformer.ts +13 -13
  408. package/src/transformers/features/http/CreateHttpIsQueryTransformer.ts +13 -13
  409. package/src/transformers/features/http/CreateHttpParameterTransformer.ts +13 -13
  410. package/src/transformers/features/http/CreateHttpQueryTransformer.ts +13 -13
  411. package/src/transformers/features/http/CreateHttpValidateFormDataTransformer.ts +13 -13
  412. package/src/transformers/features/http/CreateHttpValidateHeadersTransformer.ts +13 -13
  413. package/src/transformers/features/http/CreateHttpValidateQueryTransformer.ts +13 -13
  414. package/src/transformers/features/http/HttpAssertFormDataTransformer.ts +13 -13
  415. package/src/transformers/features/http/HttpAssertHeadersTransformer.ts +13 -13
  416. package/src/transformers/features/http/HttpAssertQueryTransformer.ts +13 -13
  417. package/src/transformers/features/http/HttpFormDataTransformer.ts +13 -13
  418. package/src/transformers/features/http/HttpHeadersTransformer.ts +13 -13
  419. package/src/transformers/features/http/HttpIsFormDataTransformer.ts +13 -13
  420. package/src/transformers/features/http/HttpIsHeadersTransformer.ts +13 -13
  421. package/src/transformers/features/http/HttpIsQueryTransformer.ts +13 -13
  422. package/src/transformers/features/http/HttpParameterTransformer.ts +13 -13
  423. package/src/transformers/features/http/HttpQueryTransformer.ts +13 -13
  424. package/src/transformers/features/http/HttpValidateFormDataTransformer.ts +13 -13
  425. package/src/transformers/features/http/HttpValidateHeadersTransformer.ts +13 -13
  426. package/src/transformers/features/http/HttpValidateQueryTransformer.ts +13 -13
  427. package/src/transformers/features/json/JsonApplicationTransformer.ts +105 -105
  428. package/src/transformers/features/json/JsonAssertParseTransformer.ts +13 -13
  429. package/src/transformers/features/json/JsonAssertStringifyTransformer.ts +13 -13
  430. package/src/transformers/features/json/JsonCreateAssertParseTransformer.ts +13 -13
  431. package/src/transformers/features/json/JsonCreateAssertStringifyTransformer.ts +13 -13
  432. package/src/transformers/features/json/JsonCreateIsParseTransformer.ts +13 -13
  433. package/src/transformers/features/json/JsonCreateIsStringifyTransformer.ts +13 -13
  434. package/src/transformers/features/json/JsonCreateStringifyTransformer.ts +13 -13
  435. package/src/transformers/features/json/JsonCreateValidateParseTransformer.ts +13 -13
  436. package/src/transformers/features/json/JsonCreateValidateStringifyProgrammer.ts +13 -13
  437. package/src/transformers/features/json/JsonIsParseTransformer.ts +13 -13
  438. package/src/transformers/features/json/JsonIsStringifyTransformer.ts +13 -13
  439. package/src/transformers/features/json/JsonSchemaTransformer.ts +135 -135
  440. package/src/transformers/features/json/JsonSchemasTransformer.ts +145 -145
  441. package/src/transformers/features/json/JsonStringifyTransformer.ts +13 -13
  442. package/src/transformers/features/json/JsonValidateParseTransformer.ts +13 -13
  443. package/src/transformers/features/json/JsonValidateStringifyTransformer.ts +13 -13
  444. package/src/transformers/features/llm/LlmApplicationTransformer.ts +145 -145
  445. package/src/transformers/features/llm/LlmControllerTransformer.ts +93 -93
  446. package/src/transformers/features/llm/LlmParametersTransformer.ts +102 -102
  447. package/src/transformers/features/llm/LlmSchemaTransformer.ts +170 -170
  448. package/src/transformers/features/misc/MiscAssertCloneTransformer.ts +13 -13
  449. package/src/transformers/features/misc/MiscAssertPruneTransformer.ts +13 -13
  450. package/src/transformers/features/misc/MiscCloneTransformer.ts +13 -13
  451. package/src/transformers/features/misc/MiscCreateAssertCloneTransformer.ts +13 -13
  452. package/src/transformers/features/misc/MiscCreateAssertPruneTransformer.ts +13 -13
  453. package/src/transformers/features/misc/MiscCreateCloneTransformer.ts +13 -13
  454. package/src/transformers/features/misc/MiscCreateIsCloneTransformer.ts +13 -13
  455. package/src/transformers/features/misc/MiscCreateIsPruneTransformer.ts +13 -13
  456. package/src/transformers/features/misc/MiscCreatePruneTransformer.ts +13 -13
  457. package/src/transformers/features/misc/MiscCreateValidateCloneTransformer.ts +13 -13
  458. package/src/transformers/features/misc/MiscCreateValidatePruneTransformer.ts +13 -13
  459. package/src/transformers/features/misc/MiscIsCloneTransformer.ts +13 -13
  460. package/src/transformers/features/misc/MiscIsPruneTransformer.ts +13 -13
  461. package/src/transformers/features/misc/MiscLiteralsTransformer.ts +35 -35
  462. package/src/transformers/features/misc/MiscPruneTransformer.ts +13 -13
  463. package/src/transformers/features/misc/MiscValidateCloneTransformer.ts +13 -13
  464. package/src/transformers/features/misc/MiscValidatePruneTransformer.ts +13 -13
  465. package/src/transformers/features/notations/NotationAssertGeneralTransformer.ts +20 -20
  466. package/src/transformers/features/notations/NotationCreateAssertGeneralTransformer.ts +20 -20
  467. package/src/transformers/features/notations/NotationCreateGeneralTransformer.ts +20 -20
  468. package/src/transformers/features/notations/NotationCreateIsGeneralTransformer.ts +20 -20
  469. package/src/transformers/features/notations/NotationCreateValidateGeneralTransformer.ts +20 -20
  470. package/src/transformers/features/notations/NotationGeneralTransformer.ts +18 -18
  471. package/src/transformers/features/notations/NotationIsGeneralTransformer.ts +20 -20
  472. package/src/transformers/features/notations/NotationValidateGeneralTransformer.ts +20 -20
  473. package/src/transformers/features/protobuf/ProtobufAssertDecodeTransformer.ts +13 -13
  474. package/src/transformers/features/protobuf/ProtobufAssertEncodeTransformer.ts +13 -13
  475. package/src/transformers/features/protobuf/ProtobufCreateAssertDecodeTransformer.ts +13 -13
  476. package/src/transformers/features/protobuf/ProtobufCreateAssertEncodeTransformer.ts +13 -13
  477. package/src/transformers/features/protobuf/ProtobufCreateDecodeTransformer.ts +13 -13
  478. package/src/transformers/features/protobuf/ProtobufCreateEncodeTransformer.ts +13 -13
  479. package/src/transformers/features/protobuf/ProtobufCreateIsDecodeTransformer.ts +13 -13
  480. package/src/transformers/features/protobuf/ProtobufCreateIsEncodeTransformer.ts +13 -13
  481. package/src/transformers/features/protobuf/ProtobufCreateValidateDecodeTransformer.ts +13 -13
  482. package/src/transformers/features/protobuf/ProtobufCreateValidateEncodeTransformer.ts +13 -13
  483. package/src/transformers/features/protobuf/ProtobufDecodeTransformer.ts +13 -13
  484. package/src/transformers/features/protobuf/ProtobufEncodeTransformer.ts +13 -13
  485. package/src/transformers/features/protobuf/ProtobufIsDecodeTransformer.ts +13 -13
  486. package/src/transformers/features/protobuf/ProtobufIsEncodeTransformer.ts +13 -13
  487. package/src/transformers/features/protobuf/ProtobufMessageTransformer.ts +35 -35
  488. package/src/transformers/features/protobuf/ProtobufValidateDecodeTransformer.ts +13 -13
  489. package/src/transformers/features/protobuf/ProtobufValidateEncodeTransformer.ts +13 -13
  490. package/src/transformers/features/reflect/ReflectMetadataTransformer.ts +69 -69
  491. package/src/transformers/features/reflect/ReflectNameTransformer.ts +82 -82
  492. package/src/transformers/internal/GenericTransformer.ts +101 -101
  493. package/src/typings/Atomic.ts +13 -13
  494. package/src/typings/ClassProperties.ts +5 -5
  495. package/src/typings/Customizable.ts +5 -5
  496. package/src/typings/Equal.ts +18 -18
  497. package/src/typings/IsTuple.ts +9 -9
  498. package/src/typings/NativeClass.ts +23 -23
  499. package/src/typings/OmitNever.ts +3 -3
  500. package/src/typings/ProtobufAtomic.ts +19 -19
  501. package/src/typings/SpecialFields.ts +3 -3
  502. package/src/typings/ValidationPipe.ts +9 -9
  503. package/src/typings/ValueOf.ts +20 -20
  504. package/src/typings/Writable.ts +11 -11
  505. package/src/utils/ArrayUtil.ts +41 -41
  506. package/src/utils/Escaper.ts +50 -50
  507. package/src/utils/MapUtil.ts +14 -14
  508. package/src/utils/NamingConvention.ts +94 -94
  509. package/src/utils/PatternUtil.ts +29 -29
  510. package/src/utils/ProtobufNameEncoder.ts +32 -32
  511. package/src/utils/Singleton.ts +16 -16
  512. package/src/utils/StringUtil.ts +16 -16
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,153 +1,153 @@
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
- // AI FUNCTION CALLING SCHEMA
27
- export namespace llm {
28
- // collection of function calling schemas
29
- export function application<Class, Model>(): ILlmApplication<Class>;
30
- export function controller<Class, Model>(
31
- name: string,
32
- execute: Class,
33
- ): ILlmController<Model>; // +executor
34
- // structured output
35
- export function parameters<P, Model>(): ILlmSchema.IParameters<Model>;
36
- export function schema<T, Model>(): ILlmSchema<Model>; // type schema
37
- }
38
-
39
- // PROTOCOL BUFFER
40
- export namespace protobuf {
41
- export function message<T>(): string; // Protocol Buffer message
42
- export function assertDecode<T>(buffer: Uint8Array): T; // safe decoder
43
- export function assertEncode<T>(input: T): Uint8Array; // safe encoder
44
- }
45
-
46
- // RANDOM GENERATOR
47
- export function random<T>(g?: Partial<IRandomGenerator>): T;
48
- ```
49
-
50
- `typia` is a transformer library supporting below features:
51
-
52
- - Super-fast Runtime Validators
53
- - Enhanced JSON schema and serde functions
54
- - LLM function calling schema and structured output
55
- - Protocol Buffer encoder and decoder
56
- - Random data generator
57
-
58
- > [!NOTE]
59
- >
60
- > - **Only one line** required, with pure TypeScript type
61
- > - Runtime validator is **20,000x faster** than `class-validator`
62
- > - JSON serialization is **200x faster** than `class-transformer`
63
-
64
-
65
-
66
-
67
- ## Transformation
68
- If you call `typia` function, it would be compiled like below.
69
-
70
- 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.
71
-
72
- 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.
73
-
74
- ```typescript
75
- //----
76
- // examples/checkString.ts
77
- //----
78
- import typia, { tags } from "typia";
79
- export const checkString = typia.createIs<string>();
80
-
81
- //----
82
- // examples/checkString.js
83
- //----
84
- import typia from "typia";
85
- export const checkString = (() => {
86
- return (input) => "string" === typeof input;
87
- })();
88
- ```
89
-
90
-
91
-
92
- ## Sponsors
93
- Thanks for your support.
94
-
95
- Your donation encourages `typia` development.
96
-
97
- Also, `typia` is re-distributing half of donations to core contributors of `typia`.
98
-
99
- - [`nonara/ts-patch`](https://github.com/nonara/ts-patch)
100
- - [`ryoppippi/unplugin-typia`](https://github.com/ryoppippi/unplugin-typia)
101
-
102
- [![Sponsors](https://opencollective.com/typia/badge.svg?avatarHeight=75&width=600)](https://opencollective.com/typia)
103
-
104
-
105
-
106
-
107
- ## Playground
108
- You can experience how typia works by [playground website](https://typia.io/playground):
109
-
110
- - 💻 https://typia.io/playground
111
-
112
-
113
-
114
-
115
- ## Guide Documents
116
- Check out the document in the [website](https://typia.io/docs/):
117
-
118
- ### 🏠 Home
119
- - [Introduction](https://typia.io/docs/)
120
- - [Setup](https://typia.io/docs/setup/)
121
- - [Pure TypeScript](https://typia.io/docs/pure/)
122
-
123
- ### 📖 Features
124
- - Runtime Validators
125
- - [`assert()` function](https://typia.io/docs/validators/assert/)
126
- - [`is()` function](https://typia.io/docs/validators/is/)
127
- - [`validate()` function](https://typia.io/docs/validators/validate/)
128
- - [Functional Module](https://typia.io/docs/validators/functional)
129
- - [Special Tags](https://typia.io/docs/validators/tags/)
130
- - Enhanced JSON
131
- - [JSON Schema](https://typia.io/docs/json/schema/)
132
- - [`stringify()` functions](https://typia.io/docs/json/stringify/)
133
- - [`parse()` functions](https://typia.io/docs/json/parse/)
134
- - LLM Function Calling
135
- - [`application()` function](https://typia.io/docs/llm/application/)
136
- - [`parameters()` function](https://typia.io/docs/llm/parameters/)
137
- - [`schema()` function](https://typia.io/docs/llm/schema/)
138
- - [AI Chatbot Development](https://typia.io/docs/llm/chat/)
139
- - [Documentation Strategy](https://typia.io/docs/llm/strategy/)
140
- - Protocol Buffer
141
- - [Message Schema](https://typia.io/docs/protobuf/message)
142
- - [`decode()` functions](https://typia.io/docs/protobuf/decode/)
143
- - [`encode()` functions](https://typia.io/docs/protobuf/encode/)
144
- - [Random Generator](https://typia.io/docs/random/)
145
- - [Miscellaneous](https://typia.io/docs/misc/)
146
-
147
- ### 🔗 Appendix
148
- - [API Documents](https://typia.io/api)
149
- - Utillization Cases
150
- - [NestJS](https://typia.io/docs/utilization/nestjs/)
151
- - [tRPC](https://typia.io/docs/utilization/trpc/)
152
- - [⇲ Benchmark Result](https://github.com/samchon/typia/tree/master/benchmark/results/11th%20Gen%20Intel(R)%20Core(TM)%20i5-1135G7%20%40%202.40GHz)
153
- - [⇲ `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
+ // AI FUNCTION CALLING SCHEMA
27
+ export namespace llm {
28
+ // collection of function calling schemas
29
+ export function application<Class, Model>(): ILlmApplication<Class>;
30
+ export function controller<Class, Model>(
31
+ name: string,
32
+ execute: Class,
33
+ ): ILlmController<Model>; // +executor
34
+ // structured output
35
+ export function parameters<P, Model>(): ILlmSchema.IParameters<Model>;
36
+ export function schema<T, Model>(): ILlmSchema<Model>; // type schema
37
+ }
38
+
39
+ // PROTOCOL BUFFER
40
+ export namespace protobuf {
41
+ export function message<T>(): string; // Protocol Buffer message
42
+ export function assertDecode<T>(buffer: Uint8Array): T; // safe decoder
43
+ export function assertEncode<T>(input: T): Uint8Array; // safe encoder
44
+ }
45
+
46
+ // RANDOM GENERATOR
47
+ export function random<T>(g?: Partial<IRandomGenerator>): T;
48
+ ```
49
+
50
+ `typia` is a transformer library supporting below features:
51
+
52
+ - Super-fast Runtime Validators
53
+ - Enhanced JSON schema and serde functions
54
+ - LLM function calling schema and structured output
55
+ - Protocol Buffer encoder and decoder
56
+ - Random data generator
57
+
58
+ > [!NOTE]
59
+ >
60
+ > - **Only one line** required, with pure TypeScript type
61
+ > - Runtime validator is **20,000x faster** than `class-validator`
62
+ > - JSON serialization is **200x faster** than `class-transformer`
63
+
64
+
65
+
66
+
67
+ ## Transformation
68
+ If you call `typia` function, it would be compiled like below.
69
+
70
+ 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.
71
+
72
+ 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.
73
+
74
+ ```typescript
75
+ //----
76
+ // examples/checkString.ts
77
+ //----
78
+ import typia, { tags } from "typia";
79
+ export const checkString = typia.createIs<string>();
80
+
81
+ //----
82
+ // examples/checkString.js
83
+ //----
84
+ import typia from "typia";
85
+ export const checkString = (() => {
86
+ return (input) => "string" === typeof input;
87
+ })();
88
+ ```
89
+
90
+
91
+
92
+ ## Sponsors
93
+ Thanks for your support.
94
+
95
+ Your donation encourages `typia` development.
96
+
97
+ Also, `typia` is re-distributing half of donations to core contributors of `typia`.
98
+
99
+ - [`nonara/ts-patch`](https://github.com/nonara/ts-patch)
100
+ - [`ryoppippi/unplugin-typia`](https://github.com/ryoppippi/unplugin-typia)
101
+
102
+ [![Sponsors](https://opencollective.com/typia/badge.svg?avatarHeight=75&width=600)](https://opencollective.com/typia)
103
+
104
+
105
+
106
+
107
+ ## Playground
108
+ You can experience how typia works by [playground website](https://typia.io/playground):
109
+
110
+ - 💻 https://typia.io/playground
111
+
112
+
113
+
114
+
115
+ ## Guide Documents
116
+ Check out the document in the [website](https://typia.io/docs/):
117
+
118
+ ### 🏠 Home
119
+ - [Introduction](https://typia.io/docs/)
120
+ - [Setup](https://typia.io/docs/setup/)
121
+ - [Pure TypeScript](https://typia.io/docs/pure/)
122
+
123
+ ### 📖 Features
124
+ - Runtime Validators
125
+ - [`assert()` function](https://typia.io/docs/validators/assert/)
126
+ - [`is()` function](https://typia.io/docs/validators/is/)
127
+ - [`validate()` function](https://typia.io/docs/validators/validate/)
128
+ - [Functional Module](https://typia.io/docs/validators/functional)
129
+ - [Special Tags](https://typia.io/docs/validators/tags/)
130
+ - Enhanced JSON
131
+ - [JSON Schema](https://typia.io/docs/json/schema/)
132
+ - [`stringify()` functions](https://typia.io/docs/json/stringify/)
133
+ - [`parse()` functions](https://typia.io/docs/json/parse/)
134
+ - LLM Function Calling
135
+ - [`application()` function](https://typia.io/docs/llm/application/)
136
+ - [`parameters()` function](https://typia.io/docs/llm/parameters/)
137
+ - [`schema()` function](https://typia.io/docs/llm/schema/)
138
+ - [AI Chatbot Development](https://typia.io/docs/llm/chat/)
139
+ - [Documentation Strategy](https://typia.io/docs/llm/strategy/)
140
+ - Protocol Buffer
141
+ - [Message Schema](https://typia.io/docs/protobuf/message)
142
+ - [`decode()` functions](https://typia.io/docs/protobuf/decode/)
143
+ - [`encode()` functions](https://typia.io/docs/protobuf/encode/)
144
+ - [Random Generator](https://typia.io/docs/random/)
145
+ - [Miscellaneous](https://typia.io/docs/misc/)
146
+
147
+ ### 🔗 Appendix
148
+ - [API Documents](https://typia.io/api)
149
+ - Utillization Cases
150
+ - [NestJS](https://typia.io/docs/utilization/nestjs/)
151
+ - [tRPC](https://typia.io/docs/utilization/trpc/)
152
+ - [⇲ Benchmark Result](https://github.com/samchon/typia/tree/master/benchmark/results/11th%20Gen%20Intel(R)%20Core(TM)%20i5-1135G7%20%40%202.40GHz)
153
+ - [⇲ `dev.to` Articles](https://dev.to/samchon/series/22474)
@@ -50,9 +50,9 @@ var PluginConfigurator;
50
50
  if (strict === undefined && strictNullChecks === undefined)
51
51
  compilerOptions.strict = true;
52
52
  if (oldbie === undefined)
53
- plugins.push(comment_json_1.default.parse(`
54
- {
55
- "transform": "typia/lib/transform"
53
+ plugins.push(comment_json_1.default.parse(`
54
+ {
55
+ "transform": "typia/lib/transform"
56
56
  }`));
57
57
  yield fs_1.default.promises.writeFile(args.project, comment_json_1.default.stringify(config, null, 2));
58
58
  });
@@ -35,9 +35,9 @@ var PluginConfigurator;
35
35
  if (strict === undefined && strictNullChecks === undefined)
36
36
  compilerOptions.strict = true;
37
37
  if (oldbie === undefined)
38
- plugins.push(comments.parse(`
39
- {
40
- "transform": "typia/lib/transform"
38
+ plugins.push(comments.parse(`
39
+ {
40
+ "transform": "typia/lib/transform"
41
41
  }`));
42
42
  await fs.promises.writeFile(args.project, comments.stringify(config, null, 2));
43
43
  }
@@ -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/functional
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/functional
60
60
  `;
61
61
  const halt = (desc) => {
62
62
  console.error(desc);
@@ -1,19 +1,19 @@
1
1
  #!/usr/bin/env node
2
- const USAGE = `Wrong command has been detected. Use like below:
3
-
4
- npx typia setup \\
5
- --manager (npm|pnpm|yarn) \\
6
- --project {tsconfig.json file path}
7
-
8
- - npx typia setup
9
- - npx typia setup --manager pnpm
10
- - npx typia setup --project tsconfig.test.json
11
-
12
- npx typia generate
13
- --input {directory} \\
14
- --output {directory}
15
-
16
- --npx typia generate --input src/templates --output src/functional
2
+ const USAGE = `Wrong command has been detected. Use like below:
3
+
4
+ npx typia setup \\
5
+ --manager (npm|pnpm|yarn) \\
6
+ --project {tsconfig.json file path}
7
+
8
+ - npx typia setup
9
+ - npx typia setup --manager pnpm
10
+ - npx typia setup --project tsconfig.test.json
11
+
12
+ npx typia generate
13
+ --input {directory} \\
14
+ --output {directory}
15
+
16
+ --npx typia generate --input src/templates --output src/functional
17
17
  `;
18
18
  const halt = (desc) => {
19
19
  console.error(desc);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "typia",
3
- "version": "9.5.0-dev.20250710",
3
+ "version": "9.5.0",
4
4
  "description": "Superfast runtime validators with only one line",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
@@ -41,7 +41,7 @@
41
41
  },
42
42
  "homepage": "https://typia.io",
43
43
  "dependencies": {
44
- "@samchon/openapi": "^4.4.1",
44
+ "@samchon/openapi": "^4.5.0",
45
45
  "@standard-schema/spec": "^1.0.0",
46
46
  "commander": "^10.0.0",
47
47
  "comment-json": "^4.2.3",
@@ -50,7 +50,6 @@
50
50
  "randexp": "^0.5.3"
51
51
  },
52
52
  "peerDependencies": {
53
- "@samchon/openapi": ">=4.4.1 <5.0.0",
54
53
  "typescript": ">=4.8.0 <5.9.0"
55
54
  },
56
55
  "devDependencies": {
@@ -1,39 +1,39 @@
1
- /**
2
- * Type definition for assertion guard functions in `typia`.
3
- *
4
- * An assertion guard is a function that asserts an input value's type at runtime
5
- * and performs a TypeScript type assertion if validation passes. Unlike regular
6
- * assertion functions that return the validated value, assertion guards return
7
- * nothing but automatically cast the input parameter to the expected type `T`.
8
- *
9
- * This type is used by `typia.createAssertGuard<T>()` and `typia.createAssertGuardEquals<T>()`
10
- * to generate reusable assertion guard functions.
11
- *
12
- * @template T - The expected type to validate and assert against
13
- * @param input - The value to validate (type unknown)
14
- * @throws {TypeGuardError} When the input value doesn't match the expected type T
15
- * @returns void - Returns nothing, but asserts that input is type T
16
- *
17
- * @example
18
- * ```typescript
19
- * interface IMember {
20
- * name: string;
21
- * age: number;
22
- * }
23
- *
24
- * // Create reusable assertion guard
25
- * const assertMember: AssertionGuard<IMember> = typia.createAssertGuard<IMember>();
26
- *
27
- * // Usage - input will be automatically cast to IMember if validation passes
28
- * const unknownData: unknown = { name: "John", age: 25 };
29
- *
30
- * assertMember(unknownData);
31
- * // After this line, unknownData is automatically treated as IMember type
32
- * console.log(unknownData.name); // TypeScript knows this is safe
33
- * ```
34
- *
35
- * @see {@link https://github.com/samchon/typia#assertguard-functions} Typia assertion guards documentation
36
- * @see {@link TypeGuardError} Error thrown when assertion fails
37
- * @author Jeongho Nam - https://github.com/samchon
38
- */
39
- export type AssertionGuard<T> = (input: unknown) => asserts input is T;
1
+ /**
2
+ * Type definition for assertion guard functions in `typia`.
3
+ *
4
+ * An assertion guard is a function that asserts an input value's type at runtime
5
+ * and performs a TypeScript type assertion if validation passes. Unlike regular
6
+ * assertion functions that return the validated value, assertion guards return
7
+ * nothing but automatically cast the input parameter to the expected type `T`.
8
+ *
9
+ * This type is used by `typia.createAssertGuard<T>()` and `typia.createAssertGuardEquals<T>()`
10
+ * to generate reusable assertion guard functions.
11
+ *
12
+ * @template T - The expected type to validate and assert against
13
+ * @param input - The value to validate (type unknown)
14
+ * @throws {TypeGuardError} When the input value doesn't match the expected type T
15
+ * @returns void - Returns nothing, but asserts that input is type T
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * interface IMember {
20
+ * name: string;
21
+ * age: number;
22
+ * }
23
+ *
24
+ * // Create reusable assertion guard
25
+ * const assertMember: AssertionGuard<IMember> = typia.createAssertGuard<IMember>();
26
+ *
27
+ * // Usage - input will be automatically cast to IMember if validation passes
28
+ * const unknownData: unknown = { name: "John", age: 25 };
29
+ *
30
+ * assertMember(unknownData);
31
+ * // After this line, unknownData is automatically treated as IMember type
32
+ * console.log(unknownData.name); // TypeScript knows this is safe
33
+ * ```
34
+ *
35
+ * @see {@link https://github.com/samchon/typia#assertguard-functions} Typia assertion guards documentation
36
+ * @see {@link TypeGuardError} Error thrown when assertion fails
37
+ * @author Jeongho Nam - https://github.com/samchon
38
+ */
39
+ export type AssertionGuard<T> = (input: unknown) => asserts input is T;