typia 7.6.0 → 7.7.0-dev.20250130

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 (540) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +149 -149
  3. package/lib/TypeGuardError.mjs +26 -0
  4. package/lib/TypeGuardError.mjs.map +1 -0
  5. package/lib/executable/setup/PluginConfigurator.js +3 -3
  6. package/lib/executable/typia.js +15 -15
  7. package/lib/functional.mjs +120 -0
  8. package/lib/functional.mjs.map +1 -0
  9. package/lib/http.d.ts +15 -15
  10. package/lib/http.mjs +165 -0
  11. package/lib/http.mjs.map +1 -0
  12. package/lib/index.mjs +27 -1142
  13. package/lib/index.mjs.map +1 -1
  14. package/lib/json.mjs +105 -0
  15. package/lib/json.mjs.map +1 -0
  16. package/lib/llm.mjs +33 -0
  17. package/lib/llm.mjs.map +1 -0
  18. package/lib/misc.mjs +111 -0
  19. package/lib/misc.mjs.map +1 -0
  20. package/lib/module.d.ts +4 -4
  21. package/lib/module.mjs +139 -0
  22. package/lib/module.mjs.map +1 -0
  23. package/lib/notations.mjs +153 -0
  24. package/lib/notations.mjs.map +1 -0
  25. package/lib/protobuf.d.ts +9 -9
  26. package/lib/protobuf.mjs +111 -0
  27. package/lib/protobuf.mjs.map +1 -0
  28. package/lib/reflect.mjs +18 -0
  29. package/lib/reflect.mjs.map +1 -0
  30. package/lib/schemas/llm/ILlmApplicationOfValidate.mjs +6 -0
  31. package/lib/schemas/llm/ILlmApplicationOfValidate.mjs.map +1 -0
  32. package/lib/schemas/llm/ILlmFunctionOfValidate.mjs +6 -0
  33. package/lib/schemas/llm/ILlmFunctionOfValidate.mjs.map +1 -0
  34. package/lib/tags/TagBase.d.ts +1 -1
  35. package/lib/tags/index.mjs +2 -0
  36. package/lib/tags/index.mjs.map +1 -0
  37. package/package.json +9 -8
  38. package/src/AssertionGuard.ts +1 -1
  39. package/src/CamelCase.ts +75 -75
  40. package/src/IRandomGenerator.ts +49 -49
  41. package/src/IReadableURLSearchParams.ts +9 -9
  42. package/src/IValidation.ts +21 -21
  43. package/src/PascalCase.ts +71 -71
  44. package/src/Primitive.ts +92 -92
  45. package/src/Resolved.ts +74 -74
  46. package/src/SnakeCase.ts +126 -126
  47. package/src/TypeGuardError.ts +37 -37
  48. package/src/executable/TypiaGenerateWizard.ts +83 -83
  49. package/src/executable/TypiaPatchWizard.ts +45 -45
  50. package/src/executable/TypiaSetupWizard.ts +179 -179
  51. package/src/executable/setup/ArgumentParser.ts +42 -42
  52. package/src/executable/setup/CommandExecutor.ts +8 -8
  53. package/src/executable/setup/FileRetriever.ts +19 -19
  54. package/src/executable/setup/PackageManager.ts +87 -87
  55. package/src/executable/setup/PluginConfigurator.ts +69 -69
  56. package/src/executable/typia.ts +55 -55
  57. package/src/factories/CommentFactory.ts +79 -79
  58. package/src/factories/ExpressionFactory.ts +216 -216
  59. package/src/factories/IdentifierFactory.ts +89 -89
  60. package/src/factories/JsonMetadataFactory.ts +83 -83
  61. package/src/factories/LiteralFactory.ts +52 -52
  62. package/src/factories/MetadataCollection.ts +278 -278
  63. package/src/factories/MetadataCommentTagFactory.ts +650 -650
  64. package/src/factories/MetadataFactory.ts +404 -404
  65. package/src/factories/MetadataTypeTagFactory.ts +411 -411
  66. package/src/factories/MetadataTypeTagSchemaFactory.ts +82 -82
  67. package/src/factories/NumericRangeFactory.ts +72 -72
  68. package/src/factories/ProtobufFactory.ts +875 -875
  69. package/src/factories/StatementFactory.ts +90 -90
  70. package/src/factories/TemplateFactory.ts +64 -64
  71. package/src/factories/TypeFactory.ts +140 -140
  72. package/src/factories/ValueFactory.ts +12 -12
  73. package/src/factories/internal/metadata/IMetadataIteratorProps.ts +17 -17
  74. package/src/factories/internal/metadata/MetadataHelper.ts +21 -21
  75. package/src/factories/internal/metadata/emend_metadata_atomics.ts +45 -45
  76. package/src/factories/internal/metadata/emplace_metadata_alias.ts +33 -33
  77. package/src/factories/internal/metadata/emplace_metadata_array_type.ts +39 -39
  78. package/src/factories/internal/metadata/emplace_metadata_object.ts +208 -208
  79. package/src/factories/internal/metadata/emplace_metadata_tuple.ts +57 -57
  80. package/src/factories/internal/metadata/explore_metadata.ts +31 -31
  81. package/src/factories/internal/metadata/iterate_metadata.ts +54 -54
  82. package/src/factories/internal/metadata/iterate_metadata_alias.ts +33 -33
  83. package/src/factories/internal/metadata/iterate_metadata_array.ts +63 -63
  84. package/src/factories/internal/metadata/iterate_metadata_atomic.ts +62 -62
  85. package/src/factories/internal/metadata/iterate_metadata_coalesce.ts +28 -28
  86. package/src/factories/internal/metadata/iterate_metadata_collection.ts +146 -146
  87. package/src/factories/internal/metadata/iterate_metadata_comment_tags.ts +32 -32
  88. package/src/factories/internal/metadata/iterate_metadata_constant.ts +76 -76
  89. package/src/factories/internal/metadata/iterate_metadata_escape.ts +49 -49
  90. package/src/factories/internal/metadata/iterate_metadata_function.ts +91 -91
  91. package/src/factories/internal/metadata/iterate_metadata_intersection.ts +213 -213
  92. package/src/factories/internal/metadata/iterate_metadata_map.ts +57 -57
  93. package/src/factories/internal/metadata/iterate_metadata_native.ts +255 -255
  94. package/src/factories/internal/metadata/iterate_metadata_object.ts +35 -35
  95. package/src/factories/internal/metadata/iterate_metadata_set.ts +57 -57
  96. package/src/factories/internal/metadata/iterate_metadata_sort.ts +87 -87
  97. package/src/factories/internal/metadata/iterate_metadata_template.ts +41 -41
  98. package/src/factories/internal/metadata/iterate_metadata_tuple.ts +26 -26
  99. package/src/factories/internal/metadata/iterate_metadata_union.ts +19 -19
  100. package/src/functional.ts +750 -750
  101. package/src/http.ts +1047 -1047
  102. package/src/index.ts +4 -4
  103. package/src/internal/_IProtobufWriter.ts +18 -18
  104. package/src/internal/_ProtobufReader.ts +194 -194
  105. package/src/internal/_ProtobufSizer.ts +145 -145
  106. package/src/internal/_ProtobufWriter.ts +145 -145
  107. package/src/internal/_accessExpressionAsString.ts +46 -46
  108. package/src/internal/_assertGuard.ts +13 -13
  109. package/src/internal/_functionalTypeGuardErrorFactory.ts +4 -4
  110. package/src/internal/_httpFormDataReadArray.ts +4 -4
  111. package/src/internal/_httpFormDataReadBigint.ts +18 -18
  112. package/src/internal/_httpFormDataReadBlob.ts +10 -10
  113. package/src/internal/_httpFormDataReadBoolean.ts +16 -16
  114. package/src/internal/_httpFormDataReadFile.ts +10 -10
  115. package/src/internal/_httpFormDataReadNumber.ts +15 -15
  116. package/src/internal/_httpFormDataReadString.ts +10 -10
  117. package/src/internal/_httpHeaderReadBigint.ts +10 -10
  118. package/src/internal/_httpHeaderReadBoolean.ts +8 -8
  119. package/src/internal/_httpHeaderReadNumber.ts +7 -7
  120. package/src/internal/_httpParameterReadBigint.ts +10 -10
  121. package/src/internal/_httpParameterReadBoolean.ts +8 -8
  122. package/src/internal/_httpParameterReadNumber.ts +7 -7
  123. package/src/internal/_httpParameterReadString.ts +2 -2
  124. package/src/internal/_httpQueryParseURLSearchParams.ts +12 -12
  125. package/src/internal/_httpQueryReadArray.ts +4 -4
  126. package/src/internal/_httpQueryReadBigint.ts +12 -12
  127. package/src/internal/_httpQueryReadBoolean.ts +14 -14
  128. package/src/internal/_httpQueryReadNumber.ts +9 -9
  129. package/src/internal/_httpQueryReadString.ts +4 -4
  130. package/src/internal/_isBetween.ts +2 -2
  131. package/src/internal/_isBigintString.ts +8 -8
  132. package/src/internal/_isFormatByte.ts +7 -7
  133. package/src/internal/_isFormatDate.ts +3 -3
  134. package/src/internal/_isFormatDateTime.ts +4 -4
  135. package/src/internal/_isFormatDuration.ts +4 -4
  136. package/src/internal/_isFormatEmail.ts +4 -4
  137. package/src/internal/_isFormatHostname.ts +4 -4
  138. package/src/internal/_isFormatIdnEmail.ts +4 -4
  139. package/src/internal/_isFormatIdnHostname.ts +4 -4
  140. package/src/internal/_isFormatIpv4.ts +4 -4
  141. package/src/internal/_isFormatIpv6.ts +4 -4
  142. package/src/internal/_isFormatIri.ts +3 -3
  143. package/src/internal/_isFormatIriReference.ts +4 -4
  144. package/src/internal/_isFormatJsonPointer.ts +3 -3
  145. package/src/internal/_isFormatPassword.ts +1 -1
  146. package/src/internal/_isFormatRegex.ts +8 -8
  147. package/src/internal/_isFormatRelativeJsonPointer.ts +4 -4
  148. package/src/internal/_isFormatTime.ts +4 -4
  149. package/src/internal/_isFormatUri.ts +6 -6
  150. package/src/internal/_isFormatUriReference.ts +5 -5
  151. package/src/internal/_isFormatUriTemplate.ts +4 -4
  152. package/src/internal/_isFormatUrl.ts +4 -4
  153. package/src/internal/_isFormatUuid.ts +3 -3
  154. package/src/internal/_isTypeFloat.ts +5 -5
  155. package/src/internal/_isTypeInt32.ts +5 -5
  156. package/src/internal/_isTypeInt64.ts +5 -5
  157. package/src/internal/_isTypeUint32.ts +5 -5
  158. package/src/internal/_isTypeUint64.ts +5 -5
  159. package/src/internal/_isUniqueItems.ts +159 -159
  160. package/src/internal/_jsonStringifyNumber.ts +12 -12
  161. package/src/internal/_jsonStringifyRest.ts +3 -3
  162. package/src/internal/_jsonStringifyString.ts +42 -42
  163. package/src/internal/_jsonStringifyTail.ts +2 -2
  164. package/src/internal/_llmApplicationFinalize.ts +20 -20
  165. package/src/internal/_miscCloneAny.ts +46 -46
  166. package/src/internal/_notationAny.ts +37 -37
  167. package/src/internal/_notationCamel.ts +13 -13
  168. package/src/internal/_notationPascal.ts +8 -8
  169. package/src/internal/_notationSnake.ts +43 -43
  170. package/src/internal/_randomArray.ts +21 -21
  171. package/src/internal/_randomBigint.ts +6 -6
  172. package/src/internal/_randomBoolean.ts +1 -1
  173. package/src/internal/_randomFormatByte.ts +3 -3
  174. package/src/internal/_randomFormatDate.ts +18 -18
  175. package/src/internal/_randomFormatDatetime.ts +16 -16
  176. package/src/internal/_randomFormatDuration.ts +27 -27
  177. package/src/internal/_randomFormatEmail.ts +11 -11
  178. package/src/internal/_randomFormatHostname.ts +6 -6
  179. package/src/internal/_randomFormatIdnEmail.ts +3 -3
  180. package/src/internal/_randomFormatIdnHostname.ts +3 -3
  181. package/src/internal/_randomFormatIpv4.ts +11 -11
  182. package/src/internal/_randomFormatIpv6.ts +11 -11
  183. package/src/internal/_randomFormatIri.ts +3 -3
  184. package/src/internal/_randomFormatIriReference.ts +3 -3
  185. package/src/internal/_randomFormatJsonPointer.ts +7 -7
  186. package/src/internal/_randomFormatPassword.ts +8 -8
  187. package/src/internal/_randomFormatRegex.ts +4 -4
  188. package/src/internal/_randomFormatRelativeJsonPointer.ts +8 -8
  189. package/src/internal/_randomFormatTime.ts +14 -14
  190. package/src/internal/_randomFormatUri.ts +3 -3
  191. package/src/internal/_randomFormatUriReference.ts +3 -3
  192. package/src/internal/_randomFormatUriTemplate.ts +3 -3
  193. package/src/internal/_randomFormatUrl.ts +11 -11
  194. package/src/internal/_randomFormatUuid.ts +6 -6
  195. package/src/internal/_randomInteger.ts +47 -47
  196. package/src/internal/_randomNumber.ts +74 -74
  197. package/src/internal/_randomPattern.ts +10 -10
  198. package/src/internal/_randomPick.ts +9 -9
  199. package/src/internal/_randomString.ts +24 -24
  200. package/src/internal/_throwTypeGuardError.ts +5 -5
  201. package/src/internal/_validateReport.ts +13 -13
  202. package/src/internal/private/__notationCapitalize.ts +2 -2
  203. package/src/internal/private/__notationUnsnake.ts +24 -24
  204. package/src/json.ts +752 -752
  205. package/src/llm.ts +481 -481
  206. package/src/misc.ts +658 -658
  207. package/src/module.ts +937 -937
  208. package/src/notations.ts +827 -827
  209. package/src/programmers/AssertProgrammer.ts +454 -454
  210. package/src/programmers/CheckerProgrammer.ts +1617 -1617
  211. package/src/programmers/FeatureProgrammer.ts +622 -622
  212. package/src/programmers/ImportProgrammer.ts +185 -185
  213. package/src/programmers/IsProgrammer.ts +273 -273
  214. package/src/programmers/RandomProgrammer.ts +1190 -1190
  215. package/src/programmers/TypiaProgrammer.ts +174 -174
  216. package/src/programmers/ValidateProgrammer.ts +439 -439
  217. package/src/programmers/functional/FunctionalAssertFunctionProgrammer.ts +153 -153
  218. package/src/programmers/functional/FunctionalAssertParametersProgrammer.ts +125 -125
  219. package/src/programmers/functional/FunctionalAssertReturnProgrammer.ts +115 -115
  220. package/src/programmers/functional/FunctionalIsFunctionProgrammer.ts +72 -72
  221. package/src/programmers/functional/FunctionalIsParametersProgrammer.ts +113 -113
  222. package/src/programmers/functional/FunctionalIsReturnProgrammer.ts +116 -116
  223. package/src/programmers/functional/FunctionalValidateFunctionProgrammer.ts +119 -119
  224. package/src/programmers/functional/FunctionalValidateParametersProgrammer.ts +274 -274
  225. package/src/programmers/functional/FunctionalValidateReturnProgrammer.ts +135 -135
  226. package/src/programmers/functional/internal/FunctionalGeneralProgrammer.ts +34 -34
  227. package/src/programmers/helpers/AtomicPredicator.ts +35 -35
  228. package/src/programmers/helpers/CloneJoiner.ts +143 -143
  229. package/src/programmers/helpers/FunctionProgrammer.ts +67 -67
  230. package/src/programmers/helpers/HttpMetadataUtil.ts +21 -21
  231. package/src/programmers/helpers/ICheckEntry.ts +13 -13
  232. package/src/programmers/helpers/IExpressionEntry.ts +12 -12
  233. package/src/programmers/helpers/NotationJoiner.ts +144 -144
  234. package/src/programmers/helpers/OptionPredicator.ts +15 -15
  235. package/src/programmers/helpers/ProtobufUtil.ts +228 -228
  236. package/src/programmers/helpers/ProtobufWire.ts +34 -34
  237. package/src/programmers/helpers/PruneJoiner.ts +148 -148
  238. package/src/programmers/helpers/RandomJoiner.ts +168 -168
  239. package/src/programmers/helpers/StringifyJoinder.ts +115 -115
  240. package/src/programmers/helpers/StringifyPredicator.ts +13 -13
  241. package/src/programmers/helpers/UnionExplorer.ts +372 -372
  242. package/src/programmers/helpers/UnionPredicator.ts +79 -79
  243. package/src/programmers/helpers/disable_function_programmer_declare.ts +32 -32
  244. package/src/programmers/http/HttpAssertFormDataProgrammer.ts +99 -99
  245. package/src/programmers/http/HttpAssertHeadersProgrammer.ts +99 -99
  246. package/src/programmers/http/HttpAssertQueryProgrammer.ts +105 -105
  247. package/src/programmers/http/HttpFormDataProgrammer.ts +308 -308
  248. package/src/programmers/http/HttpHeadersProgrammer.ts +400 -400
  249. package/src/programmers/http/HttpIsFormDataProgrammer.ts +108 -108
  250. package/src/programmers/http/HttpIsHeadersProgrammer.ts +108 -108
  251. package/src/programmers/http/HttpIsQueryProgrammer.ts +114 -114
  252. package/src/programmers/http/HttpParameterProgrammer.ts +115 -115
  253. package/src/programmers/http/HttpQueryProgrammer.ts +336 -336
  254. package/src/programmers/http/HttpValidateFormDataProgrammer.ts +92 -92
  255. package/src/programmers/http/HttpValidateHeadersProgrammer.ts +92 -92
  256. package/src/programmers/http/HttpValidateQueryProgrammer.ts +98 -98
  257. package/src/programmers/internal/check_array_length.ts +47 -47
  258. package/src/programmers/internal/check_bigint.ts +50 -50
  259. package/src/programmers/internal/check_dynamic_key.ts +201 -201
  260. package/src/programmers/internal/check_dynamic_properties.ts +208 -208
  261. package/src/programmers/internal/check_everything.ts +23 -23
  262. package/src/programmers/internal/check_native.ts +27 -27
  263. package/src/programmers/internal/check_number.ts +112 -112
  264. package/src/programmers/internal/check_object.ts +75 -75
  265. package/src/programmers/internal/check_string.ts +50 -50
  266. package/src/programmers/internal/check_template.ts +48 -48
  267. package/src/programmers/internal/check_union_array_like.ts +335 -335
  268. package/src/programmers/internal/decode_union_object.ts +116 -116
  269. package/src/programmers/internal/feature_object_entries.ts +61 -61
  270. package/src/programmers/internal/json_schema_alias.ts +47 -47
  271. package/src/programmers/internal/json_schema_array.ts +45 -45
  272. package/src/programmers/internal/json_schema_bigint.ts +15 -15
  273. package/src/programmers/internal/json_schema_boolean.ts +15 -15
  274. package/src/programmers/internal/json_schema_constant.ts +26 -26
  275. package/src/programmers/internal/json_schema_description.ts +12 -12
  276. package/src/programmers/internal/json_schema_discriminator.ts +35 -35
  277. package/src/programmers/internal/json_schema_escaped.ts +82 -82
  278. package/src/programmers/internal/json_schema_native.ts +33 -33
  279. package/src/programmers/internal/json_schema_number.ts +15 -15
  280. package/src/programmers/internal/json_schema_object.ts +158 -158
  281. package/src/programmers/internal/json_schema_plugin.ts +18 -18
  282. package/src/programmers/internal/json_schema_station.ts +182 -182
  283. package/src/programmers/internal/json_schema_string.ts +15 -15
  284. package/src/programmers/internal/json_schema_template.ts +55 -55
  285. package/src/programmers/internal/json_schema_title.ts +20 -20
  286. package/src/programmers/internal/json_schema_tuple.ts +35 -35
  287. package/src/programmers/internal/metadata_to_pattern.ts +42 -42
  288. package/src/programmers/internal/postfix_of_tuple.ts +5 -5
  289. package/src/programmers/internal/prune_object_properties.ts +71 -71
  290. package/src/programmers/internal/stringify_dynamic_properties.ts +162 -162
  291. package/src/programmers/internal/stringify_native.ts +7 -7
  292. package/src/programmers/internal/stringify_regular_properties.ts +81 -81
  293. package/src/programmers/internal/template_to_pattern.ts +23 -23
  294. package/src/programmers/internal/wrap_metadata_rest_tuple.ts +23 -23
  295. package/src/programmers/json/JsonApplicationProgrammer.ts +279 -279
  296. package/src/programmers/json/JsonAssertParseProgrammer.ts +113 -113
  297. package/src/programmers/json/JsonAssertStringifyProgrammer.ts +115 -115
  298. package/src/programmers/json/JsonIsParseProgrammer.ts +114 -114
  299. package/src/programmers/json/JsonIsStringifyProgrammer.ts +108 -108
  300. package/src/programmers/json/JsonSchemasProgrammer.ts +91 -91
  301. package/src/programmers/json/JsonStringifyProgrammer.ts +1124 -1124
  302. package/src/programmers/json/JsonValidateParseProgrammer.ts +105 -105
  303. package/src/programmers/json/JsonValidateStringifyProgrammer.ts +124 -124
  304. package/src/programmers/llm/LlmApplicationOfValidateProgrammer.ts +104 -104
  305. package/src/programmers/llm/LlmApplicationProgrammer.ts +327 -327
  306. package/src/programmers/llm/LlmModelPredicator.ts +127 -127
  307. package/src/programmers/llm/LlmParametersProgrammer.ts +93 -93
  308. package/src/programmers/llm/LlmSchemaProgrammer.ts +192 -192
  309. package/src/programmers/misc/MiscAssertCloneProgrammer.ts +95 -95
  310. package/src/programmers/misc/MiscAssertPruneProgrammer.ts +116 -116
  311. package/src/programmers/misc/MiscCloneProgrammer.ts +1032 -1032
  312. package/src/programmers/misc/MiscIsCloneProgrammer.ts +99 -99
  313. package/src/programmers/misc/MiscIsPruneProgrammer.ts +97 -97
  314. package/src/programmers/misc/MiscLiteralsProgrammer.ts +80 -80
  315. package/src/programmers/misc/MiscPruneProgrammer.ts +728 -728
  316. package/src/programmers/misc/MiscValidateCloneProgrammer.ts +111 -111
  317. package/src/programmers/misc/MiscValidatePruneProgrammer.ts +113 -113
  318. package/src/programmers/notations/NotationAssertGeneralProgrammer.ts +101 -101
  319. package/src/programmers/notations/NotationGeneralProgrammer.ts +984 -984
  320. package/src/programmers/notations/NotationIsGeneralProgrammer.ts +105 -105
  321. package/src/programmers/notations/NotationValidateGeneralProgrammer.ts +119 -119
  322. package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +98 -98
  323. package/src/programmers/protobuf/ProtobufAssertEncodeProgrammer.ts +102 -102
  324. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +654 -654
  325. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +945 -945
  326. package/src/programmers/protobuf/ProtobufIsDecodeProgrammer.ts +109 -109
  327. package/src/programmers/protobuf/ProtobufIsEncodeProgrammer.ts +98 -98
  328. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +179 -179
  329. package/src/programmers/protobuf/ProtobufValidateDecodeProgrammer.ts +92 -92
  330. package/src/programmers/protobuf/ProtobufValidateEncodeProgrammer.ts +119 -119
  331. package/src/protobuf.ts +868 -868
  332. package/src/reflect.ts +57 -57
  333. package/src/schemas/json/IJsonApplication.ts +73 -73
  334. package/src/schemas/json/IJsonSchemaCollection.ts +29 -29
  335. package/src/schemas/json/__IJsonApplication.ts +63 -63
  336. package/src/schemas/llm/ILlmApplicationOfValidate.ts +55 -55
  337. package/src/schemas/llm/ILlmFunctionOfValidate.ts +39 -39
  338. package/src/schemas/metadata/IJsDocTagInfo.ts +10 -10
  339. package/src/schemas/metadata/IMetadata.ts +35 -35
  340. package/src/schemas/metadata/IMetadataAlias.ts +6 -6
  341. package/src/schemas/metadata/IMetadataAliasType.ts +12 -12
  342. package/src/schemas/metadata/IMetadataApplication.ts +7 -7
  343. package/src/schemas/metadata/IMetadataArray.ts +6 -6
  344. package/src/schemas/metadata/IMetadataArrayType.ts +10 -10
  345. package/src/schemas/metadata/IMetadataAtomic.ts +6 -6
  346. package/src/schemas/metadata/IMetadataComponents.ts +11 -11
  347. package/src/schemas/metadata/IMetadataConstant.ts +18 -18
  348. package/src/schemas/metadata/IMetadataConstantValue.ts +11 -11
  349. package/src/schemas/metadata/IMetadataDictionary.ts +11 -11
  350. package/src/schemas/metadata/IMetadataEscaped.ts +6 -6
  351. package/src/schemas/metadata/IMetadataFunction.ts +8 -8
  352. package/src/schemas/metadata/IMetadataMap.ts +8 -8
  353. package/src/schemas/metadata/IMetadataNative.ts +6 -6
  354. package/src/schemas/metadata/IMetadataObject.ts +6 -6
  355. package/src/schemas/metadata/IMetadataObjectType.ts +13 -13
  356. package/src/schemas/metadata/IMetadataParameter.ts +9 -9
  357. package/src/schemas/metadata/IMetadataProperty.ts +9 -9
  358. package/src/schemas/metadata/IMetadataSet.ts +7 -7
  359. package/src/schemas/metadata/IMetadataTemplate.ts +7 -7
  360. package/src/schemas/metadata/IMetadataTuple.ts +6 -6
  361. package/src/schemas/metadata/IMetadataTupleType.ts +10 -10
  362. package/src/schemas/metadata/IMetadataTypeTag.ts +16 -16
  363. package/src/schemas/metadata/Metadata.ts +669 -669
  364. package/src/schemas/metadata/MetadataAlias.ts +46 -46
  365. package/src/schemas/metadata/MetadataAliasType.ts +63 -63
  366. package/src/schemas/metadata/MetadataApplication.ts +44 -44
  367. package/src/schemas/metadata/MetadataArray.ts +49 -49
  368. package/src/schemas/metadata/MetadataArrayType.ts +57 -57
  369. package/src/schemas/metadata/MetadataAtomic.ts +87 -87
  370. package/src/schemas/metadata/MetadataComponents.ts +98 -98
  371. package/src/schemas/metadata/MetadataConstant.ts +34 -34
  372. package/src/schemas/metadata/MetadataConstantValue.ts +62 -62
  373. package/src/schemas/metadata/MetadataEscaped.ts +51 -51
  374. package/src/schemas/metadata/MetadataFunction.ts +49 -49
  375. package/src/schemas/metadata/MetadataMap.ts +48 -48
  376. package/src/schemas/metadata/MetadataNative.ts +44 -44
  377. package/src/schemas/metadata/MetadataObject.ts +48 -48
  378. package/src/schemas/metadata/MetadataObjectType.ts +149 -149
  379. package/src/schemas/metadata/MetadataParameter.ts +54 -54
  380. package/src/schemas/metadata/MetadataProperty.ts +59 -59
  381. package/src/schemas/metadata/MetadataSet.ts +45 -45
  382. package/src/schemas/metadata/MetadataTemplate.ts +80 -80
  383. package/src/schemas/metadata/MetadataTuple.ts +32 -32
  384. package/src/schemas/metadata/MetadataTupleType.ts +67 -67
  385. package/src/schemas/protobuf/IProtobufProperty.ts +6 -6
  386. package/src/schemas/protobuf/IProtobufPropertyType.ts +37 -37
  387. package/src/schemas/protobuf/IProtobufSchema.ts +50 -50
  388. package/src/tags/Constant.ts +15 -15
  389. package/src/tags/ContentMediaType.ts +10 -10
  390. package/src/tags/Default.ts +22 -22
  391. package/src/tags/Example.ts +24 -24
  392. package/src/tags/Examples.ts +16 -16
  393. package/src/tags/ExclusiveMaximum.ts +25 -25
  394. package/src/tags/ExclusiveMinimum.ts +25 -25
  395. package/src/tags/Format.ts +50 -50
  396. package/src/tags/JsonSchemaPlugin.ts +8 -8
  397. package/src/tags/MaxItems.ts +12 -12
  398. package/src/tags/MaxLength.ts +12 -12
  399. package/src/tags/Maximum.ts +19 -19
  400. package/src/tags/MinItems.ts +12 -12
  401. package/src/tags/MinLength.ts +12 -12
  402. package/src/tags/Minimum.ts +19 -19
  403. package/src/tags/MultipleOf.ts +21 -21
  404. package/src/tags/Pattern.ts +31 -31
  405. package/src/tags/Sequence.ts +10 -10
  406. package/src/tags/TagBase.ts +82 -82
  407. package/src/tags/Type.ts +32 -32
  408. package/src/tags/UniqueItems.ts +14 -14
  409. package/src/tags/index.ts +21 -21
  410. package/src/tags/internal/FormatCheatSheet.ts +73 -73
  411. package/src/transform.ts +35 -35
  412. package/src/transformers/CallExpressionTransformer.ts +547 -547
  413. package/src/transformers/FileTransformer.ts +136 -136
  414. package/src/transformers/IProgrammerProps.ts +11 -11
  415. package/src/transformers/ITransformOptions.ts +62 -62
  416. package/src/transformers/ITransformProps.ts +9 -9
  417. package/src/transformers/ITypiaContext.ts +18 -18
  418. package/src/transformers/ImportTransformer.ts +81 -81
  419. package/src/transformers/NodeTransformer.ts +17 -17
  420. package/src/transformers/TransformerError.ts +60 -60
  421. package/src/transformers/features/AssertTransformer.ts +24 -24
  422. package/src/transformers/features/CreateAssertTransformer.ts +24 -24
  423. package/src/transformers/features/CreateIsTransformer.ts +18 -18
  424. package/src/transformers/features/CreateRandomTransformer.ts +43 -43
  425. package/src/transformers/features/CreateValidateTransformer.ts +18 -18
  426. package/src/transformers/features/IsTransformer.ts +18 -18
  427. package/src/transformers/features/RandomTransformer.ts +41 -41
  428. package/src/transformers/features/ValidateTransformer.ts +18 -18
  429. package/src/transformers/features/functional/FunctionalGenericTransformer.ts +57 -57
  430. package/src/transformers/features/http/CreateHttpAssertFormDataTransformer.ts +13 -13
  431. package/src/transformers/features/http/CreateHttpAssertHeadersTransformer.ts +13 -13
  432. package/src/transformers/features/http/CreateHttpAssertQueryTransformer.ts +13 -13
  433. package/src/transformers/features/http/CreateHttpFormDataTransformer.ts +13 -13
  434. package/src/transformers/features/http/CreateHttpHeadersTransformer.ts +13 -13
  435. package/src/transformers/features/http/CreateHttpIsFormDataTransformer.ts +13 -13
  436. package/src/transformers/features/http/CreateHttpIsHeadersTransformer.ts +13 -13
  437. package/src/transformers/features/http/CreateHttpIsQueryTransformer.ts +13 -13
  438. package/src/transformers/features/http/CreateHttpParameterTransformer.ts +13 -13
  439. package/src/transformers/features/http/CreateHttpQueryTransformer.ts +13 -13
  440. package/src/transformers/features/http/CreateHttpValidateFormDataTransformer.ts +13 -13
  441. package/src/transformers/features/http/CreateHttpValidateHeadersTransformer.ts +13 -13
  442. package/src/transformers/features/http/CreateHttpValidateQueryTransformer.ts +13 -13
  443. package/src/transformers/features/http/HttpAssertFormDataTransformer.ts +13 -13
  444. package/src/transformers/features/http/HttpAssertHeadersTransformer.ts +13 -13
  445. package/src/transformers/features/http/HttpAssertQueryTransformer.ts +13 -13
  446. package/src/transformers/features/http/HttpFormDataTransformer.ts +13 -13
  447. package/src/transformers/features/http/HttpHeadersTransformer.ts +13 -13
  448. package/src/transformers/features/http/HttpIsFormDataTransformer.ts +13 -13
  449. package/src/transformers/features/http/HttpIsHeadersTransformer.ts +13 -13
  450. package/src/transformers/features/http/HttpIsQueryTransformer.ts +13 -13
  451. package/src/transformers/features/http/HttpParameterTransformer.ts +13 -13
  452. package/src/transformers/features/http/HttpQueryTransformer.ts +13 -13
  453. package/src/transformers/features/http/HttpValidateFormDataTransformer.ts +13 -13
  454. package/src/transformers/features/http/HttpValidateHeadersTransformer.ts +13 -13
  455. package/src/transformers/features/http/HttpValidateQueryTransformer.ts +13 -13
  456. package/src/transformers/features/json/JsonApplicationTransformer.ts +105 -105
  457. package/src/transformers/features/json/JsonAssertParseTransformer.ts +13 -13
  458. package/src/transformers/features/json/JsonAssertStringifyTransformer.ts +13 -13
  459. package/src/transformers/features/json/JsonCreateAssertParseTransformer.ts +13 -13
  460. package/src/transformers/features/json/JsonCreateAssertStringifyTransformer.ts +13 -13
  461. package/src/transformers/features/json/JsonCreateIsParseTransformer.ts +13 -13
  462. package/src/transformers/features/json/JsonCreateIsStringifyTransformer.ts +13 -13
  463. package/src/transformers/features/json/JsonCreateStringifyTransformer.ts +13 -13
  464. package/src/transformers/features/json/JsonCreateValidateParseTransformer.ts +13 -13
  465. package/src/transformers/features/json/JsonCreateValidateStringifyProgrammer.ts +13 -13
  466. package/src/transformers/features/json/JsonIsParseTransformer.ts +13 -13
  467. package/src/transformers/features/json/JsonIsStringifyTransformer.ts +13 -13
  468. package/src/transformers/features/json/JsonSchemasTransformer.ts +143 -143
  469. package/src/transformers/features/json/JsonStringifyTransformer.ts +13 -13
  470. package/src/transformers/features/json/JsonValidateParseTransformer.ts +13 -13
  471. package/src/transformers/features/json/JsonValidateStringifyTransformer.ts +13 -13
  472. package/src/transformers/features/llm/LlmApplicationOfValidateTransformer.ts +121 -121
  473. package/src/transformers/features/llm/LlmApplicationTransformer.ts +118 -118
  474. package/src/transformers/features/llm/LlmParametersTransformer.ts +94 -94
  475. package/src/transformers/features/llm/LlmSchemaTransformer.ts +135 -135
  476. package/src/transformers/features/misc/MiscAssertCloneTransformer.ts +13 -13
  477. package/src/transformers/features/misc/MiscAssertPruneTransformer.ts +13 -13
  478. package/src/transformers/features/misc/MiscCloneTransformer.ts +13 -13
  479. package/src/transformers/features/misc/MiscCreateAssertCloneTransformer.ts +13 -13
  480. package/src/transformers/features/misc/MiscCreateAssertPruneTransformer.ts +13 -13
  481. package/src/transformers/features/misc/MiscCreateCloneTransformer.ts +13 -13
  482. package/src/transformers/features/misc/MiscCreateIsCloneTransformer.ts +13 -13
  483. package/src/transformers/features/misc/MiscCreateIsPruneTransformer.ts +13 -13
  484. package/src/transformers/features/misc/MiscCreatePruneTransformer.ts +13 -13
  485. package/src/transformers/features/misc/MiscCreateValidateCloneTransformer.ts +13 -13
  486. package/src/transformers/features/misc/MiscCreateValidatePruneTransformer.ts +13 -13
  487. package/src/transformers/features/misc/MiscIsCloneTransformer.ts +13 -13
  488. package/src/transformers/features/misc/MiscIsPruneTransformer.ts +13 -13
  489. package/src/transformers/features/misc/MiscLiteralsTransformer.ts +35 -35
  490. package/src/transformers/features/misc/MiscPruneTransformer.ts +13 -13
  491. package/src/transformers/features/misc/MiscValidateCloneTransformer.ts +13 -13
  492. package/src/transformers/features/misc/MiscValidatePruneTransformer.ts +13 -13
  493. package/src/transformers/features/notations/NotationAssertGeneralTransformer.ts +20 -20
  494. package/src/transformers/features/notations/NotationCreateAssertGeneralTransformer.ts +20 -20
  495. package/src/transformers/features/notations/NotationCreateGeneralTransformer.ts +20 -20
  496. package/src/transformers/features/notations/NotationCreateIsGeneralTransformer.ts +20 -20
  497. package/src/transformers/features/notations/NotationCreateValidateGeneralTransformer.ts +20 -20
  498. package/src/transformers/features/notations/NotationGeneralTransformer.ts +18 -18
  499. package/src/transformers/features/notations/NotationIsGeneralTransformer.ts +20 -20
  500. package/src/transformers/features/notations/NotationValidateGeneralTransformer.ts +20 -20
  501. package/src/transformers/features/protobuf/ProtobufAssertDecodeTransformer.ts +13 -13
  502. package/src/transformers/features/protobuf/ProtobufAssertEncodeTransformer.ts +13 -13
  503. package/src/transformers/features/protobuf/ProtobufCreateAssertDecodeTransformer.ts +13 -13
  504. package/src/transformers/features/protobuf/ProtobufCreateAssertEncodeTransformer.ts +13 -13
  505. package/src/transformers/features/protobuf/ProtobufCreateDecodeTransformer.ts +13 -13
  506. package/src/transformers/features/protobuf/ProtobufCreateEncodeTransformer.ts +13 -13
  507. package/src/transformers/features/protobuf/ProtobufCreateIsDecodeTransformer.ts +13 -13
  508. package/src/transformers/features/protobuf/ProtobufCreateIsEncodeTransformer.ts +13 -13
  509. package/src/transformers/features/protobuf/ProtobufCreateValidateDecodeTransformer.ts +13 -13
  510. package/src/transformers/features/protobuf/ProtobufCreateValidateEncodeTransformer.ts +13 -13
  511. package/src/transformers/features/protobuf/ProtobufDecodeTransformer.ts +13 -13
  512. package/src/transformers/features/protobuf/ProtobufEncodeTransformer.ts +13 -13
  513. package/src/transformers/features/protobuf/ProtobufIsDecodeTransformer.ts +13 -13
  514. package/src/transformers/features/protobuf/ProtobufIsEncodeTransformer.ts +13 -13
  515. package/src/transformers/features/protobuf/ProtobufMessageTransformer.ts +35 -35
  516. package/src/transformers/features/protobuf/ProtobufValidateDecodeTransformer.ts +13 -13
  517. package/src/transformers/features/protobuf/ProtobufValidateEncodeTransformer.ts +13 -13
  518. package/src/transformers/features/reflect/ReflectMetadataTransformer.ts +69 -69
  519. package/src/transformers/features/reflect/ReflectNameTransformer.ts +82 -82
  520. package/src/transformers/internal/GenericTransformer.ts +101 -101
  521. package/src/typings/Atomic.ts +13 -13
  522. package/src/typings/ClassProperties.ts +5 -5
  523. package/src/typings/Customizable.ts +5 -5
  524. package/src/typings/Equal.ts +18 -18
  525. package/src/typings/IsTuple.ts +9 -9
  526. package/src/typings/NativeClass.ts +23 -23
  527. package/src/typings/OmitNever.ts +3 -3
  528. package/src/typings/ProtobufAtomic.ts +19 -19
  529. package/src/typings/SpecialFields.ts +3 -3
  530. package/src/typings/ValidationPipe.ts +9 -9
  531. package/src/typings/ValueOf.ts +20 -20
  532. package/src/typings/Writable.ts +11 -11
  533. package/src/utils/ArrayUtil.ts +41 -41
  534. package/src/utils/Escaper.ts +50 -50
  535. package/src/utils/MapUtil.ts +14 -14
  536. package/src/utils/NamingConvention.ts +94 -94
  537. package/src/utils/PatternUtil.ts +29 -29
  538. package/src/utils/ProtobufNameEncoder.ts +32 -32
  539. package/src/utils/Singleton.ts +16 -16
  540. 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,149 +1,149 @@
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-Ask%20Typia%20Guru-006BFF)](https://gurubase.io/g/typia)
10
- [![Discord Badge](https://img.shields.io/badge/discord-samchon-d91965?style=flat&labelColor=5866f2&logo=discord&logoColor=white&link=https://discord.gg/E94XhzrUCZ)](https://discord.gg/E94XhzrUCZ)
11
-
12
- ```typescript
13
- // RUNTIME VALIDATORS
14
- export function is<T>(input: unknown): input is T; // returns boolean
15
- export function assert<T>(input: unknown): T; // throws TypeGuardError
16
- export function assertGuard<T>(input: unknown): asserts input is T;
17
- export function validate<T>(input: unknown): IValidation<T>; // detailed
18
-
19
- // JSON FUNCTIONS
20
- export namespace json {
21
- export function application<T>(): IJsonApplication; // JSON schema
22
- export function assertParse<T>(input: string): T; // type safe parser
23
- export function assertStringify<T>(input: T): string; // safe and faster
24
- }
25
-
26
- // LLM FUNCTION CALLING SCHEMA
27
- export namespace llm {
28
- // application schema from a class or interface type
29
- export function application<App, Model>(): ILlmApplication<Model>;
30
- // structured output
31
- export function parameters<P, Moodel>(): ILlmSchema.IParameters<Model>;
32
- export function schema<T, Model>(): ILlmSchema<Model>; // type schema
33
- }
34
-
35
- // PROTOCOL BUFFER
36
- export namespace protobuf {
37
- export function message<T>(): string; // Protocol Buffer message
38
- export function assertDecode<T>(buffer: Uint8Array): T; // safe decoder
39
- export function assertEncode<T>(input: T): Uint8Array; // safe encoder
40
- }
41
-
42
- // RANDOM GENERATOR
43
- export function random<T>(g?: Partial<IRandomGenerator>): T;
44
- ```
45
-
46
- `typia` is a transformer library supporting below features:
47
-
48
- - Super-fast Runtime Validators
49
- - Enhanced JSON schema and serde functions
50
- - LLM function calling schema and structured output
51
- - Protocol Buffer encoder and decoder
52
- - Random data generator
53
-
54
- > [!NOTE]
55
- >
56
- > - **Only one line** required, with pure TypeScript type
57
- > - Runtime validator is **20,000x faster** than `class-validator`
58
- > - JSON serialization is **200x faster** than `class-transformer`
59
-
60
-
61
-
62
-
63
- ## Transformation
64
- If you call `typia` function, it would be compiled like below.
65
-
66
- This is the key concept of `typia`, transforming TypeScript type to a runtime function. The `typia.is<T>()` function is transformed to a dedicated type checker by analyzing the target type `T` in the compilation level.
67
-
68
- This feature enables developers to ensure type safety in their applications, leveraging TypeScript's static typing while also providing runtime validation. Instead of defining additional schemas, you can simply utilize the pure TypeScript type itself.
69
-
70
- ```typescript
71
- //----
72
- // examples/checkString.ts
73
- //----
74
- import typia, { tags } from "typia";
75
- export const checkString = typia.createIs<string>();
76
-
77
- //----
78
- // examples/checkUUID.js
79
- //----
80
- import typia from "typia";
81
- export const checkString = (() => {
82
- return (input) => "string" === typeof input;
83
- })();
84
- ```
85
-
86
-
87
-
88
- ## Sponsors
89
- Thanks for your support.
90
-
91
- Your donation encourages `typia` development.
92
-
93
- Also, `typia` is re-distributing half of donations to core contributors of `typia`.
94
-
95
- - [`nonara/ts-patch`](https://github.com/nonara/ts-patch)
96
- - [`ryoppippi/unplugin-typia`](https://github.com/ryoppippi/unplugin-typia)
97
-
98
- [![Sponsers](https://opencollective.com/typia/badge.svg?avatarHeight=75&width=600)](https://opencollective.com/typia)
99
-
100
-
101
-
102
-
103
- ## Playground
104
- You can experience how typia works by [playground website](https://typia.io/playground):
105
-
106
- - 💻 https://typia.io/playground
107
-
108
-
109
-
110
-
111
- ## Guide Documents
112
- Check out the document in the [website](https://typia.io/docs/):
113
-
114
- ### 🏠 Home
115
- - [Introduction](https://typia.io/docs/)
116
- - [Setup](https://typia.io/docs/setup/)
117
- - [Pure TypeScript](https://typia.io/docs/pure/)
118
-
119
- ### 📖 Features
120
- - Runtime Validators
121
- - [`assert()` function](https://typia.io/docs/validators/assert/)
122
- - [`is()` function](https://typia.io/docs/validators/is/)
123
- - [`validate()` function](https://typia.io/docs/validators/validate/)
124
- - [Functional Module](https://typia.io/docs/validators/functional)
125
- - [Special Tags](https://typia.io/docs/validators/tags/)
126
- - Enhanced JSON
127
- - [JSON Schema](https://typia.io/docs/json/schema/)
128
- - [`stringify()` functions](https://typia.io/docs/json/stringify/)
129
- - [`parse()` functions](https://typia.io/docs/json/parse/)
130
- - LLM Function Calling
131
- - [`application()` function](https://typia.io/docs/llm/application/)
132
- - [`parameters()` function](https://typia.io/docs/llm/parameters/)
133
- - [`schema()` function](https://typia.io/docs/llm/schema/)
134
- - [Documentation Strategy](https://typia.io/docs/llm/strategy/)
135
- - Protocol Buffer
136
- - [Message Schema](https://typia.io/docs/protobuf/message)
137
- - [`decode()` functions](https://typia.io/docs/protobuf/decode/)
138
- - [`encode()` functions](https://typia.io/docs/protobuf/encode/)
139
- - [Random Generator](https://typia.io/docs/random/)
140
- - [Miscellaneous](https://typia.io/docs/misc/)
141
-
142
- ### 🔗 Appendix
143
- - [API Documents](https://typia.io/api)
144
- - Utillization Cases
145
- - [NestJS](https://typia.io/docs/utilization/nestjs/)
146
- - [Prisma](https://typia.io/docs/utilization/prisma/)
147
- - [tRPC](https://typia.io/docs/utilization/trpc/)
148
- - [⇲ Benchmark Result](https://github.com/samchon/typia/tree/master/benchmark/results/11th%20Gen%20Intel(R)%20Core(TM)%20i5-1135G7%20%40%202.40GHz)
149
- - [⇲ `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-Ask%20Typia%20Guru-006BFF)](https://gurubase.io/g/typia)
10
+ [![Discord Badge](https://img.shields.io/badge/discord-samchon-d91965?style=flat&labelColor=5866f2&logo=discord&logoColor=white&link=https://discord.gg/E94XhzrUCZ)](https://discord.gg/E94XhzrUCZ)
11
+
12
+ ```typescript
13
+ // RUNTIME VALIDATORS
14
+ export function is<T>(input: unknown): input is T; // returns boolean
15
+ export function assert<T>(input: unknown): T; // throws TypeGuardError
16
+ export function assertGuard<T>(input: unknown): asserts input is T;
17
+ export function validate<T>(input: unknown): IValidation<T>; // detailed
18
+
19
+ // JSON FUNCTIONS
20
+ export namespace json {
21
+ export function application<T>(): IJsonApplication; // JSON schema
22
+ export function assertParse<T>(input: string): T; // type safe parser
23
+ export function assertStringify<T>(input: T): string; // safe and faster
24
+ }
25
+
26
+ // LLM FUNCTION CALLING SCHEMA
27
+ export namespace llm {
28
+ // application schema from a class or interface type
29
+ export function application<App, Model>(): ILlmApplication<Model>;
30
+ // structured output
31
+ export function parameters<P, Moodel>(): ILlmSchema.IParameters<Model>;
32
+ export function schema<T, Model>(): ILlmSchema<Model>; // type schema
33
+ }
34
+
35
+ // PROTOCOL BUFFER
36
+ export namespace protobuf {
37
+ export function message<T>(): string; // Protocol Buffer message
38
+ export function assertDecode<T>(buffer: Uint8Array): T; // safe decoder
39
+ export function assertEncode<T>(input: T): Uint8Array; // safe encoder
40
+ }
41
+
42
+ // RANDOM GENERATOR
43
+ export function random<T>(g?: Partial<IRandomGenerator>): T;
44
+ ```
45
+
46
+ `typia` is a transformer library supporting below features:
47
+
48
+ - Super-fast Runtime Validators
49
+ - Enhanced JSON schema and serde functions
50
+ - LLM function calling schema and structured output
51
+ - Protocol Buffer encoder and decoder
52
+ - Random data generator
53
+
54
+ > [!NOTE]
55
+ >
56
+ > - **Only one line** required, with pure TypeScript type
57
+ > - Runtime validator is **20,000x faster** than `class-validator`
58
+ > - JSON serialization is **200x faster** than `class-transformer`
59
+
60
+
61
+
62
+
63
+ ## Transformation
64
+ If you call `typia` function, it would be compiled like below.
65
+
66
+ This is the key concept of `typia`, transforming TypeScript type to a runtime function. The `typia.is<T>()` function is transformed to a dedicated type checker by analyzing the target type `T` in the compilation level.
67
+
68
+ This feature enables developers to ensure type safety in their applications, leveraging TypeScript's static typing while also providing runtime validation. Instead of defining additional schemas, you can simply utilize the pure TypeScript type itself.
69
+
70
+ ```typescript
71
+ //----
72
+ // examples/checkString.ts
73
+ //----
74
+ import typia, { tags } from "typia";
75
+ export const checkString = typia.createIs<string>();
76
+
77
+ //----
78
+ // examples/checkUUID.js
79
+ //----
80
+ import typia from "typia";
81
+ export const checkString = (() => {
82
+ return (input) => "string" === typeof input;
83
+ })();
84
+ ```
85
+
86
+
87
+
88
+ ## Sponsors
89
+ Thanks for your support.
90
+
91
+ Your donation encourages `typia` development.
92
+
93
+ Also, `typia` is re-distributing half of donations to core contributors of `typia`.
94
+
95
+ - [`nonara/ts-patch`](https://github.com/nonara/ts-patch)
96
+ - [`ryoppippi/unplugin-typia`](https://github.com/ryoppippi/unplugin-typia)
97
+
98
+ [![Sponsers](https://opencollective.com/typia/badge.svg?avatarHeight=75&width=600)](https://opencollective.com/typia)
99
+
100
+
101
+
102
+
103
+ ## Playground
104
+ You can experience how typia works by [playground website](https://typia.io/playground):
105
+
106
+ - 💻 https://typia.io/playground
107
+
108
+
109
+
110
+
111
+ ## Guide Documents
112
+ Check out the document in the [website](https://typia.io/docs/):
113
+
114
+ ### 🏠 Home
115
+ - [Introduction](https://typia.io/docs/)
116
+ - [Setup](https://typia.io/docs/setup/)
117
+ - [Pure TypeScript](https://typia.io/docs/pure/)
118
+
119
+ ### 📖 Features
120
+ - Runtime Validators
121
+ - [`assert()` function](https://typia.io/docs/validators/assert/)
122
+ - [`is()` function](https://typia.io/docs/validators/is/)
123
+ - [`validate()` function](https://typia.io/docs/validators/validate/)
124
+ - [Functional Module](https://typia.io/docs/validators/functional)
125
+ - [Special Tags](https://typia.io/docs/validators/tags/)
126
+ - Enhanced JSON
127
+ - [JSON Schema](https://typia.io/docs/json/schema/)
128
+ - [`stringify()` functions](https://typia.io/docs/json/stringify/)
129
+ - [`parse()` functions](https://typia.io/docs/json/parse/)
130
+ - LLM Function Calling
131
+ - [`application()` function](https://typia.io/docs/llm/application/)
132
+ - [`parameters()` function](https://typia.io/docs/llm/parameters/)
133
+ - [`schema()` function](https://typia.io/docs/llm/schema/)
134
+ - [Documentation Strategy](https://typia.io/docs/llm/strategy/)
135
+ - Protocol Buffer
136
+ - [Message Schema](https://typia.io/docs/protobuf/message)
137
+ - [`decode()` functions](https://typia.io/docs/protobuf/decode/)
138
+ - [`encode()` functions](https://typia.io/docs/protobuf/encode/)
139
+ - [Random Generator](https://typia.io/docs/random/)
140
+ - [Miscellaneous](https://typia.io/docs/misc/)
141
+
142
+ ### 🔗 Appendix
143
+ - [API Documents](https://typia.io/api)
144
+ - Utillization Cases
145
+ - [NestJS](https://typia.io/docs/utilization/nestjs/)
146
+ - [Prisma](https://typia.io/docs/utilization/prisma/)
147
+ - [tRPC](https://typia.io/docs/utilization/trpc/)
148
+ - [⇲ Benchmark Result](https://github.com/samchon/typia/tree/master/benchmark/results/11th%20Gen%20Intel(R)%20Core(TM)%20i5-1135G7%20%40%202.40GHz)
149
+ - [⇲ `dev.to` Articles](https://dev.to/samchon/series/22474)
@@ -0,0 +1,26 @@
1
+ class TypeGuardError extends Error {
2
+ method;
3
+ path;
4
+ expected;
5
+ value;
6
+ fake_expected_typed_value_;
7
+ constructor(props) {
8
+ // MESSAGE CONSTRUCTION
9
+ super(props.message ||
10
+ `Error on ${props.method}(): invalid type${props.path ? ` on ${props.path}` : ""}, expect to be ${props.expected}`);
11
+ // INHERITANCE POLYFILL
12
+ const proto = new.target.prototype;
13
+ if (Object.setPrototypeOf)
14
+ Object.setPrototypeOf(this, proto);
15
+ else
16
+ this.__proto__ = proto;
17
+ // ASSIGN MEMBERS
18
+ this.method = props.method;
19
+ this.path = props.path;
20
+ this.expected = props.expected;
21
+ this.value = props.value;
22
+ }
23
+ }
24
+
25
+ export { TypeGuardError };
26
+ //# sourceMappingURL=TypeGuardError.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypeGuardError.mjs","sources":["../src/TypeGuardError.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAM,MAAO,cAAwB,SAAQ,KAAK,CAAA;AAChC,IAAA,MAAM;AACN,IAAA,IAAI;AACJ,IAAA,QAAQ;AACR,IAAA,KAAK;AACF,IAAA,0BAA0B;AAE7C,IAAA,WAAA,CAAmB,KAA4B,EAAA;;QAE7C,KAAK,CACH,KAAK,CAAC,OAAO;YACX,CAAY,SAAA,EAAA,KAAK,CAAC,MAAM,CACtB,gBAAA,EAAA,KAAK,CAAC,IAAI,GAAG,CAAO,IAAA,EAAA,KAAK,CAAC,IAAI,CAAA,CAAE,GAAG,EACrC,CAAkB,eAAA,EAAA,KAAK,CAAC,QAAQ,CAAE,CAAA,CACrC;;AAGD,QAAA,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS;QAClC,IAAI,MAAM,CAAC,cAAc;AAAE,YAAA,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC;;AACvD,YAAA,IAAY,CAAC,SAAS,GAAG,KAAK;;AAGpC,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;AAC1B,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ;AAC9B,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;;AAE3B;;;;"}
@@ -47,9 +47,9 @@ var PluginConfigurator;
47
47
  if (strict === undefined && strictNullChecks === undefined)
48
48
  compilerOptions.strict = true;
49
49
  if (oldbie === undefined)
50
- plugins.push(comment_json_1.default.parse(`
51
- {
52
- "transform": "typia/lib/transform"
50
+ plugins.push(comment_json_1.default.parse(`
51
+ {
52
+ "transform": "typia/lib/transform"
53
53
  }`));
54
54
  yield fs_1.default.promises.writeFile(args.project, comment_json_1.default.stringify(config, null, 2));
55
55
  });
@@ -42,21 +42,21 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
42
42
  step((generator = generator.apply(thisArg, _arguments || [])).next());
43
43
  });
44
44
  };
45
- const USAGE = `Wrong command has been detected. Use like below:
46
-
47
- npx typia setup \\
48
- --manager (npm|pnpm|yarn) \\
49
- --project {tsconfig.json file path}
50
-
51
- - npx typia setup
52
- - npx typia setup --manager pnpm
53
- - npx typia setup --project tsconfig.test.json
54
-
55
- npx typia generate
56
- --input {directory} \\
57
- --output {directory}
58
-
59
- --npx typia generate --input src/templates --output src/functinoal
45
+ const USAGE = `Wrong command has been detected. Use like below:
46
+
47
+ npx typia setup \\
48
+ --manager (npm|pnpm|yarn) \\
49
+ --project {tsconfig.json file path}
50
+
51
+ - npx typia setup
52
+ - npx typia setup --manager pnpm
53
+ - npx typia setup --project tsconfig.test.json
54
+
55
+ npx typia generate
56
+ --input {directory} \\
57
+ --output {directory}
58
+
59
+ --npx typia generate --input src/templates --output src/functinoal
60
60
  `;
61
61
  const halt = (desc) => {
62
62
  console.error(desc);
@@ -0,0 +1,120 @@
1
+ /**
2
+ * @internal
3
+ */
4
+ function assertFunction() {
5
+ halt("assertFunction");
6
+ }
7
+ /**
8
+ * @internal
9
+ */
10
+ function assertParameters() {
11
+ halt("assertParameters");
12
+ }
13
+ /**
14
+ * @internal
15
+ */
16
+ function assertReturn() {
17
+ halt("assertReturn");
18
+ }
19
+ /**
20
+ * @internal
21
+ */
22
+ function assertEqualsFunction() {
23
+ halt("assertEqualsFunction");
24
+ }
25
+ /**
26
+ * @internal
27
+ */
28
+ function assertEqualsParameters() {
29
+ halt("assertEqualsParameters");
30
+ }
31
+ /**
32
+ * @internal
33
+ */
34
+ function assertEqualsReturn() {
35
+ halt("assertEqualsReturn");
36
+ }
37
+ /**
38
+ * @internal
39
+ */
40
+ function isFunction() {
41
+ halt("isFunction");
42
+ }
43
+ /**
44
+ * @internal
45
+ */
46
+ function isParameters() {
47
+ halt("isParameters");
48
+ }
49
+ /**
50
+ * @internal
51
+ */
52
+ function isReturn() {
53
+ halt("isReturn");
54
+ }
55
+ /**
56
+ * @internal
57
+ */
58
+ function equalsFunction() {
59
+ halt("equalsFunction");
60
+ }
61
+ /**
62
+ * @internal
63
+ */
64
+ function equalsParameters() {
65
+ halt("equalsParameters");
66
+ }
67
+ /**
68
+ * @internal
69
+ */
70
+ function equalsReturn() {
71
+ halt("equalsReturn");
72
+ }
73
+ /**
74
+ * @internal
75
+ */
76
+ function validateFunction() {
77
+ halt("validateFunction");
78
+ }
79
+ /**
80
+ * @internal
81
+ */
82
+ function validateParameters() {
83
+ halt("validateReturn");
84
+ }
85
+ /**
86
+ * @internal
87
+ */
88
+ function validateReturn() {
89
+ halt("validateReturn");
90
+ }
91
+ /**
92
+ * @internal
93
+ */
94
+ function validateEqualsFunction() {
95
+ halt("validateEqualsFunction");
96
+ }
97
+ /**
98
+ * @internal
99
+ */
100
+ function validateEqualsParameters() {
101
+ halt("validateEqualsParameters");
102
+ }
103
+ /**
104
+ * @internal
105
+ */
106
+ function validateEqualsReturn() {
107
+ halt("validateEqualsReturn");
108
+ }
109
+ /* -----------------------------------------------------------
110
+ HALTER
111
+ ----------------------------------------------------------- */
112
+ /**
113
+ * @internal
114
+ */
115
+ function halt(name) {
116
+ throw new Error(`Error on typia.functional.${name}(): no transform has been configured. Read and follow https://typia.io/docs/setup please.`);
117
+ }
118
+
119
+ export { assertEqualsFunction, assertEqualsParameters, assertEqualsReturn, assertFunction, assertParameters, assertReturn, equalsFunction, equalsParameters, equalsReturn, isFunction, isParameters, isReturn, validateEqualsFunction, validateEqualsParameters, validateEqualsReturn, validateFunction, validateParameters, validateReturn };
120
+ //# sourceMappingURL=functional.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functional.mjs","sources":["../src/functional.ts"],"sourcesContent":[null],"names":[],"mappings":"AAgDA;;AAEG;SACa,cAAc,GAAA;IAC5B,IAAI,CAAC,gBAAgB,CAAC;AACxB;AAmCA;;AAEG;SACa,gBAAgB,GAAA;IAC9B,IAAI,CAAC,kBAAkB,CAAC;AAC1B;AAmCA;;AAEG;SACa,YAAY,GAAA;IAC1B,IAAI,CAAC,cAAc,CAAC;AACtB;AAwCA;;AAEG;SACa,oBAAoB,GAAA;IAClC,IAAI,CAAC,sBAAsB,CAAC;AAC9B;AAoCA;;AAEG;SACa,sBAAsB,GAAA;IACpC,IAAI,CAAC,wBAAwB,CAAC;AAChC;AAmCA;;AAEG;SACa,kBAAkB,GAAA;IAChC,IAAI,CAAC,oBAAoB,CAAC;AAC5B;AAmCA;;AAEG;SACa,UAAU,GAAA;IACxB,IAAI,CAAC,YAAY,CAAC;AACpB;AAgCA;;AAEG;SACa,YAAY,GAAA;IAC1B,IAAI,CAAC,cAAc,CAAC;AACtB;AAgCA;;AAEG;SACa,QAAQ,GAAA;IACtB,IAAI,CAAC,UAAU,CAAC;AAClB;AA+BA;;AAEG;SACa,cAAc,GAAA;IAC5B,IAAI,CAAC,gBAAgB,CAAC;AACxB;AA4BA;;AAEG;SACa,gBAAgB,GAAA;IAC9B,IAAI,CAAC,kBAAkB,CAAC;AAC1B;AA+BA;;AAEG;SACa,YAAY,GAAA;IAC1B,IAAI,CAAC,cAAc,CAAC;AACtB;AA4CA;;AAEG;SACa,gBAAgB,GAAA;IAC9B,IAAI,CAAC,kBAAkB,CAAC;AAC1B;AAoCA;;AAEG;SACa,kBAAkB,GAAA;IAChC,IAAI,CAAC,gBAAgB,CAAC;AACxB;AAoCA;;AAEG;SACa,cAAc,GAAA;IAC5B,IAAI,CAAC,gBAAgB,CAAC;AACxB;AAyCA;;AAEG;SACa,sBAAsB,GAAA;IACpC,IAAI,CAAC,wBAAwB,CAAC;AAChC;AAoCA;;AAEG;SACa,wBAAwB,GAAA;IACtC,IAAI,CAAC,0BAA0B,CAAC;AAClC;AAoCA;;AAEG;SACa,oBAAoB,GAAA;IAClC,IAAI,CAAC,sBAAsB,CAAC;AAC9B;AAEA;;AAE8D;AAC9D;;AAEG;AACH,SAAS,IAAI,CAAC,IAAY,EAAA;AACxB,IAAA,MAAM,IAAI,KAAK,CACb,6BAA6B,IAAI,CAAA,yFAAA,CAA2F,CAC7H;AACH;;;;"}