typia 5.0.0-dev.20230823 → 5.0.0-dev.20230824

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 (387) hide show
  1. package/lib/Primitive.d.ts +14 -12
  2. package/lib/Resolved.d.ts +46 -0
  3. package/lib/{schemas/metadata/IMetadataTag.js → Resolved.js} +1 -1
  4. package/lib/Resolved.js.map +1 -0
  5. package/lib/factories/ExpressionFactory.d.ts +2 -0
  6. package/lib/factories/ExpressionFactory.js +24 -0
  7. package/lib/factories/ExpressionFactory.js.map +1 -1
  8. package/lib/factories/IdentifierFactory.d.ts +2 -1
  9. package/lib/factories/IdentifierFactory.js +11 -0
  10. package/lib/factories/IdentifierFactory.js.map +1 -1
  11. package/lib/factories/MetadataCollection.d.ts +7 -7
  12. package/lib/factories/MetadataCollection.js +4 -4
  13. package/lib/factories/MetadataCollection.js.map +1 -1
  14. package/lib/factories/MetadataFactory.d.ts +1 -1
  15. package/lib/factories/MetadataTagFactory.d.ts +2 -2
  16. package/lib/factories/MetadataTagFactory.js +15 -13
  17. package/lib/factories/MetadataTagFactory.js.map +1 -1
  18. package/lib/factories/ProtobufFactory.js +11 -10
  19. package/lib/factories/ProtobufFactory.js.map +1 -1
  20. package/lib/factories/internal/metadata/emend_metadata_atomics.js +6 -6
  21. package/lib/factories/internal/metadata/emend_metadata_atomics.js.map +1 -1
  22. package/lib/factories/internal/metadata/emplace_metadata_array_type.d.ts +5 -0
  23. package/lib/factories/internal/metadata/{emplace_metadata_array.js → emplace_metadata_array_type.js} +4 -4
  24. package/lib/factories/internal/metadata/emplace_metadata_array_type.js.map +1 -0
  25. package/lib/factories/internal/metadata/emplace_metadata_tuple.d.ts +2 -2
  26. package/lib/factories/internal/metadata/explore_metadata.js +3 -3
  27. package/lib/factories/internal/metadata/explore_metadata.js.map +1 -1
  28. package/lib/factories/internal/metadata/iterate_metadata_array.js +7 -3
  29. package/lib/factories/internal/metadata/iterate_metadata_array.js.map +1 -1
  30. package/lib/factories/internal/metadata/iterate_metadata_atomic.js +1 -1
  31. package/lib/factories/internal/metadata/iterate_metadata_atomic.js.map +1 -1
  32. package/lib/factories/internal/metadata/iterate_metadata_collection.js +26 -18
  33. package/lib/factories/internal/metadata/iterate_metadata_collection.js.map +1 -1
  34. package/lib/factories/internal/metadata/iterate_metadata_comment_tags.d.ts +2 -0
  35. package/lib/factories/internal/metadata/{iterate_metadata_tag.js → iterate_metadata_comment_tags.js} +4 -4
  36. package/lib/factories/internal/metadata/iterate_metadata_comment_tags.js.map +1 -0
  37. package/lib/factories/internal/metadata/iterate_metadata_intersection.js +138 -16
  38. package/lib/factories/internal/metadata/iterate_metadata_intersection.js.map +1 -1
  39. package/lib/factories/internal/metadata/iterate_metadata_native.js +2 -10
  40. package/lib/factories/internal/metadata/iterate_metadata_native.js.map +1 -1
  41. package/lib/factories/internal/metadata/iterate_metadata_object.js +0 -7
  42. package/lib/factories/internal/metadata/iterate_metadata_object.js.map +1 -1
  43. package/lib/factories/internal/metadata/iterate_metadata_resolve.js +6 -6
  44. package/lib/factories/internal/metadata/iterate_metadata_resolve.js.map +1 -1
  45. package/lib/factories/internal/metadata/iterate_metadata_sort.js +4 -4
  46. package/lib/factories/internal/metadata/iterate_metadata_sort.js.map +1 -1
  47. package/lib/factories/internal/metadata/iterate_metadata_tuple.js +6 -2
  48. package/lib/factories/internal/metadata/iterate_metadata_tuple.js.map +1 -1
  49. package/lib/factories/internal/metadata/iterate_metadata_type_tags.d.ts +3 -0
  50. package/lib/factories/internal/metadata/iterate_metadata_type_tags.js +157 -0
  51. package/lib/factories/internal/metadata/iterate_metadata_type_tags.js.map +1 -0
  52. package/lib/functional/$ProtobufWriter.js.map +1 -1
  53. package/lib/functional/$any.js +2 -1
  54. package/lib/functional/$any.js.map +1 -1
  55. package/lib/functional/$clone.d.ts +2 -0
  56. package/lib/functional/$clone.js +8 -0
  57. package/lib/functional/$clone.js.map +1 -0
  58. package/lib/json.d.ts +15 -15
  59. package/lib/misc.d.ts +42 -42
  60. package/lib/module.d.ts +20 -56
  61. package/lib/module.js +4 -17
  62. package/lib/module.js.map +1 -1
  63. package/lib/programmers/AssertProgrammer.js +2 -4
  64. package/lib/programmers/AssertProgrammer.js.map +1 -1
  65. package/lib/programmers/CheckerProgrammer.js +39 -30
  66. package/lib/programmers/CheckerProgrammer.js.map +1 -1
  67. package/lib/programmers/FeatureProgrammer.d.ts +4 -4
  68. package/lib/programmers/FeatureProgrammer.js.map +1 -1
  69. package/lib/programmers/IsProgrammer.d.ts +1 -1
  70. package/lib/programmers/IsProgrammer.js +3 -5
  71. package/lib/programmers/IsProgrammer.js.map +1 -1
  72. package/lib/programmers/RandomProgrammer.js +328 -142
  73. package/lib/programmers/RandomProgrammer.js.map +1 -1
  74. package/lib/programmers/ValidateProgrammer.js +2 -4
  75. package/lib/programmers/ValidateProgrammer.js.map +1 -1
  76. package/lib/programmers/helpers/AtomicPredicator.js +2 -2
  77. package/lib/programmers/helpers/AtomicPredicator.js.map +1 -1
  78. package/lib/programmers/helpers/FunctionImporeter.d.ts +2 -0
  79. package/lib/programmers/helpers/FunctionImporeter.js +2 -1
  80. package/lib/programmers/helpers/FunctionImporeter.js.map +1 -1
  81. package/lib/programmers/helpers/ICheckEntry.d.ts +1 -1
  82. package/lib/programmers/helpers/ProtobufUtil.js +2 -2
  83. package/lib/programmers/helpers/ProtobufUtil.js.map +1 -1
  84. package/lib/programmers/helpers/RandomJoiner.d.ts +4 -4
  85. package/lib/programmers/helpers/RandomJoiner.js.map +1 -1
  86. package/lib/programmers/helpers/RandomRanger.d.ts +6 -6
  87. package/lib/programmers/helpers/RandomRanger.js.map +1 -1
  88. package/lib/programmers/helpers/StringifyPredicator.js +1 -2
  89. package/lib/programmers/helpers/StringifyPredicator.js.map +1 -1
  90. package/lib/programmers/helpers/UnionExplorer.d.ts +8 -8
  91. package/lib/programmers/helpers/UnionExplorer.js +40 -29
  92. package/lib/programmers/helpers/UnionExplorer.js.map +1 -1
  93. package/lib/programmers/helpers/disable_function_importer_declare.js +1 -0
  94. package/lib/programmers/helpers/disable_function_importer_declare.js.map +1 -1
  95. package/lib/programmers/internal/application_array.js +1 -1
  96. package/lib/programmers/internal/application_array.js.map +1 -1
  97. package/lib/programmers/internal/application_default_string.js +2 -2
  98. package/lib/programmers/internal/application_default_string.js.map +1 -1
  99. package/lib/programmers/internal/application_resolved.d.ts +2 -2
  100. package/lib/programmers/internal/application_resolved.js +2 -2
  101. package/lib/programmers/internal/application_resolved.js.map +1 -1
  102. package/lib/programmers/internal/application_schema.js +7 -7
  103. package/lib/programmers/internal/application_schema.js.map +1 -1
  104. package/lib/programmers/internal/application_string.js.map +1 -1
  105. package/lib/programmers/internal/application_tuple.js +10 -9
  106. package/lib/programmers/internal/application_tuple.js.map +1 -1
  107. package/lib/programmers/internal/check_array_length.js.map +1 -1
  108. package/lib/programmers/internal/check_array_tags.js +39 -0
  109. package/lib/programmers/internal/check_array_tags.js.map +1 -0
  110. package/lib/programmers/internal/check_bigint.js +88 -74
  111. package/lib/programmers/internal/check_bigint.js.map +1 -1
  112. package/lib/programmers/internal/check_number.js +142 -131
  113. package/lib/programmers/internal/check_number.js.map +1 -1
  114. package/lib/programmers/internal/check_string.js +30 -6
  115. package/lib/programmers/internal/check_string.js.map +1 -1
  116. package/lib/programmers/internal/check_string_tags.js.map +1 -1
  117. package/lib/programmers/internal/check_template.js +16 -49
  118. package/lib/programmers/internal/check_template.js.map +1 -1
  119. package/lib/programmers/internal/check_union_array_like.js +3 -2
  120. package/lib/programmers/internal/check_union_array_like.js.map +1 -1
  121. package/lib/programmers/internal/metadata_to_pattern.js +4 -4
  122. package/lib/programmers/internal/metadata_to_pattern.js.map +1 -1
  123. package/lib/programmers/internal/stringify_dynamic_properties.js +2 -1
  124. package/lib/programmers/internal/stringify_dynamic_properties.js.map +1 -1
  125. package/lib/programmers/internal/wrap_metadata_rest_tuple.js +9 -5
  126. package/lib/programmers/internal/wrap_metadata_rest_tuple.js.map +1 -1
  127. package/lib/programmers/json/JsonStringifyProgrammer.js +33 -27
  128. package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
  129. package/lib/programmers/misc/MiscAssertCloneProgrammer.js +1 -1
  130. package/lib/programmers/misc/MiscAssertCloneProgrammer.js.map +1 -1
  131. package/lib/programmers/misc/MiscCloneProgrammer.js +124 -43
  132. package/lib/programmers/misc/MiscCloneProgrammer.js.map +1 -1
  133. package/lib/programmers/misc/MiscIsCloneProgrammer.js +1 -1
  134. package/lib/programmers/misc/MiscIsCloneProgrammer.js.map +1 -1
  135. package/lib/programmers/misc/MiscLiteralsProgrammer.js +3 -3
  136. package/lib/programmers/misc/MiscLiteralsProgrammer.js.map +1 -1
  137. package/lib/programmers/misc/MiscPruneProgrammer.js +15 -15
  138. package/lib/programmers/misc/MiscPruneProgrammer.js.map +1 -1
  139. package/lib/programmers/misc/MiscValidateCloneProgrammer.js +1 -1
  140. package/lib/programmers/misc/MiscValidateCloneProgrammer.js.map +1 -1
  141. package/lib/programmers/protobuf/ProtobufAssertDecodeProgrammer.js +3 -3
  142. package/lib/programmers/protobuf/ProtobufAssertDecodeProgrammer.js.map +1 -1
  143. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js +8 -8
  144. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js.map +1 -1
  145. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js +3 -3
  146. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js.map +1 -1
  147. package/lib/programmers/protobuf/ProtobufIsDecodeProgrammer.js +2 -2
  148. package/lib/programmers/protobuf/ProtobufIsDecodeProgrammer.js.map +1 -1
  149. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js +1 -1
  150. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js.map +1 -1
  151. package/lib/programmers/protobuf/ProtobufValidateDecodeProgrammer.js +1 -1
  152. package/lib/programmers/protobuf/ProtobufValidateDecodeProgrammer.js.map +1 -1
  153. package/lib/protobuf.d.ts +631 -10
  154. package/lib/protobuf.js +13 -13
  155. package/lib/protobuf.js.map +1 -1
  156. package/lib/schemas/json/IJsonSchema.d.ts +2 -2
  157. package/lib/schemas/metadata/IMetadata.d.ts +13 -6
  158. package/lib/schemas/metadata/IMetadataAlias.d.ts +2 -2
  159. package/lib/schemas/metadata/IMetadataArray.d.ts +4 -6
  160. package/lib/schemas/metadata/IMetadataArrayType.d.ts +8 -0
  161. package/lib/{CustomValidatorMap.js → schemas/metadata/IMetadataArrayType.js} +1 -1
  162. package/lib/schemas/metadata/IMetadataArrayType.js.map +1 -0
  163. package/lib/schemas/metadata/IMetadataAtomic.d.ts +5 -0
  164. package/lib/schemas/metadata/{IMetadataResolved.js → IMetadataAtomic.js} +1 -1
  165. package/lib/schemas/metadata/IMetadataAtomic.js.map +1 -0
  166. package/lib/schemas/metadata/IMetadataCollection.d.ts +4 -4
  167. package/lib/schemas/metadata/{IMetadataTag.d.ts → IMetadataCommentTag.d.ts} +2 -2
  168. package/lib/schemas/metadata/IMetadataCommentTag.js +3 -0
  169. package/lib/schemas/metadata/IMetadataCommentTag.js.map +1 -0
  170. package/lib/schemas/metadata/{IMetadataResolved.d.ts → IMetadataEscaped.d.ts} +1 -1
  171. package/lib/schemas/metadata/IMetadataEscaped.js +3 -0
  172. package/lib/schemas/metadata/IMetadataEscaped.js.map +1 -0
  173. package/lib/schemas/metadata/IMetadataProperty.d.ts +2 -2
  174. package/lib/schemas/metadata/IMetadataTuple.d.ts +4 -6
  175. package/lib/schemas/metadata/IMetadataTupleType.d.ts +8 -0
  176. package/lib/schemas/metadata/IMetadataTupleType.js +3 -0
  177. package/lib/schemas/metadata/IMetadataTupleType.js.map +1 -0
  178. package/lib/schemas/metadata/IMetadataTypeTag.d.ts +6 -0
  179. package/lib/schemas/metadata/IMetadataTypeTag.js +3 -0
  180. package/lib/schemas/metadata/IMetadataTypeTag.js.map +1 -0
  181. package/lib/schemas/metadata/Metadata.d.ts +4 -4
  182. package/lib/schemas/metadata/Metadata.js +217 -157
  183. package/lib/schemas/metadata/Metadata.js.map +1 -1
  184. package/lib/schemas/metadata/MetadataAlias.d.ts +2 -2
  185. package/lib/schemas/metadata/MetadataArray.d.ts +6 -6
  186. package/lib/schemas/metadata/MetadataArray.js +5 -19
  187. package/lib/schemas/metadata/MetadataArray.js.map +1 -1
  188. package/lib/schemas/metadata/MetadataArrayType.d.ts +14 -0
  189. package/lib/schemas/metadata/MetadataArrayType.js +36 -0
  190. package/lib/schemas/metadata/MetadataArrayType.js.map +1 -0
  191. package/lib/schemas/metadata/{MetadataResolved.d.ts → MetadataEscaped.d.ts} +3 -3
  192. package/lib/schemas/metadata/{MetadataResolved.js → MetadataEscaped.js} +11 -11
  193. package/lib/schemas/metadata/MetadataEscaped.js.map +1 -0
  194. package/lib/schemas/metadata/MetadataProperty.d.ts +2 -2
  195. package/lib/schemas/metadata/MetadataTuple.d.ts +4 -6
  196. package/lib/schemas/metadata/MetadataTuple.js +5 -19
  197. package/lib/schemas/metadata/MetadataTuple.js.map +1 -1
  198. package/lib/schemas/metadata/MetadataTupleType.d.ts +13 -0
  199. package/lib/schemas/metadata/MetadataTupleType.js +40 -0
  200. package/lib/schemas/metadata/MetadataTupleType.js.map +1 -0
  201. package/lib/tags/ExclusiveMaximum.d.ts +8 -0
  202. package/lib/tags/ExclusiveMaximum.js +3 -0
  203. package/lib/tags/ExclusiveMaximum.js.map +1 -0
  204. package/lib/tags/ExclusiveMinimum.d.ts +8 -0
  205. package/lib/tags/ExclusiveMinimum.js +3 -0
  206. package/lib/tags/ExclusiveMinimum.js.map +1 -0
  207. package/lib/tags/Format.d.ts +8 -0
  208. package/lib/tags/Format.js +3 -0
  209. package/lib/tags/Format.js.map +1 -0
  210. package/lib/tags/MaxItems.d.ts +8 -0
  211. package/lib/tags/MaxItems.js +3 -0
  212. package/lib/tags/MaxItems.js.map +1 -0
  213. package/lib/tags/MaxLength.d.ts +8 -0
  214. package/lib/tags/MaxLength.js +3 -0
  215. package/lib/tags/MaxLength.js.map +1 -0
  216. package/lib/tags/Maximum.d.ts +8 -0
  217. package/lib/tags/Maximum.js +3 -0
  218. package/lib/tags/Maximum.js.map +1 -0
  219. package/lib/tags/MinItems.d.ts +8 -0
  220. package/lib/tags/MinItems.js +3 -0
  221. package/lib/tags/MinItems.js.map +1 -0
  222. package/lib/tags/MinLength.d.ts +8 -0
  223. package/lib/tags/MinLength.js +3 -0
  224. package/lib/tags/MinLength.js.map +1 -0
  225. package/lib/tags/Minimum.d.ts +8 -0
  226. package/lib/tags/Minimum.js +3 -0
  227. package/lib/tags/Minimum.js.map +1 -0
  228. package/lib/tags/MultipleOf.d.ts +8 -0
  229. package/lib/tags/MultipleOf.js +3 -0
  230. package/lib/tags/MultipleOf.js.map +1 -0
  231. package/lib/tags/Pattern.d.ts +8 -0
  232. package/lib/tags/Pattern.js +3 -0
  233. package/lib/tags/Pattern.js.map +1 -0
  234. package/lib/tags/TagBase.d.ts +10 -0
  235. package/lib/tags/TagBase.js +3 -0
  236. package/lib/tags/TagBase.js.map +1 -0
  237. package/lib/tags/Type.d.ts +13 -0
  238. package/lib/tags/Type.js +3 -0
  239. package/lib/tags/Type.js.map +1 -0
  240. package/lib/tags/index.d.ts +12 -0
  241. package/lib/tags/index.js +29 -0
  242. package/lib/tags/index.js.map +1 -0
  243. package/lib/transformers/FileTransformer.d.ts +1 -1
  244. package/lib/transformers/FileTransformer.js +12 -1
  245. package/lib/transformers/FileTransformer.js.map +1 -1
  246. package/lib/transformers/IProject.d.ts +1 -0
  247. package/lib/transformers/features/json/JsonApplicationTransformer.js +5 -3
  248. package/lib/transformers/features/json/JsonApplicationTransformer.js.map +1 -1
  249. package/lib/transformers/features/misc/MetadataTransformer.js +1 -1
  250. package/lib/transformers/features/misc/MetadataTransformer.js.map +1 -1
  251. package/lib/utils/RandomGenerator.js +3 -2
  252. package/lib/utils/RandomGenerator.js.map +1 -1
  253. package/package.json +2 -1
  254. package/src/Primitive.ts +19 -15
  255. package/src/Resolved.ts +116 -0
  256. package/src/factories/ExpressionFactory.ts +44 -0
  257. package/src/factories/IdentifierFactory.ts +15 -0
  258. package/src/factories/MetadataCollection.ts +18 -12
  259. package/src/factories/MetadataFactory.ts +1 -1
  260. package/src/factories/MetadataTagFactory.ts +28 -27
  261. package/src/factories/ProtobufFactory.ts +12 -10
  262. package/src/factories/internal/metadata/emend_metadata_atomics.ts +7 -5
  263. package/src/factories/internal/metadata/{emplace_metadata_array.ts → emplace_metadata_array_type.ts} +3 -3
  264. package/src/factories/internal/metadata/emplace_metadata_tuple.ts +2 -2
  265. package/src/factories/internal/metadata/explore_metadata.ts +3 -3
  266. package/src/factories/internal/metadata/iterate_metadata_array.ts +13 -5
  267. package/src/factories/internal/metadata/iterate_metadata_atomic.ts +6 -4
  268. package/src/factories/internal/metadata/iterate_metadata_collection.ts +29 -22
  269. package/src/factories/internal/metadata/{iterate_metadata_tag.ts → iterate_metadata_comment_tags.ts} +1 -1
  270. package/src/factories/internal/metadata/iterate_metadata_intersection.ts +109 -15
  271. package/src/factories/internal/metadata/iterate_metadata_native.ts +0 -9
  272. package/src/factories/internal/metadata/iterate_metadata_object.ts +10 -10
  273. package/src/factories/internal/metadata/iterate_metadata_resolve.ts +6 -6
  274. package/src/factories/internal/metadata/iterate_metadata_sort.ts +4 -4
  275. package/src/factories/internal/metadata/iterate_metadata_tuple.ts +12 -4
  276. package/src/factories/internal/metadata/iterate_metadata_type_tags.ts +183 -0
  277. package/src/functional/$any.ts +3 -1
  278. package/src/functional/$clone.ts +4 -0
  279. package/src/json.ts +15 -15
  280. package/src/misc.ts +42 -42
  281. package/src/module.ts +20 -72
  282. package/src/programmers/AssertProgrammer.ts +4 -2
  283. package/src/programmers/CheckerProgrammer.ts +81 -48
  284. package/src/programmers/FeatureProgrammer.ts +6 -6
  285. package/src/programmers/IsProgrammer.ts +5 -3
  286. package/src/programmers/RandomProgrammer.ts +360 -41
  287. package/src/programmers/ValidateProgrammer.ts +4 -2
  288. package/src/programmers/helpers/AtomicPredicator.ts +2 -2
  289. package/src/programmers/helpers/FunctionImporeter.ts +2 -0
  290. package/src/programmers/helpers/ICheckEntry.ts +1 -1
  291. package/src/programmers/helpers/ProtobufUtil.ts +1 -1
  292. package/src/programmers/helpers/RandomJoiner.ts +8 -4
  293. package/src/programmers/helpers/RandomRanger.ts +8 -8
  294. package/src/programmers/helpers/StringifyPredicator.ts +1 -2
  295. package/src/programmers/helpers/UnionExplorer.ts +48 -34
  296. package/src/programmers/helpers/disable_function_importer_declare.ts +6 -1
  297. package/src/programmers/internal/application_array.ts +5 -4
  298. package/src/programmers/internal/application_default_string.ts +6 -2
  299. package/src/programmers/internal/application_resolved.ts +4 -4
  300. package/src/programmers/internal/application_schema.ts +7 -7
  301. package/src/programmers/internal/application_string.ts +2 -2
  302. package/src/programmers/internal/application_tuple.ts +12 -11
  303. package/src/programmers/internal/check_array_length.ts +2 -2
  304. package/src/programmers/internal/check_array_tags.ts +45 -0
  305. package/src/programmers/internal/check_bigint.ts +45 -17
  306. package/src/programmers/internal/check_number.ts +97 -70
  307. package/src/programmers/internal/check_string.ts +43 -12
  308. package/src/programmers/internal/check_string_tags.ts +3 -3
  309. package/src/programmers/internal/check_template.ts +1 -12
  310. package/src/programmers/internal/check_union_array_like.ts +6 -5
  311. package/src/programmers/internal/metadata_to_pattern.ts +4 -4
  312. package/src/programmers/internal/stringify_dynamic_properties.ts +1 -1
  313. package/src/programmers/internal/wrap_metadata_rest_tuple.ts +9 -5
  314. package/src/programmers/json/JsonStringifyProgrammer.ts +47 -29
  315. package/src/programmers/misc/MiscAssertCloneProgrammer.ts +1 -1
  316. package/src/programmers/misc/MiscCloneProgrammer.ts +253 -55
  317. package/src/programmers/misc/MiscIsCloneProgrammer.ts +1 -1
  318. package/src/programmers/misc/MiscLiteralsProgrammer.ts +3 -3
  319. package/src/programmers/misc/MiscPruneProgrammer.ts +31 -19
  320. package/src/programmers/misc/MiscValidateCloneProgrammer.ts +1 -1
  321. package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +18 -9
  322. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +18 -14
  323. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +15 -15
  324. package/src/programmers/protobuf/ProtobufIsDecodeProgrammer.ts +12 -2
  325. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +6 -6
  326. package/src/programmers/protobuf/ProtobufValidateDecodeProgrammer.ts +2 -2
  327. package/src/protobuf.ts +663 -31
  328. package/src/schemas/json/IJsonSchema.ts +2 -2
  329. package/src/schemas/metadata/IMetadata.ts +13 -7
  330. package/src/schemas/metadata/IMetadataAlias.ts +2 -2
  331. package/src/schemas/metadata/IMetadataArray.ts +4 -7
  332. package/src/schemas/metadata/IMetadataArrayType.ts +10 -0
  333. package/src/schemas/metadata/IMetadataAtomic.ts +6 -0
  334. package/src/schemas/metadata/IMetadataCollection.ts +4 -4
  335. package/src/schemas/metadata/{IMetadataTag.ts → IMetadataCommentTag.ts} +17 -17
  336. package/src/schemas/metadata/IMetadataDictionary.ts +4 -4
  337. package/src/schemas/metadata/{IMetadataResolved.ts → IMetadataEscaped.ts} +1 -1
  338. package/src/schemas/metadata/IMetadataProperty.ts +2 -2
  339. package/src/schemas/metadata/IMetadataTuple.ts +4 -7
  340. package/src/schemas/metadata/IMetadataTupleType.ts +10 -0
  341. package/src/schemas/metadata/IMetadataTypeTag.ts +6 -0
  342. package/src/schemas/metadata/Metadata.ts +125 -63
  343. package/src/schemas/metadata/MetadataAlias.ts +2 -2
  344. package/src/schemas/metadata/MetadataArray.ts +10 -34
  345. package/src/schemas/metadata/MetadataArrayType.ts +57 -0
  346. package/src/schemas/metadata/{MetadataResolved.ts → MetadataEscaped.ts} +9 -9
  347. package/src/schemas/metadata/MetadataProperty.ts +2 -2
  348. package/src/schemas/metadata/MetadataTuple.ts +10 -37
  349. package/src/schemas/metadata/MetadataTupleType.ts +67 -0
  350. package/src/tags/ExclusiveMaximum.ts +8 -0
  351. package/src/tags/ExclusiveMinimum.ts +8 -0
  352. package/src/tags/Format.ts +29 -0
  353. package/src/tags/MaxItems.ts +8 -0
  354. package/src/tags/MaxLength.ts +8 -0
  355. package/src/tags/Maximum.ts +8 -0
  356. package/src/tags/MinItems.ts +8 -0
  357. package/src/tags/MinLength.ts +8 -0
  358. package/src/tags/Minimum.ts +8 -0
  359. package/src/tags/MultipleOf.ts +10 -0
  360. package/src/tags/Pattern.ts +8 -0
  361. package/src/tags/TagBase.ts +17 -0
  362. package/src/tags/Type.ts +30 -0
  363. package/src/tags/index.ts +12 -0
  364. package/src/transformers/FileTransformer.ts +2 -2
  365. package/src/transformers/IProject.ts +1 -0
  366. package/src/transformers/features/json/JsonApplicationTransformer.ts +4 -3
  367. package/src/transformers/features/misc/MetadataTransformer.ts +1 -1
  368. package/src/typings/Atomic.ts +1 -0
  369. package/src/utils/RandomGenerator.ts +4 -2
  370. package/lib/CustomValidatorMap.d.ts +0 -110
  371. package/lib/CustomValidatorMap.js.map +0 -1
  372. package/lib/factories/internal/metadata/emplace_metadata_array.d.ts +0 -5
  373. package/lib/factories/internal/metadata/emplace_metadata_array.js.map +0 -1
  374. package/lib/factories/internal/metadata/iterate_metadata_tag.d.ts +0 -2
  375. package/lib/factories/internal/metadata/iterate_metadata_tag.js.map +0 -1
  376. package/lib/programmers/internal/check_array.js +0 -44
  377. package/lib/programmers/internal/check_array.js.map +0 -1
  378. package/lib/programmers/internal/check_custom.d.ts +0 -1
  379. package/lib/programmers/internal/check_custom.js +0 -30
  380. package/lib/programmers/internal/check_custom.js.map +0 -1
  381. package/lib/schemas/metadata/IMetadataResolved.js.map +0 -1
  382. package/lib/schemas/metadata/IMetadataTag.js.map +0 -1
  383. package/lib/schemas/metadata/MetadataResolved.js.map +0 -1
  384. package/src/CustomValidatorMap.ts +0 -126
  385. package/src/programmers/internal/check_array.ts +0 -30
  386. package/src/programmers/internal/check_custom.ts +0 -31
  387. /package/lib/programmers/internal/{check_array.d.ts → check_array_tags.d.ts} +0 -0
@@ -0,0 +1,8 @@
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
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=MultipleOf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultipleOf.js","sourceRoot":"","sources":["../../src/tags/MultipleOf.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
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
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=Pattern.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Pattern.js","sourceRoot":"","sources":["../../src/tags/Pattern.ts"],"names":[],"mappings":""}
@@ -0,0 +1,10 @@
1
+ export type TagBase<Target extends "bigint" | "number" | "string" | "array", Kind extends string, Value extends boolean | bigint | number | string, Validate extends string | {
2
+ [key in Target]?: string;
3
+ }> = {
4
+ "typia.tag"?: {
5
+ target: Target;
6
+ kind: Kind;
7
+ value: Value;
8
+ validate: Validate;
9
+ };
10
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=TagBase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TagBase.js","sourceRoot":"","sources":["../../src/tags/TagBase.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
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
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=Type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Type.js","sourceRoot":"","sources":["../../src/tags/Type.ts"],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ export * from "./ExclusiveMaximum";
2
+ export * from "./ExclusiveMinimum";
3
+ export * from "./Format";
4
+ export * from "./Maximum";
5
+ export * from "./MaxItems";
6
+ export * from "./MaxLength";
7
+ export * from "./Minimum";
8
+ export * from "./MinItems";
9
+ export * from "./MinLength";
10
+ export * from "./Pattern";
11
+ export * from "./TagBase";
12
+ export * from "./Type";
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./ExclusiveMaximum"), exports);
18
+ __exportStar(require("./ExclusiveMinimum"), exports);
19
+ __exportStar(require("./Format"), exports);
20
+ __exportStar(require("./Maximum"), exports);
21
+ __exportStar(require("./MaxItems"), exports);
22
+ __exportStar(require("./MaxLength"), exports);
23
+ __exportStar(require("./Minimum"), exports);
24
+ __exportStar(require("./MinItems"), exports);
25
+ __exportStar(require("./MinLength"), exports);
26
+ __exportStar(require("./Pattern"), exports);
27
+ __exportStar(require("./TagBase"), exports);
28
+ __exportStar(require("./Type"), exports);
29
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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,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,7 +24,7 @@ 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
  };
@@ -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;AAEpD,IAAiB,eAAe,CAyC/B;AAzCD,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,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"}
@@ -6,4 +6,5 @@ export interface IProject {
6
6
  checker: ts.TypeChecker;
7
7
  printer: ts.Printer;
8
8
  options: ITransformOptions;
9
+ context: ts.TransformationContext;
9
10
  }
@@ -31,13 +31,15 @@ var JsonApplicationTransformer;
31
31
  var collection = new MetadataCollection_1.MetadataCollection();
32
32
  var metadatas = types.map(function (type) {
33
33
  return MetadataFactory_1.MetadataFactory.analyze(checker)({
34
- resolve: true,
34
+ escape: true,
35
35
  constant: true,
36
36
  absorb: false,
37
37
  validate: function (meta) {
38
- if (meta.atomics.find(function (str) { return str === "bigint"; }))
38
+ if (meta.atomics.find(function (atom) { return atom.type === "bigint"; }))
39
39
  throw new Error(NO_BIGIT);
40
- else if (meta.arrays.some(function (array) { return array.value.isRequired() === false; }))
40
+ else if (meta.arrays.some(function (array) {
41
+ return array.type.value.isRequired() === false;
42
+ }))
41
43
  throw new Error(NO_UNDEFINED_IN_ARRAY);
42
44
  },
43
45
  })(collection)(type);
@@ -1 +1 @@
1
- {"version":3,"file":"JsonApplicationTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/json/JsonApplicationTransformer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"JsonApplicationTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/json/JsonApplicationTransformer.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAE5B,oEAAmE;AACnE,4EAA2E;AAC3E,sEAAqE;AAKrE,iGAAgG;AAIhG,IAAiB,0BAA0B,CAyF1C;AAzFD,WAAiB,0BAA0B;IAC1B,oCAAS,GAClB,UAAC,EAAqB;YAAnB,OAAO,aAAA;QACV,OAAA,UAAC,UAA6B;;YAC1B,IAAI,CAAC,CAAA,MAAA,UAAU,CAAC,aAAa,0CAAE,MAAM,CAAA;gBACjC,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;YAMzC,IAAM,GAAG,GAAY,UAAU,CAAC,aAAa,CAAC,CAAC,CAAE,CAAC;YAClD,IAAI,CAAC,oBAAE,CAAC,eAAe,CAAC,GAAG,CAAC;gBAAE,OAAO,UAAU,CAAC;iBAC3C,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAC,KAAK,IAAK,OAAA,CAAC,oBAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAArB,CAAqB,CAAC;gBACxD,OAAO,UAAU,CAAC;YAGtB,IAAM,KAAK,GAAc,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAC,KAAK;gBAC5C,OAAA,OAAO,CAAC,mBAAmB,CAAC,KAAoB,CAAC;YAAjD,CAAiD,CACpD,CAAC;YACF,IAAI,KAAK,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,eAAe,EAAE,EAAnB,CAAmB,CAAC;gBACtC,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAGtC,IAAM,OAAO,GAAsB,aAAa,CAC5C,OAAO,EACP,SAAS,EACT,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,EAC3B,UAAC,GAAG,IAAK,OAAA,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,KAAK,EAAlC,CAAkC,EAC3C,cAAM,OAAA,SAAS,EAAT,CAAS,CAClB,CAAC;YAMF,IAAM,UAAU,GAAuB,IAAI,uCAAkB,EAAE,CAAC;YAChE,IAAM,SAAS,GAAoB,KAAK,CAAC,GAAG,CAAC,UAAC,IAAI;gBAC9C,OAAA,iCAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;oBAC7B,MAAM,EAAE,IAAI;oBACZ,QAAQ,EAAE,IAAI;oBACd,MAAM,EAAE,KAAK;oBACb,QAAQ,EAAE,UAAC,IAAI;wBACX,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAtB,CAAsB,CAAC;4BACnD,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC;6BACzB,IACD,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,UAAC,KAAK;4BACF,OAAA,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,KAAK;wBAAvC,CAAuC,CAC9C;4BAED,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;oBAC/C,CAAC;iBACJ,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;YAfpB,CAeoB,CACvB,CAAC;YAGF,IAAM,GAAG,GAAqB,qDAAyB,CAAC,KAAK,CAAC;gBAC1D,OAAO,SAAA;aACV,CAAC,CAAC,SAAS,CAAC,CAAC;YAGd,OAAO,+BAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACxC,CAAC;IA5DD,CA4DC,CAAC;IAEN,IAAM,aAAa,GAAG,UAClB,OAAuB,EACvB,IAAY,EACZ,IAA6B,EAC7B,UAAsC,EACtC,SAAkB;QAElB,IAAI,CAAC,IAAI;YAAE,OAAO,SAAS,EAAE,CAAC;QAG9B,IAAM,IAAI,GAAY,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACjB,MAAM,IAAI,KAAK,CACX,2DAAmD,IAAI,yBAAqB,CAC/E,CAAC;QAGN,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,KAAK;YACxD,MAAM,IAAI,KAAK,CACX,4EAAoE,IAAI,QAAI,CAC/E,CAAC;QACN,OAAO,KAAU,CAAC;IACtB,CAAC,CAAC;AACN,CAAC,EAzFgB,0BAA0B,0CAA1B,0BAA0B,QAyF1C;AAED,IAAM,mBAAmB,GACrB,yDAAyD,CAAC;AAC9D,IAAM,gBAAgB,GAClB,uEAAuE,CAAC;AAC5E,IAAM,QAAQ,GACV,gEAAgE,CAAC;AACrE,IAAM,qBAAqB,GACvB,4EAA4E,CAAC"}
@@ -29,7 +29,7 @@ var MetadataTransformer;
29
29
  var collection = new MetadataCollection_1.MetadataCollection();
30
30
  var metadatas = types.map(function (type) {
31
31
  return MetadataFactory_1.MetadataFactory.analyze(checker)({
32
- resolve: true,
32
+ escape: true,
33
33
  constant: true,
34
34
  absorb: true,
35
35
  })(collection)(type);
@@ -1 +1 @@
1
- {"version":3,"file":"MetadataTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/misc/MetadataTransformer.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAE5B,oEAAmE;AACnE,4EAA2E;AAC3E,sEAAqE;AAOrE,IAAiB,mBAAmB,CAqCnC;AArCD,WAAiB,mBAAmB;IACnB,6BAAS,GAClB,UAAC,EAAqB;YAAnB,OAAO,aAAA;QACV,OAAA,UAAC,UAA6B;;YAC1B,IAAI,CAAC,CAAA,MAAA,UAAU,CAAC,aAAa,0CAAE,MAAM,CAAA;gBACjC,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;YAGzC,IAAM,GAAG,GAAY,UAAU,CAAC,aAAa,CAAC,CAAC,CAAE,CAAC;YAClD,IAAI,CAAC,oBAAE,CAAC,eAAe,CAAC,GAAG,CAAC;gBAAE,OAAO,UAAU,CAAC;iBAC3C,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAC,KAAK,IAAK,OAAA,CAAC,oBAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAArB,CAAqB,CAAC;gBACxD,OAAO,UAAU,CAAC;YAGtB,IAAM,KAAK,GAAc,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAC,KAAK;gBAC5C,OAAA,OAAO,CAAC,mBAAmB,CAAC,KAAoB,CAAC;YAAjD,CAAiD,CACpD,CAAC;YACF,IAAI,KAAK,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,eAAe,EAAE,EAAnB,CAAmB,CAAC;gBACtC,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAGtC,IAAM,UAAU,GAAuB,IAAI,uCAAkB,EAAE,CAAC;YAChE,IAAM,SAAS,GAAoB,KAAK,CAAC,GAAG,CAAC,UAAC,IAAI;gBAC9C,OAAA,iCAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;oBAC7B,OAAO,EAAE,IAAI;oBACb,QAAQ,EAAE,IAAI;oBACd,MAAM,EAAE,IAAI;iBACf,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;YAJpB,CAIoB,CACvB,CAAC;YAGF,IAAM,GAAG,GAAyB;gBAC9B,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,UAAC,QAAQ,IAAK,OAAA,QAAQ,CAAC,MAAM,EAAE,EAAjB,CAAiB,CAAC;gBACzD,UAAU,EAAE,UAAU,CAAC,MAAM,EAAE;aAClC,CAAC;YACF,OAAO,+BAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACxC,CAAC;IAjCD,CAiCC,CAAC;AACV,CAAC,EArCgB,mBAAmB,mCAAnB,mBAAmB,QAqCnC;AAED,IAAM,mBAAmB,GAAG,iDAAiD,CAAC;AAC9E,IAAM,gBAAgB,GAClB,+DAA+D,CAAC"}
1
+ {"version":3,"file":"MetadataTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/misc/MetadataTransformer.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAE5B,oEAAmE;AACnE,4EAA2E;AAC3E,sEAAqE;AAOrE,IAAiB,mBAAmB,CAqCnC;AArCD,WAAiB,mBAAmB;IACnB,6BAAS,GAClB,UAAC,EAAqB;YAAnB,OAAO,aAAA;QACV,OAAA,UAAC,UAA6B;;YAC1B,IAAI,CAAC,CAAA,MAAA,UAAU,CAAC,aAAa,0CAAE,MAAM,CAAA;gBACjC,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;YAGzC,IAAM,GAAG,GAAY,UAAU,CAAC,aAAa,CAAC,CAAC,CAAE,CAAC;YAClD,IAAI,CAAC,oBAAE,CAAC,eAAe,CAAC,GAAG,CAAC;gBAAE,OAAO,UAAU,CAAC;iBAC3C,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAC,KAAK,IAAK,OAAA,CAAC,oBAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAArB,CAAqB,CAAC;gBACxD,OAAO,UAAU,CAAC;YAGtB,IAAM,KAAK,GAAc,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAC,KAAK;gBAC5C,OAAA,OAAO,CAAC,mBAAmB,CAAC,KAAoB,CAAC;YAAjD,CAAiD,CACpD,CAAC;YACF,IAAI,KAAK,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,eAAe,EAAE,EAAnB,CAAmB,CAAC;gBACtC,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAGtC,IAAM,UAAU,GAAuB,IAAI,uCAAkB,EAAE,CAAC;YAChE,IAAM,SAAS,GAAoB,KAAK,CAAC,GAAG,CAAC,UAAC,IAAI;gBAC9C,OAAA,iCAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;oBAC7B,MAAM,EAAE,IAAI;oBACZ,QAAQ,EAAE,IAAI;oBACd,MAAM,EAAE,IAAI;iBACf,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;YAJpB,CAIoB,CACvB,CAAC;YAGF,IAAM,GAAG,GAAyB;gBAC9B,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,UAAC,QAAQ,IAAK,OAAA,QAAQ,CAAC,MAAM,EAAE,EAAjB,CAAiB,CAAC;gBACzD,UAAU,EAAE,UAAU,CAAC,MAAM,EAAE;aAClC,CAAC;YACF,OAAO,+BAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACxC,CAAC;IAjCD,CAiCC,CAAC;AACV,CAAC,EArCgB,mBAAmB,mCAAnB,mBAAmB,QAqCnC;AAED,IAAM,mBAAmB,GAAG,iDAAiD,CAAC;AAC9E,IAAM,gBAAgB,GAClB,+DAA+D,CAAC"}
@@ -57,9 +57,10 @@ var RandomGenerator;
57
57
  return new Date(RandomGenerator.number(min, max)).toISOString().substring(0, 10);
58
58
  };
59
59
  RandomGenerator.datetime = function (min, max) {
60
- min !== null && min !== void 0 ? min : (min = 0);
61
- max !== null && max !== void 0 ? max : (max = Date.now() * 2);
60
+ min !== null && min !== void 0 ? min : (min = Date.now() - 30 * DAY);
61
+ max !== null && max !== void 0 ? max : (max = Date.now() + 7 * DAY);
62
62
  return new Date(RandomGenerator.number(min, max)).toISOString();
63
63
  };
64
64
  })(RandomGenerator || (exports.RandomGenerator = RandomGenerator = {}));
65
+ var DAY = 1000 * 60 * 60 * 24;
65
66
  //# sourceMappingURL=RandomGenerator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RandomGenerator.js","sourceRoot":"","sources":["../../src/utils/RandomGenerator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RandomGenerator.js","sourceRoot":"","sources":["../../src/utils/RandomGenerator.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "typia",
3
- "version": "5.0.0-dev.20230823",
3
+ "version": "5.0.0-dev.20230824",
4
4
  "description": "Superfast runtime validators with only one line",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
@@ -15,6 +15,7 @@
15
15
  "----------------------------------------------": "",
16
16
  "build": "rimraf lib && tsc --removeComments --declaration false && tsc --emitDeclarationOnly",
17
17
  "build:test": "rimraf bin && tsc -p test/tsconfig.json",
18
+ "build:test:actions": "rimraf bin && tsc -p test/tsconfig.actions.json",
18
19
  "build:benchmark": "rimraf measure && tsc -p benchmark/tsconfig.json",
19
20
  "build:test:prettier": "npm run build:test && prettier --write ./bin/**/*.js",
20
21
  "dev": "rimraf lib && tsc --watch",
package/src/Primitive.ts CHANGED
@@ -1,16 +1,17 @@
1
1
  /**
2
- * Primitive type.
2
+ * Primitive type of JSON.
3
3
  *
4
- * `Primitive` is a type of TMP (Type Meta Programming) type who converts its argument as a
5
- * primitive type.
4
+ * `Primitive<T>` is a TMP (Type Meta Programming) type which converts
5
+ * its argument as a primitive type within framework JSON.
6
6
  *
7
- * If the target argument is a built-in class who returns its origin primitive type through
8
- * the `valueOf()` method like the `String` or `Number`, its return type would be the
9
- * `string` or `number`.
7
+ * If the target argument is a built-in class which returns its origin primitive type
8
+ * through the `valueOf()` method like the `String` or `Number`, its return type would
9
+ * be the `string` or `number`. Otherwise, the built-in class does not have the
10
+ * `valueOf()` method, the return type would be an empty object (`{}`).
10
11
  *
11
- * Otherwise, the target argument is a type of custom class, all of its custom method would
12
- * be erased and its prototype would be changed to the primitive `object`. Therefore, return
13
- * type of the TMP type finally be the primitive object.
12
+ * Otherwise, the target argument is a type of custom class, all of its custom method
13
+ * would be erased and its prototype would be changed to the primitive `object`.
14
+ * Therefore, return type of the TMP type finally be the primitive object.
14
15
  *
15
16
  * In addition, if the target argument is a type of custom class and it has a special
16
17
  * method `toJSON()`, return type of this `Primitive` would be not `Primitive<Instance>`
@@ -23,6 +24,7 @@
23
24
  * `String` | `string`
24
25
  * `Class` | `object`
25
26
  * `Class` with `toJSON()` | `Primitive<ReturnType<Class.toJSON>>`
27
+ * Native Class | `{}`
26
28
  * Others | No change
27
29
  *
28
30
  * @template Instance Target argument type.
@@ -38,8 +40,12 @@ type Equal<X, Y> = X extends Y ? (Y extends X ? true : false) : false;
38
40
 
39
41
  type PrimitiveMain<Instance> = Instance extends [never]
40
42
  ? never // (special trick for jsonable | null) type
41
- : ValueOf<Instance> extends boolean | number | bigint | string
43
+ : ValueOf<Instance> extends bigint
44
+ ? never
45
+ : ValueOf<Instance> extends boolean | number | string
42
46
  ? ValueOf<Instance>
47
+ : Instance extends Function
48
+ ? never
43
49
  : ValueOf<Instance> extends object
44
50
  ? Instance extends object
45
51
  ? Instance extends NativeClass
@@ -59,9 +65,7 @@ type PrimitiveObject<Instance extends object> = Instance extends Array<infer T>
59
65
  ? PrimitiveTuple<Instance>
60
66
  : PrimitiveMain<T>[]
61
67
  : {
62
- [P in keyof Instance]: Instance[P] extends Function
63
- ? never
64
- : PrimitiveMain<Instance[P]>;
68
+ [P in keyof Instance]: PrimitiveMain<Instance[P]>;
65
69
  };
66
70
 
67
71
  type PrimitiveTuple<T extends readonly any[]> = T extends []
@@ -115,8 +119,8 @@ type IsTuple<T extends readonly any[] | { length: number }> = [T] extends [
115
119
  : false;
116
120
 
117
121
  type IsValueOf<Instance, Object extends IValueOf<any>> = Instance extends Object
118
- ? Object extends IValueOf<infer Primitive>
119
- ? Instance extends Primitive
122
+ ? Object extends IValueOf<infer U>
123
+ ? Instance extends U
120
124
  ? false
121
125
  : true // not Primitive, but Object
122
126
  : false // cannot be
@@ -0,0 +1,116 @@
1
+ /**
2
+ * Resolved type erased every methods.
3
+ *
4
+ * `Resolved` is a type of TMP (Type Meta Programming) type which converts
5
+ * its argument as a resolved type that erased every method properties.
6
+ *
7
+ * If the target argument is a built-in class which returns its origin primitive type
8
+ * through the `valueOf()` method like the `String` or `Number`, its return type would
9
+ * be the `string` or `number`. Otherwise, the built-in class does not have the
10
+ * `valueOf()` method, the return type would be same with the target argument.
11
+ *
12
+ * Otherwise, the target argument is a type of custom class, all of its custom methods
13
+ * would be erased and its prototype would be changed to the primitive `object`.
14
+ * Therefore, return type of the TMP type finally be the resolved object.
15
+ *
16
+ * Before | After
17
+ * ------------------------|----------------------------------------
18
+ * `Boolean` | `boolean`
19
+ * `Number` | `number`
20
+ * `BigInt` | `bigint`
21
+ * `String` | `string`
22
+ * `Class` | `interface`
23
+ * Native Claas or Others | No change
24
+ *
25
+ * @template Instance Target argument type.
26
+ * @author Jenogho Nam - https://github.com/samchon
27
+ * @author Kyungsu Kang - https://github.com/kakasoo
28
+ */
29
+ export type Resolved<T> = Equal<T, ResolvedMain<T>> extends true
30
+ ? T
31
+ : ResolvedMain<T>;
32
+
33
+ type Equal<X, Y> = X extends Y ? (Y extends X ? true : false) : false;
34
+
35
+ type ResolvedMain<Instance> = Instance extends [never]
36
+ ? never // (special trick for jsonable | null) type
37
+ : ValueOf<Instance> extends boolean | number | bigint | string
38
+ ? ValueOf<Instance>
39
+ : Instance extends Function
40
+ ? never
41
+ : Instance extends object
42
+ ? ResolvedObject<Instance>
43
+ : ValueOf<Instance>;
44
+
45
+ type ResolvedObject<Instance extends object> = Instance extends Array<infer T>
46
+ ? IsTuple<Instance> extends true
47
+ ? ResolvedTuple<Instance>
48
+ : ResolvedMain<T>[]
49
+ : Instance extends Set<infer U>
50
+ ? Set<ResolvedMain<U>>
51
+ : Instance extends Map<infer K, infer V>
52
+ ? Map<ResolvedMain<K>, ResolvedMain<V>>
53
+ : Instance extends WeakSet<any> | WeakMap<any, any>
54
+ ? never
55
+ : Instance extends
56
+ | Date
57
+ | Uint8Array
58
+ | Uint8ClampedArray
59
+ | Uint16Array
60
+ | Uint32Array
61
+ | BigUint64Array
62
+ | Int8Array
63
+ | Int16Array
64
+ | Int32Array
65
+ | BigInt64Array
66
+ | Float32Array
67
+ | Float64Array
68
+ | ArrayBuffer
69
+ | SharedArrayBuffer
70
+ | DataView
71
+ ? Instance
72
+ : {
73
+ [P in keyof Instance]: ResolvedMain<Instance[P]>;
74
+ };
75
+
76
+ type ResolvedTuple<T extends readonly any[]> = T extends []
77
+ ? []
78
+ : T extends [infer F]
79
+ ? [ResolvedMain<F>]
80
+ : T extends [infer F, ...infer Rest extends readonly any[]]
81
+ ? [ResolvedMain<F>, ...ResolvedTuple<Rest>]
82
+ : T extends [(infer F)?]
83
+ ? [ResolvedMain<F>?]
84
+ : T extends [(infer F)?, ...infer Rest extends readonly any[]]
85
+ ? [ResolvedMain<F>?, ...ResolvedTuple<Rest>]
86
+ : [];
87
+
88
+ type ValueOf<Instance> = IsValueOf<Instance, Boolean> extends true
89
+ ? boolean
90
+ : IsValueOf<Instance, Number> extends true
91
+ ? number
92
+ : IsValueOf<Instance, String> extends true
93
+ ? string
94
+ : Instance;
95
+
96
+ type IsTuple<T extends readonly any[] | { length: number }> = [T] extends [
97
+ never,
98
+ ]
99
+ ? false
100
+ : T extends readonly any[]
101
+ ? number extends T["length"]
102
+ ? false
103
+ : true
104
+ : false;
105
+
106
+ type IsValueOf<Instance, Object extends IValueOf<any>> = Instance extends Object
107
+ ? Object extends IValueOf<infer Primitive>
108
+ ? Instance extends Primitive
109
+ ? false
110
+ : true // not Primitive, but Object
111
+ : false // cannot be
112
+ : false;
113
+
114
+ interface IValueOf<T> {
115
+ valueOf(): T;
116
+ }
@@ -1,5 +1,7 @@
1
1
  import ts from "typescript";
2
2
 
3
+ import { RandomGenerator } from "../utils/RandomGenerator";
4
+
3
5
  export namespace ExpressionFactory {
4
6
  export const bigint = (value: number) =>
5
7
  ts.factory.createCallExpression(
@@ -112,4 +114,46 @@ export namespace ExpressionFactory {
112
114
  undefined,
113
115
  undefined,
114
116
  );
117
+
118
+ export const getEscapedText =
119
+ (printer: ts.Printer) =>
120
+ (input: ts.Expression): string =>
121
+ printer.printNode(
122
+ ts.EmitHint.Expression,
123
+ input,
124
+ input.getSourceFile(),
125
+ );
126
+
127
+ export const transpile =
128
+ (context: ts.TransformationContext) =>
129
+ (script: string) =>
130
+ (input: ts.Expression): ts.Expression => {
131
+ const file: ts.SourceFile = ts.createSourceFile(
132
+ `${RandomGenerator.uuid()}.ts`,
133
+ script,
134
+ ts.ScriptTarget.ESNext,
135
+ true,
136
+ ts.ScriptKind.TS,
137
+ );
138
+ const statement: ts.Statement | undefined = file.statements[0];
139
+ if (statement === undefined)
140
+ throw new Error(
141
+ "Error on ExpressionFactory.transpile(): no statement exists.",
142
+ );
143
+ else if (!ts.isExpressionStatement(statement))
144
+ throw new Error(
145
+ "Error on ExpressionFactory.transpile(): statement is not an expression statement.",
146
+ );
147
+
148
+ const visitor = (node: ts.Node): ts.Node => {
149
+ if (ts.isIdentifier(node) && node.text === "$input")
150
+ return input;
151
+ return ts.visitEachChild(
152
+ (ts.factory as any).cloneNode(node),
153
+ visitor,
154
+ context,
155
+ );
156
+ };
157
+ return visitor(statement.expression) as ts.Expression;
158
+ };
115
159
  }
@@ -17,6 +17,21 @@ export namespace IdentifierFactory {
17
17
  : ts.factory.createPropertyAccessExpression(target, postfix);
18
18
  };
19
19
 
20
+ export const getName = (input: ts.Expression): string => {
21
+ const value: any = (input as any).escapedText?.toString();
22
+ if (typeof value === "string") return value;
23
+
24
+ if (ts.isPropertyAccessExpression(input))
25
+ return `${getName(
26
+ input.expression,
27
+ )}.${input.name.escapedText.toString()}`;
28
+ else if (ts.isElementAccessExpression(input))
29
+ return `${getName(input.expression)}[${getName(
30
+ input.argumentExpression,
31
+ )}]`;
32
+ return "uknown";
33
+ };
34
+
20
35
  export const postfix = (str: string): string =>
21
36
  Escaper.variable(str)
22
37
  ? `".${str}"`
@@ -3,9 +3,9 @@ import ts from "typescript";
3
3
  import { IMetadataCollection } from "../schemas/metadata/IMetadataCollection";
4
4
  import { Metadata } from "../schemas/metadata/Metadata";
5
5
  import { MetadataAlias } from "../schemas/metadata/MetadataAlias";
6
- import { MetadataArray } from "../schemas/metadata/MetadataArray";
6
+ import { MetadataArrayType } from "../schemas/metadata/MetadataArrayType";
7
7
  import { MetadataObject } from "../schemas/metadata/MetadataObject";
8
- import { MetadataTuple } from "../schemas/metadata/MetadataTuple";
8
+ import { MetadataTupleType } from "../schemas/metadata/MetadataTupleType";
9
9
 
10
10
  import { Writable } from "../typings/Writable";
11
11
 
@@ -18,8 +18,8 @@ export class MetadataCollection {
18
18
  private readonly objects_: Map<ts.Type, MetadataObject>;
19
19
  private readonly object_unions_: Map<string, MetadataObject[]>;
20
20
  private readonly aliases_: Map<ts.Type, MetadataAlias>;
21
- private readonly arrays_: Map<ts.Type, MetadataArray>;
22
- private readonly tuples_: Map<ts.Type, MetadataTuple>;
21
+ private readonly arrays_: Map<ts.Type, MetadataArrayType>;
22
+ private readonly tuples_: Map<ts.Type, MetadataTupleType>;
23
23
 
24
24
  private readonly names_: Map<string, Map<ts.Type, string>>;
25
25
  private object_index_: number;
@@ -61,11 +61,11 @@ export class MetadataCollection {
61
61
  return [...this.object_unions_.values()];
62
62
  }
63
63
 
64
- public arrays(): MetadataArray[] {
64
+ public arrays(): MetadataArrayType[] {
65
65
  return [...this.arrays_.values()];
66
66
  }
67
67
 
68
- public tuples(): MetadataTuple[] {
68
+ public tuples(): MetadataTupleType[] {
69
69
  return [...this.tuples_.values()];
70
70
  }
71
71
 
@@ -159,12 +159,12 @@ export class MetadataCollection {
159
159
  public emplaceArray(
160
160
  checker: ts.TypeChecker,
161
161
  type: ts.Type,
162
- ): [MetadataArray, boolean, (meta: Metadata) => void] {
162
+ ): [MetadataArrayType, boolean, (meta: Metadata) => void] {
163
163
  const oldbie = this.arrays_.get(type);
164
164
  if (oldbie !== undefined) return [oldbie, false, () => {}];
165
165
 
166
166
  const $id = this.getName(checker, type);
167
- const array: MetadataArray = MetadataArray.create({
167
+ const array: MetadataArrayType = MetadataArrayType.create({
168
168
  name: $id,
169
169
  value: null!,
170
170
  index: null,
@@ -178,12 +178,12 @@ export class MetadataCollection {
178
178
  public emplaceTuple(
179
179
  checker: ts.TypeChecker,
180
180
  type: ts.TupleType,
181
- ): [MetadataTuple, boolean, (elements: Metadata[]) => void] {
181
+ ): [MetadataTupleType, boolean, (elements: Metadata[]) => void] {
182
182
  const oldbie = this.tuples_.get(type);
183
183
  if (oldbie !== undefined) return [oldbie, false, () => {}];
184
184
 
185
185
  const $id = this.getName(checker, type);
186
- const tuple: MetadataTuple = MetadataTuple.create({
186
+ const tuple: MetadataTupleType = MetadataTupleType.create({
187
187
  name: $id,
188
188
  elements: null!,
189
189
  index: null,
@@ -215,12 +215,18 @@ export class MetadataCollection {
215
215
  /**
216
216
  * @internal
217
217
  */
218
- public setArrayRecursive(array: MetadataArray, recursive: boolean): void {
218
+ public setArrayRecursive(
219
+ array: MetadataArrayType,
220
+ recursive: boolean,
221
+ ): void {
219
222
  Writable(array).recursive = recursive;
220
223
  if (recursive) Writable(array).index = this.recursive_array_index_++;
221
224
  }
222
225
 
223
- public setTupleRecursive(tuple: MetadataTuple, recursive: boolean): void {
226
+ public setTupleRecursive(
227
+ tuple: MetadataTupleType,
228
+ recursive: boolean,
229
+ ): void {
224
230
  Writable(tuple).recursive = recursive;
225
231
  if (recursive) Writable(tuple).index = this.recursive_tuple_index_++;
226
232
  }