typia 5.0.0-dev.2023084 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (584) hide show
  1. package/README.md +1 -2
  2. package/lib/IRandomGenerator.d.ts +4 -3
  3. package/lib/Resolved.d.ts +1 -1
  4. package/lib/executable/TypiaGenerateWizard.js +1 -1
  5. package/lib/executable/TypiaGenerateWizard.js.map +1 -1
  6. package/lib/executable/TypiaSetupWizard.js +1 -1
  7. package/lib/executable/TypiaSetupWizard.js.map +1 -1
  8. package/lib/executable/setup/PackageManager.js +1 -1
  9. package/lib/executable/setup/PackageManager.js.map +1 -1
  10. package/lib/executable/setup/PluginConfigurator.js +2 -2
  11. package/lib/executable/setup/PluginConfigurator.js.map +1 -1
  12. package/lib/factories/ExpressionFactory.d.ts +3 -1
  13. package/lib/factories/ExpressionFactory.js +25 -1
  14. package/lib/factories/ExpressionFactory.js.map +1 -1
  15. package/lib/factories/IdentifierFactory.d.ts +2 -1
  16. package/lib/factories/IdentifierFactory.js +11 -0
  17. package/lib/factories/IdentifierFactory.js.map +1 -1
  18. package/lib/factories/JsonMetadataFactory.d.ts +7 -0
  19. package/lib/factories/JsonMetadataFactory.js +38 -0
  20. package/lib/factories/JsonMetadataFactory.js.map +1 -0
  21. package/lib/factories/LiteralFactory.js +6 -2
  22. package/lib/factories/LiteralFactory.js.map +1 -1
  23. package/lib/factories/MetadataCollection.d.ts +7 -7
  24. package/lib/factories/MetadataCollection.js +4 -6
  25. package/lib/factories/MetadataCollection.js.map +1 -1
  26. package/lib/factories/MetadataCommentTagFactory.js +543 -0
  27. package/lib/factories/MetadataCommentTagFactory.js.map +1 -0
  28. package/lib/factories/MetadataFactory.d.ts +22 -2
  29. package/lib/factories/MetadataFactory.js +248 -17
  30. package/lib/factories/MetadataFactory.js.map +1 -1
  31. package/lib/factories/MetadataTypeTagFactory.d.ts +7 -0
  32. package/lib/factories/MetadataTypeTagFactory.js +280 -0
  33. package/lib/factories/MetadataTypeTagFactory.js.map +1 -0
  34. package/lib/factories/NumericRangeFactory.d.ts +6 -0
  35. package/lib/factories/NumericRangeFactory.js +34 -0
  36. package/lib/factories/NumericRangeFactory.js.map +1 -0
  37. package/lib/factories/ProtobufFactory.js +137 -91
  38. package/lib/factories/ProtobufFactory.js.map +1 -1
  39. package/lib/factories/TypeFactory.d.ts +0 -1
  40. package/lib/factories/TypeFactory.js +0 -5
  41. package/lib/factories/TypeFactory.js.map +1 -1
  42. package/lib/factories/internal/metadata/emend_metadata_atomics.js +7 -1
  43. package/lib/factories/internal/metadata/emend_metadata_atomics.js.map +1 -1
  44. package/lib/factories/internal/metadata/emplace_metadata_alias.d.ts +1 -1
  45. package/lib/factories/internal/metadata/emplace_metadata_alias.js +20 -19
  46. package/lib/factories/internal/metadata/emplace_metadata_alias.js.map +1 -1
  47. package/lib/factories/internal/metadata/emplace_metadata_array_type.d.ts +5 -0
  48. package/lib/factories/internal/metadata/emplace_metadata_array_type.js +51 -0
  49. package/lib/factories/internal/metadata/emplace_metadata_array_type.js.map +1 -0
  50. package/lib/factories/internal/metadata/emplace_metadata_object.d.ts +1 -1
  51. package/lib/factories/internal/metadata/emplace_metadata_object.js +100 -85
  52. package/lib/factories/internal/metadata/emplace_metadata_object.js.map +1 -1
  53. package/lib/factories/internal/metadata/emplace_metadata_tuple.d.ts +2 -2
  54. package/lib/factories/internal/metadata/emplace_metadata_tuple.js +34 -21
  55. package/lib/factories/internal/metadata/emplace_metadata_tuple.js.map +1 -1
  56. package/lib/factories/internal/metadata/explore_metadata.d.ts +1 -1
  57. package/lib/factories/internal/metadata/explore_metadata.js +12 -12
  58. package/lib/factories/internal/metadata/explore_metadata.js.map +1 -1
  59. package/lib/factories/internal/metadata/iterate_metadata.d.ts +1 -1
  60. package/lib/factories/internal/metadata/iterate_metadata.js +39 -19
  61. package/lib/factories/internal/metadata/iterate_metadata.js.map +1 -1
  62. package/lib/factories/internal/metadata/iterate_metadata_alias.d.ts +1 -1
  63. package/lib/factories/internal/metadata/iterate_metadata_alias.js +12 -10
  64. package/lib/factories/internal/metadata/iterate_metadata_alias.js.map +1 -1
  65. package/lib/factories/internal/metadata/iterate_metadata_array.d.ts +1 -1
  66. package/lib/factories/internal/metadata/iterate_metadata_array.js +13 -7
  67. package/lib/factories/internal/metadata/iterate_metadata_array.js.map +1 -1
  68. package/lib/factories/internal/metadata/iterate_metadata_atomic.js +2 -1
  69. package/lib/factories/internal/metadata/iterate_metadata_atomic.js.map +1 -1
  70. package/lib/factories/internal/metadata/iterate_metadata_collection.d.ts +2 -1
  71. package/lib/factories/internal/metadata/iterate_metadata_collection.js +66 -56
  72. package/lib/factories/internal/metadata/iterate_metadata_collection.js.map +1 -1
  73. package/lib/factories/internal/metadata/iterate_metadata_comment_tags.d.ts +3 -0
  74. package/lib/factories/internal/metadata/iterate_metadata_comment_tags.js +45 -0
  75. package/lib/factories/internal/metadata/iterate_metadata_comment_tags.js.map +1 -0
  76. package/lib/factories/internal/metadata/iterate_metadata_intersection.d.ts +1 -1
  77. package/lib/factories/internal/metadata/iterate_metadata_intersection.js +175 -41
  78. package/lib/factories/internal/metadata/iterate_metadata_intersection.js.map +1 -1
  79. package/lib/factories/internal/metadata/iterate_metadata_map.d.ts +1 -1
  80. package/lib/factories/internal/metadata/iterate_metadata_map.js +28 -15
  81. package/lib/factories/internal/metadata/iterate_metadata_map.js.map +1 -1
  82. package/lib/factories/internal/metadata/iterate_metadata_object.d.ts +1 -1
  83. package/lib/factories/internal/metadata/iterate_metadata_object.js +16 -21
  84. package/lib/factories/internal/metadata/iterate_metadata_object.js.map +1 -1
  85. package/lib/factories/internal/metadata/iterate_metadata_resolve.d.ts +1 -1
  86. package/lib/factories/internal/metadata/iterate_metadata_resolve.js +28 -15
  87. package/lib/factories/internal/metadata/iterate_metadata_resolve.js.map +1 -1
  88. package/lib/factories/internal/metadata/iterate_metadata_set.d.ts +1 -1
  89. package/lib/factories/internal/metadata/iterate_metadata_set.js +24 -11
  90. package/lib/factories/internal/metadata/iterate_metadata_set.js.map +1 -1
  91. package/lib/factories/internal/metadata/iterate_metadata_sort.js +2 -2
  92. package/lib/factories/internal/metadata/iterate_metadata_sort.js.map +1 -1
  93. package/lib/factories/internal/metadata/iterate_metadata_template.d.ts +1 -1
  94. package/lib/factories/internal/metadata/iterate_metadata_template.js +28 -15
  95. package/lib/factories/internal/metadata/iterate_metadata_template.js.map +1 -1
  96. package/lib/factories/internal/metadata/iterate_metadata_tuple.d.ts +1 -1
  97. package/lib/factories/internal/metadata/iterate_metadata_tuple.js +12 -6
  98. package/lib/factories/internal/metadata/iterate_metadata_tuple.js.map +1 -1
  99. package/lib/factories/internal/metadata/iterate_metadata_union.d.ts +1 -1
  100. package/lib/factories/internal/metadata/iterate_metadata_union.js +20 -7
  101. package/lib/factories/internal/metadata/iterate_metadata_union.js.map +1 -1
  102. package/lib/functional/$any.js +2 -1
  103. package/lib/functional/$any.js.map +1 -1
  104. package/lib/functional/$clone.d.ts +2 -0
  105. package/lib/functional/$clone.js +8 -0
  106. package/lib/functional/$clone.js.map +1 -0
  107. package/lib/functional/Namespace.js +0 -16
  108. package/lib/functional/Namespace.js.map +1 -1
  109. package/lib/module.d.ts +2 -39
  110. package/lib/module.js +3 -17
  111. package/lib/module.js.map +1 -1
  112. package/lib/programmers/AssertProgrammer.js +28 -10
  113. package/lib/programmers/AssertProgrammer.js.map +1 -1
  114. package/lib/programmers/CheckerProgrammer.js +97 -70
  115. package/lib/programmers/CheckerProgrammer.js.map +1 -1
  116. package/lib/programmers/FeatureProgrammer.d.ts +3 -5
  117. package/lib/programmers/FeatureProgrammer.js +7 -7
  118. package/lib/programmers/FeatureProgrammer.js.map +1 -1
  119. package/lib/programmers/IsProgrammer.d.ts +1 -1
  120. package/lib/programmers/IsProgrammer.js +33 -22
  121. package/lib/programmers/IsProgrammer.js.map +1 -1
  122. package/lib/programmers/RandomProgrammer.js +196 -160
  123. package/lib/programmers/RandomProgrammer.js.map +1 -1
  124. package/lib/programmers/TypiaProgrammer.js +87 -28
  125. package/lib/programmers/TypiaProgrammer.js.map +1 -1
  126. package/lib/programmers/ValidateProgrammer.js +28 -10
  127. package/lib/programmers/ValidateProgrammer.js.map +1 -1
  128. package/lib/programmers/helpers/CloneJoiner.js +10 -2
  129. package/lib/programmers/helpers/CloneJoiner.js.map +1 -1
  130. package/lib/programmers/helpers/ICheckEntry.d.ts +4 -3
  131. package/lib/programmers/helpers/ProtobufUtil.d.ts +6 -2
  132. package/lib/programmers/helpers/ProtobufUtil.js +175 -17
  133. package/lib/programmers/helpers/ProtobufUtil.js.map +1 -1
  134. package/lib/programmers/helpers/RandomJoiner.d.ts +3 -5
  135. package/lib/programmers/helpers/RandomJoiner.js +7 -10
  136. package/lib/programmers/helpers/RandomJoiner.js.map +1 -1
  137. package/lib/programmers/helpers/RandomRanger.d.ts +5 -6
  138. package/lib/programmers/helpers/RandomRanger.js +13 -33
  139. package/lib/programmers/helpers/RandomRanger.js.map +1 -1
  140. package/lib/programmers/helpers/UnionExplorer.d.ts +7 -8
  141. package/lib/programmers/helpers/UnionExplorer.js +46 -35
  142. package/lib/programmers/helpers/UnionExplorer.js.map +1 -1
  143. package/lib/programmers/internal/application_alias.js +0 -1
  144. package/lib/programmers/internal/application_alias.js.map +1 -1
  145. package/lib/programmers/internal/application_array.js +60 -20
  146. package/lib/programmers/internal/application_array.js.map +1 -1
  147. package/lib/programmers/internal/application_escaped.d.ts +4 -0
  148. package/lib/programmers/internal/{application_resolved.js → application_escaped.js} +6 -6
  149. package/lib/programmers/internal/application_escaped.js.map +1 -0
  150. package/lib/programmers/internal/application_number.js +95 -69
  151. package/lib/programmers/internal/application_number.js.map +1 -1
  152. package/lib/programmers/internal/application_object.js +0 -3
  153. package/lib/programmers/internal/application_object.js.map +1 -1
  154. package/lib/programmers/internal/application_schema.js +41 -24
  155. package/lib/programmers/internal/application_schema.js.map +1 -1
  156. package/lib/programmers/internal/application_string.js +56 -22
  157. package/lib/programmers/internal/application_string.js.map +1 -1
  158. package/lib/programmers/internal/application_tuple.js +10 -9
  159. package/lib/programmers/internal/application_tuple.js.map +1 -1
  160. package/lib/programmers/internal/check_array_length.js +25 -25
  161. package/lib/programmers/internal/check_array_length.js.map +1 -1
  162. package/lib/programmers/internal/check_bigint.js +20 -109
  163. package/lib/programmers/internal/check_bigint.js.map +1 -1
  164. package/lib/programmers/internal/check_dynamic_properties.js +1 -1
  165. package/lib/programmers/internal/check_dynamic_properties.js.map +1 -1
  166. package/lib/programmers/internal/check_number.js +57 -147
  167. package/lib/programmers/internal/check_number.js.map +1 -1
  168. package/lib/programmers/internal/check_string.js +21 -33
  169. package/lib/programmers/internal/check_string.js.map +1 -1
  170. package/lib/programmers/internal/check_template.js +31 -49
  171. package/lib/programmers/internal/check_template.js.map +1 -1
  172. package/lib/programmers/internal/check_union_array_like.js +7 -6
  173. package/lib/programmers/internal/check_union_array_like.js.map +1 -1
  174. package/lib/programmers/internal/feature_object_entries.js +1 -1
  175. package/lib/programmers/internal/feature_object_entries.js.map +1 -1
  176. package/lib/programmers/internal/random_custom.js +8 -2
  177. package/lib/programmers/internal/random_custom.js.map +1 -1
  178. package/lib/programmers/internal/wrap_metadata_rest_tuple.js +9 -5
  179. package/lib/programmers/internal/wrap_metadata_rest_tuple.js.map +1 -1
  180. package/lib/programmers/json/JsonApplicationProgrammer.js +5 -1
  181. package/lib/programmers/json/JsonApplicationProgrammer.js.map +1 -1
  182. package/lib/programmers/json/JsonAssertParseProgrammer.js +2 -0
  183. package/lib/programmers/json/JsonAssertParseProgrammer.js.map +1 -1
  184. package/lib/programmers/json/JsonIsParseProgrammer.js +2 -0
  185. package/lib/programmers/json/JsonIsParseProgrammer.js.map +1 -1
  186. package/lib/programmers/json/JsonStringifyProgrammer.js +48 -85
  187. package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
  188. package/lib/programmers/json/JsonValidateParseProgrammer.js +2 -0
  189. package/lib/programmers/json/JsonValidateParseProgrammer.js.map +1 -1
  190. package/lib/programmers/misc/MiscCloneProgrammer.js +34 -25
  191. package/lib/programmers/misc/MiscCloneProgrammer.js.map +1 -1
  192. package/lib/programmers/{IsPruneProgrammer.d.ts → misc/MiscIsPruneProgrammer.d.ts} +2 -2
  193. package/lib/programmers/{IsPruneProgrammer.js → misc/MiscIsPruneProgrammer.js} +11 -11
  194. package/lib/programmers/misc/MiscIsPruneProgrammer.js.map +1 -0
  195. package/lib/programmers/misc/MiscLiteralsProgrammer.js +10 -5
  196. package/lib/programmers/misc/MiscLiteralsProgrammer.js.map +1 -1
  197. package/lib/programmers/misc/MiscPruneProgrammer.js +34 -25
  198. package/lib/programmers/misc/MiscPruneProgrammer.js.map +1 -1
  199. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js +48 -48
  200. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js.map +1 -1
  201. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js +152 -69
  202. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js.map +1 -1
  203. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js +80 -85
  204. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js.map +1 -1
  205. package/lib/protobuf.d.ts +34 -34
  206. package/lib/schemas/json/IJsonSchema.d.ts +10 -38
  207. package/lib/schemas/metadata/IMetadata.d.ts +9 -2
  208. package/lib/schemas/metadata/IMetadataAlias.d.ts +0 -2
  209. package/lib/schemas/metadata/IMetadataArray.d.ts +4 -6
  210. package/lib/schemas/metadata/IMetadataArrayType.d.ts +8 -0
  211. package/lib/{CustomValidatorMap.js → schemas/metadata/IMetadataArrayType.js} +1 -1
  212. package/lib/schemas/metadata/IMetadataArrayType.js.map +1 -0
  213. package/lib/schemas/metadata/IMetadataAtomic.d.ts +3 -10
  214. package/lib/schemas/metadata/IMetadataCollection.d.ts +4 -4
  215. package/lib/schemas/metadata/IMetadataProperty.d.ts +0 -2
  216. package/lib/schemas/metadata/IMetadataTuple.d.ts +4 -6
  217. package/lib/schemas/metadata/IMetadataTupleType.d.ts +8 -0
  218. package/lib/schemas/metadata/IMetadataTupleType.js +3 -0
  219. package/lib/schemas/metadata/IMetadataTupleType.js.map +1 -0
  220. package/lib/schemas/metadata/IMetadataTypeTag.d.ts +8 -0
  221. package/lib/schemas/metadata/IMetadataTypeTag.js +3 -0
  222. package/lib/schemas/metadata/IMetadataTypeTag.js.map +1 -0
  223. package/lib/schemas/metadata/Metadata.d.ts +2 -2
  224. package/lib/schemas/metadata/Metadata.js +177 -122
  225. package/lib/schemas/metadata/Metadata.js.map +1 -1
  226. package/lib/schemas/metadata/MetadataAlias.d.ts +0 -2
  227. package/lib/schemas/metadata/MetadataAlias.js +0 -3
  228. package/lib/schemas/metadata/MetadataAlias.js.map +1 -1
  229. package/lib/schemas/metadata/MetadataArray.d.ts +8 -6
  230. package/lib/schemas/metadata/MetadataArray.js +48 -19
  231. package/lib/schemas/metadata/MetadataArray.js.map +1 -1
  232. package/lib/schemas/metadata/MetadataArrayType.d.ts +14 -0
  233. package/lib/schemas/metadata/MetadataArrayType.js +36 -0
  234. package/lib/schemas/metadata/MetadataArrayType.js.map +1 -0
  235. package/lib/schemas/metadata/MetadataAtomic.d.ts +9 -0
  236. package/lib/schemas/metadata/MetadataAtomic.js +59 -0
  237. package/lib/schemas/metadata/MetadataAtomic.js.map +1 -0
  238. package/lib/schemas/metadata/MetadataProperty.d.ts +0 -2
  239. package/lib/schemas/metadata/MetadataProperty.js +0 -3
  240. package/lib/schemas/metadata/MetadataProperty.js.map +1 -1
  241. package/lib/schemas/metadata/MetadataTuple.d.ts +8 -8
  242. package/lib/schemas/metadata/MetadataTuple.js +4 -19
  243. package/lib/schemas/metadata/MetadataTuple.js.map +1 -1
  244. package/lib/schemas/metadata/MetadataTupleType.d.ts +13 -0
  245. package/lib/schemas/metadata/MetadataTupleType.js +40 -0
  246. package/lib/schemas/metadata/MetadataTupleType.js.map +1 -0
  247. package/lib/tags/ExclusiveMaximum.d.ts +10 -8
  248. package/lib/tags/ExclusiveMinimum.d.ts +10 -8
  249. package/lib/tags/Format.d.ts +8 -8
  250. package/lib/tags/MaxItems.d.ts +8 -8
  251. package/lib/tags/MaxLength.d.ts +8 -8
  252. package/lib/tags/Maximum.d.ts +10 -8
  253. package/lib/tags/MinItems.d.ts +8 -8
  254. package/lib/tags/MinLength.d.ts +8 -8
  255. package/lib/tags/Minimum.d.ts +10 -8
  256. package/lib/tags/MultipleOf.d.ts +10 -8
  257. package/lib/tags/Pattern.d.ts +7 -8
  258. package/lib/tags/TagBase.d.ts +52 -6
  259. package/lib/tags/Type.d.ts +14 -13
  260. package/lib/tags/index.d.ts +1 -0
  261. package/lib/tags/index.js +1 -0
  262. package/lib/tags/index.js.map +1 -1
  263. package/lib/transform.d.ts +2 -1
  264. package/lib/transform.js +11 -3
  265. package/lib/transform.js.map +1 -1
  266. package/lib/transformers/CallExpressionTransformer.d.ts +1 -1
  267. package/lib/transformers/CallExpressionTransformer.js +2 -1
  268. package/lib/transformers/CallExpressionTransformer.js.map +1 -1
  269. package/lib/transformers/FileTransformer.d.ts +1 -1
  270. package/lib/transformers/FileTransformer.js +30 -7
  271. package/lib/transformers/FileTransformer.js.map +1 -1
  272. package/lib/transformers/IProject.d.ts +4 -0
  273. package/lib/transformers/NodeTransformer.d.ts +1 -1
  274. package/lib/transformers/TransformerError.d.ts +12 -0
  275. package/lib/transformers/TransformerError.js +66 -0
  276. package/lib/transformers/TransformerError.js.map +1 -0
  277. package/lib/transformers/features/AssertTransformer.d.ts +1 -0
  278. package/lib/transformers/features/CreateAssertTransformer.d.ts +1 -0
  279. package/lib/transformers/features/CreateIsTransformer.d.ts +1 -0
  280. package/lib/transformers/features/CreateRandomTransformer.js +9 -4
  281. package/lib/transformers/features/CreateRandomTransformer.js.map +1 -1
  282. package/lib/transformers/features/CreateValidateTransformer.d.ts +1 -0
  283. package/lib/transformers/features/IsTransformer.d.ts +1 -0
  284. package/lib/transformers/features/RandomTransformer.js +9 -4
  285. package/lib/transformers/features/RandomTransformer.js.map +1 -1
  286. package/lib/transformers/features/ValidateTransformer.d.ts +1 -0
  287. package/lib/transformers/features/json/JsonApplicationTransformer.js +79 -17
  288. package/lib/transformers/features/json/JsonApplicationTransformer.js.map +1 -1
  289. package/lib/transformers/features/json/JsonAssertParseTransformer.d.ts +1 -0
  290. package/lib/transformers/features/json/JsonAssertStringifyTransformer.d.ts +1 -0
  291. package/lib/transformers/features/json/JsonCreateAssertParseTransformer.d.ts +1 -0
  292. package/lib/transformers/features/json/JsonCreateAssertStringifyTransformer.d.ts +1 -0
  293. package/lib/transformers/features/json/JsonCreateIsParseTransformer.d.ts +1 -0
  294. package/lib/transformers/features/json/JsonCreateIsStringifyTransformer.d.ts +1 -0
  295. package/lib/transformers/features/json/JsonCreateStringifyTransformer.d.ts +1 -0
  296. package/lib/transformers/features/json/JsonCreateValidateParseTransformer.d.ts +1 -0
  297. package/lib/transformers/features/json/JsonCreateValidateStringifyProgrammer.d.ts +1 -0
  298. package/lib/transformers/features/json/JsonIsParseTransformer.d.ts +1 -0
  299. package/lib/transformers/features/json/JsonIsStringifyTransformer.d.ts +1 -0
  300. package/lib/transformers/features/json/JsonStringifyTransformer.d.ts +1 -0
  301. package/lib/transformers/features/json/JsonValidateParseTransformer.d.ts +1 -0
  302. package/lib/transformers/features/json/JsonValidateStringifyTransformer.d.ts +1 -0
  303. package/lib/transformers/features/misc/MetadataTransformer.js +13 -5
  304. package/lib/transformers/features/misc/MetadataTransformer.js.map +1 -1
  305. package/lib/transformers/features/misc/MiscAssertCloneTransformer.d.ts +1 -0
  306. package/lib/transformers/features/misc/MiscAssertPruneTransformer.d.ts +1 -0
  307. package/lib/transformers/features/misc/MiscCloneTransformer.d.ts +1 -0
  308. package/lib/transformers/features/misc/MiscCreateAssertCloneTransformer.d.ts +1 -0
  309. package/lib/transformers/features/misc/MiscCreateAssertPruneTransformer.d.ts +1 -0
  310. package/lib/transformers/features/misc/MiscCreateCloneTransformer.d.ts +1 -0
  311. package/lib/transformers/features/misc/MiscCreateIsCloneTransformer.d.ts +1 -0
  312. package/lib/transformers/features/misc/MiscCreateIsPruneTransformer.d.ts +1 -0
  313. package/lib/transformers/features/misc/MiscCreateIsPruneTransformer.js +2 -2
  314. package/lib/transformers/features/misc/MiscCreateIsPruneTransformer.js.map +1 -1
  315. package/lib/transformers/features/misc/MiscCreatePruneTransformer.d.ts +1 -0
  316. package/lib/transformers/features/misc/MiscCreateValidateCloneTransformer.d.ts +1 -0
  317. package/lib/transformers/features/misc/MiscCreateValidatePruneTransformer.d.ts +1 -0
  318. package/lib/transformers/features/misc/MiscIsCloneTransformer.d.ts +1 -0
  319. package/lib/transformers/features/misc/MiscIsPruneTransformer.d.ts +1 -0
  320. package/lib/transformers/features/misc/MiscIsPruneTransformer.js +2 -2
  321. package/lib/transformers/features/misc/MiscIsPruneTransformer.js.map +1 -1
  322. package/lib/transformers/features/misc/MiscLiteralsTransformer.js +9 -4
  323. package/lib/transformers/features/misc/MiscLiteralsTransformer.js.map +1 -1
  324. package/lib/transformers/features/misc/MiscPruneTransformer.d.ts +1 -0
  325. package/lib/transformers/features/misc/MiscValidateCloneTransformer.d.ts +1 -0
  326. package/lib/transformers/features/misc/MiscValidatePruneTransformer.d.ts +1 -0
  327. package/lib/transformers/features/protobuf/CreateProtobufAssertDecodeTransformer.d.ts +1 -0
  328. package/lib/transformers/features/protobuf/CreateProtobufAssertEncodeTransformer.d.ts +1 -0
  329. package/lib/transformers/features/protobuf/CreateProtobufDecodeTransformer.d.ts +1 -0
  330. package/lib/transformers/features/protobuf/CreateProtobufEncodeTransformer.d.ts +1 -0
  331. package/lib/transformers/features/protobuf/CreateProtobufIsDecodeTransformer.d.ts +1 -0
  332. package/lib/transformers/features/protobuf/CreateProtobufIsEncodeTransformer.d.ts +1 -0
  333. package/lib/transformers/features/protobuf/CreateProtobufValidateDecodeTransformer.d.ts +1 -0
  334. package/lib/transformers/features/protobuf/CreateProtobufValidateEncodeTransformer.d.ts +1 -0
  335. package/lib/transformers/features/protobuf/ProtobufAssertDecodeTransformer.d.ts +1 -0
  336. package/lib/transformers/features/protobuf/ProtobufAssertEncodeTransformer.d.ts +1 -0
  337. package/lib/transformers/features/protobuf/ProtobufDecodeTransformer.d.ts +1 -0
  338. package/lib/transformers/features/protobuf/ProtobufEncodeTransformer.d.ts +1 -0
  339. package/lib/transformers/features/protobuf/ProtobufIsDecodeTransformer.d.ts +1 -0
  340. package/lib/transformers/features/protobuf/ProtobufIsEncodeTransformer.d.ts +1 -0
  341. package/lib/transformers/features/protobuf/ProtobufMessageTransformer.js +9 -2
  342. package/lib/transformers/features/protobuf/ProtobufMessageTransformer.js.map +1 -1
  343. package/lib/transformers/features/protobuf/ProtobufValidateDecodeTransformer.d.ts +1 -0
  344. package/lib/transformers/features/protobuf/ProtobufValidateEncodeTransformer.d.ts +1 -0
  345. package/lib/transformers/internal/GenericTransformer.js +17 -4
  346. package/lib/transformers/internal/GenericTransformer.js.map +1 -1
  347. package/lib/typings/ProtobufAtomic.d.ts +5 -0
  348. package/lib/{schemas/metadata/ICommentTag.js → typings/ProtobufAtomic.js} +1 -1
  349. package/lib/typings/ProtobufAtomic.js.map +1 -0
  350. package/lib/typings/ValidationPipe.d.ts +7 -0
  351. package/lib/{schemas/metadata/IMetadataTag.js → typings/ValidationPipe.js} +1 -1
  352. package/lib/typings/ValidationPipe.js.map +1 -0
  353. package/package.json +6 -2
  354. package/src/IRandomGenerator.ts +4 -3
  355. package/src/Primitive.ts +135 -135
  356. package/src/Resolved.ts +116 -116
  357. package/src/executable/TypiaGenerateWizard.ts +1 -1
  358. package/src/executable/TypiaSetupWizard.ts +1 -1
  359. package/src/executable/setup/PackageManager.ts +1 -1
  360. package/src/executable/setup/PluginConfigurator.ts +2 -2
  361. package/src/factories/ExpressionFactory.ts +46 -2
  362. package/src/factories/IdentifierFactory.ts +15 -0
  363. package/src/factories/JsonMetadataFactory.ts +43 -0
  364. package/src/factories/LiteralFactory.ts +11 -3
  365. package/src/factories/MetadataCollection.ts +18 -18
  366. package/src/factories/MetadataCommentTagFactory.ts +629 -0
  367. package/src/factories/MetadataFactory.ts +214 -46
  368. package/src/factories/MetadataTypeTagFactory.ts +313 -0
  369. package/src/factories/NumericRangeFactory.ts +33 -0
  370. package/src/factories/ProtobufFactory.ts +272 -268
  371. package/src/factories/TypeFactory.ts +0 -5
  372. package/src/factories/internal/metadata/emend_metadata_atomics.ts +40 -35
  373. package/src/factories/internal/metadata/emplace_metadata_alias.ts +12 -11
  374. package/src/factories/internal/metadata/{emplace_metadata_array.ts → emplace_metadata_array_type.ts} +14 -7
  375. package/src/factories/internal/metadata/emplace_metadata_object.ts +20 -6
  376. package/src/factories/internal/metadata/emplace_metadata_tuple.ts +13 -3
  377. package/src/factories/internal/metadata/explore_metadata.ts +32 -38
  378. package/src/factories/internal/metadata/iterate_metadata.ts +44 -24
  379. package/src/factories/internal/metadata/iterate_metadata_alias.ts +7 -2
  380. package/src/factories/internal/metadata/iterate_metadata_array.ts +19 -6
  381. package/src/factories/internal/metadata/iterate_metadata_atomic.ts +62 -63
  382. package/src/factories/internal/metadata/iterate_metadata_collection.ts +141 -133
  383. package/src/factories/internal/metadata/iterate_metadata_comment_tags.ts +26 -0
  384. package/src/factories/internal/metadata/iterate_metadata_intersection.ts +141 -28
  385. package/src/factories/internal/metadata/iterate_metadata_map.ts +20 -4
  386. package/src/factories/internal/metadata/iterate_metadata_native.ts +210 -210
  387. package/src/factories/internal/metadata/iterate_metadata_object.ts +12 -11
  388. package/src/factories/internal/metadata/iterate_metadata_resolve.ts +52 -49
  389. package/src/factories/internal/metadata/iterate_metadata_set.ts +11 -2
  390. package/src/factories/internal/metadata/iterate_metadata_sort.ts +69 -69
  391. package/src/factories/internal/metadata/iterate_metadata_template.ts +12 -3
  392. package/src/factories/internal/metadata/iterate_metadata_tuple.ts +18 -5
  393. package/src/factories/internal/metadata/iterate_metadata_union.ts +10 -7
  394. package/src/functional/$ProtobufWriter.ts +151 -151
  395. package/src/functional/$any.ts +3 -1
  396. package/src/functional/$clone.ts +4 -0
  397. package/src/functional/Namespace.ts +0 -16
  398. package/src/json.ts +648 -648
  399. package/src/misc.ts +651 -651
  400. package/src/module.ts +656 -709
  401. package/src/programmers/AssertProgrammer.ts +317 -281
  402. package/src/programmers/CheckerProgrammer.ts +1137 -1174
  403. package/src/programmers/FeatureProgrammer.ts +13 -32
  404. package/src/programmers/IsProgrammer.ts +252 -241
  405. package/src/programmers/RandomProgrammer.ts +878 -874
  406. package/src/programmers/TypiaProgrammer.ts +36 -2
  407. package/src/programmers/ValidateProgrammer.ts +346 -307
  408. package/src/programmers/helpers/AtomicPredicator.ts +31 -31
  409. package/src/programmers/helpers/CloneJoiner.ts +57 -20
  410. package/src/programmers/helpers/FunctionImporeter.ts +91 -91
  411. package/src/programmers/helpers/ICheckEntry.ts +4 -3
  412. package/src/programmers/helpers/ProtobufUtil.ts +125 -29
  413. package/src/programmers/helpers/RandomJoiner.ts +11 -33
  414. package/src/programmers/helpers/RandomRanger.ts +16 -51
  415. package/src/programmers/helpers/StringifyPredicator.ts +12 -12
  416. package/src/programmers/helpers/UnionExplorer.ts +46 -51
  417. package/src/programmers/helpers/disable_function_importer_declare.ts +32 -32
  418. package/src/programmers/internal/application_alias.ts +0 -1
  419. package/src/programmers/internal/application_array.ts +33 -10
  420. package/src/programmers/internal/application_default_string.ts +37 -37
  421. package/src/programmers/internal/{application_resolved.ts → application_escaped.ts} +55 -55
  422. package/src/programmers/internal/application_number.ts +76 -70
  423. package/src/programmers/internal/application_object.ts +0 -3
  424. package/src/programmers/internal/application_schema.ts +175 -157
  425. package/src/programmers/internal/application_string.ts +33 -27
  426. package/src/programmers/internal/application_tuple.ts +12 -11
  427. package/src/programmers/internal/check_array_length.ts +34 -28
  428. package/src/programmers/internal/check_bigint.ts +26 -91
  429. package/src/programmers/internal/check_dynamic_properties.ts +1 -2
  430. package/src/programmers/internal/check_number.ts +83 -236
  431. package/src/programmers/internal/check_string.ts +37 -17
  432. package/src/programmers/internal/check_template.ts +17 -12
  433. package/src/programmers/internal/check_union_array_like.ts +4 -18
  434. package/src/programmers/internal/feature_object_entries.ts +12 -18
  435. package/src/programmers/internal/metadata_to_pattern.ts +34 -34
  436. package/src/programmers/internal/random_custom.ts +11 -3
  437. package/src/programmers/internal/stringify_dynamic_properties.ts +171 -171
  438. package/src/programmers/internal/wrap_metadata_rest_tuple.ts +9 -5
  439. package/src/programmers/json/JsonApplicationProgrammer.ts +6 -3
  440. package/src/programmers/json/JsonAssertParseProgrammer.ts +7 -2
  441. package/src/programmers/json/JsonIsParseProgrammer.ts +7 -2
  442. package/src/programmers/json/JsonStringifyProgrammer.ts +964 -995
  443. package/src/programmers/json/JsonValidateParseProgrammer.ts +7 -2
  444. package/src/programmers/json/JsonValidateStringifyProgrammer.ts +1 -1
  445. package/src/programmers/misc/MiscAssertCloneProgrammer.ts +71 -71
  446. package/src/programmers/misc/MiscCloneProgrammer.ts +774 -775
  447. package/src/programmers/misc/MiscIsCloneProgrammer.ts +78 -78
  448. package/src/programmers/{IsPruneProgrammer.ts → misc/MiscIsPruneProgrammer.ts} +7 -7
  449. package/src/programmers/misc/MiscLiteralsProgrammer.ts +69 -64
  450. package/src/programmers/misc/MiscPruneProgrammer.ts +550 -544
  451. package/src/programmers/misc/MiscValidateCloneProgrammer.ts +85 -85
  452. package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +75 -75
  453. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +655 -673
  454. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +883 -814
  455. package/src/programmers/protobuf/ProtobufIsDecodeProgrammer.ts +85 -85
  456. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +23 -36
  457. package/src/programmers/protobuf/ProtobufValidateDecodeProgrammer.ts +75 -75
  458. package/src/protobuf.ts +881 -881
  459. package/src/schemas/json/IJsonSchema.ts +11 -38
  460. package/src/schemas/metadata/IMetadata.ts +34 -27
  461. package/src/schemas/metadata/IMetadataAlias.ts +0 -2
  462. package/src/schemas/metadata/IMetadataArray.ts +4 -7
  463. package/src/schemas/metadata/IMetadataArrayType.ts +10 -0
  464. package/src/schemas/metadata/IMetadataAtomic.ts +3 -10
  465. package/src/schemas/metadata/IMetadataCollection.ts +4 -4
  466. package/src/schemas/metadata/IMetadataDictionary.ts +4 -4
  467. package/src/schemas/metadata/IMetadataEscaped.ts +6 -6
  468. package/src/schemas/metadata/IMetadataProperty.ts +0 -2
  469. package/src/schemas/metadata/IMetadataTuple.ts +4 -7
  470. package/src/schemas/metadata/IMetadataTupleType.ts +10 -0
  471. package/src/schemas/metadata/IMetadataTypeTag.ts +8 -0
  472. package/src/schemas/metadata/Metadata.ts +685 -643
  473. package/src/schemas/metadata/MetadataAlias.ts +0 -5
  474. package/src/schemas/metadata/MetadataArray.ts +28 -34
  475. package/src/schemas/metadata/MetadataArrayType.ts +57 -0
  476. package/src/schemas/metadata/MetadataAtomic.ts +42 -0
  477. package/src/schemas/metadata/MetadataEscaped.ts +51 -51
  478. package/src/schemas/metadata/MetadataProperty.ts +0 -5
  479. package/src/schemas/metadata/MetadataTuple.ts +9 -35
  480. package/src/schemas/metadata/MetadataTupleType.ts +67 -0
  481. package/src/tags/ExclusiveMaximum.ts +13 -8
  482. package/src/tags/ExclusiveMinimum.ts +13 -8
  483. package/src/tags/Format.ts +21 -20
  484. package/src/tags/MaxItems.ts +9 -8
  485. package/src/tags/MaxLength.ts +9 -8
  486. package/src/tags/Maximum.ts +13 -8
  487. package/src/tags/MinItems.ts +9 -8
  488. package/src/tags/MinLength.ts +9 -8
  489. package/src/tags/Minimum.ts +13 -8
  490. package/src/tags/MultipleOf.ts +15 -10
  491. package/src/tags/Pattern.ts +8 -8
  492. package/src/tags/TagBase.ts +64 -13
  493. package/src/tags/Type.ts +26 -29
  494. package/src/tags/index.ts +1 -0
  495. package/src/transform.ts +13 -5
  496. package/src/transformers/CallExpressionTransformer.ts +6 -3
  497. package/src/transformers/FileTransformer.ts +23 -13
  498. package/src/transformers/IProject.ts +4 -0
  499. package/src/transformers/NodeTransformer.ts +1 -1
  500. package/src/transformers/TransformerError.ts +55 -0
  501. package/src/transformers/features/CreateRandomTransformer.ts +11 -7
  502. package/src/transformers/features/RandomTransformer.ts +11 -7
  503. package/src/transformers/features/json/JsonApplicationTransformer.ts +116 -111
  504. package/src/transformers/features/misc/MetadataTransformer.ts +61 -53
  505. package/src/transformers/features/misc/MiscCreateIsPruneTransformer.ts +2 -2
  506. package/src/transformers/features/misc/MiscIsPruneTransformer.ts +2 -2
  507. package/src/transformers/features/misc/MiscLiteralsTransformer.ts +11 -7
  508. package/src/transformers/features/protobuf/ProtobufMessageTransformer.ts +9 -7
  509. package/src/transformers/internal/GenericTransformer.ts +17 -10
  510. package/src/typings/Atomic.ts +1 -0
  511. package/src/typings/ProtobufAtomic.ts +19 -0
  512. package/src/typings/ValidationPipe.ts +9 -0
  513. package/src/utils/RandomGenerator.ts +83 -83
  514. package/lib/CustomValidatorMap.d.ts +0 -110
  515. package/lib/CustomValidatorMap.js.map +0 -1
  516. package/lib/factories/MetadataTagFactory.d.ts +0 -6
  517. package/lib/factories/MetadataTagFactory.js +0 -312
  518. package/lib/factories/MetadataTagFactory.js.map +0 -1
  519. package/lib/factories/internal/metadata/emplace_metadata_array.d.ts +0 -5
  520. package/lib/factories/internal/metadata/emplace_metadata_array.js +0 -38
  521. package/lib/factories/internal/metadata/emplace_metadata_array.js.map +0 -1
  522. package/lib/factories/internal/metadata/iterate_metadata_tag.d.ts +0 -2
  523. package/lib/factories/internal/metadata/iterate_metadata_tag.js +0 -50
  524. package/lib/factories/internal/metadata/iterate_metadata_tag.js.map +0 -1
  525. package/lib/functional/$is_custom.d.ts +0 -2
  526. package/lib/functional/$is_custom.js +0 -13
  527. package/lib/functional/$is_custom.js.map +0 -1
  528. package/lib/functional/$is_date.d.ts +0 -1
  529. package/lib/functional/$is_date.js +0 -7
  530. package/lib/functional/$is_date.js.map +0 -1
  531. package/lib/functional/$is_datetime.d.ts +0 -1
  532. package/lib/functional/$is_datetime.js +0 -8
  533. package/lib/functional/$is_datetime.js.map +0 -1
  534. package/lib/functional/$is_email.d.ts +0 -1
  535. package/lib/functional/$is_email.js +0 -7
  536. package/lib/functional/$is_email.js.map +0 -1
  537. package/lib/functional/$is_ipv4.d.ts +0 -1
  538. package/lib/functional/$is_ipv4.js +0 -7
  539. package/lib/functional/$is_ipv4.js.map +0 -1
  540. package/lib/functional/$is_ipv6.d.ts +0 -1
  541. package/lib/functional/$is_ipv6.js +0 -7
  542. package/lib/functional/$is_ipv6.js.map +0 -1
  543. package/lib/functional/$is_url.d.ts +0 -1
  544. package/lib/functional/$is_url.js +0 -7
  545. package/lib/functional/$is_url.js.map +0 -1
  546. package/lib/functional/$is_uuid.d.ts +0 -1
  547. package/lib/functional/$is_uuid.js +0 -7
  548. package/lib/functional/$is_uuid.js.map +0 -1
  549. package/lib/programmers/IsPruneProgrammer.js.map +0 -1
  550. package/lib/programmers/internal/application_resolved.d.ts +0 -4
  551. package/lib/programmers/internal/application_resolved.js.map +0 -1
  552. package/lib/programmers/internal/check_array.js +0 -44
  553. package/lib/programmers/internal/check_array.js.map +0 -1
  554. package/lib/programmers/internal/check_custom.d.ts +0 -1
  555. package/lib/programmers/internal/check_custom.js +0 -30
  556. package/lib/programmers/internal/check_custom.js.map +0 -1
  557. package/lib/programmers/internal/check_string_tags.d.ts +0 -1
  558. package/lib/programmers/internal/check_string_tags.js +0 -89
  559. package/lib/programmers/internal/check_string_tags.js.map +0 -1
  560. package/lib/programmers/internal/get_comment_tags.d.ts +0 -1
  561. package/lib/programmers/internal/get_comment_tags.js +0 -25
  562. package/lib/programmers/internal/get_comment_tags.js.map +0 -1
  563. package/lib/schemas/metadata/ICommentTag.d.ts +0 -4
  564. package/lib/schemas/metadata/ICommentTag.js.map +0 -1
  565. package/lib/schemas/metadata/IMetadataTag.d.ts +0 -63
  566. package/lib/schemas/metadata/IMetadataTag.js.map +0 -1
  567. package/src/CustomValidatorMap.ts +0 -126
  568. package/src/factories/MetadataTagFactory.ts +0 -366
  569. package/src/factories/internal/metadata/iterate_metadata_tag.ts +0 -31
  570. package/src/functional/$is_custom.ts +0 -14
  571. package/src/functional/$is_date.ts +0 -3
  572. package/src/functional/$is_datetime.ts +0 -2
  573. package/src/functional/$is_email.ts +0 -4
  574. package/src/functional/$is_ipv4.ts +0 -4
  575. package/src/functional/$is_ipv6.ts +0 -4
  576. package/src/functional/$is_url.ts +0 -4
  577. package/src/functional/$is_uuid.ts +0 -4
  578. package/src/programmers/internal/check_array.ts +0 -30
  579. package/src/programmers/internal/check_custom.ts +0 -31
  580. package/src/programmers/internal/check_string_tags.ts +0 -67
  581. package/src/programmers/internal/get_comment_tags.ts +0 -23
  582. package/src/schemas/metadata/ICommentTag.ts +0 -4
  583. package/src/schemas/metadata/IMetadataTag.ts +0 -112
  584. /package/lib/{programmers/internal/check_array.d.ts → factories/MetadataCommentTagFactory.d.ts} +0 -0
@@ -1,3 +1,4 @@
1
+ /// <reference types="ts-expose-internals/typescript" />
1
2
  export declare namespace MiscValidatePruneTransformer {
2
3
  const transform: (project: import("../../IProject").IProject) => (modulo: import("typescript").LeftHandSideExpression) => (expression: import("typescript").CallExpression) => import("typescript").CallExpression;
3
4
  }
@@ -1,3 +1,4 @@
1
+ /// <reference types="ts-expose-internals/typescript" />
1
2
  export declare namespace CreateProtobufAssertDecodeTransformer {
2
3
  const transform: (project: import("../../IProject").IProject) => (modulo: import("typescript").LeftHandSideExpression) => (expression: import("typescript").CallExpression) => import("typescript").ArrowFunction;
3
4
  }
@@ -1,3 +1,4 @@
1
+ /// <reference types="ts-expose-internals/typescript" />
1
2
  export declare namespace CreateProtobufAssertEncodeTransformer {
2
3
  const transform: (project: import("../../IProject").IProject) => (modulo: import("typescript").LeftHandSideExpression) => (expression: import("typescript").CallExpression) => import("typescript").ArrowFunction;
3
4
  }
@@ -1,3 +1,4 @@
1
+ /// <reference types="ts-expose-internals/typescript" />
1
2
  export declare namespace CreateProtobufDecodeTransformer {
2
3
  const transform: (project: import("../../IProject").IProject) => (modulo: import("typescript").LeftHandSideExpression) => (expression: import("typescript").CallExpression) => import("typescript").ArrowFunction;
3
4
  }
@@ -1,3 +1,4 @@
1
+ /// <reference types="ts-expose-internals/typescript" />
1
2
  export declare namespace CreateProtobufEncodeTransformer {
2
3
  const transform: (project: import("../../IProject").IProject) => (modulo: import("typescript").LeftHandSideExpression) => (expression: import("typescript").CallExpression) => import("typescript").ArrowFunction;
3
4
  }
@@ -1,3 +1,4 @@
1
+ /// <reference types="ts-expose-internals/typescript" />
1
2
  export declare namespace CreateProtobufIsDecodeTransformer {
2
3
  const transform: (project: import("../../IProject").IProject) => (modulo: import("typescript").LeftHandSideExpression) => (expression: import("typescript").CallExpression) => import("typescript").ArrowFunction;
3
4
  }
@@ -1,3 +1,4 @@
1
+ /// <reference types="ts-expose-internals/typescript" />
1
2
  export declare namespace CreateProtobufIsEncodeTransformer {
2
3
  const transform: (project: import("../../IProject").IProject) => (modulo: import("typescript").LeftHandSideExpression) => (expression: import("typescript").CallExpression) => import("typescript").ArrowFunction;
3
4
  }
@@ -1,3 +1,4 @@
1
+ /// <reference types="ts-expose-internals/typescript" />
1
2
  export declare namespace CreateProtobufValidateDecodeTransformer {
2
3
  const transform: (project: import("../../IProject").IProject) => (modulo: import("typescript").LeftHandSideExpression) => (expression: import("typescript").CallExpression) => import("typescript").ArrowFunction;
3
4
  }
@@ -1,3 +1,4 @@
1
+ /// <reference types="ts-expose-internals/typescript" />
1
2
  export declare namespace CreateProtobufValidateEncodeTransformer {
2
3
  const transform: (project: import("../../IProject").IProject) => (modulo: import("typescript").LeftHandSideExpression) => (expression: import("typescript").CallExpression) => import("typescript").ArrowFunction;
3
4
  }
@@ -1,3 +1,4 @@
1
+ /// <reference types="ts-expose-internals/typescript" />
1
2
  export declare namespace ProtobufAssertDecodeTransformer {
2
3
  const transform: (project: import("../../IProject").IProject) => (modulo: import("typescript").LeftHandSideExpression) => (expression: import("typescript").CallExpression) => import("typescript").CallExpression;
3
4
  }
@@ -1,3 +1,4 @@
1
+ /// <reference types="ts-expose-internals/typescript" />
1
2
  export declare namespace ProtobufAssertEncodeTransformer {
2
3
  const transform: (project: import("../../IProject").IProject) => (modulo: import("typescript").LeftHandSideExpression) => (expression: import("typescript").CallExpression) => import("typescript").CallExpression;
3
4
  }
@@ -1,3 +1,4 @@
1
+ /// <reference types="ts-expose-internals/typescript" />
1
2
  export declare namespace ProtobufDecodeTransformer {
2
3
  const transform: (project: import("../../IProject").IProject) => (modulo: import("typescript").LeftHandSideExpression) => (expression: import("typescript").CallExpression) => import("typescript").CallExpression;
3
4
  }
@@ -1,3 +1,4 @@
1
+ /// <reference types="ts-expose-internals/typescript" />
1
2
  export declare namespace ProtobufEncodeTransformer {
2
3
  const transform: (project: import("../../IProject").IProject) => (modulo: import("typescript").LeftHandSideExpression) => (expression: import("typescript").CallExpression) => import("typescript").CallExpression;
3
4
  }
@@ -1,3 +1,4 @@
1
+ /// <reference types="ts-expose-internals/typescript" />
1
2
  export declare namespace ProtobufIsDecodeTransformer {
2
3
  const transform: (project: import("../../IProject").IProject) => (modulo: import("typescript").LeftHandSideExpression) => (expression: import("typescript").CallExpression) => import("typescript").CallExpression;
3
4
  }
@@ -1,3 +1,4 @@
1
+ /// <reference types="ts-expose-internals/typescript" />
1
2
  export declare namespace ProtobufIsEncodeTransformer {
2
3
  const transform: (project: import("../../IProject").IProject) => (modulo: import("typescript").LeftHandSideExpression) => (expression: import("typescript").CallExpression) => import("typescript").CallExpression;
3
4
  }
@@ -2,16 +2,23 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ProtobufMessageTransformer = void 0;
4
4
  var ProtobufMessageProgrammer_1 = require("../../../programmers/protobuf/ProtobufMessageProgrammer");
5
+ var TransformerError_1 = require("../../TransformerError");
5
6
  var ProtobufMessageTransformer;
6
7
  (function (ProtobufMessageTransformer) {
7
8
  ProtobufMessageTransformer.transform = function (project) {
8
9
  return function (_modulo) {
9
10
  return function (expression) {
10
11
  if (!expression.typeArguments || !expression.typeArguments[0])
11
- throw new Error("Error on typia.protobuf.message(): generic argument is not specified.");
12
+ throw new TransformerError_1.TransformerError({
13
+ code: "typia.protobuf.message",
14
+ message: "generic argument is not specified.",
15
+ });
12
16
  var type = project.checker.getTypeFromTypeNode(expression.typeArguments[0]);
13
17
  if (type.isTypeParameter())
14
- throw new Error("Error on typia.protobuf.message(): non-specified generic argument.");
18
+ throw new TransformerError_1.TransformerError({
19
+ code: "tyipa.protobuf.message",
20
+ message: "non-specified generic argument.",
21
+ });
15
22
  return ProtobufMessageProgrammer_1.ProtobufMessageProgrammer.write(project)(type);
16
23
  };
17
24
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ProtobufMessageTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/protobuf/ProtobufMessageTransformer.ts"],"names":[],"mappings":";;;AAEA,qGAAoG;AAIpG,IAAiB,0BAA0B,CAmB1C;AAnBD,WAAiB,0BAA0B;IAC1B,oCAAS,GAClB,UAAC,OAAiB;QAClB,OAAA,UAAC,OAAkC;YACnC,OAAA,UAAC,UAA6B;gBAE1B,IAAI,CAAC,UAAU,CAAC,aAAa,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;oBACzD,MAAM,IAAI,KAAK,yEAA6B,CAAC;gBAGjD,IAAM,IAAI,GAAY,OAAO,CAAC,OAAO,CAAC,mBAAmB,CACrD,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAC9B,CAAC;gBACF,IAAI,IAAI,CAAC,eAAe,EAAE;oBACtB,MAAM,IAAI,KAAK,sEAAgC,CAAC;gBAGpD,OAAO,qDAAyB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;YAC1D,CAAC;QAdD,CAcC;IAfD,CAeC,CAAC;AACV,CAAC,EAnBgB,0BAA0B,0CAA1B,0BAA0B,QAmB1C"}
1
+ {"version":3,"file":"ProtobufMessageTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/protobuf/ProtobufMessageTransformer.ts"],"names":[],"mappings":";;;AAEA,qGAAoG;AAGpG,2DAA0D;AAE1D,IAAiB,0BAA0B,CAyB1C;AAzBD,WAAiB,0BAA0B;IAC1B,oCAAS,GAClB,UAAC,OAAiB;QAClB,OAAA,UAAC,OAAkC;YACnC,OAAA,UAAC,UAA6B;gBAE1B,IAAI,CAAC,UAAU,CAAC,aAAa,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;oBACzD,MAAM,IAAI,mCAAgB,CAAC;wBACvB,IAAI,EAAE,wBAAwB;wBAC9B,OAAO,EAAE,oCAAoC;qBAChD,CAAC,CAAC;gBAGP,IAAM,IAAI,GAAY,OAAO,CAAC,OAAO,CAAC,mBAAmB,CACrD,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAC9B,CAAC;gBACF,IAAI,IAAI,CAAC,eAAe,EAAE;oBACtB,MAAM,IAAI,mCAAgB,CAAC;wBACvB,IAAI,EAAE,wBAAwB;wBAC9B,OAAO,EAAE,iCAAiC;qBAC7C,CAAC,CAAC;gBAGP,OAAO,qDAAyB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;YAC1D,CAAC;QApBD,CAoBC;IArBD,CAqBC,CAAC;AACV,CAAC,EAzBgB,0BAA0B,0CAA1B,0BAA0B,QAyB1C"}
@@ -1,3 +1,4 @@
1
+ /// <reference types="ts-expose-internals/typescript" />
1
2
  export declare namespace ProtobufValidateDecodeTransformer {
2
3
  const transform: (project: import("../../IProject").IProject) => (modulo: import("typescript").LeftHandSideExpression) => (expression: import("typescript").CallExpression) => import("typescript").CallExpression;
3
4
  }
@@ -1,3 +1,4 @@
1
+ /// <reference types="ts-expose-internals/typescript" />
1
2
  export declare namespace ProtobufValidateEncodeTransformer {
2
3
  const transform: (project: import("../../IProject").IProject) => (modulo: import("typescript").LeftHandSideExpression) => (expression: import("typescript").CallExpression) => import("typescript").CallExpression;
3
4
  }
@@ -21,6 +21,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
21
21
  Object.defineProperty(exports, "__esModule", { value: true });
22
22
  exports.GenericTransformer = void 0;
23
23
  var typescript_1 = __importDefault(require("typescript"));
24
+ var TransformerError_1 = require("../TransformerError");
24
25
  var GenericTransformer;
25
26
  (function (GenericTransformer) {
26
27
  GenericTransformer.scalar = function (method) {
@@ -29,7 +30,10 @@ var GenericTransformer;
29
30
  return function (modulo) {
30
31
  return function (expression) {
31
32
  if (expression.arguments.length !== 1)
32
- throw new Error("Error on typia.".concat(method, "(): no input value."));
33
+ throw new TransformerError_1.TransformerError({
34
+ code: "typia.".concat(method),
35
+ message: "no input value.",
36
+ });
33
37
  var _a = __read(expression.typeArguments && expression.typeArguments[0]
34
38
  ? [
35
39
  project.checker.getTypeFromTypeNode(expression.typeArguments[0]),
@@ -42,7 +46,10 @@ var GenericTransformer;
42
46
  false,
43
47
  ], 3), type = _a[0], node = _a[1], generic = _a[2];
44
48
  if (type.isTypeParameter())
45
- throw new Error("Error on typia.".concat(method, "(): non-specified generic argument."));
49
+ throw new TransformerError_1.TransformerError({
50
+ code: "typia.".concat(method),
51
+ message: "non-specified generic argument.",
52
+ });
46
53
  return typescript_1.default.factory.createCallExpression(programmer(project)(modulo)(type, generic
47
54
  ? node.getFullText().trim()
48
55
  : name(project.checker)(type)(node)), undefined, [expression.arguments[0]]);
@@ -58,11 +65,17 @@ var GenericTransformer;
58
65
  return function (expression) {
59
66
  var _a;
60
67
  if (!((_a = expression.typeArguments) === null || _a === void 0 ? void 0 : _a[0]))
61
- throw new Error("Error on typia.".concat(method, "(): generic argument is not specified."));
68
+ throw new TransformerError_1.TransformerError({
69
+ code: "typia.".concat(method),
70
+ message: "generic argument is not specified.",
71
+ });
62
72
  var node = expression.typeArguments[0];
63
73
  var type = project.checker.getTypeFromTypeNode(node);
64
74
  if (type.isTypeParameter())
65
- throw new Error("Error on typia.".concat(method, "(): non-specified generic argument."));
75
+ throw new TransformerError_1.TransformerError({
76
+ code: "typia.".concat(method),
77
+ message: "non-specified generic argument.",
78
+ });
66
79
  return programmer(project)(modulo)(type, node.getFullText().trim());
67
80
  };
68
81
  };
@@ -1 +1 @@
1
- {"version":3,"file":"GenericTransformer.js","sourceRoot":"","sources":["../../../src/transformers/internal/GenericTransformer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GenericTransformer.js","sourceRoot":"","sources":["../../../src/transformers/internal/GenericTransformer.ts"],"names":[],"mappings":"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"}
@@ -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":""}
@@ -0,0 +1,7 @@
1
+ export type ValidationPipe<T, E> = {
2
+ success: true;
3
+ data: T;
4
+ } | {
5
+ success: false;
6
+ errors: E[];
7
+ };
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=IMetadataTag.js.map
3
+ //# sourceMappingURL=ValidationPipe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ValidationPipe.js","sourceRoot":"","sources":["../../src/typings/ValidationPipe.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "typia",
3
- "version": "5.0.0-dev.2023084",
3
+ "version": "5.0.0",
4
4
  "description": "Superfast runtime validators with only one line",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
@@ -16,7 +16,9 @@
16
16
  "build": "rimraf lib && tsc --removeComments --declaration false && tsc --emitDeclarationOnly",
17
17
  "build:test": "rimraf bin && tsc -p test/tsconfig.json",
18
18
  "build:test:actions": "rimraf bin && tsc -p test/tsconfig.actions.json",
19
+ "build:test:issues": "rimraf bin && tsc -p test/tsconfig.issue.json",
19
20
  "build:benchmark": "rimraf measure && tsc -p benchmark/tsconfig.json",
21
+ "build:test:errors": "rimraf errors/bin && tsc -p errors/tsconfig.json",
20
22
  "build:test:prettier": "npm run build:test && prettier --write ./bin/**/*.js",
21
23
  "dev": "rimraf lib && tsc --watch",
22
24
  "dev:test": "rimraf bin && tsc -p test/tsconfig.json --watch",
@@ -27,6 +29,7 @@
27
29
  "issue": "node test/issue",
28
30
  "issue:generate": "ts-node src/executable/typia generate --input test/issues/generate/input --output test/issues/generate --project test/tsconfig.json",
29
31
  "test": "node bin/test",
32
+ "test:errors": "node errors",
30
33
  "test:manual": "node test/manual",
31
34
  "------------------------------------------------": "",
32
35
  "package:latest": "ts-node build/publish.ts latest",
@@ -94,6 +97,7 @@
94
97
  "@types/nested-error-stacks": "^2.1.0",
95
98
  "@types/node": "^18.15.12",
96
99
  "@types/physical-cpu-count": "^2.0.0",
100
+ "@types/ts-expose-internals": "npm:ts-expose-internals@5.1.6",
97
101
  "@types/uuid": "^8.3.4",
98
102
  "@typescript-eslint/eslint-plugin": "^5.59.11",
99
103
  "@typescript-eslint/parser": "^5.59.11",
@@ -124,7 +128,7 @@
124
128
  "ts-node": "^10.9.1",
125
129
  "ts-patch": "^3.0.2",
126
130
  "tstl": "^2.5.13",
127
- "typescript": "^5.1.6",
131
+ "typescript": "^5.2.2",
128
132
  "typescript-transform-paths": "^3.4.6",
129
133
  "uuid": "^8.3.2",
130
134
  "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
  }
package/src/Primitive.ts CHANGED
@@ -1,135 +1,135 @@
1
- /**
2
- * Primitive type of JSON.
3
- *
4
- * `Primitive<T>` is a TMP (Type Meta Programming) type which converts
5
- * its argument as a primitive type within framework JSON.
6
- *
7
- * If the target argument is a built-in class which returns its origin primitive type
8
- * through the `valueOf()` method like the `String` or `Number`, its return type would
9
- * be the `string` or `number`. Otherwise, the built-in class does not have the
10
- * `valueOf()` method, the return type would be an empty object (`{}`).
11
- *
12
- * Otherwise, the target argument is a type of custom class, all of its custom method
13
- * would be erased and its prototype would be changed to the primitive `object`.
14
- * Therefore, return type of the TMP type finally be the primitive object.
15
- *
16
- * In addition, if the target argument is a type of custom class and it has a special
17
- * method `toJSON()`, return type of this `Primitive` would be not `Primitive<Instance>`
18
- * but `Primitive<ReturnType<Instance.toJSON>>`.
19
- *
20
- * Before | After
21
- * ------------------------|----------------------------------------
22
- * `Boolean` | `boolean`
23
- * `Number` | `number`
24
- * `String` | `string`
25
- * `Class` | `object`
26
- * `Class` with `toJSON()` | `Primitive<ReturnType<Class.toJSON>>`
27
- * Native Class | `{}`
28
- * Others | No change
29
- *
30
- * @template Instance Target argument type.
31
- * @author Jenogho Nam - https://github.com/samchon
32
- * @author Kyungsu Kang - https://github.com/kakasoo
33
- * @author Michael - https://github.com/8471919
34
- */
35
- export type Primitive<T> = Equal<T, PrimitiveMain<T>> extends true
36
- ? T
37
- : PrimitiveMain<T>;
38
-
39
- type Equal<X, Y> = X extends Y ? (Y extends X ? true : false) : false;
40
-
41
- type PrimitiveMain<Instance> = Instance extends [never]
42
- ? never // (special trick for jsonable | null) type
43
- : ValueOf<Instance> extends bigint
44
- ? never
45
- : ValueOf<Instance> extends boolean | number | string
46
- ? ValueOf<Instance>
47
- : Instance extends Function
48
- ? never
49
- : ValueOf<Instance> extends object
50
- ? Instance extends object
51
- ? Instance extends NativeClass
52
- ? {}
53
- : Instance extends IJsonable<infer Raw>
54
- ? ValueOf<Raw> extends object
55
- ? Raw extends object
56
- ? PrimitiveObject<Raw> // object would be primitified
57
- : never // cannot be
58
- : ValueOf<Raw> // atomic value
59
- : PrimitiveObject<Instance> // object would be primitified
60
- : never // cannot be
61
- : ValueOf<Instance>;
62
-
63
- type PrimitiveObject<Instance extends object> = Instance extends Array<infer T>
64
- ? IsTuple<Instance> extends true
65
- ? PrimitiveTuple<Instance>
66
- : PrimitiveMain<T>[]
67
- : {
68
- [P in keyof Instance]: PrimitiveMain<Instance[P]>;
69
- };
70
-
71
- type PrimitiveTuple<T extends readonly any[]> = T extends []
72
- ? []
73
- : T extends [infer F]
74
- ? [PrimitiveMain<F>]
75
- : T extends [infer F, ...infer Rest extends readonly any[]]
76
- ? [PrimitiveMain<F>, ...PrimitiveTuple<Rest>]
77
- : T extends [(infer F)?]
78
- ? [PrimitiveMain<F>?]
79
- : T extends [(infer F)?, ...infer Rest extends readonly any[]]
80
- ? [PrimitiveMain<F>?, ...PrimitiveTuple<Rest>]
81
- : [];
82
-
83
- type ValueOf<Instance> = IsValueOf<Instance, Boolean> extends true
84
- ? boolean
85
- : IsValueOf<Instance, Number> extends true
86
- ? number
87
- : IsValueOf<Instance, String> extends true
88
- ? string
89
- : Instance;
90
-
91
- type NativeClass =
92
- | Set<any>
93
- | Map<any, any>
94
- | WeakSet<any>
95
- | WeakMap<any, any>
96
- | Uint8Array
97
- | Uint8ClampedArray
98
- | Uint16Array
99
- | Uint32Array
100
- | BigUint64Array
101
- | Int8Array
102
- | Int16Array
103
- | Int32Array
104
- | BigInt64Array
105
- | Float32Array
106
- | Float64Array
107
- | ArrayBuffer
108
- | SharedArrayBuffer
109
- | DataView;
110
-
111
- type IsTuple<T extends readonly any[] | { length: number }> = [T] extends [
112
- never,
113
- ]
114
- ? false
115
- : T extends readonly any[]
116
- ? number extends T["length"]
117
- ? false
118
- : true
119
- : false;
120
-
121
- type IsValueOf<Instance, Object extends IValueOf<any>> = Instance extends Object
122
- ? Object extends IValueOf<infer U>
123
- ? Instance extends U
124
- ? false
125
- : true // not Primitive, but Object
126
- : false // cannot be
127
- : false;
128
-
129
- interface IValueOf<T> {
130
- valueOf(): T;
131
- }
132
-
133
- interface IJsonable<T> {
134
- toJSON(): T;
135
- }
1
+ /**
2
+ * Primitive type of JSON.
3
+ *
4
+ * `Primitive<T>` is a TMP (Type Meta Programming) type which converts
5
+ * its argument as a primitive type within framework JSON.
6
+ *
7
+ * If the target argument is a built-in class which returns its origin primitive type
8
+ * through the `valueOf()` method like the `String` or `Number`, its return type would
9
+ * be the `string` or `number`. Otherwise, the built-in class does not have the
10
+ * `valueOf()` method, the return type would be an empty object (`{}`).
11
+ *
12
+ * Otherwise, the target argument is a type of custom class, all of its custom method
13
+ * would be erased and its prototype would be changed to the primitive `object`.
14
+ * Therefore, return type of the TMP type finally be the primitive object.
15
+ *
16
+ * In addition, if the target argument is a type of custom class and it has a special
17
+ * method `toJSON()`, return type of this `Primitive` would be not `Primitive<Instance>`
18
+ * but `Primitive<ReturnType<Instance.toJSON>>`.
19
+ *
20
+ * Before | After
21
+ * ------------------------|----------------------------------------
22
+ * `Boolean` | `boolean`
23
+ * `Number` | `number`
24
+ * `String` | `string`
25
+ * `Class` | `object`
26
+ * `Class` with `toJSON()` | `Primitive<ReturnType<Class.toJSON>>`
27
+ * Native Class | `{}`
28
+ * Others | No change
29
+ *
30
+ * @template Instance Target argument type.
31
+ * @author Jenogho Nam - https://github.com/samchon
32
+ * @author Kyungsu Kang - https://github.com/kakasoo
33
+ * @author Michael - https://github.com/8471919
34
+ */
35
+ export type Primitive<T> = Equal<T, PrimitiveMain<T>> extends true
36
+ ? T
37
+ : PrimitiveMain<T>;
38
+
39
+ type Equal<X, Y> = X extends Y ? (Y extends X ? true : false) : false;
40
+
41
+ type PrimitiveMain<Instance> = Instance extends [never]
42
+ ? never // (special trick for jsonable | null) type
43
+ : ValueOf<Instance> extends bigint
44
+ ? never
45
+ : ValueOf<Instance> extends boolean | number | string
46
+ ? ValueOf<Instance>
47
+ : Instance extends Function
48
+ ? never
49
+ : ValueOf<Instance> extends object
50
+ ? Instance extends object
51
+ ? Instance extends NativeClass
52
+ ? {}
53
+ : Instance extends IJsonable<infer Raw>
54
+ ? ValueOf<Raw> extends object
55
+ ? Raw extends object
56
+ ? PrimitiveObject<Raw> // object would be primitified
57
+ : never // cannot be
58
+ : ValueOf<Raw> // atomic value
59
+ : PrimitiveObject<Instance> // object would be primitified
60
+ : never // cannot be
61
+ : ValueOf<Instance>;
62
+
63
+ type PrimitiveObject<Instance extends object> = Instance extends Array<infer T>
64
+ ? IsTuple<Instance> extends true
65
+ ? PrimitiveTuple<Instance>
66
+ : PrimitiveMain<T>[]
67
+ : {
68
+ [P in keyof Instance]: PrimitiveMain<Instance[P]>;
69
+ };
70
+
71
+ type PrimitiveTuple<T extends readonly any[]> = T extends []
72
+ ? []
73
+ : T extends [infer F]
74
+ ? [PrimitiveMain<F>]
75
+ : T extends [infer F, ...infer Rest extends readonly any[]]
76
+ ? [PrimitiveMain<F>, ...PrimitiveTuple<Rest>]
77
+ : T extends [(infer F)?]
78
+ ? [PrimitiveMain<F>?]
79
+ : T extends [(infer F)?, ...infer Rest extends readonly any[]]
80
+ ? [PrimitiveMain<F>?, ...PrimitiveTuple<Rest>]
81
+ : [];
82
+
83
+ type ValueOf<Instance> = IsValueOf<Instance, Boolean> extends true
84
+ ? boolean
85
+ : IsValueOf<Instance, Number> extends true
86
+ ? number
87
+ : IsValueOf<Instance, String> extends true
88
+ ? string
89
+ : Instance;
90
+
91
+ type NativeClass =
92
+ | Set<any>
93
+ | Map<any, any>
94
+ | WeakSet<any>
95
+ | WeakMap<any, any>
96
+ | Uint8Array
97
+ | Uint8ClampedArray
98
+ | Uint16Array
99
+ | Uint32Array
100
+ | BigUint64Array
101
+ | Int8Array
102
+ | Int16Array
103
+ | Int32Array
104
+ | BigInt64Array
105
+ | Float32Array
106
+ | Float64Array
107
+ | ArrayBuffer
108
+ | SharedArrayBuffer
109
+ | DataView;
110
+
111
+ type IsTuple<T extends readonly any[] | { length: number }> = [T] extends [
112
+ never,
113
+ ]
114
+ ? false
115
+ : T extends readonly any[]
116
+ ? number extends T["length"]
117
+ ? false
118
+ : true
119
+ : false;
120
+
121
+ type IsValueOf<Instance, Object extends IValueOf<any>> = Instance extends Object
122
+ ? Object extends IValueOf<infer U>
123
+ ? Instance extends U
124
+ ? false
125
+ : true // not Primitive, but Object
126
+ : false // cannot be
127
+ : false;
128
+
129
+ interface IValueOf<T> {
130
+ valueOf(): T;
131
+ }
132
+
133
+ interface IJsonable<T> {
134
+ toJSON(): T;
135
+ }