typia 3.5.0-dev.20230213 → 3.5.0-dev.20230214

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 (192) hide show
  1. package/README.md +15 -1
  2. package/lib/IRandomGenerator.d.ts +15 -0
  3. package/lib/IRandomGenerator.js +3 -0
  4. package/lib/IRandomGenerator.js.map +1 -0
  5. package/lib/factories/ExpressionFactory.d.ts +1 -0
  6. package/lib/factories/ExpressionFactory.js +4 -0
  7. package/lib/factories/ExpressionFactory.js.map +1 -1
  8. package/lib/factories/MetadataFactory.js +15 -5
  9. package/lib/factories/MetadataFactory.js.map +1 -1
  10. package/lib/factories/MetadataTagFactory.js +11 -101
  11. package/lib/factories/MetadataTagFactory.js.map +1 -1
  12. package/lib/functional/$any.d.ts +1 -0
  13. package/lib/functional/$any.js +8 -0
  14. package/lib/functional/$any.js.map +1 -0
  15. package/lib/{programmers/internal/check_length.d.ts → functional/Namespace.d.ts} +0 -0
  16. package/lib/functional/Namespace.js +80 -0
  17. package/lib/functional/Namespace.js.map +1 -0
  18. package/lib/metadata/IMetadataTag.d.ts +3 -10
  19. package/lib/module.d.ts +254 -18
  20. package/lib/module.js +68 -246
  21. package/lib/module.js.map +1 -1
  22. package/lib/programmers/AssertCloneProgrammer.d.ts +5 -0
  23. package/lib/programmers/AssertCloneProgrammer.js +37 -0
  24. package/lib/programmers/AssertCloneProgrammer.js.map +1 -0
  25. package/lib/programmers/CloneProgrammer.js +2 -4
  26. package/lib/programmers/CloneProgrammer.js.map +1 -1
  27. package/lib/programmers/IsCloneProgrammer.d.ts +5 -0
  28. package/lib/programmers/IsCloneProgrammer.js +37 -0
  29. package/lib/programmers/IsCloneProgrammer.js.map +1 -0
  30. package/lib/programmers/IsProgrammer.d.ts +1 -1
  31. package/lib/programmers/IsProgrammer.js +5 -2
  32. package/lib/programmers/IsProgrammer.js.map +1 -1
  33. package/lib/programmers/RandomProgrammer.d.ts +5 -0
  34. package/lib/programmers/RandomProgrammer.js +338 -0
  35. package/lib/programmers/RandomProgrammer.js.map +1 -0
  36. package/lib/programmers/StringifyProgrammer.js +1 -1
  37. package/lib/programmers/StringifyProgrammer.js.map +1 -1
  38. package/lib/programmers/ValidateCloneProgrammer.d.ts +5 -0
  39. package/lib/programmers/ValidateCloneProgrammer.js +37 -0
  40. package/lib/programmers/ValidateCloneProgrammer.js.map +1 -0
  41. package/lib/programmers/ValidateStringifyProgrammer.js +1 -1
  42. package/lib/programmers/ValidateStringifyProgrammer.js.map +1 -1
  43. package/lib/programmers/helpers/CloneJoiner.js +2 -2
  44. package/lib/programmers/helpers/CloneJoiner.js.map +1 -1
  45. package/lib/programmers/helpers/RandomJoiner.d.ts +10 -0
  46. package/lib/programmers/helpers/RandomJoiner.js +93 -0
  47. package/lib/programmers/helpers/RandomJoiner.js.map +1 -0
  48. package/lib/programmers/helpers/RandomRanger.d.ts +25 -0
  49. package/lib/programmers/helpers/RandomRanger.js +138 -0
  50. package/lib/programmers/helpers/RandomRanger.js.map +1 -0
  51. package/lib/programmers/helpers/StringifyJoinder.js +2 -2
  52. package/lib/programmers/helpers/StringifyJoinder.js.map +1 -1
  53. package/lib/programmers/internal/application_array.js +0 -10
  54. package/lib/programmers/internal/application_array.js.map +1 -1
  55. package/lib/programmers/internal/application_number.js +4 -12
  56. package/lib/programmers/internal/application_number.js.map +1 -1
  57. package/lib/programmers/internal/application_string.js +0 -8
  58. package/lib/programmers/internal/application_string.js.map +1 -1
  59. package/lib/programmers/internal/check_array_length.js +3 -4
  60. package/lib/programmers/internal/check_array_length.js.map +1 -1
  61. package/lib/programmers/internal/check_bigint.js +0 -12
  62. package/lib/programmers/internal/check_bigint.js.map +1 -1
  63. package/lib/programmers/internal/check_number.js +7 -25
  64. package/lib/programmers/internal/check_number.js.map +1 -1
  65. package/lib/programmers/internal/check_string_tags.js +2 -3
  66. package/lib/programmers/internal/check_string_tags.js.map +1 -1
  67. package/lib/schemas/IJsonSchema.d.ts +36 -2
  68. package/lib/transformers/CallExpressionTransformer.js +16 -0
  69. package/lib/transformers/CallExpressionTransformer.js.map +1 -1
  70. package/lib/transformers/features/miscellaneous/AssertCloneTransformer.d.ts +5 -0
  71. package/lib/transformers/features/miscellaneous/AssertCloneTransformer.js +23 -0
  72. package/lib/transformers/features/miscellaneous/AssertCloneTransformer.js.map +1 -0
  73. package/lib/transformers/features/miscellaneous/CreateAssertCloneTransformer.d.ts +5 -0
  74. package/lib/transformers/features/miscellaneous/CreateAssertCloneTransformer.js +18 -0
  75. package/lib/transformers/features/miscellaneous/CreateAssertCloneTransformer.js.map +1 -0
  76. package/lib/transformers/features/miscellaneous/CreateAssertPruneTransformer.js +2 -1
  77. package/lib/transformers/features/miscellaneous/CreateAssertPruneTransformer.js.map +1 -1
  78. package/lib/transformers/features/miscellaneous/CreateCloneTransformer.js +2 -1
  79. package/lib/transformers/features/miscellaneous/CreateCloneTransformer.js.map +1 -1
  80. package/lib/transformers/features/miscellaneous/CreateIsCloneTransformer.d.ts +5 -0
  81. package/lib/transformers/features/miscellaneous/CreateIsCloneTransformer.js +18 -0
  82. package/lib/transformers/features/miscellaneous/CreateIsCloneTransformer.js.map +1 -0
  83. package/lib/transformers/features/miscellaneous/CreateIsPruneTransformer.js +2 -1
  84. package/lib/transformers/features/miscellaneous/CreateIsPruneTransformer.js.map +1 -1
  85. package/lib/transformers/features/miscellaneous/CreatePruneTransformer.js +2 -1
  86. package/lib/transformers/features/miscellaneous/CreatePruneTransformer.js.map +1 -1
  87. package/lib/transformers/features/miscellaneous/CreateRandomGenerator.d.ts +5 -0
  88. package/lib/transformers/features/miscellaneous/CreateRandomGenerator.js +29 -0
  89. package/lib/transformers/features/miscellaneous/CreateRandomGenerator.js.map +1 -0
  90. package/lib/transformers/features/miscellaneous/CreateValidateCloneTransformer.d.ts +5 -0
  91. package/lib/transformers/features/miscellaneous/CreateValidateCloneTransformer.js +18 -0
  92. package/lib/transformers/features/miscellaneous/CreateValidateCloneTransformer.js.map +1 -0
  93. package/lib/transformers/features/miscellaneous/CreateValidatePruneTransformer.js +2 -1
  94. package/lib/transformers/features/miscellaneous/CreateValidatePruneTransformer.js.map +1 -1
  95. package/lib/transformers/features/miscellaneous/IsCloneTransformer.d.ts +5 -0
  96. package/lib/transformers/features/miscellaneous/IsCloneTransformer.js +23 -0
  97. package/lib/transformers/features/miscellaneous/IsCloneTransformer.js.map +1 -0
  98. package/lib/transformers/features/miscellaneous/RandomTransformer.d.ts +5 -0
  99. package/lib/transformers/features/miscellaneous/RandomTransformer.js +35 -0
  100. package/lib/transformers/features/miscellaneous/RandomTransformer.js.map +1 -0
  101. package/lib/transformers/features/miscellaneous/ValidateCloneTransformer.d.ts +5 -0
  102. package/lib/transformers/features/miscellaneous/ValidateCloneTransformer.js +23 -0
  103. package/lib/transformers/features/miscellaneous/ValidateCloneTransformer.js.map +1 -0
  104. package/lib/transformers/features/parsers/AssertParseTransformer.js +2 -1
  105. package/lib/transformers/features/parsers/AssertParseTransformer.js.map +1 -1
  106. package/lib/transformers/features/parsers/CreateAssertParseTransformer.js +2 -1
  107. package/lib/transformers/features/parsers/CreateAssertParseTransformer.js.map +1 -1
  108. package/lib/transformers/features/parsers/CreateIsParseTransformer.js +2 -1
  109. package/lib/transformers/features/parsers/CreateIsParseTransformer.js.map +1 -1
  110. package/lib/transformers/features/parsers/CreateValidateParseTransformer.js +2 -1
  111. package/lib/transformers/features/parsers/CreateValidateParseTransformer.js.map +1 -1
  112. package/lib/transformers/features/parsers/IsParseTransformer.js +2 -1
  113. package/lib/transformers/features/parsers/IsParseTransformer.js.map +1 -1
  114. package/lib/transformers/features/parsers/ValidateParseTransformer.js +2 -1
  115. package/lib/transformers/features/parsers/ValidateParseTransformer.js.map +1 -1
  116. package/lib/transformers/features/stringifiers/CreateAssertStringifyTransformer.js +2 -1
  117. package/lib/transformers/features/stringifiers/CreateAssertStringifyTransformer.js.map +1 -1
  118. package/lib/transformers/features/stringifiers/CreateIsStringifyTransformer.js +2 -1
  119. package/lib/transformers/features/stringifiers/CreateIsStringifyTransformer.js.map +1 -1
  120. package/lib/transformers/features/stringifiers/CreateStringifyTransformer.js +2 -1
  121. package/lib/transformers/features/stringifiers/CreateStringifyTransformer.js.map +1 -1
  122. package/lib/transformers/features/stringifiers/CreateValidateStringifyProgrammer.js +2 -1
  123. package/lib/transformers/features/stringifiers/CreateValidateStringifyProgrammer.js.map +1 -1
  124. package/lib/transformers/features/validators/CreateAssertTransformer.js +2 -1
  125. package/lib/transformers/features/validators/CreateAssertTransformer.js.map +1 -1
  126. package/lib/transformers/features/validators/CreateIsTransformer.js +2 -1
  127. package/lib/transformers/features/validators/CreateIsTransformer.js.map +1 -1
  128. package/lib/transformers/features/validators/CreateValidateTransformer.js +2 -1
  129. package/lib/transformers/features/validators/CreateValidateTransformer.js.map +1 -1
  130. package/lib/utils/RandomGenerator.d.ts +1 -0
  131. package/lib/utils/RandomGenerator.js +85 -0
  132. package/lib/utils/RandomGenerator.js.map +1 -0
  133. package/package.json +8 -3
  134. package/src/IRandomGenerator.ts +16 -0
  135. package/src/factories/ExpressionFactory.ts +11 -0
  136. package/src/factories/MetadataFactory.ts +18 -14
  137. package/src/factories/MetadataTagFactory.ts +11 -97
  138. package/src/functional/$any.ts +3 -0
  139. package/src/functional/Namespace.ts +121 -0
  140. package/src/metadata/IMetadataTag.ts +2 -11
  141. package/src/module.ts +375 -368
  142. package/src/programmers/AssertCloneProgrammer.ts +60 -0
  143. package/src/programmers/CloneProgrammer.ts +3 -9
  144. package/src/programmers/IsCloneProgrammer.ts +66 -0
  145. package/src/programmers/IsProgrammer.ts +8 -5
  146. package/src/programmers/RandomProgrammer.ts +367 -0
  147. package/src/programmers/StringifyProgrammer.ts +2 -4
  148. package/src/programmers/ValidateCloneProgrammer.ts +77 -0
  149. package/src/programmers/ValidateStringifyProgrammer.ts +1 -4
  150. package/src/programmers/helpers/CloneJoiner.ts +2 -4
  151. package/src/programmers/helpers/RandomJoiner.ts +140 -0
  152. package/src/programmers/helpers/RandomRanger.ts +215 -0
  153. package/src/programmers/helpers/StringifyJoinder.ts +4 -4
  154. package/src/programmers/internal/application_array.ts +0 -10
  155. package/src/programmers/internal/application_number.ts +7 -13
  156. package/src/programmers/internal/application_string.ts +0 -8
  157. package/src/programmers/internal/check_array_length.ts +8 -9
  158. package/src/programmers/internal/check_bigint.ts +0 -21
  159. package/src/programmers/internal/check_number.ts +0 -30
  160. package/src/programmers/internal/check_string_tags.ts +7 -7
  161. package/src/schemas/IJsonSchema.ts +36 -1
  162. package/src/transformers/CallExpressionTransformer.ts +19 -0
  163. package/src/transformers/features/miscellaneous/AssertCloneTransformer.ts +38 -0
  164. package/src/transformers/features/miscellaneous/CreateAssertCloneTransformer.ts +32 -0
  165. package/src/transformers/features/miscellaneous/CreateAssertPruneTransformer.ts +1 -1
  166. package/src/transformers/features/miscellaneous/CreateCloneTransformer.ts +1 -1
  167. package/src/transformers/features/miscellaneous/CreateIsCloneTransformer.ts +32 -0
  168. package/src/transformers/features/miscellaneous/CreateIsPruneTransformer.ts +1 -1
  169. package/src/transformers/features/miscellaneous/CreatePruneTransformer.ts +1 -1
  170. package/src/transformers/features/miscellaneous/CreateRandomGenerator.ts +39 -0
  171. package/src/transformers/features/miscellaneous/CreateValidateCloneTransformer.ts +32 -0
  172. package/src/transformers/features/miscellaneous/CreateValidatePruneTransformer.ts +1 -1
  173. package/src/transformers/features/miscellaneous/IsCloneTransformer.ts +38 -0
  174. package/src/transformers/features/miscellaneous/RandomTransformer.ts +45 -0
  175. package/src/transformers/features/miscellaneous/ValidateCloneTransformer.ts +38 -0
  176. package/src/transformers/features/parsers/AssertParseTransformer.ts +1 -1
  177. package/src/transformers/features/parsers/CreateAssertParseTransformer.ts +1 -1
  178. package/src/transformers/features/parsers/CreateIsParseTransformer.ts +1 -1
  179. package/src/transformers/features/parsers/CreateValidateParseTransformer.ts +1 -1
  180. package/src/transformers/features/parsers/IsParseTransformer.ts +1 -1
  181. package/src/transformers/features/parsers/ValidateParseTransformer.ts +1 -1
  182. package/src/transformers/features/stringifiers/CreateAssertStringifyTransformer.ts +1 -1
  183. package/src/transformers/features/stringifiers/CreateIsStringifyTransformer.ts +1 -1
  184. package/src/transformers/features/stringifiers/CreateStringifyTransformer.ts +1 -1
  185. package/src/transformers/features/stringifiers/CreateValidateStringifyProgrammer.ts +1 -1
  186. package/src/transformers/features/validators/CreateAssertTransformer.ts +1 -1
  187. package/src/transformers/features/validators/CreateIsTransformer.ts +1 -1
  188. package/src/transformers/features/validators/CreateValidateTransformer.ts +1 -1
  189. package/src/utils/RandomGenerator.ts +90 -0
  190. package/lib/programmers/internal/check_length.js +0 -28
  191. package/lib/programmers/internal/check_length.js.map +0 -1
  192. package/src/programmers/internal/check_length.ts +0 -46
@@ -1 +1 @@
1
- {"version":3,"file":"CreateValidateParseTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/parsers/CreateValidateParseTransformer.ts"],"names":[],"mappings":";;;AAEA,wFAAuF;AAIvF,IAAiB,8BAA8B,CAoB9C;AApBD,WAAiB,8BAA8B;IAC3C,SAAgB,SAAS,CACrB,OAAiB,EACjB,MAAiC,EACjC,UAA6B;QAG7B,IAAI,CAAC,UAAU,CAAC,aAAa,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;YACzD,MAAM,IAAI,KAAK,sEAA6B,CAAC;QAGjD,IAAM,IAAI,GAAY,OAAO,CAAC,OAAO,CAAC,mBAAmB,CACrD,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAC9B,CAAC;QACF,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,MAAM,IAAI,KAAK,mEAAgC,CAAC;QAGpD,OAAO,iDAAuB,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;IACnE,CAAC;IAlBe,wCAAS,YAkBxB,CAAA;AACL,CAAC,EApBgB,8BAA8B,GAA9B,sCAA8B,KAA9B,sCAA8B,QAoB9C"}
1
+ {"version":3,"file":"CreateValidateParseTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/parsers/CreateValidateParseTransformer.ts"],"names":[],"mappings":";;;AAEA,wFAAuF;AAIvF,IAAiB,8BAA8B,CAoB9C;AApBD,WAAiB,8BAA8B;IAC3C,SAAgB,SAAS,CACrB,OAAiB,EACjB,MAAiC,EACjC,UAA6B;;QAG7B,IAAI,CAAC,CAAA,MAAA,UAAU,CAAC,aAAa,0CAAG,CAAC,CAAC,CAAA;YAC9B,MAAM,IAAI,KAAK,sEAA6B,CAAC;QAGjD,IAAM,IAAI,GAAY,OAAO,CAAC,OAAO,CAAC,mBAAmB,CACrD,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAC9B,CAAC;QACF,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,MAAM,IAAI,KAAK,mEAAgC,CAAC;QAGpD,OAAO,iDAAuB,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;IACnE,CAAC;IAlBe,wCAAS,YAkBxB,CAAA;AACL,CAAC,EApBgB,8BAA8B,GAA9B,sCAA8B,KAA9B,sCAA8B,QAoB9C"}
@@ -9,7 +9,8 @@ var IsParseProgrammer_1 = require("../../../programmers/IsParseProgrammer");
9
9
  var IsParseTransformer;
10
10
  (function (IsParseTransformer) {
11
11
  function transform(project, modulo, expression) {
12
- if (!expression.typeArguments || !expression.typeArguments[0])
12
+ var _a;
13
+ if (!((_a = expression.typeArguments) === null || _a === void 0 ? void 0 : _a[0]))
13
14
  throw new Error("Error on typia.isParse(): generic argument is not specified.");
14
15
  var type = project.checker.getTypeFromTypeNode(expression.typeArguments[0]);
15
16
  if (type.isTypeParameter())
@@ -1 +1 @@
1
- {"version":3,"file":"IsParseTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/parsers/IsParseTransformer.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAE5B,4EAA2E;AAI3E,IAAiB,kBAAkB,CAwBlC;AAxBD,WAAiB,kBAAkB;IAC/B,SAAgB,SAAS,CACrB,OAAiB,EACjB,MAAiC,EACjC,UAA6B;QAG7B,IAAI,CAAC,UAAU,CAAC,aAAa,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;YACzD,MAAM,IAAI,KAAK,gEAA6B,CAAC;QAGjD,IAAM,IAAI,GAAY,OAAO,CAAC,OAAO,CAAC,mBAAmB,CACrD,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAC9B,CAAC;QACF,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,MAAM,IAAI,KAAK,6DAAgC,CAAC;QAGpD,OAAO,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAClC,qCAAiB,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,EACjD,SAAS,EACT,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC,CAC7B,CAAC;IACN,CAAC;IAtBe,4BAAS,YAsBxB,CAAA;AACL,CAAC,EAxBgB,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAwBlC"}
1
+ {"version":3,"file":"IsParseTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/parsers/IsParseTransformer.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAE5B,4EAA2E;AAI3E,IAAiB,kBAAkB,CAwBlC;AAxBD,WAAiB,kBAAkB;IAC/B,SAAgB,SAAS,CACrB,OAAiB,EACjB,MAAiC,EACjC,UAA6B;;QAG7B,IAAI,CAAC,CAAA,MAAA,UAAU,CAAC,aAAa,0CAAG,CAAC,CAAC,CAAA;YAC9B,MAAM,IAAI,KAAK,gEAA6B,CAAC;QAGjD,IAAM,IAAI,GAAY,OAAO,CAAC,OAAO,CAAC,mBAAmB,CACrD,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAC9B,CAAC;QACF,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,MAAM,IAAI,KAAK,6DAAgC,CAAC;QAGpD,OAAO,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAClC,qCAAiB,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,EACjD,SAAS,EACT,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC,CAC7B,CAAC;IACN,CAAC;IAtBe,4BAAS,YAsBxB,CAAA;AACL,CAAC,EAxBgB,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAwBlC"}
@@ -9,7 +9,8 @@ var ValidateParseProgrammer_1 = require("../../../programmers/ValidateParseProgr
9
9
  var ValidateParseTransformer;
10
10
  (function (ValidateParseTransformer) {
11
11
  function transform(project, modulo, expression) {
12
- if (!expression.typeArguments || !expression.typeArguments[0])
12
+ var _a;
13
+ if (!((_a = expression.typeArguments) === null || _a === void 0 ? void 0 : _a[0]))
13
14
  throw new Error("Error on typia.validateParse(): generic argument is not specified.");
14
15
  var type = project.checker.getTypeFromTypeNode(expression.typeArguments[0]);
15
16
  if (type.isTypeParameter())
@@ -1 +1 @@
1
- {"version":3,"file":"ValidateParseTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/parsers/ValidateParseTransformer.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAE5B,wFAAuF;AAIvF,IAAiB,wBAAwB,CAwBxC;AAxBD,WAAiB,wBAAwB;IACrC,SAAgB,SAAS,CACrB,OAAiB,EACjB,MAAiC,EACjC,UAA6B;QAG7B,IAAI,CAAC,UAAU,CAAC,aAAa,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;YACzD,MAAM,IAAI,KAAK,sEAA6B,CAAC;QAGjD,IAAM,IAAI,GAAY,OAAO,CAAC,OAAO,CAAC,mBAAmB,CACrD,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAC9B,CAAC;QACF,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,MAAM,IAAI,KAAK,mEAAgC,CAAC;QAGpD,OAAO,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAClC,iDAAuB,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,EACvD,SAAS,EACT,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC,CAC7B,CAAC;IACN,CAAC;IAtBe,kCAAS,YAsBxB,CAAA;AACL,CAAC,EAxBgB,wBAAwB,GAAxB,gCAAwB,KAAxB,gCAAwB,QAwBxC"}
1
+ {"version":3,"file":"ValidateParseTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/parsers/ValidateParseTransformer.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAE5B,wFAAuF;AAIvF,IAAiB,wBAAwB,CAwBxC;AAxBD,WAAiB,wBAAwB;IACrC,SAAgB,SAAS,CACrB,OAAiB,EACjB,MAAiC,EACjC,UAA6B;;QAG7B,IAAI,CAAC,CAAA,MAAA,UAAU,CAAC,aAAa,0CAAG,CAAC,CAAC,CAAA;YAC9B,MAAM,IAAI,KAAK,sEAA6B,CAAC;QAGjD,IAAM,IAAI,GAAY,OAAO,CAAC,OAAO,CAAC,mBAAmB,CACrD,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAC9B,CAAC;QACF,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,MAAM,IAAI,KAAK,mEAAgC,CAAC;QAGpD,OAAO,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAClC,iDAAuB,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,EACvD,SAAS,EACT,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC,CAC7B,CAAC;IACN,CAAC;IAtBe,kCAAS,YAsBxB,CAAA;AACL,CAAC,EAxBgB,wBAAwB,GAAxB,gCAAwB,KAAxB,gCAAwB,QAwBxC"}
@@ -5,7 +5,8 @@ var AssertStringifyProgrammer_1 = require("../../../programmers/AssertStringifyP
5
5
  var CreateAssertStringifyTransformer;
6
6
  (function (CreateAssertStringifyTransformer) {
7
7
  function transform(project, modulo, expression) {
8
- if (!expression.typeArguments || !expression.typeArguments[0])
8
+ var _a;
9
+ if (!((_a = expression.typeArguments) === null || _a === void 0 ? void 0 : _a[0]))
9
10
  throw new Error("Error on typia.assertStringify(): generic argument is not specified.");
10
11
  var type = project.checker.getTypeFromTypeNode(expression.typeArguments[0]);
11
12
  if (type.isTypeParameter())
@@ -1 +1 @@
1
- {"version":3,"file":"CreateAssertStringifyTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/stringifiers/CreateAssertStringifyTransformer.ts"],"names":[],"mappings":";;;AAEA,4FAA2F;AAI3F,IAAiB,gCAAgC,CAoBhD;AApBD,WAAiB,gCAAgC;IAC7C,SAAgB,SAAS,CACrB,OAAiB,EACjB,MAAiC,EACjC,UAA6B;QAG7B,IAAI,CAAC,UAAU,CAAC,aAAa,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;YACzD,MAAM,IAAI,KAAK,wEAA6B,CAAC;QAGjD,IAAM,IAAI,GAAY,OAAO,CAAC,OAAO,CAAC,mBAAmB,CACrD,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAC9B,CAAC;QACF,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,MAAM,IAAI,KAAK,qEAAgC,CAAC;QAGpD,OAAO,qDAAyB,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;IACrE,CAAC;IAlBe,0CAAS,YAkBxB,CAAA;AACL,CAAC,EApBgB,gCAAgC,GAAhC,wCAAgC,KAAhC,wCAAgC,QAoBhD"}
1
+ {"version":3,"file":"CreateAssertStringifyTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/stringifiers/CreateAssertStringifyTransformer.ts"],"names":[],"mappings":";;;AAEA,4FAA2F;AAI3F,IAAiB,gCAAgC,CAoBhD;AApBD,WAAiB,gCAAgC;IAC7C,SAAgB,SAAS,CACrB,OAAiB,EACjB,MAAiC,EACjC,UAA6B;;QAG7B,IAAI,CAAC,CAAA,MAAA,UAAU,CAAC,aAAa,0CAAG,CAAC,CAAC,CAAA;YAC9B,MAAM,IAAI,KAAK,wEAA6B,CAAC;QAGjD,IAAM,IAAI,GAAY,OAAO,CAAC,OAAO,CAAC,mBAAmB,CACrD,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAC9B,CAAC;QACF,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,MAAM,IAAI,KAAK,qEAAgC,CAAC;QAGpD,OAAO,qDAAyB,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;IACrE,CAAC;IAlBe,0CAAS,YAkBxB,CAAA;AACL,CAAC,EApBgB,gCAAgC,GAAhC,wCAAgC,KAAhC,wCAAgC,QAoBhD"}
@@ -5,7 +5,8 @@ var IsStringifyProgrammer_1 = require("../../../programmers/IsStringifyProgramme
5
5
  var CreateIsStringifyTransformer;
6
6
  (function (CreateIsStringifyTransformer) {
7
7
  function transform(project, modulo, expression) {
8
- if (!expression.typeArguments || !expression.typeArguments[0])
8
+ var _a;
9
+ if (!((_a = expression.typeArguments) === null || _a === void 0 ? void 0 : _a[0]))
9
10
  throw new Error("Error on typia.isStringify(): generic argument is not specified.");
10
11
  var type = project.checker.getTypeFromTypeNode(expression.typeArguments[0]);
11
12
  if (type.isTypeParameter())
@@ -1 +1 @@
1
- {"version":3,"file":"CreateIsStringifyTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/stringifiers/CreateIsStringifyTransformer.ts"],"names":[],"mappings":";;;AAEA,oFAAmF;AAInF,IAAiB,4BAA4B,CAoB5C;AApBD,WAAiB,4BAA4B;IACzC,SAAgB,SAAS,CACrB,OAAiB,EACjB,MAAiC,EACjC,UAA6B;QAG7B,IAAI,CAAC,UAAU,CAAC,aAAa,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;YACzD,MAAM,IAAI,KAAK,oEAA6B,CAAC;QAGjD,IAAM,IAAI,GAAY,OAAO,CAAC,OAAO,CAAC,mBAAmB,CACrD,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAC9B,CAAC;QACF,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,MAAM,IAAI,KAAK,iEAAgC,CAAC;QAGpD,OAAO,6CAAqB,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;IACjE,CAAC;IAlBe,sCAAS,YAkBxB,CAAA;AACL,CAAC,EApBgB,4BAA4B,GAA5B,oCAA4B,KAA5B,oCAA4B,QAoB5C"}
1
+ {"version":3,"file":"CreateIsStringifyTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/stringifiers/CreateIsStringifyTransformer.ts"],"names":[],"mappings":";;;AAEA,oFAAmF;AAInF,IAAiB,4BAA4B,CAoB5C;AApBD,WAAiB,4BAA4B;IACzC,SAAgB,SAAS,CACrB,OAAiB,EACjB,MAAiC,EACjC,UAA6B;;QAG7B,IAAI,CAAC,CAAA,MAAA,UAAU,CAAC,aAAa,0CAAG,CAAC,CAAC,CAAA;YAC9B,MAAM,IAAI,KAAK,oEAA6B,CAAC;QAGjD,IAAM,IAAI,GAAY,OAAO,CAAC,OAAO,CAAC,mBAAmB,CACrD,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAC9B,CAAC;QACF,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,MAAM,IAAI,KAAK,iEAAgC,CAAC;QAGpD,OAAO,6CAAqB,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;IACjE,CAAC;IAlBe,sCAAS,YAkBxB,CAAA;AACL,CAAC,EApBgB,4BAA4B,GAA5B,oCAA4B,KAA5B,oCAA4B,QAoB5C"}
@@ -5,7 +5,8 @@ var StringifyProgrammer_1 = require("../../../programmers/StringifyProgrammer");
5
5
  var CreateStringifyTransformer;
6
6
  (function (CreateStringifyTransformer) {
7
7
  function transform(project, modulo, expression) {
8
- if (!expression.typeArguments || !expression.typeArguments[0])
8
+ var _a;
9
+ if (!((_a = expression.typeArguments) === null || _a === void 0 ? void 0 : _a[0]))
9
10
  throw new Error("Error on typia.stringify(): generic argument is not specified.");
10
11
  var type = project.checker.getTypeFromTypeNode(expression.typeArguments[0]);
11
12
  if (type.isTypeParameter())
@@ -1 +1 @@
1
- {"version":3,"file":"CreateStringifyTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/stringifiers/CreateStringifyTransformer.ts"],"names":[],"mappings":";;;AAEA,gFAA+E;AAI/E,IAAiB,0BAA0B,CAmB1C;AAnBD,WAAiB,0BAA0B;IACvC,SAAgB,SAAS,CACrB,OAAiB,EACjB,MAAiC,EACjC,UAA6B;QAG7B,IAAI,CAAC,UAAU,CAAC,aAAa,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;YACzD,MAAM,IAAI,KAAK,kEAA6B,CAAC;QAGjD,IAAM,IAAI,GAAY,OAAO,CAAC,OAAO,CAAC,mBAAmB,CACrD,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAC9B,CAAC;QACF,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,MAAM,IAAI,KAAK,+DAAgC,CAAC;QAEpD,OAAO,yCAAmB,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;IAC/D,CAAC;IAjBe,oCAAS,YAiBxB,CAAA;AACL,CAAC,EAnBgB,0BAA0B,GAA1B,kCAA0B,KAA1B,kCAA0B,QAmB1C"}
1
+ {"version":3,"file":"CreateStringifyTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/stringifiers/CreateStringifyTransformer.ts"],"names":[],"mappings":";;;AAEA,gFAA+E;AAI/E,IAAiB,0BAA0B,CAmB1C;AAnBD,WAAiB,0BAA0B;IACvC,SAAgB,SAAS,CACrB,OAAiB,EACjB,MAAiC,EACjC,UAA6B;;QAG7B,IAAI,CAAC,CAAA,MAAA,UAAU,CAAC,aAAa,0CAAG,CAAC,CAAC,CAAA;YAC9B,MAAM,IAAI,KAAK,kEAA6B,CAAC;QAGjD,IAAM,IAAI,GAAY,OAAO,CAAC,OAAO,CAAC,mBAAmB,CACrD,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAC9B,CAAC;QACF,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,MAAM,IAAI,KAAK,+DAAgC,CAAC;QAEpD,OAAO,yCAAmB,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;IAC/D,CAAC;IAjBe,oCAAS,YAiBxB,CAAA;AACL,CAAC,EAnBgB,0BAA0B,GAA1B,kCAA0B,KAA1B,kCAA0B,QAmB1C"}
@@ -5,7 +5,8 @@ var ValidateStringifyProgrammer_1 = require("../../../programmers/ValidateString
5
5
  var CreateValidateStringifyTransformer;
6
6
  (function (CreateValidateStringifyTransformer) {
7
7
  function transform(project, modulo, expression) {
8
- if (!expression.typeArguments || !expression.typeArguments[0])
8
+ var _a;
9
+ if (!((_a = expression.typeArguments) === null || _a === void 0 ? void 0 : _a[0]))
9
10
  throw new Error("Error on typia.validateStringify(): generic argument is not specified.");
10
11
  var type = project.checker.getTypeFromTypeNode(expression.typeArguments[0]);
11
12
  if (type.isTypeParameter())
@@ -1 +1 @@
1
- {"version":3,"file":"CreateValidateStringifyProgrammer.js","sourceRoot":"","sources":["../../../../src/transformers/features/stringifiers/CreateValidateStringifyProgrammer.ts"],"names":[],"mappings":";;;AAEA,gGAA+F;AAI/F,IAAiB,kCAAkC,CAoBlD;AApBD,WAAiB,kCAAkC;IAC/C,SAAgB,SAAS,CACrB,OAAiB,EACjB,MAAiC,EACjC,UAA6B;QAG7B,IAAI,CAAC,UAAU,CAAC,aAAa,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;YACzD,MAAM,IAAI,KAAK,0EAA6B,CAAC;QAGjD,IAAM,IAAI,GAAY,OAAO,CAAC,OAAO,CAAC,mBAAmB,CACrD,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAC9B,CAAC;QACF,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,MAAM,IAAI,KAAK,uEAAgC,CAAC;QAGpD,OAAO,yDAA2B,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;IACvE,CAAC;IAlBe,4CAAS,YAkBxB,CAAA;AACL,CAAC,EApBgB,kCAAkC,GAAlC,0CAAkC,KAAlC,0CAAkC,QAoBlD"}
1
+ {"version":3,"file":"CreateValidateStringifyProgrammer.js","sourceRoot":"","sources":["../../../../src/transformers/features/stringifiers/CreateValidateStringifyProgrammer.ts"],"names":[],"mappings":";;;AAEA,gGAA+F;AAI/F,IAAiB,kCAAkC,CAoBlD;AApBD,WAAiB,kCAAkC;IAC/C,SAAgB,SAAS,CACrB,OAAiB,EACjB,MAAiC,EACjC,UAA6B;;QAG7B,IAAI,CAAC,CAAA,MAAA,UAAU,CAAC,aAAa,0CAAG,CAAC,CAAC,CAAA;YAC9B,MAAM,IAAI,KAAK,0EAA6B,CAAC;QAGjD,IAAM,IAAI,GAAY,OAAO,CAAC,OAAO,CAAC,mBAAmB,CACrD,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAC9B,CAAC;QACF,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,MAAM,IAAI,KAAK,uEAAgC,CAAC;QAGpD,OAAO,yDAA2B,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;IACvE,CAAC;IAlBe,4CAAS,YAkBxB,CAAA;AACL,CAAC,EApBgB,kCAAkC,GAAlC,0CAAkC,KAAlC,0CAAkC,QAoBlD"}
@@ -11,7 +11,8 @@ var CreateAssertTransformer;
11
11
  GENERIC_ARGUMENT: "Error on typia.".concat(SYMBOL, "(): non-specified generic argument."),
12
12
  };
13
13
  return function (project, modulo, expression) {
14
- if (!expression.typeArguments || !expression.typeArguments[0])
14
+ var _a;
15
+ if (!((_a = expression.typeArguments) === null || _a === void 0 ? void 0 : _a[0]))
15
16
  throw new Error(MESSAGES.NOT_SPECIFIED);
16
17
  var type = project.checker.getTypeFromTypeNode(expression.typeArguments[0]);
17
18
  if (type.isTypeParameter())
@@ -1 +1 @@
1
- {"version":3,"file":"CreateAssertTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/validators/CreateAssertTransformer.ts"],"names":[],"mappings":";;;AAEA,0EAAyE;AAIzE,IAAiB,uBAAuB,CA4BvC;AA5BD,WAAiB,uBAAuB;IACpC,SAAgB,SAAS,CAAC,MAAe;QACrC,IAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,cAAc,CAAC;QAC9D,IAAM,QAAQ,GAAG;YACb,aAAa,EAAE,yBAAkB,MAAM,2CAAwC;YAC/E,gBAAgB,EAAE,yBAAkB,MAAM,wCAAqC;SAClF,CAAC;QAEF,OAAO,UACH,OAAiB,EACjB,MAAiC,EACjC,UAA6B;YAG7B,IAAI,CAAC,UAAU,CAAC,aAAa,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;gBACzD,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YAG5C,IAAM,IAAI,GAAY,OAAO,CAAC,OAAO,CAAC,mBAAmB,CACrD,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAC9B,CAAC;YACF,IAAI,IAAI,CAAC,eAAe,EAAE;gBACtB,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;YAG/C,OAAO,mCAAgB,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;QACpE,CAAC,CAAC;IACN,CAAC;IA1Be,iCAAS,YA0BxB,CAAA;AACL,CAAC,EA5BgB,uBAAuB,GAAvB,+BAAuB,KAAvB,+BAAuB,QA4BvC"}
1
+ {"version":3,"file":"CreateAssertTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/validators/CreateAssertTransformer.ts"],"names":[],"mappings":";;;AAEA,0EAAyE;AAIzE,IAAiB,uBAAuB,CA4BvC;AA5BD,WAAiB,uBAAuB;IACpC,SAAgB,SAAS,CAAC,MAAe;QACrC,IAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,cAAc,CAAC;QAC9D,IAAM,QAAQ,GAAG;YACb,aAAa,EAAE,yBAAkB,MAAM,2CAAwC;YAC/E,gBAAgB,EAAE,yBAAkB,MAAM,wCAAqC;SAClF,CAAC;QAEF,OAAO,UACH,OAAiB,EACjB,MAAiC,EACjC,UAA6B;;YAG7B,IAAI,CAAC,CAAA,MAAA,UAAU,CAAC,aAAa,0CAAG,CAAC,CAAC,CAAA;gBAC9B,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YAG5C,IAAM,IAAI,GAAY,OAAO,CAAC,OAAO,CAAC,mBAAmB,CACrD,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAC9B,CAAC;YACF,IAAI,IAAI,CAAC,eAAe,EAAE;gBACtB,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;YAG/C,OAAO,mCAAgB,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;QACpE,CAAC,CAAC;IACN,CAAC;IA1Be,iCAAS,YA0BxB,CAAA;AACL,CAAC,EA5BgB,uBAAuB,GAAvB,+BAAuB,KAAvB,+BAAuB,QA4BvC"}
@@ -11,7 +11,8 @@ var CreateIsTransformer;
11
11
  GENERIC_ARGUMENT: "Error on typia.".concat(SYMBOL, "(): non-specified generic argument."),
12
12
  };
13
13
  return function (project, modulo, expression) {
14
- if (!expression.typeArguments || !expression.typeArguments[0])
14
+ var _a;
15
+ if (!((_a = expression.typeArguments) === null || _a === void 0 ? void 0 : _a[0]))
15
16
  throw new Error(MESSAGES.NOT_SPECIFIED);
16
17
  var type = project.checker.getTypeFromTypeNode(expression.typeArguments[0]);
17
18
  if (type.isTypeParameter())
@@ -1 +1 @@
1
- {"version":3,"file":"CreateIsTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/validators/CreateIsTransformer.ts"],"names":[],"mappings":";;;AAEA,kEAAiE;AAIjE,IAAiB,mBAAmB,CA4BnC;AA5BD,WAAiB,mBAAmB;IAChC,SAAgB,SAAS,CAAC,MAAe;QACrC,IAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC;QACpD,IAAM,QAAQ,GAAG;YACb,aAAa,EAAE,yBAAkB,MAAM,2CAAwC;YAC/E,gBAAgB,EAAE,yBAAkB,MAAM,wCAAqC;SAClF,CAAC;QAEF,OAAO,UACH,OAAiB,EACjB,MAAiC,EACjC,UAA6B;YAG7B,IAAI,CAAC,UAAU,CAAC,aAAa,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;gBACzD,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YAG5C,IAAM,IAAI,GAAY,OAAO,CAAC,OAAO,CAAC,mBAAmB,CACrD,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAC9B,CAAC;YACF,IAAI,IAAI,CAAC,eAAe,EAAE;gBACtB,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;YAG/C,OAAO,2BAAY,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;QAChE,CAAC,CAAC;IACN,CAAC;IA1Be,6BAAS,YA0BxB,CAAA;AACL,CAAC,EA5BgB,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QA4BnC"}
1
+ {"version":3,"file":"CreateIsTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/validators/CreateIsTransformer.ts"],"names":[],"mappings":";;;AAEA,kEAAiE;AAIjE,IAAiB,mBAAmB,CA4BnC;AA5BD,WAAiB,mBAAmB;IAChC,SAAgB,SAAS,CAAC,MAAe;QACrC,IAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC;QACpD,IAAM,QAAQ,GAAG;YACb,aAAa,EAAE,yBAAkB,MAAM,2CAAwC;YAC/E,gBAAgB,EAAE,yBAAkB,MAAM,wCAAqC;SAClF,CAAC;QAEF,OAAO,UACH,OAAiB,EACjB,MAAiC,EACjC,UAA6B;;YAG7B,IAAI,CAAC,CAAA,MAAA,UAAU,CAAC,aAAa,0CAAG,CAAC,CAAC,CAAA;gBAC9B,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YAG5C,IAAM,IAAI,GAAY,OAAO,CAAC,OAAO,CAAC,mBAAmB,CACrD,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAC9B,CAAC;YACF,IAAI,IAAI,CAAC,eAAe,EAAE;gBACtB,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;YAG/C,OAAO,2BAAY,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;QAChE,CAAC,CAAC;IACN,CAAC;IA1Be,6BAAS,YA0BxB,CAAA;AACL,CAAC,EA5BgB,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QA4BnC"}
@@ -11,7 +11,8 @@ var CreateValidateTransformer;
11
11
  GENERIC_ARGUMENT: "Error on typia.".concat(SYMBOL, "(): non-specified generic argument."),
12
12
  };
13
13
  return function (project, modulo, expression) {
14
- if (!expression.typeArguments || !expression.typeArguments[0])
14
+ var _a;
15
+ if (!((_a = expression.typeArguments) === null || _a === void 0 ? void 0 : _a[0]))
15
16
  throw new Error(MESSAGES.NOT_SPECIFIED);
16
17
  var type = project.checker.getTypeFromTypeNode(expression.typeArguments[0]);
17
18
  if (type.isTypeParameter())
@@ -1 +1 @@
1
- {"version":3,"file":"CreateValidateTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/validators/CreateValidateTransformer.ts"],"names":[],"mappings":";;;AAEA,8EAA6E;AAI7E,IAAiB,yBAAyB,CA4BzC;AA5BD,WAAiB,yBAAyB;IACtC,SAAgB,SAAS,CAAC,MAAe;QACrC,IAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,gBAAgB,CAAC;QAClE,IAAM,QAAQ,GAAG;YACb,aAAa,EAAE,yBAAkB,MAAM,2CAAwC;YAC/E,gBAAgB,EAAE,yBAAkB,MAAM,wCAAqC;SAClF,CAAC;QAEF,OAAO,UACH,OAAiB,EACjB,MAAiC,EACjC,UAA6B;YAG7B,IAAI,CAAC,UAAU,CAAC,aAAa,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;gBACzD,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YAG5C,IAAM,IAAI,GAAY,OAAO,CAAC,OAAO,CAAC,mBAAmB,CACrD,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAC9B,CAAC;YACF,IAAI,IAAI,CAAC,eAAe,EAAE;gBACtB,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;YAG/C,OAAO,uCAAkB,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;QACtE,CAAC,CAAC;IACN,CAAC;IA1Be,mCAAS,YA0BxB,CAAA;AACL,CAAC,EA5BgB,yBAAyB,GAAzB,iCAAyB,KAAzB,iCAAyB,QA4BzC"}
1
+ {"version":3,"file":"CreateValidateTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/validators/CreateValidateTransformer.ts"],"names":[],"mappings":";;;AAEA,8EAA6E;AAI7E,IAAiB,yBAAyB,CA4BzC;AA5BD,WAAiB,yBAAyB;IACtC,SAAgB,SAAS,CAAC,MAAe;QACrC,IAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,gBAAgB,CAAC;QAClE,IAAM,QAAQ,GAAG;YACb,aAAa,EAAE,yBAAkB,MAAM,2CAAwC;YAC/E,gBAAgB,EAAE,yBAAkB,MAAM,wCAAqC;SAClF,CAAC;QAEF,OAAO,UACH,OAAiB,EACjB,MAAiC,EACjC,UAA6B;;YAG7B,IAAI,CAAC,CAAA,MAAA,UAAU,CAAC,aAAa,0CAAG,CAAC,CAAC,CAAA;gBAC9B,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YAG5C,IAAM,IAAI,GAAY,OAAO,CAAC,OAAO,CAAC,mBAAmB,CACrD,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAC9B,CAAC;YACF,IAAI,IAAI,CAAC,eAAe,EAAE;gBACtB,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;YAG/C,OAAO,uCAAkB,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;QACtE,CAAC,CAAC;IACN,CAAC;IA1Be,mCAAS,YA0BxB,CAAA;AACL,CAAC,EA5BgB,yBAAyB,GAAzB,iCAAyB,KAAzB,iCAAyB,QA4BzC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.RandomGenerator = void 0;
7
+ var randexp_1 = __importDefault(require("randexp"));
8
+ var RandomGenerator;
9
+ (function (RandomGenerator) {
10
+ var ALPHABETS = "abcdefghijklmnopqrstuvwxyz";
11
+ function boolean() {
12
+ return Math.random() < 0.5;
13
+ }
14
+ RandomGenerator.boolean = boolean;
15
+ function integer(min, max) {
16
+ min !== null && min !== void 0 ? min : (min = 0);
17
+ max !== null && max !== void 0 ? max : (max = 100);
18
+ return Math.floor(Math.random() * (max - min + 1)) + min;
19
+ }
20
+ RandomGenerator.integer = integer;
21
+ function bigint(min, max) {
22
+ min !== null && min !== void 0 ? min : (min = BigInt(0));
23
+ max !== null && max !== void 0 ? max : (max = BigInt(100));
24
+ return BigInt(integer(Number(min), Number(max)));
25
+ }
26
+ RandomGenerator.bigint = bigint;
27
+ function number(min, max) {
28
+ min !== null && min !== void 0 ? min : (min = 0);
29
+ max !== null && max !== void 0 ? max : (max = 100);
30
+ return Math.random() * (max - min) + min;
31
+ }
32
+ RandomGenerator.number = number;
33
+ function string(length) {
34
+ return new Array(length !== null && length !== void 0 ? length : integer(5, 10))
35
+ .fill(0)
36
+ .map(function () { return ALPHABETS[integer(0, ALPHABETS.length - 1)]; })
37
+ .join("");
38
+ }
39
+ RandomGenerator.string = string;
40
+ function array(closure, count) {
41
+ return new Array(count !== null && count !== void 0 ? count : integer(0, 3))
42
+ .fill(0)
43
+ .map(function (_e, index) { return closure(index); });
44
+ }
45
+ RandomGenerator.array = array;
46
+ function pick(array) {
47
+ return array[integer(0, array.length - 1)];
48
+ }
49
+ RandomGenerator.pick = pick;
50
+ function uuid() {
51
+ return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function (c) {
52
+ var r = (Math.random() * 16) | 0;
53
+ var v = c === "x" ? r : (r & 0x3) | 0x8;
54
+ return v.toString(16);
55
+ });
56
+ }
57
+ RandomGenerator.uuid = uuid;
58
+ function email() {
59
+ return "".concat(string(10), "@").concat(string(10), ".").concat(string(3));
60
+ }
61
+ RandomGenerator.email = email;
62
+ function url() {
63
+ return "https://".concat(string(10), ".").concat(string(3));
64
+ }
65
+ RandomGenerator.url = url;
66
+ function ipv4() {
67
+ return array(function () { return integer(0, 255); }, 4).join(".");
68
+ }
69
+ RandomGenerator.ipv4 = ipv4;
70
+ function ipv6() {
71
+ return array(function () { return integer(0, 65535).toString(16); }, 8).join(":");
72
+ }
73
+ RandomGenerator.ipv6 = ipv6;
74
+ function pattern(regex) {
75
+ return new randexp_1.default(regex).gen();
76
+ }
77
+ RandomGenerator.pattern = pattern;
78
+ function date(min, max) {
79
+ min !== null && min !== void 0 ? min : (min = 0);
80
+ max !== null && max !== void 0 ? max : (max = Date.now());
81
+ return new Date(number(min, max)).toString();
82
+ }
83
+ RandomGenerator.date = date;
84
+ })(RandomGenerator = exports.RandomGenerator || (exports.RandomGenerator = {}));
85
+ //# sourceMappingURL=RandomGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RandomGenerator.js","sourceRoot":"","sources":["../../src/utils/RandomGenerator.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "typia",
3
- "version": "3.5.0-dev.20230213",
3
+ "version": "3.5.0-dev.20230214",
4
4
  "description": "Superfast runtime validators with only one line",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
@@ -53,7 +53,9 @@
53
53
  "checker",
54
54
  "validator",
55
55
  "safe",
56
- "parse"
56
+ "parse",
57
+ "prune",
58
+ "random"
57
59
  ],
58
60
  "author": "Jeongho Nam",
59
61
  "license": "MIT",
@@ -114,5 +116,8 @@
114
116
  "package.json",
115
117
  "lib",
116
118
  "src"
117
- ]
119
+ ],
120
+ "dependencies": {
121
+ "randexp": "^0.5.3"
122
+ }
118
123
  }
@@ -0,0 +1,16 @@
1
+ export interface IRandomGenerator {
2
+ boolean(): boolean;
3
+ int(minimum?: number, maximum?: number): number;
4
+ number(minimum?: number, maximum?: number): number;
5
+ bigint(minimum?: bigint, maximum?: bigint): bigint;
6
+ string(length?: number): string;
7
+ array<T>(closure: (index: number) => T, count?: number): T[];
8
+
9
+ uuid?(): string;
10
+ email?(): string;
11
+ url?(): string;
12
+ ipv4?(): string;
13
+ ipv6?(): string;
14
+ pattern?(regex: RegExp): string;
15
+ date?(): string;
16
+ }
@@ -63,4 +63,15 @@ export namespace ExpressionFactory {
63
63
  ts.factory.createIdentifier(type),
64
64
  );
65
65
  }
66
+
67
+ export function coalesce(
68
+ x: ts.Expression,
69
+ y: ts.Expression,
70
+ ): ts.Expression {
71
+ return ts.factory.createBinaryExpression(
72
+ x,
73
+ ts.factory.createToken(ts.SyntaxKind.QuestionQuestionToken),
74
+ y,
75
+ );
76
+ }
66
77
  }
@@ -3,8 +3,6 @@ import ts from "typescript";
3
3
  import { Metadata } from "../metadata/Metadata";
4
4
  import { explore_metadata } from "./internal/metadata/explore_metadata";
5
5
 
6
- import { ArrayUtil } from "../utils/ArrayUtil";
7
-
8
6
  import { MetadataCollection } from "./MetadataCollection";
9
7
 
10
8
  export namespace MetadataFactory {
@@ -27,21 +25,27 @@ export namespace MetadataFactory {
27
25
 
28
26
  // FIND RECURSIVE OBJECTS
29
27
  for (const object of collection.objects())
30
- object.recursive = object.properties.some(
31
- (prop) =>
32
- ArrayUtil.has(
33
- prop.value.objects,
34
- (elem) => elem.name === object.name,
35
- ) ||
36
- prop.value.arrays.some((meta) =>
37
- ArrayUtil.has(
38
- meta.objects,
39
- (elem) => elem.name === object.name,
40
- ),
41
- ),
28
+ object.recursive = object.properties.some((prop) =>
29
+ isRecursive(object.name, prop.value),
42
30
  );
43
31
 
44
32
  // RETURNS
45
33
  return metadata;
46
34
  }
35
+
36
+ function isRecursive(name: string, meta: Metadata): boolean {
37
+ const similar = (str: string) =>
38
+ name === str ||
39
+ name.indexOf(`<${str},`) !== -1 ||
40
+ name.indexOf(`, ${str}>`) !== -1 ||
41
+ name.indexOf(`, ${str},`) !== -1;
42
+ return (
43
+ meta.objects.some((obj) => similar(obj.name)) ||
44
+ meta.arrays.some((arr) => isRecursive(name, arr)) ||
45
+ meta.tuples.some((tuple) =>
46
+ tuple.some((m) => isRecursive(name, m.rest ?? m)),
47
+ ) ||
48
+ meta.maps.some((map) => isRecursive(name, map.value))
49
+ );
50
+ }
47
51
  }
@@ -52,11 +52,11 @@ const PARSER: Record<
52
52
  ARRAY
53
53
  ----------------------------------------------------------- */
54
54
  items: (identifier, metadata, text, output) => {
55
- validate(identifier, metadata, output, "items", "array", [
56
- "minItems",
57
- "maxItems",
58
- ]);
59
- return parse_range("items", identifier, text, true);
55
+ validate(identifier, metadata, output, "items", "array", ["minItems"]);
56
+ return {
57
+ kind: "items",
58
+ value: parse_number(identifier, text),
59
+ };
60
60
  },
61
61
  minItems: (identifier, metadata, text, output) => {
62
62
  validate(identifier, metadata, output, "minItems", "array", ["items"]);
@@ -82,19 +82,8 @@ const PARSER: Record<
82
82
  throw new Error(`${LABEL}: invalid type tag on "${identifier()}".`);
83
83
  return { kind: "type", value: text };
84
84
  },
85
- range: (identifier, metadata, text, output) => {
86
- validate(identifier, metadata, output, "range", "number", [
87
- "exclusiveMinimum",
88
- "minimum",
89
- "maximum",
90
- "exclusiveMaximum",
91
- ]);
92
- return parse_range("range", identifier, text, false);
93
- },
94
85
  minimum: (identifier, metadata, text, output) => {
95
86
  validate(identifier, metadata, output, "minimum", "number", [
96
- "range",
97
- "exclusiveMaximum",
98
87
  "exclusiveMinimum",
99
88
  ]);
100
89
  return {
@@ -104,8 +93,6 @@ const PARSER: Record<
104
93
  },
105
94
  maximum: (identifier, metadata, text, output) => {
106
95
  validate(identifier, metadata, output, "maximum", "number", [
107
- "range",
108
- "exclusiveMinimum",
109
96
  "exclusiveMaximum",
110
97
  ]);
111
98
  return {
@@ -115,9 +102,7 @@ const PARSER: Record<
115
102
  },
116
103
  exclusiveMinimum: (identifier, metadata, text, output) => {
117
104
  validate(identifier, metadata, output, "exclusiveMinimum", "number", [
118
- "range",
119
105
  "minimum",
120
- "maximum",
121
106
  ]);
122
107
  return {
123
108
  kind: "exclusiveMinimum",
@@ -126,8 +111,6 @@ const PARSER: Record<
126
111
  },
127
112
  exclusiveMaximum: (identifier, metadata, text, output) => {
128
113
  validate(identifier, metadata, output, "exclusiveMaximum", "number", [
129
- "range",
130
- "minimum",
131
114
  "maximum",
132
115
  ]);
133
116
  return {
@@ -150,14 +133,11 @@ const PARSER: Record<
150
133
  ]);
151
134
 
152
135
  const minimum: boolean = output.some(
153
- (tag) =>
154
- tag.kind === "minimum" ||
155
- tag.kind === "exclusiveMinimum" ||
156
- (tag.kind === "range" && tag.minimum !== undefined),
136
+ (tag) => tag.kind === "minimum" || tag.kind === "exclusiveMinimum",
157
137
  );
158
138
  if (minimum === undefined)
159
139
  throw new Error(
160
- `${LABEL}: step requires minimum tag on "${identifier()}".`,
140
+ `${LABEL}: step requires minimum or exclusiveMinimum tag on "${identifier()}".`,
161
141
  );
162
142
 
163
143
  return {
@@ -193,7 +173,10 @@ const PARSER: Record<
193
173
  "minLength",
194
174
  "maxLength",
195
175
  ]);
196
- return parse_range("length", identifier, text, true);
176
+ return {
177
+ kind: "length",
178
+ value: parse_number(identifier, text),
179
+ };
197
180
  },
198
181
  minLength: (identifier, metadata, text, output) => {
199
182
  validate(identifier, metadata, output, "minLength", "string", [
@@ -215,73 +198,6 @@ const PARSER: Record<
215
198
  },
216
199
  };
217
200
 
218
- function parse_range<Kind extends string>(
219
- kind: Kind,
220
- identifier: () => string,
221
- text: string,
222
- allowScalar: boolean,
223
- ): Omit<IMetadataTag.IRange, "kind"> & { kind: Kind } {
224
- if (allowScalar === true && Number.isNaN(Number(text)) === false) {
225
- const value: number = Number(text);
226
- if (Math.floor(value) !== value)
227
- throw new Error(`${LABEL}: invalid length on "${identifier()}".`);
228
- return {
229
- kind,
230
- minimum: {
231
- include: true,
232
- value,
233
- },
234
- maximum: {
235
- include: true,
236
- value,
237
- },
238
- };
239
- } else if (text.indexOf(",") === -1)
240
- if (LEFT_PARENTHESIS.some((str) => text.indexOf(str) !== -1))
241
- return {
242
- kind,
243
- minimum: parse_side("left")(kind)(identifier)(text),
244
- };
245
- else if (RIGHT_PARENTHESIS.some((str) => text.indexOf(str) !== -1))
246
- return {
247
- kind,
248
- maximum: parse_side("right")(kind)(identifier)(text),
249
- };
250
- else
251
- throw new Error(
252
- `${LABEL}: invalid ${kind} tag on "${identifier()}".`,
253
- );
254
-
255
- const [left, right] = text.split(",") as [string, string];
256
- return {
257
- kind,
258
- minimum: parse_side("left")(kind)(identifier)(left),
259
- maximum: parse_side("right")(kind)(identifier)(right),
260
- };
261
- }
262
-
263
- const parse_side = (side: "left" | "right") => {
264
- const symbol = side === "left" ? LEFT_PARENTHESIS : RIGHT_PARENTHESIS;
265
- const substring: (str: string, index: number) => string =
266
- side === "left"
267
- ? (str, index) => str.substring(index + 1)
268
- : (str, index) => str.substring(0, index);
269
- return (tag: string) => (identifier: () => string) => (text: string) => {
270
- const [index, include] =
271
- text.indexOf(symbol[0]) !== -1
272
- ? [text.indexOf(symbol[0]), true]
273
- : [text.indexOf(symbol[1]), false];
274
- if (index === -1)
275
- throw new Error(
276
- `${LABEL}: invalid ${tag} tag on "${identifier()}".`,
277
- );
278
- return {
279
- include,
280
- value: parse_number(identifier, substring(text, index)),
281
- };
282
- };
283
- };
284
-
285
201
  function parse_number(identifier: () => string, str: string): number {
286
202
  const value: number = Number(str);
287
203
  if (isNaN(value) === true)
@@ -290,8 +206,6 @@ function parse_number(identifier: () => string, str: string): number {
290
206
  }
291
207
 
292
208
  const LABEL = "Error on typia.MetadataTagFactory.generate()";
293
- const LEFT_PARENTHESIS = ["[", "("] as const;
294
- const RIGHT_PARENTHESIS = ["]", ")"] as const;
295
209
  const FORMATS = new Set(["uuid", "email", "url", "mobile", "ipv4", "ipv6"]);
296
210
 
297
211
  const WRONG_TYPE = (
@@ -0,0 +1,3 @@
1
+ export function $any(val: any): any {
2
+ return val !== undefined ? JSON.parse(JSON.stringify(val)) : undefined;
3
+ }