@codeperfect/eslint-plugin 2.4.0 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/dist/codeperfect-eslint-plugin-1.0.0.tgz +0 -0
  2. package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-options.d.ts.map +1 -1
  3. package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-options.js +4 -2
  4. package/dist/domain/architecture/consistent-barrel-files/exports-only-rule.d.ts.map +1 -1
  5. package/dist/domain/architecture/consistent-barrel-files/exports-only-rule.js +2 -4
  6. package/dist/domain/architecture/consistent-barrel-files/no-import-export-aliases-rule.d.ts.map +1 -1
  7. package/dist/domain/architecture/consistent-barrel-files/no-import-export-aliases-rule.js +4 -134
  8. package/dist/domain/architecture/consistent-barrel-files/no-import-export-aliases-utilities.d.ts +14 -0
  9. package/dist/domain/architecture/consistent-barrel-files/no-import-export-aliases-utilities.d.ts.map +1 -0
  10. package/dist/domain/architecture/consistent-barrel-files/no-import-export-aliases-utilities.js +154 -0
  11. package/dist/domain/architecture/consistent-barrel-files/no-import-export-extensions-rule.d.ts.map +1 -1
  12. package/dist/domain/architecture/consistent-barrel-files/no-import-export-extensions-rule.js +10 -12
  13. package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.d.ts.map +1 -1
  14. package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.js +4 -11
  15. package/dist/domain/architecture/no-unused-exports/no-unused-exports-declaration-utilities.d.ts +14 -0
  16. package/dist/domain/architecture/no-unused-exports/no-unused-exports-declaration-utilities.d.ts.map +1 -0
  17. package/dist/domain/architecture/no-unused-exports/no-unused-exports-declaration-utilities.js +187 -0
  18. package/dist/domain/architecture/no-unused-exports/no-unused-exports-identifier-utilities.d.ts +26 -0
  19. package/dist/domain/architecture/no-unused-exports/no-unused-exports-identifier-utilities.d.ts.map +1 -0
  20. package/dist/domain/architecture/no-unused-exports/no-unused-exports-identifier-utilities.js +95 -0
  21. package/dist/domain/architecture/no-unused-exports/no-unused-exports-pattern-utilities.d.ts +32 -0
  22. package/dist/domain/architecture/no-unused-exports/no-unused-exports-pattern-utilities.d.ts.map +1 -0
  23. package/dist/domain/architecture/no-unused-exports/no-unused-exports-pattern-utilities.js +78 -0
  24. package/dist/domain/architecture/no-unused-exports/no-unused-exports-public-api-usage-utilities.d.ts +18 -0
  25. package/dist/domain/architecture/no-unused-exports/no-unused-exports-public-api-usage-utilities.d.ts.map +1 -0
  26. package/dist/domain/architecture/no-unused-exports/no-unused-exports-public-api-usage-utilities.js +45 -0
  27. package/dist/domain/architecture/no-unused-exports/no-unused-exports-record-utilities.d.ts +34 -0
  28. package/dist/domain/architecture/no-unused-exports/no-unused-exports-record-utilities.d.ts.map +1 -0
  29. package/dist/domain/architecture/no-unused-exports/no-unused-exports-record-utilities.js +44 -0
  30. package/dist/domain/architecture/no-unused-exports/no-unused-exports-symbol-utilities.d.ts +59 -0
  31. package/dist/domain/architecture/no-unused-exports/no-unused-exports-symbol-utilities.d.ts.map +1 -0
  32. package/dist/domain/architecture/no-unused-exports/no-unused-exports-symbol-utilities.js +133 -0
  33. package/dist/domain/architecture/no-unused-exports/no-unused-exports-usage-utilities.d.ts +28 -0
  34. package/dist/domain/architecture/no-unused-exports/no-unused-exports-usage-utilities.d.ts.map +1 -0
  35. package/dist/domain/architecture/no-unused-exports/no-unused-exports-usage-utilities.js +106 -0
  36. package/dist/domain/architecture/no-unused-exports/no-unused-exports-utilities.d.ts +21 -21
  37. package/dist/domain/architecture/no-unused-exports/no-unused-exports-utilities.d.ts.map +1 -1
  38. package/dist/domain/architecture/no-unused-exports/no-unused-exports-utilities.js +24 -587
  39. package/dist/domain/core/no-multiple-declarators/rule-utilities.d.ts +58 -0
  40. package/dist/domain/core/no-multiple-declarators/rule-utilities.d.ts.map +1 -0
  41. package/dist/domain/core/no-multiple-declarators/rule-utilities.js +204 -0
  42. package/dist/domain/core/no-multiple-declarators/rule.d.ts.map +1 -1
  43. package/dist/domain/core/no-multiple-declarators/rule.js +9 -211
  44. package/dist/domain/core/no-multiple-declarators/types.js +2 -2
  45. package/dist/domain/core/prefer-interface-types/rule-utilities.d.ts +57 -0
  46. package/dist/domain/core/prefer-interface-types/rule-utilities.d.ts.map +1 -0
  47. package/dist/domain/core/prefer-interface-types/rule-utilities.js +105 -0
  48. package/dist/domain/core/prefer-interface-types/rule.d.ts.map +1 -1
  49. package/dist/domain/core/prefer-interface-types/rule.js +2 -104
  50. package/dist/domain/docs/no-interface-member-docs/comment-removal-ranges.d.ts +25 -0
  51. package/dist/domain/docs/no-interface-member-docs/comment-removal-ranges.d.ts.map +1 -0
  52. package/dist/domain/docs/no-interface-member-docs/comment-removal-ranges.js +64 -0
  53. package/dist/domain/docs/no-interface-member-docs/comment-utilities.d.ts +2 -24
  54. package/dist/domain/docs/no-interface-member-docs/comment-utilities.d.ts.map +1 -1
  55. package/dist/domain/docs/no-interface-member-docs/comment-utilities.js +3 -65
  56. package/dist/domain/docs/no-interface-member-docs/parameter-tags.js +2 -2
  57. package/dist/domain/docs/no-interface-member-docs/parameter-utilities.js +2 -2
  58. package/dist/domain/docs/no-interface-member-docs/rule.d.ts.map +1 -1
  59. package/dist/domain/docs/no-interface-member-docs/rule.js +3 -2
  60. package/dist/domain/docs/require-example-language/examples-collect.d.ts +15 -0
  61. package/dist/domain/docs/require-example-language/examples-collect.d.ts.map +1 -0
  62. package/dist/domain/docs/require-example-language/examples-collect.js +113 -0
  63. package/dist/domain/docs/require-example-language/examples.d.ts +24 -13
  64. package/dist/domain/docs/require-example-language/examples.d.ts.map +1 -1
  65. package/dist/domain/docs/require-example-language/examples.js +2 -111
  66. package/dist/domain/docs/require-example-language/fixes.js +4 -4
  67. package/dist/domain/docs/require-example-language/rule.d.ts.map +1 -1
  68. package/dist/domain/docs/require-example-language/rule.js +9 -8
  69. package/dist/domain/docs/require-example-language/types.d.ts.map +1 -1
  70. package/dist/domain/docs/require-example-language/types.js +1 -1
  71. package/dist/domain/testing/aaa/analyzer.analysis.helpers.d.ts.map +1 -1
  72. package/dist/domain/testing/aaa/analyzer.analysis.helpers.js +8 -8
  73. package/dist/domain/testing/aaa/analyzer.assertions.helpers.d.ts.map +1 -1
  74. package/dist/domain/testing/aaa/analyzer.assertions.helpers.js +10 -9
  75. package/dist/domain/testing/aaa/analyzer.assertions.operands.d.ts.map +1 -1
  76. package/dist/domain/testing/aaa/analyzer.assertions.operands.js +2 -5
  77. package/dist/domain/testing/aaa/analyzer.classification.helpers.js +14 -16
  78. package/dist/domain/testing/aaa/analyzer.classification.traversal.js +6 -4
  79. package/dist/domain/testing/aaa/analyzer.super.d.ts.map +1 -1
  80. package/dist/domain/testing/aaa/analyzer.super.js +10 -8
  81. package/dist/domain/testing/assert-actual-expected-names/rule.d.ts.map +1 -1
  82. package/dist/domain/testing/assert-actual-expected-names/rule.js +21 -23
  83. package/dist/domain/testing/enforce-aaa-phase-purity/pattern-identifiers.d.ts.map +1 -1
  84. package/dist/domain/testing/enforce-aaa-phase-purity/pattern-identifiers.js +1 -1
  85. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.d.ts.map +1 -1
  86. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.js +2 -160
  87. package/dist/domain/testing/enforce-aaa-phase-purity/statement-purity-reporters.d.ts +41 -0
  88. package/dist/domain/testing/enforce-aaa-phase-purity/statement-purity-reporters.d.ts.map +1 -0
  89. package/dist/domain/testing/enforce-aaa-phase-purity/statement-purity-reporters.js +161 -0
  90. package/dist/domain/testing/enforce-aaa-structure/missing-section-fixes.d.ts.map +1 -1
  91. package/dist/domain/testing/enforce-aaa-structure/missing-section-fixes.js +2 -2
  92. package/dist/domain/testing/enforce-aaa-structure/rule-section-reporting.d.ts +81 -0
  93. package/dist/domain/testing/enforce-aaa-structure/rule-section-reporting.d.ts.map +1 -0
  94. package/dist/domain/testing/enforce-aaa-structure/rule-section-reporting.js +181 -0
  95. package/dist/domain/testing/enforce-aaa-structure/rule.d.ts.map +1 -1
  96. package/dist/domain/testing/enforce-aaa-structure/rule.js +28 -217
  97. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-detection.d.ts +29 -0
  98. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-detection.d.ts.map +1 -0
  99. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-detection.js +200 -0
  100. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-names.d.ts +12 -0
  101. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-names.d.ts.map +1 -0
  102. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-names.js +151 -0
  103. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-reporting.d.ts +16 -0
  104. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-reporting.d.ts.map +1 -0
  105. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-reporting.js +109 -0
  106. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule.d.ts.map +1 -1
  107. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule.js +18 -450
  108. package/dist/domain/testing/prefer-vi-mocked-import/fix-import-updates.d.ts.map +1 -1
  109. package/dist/domain/testing/prefer-vi-mocked-import/fix-import-updates.js +7 -4
  110. package/dist/domain/testing/prefer-vi-mocked-import/fix-imports.d.ts.map +1 -1
  111. package/dist/domain/testing/prefer-vi-mocked-import/fix-imports.js +7 -4
  112. package/dist/domain/testing/prefer-vi-mocked-import/fix.js +2 -2
  113. package/dist/domain/testing/prefer-vi-mocked-import/match-collisions.d.ts +18 -0
  114. package/dist/domain/testing/prefer-vi-mocked-import/match-collisions.d.ts.map +1 -0
  115. package/dist/domain/testing/prefer-vi-mocked-import/match-collisions.js +162 -0
  116. package/dist/domain/testing/prefer-vi-mocked-import/match-rewrites.d.ts.map +1 -1
  117. package/dist/domain/testing/prefer-vi-mocked-import/match-rewrites.js +5 -4
  118. package/dist/domain/testing/prefer-vi-mocked-import/match-seeds.d.ts +29 -0
  119. package/dist/domain/testing/prefer-vi-mocked-import/match-seeds.d.ts.map +1 -0
  120. package/dist/domain/testing/prefer-vi-mocked-import/match-seeds.js +100 -0
  121. package/dist/domain/testing/prefer-vi-mocked-import/match.d.ts.map +1 -1
  122. package/dist/domain/testing/prefer-vi-mocked-import/match.js +5 -246
  123. package/dist/domain/testing/prefer-vi-mocked-import/rule.d.ts.map +1 -1
  124. package/dist/domain/testing/prefer-vi-mocked-import/rule.js +18 -20
  125. package/dist/domain/testing/require-act-result-capture/rule.d.ts.map +1 -1
  126. package/dist/domain/testing/require-act-result-capture/rule.js +47 -21
  127. package/dist/domain/testing/require-test-companion/rule.d.ts.map +1 -1
  128. package/dist/domain/testing/require-test-companion/rule.js +2 -4
  129. package/dist/domain/testing/single-act-statement/rule.d.ts.map +1 -1
  130. package/dist/domain/testing/single-act-statement/rule.js +20 -22
  131. package/package.json +35 -38
@@ -10,7 +10,7 @@ import { buildCombinedUpdateFixes } from "./fix-import-updates.js";
10
10
  * ```
11
11
  */
12
12
  function addInsertStatement(insertGroups, plan) {
13
- const sortedNames = [...plan.names].toSorted();
13
+ const sortedNames = [...plan.names].toSorted((left, right) => left === right ? 0 : left < right ? -1 : 1);
14
14
  if (sortedNames.length === 0 || plan.update !== void 0) {
15
15
  return;
16
16
  }
@@ -53,9 +53,12 @@ function buildCombinedImportFixes(matches, fixer) {
53
53
  * ```
54
54
  */
55
55
  function buildInsertGroupFixes(insertGroups, fixer, newline) {
56
- return [...insertGroups.values()].map((group) => group.afterRange === void 0
56
+ return insertGroups
57
+ .values()
58
+ .map((group) => group.afterRange === void 0
57
59
  ? fixer.insertTextBeforeRange([0, 0], `${group.statements.join(newline)}${newline}${newline}`)
58
- : fixer.insertTextAfterRange(group.afterRange, `${newline}${group.statements.join(newline)}`));
60
+ : fixer.insertTextAfterRange(group.afterRange, `${newline}${group.statements.join(newline)}`))
61
+ .toArray();
59
62
  }
60
63
  /**
61
64
  * Collects insert groups keyed by insertion point.
@@ -204,4 +207,4 @@ function mergeImportPlanUpdate(combinedPlan, match) {
204
207
  }
205
208
  }
206
209
  export { buildCombinedImportFixes };
207
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4LWltcG9ydHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3RpbmcvcHJlZmVyLXZpLW1vY2tlZC1pbXBvcnQvZml4LWltcG9ydHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFzQmhFOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxrQkFBa0IsQ0FDekIsWUFBc0MsRUFDdEMsSUFBd0I7SUFFeEIsTUFBTSxXQUFXLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUUvQyxJQUFJLFdBQVcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN2RCxPQUFPO0lBQ1QsQ0FBQztJQUVELE1BQU0sR0FBRyxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMvQyxNQUFNLEtBQUssR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUUxRSxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FDbkIsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FDaEUsQ0FBQztJQUNGLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FB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QyxFQUM5QyxDQUFDO1FBQ0QsWUFBWSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7SUFDL0QsQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsb0JBQW9CLENBQzNCLFlBQWdDLEVBQ2hDLEtBQWU7SUFFZixLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3pCLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLENBQUM7QUFDSCxDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLHFCQUFxQixDQUM1QixZQUFnQyxFQUNoQyxLQUFnQjtJQUVoQixJQUFJLFlBQVksQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN6RSxZQUFZLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO0lBQ2hELENBQUM7QUFDSCxDQUFDO0FBRUQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tIFwiZXNsaW50XCI7XHJcblxyXG5pbXBvcnQgdHlwZSB7IFJhbmdlIH0gZnJvbSBcIi4vbWF0Y2gtaGVscGVyc1wiO1xyXG5pbXBvcnQgdHlwZSB7IFJ1bGVNYXRjaCB9IGZyb20gXCIuL3R5cGVzXCI7XHJcblxyXG5pbXBvcnQgeyBidWlsZEltcG9ydFN0YXRlbWVudCB9IGZyb20gXCIuL2ZpeC1pbXBvcnQtc3RhdGVtZW50c1wiO1xyXG5pbXBvcnQgeyBidWlsZENvbWJpbmVkVXBkYXRlRml4ZXMgfSBmcm9tIFwiLi9maXgtaW1wb3J0LXVwZGF0ZXNcIjtcclxuXHJcbi8qKiBDb21iaW5lZCBpbXBvcnQgd29yayBmb3Igb25lIG1vZHVsZSBhY3Jvc3MgYWxsIG1hdGNoZXMuICovXHJcbmludGVyZmFjZSBDb21iaW5lZEltcG9ydFBsYW4ge1xyXG4gIC8qKiBJbnNlcnQgbG9jYXRpb24gZm9yIGEgbmV3IGltcG9ydC4gKi9cclxuICBhZnRlclJhbmdlPzogUmFuZ2U7XHJcbiAgLyoqIE1vZHVsZSBpbXBvcnRlZCBieSB0aGlzIHBsYW4uICovXHJcbiAgbW9kdWxlU3BlY2lmaWVyOiBzdHJpbmc7XHJcbiAgLyoqIE5hbWVkIGltcG9ydHMgcmVxdWlyZWQgZm9yIHRoaXMgbW9kdWxlLiAqL1xyXG4gIG5hbWVzOiBTZXQ8c3RyaW5nPjtcclxuICAvKiogRXhpc3RpbmcgaW1wb3J0IHJlcGxhY2VtZW50IHBsYW4gd2hlbiBwcmVzZW50LiAqL1xyXG4gIHVwZGF0ZT86IE5vbk51bGxhYmxlPFJ1bGVNYXRjaFtcImltcG9ydFBsYW5cIl1bXCJ1cGRhdGVcIl0+O1xyXG59XHJcblxyXG4vKiogSW1wb3J0IHN0YXRlbWVudHMgZ3JvdXBlZCBieSBpbnNlcnRpb24gcG9pbnQuICovXHJcbmludGVyZmFjZSBJbnNlcnRHcm91cCB7XHJcbiAgLyoqIEluc2VydCBsb2NhdGlvbiBmb3IgdGhpcyBncm91cC4gKi9cclxuICBhZnRlclJhbmdlPzogUmFuZ2U7XHJcbiAgLyoqIFN0YXRlbWVudHMgZW1pdHRlZCBhdCB0aGUgc2FtZSBpbnNlcnRpb24gcG9pbnQuICovXHJcbiAgc3RhdGVtZW50czogc3RyaW5nW107XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBZGRzIG9uZSBpbXBvcnQgc3RhdGVtZW50IHRvIGl0cyBpbnNlcnRpb24gZ3JvdXAuXHJcbiAqIEBwYXJhbSBpbnNlcnRHcm91cHMgSW1wb3J0IHN0YXRlbWVudHMgZ3JvdXBlZCBieSBpbnNlcnRpb24gcG9pbnQuXHJcbiAqIEBwYXJhbSBwbGFuIENvbWJpbmVkIGltcG9ydCBwbGFuIGZvciBvbmUgbW9kdWxlLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGFkZEluc2VydFN0YXRlbWVudChuZXcgTWFwKCksIHsgbW9kdWxlU3BlY2lmaWVyOiBcIi4veFwiLCBuYW1lczogbmV3IFNldChbXCJhXCJdKSB9IGFzIG5ldmVyKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBhZGRJbnNlcnRTdGF0ZW1lbnQoXHJcbiAgaW5zZXJ0R3JvdXBzOiBNYXA8c3RyaW5nLCBJbnNlcnRHcm91cD4sXHJcbiAgcGxhbjogQ29tYmluZWRJbXBvcnRQbGFuLFxyXG4pOiB2b2lkIHtcclxuICBjb25zdCBzb3J0ZWROYW1lcyA9IFsuLi5wbGFuLm5hbWVzXS50b1NvcnRlZCgpO1xyXG5cclxuICBpZiAoc29ydGVkTmFtZXMubGVuZ3RoID09PSAwIHx8IHBsYW4udXBkYXRlICE9PSB2b2lkIDApIHtcclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIGNvbnN0IGtleSA9IGdldEluc2VydEdyb3VwS2V5KHBsYW4uYWZ0ZXJSYW5nZSk7XHJcbiAgY29uc3QgZ3JvdXAgPSBpbnNlcnRHcm91cHMuZ2V0KGtleSkgPz8gY3JlYXRlSW5zZXJ0R3JvdXAocGxhbi5hZnRlclJhbmdlKTtcclxuXHJcbiAgZ3JvdXAuc3RhdGVtZW50cy5wdXNoKFxyXG4gICAgYnVpbGRJbXBvcnRTdGF0ZW1lbnQocGxhbi5tb2R1bGVTcGVjaWZpZXIsIHZvaWQgMCwgc29ydGVkTmFtZXMpLFxyXG4gICk7XHJcbiAgZ3JvdXAuc3RhdGVtZW50cy5zb3J0KChsZWZ0LCByaWdodCkgPT4gbGVmdC5sb2NhbGVDb21wYXJlKHJpZ2h0KSk7XHJcbiAgaW5zZXJ0R3JvdXBzLnNldChrZXksIGdyb3VwKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEJ1aWxkcyBzaGFyZWQgaW1wb3J0IGZpeGVzIGZvciBldmVyeSBmaWxlIG1hdGNoLlxyXG4gKiBAcGFyYW0gbWF0Y2hlcyBBdXRvZml4IGNvbnRleHRzIHByb2R1Y2VkIGJ5IHRoZSBtYXRjaGVyLlxyXG4gKiBAcGFyYW0gZml4ZXIgRVNMaW50IGZpeGVyLlxyXG4gKiBAcmV0dXJucyBJbXBvcnQgZml4ZXMgZGUtZHVwbGljYXRlZCBieSBtb2R1bGUgYW5kIGluc2VydGlvbiBzaXRlLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IGZpeGVzID0gYnVpbGRDb21iaW5lZEltcG9ydEZpeGVzKFtdLCB7fSBhcyBuZXZlcik7XHJcbiAqIHZvaWQgZml4ZXM7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gYnVpbGRDb21iaW5lZEltcG9ydEZpeGVzKFxyXG4gIG1hdGNoZXM6IFJ1bGVNYXRjaFtdLFxyXG4gIGZpeGVyOiBSdWxlLlJ1bGVGaXhlcixcclxuKTogUnVsZS5GaXhbXSB7XHJcbiAgY29uc3QgbmV3bGluZSA9IG1hdGNoZXNbMF0/Lm5ld2xpbmUgPz8gXCJcXG5cIjtcclxuICBjb25zdCBjb21iaW5lZFBsYW5zID0gY29tYmluZUltcG9ydFBsYW5zKG1hdGNoZXMpO1xyXG4gIGNvbnN0IGluc2VydEdyb3VwcyA9IGNvbGxlY3RJbnNlcnRHcm91cHMoY29tYmluZWRQbGFucyk7XHJcblxyXG4gIHJldHVybiBbXHJcbiAgICAuLi5idWlsZENvbWJpbmVkVXBkYXRlRml4ZXMoY29tYmluZWRQbGFucywgZml4ZXIpLFxyXG4gICAgLi4uYnVpbGRJbnNlcnRHcm91cEZpeGVzKGluc2VydEdyb3VwcywgZml4ZXIsIG5ld2xpbmUpLFxyXG4gIF07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBCdWlsZHMgZ3JvdXBlZCBpbnNlcnRpb24gZml4ZXMgZm9yIG5ldyBpbXBvcnRzLlxyXG4gKiBAcGFyYW0gaW5zZXJ0R3JvdXBzIEltcG9ydCBzdGF0ZW1lbnRzIGdyb3VwZWQgYnkgaW5zZXJ0aW9uIHNpdGUuXHJcbiAqIEBwYXJhbSBmaXhlciBFU0xpbnQgZml4ZXIuXHJcbiAqIEBwYXJhbSBuZXdsaW5lIFByZWZlcnJlZCBmaWxlIG5ld2xpbmUuXHJcbiAqIEByZXR1cm5zIEluc2VydCBmaXhlcyBmb3IgbmV3IGltcG9ydHMuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3QgZml4ZXMgPSBidWlsZEluc2VydEdyb3VwRml4ZXMobmV3IE1hcCgpLCB7fSBhcyBuZXZlciwgXCJcXG5cIik7XHJcbiAqIHZvaWQgZml4ZXM7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gYnVpbGRJbnNlcnRHcm91cEZpeGVzKFxyXG4gIGluc2VydEdyb3VwczogTWFwPHN0cmluZywgSW5zZXJ0R3JvdXA+LFxyXG4gIGZpeGVyOiBSdWxlLlJ1bGVGaXhlcixcclxuICBuZXdsaW5lOiBcIlxcblwiIHwgXCJcXHJcXG5cIixcclxuKTogUnVsZS5GaXhbXSB7XHJcbiAgcmV0dXJuIFsuLi5pbnNlcnRHcm91cHMudmFsdWVzKCldLm1hcCgoZ3JvdXApID0+XHJcbiAgICBncm91cC5hZnRlclJhbmdlID09PSB2b2lkIDBcclxuICAgICAgPyBmaXhlci5pbnNlcnRUZXh0QmVmb3JlUmFuZ2UoXHJcbiAgICAgICAgICBbMCwgMF0sXHJcbiAgICAgICAgICBgJHtncm91cC5zdGF0ZW1lbnRzLmpvaW4obmV3bGluZSl9JHtuZXdsaW5lfSR7bmV3bGluZX1gLFxyXG4gICAgICAgIClcclxuICAgICAgOiBmaXhlci5pbnNlcnRUZXh0QWZ0ZXJSYW5nZShcclxuICAgICAgICAgIGdyb3VwLmFmdGVyUmFuZ2UsXHJcbiAgICAgICAgICBgJHtuZXdsaW5lfSR7Z3JvdXAuc3RhdGVtZW50cy5qb2luKG5ld2xpbmUpfWAsXHJcbiAgICAgICAgKSxcclxuICApO1xyXG59XHJcblxyXG4vKipcclxuICogQ29sbGVjdHMgaW5zZXJ0IGdyb3VwcyBrZXllZCBieSBpbnNlcnRpb24gcG9pbnQuXHJcbiAqIEBwYXJhbSBjb21iaW5lZFBsYW5zIENvbWJpbmVkIHBsYW5zIGtleWVkIGJ5IG1vZHVsZSBzcGVjaWZpZXIuXHJcbiAqIEByZXR1cm5zIEltcG9ydCBzdGF0ZW1lbnRzIGdyb3VwZWQgYnkgaW5zZXJ0aW9uIHBvaW50LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IGdyb3VwcyA9IGNvbGxlY3RJbnNlcnRHcm91cHMobmV3IE1hcCgpKTtcclxuICogdm9pZCBncm91cHM7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gY29sbGVjdEluc2VydEdyb3VwcyhcclxuICBjb21iaW5lZFBsYW5zOiBNYXA8c3RyaW5nLCBDb21iaW5lZEltcG9ydFBsYW4+LFxyXG4pOiBNYXA8c3RyaW5nLCBJbnNlcnRHcm91cD4ge1xyXG4gIGNvbnN0IGluc2VydEdyb3VwcyA9IG5ldyBNYXA8c3RyaW5nLCBJbnNlcnRHcm91cD4oKTtcclxuXHJcbiAgZm9yIChjb25zdCBwbGFuIG9mIGNvbWJpbmVkUGxhbnMudmFsdWVzKCkpIHtcclxuICAgIGFkZEluc2VydFN0YXRlbWVudChpbnNlcnRHcm91cHMsIHBsYW4pO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGluc2VydEdyb3VwcztcclxufVxyXG5cclxuLyoqXHJcbiAqIENvbWJpbmVzIGltcG9ydCBwbGFucyBhY3Jvc3MgZXZlcnkgZmlsZSBtYXRjaC5cclxuICogQHBhcmFtIG1hdGNoZXMgQXV0b2ZpeCBjb250ZXh0cyBwcm9kdWNlZCBieSB0aGUgbWF0Y2hlci5cclxuICogQHJldHVybnMgQ29tYmluZWQgcGxhbnMga2V5ZWQgYnkgbW9kdWxlIHNwZWNpZmllci5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCBwbGFucyA9IGNvbWJpbmVJbXBvcnRQbGFucyhbXSk7XHJcbiAqIHZvaWQgcGxhbnM7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gY29tYmluZUltcG9ydFBsYW5zKFxyXG4gIG1hdGNoZXM6IFJ1bGVNYXRjaFtdLFxyXG4pOiBNYXA8c3RyaW5nLCBDb21iaW5lZEltcG9ydFBsYW4+IHtcclxuICBjb25zdCBjb21iaW5lZFBsYW5zID0gbmV3IE1hcDxzdHJpbmcsIENvbWJpbmVkSW1wb3J0UGxhbj4oKTtcclxuXHJcbiAgZm9yIChjb25zdCBtYXRjaCBvZiBtYXRjaGVzKSB7XHJcbiAgICBtZXJnZUltcG9ydFBsYW4oY29tYmluZWRQbGFucywgbWF0Y2gpO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGNvbWJpbmVkUGxhbnM7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDcmVhdGVzIHRoZSBpbml0aWFsIGNvbWJpbmVkIHBsYW4gZm9yIG9uZSBtYXRjaC5cclxuICogQHBhcmFtIG1hdGNoIEF1dG9maXggY29udGV4dCBwcm9kdWNlZCBieSB0aGUgbWF0Y2hlci5cclxuICogQHJldHVybnMgQ29tYmluZWQgaW1wb3J0IHBsYW4gc2VlZC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCBwbGFuID0gY3JlYXRlQ29tYmluZWRJbXBvcnRQbGFuKHsgbW9kdWxlU3BlY2lmaWVyOiBcIi4veFwiLCBpbXBvcnRQbGFuOiB7IG5hbWVzOiBbXSB9IH0gYXMgbmV2ZXIpO1xyXG4gKiB2b2lkIHBsYW47XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gY3JlYXRlQ29tYmluZWRJbXBvcnRQbGFuKG1hdGNoOiBSdWxlTWF0Y2gpOiBDb21iaW5lZEltcG9ydFBsYW4ge1xyXG4gIGNvbnN0IGNvbWJpbmVkUGxhbjogQ29tYmluZWRJbXBvcnRQbGFuID0ge1xyXG4gICAgbW9kdWxlU3BlY2lmaWVyOiBtYXRjaC5tb2R1bGVTcGVjaWZpZXIsXHJcbiAgICBuYW1lczogbmV3IFNldChtYXRjaC5pbXBvcnRQbGFuLm5hbWVzKSxcclxuICB9O1xyXG5cclxuICBpZiAobWF0Y2guaW1wb3J0UGxhbi5pbnNlcnQ/LmFmdGVyUmFuZ2UgIT09IHZvaWQgMCkge1xyXG4gICAgY29tYmluZWRQbGFuLmFmdGVyUmFuZ2UgPSBtYXRjaC5pbXBvcnRQbGFuLmluc2VydC5hZnRlclJhbmdlO1xyXG4gIH1cclxuXHJcbiAgaWYgKG1hdGNoLmltcG9ydFBsYW4udXBkYXRlICE9PSB2b2lkIDApIHtcclxuICAgIGNvbWJpbmVkUGxhbi51cGRhdGUgPSBtYXRjaC5pbXBvcnRQbGFuLnVwZGF0ZTtcclxuICB9XHJcblxyXG4gIHJldHVybiBjb21iaW5lZFBsYW47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDcmVhdGVzIGFuIGluc2VydGlvbiBncm91cCBmb3Igb25lIGxvY2F0aW9uLlxyXG4gKiBAcGFyYW0gYWZ0ZXJSYW5nZSBJbnNlcnQgbG9jYXRpb24gZm9yIHRoZSBncm91cC5cclxuICogQHJldHVybnMgSW5zZXJ0IGdyb3VwIHNlZWQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3QgZ3JvdXAgPSBjcmVhdGVJbnNlcnRHcm91cCh2b2lkIDApO1xyXG4gKiB2b2lkIGdyb3VwO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGNyZWF0ZUluc2VydEdyb3VwKGFmdGVyUmFuZ2U6IFJhbmdlIHwgdW5kZWZpbmVkKTogSW5zZXJ0R3JvdXAge1xyXG4gIHJldHVybiBhZnRlclJhbmdlID09PSB2b2lkIDBcclxuICAgID8geyBzdGF0ZW1lbnRzOiBbXSB9XHJcbiAgICA6IHsgYWZ0ZXJSYW5nZSwgc3RhdGVtZW50czogW10gfTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENyZWF0ZXMgYSBzdGFibGUga2V5IGZvciBhbiBpbnNlcnQgbG9jYXRpb24uXHJcbiAqIEBwYXJhbSBhZnRlclJhbmdlIEluc2VydCBsb2NhdGlvbiB3aGVuIGEgbmV3IGltcG9ydCBtdXN0IGJlIGluc2VydGVkLlxyXG4gKiBAcmV0dXJucyBTdGFibGUga2V5IGZvciB0aGUgaW5zZXJ0aW9uIHNpdGUuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3Qga2V5ID0gZ2V0SW5zZXJ0R3JvdXBLZXkodm9pZCAwKTtcclxuICogdm9pZCBrZXk7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gZ2V0SW5zZXJ0R3JvdXBLZXkoYWZ0ZXJSYW5nZTogUmFuZ2UgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xyXG4gIHJldHVybiBhZnRlclJhbmdlID09PSB2b2lkIDBcclxuICAgID8gXCJUT1BcIlxyXG4gICAgOiBgJHthZnRlclJhbmdlWzBdLnRvRml4ZWQoMCl9OiR7YWZ0ZXJSYW5nZVsxXS50b0ZpeGVkKDApfWA7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBNZXJnZXMgb25lIG1hdGNoIGludG8gdGhlIGNvbWJpbmVkIGltcG9ydC1wbGFuIG1hcC5cclxuICogQHBhcmFtIGNvbWJpbmVkUGxhbnMgQ29tYmluZWQgcGxhbnMga2V5ZWQgYnkgbW9kdWxlIHNwZWNpZmllci5cclxuICogQHBhcmFtIG1hdGNoIEF1dG9maXggY29udGV4dCBwcm9kdWNlZCBieSB0aGUgbWF0Y2hlci5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBtZXJnZUltcG9ydFBsYW4obmV3IE1hcCgpLCB7fSBhcyBuZXZlcik7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gbWVyZ2VJbXBvcnRQbGFuKFxyXG4gIGNvbWJpbmVkUGxhbnM6IE1hcDxzdHJpbmcsIENvbWJpbmVkSW1wb3J0UGxhbj4sXHJcbiAgbWF0Y2g6IFJ1bGVNYXRjaCxcclxuKTogdm9pZCB7XHJcbiAgY29uc3QgY29tYmluZWRQbGFuID1cclxuICAgIGNvbWJpbmVkUGxhbnMuZ2V0KG1hdGNoLm1vZHVsZVNwZWNpZmllcikgPz8gY3JlYXRlQ29tYmluZWRJbXBvcnRQbGFuKG1hdGNoKTtcclxuXHJcbiAgbWVyZ2VJbXBvcnRQbGFuSW5zZXJ0UmFuZ2UoY29tYmluZWRQbGFuLCBtYXRjaCk7XHJcbiAgbWVyZ2VJbXBvcnRQbGFuTmFtZXMoY29tYmluZWRQbGFuLCBtYXRjaC5pbXBvcnRQbGFuLm5hbWVzKTtcclxuICBtZXJnZUltcG9ydFBsYW5VcGRhdGUoY29tYmluZWRQbGFuLCBtYXRjaCk7XHJcbiAgY29tYmluZWRQbGFucy5zZXQobWF0Y2gubW9kdWxlU3BlY2lmaWVyLCBjb21iaW5lZFBsYW4pO1xyXG59XHJcblxyXG4vKipcclxuICogTWVyZ2VzIHRoZSBmaXJzdCBkaXNjb3ZlcmVkIGluc2VydCByYW5nZSBmb3IgYSBtb2R1bGUuXHJcbiAqIEBwYXJhbSBjb21iaW5lZFBsYW4gQ29tYmluZWQgcGxhbiBmb3Igb25lIG1vZHVsZS5cclxuICogQHBhcmFtIG1hdGNoIEF1dG9maXggY29udGV4dCBwcm9kdWNlZCBieSB0aGUgbWF0Y2hlci5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBtZXJnZUltcG9ydFBsYW5JbnNlcnRSYW5nZSh7IG1vZHVsZVNwZWNpZmllcjogXCIuL3hcIiwgbmFtZXM6IG5ldyBTZXQoKSB9IGFzIG5ldmVyLCB7fSBhcyBuZXZlcik7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gbWVyZ2VJbXBvcnRQbGFuSW5zZXJ0UmFuZ2UoXHJcbiAgY29tYmluZWRQbGFuOiBDb21iaW5lZEltcG9ydFBsYW4sXHJcbiAgbWF0Y2g6IFJ1bGVNYXRjaCxcclxuKTogdm9pZCB7XHJcbiAgaWYgKFxyXG4gICAgY29tYmluZWRQbGFuLmFmdGVyUmFuZ2UgPT09IHZvaWQgMCAmJlxyXG4gICAgbWF0Y2guaW1wb3J0UGxhbi5pbnNlcnQ/LmFmdGVyUmFuZ2UgIT09IHZvaWQgMFxyXG4gICkge1xyXG4gICAgY29tYmluZWRQbGFuLmFmdGVyUmFuZ2UgPSBtYXRjaC5pbXBvcnRQbGFuLmluc2VydC5hZnRlclJhbmdlO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIE1lcmdlcyBkaXNjb3ZlcmVkIGltcG9ydCBuYW1lcyBmb3IgYSBtb2R1bGUuXHJcbiAqIEBwYXJhbSBjb21iaW5lZFBsYW4gQ29tYmluZWQgcGxhbiBmb3Igb25lIG1vZHVsZS5cclxuICogQHBhcmFtIG5hbWVzIEFkZGl0aW9uYWwgaW1wb3J0IG5hbWVzLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIG1lcmdlSW1wb3J0UGxhbk5hbWVzKHsgbW9kdWxlU3BlY2lmaWVyOiBcIi4veFwiLCBuYW1lczogbmV3IFNldCgpIH0gYXMgbmV2ZXIsIFtcImFcIl0pO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIG1lcmdlSW1wb3J0UGxhbk5hbWVzKFxyXG4gIGNvbWJpbmVkUGxhbjogQ29tYmluZWRJbXBvcnRQbGFuLFxyXG4gIG5hbWVzOiBzdHJpbmdbXSxcclxuKTogdm9pZCB7XHJcbiAgZm9yIChjb25zdCBuYW1lIG9mIG5hbWVzKSB7XHJcbiAgICBjb21iaW5lZFBsYW4ubmFtZXMuYWRkKG5hbWUpO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIE1lcmdlcyB0aGUgZmlyc3QgZGlzY292ZXJlZCB1cGRhdGUgcGxhbiBmb3IgYSBtb2R1bGUuXHJcbiAqIEBwYXJhbSBjb21iaW5lZFBsYW4gQ29tYmluZWQgcGxhbiBmb3Igb25lIG1vZHVsZS5cclxuICogQHBhcmFtIG1hdGNoIEF1dG9maXggY29udGV4dCBwcm9kdWNlZCBieSB0aGUgbWF0Y2hlci5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBtZXJnZUltcG9ydFBsYW5VcGRhdGUoeyBtb2R1bGVTcGVjaWZpZXI6IFwiLi94XCIsIG5hbWVzOiBuZXcgU2V0KCkgfSBhcyBuZXZlciwge30gYXMgbmV2ZXIpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIG1lcmdlSW1wb3J0UGxhblVwZGF0ZShcclxuICBjb21iaW5lZFBsYW46IENvbWJpbmVkSW1wb3J0UGxhbixcclxuICBtYXRjaDogUnVsZU1hdGNoLFxyXG4pOiB2b2lkIHtcclxuICBpZiAoY29tYmluZWRQbGFuLnVwZGF0ZSA9PT0gdm9pZCAwICYmIG1hdGNoLmltcG9ydFBsYW4udXBkYXRlICE9PSB2b2lkIDApIHtcclxuICAgIGNvbWJpbmVkUGxhbi51cGRhdGUgPSBtYXRjaC5pbXBvcnRQbGFuLnVwZGF0ZTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCB7IGJ1aWxkQ29tYmluZWRJbXBvcnRGaXhlcyB9O1xyXG4iXX0=
210
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4LWltcG9ydHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3RpbmcvcHJlZmVyLXZpLW1vY2tlZC1pbXBvcnQvZml4LWltcG9ydHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFzQmhFOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxrQkFBa0IsQ0FDekIsWUFBc0MsRUFDdEMsSUFBd0I7SUFFeEIsTUFBTSxXQUFXLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FDM0QsSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUMzQyxDQUFDO0lBRUYsSUFBSSxXQUFXLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDdkQsT0FBTztJQUNULENBQUM7SUFFRCxNQUFNLEdBQUcsR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDL0MsTUFBTSxLQUFLLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFMUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQ25CLG9CQUFvQixDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQ2hFLENBQUM7SUFDRixLQUFLLENB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RUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLDBCQUEwQixDQUNqQyxZQUFnQyxFQUNoQyxLQUFnQjtJQUVoQixJQUNFLFlBQVksQ0FBQyxVQUFVLEtBQUssS0FBSyxDQUFDO1FBQ2xDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLFVBQVUsS0FBSyxLQUFLLENBQUMsRUFDOUMsQ0FBQztRQUNELFlBQVksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO0lBQy9ELENBQUM7QUFDSCxDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLG9CQUFvQixDQUMzQixZQUFnQyxFQUNoQyxLQUFlO0lBRWYsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUN6QixZQUFZLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQixDQUFDO0FBQ0gsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxxQkFBcUIsQ0FDNUIsWUFBZ0MsRUFDaEMsS0FBZ0I7SUFFaEIsSUFBSSxZQUFZLENBQUMsTUFBTSxLQUFLLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDekUsWUFBWSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztJQUNoRCxDQUFDO0FBQ0gsQ0FBQztBQUVELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSdWxlIH0gZnJvbSBcImVzbGludFwiO1xyXG5cclxuaW1wb3J0IHR5cGUgeyBSYW5nZSB9IGZyb20gXCIuL21hdGNoLWhlbHBlcnNcIjtcclxuaW1wb3J0IHR5cGUgeyBSdWxlTWF0Y2ggfSBmcm9tIFwiLi90eXBlc1wiO1xyXG5cclxuaW1wb3J0IHsgYnVpbGRJbXBvcnRTdGF0ZW1lbnQgfSBmcm9tIFwiLi9maXgtaW1wb3J0LXN0YXRlbWVudHNcIjtcclxuaW1wb3J0IHsgYnVpbGRDb21iaW5lZFVwZGF0ZUZpeGVzIH0gZnJvbSBcIi4vZml4LWltcG9ydC11cGRhdGVzXCI7XHJcblxyXG4vKiogQ29tYmluZWQgaW1wb3J0IHdvcmsgZm9yIG9uZSBtb2R1bGUgYWNyb3NzIGFsbCBtYXRjaGVzLiAqL1xyXG5pbnRlcmZhY2UgQ29tYmluZWRJbXBvcnRQbGFuIHtcclxuICAvKiogSW5zZXJ0IGxvY2F0aW9uIGZvciBhIG5ldyBpbXBvcnQuICovXHJcbiAgYWZ0ZXJSYW5nZT86IFJhbmdlO1xyXG4gIC8qKiBNb2R1bGUgaW1wb3J0ZWQgYnkgdGhpcyBwbGFuLiAqL1xyXG4gIG1vZHVsZVNwZWNpZmllcjogc3RyaW5nO1xyXG4gIC8qKiBOYW1lZCBpbXBvcnRzIHJlcXVpcmVkIGZvciB0aGlzIG1vZHVsZS4gKi9cclxuICBuYW1lczogU2V0PHN0cmluZz47XHJcbiAgLyoqIEV4aXN0aW5nIGltcG9ydCByZXBsYWNlbWVudCBwbGFuIHdoZW4gcHJlc2VudC4gKi9cclxuICB1cGRhdGU/OiBOb25OdWxsYWJsZTxSdWxlTWF0Y2hbXCJpbXBvcnRQbGFuXCJdW1widXBkYXRlXCJdPjtcclxufVxyXG5cclxuLyoqIEltcG9ydCBzdGF0ZW1lbnRzIGdyb3VwZWQgYnkgaW5zZXJ0aW9uIHBvaW50LiAqL1xyXG5pbnRlcmZhY2UgSW5zZXJ0R3JvdXAge1xyXG4gIC8qKiBJbnNlcnQgbG9jYXRpb24gZm9yIHRoaXMgZ3JvdXAuICovXHJcbiAgYWZ0ZXJSYW5nZT86IFJhbmdlO1xyXG4gIC8qKiBTdGF0ZW1lbnRzIGVtaXR0ZWQgYXQgdGhlIHNhbWUgaW5zZXJ0aW9uIHBvaW50LiAqL1xyXG4gIHN0YXRlbWVudHM6IHN0cmluZ1tdO1xyXG59XHJcblxyXG4vKipcclxuICogQWRkcyBvbmUgaW1wb3J0IHN0YXRlbWVudCB0byBpdHMgaW5zZXJ0aW9uIGdyb3VwLlxyXG4gKiBAcGFyYW0gaW5zZXJ0R3JvdXBzIEltcG9ydCBzdGF0ZW1lbnRzIGdyb3VwZWQgYnkgaW5zZXJ0aW9uIHBvaW50LlxyXG4gKiBAcGFyYW0gcGxhbiBDb21iaW5lZCBpbXBvcnQgcGxhbiBmb3Igb25lIG1vZHVsZS5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBhZGRJbnNlcnRTdGF0ZW1lbnQobmV3IE1hcCgpLCB7IG1vZHVsZVNwZWNpZmllcjogXCIuL3hcIiwgbmFtZXM6IG5ldyBTZXQoW1wiYVwiXSkgfSBhcyBuZXZlcik7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gYWRkSW5zZXJ0U3RhdGVtZW50KFxyXG4gIGluc2VydEdyb3VwczogTWFwPHN0cmluZywgSW5zZXJ0R3JvdXA+LFxyXG4gIHBsYW46IENvbWJpbmVkSW1wb3J0UGxhbixcclxuKTogdm9pZCB7XHJcbiAgY29uc3Qgc29ydGVkTmFtZXMgPSBbLi4ucGxhbi5uYW1lc10udG9Tb3J0ZWQoKGxlZnQsIHJpZ2h0KSA9PlxyXG4gICAgbGVmdCA9PT0gcmlnaHQgPyAwIDogbGVmdCA8IHJpZ2h0ID8gLTEgOiAxLFxyXG4gICk7XHJcblxyXG4gIGlmIChzb3J0ZWROYW1lcy5sZW5ndGggPT09IDAgfHwgcGxhbi51cGRhdGUgIT09IHZvaWQgMCkge1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgY29uc3Qga2V5ID0gZ2V0SW5zZXJ0R3JvdXBLZXkocGxhbi5hZnRlclJhbmdlKTtcclxuICBjb25zdCBncm91cCA9IGluc2VydEdyb3Vwcy5nZXQoa2V5KSA/PyBjcmVhdGVJbnNlcnRHcm91cChwbGFuLmFmdGVyUmFuZ2UpO1xyXG5cclxuICBncm91cC5zdGF0ZW1lbnRzLnB1c2goXHJcbiAgICBidWlsZEltcG9ydFN0YXRlbWVudChwbGFuLm1vZHVsZVNwZWNpZmllciwgdm9pZCAwLCBzb3J0ZWROYW1lcyksXHJcbiAgKTtcclxuICBncm91cC5zdGF0ZW1lbnRzLnNvcnQoKGxlZnQsIHJpZ2h0KSA9PiBsZWZ0LmxvY2FsZUNvbXBhcmUocmlnaHQpKTtcclxuICBpbnNlcnRHcm91cHMuc2V0KGtleSwgZ3JvdXApO1xyXG59XHJcblxyXG4vKipcclxuICogQnVpbGRzIHNoYXJlZCBpbXBvcnQgZml4ZXMgZm9yIGV2ZXJ5IGZpbGUgbWF0Y2guXHJcbiAqIEBwYXJhbSBtYXRjaGVzIEF1dG9maXggY29udGV4dHMgcHJvZHVjZWQgYnkgdGhlIG1hdGNoZXIuXHJcbiAqIEBwYXJhbSBmaXhlciBFU0xpbnQgZml4ZXIuXHJcbiAqIEByZXR1cm5zIEltcG9ydCBmaXhlcyBkZS1kdXBsaWNhdGVkIGJ5IG1vZHVsZSBhbmQgaW5zZXJ0aW9uIHNpdGUuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3QgZml4ZXMgPSBidWlsZENvbWJpbmVkSW1wb3J0Rml4ZXMoW10sIHt9IGFzIG5ldmVyKTtcclxuICogdm9pZCBmaXhlcztcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBidWlsZENvbWJpbmVkSW1wb3J0Rml4ZXMoXHJcbiAgbWF0Y2hlczogUnVsZU1hdGNoW10sXHJcbiAgZml4ZXI6IFJ1bGUuUnVsZUZpeGVyLFxyXG4pOiBSdWxlLkZpeFtdIHtcclxuICBjb25zdCBuZXdsaW5lID0gbWF0Y2hlc1swXT8ubmV3bGluZSA/PyBcIlxcblwiO1xyXG4gIGNvbnN0IGNvbWJpbmVkUGxhbnMgPSBjb21iaW5lSW1wb3J0UGxhbnMobWF0Y2hlcyk7XHJcbiAgY29uc3QgaW5zZXJ0R3JvdXBzID0gY29sbGVjdEluc2VydEdyb3Vwcyhjb21iaW5lZFBsYW5zKTtcclxuXHJcbiAgcmV0dXJuIFtcclxuICAgIC4uLmJ1aWxkQ29tYmluZWRVcGRhdGVGaXhlcyhjb21iaW5lZFBsYW5zLCBmaXhlciksXHJcbiAgICAuLi5idWlsZEluc2VydEdyb3VwRml4ZXMoaW5zZXJ0R3JvdXBzLCBmaXhlciwgbmV3bGluZSksXHJcbiAgXTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEJ1aWxkcyBncm91cGVkIGluc2VydGlvbiBmaXhlcyBmb3IgbmV3IGltcG9ydHMuXHJcbiAqIEBwYXJhbSBpbnNlcnRHcm91cHMgSW1wb3J0IHN0YXRlbWVudHMgZ3JvdXBlZCBieSBpbnNlcnRpb24gc2l0ZS5cclxuICogQHBhcmFtIGZpeGVyIEVTTGludCBmaXhlci5cclxuICogQHBhcmFtIG5ld2xpbmUgUHJlZmVycmVkIGZpbGUgbmV3bGluZS5cclxuICogQHJldHVybnMgSW5zZXJ0IGZpeGVzIGZvciBuZXcgaW1wb3J0cy5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCBmaXhlcyA9IGJ1aWxkSW5zZXJ0R3JvdXBGaXhlcyhuZXcgTWFwKCksIHt9IGFzIG5ldmVyLCBcIlxcblwiKTtcclxuICogdm9pZCBmaXhlcztcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBidWlsZEluc2VydEdyb3VwRml4ZXMoXHJcbiAgaW5zZXJ0R3JvdXBzOiBNYXA8c3RyaW5nLCBJbnNlcnRHcm91cD4sXHJcbiAgZml4ZXI6IFJ1bGUuUnVsZUZpeGVyLFxyXG4gIG5ld2xpbmU6IFwiXFxuXCIgfCBcIlxcclxcblwiLFxyXG4pOiBSdWxlLkZpeFtdIHtcclxuICByZXR1cm4gaW5zZXJ0R3JvdXBzXHJcbiAgICAudmFsdWVzKClcclxuICAgIC5tYXAoKGdyb3VwKSA9PlxyXG4gICAgICBncm91cC5hZnRlclJhbmdlID09PSB2b2lkIDBcclxuICAgICAgICA/IGZpeGVyLmluc2VydFRleHRCZWZvcmVSYW5nZShcclxuICAgICAgICAgICAgWzAsIDBdLFxyXG4gICAgICAgICAgICBgJHtncm91cC5zdGF0ZW1lbnRzLmpvaW4obmV3bGluZSl9JHtuZXdsaW5lfSR7bmV3bGluZX1gLFxyXG4gICAgICAgICAgKVxyXG4gICAgICAgIDogZml4ZXIuaW5zZXJ0VGV4dEFmdGVyUmFuZ2UoXHJcbiAgICAgICAgICAgIGdyb3VwLmFmdGVyUmFuZ2UsXHJcbiAgICAgICAgICAgIGAke25ld2xpbmV9JHtncm91cC5zdGF0ZW1lbnRzLmpvaW4obmV3bGluZSl9YCxcclxuICAgICAgICAgICksXHJcbiAgICApXHJcbiAgICAudG9BcnJheSgpO1xyXG59XHJcblxyXG4vKipcclxuICogQ29sbGVjdHMgaW5zZXJ0IGdyb3VwcyBrZXllZCBieSBpbnNlcnRpb24gcG9pbnQuXHJcbiAqIEBwYXJhbSBjb21iaW5lZFBsYW5zIENvbWJpbmVkIHBsYW5zIGtleWVkIGJ5IG1vZHVsZSBzcGVjaWZpZXIuXHJcbiAqIEByZXR1cm5zIEltcG9ydCBzdGF0ZW1lbnRzIGdyb3VwZWQgYnkgaW5zZXJ0aW9uIHBvaW50LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IGdyb3VwcyA9IGNvbGxlY3RJbnNlcnRHcm91cHMobmV3IE1hcCgpKTtcclxuICogdm9pZCBncm91cHM7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gY29sbGVjdEluc2VydEdyb3VwcyhcclxuICBjb21iaW5lZFBsYW5zOiBNYXA8c3RyaW5nLCBDb21iaW5lZEltcG9ydFBsYW4+LFxyXG4pOiBNYXA8c3RyaW5nLCBJbnNlcnRHcm91cD4ge1xyXG4gIGNvbnN0IGluc2VydEdyb3VwcyA9IG5ldyBNYXA8c3RyaW5nLCBJbnNlcnRHcm91cD4oKTtcclxuXHJcbiAgZm9yIChjb25zdCBwbGFuIG9mIGNvbWJpbmVkUGxhbnMudmFsdWVzKCkpIHtcclxuICAgIGFkZEluc2VydFN0YXRlbWVudChpbnNlcnRHcm91cHMsIHBsYW4pO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGluc2VydEdyb3VwcztcclxufVxyXG5cclxuLyoqXHJcbiAqIENvbWJpbmVzIGltcG9ydCBwbGFucyBhY3Jvc3MgZXZlcnkgZmlsZSBtYXRjaC5cclxuICogQHBhcmFtIG1hdGNoZXMgQXV0b2ZpeCBjb250ZXh0cyBwcm9kdWNlZCBieSB0aGUgbWF0Y2hlci5cclxuICogQHJldHVybnMgQ29tYmluZWQgcGxhbnMga2V5ZWQgYnkgbW9kdWxlIHNwZWNpZmllci5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCBwbGFucyA9IGNvbWJpbmVJbXBvcnRQbGFucyhbXSk7XHJcbiAqIHZvaWQgcGxhbnM7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gY29tYmluZUltcG9ydFBsYW5zKFxyXG4gIG1hdGNoZXM6IFJ1bGVNYXRjaFtdLFxyXG4pOiBNYXA8c3RyaW5nLCBDb21iaW5lZEltcG9ydFBsYW4+IHtcclxuICBjb25zdCBjb21iaW5lZFBsYW5zID0gbmV3IE1hcDxzdHJpbmcsIENvbWJpbmVkSW1wb3J0UGxhbj4oKTtcclxuXHJcbiAgZm9yIChjb25zdCBtYXRjaCBvZiBtYXRjaGVzKSB7XHJcbiAgICBtZXJnZUltcG9ydFBsYW4oY29tYmluZWRQbGFucywgbWF0Y2gpO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGNvbWJpbmVkUGxhbnM7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDcmVhdGVzIHRoZSBpbml0aWFsIGNvbWJpbmVkIHBsYW4gZm9yIG9uZSBtYXRjaC5cclxuICogQHBhcmFtIG1hdGNoIEF1dG9maXggY29udGV4dCBwcm9kdWNlZCBieSB0aGUgbWF0Y2hlci5cclxuICogQHJldHVybnMgQ29tYmluZWQgaW1wb3J0IHBsYW4gc2VlZC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCBwbGFuID0gY3JlYXRlQ29tYmluZWRJbXBvcnRQbGFuKHsgbW9kdWxlU3BlY2lmaWVyOiBcIi4veFwiLCBpbXBvcnRQbGFuOiB7IG5hbWVzOiBbXSB9IH0gYXMgbmV2ZXIpO1xyXG4gKiB2b2lkIHBsYW47XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gY3JlYXRlQ29tYmluZWRJbXBvcnRQbGFuKG1hdGNoOiBSdWxlTWF0Y2gpOiBDb21iaW5lZEltcG9ydFBsYW4ge1xyXG4gIGNvbnN0IGNvbWJpbmVkUGxhbjogQ29tYmluZWRJbXBvcnRQbGFuID0ge1xyXG4gICAgbW9kdWxlU3BlY2lmaWVyOiBtYXRjaC5tb2R1bGVTcGVjaWZpZXIsXHJcbiAgICBuYW1lczogbmV3IFNldChtYXRjaC5pbXBvcnRQbGFuLm5hbWVzKSxcclxuICB9O1xyXG5cclxuICBpZiAobWF0Y2guaW1wb3J0UGxhbi5pbnNlcnQ/LmFmdGVyUmFuZ2UgIT09IHZvaWQgMCkge1xyXG4gICAgY29tYmluZWRQbGFuLmFmdGVyUmFuZ2UgPSBtYXRjaC5pbXBvcnRQbGFuLmluc2VydC5hZnRlclJhbmdlO1xyXG4gIH1cclxuXHJcbiAgaWYgKG1hdGNoLmltcG9ydFBsYW4udXBkYXRlICE9PSB2b2lkIDApIHtcclxuICAgIGNvbWJpbmVkUGxhbi51cGRhdGUgPSBtYXRjaC5pbXBvcnRQbGFuLnVwZGF0ZTtcclxuICB9XHJcblxyXG4gIHJldHVybiBjb21iaW5lZFBsYW47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDcmVhdGVzIGFuIGluc2VydGlvbiBncm91cCBmb3Igb25lIGxvY2F0aW9uLlxyXG4gKiBAcGFyYW0gYWZ0ZXJSYW5nZSBJbnNlcnQgbG9jYXRpb24gZm9yIHRoZSBncm91cC5cclxuICogQHJldHVybnMgSW5zZXJ0IGdyb3VwIHNlZWQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3QgZ3JvdXAgPSBjcmVhdGVJbnNlcnRHcm91cCh2b2lkIDApO1xyXG4gKiB2b2lkIGdyb3VwO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGNyZWF0ZUluc2VydEdyb3VwKGFmdGVyUmFuZ2U6IFJhbmdlIHwgdW5kZWZpbmVkKTogSW5zZXJ0R3JvdXAge1xyXG4gIHJldHVybiBhZnRlclJhbmdlID09PSB2b2lkIDBcclxuICAgID8geyBzdGF0ZW1lbnRzOiBbXSB9XHJcbiAgICA6IHsgYWZ0ZXJSYW5nZSwgc3RhdGVtZW50czogW10gfTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENyZWF0ZXMgYSBzdGFibGUga2V5IGZvciBhbiBpbnNlcnQgbG9jYXRpb24uXHJcbiAqIEBwYXJhbSBhZnRlclJhbmdlIEluc2VydCBsb2NhdGlvbiB3aGVuIGEgbmV3IGltcG9ydCBtdXN0IGJlIGluc2VydGVkLlxyXG4gKiBAcmV0dXJucyBTdGFibGUga2V5IGZvciB0aGUgaW5zZXJ0aW9uIHNpdGUuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3Qga2V5ID0gZ2V0SW5zZXJ0R3JvdXBLZXkodm9pZCAwKTtcclxuICogdm9pZCBrZXk7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gZ2V0SW5zZXJ0R3JvdXBLZXkoYWZ0ZXJSYW5nZTogUmFuZ2UgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xyXG4gIHJldHVybiBhZnRlclJhbmdlID09PSB2b2lkIDBcclxuICAgID8gXCJUT1BcIlxyXG4gICAgOiBgJHthZnRlclJhbmdlWzBdLnRvRml4ZWQoMCl9OiR7YWZ0ZXJSYW5nZVsxXS50b0ZpeGVkKDApfWA7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBNZXJnZXMgb25lIG1hdGNoIGludG8gdGhlIGNvbWJpbmVkIGltcG9ydC1wbGFuIG1hcC5cclxuICogQHBhcmFtIGNvbWJpbmVkUGxhbnMgQ29tYmluZWQgcGxhbnMga2V5ZWQgYnkgbW9kdWxlIHNwZWNpZmllci5cclxuICogQHBhcmFtIG1hdGNoIEF1dG9maXggY29udGV4dCBwcm9kdWNlZCBieSB0aGUgbWF0Y2hlci5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBtZXJnZUltcG9ydFBsYW4obmV3IE1hcCgpLCB7fSBhcyBuZXZlcik7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gbWVyZ2VJbXBvcnRQbGFuKFxyXG4gIGNvbWJpbmVkUGxhbnM6IE1hcDxzdHJpbmcsIENvbWJpbmVkSW1wb3J0UGxhbj4sXHJcbiAgbWF0Y2g6IFJ1bGVNYXRjaCxcclxuKTogdm9pZCB7XHJcbiAgY29uc3QgY29tYmluZWRQbGFuID1cclxuICAgIGNvbWJpbmVkUGxhbnMuZ2V0KG1hdGNoLm1vZHVsZVNwZWNpZmllcikgPz8gY3JlYXRlQ29tYmluZWRJbXBvcnRQbGFuKG1hdGNoKTtcclxuXHJcbiAgbWVyZ2VJbXBvcnRQbGFuSW5zZXJ0UmFuZ2UoY29tYmluZWRQbGFuLCBtYXRjaCk7XHJcbiAgbWVyZ2VJbXBvcnRQbGFuTmFtZXMoY29tYmluZWRQbGFuLCBtYXRjaC5pbXBvcnRQbGFuLm5hbWVzKTtcclxuICBtZXJnZUltcG9ydFBsYW5VcGRhdGUoY29tYmluZWRQbGFuLCBtYXRjaCk7XHJcbiAgY29tYmluZWRQbGFucy5zZXQobWF0Y2gubW9kdWxlU3BlY2lmaWVyLCBjb21iaW5lZFBsYW4pO1xyXG59XHJcblxyXG4vKipcclxuICogTWVyZ2VzIHRoZSBmaXJzdCBkaXNjb3ZlcmVkIGluc2VydCByYW5nZSBmb3IgYSBtb2R1bGUuXHJcbiAqIEBwYXJhbSBjb21iaW5lZFBsYW4gQ29tYmluZWQgcGxhbiBmb3Igb25lIG1vZHVsZS5cclxuICogQHBhcmFtIG1hdGNoIEF1dG9maXggY29udGV4dCBwcm9kdWNlZCBieSB0aGUgbWF0Y2hlci5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBtZXJnZUltcG9ydFBsYW5JbnNlcnRSYW5nZSh7IG1vZHVsZVNwZWNpZmllcjogXCIuL3hcIiwgbmFtZXM6IG5ldyBTZXQoKSB9IGFzIG5ldmVyLCB7fSBhcyBuZXZlcik7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gbWVyZ2VJbXBvcnRQbGFuSW5zZXJ0UmFuZ2UoXHJcbiAgY29tYmluZWRQbGFuOiBDb21iaW5lZEltcG9ydFBsYW4sXHJcbiAgbWF0Y2g6IFJ1bGVNYXRjaCxcclxuKTogdm9pZCB7XHJcbiAgaWYgKFxyXG4gICAgY29tYmluZWRQbGFuLmFmdGVyUmFuZ2UgPT09IHZvaWQgMCAmJlxyXG4gICAgbWF0Y2guaW1wb3J0UGxhbi5pbnNlcnQ/LmFmdGVyUmFuZ2UgIT09IHZvaWQgMFxyXG4gICkge1xyXG4gICAgY29tYmluZWRQbGFuLmFmdGVyUmFuZ2UgPSBtYXRjaC5pbXBvcnRQbGFuLmluc2VydC5hZnRlclJhbmdlO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIE1lcmdlcyBkaXNjb3ZlcmVkIGltcG9ydCBuYW1lcyBmb3IgYSBtb2R1bGUuXHJcbiAqIEBwYXJhbSBjb21iaW5lZFBsYW4gQ29tYmluZWQgcGxhbiBmb3Igb25lIG1vZHVsZS5cclxuICogQHBhcmFtIG5hbWVzIEFkZGl0aW9uYWwgaW1wb3J0IG5hbWVzLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIG1lcmdlSW1wb3J0UGxhbk5hbWVzKHsgbW9kdWxlU3BlY2lmaWVyOiBcIi4veFwiLCBuYW1lczogbmV3IFNldCgpIH0gYXMgbmV2ZXIsIFtcImFcIl0pO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIG1lcmdlSW1wb3J0UGxhbk5hbWVzKFxyXG4gIGNvbWJpbmVkUGxhbjogQ29tYmluZWRJbXBvcnRQbGFuLFxyXG4gIG5hbWVzOiBzdHJpbmdbXSxcclxuKTogdm9pZCB7XHJcbiAgZm9yIChjb25zdCBuYW1lIG9mIG5hbWVzKSB7XHJcbiAgICBjb21iaW5lZFBsYW4ubmFtZXMuYWRkKG5hbWUpO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIE1lcmdlcyB0aGUgZmlyc3QgZGlzY292ZXJlZCB1cGRhdGUgcGxhbiBmb3IgYSBtb2R1bGUuXHJcbiAqIEBwYXJhbSBjb21iaW5lZFBsYW4gQ29tYmluZWQgcGxhbiBmb3Igb25lIG1vZHVsZS5cclxuICogQHBhcmFtIG1hdGNoIEF1dG9maXggY29udGV4dCBwcm9kdWNlZCBieSB0aGUgbWF0Y2hlci5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBtZXJnZUltcG9ydFBsYW5VcGRhdGUoeyBtb2R1bGVTcGVjaWZpZXI6IFwiLi94XCIsIG5hbWVzOiBuZXcgU2V0KCkgfSBhcyBuZXZlciwge30gYXMgbmV2ZXIpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIG1lcmdlSW1wb3J0UGxhblVwZGF0ZShcclxuICBjb21iaW5lZFBsYW46IENvbWJpbmVkSW1wb3J0UGxhbixcclxuICBtYXRjaDogUnVsZU1hdGNoLFxyXG4pOiB2b2lkIHtcclxuICBpZiAoY29tYmluZWRQbGFuLnVwZGF0ZSA9PT0gdm9pZCAwICYmIG1hdGNoLmltcG9ydFBsYW4udXBkYXRlICE9PSB2b2lkIDApIHtcclxuICAgIGNvbWJpbmVkUGxhbi51cGRhdGUgPSBtYXRjaC5pbXBvcnRQbGFuLnVwZGF0ZTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCB7IGJ1aWxkQ29tYmluZWRJbXBvcnRGaXhlcyB9O1xyXG4iXX0=
@@ -147,7 +147,7 @@ function getUniqueStatementRanges(match) {
147
147
  rangeMap.set(key, declaration.statementRange);
148
148
  }
149
149
  }
150
- return [...rangeMap.values()];
150
+ return rangeMap.values().toArray();
151
151
  }
152
152
  export { buildFixes };
153
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RvbWFpbi90ZXN0aW5nL3ByZWZlci12aS1tb2NrZWQtaW1wb3J0L2ZpeC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekQ7Ozs7Ozs7Ozs7R0FVRztBQUNILFNBQVMsaUJBQWlCLENBQ3hCLEtBQWdCLEVBQ2hCLEtBQXFCO0lBRXJCLE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtRQUN4QyxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDOUQsSUFBSSxXQUFXLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMzQixPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFDRCxNQUFNLGVBQWUsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FDNUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUMvQixXQUFXLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQ2hDLENBQUM7UUFDRixPQUFPO1lBQ0wsS0FBSyxDQUFDLGdCQUFnQixDQUNwQixPQUFPLENBQUMsYUFBYSxFQUNyQixHQUFHLE9BQU8sQ0FBQyxZQUFZLEtBQUssZUFBZSxFQUFFLENBQzlDO1NBQ0YsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVEOzs7Ozs7Ozs7O0dBVUc7QUFDSCxTQUFTLFVBQVUsQ0FBQyxPQUFvQixFQUFFLEtBQXFCO0lBQzdELE9BQU87UUFDTCxHQUFHLHdCQUF3QixDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUM7UUFDM0MsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxtQkFBbUIs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QyxDQUFDLElBQUksV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN0RyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDaEQsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztBQUNoQyxDQUFDO0FBRUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSdWxlIH0gZnJvbSBcImVzbGludFwiO1xuXG5pbXBvcnQgdHlwZSB7IFJhbmdlIH0gZnJvbSBcIi4vbWF0Y2gtaGVscGVyc1wiO1xuaW1wb3J0IHR5cGUgeyBSdWxlTWF0Y2ggfSBmcm9tIFwiLi90eXBlc1wiO1xuXG5pbXBvcnQgeyBidWlsZENvbWJpbmVkSW1wb3J0Rml4ZXMgfSBmcm9tIFwiLi9maXgtaW1wb3J0c1wiO1xuXG4vKipcbiAqIEJ1aWxkcyBmaXhlcyB0aGF0IGlubGluZSBkZWNsYXJhdGlvbiBpbml0aWFsaXplcnMgaW50byBmYWN0b3J5IHByb3BlcnRpZXMuXG4gKiBAcGFyYW0gbWF0Y2ggQXV0b2ZpeCBjb250ZXh0IHByb2R1Y2VkIGJ5IHRoZSBtYXRjaGVyLlxuICogQHBhcmFtIGZpeGVyIEVTTGludCBmaXhlci5cbiAqIEByZXR1cm5zIEJpbmRpbmctcmVsYXRlZCBmaXhlcy5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBmaXhlcyA9IGJ1aWxkQmluZGluZ0ZpeGVzKHt9IGFzIG5ldmVyLCB7fSBhcyBuZXZlcik7XG4gKiB2b2lkIGZpeGVzO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGJ1aWxkQmluZGluZ0ZpeGVzKFxuICBtYXRjaDogUnVsZU1hdGNoLFxuICBmaXhlcjogUnVsZS5SdWxlRml4ZXIsXG4pOiBSdWxlLkZpeFtdIHtcbiAgcmV0dXJuIG1hdGNoLmJpbmRpbmdzLmZsYXRNYXAoKGJpbmRpbmcpID0+IHtcbiAgICBjb25zdCBkZWNsYXJhdGlvbiA9IG1hdGNoLmRlY2xhcmF0aW9ucy5nZXQoYmluZGluZy5sb2NhbE5hbWUpO1xuICAgIGlmIChkZWNsYXJhdGlvbiA9PT0gdm9pZCAwKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIGNvbnN0IGluaXRpYWxpemVyVGV4dCA9IG1hdGNoLnNvdXJjZVRleHQuc2xpY2UoXG4gICAgICBkZWNsYXJhdGlvbi5pbml0aWFsaXplclJhbmdlWzBdLFxuICAgICAgZGVjbGFyYXRpb24uaW5pdGlhbGl6ZXJSYW5nZVsxXSxcbiAgICApO1xuICAgIHJldHVybiBbXG4gICAgICBmaXhlci5yZXBsYWNlVGV4dFJhbmdlKFxuICAgICAgICBiaW5kaW5nLnByb3BlcnR5UmFuZ2UsXG4gICAgICAgIGAke2JpbmRpbmcuZXhwb3J0ZWROYW1lfTogJHtpbml0aWFsaXplclRleHR9YCxcbiAgICAgICksXG4gICAgXTtcbiAgfSk7XG59XG5cbi8qKlxuICogQnVpbGRzIGFsbCBhdXRvZml4IG9wZXJhdGlvbnMgZm9yIGV2ZXJ5IG1hdGNoIGluIGEgZmlsZS5cbiAqIEBwYXJhbSBtYXRjaGVzIEF1dG9maXggY29udGV4dHMgcHJvZHVjZWQgYnkgdGhlIG1hdGNoZXIuXG4gKiBAcGFyYW0gZml4ZXIgRVNMaW50IGZpeGVyLlxuICogQHJldHVybnMgQ29tYmluZWQgZml4IGxpc3QuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZml4ZXMgPSBidWlsZEZpeGVzKFtdLCB7fSBhcyBuZXZlcik7XG4gKiB2b2lkIGZpeGVzO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGJ1aWxkRml4ZXMobWF0Y2hlczogUnVsZU1hdGNoW10sIGZpeGVyOiBSdWxlLlJ1bGVGaXhlcik6IFJ1bGUuRml4W10ge1xuICByZXR1cm4gW1xuICAgIC4uLmJ1aWxkQ29tYmluZWRJbXBvcnRGaXhlcyhtYXRjaGVzLCBmaXhlciksXG4gICAgLi4ubWF0Y2hlcy5mbGF0TWFwKChtYXRjaCkgPT4gYnVpbGROb25JbXBvcnRGaXhlcyhtYXRjaCwgZml4ZXIpKSxcbiAgXTtcbn1cblxuLyoqXG4gKiBCdWlsZHMgZml4ZXMgZm9yIGBtb2NrKmAgbWVtYmVyLWV4cHJlc3Npb24gb2JqZWN0IHJld3JpdGVzLlxuICogQHBhcmFtIG1hdGNoIEF1dG9maXggY29udGV4dCBwcm9kdWNlZCBieSB0aGUgbWF0Y2hlci5cbiAqIEBwYXJhbSBmaXhlciBFU0xpbnQgZml4ZXIuXG4gKiBAcmV0dXJucyBSZXBsYWNlbWVudHMgZm9yIG1lbWJlci1leHByZXNzaW9uIG9iamVjdCBpZGVudGlmaWVycy5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBmaXhlcyA9IGJ1aWxkTWVtYmVyUmV3cml0ZUZpeGVzKHt9IGFzIG5ldmVyLCB7fSBhcyBuZXZlcik7XG4gKiB2b2lkIGZpeGVzO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGJ1aWxkTWVtYmVyUmV3cml0ZUZpeGVzKFxuICBtYXRjaDogUnVsZU1hdGNoLFxuICBmaXhlcjogUnVsZS5SdWxlRml4ZXIsXG4pOiBSdWxlLkZpeFtdIHtcbiAgcmV0dXJuIG1hdGNoLm1lbWJlclJld3JpdGVzLm1hcCgocmV3cml0ZSkgPT5cbiAgICBmaXhlci5yZXBsYWNlVGV4dFJhbmdlKFxuICAgICAgcmV3cml0ZS5sb2NhbE9iamVjdFJhbmdlLFxuICAgICAgYHZpLm1vY2tlZCgke3Jld3JpdGUuZXhwb3J0ZWROYW1lfSlgLFxuICAgICksXG4gICk7XG59XG5cbi8qKlxuICogQnVpbGRzIGEgZml4IHRoYXQgY29udmVydHMgbGl0ZXJhbCBtb2NrIHNwZWNpZmllcnMgdG8gYGltcG9ydChcIi4uLlwiKWAuXG4gKiBAcGFyYW0gbWF0Y2ggQXV0b2ZpeCBjb250ZXh0IHByb2R1Y2VkIGJ5IHRoZSBtYXRjaGVyLlxuICogQHBhcmFtIGZpeGVyIEVTTGludCBmaXhlci5cbiAqIEByZXR1cm5zIEZpeGVzIHRoYXQgbm9ybWFsaXplIHRoZSBtb2NrIHNwZWNpZmllciBhcmd1bWVudC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBmaXhlcyA9IGJ1aWxkTW9ja1NwZWNpZmllckZpeGVzKHt9IGFzIG5ldmVyLCB7fSBhcyBuZXZlcik7XG4gKiB2b2lkIGZpeGVzO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGJ1aWxkTW9ja1NwZWNpZmllckZpeGVzKFxuICBtYXRjaDogUnVsZU1hdGNoLFxuICBmaXhlcjogUnVsZS5SdWxlRml4ZXIsXG4pOiBSdWxlLkZpeFtdIHtcbiAgaWYgKG1hdGNoLm1vY2tTcGVjaWZpZXJJc0ltcG9ydEV4cHJlc3Npb24pIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBjb25zdCBtb2R1bGVUZXh0ID0gSlNPTi5zdHJpbmdpZnkobWF0Y2gubW9kdWxlU3BlY2lmaWVyKTtcbiAgcmV0dXJuIFtcbiAgICBmaXhlci5yZXBsYWNlVGV4dFJhbmdlKG1hdGNoLm1vY2tTcGVjaWZpZXJSYW5nZSwgYGltcG9ydCgke21vZHVsZVRleHR9KWApLFxuICBdO1xufVxuXG4vKipcbiAqIEJ1aWxkcyBhbGwgbm9uLWltcG9ydCBhdXRvZml4IG9wZXJhdGlvbnMgZm9yIGEgc2luZ2xlIG1hdGNoLlxuICogQHBhcmFtIG1hdGNoIEF1dG9maXggY29udGV4dCBwcm9kdWNlZCBieSB0aGUgbWF0Y2hlci5cbiAqIEBwYXJhbSBmaXhlciBFU0xpbnQgZml4ZXIuXG4gKiBAcmV0dXJucyBDb21iaW5lZCBub24taW1wb3J0IGZpeCBsaXN0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGZpeGVzID0gYnVpbGROb25JbXBvcnRGaXhlcyh7fSBhcyBuZXZlciwge30gYXMgbmV2ZXIpO1xuICogdm9pZCBmaXhlcztcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBidWlsZE5vbkltcG9ydEZpeGVzKFxuICBtYXRjaDogUnVsZU1hdGNoLFxuICBmaXhlcjogUnVsZS5SdWxlRml4ZXIsXG4pOiBSdWxlLkZpeFtdIHtcbiAgcmV0dXJuIFtcbiAgICAuLi5idWlsZEJpbmRpbmdGaXhlcyhtYXRjaCwgZml4ZXIpLFxuICAgIC4uLmJ1aWxkTWVtYmVyUmV3cml0ZUZpeGVzKG1hdGNoLCBmaXhlciksXG4gICAgLi4uYnVpbGRNb2NrU3BlY2lmaWVyRml4ZXMobWF0Y2gsIGZpeGVyKSxcbiAgICAuLi5idWlsZFJlbW92YWxGaXhlcyhtYXRjaCwgZml4ZXIpLFxuICBdO1xufVxuXG4vKipcbiAqIEJ1aWxkcyBmaXhlcyB0aGF0IHJlbW92ZSBkZWNsYXJhdGlvbnMgYWZ0ZXIgaW5saW5pbmcuXG4gKiBAcGFyYW0gbWF0Y2ggQXV0b2ZpeCBjb250ZXh0IHByb2R1Y2VkIGJ5IHRoZSBtYXRjaGVyLlxuICogQHBhcmFtIGZpeGVyIEVTTGludCBmaXhlci5cbiAqIEByZXR1cm5zIEZpeGVzIHRoYXQgcmVtb3ZlIHJlZHVuZGFudCBkZWNsYXJhdGlvbiBzdGF0ZW1lbnRzLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGZpeGVzID0gYnVpbGRSZW1vdmFsRml4ZXMoe30gYXMgbmV2ZXIsIHt9IGFzIG5ldmVyKTtcbiAqIHZvaWQgZml4ZXM7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gYnVpbGRSZW1vdmFsRml4ZXMoXG4gIG1hdGNoOiBSdWxlTWF0Y2gsXG4gIGZpeGVyOiBSdWxlLlJ1bGVGaXhlcixcbik6IFJ1bGUuRml4W10ge1xuICBjb25zdCB1bmlxdWVSYW5nZXMgPSBnZXRVbmlxdWVTdGF0ZW1lbnRSYW5nZXMobWF0Y2gpO1xuICByZXR1cm4gdW5pcXVlUmFuZ2VzLm1hcCgoc3RhdGVtZW50UmFuZ2UpID0+IHtcbiAgICBjb25zdCBleHBhbmRlZFJhbmdlID0gZXh0ZW5kUmFuZ2VUb0xpbmVCcmVhayhcbiAgICAgIG1hdGNoLnNvdXJjZVRleHQsXG4gICAgICBzdGF0ZW1lbnRSYW5nZSxcbiAgICApO1xuICAgIHJldHVybiBmaXhlci5yZW1vdmVSYW5nZShleHBhbmRlZFJhbmdlKTtcbiAgfSk7XG59XG5cbi8qKlxuICogRXh0ZW5kcyBhIHN0YXRlbWVudCByYW5nZSB0byBpbmNsdWRlIHRoZSB0cmFpbGluZyBsaW5lIGJyZWFrLlxuICogQHBhcmFtIHNvdXJjZVRleHQgRnVsbCBmaWxlIGNvbnRlbnQgZm9yIG5ld2xpbmUgbG9va3VwLlxuICogQHBhcmFtIHN0YXRlbWVudFJhbmdlIFN0YXJ0L2VuZCBvZmZzZXRzIGZvciB0aGUgc3RhdGVtZW50LlxuICogQHJldHVybnMgU3RhdGVtZW50IHJhbmdlIGV4dGVuZGVkIHRocm91Z2ggdGhlIHRyYWlsaW5nIGxpbmUgYnJlYWsuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgcmFuZ2UgPSBleHRlbmRSYW5nZVRvTGluZUJyZWFrKFwiYVxcblwiLCBbMCwgMV0pO1xuICogdm9pZCByYW5nZTtcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBleHRlbmRSYW5nZVRvTGluZUJyZWFrKFxuICBzb3VyY2VUZXh0OiBzdHJpbmcsXG4gIHN0YXRlbWVudFJhbmdlOiBSYW5nZSxcbik6IFJhbmdlIHtcbiAgY29uc3QgW3N0YXJ0LCBlbmRdID0gc3RhdGVtZW50UmFuZ2U7XG4gIGNvbnN0IG5leHRMaW5lRmVlZEluZGV4ID0gc291cmNlVGV4dC5pbmRleE9mKFwiXFxuXCIsIGVuZCk7XG4gIHJldHVybiBuZXh0TGluZUZlZWRJbmRleCA9PT0gLTFcbiAgICA/IFtzdGFydCwgc291cmNlVGV4dC5sZW5ndGhdXG4gICAgOiBbc3RhcnQsIG5leHRMaW5lRmVlZEluZGV4ICsgMV07XG59XG5cbi8qKlxuICogUmV0dXJucyBzb3J0ZWQgdW5pcXVlIHN0YXRlbWVudCByYW5nZXMgZm9yIGRlY2xhcmF0aW9ucyB0byByZW1vdmUuXG4gKiBAcGFyYW0gbWF0Y2ggQXV0b2ZpeCBjb250ZXh0IHByb2R1Y2VkIGJ5IHRoZSBtYXRjaGVyLlxuICogQHJldHVybnMgRGlzdGluY3QgZGVjbGFyYXRpb24gc3RhdGVtZW50IHJhbmdlcyB0byByZW1vdmUuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgcmFuZ2VzID0gZ2V0VW5pcXVlU3RhdGVtZW50UmFuZ2VzKHsgYmluZGluZ3M6IFtdLCBkZWNsYXJhdGlvbnM6IG5ldyBNYXAoKSB9IGFzIG5ldmVyKTtcbiAqIHZvaWQgcmFuZ2VzO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGdldFVuaXF1ZVN0YXRlbWVudFJhbmdlcyhtYXRjaDogUnVsZU1hdGNoKTogUmFuZ2VbXSB7XG4gIGNvbnN0IHJhbmdlTWFwID0gbmV3IE1hcDxzdHJpbmcsIFJhbmdlPigpO1xuICBmb3IgKGNvbnN0IGJpbmRpbmcgb2YgbWF0Y2guYmluZGluZ3MpIHtcbiAgICBjb25zdCBkZWNsYXJhdGlvbiA9IG1hdGNoLmRlY2xhcmF0aW9ucy5nZXQoYmluZGluZy5sb2NhbE5hbWUpO1xuICAgIGlmIChkZWNsYXJhdGlvbiAhPT0gdm9pZCAwKSB7XG4gICAgICBjb25zdCBrZXkgPSBgJHtkZWNsYXJhdGlvbi5zdGF0ZW1lbnRSYW5nZVswXS50b0ZpeGVkKDApfToke2RlY2xhcmF0aW9uLnN0YXRlbWVudFJhbmdlWzFdLnRvRml4ZWQoMCl9YDtcbiAgICAgIHJhbmdlTWFwLnNldChrZXksIGRlY2xhcmF0aW9uLnN0YXRlbWVudFJhbmdlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gWy4uLnJhbmdlTWFwLnZhbHVlcygpXTtcbn1cblxuZXhwb3J0IHsgYnVpbGRGaXhlcyB9O1xuIl19
153
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RvbWFpbi90ZXN0aW5nL3ByZWZlci12aS1tb2NrZWQtaW1wb3J0L2ZpeC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekQ7Ozs7Ozs7Ozs7R0FVRztBQUNILFNBQVMsaUJBQWlCLENBQ3hCLEtBQWdCLEVBQ2hCLEtBQXFCO0lBRXJCLE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtRQUN4QyxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDOUQsSUFBSSxXQUFXLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMzQixPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFDRCxNQUFNLGVBQWUsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FDNUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUMvQixXQUFXLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQ2hDLENBQUM7UUFDRixPQUFPO1lBQ0wsS0FBSyxDQUFDLGdCQUFnQixDQUNwQixPQUFPLENBQUMsYUFBYSxFQUNyQixHQUFHLE9BQU8sQ0FBQyxZQUFZLEtBQUssZUFBZSxFQUFFLENBQzlDO1NBQ0YsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVEOzs7Ozs7Ozs7O0dBVUc7QUFDSCxTQUFTLFVBQVUsQ0FBQyxPQUFvQixFQUFFLEtBQXFCO0lBQzdELE9BQU87UUFDTCxHQUFHLHdCQUF3QixDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUM7UUFDM0MsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxtQkFBbUIs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QyxDQUFDLElBQUksV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN0RyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDaEQsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztBQUNyQyxDQUFDO0FBRUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSdWxlIH0gZnJvbSBcImVzbGludFwiO1xuXG5pbXBvcnQgdHlwZSB7IFJhbmdlIH0gZnJvbSBcIi4vbWF0Y2gtaGVscGVyc1wiO1xuaW1wb3J0IHR5cGUgeyBSdWxlTWF0Y2ggfSBmcm9tIFwiLi90eXBlc1wiO1xuXG5pbXBvcnQgeyBidWlsZENvbWJpbmVkSW1wb3J0Rml4ZXMgfSBmcm9tIFwiLi9maXgtaW1wb3J0c1wiO1xuXG4vKipcbiAqIEJ1aWxkcyBmaXhlcyB0aGF0IGlubGluZSBkZWNsYXJhdGlvbiBpbml0aWFsaXplcnMgaW50byBmYWN0b3J5IHByb3BlcnRpZXMuXG4gKiBAcGFyYW0gbWF0Y2ggQXV0b2ZpeCBjb250ZXh0IHByb2R1Y2VkIGJ5IHRoZSBtYXRjaGVyLlxuICogQHBhcmFtIGZpeGVyIEVTTGludCBmaXhlci5cbiAqIEByZXR1cm5zIEJpbmRpbmctcmVsYXRlZCBmaXhlcy5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBmaXhlcyA9IGJ1aWxkQmluZGluZ0ZpeGVzKHt9IGFzIG5ldmVyLCB7fSBhcyBuZXZlcik7XG4gKiB2b2lkIGZpeGVzO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGJ1aWxkQmluZGluZ0ZpeGVzKFxuICBtYXRjaDogUnVsZU1hdGNoLFxuICBmaXhlcjogUnVsZS5SdWxlRml4ZXIsXG4pOiBSdWxlLkZpeFtdIHtcbiAgcmV0dXJuIG1hdGNoLmJpbmRpbmdzLmZsYXRNYXAoKGJpbmRpbmcpID0+IHtcbiAgICBjb25zdCBkZWNsYXJhdGlvbiA9IG1hdGNoLmRlY2xhcmF0aW9ucy5nZXQoYmluZGluZy5sb2NhbE5hbWUpO1xuICAgIGlmIChkZWNsYXJhdGlvbiA9PT0gdm9pZCAwKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIGNvbnN0IGluaXRpYWxpemVyVGV4dCA9IG1hdGNoLnNvdXJjZVRleHQuc2xpY2UoXG4gICAgICBkZWNsYXJhdGlvbi5pbml0aWFsaXplclJhbmdlWzBdLFxuICAgICAgZGVjbGFyYXRpb24uaW5pdGlhbGl6ZXJSYW5nZVsxXSxcbiAgICApO1xuICAgIHJldHVybiBbXG4gICAgICBmaXhlci5yZXBsYWNlVGV4dFJhbmdlKFxuICAgICAgICBiaW5kaW5nLnByb3BlcnR5UmFuZ2UsXG4gICAgICAgIGAke2JpbmRpbmcuZXhwb3J0ZWROYW1lfTogJHtpbml0aWFsaXplclRleHR9YCxcbiAgICAgICksXG4gICAgXTtcbiAgfSk7XG59XG5cbi8qKlxuICogQnVpbGRzIGFsbCBhdXRvZml4IG9wZXJhdGlvbnMgZm9yIGV2ZXJ5IG1hdGNoIGluIGEgZmlsZS5cbiAqIEBwYXJhbSBtYXRjaGVzIEF1dG9maXggY29udGV4dHMgcHJvZHVjZWQgYnkgdGhlIG1hdGNoZXIuXG4gKiBAcGFyYW0gZml4ZXIgRVNMaW50IGZpeGVyLlxuICogQHJldHVybnMgQ29tYmluZWQgZml4IGxpc3QuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZml4ZXMgPSBidWlsZEZpeGVzKFtdLCB7fSBhcyBuZXZlcik7XG4gKiB2b2lkIGZpeGVzO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGJ1aWxkRml4ZXMobWF0Y2hlczogUnVsZU1hdGNoW10sIGZpeGVyOiBSdWxlLlJ1bGVGaXhlcik6IFJ1bGUuRml4W10ge1xuICByZXR1cm4gW1xuICAgIC4uLmJ1aWxkQ29tYmluZWRJbXBvcnRGaXhlcyhtYXRjaGVzLCBmaXhlciksXG4gICAgLi4ubWF0Y2hlcy5mbGF0TWFwKChtYXRjaCkgPT4gYnVpbGROb25JbXBvcnRGaXhlcyhtYXRjaCwgZml4ZXIpKSxcbiAgXTtcbn1cblxuLyoqXG4gKiBCdWlsZHMgZml4ZXMgZm9yIGBtb2NrKmAgbWVtYmVyLWV4cHJlc3Npb24gb2JqZWN0IHJld3JpdGVzLlxuICogQHBhcmFtIG1hdGNoIEF1dG9maXggY29udGV4dCBwcm9kdWNlZCBieSB0aGUgbWF0Y2hlci5cbiAqIEBwYXJhbSBmaXhlciBFU0xpbnQgZml4ZXIuXG4gKiBAcmV0dXJucyBSZXBsYWNlbWVudHMgZm9yIG1lbWJlci1leHByZXNzaW9uIG9iamVjdCBpZGVudGlmaWVycy5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBmaXhlcyA9IGJ1aWxkTWVtYmVyUmV3cml0ZUZpeGVzKHt9IGFzIG5ldmVyLCB7fSBhcyBuZXZlcik7XG4gKiB2b2lkIGZpeGVzO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGJ1aWxkTWVtYmVyUmV3cml0ZUZpeGVzKFxuICBtYXRjaDogUnVsZU1hdGNoLFxuICBmaXhlcjogUnVsZS5SdWxlRml4ZXIsXG4pOiBSdWxlLkZpeFtdIHtcbiAgcmV0dXJuIG1hdGNoLm1lbWJlclJld3JpdGVzLm1hcCgocmV3cml0ZSkgPT5cbiAgICBmaXhlci5yZXBsYWNlVGV4dFJhbmdlKFxuICAgICAgcmV3cml0ZS5sb2NhbE9iamVjdFJhbmdlLFxuICAgICAgYHZpLm1vY2tlZCgke3Jld3JpdGUuZXhwb3J0ZWROYW1lfSlgLFxuICAgICksXG4gICk7XG59XG5cbi8qKlxuICogQnVpbGRzIGEgZml4IHRoYXQgY29udmVydHMgbGl0ZXJhbCBtb2NrIHNwZWNpZmllcnMgdG8gYGltcG9ydChcIi4uLlwiKWAuXG4gKiBAcGFyYW0gbWF0Y2ggQXV0b2ZpeCBjb250ZXh0IHByb2R1Y2VkIGJ5IHRoZSBtYXRjaGVyLlxuICogQHBhcmFtIGZpeGVyIEVTTGludCBmaXhlci5cbiAqIEByZXR1cm5zIEZpeGVzIHRoYXQgbm9ybWFsaXplIHRoZSBtb2NrIHNwZWNpZmllciBhcmd1bWVudC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBmaXhlcyA9IGJ1aWxkTW9ja1NwZWNpZmllckZpeGVzKHt9IGFzIG5ldmVyLCB7fSBhcyBuZXZlcik7XG4gKiB2b2lkIGZpeGVzO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGJ1aWxkTW9ja1NwZWNpZmllckZpeGVzKFxuICBtYXRjaDogUnVsZU1hdGNoLFxuICBmaXhlcjogUnVsZS5SdWxlRml4ZXIsXG4pOiBSdWxlLkZpeFtdIHtcbiAgaWYgKG1hdGNoLm1vY2tTcGVjaWZpZXJJc0ltcG9ydEV4cHJlc3Npb24pIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBjb25zdCBtb2R1bGVUZXh0ID0gSlNPTi5zdHJpbmdpZnkobWF0Y2gubW9kdWxlU3BlY2lmaWVyKTtcbiAgcmV0dXJuIFtcbiAgICBmaXhlci5yZXBsYWNlVGV4dFJhbmdlKG1hdGNoLm1vY2tTcGVjaWZpZXJSYW5nZSwgYGltcG9ydCgke21vZHVsZVRleHR9KWApLFxuICBdO1xufVxuXG4vKipcbiAqIEJ1aWxkcyBhbGwgbm9uLWltcG9ydCBhdXRvZml4IG9wZXJhdGlvbnMgZm9yIGEgc2luZ2xlIG1hdGNoLlxuICogQHBhcmFtIG1hdGNoIEF1dG9maXggY29udGV4dCBwcm9kdWNlZCBieSB0aGUgbWF0Y2hlci5cbiAqIEBwYXJhbSBmaXhlciBFU0xpbnQgZml4ZXIuXG4gKiBAcmV0dXJucyBDb21iaW5lZCBub24taW1wb3J0IGZpeCBsaXN0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGZpeGVzID0gYnVpbGROb25JbXBvcnRGaXhlcyh7fSBhcyBuZXZlciwge30gYXMgbmV2ZXIpO1xuICogdm9pZCBmaXhlcztcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBidWlsZE5vbkltcG9ydEZpeGVzKFxuICBtYXRjaDogUnVsZU1hdGNoLFxuICBmaXhlcjogUnVsZS5SdWxlRml4ZXIsXG4pOiBSdWxlLkZpeFtdIHtcbiAgcmV0dXJuIFtcbiAgICAuLi5idWlsZEJpbmRpbmdGaXhlcyhtYXRjaCwgZml4ZXIpLFxuICAgIC4uLmJ1aWxkTWVtYmVyUmV3cml0ZUZpeGVzKG1hdGNoLCBmaXhlciksXG4gICAgLi4uYnVpbGRNb2NrU3BlY2lmaWVyRml4ZXMobWF0Y2gsIGZpeGVyKSxcbiAgICAuLi5idWlsZFJlbW92YWxGaXhlcyhtYXRjaCwgZml4ZXIpLFxuICBdO1xufVxuXG4vKipcbiAqIEJ1aWxkcyBmaXhlcyB0aGF0IHJlbW92ZSBkZWNsYXJhdGlvbnMgYWZ0ZXIgaW5saW5pbmcuXG4gKiBAcGFyYW0gbWF0Y2ggQXV0b2ZpeCBjb250ZXh0IHByb2R1Y2VkIGJ5IHRoZSBtYXRjaGVyLlxuICogQHBhcmFtIGZpeGVyIEVTTGludCBmaXhlci5cbiAqIEByZXR1cm5zIEZpeGVzIHRoYXQgcmVtb3ZlIHJlZHVuZGFudCBkZWNsYXJhdGlvbiBzdGF0ZW1lbnRzLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGZpeGVzID0gYnVpbGRSZW1vdmFsRml4ZXMoe30gYXMgbmV2ZXIsIHt9IGFzIG5ldmVyKTtcbiAqIHZvaWQgZml4ZXM7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gYnVpbGRSZW1vdmFsRml4ZXMoXG4gIG1hdGNoOiBSdWxlTWF0Y2gsXG4gIGZpeGVyOiBSdWxlLlJ1bGVGaXhlcixcbik6IFJ1bGUuRml4W10ge1xuICBjb25zdCB1bmlxdWVSYW5nZXMgPSBnZXRVbmlxdWVTdGF0ZW1lbnRSYW5nZXMobWF0Y2gpO1xuICByZXR1cm4gdW5pcXVlUmFuZ2VzLm1hcCgoc3RhdGVtZW50UmFuZ2UpID0+IHtcbiAgICBjb25zdCBleHBhbmRlZFJhbmdlID0gZXh0ZW5kUmFuZ2VUb0xpbmVCcmVhayhcbiAgICAgIG1hdGNoLnNvdXJjZVRleHQsXG4gICAgICBzdGF0ZW1lbnRSYW5nZSxcbiAgICApO1xuICAgIHJldHVybiBmaXhlci5yZW1vdmVSYW5nZShleHBhbmRlZFJhbmdlKTtcbiAgfSk7XG59XG5cbi8qKlxuICogRXh0ZW5kcyBhIHN0YXRlbWVudCByYW5nZSB0byBpbmNsdWRlIHRoZSB0cmFpbGluZyBsaW5lIGJyZWFrLlxuICogQHBhcmFtIHNvdXJjZVRleHQgRnVsbCBmaWxlIGNvbnRlbnQgZm9yIG5ld2xpbmUgbG9va3VwLlxuICogQHBhcmFtIHN0YXRlbWVudFJhbmdlIFN0YXJ0L2VuZCBvZmZzZXRzIGZvciB0aGUgc3RhdGVtZW50LlxuICogQHJldHVybnMgU3RhdGVtZW50IHJhbmdlIGV4dGVuZGVkIHRocm91Z2ggdGhlIHRyYWlsaW5nIGxpbmUgYnJlYWsuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgcmFuZ2UgPSBleHRlbmRSYW5nZVRvTGluZUJyZWFrKFwiYVxcblwiLCBbMCwgMV0pO1xuICogdm9pZCByYW5nZTtcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBleHRlbmRSYW5nZVRvTGluZUJyZWFrKFxuICBzb3VyY2VUZXh0OiBzdHJpbmcsXG4gIHN0YXRlbWVudFJhbmdlOiBSYW5nZSxcbik6IFJhbmdlIHtcbiAgY29uc3QgW3N0YXJ0LCBlbmRdID0gc3RhdGVtZW50UmFuZ2U7XG4gIGNvbnN0IG5leHRMaW5lRmVlZEluZGV4ID0gc291cmNlVGV4dC5pbmRleE9mKFwiXFxuXCIsIGVuZCk7XG4gIHJldHVybiBuZXh0TGluZUZlZWRJbmRleCA9PT0gLTFcbiAgICA/IFtzdGFydCwgc291cmNlVGV4dC5sZW5ndGhdXG4gICAgOiBbc3RhcnQsIG5leHRMaW5lRmVlZEluZGV4ICsgMV07XG59XG5cbi8qKlxuICogUmV0dXJucyBzb3J0ZWQgdW5pcXVlIHN0YXRlbWVudCByYW5nZXMgZm9yIGRlY2xhcmF0aW9ucyB0byByZW1vdmUuXG4gKiBAcGFyYW0gbWF0Y2ggQXV0b2ZpeCBjb250ZXh0IHByb2R1Y2VkIGJ5IHRoZSBtYXRjaGVyLlxuICogQHJldHVybnMgRGlzdGluY3QgZGVjbGFyYXRpb24gc3RhdGVtZW50IHJhbmdlcyB0byByZW1vdmUuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgcmFuZ2VzID0gZ2V0VW5pcXVlU3RhdGVtZW50UmFuZ2VzKHsgYmluZGluZ3M6IFtdLCBkZWNsYXJhdGlvbnM6IG5ldyBNYXAoKSB9IGFzIG5ldmVyKTtcbiAqIHZvaWQgcmFuZ2VzO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGdldFVuaXF1ZVN0YXRlbWVudFJhbmdlcyhtYXRjaDogUnVsZU1hdGNoKTogUmFuZ2VbXSB7XG4gIGNvbnN0IHJhbmdlTWFwID0gbmV3IE1hcDxzdHJpbmcsIFJhbmdlPigpO1xuICBmb3IgKGNvbnN0IGJpbmRpbmcgb2YgbWF0Y2guYmluZGluZ3MpIHtcbiAgICBjb25zdCBkZWNsYXJhdGlvbiA9IG1hdGNoLmRlY2xhcmF0aW9ucy5nZXQoYmluZGluZy5sb2NhbE5hbWUpO1xuICAgIGlmIChkZWNsYXJhdGlvbiAhPT0gdm9pZCAwKSB7XG4gICAgICBjb25zdCBrZXkgPSBgJHtkZWNsYXJhdGlvbi5zdGF0ZW1lbnRSYW5nZVswXS50b0ZpeGVkKDApfToke2RlY2xhcmF0aW9uLnN0YXRlbWVudFJhbmdlWzFdLnRvRml4ZWQoMCl9YDtcbiAgICAgIHJhbmdlTWFwLnNldChrZXksIGRlY2xhcmF0aW9uLnN0YXRlbWVudFJhbmdlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmFuZ2VNYXAudmFsdWVzKCkudG9BcnJheSgpO1xufVxuXG5leHBvcnQgeyBidWlsZEZpeGVzIH07XG4iXX0=
@@ -0,0 +1,18 @@
1
+ import type * as ESTree from "estree";
2
+ import type { RuleMatch } from "./types.js";
3
+ /**
4
+ * Returns true when import generation for this match could create an unsafe top-level collision.
5
+ * @param program Program node.
6
+ * @param moduleSpecifier Module specifier used by the mock.
7
+ * @param bindings Candidate bindings.
8
+ * @param declarations Known declarations by local name.
9
+ * @returns True when the matcher should skip this candidate.
10
+ * @example
11
+ * ```typescript
12
+ * const unsafe = hasUnsafeImportCollisions({ body: [], sourceType: "module", type: "Program" } as never, "./mod", []);
13
+ * void unsafe;
14
+ * ```
15
+ */
16
+ declare function hasUnsafeImportCollisions(program: ESTree.Program, moduleSpecifier: string, bindings: RuleMatch["bindings"], declarations: RuleMatch["declarations"]): boolean;
17
+ export { hasUnsafeImportCollisions };
18
+ //# sourceMappingURL=match-collisions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"match-collisions.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/prefer-vi-mocked-import/match-collisions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEtC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAgHzC;;;;;;;;;;;;GAYG;AACH,iBAAS,yBAAyB,CAChC,OAAO,EAAE,MAAM,CAAC,OAAO,EACvB,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,SAAS,CAAC,UAAU,CAAC,EAC/B,YAAY,EAAE,SAAS,CAAC,cAAc,CAAC,GACtC,OAAO,CAsCT;AA0CD,OAAO,EAAE,yBAAyB,EAAE,CAAC"}
@@ -0,0 +1,162 @@
1
+ /**
2
+ * Adds identifier names from a binding pattern.
3
+ * @param pattern Binding pattern.
4
+ * @param names Output binding name set.
5
+ * @example
6
+ * ```typescript
7
+ * const names = new Set<string>();
8
+ * collectPatternNames({ name: "x", type: "Identifier" }, names);
9
+ * ```
10
+ */
11
+ function collectPatternNames(pattern, names) {
12
+ switch (pattern.type) {
13
+ case "ArrayPattern": {
14
+ for (const element of pattern.elements) {
15
+ if (element !== null) {
16
+ collectPatternNames(element, names);
17
+ }
18
+ }
19
+ return;
20
+ }
21
+ case "AssignmentPattern": {
22
+ collectPatternNames(pattern.left, names);
23
+ return;
24
+ }
25
+ case "Identifier": {
26
+ names.add(pattern.name);
27
+ return;
28
+ }
29
+ case "ObjectPattern": {
30
+ for (const property of pattern.properties) {
31
+ if (property.type === "RestElement") {
32
+ collectPatternNames(property.argument, names);
33
+ }
34
+ else {
35
+ collectPatternNames(property.value, names);
36
+ }
37
+ }
38
+ return;
39
+ }
40
+ case "RestElement": {
41
+ collectPatternNames(pattern.argument, names);
42
+ return;
43
+ }
44
+ }
45
+ }
46
+ /**
47
+ * Adds top-level binding names from a statement.
48
+ * @param statement Top-level statement.
49
+ * @param names Output binding name set.
50
+ * @example
51
+ * ```typescript
52
+ * const names = new Set<string>();
53
+ * collectStatementBindingNames({ type: "EmptyStatement" } as never, names);
54
+ * ```
55
+ */
56
+ function collectStatementBindingNames(statement, names) {
57
+ if (statement.type === "ImportDeclaration") {
58
+ for (const specifier of statement.specifiers) {
59
+ names.add(specifier.local.name);
60
+ }
61
+ return;
62
+ }
63
+ if (statement.type === "VariableDeclaration") {
64
+ for (const declaration of statement.declarations) {
65
+ collectPatternNames(declaration.id, names);
66
+ }
67
+ return;
68
+ }
69
+ if (statement.type === "FunctionDeclaration") {
70
+ names.add(statement.id.name);
71
+ return;
72
+ }
73
+ if (statement.type === "ClassDeclaration") {
74
+ names.add(statement.id.name);
75
+ }
76
+ }
77
+ /**
78
+ * Collects top-level bound identifier names.
79
+ * @param program Program node.
80
+ * @returns Top-level binding names.
81
+ * @example
82
+ * ```typescript
83
+ * const names = collectTopLevelBoundNames({ body: [], sourceType: "module", type: "Program" } as never);
84
+ * void names;
85
+ * ```
86
+ */
87
+ function collectTopLevelBoundNames(program) {
88
+ const names = new Set();
89
+ for (const statement of program.body) {
90
+ collectStatementBindingNames(statement, names);
91
+ }
92
+ return names;
93
+ }
94
+ /**
95
+ * Returns true when import generation for this match could create an unsafe top-level collision.
96
+ * @param program Program node.
97
+ * @param moduleSpecifier Module specifier used by the mock.
98
+ * @param bindings Candidate bindings.
99
+ * @param declarations Known declarations by local name.
100
+ * @returns True when the matcher should skip this candidate.
101
+ * @example
102
+ * ```typescript
103
+ * const unsafe = hasUnsafeImportCollisions({ body: [], sourceType: "module", type: "Program" } as never, "./mod", []);
104
+ * void unsafe;
105
+ * ```
106
+ */
107
+ function hasUnsafeImportCollisions(program, moduleSpecifier, bindings, declarations) {
108
+ const requestedExports = new Set(bindings.map((binding) => binding.exportedName));
109
+ const topLevelBoundNames = collectTopLevelBoundNames(program);
110
+ const removableLocalNames = new Set(bindings
111
+ .map((binding) => binding.localName)
112
+ .filter((localName) => declarations.has(localName)));
113
+ const safelyBoundByTargetImport = new Set();
114
+ for (const statement of program.body) {
115
+ if (statement.type === "ImportDeclaration" &&
116
+ statement.source.value === moduleSpecifier &&
117
+ hasUnsafeTargetImportSpecifiers(statement.specifiers, requestedExports, safelyBoundByTargetImport)) {
118
+ return true;
119
+ }
120
+ }
121
+ for (const exportedName of requestedExports) {
122
+ if (topLevelBoundNames.has(exportedName) &&
123
+ !safelyBoundByTargetImport.has(exportedName) &&
124
+ !removableLocalNames.has(exportedName)) {
125
+ return true;
126
+ }
127
+ }
128
+ return false;
129
+ }
130
+ /**
131
+ * Checks whether a target-module import contains unsafe specifiers.
132
+ * @param specifiers Specifiers from an import matching the mocked module.
133
+ * @param requestedExports Export names that must be imported.
134
+ * @param safelyBoundByTargetImport Names safely bound by same-name imports.
135
+ * @returns True when any specifier would create an unsafe binding.
136
+ * @example
137
+ * ```typescript
138
+ * const unsafe = hasUnsafeTargetImportSpecifiers([], new Set(), new Set());
139
+ * void unsafe;
140
+ * ```
141
+ */
142
+ function hasUnsafeTargetImportSpecifiers(specifiers, requestedExports, safelyBoundByTargetImport) {
143
+ for (const specifier of specifiers) {
144
+ if (specifier.type !== "ImportSpecifier") {
145
+ continue;
146
+ }
147
+ if (specifier.imported.type !== "Identifier") {
148
+ return true;
149
+ }
150
+ const importedName = specifier.imported.name;
151
+ const localName = specifier.local.name;
152
+ if (importedName !== localName && requestedExports.has(importedName)) {
153
+ return true;
154
+ }
155
+ if (importedName === localName) {
156
+ safelyBoundByTargetImport.add(importedName);
157
+ }
158
+ }
159
+ return false;
160
+ }
161
+ export { hasUnsafeImportCollisions };
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2gtY29sbGlzaW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vdGVzdGluZy9wcmVmZXItdmktbW9ja2VkLWltcG9ydC9tYXRjaC1jb2xsaXNpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBOzs7Ozs7Ozs7R0FTRztBQUNILFNBQVMsbUJBQW1CLENBQzFCLE9BQXVCLEVBQ3ZCLEtBQWtCO0lBRWxCLFFBQVEsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLEtBQUssY0FBYyxDQUFDLENBQUMsQ0FBQztZQUNwQixLQUFLLE1BQU0sT0FBTyxJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDdkMsSUFBSSxPQUFPLEtBQUssSUFBSSxFQUFFLENBQUM7b0JBQ3JCLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDdEMsQ0FBQztZQUNILENBQUM7WUFDRCxPQUFPO1FBQ1QsQ0FBQztRQUVELEtBQUssbUJBQW1CLENBQUMsQ0FBQyxDQUFDO1lBQ3pCLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDekMsT0FBTztRQUNULENBQUM7UUFFRCxLQUFLLFlBQVksQ0FBQyxDQUFDLENBQUM7WUFDbEIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDeEIsT0FBTztRQUNULENBQUM7UUFFRCxLQUFLLGVBQWUsQ0FBQyxDQUFDLENBQUM7WUFDckIsS0FBSyxNQUFNLFFBQVEsSUFBSSxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQzFDLElBQUksUUFBUSxDQUFDLElBQUksS0FBSyxhQUFhLEVBQUUsQ0FBQztvQkFDcEMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDaEQsQ0FBQztxQkFBTSxDQUFDO29CQUNOLG1CQUFtQixDQUFD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QUFFRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlICogYXMgRVNUcmVlIGZyb20gXCJlc3RyZWVcIjtcblxuaW1wb3J0IHR5cGUgeyBSdWxlTWF0Y2ggfSBmcm9tIFwiLi90eXBlc1wiO1xuXG4vKipcbiAqIEFkZHMgaWRlbnRpZmllciBuYW1lcyBmcm9tIGEgYmluZGluZyBwYXR0ZXJuLlxuICogQHBhcmFtIHBhdHRlcm4gQmluZGluZyBwYXR0ZXJuLlxuICogQHBhcmFtIG5hbWVzIE91dHB1dCBiaW5kaW5nIG5hbWUgc2V0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG5hbWVzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gKiBjb2xsZWN0UGF0dGVybk5hbWVzKHsgbmFtZTogXCJ4XCIsIHR5cGU6IFwiSWRlbnRpZmllclwiIH0sIG5hbWVzKTtcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBjb2xsZWN0UGF0dGVybk5hbWVzKFxuICBwYXR0ZXJuOiBFU1RyZWUuUGF0dGVybixcbiAgbmFtZXM6IFNldDxzdHJpbmc+LFxuKTogdm9pZCB7XG4gIHN3aXRjaCAocGF0dGVybi50eXBlKSB7XG4gICAgY2FzZSBcIkFycmF5UGF0dGVyblwiOiB7XG4gICAgICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgcGF0dGVybi5lbGVtZW50cykge1xuICAgICAgICBpZiAoZWxlbWVudCAhPT0gbnVsbCkge1xuICAgICAgICAgIGNvbGxlY3RQYXR0ZXJuTmFtZXMoZWxlbWVudCwgbmFtZXMpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY2FzZSBcIkFzc2lnbm1lbnRQYXR0ZXJuXCI6IHtcbiAgICAgIGNvbGxlY3RQYXR0ZXJuTmFtZXMocGF0dGVybi5sZWZ0LCBuYW1lcyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY2FzZSBcIklkZW50aWZpZXJcIjoge1xuICAgICAgbmFtZXMuYWRkKHBhdHRlcm4ubmFtZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY2FzZSBcIk9iamVjdFBhdHRlcm5cIjoge1xuICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiBwYXR0ZXJuLnByb3BlcnRpZXMpIHtcbiAgICAgICAgaWYgKHByb3BlcnR5LnR5cGUgPT09IFwiUmVzdEVsZW1lbnRcIikge1xuICAgICAgICAgIGNvbGxlY3RQYXR0ZXJuTmFtZXMocHJvcGVydHkuYXJndW1lbnQsIG5hbWVzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb2xsZWN0UGF0dGVybk5hbWVzKHByb3BlcnR5LnZhbHVlLCBuYW1lcyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjYXNlIFwiUmVzdEVsZW1lbnRcIjoge1xuICAgICAgY29sbGVjdFBhdHRlcm5OYW1lcyhwYXR0ZXJuLmFyZ3VtZW50LCBuYW1lcyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQWRkcyB0b3AtbGV2ZWwgYmluZGluZyBuYW1lcyBmcm9tIGEgc3RhdGVtZW50LlxuICogQHBhcmFtIHN0YXRlbWVudCBUb3AtbGV2ZWwgc3RhdGVtZW50LlxuICogQHBhcmFtIG5hbWVzIE91dHB1dCBiaW5kaW5nIG5hbWUgc2V0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG5hbWVzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gKiBjb2xsZWN0U3RhdGVtZW50QmluZGluZ05hbWVzKHsgdHlwZTogXCJFbXB0eVN0YXRlbWVudFwiIH0gYXMgbmV2ZXIsIG5hbWVzKTtcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBjb2xsZWN0U3RhdGVtZW50QmluZGluZ05hbWVzKFxuICBzdGF0ZW1lbnQ6IEVTVHJlZS5Qcm9ncmFtW1wiYm9keVwiXVtudW1iZXJdLFxuICBuYW1lczogU2V0PHN0cmluZz4sXG4pOiB2b2lkIHtcbiAgaWYgKHN0YXRlbWVudC50eXBlID09PSBcIkltcG9ydERlY2xhcmF0aW9uXCIpIHtcbiAgICBmb3IgKGNvbnN0IHNwZWNpZmllciBvZiBzdGF0ZW1lbnQuc3BlY2lmaWVycykge1xuICAgICAgbmFtZXMuYWRkKHNwZWNpZmllci5sb2NhbC5uYW1lKTtcbiAgICB9XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKHN0YXRlbWVudC50eXBlID09PSBcIlZhcmlhYmxlRGVjbGFyYXRpb25cIikge1xuICAgIGZvciAoY29uc3QgZGVjbGFyYXRpb24gb2Ygc3RhdGVtZW50LmRlY2xhcmF0aW9ucykge1xuICAgICAgY29sbGVjdFBhdHRlcm5OYW1lcyhkZWNsYXJhdGlvbi5pZCwgbmFtZXMpO1xuICAgIH1cbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoc3RhdGVtZW50LnR5cGUgPT09IFwiRnVuY3Rpb25EZWNsYXJhdGlvblwiKSB7XG4gICAgbmFtZXMuYWRkKHN0YXRlbWVudC5pZC5uYW1lKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoc3RhdGVtZW50LnR5cGUgPT09IFwiQ2xhc3NEZWNsYXJhdGlvblwiKSB7XG4gICAgbmFtZXMuYWRkKHN0YXRlbWVudC5pZC5uYW1lKTtcbiAgfVxufVxuXG4vKipcbiAqIENvbGxlY3RzIHRvcC1sZXZlbCBib3VuZCBpZGVudGlmaWVyIG5hbWVzLlxuICogQHBhcmFtIHByb2dyYW0gUHJvZ3JhbSBub2RlLlxuICogQHJldHVybnMgVG9wLWxldmVsIGJpbmRpbmcgbmFtZXMuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgbmFtZXMgPSBjb2xsZWN0VG9wTGV2ZWxCb3VuZE5hbWVzKHsgYm9keTogW10sIHNvdXJjZVR5cGU6IFwibW9kdWxlXCIsIHR5cGU6IFwiUHJvZ3JhbVwiIH0gYXMgbmV2ZXIpO1xuICogdm9pZCBuYW1lcztcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBjb2xsZWN0VG9wTGV2ZWxCb3VuZE5hbWVzKHByb2dyYW06IEVTVHJlZS5Qcm9ncmFtKTogU2V0PHN0cmluZz4ge1xuICBjb25zdCBuYW1lcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gIGZvciAoY29uc3Qgc3RhdGVtZW50IG9mIHByb2dyYW0uYm9keSkge1xuICAgIGNvbGxlY3RTdGF0ZW1lbnRCaW5kaW5nTmFtZXMoc3RhdGVtZW50LCBuYW1lcyk7XG4gIH1cblxuICByZXR1cm4gbmFtZXM7XG59XG5cbi8qKlxuICogUmV0dXJucyB0cnVlIHdoZW4gaW1wb3J0IGdlbmVyYXRpb24gZm9yIHRoaXMgbWF0Y2ggY291bGQgY3JlYXRlIGFuIHVuc2FmZSB0b3AtbGV2ZWwgY29sbGlzaW9uLlxuICogQHBhcmFtIHByb2dyYW0gUHJvZ3JhbSBub2RlLlxuICogQHBhcmFtIG1vZHVsZVNwZWNpZmllciBNb2R1bGUgc3BlY2lmaWVyIHVzZWQgYnkgdGhlIG1vY2suXG4gKiBAcGFyYW0gYmluZGluZ3MgQ2FuZGlkYXRlIGJpbmRpbmdzLlxuICogQHBhcmFtIGRlY2xhcmF0aW9ucyBLbm93biBkZWNsYXJhdGlvbnMgYnkgbG9jYWwgbmFtZS5cbiAqIEByZXR1cm5zIFRydWUgd2hlbiB0aGUgbWF0Y2hlciBzaG91bGQgc2tpcCB0aGlzIGNhbmRpZGF0ZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCB1bnNhZmUgPSBoYXNVbnNhZmVJbXBvcnRDb2xsaXNpb25zKHsgYm9keTogW10sIHNvdXJjZVR5cGU6IFwibW9kdWxlXCIsIHR5cGU6IFwiUHJvZ3JhbVwiIH0gYXMgbmV2ZXIsIFwiLi9tb2RcIiwgW10pO1xuICogdm9pZCB1bnNhZmU7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gaGFzVW5zYWZlSW1wb3J0Q29sbGlzaW9ucyhcbiAgcHJvZ3JhbTogRVNUcmVlLlByb2dyYW0sXG4gIG1vZHVsZVNwZWNpZmllcjogc3RyaW5nLFxuICBiaW5kaW5nczogUnVsZU1hdGNoW1wiYmluZGluZ3NcIl0sXG4gIGRlY2xhcmF0aW9uczogUnVsZU1hdGNoW1wiZGVjbGFyYXRpb25zXCJdLFxuKTogYm9vbGVhbiB7XG4gIGNvbnN0IHJlcXVlc3RlZEV4cG9ydHMgPSBuZXcgU2V0KFxuICAgIGJpbmRpbmdzLm1hcCgoYmluZGluZykgPT4gYmluZGluZy5leHBvcnRlZE5hbWUpLFxuICApO1xuXG4gIGNvbnN0IHRvcExldmVsQm91bmROYW1lcyA9IGNvbGxlY3RUb3BMZXZlbEJvdW5kTmFtZXMocHJvZ3JhbSk7XG4gIGNvbnN0IHJlbW92YWJsZUxvY2FsTmFtZXMgPSBuZXcgU2V0KFxuICAgIGJpbmRpbmdzXG4gICAgICAubWFwKChiaW5kaW5nKSA9PiBiaW5kaW5nLmxvY2FsTmFtZSlcbiAgICAgIC5maWx0ZXIoKGxvY2FsTmFtZSkgPT4gZGVjbGFyYXRpb25zLmhhcyhsb2NhbE5hbWUpKSxcbiAgKTtcbiAgY29uc3Qgc2FmZWx5Qm91bmRCeVRhcmdldEltcG9ydCA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gIGZvciAoY29uc3Qgc3RhdGVtZW50IG9mIHByb2dyYW0uYm9keSkge1xuICAgIGlmIChcbiAgICAgIHN0YXRlbWVudC50eXBlID09PSBcIkltcG9ydERlY2xhcmF0aW9uXCIgJiZcbiAgICAgIHN0YXRlbWVudC5zb3VyY2UudmFsdWUgPT09IG1vZHVsZVNwZWNpZmllciAmJlxuICAgICAgaGFzVW5zYWZlVGFyZ2V0SW1wb3J0U3BlY2lmaWVycyhcbiAgICAgICAgc3RhdGVtZW50LnNwZWNpZmllcnMsXG4gICAgICAgIHJlcXVlc3RlZEV4cG9ydHMsXG4gICAgICAgIHNhZmVseUJvdW5kQnlUYXJnZXRJbXBvcnQsXG4gICAgICApXG4gICAgKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBmb3IgKGNvbnN0IGV4cG9ydGVkTmFtZSBvZiByZXF1ZXN0ZWRFeHBvcnRzKSB7XG4gICAgaWYgKFxuICAgICAgdG9wTGV2ZWxCb3VuZE5hbWVzLmhhcyhleHBvcnRlZE5hbWUpICYmXG4gICAgICAhc2FmZWx5Qm91bmRCeVRhcmdldEltcG9ydC5oYXMoZXhwb3J0ZWROYW1lKSAmJlxuICAgICAgIXJlbW92YWJsZUxvY2FsTmFtZXMuaGFzKGV4cG9ydGVkTmFtZSlcbiAgICApIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhIHRhcmdldC1tb2R1bGUgaW1wb3J0IGNvbnRhaW5zIHVuc2FmZSBzcGVjaWZpZXJzLlxuICogQHBhcmFtIHNwZWNpZmllcnMgU3BlY2lmaWVycyBmcm9tIGFuIGltcG9ydCBtYXRjaGluZyB0aGUgbW9ja2VkIG1vZHVsZS5cbiAqIEBwYXJhbSByZXF1ZXN0ZWRFeHBvcnRzIEV4cG9ydCBuYW1lcyB0aGF0IG11c3QgYmUgaW1wb3J0ZWQuXG4gKiBAcGFyYW0gc2FmZWx5Qm91bmRCeVRhcmdldEltcG9ydCBOYW1lcyBzYWZlbHkgYm91bmQgYnkgc2FtZS1uYW1lIGltcG9ydHMuXG4gKiBAcmV0dXJucyBUcnVlIHdoZW4gYW55IHNwZWNpZmllciB3b3VsZCBjcmVhdGUgYW4gdW5zYWZlIGJpbmRpbmcuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgdW5zYWZlID0gaGFzVW5zYWZlVGFyZ2V0SW1wb3J0U3BlY2lmaWVycyhbXSwgbmV3IFNldCgpLCBuZXcgU2V0KCkpO1xuICogdm9pZCB1bnNhZmU7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gaGFzVW5zYWZlVGFyZ2V0SW1wb3J0U3BlY2lmaWVycyhcbiAgc3BlY2lmaWVyczogRVNUcmVlLkltcG9ydERlY2xhcmF0aW9uW1wic3BlY2lmaWVyc1wiXSxcbiAgcmVxdWVzdGVkRXhwb3J0czogUmVhZG9ubHlTZXQ8c3RyaW5nPixcbiAgc2FmZWx5Qm91bmRCeVRhcmdldEltcG9ydDogU2V0PHN0cmluZz4sXG4pOiBib29sZWFuIHtcbiAgZm9yIChjb25zdCBzcGVjaWZpZXIgb2Ygc3BlY2lmaWVycykge1xuICAgIGlmIChzcGVjaWZpZXIudHlwZSAhPT0gXCJJbXBvcnRTcGVjaWZpZXJcIikge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKHNwZWNpZmllci5pbXBvcnRlZC50eXBlICE9PSBcIklkZW50aWZpZXJcIikge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgY29uc3QgaW1wb3J0ZWROYW1lID0gc3BlY2lmaWVyLmltcG9ydGVkLm5hbWU7XG4gICAgY29uc3QgbG9jYWxOYW1lID0gc3BlY2lmaWVyLmxvY2FsLm5hbWU7XG4gICAgaWYgKGltcG9ydGVkTmFtZSAhPT0gbG9jYWxOYW1lICYmIHJlcXVlc3RlZEV4cG9ydHMuaGFzKGltcG9ydGVkTmFtZSkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmIChpbXBvcnRlZE5hbWUgPT09IGxvY2FsTmFtZSkge1xuICAgICAgc2FmZWx5Qm91bmRCeVRhcmdldEltcG9ydC5hZGQoaW1wb3J0ZWROYW1lKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG5cbmV4cG9ydCB7IGhhc1Vuc2FmZUltcG9ydENvbGxpc2lvbnMgfTtcbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"match-rewrites.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/prefer-vi-mocked-import/match-rewrites.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEtC,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAyBnE;;;;;;;;;;;GAWG;AACH,iBAAS,qBAAqB,CAC5B,OAAO,EAAE,MAAM,CAAC,OAAO,EACvB,uBAAuB,EAAE,GAAG,CAAC,MAAM,CAAC,EACpC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,GACtB,OAAO,CAkBT;AAED;;;;;;;;;;;GAWG;AACH,iBAAS,kBAAkB,CACzB,QAAQ,EAAE,OAAO,EAAE,EACnB,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EACtC,QAAQ,EAAE,aAAa,EAAE,GACxB,GAAG,CAAC,MAAM,CAAC,CAkBb;AAED;;;;;;;;;;GAUG;AACH,iBAAS,qBAAqB,CAC5B,OAAO,EAAE,MAAM,CAAC,OAAO,EACvB,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACnC,aAAa,EAAE,CAUjB;AAqCD,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,CAAC"}
1
+ {"version":3,"file":"match-rewrites.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/prefer-vi-mocked-import/match-rewrites.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEtC,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AA2BnE;;;;;;;;;;;GAWG;AACH,iBAAS,qBAAqB,CAC5B,OAAO,EAAE,MAAM,CAAC,OAAO,EACvB,uBAAuB,EAAE,GAAG,CAAC,MAAM,CAAC,EACpC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,GACtB,OAAO,CAkBT;AAED;;;;;;;;;;;GAWG;AACH,iBAAS,kBAAkB,CACzB,QAAQ,EAAE,OAAO,EAAE,EACnB,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EACtC,QAAQ,EAAE,aAAa,EAAE,GACxB,GAAG,CAAC,MAAM,CAAC,CAkBb;AAED;;;;;;;;;;GAUG;AACH,iBAAS,qBAAqB,CAC5B,OAAO,EAAE,MAAM,CAAC,OAAO,EACvB,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACnC,aAAa,EAAE,CAUjB;AAqCD,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,CAAC"}
@@ -11,10 +11,11 @@ import { walkNode } from "./match-walk.js";
11
11
  * ```
12
12
  */
13
13
  function addDeclarationIdRange(allowedRanges, declaration) {
14
- if (declaration !== void 0) {
15
- const rangeKey = `${declaration.declarationIdRange[0].toFixed(0)}:${declaration.declarationIdRange[1].toFixed(0)}`;
16
- allowedRanges.add(rangeKey);
14
+ if (declaration === void 0) {
15
+ return;
17
16
  }
17
+ const rangeKey = `${declaration.declarationIdRange[0].toFixed(0)}:${declaration.declarationIdRange[1].toFixed(0)}`;
18
+ allowedRanges.add(rangeKey);
18
19
  }
19
20
  /**
20
21
  * Returns false if a binding local is used outside allowed rewrite sites.
@@ -116,4 +117,4 @@ function toMemberRewrite(currentNode, localToExported) {
116
117
  : { exportedName, localObjectRange: object.range };
117
118
  }
118
119
  export { areLocalsSafeToInline, buildAllowedRanges, collectMemberRewrites };
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2gtcmV3cml0ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3RpbmcvcHJlZmVyLXZpLW1vY2tlZC1pbXBvcnQvbWF0Y2gtcmV3cml0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFeEM7Ozs7Ozs7OztHQVNHO0FBQ0gsU0FBUyxxQkFBcUIsQ0FDNUIsYUFBMEIsRUFDMUIsV0FBb0M7SUFFcEMsSUFBSSxXQUFXLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUMzQixNQUFNLFFBQVEsR0FBRyxHQUFHLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksV0FBVyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ25ILGFBQWEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDOUIsQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7Ozs7Ozs7R0FXRztBQUNILFNBQVMscUJBQXFCLENBQzVCLE9BQXVCLEVBQ3ZCLHVCQUFvQyxFQUNwQyxVQUF1QjtJQUV2QixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFDbEIsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLFdBQVcsRUFBRSxFQUFFO1FBQ2hDLElBQ0UsQ0FBQyxNQUFNO1lBQ1AsV0FBVyxDQUFDLElBQUksS0FBSyxZQUFZO1lBQ2pDLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUN0QixDQUFDO1lBQ0QsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLEdBQUcsR0FBRyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFD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QUFDLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sWUFBWSxHQUFHLGVBQWUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RELE9BQU8sWUFBWSxLQUFLLEtBQUssQ0FBQztRQUM1QixDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ1IsQ0FBQyxDQUFDLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztBQUN2RCxDQUFDO0FBRUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGtCQUFrQixFQUFFLHFCQUFxQixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSAqIGFzIEVTVHJlZSBmcm9tIFwiZXN0cmVlXCI7XG5cbmltcG9ydCB0eXBlIHsgQmluZGluZywgRGVjbGFyYXRpb24sIE1lbWJlclJld3JpdGUgfSBmcm9tIFwiLi90eXBlc1wiO1xuXG5pbXBvcnQgeyBoYXNSYW5nZSB9IGZyb20gXCIuL21hdGNoLWhlbHBlcnNcIjtcbmltcG9ydCB7IHdhbGtOb2RlIH0gZnJvbSBcIi4vbWF0Y2gtd2Fsa1wiO1xuXG4vKipcbiAqIEFkZHMgZGVjbGFyYXRpb24gaWRlbnRpZmllciByYW5nZSB0byB0aGUgYWxsb3dlZCBzZXQuXG4gKiBAcGFyYW0gYWxsb3dlZFJhbmdlcyBBbGxvd2VkIHJhbmdlIHNldC5cbiAqIEBwYXJhbSBkZWNsYXJhdGlvbiBEZWNsYXJhdGlvbiB0byBpbmNsdWRlLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGFsbG93ZWQgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAqIGFkZERlY2xhcmF0aW9uSWRSYW5nZShhbGxvd2VkLCB2b2lkIDApO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGFkZERlY2xhcmF0aW9uSWRSYW5nZShcbiAgYWxsb3dlZFJhbmdlczogU2V0PHN0cmluZz4sXG4gIGRlY2xhcmF0aW9uOiBEZWNsYXJhdGlvbiB8IHVuZGVmaW5lZCxcbik6IHZvaWQge1xuICBpZiAoZGVjbGFyYXRpb24gIT09IHZvaWQgMCkge1xuICAgIGNvbnN0IHJhbmdlS2V5ID0gYCR7ZGVjbGFyYXRpb24uZGVjbGFyYXRpb25JZFJhbmdlWzBdLnRvRml4ZWQoMCl9OiR7ZGVjbGFyYXRpb24uZGVjbGFyYXRpb25JZFJhbmdlWzFdLnRvRml4ZWQoMCl9YDtcbiAgICBhbGxvd2VkUmFuZ2VzLmFkZChyYW5nZUtleSk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm5zIGZhbHNlIGlmIGEgYmluZGluZyBsb2NhbCBpcyB1c2VkIG91dHNpZGUgYWxsb3dlZCByZXdyaXRlIHNpdGVzLlxuICogQHBhcmFtIHByb2dyYW0gUHJvZ3JhbSBub2RlIGNvbnRhaW5pbmcgbW9jayB1c2FnZS5cbiAqIEBwYXJhbSBhbGxvd2VkSWRlbnRpZmllclJhbmdlcyBJZGVudGlmaWVyIHJhbmdlcyB0aGF0IGFyZSBzYWZlIHRvIHJld3JpdGUuXG4gKiBAcGFyYW0gbG9jYWxOYW1lcyBMb2NhbCBuYW1lcyB0cmFja2VkIGJ5IHRoZSBtYXRjaGVyLlxuICogQHJldHVybnMgVHJ1ZSB3aGVuIGFsbCBsb2NhbCB1c2FnZXMgYXJlIHNhZmUuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgc2FmZSA9IGFyZUxvY2Fsc1NhZmVUb0lubGluZSh7IGJvZHk6IFtdLCBzb3VyY2VUeXBlOiBcIm1vZHVsZVwiLCB0eXBlOiBcIlByb2dyYW1cIiB9IGFzIG5ldmVyLCBuZXcgU2V0KCksIG5ldyBTZXQoKSk7XG4gKiB2b2lkIHNhZmU7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gYXJlTG9jYWxzU2FmZVRvSW5saW5lKFxuICBwcm9ncmFtOiBFU1RyZWUuUHJvZ3JhbSxcbiAgYWxsb3dlZElkZW50aWZpZXJSYW5nZXM6IFNldDxzdHJpbmc+LFxuICBsb2NhbE5hbWVzOiBTZXQ8c3RyaW5nPixcbik6IGJvb2xlYW4ge1xuICBsZXQgaXNTYWZlID0gdHJ1ZTtcbiAgd2Fsa05vZGUocHJvZ3JhbSwgKGN1cnJlbnROb2RlKSA9PiB7XG4gICAgaWYgKFxuICAgICAgIWlzU2FmZSB8fFxuICAgICAgY3VycmVudE5vZGUudHlwZSAhPT0gXCJJZGVudGlmaWVyXCIgfHxcbiAgICAgICFoYXNSYW5nZShjdXJyZW50Tm9kZSlcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBrZXkgPSBgJHtjdXJyZW50Tm9kZS5yYW5nZVswXS50b0ZpeGVkKDApfToke2N1cnJlbnROb2RlLnJhbmdlWzFdLnRvRml4ZWQoMCl9YDtcbiAgICBpZiAobG9jYWxOYW1lcy5oYXMoY3VycmVudE5vZGUubmFtZSkgJiYgIWFsbG93ZWRJZGVudGlmaWVyUmFuZ2VzLmhhcyhrZXkpKSB7XG4gICAgICBpc1NhZmUgPSBmYWxzZTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBpc1NhZmU7XG59XG5cbi8qKlxuICogQnVpbGRzIGEgc2V0IG9mIGFsbG93ZWQgaWRlbnRpZmllciByYW5nZXMgZm9yIHNhZmUtaW5saW5lIHZhbGlkYXRpb24uXG4gKiBAcGFyYW0gYmluZGluZ3MgQmluZGluZ3MgbGlzdC5cbiAqIEBwYXJhbSBkZWNsYXJhdGlvbnMgRGVjbGFyYXRpb25zIG1hcC5cbiAqIEBwYXJhbSByZXdyaXRlcyBNZW1iZXIgcmV3cml0ZXMuXG4gKiBAcmV0dXJucyBBbGxvd2VkIGlkZW50aWZpZXIgcmFuZ2Uga2V5cy5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCByYW5nZXMgPSBidWlsZEFsbG93ZWRSYW5nZXMoW10sIG5ldyBNYXAoKSwgW10pO1xuICogdm9pZCByYW5nZXM7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gYnVpbGRBbGxvd2VkUmFuZ2VzKFxuICBiaW5kaW5nczogQmluZGluZ1tdLFxuICBkZWNsYXJhdGlvbnM6IE1hcDxzdHJpbmcsIERlY2xhcmF0aW9uPixcbiAgcmV3cml0ZXM6IE1lbWJlclJld3JpdGVbXSxcbik6IFNldDxzdHJpbmc+IHtcbiAgY29uc3QgYWxsb3dlZFJhbmdlcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBmb3IgKGNvbnN0IGJpbmRpbmcgb2YgYmluZGluZ3MpIHtcbiAgICBhbGxvd2VkUmFuZ2VzLmFkZChcbiAgICAgIGAke2JpbmRpbmcucHJvcGVydHlLZXlSYW5nZVswXS50b0ZpeGVkKDApfToke2JpbmRpbmcucHJvcGVydHlLZXlSYW5nZVsxXS50b0ZpeGVkKDApfWAsXG4gICAgKTtcbiAgICBhbGxvd2VkUmFuZ2VzLmFkZChcbiAgICAgIGAke2JpbmRpbmcucHJvcGVydHlWYWx1ZVJhbmdlWzBdLnRvRml4ZWQoMCl9OiR7YmluZGluZy5wcm9wZXJ0eVZhbHVlUmFuZ2VbMV0udG9GaXhlZCgwKX1gLFxuICAgICk7XG4gICAgYWRkRGVjbGFyYXRpb25JZFJhbmdlKGFsbG93ZWRSYW5nZXMsIGRlY2xhcmF0aW9ucy5nZXQoYmluZGluZy5sb2NhbE5hbWUpKTtcbiAgfVxuICBmb3IgKGNvbnN0IHJld3JpdGUgb2YgcmV3cml0ZXMpIHtcbiAgICBhbGxvd2VkUmFuZ2VzLmFkZChcbiAgICAgIGAke3Jld3JpdGUubG9jYWxPYmplY3RSYW5nZVswXS50b0ZpeGVkKDApfToke3Jld3JpdGUubG9jYWxPYmplY3RSYW5nZVsxXS50b0ZpeGVkKDApfWAsXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBhbGxvd2VkUmFuZ2VzO1xufVxuXG4vKipcbiAqIENvbGxlY3RzIG1lbWJlci1leHByZXNzaW9uIG9iamVjdCByZXdyaXRlcyBmb3IgYC5tb2NrKmAgY2FsbHMuXG4gKiBAcGFyYW0gcHJvZ3JhbSBQcm9ncmFtIG5vZGUuXG4gKiBAcGFyYW0gbG9jYWxUb0V4cG9ydGVkIExvY2FsIHRvIGV4cG9ydGVkIG5hbWUgbWFwLlxuICogQHJldHVybnMgQ29sbGVjdGVkIG1lbWJlciByZXdyaXRlcy5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCByZXdyaXRlcyA9IGNvbGxlY3RNZW1iZXJSZXdyaXRlcyh7IGJvZHk6IFtdLCBzb3VyY2VUeXBlOiBcIm1vZHVsZVwiLCB0eXBlOiBcIlByb2dyYW1cIiB9IGFzIG5ldmVyLCBuZXcgTWFwKCkpO1xuICogdm9pZCByZXdyaXRlcztcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBjb2xsZWN0TWVtYmVyUmV3cml0ZXMoXG4gIHByb2dyYW06IEVTVHJlZS5Qcm9ncmFtLFxuICBsb2NhbFRvRXhwb3J0ZWQ6IE1hcDxzdHJpbmcsIHN0cmluZz4sXG4pOiBNZW1iZXJSZXdyaXRlW10ge1xuICBjb25zdCByZXdyaXRlczogTWVtYmVyUmV3cml0ZVtdID0gW107XG4gIHdhbGtOb2RlKHByb2dyYW0sIChjdXJyZW50Tm9kZSkgPT4ge1xuICAgIGNvbnN0IHJld3JpdGUgPSB0b01lbWJlclJld3JpdGUoY3VycmVudE5vZGUsIGxvY2FsVG9FeHBvcnRlZCk7XG4gICAgaWYgKHJld3JpdGUgIT09IHZvaWQgMCkge1xuICAgICAgcmV3cml0ZXMucHVzaChyZXdyaXRlKTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiByZXdyaXRlcztcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhIG5vZGUgaW50byBhIG1lbWJlciByZXdyaXRlIHdoZW4gc3VwcG9ydGVkLlxuICogQHBhcmFtIGN1cnJlbnROb2RlIENhbmRpZGF0ZSBub2RlLlxuICogQHBhcmFtIGxvY2FsVG9FeHBvcnRlZCBMb2NhbCB0byBleHBvcnRlZCBuYW1lIG1hcC5cbiAqIEByZXR1cm5zIE1lbWJlciByZXdyaXRlIHdoZW4gbm9kZSBpcyBzdXBwb3J0ZWQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgcmV3cml0ZSA9IHRvTWVtYmVyUmV3cml0ZSh7IHR5cGU6IFwiSWRlbnRpZmllclwiLCBuYW1lOiBcInhcIiB9IGFzIG5ldmVyLCBuZXcgTWFwKCkpO1xuICogdm9pZCByZXdyaXRlO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIHRvTWVtYmVyUmV3cml0ZShcbiAgY3VycmVudE5vZGU6IEVTVHJlZS5Ob2RlLFxuICBsb2NhbFRvRXhwb3J0ZWQ6IE1hcDxzdHJpbmcsIHN0cmluZz4sXG4pOiBNZW1iZXJSZXdyaXRlIHwgdW5kZWZpbmVkIHtcbiAgaWYgKGN1cnJlbnROb2RlLnR5cGUgIT09IFwiTWVtYmVyRXhwcmVzc2lvblwiKSB7XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuXG4gIGNvbnN0IHsgb2JqZWN0LCBwcm9wZXJ0eSB9ID0gY3VycmVudE5vZGU7XG4gIGlmIChcbiAgICBvYmplY3QudHlwZSAhPT0gXCJJZGVudGlmaWVyXCIgfHxcbiAgICAhaGFzUmFuZ2Uob2JqZWN0KSB8fFxuICAgIHByb3BlcnR5LnR5cGUgIT09IFwiSWRlbnRpZmllclwiIHx8XG4gICAgIXByb3BlcnR5Lm5hbWUuc3RhcnRzV2l0aChcIm1vY2tcIilcbiAgKSB7XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuXG4gIGNvbnN0IGV4cG9ydGVkTmFtZSA9IGxvY2FsVG9FeHBvcnRlZC5nZXQob2JqZWN0Lm5hbWUpO1xuICByZXR1cm4gZXhwb3J0ZWROYW1lID09PSB2b2lkIDBcbiAgICA/IHZvaWQgMFxuICAgIDogeyBleHBvcnRlZE5hbWUsIGxvY2FsT2JqZWN0UmFuZ2U6IG9iamVjdC5yYW5nZSB9O1xufVxuXG5leHBvcnQgeyBhcmVMb2NhbHNTYWZlVG9JbmxpbmUsIGJ1aWxkQWxsb3dlZFJhbmdlcywgY29sbGVjdE1lbWJlclJld3JpdGVzIH07XG4iXX0=
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2gtcmV3cml0ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3RpbmcvcHJlZmVyLXZpLW1vY2tlZC1pbXBvcnQvbWF0Y2gtcmV3cml0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFeEM7Ozs7Ozs7OztHQVNHO0FBQ0gsU0FBUyxxQkFBcUIsQ0FDNUIsYUFBMEIsRUFDMUIsV0FBb0M7SUFFcEMsSUFBSSxXQUFXLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUMzQixPQUFPO0lBQ1QsQ0FBQztJQUVELE1BQU0sUUFBUSxHQUFHLEdBQUcsV0FBVyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxXQUFXLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDbkgsYUFBYSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUM5QixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxTQUFTLHFCQUFxQixDQUM1QixPQUF1QixFQUN2Qix1QkFBb0MsRUFDcEMsVUFBdUI7SUFFdkIsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ2xCLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxXQUFXLEVBQUUsRUFBRTtRQUNoQyxJQUNFLENBQUMsTUFBTTtZQUNQLFdBQVcsQ0FBQyxJQUFJLEtBQUssWUFBWTtZQUNqQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFDdEIsQ0FBQztZQUNELE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxHQUFHLEdBQUcsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFD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QUFPLEtBQUssQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLFlBQVksR0FBRyxlQUFlLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0RCxPQUFPLFlBQVksS0FBSyxLQUFLLENBQUM7UUFDNUIsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUNSLENBQUMsQ0FBQyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7QUFDdkQsQ0FBQztBQUVELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxrQkFBa0IsRUFBRSxxQkFBcUIsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBFU1RyZWUgZnJvbSBcImVzdHJlZVwiO1xuXG5pbXBvcnQgdHlwZSB7IEJpbmRpbmcsIERlY2xhcmF0aW9uLCBNZW1iZXJSZXdyaXRlIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuaW1wb3J0IHsgaGFzUmFuZ2UgfSBmcm9tIFwiLi9tYXRjaC1oZWxwZXJzXCI7XG5pbXBvcnQgeyB3YWxrTm9kZSB9IGZyb20gXCIuL21hdGNoLXdhbGtcIjtcblxuLyoqXG4gKiBBZGRzIGRlY2xhcmF0aW9uIGlkZW50aWZpZXIgcmFuZ2UgdG8gdGhlIGFsbG93ZWQgc2V0LlxuICogQHBhcmFtIGFsbG93ZWRSYW5nZXMgQWxsb3dlZCByYW5nZSBzZXQuXG4gKiBAcGFyYW0gZGVjbGFyYXRpb24gRGVjbGFyYXRpb24gdG8gaW5jbHVkZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBhbGxvd2VkID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gKiBhZGREZWNsYXJhdGlvbklkUmFuZ2UoYWxsb3dlZCwgdm9pZCAwKTtcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBhZGREZWNsYXJhdGlvbklkUmFuZ2UoXG4gIGFsbG93ZWRSYW5nZXM6IFNldDxzdHJpbmc+LFxuICBkZWNsYXJhdGlvbjogRGVjbGFyYXRpb24gfCB1bmRlZmluZWQsXG4pOiB2b2lkIHtcbiAgaWYgKGRlY2xhcmF0aW9uID09PSB2b2lkIDApIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCByYW5nZUtleSA9IGAke2RlY2xhcmF0aW9uLmRlY2xhcmF0aW9uSWRSYW5nZVswXS50b0ZpeGVkKDApfToke2RlY2xhcmF0aW9uLmRlY2xhcmF0aW9uSWRSYW5nZVsxXS50b0ZpeGVkKDApfWA7XG4gIGFsbG93ZWRSYW5nZXMuYWRkKHJhbmdlS2V5KTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGZhbHNlIGlmIGEgYmluZGluZyBsb2NhbCBpcyB1c2VkIG91dHNpZGUgYWxsb3dlZCByZXdyaXRlIHNpdGVzLlxuICogQHBhcmFtIHByb2dyYW0gUHJvZ3JhbSBub2RlIGNvbnRhaW5pbmcgbW9jayB1c2FnZS5cbiAqIEBwYXJhbSBhbGxvd2VkSWRlbnRpZmllclJhbmdlcyBJZGVudGlmaWVyIHJhbmdlcyB0aGF0IGFyZSBzYWZlIHRvIHJld3JpdGUuXG4gKiBAcGFyYW0gbG9jYWxOYW1lcyBMb2NhbCBuYW1lcyB0cmFja2VkIGJ5IHRoZSBtYXRjaGVyLlxuICogQHJldHVybnMgVHJ1ZSB3aGVuIGFsbCBsb2NhbCB1c2FnZXMgYXJlIHNhZmUuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgc2FmZSA9IGFyZUxvY2Fsc1NhZmVUb0lubGluZSh7IGJvZHk6IFtdLCBzb3VyY2VUeXBlOiBcIm1vZHVsZVwiLCB0eXBlOiBcIlByb2dyYW1cIiB9IGFzIG5ldmVyLCBuZXcgU2V0KCksIG5ldyBTZXQoKSk7XG4gKiB2b2lkIHNhZmU7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gYXJlTG9jYWxzU2FmZVRvSW5saW5lKFxuICBwcm9ncmFtOiBFU1RyZWUuUHJvZ3JhbSxcbiAgYWxsb3dlZElkZW50aWZpZXJSYW5nZXM6IFNldDxzdHJpbmc+LFxuICBsb2NhbE5hbWVzOiBTZXQ8c3RyaW5nPixcbik6IGJvb2xlYW4ge1xuICBsZXQgaXNTYWZlID0gdHJ1ZTtcbiAgd2Fsa05vZGUocHJvZ3JhbSwgKGN1cnJlbnROb2RlKSA9PiB7XG4gICAgaWYgKFxuICAgICAgIWlzU2FmZSB8fFxuICAgICAgY3VycmVudE5vZGUudHlwZSAhPT0gXCJJZGVudGlmaWVyXCIgfHxcbiAgICAgICFoYXNSYW5nZShjdXJyZW50Tm9kZSlcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBrZXkgPSBgJHtjdXJyZW50Tm9kZS5yYW5nZVswXS50b0ZpeGVkKDApfToke2N1cnJlbnROb2RlLnJhbmdlWzFdLnRvRml4ZWQoMCl9YDtcbiAgICBpZiAobG9jYWxOYW1lcy5oYXMoY3VycmVudE5vZGUubmFtZSkgJiYgIWFsbG93ZWRJZGVudGlmaWVyUmFuZ2VzLmhhcyhrZXkpKSB7XG4gICAgICBpc1NhZmUgPSBmYWxzZTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBpc1NhZmU7XG59XG5cbi8qKlxuICogQnVpbGRzIGEgc2V0IG9mIGFsbG93ZWQgaWRlbnRpZmllciByYW5nZXMgZm9yIHNhZmUtaW5saW5lIHZhbGlkYXRpb24uXG4gKiBAcGFyYW0gYmluZGluZ3MgQmluZGluZ3MgbGlzdC5cbiAqIEBwYXJhbSBkZWNsYXJhdGlvbnMgRGVjbGFyYXRpb25zIG1hcC5cbiAqIEBwYXJhbSByZXdyaXRlcyBNZW1iZXIgcmV3cml0ZXMuXG4gKiBAcmV0dXJucyBBbGxvd2VkIGlkZW50aWZpZXIgcmFuZ2Uga2V5cy5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCByYW5nZXMgPSBidWlsZEFsbG93ZWRSYW5nZXMoW10sIG5ldyBNYXAoKSwgW10pO1xuICogdm9pZCByYW5nZXM7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gYnVpbGRBbGxvd2VkUmFuZ2VzKFxuICBiaW5kaW5nczogQmluZGluZ1tdLFxuICBkZWNsYXJhdGlvbnM6IE1hcDxzdHJpbmcsIERlY2xhcmF0aW9uPixcbiAgcmV3cml0ZXM6IE1lbWJlclJld3JpdGVbXSxcbik6IFNldDxzdHJpbmc+IHtcbiAgY29uc3QgYWxsb3dlZFJhbmdlcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBmb3IgKGNvbnN0IGJpbmRpbmcgb2YgYmluZGluZ3MpIHtcbiAgICBhbGxvd2VkUmFuZ2VzLmFkZChcbiAgICAgIGAke2JpbmRpbmcucHJvcGVydHlLZXlSYW5nZVswXS50b0ZpeGVkKDApfToke2JpbmRpbmcucHJvcGVydHlLZXlSYW5nZVsxXS50b0ZpeGVkKDApfWAsXG4gICAgKTtcbiAgICBhbGxvd2VkUmFuZ2VzLmFkZChcbiAgICAgIGAke2JpbmRpbmcucHJvcGVydHlWYWx1ZVJhbmdlWzBdLnRvRml4ZWQoMCl9OiR7YmluZGluZy5wcm9wZXJ0eVZhbHVlUmFuZ2VbMV0udG9GaXhlZCgwKX1gLFxuICAgICk7XG4gICAgYWRkRGVjbGFyYXRpb25JZFJhbmdlKGFsbG93ZWRSYW5nZXMsIGRlY2xhcmF0aW9ucy5nZXQoYmluZGluZy5sb2NhbE5hbWUpKTtcbiAgfVxuICBmb3IgKGNvbnN0IHJld3JpdGUgb2YgcmV3cml0ZXMpIHtcbiAgICBhbGxvd2VkUmFuZ2VzLmFkZChcbiAgICAgIGAke3Jld3JpdGUubG9jYWxPYmplY3RSYW5nZVswXS50b0ZpeGVkKDApfToke3Jld3JpdGUubG9jYWxPYmplY3RSYW5nZVsxXS50b0ZpeGVkKDApfWAsXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBhbGxvd2VkUmFuZ2VzO1xufVxuXG4vKipcbiAqIENvbGxlY3RzIG1lbWJlci1leHByZXNzaW9uIG9iamVjdCByZXdyaXRlcyBmb3IgYC5tb2NrKmAgY2FsbHMuXG4gKiBAcGFyYW0gcHJvZ3JhbSBQcm9ncmFtIG5vZGUuXG4gKiBAcGFyYW0gbG9jYWxUb0V4cG9ydGVkIExvY2FsIHRvIGV4cG9ydGVkIG5hbWUgbWFwLlxuICogQHJldHVybnMgQ29sbGVjdGVkIG1lbWJlciByZXdyaXRlcy5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCByZXdyaXRlcyA9IGNvbGxlY3RNZW1iZXJSZXdyaXRlcyh7IGJvZHk6IFtdLCBzb3VyY2VUeXBlOiBcIm1vZHVsZVwiLCB0eXBlOiBcIlByb2dyYW1cIiB9IGFzIG5ldmVyLCBuZXcgTWFwKCkpO1xuICogdm9pZCByZXdyaXRlcztcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBjb2xsZWN0TWVtYmVyUmV3cml0ZXMoXG4gIHByb2dyYW06IEVTVHJlZS5Qcm9ncmFtLFxuICBsb2NhbFRvRXhwb3J0ZWQ6IE1hcDxzdHJpbmcsIHN0cmluZz4sXG4pOiBNZW1iZXJSZXdyaXRlW10ge1xuICBjb25zdCByZXdyaXRlczogTWVtYmVyUmV3cml0ZVtdID0gW107XG4gIHdhbGtOb2RlKHByb2dyYW0sIChjdXJyZW50Tm9kZSkgPT4ge1xuICAgIGNvbnN0IHJld3JpdGUgPSB0b01lbWJlclJld3JpdGUoY3VycmVudE5vZGUsIGxvY2FsVG9FeHBvcnRlZCk7XG4gICAgaWYgKHJld3JpdGUgIT09IHZvaWQgMCkge1xuICAgICAgcmV3cml0ZXMucHVzaChyZXdyaXRlKTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiByZXdyaXRlcztcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhIG5vZGUgaW50byBhIG1lbWJlciByZXdyaXRlIHdoZW4gc3VwcG9ydGVkLlxuICogQHBhcmFtIGN1cnJlbnROb2RlIENhbmRpZGF0ZSBub2RlLlxuICogQHBhcmFtIGxvY2FsVG9FeHBvcnRlZCBMb2NhbCB0byBleHBvcnRlZCBuYW1lIG1hcC5cbiAqIEByZXR1cm5zIE1lbWJlciByZXdyaXRlIHdoZW4gbm9kZSBpcyBzdXBwb3J0ZWQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgcmV3cml0ZSA9IHRvTWVtYmVyUmV3cml0ZSh7IHR5cGU6IFwiSWRlbnRpZmllclwiLCBuYW1lOiBcInhcIiB9IGFzIG5ldmVyLCBuZXcgTWFwKCkpO1xuICogdm9pZCByZXdyaXRlO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIHRvTWVtYmVyUmV3cml0ZShcbiAgY3VycmVudE5vZGU6IEVTVHJlZS5Ob2RlLFxuICBsb2NhbFRvRXhwb3J0ZWQ6IE1hcDxzdHJpbmcsIHN0cmluZz4sXG4pOiBNZW1iZXJSZXdyaXRlIHwgdW5kZWZpbmVkIHtcbiAgaWYgKGN1cnJlbnROb2RlLnR5cGUgIT09IFwiTWVtYmVyRXhwcmVzc2lvblwiKSB7XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuXG4gIGNvbnN0IHsgb2JqZWN0LCBwcm9wZXJ0eSB9ID0gY3VycmVudE5vZGU7XG4gIGlmIChcbiAgICBvYmplY3QudHlwZSAhPT0gXCJJZGVudGlmaWVyXCIgfHxcbiAgICAhaGFzUmFuZ2Uob2JqZWN0KSB8fFxuICAgIHByb3BlcnR5LnR5cGUgIT09IFwiSWRlbnRpZmllclwiIHx8XG4gICAgIXByb3BlcnR5Lm5hbWUuc3RhcnRzV2l0aChcIm1vY2tcIilcbiAgKSB7XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuXG4gIGNvbnN0IGV4cG9ydGVkTmFtZSA9IGxvY2FsVG9FeHBvcnRlZC5nZXQob2JqZWN0Lm5hbWUpO1xuICByZXR1cm4gZXhwb3J0ZWROYW1lID09PSB2b2lkIDBcbiAgICA/IHZvaWQgMFxuICAgIDogeyBleHBvcnRlZE5hbWUsIGxvY2FsT2JqZWN0UmFuZ2U6IG9iamVjdC5yYW5nZSB9O1xufVxuXG5leHBvcnQgeyBhcmVMb2NhbHNTYWZlVG9JbmxpbmUsIGJ1aWxkQWxsb3dlZFJhbmdlcywgY29sbGVjdE1lbWJlclJld3JpdGVzIH07XG4iXX0=
@@ -0,0 +1,29 @@
1
+ import type * as ESTree from "estree";
2
+ /** Type definition for rule data. */
3
+ interface MatchSeed {
4
+ /** Returned object expression from the mock factory. */
5
+ factoryObject: ESTree.ObjectExpression;
6
+ /** Expression statement containing `vi.mock` or `vi.doMock`. */
7
+ mockStatement: ESTree.ExpressionStatement;
8
+ /** Module path string extracted from the first mock argument. */
9
+ moduleSpecifier: string;
10
+ /** Original first argument node, including `range`, for fixer use. */
11
+ specifierExpression: ESTree.Expression & {
12
+ /** Source range for the mock specifier expression. */
13
+ range: [number, number];
14
+ };
15
+ }
16
+ /**
17
+ * Collects seed data for every supported mock statement in the file.
18
+ * @param program Program node.
19
+ * @returns Match seeds.
20
+ * @example
21
+ * ```typescript
22
+ * const seeds = collectSeeds({ body: [], sourceType: "module", type: "Program" } as never);
23
+ * void seeds;
24
+ * ```
25
+ */
26
+ declare function collectSeeds(program: ESTree.Program): MatchSeed[];
27
+ export type { MatchSeed };
28
+ export { collectSeeds };
29
+ //# sourceMappingURL=match-seeds.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"match-seeds.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/prefer-vi-mocked-import/match-seeds.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,QAAQ,CAAC;AAQtC,qCAAqC;AACrC,UAAU,SAAS;IACjB,wDAAwD;IACxD,aAAa,EAAE,MAAM,CAAC,gBAAgB,CAAC;IAEvC,gEAAgE;IAChE,aAAa,EAAE,MAAM,CAAC,mBAAmB,CAAC;IAE1C,iEAAiE;IACjE,eAAe,EAAE,MAAM,CAAC;IAExB,sEAAsE;IACtE,mBAAmB,EAAE,MAAM,CAAC,UAAU,GAAG;QACvC,sDAAsD;QACtD,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACzB,CAAC;CACH;AAED;;;;;;;;;GASG;AACH,iBAAS,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,GAAG,SAAS,EAAE,CA0B1D;AA2FD,YAAY,EAAE,SAAS,EAAE,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -0,0 +1,100 @@
1
+ import { getFactoryReturnObject, getModuleSpecifier, hasRange, } from "./match-helpers.js";
2
+ /**
3
+ * Collects seed data for every supported mock statement in the file.
4
+ * @param program Program node.
5
+ * @returns Match seeds.
6
+ * @example
7
+ * ```typescript
8
+ * const seeds = collectSeeds({ body: [], sourceType: "module", type: "Program" } as never);
9
+ * void seeds;
10
+ * ```
11
+ */
12
+ function collectSeeds(program) {
13
+ if (!Array.isArray(program.body)) {
14
+ return [];
15
+ }
16
+ return program.body.flatMap((statement) => {
17
+ const expression = getMockCallExpression(statement);
18
+ if (expression === void 0) {
19
+ return [];
20
+ }
21
+ const callArguments = getMockCallArguments(expression);
22
+ if (callArguments === void 0) {
23
+ return [];
24
+ }
25
+ const seed = createSeed(statement, callArguments[0], callArguments[1]);
26
+ return seed === void 0 ? [] : [seed];
27
+ });
28
+ }
29
+ /**
30
+ * Creates seed data from validated call arguments.
31
+ * @param mockStatement Matched `vi.mock` statement.
32
+ * @param specifierExpression First argument expression.
33
+ * @param factoryExpression Factory callback expression.
34
+ * @returns Match seed when arguments are supported.
35
+ * @example
36
+ * ```typescript
37
+ * const seed = createSeed({ expression: { arguments: [], type: "CallExpression" }, type: "ExpressionStatement" } as never, { type: "Literal", value: "./x" } as never, { body: { properties: [], type: "ObjectExpression" }, type: "ArrowFunctionExpression" } as never);
38
+ * void seed;
39
+ * ```
40
+ */
41
+ function createSeed(mockStatement, specifierExpression, factoryExpression) {
42
+ if (!hasRange(specifierExpression)) {
43
+ return void 0;
44
+ }
45
+ const moduleSpecifier = getModuleSpecifier(specifierExpression);
46
+ const factoryObject = getFactoryReturnObject(factoryExpression);
47
+ return moduleSpecifier === void 0 || factoryObject === void 0
48
+ ? void 0
49
+ : { factoryObject, mockStatement, moduleSpecifier, specifierExpression };
50
+ }
51
+ /**
52
+ * Returns mock call arguments when both arguments are supported expressions.
53
+ * @param expression Call expression node.
54
+ * @returns First and second call arguments.
55
+ * @example
56
+ * ```typescript
57
+ * const args = getMockCallArguments({ arguments: [], type: "CallExpression" } as never);
58
+ * void args;
59
+ * ```
60
+ */
61
+ function getMockCallArguments(expression) {
62
+ const [firstArgument, secondArgument] = expression.arguments;
63
+ if (firstArgument === void 0 || secondArgument === void 0) {
64
+ return void 0;
65
+ }
66
+ if (firstArgument.type === "SpreadElement" ||
67
+ secondArgument.type === "SpreadElement") {
68
+ return void 0;
69
+ }
70
+ return [firstArgument, secondArgument];
71
+ }
72
+ /**
73
+ * Returns the call expression for a supported mock statement.
74
+ * @param statement Candidate statement.
75
+ * @returns Supported mock call expression when present.
76
+ * @example
77
+ * ```typescript
78
+ * const expression = getMockCallExpression({ type: "EmptyStatement" } as never);
79
+ * void expression;
80
+ * ```
81
+ */
82
+ function getMockCallExpression(statement) {
83
+ if (statement.type !== "ExpressionStatement") {
84
+ return void 0;
85
+ }
86
+ const { expression } = statement;
87
+ if (expression.type !== "CallExpression" ||
88
+ expression.callee.type !== "MemberExpression") {
89
+ return void 0;
90
+ }
91
+ const { object, property } = expression.callee;
92
+ return object.type === "Identifier" &&
93
+ object.name === "vi" &&
94
+ property.type === "Identifier" &&
95
+ (property.name === "mock" || property.name === "doMock")
96
+ ? expression
97
+ : void 0;
98
+ }
99
+ export { collectSeeds };
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2gtc2VlZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3RpbmcvcHJlZmVyLXZpLW1vY2tlZC1pbXBvcnQvbWF0Y2gtc2VlZHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUNMLHNCQUFzQixFQUN0QixrQkFBa0IsRUFDbEIsUUFBUSxHQUNULE1BQU0saUJBQWlCLENBQUM7QUFvQnpCOzs7Ozs7Ozs7R0FTRztBQUNILFNBQVMsWUFBWSxDQUFDLE9BQXVCO0lBQzNDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ2pDLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtRQUN4QyxNQUFNLFVBQVUsR0FBRyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVwRCxJQUFJLFVBQVUsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzFCLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUVELE1BQU0sYUFBYSxHQUFHLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXZELElBQUksYUFBYSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDN0IsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBRUQsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUNyQixTQUF1QyxFQUN2QyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQ2hCLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FDakIsQ0FBQztRQUVGLE9BQU8sSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxTQUFTLFVBQVUsQ0FDakIsYUFBeUMsRUFDekMsbUJBQXNDLEVBQ3RDLGlCQUFvQztJQUVwQyxJQUFJLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsQ0FBQztRQUNuQyxPQUFPLEtBQUssQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLGVBQWUsR0FBRyxrQkFBa0IsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ2hFLE1BQU0sYUFBYSxHQUFHLHNCQUFzQixDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDaEUsT0FBTyxlQUFlLEtBQUssS0FBSyxDQUFDLElBQUksYUFBYSxLQUFLLEtBQUssQ0FBQztRQUMzRCxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ1IsQ0FBQyxDQUFDLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQztBQUM3RSxDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsU0FBUyxvQkFBb0IsQ0FDM0IsVUFBaUM7SUFFakMsTUFBTSxDQUFDLGFBQWEsRUFBRSxjQUFjLENBQUMsR0FBRyxVQUFVLENBQUMsU0FBUyxDQUFDO0lBQzdELElBQUksYUFBYSxLQUFLLEtBQUssQ0FBQyxJQUFJLGNBQWMsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzFELE9BQU8sS0FBSyxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUNELElBQ0UsYUFBYSxDQUFDLElBQUksS0FBSyxlQUFlO1FBQ3RDLGNBQWMsQ0FBQyxJQUFJLEtBQUssZUFBZSxFQUN2QyxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRUQsT0FBTyxDQUFDLGFBQWEsRUFBRSxjQUFjLENBQUMsQ0FBQztBQUN6QyxDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsU0FBUyxxQkFBcUIsQ0FDNUIsU0FBeUM7SUFFekMsSUFBSSxTQUFTLENBQUMsSUFBSSxLQUFLLHFCQUFxQixFQUFFLENBQUM7UUFDN0MsT0FBTyxLQUFLLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLFNBQVMsQ0FBQztJQUNqQyxJQUNFLFVBQVUsQ0FBQyxJQUFJLEtBQUssZ0JBQWdCO1FBQ3BDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLGtCQUFrQixFQUM3QyxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO0lBQy9DLE9BQU8sTUFBTSxDQUFDLElBQUksS0FBSyxZQUFZO1FBQ2pDLE1BQU0sQ0FBQyxJQUFJLEtBQUssSUFBSTtRQUNwQixRQUFRLENBQUMsSUFBSSxLQUFLLFlBQVk7UUFDOUIsQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLE1BQU0sSUFBSSxRQUFRLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQztRQUN4RCxDQUFDLENBQUMsVUFBVTtRQUNaLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNiLENBQUM7QUFHRCxPQUFPLEVBQUUsWUFBWSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSAqIGFzIEVTVHJlZSBmcm9tIFwiZXN0cmVlXCI7XG5cbmltcG9ydCB7XG4gIGdldEZhY3RvcnlSZXR1cm5PYmplY3QsXG4gIGdldE1vZHVsZVNwZWNpZmllcixcbiAgaGFzUmFuZ2UsXG59IGZyb20gXCIuL21hdGNoLWhlbHBlcnNcIjtcblxuLyoqIFR5cGUgZGVmaW5pdGlvbiBmb3IgcnVsZSBkYXRhLiAqL1xuaW50ZXJmYWNlIE1hdGNoU2VlZCB7XG4gIC8qKiBSZXR1cm5lZCBvYmplY3QgZXhwcmVzc2lvbiBmcm9tIHRoZSBtb2NrIGZhY3RvcnkuICovXG4gIGZhY3RvcnlPYmplY3Q6IEVTVHJlZS5PYmplY3RFeHByZXNzaW9uO1xuXG4gIC8qKiBFeHByZXNzaW9uIHN0YXRlbWVudCBjb250YWluaW5nIGB2aS5tb2NrYCBvciBgdmkuZG9Nb2NrYC4gKi9cbiAgbW9ja1N0YXRlbWVudDogRVNUcmVlLkV4cHJlc3Npb25TdGF0ZW1lbnQ7XG5cbiAgLyoqIE1vZHVsZSBwYXRoIHN0cmluZyBleHRyYWN0ZWQgZnJvbSB0aGUgZmlyc3QgbW9jayBhcmd1bWVudC4gKi9cbiAgbW9kdWxlU3BlY2lmaWVyOiBzdHJpbmc7XG5cbiAgLyoqIE9yaWdpbmFsIGZpcnN0IGFyZ3VtZW50IG5vZGUsIGluY2x1ZGluZyBgcmFuZ2VgLCBmb3IgZml4ZXIgdXNlLiAqL1xuICBzcGVjaWZpZXJFeHByZXNzaW9uOiBFU1RyZWUuRXhwcmVzc2lvbiAmIHtcbiAgICAvKiogU291cmNlIHJhbmdlIGZvciB0aGUgbW9jayBzcGVjaWZpZXIgZXhwcmVzc2lvbi4gKi9cbiAgICByYW5nZTogW251bWJlciwgbnVtYmVyXTtcbiAgfTtcbn1cblxuLyoqXG4gKiBDb2xsZWN0cyBzZWVkIGRhdGEgZm9yIGV2ZXJ5IHN1cHBvcnRlZCBtb2NrIHN0YXRlbWVudCBpbiB0aGUgZmlsZS5cbiAqIEBwYXJhbSBwcm9ncmFtIFByb2dyYW0gbm9kZS5cbiAqIEByZXR1cm5zIE1hdGNoIHNlZWRzLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHNlZWRzID0gY29sbGVjdFNlZWRzKHsgYm9keTogW10sIHNvdXJjZVR5cGU6IFwibW9kdWxlXCIsIHR5cGU6IFwiUHJvZ3JhbVwiIH0gYXMgbmV2ZXIpO1xuICogdm9pZCBzZWVkcztcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBjb2xsZWN0U2VlZHMocHJvZ3JhbTogRVNUcmVlLlByb2dyYW0pOiBNYXRjaFNlZWRbXSB7XG4gIGlmICghQXJyYXkuaXNBcnJheShwcm9ncmFtLmJvZHkpKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgcmV0dXJuIHByb2dyYW0uYm9keS5mbGF0TWFwKChzdGF0ZW1lbnQpID0+IHtcbiAgICBjb25zdCBleHByZXNzaW9uID0gZ2V0TW9ja0NhbGxFeHByZXNzaW9uKHN0YXRlbWVudCk7XG5cbiAgICBpZiAoZXhwcmVzc2lvbiA9PT0gdm9pZCAwKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgY29uc3QgY2FsbEFyZ3VtZW50cyA9IGdldE1vY2tDYWxsQXJndW1lbnRzKGV4cHJlc3Npb24pO1xuXG4gICAgaWYgKGNhbGxBcmd1bWVudHMgPT09IHZvaWQgMCkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0IHNlZWQgPSBjcmVhdGVTZWVkKFxuICAgICAgc3RhdGVtZW50IGFzIEVTVHJlZS5FeHByZXNzaW9uU3RhdGVtZW50LFxuICAgICAgY2FsbEFyZ3VtZW50c1swXSxcbiAgICAgIGNhbGxBcmd1bWVudHNbMV0sXG4gICAgKTtcblxuICAgIHJldHVybiBzZWVkID09PSB2b2lkIDAgPyBbXSA6IFtzZWVkXTtcbiAgfSk7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBzZWVkIGRhdGEgZnJvbSB2YWxpZGF0ZWQgY2FsbCBhcmd1bWVudHMuXG4gKiBAcGFyYW0gbW9ja1N0YXRlbWVudCBNYXRjaGVkIGB2aS5tb2NrYCBzdGF0ZW1lbnQuXG4gKiBAcGFyYW0gc3BlY2lmaWVyRXhwcmVzc2lvbiBGaXJzdCBhcmd1bWVudCBleHByZXNzaW9uLlxuICogQHBhcmFtIGZhY3RvcnlFeHByZXNzaW9uIEZhY3RvcnkgY2FsbGJhY2sgZXhwcmVzc2lvbi5cbiAqIEByZXR1cm5zIE1hdGNoIHNlZWQgd2hlbiBhcmd1bWVudHMgYXJlIHN1cHBvcnRlZC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBzZWVkID0gY3JlYXRlU2VlZCh7IGV4cHJlc3Npb246IHsgYXJndW1lbnRzOiBbXSwgdHlwZTogXCJDYWxsRXhwcmVzc2lvblwiIH0sIHR5cGU6IFwiRXhwcmVzc2lvblN0YXRlbWVudFwiIH0gYXMgbmV2ZXIsIHsgdHlwZTogXCJMaXRlcmFsXCIsIHZhbHVlOiBcIi4veFwiIH0gYXMgbmV2ZXIsIHsgYm9keTogeyBwcm9wZXJ0aWVzOiBbXSwgdHlwZTogXCJPYmplY3RFeHByZXNzaW9uXCIgfSwgdHlwZTogXCJBcnJvd0Z1bmN0aW9uRXhwcmVzc2lvblwiIH0gYXMgbmV2ZXIpO1xuICogdm9pZCBzZWVkO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZVNlZWQoXG4gIG1vY2tTdGF0ZW1lbnQ6IEVTVHJlZS5FeHByZXNzaW9uU3RhdGVtZW50LFxuICBzcGVjaWZpZXJFeHByZXNzaW9uOiBFU1RyZWUuRXhwcmVzc2lvbixcbiAgZmFjdG9yeUV4cHJlc3Npb246IEVTVHJlZS5FeHByZXNzaW9uLFxuKTogTWF0Y2hTZWVkIHwgdW5kZWZpbmVkIHtcbiAgaWYgKCFoYXNSYW5nZShzcGVjaWZpZXJFeHByZXNzaW9uKSkge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cblxuICBjb25zdCBtb2R1bGVTcGVjaWZpZXIgPSBnZXRNb2R1bGVTcGVjaWZpZXIoc3BlY2lmaWVyRXhwcmVzc2lvbik7XG4gIGNvbnN0IGZhY3RvcnlPYmplY3QgPSBnZXRGYWN0b3J5UmV0dXJuT2JqZWN0KGZhY3RvcnlFeHByZXNzaW9uKTtcbiAgcmV0dXJuIG1vZHVsZVNwZWNpZmllciA9PT0gdm9pZCAwIHx8IGZhY3RvcnlPYmplY3QgPT09IHZvaWQgMFxuICAgID8gdm9pZCAwXG4gICAgOiB7IGZhY3RvcnlPYmplY3QsIG1vY2tTdGF0ZW1lbnQsIG1vZHVsZVNwZWNpZmllciwgc3BlY2lmaWVyRXhwcmVzc2lvbiB9O1xufVxuXG4vKipcbiAqIFJldHVybnMgbW9jayBjYWxsIGFyZ3VtZW50cyB3aGVuIGJvdGggYXJndW1lbnRzIGFyZSBzdXBwb3J0ZWQgZXhwcmVzc2lvbnMuXG4gKiBAcGFyYW0gZXhwcmVzc2lvbiBDYWxsIGV4cHJlc3Npb24gbm9kZS5cbiAqIEByZXR1cm5zIEZpcnN0IGFuZCBzZWNvbmQgY2FsbCBhcmd1bWVudHMuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgYXJncyA9IGdldE1vY2tDYWxsQXJndW1lbnRzKHsgYXJndW1lbnRzOiBbXSwgdHlwZTogXCJDYWxsRXhwcmVzc2lvblwiIH0gYXMgbmV2ZXIpO1xuICogdm9pZCBhcmdzO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGdldE1vY2tDYWxsQXJndW1lbnRzKFxuICBleHByZXNzaW9uOiBFU1RyZWUuQ2FsbEV4cHJlc3Npb24sXG4pOiBbRVNUcmVlLkV4cHJlc3Npb24sIEVTVHJlZS5FeHByZXNzaW9uXSB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IFtmaXJzdEFyZ3VtZW50LCBzZWNvbmRBcmd1bWVudF0gPSBleHByZXNzaW9uLmFyZ3VtZW50cztcbiAgaWYgKGZpcnN0QXJndW1lbnQgPT09IHZvaWQgMCB8fCBzZWNvbmRBcmd1bWVudCA9PT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuICBpZiAoXG4gICAgZmlyc3RBcmd1bWVudC50eXBlID09PSBcIlNwcmVhZEVsZW1lbnRcIiB8fFxuICAgIHNlY29uZEFyZ3VtZW50LnR5cGUgPT09IFwiU3ByZWFkRWxlbWVudFwiXG4gICkge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cblxuICByZXR1cm4gW2ZpcnN0QXJndW1lbnQsIHNlY29uZEFyZ3VtZW50XTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBjYWxsIGV4cHJlc3Npb24gZm9yIGEgc3VwcG9ydGVkIG1vY2sgc3RhdGVtZW50LlxuICogQHBhcmFtIHN0YXRlbWVudCBDYW5kaWRhdGUgc3RhdGVtZW50LlxuICogQHJldHVybnMgU3VwcG9ydGVkIG1vY2sgY2FsbCBleHByZXNzaW9uIHdoZW4gcHJlc2VudC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBleHByZXNzaW9uID0gZ2V0TW9ja0NhbGxFeHByZXNzaW9uKHsgdHlwZTogXCJFbXB0eVN0YXRlbWVudFwiIH0gYXMgbmV2ZXIpO1xuICogdm9pZCBleHByZXNzaW9uO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGdldE1vY2tDYWxsRXhwcmVzc2lvbihcbiAgc3RhdGVtZW50OiBFU1RyZWUuUHJvZ3JhbVtcImJvZHlcIl1bbnVtYmVyXSxcbik6IEVTVHJlZS5DYWxsRXhwcmVzc2lvbiB8IHVuZGVmaW5lZCB7XG4gIGlmIChzdGF0ZW1lbnQudHlwZSAhPT0gXCJFeHByZXNzaW9uU3RhdGVtZW50XCIpIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG5cbiAgY29uc3QgeyBleHByZXNzaW9uIH0gPSBzdGF0ZW1lbnQ7XG4gIGlmIChcbiAgICBleHByZXNzaW9uLnR5cGUgIT09IFwiQ2FsbEV4cHJlc3Npb25cIiB8fFxuICAgIGV4cHJlc3Npb24uY2FsbGVlLnR5cGUgIT09IFwiTWVtYmVyRXhwcmVzc2lvblwiXG4gICkge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cblxuICBjb25zdCB7IG9iamVjdCwgcHJvcGVydHkgfSA9IGV4cHJlc3Npb24uY2FsbGVlO1xuICByZXR1cm4gb2JqZWN0LnR5cGUgPT09IFwiSWRlbnRpZmllclwiICYmXG4gICAgb2JqZWN0Lm5hbWUgPT09IFwidmlcIiAmJlxuICAgIHByb3BlcnR5LnR5cGUgPT09IFwiSWRlbnRpZmllclwiICYmXG4gICAgKHByb3BlcnR5Lm5hbWUgPT09IFwibW9ja1wiIHx8IHByb3BlcnR5Lm5hbWUgPT09IFwiZG9Nb2NrXCIpXG4gICAgPyBleHByZXNzaW9uXG4gICAgOiB2b2lkIDA7XG59XG5cbmV4cG9ydCB0eXBlIHsgTWF0Y2hTZWVkIH07XG5leHBvcnQgeyBjb2xsZWN0U2VlZHMgfTtcbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"match.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/prefer-vi-mocked-import/match.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAGnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAkGzC;;;;;;;;;GASG;AACH,iBAAS,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,GAAG,SAAS,EAAE,CAM9D;AA0VD,OAAO,EAAE,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"match.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/prefer-vi-mocked-import/match.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAInC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AA6EzC;;;;;;;;;GASG;AACH,iBAAS,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,GAAG,SAAS,EAAE,CAM9D;AAoCD,OAAO,EAAE,cAAc,EAAE,CAAC"}