typia 5.0.0-dev.20230823-2 → 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 (316) hide show
  1. package/lib/factories/ExpressionFactory.d.ts +2 -0
  2. package/lib/factories/ExpressionFactory.js +24 -0
  3. package/lib/factories/ExpressionFactory.js.map +1 -1
  4. package/lib/factories/IdentifierFactory.d.ts +2 -1
  5. package/lib/factories/IdentifierFactory.js +11 -0
  6. package/lib/factories/IdentifierFactory.js.map +1 -1
  7. package/lib/factories/MetadataCollection.d.ts +7 -7
  8. package/lib/factories/MetadataCollection.js +4 -4
  9. package/lib/factories/MetadataCollection.js.map +1 -1
  10. package/lib/factories/MetadataTagFactory.d.ts +2 -2
  11. package/lib/factories/MetadataTagFactory.js +9 -7
  12. package/lib/factories/MetadataTagFactory.js.map +1 -1
  13. package/lib/factories/ProtobufFactory.js +9 -8
  14. package/lib/factories/ProtobufFactory.js.map +1 -1
  15. package/lib/factories/internal/metadata/emend_metadata_atomics.js +6 -6
  16. package/lib/factories/internal/metadata/emend_metadata_atomics.js.map +1 -1
  17. package/lib/factories/internal/metadata/emplace_metadata_array_type.d.ts +5 -0
  18. package/lib/factories/internal/metadata/{emplace_metadata_array.js → emplace_metadata_array_type.js} +4 -4
  19. package/lib/factories/internal/metadata/emplace_metadata_array_type.js.map +1 -0
  20. package/lib/factories/internal/metadata/emplace_metadata_tuple.d.ts +2 -2
  21. package/lib/factories/internal/metadata/iterate_metadata_array.js +7 -3
  22. package/lib/factories/internal/metadata/iterate_metadata_array.js.map +1 -1
  23. package/lib/factories/internal/metadata/iterate_metadata_atomic.js +1 -1
  24. package/lib/factories/internal/metadata/iterate_metadata_atomic.js.map +1 -1
  25. package/lib/factories/internal/metadata/iterate_metadata_collection.js +20 -12
  26. package/lib/factories/internal/metadata/iterate_metadata_collection.js.map +1 -1
  27. package/lib/factories/internal/metadata/iterate_metadata_comment_tags.d.ts +2 -0
  28. package/lib/factories/internal/metadata/{iterate_metadata_tag.js → iterate_metadata_comment_tags.js} +4 -4
  29. package/lib/factories/internal/metadata/iterate_metadata_comment_tags.js.map +1 -0
  30. package/lib/factories/internal/metadata/iterate_metadata_intersection.js +138 -16
  31. package/lib/factories/internal/metadata/iterate_metadata_intersection.js.map +1 -1
  32. package/lib/factories/internal/metadata/iterate_metadata_object.js +0 -7
  33. package/lib/factories/internal/metadata/iterate_metadata_object.js.map +1 -1
  34. package/lib/factories/internal/metadata/iterate_metadata_sort.js +2 -2
  35. package/lib/factories/internal/metadata/iterate_metadata_sort.js.map +1 -1
  36. package/lib/factories/internal/metadata/iterate_metadata_tuple.js +6 -2
  37. package/lib/factories/internal/metadata/iterate_metadata_tuple.js.map +1 -1
  38. package/lib/factories/internal/metadata/iterate_metadata_type_tags.d.ts +3 -0
  39. package/lib/factories/internal/metadata/iterate_metadata_type_tags.js +157 -0
  40. package/lib/factories/internal/metadata/iterate_metadata_type_tags.js.map +1 -0
  41. package/lib/functional/$any.js +2 -1
  42. package/lib/functional/$any.js.map +1 -1
  43. package/lib/functional/$clone.d.ts +2 -0
  44. package/lib/functional/$clone.js +8 -0
  45. package/lib/functional/$clone.js.map +1 -0
  46. package/lib/module.d.ts +2 -39
  47. package/lib/module.js +3 -17
  48. package/lib/module.js.map +1 -1
  49. package/lib/programmers/AssertProgrammer.js +1 -3
  50. package/lib/programmers/AssertProgrammer.js.map +1 -1
  51. package/lib/programmers/CheckerProgrammer.js +38 -29
  52. package/lib/programmers/CheckerProgrammer.js.map +1 -1
  53. package/lib/programmers/FeatureProgrammer.d.ts +4 -4
  54. package/lib/programmers/FeatureProgrammer.js.map +1 -1
  55. package/lib/programmers/IsProgrammer.d.ts +1 -1
  56. package/lib/programmers/IsProgrammer.js +1 -3
  57. package/lib/programmers/IsProgrammer.js.map +1 -1
  58. package/lib/programmers/RandomProgrammer.js +44 -33
  59. package/lib/programmers/RandomProgrammer.js.map +1 -1
  60. package/lib/programmers/ValidateProgrammer.js +1 -3
  61. package/lib/programmers/ValidateProgrammer.js.map +1 -1
  62. package/lib/programmers/helpers/AtomicPredicator.js +2 -2
  63. package/lib/programmers/helpers/AtomicPredicator.js.map +1 -1
  64. package/lib/programmers/helpers/ICheckEntry.d.ts +1 -1
  65. package/lib/programmers/helpers/ProtobufUtil.js +2 -2
  66. package/lib/programmers/helpers/ProtobufUtil.js.map +1 -1
  67. package/lib/programmers/helpers/RandomJoiner.d.ts +4 -4
  68. package/lib/programmers/helpers/RandomJoiner.js.map +1 -1
  69. package/lib/programmers/helpers/RandomRanger.d.ts +6 -6
  70. package/lib/programmers/helpers/RandomRanger.js.map +1 -1
  71. package/lib/programmers/helpers/UnionExplorer.d.ts +8 -8
  72. package/lib/programmers/helpers/UnionExplorer.js +40 -29
  73. package/lib/programmers/helpers/UnionExplorer.js.map +1 -1
  74. package/lib/programmers/internal/application_array.js +1 -1
  75. package/lib/programmers/internal/application_array.js.map +1 -1
  76. package/lib/programmers/internal/application_default_string.js +2 -2
  77. package/lib/programmers/internal/application_default_string.js.map +1 -1
  78. package/lib/programmers/internal/application_resolved.js +2 -2
  79. package/lib/programmers/internal/application_resolved.js.map +1 -1
  80. package/lib/programmers/internal/application_schema.js +5 -5
  81. package/lib/programmers/internal/application_schema.js.map +1 -1
  82. package/lib/programmers/internal/application_string.js.map +1 -1
  83. package/lib/programmers/internal/application_tuple.js +10 -9
  84. package/lib/programmers/internal/application_tuple.js.map +1 -1
  85. package/lib/programmers/internal/check_array_length.js.map +1 -1
  86. package/lib/programmers/internal/check_array_tags.js +39 -0
  87. package/lib/programmers/internal/check_array_tags.js.map +1 -0
  88. package/lib/programmers/internal/check_bigint.js +88 -74
  89. package/lib/programmers/internal/check_bigint.js.map +1 -1
  90. package/lib/programmers/internal/check_number.js +142 -131
  91. package/lib/programmers/internal/check_number.js.map +1 -1
  92. package/lib/programmers/internal/check_string.js +30 -6
  93. package/lib/programmers/internal/check_string.js.map +1 -1
  94. package/lib/programmers/internal/check_string_tags.js.map +1 -1
  95. package/lib/programmers/internal/check_template.js +16 -49
  96. package/lib/programmers/internal/check_template.js.map +1 -1
  97. package/lib/programmers/internal/check_union_array_like.js +3 -2
  98. package/lib/programmers/internal/check_union_array_like.js.map +1 -1
  99. package/lib/programmers/internal/metadata_to_pattern.js +4 -4
  100. package/lib/programmers/internal/metadata_to_pattern.js.map +1 -1
  101. package/lib/programmers/internal/stringify_dynamic_properties.js +2 -1
  102. package/lib/programmers/internal/stringify_dynamic_properties.js.map +1 -1
  103. package/lib/programmers/internal/wrap_metadata_rest_tuple.js +9 -5
  104. package/lib/programmers/internal/wrap_metadata_rest_tuple.js.map +1 -1
  105. package/lib/programmers/json/JsonStringifyProgrammer.js +29 -23
  106. package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
  107. package/lib/programmers/misc/MiscCloneProgrammer.js +10 -10
  108. package/lib/programmers/misc/MiscCloneProgrammer.js.map +1 -1
  109. package/lib/programmers/misc/MiscLiteralsProgrammer.js +2 -2
  110. package/lib/programmers/misc/MiscLiteralsProgrammer.js.map +1 -1
  111. package/lib/programmers/misc/MiscPruneProgrammer.js +13 -13
  112. package/lib/programmers/misc/MiscPruneProgrammer.js.map +1 -1
  113. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js +6 -6
  114. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js.map +1 -1
  115. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js +2 -2
  116. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js.map +1 -1
  117. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js +1 -1
  118. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js.map +1 -1
  119. package/lib/schemas/json/IJsonSchema.d.ts +2 -2
  120. package/lib/schemas/metadata/IMetadata.d.ts +11 -4
  121. package/lib/schemas/metadata/IMetadataAlias.d.ts +2 -2
  122. package/lib/schemas/metadata/IMetadataArray.d.ts +4 -6
  123. package/lib/schemas/metadata/IMetadataArrayType.d.ts +8 -0
  124. package/lib/{CustomValidatorMap.js → schemas/metadata/IMetadataArrayType.js} +1 -1
  125. package/lib/schemas/metadata/IMetadataArrayType.js.map +1 -0
  126. package/lib/schemas/metadata/IMetadataAtomic.d.ts +5 -0
  127. package/lib/schemas/metadata/IMetadataAtomic.js +3 -0
  128. package/lib/schemas/metadata/IMetadataAtomic.js.map +1 -0
  129. package/lib/schemas/metadata/IMetadataCollection.d.ts +4 -4
  130. package/lib/schemas/metadata/{IMetadataTag.d.ts → IMetadataCommentTag.d.ts} +2 -2
  131. package/lib/schemas/metadata/IMetadataCommentTag.js +3 -0
  132. package/lib/schemas/metadata/IMetadataCommentTag.js.map +1 -0
  133. package/lib/schemas/metadata/IMetadataProperty.d.ts +2 -2
  134. package/lib/schemas/metadata/IMetadataTuple.d.ts +4 -6
  135. package/lib/schemas/metadata/IMetadataTupleType.d.ts +8 -0
  136. package/lib/schemas/metadata/IMetadataTupleType.js +3 -0
  137. package/lib/schemas/metadata/IMetadataTupleType.js.map +1 -0
  138. package/lib/schemas/metadata/IMetadataTypeTag.d.ts +6 -0
  139. package/lib/schemas/metadata/IMetadataTypeTag.js +3 -0
  140. package/lib/schemas/metadata/IMetadataTypeTag.js.map +1 -0
  141. package/lib/schemas/metadata/Metadata.d.ts +2 -2
  142. package/lib/schemas/metadata/Metadata.js +206 -146
  143. package/lib/schemas/metadata/Metadata.js.map +1 -1
  144. package/lib/schemas/metadata/MetadataAlias.d.ts +2 -2
  145. package/lib/schemas/metadata/MetadataArray.d.ts +6 -6
  146. package/lib/schemas/metadata/MetadataArray.js +5 -19
  147. package/lib/schemas/metadata/MetadataArray.js.map +1 -1
  148. package/lib/schemas/metadata/MetadataArrayType.d.ts +14 -0
  149. package/lib/schemas/metadata/MetadataArrayType.js +36 -0
  150. package/lib/schemas/metadata/MetadataArrayType.js.map +1 -0
  151. package/lib/schemas/metadata/MetadataProperty.d.ts +2 -2
  152. package/lib/schemas/metadata/MetadataTuple.d.ts +4 -6
  153. package/lib/schemas/metadata/MetadataTuple.js +5 -19
  154. package/lib/schemas/metadata/MetadataTuple.js.map +1 -1
  155. package/lib/schemas/metadata/MetadataTupleType.d.ts +13 -0
  156. package/lib/schemas/metadata/MetadataTupleType.js +40 -0
  157. package/lib/schemas/metadata/MetadataTupleType.js.map +1 -0
  158. package/lib/tags/ExclusiveMaximum.d.ts +8 -0
  159. package/lib/tags/ExclusiveMaximum.js +3 -0
  160. package/lib/tags/ExclusiveMaximum.js.map +1 -0
  161. package/lib/tags/ExclusiveMinimum.d.ts +8 -0
  162. package/lib/tags/ExclusiveMinimum.js +3 -0
  163. package/lib/tags/ExclusiveMinimum.js.map +1 -0
  164. package/lib/tags/Format.d.ts +8 -0
  165. package/lib/{schemas/metadata/IMetadataTag.js → tags/Format.js} +1 -1
  166. package/lib/tags/Format.js.map +1 -0
  167. package/lib/tags/MaxItems.d.ts +8 -0
  168. package/lib/tags/MaxItems.js +3 -0
  169. package/lib/tags/MaxItems.js.map +1 -0
  170. package/lib/tags/MaxLength.d.ts +8 -0
  171. package/lib/tags/MaxLength.js +3 -0
  172. package/lib/tags/MaxLength.js.map +1 -0
  173. package/lib/tags/Maximum.d.ts +8 -0
  174. package/lib/tags/Maximum.js +3 -0
  175. package/lib/tags/Maximum.js.map +1 -0
  176. package/lib/tags/MinItems.d.ts +8 -0
  177. package/lib/tags/MinItems.js +3 -0
  178. package/lib/tags/MinItems.js.map +1 -0
  179. package/lib/tags/MinLength.d.ts +8 -0
  180. package/lib/tags/MinLength.js +3 -0
  181. package/lib/tags/MinLength.js.map +1 -0
  182. package/lib/tags/Minimum.d.ts +8 -0
  183. package/lib/tags/Minimum.js +3 -0
  184. package/lib/tags/Minimum.js.map +1 -0
  185. package/lib/tags/MultipleOf.d.ts +8 -0
  186. package/lib/tags/MultipleOf.js +3 -0
  187. package/lib/tags/MultipleOf.js.map +1 -0
  188. package/lib/tags/Pattern.d.ts +8 -0
  189. package/lib/tags/Pattern.js +3 -0
  190. package/lib/tags/Pattern.js.map +1 -0
  191. package/lib/tags/TagBase.d.ts +10 -0
  192. package/lib/tags/TagBase.js +3 -0
  193. package/lib/tags/TagBase.js.map +1 -0
  194. package/lib/tags/Type.d.ts +13 -0
  195. package/lib/tags/Type.js +3 -0
  196. package/lib/tags/Type.js.map +1 -0
  197. package/lib/tags/index.d.ts +12 -0
  198. package/lib/tags/index.js +29 -0
  199. package/lib/tags/index.js.map +1 -0
  200. package/lib/transformers/FileTransformer.d.ts +1 -1
  201. package/lib/transformers/FileTransformer.js +12 -1
  202. package/lib/transformers/FileTransformer.js.map +1 -1
  203. package/lib/transformers/IProject.d.ts +1 -0
  204. package/lib/transformers/features/json/JsonApplicationTransformer.js +4 -2
  205. package/lib/transformers/features/json/JsonApplicationTransformer.js.map +1 -1
  206. package/package.json +1 -1
  207. package/src/factories/ExpressionFactory.ts +44 -0
  208. package/src/factories/IdentifierFactory.ts +15 -0
  209. package/src/factories/MetadataCollection.ts +18 -12
  210. package/src/factories/MetadataTagFactory.ts +22 -21
  211. package/src/factories/ProtobufFactory.ts +10 -8
  212. package/src/factories/internal/metadata/emend_metadata_atomics.ts +7 -5
  213. package/src/factories/internal/metadata/{emplace_metadata_array.ts → emplace_metadata_array_type.ts} +3 -3
  214. package/src/factories/internal/metadata/emplace_metadata_tuple.ts +2 -2
  215. package/src/factories/internal/metadata/iterate_metadata_array.ts +13 -5
  216. package/src/factories/internal/metadata/iterate_metadata_atomic.ts +6 -4
  217. package/src/factories/internal/metadata/iterate_metadata_collection.ts +23 -16
  218. package/src/factories/internal/metadata/{iterate_metadata_tag.ts → iterate_metadata_comment_tags.ts} +1 -1
  219. package/src/factories/internal/metadata/iterate_metadata_intersection.ts +109 -15
  220. package/src/factories/internal/metadata/iterate_metadata_object.ts +10 -10
  221. package/src/factories/internal/metadata/iterate_metadata_sort.ts +2 -2
  222. package/src/factories/internal/metadata/iterate_metadata_tuple.ts +12 -4
  223. package/src/factories/internal/metadata/iterate_metadata_type_tags.ts +183 -0
  224. package/src/functional/$any.ts +3 -1
  225. package/src/functional/$clone.ts +4 -0
  226. package/src/module.ts +2 -55
  227. package/src/programmers/AssertProgrammer.ts +1 -1
  228. package/src/programmers/CheckerProgrammer.ts +80 -47
  229. package/src/programmers/FeatureProgrammer.ts +6 -6
  230. package/src/programmers/IsProgrammer.ts +1 -1
  231. package/src/programmers/RandomProgrammer.ts +68 -45
  232. package/src/programmers/ValidateProgrammer.ts +1 -1
  233. package/src/programmers/helpers/AtomicPredicator.ts +2 -2
  234. package/src/programmers/helpers/ICheckEntry.ts +1 -1
  235. package/src/programmers/helpers/ProtobufUtil.ts +1 -1
  236. package/src/programmers/helpers/RandomJoiner.ts +8 -4
  237. package/src/programmers/helpers/RandomRanger.ts +8 -8
  238. package/src/programmers/helpers/UnionExplorer.ts +48 -34
  239. package/src/programmers/internal/application_array.ts +5 -4
  240. package/src/programmers/internal/application_default_string.ts +6 -2
  241. package/src/programmers/internal/application_resolved.ts +2 -2
  242. package/src/programmers/internal/application_schema.ts +5 -5
  243. package/src/programmers/internal/application_string.ts +2 -2
  244. package/src/programmers/internal/application_tuple.ts +12 -11
  245. package/src/programmers/internal/check_array_length.ts +2 -2
  246. package/src/programmers/internal/check_array_tags.ts +45 -0
  247. package/src/programmers/internal/check_bigint.ts +45 -17
  248. package/src/programmers/internal/check_number.ts +97 -70
  249. package/src/programmers/internal/check_string.ts +43 -12
  250. package/src/programmers/internal/check_string_tags.ts +3 -3
  251. package/src/programmers/internal/check_template.ts +1 -12
  252. package/src/programmers/internal/check_union_array_like.ts +6 -5
  253. package/src/programmers/internal/metadata_to_pattern.ts +4 -4
  254. package/src/programmers/internal/stringify_dynamic_properties.ts +1 -1
  255. package/src/programmers/internal/wrap_metadata_rest_tuple.ts +9 -5
  256. package/src/programmers/json/JsonStringifyProgrammer.ts +41 -25
  257. package/src/programmers/misc/MiscCloneProgrammer.ts +24 -14
  258. package/src/programmers/misc/MiscLiteralsProgrammer.ts +2 -2
  259. package/src/programmers/misc/MiscPruneProgrammer.ts +27 -17
  260. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +12 -12
  261. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +14 -14
  262. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +6 -6
  263. package/src/schemas/json/IJsonSchema.ts +2 -2
  264. package/src/schemas/metadata/IMetadata.ts +11 -5
  265. package/src/schemas/metadata/IMetadataAlias.ts +2 -2
  266. package/src/schemas/metadata/IMetadataArray.ts +4 -7
  267. package/src/schemas/metadata/IMetadataArrayType.ts +10 -0
  268. package/src/schemas/metadata/IMetadataAtomic.ts +6 -0
  269. package/src/schemas/metadata/IMetadataCollection.ts +4 -4
  270. package/src/schemas/metadata/{IMetadataTag.ts → IMetadataCommentTag.ts} +17 -17
  271. package/src/schemas/metadata/IMetadataDictionary.ts +4 -4
  272. package/src/schemas/metadata/IMetadataProperty.ts +2 -2
  273. package/src/schemas/metadata/IMetadataTuple.ts +4 -7
  274. package/src/schemas/metadata/IMetadataTupleType.ts +10 -0
  275. package/src/schemas/metadata/IMetadataTypeTag.ts +6 -0
  276. package/src/schemas/metadata/Metadata.ts +109 -44
  277. package/src/schemas/metadata/MetadataAlias.ts +2 -2
  278. package/src/schemas/metadata/MetadataArray.ts +10 -34
  279. package/src/schemas/metadata/MetadataArrayType.ts +57 -0
  280. package/src/schemas/metadata/MetadataProperty.ts +2 -2
  281. package/src/schemas/metadata/MetadataTuple.ts +10 -37
  282. package/src/schemas/metadata/MetadataTupleType.ts +67 -0
  283. package/src/tags/ExclusiveMaximum.ts +8 -0
  284. package/src/tags/ExclusiveMinimum.ts +8 -0
  285. package/src/tags/Format.ts +29 -0
  286. package/src/tags/MaxItems.ts +8 -0
  287. package/src/tags/MaxLength.ts +8 -0
  288. package/src/tags/Maximum.ts +8 -0
  289. package/src/tags/MinItems.ts +8 -0
  290. package/src/tags/MinLength.ts +8 -0
  291. package/src/tags/Minimum.ts +8 -0
  292. package/src/tags/MultipleOf.ts +10 -0
  293. package/src/tags/Pattern.ts +8 -0
  294. package/src/tags/TagBase.ts +17 -0
  295. package/src/tags/Type.ts +30 -0
  296. package/src/tags/index.ts +12 -0
  297. package/src/transformers/FileTransformer.ts +2 -2
  298. package/src/transformers/IProject.ts +1 -0
  299. package/src/transformers/features/json/JsonApplicationTransformer.ts +3 -2
  300. package/src/typings/Atomic.ts +1 -0
  301. package/lib/CustomValidatorMap.d.ts +0 -110
  302. package/lib/CustomValidatorMap.js.map +0 -1
  303. package/lib/factories/internal/metadata/emplace_metadata_array.d.ts +0 -5
  304. package/lib/factories/internal/metadata/emplace_metadata_array.js.map +0 -1
  305. package/lib/factories/internal/metadata/iterate_metadata_tag.d.ts +0 -2
  306. package/lib/factories/internal/metadata/iterate_metadata_tag.js.map +0 -1
  307. package/lib/programmers/internal/check_array.js +0 -44
  308. package/lib/programmers/internal/check_array.js.map +0 -1
  309. package/lib/programmers/internal/check_custom.d.ts +0 -1
  310. package/lib/programmers/internal/check_custom.js +0 -30
  311. package/lib/programmers/internal/check_custom.js.map +0 -1
  312. package/lib/schemas/metadata/IMetadataTag.js.map +0 -1
  313. package/src/CustomValidatorMap.ts +0 -126
  314. package/src/programmers/internal/check_array.ts +0 -30
  315. package/src/programmers/internal/check_custom.ts +0 -31
  316. /package/lib/programmers/internal/{check_array.d.ts → check_array_tags.d.ts} +0 -0
@@ -37,14 +37,17 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.Metadata = void 0;
40
+ var _clone_1 = require("../../functional/$clone");
40
41
  var Writable_1 = require("../../typings/Writable");
41
42
  var ArrayUtil_1 = require("../../utils/ArrayUtil");
42
43
  var MetadataAlias_1 = require("./MetadataAlias");
43
44
  var MetadataArray_1 = require("./MetadataArray");
45
+ var MetadataArrayType_1 = require("./MetadataArrayType");
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,21 @@ 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: (0, _clone_1.$clone)(this.atomics),
107
+ constants: (0, _clone_1.$clone)(this.constants),
105
108
  templates: this.templates.map(function (tpl) {
106
109
  return tpl.map(function (meta) { return meta.toJSON(); });
107
110
  }),
108
111
  escaped: this.escaped ? this.escaped.toJSON() : null,
109
112
  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; }),
113
+ arrays: this.arrays.map(function (array) { return ({
114
+ name: array.type.name,
115
+ tags: (0, _clone_1.$clone)(array.tags),
116
+ }); }),
117
+ tuples: this.tuples.map(function (tuple) { return ({
118
+ name: tuple.type.name,
119
+ tags: (0, _clone_1.$clone)(tuple.tags),
120
+ }); }),
112
121
  objects: this.objects.map(function (obj) { return obj.name; }),
113
122
  aliases: this.aliases.map(function (alias) { return alias.name; }),
114
123
  natives: this.natives.slice(),
@@ -133,11 +142,11 @@ var Metadata = (function () {
133
142
  ]; })),
134
143
  arrays: new Map(collection.arrays.map(function (arr) { return [
135
144
  arr.name,
136
- MetadataArray_1.MetadataArray._From_without_value(arr),
145
+ MetadataArrayType_1.MetadataArrayType._From_without_value(arr),
137
146
  ]; })),
138
147
  tuples: new Map(collection.tuples.map(function (tpl) { return [
139
148
  tpl.name,
140
- MetadataTuple_1.MetadataTuple._From_without_elements(tpl),
149
+ MetadataTupleType_1.MetadataTupleType._From_without_elements(tpl),
141
150
  ]; })),
142
151
  };
143
152
  try {
@@ -206,8 +215,8 @@ var Metadata = (function () {
206
215
  optional: meta.optional,
207
216
  nullable: meta.nullable,
208
217
  functional: meta.functional,
209
- constants: JSON.parse(JSON.stringify(meta.constants)),
210
- atomics: meta.atomics.slice(),
218
+ constants: (0, _clone_1.$clone)(meta.constants),
219
+ atomics: (0, _clone_1.$clone)(meta.atomics),
211
220
  templates: meta.templates.map(function (tpl) {
212
221
  return tpl.map(function (meta) { return _this._From(meta, dict); });
213
222
  }),
@@ -215,17 +224,23 @@ var Metadata = (function () {
215
224
  ? MetadataEscaped_1.MetadataEscaped._From(meta.escaped, dict)
216
225
  : null,
217
226
  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;
227
+ arrays: meta.arrays.map(function (ref) {
228
+ var type = dict.arrays.get(ref.name);
229
+ if (type === undefined)
230
+ throw new Error("Error on Metadata.from(): failed to find array \"".concat(ref.name, "\"."));
231
+ return MetadataArray_1.MetadataArray.create({
232
+ type: type,
233
+ tags: (0, _clone_1.$clone)(ref.tags),
234
+ });
223
235
  }),
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;
236
+ tuples: meta.tuples.map(function (t) {
237
+ var type = dict.tuples.get(t.name);
238
+ if (type === undefined)
239
+ throw new Error("Error on Metadata.from(): failed to find tuple \"".concat(t.name, "\"."));
240
+ return MetadataTuple_1.MetadataTuple.create({
241
+ type: type,
242
+ tags: (0, _clone_1.$clone)(t.tags),
243
+ });
229
244
  }),
230
245
  objects: meta.objects.map(function (name) {
231
246
  var found = dict.objects.get(name);
@@ -274,7 +289,7 @@ var Metadata = (function () {
274
289
  this.aliases.length);
275
290
  };
276
291
  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 +
292
+ return (new Set(__spreadArray(__spreadArray(__spreadArray([], __read(this.atomics.map(function (a) { return a.type; })), false), __read(this.constants.map(function (c) { return c.type; })), false), __read((this.templates.length ? ["string"] : [])), false)).size +
278
293
  this.arrays.length +
279
294
  this.tuples.length +
280
295
  this.natives.length +
@@ -351,11 +366,16 @@ exports.Metadata = Metadata;
351
366
  if (x.natives.length && y.natives.length)
352
367
  if (x.natives.some(function (xn) { return y.natives.some(function (yn) { return xn === yn; }); }))
353
368
  return true;
369
+ var _loop_1 = function (atomic) {
370
+ if (y.atomics.some(function (ya) { return atomic.type === ya.type; }))
371
+ return { value: true };
372
+ };
354
373
  try {
355
374
  for (var _c = __values(x.atomics), _d = _c.next(); !_d.done; _d = _c.next()) {
356
375
  var atomic = _d.value;
357
- if (y.atomics.includes(atomic))
358
- return true;
376
+ var state_1 = _loop_1(atomic);
377
+ if (typeof state_1 === "object")
378
+ return state_1.value;
359
379
  }
360
380
  }
361
381
  catch (e_5_1) { e_5 = { error: e_5_1 }; }
@@ -365,7 +385,7 @@ exports.Metadata = Metadata;
365
385
  }
366
386
  finally { if (e_5) throw e_5.error; }
367
387
  }
368
- var _loop_1 = function (constant) {
388
+ var _loop_2 = function (constant) {
369
389
  var opposite = y.constants.find(function (elem) { return elem.type === constant.type; });
370
390
  if (opposite === undefined)
371
391
  return "continue";
@@ -376,9 +396,9 @@ exports.Metadata = Metadata;
376
396
  try {
377
397
  for (var _e = __values(x.constants), _f = _e.next(); !_f.done; _f = _e.next()) {
378
398
  var constant = _f.value;
379
- var state_1 = _loop_1(constant);
380
- if (typeof state_1 === "object")
381
- return state_1.value;
399
+ var state_2 = _loop_2(constant);
400
+ if (typeof state_2 === "object")
401
+ return state_2.value;
382
402
  }
383
403
  }
384
404
  catch (e_6_1) { e_6 = { error: e_6_1 }; }
@@ -400,9 +420,9 @@ exports.Metadata = Metadata;
400
420
  else if (y.any)
401
421
  return false;
402
422
  if (level === 0) {
403
- var _loop_2 = function (ya) {
423
+ var _loop_3 = function (ya) {
404
424
  if (!x.arrays.some(function (xa) {
405
- return Metadata.covers(xa.value, ya.value, level + 1);
425
+ return Metadata.covers(xa.type.value, ya.type.value, level + 1);
406
426
  })) {
407
427
  return { value: false };
408
428
  }
@@ -410,9 +430,9 @@ exports.Metadata = Metadata;
410
430
  try {
411
431
  for (var _h = __values(y.arrays), _j = _h.next(); !_j.done; _j = _h.next()) {
412
432
  var ya = _j.value;
413
- var state_2 = _loop_2(ya);
414
- if (typeof state_2 === "object")
415
- return state_2.value;
433
+ var state_3 = _loop_3(ya);
434
+ if (typeof state_3 === "object")
435
+ return state_3.value;
416
436
  }
417
437
  }
418
438
  catch (e_7_1) { e_7 = { error: e_7_1 }; }
@@ -422,14 +442,15 @@ exports.Metadata = Metadata;
422
442
  }
423
443
  finally { if (e_7) throw e_7.error; }
424
444
  }
425
- var _loop_3 = function (yt) {
426
- if (yt.elements.length !== 0 &&
445
+ var _loop_4 = function (yt) {
446
+ if (yt.type.elements.length !== 0 &&
427
447
  x.tuples.some(function (xt) {
428
- return xt.elements.length >= yt.elements.length &&
429
- xt.elements
430
- .slice(yt.elements.length)
448
+ return xt.type.elements.length >=
449
+ yt.type.elements.length &&
450
+ xt.type.elements
451
+ .slice(yt.type.elements.length)
431
452
  .every(function (xv, i) {
432
- return Metadata.covers(xv, yt.elements[i], level + 1);
453
+ return Metadata.covers(xv, yt.type.elements[i], level + 1);
433
454
  });
434
455
  }) === false)
435
456
  return { value: false };
@@ -437,9 +458,9 @@ exports.Metadata = Metadata;
437
458
  try {
438
459
  for (var _k = __values(y.tuples), _l = _k.next(); !_l.done; _l = _k.next()) {
439
460
  var yt = _l.value;
440
- var state_3 = _loop_3(yt);
441
- if (typeof state_3 === "object")
442
- return state_3.value;
461
+ var state_4 = _loop_4(yt);
462
+ if (typeof state_4 === "object")
463
+ return state_4.value;
443
464
  }
444
465
  }
445
466
  catch (e_8_1) { e_8 = { error: e_8_1 }; }
@@ -450,16 +471,16 @@ exports.Metadata = Metadata;
450
471
  finally { if (e_8) throw e_8.error; }
451
472
  }
452
473
  }
453
- var _loop_4 = function (yo) {
474
+ var _loop_5 = function (yo) {
454
475
  if (x.objects.some(function (xo) { return MetadataObject_1.MetadataObject.covers(xo, yo); }) === false)
455
476
  return { value: false };
456
477
  };
457
478
  try {
458
479
  for (var _m = __values(y.objects), _o = _m.next(); !_o.done; _o = _m.next()) {
459
480
  var yo = _o.value;
460
- var state_4 = _loop_4(yo);
461
- if (typeof state_4 === "object")
462
- return state_4.value;
481
+ var state_5 = _loop_5(yo);
482
+ if (typeof state_5 === "object")
483
+ return state_5.value;
463
484
  }
464
485
  }
465
486
  catch (e_9_1) { e_9 = { error: e_9_1 }; }
@@ -469,16 +490,16 @@ exports.Metadata = Metadata;
469
490
  }
470
491
  finally { if (e_9) throw e_9.error; }
471
492
  }
472
- var _loop_5 = function (yd) {
493
+ var _loop_6 = function (yd) {
473
494
  if (x.aliases.some(function (xd) { return xd.name === yd.name; }) === false)
474
495
  return { value: false };
475
496
  };
476
497
  try {
477
498
  for (var _p = __values(y.aliases), _q = _p.next(); !_q.done; _q = _p.next()) {
478
499
  var yd = _q.value;
479
- var state_5 = _loop_5(yd);
480
- if (typeof state_5 === "object")
481
- return state_5.value;
500
+ var state_6 = _loop_6(yd);
501
+ if (typeof state_6 === "object")
502
+ return state_6.value;
482
503
  }
483
504
  }
484
505
  catch (e_10_1) { e_10 = { error: e_10_1 }; }
@@ -488,16 +509,16 @@ exports.Metadata = Metadata;
488
509
  }
489
510
  finally { if (e_10) throw e_10.error; }
490
511
  }
491
- var _loop_6 = function (yn) {
512
+ var _loop_7 = function (yn) {
492
513
  if (x.natives.some(function (xn) { return xn === yn; }) === false)
493
514
  return { value: false };
494
515
  };
495
516
  try {
496
517
  for (var _r = __values(y.natives), _s = _r.next(); !_s.done; _s = _r.next()) {
497
518
  var yn = _s.value;
498
- var state_6 = _loop_6(yn);
499
- if (typeof state_6 === "object")
500
- return state_6.value;
519
+ var state_7 = _loop_7(yn);
520
+ if (typeof state_7 === "object")
521
+ return state_7.value;
501
522
  }
502
523
  }
503
524
  catch (e_11_1) { e_11 = { error: e_11_1 }; }
@@ -507,16 +528,16 @@ exports.Metadata = Metadata;
507
528
  }
508
529
  finally { if (e_11) throw e_11.error; }
509
530
  }
510
- var _loop_7 = function (ys) {
531
+ var _loop_8 = function (ys) {
511
532
  if (x.sets.some(function (xs) { return Metadata.covers(xs, ys); }) === false)
512
533
  return { value: false };
513
534
  };
514
535
  try {
515
536
  for (var _t = __values(y.sets), _u = _t.next(); !_u.done; _u = _t.next()) {
516
537
  var ys = _u.value;
517
- var state_7 = _loop_7(ys);
518
- if (typeof state_7 === "object")
519
- return state_7.value;
538
+ var state_8 = _loop_8(ys);
539
+ if (typeof state_8 === "object")
540
+ return state_8.value;
520
541
  }
521
542
  }
522
543
  catch (e_12_1) { e_12 = { error: e_12_1 }; }
@@ -526,10 +547,10 @@ exports.Metadata = Metadata;
526
547
  }
527
548
  finally { if (e_12) throw e_12.error; }
528
549
  }
529
- if (y.atomics.some(function (atomic) { return x.atomics.includes(atomic) === false; }))
550
+ if (y.atomics.some(function (ya) { return x.atomics.some(function (xa) { return xa.type === ya.type; }) === false; }))
530
551
  return false;
531
- var _loop_8 = function (yc) {
532
- if (x.atomics.some(function (type) { return yc.type === type; }))
552
+ var _loop_9 = function (yc) {
553
+ if (x.atomics.some(function (atom) { return yc.type === atom.type; }))
533
554
  return "continue";
534
555
  var xc = x.constants.find(function (elem) { return elem.type === yc.type; });
535
556
  if (xc === undefined)
@@ -540,9 +561,9 @@ exports.Metadata = Metadata;
540
561
  try {
541
562
  for (var _v = __values(y.constants), _w = _v.next(); !_w.done; _w = _v.next()) {
542
563
  var yc = _w.value;
543
- var state_8 = _loop_8(yc);
544
- if (typeof state_8 === "object")
545
- return state_8.value;
564
+ var state_9 = _loop_9(yc);
565
+ if (typeof state_9 === "object")
566
+ return state_9.value;
546
567
  }
547
568
  }
548
569
  catch (e_13_1) { e_13 = { error: e_13_1 }; }
@@ -557,8 +578,8 @@ exports.Metadata = Metadata;
557
578
  return true;
558
579
  };
559
580
  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;
581
+ var e_14, _a, e_15, _b, e_16, _c;
582
+ var _d, _e;
562
583
  var output = Metadata.create({
563
584
  any: x.any || y.any,
564
585
  nullable: x.nullable || y.nullable,
@@ -566,116 +587,101 @@ exports.Metadata = Metadata;
566
587
  optional: x.optional || y.optional,
567
588
  functional: x.functional || y.functional,
568
589
  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),
590
+ ? MetadataEscaped_1.MetadataEscaped.create({
591
+ original: Metadata.merge(x.escaped.original, y.escaped.original),
592
+ returns: Metadata.merge(x.escaped.returns, y.escaped.returns),
593
+ })
594
+ : (_d = x.escaped) !== null && _d !== void 0 ? _d : y.escaped,
595
+ atomics: mergeTaggedTypes({
596
+ container: x.atomics,
597
+ equals: function (x, y) { return x.type === y.type; },
598
+ getter: function (x) { return x.tags; },
599
+ })(y.atomics),
576
600
  constants: __spreadArray([], __read(x.constants), false),
577
601
  templates: x.templates.slice(),
578
602
  rest: x.rest !== null && y.rest !== null
579
603
  ? 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(),
604
+ : (_e = x.rest) !== null && _e !== void 0 ? _e : y.rest,
605
+ arrays: mergeTaggedTypes({
606
+ container: x.arrays,
607
+ equals: function (x, y) { return x.type.name === y.type.name; },
608
+ getter: function (x) { return x.tags; },
609
+ })(y.arrays),
610
+ tuples: mergeTaggedTypes({
611
+ container: x.tuples,
612
+ equals: function (x, y) { return x.type.name === y.type.name; },
613
+ getter: function (x) { return x.tags; },
614
+ })(y.tuples),
583
615
  objects: x.objects.slice(),
584
616
  aliases: x.aliases.slice(),
585
617
  natives: __spreadArray([], __read(new Set(__spreadArray(__spreadArray([], __read(x.natives), false), __read(y.natives), false))), false),
586
618
  sets: x.sets.slice(),
587
619
  maps: x.maps.slice(),
588
620
  });
589
- var _loop_9 = function (constant) {
590
- var e_19, _t;
621
+ var _loop_10 = function (constant) {
622
+ var e_17, _m;
591
623
  var target = ArrayUtil_1.ArrayUtil.take(output.constants, function (elem) { return elem.type === constant.type; }, function () { return ({
592
624
  type: constant.type,
593
625
  values: [],
594
626
  }); });
595
627
  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;
628
+ for (var _o = (e_17 = void 0, __values(constant.values)), _p = _o.next(); !_p.done; _p = _o.next()) {
629
+ var value = _p.value;
598
630
  ArrayUtil_1.ArrayUtil.add(target.values, value);
599
631
  }
600
632
  }
601
- catch (e_19_1) { e_19 = { error: e_19_1 }; }
633
+ catch (e_17_1) { e_17 = { error: e_17_1 }; }
602
634
  finally {
603
635
  try {
604
- if (_v && !_v.done && (_t = _u.return)) _t.call(_u);
636
+ if (_p && !_p.done && (_m = _o.return)) _m.call(_o);
605
637
  }
606
- finally { if (e_19) throw e_19.error; }
638
+ finally { if (e_17) throw e_17.error; }
607
639
  }
608
640
  };
609
641
  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);
642
+ for (var _f = __values(y.constants), _g = _f.next(); !_g.done; _g = _f.next()) {
643
+ var constant = _g.value;
644
+ _loop_10(constant);
613
645
  }
614
646
  }
615
647
  catch (e_14_1) { e_14 = { error: e_14_1 }; }
616
648
  finally {
617
649
  try {
618
- if (_j && !_j.done && (_a = _h.return)) _a.call(_h);
650
+ if (_g && !_g.done && (_a = _f.return)) _a.call(_f);
619
651
  }
620
652
  finally { if (e_14) throw e_14.error; }
621
653
  }
622
654
  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; });
655
+ for (var _h = __values(y.objects), _j = _h.next(); !_j.done; _j = _h.next()) {
656
+ var obj = _j.value;
657
+ ArrayUtil_1.ArrayUtil.set(output.objects, obj, function (elem) { return elem.name; });
626
658
  }
627
659
  }
628
660
  catch (e_15_1) { e_15 = { error: e_15_1 }; }
629
661
  finally {
630
662
  try {
631
- if (_l && !_l.done && (_b = _k.return)) _b.call(_k);
663
+ if (_j && !_j.done && (_b = _h.return)) _b.call(_h);
632
664
  }
633
665
  finally { if (e_15) throw e_15.error; }
634
666
  }
635
667
  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; });
668
+ for (var _k = __values(y.aliases), _l = _k.next(); !_l.done; _l = _k.next()) {
669
+ var alias = _l.value;
670
+ ArrayUtil_1.ArrayUtil.set(output.aliases, alias, function (elem) { return elem.name; });
639
671
  }
640
672
  }
641
673
  catch (e_16_1) { e_16 = { error: e_16_1 }; }
642
674
  finally {
643
675
  try {
644
- if (_o && !_o.done && (_c = _m.return)) _c.call(_m);
676
+ if (_l && !_l.done && (_c = _k.return)) _c.call(_k);
645
677
  }
646
678
  finally { if (e_16) throw e_16.error; }
647
679
  }
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
680
  return output;
675
681
  };
676
682
  })(Metadata || (exports.Metadata = Metadata = {}));
677
683
  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;
684
+ 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
685
  if (metadata.any === true)
680
686
  return "any";
681
687
  var elements = [];
@@ -685,41 +691,41 @@ var getName = function (metadata) {
685
691
  elements.push("undefined");
686
692
  try {
687
693
  for (var _m = __values(metadata.atomics), _o = _m.next(); !_o.done; _o = _m.next()) {
688
- var type = _o.value;
689
- elements.push(type);
694
+ var atom = _o.value;
695
+ elements.push(atom.type);
690
696
  }
691
697
  }
692
- catch (e_20_1) { e_20 = { error: e_20_1 }; }
698
+ catch (e_18_1) { e_18 = { error: e_18_1 }; }
693
699
  finally {
694
700
  try {
695
701
  if (_o && !_o.done && (_a = _m.return)) _a.call(_m);
696
702
  }
697
- finally { if (e_20) throw e_20.error; }
703
+ finally { if (e_18) throw e_18.error; }
698
704
  }
699
705
  try {
700
706
  for (var _p = __values(metadata.constants), _q = _p.next(); !_q.done; _q = _p.next()) {
701
707
  var constant = _q.value;
702
708
  try {
703
- for (var _r = (e_22 = void 0, __values(constant.values)), _s = _r.next(); !_s.done; _s = _r.next()) {
709
+ for (var _r = (e_20 = void 0, __values(constant.values)), _s = _r.next(); !_s.done; _s = _r.next()) {
704
710
  var value = _s.value;
705
711
  elements.push(JSON.stringify(value));
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.type.name);
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