typia 5.0.0-dev.20230827 → 5.0.0-dev.20230829

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 (277) hide show
  1. package/lib/executable/TypiaGenerateWizard.js +1 -1
  2. package/lib/executable/TypiaGenerateWizard.js.map +1 -1
  3. package/lib/executable/TypiaSetupWizard.js +1 -1
  4. package/lib/executable/TypiaSetupWizard.js.map +1 -1
  5. package/lib/executable/setup/PackageManager.js +1 -1
  6. package/lib/executable/setup/PackageManager.js.map +1 -1
  7. package/lib/executable/setup/PluginConfigurator.js +2 -2
  8. package/lib/executable/setup/PluginConfigurator.js.map +1 -1
  9. package/lib/factories/ExpressionFactory.js +2 -2
  10. package/lib/factories/ExpressionFactory.js.map +1 -1
  11. package/lib/factories/JsonMetadataFactory.d.ts +7 -0
  12. package/lib/factories/JsonMetadataFactory.js +38 -0
  13. package/lib/factories/JsonMetadataFactory.js.map +1 -0
  14. package/lib/factories/LiteralFactory.js +1 -1
  15. package/lib/factories/LiteralFactory.js.map +1 -1
  16. package/lib/factories/MetadataCollection.js +0 -1
  17. package/lib/factories/MetadataCollection.js.map +1 -1
  18. package/lib/factories/MetadataCommentTagFactory.js +129 -118
  19. package/lib/factories/MetadataCommentTagFactory.js.map +1 -1
  20. package/lib/factories/MetadataFactory.d.ts +22 -2
  21. package/lib/factories/MetadataFactory.js +248 -17
  22. package/lib/factories/MetadataFactory.js.map +1 -1
  23. package/lib/factories/MetadataTypeTagFactory.d.ts +3 -2
  24. package/lib/factories/MetadataTypeTagFactory.js +246 -173
  25. package/lib/factories/MetadataTypeTagFactory.js.map +1 -1
  26. package/lib/factories/ProtobufFactory.js +112 -97
  27. package/lib/factories/ProtobufFactory.js.map +1 -1
  28. package/lib/factories/TypeFactory.d.ts +0 -1
  29. package/lib/factories/TypeFactory.js +0 -5
  30. package/lib/factories/TypeFactory.js.map +1 -1
  31. package/lib/factories/internal/metadata/emplace_metadata_alias.d.ts +1 -1
  32. package/lib/factories/internal/metadata/emplace_metadata_alias.js +20 -7
  33. package/lib/factories/internal/metadata/emplace_metadata_alias.js.map +1 -1
  34. package/lib/factories/internal/metadata/emplace_metadata_array_type.d.ts +1 -1
  35. package/lib/factories/internal/metadata/emplace_metadata_array_type.js +20 -7
  36. package/lib/factories/internal/metadata/emplace_metadata_array_type.js.map +1 -1
  37. package/lib/factories/internal/metadata/emplace_metadata_object.d.ts +1 -1
  38. package/lib/factories/internal/metadata/emplace_metadata_object.js +100 -84
  39. package/lib/factories/internal/metadata/emplace_metadata_object.js.map +1 -1
  40. package/lib/factories/internal/metadata/emplace_metadata_tuple.d.ts +1 -1
  41. package/lib/factories/internal/metadata/emplace_metadata_tuple.js +34 -21
  42. package/lib/factories/internal/metadata/emplace_metadata_tuple.js.map +1 -1
  43. package/lib/factories/internal/metadata/explore_metadata.d.ts +1 -1
  44. package/lib/factories/internal/metadata/explore_metadata.js +12 -12
  45. package/lib/factories/internal/metadata/explore_metadata.js.map +1 -1
  46. package/lib/factories/internal/metadata/iterate_metadata.d.ts +1 -1
  47. package/lib/factories/internal/metadata/iterate_metadata.js +39 -19
  48. package/lib/factories/internal/metadata/iterate_metadata.js.map +1 -1
  49. package/lib/factories/internal/metadata/iterate_metadata_alias.d.ts +1 -1
  50. package/lib/factories/internal/metadata/iterate_metadata_alias.js +12 -10
  51. package/lib/factories/internal/metadata/iterate_metadata_alias.js.map +1 -1
  52. package/lib/factories/internal/metadata/iterate_metadata_array.d.ts +1 -1
  53. package/lib/factories/internal/metadata/iterate_metadata_array.js +11 -9
  54. package/lib/factories/internal/metadata/iterate_metadata_array.js.map +1 -1
  55. package/lib/factories/internal/metadata/iterate_metadata_collection.d.ts +2 -1
  56. package/lib/factories/internal/metadata/iterate_metadata_collection.js +47 -45
  57. package/lib/factories/internal/metadata/iterate_metadata_collection.js.map +1 -1
  58. package/lib/factories/internal/metadata/iterate_metadata_comment_tags.d.ts +2 -1
  59. package/lib/factories/internal/metadata/iterate_metadata_comment_tags.js +16 -20
  60. package/lib/factories/internal/metadata/iterate_metadata_comment_tags.js.map +1 -1
  61. package/lib/factories/internal/metadata/iterate_metadata_intersection.d.ts +1 -1
  62. package/lib/factories/internal/metadata/iterate_metadata_intersection.js +145 -135
  63. package/lib/factories/internal/metadata/iterate_metadata_intersection.js.map +1 -1
  64. package/lib/factories/internal/metadata/iterate_metadata_map.d.ts +1 -1
  65. package/lib/factories/internal/metadata/iterate_metadata_map.js +28 -15
  66. package/lib/factories/internal/metadata/iterate_metadata_map.js.map +1 -1
  67. package/lib/factories/internal/metadata/iterate_metadata_object.d.ts +1 -1
  68. package/lib/factories/internal/metadata/iterate_metadata_object.js +16 -14
  69. package/lib/factories/internal/metadata/iterate_metadata_object.js.map +1 -1
  70. package/lib/factories/internal/metadata/iterate_metadata_resolve.d.ts +1 -1
  71. package/lib/factories/internal/metadata/iterate_metadata_resolve.js +28 -15
  72. package/lib/factories/internal/metadata/iterate_metadata_resolve.js.map +1 -1
  73. package/lib/factories/internal/metadata/iterate_metadata_set.d.ts +1 -1
  74. package/lib/factories/internal/metadata/iterate_metadata_set.js +24 -11
  75. package/lib/factories/internal/metadata/iterate_metadata_set.js.map +1 -1
  76. package/lib/factories/internal/metadata/iterate_metadata_template.d.ts +1 -1
  77. package/lib/factories/internal/metadata/iterate_metadata_template.js +28 -15
  78. package/lib/factories/internal/metadata/iterate_metadata_template.js.map +1 -1
  79. package/lib/factories/internal/metadata/iterate_metadata_tuple.d.ts +1 -1
  80. package/lib/factories/internal/metadata/iterate_metadata_tuple.js +11 -9
  81. package/lib/factories/internal/metadata/iterate_metadata_tuple.js.map +1 -1
  82. package/lib/factories/internal/metadata/iterate_metadata_union.d.ts +1 -1
  83. package/lib/factories/internal/metadata/iterate_metadata_union.js +20 -7
  84. package/lib/factories/internal/metadata/iterate_metadata_union.js.map +1 -1
  85. package/lib/programmers/CheckerProgrammer.js +13 -8
  86. package/lib/programmers/CheckerProgrammer.js.map +1 -1
  87. package/lib/programmers/FeatureProgrammer.d.ts +1 -1
  88. package/lib/programmers/FeatureProgrammer.js +1 -1
  89. package/lib/programmers/FeatureProgrammer.js.map +1 -1
  90. package/lib/programmers/IsProgrammer.js +1 -1
  91. package/lib/programmers/IsProgrammer.js.map +1 -1
  92. package/lib/programmers/RandomProgrammer.js +9 -4
  93. package/lib/programmers/RandomProgrammer.js.map +1 -1
  94. package/lib/programmers/TypiaProgrammer.js +58 -28
  95. package/lib/programmers/TypiaProgrammer.js.map +1 -1
  96. package/lib/programmers/helpers/ProtobufUtil.js +1 -1
  97. package/lib/programmers/helpers/ProtobufUtil.js.map +1 -1
  98. package/lib/programmers/internal/application_escaped.d.ts +4 -0
  99. package/lib/programmers/internal/{application_resolved.js → application_escaped.js} +4 -4
  100. package/lib/programmers/internal/application_escaped.js.map +1 -0
  101. package/lib/programmers/internal/application_schema.js +5 -5
  102. package/lib/programmers/internal/application_schema.js.map +1 -1
  103. package/lib/programmers/json/JsonApplicationProgrammer.js +5 -1
  104. package/lib/programmers/json/JsonApplicationProgrammer.js.map +1 -1
  105. package/lib/programmers/json/JsonAssertParseProgrammer.js +2 -0
  106. package/lib/programmers/json/JsonAssertParseProgrammer.js.map +1 -1
  107. package/lib/programmers/json/JsonIsParseProgrammer.js +2 -0
  108. package/lib/programmers/json/JsonIsParseProgrammer.js.map +1 -1
  109. package/lib/programmers/json/JsonStringifyProgrammer.js +20 -62
  110. package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
  111. package/lib/programmers/json/JsonValidateParseProgrammer.js +2 -0
  112. package/lib/programmers/json/JsonValidateParseProgrammer.js.map +1 -1
  113. package/lib/programmers/misc/MiscCloneProgrammer.js +13 -8
  114. package/lib/programmers/misc/MiscCloneProgrammer.js.map +1 -1
  115. package/lib/programmers/misc/MiscLiteralsProgrammer.js +10 -5
  116. package/lib/programmers/misc/MiscLiteralsProgrammer.js.map +1 -1
  117. package/lib/programmers/misc/MiscPruneProgrammer.js +13 -8
  118. package/lib/programmers/misc/MiscPruneProgrammer.js.map +1 -1
  119. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js +21 -1
  120. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js.map +1 -1
  121. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js +11 -1
  122. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js.map +1 -1
  123. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js +22 -1
  124. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js.map +1 -1
  125. package/lib/schemas/metadata/Metadata.js +4 -4
  126. package/lib/schemas/metadata/Metadata.js.map +1 -1
  127. package/lib/transform.d.ts +2 -1
  128. package/lib/transform.js +11 -3
  129. package/lib/transform.js.map +1 -1
  130. package/lib/transformers/CallExpressionTransformer.d.ts +1 -1
  131. package/lib/transformers/CallExpressionTransformer.js +2 -1
  132. package/lib/transformers/CallExpressionTransformer.js.map +1 -1
  133. package/lib/transformers/FileTransformer.js +18 -8
  134. package/lib/transformers/FileTransformer.js.map +1 -1
  135. package/lib/transformers/IProject.d.ts +3 -0
  136. package/lib/transformers/NodeTransformer.d.ts +1 -1
  137. package/lib/transformers/TransformerError.d.ts +12 -0
  138. package/lib/transformers/TransformerError.js +66 -0
  139. package/lib/transformers/TransformerError.js.map +1 -0
  140. package/lib/transformers/features/AssertTransformer.d.ts +1 -0
  141. package/lib/transformers/features/CreateAssertTransformer.d.ts +1 -0
  142. package/lib/transformers/features/CreateIsTransformer.d.ts +1 -0
  143. package/lib/transformers/features/CreateRandomTransformer.js +9 -4
  144. package/lib/transformers/features/CreateRandomTransformer.js.map +1 -1
  145. package/lib/transformers/features/CreateValidateTransformer.d.ts +1 -0
  146. package/lib/transformers/features/IsTransformer.d.ts +1 -0
  147. package/lib/transformers/features/RandomTransformer.js +9 -4
  148. package/lib/transformers/features/RandomTransformer.js.map +1 -1
  149. package/lib/transformers/features/ValidateTransformer.d.ts +1 -0
  150. package/lib/transformers/features/json/JsonApplicationTransformer.js +79 -19
  151. package/lib/transformers/features/json/JsonApplicationTransformer.js.map +1 -1
  152. package/lib/transformers/features/json/JsonAssertParseTransformer.d.ts +1 -0
  153. package/lib/transformers/features/json/JsonAssertStringifyTransformer.d.ts +1 -0
  154. package/lib/transformers/features/json/JsonCreateAssertParseTransformer.d.ts +1 -0
  155. package/lib/transformers/features/json/JsonCreateAssertStringifyTransformer.d.ts +1 -0
  156. package/lib/transformers/features/json/JsonCreateIsParseTransformer.d.ts +1 -0
  157. package/lib/transformers/features/json/JsonCreateIsStringifyTransformer.d.ts +1 -0
  158. package/lib/transformers/features/json/JsonCreateStringifyTransformer.d.ts +1 -0
  159. package/lib/transformers/features/json/JsonCreateValidateParseTransformer.d.ts +1 -0
  160. package/lib/transformers/features/json/JsonCreateValidateStringifyProgrammer.d.ts +1 -0
  161. package/lib/transformers/features/json/JsonIsParseTransformer.d.ts +1 -0
  162. package/lib/transformers/features/json/JsonIsStringifyTransformer.d.ts +1 -0
  163. package/lib/transformers/features/json/JsonStringifyTransformer.d.ts +1 -0
  164. package/lib/transformers/features/json/JsonValidateParseTransformer.d.ts +1 -0
  165. package/lib/transformers/features/json/JsonValidateStringifyTransformer.d.ts +1 -0
  166. package/lib/transformers/features/misc/MetadataTransformer.js +13 -5
  167. package/lib/transformers/features/misc/MetadataTransformer.js.map +1 -1
  168. package/lib/transformers/features/misc/MiscAssertCloneTransformer.d.ts +1 -0
  169. package/lib/transformers/features/misc/MiscAssertPruneTransformer.d.ts +1 -0
  170. package/lib/transformers/features/misc/MiscCloneTransformer.d.ts +1 -0
  171. package/lib/transformers/features/misc/MiscCreateAssertCloneTransformer.d.ts +1 -0
  172. package/lib/transformers/features/misc/MiscCreateAssertPruneTransformer.d.ts +1 -0
  173. package/lib/transformers/features/misc/MiscCreateCloneTransformer.d.ts +1 -0
  174. package/lib/transformers/features/misc/MiscCreateIsCloneTransformer.d.ts +1 -0
  175. package/lib/transformers/features/misc/MiscCreateIsPruneTransformer.d.ts +1 -0
  176. package/lib/transformers/features/misc/MiscCreatePruneTransformer.d.ts +1 -0
  177. package/lib/transformers/features/misc/MiscCreateValidateCloneTransformer.d.ts +1 -0
  178. package/lib/transformers/features/misc/MiscCreateValidatePruneTransformer.d.ts +1 -0
  179. package/lib/transformers/features/misc/MiscIsCloneTransformer.d.ts +1 -0
  180. package/lib/transformers/features/misc/MiscIsPruneTransformer.d.ts +1 -0
  181. package/lib/transformers/features/misc/MiscLiteralsTransformer.js +9 -4
  182. package/lib/transformers/features/misc/MiscLiteralsTransformer.js.map +1 -1
  183. package/lib/transformers/features/misc/MiscPruneTransformer.d.ts +1 -0
  184. package/lib/transformers/features/misc/MiscValidateCloneTransformer.d.ts +1 -0
  185. package/lib/transformers/features/misc/MiscValidatePruneTransformer.d.ts +1 -0
  186. package/lib/transformers/features/protobuf/CreateProtobufAssertDecodeTransformer.d.ts +1 -0
  187. package/lib/transformers/features/protobuf/CreateProtobufAssertEncodeTransformer.d.ts +1 -0
  188. package/lib/transformers/features/protobuf/CreateProtobufDecodeTransformer.d.ts +1 -0
  189. package/lib/transformers/features/protobuf/CreateProtobufEncodeTransformer.d.ts +1 -0
  190. package/lib/transformers/features/protobuf/CreateProtobufIsDecodeTransformer.d.ts +1 -0
  191. package/lib/transformers/features/protobuf/CreateProtobufIsEncodeTransformer.d.ts +1 -0
  192. package/lib/transformers/features/protobuf/CreateProtobufValidateDecodeTransformer.d.ts +1 -0
  193. package/lib/transformers/features/protobuf/CreateProtobufValidateEncodeTransformer.d.ts +1 -0
  194. package/lib/transformers/features/protobuf/ProtobufAssertDecodeTransformer.d.ts +1 -0
  195. package/lib/transformers/features/protobuf/ProtobufAssertEncodeTransformer.d.ts +1 -0
  196. package/lib/transformers/features/protobuf/ProtobufDecodeTransformer.d.ts +1 -0
  197. package/lib/transformers/features/protobuf/ProtobufEncodeTransformer.d.ts +1 -0
  198. package/lib/transformers/features/protobuf/ProtobufIsDecodeTransformer.d.ts +1 -0
  199. package/lib/transformers/features/protobuf/ProtobufIsEncodeTransformer.d.ts +1 -0
  200. package/lib/transformers/features/protobuf/ProtobufMessageTransformer.js +9 -2
  201. package/lib/transformers/features/protobuf/ProtobufMessageTransformer.js.map +1 -1
  202. package/lib/transformers/features/protobuf/ProtobufValidateDecodeTransformer.d.ts +1 -0
  203. package/lib/transformers/features/protobuf/ProtobufValidateEncodeTransformer.d.ts +1 -0
  204. package/lib/transformers/internal/GenericTransformer.js +17 -4
  205. package/lib/transformers/internal/GenericTransformer.js.map +1 -1
  206. package/lib/typings/ValidationPipe.d.ts +7 -0
  207. package/lib/typings/ValidationPipe.js +3 -0
  208. package/lib/typings/ValidationPipe.js.map +1 -0
  209. package/package.json +5 -1
  210. package/src/executable/TypiaGenerateWizard.ts +1 -1
  211. package/src/executable/TypiaSetupWizard.ts +1 -1
  212. package/src/executable/setup/PackageManager.ts +1 -1
  213. package/src/executable/setup/PluginConfigurator.ts +2 -2
  214. package/src/factories/ExpressionFactory.ts +2 -2
  215. package/src/factories/JsonMetadataFactory.ts +43 -0
  216. package/src/factories/LiteralFactory.ts +2 -1
  217. package/src/factories/MetadataCollection.ts +0 -5
  218. package/src/factories/MetadataCommentTagFactory.ts +130 -84
  219. package/src/factories/MetadataFactory.ts +175 -7
  220. package/src/factories/MetadataTypeTagFactory.ts +191 -141
  221. package/src/factories/ProtobufFactory.ts +92 -102
  222. package/src/factories/TypeFactory.ts +0 -5
  223. package/src/factories/internal/metadata/emplace_metadata_alias.ts +12 -5
  224. package/src/factories/internal/metadata/emplace_metadata_array_type.ts +12 -5
  225. package/src/factories/internal/metadata/emplace_metadata_object.ts +20 -5
  226. package/src/factories/internal/metadata/emplace_metadata_tuple.ts +12 -2
  227. package/src/factories/internal/metadata/explore_metadata.ts +5 -11
  228. package/src/factories/internal/metadata/iterate_metadata.ts +44 -24
  229. package/src/factories/internal/metadata/iterate_metadata_alias.ts +7 -2
  230. package/src/factories/internal/metadata/iterate_metadata_array.ts +7 -2
  231. package/src/factories/internal/metadata/iterate_metadata_collection.ts +30 -29
  232. package/src/factories/internal/metadata/iterate_metadata_comment_tags.ts +21 -22
  233. package/src/factories/internal/metadata/iterate_metadata_intersection.ts +33 -17
  234. package/src/factories/internal/metadata/iterate_metadata_map.ts +20 -4
  235. package/src/factories/internal/metadata/iterate_metadata_object.ts +2 -1
  236. package/src/factories/internal/metadata/iterate_metadata_resolve.ts +15 -12
  237. package/src/factories/internal/metadata/iterate_metadata_set.ts +11 -2
  238. package/src/factories/internal/metadata/iterate_metadata_template.ts +12 -3
  239. package/src/factories/internal/metadata/iterate_metadata_tuple.ts +7 -2
  240. package/src/factories/internal/metadata/iterate_metadata_union.ts +10 -7
  241. package/src/programmers/CheckerProgrammer.ts +8 -2
  242. package/src/programmers/FeatureProgrammer.ts +4 -1
  243. package/src/programmers/IsProgrammer.ts +1 -1
  244. package/src/programmers/RandomProgrammer.ts +18 -17
  245. package/src/programmers/TypiaProgrammer.ts +27 -2
  246. package/src/programmers/helpers/ProtobufUtil.ts +1 -1
  247. package/src/programmers/internal/{application_resolved.ts → application_escaped.ts} +1 -1
  248. package/src/programmers/internal/application_schema.ts +5 -5
  249. package/src/programmers/json/JsonApplicationProgrammer.ts +6 -3
  250. package/src/programmers/json/JsonAssertParseProgrammer.ts +7 -2
  251. package/src/programmers/json/JsonIsParseProgrammer.ts +7 -2
  252. package/src/programmers/json/JsonStringifyProgrammer.ts +7 -37
  253. package/src/programmers/json/JsonValidateParseProgrammer.ts +7 -2
  254. package/src/programmers/json/JsonValidateStringifyProgrammer.ts +1 -1
  255. package/src/programmers/misc/MiscCloneProgrammer.ts +14 -11
  256. package/src/programmers/misc/MiscLiteralsProgrammer.ts +11 -6
  257. package/src/programmers/misc/MiscPruneProgrammer.ts +8 -2
  258. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +17 -1
  259. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +15 -1
  260. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +18 -1
  261. package/src/schemas/metadata/Metadata.ts +4 -4
  262. package/src/transform.ts +13 -5
  263. package/src/transformers/CallExpressionTransformer.ts +6 -3
  264. package/src/transformers/FileTransformer.ts +25 -13
  265. package/src/transformers/IProject.ts +3 -0
  266. package/src/transformers/NodeTransformer.ts +1 -1
  267. package/src/transformers/TransformerError.ts +55 -0
  268. package/src/transformers/features/CreateRandomTransformer.ts +11 -7
  269. package/src/transformers/features/RandomTransformer.ts +11 -7
  270. package/src/transformers/features/json/JsonApplicationTransformer.ts +39 -35
  271. package/src/transformers/features/misc/MetadataTransformer.ts +18 -10
  272. package/src/transformers/features/misc/MiscLiteralsTransformer.ts +11 -7
  273. package/src/transformers/features/protobuf/ProtobufMessageTransformer.ts +9 -7
  274. package/src/transformers/internal/GenericTransformer.ts +17 -10
  275. package/src/typings/ValidationPipe.ts +9 -0
  276. package/lib/programmers/internal/application_resolved.d.ts +0 -4
  277. package/lib/programmers/internal/application_resolved.js.map +0 -1
@@ -21,6 +21,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
21
21
  Object.defineProperty(exports, "__esModule", { value: true });
22
22
  exports.GenericTransformer = void 0;
23
23
  var typescript_1 = __importDefault(require("typescript"));
24
+ var TransformerError_1 = require("../TransformerError");
24
25
  var GenericTransformer;
25
26
  (function (GenericTransformer) {
26
27
  GenericTransformer.scalar = function (method) {
@@ -29,7 +30,10 @@ var GenericTransformer;
29
30
  return function (modulo) {
30
31
  return function (expression) {
31
32
  if (expression.arguments.length !== 1)
32
- throw new Error("Error on typia.".concat(method, "(): no input value."));
33
+ throw new TransformerError_1.TransformerError({
34
+ code: "typia.".concat(method),
35
+ message: "no input value.",
36
+ });
33
37
  var _a = __read(expression.typeArguments && expression.typeArguments[0]
34
38
  ? [
35
39
  project.checker.getTypeFromTypeNode(expression.typeArguments[0]),
@@ -42,7 +46,10 @@ var GenericTransformer;
42
46
  false,
43
47
  ], 3), type = _a[0], node = _a[1], generic = _a[2];
44
48
  if (type.isTypeParameter())
45
- throw new Error("Error on typia.".concat(method, "(): non-specified generic argument."));
49
+ throw new TransformerError_1.TransformerError({
50
+ code: "typia.".concat(method),
51
+ message: "non-specified generic argument.",
52
+ });
46
53
  return typescript_1.default.factory.createCallExpression(programmer(project)(modulo)(type, generic
47
54
  ? node.getFullText().trim()
48
55
  : name(project.checker)(type)(node)), undefined, [expression.arguments[0]]);
@@ -58,11 +65,17 @@ var GenericTransformer;
58
65
  return function (expression) {
59
66
  var _a;
60
67
  if (!((_a = expression.typeArguments) === null || _a === void 0 ? void 0 : _a[0]))
61
- throw new Error("Error on typia.".concat(method, "(): generic argument is not specified."));
68
+ throw new TransformerError_1.TransformerError({
69
+ code: "typia.".concat(method),
70
+ message: "generic argument is not specified.",
71
+ });
62
72
  var node = expression.typeArguments[0];
63
73
  var type = project.checker.getTypeFromTypeNode(node);
64
74
  if (type.isTypeParameter())
65
- throw new Error("Error on typia.".concat(method, "(): non-specified generic argument."));
75
+ throw new TransformerError_1.TransformerError({
76
+ code: "typia.".concat(method),
77
+ message: "non-specified generic argument.",
78
+ });
66
79
  return programmer(project)(modulo)(type, node.getFullText().trim());
67
80
  };
68
81
  };
@@ -1 +1 @@
1
- {"version":3,"file":"GenericTransformer.js","sourceRoot":"","sources":["../../../src/transformers/internal/GenericTransformer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GenericTransformer.js","sourceRoot":"","sources":["../../../src/transformers/internal/GenericTransformer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export type ValidationPipe<T, E> = {
2
+ success: true;
3
+ data: T;
4
+ } | {
5
+ success: false;
6
+ errors: E[];
7
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ValidationPipe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ValidationPipe.js","sourceRoot":"","sources":["../../src/typings/ValidationPipe.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "typia",
3
- "version": "5.0.0-dev.20230827",
3
+ "version": "5.0.0-dev.20230829",
4
4
  "description": "Superfast runtime validators with only one line",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
@@ -16,7 +16,9 @@
16
16
  "build": "rimraf lib && tsc --removeComments --declaration false && tsc --emitDeclarationOnly",
17
17
  "build:test": "rimraf bin && tsc -p test/tsconfig.json",
18
18
  "build:test:actions": "rimraf bin && tsc -p test/tsconfig.actions.json",
19
+ "build:test:issues": "rimraf bin && tsc -p test/tsconfig.issue.json",
19
20
  "build:benchmark": "rimraf measure && tsc -p benchmark/tsconfig.json",
21
+ "build:test:errors": "rimraf errors/bin && tsc -p errors/tsconfig.json",
20
22
  "build:test:prettier": "npm run build:test && prettier --write ./bin/**/*.js",
21
23
  "dev": "rimraf lib && tsc --watch",
22
24
  "dev:test": "rimraf bin && tsc -p test/tsconfig.json --watch",
@@ -27,6 +29,7 @@
27
29
  "issue": "node test/issue",
28
30
  "issue:generate": "ts-node src/executable/typia generate --input test/issues/generate/input --output test/issues/generate --project test/tsconfig.json",
29
31
  "test": "node bin/test",
32
+ "test:errors": "node errors",
30
33
  "test:manual": "node test/manual",
31
34
  "------------------------------------------------": "",
32
35
  "package:latest": "ts-node build/publish.ts latest",
@@ -94,6 +97,7 @@
94
97
  "@types/nested-error-stacks": "^2.1.0",
95
98
  "@types/node": "^18.15.12",
96
99
  "@types/physical-cpu-count": "^2.0.0",
100
+ "@types/ts-expose-internals": "npm:ts-expose-internals@5.1.6",
97
101
  "@types/uuid": "^8.3.4",
98
102
  "@typescript-eslint/eslint-plugin": "^5.59.11",
99
103
  "@typescript-eslint/parser": "^5.59.11",
@@ -64,7 +64,7 @@ export namespace TypiaGenerateWizard {
64
64
  str.substring(str.length - 5) === ".json",
65
65
  );
66
66
  if (files.length === 0)
67
- throw new Error(`Unable to find "tsconfig.json" file.`);
67
+ throw new URIError(`Unable to find "tsconfig.json" file.`);
68
68
  else if (files.length === 1) return files[0];
69
69
  return select("tsconfig")("TS Config File")(files);
70
70
  };
@@ -126,7 +126,7 @@ export namespace TypiaSetupWizard {
126
126
  );
127
127
  if (fileList.length === 0) {
128
128
  if (process.cwd() !== pack.directory)
129
- throw new Error(`Unable to find "tsconfig.json" file.`);
129
+ throw new URIError(`Unable to find "tsconfig.json" file.`);
130
130
  return null;
131
131
  } else if (fileList.length === 1) return fileList[0];
132
132
  return select("tsconfig")("TS Config File")(fileList);
@@ -15,7 +15,7 @@ export class PackageManager {
15
15
  "package.json",
16
16
  )(process.cwd());
17
17
  if (location === null)
18
- throw new Error(`Unable to find "package.json" file`);
18
+ throw new URIError(`Unable to find "package.json" file`);
19
19
 
20
20
  return new PackageManager(
21
21
  location,
@@ -15,7 +15,7 @@ export namespace PluginConfigurator {
15
15
  | comments.CommentObject
16
16
  | undefined;
17
17
  if (compilerOptions === undefined)
18
- throw new Error(
18
+ throw new ReferenceError(
19
19
  `${args.project} file does not have "compilerOptions" property.`,
20
20
  );
21
21
 
@@ -27,7 +27,7 @@ export namespace PluginConfigurator {
27
27
  if (plugins === undefined)
28
28
  return (compilerOptions.plugins = [] as any);
29
29
  else if (!Array.isArray(plugins))
30
- throw new Error(
30
+ throw new TypeError(
31
31
  `"plugins" property of ${args.project} must be array type.`,
32
32
  );
33
33
  return plugins;
@@ -137,11 +137,11 @@ export namespace ExpressionFactory {
137
137
  );
138
138
  const statement: ts.Statement | undefined = file.statements[0];
139
139
  if (statement === undefined)
140
- throw new Error(
140
+ throw new ReferenceError(
141
141
  "Error on ExpressionFactory.transpile(): no statement exists.",
142
142
  );
143
143
  else if (!ts.isExpressionStatement(statement))
144
- throw new Error(
144
+ throw new TypeError(
145
145
  "Error on ExpressionFactory.transpile(): statement is not an expression statement.",
146
146
  );
147
147
 
@@ -0,0 +1,43 @@
1
+ import ts from "typescript";
2
+
3
+ import { Metadata } from "../schemas/metadata/Metadata";
4
+
5
+ import { TransformerError } from "../transformers/TransformerError";
6
+
7
+ import { MetadataCollection } from "./MetadataCollection";
8
+ import { MetadataFactory } from "./MetadataFactory";
9
+
10
+ export namespace JsonMetadataFactory {
11
+ export const analyze =
12
+ (method: string) =>
13
+ (checker: ts.TypeChecker) =>
14
+ (type: ts.Type): [MetadataCollection, Metadata] => {
15
+ const collection = new MetadataCollection();
16
+ const result = MetadataFactory.analyze(checker)({
17
+ escape: true,
18
+ constant: true,
19
+ absorb: true,
20
+ validate,
21
+ })(collection)(type);
22
+ if (result.success === false)
23
+ throw TransformerError.from(method)(result.errors);
24
+ return [collection, result.data];
25
+ };
26
+
27
+ export const validate = (meta: Metadata) => {
28
+ const output: string[] = [];
29
+ if (
30
+ meta.atomics.some((a) => a.type === "bigint") ||
31
+ meta.constants.some((c) => c.type === "bigint")
32
+ )
33
+ output.push("JSON does not support bigint type.");
34
+ if (
35
+ meta.tuples.some((t) =>
36
+ t.type.elements.some((e) => e.isRequired() === false),
37
+ ) ||
38
+ meta.arrays.some((a) => a.type.value.isRequired() === false)
39
+ )
40
+ output.push("JSON does not support undefined type in array.");
41
+ return output;
42
+ };
43
+ }
@@ -13,8 +13,9 @@ export namespace LiteralFactory {
13
13
  else if (typeof input === "boolean") return generate_value(input);
14
14
  else if (typeof input === "number") return generate_value(input);
15
15
  else if (typeof input === "bigint") return generate_bigint(input);
16
+ // unreachable code
16
17
  else
17
- throw new Error(
18
+ throw new TypeError(
18
19
  "Error on LiteralFactory.generate(): unknown type.",
19
20
  );
20
21
  };
@@ -26,11 +26,6 @@ export class MetadataCollection {
26
26
  private recursive_array_index_: number;
27
27
  private recursive_tuple_index_: number;
28
28
 
29
- /**
30
- * @internal
31
- */
32
- public readonly entire_: Set<Metadata> = new Set();
33
-
34
29
  public constructor(
35
30
  private readonly options?: Partial<MetadataCollection.IOptions>,
36
31
  ) {