typia 5.0.0-dev.20230824 → 5.0.0-dev.20230827

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 (292) hide show
  1. package/README.md +1 -2
  2. package/lib/IRandomGenerator.d.ts +4 -3
  3. package/lib/factories/ExpressionFactory.d.ts +1 -1
  4. package/lib/factories/ExpressionFactory.js +1 -1
  5. package/lib/factories/ExpressionFactory.js.map +1 -1
  6. package/lib/factories/LiteralFactory.js +6 -2
  7. package/lib/factories/LiteralFactory.js.map +1 -1
  8. package/lib/factories/MetadataCollection.js +0 -1
  9. package/lib/factories/MetadataCollection.js.map +1 -1
  10. package/lib/factories/MetadataCommentTagFactory.js +532 -0
  11. package/lib/factories/MetadataCommentTagFactory.js.map +1 -0
  12. package/lib/factories/MetadataTypeTagFactory.d.ts +6 -0
  13. package/lib/factories/MetadataTypeTagFactory.js +207 -0
  14. package/lib/factories/MetadataTypeTagFactory.js.map +1 -0
  15. package/lib/factories/NumericRangeFactory.d.ts +6 -0
  16. package/lib/factories/NumericRangeFactory.js +34 -0
  17. package/lib/factories/NumericRangeFactory.js.map +1 -0
  18. package/lib/factories/ProtobufFactory.js +41 -10
  19. package/lib/factories/ProtobufFactory.js.map +1 -1
  20. package/lib/factories/internal/metadata/emend_metadata_atomics.js +7 -1
  21. package/lib/factories/internal/metadata/emend_metadata_atomics.js.map +1 -1
  22. package/lib/factories/internal/metadata/emplace_metadata_alias.js +1 -13
  23. package/lib/factories/internal/metadata/emplace_metadata_alias.js.map +1 -1
  24. package/lib/factories/internal/metadata/emplace_metadata_object.js +0 -1
  25. package/lib/factories/internal/metadata/emplace_metadata_object.js.map +1 -1
  26. package/lib/factories/internal/metadata/iterate_metadata_atomic.js +2 -1
  27. package/lib/factories/internal/metadata/iterate_metadata_atomic.js.map +1 -1
  28. package/lib/factories/internal/metadata/iterate_metadata_comment_tags.js +3 -4
  29. package/lib/factories/internal/metadata/iterate_metadata_comment_tags.js.map +1 -1
  30. package/lib/factories/internal/metadata/iterate_metadata_intersection.js +8 -6
  31. package/lib/factories/internal/metadata/iterate_metadata_intersection.js.map +1 -1
  32. package/lib/functional/Namespace.js +0 -16
  33. package/lib/functional/Namespace.js.map +1 -1
  34. package/lib/programmers/AssertProgrammer.js +28 -8
  35. package/lib/programmers/AssertProgrammer.js.map +1 -1
  36. package/lib/programmers/CheckerProgrammer.js +65 -52
  37. package/lib/programmers/CheckerProgrammer.js.map +1 -1
  38. package/lib/programmers/FeatureProgrammer.d.ts +3 -5
  39. package/lib/programmers/FeatureProgrammer.js +6 -6
  40. package/lib/programmers/FeatureProgrammer.js.map +1 -1
  41. package/lib/programmers/IsProgrammer.d.ts +1 -1
  42. package/lib/programmers/IsProgrammer.js +32 -19
  43. package/lib/programmers/IsProgrammer.js.map +1 -1
  44. package/lib/programmers/RandomProgrammer.js +155 -135
  45. package/lib/programmers/RandomProgrammer.js.map +1 -1
  46. package/lib/programmers/ValidateProgrammer.js +28 -8
  47. package/lib/programmers/ValidateProgrammer.js.map +1 -1
  48. package/lib/programmers/helpers/CloneJoiner.js +10 -2
  49. package/lib/programmers/helpers/CloneJoiner.js.map +1 -1
  50. package/lib/programmers/helpers/ICheckEntry.d.ts +3 -2
  51. package/lib/programmers/helpers/ProtobufUtil.d.ts +6 -2
  52. package/lib/programmers/helpers/ProtobufUtil.js +175 -17
  53. package/lib/programmers/helpers/ProtobufUtil.js.map +1 -1
  54. package/lib/programmers/helpers/RandomJoiner.d.ts +3 -5
  55. package/lib/programmers/helpers/RandomJoiner.js +7 -10
  56. package/lib/programmers/helpers/RandomJoiner.js.map +1 -1
  57. package/lib/programmers/helpers/RandomRanger.d.ts +5 -6
  58. package/lib/programmers/helpers/RandomRanger.js +13 -33
  59. package/lib/programmers/helpers/RandomRanger.js.map +1 -1
  60. package/lib/programmers/helpers/UnionExplorer.d.ts +7 -8
  61. package/lib/programmers/helpers/UnionExplorer.js +6 -6
  62. package/lib/programmers/helpers/UnionExplorer.js.map +1 -1
  63. package/lib/programmers/internal/application_alias.js +0 -1
  64. package/lib/programmers/internal/application_alias.js.map +1 -1
  65. package/lib/programmers/internal/application_array.js +60 -20
  66. package/lib/programmers/internal/application_array.js.map +1 -1
  67. package/lib/programmers/internal/application_number.js +95 -69
  68. package/lib/programmers/internal/application_number.js.map +1 -1
  69. package/lib/programmers/internal/application_object.js +0 -3
  70. package/lib/programmers/internal/application_object.js.map +1 -1
  71. package/lib/programmers/internal/application_schema.js +37 -20
  72. package/lib/programmers/internal/application_schema.js.map +1 -1
  73. package/lib/programmers/internal/application_string.js +56 -22
  74. package/lib/programmers/internal/application_string.js.map +1 -1
  75. package/lib/programmers/internal/check_array_length.js +25 -25
  76. package/lib/programmers/internal/check_array_length.js.map +1 -1
  77. package/lib/programmers/internal/check_bigint.js +13 -116
  78. package/lib/programmers/internal/check_bigint.js.map +1 -1
  79. package/lib/programmers/internal/check_dynamic_properties.js +1 -1
  80. package/lib/programmers/internal/check_dynamic_properties.js.map +1 -1
  81. package/lib/programmers/internal/check_number.js +62 -163
  82. package/lib/programmers/internal/check_number.js.map +1 -1
  83. package/lib/programmers/internal/check_string.js +16 -52
  84. package/lib/programmers/internal/check_string.js.map +1 -1
  85. package/lib/programmers/internal/check_template.js +16 -1
  86. package/lib/programmers/internal/check_template.js.map +1 -1
  87. package/lib/programmers/internal/check_union_array_like.js +4 -4
  88. package/lib/programmers/internal/check_union_array_like.js.map +1 -1
  89. package/lib/programmers/internal/feature_object_entries.js +1 -1
  90. package/lib/programmers/internal/feature_object_entries.js.map +1 -1
  91. package/lib/programmers/internal/random_custom.js +2 -2
  92. package/lib/programmers/internal/random_custom.js.map +1 -1
  93. package/lib/programmers/json/JsonStringifyProgrammer.js +21 -16
  94. package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
  95. package/lib/programmers/misc/MiscCloneProgrammer.js +13 -9
  96. package/lib/programmers/misc/MiscCloneProgrammer.js.map +1 -1
  97. package/lib/programmers/{IsPruneProgrammer.d.ts → misc/MiscIsPruneProgrammer.d.ts} +2 -2
  98. package/lib/programmers/{IsPruneProgrammer.js → misc/MiscIsPruneProgrammer.js} +11 -11
  99. package/lib/programmers/misc/MiscIsPruneProgrammer.js.map +1 -0
  100. package/lib/programmers/misc/MiscPruneProgrammer.js +10 -6
  101. package/lib/programmers/misc/MiscPruneProgrammer.js.map +1 -1
  102. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js +24 -44
  103. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js.map +1 -1
  104. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js +138 -65
  105. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js.map +1 -1
  106. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js +59 -85
  107. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js.map +1 -1
  108. package/lib/schemas/json/IJsonSchema.d.ts +10 -38
  109. package/lib/schemas/metadata/IMetadataAlias.d.ts +0 -2
  110. package/lib/schemas/metadata/IMetadataProperty.d.ts +0 -2
  111. package/lib/schemas/metadata/IMetadataTypeTag.d.ts +2 -0
  112. package/lib/schemas/metadata/Metadata.d.ts +2 -2
  113. package/lib/schemas/metadata/Metadata.js +25 -25
  114. package/lib/schemas/metadata/Metadata.js.map +1 -1
  115. package/lib/schemas/metadata/MetadataAlias.d.ts +0 -2
  116. package/lib/schemas/metadata/MetadataAlias.js +0 -3
  117. package/lib/schemas/metadata/MetadataAlias.js.map +1 -1
  118. package/lib/schemas/metadata/MetadataArray.d.ts +2 -0
  119. package/lib/schemas/metadata/MetadataArray.js +45 -2
  120. package/lib/schemas/metadata/MetadataArray.js.map +1 -1
  121. package/lib/schemas/metadata/MetadataAtomic.d.ts +9 -0
  122. package/lib/schemas/metadata/MetadataAtomic.js +59 -0
  123. package/lib/schemas/metadata/MetadataAtomic.js.map +1 -0
  124. package/lib/schemas/metadata/MetadataProperty.d.ts +0 -2
  125. package/lib/schemas/metadata/MetadataProperty.js +0 -3
  126. package/lib/schemas/metadata/MetadataProperty.js.map +1 -1
  127. package/lib/schemas/metadata/MetadataTuple.d.ts +4 -2
  128. package/lib/schemas/metadata/MetadataTuple.js +1 -2
  129. package/lib/schemas/metadata/MetadataTuple.js.map +1 -1
  130. package/lib/tags/ExclusiveMaximum.d.ts +10 -8
  131. package/lib/tags/ExclusiveMinimum.d.ts +10 -8
  132. package/lib/tags/Format.d.ts +8 -8
  133. package/lib/tags/MaxItems.d.ts +8 -8
  134. package/lib/tags/MaxLength.d.ts +8 -8
  135. package/lib/tags/Maximum.d.ts +10 -8
  136. package/lib/tags/MinItems.d.ts +8 -8
  137. package/lib/tags/MinLength.d.ts +8 -8
  138. package/lib/tags/Minimum.d.ts +10 -8
  139. package/lib/tags/MultipleOf.d.ts +10 -8
  140. package/lib/tags/Pattern.d.ts +7 -8
  141. package/lib/tags/TagBase.d.ts +10 -6
  142. package/lib/tags/Type.d.ts +14 -13
  143. package/lib/tags/index.d.ts +1 -0
  144. package/lib/tags/index.js +1 -0
  145. package/lib/tags/index.js.map +1 -1
  146. package/lib/transformers/FileTransformer.js +3 -1
  147. package/lib/transformers/FileTransformer.js.map +1 -1
  148. package/lib/transformers/features/misc/MiscCreateIsPruneTransformer.js +2 -2
  149. package/lib/transformers/features/misc/MiscCreateIsPruneTransformer.js.map +1 -1
  150. package/lib/transformers/features/misc/MiscIsPruneTransformer.js +2 -2
  151. package/lib/transformers/features/misc/MiscIsPruneTransformer.js.map +1 -1
  152. package/lib/typings/ProtobufAtomic.d.ts +5 -0
  153. package/lib/{schemas/metadata/ICommentTag.js → typings/ProtobufAtomic.js} +1 -1
  154. package/lib/typings/ProtobufAtomic.js.map +1 -0
  155. package/package.json +2 -2
  156. package/src/IRandomGenerator.ts +4 -3
  157. package/src/factories/ExpressionFactory.ts +2 -2
  158. package/src/factories/LiteralFactory.ts +10 -3
  159. package/src/factories/MetadataCollection.ts +0 -1
  160. package/src/factories/MetadataCommentTagFactory.ts +583 -0
  161. package/src/factories/MetadataTypeTagFactory.ts +263 -0
  162. package/src/factories/NumericRangeFactory.ts +33 -0
  163. package/src/factories/ProtobufFactory.ts +27 -13
  164. package/src/factories/internal/metadata/emend_metadata_atomics.ts +6 -1
  165. package/src/factories/internal/metadata/emplace_metadata_alias.ts +0 -6
  166. package/src/factories/internal/metadata/emplace_metadata_object.ts +0 -1
  167. package/src/factories/internal/metadata/iterate_metadata_atomic.ts +2 -1
  168. package/src/factories/internal/metadata/iterate_metadata_comment_tags.ts +3 -7
  169. package/src/factories/internal/metadata/iterate_metadata_intersection.ts +13 -10
  170. package/src/functional/Namespace.ts +0 -16
  171. package/src/programmers/AssertProgrammer.ts +57 -21
  172. package/src/programmers/CheckerProgrammer.ts +43 -118
  173. package/src/programmers/FeatureProgrammer.ts +11 -33
  174. package/src/programmers/IsProgrammer.ts +52 -41
  175. package/src/programmers/RandomProgrammer.ts +206 -226
  176. package/src/programmers/ValidateProgrammer.ts +60 -21
  177. package/src/programmers/helpers/CloneJoiner.ts +57 -20
  178. package/src/programmers/helpers/ICheckEntry.ts +3 -2
  179. package/src/programmers/helpers/ProtobufUtil.ts +113 -17
  180. package/src/programmers/helpers/RandomJoiner.ts +11 -37
  181. package/src/programmers/helpers/RandomRanger.ts +16 -51
  182. package/src/programmers/helpers/UnionExplorer.ts +1 -20
  183. package/src/programmers/internal/application_alias.ts +0 -1
  184. package/src/programmers/internal/application_array.ts +32 -10
  185. package/src/programmers/internal/application_number.ts +76 -70
  186. package/src/programmers/internal/application_object.ts +0 -3
  187. package/src/programmers/internal/application_schema.ts +36 -18
  188. package/src/programmers/internal/application_string.ts +33 -27
  189. package/src/programmers/internal/check_array_length.ts +34 -28
  190. package/src/programmers/internal/check_bigint.ts +25 -118
  191. package/src/programmers/internal/check_dynamic_properties.ts +1 -2
  192. package/src/programmers/internal/check_number.ts +81 -261
  193. package/src/programmers/internal/check_string.ts +28 -39
  194. package/src/programmers/internal/check_template.ts +17 -1
  195. package/src/programmers/internal/check_union_array_like.ts +1 -16
  196. package/src/programmers/internal/feature_object_entries.ts +12 -18
  197. package/src/programmers/internal/random_custom.ts +3 -3
  198. package/src/programmers/json/JsonStringifyProgrammer.ts +25 -36
  199. package/src/programmers/misc/MiscCloneProgrammer.ts +10 -24
  200. package/src/programmers/{IsPruneProgrammer.ts → misc/MiscIsPruneProgrammer.ts} +7 -7
  201. package/src/programmers/misc/MiscPruneProgrammer.ts +8 -18
  202. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +34 -68
  203. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +153 -98
  204. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +6 -36
  205. package/src/schemas/json/IJsonSchema.ts +11 -38
  206. package/src/schemas/metadata/IMetadataAlias.ts +0 -2
  207. package/src/schemas/metadata/IMetadataProperty.ts +0 -2
  208. package/src/schemas/metadata/IMetadataTypeTag.ts +2 -0
  209. package/src/schemas/metadata/Metadata.ts +28 -42
  210. package/src/schemas/metadata/MetadataAlias.ts +0 -5
  211. package/src/schemas/metadata/MetadataArray.ts +21 -3
  212. package/src/schemas/metadata/MetadataAtomic.ts +42 -0
  213. package/src/schemas/metadata/MetadataProperty.ts +0 -5
  214. package/src/schemas/metadata/MetadataTuple.ts +5 -4
  215. package/src/tags/ExclusiveMaximum.ts +13 -8
  216. package/src/tags/ExclusiveMinimum.ts +13 -8
  217. package/src/tags/Format.ts +21 -20
  218. package/src/tags/MaxItems.ts +9 -8
  219. package/src/tags/MaxLength.ts +9 -8
  220. package/src/tags/Maximum.ts +13 -8
  221. package/src/tags/MinItems.ts +9 -8
  222. package/src/tags/MinLength.ts +9 -8
  223. package/src/tags/Minimum.ts +13 -8
  224. package/src/tags/MultipleOf.ts +15 -10
  225. package/src/tags/Pattern.ts +8 -8
  226. package/src/tags/TagBase.ts +18 -13
  227. package/src/tags/Type.ts +26 -29
  228. package/src/tags/index.ts +1 -0
  229. package/src/transformers/FileTransformer.ts +4 -4
  230. package/src/transformers/features/misc/MiscCreateIsPruneTransformer.ts +2 -2
  231. package/src/transformers/features/misc/MiscIsPruneTransformer.ts +2 -2
  232. package/src/typings/ProtobufAtomic.ts +19 -0
  233. package/lib/factories/MetadataTagFactory.d.ts +0 -6
  234. package/lib/factories/MetadataTagFactory.js +0 -312
  235. package/lib/factories/MetadataTagFactory.js.map +0 -1
  236. package/lib/factories/internal/metadata/iterate_metadata_type_tags.d.ts +0 -3
  237. package/lib/factories/internal/metadata/iterate_metadata_type_tags.js +0 -157
  238. package/lib/factories/internal/metadata/iterate_metadata_type_tags.js.map +0 -1
  239. package/lib/functional/$is_custom.d.ts +0 -2
  240. package/lib/functional/$is_custom.js +0 -13
  241. package/lib/functional/$is_custom.js.map +0 -1
  242. package/lib/functional/$is_date.d.ts +0 -1
  243. package/lib/functional/$is_date.js +0 -7
  244. package/lib/functional/$is_date.js.map +0 -1
  245. package/lib/functional/$is_datetime.d.ts +0 -1
  246. package/lib/functional/$is_datetime.js +0 -8
  247. package/lib/functional/$is_datetime.js.map +0 -1
  248. package/lib/functional/$is_email.d.ts +0 -1
  249. package/lib/functional/$is_email.js +0 -7
  250. package/lib/functional/$is_email.js.map +0 -1
  251. package/lib/functional/$is_ipv4.d.ts +0 -1
  252. package/lib/functional/$is_ipv4.js +0 -7
  253. package/lib/functional/$is_ipv4.js.map +0 -1
  254. package/lib/functional/$is_ipv6.d.ts +0 -1
  255. package/lib/functional/$is_ipv6.js +0 -7
  256. package/lib/functional/$is_ipv6.js.map +0 -1
  257. package/lib/functional/$is_url.d.ts +0 -1
  258. package/lib/functional/$is_url.js +0 -7
  259. package/lib/functional/$is_url.js.map +0 -1
  260. package/lib/functional/$is_uuid.d.ts +0 -1
  261. package/lib/functional/$is_uuid.js +0 -7
  262. package/lib/functional/$is_uuid.js.map +0 -1
  263. package/lib/programmers/IsPruneProgrammer.js.map +0 -1
  264. package/lib/programmers/internal/check_array_tags.js +0 -39
  265. package/lib/programmers/internal/check_array_tags.js.map +0 -1
  266. package/lib/programmers/internal/check_string_tags.d.ts +0 -1
  267. package/lib/programmers/internal/check_string_tags.js +0 -89
  268. package/lib/programmers/internal/check_string_tags.js.map +0 -1
  269. package/lib/programmers/internal/get_comment_tags.d.ts +0 -1
  270. package/lib/programmers/internal/get_comment_tags.js +0 -25
  271. package/lib/programmers/internal/get_comment_tags.js.map +0 -1
  272. package/lib/schemas/metadata/ICommentTag.d.ts +0 -4
  273. package/lib/schemas/metadata/ICommentTag.js.map +0 -1
  274. package/lib/schemas/metadata/IMetadataCommentTag.d.ts +0 -63
  275. package/lib/schemas/metadata/IMetadataCommentTag.js +0 -3
  276. package/lib/schemas/metadata/IMetadataCommentTag.js.map +0 -1
  277. package/src/factories/MetadataTagFactory.ts +0 -365
  278. package/src/factories/internal/metadata/iterate_metadata_type_tags.ts +0 -183
  279. package/src/functional/$is_custom.ts +0 -14
  280. package/src/functional/$is_date.ts +0 -3
  281. package/src/functional/$is_datetime.ts +0 -2
  282. package/src/functional/$is_email.ts +0 -4
  283. package/src/functional/$is_ipv4.ts +0 -4
  284. package/src/functional/$is_ipv6.ts +0 -4
  285. package/src/functional/$is_url.ts +0 -4
  286. package/src/functional/$is_uuid.ts +0 -4
  287. package/src/programmers/internal/check_array_tags.ts +0 -45
  288. package/src/programmers/internal/check_string_tags.ts +0 -67
  289. package/src/programmers/internal/get_comment_tags.ts +0 -23
  290. package/src/schemas/metadata/ICommentTag.ts +0 -4
  291. package/src/schemas/metadata/IMetadataCommentTag.ts +0 -112
  292. /package/lib/{programmers/internal/check_array_tags.d.ts → factories/MetadataCommentTagFactory.d.ts} +0 -0
@@ -1,10 +1,14 @@
1
- export type TagBase<Target extends "bigint" | "number" | "string" | "array", Kind extends string, Value extends boolean | bigint | number | string, Validate extends string | {
2
- [key in Target]?: string;
3
- }> = {
4
- "typia.tag"?: {
1
+ export type TagBase<Props extends TagBase.IProps<any, any, any, any, any>> = {
2
+ "typia.tag"?: Props;
3
+ };
4
+ export declare namespace TagBase {
5
+ interface IProps<Target extends "bigint" | "number" | "string" | "array", Kind extends string, Value extends boolean | bigint | number | string | undefined, Validate extends string | {
6
+ [key in Target]?: string;
7
+ }, Exclusive extends boolean | string[]> {
5
8
  target: Target;
6
9
  kind: Kind;
7
10
  value: Value;
8
11
  validate: Validate;
9
- };
10
- };
12
+ exclusive?: Exclusive | string[];
13
+ }
14
+ }
@@ -1,13 +1,14 @@
1
- export type Type<Target extends "int" | "uint" | "int32" | "uint32" | "int64" | "uint64" | "float"> = {
2
- "typia.tag"?: {
3
- target: Target extends "uint64" ? "bigint" : "number" | "bigint";
4
- kind: "type";
5
- value: Target;
6
- validate: Target extends "int" | "int32" ? `Number.isInteger($input) && -2147483648 <= $input && $input <= 2147483647` : Target extends "uint" | "uint32" ? `Number.isInteger($input) && 0 <= $input && $input <= 4294967295` : Target extends "int64" ? {
7
- number: `Number.isInteger($input) && -9223372036854775808 <= $input && $input <= 9223372036854775807`;
8
- } : Target extends "uint64" ? {
9
- number: `Number.isInteger($input) && 0 <= $input && $input <= 18446744073709551615`;
10
- bigint: `BigInt(0) <= $input && $input <= BigInt(18446744073709551615)`;
11
- } : `-1.175494351e38 <= $input <= 3.4028235e38`;
12
- };
13
- };
1
+ import { TagBase } from "./TagBase";
2
+ export type Type<Value extends "int32" | "uint32" | "int64" | "uint64" | "float" | "double"> = TagBase<{
3
+ target: Value extends "int64" | "uint64" ? "bigint" | "number" : "number";
4
+ kind: "type";
5
+ value: Value;
6
+ validate: Value extends "int32" ? `Math.floor($input) === $input && -2147483648 <= $input && $input <= 2147483647` : Value extends "uint32" ? `Math.floor($input) === $input && 0 <= $input && $input <= 4294967295` : Value extends "int64" ? {
7
+ number: `Math.floor($input) === $input && -9223372036854775808 <= $input && $input <= 9223372036854775807`;
8
+ bigint: `true`;
9
+ } : Value extends "uint64" ? {
10
+ number: `Math.floor($input) === $input && 0 <= $input && $input <= 18446744073709551615`;
11
+ bigint: `BigInt(0) <= $input`;
12
+ } : Value extends "float" ? `-1.175494351e38 <= $input && $input <= 3.4028235e38` : `true`;
13
+ exclusive: true;
14
+ }>;
@@ -7,6 +7,7 @@ export * from "./MaxLength";
7
7
  export * from "./Minimum";
8
8
  export * from "./MinItems";
9
9
  export * from "./MinLength";
10
+ export * from "./MultipleOf";
10
11
  export * from "./Pattern";
11
12
  export * from "./TagBase";
12
13
  export * from "./Type";
package/lib/tags/index.js CHANGED
@@ -23,6 +23,7 @@ __exportStar(require("./MaxLength"), exports);
23
23
  __exportStar(require("./Minimum"), exports);
24
24
  __exportStar(require("./MinItems"), exports);
25
25
  __exportStar(require("./MinLength"), exports);
26
+ __exportStar(require("./MultipleOf"), exports);
26
27
  __exportStar(require("./Pattern"), exports);
27
28
  __exportStar(require("./TagBase"), exports);
28
29
  __exportStar(require("./Type"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tags/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,qDAAmC;AACnC,2CAAyB;AACzB,4CAA0B;AAC1B,6CAA2B;AAC3B,8CAA4B;AAC5B,4CAA0B;AAC1B,6CAA2B;AAC3B,8CAA4B;AAC5B,4CAA0B;AAC1B,4CAA0B;AAC1B,yCAAuB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tags/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,qDAAmC;AACnC,2CAAyB;AACzB,4CAA0B;AAC1B,6CAA2B;AAC3B,8CAA4B;AAC5B,4CAA0B;AAC1B,6CAA2B;AAC3B,8CAA4B;AAC5B,+CAA6B;AAC7B,4CAA0B;AAC1B,4CAA0B;AAC1B,yCAAuB"}
@@ -44,8 +44,10 @@ var FileTransformer;
44
44
  if (!(exp instanceof Error))
45
45
  throw exp;
46
46
  var file = node.getSourceFile();
47
+ if (file === undefined)
48
+ throw exp;
47
49
  var _a = file.getLineAndCharacterOfPosition(node.pos), line = _a.line, character = _a.character;
48
- exp.message += " - ".concat(file.fileName, ":").concat(line + 1, ":").concat(character + 1);
50
+ console.error("".concat(file.fileName, ":").concat(line, ":").concat(character, ":"), exp);
49
51
  throw exp;
50
52
  }
51
53
  };
@@ -1 +1 @@
1
- {"version":3,"file":"FileTransformer.js","sourceRoot":"","sources":["../../src/transformers/FileTransformer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAG5B,qDAAoD;AAEpD,IAAiB,eAAe,CAyC/B;AAzCD,WAAiB,eAAe;IACf,yBAAS,GAClB,UAAC,OAAkC;QACnC,OAAA,UAAC,OAAiC;YAClC,OAAA,UAAC,IAAmB;gBAChB,IAAI,IAAI,CAAC,iBAAiB;oBAAE,OAAO,IAAI,CAAC;gBACxC,OAAO,oBAAE,CAAC,cAAc,CACpB,IAAI,EACJ,UAAC,IAAI,IAAK,OAAA,YAAY,uBAAM,OAAO,KAAE,OAAO,SAAA,IAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAApD,CAAoD,EAC9D,OAAO,CACV,CAAC;YACN,CAAC;QAPD,CAOC;IARD,CAQC,CAAC;IAEN,IAAM,YAAY,GACd,UAAC,OAAiB;QAClB,OAAA,UAAC,OAAiC;YAClC,OAAA,UAAC,IAAa;gBACV,OAAA,oBAAE,CAAC,cAAc,CACb,kBAAkB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EACjC,UAAC,KAAK,IAAK,OAAA,YAAY,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,EAArC,CAAqC,EAChD,OAAO,CACV;YAJD,CAIC;QALL,CAKK;IANL,CAMK,CAAC;IAEV,IAAM,kBAAkB,GACpB,UAAC,OAAiB;QAClB,OAAA,UAAC,IAAa;YACV,IAAI;gBACA,OAAO,iCAAe,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;aACnD;YAAC,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,CAAC,GAAG,YAAY,KAAK,CAAC;oBAAE,MAAM,GAAG,CAAC;gBAEvC,IAAM,IAAI,GAAkB,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC3C,IAAA,KAAsB,IAAI,CAAC,6BAA6B,CAC1D,IAAI,CAAC,GAAG,CACX,EAFO,IAAI,UAAA,EAAE,SAAS,eAEtB,CAAC;gBACF,GAAG,CAAC,OAAO,IAAI,aAAM,IAAI,CAAC,QAAQ,cAAI,IAAI,GAAG,CAAC,cAC1C,SAAS,GAAG,CAAC,CACf,CAAC;gBACH,MAAM,GAAG,CAAC;aACb;QACL,CAAC;IAfD,CAeC,CAAC;AACV,CAAC,EAzCgB,eAAe,+BAAf,eAAe,QAyC/B"}
1
+ {"version":3,"file":"FileTransformer.js","sourceRoot":"","sources":["../../src/transformers/FileTransformer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAG5B,qDAAoD;AAEpD,IAAiB,eAAe,CAyC/B;AAzCD,WAAiB,eAAe;IACf,yBAAS,GAClB,UAAC,OAAkC;QACnC,OAAA,UAAC,OAAiC;YAClC,OAAA,UAAC,IAAmB;gBAChB,IAAI,IAAI,CAAC,iBAAiB;oBAAE,OAAO,IAAI,CAAC;gBACxC,OAAO,oBAAE,CAAC,cAAc,CACpB,IAAI,EACJ,UAAC,IAAI,IAAK,OAAA,YAAY,uBAAM,OAAO,KAAE,OAAO,SAAA,IAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAApD,CAAoD,EAC9D,OAAO,CACV,CAAC;YACN,CAAC;QAPD,CAOC;IARD,CAQC,CAAC;IAEN,IAAM,YAAY,GACd,UAAC,OAAiB;QAClB,OAAA,UAAC,OAAiC;YAClC,OAAA,UAAC,IAAa;gBACV,OAAA,oBAAE,CAAC,cAAc,CACb,kBAAkB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EACjC,UAAC,KAAK,IAAK,OAAA,YAAY,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,EAArC,CAAqC,EAChD,OAAO,CACV;YAJD,CAIC;QALL,CAKK;IANL,CAMK,CAAC;IAEV,IAAM,kBAAkB,GACpB,UAAC,OAAiB;QAClB,OAAA,UAAC,IAAa;YACV,IAAI;gBACA,OAAO,iCAAe,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;aACnD;YAAC,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,CAAC,GAAG,YAAY,KAAK,CAAC;oBAAE,MAAM,GAAG,CAAC;gBAEvC,IAAM,IAAI,GAA8B,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC7D,IAAI,IAAI,KAAK,SAAS;oBAAE,MAAM,GAAG,CAAC;gBAE5B,IAAA,KAAsB,IAAI,CAAC,6BAA6B,CAC1D,IAAI,CAAC,GAAG,CACX,EAFO,IAAI,UAAA,EAAE,SAAS,eAEtB,CAAC;gBACF,OAAO,CAAC,KAAK,CAAC,UAAG,IAAI,CAAC,QAAQ,cAAI,IAAI,cAAI,SAAS,MAAG,EAAE,GAAG,CAAC,CAAC;gBAC7D,MAAM,GAAG,CAAC;aACb;QACL,CAAC;IAfD,CAeC,CAAC;AACV,CAAC,EAzCgB,eAAe,+BAAf,eAAe,QAyC/B"}
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MiscCreateIsPruneTransformer = void 0;
4
- var IsPruneProgrammer_1 = require("../../../programmers/IsPruneProgrammer");
4
+ var MiscIsPruneProgrammer_1 = require("../../../programmers/misc/MiscIsPruneProgrammer");
5
5
  var GenericTransformer_1 = require("../../internal/GenericTransformer");
6
6
  var MiscCreateIsPruneTransformer;
7
7
  (function (MiscCreateIsPruneTransformer) {
8
- MiscCreateIsPruneTransformer.transform = GenericTransformer_1.GenericTransformer.factory("createIsPrune")(function (project) { return function (modulo) { return IsPruneProgrammer_1.IsPruneProgrammer.write(project)(modulo); }; });
8
+ MiscCreateIsPruneTransformer.transform = GenericTransformer_1.GenericTransformer.factory("createIsPrune")(function (project) { return function (modulo) { return MiscIsPruneProgrammer_1.MiscIsPruneProgrammer.write(project)(modulo); }; });
9
9
  })(MiscCreateIsPruneTransformer || (exports.MiscCreateIsPruneTransformer = MiscCreateIsPruneTransformer = {}));
10
10
  //# sourceMappingURL=MiscCreateIsPruneTransformer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MiscCreateIsPruneTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/misc/MiscCreateIsPruneTransformer.ts"],"names":[],"mappings":";;;AAAA,4EAA2E;AAE3E,wEAAuE;AAEvE,IAAiB,4BAA4B,CAI5C;AAJD,WAAiB,4BAA4B;IAC5B,sCAAS,GAAG,uCAAkB,CAAC,OAAO,CAAC,eAAe,CAAC,CAChE,UAAC,OAAO,IAAK,OAAA,UAAC,MAAM,IAAK,OAAA,qCAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,EAAxC,CAAwC,EAApD,CAAoD,CACpE,CAAC;AACN,CAAC,EAJgB,4BAA4B,4CAA5B,4BAA4B,QAI5C"}
1
+ {"version":3,"file":"MiscCreateIsPruneTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/misc/MiscCreateIsPruneTransformer.ts"],"names":[],"mappings":";;;AAAA,yFAAwF;AAExF,wEAAuE;AAEvE,IAAiB,4BAA4B,CAI5C;AAJD,WAAiB,4BAA4B;IAC5B,sCAAS,GAAG,uCAAkB,CAAC,OAAO,CAAC,eAAe,CAAC,CAChE,UAAC,OAAO,IAAK,OAAA,UAAC,MAAM,IAAK,OAAA,6CAAqB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,EAA5C,CAA4C,EAAxD,CAAwD,CACxE,CAAC;AACN,CAAC,EAJgB,4BAA4B,4CAA5B,4BAA4B,QAI5C"}
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MiscIsPruneTransformer = void 0;
4
- var IsPruneProgrammer_1 = require("../../../programmers/IsPruneProgrammer");
4
+ var MiscIsPruneProgrammer_1 = require("../../../programmers/misc/MiscIsPruneProgrammer");
5
5
  var GenericTransformer_1 = require("../../internal/GenericTransformer");
6
6
  var MiscIsPruneTransformer;
7
7
  (function (MiscIsPruneTransformer) {
8
- MiscIsPruneTransformer.transform = GenericTransformer_1.GenericTransformer.scalar("isPrune")(function (project) { return function (modulo) { return IsPruneProgrammer_1.IsPruneProgrammer.write(project)(modulo); }; });
8
+ MiscIsPruneTransformer.transform = GenericTransformer_1.GenericTransformer.scalar("isPrune")(function (project) { return function (modulo) { return MiscIsPruneProgrammer_1.MiscIsPruneProgrammer.write(project)(modulo); }; });
9
9
  })(MiscIsPruneTransformer || (exports.MiscIsPruneTransformer = MiscIsPruneTransformer = {}));
10
10
  //# sourceMappingURL=MiscIsPruneTransformer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MiscIsPruneTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/misc/MiscIsPruneTransformer.ts"],"names":[],"mappings":";;;AAAA,4EAA2E;AAE3E,wEAAuE;AAEvE,IAAiB,sBAAsB,CAItC;AAJD,WAAiB,sBAAsB;IACtB,gCAAS,GAAG,uCAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,CACzD,UAAC,OAAO,IAAK,OAAA,UAAC,MAAM,IAAK,OAAA,qCAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,EAAxC,CAAwC,EAApD,CAAoD,CACpE,CAAC;AACN,CAAC,EAJgB,sBAAsB,sCAAtB,sBAAsB,QAItC"}
1
+ {"version":3,"file":"MiscIsPruneTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/misc/MiscIsPruneTransformer.ts"],"names":[],"mappings":";;;AAAA,yFAAwF;AAExF,wEAAuE;AAEvE,IAAiB,sBAAsB,CAItC;AAJD,WAAiB,sBAAsB;IACtB,gCAAS,GAAG,uCAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,CACzD,UAAC,OAAO,IAAK,OAAA,UAAC,MAAM,IAAK,OAAA,6CAAqB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,EAA5C,CAA4C,EAAxD,CAAwD,CACxE,CAAC;AACN,CAAC,EAJgB,sBAAsB,sCAAtB,sBAAsB,QAItC"}
@@ -0,0 +1,5 @@
1
+ export type ProtobufAtomic = "bool" | "int32" | "uint32" | "int64" | "uint64" | "float" | "double" | "string";
2
+ export declare namespace ProtobufAtomic {
3
+ type Numeric = "int32" | "uint32" | "int64" | "uint64" | "float" | "double";
4
+ type BigNumeric = "int64" | "uint64";
5
+ }
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=ICommentTag.js.map
3
+ //# sourceMappingURL=ProtobufAtomic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProtobufAtomic.js","sourceRoot":"","sources":["../../src/typings/ProtobufAtomic.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "typia",
3
- "version": "5.0.0-dev.20230824",
3
+ "version": "5.0.0-dev.20230827",
4
4
  "description": "Superfast runtime validators with only one line",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
@@ -124,7 +124,7 @@
124
124
  "ts-node": "^10.9.1",
125
125
  "ts-patch": "^3.0.2",
126
126
  "tstl": "^2.5.13",
127
- "typescript": "^5.1.6",
127
+ "typescript": "^5.2.2",
128
128
  "typescript-transform-paths": "^3.4.6",
129
129
  "uuid": "^8.3.2",
130
130
  "zod": "^3.19.1"
@@ -23,12 +23,13 @@ export interface IRandomGenerator {
23
23
  export namespace IRandomGenerator {
24
24
  export type CustomMap = {
25
25
  [Type in keyof Customizable]?: (
26
- tags: ICommentTag[],
26
+ tags: ITypeTag[],
27
27
  ) => Customizable[Type] | undefined;
28
28
  };
29
29
 
30
- export interface ICommentTag {
30
+ export interface ITypeTag {
31
31
  name: string;
32
- value?: string;
32
+ kind: string;
33
+ value: any;
33
34
  }
34
35
  }
@@ -3,11 +3,11 @@ import ts from "typescript";
3
3
  import { RandomGenerator } from "../utils/RandomGenerator";
4
4
 
5
5
  export namespace ExpressionFactory {
6
- export const bigint = (value: number) =>
6
+ export const bigint = (value: number | bigint) =>
7
7
  ts.factory.createCallExpression(
8
8
  ts.factory.createIdentifier("BigInt"),
9
9
  undefined,
10
- [ts.factory.createNumericLiteral(value)],
10
+ [ts.factory.createIdentifier(value.toString())],
11
11
  );
12
12
 
13
13
  export const isRequired = (input: ts.Expression): ts.Expression =>
@@ -1,5 +1,6 @@
1
1
  import ts from "typescript";
2
2
 
3
+ import { ExpressionFactory } from "./ExpressionFactory";
3
4
  import { IdentifierFactory } from "./IdentifierFactory";
4
5
 
5
6
  export namespace LiteralFactory {
@@ -11,8 +12,11 @@ export namespace LiteralFactory {
11
12
  else if (typeof input === "string") return generate_string(input);
12
13
  else if (typeof input === "boolean") return generate_value(input);
13
14
  else if (typeof input === "number") return generate_value(input);
14
- else if (typeof input === "bigint") return generate_value(input);
15
- else throw new Error("Unknown type.");
15
+ else if (typeof input === "bigint") return generate_bigint(input);
16
+ else
17
+ throw new Error(
18
+ "Error on LiteralFactory.generate(): unknown type.",
19
+ );
16
20
  };
17
21
 
18
22
  const generate_object = (obj: object): ts.ObjectLiteralExpression =>
@@ -31,9 +35,12 @@ export namespace LiteralFactory {
31
35
  const generate_array = (array: any[]): ts.ArrayLiteralExpression =>
32
36
  ts.factory.createArrayLiteralExpression(array.map(generate), true);
33
37
 
34
- const generate_value = (value: number | boolean | bigint): ts.Identifier =>
38
+ const generate_value = (value: number | boolean | bigint): ts.Expression =>
35
39
  ts.factory.createIdentifier(value.toString());
36
40
 
41
+ const generate_bigint = (value: bigint): ts.Expression =>
42
+ ExpressionFactory.bigint(value);
43
+
37
44
  const generate_string = (value: string): ts.StringLiteral =>
38
45
  ts.factory.createStringLiteral(value);
39
46
  }
@@ -149,7 +149,6 @@ export class MetadataCollection {
149
149
  description: CommentFactory.description(symbol) ?? null,
150
150
  recursive: null!,
151
151
  nullables: [],
152
- tags: [],
153
152
  jsDocTags: symbol.getJsDocTags() ?? [],
154
153
  });
155
154
  this.aliases_.set(type, alias);