typia 5.0.0-dev.2023084 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (584) hide show
  1. package/README.md +1 -2
  2. package/lib/IRandomGenerator.d.ts +4 -3
  3. package/lib/Resolved.d.ts +1 -1
  4. package/lib/executable/TypiaGenerateWizard.js +1 -1
  5. package/lib/executable/TypiaGenerateWizard.js.map +1 -1
  6. package/lib/executable/TypiaSetupWizard.js +1 -1
  7. package/lib/executable/TypiaSetupWizard.js.map +1 -1
  8. package/lib/executable/setup/PackageManager.js +1 -1
  9. package/lib/executable/setup/PackageManager.js.map +1 -1
  10. package/lib/executable/setup/PluginConfigurator.js +2 -2
  11. package/lib/executable/setup/PluginConfigurator.js.map +1 -1
  12. package/lib/factories/ExpressionFactory.d.ts +3 -1
  13. package/lib/factories/ExpressionFactory.js +25 -1
  14. package/lib/factories/ExpressionFactory.js.map +1 -1
  15. package/lib/factories/IdentifierFactory.d.ts +2 -1
  16. package/lib/factories/IdentifierFactory.js +11 -0
  17. package/lib/factories/IdentifierFactory.js.map +1 -1
  18. package/lib/factories/JsonMetadataFactory.d.ts +7 -0
  19. package/lib/factories/JsonMetadataFactory.js +38 -0
  20. package/lib/factories/JsonMetadataFactory.js.map +1 -0
  21. package/lib/factories/LiteralFactory.js +6 -2
  22. package/lib/factories/LiteralFactory.js.map +1 -1
  23. package/lib/factories/MetadataCollection.d.ts +7 -7
  24. package/lib/factories/MetadataCollection.js +4 -6
  25. package/lib/factories/MetadataCollection.js.map +1 -1
  26. package/lib/factories/MetadataCommentTagFactory.js +543 -0
  27. package/lib/factories/MetadataCommentTagFactory.js.map +1 -0
  28. package/lib/factories/MetadataFactory.d.ts +22 -2
  29. package/lib/factories/MetadataFactory.js +248 -17
  30. package/lib/factories/MetadataFactory.js.map +1 -1
  31. package/lib/factories/MetadataTypeTagFactory.d.ts +7 -0
  32. package/lib/factories/MetadataTypeTagFactory.js +280 -0
  33. package/lib/factories/MetadataTypeTagFactory.js.map +1 -0
  34. package/lib/factories/NumericRangeFactory.d.ts +6 -0
  35. package/lib/factories/NumericRangeFactory.js +34 -0
  36. package/lib/factories/NumericRangeFactory.js.map +1 -0
  37. package/lib/factories/ProtobufFactory.js +137 -91
  38. package/lib/factories/ProtobufFactory.js.map +1 -1
  39. package/lib/factories/TypeFactory.d.ts +0 -1
  40. package/lib/factories/TypeFactory.js +0 -5
  41. package/lib/factories/TypeFactory.js.map +1 -1
  42. package/lib/factories/internal/metadata/emend_metadata_atomics.js +7 -1
  43. package/lib/factories/internal/metadata/emend_metadata_atomics.js.map +1 -1
  44. package/lib/factories/internal/metadata/emplace_metadata_alias.d.ts +1 -1
  45. package/lib/factories/internal/metadata/emplace_metadata_alias.js +20 -19
  46. package/lib/factories/internal/metadata/emplace_metadata_alias.js.map +1 -1
  47. package/lib/factories/internal/metadata/emplace_metadata_array_type.d.ts +5 -0
  48. package/lib/factories/internal/metadata/emplace_metadata_array_type.js +51 -0
  49. package/lib/factories/internal/metadata/emplace_metadata_array_type.js.map +1 -0
  50. package/lib/factories/internal/metadata/emplace_metadata_object.d.ts +1 -1
  51. package/lib/factories/internal/metadata/emplace_metadata_object.js +100 -85
  52. package/lib/factories/internal/metadata/emplace_metadata_object.js.map +1 -1
  53. package/lib/factories/internal/metadata/emplace_metadata_tuple.d.ts +2 -2
  54. package/lib/factories/internal/metadata/emplace_metadata_tuple.js +34 -21
  55. package/lib/factories/internal/metadata/emplace_metadata_tuple.js.map +1 -1
  56. package/lib/factories/internal/metadata/explore_metadata.d.ts +1 -1
  57. package/lib/factories/internal/metadata/explore_metadata.js +12 -12
  58. package/lib/factories/internal/metadata/explore_metadata.js.map +1 -1
  59. package/lib/factories/internal/metadata/iterate_metadata.d.ts +1 -1
  60. package/lib/factories/internal/metadata/iterate_metadata.js +39 -19
  61. package/lib/factories/internal/metadata/iterate_metadata.js.map +1 -1
  62. package/lib/factories/internal/metadata/iterate_metadata_alias.d.ts +1 -1
  63. package/lib/factories/internal/metadata/iterate_metadata_alias.js +12 -10
  64. package/lib/factories/internal/metadata/iterate_metadata_alias.js.map +1 -1
  65. package/lib/factories/internal/metadata/iterate_metadata_array.d.ts +1 -1
  66. package/lib/factories/internal/metadata/iterate_metadata_array.js +13 -7
  67. package/lib/factories/internal/metadata/iterate_metadata_array.js.map +1 -1
  68. package/lib/factories/internal/metadata/iterate_metadata_atomic.js +2 -1
  69. package/lib/factories/internal/metadata/iterate_metadata_atomic.js.map +1 -1
  70. package/lib/factories/internal/metadata/iterate_metadata_collection.d.ts +2 -1
  71. package/lib/factories/internal/metadata/iterate_metadata_collection.js +66 -56
  72. package/lib/factories/internal/metadata/iterate_metadata_collection.js.map +1 -1
  73. package/lib/factories/internal/metadata/iterate_metadata_comment_tags.d.ts +3 -0
  74. package/lib/factories/internal/metadata/iterate_metadata_comment_tags.js +45 -0
  75. package/lib/factories/internal/metadata/iterate_metadata_comment_tags.js.map +1 -0
  76. package/lib/factories/internal/metadata/iterate_metadata_intersection.d.ts +1 -1
  77. package/lib/factories/internal/metadata/iterate_metadata_intersection.js +175 -41
  78. package/lib/factories/internal/metadata/iterate_metadata_intersection.js.map +1 -1
  79. package/lib/factories/internal/metadata/iterate_metadata_map.d.ts +1 -1
  80. package/lib/factories/internal/metadata/iterate_metadata_map.js +28 -15
  81. package/lib/factories/internal/metadata/iterate_metadata_map.js.map +1 -1
  82. package/lib/factories/internal/metadata/iterate_metadata_object.d.ts +1 -1
  83. package/lib/factories/internal/metadata/iterate_metadata_object.js +16 -21
  84. package/lib/factories/internal/metadata/iterate_metadata_object.js.map +1 -1
  85. package/lib/factories/internal/metadata/iterate_metadata_resolve.d.ts +1 -1
  86. package/lib/factories/internal/metadata/iterate_metadata_resolve.js +28 -15
  87. package/lib/factories/internal/metadata/iterate_metadata_resolve.js.map +1 -1
  88. package/lib/factories/internal/metadata/iterate_metadata_set.d.ts +1 -1
  89. package/lib/factories/internal/metadata/iterate_metadata_set.js +24 -11
  90. package/lib/factories/internal/metadata/iterate_metadata_set.js.map +1 -1
  91. package/lib/factories/internal/metadata/iterate_metadata_sort.js +2 -2
  92. package/lib/factories/internal/metadata/iterate_metadata_sort.js.map +1 -1
  93. package/lib/factories/internal/metadata/iterate_metadata_template.d.ts +1 -1
  94. package/lib/factories/internal/metadata/iterate_metadata_template.js +28 -15
  95. package/lib/factories/internal/metadata/iterate_metadata_template.js.map +1 -1
  96. package/lib/factories/internal/metadata/iterate_metadata_tuple.d.ts +1 -1
  97. package/lib/factories/internal/metadata/iterate_metadata_tuple.js +12 -6
  98. package/lib/factories/internal/metadata/iterate_metadata_tuple.js.map +1 -1
  99. package/lib/factories/internal/metadata/iterate_metadata_union.d.ts +1 -1
  100. package/lib/factories/internal/metadata/iterate_metadata_union.js +20 -7
  101. package/lib/factories/internal/metadata/iterate_metadata_union.js.map +1 -1
  102. package/lib/functional/$any.js +2 -1
  103. package/lib/functional/$any.js.map +1 -1
  104. package/lib/functional/$clone.d.ts +2 -0
  105. package/lib/functional/$clone.js +8 -0
  106. package/lib/functional/$clone.js.map +1 -0
  107. package/lib/functional/Namespace.js +0 -16
  108. package/lib/functional/Namespace.js.map +1 -1
  109. package/lib/module.d.ts +2 -39
  110. package/lib/module.js +3 -17
  111. package/lib/module.js.map +1 -1
  112. package/lib/programmers/AssertProgrammer.js +28 -10
  113. package/lib/programmers/AssertProgrammer.js.map +1 -1
  114. package/lib/programmers/CheckerProgrammer.js +97 -70
  115. package/lib/programmers/CheckerProgrammer.js.map +1 -1
  116. package/lib/programmers/FeatureProgrammer.d.ts +3 -5
  117. package/lib/programmers/FeatureProgrammer.js +7 -7
  118. package/lib/programmers/FeatureProgrammer.js.map +1 -1
  119. package/lib/programmers/IsProgrammer.d.ts +1 -1
  120. package/lib/programmers/IsProgrammer.js +33 -22
  121. package/lib/programmers/IsProgrammer.js.map +1 -1
  122. package/lib/programmers/RandomProgrammer.js +196 -160
  123. package/lib/programmers/RandomProgrammer.js.map +1 -1
  124. package/lib/programmers/TypiaProgrammer.js +87 -28
  125. package/lib/programmers/TypiaProgrammer.js.map +1 -1
  126. package/lib/programmers/ValidateProgrammer.js +28 -10
  127. package/lib/programmers/ValidateProgrammer.js.map +1 -1
  128. package/lib/programmers/helpers/CloneJoiner.js +10 -2
  129. package/lib/programmers/helpers/CloneJoiner.js.map +1 -1
  130. package/lib/programmers/helpers/ICheckEntry.d.ts +4 -3
  131. package/lib/programmers/helpers/ProtobufUtil.d.ts +6 -2
  132. package/lib/programmers/helpers/ProtobufUtil.js +175 -17
  133. package/lib/programmers/helpers/ProtobufUtil.js.map +1 -1
  134. package/lib/programmers/helpers/RandomJoiner.d.ts +3 -5
  135. package/lib/programmers/helpers/RandomJoiner.js +7 -10
  136. package/lib/programmers/helpers/RandomJoiner.js.map +1 -1
  137. package/lib/programmers/helpers/RandomRanger.d.ts +5 -6
  138. package/lib/programmers/helpers/RandomRanger.js +13 -33
  139. package/lib/programmers/helpers/RandomRanger.js.map +1 -1
  140. package/lib/programmers/helpers/UnionExplorer.d.ts +7 -8
  141. package/lib/programmers/helpers/UnionExplorer.js +46 -35
  142. package/lib/programmers/helpers/UnionExplorer.js.map +1 -1
  143. package/lib/programmers/internal/application_alias.js +0 -1
  144. package/lib/programmers/internal/application_alias.js.map +1 -1
  145. package/lib/programmers/internal/application_array.js +60 -20
  146. package/lib/programmers/internal/application_array.js.map +1 -1
  147. package/lib/programmers/internal/application_escaped.d.ts +4 -0
  148. package/lib/programmers/internal/{application_resolved.js → application_escaped.js} +6 -6
  149. package/lib/programmers/internal/application_escaped.js.map +1 -0
  150. package/lib/programmers/internal/application_number.js +95 -69
  151. package/lib/programmers/internal/application_number.js.map +1 -1
  152. package/lib/programmers/internal/application_object.js +0 -3
  153. package/lib/programmers/internal/application_object.js.map +1 -1
  154. package/lib/programmers/internal/application_schema.js +41 -24
  155. package/lib/programmers/internal/application_schema.js.map +1 -1
  156. package/lib/programmers/internal/application_string.js +56 -22
  157. package/lib/programmers/internal/application_string.js.map +1 -1
  158. package/lib/programmers/internal/application_tuple.js +10 -9
  159. package/lib/programmers/internal/application_tuple.js.map +1 -1
  160. package/lib/programmers/internal/check_array_length.js +25 -25
  161. package/lib/programmers/internal/check_array_length.js.map +1 -1
  162. package/lib/programmers/internal/check_bigint.js +20 -109
  163. package/lib/programmers/internal/check_bigint.js.map +1 -1
  164. package/lib/programmers/internal/check_dynamic_properties.js +1 -1
  165. package/lib/programmers/internal/check_dynamic_properties.js.map +1 -1
  166. package/lib/programmers/internal/check_number.js +57 -147
  167. package/lib/programmers/internal/check_number.js.map +1 -1
  168. package/lib/programmers/internal/check_string.js +21 -33
  169. package/lib/programmers/internal/check_string.js.map +1 -1
  170. package/lib/programmers/internal/check_template.js +31 -49
  171. package/lib/programmers/internal/check_template.js.map +1 -1
  172. package/lib/programmers/internal/check_union_array_like.js +7 -6
  173. package/lib/programmers/internal/check_union_array_like.js.map +1 -1
  174. package/lib/programmers/internal/feature_object_entries.js +1 -1
  175. package/lib/programmers/internal/feature_object_entries.js.map +1 -1
  176. package/lib/programmers/internal/random_custom.js +8 -2
  177. package/lib/programmers/internal/random_custom.js.map +1 -1
  178. package/lib/programmers/internal/wrap_metadata_rest_tuple.js +9 -5
  179. package/lib/programmers/internal/wrap_metadata_rest_tuple.js.map +1 -1
  180. package/lib/programmers/json/JsonApplicationProgrammer.js +5 -1
  181. package/lib/programmers/json/JsonApplicationProgrammer.js.map +1 -1
  182. package/lib/programmers/json/JsonAssertParseProgrammer.js +2 -0
  183. package/lib/programmers/json/JsonAssertParseProgrammer.js.map +1 -1
  184. package/lib/programmers/json/JsonIsParseProgrammer.js +2 -0
  185. package/lib/programmers/json/JsonIsParseProgrammer.js.map +1 -1
  186. package/lib/programmers/json/JsonStringifyProgrammer.js +48 -85
  187. package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
  188. package/lib/programmers/json/JsonValidateParseProgrammer.js +2 -0
  189. package/lib/programmers/json/JsonValidateParseProgrammer.js.map +1 -1
  190. package/lib/programmers/misc/MiscCloneProgrammer.js +34 -25
  191. package/lib/programmers/misc/MiscCloneProgrammer.js.map +1 -1
  192. package/lib/programmers/{IsPruneProgrammer.d.ts → misc/MiscIsPruneProgrammer.d.ts} +2 -2
  193. package/lib/programmers/{IsPruneProgrammer.js → misc/MiscIsPruneProgrammer.js} +11 -11
  194. package/lib/programmers/misc/MiscIsPruneProgrammer.js.map +1 -0
  195. package/lib/programmers/misc/MiscLiteralsProgrammer.js +10 -5
  196. package/lib/programmers/misc/MiscLiteralsProgrammer.js.map +1 -1
  197. package/lib/programmers/misc/MiscPruneProgrammer.js +34 -25
  198. package/lib/programmers/misc/MiscPruneProgrammer.js.map +1 -1
  199. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js +48 -48
  200. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js.map +1 -1
  201. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js +152 -69
  202. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js.map +1 -1
  203. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js +80 -85
  204. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js.map +1 -1
  205. package/lib/protobuf.d.ts +34 -34
  206. package/lib/schemas/json/IJsonSchema.d.ts +10 -38
  207. package/lib/schemas/metadata/IMetadata.d.ts +9 -2
  208. package/lib/schemas/metadata/IMetadataAlias.d.ts +0 -2
  209. package/lib/schemas/metadata/IMetadataArray.d.ts +4 -6
  210. package/lib/schemas/metadata/IMetadataArrayType.d.ts +8 -0
  211. package/lib/{CustomValidatorMap.js → schemas/metadata/IMetadataArrayType.js} +1 -1
  212. package/lib/schemas/metadata/IMetadataArrayType.js.map +1 -0
  213. package/lib/schemas/metadata/IMetadataAtomic.d.ts +3 -10
  214. package/lib/schemas/metadata/IMetadataCollection.d.ts +4 -4
  215. package/lib/schemas/metadata/IMetadataProperty.d.ts +0 -2
  216. package/lib/schemas/metadata/IMetadataTuple.d.ts +4 -6
  217. package/lib/schemas/metadata/IMetadataTupleType.d.ts +8 -0
  218. package/lib/schemas/metadata/IMetadataTupleType.js +3 -0
  219. package/lib/schemas/metadata/IMetadataTupleType.js.map +1 -0
  220. package/lib/schemas/metadata/IMetadataTypeTag.d.ts +8 -0
  221. package/lib/schemas/metadata/IMetadataTypeTag.js +3 -0
  222. package/lib/schemas/metadata/IMetadataTypeTag.js.map +1 -0
  223. package/lib/schemas/metadata/Metadata.d.ts +2 -2
  224. package/lib/schemas/metadata/Metadata.js +177 -122
  225. package/lib/schemas/metadata/Metadata.js.map +1 -1
  226. package/lib/schemas/metadata/MetadataAlias.d.ts +0 -2
  227. package/lib/schemas/metadata/MetadataAlias.js +0 -3
  228. package/lib/schemas/metadata/MetadataAlias.js.map +1 -1
  229. package/lib/schemas/metadata/MetadataArray.d.ts +8 -6
  230. package/lib/schemas/metadata/MetadataArray.js +48 -19
  231. package/lib/schemas/metadata/MetadataArray.js.map +1 -1
  232. package/lib/schemas/metadata/MetadataArrayType.d.ts +14 -0
  233. package/lib/schemas/metadata/MetadataArrayType.js +36 -0
  234. package/lib/schemas/metadata/MetadataArrayType.js.map +1 -0
  235. package/lib/schemas/metadata/MetadataAtomic.d.ts +9 -0
  236. package/lib/schemas/metadata/MetadataAtomic.js +59 -0
  237. package/lib/schemas/metadata/MetadataAtomic.js.map +1 -0
  238. package/lib/schemas/metadata/MetadataProperty.d.ts +0 -2
  239. package/lib/schemas/metadata/MetadataProperty.js +0 -3
  240. package/lib/schemas/metadata/MetadataProperty.js.map +1 -1
  241. package/lib/schemas/metadata/MetadataTuple.d.ts +8 -8
  242. package/lib/schemas/metadata/MetadataTuple.js +4 -19
  243. package/lib/schemas/metadata/MetadataTuple.js.map +1 -1
  244. package/lib/schemas/metadata/MetadataTupleType.d.ts +13 -0
  245. package/lib/schemas/metadata/MetadataTupleType.js +40 -0
  246. package/lib/schemas/metadata/MetadataTupleType.js.map +1 -0
  247. package/lib/tags/ExclusiveMaximum.d.ts +10 -8
  248. package/lib/tags/ExclusiveMinimum.d.ts +10 -8
  249. package/lib/tags/Format.d.ts +8 -8
  250. package/lib/tags/MaxItems.d.ts +8 -8
  251. package/lib/tags/MaxLength.d.ts +8 -8
  252. package/lib/tags/Maximum.d.ts +10 -8
  253. package/lib/tags/MinItems.d.ts +8 -8
  254. package/lib/tags/MinLength.d.ts +8 -8
  255. package/lib/tags/Minimum.d.ts +10 -8
  256. package/lib/tags/MultipleOf.d.ts +10 -8
  257. package/lib/tags/Pattern.d.ts +7 -8
  258. package/lib/tags/TagBase.d.ts +52 -6
  259. package/lib/tags/Type.d.ts +14 -13
  260. package/lib/tags/index.d.ts +1 -0
  261. package/lib/tags/index.js +1 -0
  262. package/lib/tags/index.js.map +1 -1
  263. package/lib/transform.d.ts +2 -1
  264. package/lib/transform.js +11 -3
  265. package/lib/transform.js.map +1 -1
  266. package/lib/transformers/CallExpressionTransformer.d.ts +1 -1
  267. package/lib/transformers/CallExpressionTransformer.js +2 -1
  268. package/lib/transformers/CallExpressionTransformer.js.map +1 -1
  269. package/lib/transformers/FileTransformer.d.ts +1 -1
  270. package/lib/transformers/FileTransformer.js +30 -7
  271. package/lib/transformers/FileTransformer.js.map +1 -1
  272. package/lib/transformers/IProject.d.ts +4 -0
  273. package/lib/transformers/NodeTransformer.d.ts +1 -1
  274. package/lib/transformers/TransformerError.d.ts +12 -0
  275. package/lib/transformers/TransformerError.js +66 -0
  276. package/lib/transformers/TransformerError.js.map +1 -0
  277. package/lib/transformers/features/AssertTransformer.d.ts +1 -0
  278. package/lib/transformers/features/CreateAssertTransformer.d.ts +1 -0
  279. package/lib/transformers/features/CreateIsTransformer.d.ts +1 -0
  280. package/lib/transformers/features/CreateRandomTransformer.js +9 -4
  281. package/lib/transformers/features/CreateRandomTransformer.js.map +1 -1
  282. package/lib/transformers/features/CreateValidateTransformer.d.ts +1 -0
  283. package/lib/transformers/features/IsTransformer.d.ts +1 -0
  284. package/lib/transformers/features/RandomTransformer.js +9 -4
  285. package/lib/transformers/features/RandomTransformer.js.map +1 -1
  286. package/lib/transformers/features/ValidateTransformer.d.ts +1 -0
  287. package/lib/transformers/features/json/JsonApplicationTransformer.js +79 -17
  288. package/lib/transformers/features/json/JsonApplicationTransformer.js.map +1 -1
  289. package/lib/transformers/features/json/JsonAssertParseTransformer.d.ts +1 -0
  290. package/lib/transformers/features/json/JsonAssertStringifyTransformer.d.ts +1 -0
  291. package/lib/transformers/features/json/JsonCreateAssertParseTransformer.d.ts +1 -0
  292. package/lib/transformers/features/json/JsonCreateAssertStringifyTransformer.d.ts +1 -0
  293. package/lib/transformers/features/json/JsonCreateIsParseTransformer.d.ts +1 -0
  294. package/lib/transformers/features/json/JsonCreateIsStringifyTransformer.d.ts +1 -0
  295. package/lib/transformers/features/json/JsonCreateStringifyTransformer.d.ts +1 -0
  296. package/lib/transformers/features/json/JsonCreateValidateParseTransformer.d.ts +1 -0
  297. package/lib/transformers/features/json/JsonCreateValidateStringifyProgrammer.d.ts +1 -0
  298. package/lib/transformers/features/json/JsonIsParseTransformer.d.ts +1 -0
  299. package/lib/transformers/features/json/JsonIsStringifyTransformer.d.ts +1 -0
  300. package/lib/transformers/features/json/JsonStringifyTransformer.d.ts +1 -0
  301. package/lib/transformers/features/json/JsonValidateParseTransformer.d.ts +1 -0
  302. package/lib/transformers/features/json/JsonValidateStringifyTransformer.d.ts +1 -0
  303. package/lib/transformers/features/misc/MetadataTransformer.js +13 -5
  304. package/lib/transformers/features/misc/MetadataTransformer.js.map +1 -1
  305. package/lib/transformers/features/misc/MiscAssertCloneTransformer.d.ts +1 -0
  306. package/lib/transformers/features/misc/MiscAssertPruneTransformer.d.ts +1 -0
  307. package/lib/transformers/features/misc/MiscCloneTransformer.d.ts +1 -0
  308. package/lib/transformers/features/misc/MiscCreateAssertCloneTransformer.d.ts +1 -0
  309. package/lib/transformers/features/misc/MiscCreateAssertPruneTransformer.d.ts +1 -0
  310. package/lib/transformers/features/misc/MiscCreateCloneTransformer.d.ts +1 -0
  311. package/lib/transformers/features/misc/MiscCreateIsCloneTransformer.d.ts +1 -0
  312. package/lib/transformers/features/misc/MiscCreateIsPruneTransformer.d.ts +1 -0
  313. package/lib/transformers/features/misc/MiscCreateIsPruneTransformer.js +2 -2
  314. package/lib/transformers/features/misc/MiscCreateIsPruneTransformer.js.map +1 -1
  315. package/lib/transformers/features/misc/MiscCreatePruneTransformer.d.ts +1 -0
  316. package/lib/transformers/features/misc/MiscCreateValidateCloneTransformer.d.ts +1 -0
  317. package/lib/transformers/features/misc/MiscCreateValidatePruneTransformer.d.ts +1 -0
  318. package/lib/transformers/features/misc/MiscIsCloneTransformer.d.ts +1 -0
  319. package/lib/transformers/features/misc/MiscIsPruneTransformer.d.ts +1 -0
  320. package/lib/transformers/features/misc/MiscIsPruneTransformer.js +2 -2
  321. package/lib/transformers/features/misc/MiscIsPruneTransformer.js.map +1 -1
  322. package/lib/transformers/features/misc/MiscLiteralsTransformer.js +9 -4
  323. package/lib/transformers/features/misc/MiscLiteralsTransformer.js.map +1 -1
  324. package/lib/transformers/features/misc/MiscPruneTransformer.d.ts +1 -0
  325. package/lib/transformers/features/misc/MiscValidateCloneTransformer.d.ts +1 -0
  326. package/lib/transformers/features/misc/MiscValidatePruneTransformer.d.ts +1 -0
  327. package/lib/transformers/features/protobuf/CreateProtobufAssertDecodeTransformer.d.ts +1 -0
  328. package/lib/transformers/features/protobuf/CreateProtobufAssertEncodeTransformer.d.ts +1 -0
  329. package/lib/transformers/features/protobuf/CreateProtobufDecodeTransformer.d.ts +1 -0
  330. package/lib/transformers/features/protobuf/CreateProtobufEncodeTransformer.d.ts +1 -0
  331. package/lib/transformers/features/protobuf/CreateProtobufIsDecodeTransformer.d.ts +1 -0
  332. package/lib/transformers/features/protobuf/CreateProtobufIsEncodeTransformer.d.ts +1 -0
  333. package/lib/transformers/features/protobuf/CreateProtobufValidateDecodeTransformer.d.ts +1 -0
  334. package/lib/transformers/features/protobuf/CreateProtobufValidateEncodeTransformer.d.ts +1 -0
  335. package/lib/transformers/features/protobuf/ProtobufAssertDecodeTransformer.d.ts +1 -0
  336. package/lib/transformers/features/protobuf/ProtobufAssertEncodeTransformer.d.ts +1 -0
  337. package/lib/transformers/features/protobuf/ProtobufDecodeTransformer.d.ts +1 -0
  338. package/lib/transformers/features/protobuf/ProtobufEncodeTransformer.d.ts +1 -0
  339. package/lib/transformers/features/protobuf/ProtobufIsDecodeTransformer.d.ts +1 -0
  340. package/lib/transformers/features/protobuf/ProtobufIsEncodeTransformer.d.ts +1 -0
  341. package/lib/transformers/features/protobuf/ProtobufMessageTransformer.js +9 -2
  342. package/lib/transformers/features/protobuf/ProtobufMessageTransformer.js.map +1 -1
  343. package/lib/transformers/features/protobuf/ProtobufValidateDecodeTransformer.d.ts +1 -0
  344. package/lib/transformers/features/protobuf/ProtobufValidateEncodeTransformer.d.ts +1 -0
  345. package/lib/transformers/internal/GenericTransformer.js +17 -4
  346. package/lib/transformers/internal/GenericTransformer.js.map +1 -1
  347. package/lib/typings/ProtobufAtomic.d.ts +5 -0
  348. package/lib/{schemas/metadata/ICommentTag.js → typings/ProtobufAtomic.js} +1 -1
  349. package/lib/typings/ProtobufAtomic.js.map +1 -0
  350. package/lib/typings/ValidationPipe.d.ts +7 -0
  351. package/lib/{schemas/metadata/IMetadataTag.js → typings/ValidationPipe.js} +1 -1
  352. package/lib/typings/ValidationPipe.js.map +1 -0
  353. package/package.json +6 -2
  354. package/src/IRandomGenerator.ts +4 -3
  355. package/src/Primitive.ts +135 -135
  356. package/src/Resolved.ts +116 -116
  357. package/src/executable/TypiaGenerateWizard.ts +1 -1
  358. package/src/executable/TypiaSetupWizard.ts +1 -1
  359. package/src/executable/setup/PackageManager.ts +1 -1
  360. package/src/executable/setup/PluginConfigurator.ts +2 -2
  361. package/src/factories/ExpressionFactory.ts +46 -2
  362. package/src/factories/IdentifierFactory.ts +15 -0
  363. package/src/factories/JsonMetadataFactory.ts +43 -0
  364. package/src/factories/LiteralFactory.ts +11 -3
  365. package/src/factories/MetadataCollection.ts +18 -18
  366. package/src/factories/MetadataCommentTagFactory.ts +629 -0
  367. package/src/factories/MetadataFactory.ts +214 -46
  368. package/src/factories/MetadataTypeTagFactory.ts +313 -0
  369. package/src/factories/NumericRangeFactory.ts +33 -0
  370. package/src/factories/ProtobufFactory.ts +272 -268
  371. package/src/factories/TypeFactory.ts +0 -5
  372. package/src/factories/internal/metadata/emend_metadata_atomics.ts +40 -35
  373. package/src/factories/internal/metadata/emplace_metadata_alias.ts +12 -11
  374. package/src/factories/internal/metadata/{emplace_metadata_array.ts → emplace_metadata_array_type.ts} +14 -7
  375. package/src/factories/internal/metadata/emplace_metadata_object.ts +20 -6
  376. package/src/factories/internal/metadata/emplace_metadata_tuple.ts +13 -3
  377. package/src/factories/internal/metadata/explore_metadata.ts +32 -38
  378. package/src/factories/internal/metadata/iterate_metadata.ts +44 -24
  379. package/src/factories/internal/metadata/iterate_metadata_alias.ts +7 -2
  380. package/src/factories/internal/metadata/iterate_metadata_array.ts +19 -6
  381. package/src/factories/internal/metadata/iterate_metadata_atomic.ts +62 -63
  382. package/src/factories/internal/metadata/iterate_metadata_collection.ts +141 -133
  383. package/src/factories/internal/metadata/iterate_metadata_comment_tags.ts +26 -0
  384. package/src/factories/internal/metadata/iterate_metadata_intersection.ts +141 -28
  385. package/src/factories/internal/metadata/iterate_metadata_map.ts +20 -4
  386. package/src/factories/internal/metadata/iterate_metadata_native.ts +210 -210
  387. package/src/factories/internal/metadata/iterate_metadata_object.ts +12 -11
  388. package/src/factories/internal/metadata/iterate_metadata_resolve.ts +52 -49
  389. package/src/factories/internal/metadata/iterate_metadata_set.ts +11 -2
  390. package/src/factories/internal/metadata/iterate_metadata_sort.ts +69 -69
  391. package/src/factories/internal/metadata/iterate_metadata_template.ts +12 -3
  392. package/src/factories/internal/metadata/iterate_metadata_tuple.ts +18 -5
  393. package/src/factories/internal/metadata/iterate_metadata_union.ts +10 -7
  394. package/src/functional/$ProtobufWriter.ts +151 -151
  395. package/src/functional/$any.ts +3 -1
  396. package/src/functional/$clone.ts +4 -0
  397. package/src/functional/Namespace.ts +0 -16
  398. package/src/json.ts +648 -648
  399. package/src/misc.ts +651 -651
  400. package/src/module.ts +656 -709
  401. package/src/programmers/AssertProgrammer.ts +317 -281
  402. package/src/programmers/CheckerProgrammer.ts +1137 -1174
  403. package/src/programmers/FeatureProgrammer.ts +13 -32
  404. package/src/programmers/IsProgrammer.ts +252 -241
  405. package/src/programmers/RandomProgrammer.ts +878 -874
  406. package/src/programmers/TypiaProgrammer.ts +36 -2
  407. package/src/programmers/ValidateProgrammer.ts +346 -307
  408. package/src/programmers/helpers/AtomicPredicator.ts +31 -31
  409. package/src/programmers/helpers/CloneJoiner.ts +57 -20
  410. package/src/programmers/helpers/FunctionImporeter.ts +91 -91
  411. package/src/programmers/helpers/ICheckEntry.ts +4 -3
  412. package/src/programmers/helpers/ProtobufUtil.ts +125 -29
  413. package/src/programmers/helpers/RandomJoiner.ts +11 -33
  414. package/src/programmers/helpers/RandomRanger.ts +16 -51
  415. package/src/programmers/helpers/StringifyPredicator.ts +12 -12
  416. package/src/programmers/helpers/UnionExplorer.ts +46 -51
  417. package/src/programmers/helpers/disable_function_importer_declare.ts +32 -32
  418. package/src/programmers/internal/application_alias.ts +0 -1
  419. package/src/programmers/internal/application_array.ts +33 -10
  420. package/src/programmers/internal/application_default_string.ts +37 -37
  421. package/src/programmers/internal/{application_resolved.ts → application_escaped.ts} +55 -55
  422. package/src/programmers/internal/application_number.ts +76 -70
  423. package/src/programmers/internal/application_object.ts +0 -3
  424. package/src/programmers/internal/application_schema.ts +175 -157
  425. package/src/programmers/internal/application_string.ts +33 -27
  426. package/src/programmers/internal/application_tuple.ts +12 -11
  427. package/src/programmers/internal/check_array_length.ts +34 -28
  428. package/src/programmers/internal/check_bigint.ts +26 -91
  429. package/src/programmers/internal/check_dynamic_properties.ts +1 -2
  430. package/src/programmers/internal/check_number.ts +83 -236
  431. package/src/programmers/internal/check_string.ts +37 -17
  432. package/src/programmers/internal/check_template.ts +17 -12
  433. package/src/programmers/internal/check_union_array_like.ts +4 -18
  434. package/src/programmers/internal/feature_object_entries.ts +12 -18
  435. package/src/programmers/internal/metadata_to_pattern.ts +34 -34
  436. package/src/programmers/internal/random_custom.ts +11 -3
  437. package/src/programmers/internal/stringify_dynamic_properties.ts +171 -171
  438. package/src/programmers/internal/wrap_metadata_rest_tuple.ts +9 -5
  439. package/src/programmers/json/JsonApplicationProgrammer.ts +6 -3
  440. package/src/programmers/json/JsonAssertParseProgrammer.ts +7 -2
  441. package/src/programmers/json/JsonIsParseProgrammer.ts +7 -2
  442. package/src/programmers/json/JsonStringifyProgrammer.ts +964 -995
  443. package/src/programmers/json/JsonValidateParseProgrammer.ts +7 -2
  444. package/src/programmers/json/JsonValidateStringifyProgrammer.ts +1 -1
  445. package/src/programmers/misc/MiscAssertCloneProgrammer.ts +71 -71
  446. package/src/programmers/misc/MiscCloneProgrammer.ts +774 -775
  447. package/src/programmers/misc/MiscIsCloneProgrammer.ts +78 -78
  448. package/src/programmers/{IsPruneProgrammer.ts → misc/MiscIsPruneProgrammer.ts} +7 -7
  449. package/src/programmers/misc/MiscLiteralsProgrammer.ts +69 -64
  450. package/src/programmers/misc/MiscPruneProgrammer.ts +550 -544
  451. package/src/programmers/misc/MiscValidateCloneProgrammer.ts +85 -85
  452. package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +75 -75
  453. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +655 -673
  454. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +883 -814
  455. package/src/programmers/protobuf/ProtobufIsDecodeProgrammer.ts +85 -85
  456. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +23 -36
  457. package/src/programmers/protobuf/ProtobufValidateDecodeProgrammer.ts +75 -75
  458. package/src/protobuf.ts +881 -881
  459. package/src/schemas/json/IJsonSchema.ts +11 -38
  460. package/src/schemas/metadata/IMetadata.ts +34 -27
  461. package/src/schemas/metadata/IMetadataAlias.ts +0 -2
  462. package/src/schemas/metadata/IMetadataArray.ts +4 -7
  463. package/src/schemas/metadata/IMetadataArrayType.ts +10 -0
  464. package/src/schemas/metadata/IMetadataAtomic.ts +3 -10
  465. package/src/schemas/metadata/IMetadataCollection.ts +4 -4
  466. package/src/schemas/metadata/IMetadataDictionary.ts +4 -4
  467. package/src/schemas/metadata/IMetadataEscaped.ts +6 -6
  468. package/src/schemas/metadata/IMetadataProperty.ts +0 -2
  469. package/src/schemas/metadata/IMetadataTuple.ts +4 -7
  470. package/src/schemas/metadata/IMetadataTupleType.ts +10 -0
  471. package/src/schemas/metadata/IMetadataTypeTag.ts +8 -0
  472. package/src/schemas/metadata/Metadata.ts +685 -643
  473. package/src/schemas/metadata/MetadataAlias.ts +0 -5
  474. package/src/schemas/metadata/MetadataArray.ts +28 -34
  475. package/src/schemas/metadata/MetadataArrayType.ts +57 -0
  476. package/src/schemas/metadata/MetadataAtomic.ts +42 -0
  477. package/src/schemas/metadata/MetadataEscaped.ts +51 -51
  478. package/src/schemas/metadata/MetadataProperty.ts +0 -5
  479. package/src/schemas/metadata/MetadataTuple.ts +9 -35
  480. package/src/schemas/metadata/MetadataTupleType.ts +67 -0
  481. package/src/tags/ExclusiveMaximum.ts +13 -8
  482. package/src/tags/ExclusiveMinimum.ts +13 -8
  483. package/src/tags/Format.ts +21 -20
  484. package/src/tags/MaxItems.ts +9 -8
  485. package/src/tags/MaxLength.ts +9 -8
  486. package/src/tags/Maximum.ts +13 -8
  487. package/src/tags/MinItems.ts +9 -8
  488. package/src/tags/MinLength.ts +9 -8
  489. package/src/tags/Minimum.ts +13 -8
  490. package/src/tags/MultipleOf.ts +15 -10
  491. package/src/tags/Pattern.ts +8 -8
  492. package/src/tags/TagBase.ts +64 -13
  493. package/src/tags/Type.ts +26 -29
  494. package/src/tags/index.ts +1 -0
  495. package/src/transform.ts +13 -5
  496. package/src/transformers/CallExpressionTransformer.ts +6 -3
  497. package/src/transformers/FileTransformer.ts +23 -13
  498. package/src/transformers/IProject.ts +4 -0
  499. package/src/transformers/NodeTransformer.ts +1 -1
  500. package/src/transformers/TransformerError.ts +55 -0
  501. package/src/transformers/features/CreateRandomTransformer.ts +11 -7
  502. package/src/transformers/features/RandomTransformer.ts +11 -7
  503. package/src/transformers/features/json/JsonApplicationTransformer.ts +116 -111
  504. package/src/transformers/features/misc/MetadataTransformer.ts +61 -53
  505. package/src/transformers/features/misc/MiscCreateIsPruneTransformer.ts +2 -2
  506. package/src/transformers/features/misc/MiscIsPruneTransformer.ts +2 -2
  507. package/src/transformers/features/misc/MiscLiteralsTransformer.ts +11 -7
  508. package/src/transformers/features/protobuf/ProtobufMessageTransformer.ts +9 -7
  509. package/src/transformers/internal/GenericTransformer.ts +17 -10
  510. package/src/typings/Atomic.ts +1 -0
  511. package/src/typings/ProtobufAtomic.ts +19 -0
  512. package/src/typings/ValidationPipe.ts +9 -0
  513. package/src/utils/RandomGenerator.ts +83 -83
  514. package/lib/CustomValidatorMap.d.ts +0 -110
  515. package/lib/CustomValidatorMap.js.map +0 -1
  516. package/lib/factories/MetadataTagFactory.d.ts +0 -6
  517. package/lib/factories/MetadataTagFactory.js +0 -312
  518. package/lib/factories/MetadataTagFactory.js.map +0 -1
  519. package/lib/factories/internal/metadata/emplace_metadata_array.d.ts +0 -5
  520. package/lib/factories/internal/metadata/emplace_metadata_array.js +0 -38
  521. package/lib/factories/internal/metadata/emplace_metadata_array.js.map +0 -1
  522. package/lib/factories/internal/metadata/iterate_metadata_tag.d.ts +0 -2
  523. package/lib/factories/internal/metadata/iterate_metadata_tag.js +0 -50
  524. package/lib/factories/internal/metadata/iterate_metadata_tag.js.map +0 -1
  525. package/lib/functional/$is_custom.d.ts +0 -2
  526. package/lib/functional/$is_custom.js +0 -13
  527. package/lib/functional/$is_custom.js.map +0 -1
  528. package/lib/functional/$is_date.d.ts +0 -1
  529. package/lib/functional/$is_date.js +0 -7
  530. package/lib/functional/$is_date.js.map +0 -1
  531. package/lib/functional/$is_datetime.d.ts +0 -1
  532. package/lib/functional/$is_datetime.js +0 -8
  533. package/lib/functional/$is_datetime.js.map +0 -1
  534. package/lib/functional/$is_email.d.ts +0 -1
  535. package/lib/functional/$is_email.js +0 -7
  536. package/lib/functional/$is_email.js.map +0 -1
  537. package/lib/functional/$is_ipv4.d.ts +0 -1
  538. package/lib/functional/$is_ipv4.js +0 -7
  539. package/lib/functional/$is_ipv4.js.map +0 -1
  540. package/lib/functional/$is_ipv6.d.ts +0 -1
  541. package/lib/functional/$is_ipv6.js +0 -7
  542. package/lib/functional/$is_ipv6.js.map +0 -1
  543. package/lib/functional/$is_url.d.ts +0 -1
  544. package/lib/functional/$is_url.js +0 -7
  545. package/lib/functional/$is_url.js.map +0 -1
  546. package/lib/functional/$is_uuid.d.ts +0 -1
  547. package/lib/functional/$is_uuid.js +0 -7
  548. package/lib/functional/$is_uuid.js.map +0 -1
  549. package/lib/programmers/IsPruneProgrammer.js.map +0 -1
  550. package/lib/programmers/internal/application_resolved.d.ts +0 -4
  551. package/lib/programmers/internal/application_resolved.js.map +0 -1
  552. package/lib/programmers/internal/check_array.js +0 -44
  553. package/lib/programmers/internal/check_array.js.map +0 -1
  554. package/lib/programmers/internal/check_custom.d.ts +0 -1
  555. package/lib/programmers/internal/check_custom.js +0 -30
  556. package/lib/programmers/internal/check_custom.js.map +0 -1
  557. package/lib/programmers/internal/check_string_tags.d.ts +0 -1
  558. package/lib/programmers/internal/check_string_tags.js +0 -89
  559. package/lib/programmers/internal/check_string_tags.js.map +0 -1
  560. package/lib/programmers/internal/get_comment_tags.d.ts +0 -1
  561. package/lib/programmers/internal/get_comment_tags.js +0 -25
  562. package/lib/programmers/internal/get_comment_tags.js.map +0 -1
  563. package/lib/schemas/metadata/ICommentTag.d.ts +0 -4
  564. package/lib/schemas/metadata/ICommentTag.js.map +0 -1
  565. package/lib/schemas/metadata/IMetadataTag.d.ts +0 -63
  566. package/lib/schemas/metadata/IMetadataTag.js.map +0 -1
  567. package/src/CustomValidatorMap.ts +0 -126
  568. package/src/factories/MetadataTagFactory.ts +0 -366
  569. package/src/factories/internal/metadata/iterate_metadata_tag.ts +0 -31
  570. package/src/functional/$is_custom.ts +0 -14
  571. package/src/functional/$is_date.ts +0 -3
  572. package/src/functional/$is_datetime.ts +0 -2
  573. package/src/functional/$is_email.ts +0 -4
  574. package/src/functional/$is_ipv4.ts +0 -4
  575. package/src/functional/$is_ipv6.ts +0 -4
  576. package/src/functional/$is_url.ts +0 -4
  577. package/src/functional/$is_uuid.ts +0 -4
  578. package/src/programmers/internal/check_array.ts +0 -30
  579. package/src/programmers/internal/check_custom.ts +0 -31
  580. package/src/programmers/internal/check_string_tags.ts +0 -67
  581. package/src/programmers/internal/get_comment_tags.ts +0 -23
  582. package/src/schemas/metadata/ICommentTag.ts +0 -4
  583. package/src/schemas/metadata/IMetadataTag.ts +0 -112
  584. /package/lib/{programmers/internal/check_array.d.ts → factories/MetadataCommentTagFactory.d.ts} +0 -0
@@ -1,8 +1,8 @@
1
- export type Format<Value extends "email" | "uuid" | "ipv4" | "ipv6" | "url" | "date" | "date-time"> = {
2
- "typia.tag"?: {
3
- target: "string";
4
- kind: "format";
5
- value: Value;
6
- validate: Value extends "email" ? `/^(([^<>()[\]\.,;:\s@\"]+(\.[^<>()[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i.test($input)` : Value extends "uuid" ? `/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i.test($input)` : Value extends "ipv4" ? `/^(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test($input)` : Value extends "ipv6" ? `/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/.test($input)` : Value extends "url" ? `/^[a-zA-Z0-9]+:\/\/(?:www.)?[-a-zA-Z0-9@:%._+~#=]{1,256}.[a-zA-Z0-9()]{1,6}\b(?:[-a-zA-Z0-9()@:%_+.~#?&/=]*)$/.test($input)` : Value extends "date" ? `/^(\d{4})-(\d{2})-(\d{2})$/.test($input)` : `!isNaN(new Date($input).getTime())`;
7
- };
8
- };
1
+ import { TagBase } from "./TagBase";
2
+ export type Format<Value extends "email" | "uuid" | "ipv4" | "ipv6" | "url" | "date" | "date-time"> = TagBase<{
3
+ target: "string";
4
+ kind: "format";
5
+ value: Value;
6
+ validate: Value extends "email" ? `/^(([^<>()[\\]\\.,;:\\s@\\"]+(\\.[^<>()[\\]\\.,;:\\s@\\"]+)*)|(\\".+\\"))@(([^<>()[\\]\\.,;:\\s@\\"]+\\.)+[^<>()[\\]\\.,;:\\s@\\"]{2,})$/i.test($input)` : Value extends "uuid" ? `/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i.test($input)` : Value extends "ipv4" ? `/^(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test($input)` : Value extends "ipv6" ? `/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/.test($input)` : Value extends "url" ? `/^[a-zA-Z0-9]+:\\/\\/(?:www.)?[-a-zA-Z0-9@:%._+~#=]{1,256}.[a-zA-Z0-9()]{1,6}\\b(?:[-a-zA-Z0-9()@:%_+.~#?&/=]*)$/.test($input)` : Value extends "date" ? `/^(\\d{4})-(\\d{2})-(\\d{2})$/.test($input)` : `!isNaN(new Date($input).getTime())`;
7
+ exclusive: ["pattern"];
8
+ }>;
@@ -1,8 +1,8 @@
1
- export type MaxItems<Size extends number> = {
2
- "typia.tag"?: {
3
- targeet: "array";
4
- kind: "maxItems";
5
- value: Size;
6
- validate: `$input.length <= ${Size}`;
7
- };
8
- };
1
+ import { TagBase } from "./TagBase";
2
+ export type MaxItems<Value extends number> = TagBase<{
3
+ target: "array";
4
+ kind: "maxItems";
5
+ value: Value;
6
+ validate: `$input.length <= ${Value}`;
7
+ exclusive: true;
8
+ }>;
@@ -1,8 +1,8 @@
1
- export type MaxLength<Fixed extends number> = {
2
- "typia.tag"?: {
3
- target: "array";
4
- kind: "maxLength";
5
- value: number;
6
- validate: `$input.length <= ${Fixed}`;
7
- };
8
- };
1
+ import { TagBase } from "./TagBase";
2
+ export type MaxLength<Value extends number> = TagBase<{
3
+ target: "string";
4
+ kind: "maxLength";
5
+ value: Value;
6
+ validate: `$input.length <= ${Value}`;
7
+ exclusive: true;
8
+ }>;
@@ -1,8 +1,10 @@
1
- export type Maximum<Fixed extends number | bigint> = {
2
- "typia.tag"?: {
3
- target: Fixed extends number ? "number" : "bigint";
4
- kind: "maximum";
5
- value: Fixed;
6
- validate: `$input <= ${Fixed}`;
7
- };
8
- };
1
+ import { TagBase } from "./TagBase";
2
+ export type Maximum<Value extends number | bigint> = TagBase<{
3
+ target: Value extends number ? "number" : "bigint";
4
+ kind: "maximum";
5
+ value: Value;
6
+ validate: `$input <= ${Numeric<Value>}`;
7
+ exclusive: ["maximum", "exclusiveMaximum"];
8
+ }>;
9
+ type Numeric<Value extends number | bigint> = Value extends number ? Value : `BigInt(${Value})`;
10
+ export {};
@@ -1,8 +1,8 @@
1
- export type MinItems<Size extends number> = {
2
- "typia.tag"?: {
3
- targeet: "array";
4
- kind: "minItems";
5
- value: Size;
6
- validate: `${Size} <= $input.length`;
7
- };
8
- };
1
+ import { TagBase } from "./TagBase";
2
+ export type MinItems<Value extends number> = TagBase<{
3
+ target: "array";
4
+ kind: "minItems";
5
+ value: Value;
6
+ validate: `${Value} <= $input.length`;
7
+ exclusive: true;
8
+ }>;
@@ -1,8 +1,8 @@
1
- export type MinLength<Fixed extends number> = {
2
- "typia.tag"?: {
3
- target: "array";
4
- kind: "minLength";
5
- value: number;
6
- validate: `${Fixed} <= $input.length`;
7
- };
8
- };
1
+ import { TagBase } from "./TagBase";
2
+ export type MinLength<Value extends number> = TagBase<{
3
+ target: "string";
4
+ kind: "minLength";
5
+ value: Value;
6
+ validate: `${Value} <= $input.length`;
7
+ exclusive: true;
8
+ }>;
@@ -1,8 +1,10 @@
1
- export type Minimum<Fixed extends number | bigint> = {
2
- "typia.tag"?: {
3
- target: Fixed extends number ? "number" : "bigint";
4
- kind: "minimum";
5
- value: Fixed;
6
- validate?: `${Fixed} <= $input`;
7
- };
8
- };
1
+ import { TagBase } from "./TagBase";
2
+ export type Minimum<Value extends number | bigint> = TagBase<{
3
+ target: Value extends number ? "number" : "bigint";
4
+ kind: "minimum";
5
+ value: Value;
6
+ validate: `${Numeric<Value>} <= $input`;
7
+ exclusive: ["minimum", "exclusiveMinimum"];
8
+ }>;
9
+ type Numeric<Value extends number | bigint> = Value extends number ? Value : `BigInt(${Value})`;
10
+ export {};
@@ -1,8 +1,10 @@
1
- export type MultipleOf<Fixed extends number | bigint> = {
2
- "typia.tag"?: {
3
- target: Fixed extends bigint ? "bigint" : "number";
4
- kind: "multipleOf";
5
- value: Fixed;
6
- validate: `$input % ${Fixed} === ${Fixed extends bigint ? "bigint" : "number"}`;
7
- };
8
- };
1
+ import { TagBase } from "./TagBase";
2
+ export type MultipleOf<Value extends number | bigint> = TagBase<{
3
+ target: Value extends bigint ? "bigint" : "number";
4
+ kind: "multipleOf";
5
+ value: Value;
6
+ validate: `$input % ${Numeric<Value>} === ${Value extends bigint ? Numeric<0n> : 0}`;
7
+ exclusive: true;
8
+ }>;
9
+ type Numeric<Value extends number | bigint> = Value extends number ? Value : `BigInt(${Value})`;
10
+ export {};
@@ -1,8 +1,7 @@
1
- export type Pattern<Value extends string> = {
2
- "typia.tag"?: {
3
- target: "string";
4
- kind: "pattern";
5
- value: Value;
6
- validate: `RegExp(/${Value}/).test($input)`;
7
- };
8
- };
1
+ import { TagBase } from "./TagBase";
2
+ export type Pattern<Value extends string> = TagBase<{
3
+ target: "string";
4
+ kind: "pattern";
5
+ value: Value;
6
+ validate: `/${Value}/.test($input)`;
7
+ }>;
@@ -1,10 +1,56 @@
1
- export type TagBase<Target extends "bigint" | "number" | "string" | "array", Kind extends string, Value, Validate extends string | {
2
- [key in Target]?: string;
3
- }> = {
4
- "typia.tag"?: {
1
+ export type TagBase<Props extends TagBase.IProps<any, any, any, any, any>> = {
2
+ /**
3
+ * This is a dummy property for compilation.
4
+ *
5
+ * It does not mean anything in runtime.
6
+ */
7
+ "typia.tag"?: Props;
8
+ };
9
+ export declare namespace TagBase {
10
+ interface IProps<Target extends "bigint" | "number" | "string" | "array", Kind extends string, Value extends boolean | bigint | number | string | undefined, Validate extends string | {
11
+ [key in Target]?: string;
12
+ }, Exclusive extends boolean | string[]> {
13
+ /**
14
+ * Target type.
15
+ *
16
+ * If user tries to adapt this tag to a different type, it would be a compile
17
+ * error.
18
+ *
19
+ * For example, you've configured target type as `string`, but user adapted it
20
+ * onto a `number` type (`number & YourCustomTag<Value>`), then it would be
21
+ * blocked by TypeScript compiler.
22
+ */
5
23
  target: Target;
24
+ /**
25
+ * What kind of tag is this?
26
+ */
6
27
  kind: Kind;
28
+ /**
29
+ * Value to be configured by user.
30
+ */
7
31
  value: Value;
32
+ /**
33
+ * Validation script.
34
+ *
35
+ * This script would be inserted into the generated validation function.
36
+ * In here script, target variable name must be `$input`. The variable name
37
+ * `$input` would be transformed to the suitable when compilation.
38
+ *
39
+ * Also, If you've take a mistake on this script, compile error would be
40
+ * occured. So, define it with confidence. Compiler will block all your
41
+ * mistakes.
42
+ */
8
43
  validate: Validate;
9
- };
10
- };
44
+ /**
45
+ * Exclusive option.
46
+ *
47
+ * If this property configured as `true`, same {@link kind} tag cannot be
48
+ * duplicated in the target type. Otherwise, if you've configured this
49
+ * property as string array, all of the {@link kind} value assigned
50
+ * tags cannot be compatible in the target type.
51
+ *
52
+ * @default false
53
+ */
54
+ exclusive?: Exclusive | string[];
55
+ }
56
+ }
@@ -1,13 +1,14 @@
1
- export type Type<Target extends "int" | "uint" | "int32" | "uint32" | "int64" | "uint64" | "float"> = {
2
- "typia.tag"?: {
3
- target: Target extends "uint64" ? "bigint" : "number" | "bigint";
4
- kind: "type";
5
- value: Target;
6
- validate: Target extends "int" | "int32" ? `Number.isInteger($input) && -2147483648 <= $input && $input <= 2147483647` : Target extends "uint" | "uint32" ? `Number.isInteger($input) && 0 <= $input && $input <= 4294967295` : Target extends "int64" ? {
7
- number: `Number.isInteger($input) && -9223372036854775808 <= $input && $input <= 9223372036854775807`;
8
- } : Target extends "uint64" ? {
9
- number: `Number.isInteger($input) && 0 <= $input && $input <= 18446744073709551615`;
10
- bigint: `BigInt(0) <= $input && $input <= BigInt(18446744073709551615)`;
11
- } : `-1.175494351e38 <= $input <= 3.4028235e38`;
12
- };
13
- };
1
+ import { TagBase } from "./TagBase";
2
+ export type Type<Value extends "int32" | "uint32" | "int64" | "uint64" | "float" | "double"> = TagBase<{
3
+ target: Value extends "int64" | "uint64" ? "bigint" | "number" : "number";
4
+ kind: "type";
5
+ value: Value;
6
+ validate: Value extends "int32" ? `Math.floor($input) === $input && -2147483648 <= $input && $input <= 2147483647` : Value extends "uint32" ? `Math.floor($input) === $input && 0 <= $input && $input <= 4294967295` : Value extends "int64" ? {
7
+ number: `Math.floor($input) === $input && -9223372036854775808 <= $input && $input <= 9223372036854775807`;
8
+ bigint: `true`;
9
+ } : Value extends "uint64" ? {
10
+ number: `Math.floor($input) === $input && 0 <= $input && $input <= 18446744073709551615`;
11
+ bigint: `BigInt(0) <= $input`;
12
+ } : Value extends "float" ? `-1.175494351e38 <= $input && $input <= 3.4028235e38` : `true`;
13
+ exclusive: true;
14
+ }>;
@@ -7,6 +7,7 @@ export * from "./MaxLength";
7
7
  export * from "./Minimum";
8
8
  export * from "./MinItems";
9
9
  export * from "./MinLength";
10
+ export * from "./MultipleOf";
10
11
  export * from "./Pattern";
11
12
  export * from "./TagBase";
12
13
  export * from "./Type";
package/lib/tags/index.js CHANGED
@@ -23,6 +23,7 @@ __exportStar(require("./MaxLength"), exports);
23
23
  __exportStar(require("./Minimum"), exports);
24
24
  __exportStar(require("./MinItems"), exports);
25
25
  __exportStar(require("./MinLength"), exports);
26
+ __exportStar(require("./MultipleOf"), exports);
26
27
  __exportStar(require("./Pattern"), exports);
27
28
  __exportStar(require("./TagBase"), exports);
28
29
  __exportStar(require("./Type"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tags/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,qDAAmC;AACnC,2CAAyB;AACzB,4CAA0B;AAC1B,6CAA2B;AAC3B,8CAA4B;AAC5B,4CAA0B;AAC1B,6CAA2B;AAC3B,8CAA4B;AAC5B,4CAA0B;AAC1B,4CAA0B;AAC1B,yCAAuB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tags/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,qDAAmC;AACnC,2CAAyB;AACzB,4CAA0B;AAC1B,6CAA2B;AAC3B,8CAA4B;AAC5B,4CAA0B;AAC1B,6CAA2B;AAC3B,8CAA4B;AAC5B,+CAA6B;AAC7B,4CAA0B;AAC1B,4CAA0B;AAC1B,yCAAuB"}
@@ -1,4 +1,5 @@
1
1
  import ts from "typescript";
2
+ import { IProject } from "./transformers/IProject";
2
3
  import { ITransformOptions } from "./transformers/ITransformOptions";
3
- export declare const transform: (program: ts.Program, options?: ITransformOptions) => ts.TransformerFactory<ts.SourceFile>;
4
+ export declare const transform: (program: ts.Program, options: ITransformOptions | undefined, extras: IProject["extras"]) => ts.TransformerFactory<ts.SourceFile>;
4
5
  export default transform;
package/lib/transform.js CHANGED
@@ -6,19 +6,27 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.transform = void 0;
7
7
  var typescript_1 = __importDefault(require("typescript"));
8
8
  var FileTransformer_1 = require("./transformers/FileTransformer");
9
- var transform = function (program, options) {
9
+ var transform = function (program, options, extras) {
10
10
  var compilerOptions = program.getCompilerOptions();
11
11
  var strict = compilerOptions.strictNullChecks !== undefined
12
12
  ? !!compilerOptions.strictNullChecks
13
13
  : !!compilerOptions.strict;
14
14
  if (strict === false)
15
- throw new Error("Error on \"tsconfig.json\": typia requires `compilerOptions.strictNullChecks` to be true.");
15
+ extras.addDiagnostic({
16
+ category: typescript_1.default.DiagnosticCategory.Error,
17
+ code: "(typia)",
18
+ file: undefined,
19
+ start: undefined,
20
+ length: undefined,
21
+ messageText: "strict mode is required.",
22
+ });
16
23
  return FileTransformer_1.FileTransformer.transform({
17
24
  program: program,
18
25
  compilerOptions: compilerOptions,
19
26
  checker: program.getTypeChecker(),
20
27
  printer: typescript_1.default.createPrinter(),
21
- options: options || {},
28
+ options: options !== null && options !== void 0 ? options : {},
29
+ extras: extras,
22
30
  });
23
31
  };
24
32
  exports.transform = transform;
@@ -1 +1 @@
1
- {"version":3,"file":"transform.js","sourceRoot":"","sources":["../src/transform.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAE5B,kEAAiE;AAG1D,IAAM,SAAS,GAAG,UACrB,OAAmB,EACnB,OAA2B;IAE3B,IAAM,eAAe,GAAuB,OAAO,CAAC,kBAAkB,EAAE,CAAC;IACzE,IAAM,MAAM,GACR,eAAe,CAAC,gBAAgB,KAAK,SAAS;QAC1C,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,gBAAgB;QACpC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC;IACnC,IAAI,MAAM,KAAK,KAAK;QAChB,MAAM,IAAI,KAAK,CACX,2FAA2F,CAC9F,CAAC;IACN,OAAO,iCAAe,CAAC,SAAS,CAAC;QAC7B,OAAO,SAAA;QACP,eAAe,iBAAA;QACf,OAAO,EAAE,OAAO,CAAC,cAAc,EAAE;QACjC,OAAO,EAAE,oBAAE,CAAC,aAAa,EAAE;QAC3B,OAAO,EAAE,OAAO,IAAI,EAAE;KACzB,CAAC,CAAC;AACP,CAAC,CAAC;AApBW,QAAA,SAAS,aAoBpB;AACF,kBAAe,iBAAS,CAAC"}
1
+ {"version":3,"file":"transform.js","sourceRoot":"","sources":["../src/transform.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAE5B,kEAAiE;AAI1D,IAAM,SAAS,GAAG,UACrB,OAAmB,EACnB,OAAsC,EACtC,MAA0B;IAE1B,IAAM,eAAe,GAAuB,OAAO,CAAC,kBAAkB,EAAE,CAAC;IACzE,IAAM,MAAM,GACR,eAAe,CAAC,gBAAgB,KAAK,SAAS;QAC1C,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,gBAAgB;QACpC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC;IACnC,IAAI,MAAM,KAAK,KAAK;QAChB,MAAM,CAAC,aAAa,CAAC;YACjB,QAAQ,EAAE,oBAAE,CAAC,kBAAkB,CAAC,KAAK;YACrC,IAAI,EAAE,SAAgB;YACtB,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,SAAS;YACjB,WAAW,EAAE,0BAA0B;SAC1C,CAAC,CAAC;IACP,OAAO,iCAAe,CAAC,SAAS,CAAC;QAC7B,OAAO,SAAA;QACP,eAAe,iBAAA;QACf,OAAO,EAAE,OAAO,CAAC,cAAc,EAAE;QACjC,OAAO,EAAE,oBAAE,CAAC,aAAa,EAAE;QAC3B,OAAO,EAAE,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE;QACtB,MAAM,QAAA;KACT,CAAC,CAAC;AACP,CAAC,CAAC;AA3BW,QAAA,SAAS,aA2BpB;AACF,kBAAe,iBAAS,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import ts from "typescript";
2
2
  import { IProject } from "./IProject";
3
3
  export declare namespace CallExpressionTransformer {
4
- const transform: (project: IProject) => (expression: ts.CallExpression) => ts.Expression;
4
+ const transform: (project: IProject) => (expression: ts.CallExpression) => ts.Expression | null;
5
5
  }
@@ -82,7 +82,8 @@ var CallExpressionTransformer;
82
82
  var functor = (_b = FUNCTORS[module]) === null || _b === void 0 ? void 0 : _b[name];
83
83
  if (functor === undefined)
84
84
  return expression;
85
- return functor()(project)(expression.expression)(expression);
85
+ var result = functor()(project)(expression.expression)(expression);
86
+ return result !== null && result !== void 0 ? result : expression;
86
87
  };
87
88
  };
88
89
  var isTarget = function (location) {
@@ -1 +1 @@
1
- {"version":3,"file":"CallExpressionTransformer.js","sourceRoot":"","sources":["../../src/transformers/CallExpressionTransformer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CallExpressionTransformer.js","sourceRoot":"","sources":["../../src/transformers/CallExpressionTransformer.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import ts from "typescript";
2
2
  import { IProject } from "./IProject";
3
3
  export declare namespace FileTransformer {
4
- const transform: (project: IProject) => (context: ts.TransformationContext) => (file: ts.SourceFile) => ts.SourceFile;
4
+ const transform: (project: Omit<IProject, "context">) => (context: ts.TransformationContext) => (file: ts.SourceFile) => ts.SourceFile;
5
5
  }
@@ -1,4 +1,15 @@
1
1
  "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
2
13
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
14
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
15
  };
@@ -13,14 +24,15 @@ var FileTransformer;
13
24
  return function (file) {
14
25
  if (file.isDeclarationFile)
15
26
  return file;
16
- return typescript_1.default.visitEachChild(file, function (node) { return iterate_node(project)(context)(node); }, context);
27
+ return typescript_1.default.visitEachChild(file, function (node) { return iterate_node(__assign(__assign({}, project), { context: context }))(context)(node); }, context);
17
28
  };
18
29
  };
19
30
  };
20
31
  var iterate_node = function (project) {
21
32
  return function (context) {
22
33
  return function (node) {
23
- return typescript_1.default.visitEachChild(try_transform_node(project)(node), function (child) { return iterate_node(project)(context)(child); }, context);
34
+ var _a;
35
+ return typescript_1.default.visitEachChild((_a = try_transform_node(project)(node)) !== null && _a !== void 0 ? _a : node, function (child) { return iterate_node(project)(context)(child); }, context);
24
36
  };
25
37
  };
26
38
  };
@@ -30,14 +42,25 @@ var FileTransformer;
30
42
  return NodeTransformer_1.NodeTransformer.transform(project)(node);
31
43
  }
32
44
  catch (exp) {
33
- if (!(exp instanceof Error))
45
+ if (!isTransformerError(exp))
34
46
  throw exp;
35
- var file = node.getSourceFile();
36
- var _a = file.getLineAndCharacterOfPosition(node.pos), line = _a.line, character = _a.character;
37
- exp.message += " - ".concat(file.fileName, ":").concat(line + 1, ":").concat(character + 1);
38
- throw exp;
47
+ var diagnostic = typescript_1.default.createDiagnosticForNode(node, {
48
+ key: exp.code,
49
+ category: typescript_1.default.DiagnosticCategory.Error,
50
+ message: exp.message,
51
+ code: "(".concat(exp.code, ")"),
52
+ });
53
+ project.extras.addDiagnostic(diagnostic);
54
+ return null;
39
55
  }
40
56
  };
41
57
  };
42
58
  })(FileTransformer || (exports.FileTransformer = FileTransformer = {}));
59
+ var isTransformerError = function (error) {
60
+ return typeof error === "object" &&
61
+ error !== null &&
62
+ error.constructor.name === "TransformerError" &&
63
+ typeof error.code === "string" &&
64
+ typeof error.message === "string";
65
+ };
43
66
  //# sourceMappingURL=FileTransformer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FileTransformer.js","sourceRoot":"","sources":["../../src/transformers/FileTransformer.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAG5B,qDAAoD;AAEpD,IAAiB,eAAe,CAyC/B;AAzCD,WAAiB,eAAe;IACf,yBAAS,GAClB,UAAC,OAAiB;QAClB,OAAA,UAAC,OAAiC;YAClC,OAAA,UAAC,IAAmB;gBAChB,IAAI,IAAI,CAAC,iBAAiB;oBAAE,OAAO,IAAI,CAAC;gBACxC,OAAO,oBAAE,CAAC,cAAc,CACpB,IAAI,EACJ,UAAC,IAAI,IAAK,OAAA,YAAY,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAApC,CAAoC,EAC9C,OAAO,CACV,CAAC;YACN,CAAC;QAPD,CAOC;IARD,CAQC,CAAC;IAEN,IAAM,YAAY,GACd,UAAC,OAAiB;QAClB,OAAA,UAAC,OAAiC;YAClC,OAAA,UAAC,IAAa;gBACV,OAAA,oBAAE,CAAC,cAAc,CACb,kBAAkB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EACjC,UAAC,KAAK,IAAK,OAAA,YAAY,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,EAArC,CAAqC,EAChD,OAAO,CACV;YAJD,CAIC;QALL,CAKK;IANL,CAMK,CAAC;IAEV,IAAM,kBAAkB,GACpB,UAAC,OAAiB;QAClB,OAAA,UAAC,IAAa;YACV,IAAI;gBACA,OAAO,iCAAe,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;aACnD;YAAC,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,CAAC,GAAG,YAAY,KAAK,CAAC;oBAAE,MAAM,GAAG,CAAC;gBAEvC,IAAM,IAAI,GAAkB,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC3C,IAAA,KAAsB,IAAI,CAAC,6BAA6B,CAC1D,IAAI,CAAC,GAAG,CACX,EAFO,IAAI,UAAA,EAAE,SAAS,eAEtB,CAAC;gBACF,GAAG,CAAC,OAAO,IAAI,aAAM,IAAI,CAAC,QAAQ,cAAI,IAAI,GAAG,CAAC,cAC1C,SAAS,GAAG,CAAC,CACf,CAAC;gBACH,MAAM,GAAG,CAAC;aACb;QACL,CAAC;IAfD,CAeC,CAAC;AACV,CAAC,EAzCgB,eAAe,+BAAf,eAAe,QAyC/B"}
1
+ {"version":3,"file":"FileTransformer.js","sourceRoot":"","sources":["../../src/transformers/FileTransformer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAG5B,qDAAoD;AAGpD,IAAiB,eAAe,CA2C/B;AA3CD,WAAiB,eAAe;IACf,yBAAS,GAClB,UAAC,OAAkC;QACnC,OAAA,UAAC,OAAiC;YAClC,OAAA,UAAC,IAAmB;gBAChB,IAAI,IAAI,CAAC,iBAAiB;oBAAE,OAAO,IAAI,CAAC;gBACxC,OAAO,oBAAE,CAAC,cAAc,CACpB,IAAI,EACJ,UAAC,IAAI,IAAK,OAAA,YAAY,uBAAM,OAAO,KAAE,OAAO,SAAA,IAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAApD,CAAoD,EAC9D,OAAO,CACV,CAAC;YACN,CAAC;QAPD,CAOC;IARD,CAQC,CAAC;IAEN,IAAM,YAAY,GACd,UAAC,OAAiB;QAClB,OAAA,UAAC,OAAiC;YAClC,OAAA,UAAC,IAAa;;gBACV,OAAA,oBAAE,CAAC,cAAc,CACb,MAAA,kBAAkB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,mCAAI,IAAI,EACzC,UAAC,KAAK,IAAK,OAAA,YAAY,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,EAArC,CAAqC,EAChD,OAAO,CACV,CAAA;aAAA;QALL,CAKK;IANL,CAMK,CAAC;IAEV,IAAM,kBAAkB,GACpB,UAAC,OAAiB;QAClB,OAAA,UAAC,IAAa;YACV,IAAI;gBACA,OAAO,iCAAe,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;aACnD;YAAC,OAAO,GAAG,EAAE;gBAEV,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC;oBAAE,MAAM,GAAG,CAAC;gBAGxC,IAAM,UAAU,GAAG,oBAAE,CAAC,uBAAuB,CAAC,IAAI,EAAE;oBAChD,GAAG,EAAE,GAAG,CAAC,IAAI;oBACb,QAAQ,EAAE,oBAAE,CAAC,kBAAkB,CAAC,KAAK;oBACrC,OAAO,EAAE,GAAG,CAAC,OAAO;oBACpB,IAAI,EAAE,WAAI,GAAG,CAAC,IAAI,MAAU;iBAC/B,CAAC,CAAC;gBACH,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;gBACzC,OAAO,IAAI,CAAC;aACf;QACL,CAAC;IAjBD,CAiBC,CAAC;AACV,CAAC,EA3CgB,eAAe,+BAAf,eAAe,QA2C/B;AAED,IAAM,kBAAkB,GAAG,UAAC,KAAU;IAClC,OAAA,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,kBAAkB;QAC7C,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;QAC9B,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;AAJjC,CAIiC,CAAC"}
@@ -6,4 +6,8 @@ export interface IProject {
6
6
  checker: ts.TypeChecker;
7
7
  printer: ts.Printer;
8
8
  options: ITransformOptions;
9
+ context: ts.TransformationContext;
10
+ extras: {
11
+ addDiagnostic: (diag: ts.Diagnostic) => number;
12
+ };
9
13
  }
@@ -1,5 +1,5 @@
1
1
  import ts from "typescript";
2
2
  import { IProject } from "./IProject";
3
3
  export declare namespace NodeTransformer {
4
- const transform: (project: IProject) => (expression: ts.Node) => ts.Node;
4
+ const transform: (project: IProject) => (expression: ts.Node) => ts.Node | null;
5
5
  }
@@ -0,0 +1,12 @@
1
+ import { MetadataFactory } from "../factories/MetadataFactory";
2
+ export declare class TransformerError extends Error {
3
+ readonly code: string;
4
+ constructor(props: TransformerError.IProps);
5
+ }
6
+ export declare namespace TransformerError {
7
+ interface IProps {
8
+ code: string;
9
+ message: string;
10
+ }
11
+ const from: (method: string) => (errors: MetadataFactory.IError[]) => TransformerError;
12
+ }
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.TransformerError = void 0;
19
+ var Escaper_1 = require("../utils/Escaper");
20
+ var TransformerError = (function (_super) {
21
+ __extends(TransformerError, _super);
22
+ function TransformerError(props) {
23
+ var _newTarget = this.constructor;
24
+ var _this = _super.call(this, props.message) || this;
25
+ _this.code = props.code;
26
+ var proto = _newTarget.prototype;
27
+ if (Object.setPrototypeOf)
28
+ Object.setPrototypeOf(_this, proto);
29
+ else
30
+ _this.__proto__ = proto;
31
+ return _this;
32
+ }
33
+ return TransformerError;
34
+ }(Error));
35
+ exports.TransformerError = TransformerError;
36
+ (function (TransformerError) {
37
+ TransformerError.from = function (method) {
38
+ return function (errors) {
39
+ var body = errors
40
+ .map(function (e) {
41
+ var subject = e.explore.object === null
42
+ ? ""
43
+ : join(e.explore.object)(e.explore.property);
44
+ var type = "".concat(subject.length ? "".concat(subject, ": ") : "").concat(e.name);
45
+ return "- ".concat(type, "\n").concat(e.messages
46
+ .map(function (msg) { return " - ".concat(msg); })
47
+ .join("\n"));
48
+ })
49
+ .join("\n\n");
50
+ return new TransformerError({
51
+ code: method,
52
+ message: "unsupported type detected\n\n".concat(body),
53
+ });
54
+ };
55
+ };
56
+ var join = function (object) { return function (key) {
57
+ if (key === null)
58
+ return object.name;
59
+ else if (typeof key === "object")
60
+ return "".concat(object.name, "[key]");
61
+ else if (Escaper_1.Escaper.variable(key))
62
+ return "".concat(object.name, ".").concat(key);
63
+ return "".concat(object.name, "[").concat(JSON.stringify(key), "]");
64
+ }; };
65
+ })(TransformerError || (exports.TransformerError = TransformerError = {}));
66
+ //# sourceMappingURL=TransformerError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransformerError.js","sourceRoot":"","sources":["../../src/transformers/TransformerError.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAIA,4CAA2C;AAE3C;IAAsC,oCAAK;IAGvC,0BAAmB,KAA8B;;QAAjD,YACI,kBAAM,KAAK,CAAC,OAAO,CAAC,SAOvB;QANG,KAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QAGvB,IAAM,KAAK,GAAG,WAAW,SAAS,CAAC;QACnC,IAAI,MAAM,CAAC,cAAc;YAAE,MAAM,CAAC,cAAc,CAAC,KAAI,EAAE,KAAK,CAAC,CAAC;;YACxD,KAAY,CAAC,SAAS,GAAG,KAAK,CAAC;;IACzC,CAAC;IACL,uBAAC;AAAD,CAAC,AAZD,CAAsC,KAAK,GAY1C;AAZY,4CAAgB;AAa7B,WAAiB,gBAAgB;IAMhB,qBAAI,GACb,UAAC,MAAc;QACf,OAAA,UAAC,MAAgC;YAC7B,IAAM,IAAI,GAAW,MAAM;iBACtB,GAAG,CAAC,UAAC,CAAC;gBACH,IAAM,OAAO,GACT,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,IAAI;oBACrB,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACrD,IAAM,IAAI,GAAW,UACjB,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,UAAG,OAAO,OAAI,CAAC,CAAC,CAAC,EAAE,SACrC,CAAC,CAAC,IAAI,CAAE,CAAC;gBACZ,OAAO,YAAK,IAAI,eAAK,CAAC,CAAC,QAAQ;qBAC1B,GAAG,CAAC,UAAC,GAAG,IAAK,OAAA,cAAO,GAAG,CAAE,EAAZ,CAAY,CAAC;qBAC1B,IAAI,CAAC,IAAI,CAAC,CAAE,CAAC;YACtB,CAAC,CAAC;iBACD,IAAI,CAAC,MAAM,CAAC,CAAC;YAClB,OAAO,IAAI,gBAAgB,CAAC;gBACxB,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,uCAAgC,IAAI,CAAE;aAClD,CAAC,CAAC;QACP,CAAC;IAnBD,CAmBC,CAAC;IAEN,IAAM,IAAI,GAAG,UAAC,MAAsB,IAAK,OAAA,UAAC,GAA2B;QACjE,IAAI,GAAG,KAAK,IAAI;YAAE,OAAO,MAAM,CAAC,IAAI,CAAC;aAChC,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,OAAO,UAAG,MAAM,CAAC,IAAI,UAAO,CAAC;aAC1D,IAAI,iBAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO,UAAG,MAAM,CAAC,IAAI,cAAI,GAAG,CAAE,CAAC;QAC/D,OAAO,UAAG,MAAM,CAAC,IAAI,cAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAG,CAAC;IACpD,CAAC,EALwC,CAKxC,CAAC;AACN,CAAC,EAnCgB,gBAAgB,gCAAhB,gBAAgB,QAmChC"}
@@ -1,3 +1,4 @@
1
+ /// <reference types="ts-expose-internals/typescript" />
1
2
  export declare namespace AssertTransformer {
2
3
  const transform: (equals: boolean) => (project: import("../IProject").IProject) => (modulo: import("typescript").LeftHandSideExpression) => (expression: import("typescript").CallExpression) => import("typescript").CallExpression;
3
4
  }
@@ -1,3 +1,4 @@
1
+ /// <reference types="ts-expose-internals/typescript" />
1
2
  export declare namespace CreateAssertTransformer {
2
3
  const transform: (equals: boolean) => (project: import("../IProject").IProject) => (modulo: import("typescript").LeftHandSideExpression) => (expression: import("typescript").CallExpression) => import("typescript").ArrowFunction;
3
4
  }
@@ -1,3 +1,4 @@
1
+ /// <reference types="ts-expose-internals/typescript" />
1
2
  export declare namespace CreateIsTransformer {
2
3
  const transform: (equals: boolean) => (project: import("../IProject").IProject) => (modulo: import("typescript").LeftHandSideExpression) => (expression: import("typescript").CallExpression) => import("typescript").ArrowFunction;
3
4
  }