typia 8.2.0 → 9.0.0-dev.20250405-3

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