ts2famix 2.0.0 → 2.0.3

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 (212) hide show
  1. package/LICENSE +1 -0
  2. package/README.md +29 -60
  3. package/dist/analyze.js +1 -1
  4. package/dist/analyze_functions/process_functions.js +49 -43
  5. package/dist/famix_functions/EntityDictionary.js +309 -182
  6. package/dist/famix_functions/helpers_creation.js +36 -5
  7. package/dist/fqn.js +76 -114
  8. package/dist/lib/famix/famix_JSON_exporter.js +55 -0
  9. package/dist/lib/famix/famix_base_element.js +18 -0
  10. package/dist/lib/famix/famix_repository.js +224 -0
  11. package/dist/lib/famix/{src/index.js → index.js} +1 -1
  12. package/dist/lib/famix/model/famix/access.js +40 -0
  13. package/dist/lib/famix/model/famix/accessor.js +17 -0
  14. package/dist/lib/famix/model/famix/alias.js +33 -0
  15. package/dist/lib/famix/model/famix/arrow_function.js +17 -0
  16. package/dist/lib/famix/model/famix/behavioral_entity.js +79 -0
  17. package/dist/lib/famix/model/famix/class.js +71 -0
  18. package/dist/lib/famix/model/famix/comment.js +39 -0
  19. package/dist/lib/famix/model/famix/concretisation.js +31 -0
  20. package/dist/lib/famix/model/famix/container_entity.js +126 -0
  21. package/dist/lib/famix/model/famix/decorator.js +32 -0
  22. package/dist/lib/famix/model/famix/entity.js +17 -0
  23. package/dist/lib/famix/model/famix/enum.js +31 -0
  24. package/dist/lib/famix/model/famix/enum_value.js +25 -0
  25. package/dist/lib/famix/model/famix/function.js +17 -0
  26. package/dist/lib/famix/model/famix/import_clause.js +41 -0
  27. package/dist/lib/famix/{src/model → model}/famix/index.js +6 -10
  28. package/dist/lib/famix/model/famix/indexed_file_anchor.js +38 -0
  29. package/dist/lib/famix/model/famix/inheritance.js +33 -0
  30. package/dist/lib/famix/model/famix/interface.js +64 -0
  31. package/dist/lib/famix/model/famix/invocation.js +54 -0
  32. package/dist/lib/famix/model/famix/method.js +67 -0
  33. package/dist/lib/famix/model/famix/module.js +60 -0
  34. package/dist/lib/famix/model/famix/named_entity.js +78 -0
  35. package/dist/lib/famix/model/famix/parameter.js +25 -0
  36. package/dist/lib/famix/model/famix/parameter_concretisation.js +44 -0
  37. package/dist/lib/famix/model/famix/parameter_type.js +45 -0
  38. package/dist/lib/famix/model/famix/parametric_arrow_function.js +31 -0
  39. package/dist/lib/famix/model/famix/parametric_class.js +44 -0
  40. package/dist/lib/famix/model/famix/parametric_function.js +31 -0
  41. package/dist/lib/famix/model/famix/parametric_interface.js +44 -0
  42. package/dist/lib/famix/model/famix/parametric_method.js +31 -0
  43. package/dist/lib/famix/model/famix/primitive_type.js +17 -0
  44. package/dist/lib/famix/model/famix/property.js +73 -0
  45. package/dist/lib/famix/model/famix/reference.js +33 -0
  46. package/dist/lib/famix/model/famix/scoping_entity.js +36 -0
  47. package/dist/lib/famix/model/famix/script_entity.js +29 -0
  48. package/dist/lib/famix/model/famix/source_anchor.js +27 -0
  49. package/dist/lib/famix/model/famix/source_language.js +35 -0
  50. package/dist/lib/famix/model/famix/sourced_entity.js +60 -0
  51. package/dist/lib/famix/model/famix/structural_entity.js +39 -0
  52. package/dist/lib/famix/model/famix/type.js +73 -0
  53. package/dist/lib/famix/model/famix/variable.js +24 -0
  54. package/dist/lib/ts-complex/cyclomatic-service.js +2 -2
  55. package/dist/refactorer/refactor-getter-setter.js +142 -0
  56. package/dist/ts2famix-cli-wrapper.js +29 -3
  57. package/dist/ts2famix-cli.js +1 -1
  58. package/doc-uml/famix-typescript-model.puml +390 -341
  59. package/doc-uml/famix-typescript-model.svg +1 -1
  60. package/package.json +26 -9
  61. package/src/analyze.ts +2 -2
  62. package/src/analyze_functions/process_functions.ts +49 -44
  63. package/src/famix_functions/EntityDictionary.ts +345 -216
  64. package/src/famix_functions/helpers_creation.ts +36 -4
  65. package/src/fqn.ts +76 -125
  66. package/src/lib/famix/famix_JSON_exporter.ts +56 -0
  67. package/src/lib/famix/famix_base_element.ts +22 -0
  68. package/src/lib/famix/famix_repository.ts +243 -0
  69. package/src/lib/famix/model/famix/access.ts +50 -0
  70. package/src/lib/famix/model/famix/alias.ts +39 -0
  71. package/src/lib/famix/model/famix/behavioral_entity.ts +97 -0
  72. package/src/lib/famix/model/famix/class.ts +85 -0
  73. package/src/lib/famix/model/famix/comment.ts +47 -0
  74. package/src/lib/famix/model/famix/concretisation.ts +40 -0
  75. package/src/lib/famix/model/famix/container_entity.ts +160 -0
  76. package/src/lib/famix/model/famix/decorator.ts +37 -0
  77. package/src/lib/famix/model/famix/enum.ts +30 -0
  78. package/src/lib/famix/model/famix/enum_value.ts +28 -0
  79. package/src/lib/famix/model/famix/import_clause.ts +51 -0
  80. package/src/lib/famix/{src/model → model}/famix/index.ts +2 -4
  81. package/src/lib/famix/model/famix/indexed_file_anchor.ts +46 -0
  82. package/src/lib/famix/model/famix/inheritance.ts +40 -0
  83. package/src/lib/famix/model/famix/interface.ts +75 -0
  84. package/src/lib/famix/model/famix/invocation.ts +65 -0
  85. package/src/lib/famix/model/famix/method.ts +89 -0
  86. package/src/lib/famix/model/famix/module.ts +71 -0
  87. package/src/lib/famix/model/famix/named_entity.ts +95 -0
  88. package/src/lib/famix/{src/model → model}/famix/parameter.ts +11 -12
  89. package/src/lib/famix/model/famix/parameter_concretisation.ts +51 -0
  90. package/src/lib/famix/model/famix/parameter_type.ts +58 -0
  91. package/src/lib/famix/model/famix/parametric_arrow_function.ts +32 -0
  92. package/src/lib/famix/model/famix/parametric_class.ts +49 -0
  93. package/src/lib/famix/model/famix/parametric_function.ts +32 -0
  94. package/src/lib/famix/model/famix/parametric_interface.ts +49 -0
  95. package/src/lib/famix/model/famix/parametric_method.ts +32 -0
  96. package/src/lib/famix/model/famix/primitive_type.ts +15 -0
  97. package/src/lib/famix/model/famix/property.ts +94 -0
  98. package/src/lib/famix/model/famix/reference.ts +40 -0
  99. package/src/lib/famix/model/famix/scoping_entity.ts +35 -0
  100. package/src/lib/famix/model/famix/script_entity.ts +34 -0
  101. package/src/lib/famix/model/famix/source_anchor.ts +30 -0
  102. package/src/lib/famix/model/famix/source_language.ts +35 -0
  103. package/src/lib/famix/model/famix/sourced_entity.ts +70 -0
  104. package/src/lib/famix/model/famix/structural_entity.ts +43 -0
  105. package/src/lib/famix/model/famix/type.ts +87 -0
  106. package/src/lib/famix/model/famix/variable.ts +27 -0
  107. package/src/lib/famix/package.json +1 -1
  108. package/src/lib/ts-complex/cyclomatic-service.ts +10 -10
  109. package/src/refactorer/refactor-getter-setter.ts +140 -0
  110. package/src/ts2famix-cli-wrapper.ts +6 -2
  111. package/src/ts2famix-cli.ts +1 -1
  112. package/tsconfig.check-tests.json +14 -0
  113. package/tsconfig.json +70 -68
  114. package/dist/famix2puml.js +0 -126
  115. package/dist/lib/famix/src/famix_JSON_exporter.js +0 -55
  116. package/dist/lib/famix/src/famix_base_element.js +0 -18
  117. package/dist/lib/famix/src/famix_repository.js +0 -223
  118. package/dist/lib/famix/src/model/famix/access.js +0 -40
  119. package/dist/lib/famix/src/model/famix/accessor.js +0 -17
  120. package/dist/lib/famix/src/model/famix/alias.js +0 -33
  121. package/dist/lib/famix/src/model/famix/arrowFunction.js +0 -17
  122. package/dist/lib/famix/src/model/famix/behavioral_entity.js +0 -79
  123. package/dist/lib/famix/src/model/famix/class.js +0 -71
  124. package/dist/lib/famix/src/model/famix/comment.js +0 -39
  125. package/dist/lib/famix/src/model/famix/concretisation.js +0 -31
  126. package/dist/lib/famix/src/model/famix/container_entity.js +0 -126
  127. package/dist/lib/famix/src/model/famix/decorator.js +0 -32
  128. package/dist/lib/famix/src/model/famix/entity.js +0 -17
  129. package/dist/lib/famix/src/model/famix/enum.js +0 -31
  130. package/dist/lib/famix/src/model/famix/enum_value.js +0 -25
  131. package/dist/lib/famix/src/model/famix/function.js +0 -17
  132. package/dist/lib/famix/src/model/famix/implicit_variable.js +0 -17
  133. package/dist/lib/famix/src/model/famix/import_clause.js +0 -41
  134. package/dist/lib/famix/src/model/famix/indexed_file_anchor.js +0 -52
  135. package/dist/lib/famix/src/model/famix/inheritance.js +0 -33
  136. package/dist/lib/famix/src/model/famix/interface.js +0 -64
  137. package/dist/lib/famix/src/model/famix/invocation.js +0 -54
  138. package/dist/lib/famix/src/model/famix/method.js +0 -67
  139. package/dist/lib/famix/src/model/famix/module.js +0 -84
  140. package/dist/lib/famix/src/model/famix/named_entity.js +0 -78
  141. package/dist/lib/famix/src/model/famix/parameter.js +0 -25
  142. package/dist/lib/famix/src/model/famix/parameterConcretisation.js +0 -44
  143. package/dist/lib/famix/src/model/famix/parameter_type.js +0 -45
  144. package/dist/lib/famix/src/model/famix/parametric_arrow_function.js +0 -31
  145. package/dist/lib/famix/src/model/famix/parametric_class.js +0 -44
  146. package/dist/lib/famix/src/model/famix/parametric_function.js +0 -31
  147. package/dist/lib/famix/src/model/famix/parametric_interface.js +0 -44
  148. package/dist/lib/famix/src/model/famix/parametric_method.js +0 -31
  149. package/dist/lib/famix/src/model/famix/primitive_type.js +0 -17
  150. package/dist/lib/famix/src/model/famix/property.js +0 -126
  151. package/dist/lib/famix/src/model/famix/reference.js +0 -33
  152. package/dist/lib/famix/src/model/famix/scoping_entity.js +0 -37
  153. package/dist/lib/famix/src/model/famix/script_entity.js +0 -29
  154. package/dist/lib/famix/src/model/famix/source_anchor.js +0 -27
  155. package/dist/lib/famix/src/model/famix/source_language.js +0 -35
  156. package/dist/lib/famix/src/model/famix/sourced_entity.js +0 -60
  157. package/dist/lib/famix/src/model/famix/structural_entity.js +0 -39
  158. package/dist/lib/famix/src/model/famix/text_anchor.js +0 -38
  159. package/dist/lib/famix/src/model/famix/type.js +0 -73
  160. package/dist/lib/famix/src/model/famix/variable.js +0 -24
  161. package/jest.config-old.ts +0 -199
  162. package/src/famix2puml.ts +0 -119
  163. package/src/lib/famix/package-lock.json +0 -301
  164. package/src/lib/famix/readme.md +0 -5
  165. package/src/lib/famix/src/famix_JSON_exporter.ts +0 -56
  166. package/src/lib/famix/src/famix_base_element.ts +0 -22
  167. package/src/lib/famix/src/famix_repository.ts +0 -243
  168. package/src/lib/famix/src/model/famix/access.ts +0 -53
  169. package/src/lib/famix/src/model/famix/alias.ts +0 -41
  170. package/src/lib/famix/src/model/famix/behavioral_entity.ts +0 -100
  171. package/src/lib/famix/src/model/famix/class.ts +0 -86
  172. package/src/lib/famix/src/model/famix/comment.ts +0 -50
  173. package/src/lib/famix/src/model/famix/concretisation.ts +0 -42
  174. package/src/lib/famix/src/model/famix/container_entity.ts +0 -165
  175. package/src/lib/famix/src/model/famix/decorator.ts +0 -39
  176. package/src/lib/famix/src/model/famix/enum.ts +0 -31
  177. package/src/lib/famix/src/model/famix/enum_value.ts +0 -29
  178. package/src/lib/famix/src/model/famix/implicit_variable.ts +0 -15
  179. package/src/lib/famix/src/model/famix/import_clause.ts +0 -54
  180. package/src/lib/famix/src/model/famix/indexed_file_anchor.ts +0 -71
  181. package/src/lib/famix/src/model/famix/inheritance.ts +0 -41
  182. package/src/lib/famix/src/model/famix/interface.ts +0 -75
  183. package/src/lib/famix/src/model/famix/invocation.ts +0 -68
  184. package/src/lib/famix/src/model/famix/method.ts +0 -96
  185. package/src/lib/famix/src/model/famix/module.ts +0 -97
  186. package/src/lib/famix/src/model/famix/named_entity.ts +0 -98
  187. package/src/lib/famix/src/model/famix/parameterConcretisation.ts +0 -54
  188. package/src/lib/famix/src/model/famix/parameter_type.ts +0 -60
  189. package/src/lib/famix/src/model/famix/parametric_arrow_function.ts +0 -32
  190. package/src/lib/famix/src/model/famix/parametric_class.ts +0 -49
  191. package/src/lib/famix/src/model/famix/parametric_function.ts +0 -32
  192. package/src/lib/famix/src/model/famix/parametric_interface.ts +0 -49
  193. package/src/lib/famix/src/model/famix/parametric_method.ts +0 -32
  194. package/src/lib/famix/src/model/famix/primitive_type.ts +0 -15
  195. package/src/lib/famix/src/model/famix/property.ts +0 -152
  196. package/src/lib/famix/src/model/famix/reference.ts +0 -42
  197. package/src/lib/famix/src/model/famix/scoping_entity.ts +0 -36
  198. package/src/lib/famix/src/model/famix/script_entity.ts +0 -36
  199. package/src/lib/famix/src/model/famix/source_anchor.ts +0 -31
  200. package/src/lib/famix/src/model/famix/source_language.ts +0 -36
  201. package/src/lib/famix/src/model/famix/sourced_entity.ts +0 -73
  202. package/src/lib/famix/src/model/famix/structural_entity.ts +0 -44
  203. package/src/lib/famix/src/model/famix/text_anchor.ts +0 -49
  204. package/src/lib/famix/src/model/famix/type.ts +0 -89
  205. package/src/lib/famix/src/model/famix/variable.ts +0 -28
  206. package/src/lib/famix/tsconfig.json +0 -27
  207. package/src/lib/famix/tslint.json +0 -15
  208. /package/src/lib/famix/{src/index.ts → index.ts} +0 -0
  209. /package/src/lib/famix/{src/model → model}/famix/accessor.ts +0 -0
  210. /package/src/lib/famix/{src/model/famix/arrowFunction.ts → model/famix/arrow_function.ts} +0 -0
  211. /package/src/lib/famix/{src/model → model}/famix/entity.ts +0 -0
  212. /package/src/lib/famix/{src/model → model}/famix/function.ts +0 -0
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ParametricMethod = void 0;
4
+ const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
5
+ const method_1 = require("./method");
6
+ class ParametricMethod extends method_1.Method {
7
+ constructor() {
8
+ super(...arguments);
9
+ this._concreteParameters = new Set();
10
+ }
11
+ addConcreteParameter(concreteParameter) {
12
+ if (!this._concreteParameters.has(concreteParameter)) {
13
+ this._concreteParameters.add(concreteParameter);
14
+ }
15
+ }
16
+ getJSON() {
17
+ const json = new famix_JSON_exporter_1.FamixJSONExporter("ParametricMethod", this);
18
+ this.addPropertiesToExporter(json);
19
+ return json.getJSON();
20
+ }
21
+ addPropertiesToExporter(exporter) {
22
+ super.addPropertiesToExporter(exporter);
23
+ exporter.addProperty("genericParameters", this.genericParameters);
24
+ exporter.addProperty("concreteParameters", this.concreteParameters);
25
+ }
26
+ get concreteParameters() {
27
+ return this._concreteParameters;
28
+ }
29
+ }
30
+ exports.ParametricMethod = ParametricMethod;
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldHJpY19tZXRob2QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ZhbWl4L21vZGVsL2ZhbWl4L3BhcmFtZXRyaWNfbWV0aG9kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1FQUE4RDtBQUc5RCxxQ0FBa0M7QUFHbEMsTUFBYSxnQkFBaUIsU0FBUSxlQUFNO0lBQTVDOztRQUVZLHdCQUFtQixHQUEyQyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBdUJwRixDQUFDO0lBckJVLG9CQUFvQixDQUFDLGlCQUFvRDtRQUM1RSxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7WUFDbkQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3BELENBQUM7SUFDTCxDQUFDO0lBRU0sT0FBTztRQUNWLE1BQU0sSUFBSSxHQUFzQixJQUFJLHVDQUFpQixDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2hGLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU0sdUJBQXVCLENBQUMsUUFBMkI7UUFDdEQsS0FBSyxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hDLFFBQVEsQ0FBQyxXQUFXLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDbEUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsSUFBSSxrQkFBa0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDcEMsQ0FBQztDQUNKO0FBekJELDRDQXlCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZhbWl4SlNPTkV4cG9ydGVyIH0gZnJvbSBcIi4uLy4uL2ZhbWl4X0pTT05fZXhwb3J0ZXJcIjtcbmltcG9ydCB7IENsYXNzIH0gZnJvbSBcIi4vY2xhc3NcIjtcbmltcG9ydCB7IEludGVyZmFjZSB9IGZyb20gXCIuL2ludGVyZmFjZVwiO1xuaW1wb3J0IHsgTWV0aG9kIH0gZnJvbSBcIi4vbWV0aG9kXCI7XG5pbXBvcnQgeyBQcmltaXRpdmVUeXBlIH0gZnJvbSBcIi4vcHJpbWl0aXZlX3R5cGVcIjtcblxuZXhwb3J0IGNsYXNzIFBhcmFtZXRyaWNNZXRob2QgZXh0ZW5kcyBNZXRob2Qge1xuXG4gICAgcHJpdmF0ZSBfY29uY3JldGVQYXJhbWV0ZXJzOiBTZXQ8UHJpbWl0aXZlVHlwZSB8IENsYXNzIHwgSW50ZXJmYWNlPiA9IG5ldyBTZXQoKTtcblxuICAgIHB1YmxpYyBhZGRDb25jcmV0ZVBhcmFtZXRlcihjb25jcmV0ZVBhcmFtZXRlcjogUHJpbWl0aXZlVHlwZSB8IENsYXNzIHwgSW50ZXJmYWNlKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5fY29uY3JldGVQYXJhbWV0ZXJzLmhhcyhjb25jcmV0ZVBhcmFtZXRlcikpIHtcbiAgICAgICAgICAgIHRoaXMuX2NvbmNyZXRlUGFyYW1ldGVycy5hZGQoY29uY3JldGVQYXJhbWV0ZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldEpTT04oKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QganNvbjogRmFtaXhKU09ORXhwb3J0ZXIgPSBuZXcgRmFtaXhKU09ORXhwb3J0ZXIoXCJQYXJhbWV0cmljTWV0aG9kXCIsIHRoaXMpO1xuICAgICAgICB0aGlzLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGpzb24pO1xuICAgICAgICByZXR1cm4ganNvbi5nZXRKU09OKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyOiBGYW1peEpTT05FeHBvcnRlcik6IHZvaWQge1xuICAgICAgICBzdXBlci5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcik7XG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwiZ2VuZXJpY1BhcmFtZXRlcnNcIiwgdGhpcy5nZW5lcmljUGFyYW1ldGVycyk7XG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwiY29uY3JldGVQYXJhbWV0ZXJzXCIsIHRoaXMuY29uY3JldGVQYXJhbWV0ZXJzKTtcbiAgICB9XG5cbiAgICBnZXQgY29uY3JldGVQYXJhbWV0ZXJzKCk6IFNldDxQcmltaXRpdmVUeXBlIHwgQ2xhc3MgfCBJbnRlcmZhY2U+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbmNyZXRlUGFyYW1ldGVycztcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PrimitiveType = void 0;
4
+ const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
5
+ const type_1 = require("./type");
6
+ class PrimitiveType extends type_1.Type {
7
+ getJSON() {
8
+ const json = new famix_JSON_exporter_1.FamixJSONExporter("PrimitiveType", this);
9
+ this.addPropertiesToExporter(json);
10
+ return json.getJSON();
11
+ }
12
+ addPropertiesToExporter(exporter) {
13
+ super.addPropertiesToExporter(exporter);
14
+ }
15
+ }
16
+ exports.PrimitiveType = PrimitiveType;
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbWl0aXZlX3R5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ZhbWl4L21vZGVsL2ZhbWl4L3ByaW1pdGl2ZV90eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1FQUE4RDtBQUM5RCxpQ0FBOEI7QUFFOUIsTUFBYSxhQUFjLFNBQVEsV0FBSTtJQUU1QixPQUFPO1FBQ1YsTUFBTSxJQUFJLEdBQXNCLElBQUksdUNBQWlCLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzdFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU0sdUJBQXVCLENBQUMsUUFBMkI7UUFDdEQsS0FBSyxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzVDLENBQUM7Q0FDSjtBQVhELHNDQVdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmFtaXhKU09ORXhwb3J0ZXIgfSBmcm9tIFwiLi4vLi4vZmFtaXhfSlNPTl9leHBvcnRlclwiO1xuaW1wb3J0IHsgVHlwZSB9IGZyb20gXCIuL3R5cGVcIjtcblxuZXhwb3J0IGNsYXNzIFByaW1pdGl2ZVR5cGUgZXh0ZW5kcyBUeXBlIHtcblxuICAgIHB1YmxpYyBnZXRKU09OKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGpzb246IEZhbWl4SlNPTkV4cG9ydGVyID0gbmV3IEZhbWl4SlNPTkV4cG9ydGVyKFwiUHJpbWl0aXZlVHlwZVwiLCB0aGlzKTtcbiAgICAgICAgdGhpcy5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihqc29uKTtcbiAgICAgICAgcmV0dXJuIGpzb24uZ2V0SlNPTigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcjogRmFtaXhKU09ORXhwb3J0ZXIpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoZXhwb3J0ZXIpO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Property = void 0;
4
+ const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
5
+ const structural_entity_1 = require("./structural_entity");
6
+ class Property extends structural_entity_1.StructuralEntity {
7
+ constructor() {
8
+ super(...arguments);
9
+ this._isClassSide = false;
10
+ this._readOnly = false;
11
+ this._visibility = "";
12
+ }
13
+ get readOnly() {
14
+ return this._readOnly;
15
+ }
16
+ set readOnly(value) {
17
+ this._readOnly = value;
18
+ }
19
+ get isDefinitelyAssigned() {
20
+ return this._isDefinitelyAssigned;
21
+ }
22
+ set isDefinitelyAssigned(value) {
23
+ this._isDefinitelyAssigned = value;
24
+ }
25
+ get isOptional() {
26
+ return this._isOptional;
27
+ }
28
+ set isOptional(value) {
29
+ this._isOptional = value;
30
+ }
31
+ get isJavaScriptPrivate() {
32
+ return this._isJavaScriptPrivate;
33
+ }
34
+ set isJavaScriptPrivate(value) {
35
+ this._isJavaScriptPrivate = value;
36
+ }
37
+ get visibility() {
38
+ return this._visibility;
39
+ }
40
+ set visibility(value) {
41
+ this._visibility = value;
42
+ }
43
+ getJSON() {
44
+ const json = new famix_JSON_exporter_1.FamixJSONExporter("Property", this);
45
+ this.addPropertiesToExporter(json);
46
+ return json.getJSON();
47
+ }
48
+ addPropertiesToExporter(exporter) {
49
+ super.addPropertiesToExporter(exporter);
50
+ exporter.addProperty("readOnly", this.readOnly);
51
+ exporter.addProperty("isClassSide", this.isClassSide);
52
+ exporter.addProperty("parentType", this.parentEntity);
53
+ exporter.addProperty("visibility", this.visibility);
54
+ exporter.addProperty("isDefinitelyAssigned", this.isDefinitelyAssigned);
55
+ exporter.addProperty("isOptional", this.isOptional);
56
+ exporter.addProperty("isJavaScriptPrivate", this.isJavaScriptPrivate);
57
+ }
58
+ get isClassSide() {
59
+ return this._isClassSide;
60
+ }
61
+ set isClassSide(isClassSide) {
62
+ this._isClassSide = isClassSide;
63
+ }
64
+ get parentEntity() {
65
+ return this._parentEntity;
66
+ }
67
+ set parentEntity(parentEntity) {
68
+ this._parentEntity = parentEntity;
69
+ parentEntity.addProperty(this);
70
+ }
71
+ }
72
+ exports.Property = Property;
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ZhbWl4L21vZGVsL2ZhbWl4L3Byb3BlcnR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1FQUE4RDtBQUc5RCwyREFBdUQ7QUFJdkQsTUFBYSxRQUFTLFNBQVEsb0NBQWdCO0lBQTlDOztRQUVZLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBUzlCLGNBQVMsR0FBWSxLQUFLLENBQUM7UUF3QzNCLGdCQUFXLEdBQW9CLEVBQUUsQ0FBQztJQW1DOUMsQ0FBQztJQWxGRyxJQUFXLFFBQVE7UUFDZixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQVcsUUFBUSxDQUFDLEtBQWM7UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUlELElBQVcsb0JBQW9CO1FBQzNCLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUFXLG9CQUFvQixDQUFDLEtBQWM7UUFDMUMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEtBQUssQ0FBQztJQUN2QyxDQUFDO0lBRUQsSUFBVyxVQUFVO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBVyxVQUFVLENBQUMsS0FBYztRQUNoQyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBVyxtQkFBbUI7UUFDMUIsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUM7SUFDckMsQ0FBQztJQUVELElBQVcsbUJBQW1CLENBQUMsS0FBYztRQUN6QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO0lBQ3RDLENBQUM7SUFPRCxJQUFXLFVBQVU7UUFDakIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFXLFVBQVUsQ0FBQyxLQUFzQjtRQUN4QyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztJQUM3QixDQUFDO0lBSU0sT0FBTztRQUNWLE1BQU0sSUFBSSxHQUFzQixJQUFJLHVDQUFpQixDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN4RSxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVNLHVCQUF1QixDQUFDLFFBQTJCO1FBQ3RELEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4QyxRQUFRLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEQsUUFBUSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3RELFFBQVEsQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN0RCxRQUFRLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDcEQsUUFBUSxDQUFDLFdBQVcsQ0FBQyxzQkFBc0IsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUN4RSxRQUFRLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDcEQsUUFBUSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ1gsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFJLFdBQVcsQ0FBQyxXQUFvQjtRQUNoQyxJQUFJLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQztJQUNwQyxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ1osT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJLFlBQVksQ0FBQyxZQUErQjtRQUM1QyxJQUFJLENBQUMsYUFBYSxHQUFHLFlBQVksQ0FBQztRQUNsQyxZQUFZLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUM7Q0FDSjtBQXRGRCw0QkFzRkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGYW1peEpTT05FeHBvcnRlciB9IGZyb20gXCIuLi8uLi9mYW1peF9KU09OX2V4cG9ydGVyXCI7XG5pbXBvcnQgeyBDbGFzcyB9IGZyb20gXCIuL2NsYXNzXCI7XG5pbXBvcnQgeyBJbnRlcmZhY2UgfSBmcm9tIFwiLi9pbnRlcmZhY2VcIjtcbmltcG9ydCB7IFN0cnVjdHVyYWxFbnRpdHkgfSBmcm9tIFwiLi9zdHJ1Y3R1cmFsX2VudGl0eVwiO1xuXG5leHBvcnQgdHlwZSBWaXNpYmlsaXR5VHlwZXMgPSBcInB1YmxpY1wiIHwgXCJwcml2YXRlXCIgfCBcInByb3RlY3RlZFwiIHwgXCJcIjtcblxuZXhwb3J0IGNsYXNzIFByb3BlcnR5IGV4dGVuZHMgU3RydWN0dXJhbEVudGl0eSB7XG5cbiAgICBwcml2YXRlIF9pc0NsYXNzU2lkZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgcHVibGljIGdldCByZWFkT25seSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlYWRPbmx5O1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgcmVhZE9ubHkodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fcmVhZE9ubHkgPSB2YWx1ZTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfcmVhZE9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwcml2YXRlIF9wYXJlbnRFbnRpdHkhOiBDbGFzcyB8IEludGVyZmFjZTtcblxuICAgIHB1YmxpYyBnZXQgaXNEZWZpbml0ZWx5QXNzaWduZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0RlZmluaXRlbHlBc3NpZ25lZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IGlzRGVmaW5pdGVseUFzc2lnbmVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2lzRGVmaW5pdGVseUFzc2lnbmVkID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpc09wdGlvbmFsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNPcHRpb25hbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IGlzT3B0aW9uYWwodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5faXNPcHRpb25hbCA9IHZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaXNKYXZhU2NyaXB0UHJpdmF0ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzSmF2YVNjcmlwdFByaXZhdGU7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCBpc0phdmFTY3JpcHRQcml2YXRlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2lzSmF2YVNjcmlwdFByaXZhdGUgPSB2YWx1ZTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNEZWZpbml0ZWx5QXNzaWduZWQhOiBib29sZWFuO1xuXG4gICAgcHJpdmF0ZSBfaXNPcHRpb25hbCE6IGJvb2xlYW47XG5cbiAgICBwcml2YXRlIF9pc0phdmFTY3JpcHRQcml2YXRlITogYm9vbGVhbjtcblxuICAgIHB1YmxpYyBnZXQgdmlzaWJpbGl0eSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Zpc2liaWxpdHk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCB2aXNpYmlsaXR5KHZhbHVlOiBWaXNpYmlsaXR5VHlwZXMpIHtcbiAgICAgICAgdGhpcy5fdmlzaWJpbGl0eSA9IHZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3Zpc2liaWxpdHk6IFZpc2liaWxpdHlUeXBlcyA9IFwiXCI7XG5cbiAgICBwdWJsaWMgZ2V0SlNPTigpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBqc29uOiBGYW1peEpTT05FeHBvcnRlciA9IG5ldyBGYW1peEpTT05FeHBvcnRlcihcIlByb3BlcnR5XCIsIHRoaXMpO1xuICAgICAgICB0aGlzLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGpzb24pO1xuICAgICAgICByZXR1cm4ganNvbi5nZXRKU09OKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyOiBGYW1peEpTT05FeHBvcnRlcik6IHZvaWQge1xuICAgICAgICBzdXBlci5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcik7XG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwicmVhZE9ubHlcIiwgdGhpcy5yZWFkT25seSk7XG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwiaXNDbGFzc1NpZGVcIiwgdGhpcy5pc0NsYXNzU2lkZSk7XG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwicGFyZW50VHlwZVwiLCB0aGlzLnBhcmVudEVudGl0eSk7XG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwidmlzaWJpbGl0eVwiLCB0aGlzLnZpc2liaWxpdHkpO1xuICAgICAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcImlzRGVmaW5pdGVseUFzc2lnbmVkXCIsIHRoaXMuaXNEZWZpbml0ZWx5QXNzaWduZWQpO1xuICAgICAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcImlzT3B0aW9uYWxcIiwgdGhpcy5pc09wdGlvbmFsKTtcbiAgICAgICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJpc0phdmFTY3JpcHRQcml2YXRlXCIsIHRoaXMuaXNKYXZhU2NyaXB0UHJpdmF0ZSk7XG4gICAgfVxuXG4gICAgZ2V0IGlzQ2xhc3NTaWRlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNDbGFzc1NpZGU7XG4gICAgfVxuXG4gICAgc2V0IGlzQ2xhc3NTaWRlKGlzQ2xhc3NTaWRlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2lzQ2xhc3NTaWRlID0gaXNDbGFzc1NpZGU7XG4gICAgfVxuXG4gICAgZ2V0IHBhcmVudEVudGl0eSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BhcmVudEVudGl0eTtcbiAgICB9XG5cbiAgICBzZXQgcGFyZW50RW50aXR5KHBhcmVudEVudGl0eTogQ2xhc3MgfCBJbnRlcmZhY2UpIHtcbiAgICAgICAgdGhpcy5fcGFyZW50RW50aXR5ID0gcGFyZW50RW50aXR5O1xuICAgICAgICBwYXJlbnRFbnRpdHkuYWRkUHJvcGVydHkodGhpcyk7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Reference = void 0;
4
+ const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
5
+ const entity_1 = require("./entity");
6
+ class Reference extends entity_1.Entity {
7
+ getJSON() {
8
+ const json = new famix_JSON_exporter_1.FamixJSONExporter("Reference", this);
9
+ this.addPropertiesToExporter(json);
10
+ return json.getJSON();
11
+ }
12
+ addPropertiesToExporter(exporter) {
13
+ super.addPropertiesToExporter(exporter);
14
+ exporter.addProperty("source", this.source);
15
+ exporter.addProperty("target", this.target);
16
+ }
17
+ get source() {
18
+ return this._source;
19
+ }
20
+ set source(source) {
21
+ this._source = source;
22
+ source.addOutgoingReference(this);
23
+ }
24
+ get target() {
25
+ return this._target;
26
+ }
27
+ set target(target) {
28
+ this._target = target;
29
+ target.addIncomingReference(this);
30
+ }
31
+ }
32
+ exports.Reference = Reference;
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmZXJlbmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9mYW1peC9tb2RlbC9mYW1peC9yZWZlcmVuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUVBQThEO0FBRzlELHFDQUFrQztBQUVsQyxNQUFhLFNBQVUsU0FBUSxlQUFNO0lBSzFCLE9BQU87UUFDVixNQUFNLElBQUksR0FBc0IsSUFBSSx1Q0FBaUIsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDekUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxRQUEyQjtRQUN0RCxLQUFLLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVDLFFBQVEsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLE1BQU0sQ0FBQyxNQUF1QjtRQUM5QixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixNQUFNLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQUksTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxNQUFNLENBQUMsTUFBWTtRQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixNQUFNLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEMsQ0FBQztDQUNKO0FBbENELDhCQWtDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZhbWl4SlNPTkV4cG9ydGVyIH0gZnJvbSBcIi4uLy4uL2ZhbWl4X0pTT05fZXhwb3J0ZXJcIjtcbmltcG9ydCB7IFR5cGUgfSBmcm9tIFwiLi90eXBlXCI7XG5pbXBvcnQgeyBDb250YWluZXJFbnRpdHkgfSBmcm9tIFwiLi9jb250YWluZXJfZW50aXR5XCI7XG5pbXBvcnQgeyBFbnRpdHkgfSBmcm9tIFwiLi9lbnRpdHlcIjtcblxuZXhwb3J0IGNsYXNzIFJlZmVyZW5jZSBleHRlbmRzIEVudGl0eSB7XG5cbiAgICBwcml2YXRlIF9zb3VyY2UhOiBDb250YWluZXJFbnRpdHk7XG4gICAgcHJpdmF0ZSBfdGFyZ2V0ITogVHlwZTtcblxuICAgIHB1YmxpYyBnZXRKU09OKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGpzb246IEZhbWl4SlNPTkV4cG9ydGVyID0gbmV3IEZhbWl4SlNPTkV4cG9ydGVyKFwiUmVmZXJlbmNlXCIsIHRoaXMpO1xuICAgICAgICB0aGlzLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGpzb24pO1xuICAgICAgICByZXR1cm4ganNvbi5nZXRKU09OKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyOiBGYW1peEpTT05FeHBvcnRlcik6IHZvaWQge1xuICAgICAgICBzdXBlci5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcik7XG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwic291cmNlXCIsIHRoaXMuc291cmNlKTtcbiAgICAgICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJ0YXJnZXRcIiwgdGhpcy50YXJnZXQpO1xuICAgIH1cblxuICAgIGdldCBzb3VyY2UoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zb3VyY2U7XG4gICAgfVxuXG4gICAgc2V0IHNvdXJjZShzb3VyY2U6IENvbnRhaW5lckVudGl0eSkge1xuICAgICAgICB0aGlzLl9zb3VyY2UgPSBzb3VyY2U7XG4gICAgICAgIHNvdXJjZS5hZGRPdXRnb2luZ1JlZmVyZW5jZSh0aGlzKTtcbiAgICB9XG5cbiAgICBnZXQgdGFyZ2V0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFyZ2V0O1xuICAgIH1cblxuICAgIHNldCB0YXJnZXQodGFyZ2V0OiBUeXBlKSB7XG4gICAgICAgIHRoaXMuX3RhcmdldCA9IHRhcmdldDtcbiAgICAgICAgdGFyZ2V0LmFkZEluY29taW5nUmVmZXJlbmNlKHRoaXMpO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ScopingEntity = void 0;
4
+ const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
5
+ const container_entity_1 = require("./container_entity");
6
+ const analyze_1 = require("../../../../analyze");
7
+ class ScopingEntity extends container_entity_1.ContainerEntity {
8
+ constructor() {
9
+ super(...arguments);
10
+ this._modules = new Set();
11
+ }
12
+ addModule(childModule) {
13
+ if (!this._modules.has(childModule)) {
14
+ analyze_1.logger.debug("Adding module " + childModule.name + " to " + this.name);
15
+ this._modules.add(childModule);
16
+ childModule.parentScope = this;
17
+ }
18
+ else {
19
+ analyze_1.logger.debug("Module " + childModule.name + " already added to " + this.name);
20
+ }
21
+ }
22
+ getJSON() {
23
+ const json = new famix_JSON_exporter_1.FamixJSONExporter("ScopingEntity", this);
24
+ this.addPropertiesToExporter(json);
25
+ return json.getJSON();
26
+ }
27
+ addPropertiesToExporter(exporter) {
28
+ super.addPropertiesToExporter(exporter);
29
+ // exporter.addProperty("namespaces", this.getModules());
30
+ }
31
+ get modules() {
32
+ return this._modules;
33
+ }
34
+ }
35
+ exports.ScopingEntity = ScopingEntity;
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NvcGluZ19lbnRpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ZhbWl4L21vZGVsL2ZhbWl4L3Njb3BpbmdfZW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1FQUE4RDtBQUM5RCx5REFBcUQ7QUFDckQsaURBQTZDO0FBRzdDLE1BQWEsYUFBYyxTQUFRLGtDQUFlO0lBQWxEOztRQUVZLGFBQVEsR0FBZ0IsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQTJCOUMsQ0FBQztJQXpCVSxTQUFTLENBQUMsV0FBbUI7UUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDbEMsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEdBQUcsV0FBVyxDQUFDLElBQUksR0FBRyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3ZFLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQy9CLFdBQVcsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ25DLENBQUM7YUFBTSxDQUFDO1lBQ0osZ0JBQU0sQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLFdBQVcsQ0FBQyxJQUFJLEdBQUcsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xGLENBQUM7SUFDTCxDQUFDO0lBR00sT0FBTztRQUNWLE1BQU0sSUFBSSxHQUFzQixJQUFJLHVDQUFpQixDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM3RSxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVNLHVCQUF1QixDQUFDLFFBQTJCO1FBQ3RELEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4Qyw0REFBNEQ7SUFDaEUsQ0FBQztJQUVELElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0NBQ0o7QUE3QkQsc0NBNkJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmFtaXhKU09ORXhwb3J0ZXIgfSBmcm9tIFwiLi4vLi4vZmFtaXhfSlNPTl9leHBvcnRlclwiO1xuaW1wb3J0IHsgQ29udGFpbmVyRW50aXR5IH0gZnJvbSBcIi4vY29udGFpbmVyX2VudGl0eVwiO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSBcIi4uLy4uLy4uLy4uL2FuYWx5emVcIjtcbmltcG9ydCB7IE1vZHVsZSB9IGZyb20gXCIuL21vZHVsZVwiO1xuXG5leHBvcnQgY2xhc3MgU2NvcGluZ0VudGl0eSBleHRlbmRzIENvbnRhaW5lckVudGl0eSB7XG5cbiAgICBwcml2YXRlIF9tb2R1bGVzOiBTZXQ8TW9kdWxlPiA9IG5ldyBTZXQoKTtcblxuICAgIHB1YmxpYyBhZGRNb2R1bGUoY2hpbGRNb2R1bGU6IE1vZHVsZSk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX21vZHVsZXMuaGFzKGNoaWxkTW9kdWxlKSkge1xuICAgICAgICAgICAgbG9nZ2VyLmRlYnVnKFwiQWRkaW5nIG1vZHVsZSBcIiArIGNoaWxkTW9kdWxlLm5hbWUgKyBcIiB0byBcIiArIHRoaXMubmFtZSk7XG4gICAgICAgICAgICB0aGlzLl9tb2R1bGVzLmFkZChjaGlsZE1vZHVsZSk7XG4gICAgICAgICAgICBjaGlsZE1vZHVsZS5wYXJlbnRTY29wZSA9IHRoaXM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsb2dnZXIuZGVidWcoXCJNb2R1bGUgXCIgKyBjaGlsZE1vZHVsZS5uYW1lICsgXCIgYWxyZWFkeSBhZGRlZCB0byBcIiArIHRoaXMubmFtZSk7XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIHB1YmxpYyBnZXRKU09OKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGpzb246IEZhbWl4SlNPTkV4cG9ydGVyID0gbmV3IEZhbWl4SlNPTkV4cG9ydGVyKFwiU2NvcGluZ0VudGl0eVwiLCB0aGlzKTtcbiAgICAgICAgdGhpcy5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihqc29uKTtcbiAgICAgICAgcmV0dXJuIGpzb24uZ2V0SlNPTigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcjogRmFtaXhKU09ORXhwb3J0ZXIpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoZXhwb3J0ZXIpO1xuICAgICAgICAvLyAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcIm5hbWVzcGFjZXNcIiwgdGhpcy5nZXRNb2R1bGVzKCkpO1xuICAgIH1cblxuICAgIGdldCBtb2R1bGVzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbW9kdWxlcztcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ScriptEntity = void 0;
4
+ const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
5
+ const scoping_entity_1 = require("./scoping_entity");
6
+ class ScriptEntity extends scoping_entity_1.ScopingEntity {
7
+ getJSON() {
8
+ const json = new famix_JSON_exporter_1.FamixJSONExporter("ScriptEntity", this);
9
+ this.addPropertiesToExporter(json);
10
+ return json.getJSON();
11
+ }
12
+ addPropertiesToExporter(exporter) {
13
+ super.addPropertiesToExporter(exporter);
14
+ }
15
+ get numberOfLinesOfText() {
16
+ return this._numberOfLinesOfText;
17
+ }
18
+ set numberOfLinesOfText(numberOfLinesOfText) {
19
+ this._numberOfLinesOfText = numberOfLinesOfText;
20
+ }
21
+ get numberOfCharacters() {
22
+ return this._numberOfCharacters;
23
+ }
24
+ set numberOfCharacters(numberOfCharacters) {
25
+ this._numberOfCharacters = numberOfCharacters;
26
+ }
27
+ }
28
+ exports.ScriptEntity = ScriptEntity;
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyaXB0X2VudGl0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZmFtaXgvbW9kZWwvZmFtaXgvc2NyaXB0X2VudGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtRUFBOEQ7QUFDOUQscURBQWlEO0FBRWpELE1BQWEsWUFBYSxTQUFRLDhCQUFhO0lBS3BDLE9BQU87UUFDVixNQUFNLElBQUksR0FBc0IsSUFBSSx1Q0FBaUIsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDNUUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxRQUEyQjtRQUN0RCxLQUFLLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELElBQUksbUJBQW1CO1FBQ25CLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFJLG1CQUFtQixDQUFDLG1CQUEyQjtRQUMvQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsbUJBQW1CLENBQUM7SUFDcEQsQ0FBQztJQUVELElBQUksa0JBQWtCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFJLGtCQUFrQixDQUFDLGtCQUEwQjtRQUM3QyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsa0JBQWtCLENBQUM7SUFDbEQsQ0FBQztDQUNKO0FBOUJELG9DQThCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZhbWl4SlNPTkV4cG9ydGVyIH0gZnJvbSBcIi4uLy4uL2ZhbWl4X0pTT05fZXhwb3J0ZXJcIjtcbmltcG9ydCB7IFNjb3BpbmdFbnRpdHkgfSBmcm9tIFwiLi9zY29waW5nX2VudGl0eVwiO1xuXG5leHBvcnQgY2xhc3MgU2NyaXB0RW50aXR5IGV4dGVuZHMgU2NvcGluZ0VudGl0eSB7XG5cbiAgICBwcml2YXRlIF9udW1iZXJPZkxpbmVzT2ZUZXh0ITogbnVtYmVyO1xuICAgIHByaXZhdGUgX251bWJlck9mQ2hhcmFjdGVycyE6IG51bWJlcjtcblxuICAgIHB1YmxpYyBnZXRKU09OKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGpzb246IEZhbWl4SlNPTkV4cG9ydGVyID0gbmV3IEZhbWl4SlNPTkV4cG9ydGVyKFwiU2NyaXB0RW50aXR5XCIsIHRoaXMpO1xuICAgICAgICB0aGlzLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGpzb24pO1xuICAgICAgICByZXR1cm4ganNvbi5nZXRKU09OKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyOiBGYW1peEpTT05FeHBvcnRlcik6IHZvaWQge1xuICAgICAgICBzdXBlci5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcik7XG4gICAgfVxuXG4gICAgZ2V0IG51bWJlck9mTGluZXNPZlRleHQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9udW1iZXJPZkxpbmVzT2ZUZXh0O1xuICAgIH1cblxuICAgIHNldCBudW1iZXJPZkxpbmVzT2ZUZXh0KG51bWJlck9mTGluZXNPZlRleHQ6IG51bWJlcikge1xuICAgICAgICB0aGlzLl9udW1iZXJPZkxpbmVzT2ZUZXh0ID0gbnVtYmVyT2ZMaW5lc09mVGV4dDtcbiAgICB9XG5cbiAgICBnZXQgbnVtYmVyT2ZDaGFyYWN0ZXJzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbnVtYmVyT2ZDaGFyYWN0ZXJzO1xuICAgIH1cblxuICAgIHNldCBudW1iZXJPZkNoYXJhY3RlcnMobnVtYmVyT2ZDaGFyYWN0ZXJzOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5fbnVtYmVyT2ZDaGFyYWN0ZXJzID0gbnVtYmVyT2ZDaGFyYWN0ZXJzO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SourceAnchor = void 0;
4
+ const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
5
+ const entity_1 = require("./entity");
6
+ class SourceAnchor extends entity_1.Entity {
7
+ getJSON() {
8
+ const json = new famix_JSON_exporter_1.FamixJSONExporter("SourceAnchor", this);
9
+ this.addPropertiesToExporter(json);
10
+ return json.getJSON();
11
+ }
12
+ addPropertiesToExporter(exporter) {
13
+ super.addPropertiesToExporter(exporter);
14
+ exporter.addProperty("element", this.element);
15
+ }
16
+ get element() {
17
+ return this._element;
18
+ }
19
+ set element(element) {
20
+ if (this._element === undefined) {
21
+ this._element = element;
22
+ element.sourceAnchor = this;
23
+ }
24
+ }
25
+ }
26
+ exports.SourceAnchor = SourceAnchor;
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlX2FuY2hvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZmFtaXgvbW9kZWwvZmFtaXgvc291cmNlX2FuY2hvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtRUFBOEQ7QUFDOUQscUNBQWtDO0FBR2xDLE1BQWEsWUFBYSxTQUFRLGVBQU07SUFJN0IsT0FBTztRQUNWLE1BQU0sSUFBSSxHQUFzQixJQUFJLHVDQUFpQixDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM1RSxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVNLHVCQUF1QixDQUFDLFFBQTJCO1FBQ3RELEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4QyxRQUFRLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxPQUFPLENBQUMsT0FBc0I7UUFDOUIsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1lBQ3hCLE9BQU8sQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ2hDLENBQUM7SUFDTCxDQUFDO0NBQ0o7QUF6QkQsb0NBeUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmFtaXhKU09ORXhwb3J0ZXIgfSBmcm9tIFwiLi4vLi4vZmFtaXhfSlNPTl9leHBvcnRlclwiO1xuaW1wb3J0IHsgRW50aXR5IH0gZnJvbSBcIi4vZW50aXR5XCI7XG5pbXBvcnQgeyBTb3VyY2VkRW50aXR5IH0gZnJvbSBcIi4vc291cmNlZF9lbnRpdHlcIjtcblxuZXhwb3J0IGNsYXNzIFNvdXJjZUFuY2hvciBleHRlbmRzIEVudGl0eSB7XG5cbiAgICBwcml2YXRlIF9lbGVtZW50ITogU291cmNlZEVudGl0eTtcblxuICAgIHB1YmxpYyBnZXRKU09OKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGpzb246IEZhbWl4SlNPTkV4cG9ydGVyID0gbmV3IEZhbWl4SlNPTkV4cG9ydGVyKFwiU291cmNlQW5jaG9yXCIsIHRoaXMpO1xuICAgICAgICB0aGlzLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGpzb24pO1xuICAgICAgICByZXR1cm4ganNvbi5nZXRKU09OKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyOiBGYW1peEpTT05FeHBvcnRlcik6IHZvaWQge1xuICAgICAgICBzdXBlci5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcik7XG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwiZWxlbWVudFwiLCB0aGlzLmVsZW1lbnQpO1xuICAgIH1cblxuICAgIGdldCBlbGVtZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudDtcbiAgICB9XG5cbiAgICBzZXQgZWxlbWVudChlbGVtZW50OiBTb3VyY2VkRW50aXR5KSB7XG4gICAgICAgIGlmICh0aGlzLl9lbGVtZW50ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2VsZW1lbnQgPSBlbGVtZW50O1xuICAgICAgICAgICAgZWxlbWVudC5zb3VyY2VBbmNob3IgPSB0aGlzO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SourceLanguage = void 0;
4
+ const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
5
+ const entity_1 = require("./entity");
6
+ class SourceLanguage extends entity_1.Entity {
7
+ constructor() {
8
+ super(...arguments);
9
+ this._sourcedEntities = new Set();
10
+ }
11
+ // name of the source language
12
+ get name() {
13
+ return "TypeScript";
14
+ }
15
+ addSourcedEntity(sourcedEntity) {
16
+ if (!this._sourcedEntities.has(sourcedEntity)) {
17
+ this._sourcedEntities.add(sourcedEntity);
18
+ sourcedEntity.declaredSourceLanguage = this;
19
+ }
20
+ }
21
+ getJSON() {
22
+ const json = new famix_JSON_exporter_1.FamixJSONExporter("SourceLanguage", this);
23
+ this.addPropertiesToExporter(json);
24
+ return json.getJSON();
25
+ }
26
+ addPropertiesToExporter(exporter) {
27
+ super.addPropertiesToExporter(exporter);
28
+ exporter.addProperty("sourcedEntities", this.sourcedEntities);
29
+ }
30
+ get sourcedEntities() {
31
+ return this._sourcedEntities;
32
+ }
33
+ }
34
+ exports.SourceLanguage = SourceLanguage;
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlX2xhbmd1YWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9mYW1peC9tb2RlbC9mYW1peC9zb3VyY2VfbGFuZ3VhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUVBQThEO0FBQzlELHFDQUFrQztBQUdsQyxNQUFhLGNBQWUsU0FBUSxlQUFNO0lBQTFDOztRQUVZLHFCQUFnQixHQUF1QixJQUFJLEdBQUcsRUFBRSxDQUFDO0lBNEI3RCxDQUFDO0lBMUJHLDhCQUE4QjtJQUM5QixJQUFJLElBQUk7UUFDSixPQUFPLFlBQVksQ0FBQztJQUN4QixDQUFDO0lBRU0sZ0JBQWdCLENBQUMsYUFBNEI7UUFDaEQsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztZQUM1QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3pDLGFBQWEsQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUM7UUFDaEQsQ0FBQztJQUNMLENBQUM7SUFFTSxPQUFPO1FBQ1YsTUFBTSxJQUFJLEdBQXNCLElBQUksdUNBQWlCLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDOUUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxRQUEyQjtRQUN0RCxLQUFLLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELElBQUksZUFBZTtRQUNmLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQ2pDLENBQUM7Q0FDSjtBQTlCRCx3Q0E4QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGYW1peEpTT05FeHBvcnRlciB9IGZyb20gXCIuLi8uLi9mYW1peF9KU09OX2V4cG9ydGVyXCI7XG5pbXBvcnQgeyBFbnRpdHkgfSBmcm9tIFwiLi9lbnRpdHlcIjtcbmltcG9ydCB7IFNvdXJjZWRFbnRpdHkgfSBmcm9tIFwiLi9zb3VyY2VkX2VudGl0eVwiO1xuXG5leHBvcnQgY2xhc3MgU291cmNlTGFuZ3VhZ2UgZXh0ZW5kcyBFbnRpdHkge1xuXG4gICAgcHJpdmF0ZSBfc291cmNlZEVudGl0aWVzOiBTZXQ8U291cmNlZEVudGl0eT4gPSBuZXcgU2V0KCk7XG5cbiAgICAvLyBuYW1lIG9mIHRoZSBzb3VyY2UgbGFuZ3VhZ2VcbiAgICBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gXCJUeXBlU2NyaXB0XCI7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZFNvdXJjZWRFbnRpdHkoc291cmNlZEVudGl0eTogU291cmNlZEVudGl0eSk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX3NvdXJjZWRFbnRpdGllcy5oYXMoc291cmNlZEVudGl0eSkpIHtcbiAgICAgICAgICAgIHRoaXMuX3NvdXJjZWRFbnRpdGllcy5hZGQoc291cmNlZEVudGl0eSk7XG4gICAgICAgICAgICBzb3VyY2VkRW50aXR5LmRlY2xhcmVkU291cmNlTGFuZ3VhZ2UgPSB0aGlzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldEpTT04oKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QganNvbjogRmFtaXhKU09ORXhwb3J0ZXIgPSBuZXcgRmFtaXhKU09ORXhwb3J0ZXIoXCJTb3VyY2VMYW5ndWFnZVwiLCB0aGlzKTtcbiAgICAgICAgdGhpcy5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihqc29uKTtcbiAgICAgICAgcmV0dXJuIGpzb24uZ2V0SlNPTigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcjogRmFtaXhKU09ORXhwb3J0ZXIpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoZXhwb3J0ZXIpO1xuICAgICAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcInNvdXJjZWRFbnRpdGllc1wiLCB0aGlzLnNvdXJjZWRFbnRpdGllcyk7XG4gICAgfVxuXG4gICAgZ2V0IHNvdXJjZWRFbnRpdGllcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NvdXJjZWRFbnRpdGllcztcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SourcedEntity = void 0;
4
+ const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
5
+ const entity_1 = require("./entity");
6
+ const analyze_1 = require("../../../../analyze");
7
+ class SourcedEntity extends entity_1.Entity {
8
+ constructor() {
9
+ super(...arguments);
10
+ this._comments = new Set();
11
+ }
12
+ addComment(comment) {
13
+ if (!this._comments.has(comment)) {
14
+ this._comments.add(comment);
15
+ comment.container = this;
16
+ }
17
+ else {
18
+ analyze_1.logger.debug("Adding comment that is already in comments: " + comment.getJSON() + " to " + this.getJSON());
19
+ }
20
+ }
21
+ getJSON() {
22
+ const json = new famix_JSON_exporter_1.FamixJSONExporter("SourcedEntity", this);
23
+ this.addPropertiesToExporter(json);
24
+ return json.getJSON();
25
+ }
26
+ addPropertiesToExporter(exporter) {
27
+ super.addPropertiesToExporter(exporter);
28
+ exporter.addProperty("isStub", this.isStub);
29
+ exporter.addProperty("sourceAnchor", this.sourceAnchor);
30
+ exporter.addProperty("comments", this.comments);
31
+ exporter.addProperty("declaredSourceLanguage", this.declaredSourceLanguage);
32
+ }
33
+ get isStub() {
34
+ return this._isStub;
35
+ }
36
+ set isStub(isStub) {
37
+ this._isStub = isStub;
38
+ }
39
+ get sourceAnchor() {
40
+ return this._sourceAnchor;
41
+ }
42
+ set sourceAnchor(sourceAnchor) {
43
+ if (this._sourceAnchor === undefined) {
44
+ this._sourceAnchor = sourceAnchor;
45
+ sourceAnchor.element = this;
46
+ }
47
+ }
48
+ get comments() {
49
+ return this._comments;
50
+ }
51
+ get declaredSourceLanguage() {
52
+ return this._declaredSourceLanguage;
53
+ }
54
+ set declaredSourceLanguage(declaredSourceLanguage) {
55
+ this._declaredSourceLanguage = declaredSourceLanguage;
56
+ declaredSourceLanguage.addSourcedEntity(this);
57
+ }
58
+ }
59
+ exports.SourcedEntity = SourcedEntity;
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlZF9lbnRpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ZhbWl4L21vZGVsL2ZhbWl4L3NvdXJjZWRfZW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1FQUE4RDtBQUU5RCxxQ0FBa0M7QUFHbEMsaURBQTZDO0FBRTdDLE1BQWEsYUFBYyxTQUFRLGVBQU07SUFBekM7O1FBSVksY0FBUyxHQUFpQixJQUFJLEdBQUcsRUFBRSxDQUFDO0lBMERoRCxDQUFDO0lBeERVLFVBQVUsQ0FBQyxPQUFnQjtRQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM1QixPQUFPLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUM3QixDQUFDO2FBQU0sQ0FBQztZQUNKLGdCQUFNLENBQUMsS0FBSyxDQUFDLDhDQUE4QyxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsR0FBRyxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDL0csQ0FBQztJQUNMLENBQUM7SUFJTSxPQUFPO1FBQ1YsTUFBTSxJQUFJLEdBQXNCLElBQUksdUNBQWlCLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzdFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU0sdUJBQXVCLENBQUMsUUFBMkI7UUFDdEQsS0FBSyxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hDLFFBQVEsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1QyxRQUFRLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDeEQsUUFBUSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2hELFFBQVEsQ0FBQyxXQUFXLENBQUMsd0JBQXdCLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDaEYsQ0FBQztJQUVELElBQUksTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxNQUFNLENBQUMsTUFBZTtRQUN0QixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ1osT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJLFlBQVksQ0FBQyxZQUEwQjtRQUN2QyxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLGFBQWEsR0FBRyxZQUFZLENBQUM7WUFDbEMsWUFBWSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDaEMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksc0JBQXNCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFJLHNCQUFzQixDQUFDLHNCQUFzQztRQUM3RCxJQUFJLENBQUMsdUJBQXVCLEdBQUcsc0JBQXNCLENBQUM7UUFDdEQsc0JBQXNCLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEQsQ0FBQztDQUNKO0FBOURELHNDQThEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZhbWl4SlNPTkV4cG9ydGVyIH0gZnJvbSBcIi4uLy4uL2ZhbWl4X0pTT05fZXhwb3J0ZXJcIjtcbmltcG9ydCB7IFNvdXJjZUxhbmd1YWdlIH0gZnJvbSBcIi4vc291cmNlX2xhbmd1YWdlXCI7XG5pbXBvcnQgeyBFbnRpdHkgfSBmcm9tIFwiLi9lbnRpdHlcIjtcbmltcG9ydCB7IENvbW1lbnQgfSBmcm9tIFwiLi9jb21tZW50XCI7XG5pbXBvcnQgeyBTb3VyY2VBbmNob3IgfSBmcm9tIFwiLi9zb3VyY2VfYW5jaG9yXCI7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tIFwiLi4vLi4vLi4vLi4vYW5hbHl6ZVwiO1xuXG5leHBvcnQgY2xhc3MgU291cmNlZEVudGl0eSBleHRlbmRzIEVudGl0eSB7XG5cbiAgICBwcml2YXRlIF9pc1N0dWIhOiBib29sZWFuO1xuICAgIHByaXZhdGUgX3NvdXJjZUFuY2hvciE6IFNvdXJjZUFuY2hvcjtcbiAgICBwcml2YXRlIF9jb21tZW50czogU2V0PENvbW1lbnQ+ID0gbmV3IFNldCgpO1xuXG4gICAgcHVibGljIGFkZENvbW1lbnQoY29tbWVudDogQ29tbWVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2NvbW1lbnRzLmhhcyhjb21tZW50KSkge1xuICAgICAgICAgICAgdGhpcy5fY29tbWVudHMuYWRkKGNvbW1lbnQpO1xuICAgICAgICAgICAgY29tbWVudC5jb250YWluZXIgPSB0aGlzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbG9nZ2VyLmRlYnVnKFwiQWRkaW5nIGNvbW1lbnQgdGhhdCBpcyBhbHJlYWR5IGluIGNvbW1lbnRzOiBcIiArIGNvbW1lbnQuZ2V0SlNPTigpICsgXCIgdG8gXCIgKyB0aGlzLmdldEpTT04oKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9kZWNsYXJlZFNvdXJjZUxhbmd1YWdlITogU291cmNlTGFuZ3VhZ2U7XG5cbiAgICBwdWJsaWMgZ2V0SlNPTigpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBqc29uOiBGYW1peEpTT05FeHBvcnRlciA9IG5ldyBGYW1peEpTT05FeHBvcnRlcihcIlNvdXJjZWRFbnRpdHlcIiwgdGhpcyk7XG4gICAgICAgIHRoaXMuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoanNvbik7XG4gICAgICAgIHJldHVybiBqc29uLmdldEpTT04oKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoZXhwb3J0ZXI6IEZhbWl4SlNPTkV4cG9ydGVyKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyKTtcbiAgICAgICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJpc1N0dWJcIiwgdGhpcy5pc1N0dWIpO1xuICAgICAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcInNvdXJjZUFuY2hvclwiLCB0aGlzLnNvdXJjZUFuY2hvcik7XG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwiY29tbWVudHNcIiwgdGhpcy5jb21tZW50cyk7XG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwiZGVjbGFyZWRTb3VyY2VMYW5ndWFnZVwiLCB0aGlzLmRlY2xhcmVkU291cmNlTGFuZ3VhZ2UpO1xuICAgIH1cblxuICAgIGdldCBpc1N0dWIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1N0dWI7XG4gICAgfVxuXG4gICAgc2V0IGlzU3R1Yihpc1N0dWI6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5faXNTdHViID0gaXNTdHViO1xuICAgIH1cblxuICAgIGdldCBzb3VyY2VBbmNob3IoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zb3VyY2VBbmNob3I7XG4gICAgfVxuXG4gICAgc2V0IHNvdXJjZUFuY2hvcihzb3VyY2VBbmNob3I6IFNvdXJjZUFuY2hvcikge1xuICAgICAgICBpZiAodGhpcy5fc291cmNlQW5jaG9yID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX3NvdXJjZUFuY2hvciA9IHNvdXJjZUFuY2hvcjtcbiAgICAgICAgICAgIHNvdXJjZUFuY2hvci5lbGVtZW50ID0gdGhpcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBjb21tZW50cygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbW1lbnRzO1xuICAgIH1cblxuICAgIGdldCBkZWNsYXJlZFNvdXJjZUxhbmd1YWdlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGVjbGFyZWRTb3VyY2VMYW5ndWFnZTtcbiAgICB9XG5cbiAgICBzZXQgZGVjbGFyZWRTb3VyY2VMYW5ndWFnZShkZWNsYXJlZFNvdXJjZUxhbmd1YWdlOiBTb3VyY2VMYW5ndWFnZSkge1xuICAgICAgICB0aGlzLl9kZWNsYXJlZFNvdXJjZUxhbmd1YWdlID0gZGVjbGFyZWRTb3VyY2VMYW5ndWFnZTtcbiAgICAgICAgZGVjbGFyZWRTb3VyY2VMYW5ndWFnZS5hZGRTb3VyY2VkRW50aXR5KHRoaXMpO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StructuralEntity = void 0;
4
+ const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
5
+ const named_entity_1 = require("./named_entity");
6
+ class StructuralEntity extends named_entity_1.NamedEntity {
7
+ constructor() {
8
+ super(...arguments);
9
+ this._incomingAccesses = new Set();
10
+ }
11
+ addIncomingAccess(incomingAccess) {
12
+ if (!this._incomingAccesses.has(incomingAccess)) {
13
+ this._incomingAccesses.add(incomingAccess);
14
+ incomingAccess.variable = this;
15
+ }
16
+ }
17
+ getJSON() {
18
+ const json = new famix_JSON_exporter_1.FamixJSONExporter("StructuralEntity", this);
19
+ this.addPropertiesToExporter(json);
20
+ return json.getJSON();
21
+ }
22
+ addPropertiesToExporter(exporter) {
23
+ super.addPropertiesToExporter(exporter);
24
+ exporter.addProperty("incomingAccesses", this.incomingAccesses);
25
+ exporter.addProperty("declaredType", this.declaredType);
26
+ }
27
+ get incomingAccesses() {
28
+ return this._incomingAccesses;
29
+ }
30
+ get declaredType() {
31
+ return this._declaredType;
32
+ }
33
+ set declaredType(declaredType) {
34
+ this._declaredType = declaredType;
35
+ declaredType.addStructureWithDeclaredType(this);
36
+ }
37
+ }
38
+ exports.StructuralEntity = StructuralEntity;
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RydWN0dXJhbF9lbnRpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ZhbWl4L21vZGVsL2ZhbWl4L3N0cnVjdHVyYWxfZW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1FQUE4RDtBQUc5RCxpREFBNkM7QUFFN0MsTUFBYSxnQkFBaUIsU0FBUSwwQkFBVztJQUFqRDs7UUFFWSxzQkFBaUIsR0FBZ0IsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQW1DdkQsQ0FBQztJQWpDVSxpQkFBaUIsQ0FBQyxjQUFzQjtRQUMzQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO1lBQzlDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDM0MsY0FBYyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDbkMsQ0FBQztJQUNMLENBQUM7SUFJTSxPQUFPO1FBQ1YsTUFBTSxJQUFJLEdBQXNCLElBQUksdUNBQWlCLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDaEYsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxRQUEyQjtRQUN0RCxLQUFLLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNoRSxRQUFRLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDWixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQUksWUFBWSxDQUFDLFlBQWtCO1FBQy9CLElBQUksQ0FBQyxhQUFhLEdBQUcsWUFBWSxDQUFDO1FBQ2xDLFlBQVksQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwRCxDQUFDO0NBQ0o7QUFyQ0QsNENBcUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmFtaXhKU09ORXhwb3J0ZXIgfSBmcm9tIFwiLi4vLi4vZmFtaXhfSlNPTl9leHBvcnRlclwiO1xuaW1wb3J0IHsgVHlwZSB9IGZyb20gXCIuL3R5cGVcIjtcbmltcG9ydCB7IEFjY2VzcyB9IGZyb20gXCIuL2FjY2Vzc1wiO1xuaW1wb3J0IHsgTmFtZWRFbnRpdHkgfSBmcm9tIFwiLi9uYW1lZF9lbnRpdHlcIjtcblxuZXhwb3J0IGNsYXNzIFN0cnVjdHVyYWxFbnRpdHkgZXh0ZW5kcyBOYW1lZEVudGl0eSB7XG5cbiAgICBwcml2YXRlIF9pbmNvbWluZ0FjY2Vzc2VzOiBTZXQ8QWNjZXNzPiA9IG5ldyBTZXQoKTtcblxuICAgIHB1YmxpYyBhZGRJbmNvbWluZ0FjY2VzcyhpbmNvbWluZ0FjY2VzczogQWNjZXNzKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5faW5jb21pbmdBY2Nlc3Nlcy5oYXMoaW5jb21pbmdBY2Nlc3MpKSB7XG4gICAgICAgICAgICB0aGlzLl9pbmNvbWluZ0FjY2Vzc2VzLmFkZChpbmNvbWluZ0FjY2Vzcyk7XG4gICAgICAgICAgICBpbmNvbWluZ0FjY2Vzcy52YXJpYWJsZSA9IHRoaXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9kZWNsYXJlZFR5cGUhOiBUeXBlO1xuXG4gICAgcHVibGljIGdldEpTT04oKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QganNvbjogRmFtaXhKU09ORXhwb3J0ZXIgPSBuZXcgRmFtaXhKU09ORXhwb3J0ZXIoXCJTdHJ1Y3R1cmFsRW50aXR5XCIsIHRoaXMpO1xuICAgICAgICB0aGlzLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGpzb24pO1xuICAgICAgICByZXR1cm4ganNvbi5nZXRKU09OKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyOiBGYW1peEpTT05FeHBvcnRlcik6IHZvaWQge1xuICAgICAgICBzdXBlci5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcik7XG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwiaW5jb21pbmdBY2Nlc3Nlc1wiLCB0aGlzLmluY29taW5nQWNjZXNzZXMpO1xuICAgICAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcImRlY2xhcmVkVHlwZVwiLCB0aGlzLmRlY2xhcmVkVHlwZSk7XG4gICAgfVxuXG4gICAgZ2V0IGluY29taW5nQWNjZXNzZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbmNvbWluZ0FjY2Vzc2VzO1xuICAgIH1cblxuICAgIGdldCBkZWNsYXJlZFR5cGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWNsYXJlZFR5cGU7XG4gICAgfVxuXG4gICAgc2V0IGRlY2xhcmVkVHlwZShkZWNsYXJlZFR5cGU6IFR5cGUpIHtcbiAgICAgICAgdGhpcy5fZGVjbGFyZWRUeXBlID0gZGVjbGFyZWRUeXBlO1xuICAgICAgICBkZWNsYXJlZFR5cGUuYWRkU3RydWN0dXJlV2l0aERlY2xhcmVkVHlwZSh0aGlzKTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Type = void 0;
4
+ const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
5
+ const container_entity_1 = require("./container_entity");
6
+ class Type extends container_entity_1.ContainerEntity {
7
+ constructor() {
8
+ super(...arguments);
9
+ this._typeAliases = new Set();
10
+ this._structuresWithDeclaredType = new Set();
11
+ this._behavioralEntitiesWithDeclaredType = new Set();
12
+ this._incomingReferences = new Set();
13
+ }
14
+ addTypeAlias(typeAlias) {
15
+ if (!this._typeAliases.has(typeAlias)) {
16
+ this._typeAliases.add(typeAlias);
17
+ typeAlias.aliasedEntity = this;
18
+ }
19
+ }
20
+ addStructureWithDeclaredType(structureWithDeclaredType) {
21
+ if (!this._structuresWithDeclaredType.has(structureWithDeclaredType)) {
22
+ this._structuresWithDeclaredType.add(structureWithDeclaredType);
23
+ structureWithDeclaredType.declaredType = this;
24
+ }
25
+ }
26
+ addBehavioralEntityWithDeclaredType(behavioralEntityWithDeclaredType) {
27
+ if (!this._behavioralEntitiesWithDeclaredType.has(behavioralEntityWithDeclaredType)) {
28
+ this._behavioralEntitiesWithDeclaredType.add(behavioralEntityWithDeclaredType);
29
+ behavioralEntityWithDeclaredType.declaredType = this;
30
+ }
31
+ }
32
+ addIncomingReference(incomingReference) {
33
+ if (!this._incomingReferences.has(incomingReference)) {
34
+ this._incomingReferences.add(incomingReference);
35
+ incomingReference.target = this;
36
+ }
37
+ }
38
+ getJSON() {
39
+ const json = new famix_JSON_exporter_1.FamixJSONExporter("Type", this);
40
+ this.addPropertiesToExporter(json);
41
+ return json.getJSON();
42
+ }
43
+ addPropertiesToExporter(exporter) {
44
+ super.addPropertiesToExporter(exporter);
45
+ exporter.addProperty("typeContainer", this.container);
46
+ /* unsupported properties in MM so far */
47
+ // exporter.addProperty("typeAliases", this.getTypeAliases());
48
+ // exporter.addProperty("structuresWithDeclaredType", this.getStructuresWithDeclaredType());
49
+ // exporter.addProperty("behavioralEntitiesWithDeclaredType", this.getBehavioralEntitiesWithDeclaredType());
50
+ exporter.addProperty("incomingReferences", this.incomingReferences);
51
+ }
52
+ get container() {
53
+ return this._container;
54
+ }
55
+ set container(container) {
56
+ this._container = container;
57
+ container.addType(this);
58
+ }
59
+ get typeAliases() {
60
+ return this._typeAliases;
61
+ }
62
+ get structuresWithDeclaredType() {
63
+ return this._structuresWithDeclaredType;
64
+ }
65
+ get behavioralEntitiesWithDeclaredType() {
66
+ return this._behavioralEntitiesWithDeclaredType;
67
+ }
68
+ get incomingReferences() {
69
+ return this._incomingReferences;
70
+ }
71
+ }
72
+ exports.Type = Type;
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZmFtaXgvbW9kZWwvZmFtaXgvdHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtRUFBOEQ7QUFFOUQseURBQXFEO0FBS3JELE1BQWEsSUFBSyxTQUFRLGtDQUFlO0lBQXpDOztRQUdZLGlCQUFZLEdBQWUsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQVNyQyxnQ0FBMkIsR0FBMEIsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQVMvRCx3Q0FBbUMsR0FBMEIsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQVN2RSx3QkFBbUIsR0FBbUIsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQWlENUQsQ0FBQztJQTFFVSxZQUFZLENBQUMsU0FBZ0I7UUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDakMsU0FBUyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDbkMsQ0FBQztJQUNMLENBQUM7SUFJTSw0QkFBNEIsQ0FBQyx5QkFBMkM7UUFDM0UsSUFBSSxDQUFDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsRUFBRSxDQUFDO1lBQ25FLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsQ0FBQztZQUNoRSx5QkFBeUIsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ2xELENBQUM7SUFDTCxDQUFDO0lBSU0sbUNBQW1DLENBQUMsZ0NBQWtEO1FBQ3pGLElBQUksQ0FBQyxJQUFJLENBQUMsbUNBQW1DLENBQUMsR0FBRyxDQUFDLGdDQUFnQyxDQUFDLEVBQUUsQ0FBQztZQUNsRixJQUFJLENBQUMsbUNBQW1DLENBQUMsR0FBRyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7WUFDL0UsZ0NBQWdDLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6RCxDQUFDO0lBQ0wsQ0FBQztJQUlNLG9CQUFvQixDQUFDLGlCQUE0QjtRQUNwRCxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7WUFDbkQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQ2hELGlCQUFpQixDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDcEMsQ0FBQztJQUNMLENBQUM7SUFFTSxPQUFPO1FBQ1YsTUFBTSxJQUFJLEdBQXNCLElBQUksdUNBQWlCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU0sdUJBQXVCLENBQUMsUUFBMkI7UUFDdEQsS0FBSyxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hDLFFBQVEsQ0FBQyxXQUFXLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN0RCx5Q0FBeUM7UUFDekMsOERBQThEO1FBQzlELDRGQUE0RjtRQUM1Riw0R0FBNEc7UUFDNUcsUUFBUSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFJLFNBQVMsQ0FBQyxTQUEwQjtRQUNwQyxJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztRQUM1QixTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksMEJBQTBCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLDJCQUEyQixDQUFDO0lBQzVDLENBQUM7SUFFRCxJQUFJLGtDQUFrQztRQUNsQyxPQUFPLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsSUFBSSxrQkFBa0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDcEMsQ0FBQztDQUNKO0FBL0VELG9CQStFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZhbWl4SlNPTkV4cG9ydGVyIH0gZnJvbSBcIi4uLy4uL2ZhbWl4X0pTT05fZXhwb3J0ZXJcIjtcbmltcG9ydCB7IFN0cnVjdHVyYWxFbnRpdHkgfSBmcm9tIFwiLi9zdHJ1Y3R1cmFsX2VudGl0eVwiO1xuaW1wb3J0IHsgQ29udGFpbmVyRW50aXR5IH0gZnJvbSBcIi4vY29udGFpbmVyX2VudGl0eVwiO1xuaW1wb3J0IHsgUmVmZXJlbmNlIH0gZnJvbSBcIi4vcmVmZXJlbmNlXCI7XG5pbXBvcnQgeyBCZWhhdmlvcmFsRW50aXR5IH0gZnJvbSBcIi4vYmVoYXZpb3JhbF9lbnRpdHlcIjtcbmltcG9ydCB7IEFsaWFzIH0gZnJvbSBcIi4vYWxpYXNcIjtcblxuZXhwb3J0IGNsYXNzIFR5cGUgZXh0ZW5kcyBDb250YWluZXJFbnRpdHkge1xuXG4gICAgcHJpdmF0ZSBfY29udGFpbmVyITogQ29udGFpbmVyRW50aXR5O1xuICAgIHByaXZhdGUgX3R5cGVBbGlhc2VzOiBTZXQ8QWxpYXM+ID0gbmV3IFNldCgpO1xuXG4gICAgcHVibGljIGFkZFR5cGVBbGlhcyh0eXBlQWxpYXM6IEFsaWFzKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5fdHlwZUFsaWFzZXMuaGFzKHR5cGVBbGlhcykpIHtcbiAgICAgICAgICAgIHRoaXMuX3R5cGVBbGlhc2VzLmFkZCh0eXBlQWxpYXMpO1xuICAgICAgICAgICAgdHlwZUFsaWFzLmFsaWFzZWRFbnRpdHkgPSB0aGlzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc3RydWN0dXJlc1dpdGhEZWNsYXJlZFR5cGU6IFNldDxTdHJ1Y3R1cmFsRW50aXR5PiA9IG5ldyBTZXQoKTtcblxuICAgIHB1YmxpYyBhZGRTdHJ1Y3R1cmVXaXRoRGVjbGFyZWRUeXBlKHN0cnVjdHVyZVdpdGhEZWNsYXJlZFR5cGU6IFN0cnVjdHVyYWxFbnRpdHkpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9zdHJ1Y3R1cmVzV2l0aERlY2xhcmVkVHlwZS5oYXMoc3RydWN0dXJlV2l0aERlY2xhcmVkVHlwZSkpIHtcbiAgICAgICAgICAgIHRoaXMuX3N0cnVjdHVyZXNXaXRoRGVjbGFyZWRUeXBlLmFkZChzdHJ1Y3R1cmVXaXRoRGVjbGFyZWRUeXBlKTtcbiAgICAgICAgICAgIHN0cnVjdHVyZVdpdGhEZWNsYXJlZFR5cGUuZGVjbGFyZWRUeXBlID0gdGhpcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2JlaGF2aW9yYWxFbnRpdGllc1dpdGhEZWNsYXJlZFR5cGU6IFNldDxCZWhhdmlvcmFsRW50aXR5PiA9IG5ldyBTZXQoKTtcblxuICAgIHB1YmxpYyBhZGRCZWhhdmlvcmFsRW50aXR5V2l0aERlY2xhcmVkVHlwZShiZWhhdmlvcmFsRW50aXR5V2l0aERlY2xhcmVkVHlwZTogQmVoYXZpb3JhbEVudGl0eSk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2JlaGF2aW9yYWxFbnRpdGllc1dpdGhEZWNsYXJlZFR5cGUuaGFzKGJlaGF2aW9yYWxFbnRpdHlXaXRoRGVjbGFyZWRUeXBlKSkge1xuICAgICAgICAgICAgdGhpcy5fYmVoYXZpb3JhbEVudGl0aWVzV2l0aERlY2xhcmVkVHlwZS5hZGQoYmVoYXZpb3JhbEVudGl0eVdpdGhEZWNsYXJlZFR5cGUpO1xuICAgICAgICAgICAgYmVoYXZpb3JhbEVudGl0eVdpdGhEZWNsYXJlZFR5cGUuZGVjbGFyZWRUeXBlID0gdGhpcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2luY29taW5nUmVmZXJlbmNlczogU2V0PFJlZmVyZW5jZT4gPSBuZXcgU2V0KCk7XG5cbiAgICBwdWJsaWMgYWRkSW5jb21pbmdSZWZlcmVuY2UoaW5jb21pbmdSZWZlcmVuY2U6IFJlZmVyZW5jZSk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2luY29taW5nUmVmZXJlbmNlcy5oYXMoaW5jb21pbmdSZWZlcmVuY2UpKSB7XG4gICAgICAgICAgICB0aGlzLl9pbmNvbWluZ1JlZmVyZW5jZXMuYWRkKGluY29taW5nUmVmZXJlbmNlKTtcbiAgICAgICAgICAgIGluY29taW5nUmVmZXJlbmNlLnRhcmdldCA9IHRoaXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0SlNPTigpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBqc29uOiBGYW1peEpTT05FeHBvcnRlciA9IG5ldyBGYW1peEpTT05FeHBvcnRlcihcIlR5cGVcIiwgdGhpcyk7XG4gICAgICAgIHRoaXMuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoanNvbik7XG4gICAgICAgIHJldHVybiBqc29uLmdldEpTT04oKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoZXhwb3J0ZXI6IEZhbWl4SlNPTkV4cG9ydGVyKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyKTtcbiAgICAgICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJ0eXBlQ29udGFpbmVyXCIsIHRoaXMuY29udGFpbmVyKTtcbiAgICAgICAgLyogdW5zdXBwb3J0ZWQgcHJvcGVydGllcyBpbiBNTSBzbyBmYXIgKi9cbiAgICAgICAgLy8gZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJ0eXBlQWxpYXNlc1wiLCB0aGlzLmdldFR5cGVBbGlhc2VzKCkpO1xuICAgICAgICAvLyBleHBvcnRlci5hZGRQcm9wZXJ0eShcInN0cnVjdHVyZXNXaXRoRGVjbGFyZWRUeXBlXCIsIHRoaXMuZ2V0U3RydWN0dXJlc1dpdGhEZWNsYXJlZFR5cGUoKSk7XG4gICAgICAgIC8vIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwiYmVoYXZpb3JhbEVudGl0aWVzV2l0aERlY2xhcmVkVHlwZVwiLCB0aGlzLmdldEJlaGF2aW9yYWxFbnRpdGllc1dpdGhEZWNsYXJlZFR5cGUoKSk7XG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwiaW5jb21pbmdSZWZlcmVuY2VzXCIsIHRoaXMuaW5jb21pbmdSZWZlcmVuY2VzKTtcbiAgICB9XG5cbiAgICBnZXQgY29udGFpbmVyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29udGFpbmVyO1xuICAgIH1cblxuICAgIHNldCBjb250YWluZXIoY29udGFpbmVyOiBDb250YWluZXJFbnRpdHkpIHtcbiAgICAgICAgdGhpcy5fY29udGFpbmVyID0gY29udGFpbmVyO1xuICAgICAgICBjb250YWluZXIuYWRkVHlwZSh0aGlzKTtcbiAgICB9XG5cbiAgICBnZXQgdHlwZUFsaWFzZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90eXBlQWxpYXNlcztcbiAgICB9XG5cbiAgICBnZXQgc3RydWN0dXJlc1dpdGhEZWNsYXJlZFR5cGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdHJ1Y3R1cmVzV2l0aERlY2xhcmVkVHlwZTtcbiAgICB9XG5cbiAgICBnZXQgYmVoYXZpb3JhbEVudGl0aWVzV2l0aERlY2xhcmVkVHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2JlaGF2aW9yYWxFbnRpdGllc1dpdGhEZWNsYXJlZFR5cGU7XG4gICAgfVxuXG4gICAgZ2V0IGluY29taW5nUmVmZXJlbmNlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2luY29taW5nUmVmZXJlbmNlcztcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Variable = void 0;
4
+ const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
5
+ const structural_entity_1 = require("./structural_entity");
6
+ class Variable extends structural_entity_1.StructuralEntity {
7
+ getJSON() {
8
+ const json = new famix_JSON_exporter_1.FamixJSONExporter("Variable", this);
9
+ this.addPropertiesToExporter(json);
10
+ return json.getJSON();
11
+ }
12
+ addPropertiesToExporter(exporter) {
13
+ super.addPropertiesToExporter(exporter);
14
+ exporter.addProperty("parentBehaviouralEntity", this.parentContainerEntity);
15
+ }
16
+ get parentContainerEntity() {
17
+ return this._parentContainerEntity;
18
+ }
19
+ set parentContainerEntity(parentContainerEntity) {
20
+ this._parentContainerEntity = parentContainerEntity;
21
+ }
22
+ }
23
+ exports.Variable = Variable;
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFyaWFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ZhbWl4L21vZGVsL2ZhbWl4L3ZhcmlhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1FQUE4RDtBQUU5RCwyREFBdUQ7QUFFdkQsTUFBYSxRQUFTLFNBQVEsb0NBQWdCO0lBSW5DLE9BQU87UUFDVixNQUFNLElBQUksR0FBc0IsSUFBSSx1Q0FBaUIsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxRQUEyQjtRQUN0RCxLQUFLLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEMsUUFBUSxDQUFDLFdBQVcsQ0FBQyx5QkFBeUIsRUFBRSxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRUQsSUFBSSxxQkFBcUI7UUFDckIsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUM7SUFDdkMsQ0FBQztJQUVELElBQUkscUJBQXFCLENBQUMscUJBQXNDO1FBQzVELElBQUksQ0FBQyxzQkFBc0IsR0FBRyxxQkFBcUIsQ0FBQztJQUN4RCxDQUFDO0NBQ0o7QUF0QkQsNEJBc0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmFtaXhKU09ORXhwb3J0ZXIgfSBmcm9tIFwiLi4vLi4vZmFtaXhfSlNPTl9leHBvcnRlclwiO1xuaW1wb3J0IHsgQ29udGFpbmVyRW50aXR5IH0gZnJvbSBcIi4vY29udGFpbmVyX2VudGl0eVwiO1xuaW1wb3J0IHsgU3RydWN0dXJhbEVudGl0eSB9IGZyb20gXCIuL3N0cnVjdHVyYWxfZW50aXR5XCI7XG5cbmV4cG9ydCBjbGFzcyBWYXJpYWJsZSBleHRlbmRzIFN0cnVjdHVyYWxFbnRpdHkge1xuXG4gICAgcHJpdmF0ZSBfcGFyZW50Q29udGFpbmVyRW50aXR5ITogQ29udGFpbmVyRW50aXR5O1xuXG4gICAgcHVibGljIGdldEpTT04oKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QganNvbjogRmFtaXhKU09ORXhwb3J0ZXIgPSBuZXcgRmFtaXhKU09ORXhwb3J0ZXIoXCJWYXJpYWJsZVwiLCB0aGlzKTtcbiAgICAgICAgdGhpcy5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihqc29uKTtcbiAgICAgICAgcmV0dXJuIGpzb24uZ2V0SlNPTigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcjogRmFtaXhKU09ORXhwb3J0ZXIpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoZXhwb3J0ZXIpO1xuICAgICAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcInBhcmVudEJlaGF2aW91cmFsRW50aXR5XCIsIHRoaXMucGFyZW50Q29udGFpbmVyRW50aXR5KTtcbiAgICB9XG5cbiAgICBnZXQgcGFyZW50Q29udGFpbmVyRW50aXR5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcGFyZW50Q29udGFpbmVyRW50aXR5O1xuICAgIH1cblxuICAgIHNldCBwYXJlbnRDb250YWluZXJFbnRpdHkocGFyZW50Q29udGFpbmVyRW50aXR5OiBDb250YWluZXJFbnRpdHkpIHtcbiAgICAgICAgdGhpcy5fcGFyZW50Q29udGFpbmVyRW50aXR5ID0gcGFyZW50Q29udGFpbmVyRW50aXR5O1xuICAgIH1cbn1cbiJdfQ==
@@ -75,8 +75,8 @@ const calculate = (filePath) => {
75
75
  throw new Error(`File "${filePath}" does not exists`);
76
76
  }
77
77
  const sourceText = (0, fs_1.readFileSync)(filePath).toString();
78
- const source = (0, typescript_1.createSourceFile)(filePath, sourceText, typescript_1.ScriptTarget.ES2015);
78
+ const source = (0, typescript_1.createSourceFile)(filePath.toString(), sourceText, typescript_1.ScriptTarget.ES2015);
79
79
  return calculateFromSource(source);
80
80
  };
81
81
  exports.calculate = calculate;
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ljbG9tYXRpYy1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cy1jb21wbGV4L2N5Y2xvbWF0aWMtc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7OztFQVlFOzs7QUFFRiwyQ0FBb0c7QUFDcEcscUNBQTZDO0FBQzdDLDJCQUE4QztBQUU5QyxNQUFNLFdBQVcsR0FBRyxDQUFDLElBQUksRUFBRSxFQUFFO0lBQzNCLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztJQUNoQyxNQUFNLEdBQUcsR0FBRyxJQUFJLEtBQUssU0FBUyxJQUFJLElBQUEseUJBQVksRUFBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ2hHLE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyxDQUFDO0FBRUYsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLElBQUksRUFBRSxFQUFFO0lBQ25DLDJCQUEyQjtJQUMzQixRQUFRLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNsQixLQUFLLHVCQUFVLENBQUMsVUFBVTtZQUN4QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNwQyxLQUFLLHVCQUFVLENBQUMsV0FBVyxDQUFDO1FBQzVCLEtBQUssdUJBQVUsQ0FBQyxxQkFBcUIsQ0FBQztRQUN0QyxLQUFLLHVCQUFVLENBQUMsV0FBVyxDQUFDO1FBQzVCLEtBQUssdUJBQVUsQ0FBQyxZQUFZLENBQUM7UUFDN0IsS0FBSyx1QkFBVSxDQUFDLGNBQWMsQ0FBQztRQUMvQixLQUFLLHVCQUFVLENBQUMsY0FBYyxDQUFDO1FBQy9CLEtBQUssdUJBQVUsQ0FBQyxXQUFXLENBQUM7UUFDNUIsS0FBSyx1QkFBVSxDQUFDLGNBQWM7WUFDNUIsT0FBTyxJQUFJLENBQUM7UUFFZCxLQUFLLHVCQUFVLENBQUMsZ0JBQWdCO1lBQzlCLFFBQVEsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDaEMsS0FBSyx1QkFBVSxDQUFDLFdBQVcsQ0FBQztnQkFDNUIsS0FBSyx1QkFBVSxDQUFDLHVCQUF1QjtvQkFDckMsT0FBTyxJQUFJLENBQUM7Z0JBQ2Q7b0JBQ0UsT0FBTyxLQUFLLENBQUM7WUFDakIsQ0FBQztRQUVIO1lBQ0UsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUNELDBCQUEwQjtBQUM1QixDQUFDLENBQUM7QUFFRixNQUFNLG1CQUFtQixHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUU7SUFDbEMsSUFBSSxVQUFVLEdBQUcsQ0FBQyxDQUFDO0lBQ25CLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQztJQUNsQixJQUFBLHlCQUFZLEVBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxDQUFDLElBQUk7UUFDaEMsSUFBSSxJQUFBLDRCQUFrQixFQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDN0IsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDO1lBQ3ZCLFVBQVUsR0FBRyxDQUFDLENBQUM7WUFDZixJQUFBLHlCQUFZLEVBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZCLE1BQU0sSUFBSSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQztZQUMzQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDO1lBQzFCLFVBQVUsR0FBRyxHQUFHLENBQUM7UUFDbkIsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLG1CQUFtQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQzlCLFVBQVUsSUFBSSxDQUFDLENBQUM7WUFDbEIsQ0FBQztZQUNELElBQUEseUJBQVksRUFBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDekIsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBRUssTUFBTSxTQUFTLEdBQUcsQ0FBQyxRQUFRLEVBQUUsRUFBRTtJQUNwQyxJQUFJLENBQUMsSUFBQSxlQUFVLEVBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUMxQixNQUFNLElBQUksS0FBSyxDQUFDLFNBQVMsUUFBUSxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFDRCxNQUFNLFVBQVUsR0FBRyxJQUFBLGlCQUFZLEVBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDckQsTUFBTSxNQUFNLEdBQUcsSUFBQSw2QkFBZ0IsRUFBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLHlCQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDM0UsT0FBTyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNyQyxDQUFDLENBQUM7QUFQVyxRQUFBLFNBQVMsYUFPcEIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuUG9ydGlvbnMgb2YgdGhpcyBmaWxlOlxuXG5NSVQgTGljZW5zZVxuXG5Db3B5cmlnaHQgKGMpIDIwMTggQW5hbmQgVW5kYXZpYVxuXG5QZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuXG5UaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cblxuVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuXG4qL1xuXG5pbXBvcnQgeyBmb3JFYWNoQ2hpbGQsIGlzSWRlbnRpZmllciwgU3ludGF4S2luZCwgY3JlYXRlU291cmNlRmlsZSwgU2NyaXB0VGFyZ2V0IH0gZnJvbSAndHlwZXNjcmlwdCc7XG5pbXBvcnQgeyBpc0Z1bmN0aW9uV2l0aEJvZHkgfSBmcm9tICd0c3V0aWxzJztcbmltcG9ydCB7IGV4aXN0c1N5bmMsIHJlYWRGaWxlU3luYyB9IGZyb20gJ2ZzJztcblxuY29uc3QgZ2V0Tm9kZU5hbWUgPSAobm9kZSkgPT4ge1xuICBjb25zdCB7IG5hbWUsIHBvcywgZW5kIH0gPSBub2RlO1xuICBjb25zdCBrZXkgPSBuYW1lICE9PSB1bmRlZmluZWQgJiYgaXNJZGVudGlmaWVyKG5hbWUpID8gbmFtZS50ZXh0IDogSlNPTi5zdHJpbmdpZnkoeyBwb3MsIGVuZCB9KTtcbiAgcmV0dXJuIGtleTtcbn07XG5cbmNvbnN0IGluY3JlYXNlc0NvbXBsZXhpdHkgPSAobm9kZSkgPT4ge1xuICAvKiBlc2xpbnQtZGlzYWJsZSBpbmRlbnQgKi9cbiAgc3dpdGNoIChub2RlLmtpbmQpIHtcbiAgICBjYXNlIFN5bnRheEtpbmQuQ2FzZUNsYXVzZTpcbiAgICAgIHJldHVybiBub2RlLnN0YXRlbWVudHMubGVuZ3RoID4gMDtcbiAgICBjYXNlIFN5bnRheEtpbmQuQ2F0Y2hDbGF1c2U6XG4gICAgY2FzZSBTeW50YXhLaW5kLkNvbmRpdGlvbmFsRXhwcmVzc2lvbjpcbiAgICBjYXNlIFN5bnRheEtpbmQuRG9TdGF0ZW1lbnQ6XG4gICAgY2FzZSBTeW50YXhLaW5kLkZvclN0YXRlbWVudDpcbiAgICBjYXNlIFN5bnRheEtpbmQuRm9ySW5TdGF0ZW1lbnQ6XG4gICAgY2FzZSBTeW50YXhLaW5kLkZvck9mU3RhdGVtZW50OlxuICAgIGNhc2UgU3ludGF4S2luZC5JZlN0YXRlbWVudDpcbiAgICBjYXNlIFN5bnRheEtpbmQuV2hpbGVTdGF0ZW1lbnQ6XG4gICAgICByZXR1cm4gdHJ1ZTtcblxuICAgIGNhc2UgU3ludGF4S2luZC5CaW5hcnlFeHByZXNzaW9uOlxuICAgICAgc3dpdGNoIChub2RlLm9wZXJhdG9yVG9rZW4ua2luZCkge1xuICAgICAgICBjYXNlIFN5bnRheEtpbmQuQmFyQmFyVG9rZW46XG4gICAgICAgIGNhc2UgU3ludGF4S2luZC5BbXBlcnNhbmRBbXBlcnNhbmRUb2tlbjpcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIC8qIGVzbGludC1lbmFibGUgaW5kZW50ICovXG59O1xuXG5jb25zdCBjYWxjdWxhdGVGcm9tU291cmNlID0gKGN0eCkgPT4ge1xuICBsZXQgY29tcGxleGl0eSA9IDA7XG4gIGNvbnN0IG91dHB1dCA9IHt9O1xuICBmb3JFYWNoQ2hpbGQoY3R4LCBmdW5jdGlvbiBjYihub2RlKSB7XG4gICAgaWYgKGlzRnVuY3Rpb25XaXRoQm9keShub2RlKSkge1xuICAgICAgY29uc3Qgb2xkID0gY29tcGxleGl0eTtcbiAgICAgIGNvbXBsZXhpdHkgPSAxO1xuICAgICAgZm9yRWFjaENoaWxkKG5vZGUsIGNiKTtcbiAgICAgIGNvbnN0IG5hbWUgPSBnZXROb2RlTmFtZShub2RlKT8udG9TdHJpbmcoKTtcbiAgICAgIG91dHB1dFtuYW1lXSA9IGNvbXBsZXhpdHk7XG4gICAgICBjb21wbGV4aXR5ID0gb2xkO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoaW5jcmVhc2VzQ29tcGxleGl0eShub2RlKSkge1xuICAgICAgICBjb21wbGV4aXR5ICs9IDE7XG4gICAgICB9XG4gICAgICBmb3JFYWNoQ2hpbGQobm9kZSwgY2IpO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiBvdXRwdXQ7XG59O1xuXG5leHBvcnQgY29uc3QgY2FsY3VsYXRlID0gKGZpbGVQYXRoKSA9PiB7XG4gIGlmICghZXhpc3RzU3luYyhmaWxlUGF0aCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEZpbGUgXCIke2ZpbGVQYXRofVwiIGRvZXMgbm90IGV4aXN0c2ApO1xuICB9XG4gIGNvbnN0IHNvdXJjZVRleHQgPSByZWFkRmlsZVN5bmMoZmlsZVBhdGgpLnRvU3RyaW5nKCk7XG4gIGNvbnN0IHNvdXJjZSA9IGNyZWF0ZVNvdXJjZUZpbGUoZmlsZVBhdGgsIHNvdXJjZVRleHQsIFNjcmlwdFRhcmdldC5FUzIwMTUpO1xuICByZXR1cm4gY2FsY3VsYXRlRnJvbVNvdXJjZShzb3VyY2UpO1xufTtcbiJdfQ==
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ljbG9tYXRpYy1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cy1jb21wbGV4L2N5Y2xvbWF0aWMtc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7OztFQVlFOzs7QUFFRiwyQ0FBaUs7QUFDaksscUNBQTZDO0FBQzdDLDJCQUF3RDtBQUV4RCxNQUFNLFdBQVcsR0FBRyxDQUFDLElBQTZCLEVBQUUsRUFBRTtJQUNwRCxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7SUFDaEMsTUFBTSxHQUFHLEdBQUcsSUFBSSxLQUFLLFNBQVMsSUFBSSxJQUFBLHlCQUFZLEVBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUNoRyxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMsQ0FBQztBQUVGLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxJQUFVLEVBQUUsRUFBRTtJQUN6QywyQkFBMkI7SUFDM0IsUUFBUSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbEIsS0FBSyx1QkFBVSxDQUFDLFVBQVU7WUFDeEIsT0FBUSxJQUFtQixDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ3BELEtBQUssdUJBQVUsQ0FBQyxXQUFXLENBQUM7UUFDNUIsS0FBSyx1QkFBVSxDQUFDLHFCQUFxQixDQUFDO1FBQ3RDLEtBQUssdUJBQVUsQ0FBQyxXQUFXLENBQUM7UUFDNUIsS0FBSyx1QkFBVSxDQUFDLFlBQVksQ0FBQztRQUM3QixLQUFLLHVCQUFVLENBQUMsY0FBYyxDQUFDO1FBQy9CLEtBQUssdUJBQVUsQ0FBQyxjQUFjLENBQUM7UUFDL0IsS0FBSyx1QkFBVSxDQUFDLFdBQVcsQ0FBQztRQUM1QixLQUFLLHVCQUFVLENBQUMsY0FBYztZQUM1QixPQUFPLElBQUksQ0FBQztRQUVkLEtBQUssdUJBQVUsQ0FBQyxnQkFBZ0I7WUFDOUIsUUFBUyxJQUF5QixDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDdEQsS0FBSyx1QkFBVSxDQUFDLFdBQVcsQ0FBQztnQkFDNUIsS0FBSyx1QkFBVSxDQUFDLHVCQUF1QjtvQkFDckMsT0FBTyxJQUFJLENBQUM7Z0JBQ2Q7b0JBQ0UsT0FBTyxLQUFLLENBQUM7WUFDakIsQ0FBQztRQUVIO1lBQ0UsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUNELDBCQUEwQjtBQUM1QixDQUFDLENBQUM7QUFFRixNQUFNLG1CQUFtQixHQUFHLENBQUMsR0FBUyxFQUFFLEVBQUU7SUFDeEMsSUFBSSxVQUFVLEdBQUcsQ0FBQyxDQUFDO0lBQ25CLE1BQU0sTUFBTSxHQUE4QixFQUFFLENBQUM7SUFDN0MsSUFBQSx5QkFBWSxFQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsQ0FBQyxJQUFJO1FBQ2hDLElBQUksSUFBQSw0QkFBa0IsRUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzdCLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQztZQUN2QixVQUFVLEdBQUcsQ0FBQyxDQUFDO1lBQ2YsSUFBQSx5QkFBWSxFQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN2QixNQUFNLElBQUksR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUM7WUFDM0MsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQztZQUMxQixVQUFVLEdBQUcsR0FBRyxDQUFDO1FBQ25CLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUM5QixVQUFVLElBQUksQ0FBQyxDQUFDO1lBQ2xCLENBQUM7WUFDRCxJQUFBLHlCQUFZLEVBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3pCLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUNILE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMsQ0FBQztBQUVLLE1BQU0sU0FBUyxHQUFHLENBQUMsUUFBa0IsRUFBRSxFQUFFO0lBQzlDLElBQUksQ0FBQyxJQUFBLGVBQVUsRUFBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQzFCLE1BQU0sSUFBSSxLQUFLLENBQUMsU0FBUyxRQUFRLG1CQUFtQixDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUNELE1BQU0sVUFBVSxHQUFHLElBQUEsaUJBQVksRUFBQyxRQUFRLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNyRCxNQUFNLE1BQU0sR0FBRyxJQUFBLDZCQUFnQixFQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsRUFBRSxVQUFVLEVBQUUseUJBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN0RixPQUFPLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3JDLENBQUMsQ0FBQztBQVBXLFFBQUEsU0FBUyxhQU9wQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG5Qb3J0aW9ucyBvZiB0aGlzIGZpbGU6XG5cbk1JVCBMaWNlbnNlXG5cbkNvcHlyaWdodCAoYykgMjAxOCBBbmFuZCBVbmRhdmlhXG5cblBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG5cblRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuXG5USEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS5cbiovXG5cbmltcG9ydCB7IGZvckVhY2hDaGlsZCwgaXNJZGVudGlmaWVyLCBTeW50YXhLaW5kLCBjcmVhdGVTb3VyY2VGaWxlLCBTY3JpcHRUYXJnZXQsIE5vZGUsIENhc2VDbGF1c2UsIEJpbmFyeUV4cHJlc3Npb24sIEZ1bmN0aW9uTGlrZURlY2xhcmF0aW9uIH0gZnJvbSAndHlwZXNjcmlwdCc7XG5pbXBvcnQgeyBpc0Z1bmN0aW9uV2l0aEJvZHkgfSBmcm9tICd0c3V0aWxzJztcbmltcG9ydCB7IGV4aXN0c1N5bmMsIFBhdGhMaWtlLCByZWFkRmlsZVN5bmMgfSBmcm9tICdmcyc7XG5cbmNvbnN0IGdldE5vZGVOYW1lID0gKG5vZGU6IEZ1bmN0aW9uTGlrZURlY2xhcmF0aW9uKSA9PiB7XG4gIGNvbnN0IHsgbmFtZSwgcG9zLCBlbmQgfSA9IG5vZGU7XG4gIGNvbnN0IGtleSA9IG5hbWUgIT09IHVuZGVmaW5lZCAmJiBpc0lkZW50aWZpZXIobmFtZSkgPyBuYW1lLnRleHQgOiBKU09OLnN0cmluZ2lmeSh7IHBvcywgZW5kIH0pO1xuICByZXR1cm4ga2V5O1xufTtcblxuY29uc3QgaW5jcmVhc2VzQ29tcGxleGl0eSA9IChub2RlOiBOb2RlKSA9PiB7XG4gIC8qIGVzbGludC1kaXNhYmxlIGluZGVudCAqL1xuICBzd2l0Y2ggKG5vZGUua2luZCkge1xuICAgIGNhc2UgU3ludGF4S2luZC5DYXNlQ2xhdXNlOlxuICAgICAgcmV0dXJuIChub2RlIGFzIENhc2VDbGF1c2UpLnN0YXRlbWVudHMubGVuZ3RoID4gMDtcbiAgICBjYXNlIFN5bnRheEtpbmQuQ2F0Y2hDbGF1c2U6XG4gICAgY2FzZSBTeW50YXhLaW5kLkNvbmRpdGlvbmFsRXhwcmVzc2lvbjpcbiAgICBjYXNlIFN5bnRheEtpbmQuRG9TdGF0ZW1lbnQ6XG4gICAgY2FzZSBTeW50YXhLaW5kLkZvclN0YXRlbWVudDpcbiAgICBjYXNlIFN5bnRheEtpbmQuRm9ySW5TdGF0ZW1lbnQ6XG4gICAgY2FzZSBTeW50YXhLaW5kLkZvck9mU3RhdGVtZW50OlxuICAgIGNhc2UgU3ludGF4S2luZC5JZlN0YXRlbWVudDpcbiAgICBjYXNlIFN5bnRheEtpbmQuV2hpbGVTdGF0ZW1lbnQ6XG4gICAgICByZXR1cm4gdHJ1ZTtcblxuICAgIGNhc2UgU3ludGF4S2luZC5CaW5hcnlFeHByZXNzaW9uOlxuICAgICAgc3dpdGNoICgobm9kZSBhcyBCaW5hcnlFeHByZXNzaW9uKS5vcGVyYXRvclRva2VuLmtpbmQpIHtcbiAgICAgICAgY2FzZSBTeW50YXhLaW5kLkJhckJhclRva2VuOlxuICAgICAgICBjYXNlIFN5bnRheEtpbmQuQW1wZXJzYW5kQW1wZXJzYW5kVG9rZW46XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICAvKiBlc2xpbnQtZW5hYmxlIGluZGVudCAqL1xufTtcblxuY29uc3QgY2FsY3VsYXRlRnJvbVNvdXJjZSA9IChjdHg6IE5vZGUpID0+IHtcbiAgbGV0IGNvbXBsZXhpdHkgPSAwO1xuICBjb25zdCBvdXRwdXQ6IHsgW2tleTogc3RyaW5nXTogbnVtYmVyIH0gPSB7fTtcbiAgZm9yRWFjaENoaWxkKGN0eCwgZnVuY3Rpb24gY2Iobm9kZSkge1xuICAgIGlmIChpc0Z1bmN0aW9uV2l0aEJvZHkobm9kZSkpIHtcbiAgICAgIGNvbnN0IG9sZCA9IGNvbXBsZXhpdHk7XG4gICAgICBjb21wbGV4aXR5ID0gMTtcbiAgICAgIGZvckVhY2hDaGlsZChub2RlLCBjYik7XG4gICAgICBjb25zdCBuYW1lID0gZ2V0Tm9kZU5hbWUobm9kZSk/LnRvU3RyaW5nKCk7XG4gICAgICBvdXRwdXRbbmFtZV0gPSBjb21wbGV4aXR5O1xuICAgICAgY29tcGxleGl0eSA9IG9sZDtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGluY3JlYXNlc0NvbXBsZXhpdHkobm9kZSkpIHtcbiAgICAgICAgY29tcGxleGl0eSArPSAxO1xuICAgICAgfVxuICAgICAgZm9yRWFjaENoaWxkKG5vZGUsIGNiKTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gb3V0cHV0O1xufTtcblxuZXhwb3J0IGNvbnN0IGNhbGN1bGF0ZSA9IChmaWxlUGF0aDogUGF0aExpa2UpID0+IHtcbiAgaWYgKCFleGlzdHNTeW5jKGZpbGVQYXRoKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgRmlsZSBcIiR7ZmlsZVBhdGh9XCIgZG9lcyBub3QgZXhpc3RzYCk7XG4gIH1cbiAgY29uc3Qgc291cmNlVGV4dCA9IHJlYWRGaWxlU3luYyhmaWxlUGF0aCkudG9TdHJpbmcoKTtcbiAgY29uc3Qgc291cmNlID0gY3JlYXRlU291cmNlRmlsZShmaWxlUGF0aC50b1N0cmluZygpLCBzb3VyY2VUZXh0LCBTY3JpcHRUYXJnZXQuRVMyMDE1KTtcbiAgcmV0dXJuIGNhbGN1bGF0ZUZyb21Tb3VyY2Uoc291cmNlKTtcbn07XG4iXX0=