typia 5.0.0-dev.2023084 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (584) hide show
  1. package/README.md +1 -2
  2. package/lib/IRandomGenerator.d.ts +4 -3
  3. package/lib/Resolved.d.ts +1 -1
  4. package/lib/executable/TypiaGenerateWizard.js +1 -1
  5. package/lib/executable/TypiaGenerateWizard.js.map +1 -1
  6. package/lib/executable/TypiaSetupWizard.js +1 -1
  7. package/lib/executable/TypiaSetupWizard.js.map +1 -1
  8. package/lib/executable/setup/PackageManager.js +1 -1
  9. package/lib/executable/setup/PackageManager.js.map +1 -1
  10. package/lib/executable/setup/PluginConfigurator.js +2 -2
  11. package/lib/executable/setup/PluginConfigurator.js.map +1 -1
  12. package/lib/factories/ExpressionFactory.d.ts +3 -1
  13. package/lib/factories/ExpressionFactory.js +25 -1
  14. package/lib/factories/ExpressionFactory.js.map +1 -1
  15. package/lib/factories/IdentifierFactory.d.ts +2 -1
  16. package/lib/factories/IdentifierFactory.js +11 -0
  17. package/lib/factories/IdentifierFactory.js.map +1 -1
  18. package/lib/factories/JsonMetadataFactory.d.ts +7 -0
  19. package/lib/factories/JsonMetadataFactory.js +38 -0
  20. package/lib/factories/JsonMetadataFactory.js.map +1 -0
  21. package/lib/factories/LiteralFactory.js +6 -2
  22. package/lib/factories/LiteralFactory.js.map +1 -1
  23. package/lib/factories/MetadataCollection.d.ts +7 -7
  24. package/lib/factories/MetadataCollection.js +4 -6
  25. package/lib/factories/MetadataCollection.js.map +1 -1
  26. package/lib/factories/MetadataCommentTagFactory.js +543 -0
  27. package/lib/factories/MetadataCommentTagFactory.js.map +1 -0
  28. package/lib/factories/MetadataFactory.d.ts +22 -2
  29. package/lib/factories/MetadataFactory.js +248 -17
  30. package/lib/factories/MetadataFactory.js.map +1 -1
  31. package/lib/factories/MetadataTypeTagFactory.d.ts +7 -0
  32. package/lib/factories/MetadataTypeTagFactory.js +280 -0
  33. package/lib/factories/MetadataTypeTagFactory.js.map +1 -0
  34. package/lib/factories/NumericRangeFactory.d.ts +6 -0
  35. package/lib/factories/NumericRangeFactory.js +34 -0
  36. package/lib/factories/NumericRangeFactory.js.map +1 -0
  37. package/lib/factories/ProtobufFactory.js +137 -91
  38. package/lib/factories/ProtobufFactory.js.map +1 -1
  39. package/lib/factories/TypeFactory.d.ts +0 -1
  40. package/lib/factories/TypeFactory.js +0 -5
  41. package/lib/factories/TypeFactory.js.map +1 -1
  42. package/lib/factories/internal/metadata/emend_metadata_atomics.js +7 -1
  43. package/lib/factories/internal/metadata/emend_metadata_atomics.js.map +1 -1
  44. package/lib/factories/internal/metadata/emplace_metadata_alias.d.ts +1 -1
  45. package/lib/factories/internal/metadata/emplace_metadata_alias.js +20 -19
  46. package/lib/factories/internal/metadata/emplace_metadata_alias.js.map +1 -1
  47. package/lib/factories/internal/metadata/emplace_metadata_array_type.d.ts +5 -0
  48. package/lib/factories/internal/metadata/emplace_metadata_array_type.js +51 -0
  49. package/lib/factories/internal/metadata/emplace_metadata_array_type.js.map +1 -0
  50. package/lib/factories/internal/metadata/emplace_metadata_object.d.ts +1 -1
  51. package/lib/factories/internal/metadata/emplace_metadata_object.js +100 -85
  52. package/lib/factories/internal/metadata/emplace_metadata_object.js.map +1 -1
  53. package/lib/factories/internal/metadata/emplace_metadata_tuple.d.ts +2 -2
  54. package/lib/factories/internal/metadata/emplace_metadata_tuple.js +34 -21
  55. package/lib/factories/internal/metadata/emplace_metadata_tuple.js.map +1 -1
  56. package/lib/factories/internal/metadata/explore_metadata.d.ts +1 -1
  57. package/lib/factories/internal/metadata/explore_metadata.js +12 -12
  58. package/lib/factories/internal/metadata/explore_metadata.js.map +1 -1
  59. package/lib/factories/internal/metadata/iterate_metadata.d.ts +1 -1
  60. package/lib/factories/internal/metadata/iterate_metadata.js +39 -19
  61. package/lib/factories/internal/metadata/iterate_metadata.js.map +1 -1
  62. package/lib/factories/internal/metadata/iterate_metadata_alias.d.ts +1 -1
  63. package/lib/factories/internal/metadata/iterate_metadata_alias.js +12 -10
  64. package/lib/factories/internal/metadata/iterate_metadata_alias.js.map +1 -1
  65. package/lib/factories/internal/metadata/iterate_metadata_array.d.ts +1 -1
  66. package/lib/factories/internal/metadata/iterate_metadata_array.js +13 -7
  67. package/lib/factories/internal/metadata/iterate_metadata_array.js.map +1 -1
  68. package/lib/factories/internal/metadata/iterate_metadata_atomic.js +2 -1
  69. package/lib/factories/internal/metadata/iterate_metadata_atomic.js.map +1 -1
  70. package/lib/factories/internal/metadata/iterate_metadata_collection.d.ts +2 -1
  71. package/lib/factories/internal/metadata/iterate_metadata_collection.js +66 -56
  72. package/lib/factories/internal/metadata/iterate_metadata_collection.js.map +1 -1
  73. package/lib/factories/internal/metadata/iterate_metadata_comment_tags.d.ts +3 -0
  74. package/lib/factories/internal/metadata/iterate_metadata_comment_tags.js +45 -0
  75. package/lib/factories/internal/metadata/iterate_metadata_comment_tags.js.map +1 -0
  76. package/lib/factories/internal/metadata/iterate_metadata_intersection.d.ts +1 -1
  77. package/lib/factories/internal/metadata/iterate_metadata_intersection.js +175 -41
  78. package/lib/factories/internal/metadata/iterate_metadata_intersection.js.map +1 -1
  79. package/lib/factories/internal/metadata/iterate_metadata_map.d.ts +1 -1
  80. package/lib/factories/internal/metadata/iterate_metadata_map.js +28 -15
  81. package/lib/factories/internal/metadata/iterate_metadata_map.js.map +1 -1
  82. package/lib/factories/internal/metadata/iterate_metadata_object.d.ts +1 -1
  83. package/lib/factories/internal/metadata/iterate_metadata_object.js +16 -21
  84. package/lib/factories/internal/metadata/iterate_metadata_object.js.map +1 -1
  85. package/lib/factories/internal/metadata/iterate_metadata_resolve.d.ts +1 -1
  86. package/lib/factories/internal/metadata/iterate_metadata_resolve.js +28 -15
  87. package/lib/factories/internal/metadata/iterate_metadata_resolve.js.map +1 -1
  88. package/lib/factories/internal/metadata/iterate_metadata_set.d.ts +1 -1
  89. package/lib/factories/internal/metadata/iterate_metadata_set.js +24 -11
  90. package/lib/factories/internal/metadata/iterate_metadata_set.js.map +1 -1
  91. package/lib/factories/internal/metadata/iterate_metadata_sort.js +2 -2
  92. package/lib/factories/internal/metadata/iterate_metadata_sort.js.map +1 -1
  93. package/lib/factories/internal/metadata/iterate_metadata_template.d.ts +1 -1
  94. package/lib/factories/internal/metadata/iterate_metadata_template.js +28 -15
  95. package/lib/factories/internal/metadata/iterate_metadata_template.js.map +1 -1
  96. package/lib/factories/internal/metadata/iterate_metadata_tuple.d.ts +1 -1
  97. package/lib/factories/internal/metadata/iterate_metadata_tuple.js +12 -6
  98. package/lib/factories/internal/metadata/iterate_metadata_tuple.js.map +1 -1
  99. package/lib/factories/internal/metadata/iterate_metadata_union.d.ts +1 -1
  100. package/lib/factories/internal/metadata/iterate_metadata_union.js +20 -7
  101. package/lib/factories/internal/metadata/iterate_metadata_union.js.map +1 -1
  102. package/lib/functional/$any.js +2 -1
  103. package/lib/functional/$any.js.map +1 -1
  104. package/lib/functional/$clone.d.ts +2 -0
  105. package/lib/functional/$clone.js +8 -0
  106. package/lib/functional/$clone.js.map +1 -0
  107. package/lib/functional/Namespace.js +0 -16
  108. package/lib/functional/Namespace.js.map +1 -1
  109. package/lib/module.d.ts +2 -39
  110. package/lib/module.js +3 -17
  111. package/lib/module.js.map +1 -1
  112. package/lib/programmers/AssertProgrammer.js +28 -10
  113. package/lib/programmers/AssertProgrammer.js.map +1 -1
  114. package/lib/programmers/CheckerProgrammer.js +97 -70
  115. package/lib/programmers/CheckerProgrammer.js.map +1 -1
  116. package/lib/programmers/FeatureProgrammer.d.ts +3 -5
  117. package/lib/programmers/FeatureProgrammer.js +7 -7
  118. package/lib/programmers/FeatureProgrammer.js.map +1 -1
  119. package/lib/programmers/IsProgrammer.d.ts +1 -1
  120. package/lib/programmers/IsProgrammer.js +33 -22
  121. package/lib/programmers/IsProgrammer.js.map +1 -1
  122. package/lib/programmers/RandomProgrammer.js +196 -160
  123. package/lib/programmers/RandomProgrammer.js.map +1 -1
  124. package/lib/programmers/TypiaProgrammer.js +87 -28
  125. package/lib/programmers/TypiaProgrammer.js.map +1 -1
  126. package/lib/programmers/ValidateProgrammer.js +28 -10
  127. package/lib/programmers/ValidateProgrammer.js.map +1 -1
  128. package/lib/programmers/helpers/CloneJoiner.js +10 -2
  129. package/lib/programmers/helpers/CloneJoiner.js.map +1 -1
  130. package/lib/programmers/helpers/ICheckEntry.d.ts +4 -3
  131. package/lib/programmers/helpers/ProtobufUtil.d.ts +6 -2
  132. package/lib/programmers/helpers/ProtobufUtil.js +175 -17
  133. package/lib/programmers/helpers/ProtobufUtil.js.map +1 -1
  134. package/lib/programmers/helpers/RandomJoiner.d.ts +3 -5
  135. package/lib/programmers/helpers/RandomJoiner.js +7 -10
  136. package/lib/programmers/helpers/RandomJoiner.js.map +1 -1
  137. package/lib/programmers/helpers/RandomRanger.d.ts +5 -6
  138. package/lib/programmers/helpers/RandomRanger.js +13 -33
  139. package/lib/programmers/helpers/RandomRanger.js.map +1 -1
  140. package/lib/programmers/helpers/UnionExplorer.d.ts +7 -8
  141. package/lib/programmers/helpers/UnionExplorer.js +46 -35
  142. package/lib/programmers/helpers/UnionExplorer.js.map +1 -1
  143. package/lib/programmers/internal/application_alias.js +0 -1
  144. package/lib/programmers/internal/application_alias.js.map +1 -1
  145. package/lib/programmers/internal/application_array.js +60 -20
  146. package/lib/programmers/internal/application_array.js.map +1 -1
  147. package/lib/programmers/internal/application_escaped.d.ts +4 -0
  148. package/lib/programmers/internal/{application_resolved.js → application_escaped.js} +6 -6
  149. package/lib/programmers/internal/application_escaped.js.map +1 -0
  150. package/lib/programmers/internal/application_number.js +95 -69
  151. package/lib/programmers/internal/application_number.js.map +1 -1
  152. package/lib/programmers/internal/application_object.js +0 -3
  153. package/lib/programmers/internal/application_object.js.map +1 -1
  154. package/lib/programmers/internal/application_schema.js +41 -24
  155. package/lib/programmers/internal/application_schema.js.map +1 -1
  156. package/lib/programmers/internal/application_string.js +56 -22
  157. package/lib/programmers/internal/application_string.js.map +1 -1
  158. package/lib/programmers/internal/application_tuple.js +10 -9
  159. package/lib/programmers/internal/application_tuple.js.map +1 -1
  160. package/lib/programmers/internal/check_array_length.js +25 -25
  161. package/lib/programmers/internal/check_array_length.js.map +1 -1
  162. package/lib/programmers/internal/check_bigint.js +20 -109
  163. package/lib/programmers/internal/check_bigint.js.map +1 -1
  164. package/lib/programmers/internal/check_dynamic_properties.js +1 -1
  165. package/lib/programmers/internal/check_dynamic_properties.js.map +1 -1
  166. package/lib/programmers/internal/check_number.js +57 -147
  167. package/lib/programmers/internal/check_number.js.map +1 -1
  168. package/lib/programmers/internal/check_string.js +21 -33
  169. package/lib/programmers/internal/check_string.js.map +1 -1
  170. package/lib/programmers/internal/check_template.js +31 -49
  171. package/lib/programmers/internal/check_template.js.map +1 -1
  172. package/lib/programmers/internal/check_union_array_like.js +7 -6
  173. package/lib/programmers/internal/check_union_array_like.js.map +1 -1
  174. package/lib/programmers/internal/feature_object_entries.js +1 -1
  175. package/lib/programmers/internal/feature_object_entries.js.map +1 -1
  176. package/lib/programmers/internal/random_custom.js +8 -2
  177. package/lib/programmers/internal/random_custom.js.map +1 -1
  178. package/lib/programmers/internal/wrap_metadata_rest_tuple.js +9 -5
  179. package/lib/programmers/internal/wrap_metadata_rest_tuple.js.map +1 -1
  180. package/lib/programmers/json/JsonApplicationProgrammer.js +5 -1
  181. package/lib/programmers/json/JsonApplicationProgrammer.js.map +1 -1
  182. package/lib/programmers/json/JsonAssertParseProgrammer.js +2 -0
  183. package/lib/programmers/json/JsonAssertParseProgrammer.js.map +1 -1
  184. package/lib/programmers/json/JsonIsParseProgrammer.js +2 -0
  185. package/lib/programmers/json/JsonIsParseProgrammer.js.map +1 -1
  186. package/lib/programmers/json/JsonStringifyProgrammer.js +48 -85
  187. package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
  188. package/lib/programmers/json/JsonValidateParseProgrammer.js +2 -0
  189. package/lib/programmers/json/JsonValidateParseProgrammer.js.map +1 -1
  190. package/lib/programmers/misc/MiscCloneProgrammer.js +34 -25
  191. package/lib/programmers/misc/MiscCloneProgrammer.js.map +1 -1
  192. package/lib/programmers/{IsPruneProgrammer.d.ts → misc/MiscIsPruneProgrammer.d.ts} +2 -2
  193. package/lib/programmers/{IsPruneProgrammer.js → misc/MiscIsPruneProgrammer.js} +11 -11
  194. package/lib/programmers/misc/MiscIsPruneProgrammer.js.map +1 -0
  195. package/lib/programmers/misc/MiscLiteralsProgrammer.js +10 -5
  196. package/lib/programmers/misc/MiscLiteralsProgrammer.js.map +1 -1
  197. package/lib/programmers/misc/MiscPruneProgrammer.js +34 -25
  198. package/lib/programmers/misc/MiscPruneProgrammer.js.map +1 -1
  199. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js +48 -48
  200. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js.map +1 -1
  201. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js +152 -69
  202. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js.map +1 -1
  203. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js +80 -85
  204. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js.map +1 -1
  205. package/lib/protobuf.d.ts +34 -34
  206. package/lib/schemas/json/IJsonSchema.d.ts +10 -38
  207. package/lib/schemas/metadata/IMetadata.d.ts +9 -2
  208. package/lib/schemas/metadata/IMetadataAlias.d.ts +0 -2
  209. package/lib/schemas/metadata/IMetadataArray.d.ts +4 -6
  210. package/lib/schemas/metadata/IMetadataArrayType.d.ts +8 -0
  211. package/lib/{CustomValidatorMap.js → schemas/metadata/IMetadataArrayType.js} +1 -1
  212. package/lib/schemas/metadata/IMetadataArrayType.js.map +1 -0
  213. package/lib/schemas/metadata/IMetadataAtomic.d.ts +3 -10
  214. package/lib/schemas/metadata/IMetadataCollection.d.ts +4 -4
  215. package/lib/schemas/metadata/IMetadataProperty.d.ts +0 -2
  216. package/lib/schemas/metadata/IMetadataTuple.d.ts +4 -6
  217. package/lib/schemas/metadata/IMetadataTupleType.d.ts +8 -0
  218. package/lib/schemas/metadata/IMetadataTupleType.js +3 -0
  219. package/lib/schemas/metadata/IMetadataTupleType.js.map +1 -0
  220. package/lib/schemas/metadata/IMetadataTypeTag.d.ts +8 -0
  221. package/lib/schemas/metadata/IMetadataTypeTag.js +3 -0
  222. package/lib/schemas/metadata/IMetadataTypeTag.js.map +1 -0
  223. package/lib/schemas/metadata/Metadata.d.ts +2 -2
  224. package/lib/schemas/metadata/Metadata.js +177 -122
  225. package/lib/schemas/metadata/Metadata.js.map +1 -1
  226. package/lib/schemas/metadata/MetadataAlias.d.ts +0 -2
  227. package/lib/schemas/metadata/MetadataAlias.js +0 -3
  228. package/lib/schemas/metadata/MetadataAlias.js.map +1 -1
  229. package/lib/schemas/metadata/MetadataArray.d.ts +8 -6
  230. package/lib/schemas/metadata/MetadataArray.js +48 -19
  231. package/lib/schemas/metadata/MetadataArray.js.map +1 -1
  232. package/lib/schemas/metadata/MetadataArrayType.d.ts +14 -0
  233. package/lib/schemas/metadata/MetadataArrayType.js +36 -0
  234. package/lib/schemas/metadata/MetadataArrayType.js.map +1 -0
  235. package/lib/schemas/metadata/MetadataAtomic.d.ts +9 -0
  236. package/lib/schemas/metadata/MetadataAtomic.js +59 -0
  237. package/lib/schemas/metadata/MetadataAtomic.js.map +1 -0
  238. package/lib/schemas/metadata/MetadataProperty.d.ts +0 -2
  239. package/lib/schemas/metadata/MetadataProperty.js +0 -3
  240. package/lib/schemas/metadata/MetadataProperty.js.map +1 -1
  241. package/lib/schemas/metadata/MetadataTuple.d.ts +8 -8
  242. package/lib/schemas/metadata/MetadataTuple.js +4 -19
  243. package/lib/schemas/metadata/MetadataTuple.js.map +1 -1
  244. package/lib/schemas/metadata/MetadataTupleType.d.ts +13 -0
  245. package/lib/schemas/metadata/MetadataTupleType.js +40 -0
  246. package/lib/schemas/metadata/MetadataTupleType.js.map +1 -0
  247. package/lib/tags/ExclusiveMaximum.d.ts +10 -8
  248. package/lib/tags/ExclusiveMinimum.d.ts +10 -8
  249. package/lib/tags/Format.d.ts +8 -8
  250. package/lib/tags/MaxItems.d.ts +8 -8
  251. package/lib/tags/MaxLength.d.ts +8 -8
  252. package/lib/tags/Maximum.d.ts +10 -8
  253. package/lib/tags/MinItems.d.ts +8 -8
  254. package/lib/tags/MinLength.d.ts +8 -8
  255. package/lib/tags/Minimum.d.ts +10 -8
  256. package/lib/tags/MultipleOf.d.ts +10 -8
  257. package/lib/tags/Pattern.d.ts +7 -8
  258. package/lib/tags/TagBase.d.ts +52 -6
  259. package/lib/tags/Type.d.ts +14 -13
  260. package/lib/tags/index.d.ts +1 -0
  261. package/lib/tags/index.js +1 -0
  262. package/lib/tags/index.js.map +1 -1
  263. package/lib/transform.d.ts +2 -1
  264. package/lib/transform.js +11 -3
  265. package/lib/transform.js.map +1 -1
  266. package/lib/transformers/CallExpressionTransformer.d.ts +1 -1
  267. package/lib/transformers/CallExpressionTransformer.js +2 -1
  268. package/lib/transformers/CallExpressionTransformer.js.map +1 -1
  269. package/lib/transformers/FileTransformer.d.ts +1 -1
  270. package/lib/transformers/FileTransformer.js +30 -7
  271. package/lib/transformers/FileTransformer.js.map +1 -1
  272. package/lib/transformers/IProject.d.ts +4 -0
  273. package/lib/transformers/NodeTransformer.d.ts +1 -1
  274. package/lib/transformers/TransformerError.d.ts +12 -0
  275. package/lib/transformers/TransformerError.js +66 -0
  276. package/lib/transformers/TransformerError.js.map +1 -0
  277. package/lib/transformers/features/AssertTransformer.d.ts +1 -0
  278. package/lib/transformers/features/CreateAssertTransformer.d.ts +1 -0
  279. package/lib/transformers/features/CreateIsTransformer.d.ts +1 -0
  280. package/lib/transformers/features/CreateRandomTransformer.js +9 -4
  281. package/lib/transformers/features/CreateRandomTransformer.js.map +1 -1
  282. package/lib/transformers/features/CreateValidateTransformer.d.ts +1 -0
  283. package/lib/transformers/features/IsTransformer.d.ts +1 -0
  284. package/lib/transformers/features/RandomTransformer.js +9 -4
  285. package/lib/transformers/features/RandomTransformer.js.map +1 -1
  286. package/lib/transformers/features/ValidateTransformer.d.ts +1 -0
  287. package/lib/transformers/features/json/JsonApplicationTransformer.js +79 -17
  288. package/lib/transformers/features/json/JsonApplicationTransformer.js.map +1 -1
  289. package/lib/transformers/features/json/JsonAssertParseTransformer.d.ts +1 -0
  290. package/lib/transformers/features/json/JsonAssertStringifyTransformer.d.ts +1 -0
  291. package/lib/transformers/features/json/JsonCreateAssertParseTransformer.d.ts +1 -0
  292. package/lib/transformers/features/json/JsonCreateAssertStringifyTransformer.d.ts +1 -0
  293. package/lib/transformers/features/json/JsonCreateIsParseTransformer.d.ts +1 -0
  294. package/lib/transformers/features/json/JsonCreateIsStringifyTransformer.d.ts +1 -0
  295. package/lib/transformers/features/json/JsonCreateStringifyTransformer.d.ts +1 -0
  296. package/lib/transformers/features/json/JsonCreateValidateParseTransformer.d.ts +1 -0
  297. package/lib/transformers/features/json/JsonCreateValidateStringifyProgrammer.d.ts +1 -0
  298. package/lib/transformers/features/json/JsonIsParseTransformer.d.ts +1 -0
  299. package/lib/transformers/features/json/JsonIsStringifyTransformer.d.ts +1 -0
  300. package/lib/transformers/features/json/JsonStringifyTransformer.d.ts +1 -0
  301. package/lib/transformers/features/json/JsonValidateParseTransformer.d.ts +1 -0
  302. package/lib/transformers/features/json/JsonValidateStringifyTransformer.d.ts +1 -0
  303. package/lib/transformers/features/misc/MetadataTransformer.js +13 -5
  304. package/lib/transformers/features/misc/MetadataTransformer.js.map +1 -1
  305. package/lib/transformers/features/misc/MiscAssertCloneTransformer.d.ts +1 -0
  306. package/lib/transformers/features/misc/MiscAssertPruneTransformer.d.ts +1 -0
  307. package/lib/transformers/features/misc/MiscCloneTransformer.d.ts +1 -0
  308. package/lib/transformers/features/misc/MiscCreateAssertCloneTransformer.d.ts +1 -0
  309. package/lib/transformers/features/misc/MiscCreateAssertPruneTransformer.d.ts +1 -0
  310. package/lib/transformers/features/misc/MiscCreateCloneTransformer.d.ts +1 -0
  311. package/lib/transformers/features/misc/MiscCreateIsCloneTransformer.d.ts +1 -0
  312. package/lib/transformers/features/misc/MiscCreateIsPruneTransformer.d.ts +1 -0
  313. package/lib/transformers/features/misc/MiscCreateIsPruneTransformer.js +2 -2
  314. package/lib/transformers/features/misc/MiscCreateIsPruneTransformer.js.map +1 -1
  315. package/lib/transformers/features/misc/MiscCreatePruneTransformer.d.ts +1 -0
  316. package/lib/transformers/features/misc/MiscCreateValidateCloneTransformer.d.ts +1 -0
  317. package/lib/transformers/features/misc/MiscCreateValidatePruneTransformer.d.ts +1 -0
  318. package/lib/transformers/features/misc/MiscIsCloneTransformer.d.ts +1 -0
  319. package/lib/transformers/features/misc/MiscIsPruneTransformer.d.ts +1 -0
  320. package/lib/transformers/features/misc/MiscIsPruneTransformer.js +2 -2
  321. package/lib/transformers/features/misc/MiscIsPruneTransformer.js.map +1 -1
  322. package/lib/transformers/features/misc/MiscLiteralsTransformer.js +9 -4
  323. package/lib/transformers/features/misc/MiscLiteralsTransformer.js.map +1 -1
  324. package/lib/transformers/features/misc/MiscPruneTransformer.d.ts +1 -0
  325. package/lib/transformers/features/misc/MiscValidateCloneTransformer.d.ts +1 -0
  326. package/lib/transformers/features/misc/MiscValidatePruneTransformer.d.ts +1 -0
  327. package/lib/transformers/features/protobuf/CreateProtobufAssertDecodeTransformer.d.ts +1 -0
  328. package/lib/transformers/features/protobuf/CreateProtobufAssertEncodeTransformer.d.ts +1 -0
  329. package/lib/transformers/features/protobuf/CreateProtobufDecodeTransformer.d.ts +1 -0
  330. package/lib/transformers/features/protobuf/CreateProtobufEncodeTransformer.d.ts +1 -0
  331. package/lib/transformers/features/protobuf/CreateProtobufIsDecodeTransformer.d.ts +1 -0
  332. package/lib/transformers/features/protobuf/CreateProtobufIsEncodeTransformer.d.ts +1 -0
  333. package/lib/transformers/features/protobuf/CreateProtobufValidateDecodeTransformer.d.ts +1 -0
  334. package/lib/transformers/features/protobuf/CreateProtobufValidateEncodeTransformer.d.ts +1 -0
  335. package/lib/transformers/features/protobuf/ProtobufAssertDecodeTransformer.d.ts +1 -0
  336. package/lib/transformers/features/protobuf/ProtobufAssertEncodeTransformer.d.ts +1 -0
  337. package/lib/transformers/features/protobuf/ProtobufDecodeTransformer.d.ts +1 -0
  338. package/lib/transformers/features/protobuf/ProtobufEncodeTransformer.d.ts +1 -0
  339. package/lib/transformers/features/protobuf/ProtobufIsDecodeTransformer.d.ts +1 -0
  340. package/lib/transformers/features/protobuf/ProtobufIsEncodeTransformer.d.ts +1 -0
  341. package/lib/transformers/features/protobuf/ProtobufMessageTransformer.js +9 -2
  342. package/lib/transformers/features/protobuf/ProtobufMessageTransformer.js.map +1 -1
  343. package/lib/transformers/features/protobuf/ProtobufValidateDecodeTransformer.d.ts +1 -0
  344. package/lib/transformers/features/protobuf/ProtobufValidateEncodeTransformer.d.ts +1 -0
  345. package/lib/transformers/internal/GenericTransformer.js +17 -4
  346. package/lib/transformers/internal/GenericTransformer.js.map +1 -1
  347. package/lib/typings/ProtobufAtomic.d.ts +5 -0
  348. package/lib/{schemas/metadata/ICommentTag.js → typings/ProtobufAtomic.js} +1 -1
  349. package/lib/typings/ProtobufAtomic.js.map +1 -0
  350. package/lib/typings/ValidationPipe.d.ts +7 -0
  351. package/lib/{schemas/metadata/IMetadataTag.js → typings/ValidationPipe.js} +1 -1
  352. package/lib/typings/ValidationPipe.js.map +1 -0
  353. package/package.json +6 -2
  354. package/src/IRandomGenerator.ts +4 -3
  355. package/src/Primitive.ts +135 -135
  356. package/src/Resolved.ts +116 -116
  357. package/src/executable/TypiaGenerateWizard.ts +1 -1
  358. package/src/executable/TypiaSetupWizard.ts +1 -1
  359. package/src/executable/setup/PackageManager.ts +1 -1
  360. package/src/executable/setup/PluginConfigurator.ts +2 -2
  361. package/src/factories/ExpressionFactory.ts +46 -2
  362. package/src/factories/IdentifierFactory.ts +15 -0
  363. package/src/factories/JsonMetadataFactory.ts +43 -0
  364. package/src/factories/LiteralFactory.ts +11 -3
  365. package/src/factories/MetadataCollection.ts +18 -18
  366. package/src/factories/MetadataCommentTagFactory.ts +629 -0
  367. package/src/factories/MetadataFactory.ts +214 -46
  368. package/src/factories/MetadataTypeTagFactory.ts +313 -0
  369. package/src/factories/NumericRangeFactory.ts +33 -0
  370. package/src/factories/ProtobufFactory.ts +272 -268
  371. package/src/factories/TypeFactory.ts +0 -5
  372. package/src/factories/internal/metadata/emend_metadata_atomics.ts +40 -35
  373. package/src/factories/internal/metadata/emplace_metadata_alias.ts +12 -11
  374. package/src/factories/internal/metadata/{emplace_metadata_array.ts → emplace_metadata_array_type.ts} +14 -7
  375. package/src/factories/internal/metadata/emplace_metadata_object.ts +20 -6
  376. package/src/factories/internal/metadata/emplace_metadata_tuple.ts +13 -3
  377. package/src/factories/internal/metadata/explore_metadata.ts +32 -38
  378. package/src/factories/internal/metadata/iterate_metadata.ts +44 -24
  379. package/src/factories/internal/metadata/iterate_metadata_alias.ts +7 -2
  380. package/src/factories/internal/metadata/iterate_metadata_array.ts +19 -6
  381. package/src/factories/internal/metadata/iterate_metadata_atomic.ts +62 -63
  382. package/src/factories/internal/metadata/iterate_metadata_collection.ts +141 -133
  383. package/src/factories/internal/metadata/iterate_metadata_comment_tags.ts +26 -0
  384. package/src/factories/internal/metadata/iterate_metadata_intersection.ts +141 -28
  385. package/src/factories/internal/metadata/iterate_metadata_map.ts +20 -4
  386. package/src/factories/internal/metadata/iterate_metadata_native.ts +210 -210
  387. package/src/factories/internal/metadata/iterate_metadata_object.ts +12 -11
  388. package/src/factories/internal/metadata/iterate_metadata_resolve.ts +52 -49
  389. package/src/factories/internal/metadata/iterate_metadata_set.ts +11 -2
  390. package/src/factories/internal/metadata/iterate_metadata_sort.ts +69 -69
  391. package/src/factories/internal/metadata/iterate_metadata_template.ts +12 -3
  392. package/src/factories/internal/metadata/iterate_metadata_tuple.ts +18 -5
  393. package/src/factories/internal/metadata/iterate_metadata_union.ts +10 -7
  394. package/src/functional/$ProtobufWriter.ts +151 -151
  395. package/src/functional/$any.ts +3 -1
  396. package/src/functional/$clone.ts +4 -0
  397. package/src/functional/Namespace.ts +0 -16
  398. package/src/json.ts +648 -648
  399. package/src/misc.ts +651 -651
  400. package/src/module.ts +656 -709
  401. package/src/programmers/AssertProgrammer.ts +317 -281
  402. package/src/programmers/CheckerProgrammer.ts +1137 -1174
  403. package/src/programmers/FeatureProgrammer.ts +13 -32
  404. package/src/programmers/IsProgrammer.ts +252 -241
  405. package/src/programmers/RandomProgrammer.ts +878 -874
  406. package/src/programmers/TypiaProgrammer.ts +36 -2
  407. package/src/programmers/ValidateProgrammer.ts +346 -307
  408. package/src/programmers/helpers/AtomicPredicator.ts +31 -31
  409. package/src/programmers/helpers/CloneJoiner.ts +57 -20
  410. package/src/programmers/helpers/FunctionImporeter.ts +91 -91
  411. package/src/programmers/helpers/ICheckEntry.ts +4 -3
  412. package/src/programmers/helpers/ProtobufUtil.ts +125 -29
  413. package/src/programmers/helpers/RandomJoiner.ts +11 -33
  414. package/src/programmers/helpers/RandomRanger.ts +16 -51
  415. package/src/programmers/helpers/StringifyPredicator.ts +12 -12
  416. package/src/programmers/helpers/UnionExplorer.ts +46 -51
  417. package/src/programmers/helpers/disable_function_importer_declare.ts +32 -32
  418. package/src/programmers/internal/application_alias.ts +0 -1
  419. package/src/programmers/internal/application_array.ts +33 -10
  420. package/src/programmers/internal/application_default_string.ts +37 -37
  421. package/src/programmers/internal/{application_resolved.ts → application_escaped.ts} +55 -55
  422. package/src/programmers/internal/application_number.ts +76 -70
  423. package/src/programmers/internal/application_object.ts +0 -3
  424. package/src/programmers/internal/application_schema.ts +175 -157
  425. package/src/programmers/internal/application_string.ts +33 -27
  426. package/src/programmers/internal/application_tuple.ts +12 -11
  427. package/src/programmers/internal/check_array_length.ts +34 -28
  428. package/src/programmers/internal/check_bigint.ts +26 -91
  429. package/src/programmers/internal/check_dynamic_properties.ts +1 -2
  430. package/src/programmers/internal/check_number.ts +83 -236
  431. package/src/programmers/internal/check_string.ts +37 -17
  432. package/src/programmers/internal/check_template.ts +17 -12
  433. package/src/programmers/internal/check_union_array_like.ts +4 -18
  434. package/src/programmers/internal/feature_object_entries.ts +12 -18
  435. package/src/programmers/internal/metadata_to_pattern.ts +34 -34
  436. package/src/programmers/internal/random_custom.ts +11 -3
  437. package/src/programmers/internal/stringify_dynamic_properties.ts +171 -171
  438. package/src/programmers/internal/wrap_metadata_rest_tuple.ts +9 -5
  439. package/src/programmers/json/JsonApplicationProgrammer.ts +6 -3
  440. package/src/programmers/json/JsonAssertParseProgrammer.ts +7 -2
  441. package/src/programmers/json/JsonIsParseProgrammer.ts +7 -2
  442. package/src/programmers/json/JsonStringifyProgrammer.ts +964 -995
  443. package/src/programmers/json/JsonValidateParseProgrammer.ts +7 -2
  444. package/src/programmers/json/JsonValidateStringifyProgrammer.ts +1 -1
  445. package/src/programmers/misc/MiscAssertCloneProgrammer.ts +71 -71
  446. package/src/programmers/misc/MiscCloneProgrammer.ts +774 -775
  447. package/src/programmers/misc/MiscIsCloneProgrammer.ts +78 -78
  448. package/src/programmers/{IsPruneProgrammer.ts → misc/MiscIsPruneProgrammer.ts} +7 -7
  449. package/src/programmers/misc/MiscLiteralsProgrammer.ts +69 -64
  450. package/src/programmers/misc/MiscPruneProgrammer.ts +550 -544
  451. package/src/programmers/misc/MiscValidateCloneProgrammer.ts +85 -85
  452. package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +75 -75
  453. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +655 -673
  454. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +883 -814
  455. package/src/programmers/protobuf/ProtobufIsDecodeProgrammer.ts +85 -85
  456. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +23 -36
  457. package/src/programmers/protobuf/ProtobufValidateDecodeProgrammer.ts +75 -75
  458. package/src/protobuf.ts +881 -881
  459. package/src/schemas/json/IJsonSchema.ts +11 -38
  460. package/src/schemas/metadata/IMetadata.ts +34 -27
  461. package/src/schemas/metadata/IMetadataAlias.ts +0 -2
  462. package/src/schemas/metadata/IMetadataArray.ts +4 -7
  463. package/src/schemas/metadata/IMetadataArrayType.ts +10 -0
  464. package/src/schemas/metadata/IMetadataAtomic.ts +3 -10
  465. package/src/schemas/metadata/IMetadataCollection.ts +4 -4
  466. package/src/schemas/metadata/IMetadataDictionary.ts +4 -4
  467. package/src/schemas/metadata/IMetadataEscaped.ts +6 -6
  468. package/src/schemas/metadata/IMetadataProperty.ts +0 -2
  469. package/src/schemas/metadata/IMetadataTuple.ts +4 -7
  470. package/src/schemas/metadata/IMetadataTupleType.ts +10 -0
  471. package/src/schemas/metadata/IMetadataTypeTag.ts +8 -0
  472. package/src/schemas/metadata/Metadata.ts +685 -643
  473. package/src/schemas/metadata/MetadataAlias.ts +0 -5
  474. package/src/schemas/metadata/MetadataArray.ts +28 -34
  475. package/src/schemas/metadata/MetadataArrayType.ts +57 -0
  476. package/src/schemas/metadata/MetadataAtomic.ts +42 -0
  477. package/src/schemas/metadata/MetadataEscaped.ts +51 -51
  478. package/src/schemas/metadata/MetadataProperty.ts +0 -5
  479. package/src/schemas/metadata/MetadataTuple.ts +9 -35
  480. package/src/schemas/metadata/MetadataTupleType.ts +67 -0
  481. package/src/tags/ExclusiveMaximum.ts +13 -8
  482. package/src/tags/ExclusiveMinimum.ts +13 -8
  483. package/src/tags/Format.ts +21 -20
  484. package/src/tags/MaxItems.ts +9 -8
  485. package/src/tags/MaxLength.ts +9 -8
  486. package/src/tags/Maximum.ts +13 -8
  487. package/src/tags/MinItems.ts +9 -8
  488. package/src/tags/MinLength.ts +9 -8
  489. package/src/tags/Minimum.ts +13 -8
  490. package/src/tags/MultipleOf.ts +15 -10
  491. package/src/tags/Pattern.ts +8 -8
  492. package/src/tags/TagBase.ts +64 -13
  493. package/src/tags/Type.ts +26 -29
  494. package/src/tags/index.ts +1 -0
  495. package/src/transform.ts +13 -5
  496. package/src/transformers/CallExpressionTransformer.ts +6 -3
  497. package/src/transformers/FileTransformer.ts +23 -13
  498. package/src/transformers/IProject.ts +4 -0
  499. package/src/transformers/NodeTransformer.ts +1 -1
  500. package/src/transformers/TransformerError.ts +55 -0
  501. package/src/transformers/features/CreateRandomTransformer.ts +11 -7
  502. package/src/transformers/features/RandomTransformer.ts +11 -7
  503. package/src/transformers/features/json/JsonApplicationTransformer.ts +116 -111
  504. package/src/transformers/features/misc/MetadataTransformer.ts +61 -53
  505. package/src/transformers/features/misc/MiscCreateIsPruneTransformer.ts +2 -2
  506. package/src/transformers/features/misc/MiscIsPruneTransformer.ts +2 -2
  507. package/src/transformers/features/misc/MiscLiteralsTransformer.ts +11 -7
  508. package/src/transformers/features/protobuf/ProtobufMessageTransformer.ts +9 -7
  509. package/src/transformers/internal/GenericTransformer.ts +17 -10
  510. package/src/typings/Atomic.ts +1 -0
  511. package/src/typings/ProtobufAtomic.ts +19 -0
  512. package/src/typings/ValidationPipe.ts +9 -0
  513. package/src/utils/RandomGenerator.ts +83 -83
  514. package/lib/CustomValidatorMap.d.ts +0 -110
  515. package/lib/CustomValidatorMap.js.map +0 -1
  516. package/lib/factories/MetadataTagFactory.d.ts +0 -6
  517. package/lib/factories/MetadataTagFactory.js +0 -312
  518. package/lib/factories/MetadataTagFactory.js.map +0 -1
  519. package/lib/factories/internal/metadata/emplace_metadata_array.d.ts +0 -5
  520. package/lib/factories/internal/metadata/emplace_metadata_array.js +0 -38
  521. package/lib/factories/internal/metadata/emplace_metadata_array.js.map +0 -1
  522. package/lib/factories/internal/metadata/iterate_metadata_tag.d.ts +0 -2
  523. package/lib/factories/internal/metadata/iterate_metadata_tag.js +0 -50
  524. package/lib/factories/internal/metadata/iterate_metadata_tag.js.map +0 -1
  525. package/lib/functional/$is_custom.d.ts +0 -2
  526. package/lib/functional/$is_custom.js +0 -13
  527. package/lib/functional/$is_custom.js.map +0 -1
  528. package/lib/functional/$is_date.d.ts +0 -1
  529. package/lib/functional/$is_date.js +0 -7
  530. package/lib/functional/$is_date.js.map +0 -1
  531. package/lib/functional/$is_datetime.d.ts +0 -1
  532. package/lib/functional/$is_datetime.js +0 -8
  533. package/lib/functional/$is_datetime.js.map +0 -1
  534. package/lib/functional/$is_email.d.ts +0 -1
  535. package/lib/functional/$is_email.js +0 -7
  536. package/lib/functional/$is_email.js.map +0 -1
  537. package/lib/functional/$is_ipv4.d.ts +0 -1
  538. package/lib/functional/$is_ipv4.js +0 -7
  539. package/lib/functional/$is_ipv4.js.map +0 -1
  540. package/lib/functional/$is_ipv6.d.ts +0 -1
  541. package/lib/functional/$is_ipv6.js +0 -7
  542. package/lib/functional/$is_ipv6.js.map +0 -1
  543. package/lib/functional/$is_url.d.ts +0 -1
  544. package/lib/functional/$is_url.js +0 -7
  545. package/lib/functional/$is_url.js.map +0 -1
  546. package/lib/functional/$is_uuid.d.ts +0 -1
  547. package/lib/functional/$is_uuid.js +0 -7
  548. package/lib/functional/$is_uuid.js.map +0 -1
  549. package/lib/programmers/IsPruneProgrammer.js.map +0 -1
  550. package/lib/programmers/internal/application_resolved.d.ts +0 -4
  551. package/lib/programmers/internal/application_resolved.js.map +0 -1
  552. package/lib/programmers/internal/check_array.js +0 -44
  553. package/lib/programmers/internal/check_array.js.map +0 -1
  554. package/lib/programmers/internal/check_custom.d.ts +0 -1
  555. package/lib/programmers/internal/check_custom.js +0 -30
  556. package/lib/programmers/internal/check_custom.js.map +0 -1
  557. package/lib/programmers/internal/check_string_tags.d.ts +0 -1
  558. package/lib/programmers/internal/check_string_tags.js +0 -89
  559. package/lib/programmers/internal/check_string_tags.js.map +0 -1
  560. package/lib/programmers/internal/get_comment_tags.d.ts +0 -1
  561. package/lib/programmers/internal/get_comment_tags.js +0 -25
  562. package/lib/programmers/internal/get_comment_tags.js.map +0 -1
  563. package/lib/schemas/metadata/ICommentTag.d.ts +0 -4
  564. package/lib/schemas/metadata/ICommentTag.js.map +0 -1
  565. package/lib/schemas/metadata/IMetadataTag.d.ts +0 -63
  566. package/lib/schemas/metadata/IMetadataTag.js.map +0 -1
  567. package/src/CustomValidatorMap.ts +0 -126
  568. package/src/factories/MetadataTagFactory.ts +0 -366
  569. package/src/factories/internal/metadata/iterate_metadata_tag.ts +0 -31
  570. package/src/functional/$is_custom.ts +0 -14
  571. package/src/functional/$is_date.ts +0 -3
  572. package/src/functional/$is_datetime.ts +0 -2
  573. package/src/functional/$is_email.ts +0 -4
  574. package/src/functional/$is_ipv4.ts +0 -4
  575. package/src/functional/$is_ipv6.ts +0 -4
  576. package/src/functional/$is_url.ts +0 -4
  577. package/src/functional/$is_uuid.ts +0 -4
  578. package/src/programmers/internal/check_array.ts +0 -30
  579. package/src/programmers/internal/check_custom.ts +0 -31
  580. package/src/programmers/internal/check_string_tags.ts +0 -67
  581. package/src/programmers/internal/get_comment_tags.ts +0 -23
  582. package/src/schemas/metadata/ICommentTag.ts +0 -4
  583. package/src/schemas/metadata/IMetadataTag.ts +0 -112
  584. /package/lib/{programmers/internal/check_array.d.ts → factories/MetadataCommentTagFactory.d.ts} +0 -0
@@ -1,8 +1,8 @@
1
1
  import { IMetadata } from "./IMetadata";
2
- import { IMetadataAtomic } from "./IMetadataAtomic";
3
2
  import { IMetadataCollection } from "./IMetadataCollection";
4
3
  import { MetadataAlias } from "./MetadataAlias";
5
4
  import { MetadataArray } from "./MetadataArray";
5
+ import { MetadataAtomic } from "./MetadataAtomic";
6
6
  import { MetadataConstant } from "./MetadataConstant";
7
7
  import { MetadataEscaped } from "./MetadataEscaped";
8
8
  import { MetadataObject } from "./MetadataObject";
@@ -14,7 +14,7 @@ export declare class Metadata {
14
14
  nullable: boolean;
15
15
  functional: boolean;
16
16
  escaped: MetadataEscaped | null;
17
- atomics: IMetadataAtomic[];
17
+ atomics: MetadataAtomic[];
18
18
  constants: MetadataConstant[];
19
19
  templates: Metadata[][];
20
20
  rest: Metadata | null;
@@ -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: JSON.parse(JSON.stringify(this.atomics)),
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: JSON.parse(JSON.stringify(meta.atomics)),
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,28 +234,34 @@ 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 RangeError("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 RangeError("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);
232
257
  if (found === undefined)
233
- throw new Error("Error on Metadata.from(): failed to find object \"".concat(name, "\"."));
258
+ throw new RangeError("Error on Metadata.from(): failed to find object \"".concat(name, "\"."));
234
259
  return found;
235
260
  }),
236
261
  aliases: meta.aliases.map(function (alias) {
237
262
  var found = dict.aliases.get(alias);
238
263
  if (found === undefined)
239
- throw new Error("Error on Metadata.from(): failed to find alias \"".concat(alias, "\"."));
264
+ throw new RangeError("Error on Metadata.from(): failed to find alias \"".concat(alias, "\"."));
240
265
  return found;
241
266
  }),
242
267
  natives: meta.natives.slice(),
@@ -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.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
- 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 &&
@@ -407,7 +420,7 @@ exports.Metadata = Metadata;
407
420
  if (level === 0) {
408
421
  var _loop_3 = function (ya) {
409
422
  if (!x.arrays.some(function (xa) {
410
- return Metadata.covers(xa.value, ya.value, level + 1);
423
+ return Metadata.covers(xa.type.value, ya.type.value, level + 1);
411
424
  })) {
412
425
  return { value: false };
413
426
  }
@@ -428,13 +441,14 @@ exports.Metadata = Metadata;
428
441
  finally { if (e_7) throw e_7.error; }
429
442
  }
430
443
  var _loop_4 = function (yt) {
431
- if (yt.elements.length !== 0 &&
444
+ if (yt.type.elements.length !== 0 &&
432
445
  x.tuples.some(function (xt) {
433
- return xt.elements.length >= yt.elements.length &&
434
- xt.elements
435
- .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)
436
450
  .every(function (xv, i) {
437
- return Metadata.covers(xv, yt.elements[i], level + 1);
451
+ return Metadata.covers(xv, yt.type.elements[i], level + 1);
438
452
  });
439
453
  }) === false)
440
454
  return { value: false };
@@ -562,8 +576,8 @@ exports.Metadata = Metadata;
562
576
  return true;
563
577
  };
564
578
  Metadata.merge = function (x, y) {
565
- var e_14, _a, e_15, _b, e_16, _c, e_17, _d, e_18, _e;
566
- var _f, _g;
579
+ var e_14, _a, e_15, _b, e_16, _c;
580
+ var _d, _e;
567
581
  var output = Metadata.create({
568
582
  any: x.any || y.any,
569
583
  nullable: x.nullable || y.nullable,
@@ -571,20 +585,31 @@ exports.Metadata = Metadata;
571
585
  optional: x.optional || y.optional,
572
586
  functional: x.functional || y.functional,
573
587
  escaped: x.escaped !== null && y.escaped !== null
574
- ?
575
- MetadataEscaped_1.MetadataEscaped.create({
576
- original: Metadata.merge(x.escaped.original, y.escaped.original),
577
- returns: Metadata.merge(x.escaped.returns, y.escaped.returns),
578
- })
579
- : (_f = x.escaped) !== null && _f !== void 0 ? _f : y.escaped,
580
- atomics: __spreadArray([], __read(new Set(__spreadArray(__spreadArray([], __read(x.atomics.map(function (a) { return a.type; })), false), __read(y.atomics.map(function (a) { return a.type; })), false))), false).map(function (type) { return ({ type: type, tags: [] }); }),
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),
581
598
  constants: __spreadArray([], __read(x.constants), false),
582
599
  templates: x.templates.slice(),
583
600
  rest: x.rest !== null && y.rest !== null
584
601
  ? Metadata.merge(x.rest, y.rest)
585
- : (_g = x.rest) !== null && _g !== void 0 ? _g : y.rest,
586
- arrays: x.arrays.slice(),
587
- 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),
588
613
  objects: x.objects.slice(),
589
614
  aliases: x.aliases.slice(),
590
615
  natives: __spreadArray([], __read(new Set(__spreadArray(__spreadArray([], __read(x.natives), false), __read(y.natives), false))), false),
@@ -592,95 +617,69 @@ exports.Metadata = Metadata;
592
617
  maps: x.maps.slice(),
593
618
  });
594
619
  var _loop_10 = function (constant) {
595
- var e_19, _t;
620
+ var e_17, _m;
596
621
  var target = ArrayUtil_1.ArrayUtil.take(output.constants, function (elem) { return elem.type === constant.type; }, function () { return ({
597
622
  type: constant.type,
598
623
  values: [],
599
624
  }); });
600
625
  try {
601
- for (var _u = (e_19 = void 0, __values(constant.values)), _v = _u.next(); !_v.done; _v = _u.next()) {
602
- 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;
603
628
  ArrayUtil_1.ArrayUtil.add(target.values, value);
604
629
  }
605
630
  }
606
- catch (e_19_1) { e_19 = { error: e_19_1 }; }
631
+ catch (e_17_1) { e_17 = { error: e_17_1 }; }
607
632
  finally {
608
633
  try {
609
- if (_v && !_v.done && (_t = _u.return)) _t.call(_u);
634
+ if (_p && !_p.done && (_m = _o.return)) _m.call(_o);
610
635
  }
611
- finally { if (e_19) throw e_19.error; }
636
+ finally { if (e_17) throw e_17.error; }
612
637
  }
613
638
  };
614
639
  try {
615
- for (var _h = __values(y.constants), _j = _h.next(); !_j.done; _j = _h.next()) {
616
- var constant = _j.value;
640
+ for (var _f = __values(y.constants), _g = _f.next(); !_g.done; _g = _f.next()) {
641
+ var constant = _g.value;
617
642
  _loop_10(constant);
618
643
  }
619
644
  }
620
645
  catch (e_14_1) { e_14 = { error: e_14_1 }; }
621
646
  finally {
622
647
  try {
623
- if (_j && !_j.done && (_a = _h.return)) _a.call(_h);
648
+ if (_g && !_g.done && (_a = _f.return)) _a.call(_f);
624
649
  }
625
650
  finally { if (e_14) throw e_14.error; }
626
651
  }
627
652
  try {
628
- for (var _k = __values(y.arrays), _l = _k.next(); !_l.done; _l = _k.next()) {
629
- var array = _l.value;
630
- 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; });
631
656
  }
632
657
  }
633
658
  catch (e_15_1) { e_15 = { error: e_15_1 }; }
634
659
  finally {
635
660
  try {
636
- if (_l && !_l.done && (_b = _k.return)) _b.call(_k);
661
+ if (_j && !_j.done && (_b = _h.return)) _b.call(_h);
637
662
  }
638
663
  finally { if (e_15) throw e_15.error; }
639
664
  }
640
665
  try {
641
- for (var _m = __values(y.tuples), _o = _m.next(); !_o.done; _o = _m.next()) {
642
- var tuple = _o.value;
643
- 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; });
644
669
  }
645
670
  }
646
671
  catch (e_16_1) { e_16 = { error: e_16_1 }; }
647
672
  finally {
648
673
  try {
649
- if (_o && !_o.done && (_c = _m.return)) _c.call(_m);
674
+ if (_l && !_l.done && (_c = _k.return)) _c.call(_k);
650
675
  }
651
676
  finally { if (e_16) throw e_16.error; }
652
677
  }
653
- try {
654
- for (var _p = __values(y.objects), _q = _p.next(); !_q.done; _q = _p.next()) {
655
- var obj = _q.value;
656
- ArrayUtil_1.ArrayUtil.set(output.objects, obj, function (elem) { return elem.name; });
657
- }
658
- }
659
- catch (e_17_1) { e_17 = { error: e_17_1 }; }
660
- finally {
661
- try {
662
- if (_q && !_q.done && (_d = _p.return)) _d.call(_p);
663
- }
664
- finally { if (e_17) throw e_17.error; }
665
- }
666
- try {
667
- for (var _r = __values(y.aliases), _s = _r.next(); !_s.done; _s = _r.next()) {
668
- var alias = _s.value;
669
- ArrayUtil_1.ArrayUtil.set(output.aliases, alias, function (elem) { return elem.name; });
670
- }
671
- }
672
- catch (e_18_1) { e_18 = { error: e_18_1 }; }
673
- finally {
674
- try {
675
- if (_s && !_s.done && (_e = _r.return)) _e.call(_r);
676
- }
677
- finally { if (e_18) throw e_18.error; }
678
- }
679
678
  return output;
680
679
  };
681
680
  })(Metadata || (exports.Metadata = Metadata = {}));
682
681
  var getName = function (metadata) {
683
- 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;
684
683
  if (metadata.any === true)
685
684
  return "any";
686
685
  var elements = [];
@@ -691,40 +690,42 @@ var getName = function (metadata) {
691
690
  try {
692
691
  for (var _m = __values(metadata.atomics), _o = _m.next(); !_o.done; _o = _m.next()) {
693
692
  var atom = _o.value;
694
- elements.push(atom.type);
693
+ elements.push(atom.getName());
695
694
  }
696
695
  }
697
- catch (e_20_1) { e_20 = { error: e_20_1 }; }
696
+ catch (e_18_1) { e_18 = { error: e_18_1 }; }
698
697
  finally {
699
698
  try {
700
699
  if (_o && !_o.done && (_a = _m.return)) _a.call(_m);
701
700
  }
702
- finally { if (e_20) throw e_20.error; }
701
+ finally { if (e_18) throw e_18.error; }
703
702
  }
704
703
  try {
705
704
  for (var _p = __values(metadata.constants), _q = _p.next(); !_q.done; _q = _p.next()) {
706
705
  var constant = _q.value;
707
706
  try {
708
- 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()) {
709
708
  var value = _s.value;
710
- elements.push(JSON.stringify(value));
709
+ elements.push(constant.type === "string"
710
+ ? JSON.stringify(value)
711
+ : value.toString());
711
712
  }
712
713
  }
713
- catch (e_22_1) { e_22 = { error: e_22_1 }; }
714
+ catch (e_20_1) { e_20 = { error: e_20_1 }; }
714
715
  finally {
715
716
  try {
716
717
  if (_s && !_s.done && (_c = _r.return)) _c.call(_r);
717
718
  }
718
- finally { if (e_22) throw e_22.error; }
719
+ finally { if (e_20) throw e_20.error; }
719
720
  }
720
721
  }
721
722
  }
722
- catch (e_21_1) { e_21 = { error: e_21_1 }; }
723
+ catch (e_19_1) { e_19 = { error: e_19_1 }; }
723
724
  finally {
724
725
  try {
725
726
  if (_q && !_q.done && (_b = _p.return)) _b.call(_p);
726
727
  }
727
- finally { if (e_21) throw e_21.error; }
728
+ finally { if (e_19) throw e_19.error; }
728
729
  }
729
730
  try {
730
731
  for (var _t = __values(metadata.templates), _u = _t.next(); !_u.done; _u = _t.next()) {
@@ -742,12 +743,12 @@ var getName = function (metadata) {
742
743
  "`");
743
744
  }
744
745
  }
745
- catch (e_23_1) { e_23 = { error: e_23_1 }; }
746
+ catch (e_21_1) { e_21 = { error: e_21_1 }; }
746
747
  finally {
747
748
  try {
748
749
  if (_u && !_u.done && (_d = _t.return)) _d.call(_t);
749
750
  }
750
- finally { if (e_23) throw e_23.error; }
751
+ finally { if (e_21) throw e_21.error; }
751
752
  }
752
753
  try {
753
754
  for (var _v = __values(metadata.natives), _w = _v.next(); !_w.done; _w = _v.next()) {
@@ -755,12 +756,12 @@ var getName = function (metadata) {
755
756
  elements.push(native);
756
757
  }
757
758
  }
758
- catch (e_24_1) { e_24 = { error: e_24_1 }; }
759
+ catch (e_22_1) { e_22 = { error: e_22_1 }; }
759
760
  finally {
760
761
  try {
761
762
  if (_w && !_w.done && (_e = _v.return)) _e.call(_v);
762
763
  }
763
- finally { if (e_24) throw e_24.error; }
764
+ finally { if (e_22) throw e_22.error; }
764
765
  }
765
766
  try {
766
767
  for (var _x = __values(metadata.sets), _y = _x.next(); !_y.done; _y = _x.next()) {
@@ -768,12 +769,12 @@ var getName = function (metadata) {
768
769
  elements.push("Set<".concat(set.getName(), ">"));
769
770
  }
770
771
  }
771
- catch (e_25_1) { e_25 = { error: e_25_1 }; }
772
+ catch (e_23_1) { e_23 = { error: e_23_1 }; }
772
773
  finally {
773
774
  try {
774
775
  if (_y && !_y.done && (_f = _x.return)) _f.call(_x);
775
776
  }
776
- finally { if (e_25) throw e_25.error; }
777
+ finally { if (e_23) throw e_23.error; }
777
778
  }
778
779
  try {
779
780
  for (var _z = __values(metadata.maps), _0 = _z.next(); !_0.done; _0 = _z.next()) {
@@ -781,40 +782,40 @@ var getName = function (metadata) {
781
782
  elements.push("Map<".concat(map.key.getName(), ", ").concat(map.value.getName(), ">"));
782
783
  }
783
784
  }
784
- catch (e_26_1) { e_26 = { error: e_26_1 }; }
785
+ catch (e_24_1) { e_24 = { error: e_24_1 }; }
785
786
  finally {
786
787
  try {
787
788
  if (_0 && !_0.done && (_g = _z.return)) _g.call(_z);
788
789
  }
789
- finally { if (e_26) throw e_26.error; }
790
+ finally { if (e_24) throw e_24.error; }
790
791
  }
791
792
  if (metadata.rest !== null)
792
793
  elements.push("...".concat(metadata.rest.getName()));
793
794
  try {
794
795
  for (var _1 = __values(metadata.tuples), _2 = _1.next(); !_2.done; _2 = _1.next()) {
795
796
  var tuple = _2.value;
796
- elements.push(tuple.name);
797
+ elements.push(tuple.type.name);
797
798
  }
798
799
  }
799
- catch (e_27_1) { e_27 = { error: e_27_1 }; }
800
+ catch (e_25_1) { e_25 = { error: e_25_1 }; }
800
801
  finally {
801
802
  try {
802
803
  if (_2 && !_2.done && (_h = _1.return)) _h.call(_1);
803
804
  }
804
- finally { if (e_27) throw e_27.error; }
805
+ finally { if (e_25) throw e_25.error; }
805
806
  }
806
807
  try {
807
808
  for (var _3 = __values(metadata.arrays), _4 = _3.next(); !_4.done; _4 = _3.next()) {
808
809
  var array = _4.value;
809
- elements.push(array.name);
810
+ elements.push(array.getName());
810
811
  }
811
812
  }
812
- catch (e_28_1) { e_28 = { error: e_28_1 }; }
813
+ catch (e_26_1) { e_26 = { error: e_26_1 }; }
813
814
  finally {
814
815
  try {
815
816
  if (_4 && !_4.done && (_j = _3.return)) _j.call(_3);
816
817
  }
817
- finally { if (e_28) throw e_28.error; }
818
+ finally { if (e_26) throw e_26.error; }
818
819
  }
819
820
  try {
820
821
  for (var _5 = __values(metadata.objects), _6 = _5.next(); !_6.done; _6 = _5.next()) {
@@ -822,12 +823,12 @@ var getName = function (metadata) {
822
823
  elements.push(object.name);
823
824
  }
824
825
  }
825
- catch (e_29_1) { e_29 = { error: e_29_1 }; }
826
+ catch (e_27_1) { e_27 = { error: e_27_1 }; }
826
827
  finally {
827
828
  try {
828
829
  if (_6 && !_6.done && (_k = _5.return)) _k.call(_5);
829
830
  }
830
- finally { if (e_29) throw e_29.error; }
831
+ finally { if (e_27) throw e_27.error; }
831
832
  }
832
833
  try {
833
834
  for (var _7 = __values(metadata.aliases), _8 = _7.next(); !_8.done; _8 = _7.next()) {
@@ -835,12 +836,12 @@ var getName = function (metadata) {
835
836
  elements.push(alias.name);
836
837
  }
837
838
  }
838
- catch (e_30_1) { e_30 = { error: e_30_1 }; }
839
+ catch (e_28_1) { e_28 = { error: e_28_1 }; }
839
840
  finally {
840
841
  try {
841
842
  if (_8 && !_8.done && (_l = _7.return)) _l.call(_7);
842
843
  }
843
- finally { if (e_30) throw e_30.error; }
844
+ finally { if (e_28) throw e_28.error; }
844
845
  }
845
846
  if (metadata.escaped !== null)
846
847
  elements.push(metadata.escaped.getName());
@@ -851,4 +852,58 @@ var getName = function (metadata) {
851
852
  elements.sort();
852
853
  return "(".concat(elements.join(" | "), ")");
853
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
+ };
854
909
  //# sourceMappingURL=Metadata.js.map