ts2famix 2.0.3 → 2.1.0-beta.2

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 (191) hide show
  1. package/.eslintrc.json +24 -24
  2. package/.vscode/settings.json +4 -0
  3. package/LICENSE +24 -24
  4. package/README.md +78 -78
  5. package/TODO +1 -0
  6. package/arwea-fix.json +1 -0
  7. package/bogus.ts +3 -0
  8. package/class-diagram.puml +792 -0
  9. package/debug.txt +13332 -0
  10. package/debuglog.txt +12073 -0
  11. package/dist/analyze.js +19 -9
  12. package/dist/analyze_functions/process_functions.js +101 -71
  13. package/dist/famix2puml.js +126 -0
  14. package/dist/famix_functions/EntityDictionary.js +881 -509
  15. package/dist/famix_functions/helpers_creation.js +18 -8
  16. package/dist/fqn.js +44 -11
  17. package/dist/getClasses-arrow-body.js +43 -0
  18. package/dist/lib/famix/famix_JSON_exporter.js +1 -1
  19. package/dist/lib/famix/famix_base_element.js +1 -1
  20. package/dist/lib/famix/famix_repository.js +67 -2
  21. package/dist/lib/famix/index.js +18 -8
  22. package/dist/lib/famix/model/famix/access.js +1 -1
  23. package/dist/lib/famix/model/famix/accessor.js +1 -1
  24. package/dist/lib/famix/model/famix/alias.js +1 -1
  25. package/dist/lib/famix/model/famix/arrow_function.js +1 -1
  26. package/dist/lib/famix/model/famix/behavioral_entity.js +1 -1
  27. package/dist/lib/famix/model/famix/class.js +1 -1
  28. package/dist/lib/famix/model/famix/comment.js +1 -1
  29. package/dist/lib/famix/model/famix/concretisation.js +1 -1
  30. package/dist/lib/famix/model/famix/container_entity.js +1 -1
  31. package/dist/lib/famix/model/famix/decorator.js +1 -1
  32. package/dist/lib/famix/model/famix/entity.js +1 -1
  33. package/dist/lib/famix/model/famix/enum.js +1 -1
  34. package/dist/lib/famix/model/famix/enum_value.js +1 -1
  35. package/dist/lib/famix/model/famix/function.js +1 -1
  36. package/dist/lib/famix/model/famix/import_clause.js +1 -1
  37. package/dist/lib/famix/model/famix/index.js +1 -1
  38. package/dist/lib/famix/model/famix/indexed_file_anchor.js +1 -1
  39. package/dist/lib/famix/model/famix/inheritance.js +1 -1
  40. package/dist/lib/famix/model/famix/interface.js +1 -1
  41. package/dist/lib/famix/model/famix/invocation.js +1 -1
  42. package/dist/lib/famix/model/famix/method.js +1 -1
  43. package/dist/lib/famix/model/famix/module.js +1 -1
  44. package/dist/lib/famix/model/famix/named_entity.js +1 -1
  45. package/dist/lib/famix/model/famix/parameter.js +1 -1
  46. package/dist/lib/famix/model/famix/parameter_concretisation.js +1 -1
  47. package/dist/lib/famix/model/famix/parameter_type.js +1 -1
  48. package/dist/lib/famix/model/famix/parametric_arrow_function.js +1 -1
  49. package/dist/lib/famix/model/famix/parametric_class.js +1 -1
  50. package/dist/lib/famix/model/famix/parametric_function.js +1 -1
  51. package/dist/lib/famix/model/famix/parametric_interface.js +1 -1
  52. package/dist/lib/famix/model/famix/parametric_method.js +1 -1
  53. package/dist/lib/famix/model/famix/primitive_type.js +1 -1
  54. package/dist/lib/famix/model/famix/property.js +1 -1
  55. package/dist/lib/famix/model/famix/reference.js +1 -1
  56. package/dist/lib/famix/model/famix/scoping_entity.js +1 -1
  57. package/dist/lib/famix/model/famix/script_entity.js +1 -1
  58. package/dist/lib/famix/model/famix/source_anchor.js +1 -1
  59. package/dist/lib/famix/model/famix/source_language.js +1 -1
  60. package/dist/lib/famix/model/famix/sourced_entity.js +1 -1
  61. package/dist/lib/famix/model/famix/structural_entity.js +1 -1
  62. package/dist/lib/famix/model/famix/type.js +1 -1
  63. package/dist/lib/famix/model/famix/variable.js +1 -1
  64. package/dist/lib/famix/src/famix_JSON_exporter.js +55 -0
  65. package/dist/lib/famix/src/famix_base_element.js +18 -0
  66. package/dist/lib/famix/src/famix_repository.js +224 -0
  67. package/dist/lib/famix/src/index.js +31 -0
  68. package/dist/lib/famix/src/model/famix/access.js +40 -0
  69. package/dist/lib/famix/src/model/famix/accessor.js +17 -0
  70. package/dist/lib/famix/src/model/famix/alias.js +33 -0
  71. package/dist/lib/famix/src/model/famix/arrowFunction.js +17 -0
  72. package/dist/lib/famix/src/model/famix/arrow_function.js +17 -0
  73. package/dist/lib/famix/src/model/famix/behavioral_entity.js +79 -0
  74. package/dist/lib/famix/src/model/famix/class.js +71 -0
  75. package/dist/lib/famix/src/model/famix/comment.js +39 -0
  76. package/dist/lib/famix/src/model/famix/concretisation.js +31 -0
  77. package/dist/lib/famix/src/model/famix/container_entity.js +126 -0
  78. package/dist/lib/famix/src/model/famix/decorator.js +32 -0
  79. package/dist/lib/famix/src/model/famix/entity.js +17 -0
  80. package/dist/lib/famix/src/model/famix/enum.js +31 -0
  81. package/dist/lib/famix/src/model/famix/enum_value.js +25 -0
  82. package/dist/lib/famix/src/model/famix/function.js +17 -0
  83. package/dist/lib/famix/src/model/famix/implicit_variable.js +17 -0
  84. package/dist/lib/famix/src/model/famix/import_clause.js +41 -0
  85. package/dist/lib/famix/src/model/famix/index.js +86 -0
  86. package/dist/lib/famix/src/model/famix/indexed_file_anchor.js +38 -0
  87. package/dist/lib/famix/src/model/famix/inheritance.js +33 -0
  88. package/dist/lib/famix/src/model/famix/interface.js +64 -0
  89. package/dist/lib/famix/src/model/famix/invocation.js +54 -0
  90. package/dist/lib/famix/src/model/famix/method.js +67 -0
  91. package/dist/lib/famix/src/model/famix/module.js +60 -0
  92. package/dist/lib/famix/src/model/famix/named_entity.js +78 -0
  93. package/dist/lib/famix/src/model/famix/parameter.js +25 -0
  94. package/dist/lib/famix/src/model/famix/parameterConcretisation.js +44 -0
  95. package/dist/lib/famix/src/model/famix/parameter_concretisation.js +44 -0
  96. package/dist/lib/famix/src/model/famix/parameter_type.js +45 -0
  97. package/dist/lib/famix/src/model/famix/parametricArrowFunction.js +29 -0
  98. package/dist/lib/famix/src/model/famix/parametric_arrow_function.js +31 -0
  99. package/dist/lib/famix/src/model/famix/parametric_class.js +44 -0
  100. package/dist/lib/famix/src/model/famix/parametric_function.js +31 -0
  101. package/dist/lib/famix/src/model/famix/parametric_interface.js +44 -0
  102. package/dist/lib/famix/src/model/famix/parametric_method.js +31 -0
  103. package/dist/lib/famix/src/model/famix/primitive_type.js +17 -0
  104. package/dist/lib/famix/src/model/famix/property.js +73 -0
  105. package/dist/lib/famix/src/model/famix/reference.js +33 -0
  106. package/dist/lib/famix/src/model/famix/scoping_entity.js +36 -0
  107. package/dist/lib/famix/src/model/famix/script_entity.js +29 -0
  108. package/dist/lib/famix/src/model/famix/source_anchor.js +27 -0
  109. package/dist/lib/famix/src/model/famix/source_language.js +35 -0
  110. package/dist/lib/famix/src/model/famix/sourced_entity.js +60 -0
  111. package/dist/lib/famix/src/model/famix/structural_entity.js +39 -0
  112. package/dist/lib/famix/src/model/famix/text_anchor.js +38 -0
  113. package/dist/lib/famix/src/model/famix/type.js +73 -0
  114. package/dist/lib/famix/src/model/famix/variable.js +24 -0
  115. package/dist/lib/ts-complex/cyclomatic-service.js +1 -1
  116. package/dist/refactorer/refactor-getter-setter.js +18 -8
  117. package/dist/ts2famix-cli-wrapper.js +18 -8
  118. package/dist/ts2famix-cli.js +18 -8
  119. package/dist/ts2famix-tsconfig.js +18 -8
  120. package/doc-uml/famix-typescript-model.puml +607 -607
  121. package/eslint.config.mjs +28 -0
  122. package/fqn-model.json +1 -0
  123. package/iterateGenericTypes.ts +69 -0
  124. package/out/class-diagram/class-diagram.svg +1 -0
  125. package/package.json +70 -66
  126. package/sample.json +1 -0
  127. package/sample.ts +1 -0
  128. package/src/analyze.ts +120 -120
  129. package/src/analyze_functions/process_functions.ts +1040 -1019
  130. package/src/famix_functions/EntityDictionary.ts +2016 -1593
  131. package/src/famix_functions/helpers_creation.ts +135 -135
  132. package/src/fqn.ts +50 -16
  133. package/src/generate_uml.sh +20 -20
  134. package/src/lib/famix/License.md +22 -22
  135. package/src/lib/famix/famix_JSON_exporter.ts +56 -56
  136. package/src/lib/famix/famix_base_element.ts +22 -22
  137. package/src/lib/famix/famix_repository.ts +278 -243
  138. package/src/lib/famix/index.ts +8 -8
  139. package/src/lib/famix/model/famix/access.ts +50 -50
  140. package/src/lib/famix/model/famix/accessor.ts +15 -15
  141. package/src/lib/famix/model/famix/alias.ts +39 -39
  142. package/src/lib/famix/model/famix/arrow_function.ts +15 -15
  143. package/src/lib/famix/model/famix/behavioral_entity.ts +97 -97
  144. package/src/lib/famix/model/famix/class.ts +85 -85
  145. package/src/lib/famix/model/famix/comment.ts +47 -47
  146. package/src/lib/famix/model/famix/concretisation.ts +40 -40
  147. package/src/lib/famix/model/famix/container_entity.ts +160 -160
  148. package/src/lib/famix/model/famix/decorator.ts +37 -37
  149. package/src/lib/famix/model/famix/entity.ts +15 -15
  150. package/src/lib/famix/model/famix/enum.ts +30 -30
  151. package/src/lib/famix/model/famix/enum_value.ts +28 -28
  152. package/src/lib/famix/model/famix/function.ts +15 -15
  153. package/src/lib/famix/model/famix/import_clause.ts +51 -51
  154. package/src/lib/famix/model/famix/index.ts +41 -41
  155. package/src/lib/famix/model/famix/indexed_file_anchor.ts +46 -46
  156. package/src/lib/famix/model/famix/inheritance.ts +40 -40
  157. package/src/lib/famix/model/famix/interface.ts +75 -75
  158. package/src/lib/famix/model/famix/invocation.ts +65 -65
  159. package/src/lib/famix/model/famix/method.ts +89 -89
  160. package/src/lib/famix/model/famix/module.ts +71 -71
  161. package/src/lib/famix/model/famix/named_entity.ts +95 -95
  162. package/src/lib/famix/model/famix/parameter.ts +28 -28
  163. package/src/lib/famix/model/famix/parameter_concretisation.ts +51 -51
  164. package/src/lib/famix/model/famix/parameter_type.ts +58 -58
  165. package/src/lib/famix/model/famix/parametric_arrow_function.ts +32 -32
  166. package/src/lib/famix/model/famix/parametric_class.ts +49 -49
  167. package/src/lib/famix/model/famix/parametric_function.ts +32 -32
  168. package/src/lib/famix/model/famix/parametric_interface.ts +49 -49
  169. package/src/lib/famix/model/famix/parametric_method.ts +32 -32
  170. package/src/lib/famix/model/famix/primitive_type.ts +15 -15
  171. package/src/lib/famix/model/famix/property.ts +94 -94
  172. package/src/lib/famix/model/famix/reference.ts +40 -40
  173. package/src/lib/famix/model/famix/scoping_entity.ts +35 -35
  174. package/src/lib/famix/model/famix/script_entity.ts +34 -34
  175. package/src/lib/famix/model/famix/source_anchor.ts +30 -30
  176. package/src/lib/famix/model/famix/source_language.ts +35 -35
  177. package/src/lib/famix/model/famix/sourced_entity.ts +70 -70
  178. package/src/lib/famix/model/famix/structural_entity.ts +43 -43
  179. package/src/lib/famix/model/famix/type.ts +87 -87
  180. package/src/lib/famix/model/famix/variable.ts +27 -27
  181. package/src/lib/famix/package.json +28 -28
  182. package/src/lib/ts-complex/cyclomatic-service.ts +83 -83
  183. package/src/refactorer/refactor-getter-setter.ts +140 -140
  184. package/src/ts2famix-cli-wrapper.ts +21 -21
  185. package/src/ts2famix-cli.ts +60 -60
  186. package/stats.txt +3091 -0
  187. package/tabby-debug-output.txt +19433 -0
  188. package/ts2famix.log +22656 -0
  189. package/tsconfig.check-tests.json +14 -14
  190. package/tsconfig.json +72 -72
  191. package/validate-references.js +103 -0
@@ -36,4 +36,4 @@ class StructuralEntity extends named_entity_1.NamedEntity {
36
36
  }
37
37
  }
38
38
  exports.StructuralEntity = StructuralEntity;
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RydWN0dXJhbF9lbnRpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ZhbWl4L21vZGVsL2ZhbWl4L3N0cnVjdHVyYWxfZW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1FQUE4RDtBQUc5RCxpREFBNkM7QUFFN0MsTUFBYSxnQkFBaUIsU0FBUSwwQkFBVztJQUFqRDs7UUFFWSxzQkFBaUIsR0FBZ0IsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQW1DdkQsQ0FBQztJQWpDVSxpQkFBaUIsQ0FBQyxjQUFzQjtRQUMzQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO1lBQzlDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDM0MsY0FBYyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDbkMsQ0FBQztJQUNMLENBQUM7SUFJTSxPQUFPO1FBQ1YsTUFBTSxJQUFJLEdBQXNCLElBQUksdUNBQWlCLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDaEYsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxRQUEyQjtRQUN0RCxLQUFLLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNoRSxRQUFRLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDWixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQUksWUFBWSxDQUFDLFlBQWtCO1FBQy9CLElBQUksQ0FBQyxhQUFhLEdBQUcsWUFBWSxDQUFDO1FBQ2xDLFlBQVksQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwRCxDQUFDO0NBQ0o7QUFyQ0QsNENBcUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmFtaXhKU09ORXhwb3J0ZXIgfSBmcm9tIFwiLi4vLi4vZmFtaXhfSlNPTl9leHBvcnRlclwiO1xuaW1wb3J0IHsgVHlwZSB9IGZyb20gXCIuL3R5cGVcIjtcbmltcG9ydCB7IEFjY2VzcyB9IGZyb20gXCIuL2FjY2Vzc1wiO1xuaW1wb3J0IHsgTmFtZWRFbnRpdHkgfSBmcm9tIFwiLi9uYW1lZF9lbnRpdHlcIjtcblxuZXhwb3J0IGNsYXNzIFN0cnVjdHVyYWxFbnRpdHkgZXh0ZW5kcyBOYW1lZEVudGl0eSB7XG5cbiAgICBwcml2YXRlIF9pbmNvbWluZ0FjY2Vzc2VzOiBTZXQ8QWNjZXNzPiA9IG5ldyBTZXQoKTtcblxuICAgIHB1YmxpYyBhZGRJbmNvbWluZ0FjY2VzcyhpbmNvbWluZ0FjY2VzczogQWNjZXNzKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5faW5jb21pbmdBY2Nlc3Nlcy5oYXMoaW5jb21pbmdBY2Nlc3MpKSB7XG4gICAgICAgICAgICB0aGlzLl9pbmNvbWluZ0FjY2Vzc2VzLmFkZChpbmNvbWluZ0FjY2Vzcyk7XG4gICAgICAgICAgICBpbmNvbWluZ0FjY2Vzcy52YXJpYWJsZSA9IHRoaXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9kZWNsYXJlZFR5cGUhOiBUeXBlO1xuXG4gICAgcHVibGljIGdldEpTT04oKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QganNvbjogRmFtaXhKU09ORXhwb3J0ZXIgPSBuZXcgRmFtaXhKU09ORXhwb3J0ZXIoXCJTdHJ1Y3R1cmFsRW50aXR5XCIsIHRoaXMpO1xuICAgICAgICB0aGlzLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGpzb24pO1xuICAgICAgICByZXR1cm4ganNvbi5nZXRKU09OKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyOiBGYW1peEpTT05FeHBvcnRlcik6IHZvaWQge1xuICAgICAgICBzdXBlci5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcik7XG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwiaW5jb21pbmdBY2Nlc3Nlc1wiLCB0aGlzLmluY29taW5nQWNjZXNzZXMpO1xuICAgICAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcImRlY2xhcmVkVHlwZVwiLCB0aGlzLmRlY2xhcmVkVHlwZSk7XG4gICAgfVxuXG4gICAgZ2V0IGluY29taW5nQWNjZXNzZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbmNvbWluZ0FjY2Vzc2VzO1xuICAgIH1cblxuICAgIGdldCBkZWNsYXJlZFR5cGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWNsYXJlZFR5cGU7XG4gICAgfVxuXG4gICAgc2V0IGRlY2xhcmVkVHlwZShkZWNsYXJlZFR5cGU6IFR5cGUpIHtcbiAgICAgICAgdGhpcy5fZGVjbGFyZWRUeXBlID0gZGVjbGFyZWRUeXBlO1xuICAgICAgICBkZWNsYXJlZFR5cGUuYWRkU3RydWN0dXJlV2l0aERlY2xhcmVkVHlwZSh0aGlzKTtcbiAgICB9XG59XG4iXX0=
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RydWN0dXJhbF9lbnRpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ZhbWl4L21vZGVsL2ZhbWl4L3N0cnVjdHVyYWxfZW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1FQUE4RDtBQUc5RCxpREFBNkM7QUFFN0MsTUFBYSxnQkFBaUIsU0FBUSwwQkFBVztJQUFqRDs7UUFFWSxzQkFBaUIsR0FBZ0IsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQW1DdkQsQ0FBQztJQWpDVSxpQkFBaUIsQ0FBQyxjQUFzQjtRQUMzQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO1lBQzlDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDM0MsY0FBYyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDbkMsQ0FBQztJQUNMLENBQUM7SUFJTSxPQUFPO1FBQ1YsTUFBTSxJQUFJLEdBQXNCLElBQUksdUNBQWlCLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDaEYsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxRQUEyQjtRQUN0RCxLQUFLLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNoRSxRQUFRLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDWixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQUksWUFBWSxDQUFDLFlBQWtCO1FBQy9CLElBQUksQ0FBQyxhQUFhLEdBQUcsWUFBWSxDQUFDO1FBQ2xDLFlBQVksQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwRCxDQUFDO0NBQ0o7QUFyQ0QsNENBcUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmFtaXhKU09ORXhwb3J0ZXIgfSBmcm9tIFwiLi4vLi4vZmFtaXhfSlNPTl9leHBvcnRlclwiO1xyXG5pbXBvcnQgeyBUeXBlIH0gZnJvbSBcIi4vdHlwZVwiO1xyXG5pbXBvcnQgeyBBY2Nlc3MgfSBmcm9tIFwiLi9hY2Nlc3NcIjtcclxuaW1wb3J0IHsgTmFtZWRFbnRpdHkgfSBmcm9tIFwiLi9uYW1lZF9lbnRpdHlcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBTdHJ1Y3R1cmFsRW50aXR5IGV4dGVuZHMgTmFtZWRFbnRpdHkge1xyXG5cclxuICAgIHByaXZhdGUgX2luY29taW5nQWNjZXNzZXM6IFNldDxBY2Nlc3M+ID0gbmV3IFNldCgpO1xyXG5cclxuICAgIHB1YmxpYyBhZGRJbmNvbWluZ0FjY2VzcyhpbmNvbWluZ0FjY2VzczogQWNjZXNzKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLl9pbmNvbWluZ0FjY2Vzc2VzLmhhcyhpbmNvbWluZ0FjY2VzcykpIHtcclxuICAgICAgICAgICAgdGhpcy5faW5jb21pbmdBY2Nlc3Nlcy5hZGQoaW5jb21pbmdBY2Nlc3MpO1xyXG4gICAgICAgICAgICBpbmNvbWluZ0FjY2Vzcy52YXJpYWJsZSA9IHRoaXM7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2RlY2xhcmVkVHlwZSE6IFR5cGU7XHJcblxyXG4gICAgcHVibGljIGdldEpTT04oKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBqc29uOiBGYW1peEpTT05FeHBvcnRlciA9IG5ldyBGYW1peEpTT05FeHBvcnRlcihcIlN0cnVjdHVyYWxFbnRpdHlcIiwgdGhpcyk7XHJcbiAgICAgICAgdGhpcy5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihqc29uKTtcclxuICAgICAgICByZXR1cm4ganNvbi5nZXRKU09OKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyOiBGYW1peEpTT05FeHBvcnRlcik6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyKTtcclxuICAgICAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcImluY29taW5nQWNjZXNzZXNcIiwgdGhpcy5pbmNvbWluZ0FjY2Vzc2VzKTtcclxuICAgICAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcImRlY2xhcmVkVHlwZVwiLCB0aGlzLmRlY2xhcmVkVHlwZSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGluY29taW5nQWNjZXNzZXMoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2luY29taW5nQWNjZXNzZXM7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGRlY2xhcmVkVHlwZSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZGVjbGFyZWRUeXBlO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBkZWNsYXJlZFR5cGUoZGVjbGFyZWRUeXBlOiBUeXBlKSB7XHJcbiAgICAgICAgdGhpcy5fZGVjbGFyZWRUeXBlID0gZGVjbGFyZWRUeXBlO1xyXG4gICAgICAgIGRlY2xhcmVkVHlwZS5hZGRTdHJ1Y3R1cmVXaXRoRGVjbGFyZWRUeXBlKHRoaXMpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -70,4 +70,4 @@ class Type extends container_entity_1.ContainerEntity {
70
70
  }
71
71
  }
72
72
  exports.Type = Type;
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZmFtaXgvbW9kZWwvZmFtaXgvdHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtRUFBOEQ7QUFFOUQseURBQXFEO0FBS3JELE1BQWEsSUFBSyxTQUFRLGtDQUFlO0lBQXpDOztRQUdZLGlCQUFZLEdBQWUsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQVNyQyxnQ0FBMkIsR0FBMEIsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQVMvRCx3Q0FBbUMsR0FBMEIsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQVN2RSx3QkFBbUIsR0FBbUIsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQWlENUQsQ0FBQztJQTFFVSxZQUFZLENBQUMsU0FBZ0I7UUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDakMsU0FBUyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDbkMsQ0FBQztJQUNMLENBQUM7SUFJTSw0QkFBNEIsQ0FBQyx5QkFBMkM7UUFDM0UsSUFBSSxDQUFDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsRUFBRSxDQUFDO1lBQ25FLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsQ0FBQztZQUNoRSx5QkFBeUIsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ2xELENBQUM7SUFDTCxDQUFDO0lBSU0sbUNBQW1DLENBQUMsZ0NBQWtEO1FBQ3pGLElBQUksQ0FBQyxJQUFJLENBQUMsbUNBQW1DLENBQUMsR0FBRyxDQUFDLGdDQUFnQyxDQUFDLEVBQUUsQ0FBQztZQUNsRixJQUFJLENBQUMsbUNBQW1DLENBQUMsR0FBRyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7WUFDL0UsZ0NBQWdDLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6RCxDQUFDO0lBQ0wsQ0FBQztJQUlNLG9CQUFvQixDQUFDLGlCQUE0QjtRQUNwRCxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7WUFDbkQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQ2hELGlCQUFpQixDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDcEMsQ0FBQztJQUNMLENBQUM7SUFFTSxPQUFPO1FBQ1YsTUFBTSxJQUFJLEdBQXNCLElBQUksdUNBQWlCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU0sdUJBQXVCLENBQUMsUUFBMkI7UUFDdEQsS0FBSyxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hDLFFBQVEsQ0FBQyxXQUFXLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN0RCx5Q0FBeUM7UUFDekMsOERBQThEO1FBQzlELDRGQUE0RjtRQUM1Riw0R0FBNEc7UUFDNUcsUUFBUSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFJLFNBQVMsQ0FBQyxTQUEwQjtRQUNwQyxJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztRQUM1QixTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksMEJBQTBCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLDJCQUEyQixDQUFDO0lBQzVDLENBQUM7SUFFRCxJQUFJLGtDQUFrQztRQUNsQyxPQUFPLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsSUFBSSxrQkFBa0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDcEMsQ0FBQztDQUNKO0FBL0VELG9CQStFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZhbWl4SlNPTkV4cG9ydGVyIH0gZnJvbSBcIi4uLy4uL2ZhbWl4X0pTT05fZXhwb3J0ZXJcIjtcbmltcG9ydCB7IFN0cnVjdHVyYWxFbnRpdHkgfSBmcm9tIFwiLi9zdHJ1Y3R1cmFsX2VudGl0eVwiO1xuaW1wb3J0IHsgQ29udGFpbmVyRW50aXR5IH0gZnJvbSBcIi4vY29udGFpbmVyX2VudGl0eVwiO1xuaW1wb3J0IHsgUmVmZXJlbmNlIH0gZnJvbSBcIi4vcmVmZXJlbmNlXCI7XG5pbXBvcnQgeyBCZWhhdmlvcmFsRW50aXR5IH0gZnJvbSBcIi4vYmVoYXZpb3JhbF9lbnRpdHlcIjtcbmltcG9ydCB7IEFsaWFzIH0gZnJvbSBcIi4vYWxpYXNcIjtcblxuZXhwb3J0IGNsYXNzIFR5cGUgZXh0ZW5kcyBDb250YWluZXJFbnRpdHkge1xuXG4gICAgcHJpdmF0ZSBfY29udGFpbmVyITogQ29udGFpbmVyRW50aXR5O1xuICAgIHByaXZhdGUgX3R5cGVBbGlhc2VzOiBTZXQ8QWxpYXM+ID0gbmV3IFNldCgpO1xuXG4gICAgcHVibGljIGFkZFR5cGVBbGlhcyh0eXBlQWxpYXM6IEFsaWFzKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5fdHlwZUFsaWFzZXMuaGFzKHR5cGVBbGlhcykpIHtcbiAgICAgICAgICAgIHRoaXMuX3R5cGVBbGlhc2VzLmFkZCh0eXBlQWxpYXMpO1xuICAgICAgICAgICAgdHlwZUFsaWFzLmFsaWFzZWRFbnRpdHkgPSB0aGlzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc3RydWN0dXJlc1dpdGhEZWNsYXJlZFR5cGU6IFNldDxTdHJ1Y3R1cmFsRW50aXR5PiA9IG5ldyBTZXQoKTtcblxuICAgIHB1YmxpYyBhZGRTdHJ1Y3R1cmVXaXRoRGVjbGFyZWRUeXBlKHN0cnVjdHVyZVdpdGhEZWNsYXJlZFR5cGU6IFN0cnVjdHVyYWxFbnRpdHkpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9zdHJ1Y3R1cmVzV2l0aERlY2xhcmVkVHlwZS5oYXMoc3RydWN0dXJlV2l0aERlY2xhcmVkVHlwZSkpIHtcbiAgICAgICAgICAgIHRoaXMuX3N0cnVjdHVyZXNXaXRoRGVjbGFyZWRUeXBlLmFkZChzdHJ1Y3R1cmVXaXRoRGVjbGFyZWRUeXBlKTtcbiAgICAgICAgICAgIHN0cnVjdHVyZVdpdGhEZWNsYXJlZFR5cGUuZGVjbGFyZWRUeXBlID0gdGhpcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2JlaGF2aW9yYWxFbnRpdGllc1dpdGhEZWNsYXJlZFR5cGU6IFNldDxCZWhhdmlvcmFsRW50aXR5PiA9IG5ldyBTZXQoKTtcblxuICAgIHB1YmxpYyBhZGRCZWhhdmlvcmFsRW50aXR5V2l0aERlY2xhcmVkVHlwZShiZWhhdmlvcmFsRW50aXR5V2l0aERlY2xhcmVkVHlwZTogQmVoYXZpb3JhbEVudGl0eSk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2JlaGF2aW9yYWxFbnRpdGllc1dpdGhEZWNsYXJlZFR5cGUuaGFzKGJlaGF2aW9yYWxFbnRpdHlXaXRoRGVjbGFyZWRUeXBlKSkge1xuICAgICAgICAgICAgdGhpcy5fYmVoYXZpb3JhbEVudGl0aWVzV2l0aERlY2xhcmVkVHlwZS5hZGQoYmVoYXZpb3JhbEVudGl0eVdpdGhEZWNsYXJlZFR5cGUpO1xuICAgICAgICAgICAgYmVoYXZpb3JhbEVudGl0eVdpdGhEZWNsYXJlZFR5cGUuZGVjbGFyZWRUeXBlID0gdGhpcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2luY29taW5nUmVmZXJlbmNlczogU2V0PFJlZmVyZW5jZT4gPSBuZXcgU2V0KCk7XG5cbiAgICBwdWJsaWMgYWRkSW5jb21pbmdSZWZlcmVuY2UoaW5jb21pbmdSZWZlcmVuY2U6IFJlZmVyZW5jZSk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2luY29taW5nUmVmZXJlbmNlcy5oYXMoaW5jb21pbmdSZWZlcmVuY2UpKSB7XG4gICAgICAgICAgICB0aGlzLl9pbmNvbWluZ1JlZmVyZW5jZXMuYWRkKGluY29taW5nUmVmZXJlbmNlKTtcbiAgICAgICAgICAgIGluY29taW5nUmVmZXJlbmNlLnRhcmdldCA9IHRoaXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0SlNPTigpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBqc29uOiBGYW1peEpTT05FeHBvcnRlciA9IG5ldyBGYW1peEpTT05FeHBvcnRlcihcIlR5cGVcIiwgdGhpcyk7XG4gICAgICAgIHRoaXMuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoanNvbik7XG4gICAgICAgIHJldHVybiBqc29uLmdldEpTT04oKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoZXhwb3J0ZXI6IEZhbWl4SlNPTkV4cG9ydGVyKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyKTtcbiAgICAgICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJ0eXBlQ29udGFpbmVyXCIsIHRoaXMuY29udGFpbmVyKTtcbiAgICAgICAgLyogdW5zdXBwb3J0ZWQgcHJvcGVydGllcyBpbiBNTSBzbyBmYXIgKi9cbiAgICAgICAgLy8gZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJ0eXBlQWxpYXNlc1wiLCB0aGlzLmdldFR5cGVBbGlhc2VzKCkpO1xuICAgICAgICAvLyBleHBvcnRlci5hZGRQcm9wZXJ0eShcInN0cnVjdHVyZXNXaXRoRGVjbGFyZWRUeXBlXCIsIHRoaXMuZ2V0U3RydWN0dXJlc1dpdGhEZWNsYXJlZFR5cGUoKSk7XG4gICAgICAgIC8vIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwiYmVoYXZpb3JhbEVudGl0aWVzV2l0aERlY2xhcmVkVHlwZVwiLCB0aGlzLmdldEJlaGF2aW9yYWxFbnRpdGllc1dpdGhEZWNsYXJlZFR5cGUoKSk7XG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwiaW5jb21pbmdSZWZlcmVuY2VzXCIsIHRoaXMuaW5jb21pbmdSZWZlcmVuY2VzKTtcbiAgICB9XG5cbiAgICBnZXQgY29udGFpbmVyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29udGFpbmVyO1xuICAgIH1cblxuICAgIHNldCBjb250YWluZXIoY29udGFpbmVyOiBDb250YWluZXJFbnRpdHkpIHtcbiAgICAgICAgdGhpcy5fY29udGFpbmVyID0gY29udGFpbmVyO1xuICAgICAgICBjb250YWluZXIuYWRkVHlwZSh0aGlzKTtcbiAgICB9XG5cbiAgICBnZXQgdHlwZUFsaWFzZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90eXBlQWxpYXNlcztcbiAgICB9XG5cbiAgICBnZXQgc3RydWN0dXJlc1dpdGhEZWNsYXJlZFR5cGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdHJ1Y3R1cmVzV2l0aERlY2xhcmVkVHlwZTtcbiAgICB9XG5cbiAgICBnZXQgYmVoYXZpb3JhbEVudGl0aWVzV2l0aERlY2xhcmVkVHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2JlaGF2aW9yYWxFbnRpdGllc1dpdGhEZWNsYXJlZFR5cGU7XG4gICAgfVxuXG4gICAgZ2V0IGluY29taW5nUmVmZXJlbmNlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2luY29taW5nUmVmZXJlbmNlcztcbiAgICB9XG59XG4iXX0=
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZmFtaXgvbW9kZWwvZmFtaXgvdHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtRUFBOEQ7QUFFOUQseURBQXFEO0FBS3JELE1BQWEsSUFBSyxTQUFRLGtDQUFlO0lBQXpDOztRQUdZLGlCQUFZLEdBQWUsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQVNyQyxnQ0FBMkIsR0FBMEIsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQVMvRCx3Q0FBbUMsR0FBMEIsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQVN2RSx3QkFBbUIsR0FBbUIsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQWlENUQsQ0FBQztJQTFFVSxZQUFZLENBQUMsU0FBZ0I7UUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDakMsU0FBUyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDbkMsQ0FBQztJQUNMLENBQUM7SUFJTSw0QkFBNEIsQ0FBQyx5QkFBMkM7UUFDM0UsSUFBSSxDQUFDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsRUFBRSxDQUFDO1lBQ25FLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsQ0FBQztZQUNoRSx5QkFBeUIsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ2xELENBQUM7SUFDTCxDQUFDO0lBSU0sbUNBQW1DLENBQUMsZ0NBQWtEO1FBQ3pGLElBQUksQ0FBQyxJQUFJLENBQUMsbUNBQW1DLENBQUMsR0FBRyxDQUFDLGdDQUFnQyxDQUFDLEVBQUUsQ0FBQztZQUNsRixJQUFJLENBQUMsbUNBQW1DLENBQUMsR0FBRyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7WUFDL0UsZ0NBQWdDLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6RCxDQUFDO0lBQ0wsQ0FBQztJQUlNLG9CQUFvQixDQUFDLGlCQUE0QjtRQUNwRCxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7WUFDbkQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQ2hELGlCQUFpQixDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDcEMsQ0FBQztJQUNMLENBQUM7SUFFTSxPQUFPO1FBQ1YsTUFBTSxJQUFJLEdBQXNCLElBQUksdUNBQWlCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU0sdUJBQXVCLENBQUMsUUFBMkI7UUFDdEQsS0FBSyxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hDLFFBQVEsQ0FBQyxXQUFXLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN0RCx5Q0FBeUM7UUFDekMsOERBQThEO1FBQzlELDRGQUE0RjtRQUM1Riw0R0FBNEc7UUFDNUcsUUFBUSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFJLFNBQVMsQ0FBQyxTQUEwQjtRQUNwQyxJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztRQUM1QixTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksMEJBQTBCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLDJCQUEyQixDQUFDO0lBQzVDLENBQUM7SUFFRCxJQUFJLGtDQUFrQztRQUNsQyxPQUFPLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsSUFBSSxrQkFBa0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDcEMsQ0FBQztDQUNKO0FBL0VELG9CQStFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZhbWl4SlNPTkV4cG9ydGVyIH0gZnJvbSBcIi4uLy4uL2ZhbWl4X0pTT05fZXhwb3J0ZXJcIjtcclxuaW1wb3J0IHsgU3RydWN0dXJhbEVudGl0eSB9IGZyb20gXCIuL3N0cnVjdHVyYWxfZW50aXR5XCI7XHJcbmltcG9ydCB7IENvbnRhaW5lckVudGl0eSB9IGZyb20gXCIuL2NvbnRhaW5lcl9lbnRpdHlcIjtcclxuaW1wb3J0IHsgUmVmZXJlbmNlIH0gZnJvbSBcIi4vcmVmZXJlbmNlXCI7XHJcbmltcG9ydCB7IEJlaGF2aW9yYWxFbnRpdHkgfSBmcm9tIFwiLi9iZWhhdmlvcmFsX2VudGl0eVwiO1xyXG5pbXBvcnQgeyBBbGlhcyB9IGZyb20gXCIuL2FsaWFzXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgVHlwZSBleHRlbmRzIENvbnRhaW5lckVudGl0eSB7XHJcblxyXG4gICAgcHJpdmF0ZSBfY29udGFpbmVyITogQ29udGFpbmVyRW50aXR5O1xyXG4gICAgcHJpdmF0ZSBfdHlwZUFsaWFzZXM6IFNldDxBbGlhcz4gPSBuZXcgU2V0KCk7XHJcblxyXG4gICAgcHVibGljIGFkZFR5cGVBbGlhcyh0eXBlQWxpYXM6IEFsaWFzKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLl90eXBlQWxpYXNlcy5oYXModHlwZUFsaWFzKSkge1xyXG4gICAgICAgICAgICB0aGlzLl90eXBlQWxpYXNlcy5hZGQodHlwZUFsaWFzKTtcclxuICAgICAgICAgICAgdHlwZUFsaWFzLmFsaWFzZWRFbnRpdHkgPSB0aGlzO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9zdHJ1Y3R1cmVzV2l0aERlY2xhcmVkVHlwZTogU2V0PFN0cnVjdHVyYWxFbnRpdHk+ID0gbmV3IFNldCgpO1xyXG5cclxuICAgIHB1YmxpYyBhZGRTdHJ1Y3R1cmVXaXRoRGVjbGFyZWRUeXBlKHN0cnVjdHVyZVdpdGhEZWNsYXJlZFR5cGU6IFN0cnVjdHVyYWxFbnRpdHkpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMuX3N0cnVjdHVyZXNXaXRoRGVjbGFyZWRUeXBlLmhhcyhzdHJ1Y3R1cmVXaXRoRGVjbGFyZWRUeXBlKSkge1xyXG4gICAgICAgICAgICB0aGlzLl9zdHJ1Y3R1cmVzV2l0aERlY2xhcmVkVHlwZS5hZGQoc3RydWN0dXJlV2l0aERlY2xhcmVkVHlwZSk7XHJcbiAgICAgICAgICAgIHN0cnVjdHVyZVdpdGhEZWNsYXJlZFR5cGUuZGVjbGFyZWRUeXBlID0gdGhpcztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfYmVoYXZpb3JhbEVudGl0aWVzV2l0aERlY2xhcmVkVHlwZTogU2V0PEJlaGF2aW9yYWxFbnRpdHk+ID0gbmV3IFNldCgpO1xyXG5cclxuICAgIHB1YmxpYyBhZGRCZWhhdmlvcmFsRW50aXR5V2l0aERlY2xhcmVkVHlwZShiZWhhdmlvcmFsRW50aXR5V2l0aERlY2xhcmVkVHlwZTogQmVoYXZpb3JhbEVudGl0eSk6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGhpcy5fYmVoYXZpb3JhbEVudGl0aWVzV2l0aERlY2xhcmVkVHlwZS5oYXMoYmVoYXZpb3JhbEVudGl0eVdpdGhEZWNsYXJlZFR5cGUpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2JlaGF2aW9yYWxFbnRpdGllc1dpdGhEZWNsYXJlZFR5cGUuYWRkKGJlaGF2aW9yYWxFbnRpdHlXaXRoRGVjbGFyZWRUeXBlKTtcclxuICAgICAgICAgICAgYmVoYXZpb3JhbEVudGl0eVdpdGhEZWNsYXJlZFR5cGUuZGVjbGFyZWRUeXBlID0gdGhpcztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfaW5jb21pbmdSZWZlcmVuY2VzOiBTZXQ8UmVmZXJlbmNlPiA9IG5ldyBTZXQoKTtcclxuXHJcbiAgICBwdWJsaWMgYWRkSW5jb21pbmdSZWZlcmVuY2UoaW5jb21pbmdSZWZlcmVuY2U6IFJlZmVyZW5jZSk6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGhpcy5faW5jb21pbmdSZWZlcmVuY2VzLmhhcyhpbmNvbWluZ1JlZmVyZW5jZSkpIHtcclxuICAgICAgICAgICAgdGhpcy5faW5jb21pbmdSZWZlcmVuY2VzLmFkZChpbmNvbWluZ1JlZmVyZW5jZSk7XHJcbiAgICAgICAgICAgIGluY29taW5nUmVmZXJlbmNlLnRhcmdldCA9IHRoaXM7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRKU09OKCk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3QganNvbjogRmFtaXhKU09ORXhwb3J0ZXIgPSBuZXcgRmFtaXhKU09ORXhwb3J0ZXIoXCJUeXBlXCIsIHRoaXMpO1xyXG4gICAgICAgIHRoaXMuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoanNvbik7XHJcbiAgICAgICAgcmV0dXJuIGpzb24uZ2V0SlNPTigpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcjogRmFtaXhKU09ORXhwb3J0ZXIpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcik7XHJcbiAgICAgICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJ0eXBlQ29udGFpbmVyXCIsIHRoaXMuY29udGFpbmVyKTtcclxuICAgICAgICAvKiB1bnN1cHBvcnRlZCBwcm9wZXJ0aWVzIGluIE1NIHNvIGZhciAqL1xyXG4gICAgICAgIC8vIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwidHlwZUFsaWFzZXNcIiwgdGhpcy5nZXRUeXBlQWxpYXNlcygpKTtcclxuICAgICAgICAvLyBleHBvcnRlci5hZGRQcm9wZXJ0eShcInN0cnVjdHVyZXNXaXRoRGVjbGFyZWRUeXBlXCIsIHRoaXMuZ2V0U3RydWN0dXJlc1dpdGhEZWNsYXJlZFR5cGUoKSk7XHJcbiAgICAgICAgLy8gZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJiZWhhdmlvcmFsRW50aXRpZXNXaXRoRGVjbGFyZWRUeXBlXCIsIHRoaXMuZ2V0QmVoYXZpb3JhbEVudGl0aWVzV2l0aERlY2xhcmVkVHlwZSgpKTtcclxuICAgICAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcImluY29taW5nUmVmZXJlbmNlc1wiLCB0aGlzLmluY29taW5nUmVmZXJlbmNlcyk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGNvbnRhaW5lcigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fY29udGFpbmVyO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBjb250YWluZXIoY29udGFpbmVyOiBDb250YWluZXJFbnRpdHkpIHtcclxuICAgICAgICB0aGlzLl9jb250YWluZXIgPSBjb250YWluZXI7XHJcbiAgICAgICAgY29udGFpbmVyLmFkZFR5cGUodGhpcyk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHR5cGVBbGlhc2VzKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl90eXBlQWxpYXNlcztcclxuICAgIH1cclxuXHJcbiAgICBnZXQgc3RydWN0dXJlc1dpdGhEZWNsYXJlZFR5cGUoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0cnVjdHVyZXNXaXRoRGVjbGFyZWRUeXBlO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBiZWhhdmlvcmFsRW50aXRpZXNXaXRoRGVjbGFyZWRUeXBlKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9iZWhhdmlvcmFsRW50aXRpZXNXaXRoRGVjbGFyZWRUeXBlO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBpbmNvbWluZ1JlZmVyZW5jZXMoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2luY29taW5nUmVmZXJlbmNlcztcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -21,4 +21,4 @@ class Variable extends structural_entity_1.StructuralEntity {
21
21
  }
22
22
  }
23
23
  exports.Variable = Variable;
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFyaWFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ZhbWl4L21vZGVsL2ZhbWl4L3ZhcmlhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1FQUE4RDtBQUU5RCwyREFBdUQ7QUFFdkQsTUFBYSxRQUFTLFNBQVEsb0NBQWdCO0lBSW5DLE9BQU87UUFDVixNQUFNLElBQUksR0FBc0IsSUFBSSx1Q0FBaUIsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxRQUEyQjtRQUN0RCxLQUFLLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEMsUUFBUSxDQUFDLFdBQVcsQ0FBQyx5QkFBeUIsRUFBRSxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRUQsSUFBSSxxQkFBcUI7UUFDckIsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUM7SUFDdkMsQ0FBQztJQUVELElBQUkscUJBQXFCLENBQUMscUJBQXNDO1FBQzVELElBQUksQ0FBQyxzQkFBc0IsR0FBRyxxQkFBcUIsQ0FBQztJQUN4RCxDQUFDO0NBQ0o7QUF0QkQsNEJBc0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmFtaXhKU09ORXhwb3J0ZXIgfSBmcm9tIFwiLi4vLi4vZmFtaXhfSlNPTl9leHBvcnRlclwiO1xuaW1wb3J0IHsgQ29udGFpbmVyRW50aXR5IH0gZnJvbSBcIi4vY29udGFpbmVyX2VudGl0eVwiO1xuaW1wb3J0IHsgU3RydWN0dXJhbEVudGl0eSB9IGZyb20gXCIuL3N0cnVjdHVyYWxfZW50aXR5XCI7XG5cbmV4cG9ydCBjbGFzcyBWYXJpYWJsZSBleHRlbmRzIFN0cnVjdHVyYWxFbnRpdHkge1xuXG4gICAgcHJpdmF0ZSBfcGFyZW50Q29udGFpbmVyRW50aXR5ITogQ29udGFpbmVyRW50aXR5O1xuXG4gICAgcHVibGljIGdldEpTT04oKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QganNvbjogRmFtaXhKU09ORXhwb3J0ZXIgPSBuZXcgRmFtaXhKU09ORXhwb3J0ZXIoXCJWYXJpYWJsZVwiLCB0aGlzKTtcbiAgICAgICAgdGhpcy5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihqc29uKTtcbiAgICAgICAgcmV0dXJuIGpzb24uZ2V0SlNPTigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcjogRmFtaXhKU09ORXhwb3J0ZXIpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoZXhwb3J0ZXIpO1xuICAgICAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcInBhcmVudEJlaGF2aW91cmFsRW50aXR5XCIsIHRoaXMucGFyZW50Q29udGFpbmVyRW50aXR5KTtcbiAgICB9XG5cbiAgICBnZXQgcGFyZW50Q29udGFpbmVyRW50aXR5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcGFyZW50Q29udGFpbmVyRW50aXR5O1xuICAgIH1cblxuICAgIHNldCBwYXJlbnRDb250YWluZXJFbnRpdHkocGFyZW50Q29udGFpbmVyRW50aXR5OiBDb250YWluZXJFbnRpdHkpIHtcbiAgICAgICAgdGhpcy5fcGFyZW50Q29udGFpbmVyRW50aXR5ID0gcGFyZW50Q29udGFpbmVyRW50aXR5O1xuICAgIH1cbn1cbiJdfQ==
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFyaWFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ZhbWl4L21vZGVsL2ZhbWl4L3ZhcmlhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1FQUE4RDtBQUU5RCwyREFBdUQ7QUFFdkQsTUFBYSxRQUFTLFNBQVEsb0NBQWdCO0lBSW5DLE9BQU87UUFDVixNQUFNLElBQUksR0FBc0IsSUFBSSx1Q0FBaUIsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxRQUEyQjtRQUN0RCxLQUFLLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEMsUUFBUSxDQUFDLFdBQVcsQ0FBQyx5QkFBeUIsRUFBRSxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRUQsSUFBSSxxQkFBcUI7UUFDckIsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUM7SUFDdkMsQ0FBQztJQUVELElBQUkscUJBQXFCLENBQUMscUJBQXNDO1FBQzVELElBQUksQ0FBQyxzQkFBc0IsR0FBRyxxQkFBcUIsQ0FBQztJQUN4RCxDQUFDO0NBQ0o7QUF0QkQsNEJBc0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmFtaXhKU09ORXhwb3J0ZXIgfSBmcm9tIFwiLi4vLi4vZmFtaXhfSlNPTl9leHBvcnRlclwiO1xyXG5pbXBvcnQgeyBDb250YWluZXJFbnRpdHkgfSBmcm9tIFwiLi9jb250YWluZXJfZW50aXR5XCI7XHJcbmltcG9ydCB7IFN0cnVjdHVyYWxFbnRpdHkgfSBmcm9tIFwiLi9zdHJ1Y3R1cmFsX2VudGl0eVwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIFZhcmlhYmxlIGV4dGVuZHMgU3RydWN0dXJhbEVudGl0eSB7XHJcblxyXG4gICAgcHJpdmF0ZSBfcGFyZW50Q29udGFpbmVyRW50aXR5ITogQ29udGFpbmVyRW50aXR5O1xyXG5cclxuICAgIHB1YmxpYyBnZXRKU09OKCk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3QganNvbjogRmFtaXhKU09ORXhwb3J0ZXIgPSBuZXcgRmFtaXhKU09ORXhwb3J0ZXIoXCJWYXJpYWJsZVwiLCB0aGlzKTtcclxuICAgICAgICB0aGlzLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGpzb24pO1xyXG4gICAgICAgIHJldHVybiBqc29uLmdldEpTT04oKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoZXhwb3J0ZXI6IEZhbWl4SlNPTkV4cG9ydGVyKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoZXhwb3J0ZXIpO1xyXG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwicGFyZW50QmVoYXZpb3VyYWxFbnRpdHlcIiwgdGhpcy5wYXJlbnRDb250YWluZXJFbnRpdHkpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBwYXJlbnRDb250YWluZXJFbnRpdHkoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BhcmVudENvbnRhaW5lckVudGl0eTtcclxuICAgIH1cclxuXHJcbiAgICBzZXQgcGFyZW50Q29udGFpbmVyRW50aXR5KHBhcmVudENvbnRhaW5lckVudGl0eTogQ29udGFpbmVyRW50aXR5KSB7XHJcbiAgICAgICAgdGhpcy5fcGFyZW50Q29udGFpbmVyRW50aXR5ID0gcGFyZW50Q29udGFpbmVyRW50aXR5O1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FamixJSONExporter = void 0;
4
+ const famix_base_element_1 = require("./famix_base_element");
5
+ /**
6
+ * This class is used to export Famix elements to JSON
7
+ */
8
+ class FamixJSONExporter {
9
+ /**
10
+ * Constructor of the FamixJSONExporter class
11
+ * @param packageClass Name of a Famix class
12
+ * @param element A Famix element to export, this element is an instance of the class named "packageClass"
13
+ */
14
+ constructor(packageClass, element) {
15
+ this.bufferArray = {}; // A buffer to store the properties of the Famix element
16
+ this.FamixPrefix = "FamixTypeScript"; // Prefix of the Famix element
17
+ this.element = element;
18
+ this.bufferArray["FM3"] = this.FamixPrefix + "." + packageClass;
19
+ this.bufferArray["id"] = this.element.id;
20
+ }
21
+ /**
22
+ * Adds a property to the Famix element
23
+ * @param name Name of the property
24
+ * @param prop A property
25
+ */
26
+ addProperty(name, prop) {
27
+ if (prop instanceof Set) {
28
+ const valueArray = [];
29
+ for (const value of Array.from(prop.values())) {
30
+ if (value instanceof famix_base_element_1.FamixBaseElement) {
31
+ valueArray.push({ "ref": value.id });
32
+ }
33
+ else {
34
+ valueArray.push(value);
35
+ }
36
+ }
37
+ this.bufferArray[name] = valueArray;
38
+ }
39
+ else if (prop instanceof famix_base_element_1.FamixBaseElement) {
40
+ this.bufferArray[name] = { "ref": prop.id };
41
+ }
42
+ else if (prop !== undefined && !(prop instanceof Set)) {
43
+ this.bufferArray[name] = prop;
44
+ }
45
+ }
46
+ /**
47
+ * Gets a JSON representation of the Famix element
48
+ * @returns A JSON representation of the Famix element
49
+ */
50
+ getJSON() {
51
+ return JSON.stringify(this.bufferArray);
52
+ }
53
+ }
54
+ exports.FamixJSONExporter = FamixJSONExporter;
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFtaXhfSlNPTl9leHBvcnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvZmFtaXgvc3JjL2ZhbWl4X0pTT05fZXhwb3J0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkRBQXdEO0FBRXhEOztHQUVHO0FBQ0gsTUFBYSxpQkFBaUI7SUFNMUI7Ozs7T0FJRztJQUNILFlBQVksWUFBb0IsRUFBRSxPQUF5QjtRQVJuRCxnQkFBVyxHQUFRLEVBQUUsQ0FBQyxDQUFDLHdEQUF3RDtRQUMvRSxnQkFBVyxHQUFHLGlCQUFpQixDQUFDLENBQUMsOEJBQThCO1FBUW5FLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLEdBQUcsWUFBWSxDQUFDO1FBQ2hFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxXQUFXLENBQUMsSUFBWSxFQUFFLElBQWE7UUFDMUMsSUFBSSxJQUFJLFlBQVksR0FBRyxFQUFFLENBQUM7WUFDdEIsTUFBTSxVQUFVLEdBQW1CLEVBQUUsQ0FBQztZQUN0QyxLQUFLLE1BQU0sS0FBSyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQztnQkFDNUMsSUFBSSxLQUFLLFlBQVkscUNBQWdCLEVBQUUsQ0FBQztvQkFDcEMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDekMsQ0FBQztxQkFDSSxDQUFDO29CQUNGLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzNCLENBQUM7WUFDTCxDQUFDO1lBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUM7UUFDeEMsQ0FBQzthQUNJLElBQUksSUFBSSxZQUFZLHFDQUFnQixFQUFFLENBQUM7WUFDeEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDaEQsQ0FBQzthQUNJLElBQUksSUFBSSxLQUFLLFNBQVMsSUFBSSxDQUFDLENBQUMsSUFBSSxZQUFZLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDcEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDbEMsQ0FBQztJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSSxPQUFPO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM1QyxDQUFDO0NBQ0o7QUFsREQsOENBa0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmFtaXhCYXNlRWxlbWVudCB9IGZyb20gXCIuL2ZhbWl4X2Jhc2VfZWxlbWVudFwiO1xyXG5cclxuLyoqXHJcbiAqIFRoaXMgY2xhc3MgaXMgdXNlZCB0byBleHBvcnQgRmFtaXggZWxlbWVudHMgdG8gSlNPTlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEZhbWl4SlNPTkV4cG9ydGVyIHtcclxuXHJcbiAgICBwcml2YXRlIGVsZW1lbnQ6IEZhbWl4QmFzZUVsZW1lbnQ7IC8vIEEgRmFtaXggZWxlbWVudCB0byBleHBvcnRcclxuICAgIHByaXZhdGUgYnVmZmVyQXJyYXk6IGFueSA9IHt9OyAvLyBBIGJ1ZmZlciB0byBzdG9yZSB0aGUgcHJvcGVydGllcyBvZiB0aGUgRmFtaXggZWxlbWVudFxyXG4gICAgcHJpdmF0ZSBGYW1peFByZWZpeCA9IFwiRmFtaXhUeXBlU2NyaXB0XCI7IC8vIFByZWZpeCBvZiB0aGUgRmFtaXggZWxlbWVudFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29uc3RydWN0b3Igb2YgdGhlIEZhbWl4SlNPTkV4cG9ydGVyIGNsYXNzXHJcbiAgICAgKiBAcGFyYW0gcGFja2FnZUNsYXNzIE5hbWUgb2YgYSBGYW1peCBjbGFzc1xyXG4gICAgICogQHBhcmFtIGVsZW1lbnQgQSBGYW1peCBlbGVtZW50IHRvIGV4cG9ydCwgdGhpcyBlbGVtZW50IGlzIGFuIGluc3RhbmNlIG9mIHRoZSBjbGFzcyBuYW1lZCBcInBhY2thZ2VDbGFzc1wiXHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKHBhY2thZ2VDbGFzczogc3RyaW5nLCBlbGVtZW50OiBGYW1peEJhc2VFbGVtZW50KSB7XHJcbiAgICAgICAgdGhpcy5lbGVtZW50ID0gZWxlbWVudDtcclxuICAgICAgICB0aGlzLmJ1ZmZlckFycmF5W1wiRk0zXCJdID0gdGhpcy5GYW1peFByZWZpeCArIFwiLlwiICsgcGFja2FnZUNsYXNzO1xyXG4gICAgICAgIHRoaXMuYnVmZmVyQXJyYXlbXCJpZFwiXSA9IHRoaXMuZWxlbWVudC5pZDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFkZHMgYSBwcm9wZXJ0eSB0byB0aGUgRmFtaXggZWxlbWVudFxyXG4gICAgICogQHBhcmFtIG5hbWUgTmFtZSBvZiB0aGUgcHJvcGVydHlcclxuICAgICAqIEBwYXJhbSBwcm9wIEEgcHJvcGVydHlcclxuICAgICAqL1xyXG4gICAgcHVibGljIGFkZFByb3BlcnR5KG5hbWU6IHN0cmluZywgcHJvcDogdW5rbm93bik6IHZvaWQge1xyXG4gICAgICAgIGlmIChwcm9wIGluc3RhbmNlb2YgU2V0KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlQXJyYXk6IEFycmF5PHVua25vd24+ID0gW107XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgdmFsdWUgb2YgQXJyYXkuZnJvbShwcm9wLnZhbHVlcygpKSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRmFtaXhCYXNlRWxlbWVudCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlQXJyYXkucHVzaCh7IFwicmVmXCI6IHZhbHVlLmlkIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWVBcnJheS5wdXNoKHZhbHVlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmJ1ZmZlckFycmF5W25hbWVdID0gdmFsdWVBcnJheTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAocHJvcCBpbnN0YW5jZW9mIEZhbWl4QmFzZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgdGhpcy5idWZmZXJBcnJheVtuYW1lXSA9IHsgXCJyZWZcIjogcHJvcC5pZCB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChwcm9wICE9PSB1bmRlZmluZWQgJiYgIShwcm9wIGluc3RhbmNlb2YgU2V0KSkge1xyXG4gICAgICAgICAgICB0aGlzLmJ1ZmZlckFycmF5W25hbWVdID0gcHJvcDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIGEgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgRmFtaXggZWxlbWVudFxyXG4gICAgICogQHJldHVybnMgQSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBGYW1peCBlbGVtZW50XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRKU09OKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRoaXMuYnVmZmVyQXJyYXkpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FamixBaseElement = void 0;
4
+ const analyze_1 = require("../../../analyze");
5
+ // import { FamixRepository } from "./famix_repository";
6
+ class FamixBaseElement {
7
+ // constructor(repo: FamixRepository) {
8
+ // repo.addElement(this);
9
+ // }
10
+ constructor() {
11
+ }
12
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
13
+ addPropertiesToExporter(exporter) {
14
+ analyze_1.logger.debug("addPropertiesToExporter not implemented for " + this.constructor.name + `(${exporter})`);
15
+ }
16
+ }
17
+ exports.FamixBaseElement = FamixBaseElement;
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFtaXhfYmFzZV9lbGVtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9mYW1peC9zcmMvZmFtaXhfYmFzZV9lbGVtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDhDQUEwQztBQUUxQyx3REFBd0Q7QUFFeEQsTUFBc0IsZ0JBQWdCO0lBSWxDLHVDQUF1QztJQUN2QywyQkFBMkI7SUFDM0IsSUFBSTtJQUVKO0lBQ0EsQ0FBQztJQUlELDZEQUE2RDtJQUN0RCx1QkFBdUIsQ0FBQyxRQUEyQjtRQUN0RCxnQkFBTSxDQUFDLEtBQUssQ0FBQyw4Q0FBOEMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRyxJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUM7SUFDM0csQ0FBQztDQUNKO0FBakJELDRDQWlCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGxvZ2dlciB9IGZyb20gXCIuLi8uLi8uLi9hbmFseXplXCI7XHJcbmltcG9ydCB7IEZhbWl4SlNPTkV4cG9ydGVyIH0gZnJvbSBcIi4vZmFtaXhfSlNPTl9leHBvcnRlclwiO1xyXG4vLyBpbXBvcnQgeyBGYW1peFJlcG9zaXRvcnkgfSBmcm9tIFwiLi9mYW1peF9yZXBvc2l0b3J5XCI7XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRmFtaXhCYXNlRWxlbWVudCB7XHJcblxyXG4gICAgcHVibGljIGlkITogbnVtYmVyO1xyXG5cclxuICAgIC8vIGNvbnN0cnVjdG9yKHJlcG86IEZhbWl4UmVwb3NpdG9yeSkge1xyXG4gICAgLy8gICByZXBvLmFkZEVsZW1lbnQodGhpcyk7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFic3RyYWN0IGdldEpTT04oKTogc3RyaW5nO1xyXG5cclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcclxuICAgIHB1YmxpYyBhZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcjogRmFtaXhKU09ORXhwb3J0ZXIpOiB2b2lkIHtcclxuICAgICAgICBsb2dnZXIuZGVidWcoXCJhZGRQcm9wZXJ0aWVzVG9FeHBvcnRlciBub3QgaW1wbGVtZW50ZWQgZm9yIFwiICsgdGhpcy5jb25zdHJ1Y3Rvci5uYW1lICsgYCgke2V4cG9ydGVyfSlgKTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,224 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FamixRepository = void 0;
4
+ const famix_1 = require("./model/famix");
5
+ /**
6
+ * This class is used to store all Famix elements
7
+ */
8
+ class FamixRepository {
9
+ constructor() {
10
+ this.elements = new Set(); // All Famix elements
11
+ this.famixClasses = new Set(); // All Famix classes
12
+ this.famixInterfaces = new Set(); // All Famix interfaces
13
+ this.famixModules = new Set(); // All Famix namespaces
14
+ this.famixMethods = new Set(); // All Famix methods
15
+ this.famixVariables = new Set(); // All Famix variables
16
+ this.famixFunctions = new Set(); // All Famix functions
17
+ this.famixFiles = new Set(); // All Famix files
18
+ this.idCounter = 1; // Id counter
19
+ this.absolutePath = "";
20
+ this.fmxElementObjectMap = new Map();
21
+ this.tsMorphObjectMap = new Map(); // TODO: add this map to have two-way mapping between Famix and TS Morph objects
22
+ this.addElement(new famix_1.SourceLanguage()); // add the source language entity (TypeScript)
23
+ }
24
+ setFmxElementObjectMap(fmxElementObjectMap) {
25
+ this.fmxElementObjectMap = fmxElementObjectMap;
26
+ }
27
+ getFmxElementObjectMap() {
28
+ return this.fmxElementObjectMap;
29
+ }
30
+ getAbsolutePath() {
31
+ return this.absolutePath;
32
+ }
33
+ setAbsolutePath(path) {
34
+ this.absolutePath = path;
35
+ }
36
+ /**
37
+ * Gets a Famix entity by id
38
+ * @param id An id of a Famix entity
39
+ * @returns The Famix entity corresponding to the id or undefined if it doesn't exist
40
+ */
41
+ getFamixEntityById(id) {
42
+ const entity = Array.from(this.elements.values()).find(e => e.id === id);
43
+ return entity;
44
+ }
45
+ /**
46
+ * Gets a Famix entity by fully qualified name
47
+ * @param fullyQualifiedName A fully qualified name
48
+ * @returns The Famix entity corresponding to the fully qualified name or undefined if it doesn't exist
49
+ */
50
+ getFamixEntityByFullyQualifiedName(fullyQualifiedName) {
51
+ const allEntities = Array.from(this.elements.values()).filter(e => e instanceof famix_1.NamedEntity);
52
+ const entity = allEntities.find(e => e.fullyQualifiedName === fullyQualifiedName);
53
+ return entity;
54
+ }
55
+ export(arg0) {
56
+ if (arg0.format === "json") {
57
+ return this.getJSON();
58
+ }
59
+ else {
60
+ throw new Error("Unsupported format");
61
+ }
62
+ }
63
+ // Only for tests
64
+ /**
65
+ * Gets all Famix entities
66
+ * @returns All Famix entities
67
+ */
68
+ _getAllEntities() {
69
+ return new Set(Array.from(this.elements.values()));
70
+ }
71
+ /**
72
+ * Gets all Famix entities of a given type
73
+ * @param theType A type of Famix entity
74
+ * @returns All Famix entities of the given type
75
+ */
76
+ _getAllEntitiesWithType(theType) {
77
+ return new Set(Array.from(this.elements.values()).filter(e => e.constructor.name === theType));
78
+ }
79
+ /**
80
+ * Gets a Famix class by name
81
+ * @param name A class name
82
+ * @returns The Famix class corresponding to the name or undefined if it doesn't exist
83
+ */
84
+ _getFamixClass(fullyQualifiedName) {
85
+ return Array.from(this.famixClasses.values()).find(ns => ns.fullyQualifiedName === fullyQualifiedName);
86
+ }
87
+ /**
88
+ * Gets a Famix interface by name
89
+ * @param name An interface name
90
+ * @returns The Famix interface corresponding to the name or undefined if it doesn't exist
91
+ */
92
+ _getFamixInterface(fullyQualifiedName) {
93
+ return Array.from(this.famixInterfaces.values()).find(ns => ns.fullyQualifiedName === fullyQualifiedName);
94
+ }
95
+ /**
96
+ * Gets a Famix method by name
97
+ * @param name A method name
98
+ * @returns The Famix method corresponding to the name or undefined if it doesn't exist
99
+ */
100
+ _getFamixMethod(fullyQualifiedName) {
101
+ return Array.from(this.famixMethods.values()).find(ns => ns.fullyQualifiedName === fullyQualifiedName);
102
+ }
103
+ /**
104
+ * Gets a Famix function by name
105
+ * @param name A function name
106
+ * @returns The Famix function corresponding to the name or undefined if it doesn't exist
107
+ */
108
+ _getFamixFunction(fullyQualifiedName) {
109
+ return Array.from(this.famixFunctions.values()).find(ns => ns.fullyQualifiedName === fullyQualifiedName);
110
+ }
111
+ /**
112
+ * Gets a Famix variable by name
113
+ * @param name A variable name
114
+ * @returns The Famix variable corresponding to the name or undefined if it doesn't exist
115
+ */
116
+ _getFamixVariable(fullyQualifiedName) {
117
+ return Array.from(this.famixVariables.values()).find(v => v.fullyQualifiedName === fullyQualifiedName);
118
+ }
119
+ /**
120
+ * Gets a Famix namespace by name
121
+ * @param name A namespace name
122
+ * @returns The Famix namespace corresponding to the name or undefined if it doesn't exist
123
+ */
124
+ _getFamixModule(fullyQualifiedName) {
125
+ return Array.from(this.famixModules.values()).find(ns => ns.fullyQualifiedName === fullyQualifiedName);
126
+ }
127
+ /**
128
+ * Gets all Famix namespaces
129
+ * @returns All Famix namespaces
130
+ */
131
+ _getFamixModules() {
132
+ return new Set(Array.from(this.famixModules.values()));
133
+ }
134
+ /**
135
+ * Gets a Famix file by name
136
+ * @param name A file name
137
+ * @returns The Famix file corresponding to the name or undefined if it doesn't exist
138
+ */
139
+ _getFamixFile(fullyQualifiedName) {
140
+ return Array.from(this.famixFiles.values()).find(ns => ns.name === fullyQualifiedName);
141
+ }
142
+ /**
143
+ * Gets all Famix files
144
+ * @returns All Famix files
145
+ */
146
+ _getFamixFiles() {
147
+ return new Set(Array.from(this.famixFiles.values()));
148
+ }
149
+ /**
150
+ * Gets all method names as a set from a class
151
+ * @param className A class name
152
+ * @returns The set of class "className" method names
153
+ */
154
+ _methodNamesAsSetFromClass(className) {
155
+ const theClass = this._getFamixClass(className);
156
+ return new Set(Array.from(theClass.methods).map(m => m.name));
157
+ }
158
+ /**
159
+ * Gets all method parents as a set from a class
160
+ * @param className A class name
161
+ * @returns The set of class "className" method parents
162
+ */
163
+ _methodParentsAsSetFromClass(className) {
164
+ const theClass = this._getFamixClass(className);
165
+ return new Set(Array.from(theClass.methods).map(m => m.parentEntity));
166
+ }
167
+ /**
168
+ * Gets the map of Famix element ids and their Famix element from a JSON model
169
+ * @param model A JSON model
170
+ * @returns The map of Famix element ids and their Famix element from the JSON model
171
+ */
172
+ _initMapFromModel(model) {
173
+ const parsedModel = JSON.parse(model);
174
+ const idToElementMap = new Map();
175
+ parsedModel.forEach(element => {
176
+ idToElementMap.set(element.id, element);
177
+ });
178
+ return idToElementMap;
179
+ }
180
+ /**
181
+ * Adds a Famix element to the repository
182
+ * @param element A Famix element
183
+ */
184
+ addElement(element) {
185
+ if (element instanceof famix_1.Class) {
186
+ this.famixClasses.add(element);
187
+ }
188
+ else if (element instanceof famix_1.Interface) {
189
+ this.famixInterfaces.add(element);
190
+ }
191
+ else if (element instanceof famix_1.Module) {
192
+ this.famixModules.add(element);
193
+ }
194
+ else if (element instanceof famix_1.Variable) {
195
+ this.famixVariables.add(element);
196
+ }
197
+ else if (element instanceof famix_1.Method) {
198
+ this.famixMethods.add(element);
199
+ }
200
+ else if (element instanceof famix_1.Function || element instanceof famix_1.ArrowFunction) {
201
+ this.famixFunctions.add(element);
202
+ }
203
+ else if (element instanceof famix_1.ScriptEntity || element instanceof famix_1.Module) {
204
+ this.famixFiles.add(element);
205
+ }
206
+ this.elements.add(element);
207
+ element.id = this.idCounter;
208
+ this.idCounter++;
209
+ }
210
+ /**
211
+ * Gets a JSON representation of the repository
212
+ * @returns A JSON representation of the repository
213
+ */
214
+ getJSON() {
215
+ let ret = "[";
216
+ for (const element of Array.from(this.elements.values())) {
217
+ ret = ret + element.getJSON() + ",";
218
+ }
219
+ ret = ret.substring(0, ret.length - 1);
220
+ return ret + "]";
221
+ }
222
+ }
223
+ exports.FamixRepository = FamixRepository;
224
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFtaXhfcmVwb3NpdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvZmFtaXgvc3JjL2ZhbWl4X3JlcG9zaXRvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EseUNBQTRLO0FBRzVLOztHQUVHO0FBQ0gsTUFBYSxlQUFlO0lBY3hCO1FBYlEsYUFBUSxHQUFHLElBQUksR0FBRyxFQUFvQixDQUFDLENBQUMscUJBQXFCO1FBQzdELGlCQUFZLEdBQUcsSUFBSSxHQUFHLEVBQVMsQ0FBQyxDQUFDLG9CQUFvQjtRQUNyRCxvQkFBZSxHQUFHLElBQUksR0FBRyxFQUFhLENBQUMsQ0FBQyx1QkFBdUI7UUFDL0QsaUJBQVksR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDLENBQUMsdUJBQXVCO1FBQ3pELGlCQUFZLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQyxDQUFDLG9CQUFvQjtRQUN0RCxtQkFBYyxHQUFHLElBQUksR0FBRyxFQUFZLENBQUMsQ0FBQyxzQkFBc0I7UUFDNUQsbUJBQWMsR0FBRyxJQUFJLEdBQUcsRUFBdUIsQ0FBQyxDQUFDLHNCQUFzQjtRQUN2RSxlQUFVLEdBQUcsSUFBSSxHQUFHLEVBQXlCLENBQUMsQ0FBQyxrQkFBa0I7UUFDakUsY0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDLGFBQWE7UUFDNUIsaUJBQVksR0FBVyxFQUFFLENBQUM7UUFDMUIsd0JBQW1CLEdBQUcsSUFBSSxHQUFHLEVBQW1DLENBQUM7UUFDakUscUJBQWdCLEdBQUcsSUFBSSxHQUFHLEVBQW1DLENBQUMsQ0FBQyxnRkFBZ0Y7UUFHbkosSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLHNCQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUUsOENBQThDO0lBQzFGLENBQUM7SUFFTSxzQkFBc0IsQ0FBQyxtQkFBeUQ7UUFDbkYsSUFBSSxDQUFDLG1CQUFtQixHQUFHLG1CQUFtQixDQUFDO0lBQ25ELENBQUM7SUFFTSxzQkFBc0I7UUFDekIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDcEMsQ0FBQztJQUVNLGVBQWU7UUFDbEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzdCLENBQUM7SUFFTSxlQUFlLENBQUMsSUFBWTtRQUMvQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztJQUM3QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGtCQUFrQixDQUFDLEVBQVU7UUFDaEMsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUN6RSxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGtDQUFrQyxDQUFDLGtCQUEwQjtRQUNoRSxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFlBQVksbUJBQVcsQ0FBdUIsQ0FBQztRQUNuSCxNQUFNLE1BQU0sR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixLQUFLLGtCQUFrQixDQUFDLENBQUM7UUFDbEYsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUF5QjtRQUM1QixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDekIsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDMUIsQ0FBQzthQUFNLENBQUM7WUFDSixNQUFNLElBQUksS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDMUMsQ0FBQztJQUNMLENBQUM7SUFHRCxpQkFBaUI7SUFFakI7OztPQUdHO0lBQ0ksZUFBZTtRQUNsQixPQUFPLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSx1QkFBdUIsQ0FBQyxPQUFlO1FBQzFDLE9BQU8sSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUUsQ0FBc0IsQ0FBQyxXQUFXLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDekgsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxjQUFjLENBQUMsa0JBQTBCO1FBQzVDLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLGtCQUFrQixLQUFLLGtCQUFrQixDQUFDLENBQUM7SUFDM0csQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxrQkFBa0IsQ0FBQyxrQkFBMEI7UUFDaEQsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsa0JBQWtCLEtBQUssa0JBQWtCLENBQUMsQ0FBQztJQUM5RyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGVBQWUsQ0FBQyxrQkFBMEI7UUFDN0MsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsa0JBQWtCLEtBQUssa0JBQWtCLENBQUMsQ0FBQztJQUMzRyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGlCQUFpQixDQUFDLGtCQUEwQjtRQUMvQyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsS0FBSyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzdHLENBQUM7SUFHRDs7OztPQUlHO0lBQ0ksaUJBQWlCLENBQUMsa0JBQTBCO1FBQy9DLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixLQUFLLGtCQUFrQixDQUFDLENBQUM7SUFDM0csQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxlQUFlLENBQUMsa0JBQTBCO1FBQzdDLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLGtCQUFrQixLQUFLLGtCQUFrQixDQUFDLENBQUM7SUFDM0csQ0FBQztJQUVEOzs7T0FHRztJQUNJLGdCQUFnQjtRQUNuQixPQUFPLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxhQUFhLENBQUMsa0JBQTBCO1FBQzNDLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFFRDs7O09BR0c7SUFDSSxjQUFjO1FBQ2pCLE9BQU8sSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLDBCQUEwQixDQUFDLFNBQWlCO1FBQy9DLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFVLENBQUM7UUFDekQsT0FBTyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLDRCQUE0QixDQUFDLFNBQWlCO1FBQ2pELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFVLENBQUM7UUFDekQsT0FBTyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGlCQUFpQixDQUFDLEtBQWE7UUFDbEMsTUFBTSxXQUFXLEdBQTRCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0QsTUFBTSxjQUFjLEdBQXlCLElBQUksR0FBRyxFQUFFLENBQUM7UUFDdkQsV0FBVyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUMxQixjQUFjLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDNUMsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLGNBQWMsQ0FBQztJQUMxQixDQUFDO0lBR0Q7OztPQUdHO0lBQ0ksVUFBVSxDQUFDLE9BQXlCO1FBQ3ZDLElBQUksT0FBTyxZQUFZLGFBQUssRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25DLENBQUM7YUFBTSxJQUFJLE9BQU8sWUFBWSxpQkFBUyxFQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEMsQ0FBQzthQUFNLElBQUksT0FBTyxZQUFZLGNBQU0sRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25DLENBQUM7YUFBTSxJQUFJLE9BQU8sWUFBWSxnQkFBUSxFQUFFLENBQUM7WUFDckMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckMsQ0FBQzthQUFNLElBQUksT0FBTyxZQUFZLGNBQU0sRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25DLENBQUM7YUFBTSxJQUFJLE9BQU8sWUFBWSxnQkFBbUIsSUFBSSxPQUFPLFlBQVkscUJBQWEsRUFBRSxDQUFDO1lBQ3BGLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JDLENBQUM7YUFBTSxJQUFJLE9BQU8sWUFBWSxvQkFBWSxJQUFJLE9BQU8sWUFBWSxjQUFNLEVBQUUsQ0FBQztZQUN0RSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDM0IsT0FBTyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQzVCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksT0FBTztRQUNWLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNkLEtBQUssTUFBTSxPQUFPLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUN2RCxHQUFHLEdBQUcsR0FBRyxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsR0FBRyxHQUFHLENBQUM7UUFDeEMsQ0FBQztRQUNELEdBQUcsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLE9BQU8sR0FBRyxHQUFHLEdBQUcsQ0FBQztJQUNyQixDQUFDO0NBQ0o7QUEzT0QsMENBMk9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmFtaXhCYXNlRWxlbWVudCB9IGZyb20gXCIuL2ZhbWl4X2Jhc2VfZWxlbWVudFwiO1xyXG5pbXBvcnQgeyBDbGFzcywgSW50ZXJmYWNlLCBWYXJpYWJsZSwgTWV0aG9kLCBBcnJvd0Z1bmN0aW9uLCBGdW5jdGlvbiBhcyBGYW1peEZ1bmN0aW9uRW50aXR5LCBUeXBlLCBOYW1lZEVudGl0eSwgU2NyaXB0RW50aXR5LCBNb2R1bGUsIFNvdXJjZUxhbmd1YWdlIH0gZnJvbSBcIi4vbW9kZWwvZmFtaXhcIjtcclxuaW1wb3J0ICogYXMgRmFtaXggZnJvbSBcIi4vbW9kZWwvZmFtaXhcIjtcclxuaW1wb3J0IHsgVFNNb3JwaE9iamVjdFR5cGUgfSBmcm9tIFwiLi4vLi4vLi4vZmFtaXhfZnVuY3Rpb25zL0VudGl0eURpY3Rpb25hcnlcIjtcclxuLyoqXHJcbiAqIFRoaXMgY2xhc3MgaXMgdXNlZCB0byBzdG9yZSBhbGwgRmFtaXggZWxlbWVudHNcclxuICovXHJcbmV4cG9ydCBjbGFzcyBGYW1peFJlcG9zaXRvcnkge1xyXG4gICAgcHJpdmF0ZSBlbGVtZW50cyA9IG5ldyBTZXQ8RmFtaXhCYXNlRWxlbWVudD4oKTsgLy8gQWxsIEZhbWl4IGVsZW1lbnRzXHJcbiAgICBwcml2YXRlIGZhbWl4Q2xhc3NlcyA9IG5ldyBTZXQ8Q2xhc3M+KCk7IC8vIEFsbCBGYW1peCBjbGFzc2VzXHJcbiAgICBwcml2YXRlIGZhbWl4SW50ZXJmYWNlcyA9IG5ldyBTZXQ8SW50ZXJmYWNlPigpOyAvLyBBbGwgRmFtaXggaW50ZXJmYWNlc1xyXG4gICAgcHJpdmF0ZSBmYW1peE1vZHVsZXMgPSBuZXcgU2V0PE1vZHVsZT4oKTsgLy8gQWxsIEZhbWl4IG5hbWVzcGFjZXNcclxuICAgIHByaXZhdGUgZmFtaXhNZXRob2RzID0gbmV3IFNldDxNZXRob2Q+KCk7IC8vIEFsbCBGYW1peCBtZXRob2RzXHJcbiAgICBwcml2YXRlIGZhbWl4VmFyaWFibGVzID0gbmV3IFNldDxWYXJpYWJsZT4oKTsgLy8gQWxsIEZhbWl4IHZhcmlhYmxlc1xyXG4gICAgcHJpdmF0ZSBmYW1peEZ1bmN0aW9ucyA9IG5ldyBTZXQ8RmFtaXhGdW5jdGlvbkVudGl0eT4oKTsgLy8gQWxsIEZhbWl4IGZ1bmN0aW9uc1xyXG4gICAgcHJpdmF0ZSBmYW1peEZpbGVzID0gbmV3IFNldDxTY3JpcHRFbnRpdHkgfCBNb2R1bGU+KCk7IC8vIEFsbCBGYW1peCBmaWxlc1xyXG4gICAgcHJpdmF0ZSBpZENvdW50ZXIgPSAxOyAvLyBJZCBjb3VudGVyXHJcbiAgICBwcml2YXRlIGFic29sdXRlUGF0aDogc3RyaW5nID0gXCJcIjtcclxuICAgIHByaXZhdGUgZm14RWxlbWVudE9iamVjdE1hcCA9IG5ldyBNYXA8RmFtaXguRW50aXR5LCBUU01vcnBoT2JqZWN0VHlwZT4oKTtcclxuICAgIHByaXZhdGUgdHNNb3JwaE9iamVjdE1hcCA9IG5ldyBNYXA8VFNNb3JwaE9iamVjdFR5cGUsIEZhbWl4LkVudGl0eT4oKTsgLy8gVE9ETzogYWRkIHRoaXMgbWFwIHRvIGhhdmUgdHdvLXdheSBtYXBwaW5nIGJldHdlZW4gRmFtaXggYW5kIFRTIE1vcnBoIG9iamVjdHNcclxuICAgIFxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgdGhpcy5hZGRFbGVtZW50KG5ldyBTb3VyY2VMYW5ndWFnZSgpKTsgIC8vIGFkZCB0aGUgc291cmNlIGxhbmd1YWdlIGVudGl0eSAoVHlwZVNjcmlwdClcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0Rm14RWxlbWVudE9iamVjdE1hcChmbXhFbGVtZW50T2JqZWN0TWFwOiBNYXA8RmFtaXguRW50aXR5LCBUU01vcnBoT2JqZWN0VHlwZT4pIHtcclxuICAgICAgICB0aGlzLmZteEVsZW1lbnRPYmplY3RNYXAgPSBmbXhFbGVtZW50T2JqZWN0TWFwO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRGbXhFbGVtZW50T2JqZWN0TWFwKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZteEVsZW1lbnRPYmplY3RNYXA7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldEFic29sdXRlUGF0aCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmFic29sdXRlUGF0aDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0QWJzb2x1dGVQYXRoKHBhdGg6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuYWJzb2x1dGVQYXRoID0gcGF0aDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgYSBGYW1peCBlbnRpdHkgYnkgaWRcclxuICAgICAqIEBwYXJhbSBpZCBBbiBpZCBvZiBhIEZhbWl4IGVudGl0eVxyXG4gICAgICogQHJldHVybnMgVGhlIEZhbWl4IGVudGl0eSBjb3JyZXNwb25kaW5nIHRvIHRoZSBpZCBvciB1bmRlZmluZWQgaWYgaXQgZG9lc24ndCBleGlzdFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0RmFtaXhFbnRpdHlCeUlkKGlkOiBudW1iZXIpOiBGYW1peEJhc2VFbGVtZW50IHwgdW5kZWZpbmVkIHtcclxuICAgICAgICBjb25zdCBlbnRpdHkgPSBBcnJheS5mcm9tKHRoaXMuZWxlbWVudHMudmFsdWVzKCkpLmZpbmQoZSA9PiBlLmlkID09PSBpZCk7XHJcbiAgICAgICAgcmV0dXJuIGVudGl0eTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgYSBGYW1peCBlbnRpdHkgYnkgZnVsbHkgcXVhbGlmaWVkIG5hbWVcclxuICAgICAqIEBwYXJhbSBmdWxseVF1YWxpZmllZE5hbWUgQSBmdWxseSBxdWFsaWZpZWQgbmFtZVxyXG4gICAgICogQHJldHVybnMgVGhlIEZhbWl4IGVudGl0eSBjb3JyZXNwb25kaW5nIHRvIHRoZSBmdWxseSBxdWFsaWZpZWQgbmFtZSBvciB1bmRlZmluZWQgaWYgaXQgZG9lc24ndCBleGlzdFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0RmFtaXhFbnRpdHlCeUZ1bGx5UXVhbGlmaWVkTmFtZShmdWxseVF1YWxpZmllZE5hbWU6IHN0cmluZyk6IEZhbWl4QmFzZUVsZW1lbnQgfCB1bmRlZmluZWQge1xyXG4gICAgICAgIGNvbnN0IGFsbEVudGl0aWVzID0gQXJyYXkuZnJvbSh0aGlzLmVsZW1lbnRzLnZhbHVlcygpKS5maWx0ZXIoZSA9PiBlIGluc3RhbmNlb2YgTmFtZWRFbnRpdHkpIGFzIEFycmF5PE5hbWVkRW50aXR5PjtcclxuICAgICAgICBjb25zdCBlbnRpdHkgPSBhbGxFbnRpdGllcy5maW5kKGUgPT4gZS5mdWxseVF1YWxpZmllZE5hbWUgPT09IGZ1bGx5UXVhbGlmaWVkTmFtZSk7XHJcbiAgICAgICAgcmV0dXJuIGVudGl0eTtcclxuICAgIH1cclxuXHJcbiAgICBleHBvcnQoYXJnMDogeyBmb3JtYXQ6IHN0cmluZzsgfSkge1xyXG4gICAgICAgIGlmIChhcmcwLmZvcm1hdCA9PT0gXCJqc29uXCIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0SlNPTigpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlVuc3VwcG9ydGVkIGZvcm1hdFwiKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8vIE9ubHkgZm9yIHRlc3RzXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIGFsbCBGYW1peCBlbnRpdGllc1xyXG4gICAgICogQHJldHVybnMgQWxsIEZhbWl4IGVudGl0aWVzXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBfZ2V0QWxsRW50aXRpZXMoKTogU2V0PEZhbWl4QmFzZUVsZW1lbnQ+IHtcclxuICAgICAgICByZXR1cm4gbmV3IFNldChBcnJheS5mcm9tKHRoaXMuZWxlbWVudHMudmFsdWVzKCkpKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgYWxsIEZhbWl4IGVudGl0aWVzIG9mIGEgZ2l2ZW4gdHlwZVxyXG4gICAgICogQHBhcmFtIHRoZVR5cGUgQSB0eXBlIG9mIEZhbWl4IGVudGl0eVxyXG4gICAgICogQHJldHVybnMgQWxsIEZhbWl4IGVudGl0aWVzIG9mIHRoZSBnaXZlbiB0eXBlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBfZ2V0QWxsRW50aXRpZXNXaXRoVHlwZSh0aGVUeXBlOiBzdHJpbmcpOiBTZXQ8RmFtaXhCYXNlRWxlbWVudD4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgU2V0KEFycmF5LmZyb20odGhpcy5lbGVtZW50cy52YWx1ZXMoKSkuZmlsdGVyKGUgPT4gKGUgYXMgRmFtaXhCYXNlRWxlbWVudCkuY29uc3RydWN0b3IubmFtZSA9PT0gdGhlVHlwZSkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBhIEZhbWl4IGNsYXNzIGJ5IG5hbWVcclxuICAgICAqIEBwYXJhbSBuYW1lIEEgY2xhc3MgbmFtZVxyXG4gICAgICogQHJldHVybnMgVGhlIEZhbWl4IGNsYXNzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIG5hbWUgb3IgdW5kZWZpbmVkIGlmIGl0IGRvZXNuJ3QgZXhpc3RcclxuICAgICAqL1xyXG4gICAgcHVibGljIF9nZXRGYW1peENsYXNzKGZ1bGx5UXVhbGlmaWVkTmFtZTogc3RyaW5nKTogQ2xhc3MgfCB1bmRlZmluZWQge1xyXG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuZmFtaXhDbGFzc2VzLnZhbHVlcygpKS5maW5kKG5zID0+IG5zLmZ1bGx5UXVhbGlmaWVkTmFtZSA9PT0gZnVsbHlRdWFsaWZpZWROYW1lKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgYSBGYW1peCBpbnRlcmZhY2UgYnkgbmFtZVxyXG4gICAgICogQHBhcmFtIG5hbWUgQW4gaW50ZXJmYWNlIG5hbWVcclxuICAgICAqIEByZXR1cm5zIFRoZSBGYW1peCBpbnRlcmZhY2UgY29ycmVzcG9uZGluZyB0byB0aGUgbmFtZSBvciB1bmRlZmluZWQgaWYgaXQgZG9lc24ndCBleGlzdFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgX2dldEZhbWl4SW50ZXJmYWNlKGZ1bGx5UXVhbGlmaWVkTmFtZTogc3RyaW5nKTogSW50ZXJmYWNlIHwgdW5kZWZpbmVkIHtcclxuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmZhbWl4SW50ZXJmYWNlcy52YWx1ZXMoKSkuZmluZChucyA9PiBucy5mdWxseVF1YWxpZmllZE5hbWUgPT09IGZ1bGx5UXVhbGlmaWVkTmFtZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIGEgRmFtaXggbWV0aG9kIGJ5IG5hbWVcclxuICAgICAqIEBwYXJhbSBuYW1lIEEgbWV0aG9kIG5hbWVcclxuICAgICAqIEByZXR1cm5zIFRoZSBGYW1peCBtZXRob2QgY29ycmVzcG9uZGluZyB0byB0aGUgbmFtZSBvciB1bmRlZmluZWQgaWYgaXQgZG9lc24ndCBleGlzdFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgX2dldEZhbWl4TWV0aG9kKGZ1bGx5UXVhbGlmaWVkTmFtZTogc3RyaW5nKTogTWV0aG9kIHwgdW5kZWZpbmVkIHtcclxuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmZhbWl4TWV0aG9kcy52YWx1ZXMoKSkuZmluZChucyA9PiBucy5mdWxseVF1YWxpZmllZE5hbWUgPT09IGZ1bGx5UXVhbGlmaWVkTmFtZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIGEgRmFtaXggZnVuY3Rpb24gYnkgbmFtZVxyXG4gICAgICogQHBhcmFtIG5hbWUgQSBmdW5jdGlvbiBuYW1lXHJcbiAgICAgKiBAcmV0dXJucyBUaGUgRmFtaXggZnVuY3Rpb24gY29ycmVzcG9uZGluZyB0byB0aGUgbmFtZSBvciB1bmRlZmluZWQgaWYgaXQgZG9lc24ndCBleGlzdFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgX2dldEZhbWl4RnVuY3Rpb24oZnVsbHlRdWFsaWZpZWROYW1lOiBzdHJpbmcpOiBGYW1peEZ1bmN0aW9uRW50aXR5IHwgdW5kZWZpbmVkIHtcclxuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmZhbWl4RnVuY3Rpb25zLnZhbHVlcygpKS5maW5kKG5zID0+IG5zLmZ1bGx5UXVhbGlmaWVkTmFtZSA9PT0gZnVsbHlRdWFsaWZpZWROYW1lKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIGEgRmFtaXggdmFyaWFibGUgYnkgbmFtZVxyXG4gICAgICogQHBhcmFtIG5hbWUgQSB2YXJpYWJsZSBuYW1lXHJcbiAgICAgKiBAcmV0dXJucyBUaGUgRmFtaXggdmFyaWFibGUgY29ycmVzcG9uZGluZyB0byB0aGUgbmFtZSBvciB1bmRlZmluZWQgaWYgaXQgZG9lc24ndCBleGlzdFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgX2dldEZhbWl4VmFyaWFibGUoZnVsbHlRdWFsaWZpZWROYW1lOiBzdHJpbmcpOiBWYXJpYWJsZSB8IHVuZGVmaW5lZCB7XHJcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5mYW1peFZhcmlhYmxlcy52YWx1ZXMoKSkuZmluZCh2ID0+IHYuZnVsbHlRdWFsaWZpZWROYW1lID09PSBmdWxseVF1YWxpZmllZE5hbWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBhIEZhbWl4IG5hbWVzcGFjZSBieSBuYW1lXHJcbiAgICAgKiBAcGFyYW0gbmFtZSBBIG5hbWVzcGFjZSBuYW1lXHJcbiAgICAgKiBAcmV0dXJucyBUaGUgRmFtaXggbmFtZXNwYWNlIGNvcnJlc3BvbmRpbmcgdG8gdGhlIG5hbWUgb3IgdW5kZWZpbmVkIGlmIGl0IGRvZXNuJ3QgZXhpc3RcclxuICAgICAqL1xyXG4gICAgcHVibGljIF9nZXRGYW1peE1vZHVsZShmdWxseVF1YWxpZmllZE5hbWU6IHN0cmluZyk6IE1vZHVsZSB8IHVuZGVmaW5lZCB7XHJcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5mYW1peE1vZHVsZXMudmFsdWVzKCkpLmZpbmQobnMgPT4gbnMuZnVsbHlRdWFsaWZpZWROYW1lID09PSBmdWxseVF1YWxpZmllZE5hbWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBhbGwgRmFtaXggbmFtZXNwYWNlc1xyXG4gICAgICogQHJldHVybnMgQWxsIEZhbWl4IG5hbWVzcGFjZXNcclxuICAgICAqL1xyXG4gICAgcHVibGljIF9nZXRGYW1peE1vZHVsZXMoKTogU2V0PE1vZHVsZT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgU2V0KEFycmF5LmZyb20odGhpcy5mYW1peE1vZHVsZXMudmFsdWVzKCkpKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgYSBGYW1peCBmaWxlIGJ5IG5hbWVcclxuICAgICAqIEBwYXJhbSBuYW1lIEEgZmlsZSBuYW1lXHJcbiAgICAgKiBAcmV0dXJucyBUaGUgRmFtaXggZmlsZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBuYW1lIG9yIHVuZGVmaW5lZCBpZiBpdCBkb2Vzbid0IGV4aXN0XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBfZ2V0RmFtaXhGaWxlKGZ1bGx5UXVhbGlmaWVkTmFtZTogc3RyaW5nKTogU2NyaXB0RW50aXR5IHwgTW9kdWxlIHwgdW5kZWZpbmVkIHtcclxuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmZhbWl4RmlsZXMudmFsdWVzKCkpLmZpbmQobnMgPT4gbnMubmFtZSA9PT0gZnVsbHlRdWFsaWZpZWROYW1lKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgYWxsIEZhbWl4IGZpbGVzXHJcbiAgICAgKiBAcmV0dXJucyBBbGwgRmFtaXggZmlsZXNcclxuICAgICAqL1xyXG4gICAgcHVibGljIF9nZXRGYW1peEZpbGVzKCk6IFNldDxTY3JpcHRFbnRpdHkgfCBNb2R1bGU+IHtcclxuICAgICAgICByZXR1cm4gbmV3IFNldChBcnJheS5mcm9tKHRoaXMuZmFtaXhGaWxlcy52YWx1ZXMoKSkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBhbGwgbWV0aG9kIG5hbWVzIGFzIGEgc2V0IGZyb20gYSBjbGFzc1xyXG4gICAgICogQHBhcmFtIGNsYXNzTmFtZSBBIGNsYXNzIG5hbWVcclxuICAgICAqIEByZXR1cm5zIFRoZSBzZXQgb2YgY2xhc3MgXCJjbGFzc05hbWVcIiBtZXRob2QgbmFtZXNcclxuICAgICAqL1xyXG4gICAgcHVibGljIF9tZXRob2ROYW1lc0FzU2V0RnJvbUNsYXNzKGNsYXNzTmFtZTogc3RyaW5nKTogU2V0PHN0cmluZz4ge1xyXG4gICAgICAgIGNvbnN0IHRoZUNsYXNzID0gdGhpcy5fZ2V0RmFtaXhDbGFzcyhjbGFzc05hbWUpIGFzIENsYXNzO1xyXG4gICAgICAgIHJldHVybiBuZXcgU2V0KEFycmF5LmZyb20odGhlQ2xhc3MubWV0aG9kcykubWFwKG0gPT4gbS5uYW1lKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIGFsbCBtZXRob2QgcGFyZW50cyBhcyBhIHNldCBmcm9tIGEgY2xhc3NcclxuICAgICAqIEBwYXJhbSBjbGFzc05hbWUgQSBjbGFzcyBuYW1lXHJcbiAgICAgKiBAcmV0dXJucyBUaGUgc2V0IG9mIGNsYXNzIFwiY2xhc3NOYW1lXCIgbWV0aG9kIHBhcmVudHNcclxuICAgICAqL1xyXG4gICAgcHVibGljIF9tZXRob2RQYXJlbnRzQXNTZXRGcm9tQ2xhc3MoY2xhc3NOYW1lOiBzdHJpbmcpOiBTZXQ8VHlwZT4ge1xyXG4gICAgICAgIGNvbnN0IHRoZUNsYXNzID0gdGhpcy5fZ2V0RmFtaXhDbGFzcyhjbGFzc05hbWUpIGFzIENsYXNzO1xyXG4gICAgICAgIHJldHVybiBuZXcgU2V0KEFycmF5LmZyb20odGhlQ2xhc3MubWV0aG9kcykubWFwKG0gPT4gbS5wYXJlbnRFbnRpdHkpKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgdGhlIG1hcCBvZiBGYW1peCBlbGVtZW50IGlkcyBhbmQgdGhlaXIgRmFtaXggZWxlbWVudCBmcm9tIGEgSlNPTiBtb2RlbFxyXG4gICAgICogQHBhcmFtIG1vZGVsIEEgSlNPTiBtb2RlbFxyXG4gICAgICogQHJldHVybnMgVGhlIG1hcCBvZiBGYW1peCBlbGVtZW50IGlkcyBhbmQgdGhlaXIgRmFtaXggZWxlbWVudCBmcm9tIHRoZSBKU09OIG1vZGVsXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBfaW5pdE1hcEZyb21Nb2RlbChtb2RlbDogc3RyaW5nKTogTWFwPG51bWJlciwgdW5rbm93bj4ge1xyXG4gICAgICAgIGNvbnN0IHBhcnNlZE1vZGVsOiBBcnJheTxGYW1peEJhc2VFbGVtZW50PiA9IEpTT04ucGFyc2UobW9kZWwpO1xyXG4gICAgICAgIGNvbnN0IGlkVG9FbGVtZW50TWFwOiBNYXA8bnVtYmVyLCB1bmtub3duPiA9IG5ldyBNYXAoKTtcclxuICAgICAgICBwYXJzZWRNb2RlbC5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICAgICAgICBpZFRvRWxlbWVudE1hcC5zZXQoZWxlbWVudC5pZCwgZWxlbWVudCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIGlkVG9FbGVtZW50TWFwO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFkZHMgYSBGYW1peCBlbGVtZW50IHRvIHRoZSByZXBvc2l0b3J5XHJcbiAgICAgKiBAcGFyYW0gZWxlbWVudCBBIEZhbWl4IGVsZW1lbnRcclxuICAgICAqL1xyXG4gICAgcHVibGljIGFkZEVsZW1lbnQoZWxlbWVudDogRmFtaXhCYXNlRWxlbWVudCk6IHZvaWQge1xyXG4gICAgICAgIGlmIChlbGVtZW50IGluc3RhbmNlb2YgQ2xhc3MpIHtcclxuICAgICAgICAgICAgdGhpcy5mYW1peENsYXNzZXMuYWRkKGVsZW1lbnQpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoZWxlbWVudCBpbnN0YW5jZW9mIEludGVyZmFjZSkge1xyXG4gICAgICAgICAgICB0aGlzLmZhbWl4SW50ZXJmYWNlcy5hZGQoZWxlbWVudCk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChlbGVtZW50IGluc3RhbmNlb2YgTW9kdWxlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmFtaXhNb2R1bGVzLmFkZChlbGVtZW50KTtcclxuICAgICAgICB9IGVsc2UgaWYgKGVsZW1lbnQgaW5zdGFuY2VvZiBWYXJpYWJsZSkge1xyXG4gICAgICAgICAgICB0aGlzLmZhbWl4VmFyaWFibGVzLmFkZChlbGVtZW50KTtcclxuICAgICAgICB9IGVsc2UgaWYgKGVsZW1lbnQgaW5zdGFuY2VvZiBNZXRob2QpIHtcclxuICAgICAgICAgICAgdGhpcy5mYW1peE1ldGhvZHMuYWRkKGVsZW1lbnQpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoZWxlbWVudCBpbnN0YW5jZW9mIEZhbWl4RnVuY3Rpb25FbnRpdHkgfHwgZWxlbWVudCBpbnN0YW5jZW9mIEFycm93RnVuY3Rpb24pIHtcclxuICAgICAgICAgICAgdGhpcy5mYW1peEZ1bmN0aW9ucy5hZGQoZWxlbWVudCk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChlbGVtZW50IGluc3RhbmNlb2YgU2NyaXB0RW50aXR5IHx8IGVsZW1lbnQgaW5zdGFuY2VvZiBNb2R1bGUpIHtcclxuICAgICAgICAgICAgdGhpcy5mYW1peEZpbGVzLmFkZChlbGVtZW50KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5lbGVtZW50cy5hZGQoZWxlbWVudCk7XHJcbiAgICAgICAgZWxlbWVudC5pZCA9IHRoaXMuaWRDb3VudGVyO1xyXG4gICAgICAgIHRoaXMuaWRDb3VudGVyKys7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIGEgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgcmVwb3NpdG9yeVxyXG4gICAgICogQHJldHVybnMgQSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSByZXBvc2l0b3J5XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRKU09OKCk6IHN0cmluZyB7XHJcbiAgICAgICAgbGV0IHJldCA9IFwiW1wiO1xyXG4gICAgICAgIGZvciAoY29uc3QgZWxlbWVudCBvZiBBcnJheS5mcm9tKHRoaXMuZWxlbWVudHMudmFsdWVzKCkpKSB7XHJcbiAgICAgICAgICAgIHJldCA9IHJldCArIGVsZW1lbnQuZ2V0SlNPTigpICsgXCIsXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldCA9IHJldC5zdWJzdHJpbmcoMCwgcmV0Lmxlbmd0aCAtIDEpO1xyXG4gICAgICAgIHJldHVybiByZXQgKyBcIl1cIjtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ const Famix = __importStar(require("./model/famix"));
26
+ const famix_base_element_1 = require("./famix_base_element");
27
+ const famix_JSON_exporter_1 = require("./famix_JSON_exporter");
28
+ const famix_repository_1 = require("./famix_repository");
29
+ const model = { Famix };
30
+ module.exports = { FamixBaseElement: famix_base_element_1.FamixBaseElement, FamixJSONExporter: famix_JSON_exporter_1.FamixJSONExporter, FamixRepository: famix_repository_1.FamixRepository, model };
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2ZhbWl4L3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxxREFBdUM7QUFDdkMsNkRBQXdEO0FBQ3hELCtEQUEwRDtBQUMxRCx5REFBcUQ7QUFFckQsTUFBTSxLQUFLLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQztBQUV4QixpQkFBUyxFQUFFLGdCQUFnQixFQUFoQixxQ0FBZ0IsRUFBRSxpQkFBaUIsRUFBakIsdUNBQWlCLEVBQUUsZUFBZSxFQUFmLGtDQUFlLEVBQUUsS0FBSyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBGYW1peCBmcm9tIFwiLi9tb2RlbC9mYW1peFwiO1xyXG5pbXBvcnQgeyBGYW1peEJhc2VFbGVtZW50IH0gZnJvbSBcIi4vZmFtaXhfYmFzZV9lbGVtZW50XCI7XHJcbmltcG9ydCB7IEZhbWl4SlNPTkV4cG9ydGVyIH0gZnJvbSBcIi4vZmFtaXhfSlNPTl9leHBvcnRlclwiO1xyXG5pbXBvcnQgeyBGYW1peFJlcG9zaXRvcnkgfSBmcm9tIFwiLi9mYW1peF9yZXBvc2l0b3J5XCI7XHJcblxyXG5jb25zdCBtb2RlbCA9IHsgRmFtaXggfTtcclxuXHJcbmV4cG9ydCA9IHsgRmFtaXhCYXNlRWxlbWVudCwgRmFtaXhKU09ORXhwb3J0ZXIsIEZhbWl4UmVwb3NpdG9yeSwgbW9kZWwgfTtcclxuIl19
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Access = void 0;
4
+ const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
5
+ const entity_1 = require("./entity");
6
+ class Access extends entity_1.Entity {
7
+ getJSON() {
8
+ const json = new famix_JSON_exporter_1.FamixJSONExporter("Access", this);
9
+ this.addPropertiesToExporter(json);
10
+ return json.getJSON();
11
+ }
12
+ addPropertiesToExporter(exporter) {
13
+ super.addPropertiesToExporter(exporter);
14
+ exporter.addProperty("accessor", this.accessor);
15
+ exporter.addProperty("variable", this.variable);
16
+ exporter.addProperty("isWrite", this.isWrite);
17
+ }
18
+ get accessor() {
19
+ return this._accessor;
20
+ }
21
+ set accessor(accessor) {
22
+ this._accessor = accessor;
23
+ accessor.addAccess(this);
24
+ }
25
+ get variable() {
26
+ return this._variable;
27
+ }
28
+ set variable(variable) {
29
+ this._variable = variable;
30
+ variable.addIncomingAccess(this);
31
+ }
32
+ get isWrite() {
33
+ return this._isWrite;
34
+ }
35
+ set isWrite(isWrite) {
36
+ this._isWrite = isWrite;
37
+ }
38
+ }
39
+ exports.Access = Access;
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9mYW1peC9zcmMvbW9kZWwvZmFtaXgvYWNjZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1FQUE4RDtBQUc5RCxxQ0FBa0M7QUFFbEMsTUFBYSxNQUFPLFNBQVEsZUFBTTtJQU12QixPQUFPO1FBQ1YsTUFBTSxJQUFJLEdBQXNCLElBQUksdUNBQWlCLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU0sdUJBQXVCLENBQUMsUUFBMkI7UUFDdEQsS0FBSyxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hDLFFBQVEsQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRCxRQUFRLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEQsUUFBUSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksUUFBUSxDQUFDLFFBQXlCO1FBQ2xDLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO1FBQzFCLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksUUFBUTtRQUNSLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxRQUFRLENBQUMsUUFBMEI7UUFDbkMsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7UUFDMUIsUUFBUSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDUCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLE9BQWdCO1FBQ3hCLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO0lBQzVCLENBQUM7Q0FDSjtBQTVDRCx3QkE0Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGYW1peEpTT05FeHBvcnRlciB9IGZyb20gXCIuLi8uLi9mYW1peF9KU09OX2V4cG9ydGVyXCI7XHJcbmltcG9ydCB7IFN0cnVjdHVyYWxFbnRpdHkgfSBmcm9tIFwiLi9zdHJ1Y3R1cmFsX2VudGl0eVwiO1xyXG5pbXBvcnQgeyBDb250YWluZXJFbnRpdHkgfSBmcm9tIFwiLi9jb250YWluZXJfZW50aXR5XCI7XHJcbmltcG9ydCB7IEVudGl0eSB9IGZyb20gXCIuL2VudGl0eVwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEFjY2VzcyBleHRlbmRzIEVudGl0eSB7XHJcblxyXG4gICAgcHJpdmF0ZSBfYWNjZXNzb3IhOiBDb250YWluZXJFbnRpdHk7XHJcbiAgICBwcml2YXRlIF92YXJpYWJsZSE6IFN0cnVjdHVyYWxFbnRpdHk7XHJcbiAgICBwcml2YXRlIF9pc1dyaXRlITogYm9vbGVhbjtcclxuXHJcbiAgICBwdWJsaWMgZ2V0SlNPTigpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IGpzb246IEZhbWl4SlNPTkV4cG9ydGVyID0gbmV3IEZhbWl4SlNPTkV4cG9ydGVyKFwiQWNjZXNzXCIsIHRoaXMpO1xyXG4gICAgICAgIHRoaXMuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoanNvbik7XHJcbiAgICAgICAgcmV0dXJuIGpzb24uZ2V0SlNPTigpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcjogRmFtaXhKU09ORXhwb3J0ZXIpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcik7XHJcbiAgICAgICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJhY2Nlc3NvclwiLCB0aGlzLmFjY2Vzc29yKTtcclxuICAgICAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcInZhcmlhYmxlXCIsIHRoaXMudmFyaWFibGUpO1xyXG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwiaXNXcml0ZVwiLCB0aGlzLmlzV3JpdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBhY2Nlc3NvcigpOiBDb250YWluZXJFbnRpdHkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9hY2Nlc3NvcjtcclxuICAgIH1cclxuXHJcbiAgICBzZXQgYWNjZXNzb3IoYWNjZXNzb3I6IENvbnRhaW5lckVudGl0eSkge1xyXG4gICAgICAgIHRoaXMuX2FjY2Vzc29yID0gYWNjZXNzb3I7XHJcbiAgICAgICAgYWNjZXNzb3IuYWRkQWNjZXNzKHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCB2YXJpYWJsZSgpOiBTdHJ1Y3R1cmFsRW50aXR5IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdmFyaWFibGU7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IHZhcmlhYmxlKHZhcmlhYmxlOiBTdHJ1Y3R1cmFsRW50aXR5KSB7XHJcbiAgICAgICAgdGhpcy5fdmFyaWFibGUgPSB2YXJpYWJsZTtcclxuICAgICAgICB2YXJpYWJsZS5hZGRJbmNvbWluZ0FjY2Vzcyh0aGlzKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgaXNXcml0ZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5faXNXcml0ZTtcclxuICAgIH1cclxuXHJcbiAgICBzZXQgaXNXcml0ZShpc1dyaXRlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5faXNXcml0ZSA9IGlzV3JpdGU7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Accessor = void 0;
4
+ const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
5
+ const method_1 = require("./method");
6
+ class Accessor extends method_1.Method {
7
+ getJSON() {
8
+ const json = new famix_JSON_exporter_1.FamixJSONExporter("Accessor", this);
9
+ this.addPropertiesToExporter(json);
10
+ return json.getJSON();
11
+ }
12
+ addPropertiesToExporter(exporter) {
13
+ super.addPropertiesToExporter(exporter);
14
+ }
15
+ }
16
+ exports.Accessor = Accessor;
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ZhbWl4L3NyYy9tb2RlbC9mYW1peC9hY2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtRUFBOEQ7QUFDOUQscUNBQWtDO0FBRWxDLE1BQWEsUUFBUyxTQUFRLGVBQU07SUFFM0IsT0FBTztRQUNaLE1BQU0sSUFBSSxHQUFzQixJQUFJLHVDQUFpQixDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN4RSxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVNLHVCQUF1QixDQUFDLFFBQTJCO1FBQ3hELEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxQyxDQUFDO0NBQ0Y7QUFYRCw0QkFXQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZhbWl4SlNPTkV4cG9ydGVyIH0gZnJvbSBcIi4uLy4uL2ZhbWl4X0pTT05fZXhwb3J0ZXJcIjtcclxuaW1wb3J0IHsgTWV0aG9kIH0gZnJvbSBcIi4vbWV0aG9kXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgQWNjZXNzb3IgZXh0ZW5kcyBNZXRob2Qge1xyXG4gIFxyXG4gIHB1YmxpYyBnZXRKU09OKCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBqc29uOiBGYW1peEpTT05FeHBvcnRlciA9IG5ldyBGYW1peEpTT05FeHBvcnRlcihcIkFjY2Vzc29yXCIsIHRoaXMpO1xyXG4gICAgdGhpcy5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihqc29uKTtcclxuICAgIHJldHVybiBqc29uLmdldEpTT04oKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcjogRmFtaXhKU09ORXhwb3J0ZXIpOiB2b2lkIHtcclxuICAgIHN1cGVyLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyKTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Alias = void 0;
4
+ const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
5
+ const named_entity_1 = require("./named_entity");
6
+ class Alias extends named_entity_1.NamedEntity {
7
+ getJSON() {
8
+ const json = new famix_JSON_exporter_1.FamixJSONExporter("Alias", this);
9
+ this.addPropertiesToExporter(json);
10
+ return json.getJSON();
11
+ }
12
+ addPropertiesToExporter(exporter) {
13
+ super.addPropertiesToExporter(exporter);
14
+ exporter.addProperty("parentType", this.parentEntity);
15
+ exporter.addProperty("aliasedEntity", this.aliasedEntity);
16
+ }
17
+ get parentEntity() {
18
+ return this._parentEntity;
19
+ }
20
+ set parentEntity(parentEntity) {
21
+ this._parentEntity = parentEntity;
22
+ parentEntity.addAlias(this);
23
+ }
24
+ get aliasedEntity() {
25
+ return this._aliasedEntity;
26
+ }
27
+ set aliasedEntity(aliasedEntity) {
28
+ this._aliasedEntity = aliasedEntity;
29
+ aliasedEntity.addTypeAlias(this);
30
+ }
31
+ }
32
+ exports.Alias = Alias;
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxpYXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ZhbWl4L3NyYy9tb2RlbC9mYW1peC9hbGlhcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtRUFBOEQ7QUFDOUQsaURBQTZDO0FBRzdDLE1BQWEsS0FBTSxTQUFRLDBCQUFXO0lBSzNCLE9BQU87UUFDVixNQUFNLElBQUksR0FBc0IsSUFBSSx1Q0FBaUIsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDckUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxRQUEyQjtRQUN0RCxLQUFLLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3RELFFBQVEsQ0FBQyxXQUFXLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ1osT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJLFlBQVksQ0FBQyxZQUF5QjtRQUN0QyxJQUFJLENBQUMsYUFBYSxHQUFHLFlBQVksQ0FBQztRQUNsQyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDYixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQUksYUFBYSxDQUFDLGFBQW1CO1FBQ2pDLElBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDO1FBQ3BDLGFBQWEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckMsQ0FBQztDQUNKO0FBbENELHNCQWtDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZhbWl4SlNPTkV4cG9ydGVyIH0gZnJvbSBcIi4uLy4uL2ZhbWl4X0pTT05fZXhwb3J0ZXJcIjtcclxuaW1wb3J0IHsgTmFtZWRFbnRpdHkgfSBmcm9tIFwiLi9uYW1lZF9lbnRpdHlcIjtcclxuaW1wb3J0IHsgVHlwZSB9IGZyb20gXCIuL3R5cGVcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBBbGlhcyBleHRlbmRzIE5hbWVkRW50aXR5IHtcclxuXHJcbiAgICBwcml2YXRlIF9wYXJlbnRFbnRpdHkhOiBOYW1lZEVudGl0eTtcclxuICAgIHByaXZhdGUgX2FsaWFzZWRFbnRpdHkhOiBUeXBlO1xyXG5cclxuICAgIHB1YmxpYyBnZXRKU09OKCk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3QganNvbjogRmFtaXhKU09ORXhwb3J0ZXIgPSBuZXcgRmFtaXhKU09ORXhwb3J0ZXIoXCJBbGlhc1wiLCB0aGlzKTtcclxuICAgICAgICB0aGlzLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGpzb24pO1xyXG4gICAgICAgIHJldHVybiBqc29uLmdldEpTT04oKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoZXhwb3J0ZXI6IEZhbWl4SlNPTkV4cG9ydGVyKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoZXhwb3J0ZXIpO1xyXG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwicGFyZW50VHlwZVwiLCB0aGlzLnBhcmVudEVudGl0eSk7XHJcbiAgICAgICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJhbGlhc2VkRW50aXR5XCIsIHRoaXMuYWxpYXNlZEVudGl0eSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHBhcmVudEVudGl0eSgpOiBOYW1lZEVudGl0eSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BhcmVudEVudGl0eTtcclxuICAgIH1cclxuXHJcbiAgICBzZXQgcGFyZW50RW50aXR5KHBhcmVudEVudGl0eTogTmFtZWRFbnRpdHkpIHtcclxuICAgICAgICB0aGlzLl9wYXJlbnRFbnRpdHkgPSBwYXJlbnRFbnRpdHk7XHJcbiAgICAgICAgcGFyZW50RW50aXR5LmFkZEFsaWFzKHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBhbGlhc2VkRW50aXR5KCk6IFR5cGUge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9hbGlhc2VkRW50aXR5O1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBhbGlhc2VkRW50aXR5KGFsaWFzZWRFbnRpdHk6IFR5cGUpIHtcclxuICAgICAgICB0aGlzLl9hbGlhc2VkRW50aXR5ID0gYWxpYXNlZEVudGl0eTtcclxuICAgICAgICBhbGlhc2VkRW50aXR5LmFkZFR5cGVBbGlhcyh0aGlzKTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ArrowFunction = void 0;
4
+ const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
5
+ const behavioral_entity_1 = require("./behavioral_entity");
6
+ class ArrowFunction extends behavioral_entity_1.BehavioralEntity {
7
+ getJSON() {
8
+ const json = new famix_JSON_exporter_1.FamixJSONExporter("ArrowFunction", this);
9
+ this.addPropertiesToExporter(json);
10
+ return json.getJSON();
11
+ }
12
+ addPropertiesToExporter(exporter) {
13
+ super.addPropertiesToExporter(exporter);
14
+ }
15
+ }
16
+ exports.ArrowFunction = ArrowFunction;
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyb3dGdW5jdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZmFtaXgvc3JjL21vZGVsL2ZhbWl4L2Fycm93RnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUVBQThEO0FBQzlELDJEQUF1RDtBQUV2RCxNQUFhLGFBQWMsU0FBUSxvQ0FBZ0I7SUFFMUMsT0FBTztRQUNaLE1BQU0sSUFBSSxHQUFzQixJQUFJLHVDQUFpQixDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM3RSxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVNLHVCQUF1QixDQUFDLFFBQTJCO1FBQ3hELEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxQyxDQUFDO0NBQ0Y7QUFYRCxzQ0FXQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZhbWl4SlNPTkV4cG9ydGVyIH0gZnJvbSBcIi4uLy4uL2ZhbWl4X0pTT05fZXhwb3J0ZXJcIjtcclxuaW1wb3J0IHsgQmVoYXZpb3JhbEVudGl0eSB9IGZyb20gXCIuL2JlaGF2aW9yYWxfZW50aXR5XCI7XHJcblxyXG5leHBvcnQgY2xhc3MgQXJyb3dGdW5jdGlvbiBleHRlbmRzIEJlaGF2aW9yYWxFbnRpdHkge1xyXG5cclxuICBwdWJsaWMgZ2V0SlNPTigpOiBzdHJpbmcge1xyXG4gICAgY29uc3QganNvbjogRmFtaXhKU09ORXhwb3J0ZXIgPSBuZXcgRmFtaXhKU09ORXhwb3J0ZXIoXCJBcnJvd0Z1bmN0aW9uXCIsIHRoaXMpO1xyXG4gICAgdGhpcy5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihqc29uKTtcclxuICAgIHJldHVybiBqc29uLmdldEpTT04oKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcjogRmFtaXhKU09ORXhwb3J0ZXIpOiB2b2lkIHtcclxuICAgIHN1cGVyLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyKTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ArrowFunction = void 0;
4
+ const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
5
+ const behavioral_entity_1 = require("./behavioral_entity");
6
+ class ArrowFunction extends behavioral_entity_1.BehavioralEntity {
7
+ getJSON() {
8
+ const json = new famix_JSON_exporter_1.FamixJSONExporter("ArrowFunction", this);
9
+ this.addPropertiesToExporter(json);
10
+ return json.getJSON();
11
+ }
12
+ addPropertiesToExporter(exporter) {
13
+ super.addPropertiesToExporter(exporter);
14
+ }
15
+ }
16
+ exports.ArrowFunction = ArrowFunction;
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyb3dfZnVuY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ZhbWl4L3NyYy9tb2RlbC9mYW1peC9hcnJvd19mdW5jdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtRUFBOEQ7QUFDOUQsMkRBQXVEO0FBRXZELE1BQWEsYUFBYyxTQUFRLG9DQUFnQjtJQUUxQyxPQUFPO1FBQ1osTUFBTSxJQUFJLEdBQXNCLElBQUksdUNBQWlCLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzdFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRU0sdUJBQXVCLENBQUMsUUFBMkI7UUFDeEQsS0FBSyxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzFDLENBQUM7Q0FDRjtBQVhELHNDQVdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmFtaXhKU09ORXhwb3J0ZXIgfSBmcm9tIFwiLi4vLi4vZmFtaXhfSlNPTl9leHBvcnRlclwiO1xyXG5pbXBvcnQgeyBCZWhhdmlvcmFsRW50aXR5IH0gZnJvbSBcIi4vYmVoYXZpb3JhbF9lbnRpdHlcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBBcnJvd0Z1bmN0aW9uIGV4dGVuZHMgQmVoYXZpb3JhbEVudGl0eSB7XHJcblxyXG4gIHB1YmxpYyBnZXRKU09OKCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBqc29uOiBGYW1peEpTT05FeHBvcnRlciA9IG5ldyBGYW1peEpTT05FeHBvcnRlcihcIkFycm93RnVuY3Rpb25cIiwgdGhpcyk7XHJcbiAgICB0aGlzLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGpzb24pO1xyXG4gICAgcmV0dXJuIGpzb24uZ2V0SlNPTigpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyOiBGYW1peEpTT05FeHBvcnRlcik6IHZvaWQge1xyXG4gICAgc3VwZXIuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoZXhwb3J0ZXIpO1xyXG4gIH1cclxufVxyXG4iXX0=