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
@@ -61,7 +61,12 @@ var TemplateFactory_1 = require("../factories/TemplateFactory");
61
61
  var TypeFactory_1 = require("../factories/TypeFactory");
62
62
  var Metadata_1 = require("../schemas/metadata/Metadata");
63
63
  var MetadataArray_1 = require("../schemas/metadata/MetadataArray");
64
+ var MetadataArrayType_1 = require("../schemas/metadata/MetadataArrayType");
65
+ var MetadataAtomic_1 = require("../schemas/metadata/MetadataAtomic");
64
66
  var MetadataTuple_1 = require("../schemas/metadata/MetadataTuple");
67
+ var MetadataTupleType_1 = require("../schemas/metadata/MetadataTupleType");
68
+ var TransformerError_1 = require("../transformers/TransformerError");
69
+ var Escaper_1 = require("../utils/Escaper");
65
70
  var FunctionImporeter_1 = require("./helpers/FunctionImporeter");
66
71
  var RandomJoiner_1 = require("./helpers/RandomJoiner");
67
72
  var RandomRanger_1 = require("./helpers/RandomRanger");
@@ -74,17 +79,21 @@ var RandomProgrammer;
74
79
  var importer = new FunctionImporeter_1.FunctionImporter(modulo.getText());
75
80
  return function (type, name) {
76
81
  var collection = new MetadataCollection_1.MetadataCollection();
77
- var meta = MetadataFactory_1.MetadataFactory.analyze(project.checker)({
82
+ var result = MetadataFactory_1.MetadataFactory.analyze(project.checker)({
78
83
  escape: false,
79
84
  constant: true,
80
85
  absorb: true,
81
86
  validate: function (meta) {
87
+ var output = [];
82
88
  if (meta.natives.some(function (n) { return n === "WeakSet"; }))
83
- throw new Error("Error on ".concat(modulo.getText(), "(): WeakSet is not supported."));
89
+ output.push("WeakSet is not supported.");
84
90
  else if (meta.natives.some(function (n) { return n === "WeakMap"; }))
85
- throw new Error("Error on ".concat(modulo.getText(), "(): WeakMap is not supported."));
91
+ output.push("WeakMap is not supported.");
92
+ return output;
86
93
  },
87
94
  })(collection)(type);
95
+ if (result.success === false)
96
+ throw TransformerError_1.TransformerError.from("typia.".concat(importer.method))(result.errors);
88
97
  var functions = {
89
98
  objects: write_object_functions(importer)(collection),
90
99
  arrays: write_array_functions(importer)(collection),
@@ -93,7 +102,7 @@ var RandomProgrammer;
93
102
  var output = decode(importer)({
94
103
  function: false,
95
104
  recursive: false,
96
- })(meta, [], []);
105
+ })(result.data);
97
106
  return typescript_1.default.factory.createArrowFunction(undefined, undefined, [
98
107
  IdentifierFactory_1.IdentifierFactory.parameter("generator", typescript_1.default.factory.createTypeReferenceNode("Partial<typia.IRandomGenerator>"), init !== null && init !== void 0 ? init : typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.QuestionToken)),
99
108
  ], typescript_1.default.factory.createTypeReferenceNode("typia.Resolved<".concat(name !== null && name !== void 0 ? name : TypeFactory_1.TypeFactory.getFullName(project.checker)(type), ">")), undefined, typescript_1.default.factory.createBlock(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read(importer.declare(modulo)), false), __read(functions.objects), false), __read(functions.arrays), false), __read(functions.tuples), false), [
@@ -132,7 +141,7 @@ var RandomProgrammer;
132
141
  }))({
133
142
  recursive: true,
134
143
  function: true,
135
- })(typescript_1.default.factory.createIdentifier("length"))(array.value, [], [])));
144
+ })(typescript_1.default.factory.createIdentifier("length"))(array.value)));
136
145
  });
137
146
  };
138
147
  };
@@ -148,13 +157,13 @@ var RandomProgrammer;
148
157
  ], TypeFactory_1.TypeFactory.keyword("any"), undefined, RandomJoiner_1.RandomJoiner.tuple(decode(importer)({
149
158
  function: true,
150
159
  recursive: true,
151
- }))(tuple.elements, [], [])));
160
+ }))(tuple.elements)));
152
161
  });
153
162
  };
154
163
  };
155
164
  var decode = function (importer) {
156
165
  return function (explore) {
157
- return function (meta, tags, comments) {
166
+ return function (meta) {
158
167
  var e_1, _a, e_2, _b, e_3, _c, e_4, _d, e_5, _e, e_6, _f, e_7, _g, e_8, _h, e_9, _j, e_10, _k;
159
168
  var expressions = [];
160
169
  if (meta.any)
@@ -203,15 +212,15 @@ var RandomProgrammer;
203
212
  }
204
213
  try {
205
214
  for (var _s = __values(meta.atomics), _t = _s.next(); !_t.done; _t = _s.next()) {
206
- var a = _t.value;
207
- if (a.type === "boolean")
215
+ var atomic = _t.value;
216
+ if (atomic.type === "boolean")
208
217
  expressions.push(decode_boolean(importer));
209
- else if (a.type === "number")
210
- expressions.push(decode_number(importer)(tags, comments));
211
- else if (a.type === "string")
212
- expressions.push(decode_string(importer)(tags, comments));
213
- else if (a.type === "bigint")
214
- expressions.push(decode_bigint(importer)(tags, comments));
218
+ else if (atomic.type === "number")
219
+ expressions.push.apply(expressions, __spreadArray([], __read(decode_number(importer)(atomic)), false));
220
+ else if (atomic.type === "string")
221
+ expressions.push.apply(expressions, __spreadArray([], __read(decode_string(importer)(atomic)), false));
222
+ else if (atomic.type === "bigint")
223
+ expressions.push.apply(expressions, __spreadArray([], __read(decode_bigint(importer)(atomic)), false));
215
224
  }
216
225
  }
217
226
  catch (e_4_1) { e_4 = { error: e_4_1 }; }
@@ -222,11 +231,11 @@ var RandomProgrammer;
222
231
  finally { if (e_4) throw e_4.error; }
223
232
  }
224
233
  if (meta.escaped)
225
- expressions.push(decode(importer)(explore)(meta.escaped.returns, tags, comments));
234
+ expressions.push(decode(importer)(explore)(meta.escaped.returns));
226
235
  try {
227
236
  for (var _u = __values(meta.arrays), _v = _u.next(); !_v.done; _v = _u.next()) {
228
237
  var array = _v.value;
229
- expressions.push(decode_array(importer)(explore)(array, tags, comments));
238
+ expressions.push.apply(expressions, __spreadArray([], __read(decode_array(importer)(explore)(array)), false));
230
239
  }
231
240
  }
232
241
  catch (e_5_1) { e_5 = { error: e_5_1 }; }
@@ -239,7 +248,7 @@ var RandomProgrammer;
239
248
  try {
240
249
  for (var _w = __values(meta.tuples), _x = _w.next(); !_x.done; _x = _w.next()) {
241
250
  var tuple = _x.value;
242
- expressions.push(decode_tuple(importer)(explore)(tuple, tags, comments));
251
+ expressions.push(decode_tuple(importer)(explore)(tuple));
243
252
  }
244
253
  }
245
254
  catch (e_6_1) { e_6 = { error: e_6_1 }; }
@@ -265,7 +274,7 @@ var RandomProgrammer;
265
274
  try {
266
275
  for (var _0 = __values(meta.natives), _1 = _0.next(); !_1.done; _1 = _0.next()) {
267
276
  var native = _1.value;
268
- expressions.push(decode_native(importer)(native, tags, comments));
277
+ expressions.push(decode_native(importer)(native));
269
278
  }
270
279
  }
271
280
  catch (e_8_1) { e_8 = { error: e_8_1 }; }
@@ -278,7 +287,7 @@ var RandomProgrammer;
278
287
  try {
279
288
  for (var _2 = __values(meta.sets), _3 = _2.next(); !_3.done; _3 = _2.next()) {
280
289
  var set = _3.value;
281
- expressions.push(decode_set(importer)(explore)(set, tags, comments));
290
+ expressions.push(decode_set(importer)(explore)(set));
282
291
  }
283
292
  }
284
293
  catch (e_9_1) { e_9 = { error: e_9_1 }; }
@@ -291,7 +300,7 @@ var RandomProgrammer;
291
300
  try {
292
301
  for (var _4 = __values(meta.maps), _5 = _4.next(); !_5.done; _5 = _4.next()) {
293
302
  var map = _5.value;
294
- expressions.push(decode_map(importer)(explore)(map, tags, comments));
303
+ expressions.push(decode_map(importer)(explore)(map));
295
304
  }
296
305
  }
297
306
  catch (e_10_1) { e_10 = { error: e_10_1 }; }
@@ -326,143 +335,150 @@ var RandomProgrammer;
326
335
  var decode_template = function (importer) {
327
336
  return function (explore) {
328
337
  return function (template) {
329
- return TemplateFactory_1.TemplateFactory.generate(template.map(function (meta) { return decode(importer)(explore)(meta, [], []); }));
338
+ return TemplateFactory_1.TemplateFactory.generate(template.map(function (meta) { return decode(importer)(explore)(meta); }));
330
339
  };
331
340
  };
332
341
  };
333
342
  var decode_number = function (importer) {
334
- return function (tags, comments) {
335
- var type = tags.find(function (t) {
336
- return t.kind === "type" &&
337
- (t.value === "int" ||
338
- t.value === "int32" ||
339
- t.value === "int64");
340
- })
341
- ? "int"
342
- : tags.find(function (t) {
343
+ return function (atomic) {
344
+ return (atomic.tags.length ? atomic.tags : [[]]).map(function (tags) {
345
+ var type = tags.find(function (t) {
343
346
  return t.kind === "type" &&
344
- (t.value === "uint" ||
345
- t.value === "uint32" ||
346
- t.value === "uint64");
347
+ (t.value === "int32" || t.value === "int64");
347
348
  })
348
- ? "uint"
349
- : "double";
350
- return (0, random_custom_1.random_custom)(COALESCE(importer))("number")(comments)(RandomRanger_1.RandomRanger.number({
351
- type: type,
352
- transform: function (value) {
353
- return typescript_1.default.factory.createNumericLiteral(value);
354
- },
355
- setter: function (args) {
356
- return typescript_1.default.factory.createCallExpression(type === "double" &&
357
- tags.every(function (t) {
358
- return t.kind !== "multipleOf" &&
359
- t.kind !== "step";
360
- })
361
- ? COALESCE(importer)("number")
362
- : COALESCE(importer)("integer"), undefined, args.map(function (val) {
363
- return typescript_1.default.factory.createNumericLiteral(val);
364
- }));
365
- },
366
- })({
367
- minimum: 0,
368
- maximum: 100,
369
- gap: 10,
370
- })(tags));
349
+ ? "int"
350
+ : tags.find(function (t) {
351
+ return t.kind === "type" &&
352
+ (t.value === "uint32" || t.value === "uint64");
353
+ })
354
+ ? "uint"
355
+ : "double";
356
+ var multiply = tags.find(function (t) { return t.kind === "multipleOf"; });
357
+ return (0, random_custom_1.random_custom)(COALESCE(importer))("number")(tags)(RandomRanger_1.RandomRanger.number({
358
+ type: type,
359
+ transform: function (value) {
360
+ return typescript_1.default.factory.createNumericLiteral(value);
361
+ },
362
+ setter: function (args) {
363
+ return typescript_1.default.factory.createCallExpression(type !== "double" || multiply !== undefined
364
+ ? COALESCE(importer)("integer")
365
+ : COALESCE(importer)("number"), undefined, args.map(function (val) {
366
+ return typescript_1.default.factory.createNumericLiteral(val);
367
+ }));
368
+ },
369
+ })({
370
+ minimum: 0,
371
+ maximum: 100,
372
+ gap: 10,
373
+ })(tags));
374
+ });
371
375
  };
372
376
  };
373
377
  var decode_bigint = function (importer) {
374
- return function (tags, comments) {
375
- return (0, random_custom_1.random_custom)(COALESCE(importer))("bigint")(comments)(RandomRanger_1.RandomRanger.number({
376
- type: tags.find(function (t) {
377
- return t.kind === "type" &&
378
- (t.value === "uint" || t.value === "uint64");
379
- })
380
- ? "uint"
381
- : "int",
382
- transform: function (value) { return ExpressionFactory_1.ExpressionFactory.bigint(value); },
383
- setter: function (args) {
384
- return typescript_1.default.factory.createCallExpression(COALESCE(importer)("bigint"), undefined, args.map(function (value) {
385
- return ExpressionFactory_1.ExpressionFactory.bigint(value);
386
- }));
387
- },
388
- })({
389
- minimum: 0,
390
- maximum: 100,
391
- gap: 10,
392
- })(tags));
378
+ return function (atomic) {
379
+ return (atomic.tags.length ? atomic.tags : [[]]).map(function (tags) {
380
+ return (0, random_custom_1.random_custom)(COALESCE(importer))("bigint")(tags)(RandomRanger_1.RandomRanger.number({
381
+ type: tags.find(function (t) {
382
+ return t.kind === "type" &&
383
+ (t.value === "uint" || t.value === "uint64");
384
+ })
385
+ ? "uint"
386
+ : "int",
387
+ transform: function (value) { return ExpressionFactory_1.ExpressionFactory.bigint(value); },
388
+ setter: function (args) {
389
+ return typescript_1.default.factory.createCallExpression(COALESCE(importer)("bigint"), undefined, args.map(function (value) {
390
+ return ExpressionFactory_1.ExpressionFactory.bigint(value);
391
+ }));
392
+ },
393
+ })({
394
+ minimum: 0,
395
+ maximum: 100,
396
+ gap: 10,
397
+ })(tags));
398
+ });
393
399
  };
394
400
  };
395
401
  var decode_string = function (importer) {
396
- return function (tags, comments) {
397
- return (0, random_custom_1.random_custom)(COALESCE(importer))("string")(comments)((function () {
398
- var e_11, _a;
399
- try {
400
- for (var tags_1 = __values(tags), tags_1_1 = tags_1.next(); !tags_1_1.done; tags_1_1 = tags_1.next()) {
401
- var t = tags_1_1.value;
402
- if (t.kind === "format")
403
- return typescript_1.default.factory.createCallExpression(COALESCE(importer)(t.value), undefined, undefined);
404
- else if (t.kind === "pattern")
405
- return typescript_1.default.factory.createCallExpression(COALESCE(importer)("pattern"), undefined, [typescript_1.default.factory.createIdentifier("/".concat(t.value, "/"))]);
406
- }
407
- }
408
- catch (e_11_1) { e_11 = { error: e_11_1 }; }
409
- finally {
402
+ return function (atomic) {
403
+ return (atomic.tags.length ? atomic.tags : [[]]).map(function (tags) {
404
+ return (0, random_custom_1.random_custom)(COALESCE(importer))("string")(tags)((function () {
405
+ var e_11, _a;
410
406
  try {
411
- if (tags_1_1 && !tags_1_1.done && (_a = tags_1.return)) _a.call(tags_1);
407
+ for (var tags_1 = __values(tags), tags_1_1 = tags_1.next(); !tags_1_1.done; tags_1_1 = tags_1.next()) {
408
+ var t = tags_1_1.value;
409
+ if (t.kind === "format")
410
+ return typescript_1.default.factory.createCallExpression(COALESCE(importer)(t.value === "date-time"
411
+ ? "datetime"
412
+ : t.value), undefined, undefined);
413
+ else if (t.kind === "pattern")
414
+ return typescript_1.default.factory.createCallExpression(COALESCE(importer)("pattern"), undefined, [
415
+ typescript_1.default.factory.createIdentifier("/".concat(t.value, "/")),
416
+ ]);
417
+ }
412
418
  }
413
- finally { if (e_11) throw e_11.error; }
414
- }
415
- var tail = RandomRanger_1.RandomRanger.length(COALESCE(importer))({
416
- minimum: 5,
417
- maximum: 25,
418
- gap: 5,
419
- })({
420
- fixed: "length",
421
- minimum: "minLength",
422
- maximum: "maxLength",
423
- })(tags);
424
- return typescript_1.default.factory.createCallExpression(COALESCE(importer)("string"), undefined, tail ? [tail] : undefined);
425
- })());
419
+ catch (e_11_1) { e_11 = { error: e_11_1 }; }
420
+ finally {
421
+ try {
422
+ if (tags_1_1 && !tags_1_1.done && (_a = tags_1.return)) _a.call(tags_1);
423
+ }
424
+ finally { if (e_11) throw e_11.error; }
425
+ }
426
+ var tail = RandomRanger_1.RandomRanger.length(COALESCE(importer))({
427
+ minimum: 5,
428
+ maximum: 25,
429
+ gap: 5,
430
+ })({
431
+ minimum: "minLength",
432
+ maximum: "maxLength",
433
+ })(tags);
434
+ return typescript_1.default.factory.createCallExpression(COALESCE(importer)("string"), undefined, tail ? [tail] : undefined);
435
+ })());
436
+ });
426
437
  };
427
438
  };
428
439
  var decode_array = function (importer) {
429
440
  return function (explore) {
430
- return function (array, tags, comments) {
431
- var length = RandomRanger_1.RandomRanger.length(COALESCE(importer))({
432
- minimum: 0,
433
- maximum: 3,
434
- gap: 3,
435
- })({
436
- fixed: "items",
437
- minimum: "minItems",
438
- maximum: "maxItems",
439
- })(tags);
440
- if (array.recursive)
441
- return typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier(importer.useLocal(PREFIX.array(array.index))), undefined, [
442
- length !== null && length !== void 0 ? length : COALESCE(importer)("length"),
443
- typescript_1.default.factory.createTrue(),
444
- explore.recursive
445
- ? typescript_1.default.factory.createAdd(typescript_1.default.factory.createNumericLiteral(1), typescript_1.default.factory.createIdentifier("_depth"))
446
- : typescript_1.default.factory.createNumericLiteral(0),
447
- ]);
448
- var expr = RandomJoiner_1.RandomJoiner.array(COALESCE(importer))(decode(importer)(explore))(explore)(length)(array.value, tags, comments);
449
- return explore.recursive
450
- ? typescript_1.default.factory.createConditionalExpression(typescript_1.default.factory.createLogicalAnd(typescript_1.default.factory.createIdentifier("_recursive"), typescript_1.default.factory.createLessThan(typescript_1.default.factory.createNumericLiteral(5), typescript_1.default.factory.createIdentifier("_depth"))), undefined, typescript_1.default.factory.createIdentifier("[]"), undefined, expr)
451
- : expr;
441
+ return function (array) {
442
+ var lengths = (array.tags.length ? array.tags : [[]]).map(function (tags) {
443
+ return RandomRanger_1.RandomRanger.length(COALESCE(importer))({
444
+ minimum: 0,
445
+ maximum: 3,
446
+ gap: 3,
447
+ })({
448
+ minimum: "minItems",
449
+ maximum: "maxItems",
450
+ })(tags);
451
+ });
452
+ if (array.type.recursive)
453
+ return lengths.map(function (len) {
454
+ return typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier(importer.useLocal(PREFIX.array(array.type.index))), undefined, [
455
+ len !== null && len !== void 0 ? len : COALESCE(importer)("length"),
456
+ typescript_1.default.factory.createTrue(),
457
+ explore.recursive
458
+ ? typescript_1.default.factory.createAdd(typescript_1.default.factory.createNumericLiteral(1), typescript_1.default.factory.createIdentifier("_depth"))
459
+ : typescript_1.default.factory.createNumericLiteral(0),
460
+ ]);
461
+ });
462
+ return lengths.map(function (len) {
463
+ var expr = RandomJoiner_1.RandomJoiner.array(COALESCE(importer))(decode(importer)(explore))(explore)(len)(array.type.value);
464
+ return explore.recursive
465
+ ? typescript_1.default.factory.createConditionalExpression(typescript_1.default.factory.createLogicalAnd(typescript_1.default.factory.createIdentifier("_recursive"), typescript_1.default.factory.createLessThan(typescript_1.default.factory.createNumericLiteral(5), typescript_1.default.factory.createIdentifier("_depth"))), undefined, typescript_1.default.factory.createIdentifier("[]"), undefined, expr)
466
+ : expr;
467
+ });
452
468
  };
453
469
  };
454
470
  };
455
471
  var decode_tuple = function (importer) {
456
472
  return function (explore) {
457
- return function (tuple, tags, comments) {
458
- return tuple.recursive
459
- ? typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier(importer.useLocal(PREFIX.tuple(tuple.index))), undefined, [
473
+ return function (tuple) {
474
+ return tuple.type.recursive
475
+ ? typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier(importer.useLocal(PREFIX.tuple(tuple.type.index))), undefined, [
460
476
  typescript_1.default.factory.createTrue(),
461
477
  explore.recursive
462
478
  ? typescript_1.default.factory.createAdd(typescript_1.default.factory.createNumericLiteral(1), typescript_1.default.factory.createIdentifier("_depth"))
463
479
  : typescript_1.default.factory.createNumericLiteral(0),
464
480
  ])
465
- : RandomJoiner_1.RandomJoiner.tuple(decode(importer)(explore))(tuple.elements, tags, comments);
481
+ : RandomJoiner_1.RandomJoiner.tuple(decode(importer)(explore))(tuple.type.elements);
466
482
  };
467
483
  };
468
484
  };
@@ -482,54 +498,72 @@ var RandomProgrammer;
482
498
  };
483
499
  var decode_set = function (importer) {
484
500
  return function (explore) {
485
- return function (meta, tags, comments) {
501
+ return function (meta) {
486
502
  return typescript_1.default.factory.createNewExpression(typescript_1.default.factory.createIdentifier("Set"), undefined, [
487
503
  decode_array(importer)(explore)(MetadataArray_1.MetadataArray.create({
488
- value: meta,
489
- recursive: false,
490
- index: null,
491
- nullables: [],
492
- name: "Set<".concat(meta.getName(), ">"),
493
- }), tags, comments),
504
+ tags: [],
505
+ type: MetadataArrayType_1.MetadataArrayType.create({
506
+ value: meta,
507
+ recursive: false,
508
+ index: null,
509
+ nullables: [],
510
+ name: "Set<".concat(meta.getName(), ">"),
511
+ }),
512
+ }))[0],
494
513
  ]);
495
514
  };
496
515
  };
497
516
  };
498
517
  var decode_map = function (importer) {
499
518
  return function (explore) {
500
- return function (m, tags, comments) {
519
+ return function (map) {
501
520
  return typescript_1.default.factory.createNewExpression(typescript_1.default.factory.createIdentifier("Map"), undefined, [
502
521
  decode_array(importer)(explore)(MetadataArray_1.MetadataArray.create({
503
- name: "Map<".concat(m.key.getName(), ", ").concat(m.value.getName(), ">"),
504
- index: null,
505
- recursive: false,
506
- nullables: [],
507
- value: Metadata_1.Metadata.create(__assign(__assign({}, Metadata_1.Metadata.initialize()), { tuples: [
508
- (function () {
509
- var tuple = MetadataTuple_1.MetadataTuple.create({
510
- name: "[".concat(m.key.getName(), ", ").concat(m.value.getName(), "]"),
511
- index: null,
512
- recursive: false,
513
- nullables: [],
514
- elements: [m.key, m.value],
515
- });
516
- tuple.of_map = true;
517
- return tuple;
518
- })(),
519
- ] })),
520
- }), tags, comments),
522
+ tags: [],
523
+ type: MetadataArrayType_1.MetadataArrayType.create({
524
+ name: "Map<".concat(map.key.getName(), ", ").concat(map.value.getName(), ">"),
525
+ index: null,
526
+ recursive: false,
527
+ nullables: [],
528
+ value: Metadata_1.Metadata.create(__assign(__assign({}, Metadata_1.Metadata.initialize()), { tuples: [
529
+ (function () {
530
+ var type = MetadataTupleType_1.MetadataTupleType.create({
531
+ name: "[".concat(map.key.getName(), ", ").concat(map.value.getName(), "]"),
532
+ index: null,
533
+ recursive: false,
534
+ nullables: [],
535
+ elements: [
536
+ map.key,
537
+ map.value,
538
+ ],
539
+ });
540
+ type.of_map = true;
541
+ return MetadataTuple_1.MetadataTuple.create({
542
+ type: type,
543
+ tags: [],
544
+ });
545
+ })(),
546
+ ] })),
547
+ }),
548
+ }))[0],
521
549
  ]);
522
550
  };
523
551
  };
524
552
  };
525
553
  var decode_native = function (importer) {
526
- return function (type, tags, comments) {
554
+ return function (type) {
527
555
  if (type === "Boolean")
528
556
  return decode_boolean(importer);
529
557
  else if (type === "Number")
530
- return decode_number(importer)(tags, comments);
558
+ return decode_number(importer)(MetadataAtomic_1.MetadataAtomic.create({
559
+ type: "number",
560
+ tags: [],
561
+ }))[0];
531
562
  else if (type === "String")
532
- return decode_string(importer)(tags, comments);
563
+ return decode_string(importer)(MetadataAtomic_1.MetadataAtomic.create({
564
+ type: "string",
565
+ tags: [],
566
+ }))[0];
533
567
  else if (type === "Date")
534
568
  return decode_native_date(importer);
535
569
  else if (type === "Uint8Array" ||
@@ -631,6 +665,8 @@ var PREFIX = {
631
665
  tuple: function (i) { return "$rt".concat(i); },
632
666
  };
633
667
  var COALESCE = function (importer) { return function (name) {
634
- return ExpressionFactory_1.ExpressionFactory.coalesce(typescript_1.default.factory.createPropertyAccessChain(typescript_1.default.factory.createIdentifier("generator"), typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.QuestionDotToken), typescript_1.default.factory.createIdentifier(name)))(IdentifierFactory_1.IdentifierFactory.access(importer.use("generator"))(name));
668
+ return ExpressionFactory_1.ExpressionFactory.coalesce(Escaper_1.Escaper.variable(name)
669
+ ? typescript_1.default.factory.createPropertyAccessChain(typescript_1.default.factory.createIdentifier("generator"), typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.QuestionDotToken), typescript_1.default.factory.createIdentifier(name))
670
+ : typescript_1.default.factory.createElementAccessChain(typescript_1.default.factory.createIdentifier("generator"), typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.QuestionDotToken), typescript_1.default.factory.createStringLiteral(name)))(IdentifierFactory_1.IdentifierFactory.access(importer.use("generator"))(name));
635
671
  }; };
636
672
  //# sourceMappingURL=RandomProgrammer.js.map