typia 3.8.8 → 3.9.0-dev.20230603

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 (233) hide show
  1. package/lib/IRandomGenerator.d.ts +1 -0
  2. package/lib/factories/CommentFactory.js +2 -1
  3. package/lib/factories/CommentFactory.js.map +1 -1
  4. package/lib/factories/IdentifierFactory.js +2 -1
  5. package/lib/factories/IdentifierFactory.js.map +1 -1
  6. package/lib/factories/MetadataCollection.d.ts +22 -4
  7. package/lib/factories/MetadataCollection.js +121 -28
  8. package/lib/factories/MetadataCollection.js.map +1 -1
  9. package/lib/factories/MetadataFactory.d.ts +1 -0
  10. package/lib/factories/MetadataFactory.js +6 -48
  11. package/lib/factories/MetadataFactory.js.map +1 -1
  12. package/lib/factories/MetadataTagFactory.js +5 -3
  13. package/lib/factories/MetadataTagFactory.js.map +1 -1
  14. package/lib/factories/internal/metadata/emplace_metadata_array.d.ts +5 -0
  15. package/lib/factories/internal/metadata/emplace_metadata_array.js +38 -0
  16. package/lib/factories/internal/metadata/emplace_metadata_array.js.map +1 -0
  17. package/lib/factories/internal/metadata/emplace_metadata_definition.d.ts +5 -0
  18. package/lib/factories/internal/metadata/emplace_metadata_definition.js +38 -0
  19. package/lib/factories/internal/metadata/emplace_metadata_definition.js.map +1 -0
  20. package/lib/factories/internal/metadata/emplace_metadata_object.js +4 -4
  21. package/lib/factories/internal/metadata/emplace_metadata_object.js.map +1 -1
  22. package/lib/factories/internal/metadata/emplace_metadata_tuple.d.ts +5 -0
  23. package/lib/factories/internal/metadata/emplace_metadata_tuple.js +58 -0
  24. package/lib/factories/internal/metadata/emplace_metadata_tuple.js.map +1 -0
  25. package/lib/factories/internal/metadata/explore_metadata.d.ts +1 -1
  26. package/lib/factories/internal/metadata/explore_metadata.js +11 -34
  27. package/lib/factories/internal/metadata/explore_metadata.js.map +1 -1
  28. package/lib/factories/internal/metadata/iterate_metadata.d.ts +1 -1
  29. package/lib/factories/internal/metadata/iterate_metadata.js +5 -2
  30. package/lib/factories/internal/metadata/iterate_metadata.js.map +1 -1
  31. package/lib/factories/internal/metadata/iterate_metadata_array.js +4 -5
  32. package/lib/factories/internal/metadata/iterate_metadata_array.js.map +1 -1
  33. package/lib/factories/internal/metadata/iterate_metadata_collection.d.ts +2 -0
  34. package/lib/factories/internal/metadata/iterate_metadata_collection.js +151 -0
  35. package/lib/factories/internal/metadata/iterate_metadata_collection.js.map +1 -0
  36. package/lib/factories/internal/metadata/iterate_metadata_definition.d.ts +5 -0
  37. package/lib/factories/internal/metadata/iterate_metadata_definition.js +24 -0
  38. package/lib/factories/internal/metadata/iterate_metadata_definition.js.map +1 -0
  39. package/lib/factories/internal/metadata/iterate_metadata_object.js +1 -1
  40. package/lib/factories/internal/metadata/iterate_metadata_object.js.map +1 -1
  41. package/lib/factories/internal/metadata/iterate_metadata_sort.d.ts +3 -0
  42. package/lib/factories/internal/metadata/iterate_metadata_sort.js +156 -0
  43. package/lib/factories/internal/metadata/iterate_metadata_sort.js.map +1 -0
  44. package/lib/factories/internal/metadata/iterate_metadata_tuple.js +3 -26
  45. package/lib/factories/internal/metadata/iterate_metadata_tuple.js.map +1 -1
  46. package/lib/factories/internal/metadata/iterate_metadata_union.js +3 -3
  47. package/lib/factories/internal/metadata/iterate_metadata_union.js.map +1 -1
  48. package/lib/metadata/IMetadata.d.ts +3 -2
  49. package/lib/metadata/IMetadataApplication.d.ts +2 -2
  50. package/lib/metadata/IMetadataArray.d.ts +8 -0
  51. package/lib/metadata/IMetadataArray.js +3 -0
  52. package/lib/metadata/IMetadataArray.js.map +1 -0
  53. package/lib/metadata/IMetadataCollection.d.ts +10 -0
  54. package/lib/metadata/IMetadataCollection.js +3 -0
  55. package/lib/metadata/IMetadataCollection.js.map +1 -0
  56. package/lib/metadata/IMetadataDefinition.d.ts +10 -0
  57. package/lib/metadata/IMetadataDefinition.js +3 -0
  58. package/lib/metadata/IMetadataDefinition.js.map +1 -0
  59. package/lib/metadata/IMetadataDictionary.js +3 -0
  60. package/lib/metadata/IMetadataDictionary.js.map +1 -0
  61. package/lib/metadata/IMetadataObject.d.ts +3 -0
  62. package/lib/metadata/IMetadataProperty.d.ts +1 -1
  63. package/lib/metadata/IMetadataTuple.d.ts +8 -0
  64. package/lib/metadata/IMetadataTuple.js +3 -0
  65. package/lib/metadata/IMetadataTuple.js.map +1 -0
  66. package/lib/metadata/Metadata.d.ts +24 -21
  67. package/lib/metadata/Metadata.js +323 -262
  68. package/lib/metadata/Metadata.js.map +1 -1
  69. package/lib/metadata/MetadataArray.d.ts +12 -0
  70. package/lib/metadata/MetadataArray.js +36 -0
  71. package/lib/metadata/MetadataArray.js.map +1 -0
  72. package/lib/metadata/MetadataDefinition.d.ts +16 -0
  73. package/lib/metadata/MetadataDefinition.js +39 -0
  74. package/lib/metadata/MetadataDefinition.js.map +1 -0
  75. package/lib/metadata/MetadataObject.d.ts +4 -0
  76. package/lib/metadata/MetadataObject.js +3 -5
  77. package/lib/metadata/MetadataObject.js.map +1 -1
  78. package/lib/metadata/MetadataProperty.d.ts +1 -1
  79. package/lib/metadata/MetadataProperty.js +3 -3
  80. package/lib/metadata/MetadataProperty.js.map +1 -1
  81. package/lib/metadata/MetadataTuple.d.ts +12 -0
  82. package/lib/metadata/MetadataTuple.js +36 -0
  83. package/lib/metadata/MetadataTuple.js.map +1 -0
  84. package/lib/programmers/ApplicationProgrammer.js +3 -3
  85. package/lib/programmers/ApplicationProgrammer.js.map +1 -1
  86. package/lib/programmers/AssertProgrammer.js +13 -21
  87. package/lib/programmers/AssertProgrammer.js.map +1 -1
  88. package/lib/programmers/CheckerProgrammer.d.ts +6 -7
  89. package/lib/programmers/CheckerProgrammer.js +276 -185
  90. package/lib/programmers/CheckerProgrammer.js.map +1 -1
  91. package/lib/programmers/CloneProgrammer.js +312 -204
  92. package/lib/programmers/CloneProgrammer.js.map +1 -1
  93. package/lib/programmers/FeatureProgrammer.d.ts +21 -27
  94. package/lib/programmers/FeatureProgrammer.js +60 -63
  95. package/lib/programmers/FeatureProgrammer.js.map +1 -1
  96. package/lib/programmers/IsProgrammer.d.ts +3 -3
  97. package/lib/programmers/IsProgrammer.js +43 -28
  98. package/lib/programmers/IsProgrammer.js.map +1 -1
  99. package/lib/programmers/LiteralsProgrammer.js +1 -0
  100. package/lib/programmers/LiteralsProgrammer.js.map +1 -1
  101. package/lib/programmers/PruneProgrammer.js +270 -176
  102. package/lib/programmers/PruneProgrammer.js.map +1 -1
  103. package/lib/programmers/RandomProgrammer.js +124 -32
  104. package/lib/programmers/RandomProgrammer.js.map +1 -1
  105. package/lib/programmers/StringifyProgrammer.js +462 -356
  106. package/lib/programmers/StringifyProgrammer.js.map +1 -1
  107. package/lib/programmers/ValidateProgrammer.js +9 -9
  108. package/lib/programmers/ValidateProgrammer.js.map +1 -1
  109. package/lib/programmers/helpers/FunctionImporeter.d.ts +2 -0
  110. package/lib/programmers/helpers/FunctionImporeter.js +17 -2
  111. package/lib/programmers/helpers/FunctionImporeter.js.map +1 -1
  112. package/lib/programmers/helpers/RandomJoiner.d.ts +6 -1
  113. package/lib/programmers/helpers/RandomJoiner.js +11 -14
  114. package/lib/programmers/helpers/RandomJoiner.js.map +1 -1
  115. package/lib/programmers/helpers/UnionExplorer.d.ts +12 -10
  116. package/lib/programmers/helpers/UnionExplorer.js +47 -12
  117. package/lib/programmers/helpers/UnionExplorer.js.map +1 -1
  118. package/lib/programmers/helpers/UnionPredicator.js +1 -1
  119. package/lib/programmers/helpers/UnionPredicator.js.map +1 -1
  120. package/lib/programmers/helpers/disable_function_importer_declare.js +1 -0
  121. package/lib/programmers/helpers/disable_function_importer_declare.js.map +1 -1
  122. package/lib/programmers/internal/JSON_SCHEMA_PREFIX.d.ts +1 -1
  123. package/lib/programmers/internal/JSON_SCHEMA_PREFIX.js +2 -2
  124. package/lib/programmers/internal/JSON_SCHEMA_PREFIX.js.map +1 -1
  125. package/lib/programmers/internal/application_array.js +41 -21
  126. package/lib/programmers/internal/application_array.js.map +1 -1
  127. package/lib/programmers/internal/application_definition.d.ts +5 -0
  128. package/lib/programmers/internal/application_definition.js +45 -0
  129. package/lib/programmers/internal/application_definition.js.map +1 -0
  130. package/lib/programmers/internal/application_native.js +14 -11
  131. package/lib/programmers/internal/application_native.js.map +1 -1
  132. package/lib/programmers/internal/application_object.js +19 -14
  133. package/lib/programmers/internal/application_object.js.map +1 -1
  134. package/lib/programmers/internal/application_schema.js +28 -31
  135. package/lib/programmers/internal/application_schema.js.map +1 -1
  136. package/lib/programmers/internal/application_tuple.js +34 -5
  137. package/lib/programmers/internal/application_tuple.js.map +1 -1
  138. package/lib/programmers/internal/check_union_array_like.js +54 -63
  139. package/lib/programmers/internal/check_union_array_like.js.map +1 -1
  140. package/lib/programmers/internal/feature_object_entries.js +2 -2
  141. package/lib/programmers/internal/feature_object_entries.js.map +1 -1
  142. package/lib/programmers/internal/wrap_metadata_rest_tuple.d.ts +2 -0
  143. package/lib/programmers/internal/wrap_metadata_rest_tuple.js +18 -0
  144. package/lib/programmers/internal/wrap_metadata_rest_tuple.js.map +1 -0
  145. package/lib/schemas/IJsonApplication.d.ts +0 -4
  146. package/lib/schemas/IJsonComponents.d.ts +16 -4
  147. package/lib/schemas/IJsonSchema.d.ts +1 -1
  148. package/lib/transformers/CallExpressionTransformer.js.map +1 -1
  149. package/lib/transformers/FileTransformer.js +3 -3
  150. package/lib/transformers/FileTransformer.js.map +1 -1
  151. package/lib/transformers/features/miscellaneous/ApplicationTransformer.js +1 -0
  152. package/lib/transformers/features/miscellaneous/ApplicationTransformer.js.map +1 -1
  153. package/lib/transformers/features/miscellaneous/MetadataTransformer.js +2 -1
  154. package/lib/transformers/features/miscellaneous/MetadataTransformer.js.map +1 -1
  155. package/lib/utils/ArrayUtil.d.ts +1 -1
  156. package/lib/utils/ArrayUtil.js +2 -1
  157. package/lib/utils/ArrayUtil.js.map +1 -1
  158. package/lib/utils/RandomGenerator.js +2 -3
  159. package/lib/utils/RandomGenerator.js.map +1 -1
  160. package/package.json +6 -1
  161. package/src/IRandomGenerator.ts +1 -0
  162. package/src/factories/CommentFactory.ts +2 -1
  163. package/src/factories/IdentifierFactory.ts +3 -1
  164. package/src/factories/MetadataCollection.ts +173 -34
  165. package/src/factories/MetadataFactory.ts +7 -29
  166. package/src/factories/MetadataTagFactory.ts +6 -3
  167. package/src/factories/internal/metadata/emplace_metadata_array.ts +34 -0
  168. package/src/factories/internal/metadata/emplace_metadata_definition.ts +35 -0
  169. package/src/factories/internal/metadata/emplace_metadata_object.ts +4 -4
  170. package/src/factories/internal/metadata/emplace_metadata_tuple.ts +50 -0
  171. package/src/factories/internal/metadata/explore_metadata.ts +18 -44
  172. package/src/factories/internal/metadata/iterate_metadata.ts +13 -3
  173. package/src/factories/internal/metadata/iterate_metadata_array.ts +7 -11
  174. package/src/factories/internal/metadata/iterate_metadata_collection.ts +130 -0
  175. package/src/factories/internal/metadata/iterate_metadata_definition.ts +34 -0
  176. package/src/factories/internal/metadata/iterate_metadata_object.ts +1 -0
  177. package/src/factories/internal/metadata/iterate_metadata_sort.ts +68 -0
  178. package/src/factories/internal/metadata/iterate_metadata_tuple.ts +7 -31
  179. package/src/factories/internal/metadata/iterate_metadata_union.ts +13 -2
  180. package/src/metadata/IMetadata.ts +3 -2
  181. package/src/metadata/IMetadataApplication.ts +2 -2
  182. package/src/metadata/IMetadataArray.ts +10 -0
  183. package/src/metadata/IMetadataCollection.ts +11 -0
  184. package/src/metadata/IMetadataDefinition.ts +12 -0
  185. package/src/metadata/IMetadataDictionary.ts +14 -0
  186. package/src/metadata/IMetadataObject.ts +2 -13
  187. package/src/metadata/IMetadataProperty.ts +1 -1
  188. package/src/metadata/IMetadataTuple.ts +10 -0
  189. package/src/metadata/Metadata.ts +473 -134
  190. package/src/metadata/MetadataArray.ts +52 -0
  191. package/src/metadata/MetadataDefinition.ts +65 -0
  192. package/src/metadata/MetadataObject.ts +7 -20
  193. package/src/metadata/MetadataProperty.ts +5 -5
  194. package/src/metadata/MetadataTuple.ts +53 -0
  195. package/src/programmers/ApplicationProgrammer.ts +1 -2
  196. package/src/programmers/AssertProgrammer.ts +45 -39
  197. package/src/programmers/CheckerProgrammer.ts +612 -331
  198. package/src/programmers/CloneProgrammer.ts +344 -138
  199. package/src/programmers/FeatureProgrammer.ts +110 -115
  200. package/src/programmers/IsProgrammer.ts +86 -52
  201. package/src/programmers/LiteralsProgrammer.ts +1 -0
  202. package/src/programmers/PruneProgrammer.ts +304 -101
  203. package/src/programmers/RandomProgrammer.ts +227 -61
  204. package/src/programmers/StringifyProgrammer.ts +374 -182
  205. package/src/programmers/ValidateProgrammer.ts +41 -44
  206. package/src/programmers/helpers/FunctionImporeter.ts +35 -11
  207. package/src/programmers/helpers/RandomJoiner.ts +25 -13
  208. package/src/programmers/helpers/UnionExplorer.ts +76 -50
  209. package/src/programmers/helpers/UnionPredicator.ts +1 -1
  210. package/src/programmers/helpers/disable_function_importer_declare.ts +5 -0
  211. package/src/programmers/internal/JSON_SCHEMA_PREFIX.ts +1 -1
  212. package/src/programmers/internal/application_array.ts +48 -16
  213. package/src/programmers/internal/application_definition.ts +45 -0
  214. package/src/programmers/internal/application_native.ts +15 -12
  215. package/src/programmers/internal/application_object.ts +17 -12
  216. package/src/programmers/internal/application_schema.ts +31 -65
  217. package/src/programmers/internal/application_tuple.ts +63 -13
  218. package/src/programmers/internal/check_union_array_like.ts +249 -191
  219. package/src/programmers/internal/feature_object_entries.ts +2 -2
  220. package/src/programmers/internal/wrap_metadata_rest_tuple.ts +16 -0
  221. package/src/schemas/IJsonApplication.ts +0 -5
  222. package/src/schemas/IJsonComponents.ts +17 -5
  223. package/src/schemas/IJsonSchema.ts +1 -1
  224. package/src/transformers/CallExpressionTransformer.ts +2 -0
  225. package/src/transformers/FileTransformer.ts +8 -8
  226. package/src/transformers/features/miscellaneous/ApplicationTransformer.ts +1 -0
  227. package/src/transformers/features/miscellaneous/MetadataTransformer.ts +2 -1
  228. package/src/utils/ArrayUtil.ts +3 -2
  229. package/src/utils/RandomGenerator.ts +3 -3
  230. package/lib/programmers/internal/check_union_tuple.js +0 -15
  231. package/lib/programmers/internal/check_union_tuple.js.map +0 -1
  232. package/src/programmers/internal/check_union_tuple.ts +0 -33
  233. /package/lib/{programmers/internal/check_union_tuple.d.ts → metadata/IMetadataDictionary.d.ts} +0 -0
@@ -37,12 +37,15 @@ 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 Writable_1 = require("../typings/Writable");
40
41
  var ArrayUtil_1 = require("../utils/ArrayUtil");
42
+ var MetadataArray_1 = require("./MetadataArray");
43
+ var MetadataDefinition_1 = require("./MetadataDefinition");
41
44
  var MetadataObject_1 = require("./MetadataObject");
42
45
  var MetadataProperty_1 = require("./MetadataProperty");
46
+ var MetadataTuple_1 = require("./MetadataTuple");
43
47
  var Metadata = (function () {
44
48
  function Metadata(props) {
45
- this.name_ = undefined;
46
49
  this.parent_resolved_ = false;
47
50
  this.any = props.any;
48
51
  this.required = props.required;
@@ -57,6 +60,7 @@ var Metadata = (function () {
57
60
  this.arrays = props.arrays;
58
61
  this.tuples = props.tuples;
59
62
  this.objects = props.objects;
63
+ this.definitions = props.definitions;
60
64
  this.natives = props.natives;
61
65
  this.sets = props.sets;
62
66
  this.maps = props.maps;
@@ -79,6 +83,7 @@ var Metadata = (function () {
79
83
  arrays: [],
80
84
  tuples: [],
81
85
  objects: [],
86
+ definitions: [],
82
87
  rest: null,
83
88
  natives: [],
84
89
  sets: [],
@@ -101,11 +106,10 @@ var Metadata = (function () {
101
106
  }),
102
107
  resolved: this.resolved ? this.resolved.toJSON() : null,
103
108
  rest: this.rest ? this.rest.toJSON() : null,
104
- arrays: this.arrays.map(function (meta) { return meta.toJSON(); }),
105
- tuples: this.tuples.map(function (meta) {
106
- return meta.map(function (meta) { return meta.toJSON(); });
107
- }),
109
+ arrays: this.arrays.map(function (array) { return array.name; }),
110
+ tuples: this.tuples.map(function (tuple) { return tuple.name; }),
108
111
  objects: this.objects.map(function (obj) { return obj.name; }),
112
+ definitions: this.definitions.map(function (def) { return def.name; }),
109
113
  natives: this.natives.slice(),
110
114
  sets: this.sets.map(function (meta) { return meta.toJSON(); }),
111
115
  maps: this.maps.map(function (entry) { return ({
@@ -114,41 +118,86 @@ var Metadata = (function () {
114
118
  }); }),
115
119
  };
116
120
  };
117
- Metadata.from = function (meta, objects) {
118
- var e_1, _a, e_2, _b, _c;
119
- var dict = new Map();
121
+ Metadata.from = function (meta, collection) {
122
+ var e_1, _a, _b, e_2, _c, e_3, _d, e_4, _e;
123
+ var _this = this;
124
+ var dict = {
125
+ objects: new Map(collection.objects.map(function (obj) { return [
126
+ obj.name,
127
+ MetadataObject_1.MetadataObject._From_without_properties(obj),
128
+ ]; })),
129
+ definitions: new Map(collection.definitions.map(function (def) { return [
130
+ def.name,
131
+ MetadataDefinition_1.MetadataDefinition._From_without_value(def),
132
+ ]; })),
133
+ arrays: new Map(collection.arrays.map(function (arr) { return [
134
+ arr.name,
135
+ MetadataArray_1.MetadataArray._From_without_value(arr),
136
+ ]; })),
137
+ tuples: new Map(collection.tuples.map(function (tpl) { return [
138
+ tpl.name,
139
+ MetadataTuple_1.MetadataTuple._From_without_elements(tpl),
140
+ ]; })),
141
+ };
120
142
  try {
121
- for (var objects_1 = __values(objects), objects_1_1 = objects_1.next(); !objects_1_1.done; objects_1_1 = objects_1.next()) {
122
- var obj = objects_1_1.value;
123
- dict.set(obj.name, MetadataObject_1.MetadataObject._From_without_properties(obj));
143
+ for (var _f = __values(collection.objects), _g = _f.next(); !_g.done; _g = _f.next()) {
144
+ var obj = _g.value;
145
+ var initialized = dict.objects.get(obj.name);
146
+ (_b = initialized.properties).push.apply(_b, __spreadArray([], __read(obj.properties.map(function (prop) {
147
+ return MetadataProperty_1.MetadataProperty._From(prop, dict);
148
+ })), false));
124
149
  }
125
150
  }
126
151
  catch (e_1_1) { e_1 = { error: e_1_1 }; }
127
152
  finally {
128
153
  try {
129
- if (objects_1_1 && !objects_1_1.done && (_a = objects_1.return)) _a.call(objects_1);
154
+ if (_g && !_g.done && (_a = _f.return)) _a.call(_f);
130
155
  }
131
156
  finally { if (e_1) throw e_1.error; }
132
157
  }
133
158
  try {
134
- for (var objects_2 = __values(objects), objects_2_1 = objects_2.next(); !objects_2_1.done; objects_2_1 = objects_2.next()) {
135
- var obj = objects_2_1.value;
136
- var initialized = dict.get(obj.name);
137
- (_c = initialized.properties).push.apply(_c, __spreadArray([], __read(obj.properties.map(function (prop) {
138
- return MetadataProperty_1.MetadataProperty._From(prop, dict);
139
- })), false));
159
+ for (var _h = __values(collection.definitions), _j = _h.next(); !_j.done; _j = _h.next()) {
160
+ var def = _j.value;
161
+ (0, Writable_1.Writable)(dict.definitions.get(def.name)).value = this._From(def.value, dict);
140
162
  }
141
163
  }
142
164
  catch (e_2_1) { e_2 = { error: e_2_1 }; }
143
165
  finally {
144
166
  try {
145
- if (objects_2_1 && !objects_2_1.done && (_b = objects_2.return)) _b.call(objects_2);
167
+ if (_j && !_j.done && (_c = _h.return)) _c.call(_h);
146
168
  }
147
169
  finally { if (e_2) throw e_2.error; }
148
170
  }
171
+ try {
172
+ for (var _k = __values(collection.arrays), _l = _k.next(); !_l.done; _l = _k.next()) {
173
+ var array = _l.value;
174
+ (0, Writable_1.Writable)(dict.arrays.get(array.name)).value = this._From(array.value, dict);
175
+ }
176
+ }
177
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
178
+ finally {
179
+ try {
180
+ if (_l && !_l.done && (_d = _k.return)) _d.call(_k);
181
+ }
182
+ finally { if (e_3) throw e_3.error; }
183
+ }
184
+ try {
185
+ for (var _m = __values(collection.tuples), _o = _m.next(); !_o.done; _o = _m.next()) {
186
+ var tuple = _o.value;
187
+ (0, Writable_1.Writable)(dict.tuples.get(tuple.name)).elements =
188
+ tuple.elements.map(function (elem) { return _this._From(elem, dict); });
189
+ }
190
+ }
191
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
192
+ finally {
193
+ try {
194
+ if (_o && !_o.done && (_e = _m.return)) _e.call(_m);
195
+ }
196
+ finally { if (e_4) throw e_4.error; }
197
+ }
149
198
  return this._From(meta, dict);
150
199
  };
151
- Metadata._From = function (meta, objects) {
200
+ Metadata._From = function (meta, dict) {
152
201
  var _this = this;
153
202
  return this.create({
154
203
  any: meta.any,
@@ -159,30 +208,45 @@ var Metadata = (function () {
159
208
  constants: JSON.parse(JSON.stringify(meta.constants)),
160
209
  atomics: meta.atomics.slice(),
161
210
  templates: meta.templates.map(function (tpl) {
162
- return tpl.map(function (meta) { return _this._From(meta, objects); });
211
+ return tpl.map(function (meta) { return _this._From(meta, dict); });
163
212
  }),
164
- resolved: meta.resolved ? this._From(meta.resolved, objects) : null,
165
- rest: meta.rest ? this._From(meta.rest, objects) : null,
166
- arrays: meta.arrays.map(function (meta) { return _this._From(meta, objects); }),
167
- tuples: meta.tuples.map(function (tuple) {
168
- return tuple.map(function (meta) { return _this._From(meta, objects); });
213
+ resolved: meta.resolved ? this._From(meta.resolved, dict) : null,
214
+ rest: meta.rest ? this._From(meta.rest, dict) : null,
215
+ arrays: meta.arrays.map(function (id) {
216
+ var array = dict.arrays.get(id);
217
+ if (array === undefined)
218
+ throw new Error("Error on Metadata.from(): failed to find array \"".concat(id, "\"."));
219
+ return array;
220
+ }),
221
+ tuples: meta.tuples.map(function (id) {
222
+ var tuple = dict.tuples.get(id);
223
+ if (tuple === undefined)
224
+ throw new Error("Error on Metadata.from(): failed to find tuple \"".concat(id, "\"."));
225
+ return tuple;
169
226
  }),
170
227
  objects: meta.objects.map(function (name) {
171
- var found = objects.get(name);
228
+ var found = dict.objects.get(name);
172
229
  if (found === undefined)
173
230
  throw new Error("Error on Metadata.from(): failed to find object \"".concat(name, "\"."));
174
231
  return found;
175
232
  }),
233
+ definitions: meta.definitions.map(function (def) {
234
+ var found = dict.definitions.get(def);
235
+ if (found === undefined)
236
+ throw new Error("Error on Metadata.from(): failed to find definition \"".concat(def, "\"."));
237
+ return found;
238
+ }),
176
239
  natives: meta.natives.slice(),
177
- sets: meta.sets.map(function (meta) { return _this._From(meta, objects); }),
240
+ sets: meta.sets.map(function (meta) { return _this._From(meta, dict); }),
178
241
  maps: meta.maps.map(function (entry) { return ({
179
- key: _this._From(entry.key, objects),
180
- value: _this._From(entry.value, objects),
242
+ key: _this._From(entry.key, dict),
243
+ value: _this._From(entry.value, dict),
181
244
  }); }),
182
245
  });
183
246
  };
184
247
  Metadata.prototype.getName = function () {
185
- this.name_ || (this.name_ = getName(this));
248
+ var _a;
249
+ (_a = this.name_) !== null && _a !== void 0 ? _a : (this.name_ = getName(this));
186
250
  return this.name_;
187
251
  };
188
252
  Metadata.prototype.empty = function () {
@@ -191,18 +255,19 @@ var Metadata = (function () {
191
255
  Metadata.prototype.size = function () {
192
256
  return ((this.resolved ? 1 : 0) +
193
257
  (this.functional ? 1 : 0) +
258
+ (this.rest ? this.rest.size() : 0) +
194
259
  this.templates.length +
195
260
  this.atomics.length +
196
261
  this.constants
197
262
  .map(function (c) { return c.values.length; })
198
263
  .reduce(function (x, y) { return x + y; }, 0) +
199
- (this.rest ? this.rest.size() : 0) +
200
264
  this.arrays.length +
201
265
  this.tuples.length +
202
- this.objects.length +
203
266
  this.natives.length +
267
+ this.maps.length +
204
268
  this.sets.length +
205
- this.maps.length);
269
+ this.objects.length +
270
+ this.definitions.length);
206
271
  };
207
272
  Metadata.prototype.bucket = function () {
208
273
  return ((this.resolved ? 1 : 0) +
@@ -213,10 +278,11 @@ var Metadata = (function () {
213
278
  (this.rest ? this.rest.size() : 0) +
214
279
  (this.arrays.length ? 1 : 0) +
215
280
  (this.tuples.length ? 1 : 0) +
216
- (this.objects.length ? 1 : 0) +
217
281
  (this.natives.length ? 1 : 0) +
218
282
  (this.sets.length ? 1 : 0) +
219
- (this.maps.length ? 1 : 0));
283
+ (this.maps.length ? 1 : 0) +
284
+ (this.objects.length ? 1 : 0) +
285
+ (this.definitions.length ? 1 : 0));
220
286
  };
221
287
  Metadata.prototype.isConstant = function () {
222
288
  return this.bucket() === (this.constants.length ? 1 : 0);
@@ -245,126 +311,39 @@ var Metadata = (function () {
245
311
  }());
246
312
  exports.Metadata = Metadata;
247
313
  (function (Metadata) {
248
- Metadata.intersects = function (x, y, deep) {
249
- var e_3, _a, e_4, _b, e_5, _c, e_6, _d, e_7, _e, e_8, _f, e_9, _g, e_10, _h;
314
+ Metadata.intersects = function (x, y) {
315
+ var e_5, _a, e_6, _b;
250
316
  if (x.any || y.any)
251
317
  return true;
252
318
  if (x.required === false && false === y.required)
253
319
  return true;
254
320
  if (x.nullable === true && true === y.nullable)
255
321
  return true;
256
- if (deep === true) {
257
- try {
258
- for (var _j = __values(x.arrays), _k = _j.next(); !_k.done; _k = _j.next()) {
259
- var xa = _k.value;
260
- try {
261
- for (var _l = (e_4 = void 0, __values(y.arrays)), _m = _l.next(); !_m.done; _m = _l.next()) {
262
- var ya = _m.value;
263
- if (Metadata.intersects(xa, ya, deep)) {
264
- return true;
265
- }
266
- }
267
- }
268
- catch (e_4_1) { e_4 = { error: e_4_1 }; }
269
- finally {
270
- try {
271
- if (_m && !_m.done && (_b = _l.return)) _b.call(_l);
272
- }
273
- finally { if (e_4) throw e_4.error; }
274
- }
275
- }
276
- }
277
- catch (e_3_1) { e_3 = { error: e_3_1 }; }
278
- finally {
279
- try {
280
- if (_k && !_k.done && (_a = _j.return)) _a.call(_j);
281
- }
282
- finally { if (e_3) throw e_3.error; }
283
- }
284
- try {
285
- for (var _o = __values(x.objects), _p = _o.next(); !_p.done; _p = _o.next()) {
286
- var xo = _p.value;
287
- try {
288
- for (var _q = (e_6 = void 0, __values(y.objects)), _r = _q.next(); !_r.done; _r = _q.next()) {
289
- var yo = _r.value;
290
- if (MetadataObject_1.MetadataObject.intersects(xo, yo)) {
291
- return true;
292
- }
293
- }
294
- }
295
- catch (e_6_1) { e_6 = { error: e_6_1 }; }
296
- finally {
297
- try {
298
- if (_r && !_r.done && (_d = _q.return)) _d.call(_q);
299
- }
300
- finally { if (e_6) throw e_6.error; }
301
- }
302
- }
303
- }
304
- catch (e_5_1) { e_5 = { error: e_5_1 }; }
305
- finally {
306
- try {
307
- if (_p && !_p.done && (_c = _o.return)) _c.call(_o);
308
- }
309
- finally { if (e_5) throw e_5.error; }
310
- }
311
- }
312
- else {
313
- if (x.arrays.length && y.arrays.length)
314
- return true;
315
- if (x.objects.length && y.objects.length)
316
- return true;
317
- }
318
- try {
319
- for (var _s = __values(x.tuples), _t = _s.next(); !_t.done; _t = _s.next()) {
320
- var xt = _t.value;
321
- var _loop_1 = function (yt) {
322
- if (xt.length === 0 || yt.length === 0)
323
- return { value: xt.length === 0 && yt.length === 0 };
324
- else if (xt
325
- .slice(0, Math.min(xt.length, yt.length))
326
- .some(function (xv, i) { return Metadata.intersects(xv, yt[i], deep); }))
327
- return { value: true };
328
- };
329
- try {
330
- for (var _u = (e_8 = void 0, __values(y.tuples)), _v = _u.next(); !_v.done; _v = _u.next()) {
331
- var yt = _v.value;
332
- var state_1 = _loop_1(yt);
333
- if (typeof state_1 === "object")
334
- return state_1.value;
335
- }
336
- }
337
- catch (e_8_1) { e_8 = { error: e_8_1 }; }
338
- finally {
339
- try {
340
- if (_v && !_v.done && (_f = _u.return)) _f.call(_u);
341
- }
342
- finally { if (e_8) throw e_8.error; }
343
- }
344
- }
345
- }
346
- catch (e_7_1) { e_7 = { error: e_7_1 }; }
347
- finally {
348
- try {
349
- if (_t && !_t.done && (_e = _s.return)) _e.call(_s);
350
- }
351
- finally { if (e_7) throw e_7.error; }
352
- }
322
+ if (x.functional === true && y.functional === true)
323
+ return true;
324
+ if (x.arrays.length && y.arrays.length)
325
+ return true;
326
+ if (x.tuples.length && y.tuples.length)
327
+ return true;
328
+ if (x.objects.length && y.objects.length)
329
+ return true;
330
+ if (x.definitions.length && y.definitions.length)
331
+ return true;
353
332
  try {
354
- for (var _w = __values(x.atomics), _x = _w.next(); !_x.done; _x = _w.next()) {
355
- var atomic = _x.value;
333
+ for (var _c = __values(x.atomics), _d = _c.next(); !_d.done; _d = _c.next()) {
334
+ var atomic = _d.value;
356
335
  if (y.atomics.includes(atomic))
357
336
  return true;
358
337
  }
359
338
  }
360
- catch (e_9_1) { e_9 = { error: e_9_1 }; }
339
+ catch (e_5_1) { e_5 = { error: e_5_1 }; }
361
340
  finally {
362
341
  try {
363
- if (_x && !_x.done && (_g = _w.return)) _g.call(_w);
342
+ if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
364
343
  }
365
- finally { if (e_9) throw e_9.error; }
344
+ finally { if (e_5) throw e_5.error; }
366
345
  }
367
- var _loop_2 = function (constant) {
346
+ var _loop_1 = function (constant) {
368
347
  var opposite = y.constants.find(function (elem) { return elem.type === constant.type; });
369
348
  if (opposite === undefined)
370
349
  return "continue";
@@ -373,115 +352,161 @@ exports.Metadata = Metadata;
373
352
  return { value: true };
374
353
  };
375
354
  try {
376
- for (var _y = __values(x.constants), _z = _y.next(); !_z.done; _z = _y.next()) {
377
- var constant = _z.value;
378
- var state_2 = _loop_2(constant);
379
- if (typeof state_2 === "object")
380
- return state_2.value;
355
+ for (var _e = __values(x.constants), _f = _e.next(); !_f.done; _f = _e.next()) {
356
+ var constant = _f.value;
357
+ var state_1 = _loop_1(constant);
358
+ if (typeof state_1 === "object")
359
+ return state_1.value;
381
360
  }
382
361
  }
383
- catch (e_10_1) { e_10 = { error: e_10_1 }; }
362
+ catch (e_6_1) { e_6 = { error: e_6_1 }; }
384
363
  finally {
385
364
  try {
386
- if (_z && !_z.done && (_h = _y.return)) _h.call(_y);
365
+ if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
387
366
  }
388
- finally { if (e_10) throw e_10.error; }
367
+ finally { if (e_6) throw e_6.error; }
389
368
  }
390
- if (x.functional === true && y.functional === true)
391
- return true;
392
369
  return false;
393
370
  };
394
- Metadata.covers = function (x, y) {
395
- var e_11, _a, e_12, _b, e_13, _c, e_14, _d, e_15, _e;
396
- if (x.any)
371
+ Metadata.covers = function (x, y, level) {
372
+ var e_7, _a, e_8, _b, e_9, _c, e_10, _d, e_11, _e, e_12, _f, e_13, _g;
373
+ if (level === void 0) { level = 0; }
374
+ if (x === y)
375
+ return false;
376
+ else if (x.any)
397
377
  return true;
398
378
  else if (y.any)
399
379
  return false;
400
- var _loop_3 = function (ya) {
401
- if (x.arrays.some(function (xa) { return Metadata.covers(xa, ya) === true; }) === false)
402
- return { value: false };
403
- };
404
- try {
405
- for (var _f = __values(y.arrays), _g = _f.next(); !_g.done; _g = _f.next()) {
406
- var ya = _g.value;
407
- var state_3 = _loop_3(ya);
408
- if (typeof state_3 === "object")
409
- return state_3.value;
380
+ if (level === 0) {
381
+ var _loop_2 = function (ya) {
382
+ if (!x.arrays.some(function (xa) {
383
+ return Metadata.covers(xa.value, ya.value, level + 1);
384
+ })) {
385
+ return { value: false };
386
+ }
387
+ };
388
+ try {
389
+ for (var _h = __values(y.arrays), _j = _h.next(); !_j.done; _j = _h.next()) {
390
+ var ya = _j.value;
391
+ var state_2 = _loop_2(ya);
392
+ if (typeof state_2 === "object")
393
+ return state_2.value;
394
+ }
410
395
  }
411
- }
412
- catch (e_11_1) { e_11 = { error: e_11_1 }; }
413
- finally {
396
+ catch (e_7_1) { e_7 = { error: e_7_1 }; }
397
+ finally {
398
+ try {
399
+ if (_j && !_j.done && (_a = _h.return)) _a.call(_h);
400
+ }
401
+ finally { if (e_7) throw e_7.error; }
402
+ }
403
+ var _loop_3 = function (yt) {
404
+ if (yt.elements.length !== 0 &&
405
+ x.tuples.some(function (xt) {
406
+ return xt.elements.length >= yt.elements.length &&
407
+ xt.elements
408
+ .slice(yt.elements.length)
409
+ .every(function (xv, i) {
410
+ return Metadata.covers(xv, yt.elements[i], level + 1);
411
+ });
412
+ }) === false)
413
+ return { value: false };
414
+ };
414
415
  try {
415
- if (_g && !_g.done && (_a = _f.return)) _a.call(_f);
416
+ for (var _k = __values(y.tuples), _l = _k.next(); !_l.done; _l = _k.next()) {
417
+ var yt = _l.value;
418
+ var state_3 = _loop_3(yt);
419
+ if (typeof state_3 === "object")
420
+ return state_3.value;
421
+ }
422
+ }
423
+ catch (e_8_1) { e_8 = { error: e_8_1 }; }
424
+ finally {
425
+ try {
426
+ if (_l && !_l.done && (_b = _k.return)) _b.call(_k);
427
+ }
428
+ finally { if (e_8) throw e_8.error; }
416
429
  }
417
- finally { if (e_11) throw e_11.error; }
418
430
  }
419
431
  var _loop_4 = function (yo) {
420
432
  if (x.objects.some(function (xo) { return MetadataObject_1.MetadataObject.covers(xo, yo); }) === false)
421
433
  return { value: false };
422
434
  };
423
435
  try {
424
- for (var _h = __values(y.objects), _j = _h.next(); !_j.done; _j = _h.next()) {
425
- var yo = _j.value;
436
+ for (var _m = __values(y.objects), _o = _m.next(); !_o.done; _o = _m.next()) {
437
+ var yo = _o.value;
426
438
  var state_4 = _loop_4(yo);
427
439
  if (typeof state_4 === "object")
428
440
  return state_4.value;
429
441
  }
430
442
  }
431
- catch (e_12_1) { e_12 = { error: e_12_1 }; }
443
+ catch (e_9_1) { e_9 = { error: e_9_1 }; }
432
444
  finally {
433
445
  try {
434
- if (_j && !_j.done && (_b = _h.return)) _b.call(_h);
446
+ if (_o && !_o.done && (_c = _m.return)) _c.call(_m);
435
447
  }
436
- finally { if (e_12) throw e_12.error; }
448
+ finally { if (e_9) throw e_9.error; }
437
449
  }
438
- var _loop_5 = function (yt) {
439
- if (yt.length !== 0 &&
440
- x.tuples.some(function (xt) {
441
- return xt.length >= yt.length &&
442
- xt
443
- .slice(yt.length)
444
- .every(function (xv, i) { return Metadata.covers(xv, yt[i]); });
445
- }) === false)
450
+ var _loop_5 = function (yd) {
451
+ if (x.definitions.some(function (xd) { return xd.name === yd.name; }) === false)
446
452
  return { value: false };
447
453
  };
448
454
  try {
449
- for (var _k = __values(y.tuples), _l = _k.next(); !_l.done; _l = _k.next()) {
450
- var yt = _l.value;
451
- var state_5 = _loop_5(yt);
455
+ for (var _p = __values(y.definitions), _q = _p.next(); !_q.done; _q = _p.next()) {
456
+ var yd = _q.value;
457
+ var state_5 = _loop_5(yd);
452
458
  if (typeof state_5 === "object")
453
459
  return state_5.value;
454
460
  }
455
461
  }
456
- catch (e_13_1) { e_13 = { error: e_13_1 }; }
462
+ catch (e_10_1) { e_10 = { error: e_10_1 }; }
457
463
  finally {
458
464
  try {
459
- if (_l && !_l.done && (_c = _k.return)) _c.call(_k);
465
+ if (_q && !_q.done && (_d = _p.return)) _d.call(_p);
460
466
  }
461
- finally { if (e_13) throw e_13.error; }
467
+ finally { if (e_10) throw e_10.error; }
462
468
  }
463
- var _loop_6 = function (ys) {
464
- if (x.sets.some(function (xs) { return Metadata.covers(xs, ys); }) === false)
469
+ var _loop_6 = function (yn) {
470
+ if (x.natives.some(function (xn) { return xn === yn; }) === false)
465
471
  return { value: false };
466
472
  };
467
473
  try {
468
- for (var _m = __values(y.sets), _o = _m.next(); !_o.done; _o = _m.next()) {
469
- var ys = _o.value;
470
- var state_6 = _loop_6(ys);
474
+ for (var _r = __values(y.natives), _s = _r.next(); !_s.done; _s = _r.next()) {
475
+ var yn = _s.value;
476
+ var state_6 = _loop_6(yn);
471
477
  if (typeof state_6 === "object")
472
478
  return state_6.value;
473
479
  }
474
480
  }
475
- catch (e_14_1) { e_14 = { error: e_14_1 }; }
481
+ catch (e_11_1) { e_11 = { error: e_11_1 }; }
476
482
  finally {
477
483
  try {
478
- if (_o && !_o.done && (_d = _m.return)) _d.call(_m);
484
+ if (_s && !_s.done && (_e = _r.return)) _e.call(_r);
479
485
  }
480
- finally { if (e_14) throw e_14.error; }
486
+ finally { if (e_11) throw e_11.error; }
487
+ }
488
+ var _loop_7 = function (ys) {
489
+ if (x.sets.some(function (xs) { return Metadata.covers(xs, ys); }) === false)
490
+ return { value: false };
491
+ };
492
+ try {
493
+ for (var _t = __values(y.sets), _u = _t.next(); !_u.done; _u = _t.next()) {
494
+ var ys = _u.value;
495
+ var state_7 = _loop_7(ys);
496
+ if (typeof state_7 === "object")
497
+ return state_7.value;
498
+ }
499
+ }
500
+ catch (e_12_1) { e_12 = { error: e_12_1 }; }
501
+ finally {
502
+ try {
503
+ if (_u && !_u.done && (_f = _t.return)) _f.call(_t);
504
+ }
505
+ finally { if (e_12) throw e_12.error; }
481
506
  }
482
507
  if (y.atomics.some(function (atomic) { return x.atomics.includes(atomic) === false; }))
483
508
  return false;
484
- var _loop_7 = function (yc) {
509
+ var _loop_8 = function (yc) {
485
510
  var xc = x.constants.find(function (elem) { return elem.type === yc.type; });
486
511
  if (xc === undefined)
487
512
  return { value: false };
@@ -489,27 +514,27 @@ exports.Metadata = Metadata;
489
514
  return { value: false };
490
515
  };
491
516
  try {
492
- for (var _p = __values(y.constants), _q = _p.next(); !_q.done; _q = _p.next()) {
493
- var yc = _q.value;
494
- var state_7 = _loop_7(yc);
495
- if (typeof state_7 === "object")
496
- return state_7.value;
517
+ for (var _v = __values(y.constants), _w = _v.next(); !_w.done; _w = _v.next()) {
518
+ var yc = _w.value;
519
+ var state_8 = _loop_8(yc);
520
+ if (typeof state_8 === "object")
521
+ return state_8.value;
497
522
  }
498
523
  }
499
- catch (e_15_1) { e_15 = { error: e_15_1 }; }
524
+ catch (e_13_1) { e_13 = { error: e_13_1 }; }
500
525
  finally {
501
526
  try {
502
- if (_q && !_q.done && (_e = _p.return)) _e.call(_p);
527
+ if (_w && !_w.done && (_g = _v.return)) _g.call(_v);
503
528
  }
504
- finally { if (e_15) throw e_15.error; }
529
+ finally { if (e_13) throw e_13.error; }
505
530
  }
506
531
  if (x.functional === false && y.functional)
507
532
  return false;
508
533
  return true;
509
534
  };
510
535
  Metadata.merge = function (x, y) {
511
- var e_16, _a, e_17, _b, e_18, _c;
512
- var _d;
536
+ var e_14, _a, e_15, _b, e_16, _c, e_17, _d, e_18, _e;
537
+ var _f;
513
538
  var output = Metadata.create({
514
539
  any: x.any || y.any,
515
540
  nullable: x.nullable || y.nullable,
@@ -524,83 +549,106 @@ exports.Metadata = Metadata;
524
549
  templates: x.templates.slice(),
525
550
  rest: x.rest !== null && y.rest !== null
526
551
  ? Metadata.merge(x.rest, y.rest)
527
- : (_d = x.rest) !== null && _d !== void 0 ? _d : y.rest,
552
+ : (_f = x.rest) !== null && _f !== void 0 ? _f : y.rest,
528
553
  arrays: x.arrays.slice(),
529
554
  tuples: x.tuples.slice(),
530
555
  objects: x.objects.slice(),
556
+ definitions: x.definitions.slice(),
531
557
  natives: __spreadArray([], __read(new Set(__spreadArray(__spreadArray([], __read(x.natives), false), __read(y.natives), false))), false),
532
558
  sets: x.sets.slice(),
533
559
  maps: x.maps.slice(),
534
560
  });
535
- var _loop_8 = function (constant) {
536
- var e_19, _l;
561
+ var _loop_9 = function (constant) {
562
+ var e_19, _s;
537
563
  var target = ArrayUtil_1.ArrayUtil.take(output.constants, function (elem) { return elem.type === constant.type; }, function () { return ({
538
564
  type: constant.type,
539
565
  values: [],
540
566
  }); });
541
567
  try {
542
- for (var _m = (e_19 = void 0, __values(constant.values)), _o = _m.next(); !_o.done; _o = _m.next()) {
543
- var value = _o.value;
568
+ for (var _t = (e_19 = void 0, __values(constant.values)), _u = _t.next(); !_u.done; _u = _t.next()) {
569
+ var value = _u.value;
544
570
  ArrayUtil_1.ArrayUtil.add(target.values, value);
545
571
  }
546
572
  }
547
573
  catch (e_19_1) { e_19 = { error: e_19_1 }; }
548
574
  finally {
549
575
  try {
550
- if (_o && !_o.done && (_l = _m.return)) _l.call(_m);
576
+ if (_u && !_u.done && (_s = _t.return)) _s.call(_t);
551
577
  }
552
578
  finally { if (e_19) throw e_19.error; }
553
579
  }
554
580
  };
555
581
  try {
556
- for (var _e = __values(y.constants), _f = _e.next(); !_f.done; _f = _e.next()) {
557
- var constant = _f.value;
558
- _loop_8(constant);
582
+ for (var _g = __values(y.constants), _h = _g.next(); !_h.done; _h = _g.next()) {
583
+ var constant = _h.value;
584
+ _loop_9(constant);
585
+ }
586
+ }
587
+ catch (e_14_1) { e_14 = { error: e_14_1 }; }
588
+ finally {
589
+ try {
590
+ if (_h && !_h.done && (_a = _g.return)) _a.call(_g);
591
+ }
592
+ finally { if (e_14) throw e_14.error; }
593
+ }
594
+ try {
595
+ for (var _j = __values(y.arrays), _k = _j.next(); !_k.done; _k = _j.next()) {
596
+ var array = _k.value;
597
+ ArrayUtil_1.ArrayUtil.set(output.arrays, array, function (elem) { return elem.name; });
598
+ }
599
+ }
600
+ catch (e_15_1) { e_15 = { error: e_15_1 }; }
601
+ finally {
602
+ try {
603
+ if (_k && !_k.done && (_b = _j.return)) _b.call(_j);
604
+ }
605
+ finally { if (e_15) throw e_15.error; }
606
+ }
607
+ try {
608
+ for (var _l = __values(y.tuples), _m = _l.next(); !_m.done; _m = _l.next()) {
609
+ var tuple = _m.value;
610
+ ArrayUtil_1.ArrayUtil.set(output.tuples, tuple, function (elem) { return elem.name; });
559
611
  }
560
612
  }
561
613
  catch (e_16_1) { e_16 = { error: e_16_1 }; }
562
614
  finally {
563
615
  try {
564
- if (_f && !_f.done && (_a = _e.return)) _a.call(_e);
616
+ if (_m && !_m.done && (_c = _l.return)) _c.call(_l);
565
617
  }
566
618
  finally { if (e_16) throw e_16.error; }
567
619
  }
568
620
  try {
569
- for (var _g = __values(y.arrays), _h = _g.next(); !_h.done; _h = _g.next()) {
570
- var array = _h.value;
571
- ArrayUtil_1.ArrayUtil.set(output.arrays, array, function (elem) { return elem.getName(); });
621
+ for (var _o = __values(y.objects), _p = _o.next(); !_p.done; _p = _o.next()) {
622
+ var obj = _p.value;
623
+ ArrayUtil_1.ArrayUtil.set(output.objects, obj, function (elem) { return elem.name; });
572
624
  }
573
625
  }
574
626
  catch (e_17_1) { e_17 = { error: e_17_1 }; }
575
627
  finally {
576
628
  try {
577
- if (_h && !_h.done && (_b = _g.return)) _b.call(_g);
629
+ if (_p && !_p.done && (_d = _o.return)) _d.call(_o);
578
630
  }
579
631
  finally { if (e_17) throw e_17.error; }
580
632
  }
581
633
  try {
582
- for (var _j = __values(y.objects), _k = _j.next(); !_k.done; _k = _j.next()) {
583
- var obj = _k.value;
584
- ArrayUtil_1.ArrayUtil.set(output.objects, obj, function (elem) { return elem.name; });
634
+ for (var _q = __values(y.definitions), _r = _q.next(); !_r.done; _r = _q.next()) {
635
+ var def = _r.value;
636
+ ArrayUtil_1.ArrayUtil.set(output.definitions, def, function (elem) { return elem.name; });
585
637
  }
586
638
  }
587
639
  catch (e_18_1) { e_18 = { error: e_18_1 }; }
588
640
  finally {
589
641
  try {
590
- if (_k && !_k.done && (_c = _j.return)) _c.call(_j);
642
+ if (_r && !_r.done && (_e = _q.return)) _e.call(_q);
591
643
  }
592
644
  finally { if (e_18) throw e_18.error; }
593
645
  }
594
- if (x.rest !== null)
595
- ArrayUtil_1.ArrayUtil.set(output.arrays, x.rest, function (elem) { return elem.getName(); });
596
- if (y.rest !== null)
597
- ArrayUtil_1.ArrayUtil.set(output.arrays, y.rest, function (elem) { return elem.getName(); });
598
646
  return output;
599
647
  };
600
648
  })(Metadata = exports.Metadata || (exports.Metadata = {}));
601
649
  exports.Metadata = Metadata;
602
650
  var getName = function (metadata) {
603
- 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;
651
+ 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;
604
652
  if (metadata.any === true)
605
653
  return "any";
606
654
  var elements = [];
@@ -609,31 +657,31 @@ var getName = function (metadata) {
609
657
  if (metadata.required === false)
610
658
  elements.push("undefined");
611
659
  try {
612
- for (var _l = __values(metadata.atomics), _m = _l.next(); !_m.done; _m = _l.next()) {
613
- var type = _m.value;
660
+ for (var _m = __values(metadata.atomics), _o = _m.next(); !_o.done; _o = _m.next()) {
661
+ var type = _o.value;
614
662
  elements.push(type);
615
663
  }
616
664
  }
617
665
  catch (e_20_1) { e_20 = { error: e_20_1 }; }
618
666
  finally {
619
667
  try {
620
- if (_m && !_m.done && (_a = _l.return)) _a.call(_l);
668
+ if (_o && !_o.done && (_a = _m.return)) _a.call(_m);
621
669
  }
622
670
  finally { if (e_20) throw e_20.error; }
623
671
  }
624
672
  try {
625
- for (var _o = __values(metadata.constants), _p = _o.next(); !_p.done; _p = _o.next()) {
626
- var constant = _p.value;
673
+ for (var _p = __values(metadata.constants), _q = _p.next(); !_q.done; _q = _p.next()) {
674
+ var constant = _q.value;
627
675
  try {
628
- for (var _q = (e_22 = void 0, __values(constant.values)), _r = _q.next(); !_r.done; _r = _q.next()) {
629
- var value = _r.value;
676
+ for (var _r = (e_22 = void 0, __values(constant.values)), _s = _r.next(); !_s.done; _s = _r.next()) {
677
+ var value = _s.value;
630
678
  elements.push(JSON.stringify(value));
631
679
  }
632
680
  }
633
681
  catch (e_22_1) { e_22 = { error: e_22_1 }; }
634
682
  finally {
635
683
  try {
636
- if (_r && !_r.done && (_c = _q.return)) _c.call(_q);
684
+ if (_s && !_s.done && (_c = _r.return)) _c.call(_r);
637
685
  }
638
686
  finally { if (e_22) throw e_22.error; }
639
687
  }
@@ -642,13 +690,13 @@ var getName = function (metadata) {
642
690
  catch (e_21_1) { e_21 = { error: e_21_1 }; }
643
691
  finally {
644
692
  try {
645
- if (_p && !_p.done && (_b = _o.return)) _b.call(_o);
693
+ if (_q && !_q.done && (_b = _p.return)) _b.call(_p);
646
694
  }
647
695
  finally { if (e_21) throw e_21.error; }
648
696
  }
649
697
  try {
650
- for (var _s = __values(metadata.templates), _t = _s.next(); !_t.done; _t = _s.next()) {
651
- var template = _t.value;
698
+ for (var _t = __values(metadata.templates), _u = _t.next(); !_u.done; _u = _t.next()) {
699
+ var template = _u.value;
652
700
  elements.push("`" +
653
701
  template
654
702
  .map(function (child) {
@@ -665,90 +713,103 @@ var getName = function (metadata) {
665
713
  catch (e_23_1) { e_23 = { error: e_23_1 }; }
666
714
  finally {
667
715
  try {
668
- if (_t && !_t.done && (_d = _s.return)) _d.call(_s);
716
+ if (_u && !_u.done && (_d = _t.return)) _d.call(_t);
669
717
  }
670
718
  finally { if (e_23) throw e_23.error; }
671
719
  }
672
720
  try {
673
- for (var _u = __values(metadata.natives), _v = _u.next(); !_v.done; _v = _u.next()) {
674
- var native = _v.value;
721
+ for (var _v = __values(metadata.natives), _w = _v.next(); !_w.done; _w = _v.next()) {
722
+ var native = _w.value;
675
723
  elements.push(native);
676
724
  }
677
725
  }
678
726
  catch (e_24_1) { e_24 = { error: e_24_1 }; }
679
727
  finally {
680
728
  try {
681
- if (_v && !_v.done && (_e = _u.return)) _e.call(_u);
729
+ if (_w && !_w.done && (_e = _v.return)) _e.call(_v);
682
730
  }
683
731
  finally { if (e_24) throw e_24.error; }
684
732
  }
685
733
  try {
686
- for (var _w = __values(metadata.sets), _x = _w.next(); !_x.done; _x = _w.next()) {
687
- var set = _x.value;
734
+ for (var _x = __values(metadata.sets), _y = _x.next(); !_y.done; _y = _x.next()) {
735
+ var set = _y.value;
688
736
  elements.push("Set<".concat(set.getName(), ">"));
689
737
  }
690
738
  }
691
739
  catch (e_25_1) { e_25 = { error: e_25_1 }; }
692
740
  finally {
693
741
  try {
694
- if (_x && !_x.done && (_f = _w.return)) _f.call(_w);
742
+ if (_y && !_y.done && (_f = _x.return)) _f.call(_x);
695
743
  }
696
744
  finally { if (e_25) throw e_25.error; }
697
745
  }
698
746
  try {
699
- for (var _y = __values(metadata.maps), _z = _y.next(); !_z.done; _z = _y.next()) {
700
- var map = _z.value;
747
+ for (var _z = __values(metadata.maps), _0 = _z.next(); !_0.done; _0 = _z.next()) {
748
+ var map = _0.value;
701
749
  elements.push("Map<".concat(map.key.getName(), ", ").concat(map.value.getName(), ">"));
702
750
  }
703
751
  }
704
752
  catch (e_26_1) { e_26 = { error: e_26_1 }; }
705
753
  finally {
706
754
  try {
707
- if (_z && !_z.done && (_g = _y.return)) _g.call(_y);
755
+ if (_0 && !_0.done && (_g = _z.return)) _g.call(_z);
708
756
  }
709
757
  finally { if (e_26) throw e_26.error; }
710
758
  }
711
759
  if (metadata.rest !== null)
712
760
  elements.push("...".concat(metadata.rest.getName()));
713
761
  try {
714
- for (var _0 = __values(metadata.tuples), _1 = _0.next(); !_1.done; _1 = _0.next()) {
715
- var tuple = _1.value;
716
- elements.push("[".concat(tuple.map(function (elem) { return elem.getName(); }).join(", "), "]"));
762
+ for (var _1 = __values(metadata.tuples), _2 = _1.next(); !_2.done; _2 = _1.next()) {
763
+ var tuple = _2.value;
764
+ elements.push(tuple.name);
717
765
  }
718
766
  }
719
767
  catch (e_27_1) { e_27 = { error: e_27_1 }; }
720
768
  finally {
721
769
  try {
722
- if (_1 && !_1.done && (_h = _0.return)) _h.call(_0);
770
+ if (_2 && !_2.done && (_h = _1.return)) _h.call(_1);
723
771
  }
724
772
  finally { if (e_27) throw e_27.error; }
725
773
  }
726
774
  try {
727
- for (var _2 = __values(metadata.arrays), _3 = _2.next(); !_3.done; _3 = _2.next()) {
728
- var array = _3.value;
729
- elements.push("Array<".concat(array.getName(), ">"));
775
+ for (var _3 = __values(metadata.arrays), _4 = _3.next(); !_4.done; _4 = _3.next()) {
776
+ var array = _4.value;
777
+ elements.push(array.name);
730
778
  }
731
779
  }
732
780
  catch (e_28_1) { e_28 = { error: e_28_1 }; }
733
781
  finally {
734
782
  try {
735
- if (_3 && !_3.done && (_j = _2.return)) _j.call(_2);
783
+ if (_4 && !_4.done && (_j = _3.return)) _j.call(_3);
736
784
  }
737
785
  finally { if (e_28) throw e_28.error; }
738
786
  }
739
787
  try {
740
- for (var _4 = __values(metadata.objects), _5 = _4.next(); !_5.done; _5 = _4.next()) {
741
- var object = _5.value;
788
+ for (var _5 = __values(metadata.objects), _6 = _5.next(); !_6.done; _6 = _5.next()) {
789
+ var object = _6.value;
742
790
  elements.push(object.name);
743
791
  }
744
792
  }
745
793
  catch (e_29_1) { e_29 = { error: e_29_1 }; }
746
794
  finally {
747
795
  try {
748
- if (_5 && !_5.done && (_k = _4.return)) _k.call(_4);
796
+ if (_6 && !_6.done && (_k = _5.return)) _k.call(_5);
749
797
  }
750
798
  finally { if (e_29) throw e_29.error; }
751
799
  }
800
+ try {
801
+ for (var _7 = __values(metadata.definitions), _8 = _7.next(); !_8.done; _8 = _7.next()) {
802
+ var def = _8.value;
803
+ elements.push(def.name);
804
+ }
805
+ }
806
+ catch (e_30_1) { e_30 = { error: e_30_1 }; }
807
+ finally {
808
+ try {
809
+ if (_8 && !_8.done && (_l = _7.return)) _l.call(_7);
810
+ }
811
+ finally { if (e_30) throw e_30.error; }
812
+ }
752
813
  if (metadata.resolved !== null)
753
814
  elements.push(metadata.resolved.getName());
754
815
  if (elements.length === 0)