typia 5.0.0-dev.20230823-2 → 5.0.0-dev.20230827

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 (424) hide show
  1. package/README.md +1 -2
  2. package/lib/IRandomGenerator.d.ts +4 -3
  3. package/lib/factories/ExpressionFactory.d.ts +3 -1
  4. package/lib/factories/ExpressionFactory.js +25 -1
  5. package/lib/factories/ExpressionFactory.js.map +1 -1
  6. package/lib/factories/IdentifierFactory.d.ts +2 -1
  7. package/lib/factories/IdentifierFactory.js +11 -0
  8. package/lib/factories/IdentifierFactory.js.map +1 -1
  9. package/lib/factories/LiteralFactory.js +6 -2
  10. package/lib/factories/LiteralFactory.js.map +1 -1
  11. package/lib/factories/MetadataCollection.d.ts +7 -7
  12. package/lib/factories/MetadataCollection.js +4 -5
  13. package/lib/factories/MetadataCollection.js.map +1 -1
  14. package/lib/factories/MetadataCommentTagFactory.js +532 -0
  15. package/lib/factories/MetadataCommentTagFactory.js.map +1 -0
  16. package/lib/factories/MetadataTypeTagFactory.d.ts +6 -0
  17. package/lib/factories/MetadataTypeTagFactory.js +207 -0
  18. package/lib/factories/MetadataTypeTagFactory.js.map +1 -0
  19. package/lib/factories/NumericRangeFactory.d.ts +6 -0
  20. package/lib/factories/NumericRangeFactory.js +34 -0
  21. package/lib/factories/NumericRangeFactory.js.map +1 -0
  22. package/lib/factories/ProtobufFactory.js +48 -16
  23. package/lib/factories/ProtobufFactory.js.map +1 -1
  24. package/lib/factories/internal/metadata/emend_metadata_atomics.js +12 -6
  25. package/lib/factories/internal/metadata/emend_metadata_atomics.js.map +1 -1
  26. package/lib/factories/internal/metadata/emplace_metadata_alias.js +1 -13
  27. package/lib/factories/internal/metadata/emplace_metadata_alias.js.map +1 -1
  28. package/lib/factories/internal/metadata/emplace_metadata_array_type.d.ts +5 -0
  29. package/lib/factories/internal/metadata/{emplace_metadata_array.js → emplace_metadata_array_type.js} +4 -4
  30. package/lib/factories/internal/metadata/emplace_metadata_array_type.js.map +1 -0
  31. package/lib/factories/internal/metadata/emplace_metadata_object.js +0 -1
  32. package/lib/factories/internal/metadata/emplace_metadata_object.js.map +1 -1
  33. package/lib/factories/internal/metadata/emplace_metadata_tuple.d.ts +2 -2
  34. package/lib/factories/internal/metadata/iterate_metadata_array.js +7 -3
  35. package/lib/factories/internal/metadata/iterate_metadata_array.js.map +1 -1
  36. package/lib/factories/internal/metadata/iterate_metadata_atomic.js +2 -1
  37. package/lib/factories/internal/metadata/iterate_metadata_atomic.js.map +1 -1
  38. package/lib/factories/internal/metadata/iterate_metadata_collection.js +20 -12
  39. package/lib/factories/internal/metadata/iterate_metadata_collection.js.map +1 -1
  40. package/lib/factories/internal/metadata/iterate_metadata_comment_tags.d.ts +2 -0
  41. package/lib/factories/internal/metadata/{iterate_metadata_tag.js → iterate_metadata_comment_tags.js} +7 -8
  42. package/lib/factories/internal/metadata/iterate_metadata_comment_tags.js.map +1 -0
  43. package/lib/factories/internal/metadata/iterate_metadata_intersection.js +140 -16
  44. package/lib/factories/internal/metadata/iterate_metadata_intersection.js.map +1 -1
  45. package/lib/factories/internal/metadata/iterate_metadata_object.js +0 -7
  46. package/lib/factories/internal/metadata/iterate_metadata_object.js.map +1 -1
  47. package/lib/factories/internal/metadata/iterate_metadata_sort.js +2 -2
  48. package/lib/factories/internal/metadata/iterate_metadata_sort.js.map +1 -1
  49. package/lib/factories/internal/metadata/iterate_metadata_tuple.js +6 -2
  50. package/lib/factories/internal/metadata/iterate_metadata_tuple.js.map +1 -1
  51. package/lib/functional/$any.js +2 -1
  52. package/lib/functional/$any.js.map +1 -1
  53. package/lib/functional/$clone.d.ts +2 -0
  54. package/lib/functional/$clone.js +8 -0
  55. package/lib/functional/$clone.js.map +1 -0
  56. package/lib/functional/Namespace.js +0 -16
  57. package/lib/functional/Namespace.js.map +1 -1
  58. package/lib/module.d.ts +2 -39
  59. package/lib/module.js +3 -17
  60. package/lib/module.js.map +1 -1
  61. package/lib/programmers/AssertProgrammer.js +28 -10
  62. package/lib/programmers/AssertProgrammer.js.map +1 -1
  63. package/lib/programmers/CheckerProgrammer.js +90 -68
  64. package/lib/programmers/CheckerProgrammer.js.map +1 -1
  65. package/lib/programmers/FeatureProgrammer.d.ts +2 -4
  66. package/lib/programmers/FeatureProgrammer.js +6 -6
  67. package/lib/programmers/FeatureProgrammer.js.map +1 -1
  68. package/lib/programmers/IsProgrammer.d.ts +1 -1
  69. package/lib/programmers/IsProgrammer.js +32 -21
  70. package/lib/programmers/IsProgrammer.js.map +1 -1
  71. package/lib/programmers/RandomProgrammer.js +187 -156
  72. package/lib/programmers/RandomProgrammer.js.map +1 -1
  73. package/lib/programmers/ValidateProgrammer.js +28 -10
  74. package/lib/programmers/ValidateProgrammer.js.map +1 -1
  75. package/lib/programmers/helpers/AtomicPredicator.js +2 -2
  76. package/lib/programmers/helpers/AtomicPredicator.js.map +1 -1
  77. package/lib/programmers/helpers/CloneJoiner.js +10 -2
  78. package/lib/programmers/helpers/CloneJoiner.js.map +1 -1
  79. package/lib/programmers/helpers/ICheckEntry.d.ts +4 -3
  80. package/lib/programmers/helpers/ProtobufUtil.d.ts +6 -2
  81. package/lib/programmers/helpers/ProtobufUtil.js +175 -17
  82. package/lib/programmers/helpers/ProtobufUtil.js.map +1 -1
  83. package/lib/programmers/helpers/RandomJoiner.d.ts +3 -5
  84. package/lib/programmers/helpers/RandomJoiner.js +7 -10
  85. package/lib/programmers/helpers/RandomJoiner.js.map +1 -1
  86. package/lib/programmers/helpers/RandomRanger.d.ts +5 -6
  87. package/lib/programmers/helpers/RandomRanger.js +13 -33
  88. package/lib/programmers/helpers/RandomRanger.js.map +1 -1
  89. package/lib/programmers/helpers/UnionExplorer.d.ts +7 -8
  90. package/lib/programmers/helpers/UnionExplorer.js +46 -35
  91. package/lib/programmers/helpers/UnionExplorer.js.map +1 -1
  92. package/lib/programmers/internal/application_alias.js +0 -1
  93. package/lib/programmers/internal/application_alias.js.map +1 -1
  94. package/lib/programmers/internal/application_array.js +60 -20
  95. package/lib/programmers/internal/application_array.js.map +1 -1
  96. package/lib/programmers/internal/application_default_string.js +2 -2
  97. package/lib/programmers/internal/application_default_string.js.map +1 -1
  98. package/lib/programmers/internal/application_number.js +95 -69
  99. package/lib/programmers/internal/application_number.js.map +1 -1
  100. package/lib/programmers/internal/application_object.js +0 -3
  101. package/lib/programmers/internal/application_object.js.map +1 -1
  102. package/lib/programmers/internal/application_resolved.js +2 -2
  103. package/lib/programmers/internal/application_resolved.js.map +1 -1
  104. package/lib/programmers/internal/application_schema.js +39 -22
  105. package/lib/programmers/internal/application_schema.js.map +1 -1
  106. package/lib/programmers/internal/application_string.js +56 -22
  107. package/lib/programmers/internal/application_string.js.map +1 -1
  108. package/lib/programmers/internal/application_tuple.js +10 -9
  109. package/lib/programmers/internal/application_tuple.js.map +1 -1
  110. package/lib/programmers/internal/check_array_length.js +25 -25
  111. package/lib/programmers/internal/check_array_length.js.map +1 -1
  112. package/lib/programmers/internal/check_bigint.js +20 -109
  113. package/lib/programmers/internal/check_bigint.js.map +1 -1
  114. package/lib/programmers/internal/check_dynamic_properties.js +1 -1
  115. package/lib/programmers/internal/check_dynamic_properties.js.map +1 -1
  116. package/lib/programmers/internal/check_number.js +57 -147
  117. package/lib/programmers/internal/check_number.js.map +1 -1
  118. package/lib/programmers/internal/check_string.js +21 -33
  119. package/lib/programmers/internal/check_string.js.map +1 -1
  120. package/lib/programmers/internal/check_template.js +31 -49
  121. package/lib/programmers/internal/check_template.js.map +1 -1
  122. package/lib/programmers/internal/check_union_array_like.js +7 -6
  123. package/lib/programmers/internal/check_union_array_like.js.map +1 -1
  124. package/lib/programmers/internal/feature_object_entries.js +1 -1
  125. package/lib/programmers/internal/feature_object_entries.js.map +1 -1
  126. package/lib/programmers/internal/metadata_to_pattern.js +4 -4
  127. package/lib/programmers/internal/metadata_to_pattern.js.map +1 -1
  128. package/lib/programmers/internal/random_custom.js +2 -2
  129. package/lib/programmers/internal/random_custom.js.map +1 -1
  130. package/lib/programmers/internal/stringify_dynamic_properties.js +2 -1
  131. package/lib/programmers/internal/stringify_dynamic_properties.js.map +1 -1
  132. package/lib/programmers/internal/wrap_metadata_rest_tuple.js +9 -5
  133. package/lib/programmers/internal/wrap_metadata_rest_tuple.js.map +1 -1
  134. package/lib/programmers/json/JsonStringifyProgrammer.js +43 -32
  135. package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
  136. package/lib/programmers/misc/MiscCloneProgrammer.js +21 -17
  137. package/lib/programmers/misc/MiscCloneProgrammer.js.map +1 -1
  138. package/lib/programmers/{IsPruneProgrammer.d.ts → misc/MiscIsPruneProgrammer.d.ts} +2 -2
  139. package/lib/programmers/{IsPruneProgrammer.js → misc/MiscIsPruneProgrammer.js} +11 -11
  140. package/lib/programmers/misc/MiscIsPruneProgrammer.js.map +1 -0
  141. package/lib/programmers/misc/MiscLiteralsProgrammer.js +2 -2
  142. package/lib/programmers/misc/MiscLiteralsProgrammer.js.map +1 -1
  143. package/lib/programmers/misc/MiscPruneProgrammer.js +21 -17
  144. package/lib/programmers/misc/MiscPruneProgrammer.js.map +1 -1
  145. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js +29 -49
  146. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js.map +1 -1
  147. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js +138 -65
  148. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js.map +1 -1
  149. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js +59 -85
  150. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js.map +1 -1
  151. package/lib/schemas/json/IJsonSchema.d.ts +10 -38
  152. package/lib/schemas/metadata/IMetadata.d.ts +11 -4
  153. package/lib/schemas/metadata/IMetadataAlias.d.ts +0 -2
  154. package/lib/schemas/metadata/IMetadataArray.d.ts +4 -6
  155. package/lib/schemas/metadata/IMetadataArrayType.d.ts +8 -0
  156. package/lib/{CustomValidatorMap.js → schemas/metadata/IMetadataArrayType.js} +1 -1
  157. package/lib/schemas/metadata/IMetadataArrayType.js.map +1 -0
  158. package/lib/schemas/metadata/IMetadataAtomic.d.ts +5 -0
  159. package/lib/schemas/metadata/IMetadataAtomic.js +3 -0
  160. package/lib/schemas/metadata/IMetadataAtomic.js.map +1 -0
  161. package/lib/schemas/metadata/IMetadataCollection.d.ts +4 -4
  162. package/lib/schemas/metadata/IMetadataProperty.d.ts +0 -2
  163. package/lib/schemas/metadata/IMetadataTuple.d.ts +4 -6
  164. package/lib/schemas/metadata/IMetadataTupleType.d.ts +8 -0
  165. package/lib/schemas/metadata/IMetadataTupleType.js +3 -0
  166. package/lib/schemas/metadata/IMetadataTupleType.js.map +1 -0
  167. package/lib/schemas/metadata/IMetadataTypeTag.d.ts +8 -0
  168. package/lib/schemas/metadata/IMetadataTypeTag.js +3 -0
  169. package/lib/schemas/metadata/IMetadataTypeTag.js.map +1 -0
  170. package/lib/schemas/metadata/Metadata.d.ts +2 -2
  171. package/lib/schemas/metadata/Metadata.js +219 -159
  172. package/lib/schemas/metadata/Metadata.js.map +1 -1
  173. package/lib/schemas/metadata/MetadataAlias.d.ts +0 -2
  174. package/lib/schemas/metadata/MetadataAlias.js +0 -3
  175. package/lib/schemas/metadata/MetadataAlias.js.map +1 -1
  176. package/lib/schemas/metadata/MetadataArray.d.ts +8 -6
  177. package/lib/schemas/metadata/MetadataArray.js +48 -19
  178. package/lib/schemas/metadata/MetadataArray.js.map +1 -1
  179. package/lib/schemas/metadata/MetadataArrayType.d.ts +14 -0
  180. package/lib/schemas/metadata/MetadataArrayType.js +36 -0
  181. package/lib/schemas/metadata/MetadataArrayType.js.map +1 -0
  182. package/lib/schemas/metadata/MetadataAtomic.d.ts +9 -0
  183. package/lib/schemas/metadata/MetadataAtomic.js +59 -0
  184. package/lib/schemas/metadata/MetadataAtomic.js.map +1 -0
  185. package/lib/schemas/metadata/MetadataProperty.d.ts +0 -2
  186. package/lib/schemas/metadata/MetadataProperty.js +0 -3
  187. package/lib/schemas/metadata/MetadataProperty.js.map +1 -1
  188. package/lib/schemas/metadata/MetadataTuple.d.ts +8 -8
  189. package/lib/schemas/metadata/MetadataTuple.js +4 -19
  190. package/lib/schemas/metadata/MetadataTuple.js.map +1 -1
  191. package/lib/schemas/metadata/MetadataTupleType.d.ts +13 -0
  192. package/lib/schemas/metadata/MetadataTupleType.js +40 -0
  193. package/lib/schemas/metadata/MetadataTupleType.js.map +1 -0
  194. package/lib/tags/ExclusiveMaximum.d.ts +10 -0
  195. package/lib/tags/ExclusiveMaximum.js +3 -0
  196. package/lib/tags/ExclusiveMaximum.js.map +1 -0
  197. package/lib/tags/ExclusiveMinimum.d.ts +10 -0
  198. package/lib/tags/ExclusiveMinimum.js +3 -0
  199. package/lib/tags/ExclusiveMinimum.js.map +1 -0
  200. package/lib/tags/Format.d.ts +8 -0
  201. package/lib/{schemas/metadata/ICommentTag.js → tags/Format.js} +1 -1
  202. package/lib/tags/Format.js.map +1 -0
  203. package/lib/tags/MaxItems.d.ts +8 -0
  204. package/lib/{schemas/metadata/IMetadataTag.js → tags/MaxItems.js} +1 -1
  205. package/lib/tags/MaxItems.js.map +1 -0
  206. package/lib/tags/MaxLength.d.ts +8 -0
  207. package/lib/tags/MaxLength.js +3 -0
  208. package/lib/tags/MaxLength.js.map +1 -0
  209. package/lib/tags/Maximum.d.ts +10 -0
  210. package/lib/tags/Maximum.js +3 -0
  211. package/lib/tags/Maximum.js.map +1 -0
  212. package/lib/tags/MinItems.d.ts +8 -0
  213. package/lib/tags/MinItems.js +3 -0
  214. package/lib/tags/MinItems.js.map +1 -0
  215. package/lib/tags/MinLength.d.ts +8 -0
  216. package/lib/tags/MinLength.js +3 -0
  217. package/lib/tags/MinLength.js.map +1 -0
  218. package/lib/tags/Minimum.d.ts +10 -0
  219. package/lib/tags/Minimum.js +3 -0
  220. package/lib/tags/Minimum.js.map +1 -0
  221. package/lib/tags/MultipleOf.d.ts +10 -0
  222. package/lib/tags/MultipleOf.js +3 -0
  223. package/lib/tags/MultipleOf.js.map +1 -0
  224. package/lib/tags/Pattern.d.ts +7 -0
  225. package/lib/tags/Pattern.js +3 -0
  226. package/lib/tags/Pattern.js.map +1 -0
  227. package/lib/tags/TagBase.d.ts +14 -0
  228. package/lib/tags/TagBase.js +3 -0
  229. package/lib/tags/TagBase.js.map +1 -0
  230. package/lib/tags/Type.d.ts +14 -0
  231. package/lib/tags/Type.js +3 -0
  232. package/lib/tags/Type.js.map +1 -0
  233. package/lib/tags/index.d.ts +13 -0
  234. package/lib/tags/index.js +30 -0
  235. package/lib/tags/index.js.map +1 -0
  236. package/lib/transformers/FileTransformer.d.ts +1 -1
  237. package/lib/transformers/FileTransformer.js +15 -2
  238. package/lib/transformers/FileTransformer.js.map +1 -1
  239. package/lib/transformers/IProject.d.ts +1 -0
  240. package/lib/transformers/features/json/JsonApplicationTransformer.js +4 -2
  241. package/lib/transformers/features/json/JsonApplicationTransformer.js.map +1 -1
  242. package/lib/transformers/features/misc/MiscCreateIsPruneTransformer.js +2 -2
  243. package/lib/transformers/features/misc/MiscCreateIsPruneTransformer.js.map +1 -1
  244. package/lib/transformers/features/misc/MiscIsPruneTransformer.js +2 -2
  245. package/lib/transformers/features/misc/MiscIsPruneTransformer.js.map +1 -1
  246. package/lib/typings/ProtobufAtomic.d.ts +5 -0
  247. package/lib/typings/ProtobufAtomic.js +3 -0
  248. package/lib/typings/ProtobufAtomic.js.map +1 -0
  249. package/package.json +2 -2
  250. package/src/IRandomGenerator.ts +4 -3
  251. package/src/factories/ExpressionFactory.ts +46 -2
  252. package/src/factories/IdentifierFactory.ts +15 -0
  253. package/src/factories/LiteralFactory.ts +10 -3
  254. package/src/factories/MetadataCollection.ts +18 -13
  255. package/src/factories/MetadataCommentTagFactory.ts +583 -0
  256. package/src/factories/MetadataTypeTagFactory.ts +263 -0
  257. package/src/factories/NumericRangeFactory.ts +33 -0
  258. package/src/factories/ProtobufFactory.ts +34 -18
  259. package/src/factories/internal/metadata/emend_metadata_atomics.ts +12 -5
  260. package/src/factories/internal/metadata/emplace_metadata_alias.ts +0 -6
  261. package/src/factories/internal/metadata/{emplace_metadata_array.ts → emplace_metadata_array_type.ts} +3 -3
  262. package/src/factories/internal/metadata/emplace_metadata_object.ts +0 -1
  263. package/src/factories/internal/metadata/emplace_metadata_tuple.ts +2 -2
  264. package/src/factories/internal/metadata/iterate_metadata_array.ts +13 -5
  265. package/src/factories/internal/metadata/iterate_metadata_atomic.ts +7 -4
  266. package/src/factories/internal/metadata/iterate_metadata_collection.ts +23 -16
  267. package/src/factories/internal/metadata/{iterate_metadata_tag.ts → iterate_metadata_comment_tags.ts} +4 -8
  268. package/src/factories/internal/metadata/iterate_metadata_intersection.ts +113 -16
  269. package/src/factories/internal/metadata/iterate_metadata_object.ts +10 -10
  270. package/src/factories/internal/metadata/iterate_metadata_sort.ts +2 -2
  271. package/src/factories/internal/metadata/iterate_metadata_tuple.ts +12 -4
  272. package/src/functional/$any.ts +3 -1
  273. package/src/functional/$clone.ts +4 -0
  274. package/src/functional/Namespace.ts +0 -16
  275. package/src/module.ts +2 -55
  276. package/src/programmers/AssertProgrammer.ts +57 -21
  277. package/src/programmers/CheckerProgrammer.ts +81 -123
  278. package/src/programmers/FeatureProgrammer.ts +9 -31
  279. package/src/programmers/IsProgrammer.ts +53 -42
  280. package/src/programmers/RandomProgrammer.ts +242 -239
  281. package/src/programmers/ValidateProgrammer.ts +60 -21
  282. package/src/programmers/helpers/AtomicPredicator.ts +2 -2
  283. package/src/programmers/helpers/CloneJoiner.ts +57 -20
  284. package/src/programmers/helpers/ICheckEntry.ts +4 -3
  285. package/src/programmers/helpers/ProtobufUtil.ts +113 -17
  286. package/src/programmers/helpers/RandomJoiner.ts +11 -33
  287. package/src/programmers/helpers/RandomRanger.ts +16 -51
  288. package/src/programmers/helpers/UnionExplorer.ts +46 -51
  289. package/src/programmers/internal/application_alias.ts +0 -1
  290. package/src/programmers/internal/application_array.ts +33 -10
  291. package/src/programmers/internal/application_default_string.ts +6 -2
  292. package/src/programmers/internal/application_number.ts +76 -70
  293. package/src/programmers/internal/application_object.ts +0 -3
  294. package/src/programmers/internal/application_resolved.ts +2 -2
  295. package/src/programmers/internal/application_schema.ts +38 -20
  296. package/src/programmers/internal/application_string.ts +33 -27
  297. package/src/programmers/internal/application_tuple.ts +12 -11
  298. package/src/programmers/internal/check_array_length.ts +34 -28
  299. package/src/programmers/internal/check_bigint.ts +26 -91
  300. package/src/programmers/internal/check_dynamic_properties.ts +1 -2
  301. package/src/programmers/internal/check_number.ts +83 -236
  302. package/src/programmers/internal/check_string.ts +37 -17
  303. package/src/programmers/internal/check_template.ts +17 -12
  304. package/src/programmers/internal/check_union_array_like.ts +4 -18
  305. package/src/programmers/internal/feature_object_entries.ts +12 -18
  306. package/src/programmers/internal/metadata_to_pattern.ts +4 -4
  307. package/src/programmers/internal/random_custom.ts +3 -3
  308. package/src/programmers/internal/stringify_dynamic_properties.ts +1 -1
  309. package/src/programmers/internal/wrap_metadata_rest_tuple.ts +9 -5
  310. package/src/programmers/json/JsonStringifyProgrammer.ts +46 -41
  311. package/src/programmers/misc/MiscCloneProgrammer.ts +23 -27
  312. package/src/programmers/{IsPruneProgrammer.ts → misc/MiscIsPruneProgrammer.ts} +7 -7
  313. package/src/programmers/misc/MiscLiteralsProgrammer.ts +2 -2
  314. package/src/programmers/misc/MiscPruneProgrammer.ts +24 -24
  315. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +40 -74
  316. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +154 -99
  317. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +6 -36
  318. package/src/schemas/json/IJsonSchema.ts +11 -38
  319. package/src/schemas/metadata/IMetadata.ts +11 -5
  320. package/src/schemas/metadata/IMetadataAlias.ts +0 -2
  321. package/src/schemas/metadata/IMetadataArray.ts +4 -7
  322. package/src/schemas/metadata/IMetadataArrayType.ts +10 -0
  323. package/src/schemas/metadata/IMetadataAtomic.ts +6 -0
  324. package/src/schemas/metadata/IMetadataCollection.ts +4 -4
  325. package/src/schemas/metadata/IMetadataDictionary.ts +4 -4
  326. package/src/schemas/metadata/IMetadataProperty.ts +0 -2
  327. package/src/schemas/metadata/IMetadataTuple.ts +4 -7
  328. package/src/schemas/metadata/IMetadataTupleType.ts +10 -0
  329. package/src/schemas/metadata/IMetadataTypeTag.ts +8 -0
  330. package/src/schemas/metadata/Metadata.ts +121 -70
  331. package/src/schemas/metadata/MetadataAlias.ts +0 -5
  332. package/src/schemas/metadata/MetadataArray.ts +28 -34
  333. package/src/schemas/metadata/MetadataArrayType.ts +57 -0
  334. package/src/schemas/metadata/MetadataAtomic.ts +42 -0
  335. package/src/schemas/metadata/MetadataProperty.ts +0 -5
  336. package/src/schemas/metadata/MetadataTuple.ts +9 -35
  337. package/src/schemas/metadata/MetadataTupleType.ts +67 -0
  338. package/src/tags/ExclusiveMaximum.ts +13 -0
  339. package/src/tags/ExclusiveMinimum.ts +13 -0
  340. package/src/tags/Format.ts +30 -0
  341. package/src/tags/MaxItems.ts +9 -0
  342. package/src/tags/MaxLength.ts +9 -0
  343. package/src/tags/Maximum.ts +13 -0
  344. package/src/tags/MinItems.ts +9 -0
  345. package/src/tags/MinLength.ts +9 -0
  346. package/src/tags/Minimum.ts +13 -0
  347. package/src/tags/MultipleOf.ts +15 -0
  348. package/src/tags/Pattern.ts +8 -0
  349. package/src/tags/TagBase.ts +22 -0
  350. package/src/tags/Type.ts +27 -0
  351. package/src/tags/index.ts +13 -0
  352. package/src/transformers/FileTransformer.ts +6 -6
  353. package/src/transformers/IProject.ts +1 -0
  354. package/src/transformers/features/json/JsonApplicationTransformer.ts +3 -2
  355. package/src/transformers/features/misc/MiscCreateIsPruneTransformer.ts +2 -2
  356. package/src/transformers/features/misc/MiscIsPruneTransformer.ts +2 -2
  357. package/src/typings/Atomic.ts +1 -0
  358. package/src/typings/ProtobufAtomic.ts +19 -0
  359. package/lib/CustomValidatorMap.d.ts +0 -110
  360. package/lib/CustomValidatorMap.js.map +0 -1
  361. package/lib/factories/MetadataTagFactory.d.ts +0 -6
  362. package/lib/factories/MetadataTagFactory.js +0 -310
  363. package/lib/factories/MetadataTagFactory.js.map +0 -1
  364. package/lib/factories/internal/metadata/emplace_metadata_array.d.ts +0 -5
  365. package/lib/factories/internal/metadata/emplace_metadata_array.js.map +0 -1
  366. package/lib/factories/internal/metadata/iterate_metadata_tag.d.ts +0 -2
  367. package/lib/factories/internal/metadata/iterate_metadata_tag.js.map +0 -1
  368. package/lib/functional/$is_custom.d.ts +0 -2
  369. package/lib/functional/$is_custom.js +0 -13
  370. package/lib/functional/$is_custom.js.map +0 -1
  371. package/lib/functional/$is_date.d.ts +0 -1
  372. package/lib/functional/$is_date.js +0 -7
  373. package/lib/functional/$is_date.js.map +0 -1
  374. package/lib/functional/$is_datetime.d.ts +0 -1
  375. package/lib/functional/$is_datetime.js +0 -8
  376. package/lib/functional/$is_datetime.js.map +0 -1
  377. package/lib/functional/$is_email.d.ts +0 -1
  378. package/lib/functional/$is_email.js +0 -7
  379. package/lib/functional/$is_email.js.map +0 -1
  380. package/lib/functional/$is_ipv4.d.ts +0 -1
  381. package/lib/functional/$is_ipv4.js +0 -7
  382. package/lib/functional/$is_ipv4.js.map +0 -1
  383. package/lib/functional/$is_ipv6.d.ts +0 -1
  384. package/lib/functional/$is_ipv6.js +0 -7
  385. package/lib/functional/$is_ipv6.js.map +0 -1
  386. package/lib/functional/$is_url.d.ts +0 -1
  387. package/lib/functional/$is_url.js +0 -7
  388. package/lib/functional/$is_url.js.map +0 -1
  389. package/lib/functional/$is_uuid.d.ts +0 -1
  390. package/lib/functional/$is_uuid.js +0 -7
  391. package/lib/functional/$is_uuid.js.map +0 -1
  392. package/lib/programmers/IsPruneProgrammer.js.map +0 -1
  393. package/lib/programmers/internal/check_array.js +0 -44
  394. package/lib/programmers/internal/check_array.js.map +0 -1
  395. package/lib/programmers/internal/check_custom.d.ts +0 -1
  396. package/lib/programmers/internal/check_custom.js +0 -30
  397. package/lib/programmers/internal/check_custom.js.map +0 -1
  398. package/lib/programmers/internal/check_string_tags.d.ts +0 -1
  399. package/lib/programmers/internal/check_string_tags.js +0 -89
  400. package/lib/programmers/internal/check_string_tags.js.map +0 -1
  401. package/lib/programmers/internal/get_comment_tags.d.ts +0 -1
  402. package/lib/programmers/internal/get_comment_tags.js +0 -25
  403. package/lib/programmers/internal/get_comment_tags.js.map +0 -1
  404. package/lib/schemas/metadata/ICommentTag.d.ts +0 -4
  405. package/lib/schemas/metadata/ICommentTag.js.map +0 -1
  406. package/lib/schemas/metadata/IMetadataTag.d.ts +0 -63
  407. package/lib/schemas/metadata/IMetadataTag.js.map +0 -1
  408. package/src/CustomValidatorMap.ts +0 -126
  409. package/src/factories/MetadataTagFactory.ts +0 -364
  410. package/src/functional/$is_custom.ts +0 -14
  411. package/src/functional/$is_date.ts +0 -3
  412. package/src/functional/$is_datetime.ts +0 -2
  413. package/src/functional/$is_email.ts +0 -4
  414. package/src/functional/$is_ipv4.ts +0 -4
  415. package/src/functional/$is_ipv6.ts +0 -4
  416. package/src/functional/$is_url.ts +0 -4
  417. package/src/functional/$is_uuid.ts +0 -4
  418. package/src/programmers/internal/check_array.ts +0 -30
  419. package/src/programmers/internal/check_custom.ts +0 -31
  420. package/src/programmers/internal/check_string_tags.ts +0 -67
  421. package/src/programmers/internal/get_comment_tags.ts +0 -23
  422. package/src/schemas/metadata/ICommentTag.ts +0 -4
  423. package/src/schemas/metadata/IMetadataTag.ts +0 -112
  424. /package/lib/{programmers/internal/check_array.d.ts → factories/MetadataCommentTagFactory.d.ts} +0 -0
@@ -41,10 +41,13 @@ var Writable_1 = require("../../typings/Writable");
41
41
  var ArrayUtil_1 = require("../../utils/ArrayUtil");
42
42
  var MetadataAlias_1 = require("./MetadataAlias");
43
43
  var MetadataArray_1 = require("./MetadataArray");
44
+ var MetadataArrayType_1 = require("./MetadataArrayType");
45
+ var MetadataAtomic_1 = require("./MetadataAtomic");
44
46
  var MetadataEscaped_1 = require("./MetadataEscaped");
45
47
  var MetadataObject_1 = require("./MetadataObject");
46
48
  var MetadataProperty_1 = require("./MetadataProperty");
47
49
  var MetadataTuple_1 = require("./MetadataTuple");
50
+ var MetadataTupleType_1 = require("./MetadataTupleType");
48
51
  var Metadata = (function () {
49
52
  function Metadata(props) {
50
53
  this.parent_resolved_ = false;
@@ -100,15 +103,29 @@ var Metadata = (function () {
100
103
  optional: this.optional,
101
104
  nullable: this.nullable,
102
105
  functional: this.functional,
103
- atomics: this.atomics.slice(),
104
- constants: JSON.parse(JSON.stringify(this.constants)),
106
+ atomics: this.atomics.map(function (a) {
107
+ return MetadataAtomic_1.MetadataAtomic.create({
108
+ type: a.type,
109
+ tags: a.tags.map(function (r) { return r.slice(); }),
110
+ });
111
+ }),
112
+ constants: this.constants.map(function (c) { return ({
113
+ type: c.type,
114
+ values: c.values.slice(),
115
+ }); }),
105
116
  templates: this.templates.map(function (tpl) {
106
117
  return tpl.map(function (meta) { return meta.toJSON(); });
107
118
  }),
108
119
  escaped: this.escaped ? this.escaped.toJSON() : null,
109
120
  rest: this.rest ? this.rest.toJSON() : null,
110
- arrays: this.arrays.map(function (array) { return array.name; }),
111
- tuples: this.tuples.map(function (tuple) { return tuple.name; }),
121
+ arrays: this.arrays.map(function (array) { return ({
122
+ name: array.type.name,
123
+ tags: array.tags.map(function (r) { return r.slice(); }),
124
+ }); }),
125
+ tuples: this.tuples.map(function (tuple) { return ({
126
+ name: tuple.type.name,
127
+ tags: tuple.tags.map(function (r) { return r.slice(); }),
128
+ }); }),
112
129
  objects: this.objects.map(function (obj) { return obj.name; }),
113
130
  aliases: this.aliases.map(function (alias) { return alias.name; }),
114
131
  natives: this.natives.slice(),
@@ -133,11 +150,11 @@ var Metadata = (function () {
133
150
  ]; })),
134
151
  arrays: new Map(collection.arrays.map(function (arr) { return [
135
152
  arr.name,
136
- MetadataArray_1.MetadataArray._From_without_value(arr),
153
+ MetadataArrayType_1.MetadataArrayType._From_without_value(arr),
137
154
  ]; })),
138
155
  tuples: new Map(collection.tuples.map(function (tpl) { return [
139
156
  tpl.name,
140
- MetadataTuple_1.MetadataTuple._From_without_elements(tpl),
157
+ MetadataTupleType_1.MetadataTupleType._From_without_elements(tpl),
141
158
  ]; })),
142
159
  };
143
160
  try {
@@ -206,8 +223,10 @@ var Metadata = (function () {
206
223
  optional: meta.optional,
207
224
  nullable: meta.nullable,
208
225
  functional: meta.functional,
209
- constants: JSON.parse(JSON.stringify(meta.constants)),
210
- atomics: meta.atomics.slice(),
226
+ constants: meta.constants.slice(),
227
+ atomics: meta.atomics.map(function (a) {
228
+ return MetadataAtomic_1.MetadataAtomic.create({ type: a.type, tags: a.tags });
229
+ }),
211
230
  templates: meta.templates.map(function (tpl) {
212
231
  return tpl.map(function (meta) { return _this._From(meta, dict); });
213
232
  }),
@@ -215,17 +234,23 @@ var Metadata = (function () {
215
234
  ? MetadataEscaped_1.MetadataEscaped._From(meta.escaped, dict)
216
235
  : null,
217
236
  rest: meta.rest ? this._From(meta.rest, dict) : null,
218
- arrays: meta.arrays.map(function (id) {
219
- var array = dict.arrays.get(id);
220
- if (array === undefined)
221
- throw new Error("Error on Metadata.from(): failed to find array \"".concat(id, "\"."));
222
- return array;
237
+ arrays: meta.arrays.map(function (ref) {
238
+ var type = dict.arrays.get(ref.name);
239
+ if (type === undefined)
240
+ throw new Error("Error on Metadata.from(): failed to find array \"".concat(ref.name, "\"."));
241
+ return MetadataArray_1.MetadataArray.create({
242
+ type: type,
243
+ tags: ref.tags.map(function (row) { return row.slice(); }),
244
+ });
223
245
  }),
224
- tuples: meta.tuples.map(function (id) {
225
- var tuple = dict.tuples.get(id);
226
- if (tuple === undefined)
227
- throw new Error("Error on Metadata.from(): failed to find tuple \"".concat(id, "\"."));
228
- return tuple;
246
+ tuples: meta.tuples.map(function (t) {
247
+ var type = dict.tuples.get(t.name);
248
+ if (type === undefined)
249
+ throw new Error("Error on Metadata.from(): failed to find tuple \"".concat(t.name, "\"."));
250
+ return MetadataTuple_1.MetadataTuple.create({
251
+ type: type,
252
+ tags: t.tags.map(function (r) { return r.slice(); }),
253
+ });
229
254
  }),
230
255
  objects: meta.objects.map(function (name) {
231
256
  var found = dict.objects.get(name);
@@ -249,8 +274,7 @@ var Metadata = (function () {
249
274
  };
250
275
  Metadata.prototype.getName = function () {
251
276
  var _a;
252
- (_a = this.name_) !== null && _a !== void 0 ? _a : (this.name_ = getName(this));
253
- return this.name_;
277
+ return ((_a = this.name_) !== null && _a !== void 0 ? _a : (this.name_ = getName(this)));
254
278
  };
255
279
  Metadata.prototype.empty = function () {
256
280
  return this.bucket() === 0 || this.size() === 0;
@@ -273,14 +297,6 @@ var Metadata = (function () {
273
297
  this.objects.length +
274
298
  this.aliases.length);
275
299
  };
276
- Metadata.prototype.binarySize = function () {
277
- return (new Set(__spreadArray(__spreadArray(__spreadArray([], __read(this.atomics), false), __read(this.constants.map(function (c) { return c.type; })), false), __read((this.templates.length ? ["string"] : [])), false)).size +
278
- this.arrays.length +
279
- this.tuples.length +
280
- this.natives.length +
281
- this.objects.length +
282
- this.maps.length);
283
- };
284
300
  Metadata.prototype.bucket = function () {
285
301
  return ((this.any ? 1 : 0) +
286
302
  (this.escaped ? 1 : 0) +
@@ -308,9 +324,6 @@ var Metadata = (function () {
308
324
  var emended = !!this.atomics.length && !!this.constants.length ? size - 1 : size;
309
325
  return emended > 1;
310
326
  };
311
- Metadata.prototype.isBinaryUnion = function () {
312
- return this.binarySize() > 1;
313
- };
314
327
  Metadata.prototype.getSoleLiteral = function () {
315
328
  if (this.size() === 1 &&
316
329
  this.constants.length === 1 &&
@@ -351,11 +364,16 @@ exports.Metadata = Metadata;
351
364
  if (x.natives.length && y.natives.length)
352
365
  if (x.natives.some(function (xn) { return y.natives.some(function (yn) { return xn === yn; }); }))
353
366
  return true;
367
+ var _loop_1 = function (atomic) {
368
+ if (y.atomics.some(function (ya) { return atomic.type === ya.type; }))
369
+ return { value: true };
370
+ };
354
371
  try {
355
372
  for (var _c = __values(x.atomics), _d = _c.next(); !_d.done; _d = _c.next()) {
356
373
  var atomic = _d.value;
357
- if (y.atomics.includes(atomic))
358
- return true;
374
+ var state_1 = _loop_1(atomic);
375
+ if (typeof state_1 === "object")
376
+ return state_1.value;
359
377
  }
360
378
  }
361
379
  catch (e_5_1) { e_5 = { error: e_5_1 }; }
@@ -365,7 +383,7 @@ exports.Metadata = Metadata;
365
383
  }
366
384
  finally { if (e_5) throw e_5.error; }
367
385
  }
368
- var _loop_1 = function (constant) {
386
+ var _loop_2 = function (constant) {
369
387
  var opposite = y.constants.find(function (elem) { return elem.type === constant.type; });
370
388
  if (opposite === undefined)
371
389
  return "continue";
@@ -376,9 +394,9 @@ exports.Metadata = Metadata;
376
394
  try {
377
395
  for (var _e = __values(x.constants), _f = _e.next(); !_f.done; _f = _e.next()) {
378
396
  var constant = _f.value;
379
- var state_1 = _loop_1(constant);
380
- if (typeof state_1 === "object")
381
- return state_1.value;
397
+ var state_2 = _loop_2(constant);
398
+ if (typeof state_2 === "object")
399
+ return state_2.value;
382
400
  }
383
401
  }
384
402
  catch (e_6_1) { e_6 = { error: e_6_1 }; }
@@ -400,9 +418,9 @@ exports.Metadata = Metadata;
400
418
  else if (y.any)
401
419
  return false;
402
420
  if (level === 0) {
403
- var _loop_2 = function (ya) {
421
+ var _loop_3 = function (ya) {
404
422
  if (!x.arrays.some(function (xa) {
405
- return Metadata.covers(xa.value, ya.value, level + 1);
423
+ return Metadata.covers(xa.type.value, ya.type.value, level + 1);
406
424
  })) {
407
425
  return { value: false };
408
426
  }
@@ -410,9 +428,9 @@ exports.Metadata = Metadata;
410
428
  try {
411
429
  for (var _h = __values(y.arrays), _j = _h.next(); !_j.done; _j = _h.next()) {
412
430
  var ya = _j.value;
413
- var state_2 = _loop_2(ya);
414
- if (typeof state_2 === "object")
415
- return state_2.value;
431
+ var state_3 = _loop_3(ya);
432
+ if (typeof state_3 === "object")
433
+ return state_3.value;
416
434
  }
417
435
  }
418
436
  catch (e_7_1) { e_7 = { error: e_7_1 }; }
@@ -422,14 +440,15 @@ exports.Metadata = Metadata;
422
440
  }
423
441
  finally { if (e_7) throw e_7.error; }
424
442
  }
425
- var _loop_3 = function (yt) {
426
- if (yt.elements.length !== 0 &&
443
+ var _loop_4 = function (yt) {
444
+ if (yt.type.elements.length !== 0 &&
427
445
  x.tuples.some(function (xt) {
428
- return xt.elements.length >= yt.elements.length &&
429
- xt.elements
430
- .slice(yt.elements.length)
446
+ return xt.type.elements.length >=
447
+ yt.type.elements.length &&
448
+ xt.type.elements
449
+ .slice(yt.type.elements.length)
431
450
  .every(function (xv, i) {
432
- return Metadata.covers(xv, yt.elements[i], level + 1);
451
+ return Metadata.covers(xv, yt.type.elements[i], level + 1);
433
452
  });
434
453
  }) === false)
435
454
  return { value: false };
@@ -437,9 +456,9 @@ exports.Metadata = Metadata;
437
456
  try {
438
457
  for (var _k = __values(y.tuples), _l = _k.next(); !_l.done; _l = _k.next()) {
439
458
  var yt = _l.value;
440
- var state_3 = _loop_3(yt);
441
- if (typeof state_3 === "object")
442
- return state_3.value;
459
+ var state_4 = _loop_4(yt);
460
+ if (typeof state_4 === "object")
461
+ return state_4.value;
443
462
  }
444
463
  }
445
464
  catch (e_8_1) { e_8 = { error: e_8_1 }; }
@@ -450,16 +469,16 @@ exports.Metadata = Metadata;
450
469
  finally { if (e_8) throw e_8.error; }
451
470
  }
452
471
  }
453
- var _loop_4 = function (yo) {
472
+ var _loop_5 = function (yo) {
454
473
  if (x.objects.some(function (xo) { return MetadataObject_1.MetadataObject.covers(xo, yo); }) === false)
455
474
  return { value: false };
456
475
  };
457
476
  try {
458
477
  for (var _m = __values(y.objects), _o = _m.next(); !_o.done; _o = _m.next()) {
459
478
  var yo = _o.value;
460
- var state_4 = _loop_4(yo);
461
- if (typeof state_4 === "object")
462
- return state_4.value;
479
+ var state_5 = _loop_5(yo);
480
+ if (typeof state_5 === "object")
481
+ return state_5.value;
463
482
  }
464
483
  }
465
484
  catch (e_9_1) { e_9 = { error: e_9_1 }; }
@@ -469,16 +488,16 @@ exports.Metadata = Metadata;
469
488
  }
470
489
  finally { if (e_9) throw e_9.error; }
471
490
  }
472
- var _loop_5 = function (yd) {
491
+ var _loop_6 = function (yd) {
473
492
  if (x.aliases.some(function (xd) { return xd.name === yd.name; }) === false)
474
493
  return { value: false };
475
494
  };
476
495
  try {
477
496
  for (var _p = __values(y.aliases), _q = _p.next(); !_q.done; _q = _p.next()) {
478
497
  var yd = _q.value;
479
- var state_5 = _loop_5(yd);
480
- if (typeof state_5 === "object")
481
- return state_5.value;
498
+ var state_6 = _loop_6(yd);
499
+ if (typeof state_6 === "object")
500
+ return state_6.value;
482
501
  }
483
502
  }
484
503
  catch (e_10_1) { e_10 = { error: e_10_1 }; }
@@ -488,16 +507,16 @@ exports.Metadata = Metadata;
488
507
  }
489
508
  finally { if (e_10) throw e_10.error; }
490
509
  }
491
- var _loop_6 = function (yn) {
510
+ var _loop_7 = function (yn) {
492
511
  if (x.natives.some(function (xn) { return xn === yn; }) === false)
493
512
  return { value: false };
494
513
  };
495
514
  try {
496
515
  for (var _r = __values(y.natives), _s = _r.next(); !_s.done; _s = _r.next()) {
497
516
  var yn = _s.value;
498
- var state_6 = _loop_6(yn);
499
- if (typeof state_6 === "object")
500
- return state_6.value;
517
+ var state_7 = _loop_7(yn);
518
+ if (typeof state_7 === "object")
519
+ return state_7.value;
501
520
  }
502
521
  }
503
522
  catch (e_11_1) { e_11 = { error: e_11_1 }; }
@@ -507,16 +526,16 @@ exports.Metadata = Metadata;
507
526
  }
508
527
  finally { if (e_11) throw e_11.error; }
509
528
  }
510
- var _loop_7 = function (ys) {
529
+ var _loop_8 = function (ys) {
511
530
  if (x.sets.some(function (xs) { return Metadata.covers(xs, ys); }) === false)
512
531
  return { value: false };
513
532
  };
514
533
  try {
515
534
  for (var _t = __values(y.sets), _u = _t.next(); !_u.done; _u = _t.next()) {
516
535
  var ys = _u.value;
517
- var state_7 = _loop_7(ys);
518
- if (typeof state_7 === "object")
519
- return state_7.value;
536
+ var state_8 = _loop_8(ys);
537
+ if (typeof state_8 === "object")
538
+ return state_8.value;
520
539
  }
521
540
  }
522
541
  catch (e_12_1) { e_12 = { error: e_12_1 }; }
@@ -526,10 +545,10 @@ exports.Metadata = Metadata;
526
545
  }
527
546
  finally { if (e_12) throw e_12.error; }
528
547
  }
529
- if (y.atomics.some(function (atomic) { return x.atomics.includes(atomic) === false; }))
548
+ if (y.atomics.some(function (ya) { return x.atomics.some(function (xa) { return xa.type === ya.type; }) === false; }))
530
549
  return false;
531
- var _loop_8 = function (yc) {
532
- if (x.atomics.some(function (type) { return yc.type === type; }))
550
+ var _loop_9 = function (yc) {
551
+ if (x.atomics.some(function (atom) { return yc.type === atom.type; }))
533
552
  return "continue";
534
553
  var xc = x.constants.find(function (elem) { return elem.type === yc.type; });
535
554
  if (xc === undefined)
@@ -540,9 +559,9 @@ exports.Metadata = Metadata;
540
559
  try {
541
560
  for (var _v = __values(y.constants), _w = _v.next(); !_w.done; _w = _v.next()) {
542
561
  var yc = _w.value;
543
- var state_8 = _loop_8(yc);
544
- if (typeof state_8 === "object")
545
- return state_8.value;
562
+ var state_9 = _loop_9(yc);
563
+ if (typeof state_9 === "object")
564
+ return state_9.value;
546
565
  }
547
566
  }
548
567
  catch (e_13_1) { e_13 = { error: e_13_1 }; }
@@ -557,8 +576,8 @@ exports.Metadata = Metadata;
557
576
  return true;
558
577
  };
559
578
  Metadata.merge = function (x, y) {
560
- var e_14, _a, e_15, _b, e_16, _c, e_17, _d, e_18, _e;
561
- var _f, _g;
579
+ var e_14, _a, e_15, _b, e_16, _c;
580
+ var _d, _e;
562
581
  var output = Metadata.create({
563
582
  any: x.any || y.any,
564
583
  nullable: x.nullable || y.nullable,
@@ -566,116 +585,101 @@ exports.Metadata = Metadata;
566
585
  optional: x.optional || y.optional,
567
586
  functional: x.functional || y.functional,
568
587
  escaped: x.escaped !== null && y.escaped !== null
569
- ?
570
- MetadataEscaped_1.MetadataEscaped.create({
571
- original: Metadata.merge(x.escaped.original, y.escaped.original),
572
- returns: Metadata.merge(x.escaped.returns, y.escaped.returns),
573
- })
574
- : (_f = x.escaped) !== null && _f !== void 0 ? _f : y.escaped,
575
- atomics: __spreadArray([], __read(new Set(__spreadArray(__spreadArray([], __read(x.atomics), false), __read(y.atomics), false))), false),
588
+ ? MetadataEscaped_1.MetadataEscaped.create({
589
+ original: Metadata.merge(x.escaped.original, y.escaped.original),
590
+ returns: Metadata.merge(x.escaped.returns, y.escaped.returns),
591
+ })
592
+ : (_d = x.escaped) !== null && _d !== void 0 ? _d : y.escaped,
593
+ atomics: mergeTaggedTypes({
594
+ container: x.atomics,
595
+ equals: function (x, y) { return x.type === y.type; },
596
+ getter: function (x) { return x.tags; },
597
+ })(y.atomics),
576
598
  constants: __spreadArray([], __read(x.constants), false),
577
599
  templates: x.templates.slice(),
578
600
  rest: x.rest !== null && y.rest !== null
579
601
  ? Metadata.merge(x.rest, y.rest)
580
- : (_g = x.rest) !== null && _g !== void 0 ? _g : y.rest,
581
- arrays: x.arrays.slice(),
582
- tuples: x.tuples.slice(),
602
+ : (_e = x.rest) !== null && _e !== void 0 ? _e : y.rest,
603
+ arrays: mergeTaggedTypes({
604
+ container: x.arrays,
605
+ equals: function (x, y) { return x.type.name === y.type.name; },
606
+ getter: function (x) { return x.tags; },
607
+ })(y.arrays),
608
+ tuples: mergeTaggedTypes({
609
+ container: x.tuples,
610
+ equals: function (x, y) { return x.type.name === y.type.name; },
611
+ getter: function (x) { return x.tags; },
612
+ })(y.tuples),
583
613
  objects: x.objects.slice(),
584
614
  aliases: x.aliases.slice(),
585
615
  natives: __spreadArray([], __read(new Set(__spreadArray(__spreadArray([], __read(x.natives), false), __read(y.natives), false))), false),
586
616
  sets: x.sets.slice(),
587
617
  maps: x.maps.slice(),
588
618
  });
589
- var _loop_9 = function (constant) {
590
- var e_19, _t;
619
+ var _loop_10 = function (constant) {
620
+ var e_17, _m;
591
621
  var target = ArrayUtil_1.ArrayUtil.take(output.constants, function (elem) { return elem.type === constant.type; }, function () { return ({
592
622
  type: constant.type,
593
623
  values: [],
594
624
  }); });
595
625
  try {
596
- for (var _u = (e_19 = void 0, __values(constant.values)), _v = _u.next(); !_v.done; _v = _u.next()) {
597
- var value = _v.value;
626
+ for (var _o = (e_17 = void 0, __values(constant.values)), _p = _o.next(); !_p.done; _p = _o.next()) {
627
+ var value = _p.value;
598
628
  ArrayUtil_1.ArrayUtil.add(target.values, value);
599
629
  }
600
630
  }
601
- catch (e_19_1) { e_19 = { error: e_19_1 }; }
631
+ catch (e_17_1) { e_17 = { error: e_17_1 }; }
602
632
  finally {
603
633
  try {
604
- if (_v && !_v.done && (_t = _u.return)) _t.call(_u);
634
+ if (_p && !_p.done && (_m = _o.return)) _m.call(_o);
605
635
  }
606
- finally { if (e_19) throw e_19.error; }
636
+ finally { if (e_17) throw e_17.error; }
607
637
  }
608
638
  };
609
639
  try {
610
- for (var _h = __values(y.constants), _j = _h.next(); !_j.done; _j = _h.next()) {
611
- var constant = _j.value;
612
- _loop_9(constant);
640
+ for (var _f = __values(y.constants), _g = _f.next(); !_g.done; _g = _f.next()) {
641
+ var constant = _g.value;
642
+ _loop_10(constant);
613
643
  }
614
644
  }
615
645
  catch (e_14_1) { e_14 = { error: e_14_1 }; }
616
646
  finally {
617
647
  try {
618
- if (_j && !_j.done && (_a = _h.return)) _a.call(_h);
648
+ if (_g && !_g.done && (_a = _f.return)) _a.call(_f);
619
649
  }
620
650
  finally { if (e_14) throw e_14.error; }
621
651
  }
622
652
  try {
623
- for (var _k = __values(y.arrays), _l = _k.next(); !_l.done; _l = _k.next()) {
624
- var array = _l.value;
625
- ArrayUtil_1.ArrayUtil.set(output.arrays, array, function (elem) { return elem.name; });
653
+ for (var _h = __values(y.objects), _j = _h.next(); !_j.done; _j = _h.next()) {
654
+ var obj = _j.value;
655
+ ArrayUtil_1.ArrayUtil.set(output.objects, obj, function (elem) { return elem.name; });
626
656
  }
627
657
  }
628
658
  catch (e_15_1) { e_15 = { error: e_15_1 }; }
629
659
  finally {
630
660
  try {
631
- if (_l && !_l.done && (_b = _k.return)) _b.call(_k);
661
+ if (_j && !_j.done && (_b = _h.return)) _b.call(_h);
632
662
  }
633
663
  finally { if (e_15) throw e_15.error; }
634
664
  }
635
665
  try {
636
- for (var _m = __values(y.tuples), _o = _m.next(); !_o.done; _o = _m.next()) {
637
- var tuple = _o.value;
638
- ArrayUtil_1.ArrayUtil.set(output.tuples, tuple, function (elem) { return elem.name; });
666
+ for (var _k = __values(y.aliases), _l = _k.next(); !_l.done; _l = _k.next()) {
667
+ var alias = _l.value;
668
+ ArrayUtil_1.ArrayUtil.set(output.aliases, alias, function (elem) { return elem.name; });
639
669
  }
640
670
  }
641
671
  catch (e_16_1) { e_16 = { error: e_16_1 }; }
642
672
  finally {
643
673
  try {
644
- if (_o && !_o.done && (_c = _m.return)) _c.call(_m);
674
+ if (_l && !_l.done && (_c = _k.return)) _c.call(_k);
645
675
  }
646
676
  finally { if (e_16) throw e_16.error; }
647
677
  }
648
- try {
649
- for (var _p = __values(y.objects), _q = _p.next(); !_q.done; _q = _p.next()) {
650
- var obj = _q.value;
651
- ArrayUtil_1.ArrayUtil.set(output.objects, obj, function (elem) { return elem.name; });
652
- }
653
- }
654
- catch (e_17_1) { e_17 = { error: e_17_1 }; }
655
- finally {
656
- try {
657
- if (_q && !_q.done && (_d = _p.return)) _d.call(_p);
658
- }
659
- finally { if (e_17) throw e_17.error; }
660
- }
661
- try {
662
- for (var _r = __values(y.aliases), _s = _r.next(); !_s.done; _s = _r.next()) {
663
- var alias = _s.value;
664
- ArrayUtil_1.ArrayUtil.set(output.aliases, alias, function (elem) { return elem.name; });
665
- }
666
- }
667
- catch (e_18_1) { e_18 = { error: e_18_1 }; }
668
- finally {
669
- try {
670
- if (_s && !_s.done && (_e = _r.return)) _e.call(_r);
671
- }
672
- finally { if (e_18) throw e_18.error; }
673
- }
674
678
  return output;
675
679
  };
676
680
  })(Metadata || (exports.Metadata = Metadata = {}));
677
681
  var getName = function (metadata) {
678
- var e_20, _a, e_21, _b, e_22, _c, e_23, _d, e_24, _e, e_25, _f, e_26, _g, e_27, _h, e_28, _j, e_29, _k, e_30, _l;
682
+ var e_18, _a, e_19, _b, e_20, _c, e_21, _d, e_22, _e, e_23, _f, e_24, _g, e_25, _h, e_26, _j, e_27, _k, e_28, _l;
679
683
  if (metadata.any === true)
680
684
  return "any";
681
685
  var elements = [];
@@ -685,41 +689,43 @@ var getName = function (metadata) {
685
689
  elements.push("undefined");
686
690
  try {
687
691
  for (var _m = __values(metadata.atomics), _o = _m.next(); !_o.done; _o = _m.next()) {
688
- var type = _o.value;
689
- elements.push(type);
692
+ var atom = _o.value;
693
+ elements.push(atom.getName());
690
694
  }
691
695
  }
692
- catch (e_20_1) { e_20 = { error: e_20_1 }; }
696
+ catch (e_18_1) { e_18 = { error: e_18_1 }; }
693
697
  finally {
694
698
  try {
695
699
  if (_o && !_o.done && (_a = _m.return)) _a.call(_m);
696
700
  }
697
- finally { if (e_20) throw e_20.error; }
701
+ finally { if (e_18) throw e_18.error; }
698
702
  }
699
703
  try {
700
704
  for (var _p = __values(metadata.constants), _q = _p.next(); !_q.done; _q = _p.next()) {
701
705
  var constant = _q.value;
702
706
  try {
703
- for (var _r = (e_22 = void 0, __values(constant.values)), _s = _r.next(); !_s.done; _s = _r.next()) {
707
+ for (var _r = (e_20 = void 0, __values(constant.values)), _s = _r.next(); !_s.done; _s = _r.next()) {
704
708
  var value = _s.value;
705
- elements.push(JSON.stringify(value));
709
+ elements.push(constant.type === "string"
710
+ ? JSON.stringify(value)
711
+ : value.toString());
706
712
  }
707
713
  }
708
- catch (e_22_1) { e_22 = { error: e_22_1 }; }
714
+ catch (e_20_1) { e_20 = { error: e_20_1 }; }
709
715
  finally {
710
716
  try {
711
717
  if (_s && !_s.done && (_c = _r.return)) _c.call(_r);
712
718
  }
713
- finally { if (e_22) throw e_22.error; }
719
+ finally { if (e_20) throw e_20.error; }
714
720
  }
715
721
  }
716
722
  }
717
- catch (e_21_1) { e_21 = { error: e_21_1 }; }
723
+ catch (e_19_1) { e_19 = { error: e_19_1 }; }
718
724
  finally {
719
725
  try {
720
726
  if (_q && !_q.done && (_b = _p.return)) _b.call(_p);
721
727
  }
722
- finally { if (e_21) throw e_21.error; }
728
+ finally { if (e_19) throw e_19.error; }
723
729
  }
724
730
  try {
725
731
  for (var _t = __values(metadata.templates), _u = _t.next(); !_u.done; _u = _t.next()) {
@@ -737,12 +743,12 @@ var getName = function (metadata) {
737
743
  "`");
738
744
  }
739
745
  }
740
- catch (e_23_1) { e_23 = { error: e_23_1 }; }
746
+ catch (e_21_1) { e_21 = { error: e_21_1 }; }
741
747
  finally {
742
748
  try {
743
749
  if (_u && !_u.done && (_d = _t.return)) _d.call(_t);
744
750
  }
745
- finally { if (e_23) throw e_23.error; }
751
+ finally { if (e_21) throw e_21.error; }
746
752
  }
747
753
  try {
748
754
  for (var _v = __values(metadata.natives), _w = _v.next(); !_w.done; _w = _v.next()) {
@@ -750,12 +756,12 @@ var getName = function (metadata) {
750
756
  elements.push(native);
751
757
  }
752
758
  }
753
- catch (e_24_1) { e_24 = { error: e_24_1 }; }
759
+ catch (e_22_1) { e_22 = { error: e_22_1 }; }
754
760
  finally {
755
761
  try {
756
762
  if (_w && !_w.done && (_e = _v.return)) _e.call(_v);
757
763
  }
758
- finally { if (e_24) throw e_24.error; }
764
+ finally { if (e_22) throw e_22.error; }
759
765
  }
760
766
  try {
761
767
  for (var _x = __values(metadata.sets), _y = _x.next(); !_y.done; _y = _x.next()) {
@@ -763,12 +769,12 @@ var getName = function (metadata) {
763
769
  elements.push("Set<".concat(set.getName(), ">"));
764
770
  }
765
771
  }
766
- catch (e_25_1) { e_25 = { error: e_25_1 }; }
772
+ catch (e_23_1) { e_23 = { error: e_23_1 }; }
767
773
  finally {
768
774
  try {
769
775
  if (_y && !_y.done && (_f = _x.return)) _f.call(_x);
770
776
  }
771
- finally { if (e_25) throw e_25.error; }
777
+ finally { if (e_23) throw e_23.error; }
772
778
  }
773
779
  try {
774
780
  for (var _z = __values(metadata.maps), _0 = _z.next(); !_0.done; _0 = _z.next()) {
@@ -776,40 +782,40 @@ var getName = function (metadata) {
776
782
  elements.push("Map<".concat(map.key.getName(), ", ").concat(map.value.getName(), ">"));
777
783
  }
778
784
  }
779
- catch (e_26_1) { e_26 = { error: e_26_1 }; }
785
+ catch (e_24_1) { e_24 = { error: e_24_1 }; }
780
786
  finally {
781
787
  try {
782
788
  if (_0 && !_0.done && (_g = _z.return)) _g.call(_z);
783
789
  }
784
- finally { if (e_26) throw e_26.error; }
790
+ finally { if (e_24) throw e_24.error; }
785
791
  }
786
792
  if (metadata.rest !== null)
787
793
  elements.push("...".concat(metadata.rest.getName()));
788
794
  try {
789
795
  for (var _1 = __values(metadata.tuples), _2 = _1.next(); !_2.done; _2 = _1.next()) {
790
796
  var tuple = _2.value;
791
- elements.push(tuple.name);
797
+ elements.push(tuple.type.name);
792
798
  }
793
799
  }
794
- catch (e_27_1) { e_27 = { error: e_27_1 }; }
800
+ catch (e_25_1) { e_25 = { error: e_25_1 }; }
795
801
  finally {
796
802
  try {
797
803
  if (_2 && !_2.done && (_h = _1.return)) _h.call(_1);
798
804
  }
799
- finally { if (e_27) throw e_27.error; }
805
+ finally { if (e_25) throw e_25.error; }
800
806
  }
801
807
  try {
802
808
  for (var _3 = __values(metadata.arrays), _4 = _3.next(); !_4.done; _4 = _3.next()) {
803
809
  var array = _4.value;
804
- elements.push(array.name);
810
+ elements.push(array.getName());
805
811
  }
806
812
  }
807
- catch (e_28_1) { e_28 = { error: e_28_1 }; }
813
+ catch (e_26_1) { e_26 = { error: e_26_1 }; }
808
814
  finally {
809
815
  try {
810
816
  if (_4 && !_4.done && (_j = _3.return)) _j.call(_3);
811
817
  }
812
- finally { if (e_28) throw e_28.error; }
818
+ finally { if (e_26) throw e_26.error; }
813
819
  }
814
820
  try {
815
821
  for (var _5 = __values(metadata.objects), _6 = _5.next(); !_6.done; _6 = _5.next()) {
@@ -817,12 +823,12 @@ var getName = function (metadata) {
817
823
  elements.push(object.name);
818
824
  }
819
825
  }
820
- catch (e_29_1) { e_29 = { error: e_29_1 }; }
826
+ catch (e_27_1) { e_27 = { error: e_27_1 }; }
821
827
  finally {
822
828
  try {
823
829
  if (_6 && !_6.done && (_k = _5.return)) _k.call(_5);
824
830
  }
825
- finally { if (e_29) throw e_29.error; }
831
+ finally { if (e_27) throw e_27.error; }
826
832
  }
827
833
  try {
828
834
  for (var _7 = __values(metadata.aliases), _8 = _7.next(); !_8.done; _8 = _7.next()) {
@@ -830,12 +836,12 @@ var getName = function (metadata) {
830
836
  elements.push(alias.name);
831
837
  }
832
838
  }
833
- catch (e_30_1) { e_30 = { error: e_30_1 }; }
839
+ catch (e_28_1) { e_28 = { error: e_28_1 }; }
834
840
  finally {
835
841
  try {
836
842
  if (_8 && !_8.done && (_l = _7.return)) _l.call(_7);
837
843
  }
838
- finally { if (e_30) throw e_30.error; }
844
+ finally { if (e_28) throw e_28.error; }
839
845
  }
840
846
  if (metadata.escaped !== null)
841
847
  elements.push(metadata.escaped.getName());
@@ -846,4 +852,58 @@ var getName = function (metadata) {
846
852
  elements.sort();
847
853
  return "(".concat(elements.join(" | "), ")");
848
854
  };
855
+ var mergeTaggedTypes = function (props) {
856
+ return function (opposite) {
857
+ var e_29, _a;
858
+ var output = __spreadArray([], __read(props.container), false);
859
+ var _loop_11 = function (elem) {
860
+ var e_30, _b;
861
+ var equal = props.container.find(function (x) { return props.equals(x, elem); });
862
+ if (equal === undefined) {
863
+ output.push(elem);
864
+ return "continue";
865
+ }
866
+ var matrix = props
867
+ .getter(equal)
868
+ .map(function (tags) { return tags.map(function (t) { return t.name; }); })
869
+ .sort();
870
+ var _loop_12 = function (tags) {
871
+ var names = tags.map(function (t) { return t.name; }).sort();
872
+ if (matrix.some(function (m) {
873
+ return m.length === names.length &&
874
+ m.every(function (s, i) { return s === names[i]; });
875
+ }))
876
+ return "continue";
877
+ props.getter(equal).push(tags);
878
+ };
879
+ try {
880
+ for (var _c = (e_30 = void 0, __values(props.getter(elem))), _d = _c.next(); !_d.done; _d = _c.next()) {
881
+ var tags = _d.value;
882
+ _loop_12(tags);
883
+ }
884
+ }
885
+ catch (e_30_1) { e_30 = { error: e_30_1 }; }
886
+ finally {
887
+ try {
888
+ if (_d && !_d.done && (_b = _c.return)) _b.call(_c);
889
+ }
890
+ finally { if (e_30) throw e_30.error; }
891
+ }
892
+ };
893
+ try {
894
+ for (var opposite_1 = __values(opposite), opposite_1_1 = opposite_1.next(); !opposite_1_1.done; opposite_1_1 = opposite_1.next()) {
895
+ var elem = opposite_1_1.value;
896
+ _loop_11(elem);
897
+ }
898
+ }
899
+ catch (e_29_1) { e_29 = { error: e_29_1 }; }
900
+ finally {
901
+ try {
902
+ if (opposite_1_1 && !opposite_1_1.done && (_a = opposite_1.return)) _a.call(opposite_1);
903
+ }
904
+ finally { if (e_29) throw e_29.error; }
905
+ }
906
+ return output;
907
+ };
908
+ };
849
909
  //# sourceMappingURL=Metadata.js.map