typia 3.8.6 → 4.0.0-dev.20230517

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 (509) hide show
  1. package/README.md +1 -0
  2. package/lib/executable/TypiaGenerateWizard.js +1 -1
  3. package/lib/executable/TypiaGenerateWizard.js.map +1 -1
  4. package/lib/executable/TypiaSetupWizard.js +1 -1
  5. package/lib/executable/TypiaSetupWizard.js.map +1 -1
  6. package/lib/executable/setup/ArgumentParser.js +1 -1
  7. package/lib/executable/setup/ArgumentParser.js.map +1 -1
  8. package/lib/executable/setup/CommandExecutor.js +1 -1
  9. package/lib/executable/setup/CommandExecutor.js.map +1 -1
  10. package/lib/executable/setup/FileRetriever.js +1 -1
  11. package/lib/executable/setup/FileRetriever.js.map +1 -1
  12. package/lib/executable/setup/PluginConfigurator.js +1 -1
  13. package/lib/executable/setup/PluginConfigurator.js.map +1 -1
  14. package/lib/factories/CommentFactory.d.ts +3 -3
  15. package/lib/factories/CommentFactory.js +1 -1
  16. package/lib/factories/CommentFactory.js.map +1 -1
  17. package/lib/factories/ExpressionFactory.d.ts +1 -1
  18. package/lib/factories/ExpressionFactory.js +10 -10
  19. package/lib/factories/ExpressionFactory.js.map +1 -1
  20. package/lib/factories/IdentifierFactory.d.ts +1 -1
  21. package/lib/factories/IdentifierFactory.js +14 -14
  22. package/lib/factories/IdentifierFactory.js.map +1 -1
  23. package/lib/factories/LiteralFactory.d.ts +1 -1
  24. package/lib/factories/LiteralFactory.js +9 -9
  25. package/lib/factories/LiteralFactory.js.map +1 -1
  26. package/lib/factories/MetadataCollection.d.ts +1 -1
  27. package/lib/factories/MetadataCollection.js +8 -7
  28. package/lib/factories/MetadataCollection.js.map +1 -1
  29. package/lib/factories/MetadataFactory.d.ts +1 -1
  30. package/lib/factories/MetadataFactory.js +1 -1
  31. package/lib/factories/MetadataFactory.js.map +1 -1
  32. package/lib/factories/MetadataTagFactory.d.ts +2 -2
  33. package/lib/factories/MetadataTagFactory.js +1 -1
  34. package/lib/factories/MetadataTagFactory.js.map +1 -1
  35. package/lib/factories/StatementFactory.d.ts +1 -1
  36. package/lib/factories/StatementFactory.js +7 -6
  37. package/lib/factories/StatementFactory.js.map +1 -1
  38. package/lib/factories/TemplateFactory.d.ts +1 -1
  39. package/lib/factories/TemplateFactory.js +10 -10
  40. package/lib/factories/TemplateFactory.js.map +1 -1
  41. package/lib/factories/TypeFactory.d.ts +1 -1
  42. package/lib/factories/TypeFactory.js +28 -22
  43. package/lib/factories/TypeFactory.js.map +1 -1
  44. package/lib/factories/ValueFactory.d.ts +1 -1
  45. package/lib/factories/ValueFactory.js +7 -7
  46. package/lib/factories/ValueFactory.js.map +1 -1
  47. package/lib/factories/internal/metadata/MetadataHelper.js +1 -1
  48. package/lib/factories/internal/metadata/MetadataHelper.js.map +1 -1
  49. package/lib/factories/internal/metadata/emplace_metadata_object.d.ts +1 -1
  50. package/lib/factories/internal/metadata/emplace_metadata_object.js +41 -34
  51. package/lib/factories/internal/metadata/emplace_metadata_object.js.map +1 -1
  52. package/lib/factories/internal/metadata/explore_metadata.d.ts +1 -1
  53. package/lib/factories/internal/metadata/iterate_metadata.d.ts +1 -1
  54. package/lib/factories/internal/metadata/iterate_metadata.js +2 -1
  55. package/lib/factories/internal/metadata/iterate_metadata.js.map +1 -1
  56. package/lib/factories/internal/metadata/iterate_metadata_array.d.ts +1 -1
  57. package/lib/factories/internal/metadata/iterate_metadata_array.js +6 -1
  58. package/lib/factories/internal/metadata/iterate_metadata_array.js.map +1 -1
  59. package/lib/factories/internal/metadata/iterate_metadata_atomic.d.ts +1 -1
  60. package/lib/factories/internal/metadata/iterate_metadata_atomic.js +10 -10
  61. package/lib/factories/internal/metadata/iterate_metadata_atomic.js.map +1 -1
  62. package/lib/factories/internal/metadata/iterate_metadata_coalesce.d.ts +1 -1
  63. package/lib/factories/internal/metadata/iterate_metadata_coalesce.js +8 -8
  64. package/lib/factories/internal/metadata/iterate_metadata_coalesce.js.map +1 -1
  65. package/lib/factories/internal/metadata/iterate_metadata_constant.d.ts +1 -1
  66. package/lib/factories/internal/metadata/iterate_metadata_constant.js +5 -4
  67. package/lib/factories/internal/metadata/iterate_metadata_constant.js.map +1 -1
  68. package/lib/factories/internal/metadata/iterate_metadata_map.d.ts +1 -1
  69. package/lib/factories/internal/metadata/iterate_metadata_map.js +1 -1
  70. package/lib/factories/internal/metadata/iterate_metadata_map.js.map +1 -1
  71. package/lib/factories/internal/metadata/iterate_metadata_native.d.ts +1 -1
  72. package/lib/factories/internal/metadata/iterate_metadata_native.js +1 -1
  73. package/lib/factories/internal/metadata/iterate_metadata_native.js.map +1 -1
  74. package/lib/factories/internal/metadata/iterate_metadata_object.d.ts +1 -1
  75. package/lib/factories/internal/metadata/iterate_metadata_object.js +6 -5
  76. package/lib/factories/internal/metadata/iterate_metadata_object.js.map +1 -1
  77. package/lib/factories/internal/metadata/iterate_metadata_resolve.d.ts +1 -1
  78. package/lib/factories/internal/metadata/iterate_metadata_set.d.ts +1 -1
  79. package/lib/factories/internal/metadata/iterate_metadata_set.js +1 -1
  80. package/lib/factories/internal/metadata/iterate_metadata_set.js.map +1 -1
  81. package/lib/factories/internal/metadata/iterate_metadata_template.d.ts +1 -1
  82. package/lib/factories/internal/metadata/iterate_metadata_template.js +3 -3
  83. package/lib/factories/internal/metadata/iterate_metadata_template.js.map +1 -1
  84. package/lib/factories/internal/metadata/iterate_metadata_tuple.d.ts +1 -1
  85. package/lib/factories/internal/metadata/iterate_metadata_tuple.js +3 -3
  86. package/lib/factories/internal/metadata/iterate_metadata_tuple.js.map +1 -1
  87. package/lib/factories/internal/metadata/iterate_metadata_union.d.ts +1 -1
  88. package/lib/factories/internal/metadata/iterate_metadata_union.js +5 -4
  89. package/lib/factories/internal/metadata/iterate_metadata_union.js.map +1 -1
  90. package/lib/functional/Namespace.js +1 -1
  91. package/lib/functional/Namespace.js.map +1 -1
  92. package/lib/metadata/Metadata.js +1 -2
  93. package/lib/metadata/Metadata.js.map +1 -1
  94. package/lib/metadata/MetadataObject.js +1 -2
  95. package/lib/metadata/MetadataObject.js.map +1 -1
  96. package/lib/programmers/ApplicationProgrammer.js +1 -1
  97. package/lib/programmers/ApplicationProgrammer.js.map +1 -1
  98. package/lib/programmers/AssertCloneProgrammer.d.ts +1 -1
  99. package/lib/programmers/AssertCloneProgrammer.js +7 -7
  100. package/lib/programmers/AssertCloneProgrammer.js.map +1 -1
  101. package/lib/programmers/AssertParseProgrammer.d.ts +1 -1
  102. package/lib/programmers/AssertParseProgrammer.js +6 -6
  103. package/lib/programmers/AssertParseProgrammer.js.map +1 -1
  104. package/lib/programmers/AssertProgrammer.d.ts +1 -1
  105. package/lib/programmers/AssertProgrammer.js +37 -37
  106. package/lib/programmers/AssertProgrammer.js.map +1 -1
  107. package/lib/programmers/AssertPruneProgrammer.d.ts +1 -1
  108. package/lib/programmers/AssertPruneProgrammer.js +7 -7
  109. package/lib/programmers/AssertPruneProgrammer.js.map +1 -1
  110. package/lib/programmers/AssertStringifyProgrammer.d.ts +1 -1
  111. package/lib/programmers/AssertStringifyProgrammer.js +6 -6
  112. package/lib/programmers/AssertStringifyProgrammer.js.map +1 -1
  113. package/lib/programmers/CheckerProgrammer.d.ts +3 -2
  114. package/lib/programmers/CheckerProgrammer.js +26 -26
  115. package/lib/programmers/CheckerProgrammer.js.map +1 -1
  116. package/lib/programmers/CloneProgrammer.d.ts +1 -1
  117. package/lib/programmers/CloneProgrammer.js +21 -21
  118. package/lib/programmers/CloneProgrammer.js.map +1 -1
  119. package/lib/programmers/FeatureProgrammer.d.ts +4 -3
  120. package/lib/programmers/FeatureProgrammer.js +18 -18
  121. package/lib/programmers/FeatureProgrammer.js.map +1 -1
  122. package/lib/programmers/IsCloneProgrammer.d.ts +1 -1
  123. package/lib/programmers/IsCloneProgrammer.js +10 -10
  124. package/lib/programmers/IsCloneProgrammer.js.map +1 -1
  125. package/lib/programmers/IsParseProgrammer.d.ts +1 -1
  126. package/lib/programmers/IsParseProgrammer.js +6 -6
  127. package/lib/programmers/IsParseProgrammer.js.map +1 -1
  128. package/lib/programmers/IsProgrammer.d.ts +2 -2
  129. package/lib/programmers/IsProgrammer.js +20 -20
  130. package/lib/programmers/IsProgrammer.js.map +1 -1
  131. package/lib/programmers/IsPruneProgrammer.d.ts +1 -1
  132. package/lib/programmers/IsPruneProgrammer.js +7 -7
  133. package/lib/programmers/IsPruneProgrammer.js.map +1 -1
  134. package/lib/programmers/IsStringifyProgrammer.d.ts +1 -1
  135. package/lib/programmers/IsStringifyProgrammer.js +8 -8
  136. package/lib/programmers/IsStringifyProgrammer.js.map +1 -1
  137. package/lib/programmers/LiteralsProgrammer.d.ts +1 -1
  138. package/lib/programmers/LiteralsProgrammer.js +9 -9
  139. package/lib/programmers/LiteralsProgrammer.js.map +1 -1
  140. package/lib/programmers/PruneProgrammer.d.ts +1 -1
  141. package/lib/programmers/PruneProgrammer.js +20 -20
  142. package/lib/programmers/PruneProgrammer.js.map +1 -1
  143. package/lib/programmers/RandomProgrammer.d.ts +1 -1
  144. package/lib/programmers/RandomProgrammer.js +38 -38
  145. package/lib/programmers/RandomProgrammer.js.map +1 -1
  146. package/lib/programmers/StringifyProgrammer.d.ts +1 -1
  147. package/lib/programmers/StringifyProgrammer.js +44 -44
  148. package/lib/programmers/StringifyProgrammer.js.map +1 -1
  149. package/lib/programmers/TypiaProgrammer.js +16 -7
  150. package/lib/programmers/TypiaProgrammer.js.map +1 -1
  151. package/lib/programmers/ValidateCloneProgrammer.d.ts +1 -1
  152. package/lib/programmers/ValidateCloneProgrammer.js +7 -7
  153. package/lib/programmers/ValidateCloneProgrammer.js.map +1 -1
  154. package/lib/programmers/ValidateParseProgrammer.d.ts +1 -1
  155. package/lib/programmers/ValidateParseProgrammer.js +7 -7
  156. package/lib/programmers/ValidateParseProgrammer.js.map +1 -1
  157. package/lib/programmers/ValidateProgrammer.d.ts +1 -1
  158. package/lib/programmers/ValidateProgrammer.js +43 -43
  159. package/lib/programmers/ValidateProgrammer.js.map +1 -1
  160. package/lib/programmers/ValidatePruneProgrammer.d.ts +1 -1
  161. package/lib/programmers/ValidatePruneProgrammer.js +7 -7
  162. package/lib/programmers/ValidatePruneProgrammer.js.map +1 -1
  163. package/lib/programmers/ValidateStringifyProgrammer.d.ts +1 -1
  164. package/lib/programmers/ValidateStringifyProgrammer.js +8 -8
  165. package/lib/programmers/ValidateStringifyProgrammer.js.map +1 -1
  166. package/lib/programmers/helpers/AtomicPredicator.js +1 -1
  167. package/lib/programmers/helpers/AtomicPredicator.js.map +1 -1
  168. package/lib/programmers/helpers/CloneJoiner.d.ts +1 -1
  169. package/lib/programmers/helpers/CloneJoiner.js +23 -23
  170. package/lib/programmers/helpers/CloneJoiner.js.map +1 -1
  171. package/lib/programmers/helpers/FunctionImporeter.d.ts +1 -1
  172. package/lib/programmers/helpers/FunctionImporeter.js +3 -3
  173. package/lib/programmers/helpers/FunctionImporeter.js.map +1 -1
  174. package/lib/programmers/helpers/ICheckEntry.d.ts +1 -1
  175. package/lib/programmers/helpers/IExpressionEntry.d.ts +1 -1
  176. package/lib/programmers/helpers/OptionPredicator.js +1 -1
  177. package/lib/programmers/helpers/OptionPredicator.js.map +1 -1
  178. package/lib/programmers/helpers/PruneJoiner.d.ts +1 -1
  179. package/lib/programmers/helpers/PruneJoiner.js +20 -20
  180. package/lib/programmers/helpers/PruneJoiner.js.map +1 -1
  181. package/lib/programmers/helpers/RandomJoiner.d.ts +1 -1
  182. package/lib/programmers/helpers/RandomJoiner.js +19 -19
  183. package/lib/programmers/helpers/RandomJoiner.js.map +1 -1
  184. package/lib/programmers/helpers/RandomRanger.d.ts +1 -1
  185. package/lib/programmers/helpers/RandomRanger.js +8 -8
  186. package/lib/programmers/helpers/RandomRanger.js.map +1 -1
  187. package/lib/programmers/helpers/StringifyJoinder.d.ts +1 -1
  188. package/lib/programmers/helpers/StringifyJoinder.js +15 -15
  189. package/lib/programmers/helpers/StringifyJoinder.js.map +1 -1
  190. package/lib/programmers/helpers/StringifyPredicator.js +1 -1
  191. package/lib/programmers/helpers/StringifyPredicator.js.map +1 -1
  192. package/lib/programmers/helpers/UnionExplorer.d.ts +9 -8
  193. package/lib/programmers/helpers/UnionExplorer.js +11 -11
  194. package/lib/programmers/helpers/UnionExplorer.js.map +1 -1
  195. package/lib/programmers/helpers/UnionPredicator.js +1 -1
  196. package/lib/programmers/helpers/UnionPredicator.js.map +1 -1
  197. package/lib/programmers/internal/check_array_length.js +4 -4
  198. package/lib/programmers/internal/check_array_length.js.map +1 -1
  199. package/lib/programmers/internal/check_bigint.js +11 -11
  200. package/lib/programmers/internal/check_bigint.js.map +1 -1
  201. package/lib/programmers/internal/check_custom.js +5 -5
  202. package/lib/programmers/internal/check_custom.js.map +1 -1
  203. package/lib/programmers/internal/check_dynamic_properties.js +23 -23
  204. package/lib/programmers/internal/check_dynamic_properties.js.map +1 -1
  205. package/lib/programmers/internal/check_everything.js +4 -4
  206. package/lib/programmers/internal/check_everything.js.map +1 -1
  207. package/lib/programmers/internal/check_native.js +2 -2
  208. package/lib/programmers/internal/check_native.js.map +1 -1
  209. package/lib/programmers/internal/check_number.js +15 -15
  210. package/lib/programmers/internal/check_number.js.map +1 -1
  211. package/lib/programmers/internal/check_object.js +2 -2
  212. package/lib/programmers/internal/check_object.js.map +1 -1
  213. package/lib/programmers/internal/check_string.js +2 -2
  214. package/lib/programmers/internal/check_string.js.map +1 -1
  215. package/lib/programmers/internal/check_string_tags.js +6 -6
  216. package/lib/programmers/internal/check_string_tags.js.map +1 -1
  217. package/lib/programmers/internal/check_template.js +5 -5
  218. package/lib/programmers/internal/check_template.js.map +1 -1
  219. package/lib/programmers/internal/check_union_array_like.js +18 -18
  220. package/lib/programmers/internal/check_union_array_like.js.map +1 -1
  221. package/lib/programmers/internal/check_union_tuple.js.map +1 -1
  222. package/lib/programmers/internal/decode_union_object.js +4 -4
  223. package/lib/programmers/internal/decode_union_object.js.map +1 -1
  224. package/lib/programmers/internal/feature_object_entries.js +4 -4
  225. package/lib/programmers/internal/feature_object_entries.js.map +1 -1
  226. package/lib/programmers/internal/prune_object_properties.js +9 -9
  227. package/lib/programmers/internal/prune_object_properties.js.map +1 -1
  228. package/lib/programmers/internal/random_custom.js +2 -2
  229. package/lib/programmers/internal/random_custom.js.map +1 -1
  230. package/lib/programmers/internal/stringify_dynamic_properties.js +20 -20
  231. package/lib/programmers/internal/stringify_dynamic_properties.js.map +1 -1
  232. package/lib/programmers/internal/stringify_native.js +2 -2
  233. package/lib/programmers/internal/stringify_native.js.map +1 -1
  234. package/lib/programmers/internal/stringify_regular_properties.js +8 -8
  235. package/lib/programmers/internal/stringify_regular_properties.js.map +1 -1
  236. package/lib/transform.d.ts +3 -4
  237. package/lib/transform.js +18 -15
  238. package/lib/transform.js.map +1 -1
  239. package/lib/transformers/CallExpressionTransformer.d.ts +1 -1
  240. package/lib/transformers/CallExpressionTransformer.js +5 -4
  241. package/lib/transformers/CallExpressionTransformer.js.map +1 -1
  242. package/lib/transformers/FileTransformer.d.ts +1 -1
  243. package/lib/transformers/FileTransformer.js +7 -6
  244. package/lib/transformers/FileTransformer.js.map +1 -1
  245. package/lib/transformers/IProject.d.ts +1 -1
  246. package/lib/transformers/ImportTransformer.d.ts +1 -1
  247. package/lib/transformers/ImportTransformer.js +8 -7
  248. package/lib/transformers/ImportTransformer.js.map +1 -1
  249. package/lib/transformers/NodeTransformer.d.ts +1 -1
  250. package/lib/transformers/NodeTransformer.js +3 -3
  251. package/lib/transformers/NodeTransformer.js.map +1 -1
  252. package/lib/transformers/features/miscellaneous/ApplicationTransformer.d.ts +1 -1
  253. package/lib/transformers/features/miscellaneous/ApplicationTransformer.js +7 -6
  254. package/lib/transformers/features/miscellaneous/ApplicationTransformer.js.map +1 -1
  255. package/lib/transformers/features/miscellaneous/AssertCloneTransformer.d.ts +1 -1
  256. package/lib/transformers/features/miscellaneous/AssertCloneTransformer.js +1 -1
  257. package/lib/transformers/features/miscellaneous/AssertCloneTransformer.js.map +1 -1
  258. package/lib/transformers/features/miscellaneous/AssertPruneTransformer.d.ts +1 -1
  259. package/lib/transformers/features/miscellaneous/AssertPruneTransformer.js +1 -1
  260. package/lib/transformers/features/miscellaneous/AssertPruneTransformer.js.map +1 -1
  261. package/lib/transformers/features/miscellaneous/CloneTransformer.d.ts +1 -1
  262. package/lib/transformers/features/miscellaneous/CloneTransformer.js +1 -1
  263. package/lib/transformers/features/miscellaneous/CloneTransformer.js.map +1 -1
  264. package/lib/transformers/features/miscellaneous/CreateAssertCloneTransformer.d.ts +1 -1
  265. package/lib/transformers/features/miscellaneous/CreateAssertCloneTransformer.js +1 -1
  266. package/lib/transformers/features/miscellaneous/CreateAssertCloneTransformer.js.map +1 -1
  267. package/lib/transformers/features/miscellaneous/CreateAssertPruneTransformer.d.ts +1 -1
  268. package/lib/transformers/features/miscellaneous/CreateAssertPruneTransformer.js +1 -1
  269. package/lib/transformers/features/miscellaneous/CreateAssertPruneTransformer.js.map +1 -1
  270. package/lib/transformers/features/miscellaneous/CreateCloneTransformer.d.ts +1 -1
  271. package/lib/transformers/features/miscellaneous/CreateCloneTransformer.js +1 -1
  272. package/lib/transformers/features/miscellaneous/CreateCloneTransformer.js.map +1 -1
  273. package/lib/transformers/features/miscellaneous/CreateIsCloneTransformer.d.ts +1 -1
  274. package/lib/transformers/features/miscellaneous/CreateIsCloneTransformer.js +1 -1
  275. package/lib/transformers/features/miscellaneous/CreateIsCloneTransformer.js.map +1 -1
  276. package/lib/transformers/features/miscellaneous/CreateIsPruneTransformer.d.ts +1 -1
  277. package/lib/transformers/features/miscellaneous/CreateIsPruneTransformer.js +1 -1
  278. package/lib/transformers/features/miscellaneous/CreateIsPruneTransformer.js.map +1 -1
  279. package/lib/transformers/features/miscellaneous/CreatePruneTransformer.d.ts +1 -1
  280. package/lib/transformers/features/miscellaneous/CreatePruneTransformer.js +1 -1
  281. package/lib/transformers/features/miscellaneous/CreatePruneTransformer.js.map +1 -1
  282. package/lib/transformers/features/miscellaneous/CreateRandomTransformer.d.ts +1 -1
  283. package/lib/transformers/features/miscellaneous/CreateRandomTransformer.js +5 -3
  284. package/lib/transformers/features/miscellaneous/CreateRandomTransformer.js.map +1 -1
  285. package/lib/transformers/features/miscellaneous/CreateValidateCloneTransformer.d.ts +1 -1
  286. package/lib/transformers/features/miscellaneous/CreateValidateCloneTransformer.js +1 -1
  287. package/lib/transformers/features/miscellaneous/CreateValidateCloneTransformer.js.map +1 -1
  288. package/lib/transformers/features/miscellaneous/CreateValidatePruneTransformer.d.ts +1 -1
  289. package/lib/transformers/features/miscellaneous/CreateValidatePruneTransformer.js +1 -1
  290. package/lib/transformers/features/miscellaneous/CreateValidatePruneTransformer.js.map +1 -1
  291. package/lib/transformers/features/miscellaneous/IsCloneTransformer.d.ts +1 -1
  292. package/lib/transformers/features/miscellaneous/IsCloneTransformer.js +1 -1
  293. package/lib/transformers/features/miscellaneous/IsCloneTransformer.js.map +1 -1
  294. package/lib/transformers/features/miscellaneous/IsPruneTransformer.d.ts +1 -1
  295. package/lib/transformers/features/miscellaneous/IsPruneTransformer.js +1 -1
  296. package/lib/transformers/features/miscellaneous/IsPruneTransformer.js.map +1 -1
  297. package/lib/transformers/features/miscellaneous/LiteralsTransformer.d.ts +1 -1
  298. package/lib/transformers/features/miscellaneous/LiteralsTransformer.js +3 -2
  299. package/lib/transformers/features/miscellaneous/LiteralsTransformer.js.map +1 -1
  300. package/lib/transformers/features/miscellaneous/MetadataTransformer.d.ts +1 -1
  301. package/lib/transformers/features/miscellaneous/MetadataTransformer.js +6 -5
  302. package/lib/transformers/features/miscellaneous/MetadataTransformer.js.map +1 -1
  303. package/lib/transformers/features/miscellaneous/PruneTransformer.d.ts +1 -1
  304. package/lib/transformers/features/miscellaneous/PruneTransformer.js +1 -1
  305. package/lib/transformers/features/miscellaneous/PruneTransformer.js.map +1 -1
  306. package/lib/transformers/features/miscellaneous/RandomTransformer.d.ts +1 -1
  307. package/lib/transformers/features/miscellaneous/RandomTransformer.js +6 -4
  308. package/lib/transformers/features/miscellaneous/RandomTransformer.js.map +1 -1
  309. package/lib/transformers/features/miscellaneous/ValidateCloneTransformer.d.ts +1 -1
  310. package/lib/transformers/features/miscellaneous/ValidateCloneTransformer.js +1 -1
  311. package/lib/transformers/features/miscellaneous/ValidateCloneTransformer.js.map +1 -1
  312. package/lib/transformers/features/miscellaneous/ValidatePruneTransformer.d.ts +1 -1
  313. package/lib/transformers/features/miscellaneous/ValidatePruneTransformer.js +1 -1
  314. package/lib/transformers/features/miscellaneous/ValidatePruneTransformer.js.map +1 -1
  315. package/lib/transformers/features/parsers/AssertParseTransformer.d.ts +1 -1
  316. package/lib/transformers/features/parsers/AssertParseTransformer.js +1 -1
  317. package/lib/transformers/features/parsers/AssertParseTransformer.js.map +1 -1
  318. package/lib/transformers/features/parsers/CreateAssertParseTransformer.d.ts +1 -1
  319. package/lib/transformers/features/parsers/CreateAssertParseTransformer.js +1 -1
  320. package/lib/transformers/features/parsers/CreateAssertParseTransformer.js.map +1 -1
  321. package/lib/transformers/features/parsers/CreateIsParseTransformer.d.ts +1 -1
  322. package/lib/transformers/features/parsers/CreateIsParseTransformer.js +1 -1
  323. package/lib/transformers/features/parsers/CreateIsParseTransformer.js.map +1 -1
  324. package/lib/transformers/features/parsers/CreateValidateParseTransformer.d.ts +1 -1
  325. package/lib/transformers/features/parsers/CreateValidateParseTransformer.js +1 -1
  326. package/lib/transformers/features/parsers/CreateValidateParseTransformer.js.map +1 -1
  327. package/lib/transformers/features/parsers/IsParseTransformer.d.ts +1 -1
  328. package/lib/transformers/features/parsers/IsParseTransformer.js +1 -1
  329. package/lib/transformers/features/parsers/IsParseTransformer.js.map +1 -1
  330. package/lib/transformers/features/parsers/ValidateParseTransformer.d.ts +1 -1
  331. package/lib/transformers/features/parsers/ValidateParseTransformer.js +1 -1
  332. package/lib/transformers/features/parsers/ValidateParseTransformer.js.map +1 -1
  333. package/lib/transformers/features/stringifiers/AssertStringifyTransformer.d.ts +1 -1
  334. package/lib/transformers/features/stringifiers/AssertStringifyTransformer.js +1 -1
  335. package/lib/transformers/features/stringifiers/AssertStringifyTransformer.js.map +1 -1
  336. package/lib/transformers/features/stringifiers/CreateAssertStringifyTransformer.d.ts +1 -1
  337. package/lib/transformers/features/stringifiers/CreateAssertStringifyTransformer.js +1 -1
  338. package/lib/transformers/features/stringifiers/CreateAssertStringifyTransformer.js.map +1 -1
  339. package/lib/transformers/features/stringifiers/CreateIsStringifyTransformer.d.ts +1 -1
  340. package/lib/transformers/features/stringifiers/CreateIsStringifyTransformer.js +1 -1
  341. package/lib/transformers/features/stringifiers/CreateIsStringifyTransformer.js.map +1 -1
  342. package/lib/transformers/features/stringifiers/CreateStringifyTransformer.d.ts +1 -1
  343. package/lib/transformers/features/stringifiers/CreateStringifyTransformer.js +1 -1
  344. package/lib/transformers/features/stringifiers/CreateStringifyTransformer.js.map +1 -1
  345. package/lib/transformers/features/stringifiers/CreateValidateStringifyProgrammer.d.ts +1 -1
  346. package/lib/transformers/features/stringifiers/CreateValidateStringifyProgrammer.js +1 -1
  347. package/lib/transformers/features/stringifiers/CreateValidateStringifyProgrammer.js.map +1 -1
  348. package/lib/transformers/features/stringifiers/IsStringifyTransformer.d.ts +1 -1
  349. package/lib/transformers/features/stringifiers/IsStringifyTransformer.js +1 -1
  350. package/lib/transformers/features/stringifiers/IsStringifyTransformer.js.map +1 -1
  351. package/lib/transformers/features/stringifiers/StringifyTransformer.d.ts +1 -1
  352. package/lib/transformers/features/stringifiers/StringifyTransformer.js +1 -1
  353. package/lib/transformers/features/stringifiers/StringifyTransformer.js.map +1 -1
  354. package/lib/transformers/features/stringifiers/ValidateStringifyTransformer.d.ts +1 -1
  355. package/lib/transformers/features/stringifiers/ValidateStringifyTransformer.js +1 -1
  356. package/lib/transformers/features/stringifiers/ValidateStringifyTransformer.js.map +1 -1
  357. package/lib/transformers/features/validators/AssertTransformer.d.ts +1 -1
  358. package/lib/transformers/features/validators/AssertTransformer.js +1 -1
  359. package/lib/transformers/features/validators/AssertTransformer.js.map +1 -1
  360. package/lib/transformers/features/validators/CreateAssertTransformer.d.ts +1 -1
  361. package/lib/transformers/features/validators/CreateAssertTransformer.js +1 -1
  362. package/lib/transformers/features/validators/CreateAssertTransformer.js.map +1 -1
  363. package/lib/transformers/features/validators/CreateIsTransformer.d.ts +1 -1
  364. package/lib/transformers/features/validators/CreateIsTransformer.js +1 -1
  365. package/lib/transformers/features/validators/CreateIsTransformer.js.map +1 -1
  366. package/lib/transformers/features/validators/CreateValidateTransformer.d.ts +1 -1
  367. package/lib/transformers/features/validators/CreateValidateTransformer.js +1 -1
  368. package/lib/transformers/features/validators/CreateValidateTransformer.js.map +1 -1
  369. package/lib/transformers/features/validators/IsTransformer.d.ts +1 -1
  370. package/lib/transformers/features/validators/IsTransformer.js +1 -1
  371. package/lib/transformers/features/validators/IsTransformer.js.map +1 -1
  372. package/lib/transformers/features/validators/ValidateTransformer.d.ts +1 -1
  373. package/lib/transformers/features/validators/ValidateTransformer.js +1 -1
  374. package/lib/transformers/features/validators/ValidateTransformer.js.map +1 -1
  375. package/lib/transformers/internal/GenericTransformer.d.ts +1 -1
  376. package/lib/transformers/internal/GenericTransformer.js +10 -8
  377. package/lib/transformers/internal/GenericTransformer.js.map +1 -1
  378. package/lib/utils/ArrayUtil.js +1 -1
  379. package/lib/utils/ArrayUtil.js.map +1 -1
  380. package/lib/utils/Escaper.js +1 -1
  381. package/lib/utils/Escaper.js.map +1 -1
  382. package/lib/utils/MapUtil.js +1 -1
  383. package/lib/utils/MapUtil.js.map +1 -1
  384. package/lib/utils/PatternUtil.js +1 -1
  385. package/lib/utils/PatternUtil.js.map +1 -1
  386. package/lib/utils/RandomGenerator.js +1 -1
  387. package/lib/utils/RandomGenerator.js.map +1 -1
  388. package/lib/utils/TsNodeUtil.d.ts +5 -0
  389. package/lib/utils/TsNodeUtil.js +19 -0
  390. package/lib/utils/TsNodeUtil.js.map +1 -0
  391. package/lib/utils/TsSymbolUtil.d.ts +6 -0
  392. package/lib/utils/TsSymbolUtil.js +43 -0
  393. package/lib/utils/TsSymbolUtil.js.map +1 -0
  394. package/lib/utils/TsTypeUtil.d.ts +9 -0
  395. package/lib/utils/TsTypeUtil.js +32 -0
  396. package/lib/utils/TsTypeUtil.js.map +1 -0
  397. package/package.json +129 -131
  398. package/src/factories/CommentFactory.ts +14 -14
  399. package/src/factories/ExpressionFactory.ts +70 -70
  400. package/src/factories/IdentifierFactory.ts +63 -63
  401. package/src/factories/LiteralFactory.ts +39 -39
  402. package/src/factories/MetadataCollection.ts +121 -121
  403. package/src/factories/MetadataFactory.ts +62 -62
  404. package/src/factories/MetadataTagFactory.ts +295 -295
  405. package/src/factories/StatementFactory.ts +25 -24
  406. package/src/factories/TemplateFactory.ts +58 -58
  407. package/src/factories/TypeFactory.ts +136 -124
  408. package/src/factories/ValueFactory.ts +12 -12
  409. package/src/factories/internal/metadata/emplace_metadata_object.ts +148 -143
  410. package/src/factories/internal/metadata/explore_metadata.ts +92 -92
  411. package/src/factories/internal/metadata/iterate_metadata.ts +69 -67
  412. package/src/factories/internal/metadata/iterate_metadata_array.ts +30 -29
  413. package/src/factories/internal/metadata/iterate_metadata_atomic.ts +59 -59
  414. package/src/factories/internal/metadata/iterate_metadata_coalesce.ts +33 -33
  415. package/src/factories/internal/metadata/iterate_metadata_constant.ts +59 -58
  416. package/src/factories/internal/metadata/iterate_metadata_map.ts +41 -41
  417. package/src/factories/internal/metadata/iterate_metadata_native.ts +219 -219
  418. package/src/factories/internal/metadata/iterate_metadata_object.ts +49 -48
  419. package/src/factories/internal/metadata/iterate_metadata_resolve.ts +27 -27
  420. package/src/factories/internal/metadata/iterate_metadata_set.ts +33 -33
  421. package/src/factories/internal/metadata/iterate_metadata_template.ts +38 -38
  422. package/src/factories/internal/metadata/iterate_metadata_tuple.ts +48 -48
  423. package/src/factories/internal/metadata/iterate_metadata_union.ts +59 -57
  424. package/src/module.ts +2038 -2038
  425. package/src/programmers/ApplicationProgrammer.ts +56 -56
  426. package/src/programmers/AssertCloneProgrammer.ts +79 -79
  427. package/src/programmers/AssertParseProgrammer.ts +74 -74
  428. package/src/programmers/AssertProgrammer.ts +285 -285
  429. package/src/programmers/AssertPruneProgrammer.ts +76 -76
  430. package/src/programmers/AssertStringifyProgrammer.ts +74 -74
  431. package/src/programmers/CheckerProgrammer.ts +902 -901
  432. package/src/programmers/CloneProgrammer.ts +389 -389
  433. package/src/programmers/FeatureProgrammer.ts +501 -500
  434. package/src/programmers/IsCloneProgrammer.ts +86 -86
  435. package/src/programmers/IsParseProgrammer.ts +80 -80
  436. package/src/programmers/IsProgrammer.ts +216 -216
  437. package/src/programmers/IsPruneProgrammer.ts +81 -81
  438. package/src/programmers/IsStringifyProgrammer.ts +84 -84
  439. package/src/programmers/LiteralsProgrammer.ts +65 -65
  440. package/src/programmers/PruneProgrammer.ts +347 -347
  441. package/src/programmers/RandomProgrammer.ts +423 -423
  442. package/src/programmers/StringifyProgrammer.ts +798 -798
  443. package/src/programmers/TypiaProgrammer.ts +136 -129
  444. package/src/programmers/ValidateCloneProgrammer.ts +93 -93
  445. package/src/programmers/ValidateParseProgrammer.ts +78 -78
  446. package/src/programmers/ValidateProgrammer.ts +316 -316
  447. package/src/programmers/ValidatePruneProgrammer.ts +86 -86
  448. package/src/programmers/ValidateStringifyProgrammer.ts +92 -92
  449. package/src/programmers/helpers/CloneJoiner.ts +131 -131
  450. package/src/programmers/helpers/FunctionImporeter.ts +54 -54
  451. package/src/programmers/helpers/ICheckEntry.ts +12 -12
  452. package/src/programmers/helpers/IExpressionEntry.ts +12 -12
  453. package/src/programmers/helpers/PruneJoiner.ts +144 -144
  454. package/src/programmers/helpers/RandomJoiner.ts +161 -161
  455. package/src/programmers/helpers/RandomRanger.ts +216 -216
  456. package/src/programmers/helpers/StringifyJoinder.ts +113 -113
  457. package/src/programmers/helpers/UnionExplorer.ts +276 -275
  458. package/src/programmers/helpers/disable_function_importer_declare.ts +21 -21
  459. package/src/programmers/internal/JSON_SCHEMA_PREFIX.ts +1 -1
  460. package/src/programmers/internal/application_array.ts +32 -32
  461. package/src/programmers/internal/application_boolean.ts +15 -15
  462. package/src/programmers/internal/application_constant.ts +26 -26
  463. package/src/programmers/internal/application_default.ts +17 -17
  464. package/src/programmers/internal/application_native.ts +36 -36
  465. package/src/programmers/internal/application_number.ts +71 -71
  466. package/src/programmers/internal/application_object.ts +162 -162
  467. package/src/programmers/internal/application_schema.ts +198 -198
  468. package/src/programmers/internal/application_string.ts +44 -44
  469. package/src/programmers/internal/application_templates.ts +25 -25
  470. package/src/programmers/internal/application_tuple.ts +27 -27
  471. package/src/programmers/internal/check_array.ts +30 -30
  472. package/src/programmers/internal/check_array_length.ts +35 -35
  473. package/src/programmers/internal/check_bigint.ts +82 -82
  474. package/src/programmers/internal/check_custom.ts +31 -31
  475. package/src/programmers/internal/check_dynamic_properties.ts +194 -194
  476. package/src/programmers/internal/check_everything.ts +28 -28
  477. package/src/programmers/internal/check_native.ts +21 -21
  478. package/src/programmers/internal/check_number.ts +177 -177
  479. package/src/programmers/internal/check_object.ts +55 -55
  480. package/src/programmers/internal/check_string.ts +26 -25
  481. package/src/programmers/internal/check_string_tags.ts +67 -67
  482. package/src/programmers/internal/check_template.ts +56 -56
  483. package/src/programmers/internal/check_union_array_like.ts +272 -271
  484. package/src/programmers/internal/check_union_tuple.ts +34 -33
  485. package/src/programmers/internal/decode_union_object.ts +73 -73
  486. package/src/programmers/internal/feature_object_entries.ts +63 -63
  487. package/src/programmers/internal/prune_object_properties.ts +60 -60
  488. package/src/programmers/internal/random_custom.ts +29 -29
  489. package/src/programmers/internal/stringify_dynamic_properties.ts +167 -167
  490. package/src/programmers/internal/stringify_native.ts +7 -7
  491. package/src/programmers/internal/stringify_regular_properties.ts +83 -83
  492. package/src/schemas/IJsonApplication.ts +13 -13
  493. package/src/schemas/IJsonComponents.ts +33 -33
  494. package/src/schemas/IJsonSchema.ts +134 -134
  495. package/src/transform.ts +17 -13
  496. package/src/transformers/CallExpressionTransformer.ts +180 -177
  497. package/src/transformers/FileTransformer.ts +50 -47
  498. package/src/transformers/IProject.ts +11 -11
  499. package/src/transformers/ImportTransformer.ts +68 -66
  500. package/src/transformers/NodeTransformer.ts +13 -13
  501. package/src/transformers/features/miscellaneous/ApplicationTransformer.ts +105 -103
  502. package/src/transformers/features/miscellaneous/CreateRandomTransformer.ts +43 -39
  503. package/src/transformers/features/miscellaneous/LiteralsTransformer.ts +31 -28
  504. package/src/transformers/features/miscellaneous/MetadataTransformer.ts +54 -52
  505. package/src/transformers/features/miscellaneous/RandomTransformer.ts +46 -42
  506. package/src/transformers/internal/GenericTransformer.ts +103 -97
  507. package/src/utils/TsNodeUtil.ts +12 -0
  508. package/src/utils/TsSymbolUtil.ts +41 -0
  509. package/src/utils/TsTypeUtil.ts +30 -0
@@ -1,13 +1,13 @@
1
- import ts from "typescript";
2
-
3
- import { CallExpressionTransformer } from "./CallExpressionTransformer";
4
- import { IProject } from "./IProject";
5
-
6
- export namespace NodeTransformer {
7
- export const transform =
8
- (project: IProject) =>
9
- (expression: ts.Node): ts.Node =>
10
- ts.isCallExpression(expression)
11
- ? CallExpressionTransformer.transform(project)(expression)
12
- : expression;
13
- }
1
+ import ts from "typescript/lib/tsclibrary";
2
+
3
+ import { CallExpressionTransformer } from "./CallExpressionTransformer";
4
+ import { IProject } from "./IProject";
5
+
6
+ export namespace NodeTransformer {
7
+ export const transform =
8
+ (project: IProject) =>
9
+ (expression: ts.Node): ts.Node =>
10
+ ts.isCallExpression(expression)
11
+ ? CallExpressionTransformer.transform(project)(expression)
12
+ : expression;
13
+ }
@@ -1,103 +1,105 @@
1
- import ts from "typescript";
2
-
3
- import { LiteralFactory } from "../../../factories/LiteralFactory";
4
- import { MetadataCollection } from "../../../factories/MetadataCollection";
5
- import { MetadataFactory } from "../../../factories/MetadataFactory";
6
-
7
- import { Metadata } from "../../../metadata/Metadata";
8
- import { IJsonApplication } from "../../../schemas/IJsonApplication";
9
-
10
- import { ApplicationProgrammer } from "../../../programmers/ApplicationProgrammer";
11
-
12
- import { IProject } from "../../IProject";
13
-
14
- export namespace ApplicationTransformer {
15
- export const transform =
16
- ({ checker }: IProject) =>
17
- (expression: ts.CallExpression): ts.Expression => {
18
- if (!expression.typeArguments?.length)
19
- throw new Error(NO_GENERIC_ARGUMENT);
20
-
21
- //----
22
- // GET ARGUMENTS
23
- //----
24
- // VALIDATE TUPLE ARGUMENTS
25
- const top: ts.Node = expression.typeArguments[0]!;
26
- if (!ts.isTupleTypeNode(top)) return expression;
27
- else if (top.elements.some((child) => !ts.isTypeNode(child)))
28
- return expression;
29
-
30
- // GET TYPES
31
- const types: ts.Type[] = top.elements.map((child) =>
32
- checker.getTypeFromTypeNode(child as ts.TypeNode),
33
- );
34
- if (types.some((t) => t.isTypeParameter()))
35
- throw new Error(GENERIC_ARGUMENT);
36
-
37
- // ADDITIONAL PARAMETERS
38
- const purpose: "swagger" | "ajv" = get_parameter(
39
- checker,
40
- "Purpose",
41
- expression.typeArguments[1],
42
- (str) => str === "swagger" || str === "ajv",
43
- () => "swagger",
44
- );
45
-
46
- //----
47
- // GENERATORS
48
- //----
49
- // METADATA
50
- const collection: MetadataCollection = new MetadataCollection({
51
- replace: MetadataCollection.replace,
52
- });
53
- const metadatas: Array<Metadata> = types.map((type) =>
54
- MetadataFactory.analyze(checker)({
55
- resolve: true,
56
- constant: true,
57
- validate: (meta) => {
58
- if (meta.atomics.find((str) => str === "bigint"))
59
- throw new Error(NO_BIGIT);
60
- },
61
- })(collection)(type),
62
- );
63
-
64
- // APPLICATION
65
- const app: IJsonApplication = ApplicationProgrammer.write({
66
- purpose,
67
- })(metadatas);
68
-
69
- // RETURNS WITH LITERAL EXPRESSION
70
- return LiteralFactory.generate(app);
71
- };
72
-
73
- const get_parameter = <T extends string>(
74
- checker: ts.TypeChecker,
75
- name: string,
76
- node: ts.TypeNode | undefined,
77
- predicator: (value: string) => boolean,
78
- defaulter: () => T,
79
- ): T => {
80
- if (!node) return defaulter();
81
-
82
- // CHECK LITERAL TYPE
83
- const type: ts.Type = checker.getTypeFromTypeNode(node);
84
- if (!type.isLiteral())
85
- throw new Error(
86
- `Error on typia.application(): generic argument "${name}" must be constant.`,
87
- );
88
-
89
- // GET VALUE AND VALIDATE IT
90
- const value = type.value;
91
- if (typeof value !== "string" || predicator(value) === false)
92
- throw new Error(
93
- `Error on typia.application(): invalid value on generic argument "${name}".`,
94
- );
95
- return value as T;
96
- };
97
- }
98
-
99
- const NO_GENERIC_ARGUMENT =
100
- "Error on typia.application(): no generic argument.";
101
- const GENERIC_ARGUMENT =
102
- "Error on typia.application(): non-specified generic argument(s).";
103
- const NO_BIGIT = "Error on typia.application(): does not allow bigint type.";
1
+ import ts from "typescript/lib/tsclibrary";
2
+
3
+ import { LiteralFactory } from "../../../factories/LiteralFactory";
4
+ import { MetadataCollection } from "../../../factories/MetadataCollection";
5
+ import { MetadataFactory } from "../../../factories/MetadataFactory";
6
+
7
+ import { Metadata } from "../../../metadata/Metadata";
8
+ import { IJsonApplication } from "../../../schemas/IJsonApplication";
9
+
10
+ import { ApplicationProgrammer } from "../../../programmers/ApplicationProgrammer";
11
+
12
+ import { TsTypeUtil } from "../../../utils/TsTypeUtil";
13
+
14
+ import { IProject } from "../../IProject";
15
+
16
+ export namespace ApplicationTransformer {
17
+ export const transform =
18
+ ({ checker }: IProject) =>
19
+ (expression: ts.CallExpression): ts.Expression => {
20
+ if (!expression.typeArguments?.length)
21
+ throw new Error(NO_GENERIC_ARGUMENT);
22
+
23
+ //----
24
+ // GET ARGUMENTS
25
+ //----
26
+ // VALIDATE TUPLE ARGUMENTS
27
+ const top: ts.Node = expression.typeArguments[0]!;
28
+ if (!ts.isTupleTypeNode(top)) return expression;
29
+ else if (top.elements.some((child) => !ts.isTypeNode(child)))
30
+ return expression;
31
+
32
+ // GET TYPES
33
+ const types: ts.Type[] = top.elements.map((child) =>
34
+ checker.getTypeFromTypeNode(child as ts.TypeNode),
35
+ );
36
+ if (types.some((t) => TsTypeUtil.isTypeParameter(t)))
37
+ throw new Error(GENERIC_ARGUMENT);
38
+
39
+ // ADDITIONAL PARAMETERS
40
+ const purpose: "swagger" | "ajv" = get_parameter(
41
+ checker,
42
+ "Purpose",
43
+ expression.typeArguments[1],
44
+ (str) => str === "swagger" || str === "ajv",
45
+ () => "swagger",
46
+ );
47
+
48
+ //----
49
+ // GENERATORS
50
+ //----
51
+ // METADATA
52
+ const collection: MetadataCollection = new MetadataCollection({
53
+ replace: MetadataCollection.replace,
54
+ });
55
+ const metadatas: Array<Metadata> = types.map((type) =>
56
+ MetadataFactory.analyze(checker)({
57
+ resolve: true,
58
+ constant: true,
59
+ validate: (meta) => {
60
+ if (meta.atomics.find((str) => str === "bigint"))
61
+ throw new Error(NO_BIGIT);
62
+ },
63
+ })(collection)(type),
64
+ );
65
+
66
+ // APPLICATION
67
+ const app: IJsonApplication = ApplicationProgrammer.write({
68
+ purpose,
69
+ })(metadatas);
70
+
71
+ // RETURNS WITH LITERAL EXPRESSION
72
+ return LiteralFactory.generate(app);
73
+ };
74
+
75
+ const get_parameter = <T extends string>(
76
+ checker: ts.TypeChecker,
77
+ name: string,
78
+ node: ts.TypeNode | undefined,
79
+ predicator: (value: string) => boolean,
80
+ defaulter: () => T,
81
+ ): T => {
82
+ if (!node) return defaulter();
83
+
84
+ // CHECK LITERAL TYPE
85
+ const type: ts.Type = checker.getTypeFromTypeNode(node);
86
+ if (!TsTypeUtil.isLiteral(type))
87
+ throw new Error(
88
+ `Error on typia.application(): generic argument "${name}" must be constant.`,
89
+ );
90
+
91
+ // GET VALUE AND VALIDATE IT
92
+ const value = type.value;
93
+ if (typeof value !== "string" || predicator(value) === false)
94
+ throw new Error(
95
+ `Error on typia.application(): invalid value on generic argument "${name}".`,
96
+ );
97
+ return value as T;
98
+ };
99
+ }
100
+
101
+ const NO_GENERIC_ARGUMENT =
102
+ "Error on typia.application(): no generic argument.";
103
+ const GENERIC_ARGUMENT =
104
+ "Error on typia.application(): non-specified generic argument(s).";
105
+ const NO_BIGIT = "Error on typia.application(): does not allow bigint type.";
@@ -1,39 +1,43 @@
1
- import ts from "typescript";
2
-
3
- import { RandomProgrammer } from "../../../programmers/RandomProgrammer";
4
-
5
- import { IProject } from "../../IProject";
6
-
7
- export namespace CreateRandomTransformer {
8
- export const transform =
9
- (project: IProject) =>
10
- (modulo: ts.LeftHandSideExpression) =>
11
- (expression: ts.CallExpression): ts.Expression => {
12
- // CHECK GENERIC ARGUMENT EXISTENCE
13
- if (!expression.typeArguments?.[0]) throw new Error(NOT_SPECIFIED);
14
-
15
- // GET TYPE INFO
16
- const node: ts.TypeNode = expression.typeArguments[0];
17
- const type: ts.Type = project.checker.getTypeFromTypeNode(node);
18
-
19
- if (type.isTypeParameter()) throw new Error(NO_GENERIC_ARGUMENT);
20
-
21
- // DO TRANSFORM
22
- return RandomProgrammer.write({
23
- ...project,
24
- options: {
25
- ...project.options,
26
- functional: false,
27
- numeric: false,
28
- },
29
- })(modulo)(expression.arguments?.[0])(
30
- type,
31
- node.getFullText().trim(),
32
- );
33
- };
34
- }
35
-
36
- const NOT_SPECIFIED =
37
- "Error on typia.createRandom(): generic argument is not specified.";
38
- const NO_GENERIC_ARGUMENT =
39
- "Error on typia.createRandom(): non-specified generic argument.";
1
+ import ts from "typescript/lib/tsclibrary";
2
+
3
+ import { RandomProgrammer } from "../../../programmers/RandomProgrammer";
4
+
5
+ import { TsNodeUtil } from "../../../utils/TsNodeUtil";
6
+ import { TsTypeUtil } from "../../../utils/TsTypeUtil";
7
+
8
+ import { IProject } from "../../IProject";
9
+
10
+ export namespace CreateRandomTransformer {
11
+ export const transform =
12
+ (project: IProject) =>
13
+ (modulo: ts.LeftHandSideExpression) =>
14
+ (expression: ts.CallExpression): ts.Expression => {
15
+ // CHECK GENERIC ARGUMENT EXISTENCE
16
+ if (!expression.typeArguments?.[0]) throw new Error(NOT_SPECIFIED);
17
+
18
+ // GET TYPE INFO
19
+ const node: ts.TypeNode = expression.typeArguments[0];
20
+ const type: ts.Type = project.checker.getTypeFromTypeNode(node);
21
+
22
+ if (TsTypeUtil.isTypeParameter(type))
23
+ throw new Error(NO_GENERIC_ARGUMENT);
24
+
25
+ // DO TRANSFORM
26
+ return RandomProgrammer.write({
27
+ ...project,
28
+ options: {
29
+ ...project.options,
30
+ functional: false,
31
+ numeric: false,
32
+ },
33
+ })(modulo)(expression.arguments?.[0])(
34
+ type,
35
+ TsNodeUtil.getFullText(node).trim(),
36
+ );
37
+ };
38
+ }
39
+
40
+ const NOT_SPECIFIED =
41
+ "Error on typia.createRandom(): generic argument is not specified.";
42
+ const NO_GENERIC_ARGUMENT =
43
+ "Error on typia.createRandom(): non-specified generic argument.";
@@ -1,28 +1,31 @@
1
- import ts from "typescript";
2
-
3
- import { LiteralsProgrammer } from "../../../programmers/LiteralsProgrammer";
4
-
5
- import { IProject } from "../../IProject";
6
-
7
- export namespace LiteralsTransformer {
8
- export const transform =
9
- (project: IProject) =>
10
- (expression: ts.CallExpression): ts.Expression => {
11
- // CHECK GENERIC ARGUMENT EXISTENCE
12
- if (!expression.typeArguments?.[0]) throw new Error(NOT_SPECIFIED);
13
-
14
- // GET TYPE INFO
15
- const node: ts.TypeNode = expression.typeArguments[0];
16
- const type: ts.Type = project.checker.getTypeFromTypeNode(node);
17
-
18
- if (type.isTypeParameter()) throw new Error(NO_GENERIC_ARGUMENT);
19
-
20
- // DO TRANSFORM
21
- return LiteralsProgrammer.write(project)(type);
22
- };
23
- }
24
-
25
- const NOT_SPECIFIED =
26
- "Error on typia.literals(): generic argument is not specified.";
27
- const NO_GENERIC_ARGUMENT =
28
- "Error on typia.literals(): non-specified generic argument.";
1
+ import ts from "typescript/lib/tsclibrary";
2
+
3
+ import { LiteralsProgrammer } from "../../../programmers/LiteralsProgrammer";
4
+
5
+ import { TsTypeUtil } from "../../../utils/TsTypeUtil";
6
+
7
+ import { IProject } from "../../IProject";
8
+
9
+ export namespace LiteralsTransformer {
10
+ export const transform =
11
+ (project: IProject) =>
12
+ (expression: ts.CallExpression): ts.Expression => {
13
+ // CHECK GENERIC ARGUMENT EXISTENCE
14
+ if (!expression.typeArguments?.[0]) throw new Error(NOT_SPECIFIED);
15
+
16
+ // GET TYPE INFO
17
+ const node: ts.TypeNode = expression.typeArguments[0];
18
+ const type: ts.Type = project.checker.getTypeFromTypeNode(node);
19
+
20
+ if (TsTypeUtil.isTypeParameter(type))
21
+ throw new Error(NO_GENERIC_ARGUMENT);
22
+
23
+ // DO TRANSFORM
24
+ return LiteralsProgrammer.write(project)(type);
25
+ };
26
+ }
27
+
28
+ const NOT_SPECIFIED =
29
+ "Error on typia.literals(): generic argument is not specified.";
30
+ const NO_GENERIC_ARGUMENT =
31
+ "Error on typia.literals(): non-specified generic argument.";
@@ -1,52 +1,54 @@
1
- import ts from "typescript";
2
-
3
- import { LiteralFactory } from "../../../factories/LiteralFactory";
4
- import { MetadataCollection } from "../../../factories/MetadataCollection";
5
- import { MetadataFactory } from "../../../factories/MetadataFactory";
6
-
7
- import { IMetadataApplication } from "../../../metadata/IMetadataApplication";
8
- import { Metadata } from "../../../metadata/Metadata";
9
-
10
- import { IProject } from "../../IProject";
11
-
12
- export namespace MetadataTransformer {
13
- export const transform =
14
- ({ checker }: IProject) =>
15
- (expression: ts.CallExpression): ts.Expression => {
16
- if (!expression.typeArguments?.length)
17
- throw new Error(NO_GENERIC_ARGUMENT);
18
-
19
- // VALIDATE TUPLE ARGUMENTS
20
- const top: ts.Node = expression.typeArguments[0]!;
21
- if (!ts.isTupleTypeNode(top)) return expression;
22
- else if (top.elements.some((child) => !ts.isTypeNode(child)))
23
- return expression;
24
-
25
- // GET TYPES
26
- const types: ts.Type[] = top.elements.map((child) =>
27
- checker.getTypeFromTypeNode(child as ts.TypeNode),
28
- );
29
- if (types.some((t) => t.isTypeParameter()))
30
- throw new Error(GENERIC_ARGUMENT);
31
-
32
- // METADATA
33
- const collection: MetadataCollection = new MetadataCollection();
34
- const metadatas: Array<Metadata> = types.map((type) =>
35
- MetadataFactory.analyze(checker)({
36
- resolve: false,
37
- constant: true,
38
- })(collection)(type),
39
- );
40
-
41
- // CONVERT TO PRIMITIVE TYPE
42
- const app: IMetadataApplication = {
43
- metadatas: metadatas.map((metadata) => metadata.toJSON()),
44
- collection: collection.objects().map((obj) => obj.toJSON()),
45
- };
46
- return LiteralFactory.generate(app);
47
- };
48
- }
49
-
50
- const NO_GENERIC_ARGUMENT = "Error on typia.metadata(): no generic argument.";
51
- const GENERIC_ARGUMENT =
52
- "Error on typia.metadata(): non-specified generic argument(s).";
1
+ import ts from "typescript/lib/tsclibrary";
2
+
3
+ import { LiteralFactory } from "../../../factories/LiteralFactory";
4
+ import { MetadataCollection } from "../../../factories/MetadataCollection";
5
+ import { MetadataFactory } from "../../../factories/MetadataFactory";
6
+
7
+ import { IMetadataApplication } from "../../../metadata/IMetadataApplication";
8
+ import { Metadata } from "../../../metadata/Metadata";
9
+
10
+ import { TsTypeUtil } from "../../../utils/TsTypeUtil";
11
+
12
+ import { IProject } from "../../IProject";
13
+
14
+ export namespace MetadataTransformer {
15
+ export const transform =
16
+ ({ checker }: IProject) =>
17
+ (expression: ts.CallExpression): ts.Expression => {
18
+ if (!expression.typeArguments?.length)
19
+ throw new Error(NO_GENERIC_ARGUMENT);
20
+
21
+ // VALIDATE TUPLE ARGUMENTS
22
+ const top: ts.Node = expression.typeArguments[0]!;
23
+ if (!ts.isTupleTypeNode(top)) return expression;
24
+ else if (top.elements.some((child) => !ts.isTypeNode(child)))
25
+ return expression;
26
+
27
+ // GET TYPES
28
+ const types: ts.Type[] = top.elements.map((child) =>
29
+ checker.getTypeFromTypeNode(child as ts.TypeNode),
30
+ );
31
+ if (types.some((t) => TsTypeUtil.isTypeParameter(t)))
32
+ throw new Error(GENERIC_ARGUMENT);
33
+
34
+ // METADATA
35
+ const collection: MetadataCollection = new MetadataCollection();
36
+ const metadatas: Array<Metadata> = types.map((type) =>
37
+ MetadataFactory.analyze(checker)({
38
+ resolve: false,
39
+ constant: true,
40
+ })(collection)(type),
41
+ );
42
+
43
+ // CONVERT TO PRIMITIVE TYPE
44
+ const app: IMetadataApplication = {
45
+ metadatas: metadatas.map((metadata) => metadata.toJSON()),
46
+ collection: collection.objects().map((obj) => obj.toJSON()),
47
+ };
48
+ return LiteralFactory.generate(app);
49
+ };
50
+ }
51
+
52
+ const NO_GENERIC_ARGUMENT = "Error on typia.metadata(): no generic argument.";
53
+ const GENERIC_ARGUMENT =
54
+ "Error on typia.metadata(): non-specified generic argument(s).";
@@ -1,42 +1,46 @@
1
- import ts from "typescript";
2
-
3
- import { RandomProgrammer } from "../../../programmers/RandomProgrammer";
4
-
5
- import { IProject } from "../../IProject";
6
-
7
- export namespace RandomTransformer {
8
- export const transform =
9
- (project: IProject) =>
10
- (modulo: ts.LeftHandSideExpression) =>
11
- (expression: ts.CallExpression): ts.Expression => {
12
- // CHECK GENERIC ARGUMENT EXISTENCE
13
- if (!expression.typeArguments?.[0]) throw new Error(NOT_SPECIFIED);
14
-
15
- // GET TYPE INFO
16
- const node: ts.TypeNode = expression.typeArguments[0];
17
- const type: ts.Type = project.checker.getTypeFromTypeNode(node);
18
-
19
- if (type.isTypeParameter()) throw new Error(NO_GENERIC_ARGUMENT);
20
-
21
- // DO TRANSFORM
22
- return ts.factory.createCallExpression(
23
- RandomProgrammer.write({
24
- ...project,
25
- options: {
26
- ...project.options,
27
- functional: false,
28
- numeric: false,
29
- },
30
- })(modulo)()(type, node.getFullText().trim()),
31
- undefined,
32
- expression.arguments.length
33
- ? [expression.arguments[0]!]
34
- : undefined,
35
- );
36
- };
37
- }
38
-
39
- const NOT_SPECIFIED =
40
- "Error on typia.random(): generic argument is not specified.";
41
- const NO_GENERIC_ARGUMENT =
42
- "Error on typia.random(): non-specified generic argument.";
1
+ import ts from "typescript/lib/tsclibrary";
2
+
3
+ import { RandomProgrammer } from "../../../programmers/RandomProgrammer";
4
+
5
+ import { TsNodeUtil } from "../../../utils/TsNodeUtil";
6
+ import { TsTypeUtil } from "../../../utils/TsTypeUtil";
7
+
8
+ import { IProject } from "../../IProject";
9
+
10
+ export namespace RandomTransformer {
11
+ export const transform =
12
+ (project: IProject) =>
13
+ (modulo: ts.LeftHandSideExpression) =>
14
+ (expression: ts.CallExpression): ts.Expression => {
15
+ // CHECK GENERIC ARGUMENT EXISTENCE
16
+ if (!expression.typeArguments?.[0]) throw new Error(NOT_SPECIFIED);
17
+
18
+ // GET TYPE INFO
19
+ const node: ts.TypeNode = expression.typeArguments[0];
20
+ const type: ts.Type = project.checker.getTypeFromTypeNode(node);
21
+
22
+ if (TsTypeUtil.isTypeParameter(type))
23
+ throw new Error(NO_GENERIC_ARGUMENT);
24
+
25
+ // DO TRANSFORM
26
+ return ts.factory.createCallExpression(
27
+ RandomProgrammer.write({
28
+ ...project,
29
+ options: {
30
+ ...project.options,
31
+ functional: false,
32
+ numeric: false,
33
+ },
34
+ })(modulo)()(type, TsNodeUtil.getFullText(node).trim()),
35
+ undefined,
36
+ expression.arguments.length
37
+ ? [expression.arguments[0]!]
38
+ : undefined,
39
+ );
40
+ };
41
+ }
42
+
43
+ const NOT_SPECIFIED =
44
+ "Error on typia.random(): generic argument is not specified.";
45
+ const NO_GENERIC_ARGUMENT =
46
+ "Error on typia.random(): non-specified generic argument.";