@codeperfect/eslint-plugin 2.3.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 (151) hide show
  1. package/dist/application/index.d.ts +1 -1
  2. package/dist/application/index.d.ts.map +1 -1
  3. package/dist/application/index.js +2 -2
  4. package/dist/codeperfect-eslint-plugin-1.0.0.tgz +0 -0
  5. package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-options.d.ts.map +1 -1
  6. package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-options.js +4 -2
  7. package/dist/domain/architecture/consistent-barrel-files/exports-only-rule.d.ts.map +1 -1
  8. package/dist/domain/architecture/consistent-barrel-files/exports-only-rule.js +2 -4
  9. package/dist/domain/architecture/consistent-barrel-files/no-import-export-aliases-rule.d.ts.map +1 -1
  10. package/dist/domain/architecture/consistent-barrel-files/no-import-export-aliases-rule.js +4 -134
  11. package/dist/domain/architecture/consistent-barrel-files/no-import-export-aliases-utilities.d.ts +14 -0
  12. package/dist/domain/architecture/consistent-barrel-files/no-import-export-aliases-utilities.d.ts.map +1 -0
  13. package/dist/domain/architecture/consistent-barrel-files/no-import-export-aliases-utilities.js +154 -0
  14. package/dist/domain/architecture/consistent-barrel-files/no-import-export-extensions-rule.d.ts.map +1 -1
  15. package/dist/domain/architecture/consistent-barrel-files/no-import-export-extensions-rule.js +10 -12
  16. package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.d.ts.map +1 -1
  17. package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.js +4 -11
  18. package/dist/domain/architecture/no-unused-exports/no-unused-exports-declaration-utilities.d.ts +14 -0
  19. package/dist/domain/architecture/no-unused-exports/no-unused-exports-declaration-utilities.d.ts.map +1 -0
  20. package/dist/domain/architecture/no-unused-exports/no-unused-exports-declaration-utilities.js +187 -0
  21. package/dist/domain/architecture/no-unused-exports/no-unused-exports-identifier-utilities.d.ts +26 -0
  22. package/dist/domain/architecture/no-unused-exports/no-unused-exports-identifier-utilities.d.ts.map +1 -0
  23. package/dist/domain/architecture/no-unused-exports/no-unused-exports-identifier-utilities.js +95 -0
  24. package/dist/domain/architecture/no-unused-exports/no-unused-exports-pattern-utilities.d.ts +32 -0
  25. package/dist/domain/architecture/no-unused-exports/no-unused-exports-pattern-utilities.d.ts.map +1 -0
  26. package/dist/domain/architecture/no-unused-exports/no-unused-exports-pattern-utilities.js +78 -0
  27. package/dist/domain/architecture/no-unused-exports/no-unused-exports-public-api-usage-utilities.d.ts +18 -0
  28. package/dist/domain/architecture/no-unused-exports/no-unused-exports-public-api-usage-utilities.d.ts.map +1 -0
  29. package/dist/domain/architecture/no-unused-exports/no-unused-exports-public-api-usage-utilities.js +45 -0
  30. package/dist/domain/architecture/no-unused-exports/no-unused-exports-record-utilities.d.ts +34 -0
  31. package/dist/domain/architecture/no-unused-exports/no-unused-exports-record-utilities.d.ts.map +1 -0
  32. package/dist/domain/architecture/no-unused-exports/no-unused-exports-record-utilities.js +44 -0
  33. package/dist/domain/architecture/no-unused-exports/no-unused-exports-symbol-utilities.d.ts +59 -0
  34. package/dist/domain/architecture/no-unused-exports/no-unused-exports-symbol-utilities.d.ts.map +1 -0
  35. package/dist/domain/architecture/no-unused-exports/no-unused-exports-symbol-utilities.js +133 -0
  36. package/dist/domain/architecture/no-unused-exports/no-unused-exports-usage-utilities.d.ts +28 -0
  37. package/dist/domain/architecture/no-unused-exports/no-unused-exports-usage-utilities.d.ts.map +1 -0
  38. package/dist/domain/architecture/no-unused-exports/no-unused-exports-usage-utilities.js +106 -0
  39. package/dist/domain/architecture/no-unused-exports/no-unused-exports-utilities.d.ts +21 -21
  40. package/dist/domain/architecture/no-unused-exports/no-unused-exports-utilities.d.ts.map +1 -1
  41. package/dist/domain/architecture/no-unused-exports/no-unused-exports-utilities.js +24 -587
  42. package/dist/domain/architecture/no-unused-exports/rule.js +3 -3
  43. package/dist/domain/core/no-multiple-declarators/rule-utilities.d.ts +58 -0
  44. package/dist/domain/core/no-multiple-declarators/rule-utilities.d.ts.map +1 -0
  45. package/dist/domain/core/no-multiple-declarators/rule-utilities.js +204 -0
  46. package/dist/domain/core/no-multiple-declarators/rule.d.ts.map +1 -1
  47. package/dist/domain/core/no-multiple-declarators/rule.js +9 -211
  48. package/dist/domain/core/no-multiple-declarators/types.js +2 -2
  49. package/dist/domain/core/prefer-interface-types/rule-utilities.d.ts +57 -0
  50. package/dist/domain/core/prefer-interface-types/rule-utilities.d.ts.map +1 -0
  51. package/dist/domain/core/prefer-interface-types/rule-utilities.js +105 -0
  52. package/dist/domain/core/prefer-interface-types/rule.d.ts.map +1 -1
  53. package/dist/domain/core/prefer-interface-types/rule.js +2 -104
  54. package/dist/domain/docs/no-interface-member-docs/comment-removal-ranges.d.ts +25 -0
  55. package/dist/domain/docs/no-interface-member-docs/comment-removal-ranges.d.ts.map +1 -0
  56. package/dist/domain/docs/no-interface-member-docs/comment-removal-ranges.js +64 -0
  57. package/dist/domain/docs/no-interface-member-docs/comment-utilities.d.ts +2 -24
  58. package/dist/domain/docs/no-interface-member-docs/comment-utilities.d.ts.map +1 -1
  59. package/dist/domain/docs/no-interface-member-docs/comment-utilities.js +3 -65
  60. package/dist/domain/docs/no-interface-member-docs/parameter-tags.js +2 -2
  61. package/dist/domain/docs/no-interface-member-docs/parameter-utilities.js +2 -2
  62. package/dist/domain/docs/no-interface-member-docs/rule.d.ts.map +1 -1
  63. package/dist/domain/docs/no-interface-member-docs/rule.js +3 -2
  64. package/dist/domain/docs/require-example-language/examples-collect.d.ts +15 -0
  65. package/dist/domain/docs/require-example-language/examples-collect.d.ts.map +1 -0
  66. package/dist/domain/docs/require-example-language/examples-collect.js +113 -0
  67. package/dist/domain/docs/require-example-language/examples.d.ts +24 -13
  68. package/dist/domain/docs/require-example-language/examples.d.ts.map +1 -1
  69. package/dist/domain/docs/require-example-language/examples.js +2 -111
  70. package/dist/domain/docs/require-example-language/fixes.js +4 -4
  71. package/dist/domain/docs/require-example-language/rule.d.ts.map +1 -1
  72. package/dist/domain/docs/require-example-language/rule.js +9 -8
  73. package/dist/domain/docs/require-example-language/types.d.ts.map +1 -1
  74. package/dist/domain/docs/require-example-language/types.js +1 -1
  75. package/dist/domain/index.d.ts +1 -1
  76. package/dist/domain/index.d.ts.map +1 -1
  77. package/dist/domain/index.js +2 -2
  78. package/dist/domain/testing/aaa/analyzer.analysis.helpers.d.ts.map +1 -1
  79. package/dist/domain/testing/aaa/analyzer.analysis.helpers.js +8 -8
  80. package/dist/domain/testing/aaa/analyzer.assertions.helpers.d.ts.map +1 -1
  81. package/dist/domain/testing/aaa/analyzer.assertions.helpers.js +10 -9
  82. package/dist/domain/testing/aaa/analyzer.assertions.operands.d.ts.map +1 -1
  83. package/dist/domain/testing/aaa/analyzer.assertions.operands.js +2 -5
  84. package/dist/domain/testing/aaa/analyzer.classification.helpers.js +14 -16
  85. package/dist/domain/testing/aaa/analyzer.classification.traversal.js +6 -4
  86. package/dist/domain/testing/aaa/analyzer.super.d.ts.map +1 -1
  87. package/dist/domain/testing/aaa/analyzer.super.js +10 -8
  88. package/dist/domain/testing/assert-actual-expected-names/rule.d.ts.map +1 -1
  89. package/dist/domain/testing/assert-actual-expected-names/rule.js +21 -23
  90. package/dist/domain/testing/enforce-aaa-phase-purity/pattern-identifiers.d.ts.map +1 -1
  91. package/dist/domain/testing/enforce-aaa-phase-purity/pattern-identifiers.js +1 -1
  92. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.d.ts.map +1 -1
  93. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.js +2 -160
  94. package/dist/domain/testing/enforce-aaa-phase-purity/statement-purity-reporters.d.ts +41 -0
  95. package/dist/domain/testing/enforce-aaa-phase-purity/statement-purity-reporters.d.ts.map +1 -0
  96. package/dist/domain/testing/enforce-aaa-phase-purity/statement-purity-reporters.js +161 -0
  97. package/dist/domain/testing/enforce-aaa-structure/missing-section-fixes.d.ts.map +1 -1
  98. package/dist/domain/testing/enforce-aaa-structure/missing-section-fixes.js +2 -2
  99. package/dist/domain/testing/enforce-aaa-structure/rule-section-reporting.d.ts +81 -0
  100. package/dist/domain/testing/enforce-aaa-structure/rule-section-reporting.d.ts.map +1 -0
  101. package/dist/domain/testing/enforce-aaa-structure/rule-section-reporting.js +181 -0
  102. package/dist/domain/testing/enforce-aaa-structure/rule.d.ts.map +1 -1
  103. package/dist/domain/testing/enforce-aaa-structure/rule.js +28 -217
  104. package/dist/domain/testing/index.d.ts +1 -0
  105. package/dist/domain/testing/index.d.ts.map +1 -1
  106. package/dist/domain/testing/index.js +2 -1
  107. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/index.d.ts +2 -0
  108. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/index.d.ts.map +1 -0
  109. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/index.js +2 -0
  110. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-detection.d.ts +29 -0
  111. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-detection.d.ts.map +1 -0
  112. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-detection.js +200 -0
  113. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-names.d.ts +12 -0
  114. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-names.d.ts.map +1 -0
  115. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-names.js +151 -0
  116. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-reporting.d.ts +16 -0
  117. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-reporting.d.ts.map +1 -0
  118. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-reporting.js +109 -0
  119. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule.d.ts +5 -0
  120. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule.d.ts.map +1 -0
  121. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule.js +35 -0
  122. package/dist/domain/testing/prefer-vi-mocked-import/fix-import-updates.d.ts.map +1 -1
  123. package/dist/domain/testing/prefer-vi-mocked-import/fix-import-updates.js +7 -4
  124. package/dist/domain/testing/prefer-vi-mocked-import/fix-imports.d.ts.map +1 -1
  125. package/dist/domain/testing/prefer-vi-mocked-import/fix-imports.js +7 -4
  126. package/dist/domain/testing/prefer-vi-mocked-import/fix.js +2 -2
  127. package/dist/domain/testing/prefer-vi-mocked-import/match-collisions.d.ts +18 -0
  128. package/dist/domain/testing/prefer-vi-mocked-import/match-collisions.d.ts.map +1 -0
  129. package/dist/domain/testing/prefer-vi-mocked-import/match-collisions.js +162 -0
  130. package/dist/domain/testing/prefer-vi-mocked-import/match-rewrites.d.ts.map +1 -1
  131. package/dist/domain/testing/prefer-vi-mocked-import/match-rewrites.js +5 -4
  132. package/dist/domain/testing/prefer-vi-mocked-import/match-seeds.d.ts +29 -0
  133. package/dist/domain/testing/prefer-vi-mocked-import/match-seeds.d.ts.map +1 -0
  134. package/dist/domain/testing/prefer-vi-mocked-import/match-seeds.js +100 -0
  135. package/dist/domain/testing/prefer-vi-mocked-import/match.d.ts.map +1 -1
  136. package/dist/domain/testing/prefer-vi-mocked-import/match.js +5 -246
  137. package/dist/domain/testing/prefer-vi-mocked-import/rule.d.ts.map +1 -1
  138. package/dist/domain/testing/prefer-vi-mocked-import/rule.js +18 -20
  139. package/dist/domain/testing/require-act-result-capture/rule.d.ts.map +1 -1
  140. package/dist/domain/testing/require-act-result-capture/rule.js +47 -21
  141. package/dist/domain/testing/require-test-companion/rule.d.ts.map +1 -1
  142. package/dist/domain/testing/require-test-companion/rule.js +2 -4
  143. package/dist/domain/testing/single-act-statement/rule.d.ts.map +1 -1
  144. package/dist/domain/testing/single-act-statement/rule.js +20 -22
  145. package/dist/infrastructure/codeperfect-plugin.d.ts +2 -0
  146. package/dist/infrastructure/codeperfect-plugin.d.ts.map +1 -1
  147. package/dist/infrastructure/codeperfect-plugin.js +3 -2
  148. package/dist/infrastructure/presets.d.ts.map +1 -1
  149. package/dist/infrastructure/presets.js +3 -1
  150. package/package.json +58 -58
  151. package/dist/.tsbuildinfo +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/no-unsafe-vitest-mock-factory-cast/rule.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAKnC,4DAA4D;AAC5D,QAAA,MAAM,iCAAiC,EAAE,IAAI,CAAC,UAiC7C,CAAC;AAEF,OAAO,EAAE,iCAAiC,EAAE,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { getMockFactoryMatch } from "./rule-detection.js";
2
+ import { buildFixes } from "./rule-reporting.js";
3
+ /** Disallows casted `vi.mock` and `vi.doMock` factories. */
4
+ const noUnsafeVitestMockFactoryCastRule = {
5
+ create: (context) => ({
6
+ CallExpression(node) {
7
+ const match = getMockFactoryMatch(node);
8
+ if (match === void 0) {
9
+ return;
10
+ }
11
+ context.report({
12
+ fix: match.canAutofix
13
+ ? (fixer) => buildFixes(context, fixer, match)
14
+ : void 0,
15
+ messageId: "noUnsafeVitestMockFactoryCast",
16
+ node: match.node,
17
+ });
18
+ },
19
+ }),
20
+ meta: {
21
+ docs: {
22
+ description: "Disallow casted vi.mock and vi.doMock factories and prefer createMockProxy(...) for partial module mocks.",
23
+ recommended: true,
24
+ url: "https://github.com/parloti/eslint-plugin/blob/main/docs/rules/no-unsafe-vitest-mock-factory-cast.md",
25
+ },
26
+ fixable: "code",
27
+ messages: {
28
+ noUnsafeVitestMockFactoryCast: "Avoid casting vi.mock/vi.doMock factory results; use createMockProxy(...) with a type-only module import instead.",
29
+ },
30
+ schema: [],
31
+ type: "problem",
32
+ },
33
+ };
34
+ export { noUnsafeVitestMockFactoryCastRule };
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vdGVzdGluZy9uby11bnNhZmUtdml0ZXN0LW1vY2stZmFjdG9yeS1jYXN0L3J1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTlDLDREQUE0RDtBQUM1RCxNQUFNLGlDQUFpQyxHQUFvQjtJQUN6RCxNQUFNLEVBQUUsQ0FBQyxPQUF5QixFQUFxQixFQUFFLENBQ3ZELENBQUM7UUFDQyxjQUFjLENBQUMsSUFBSTtZQUNqQixNQUFNLEtBQUssR0FBRyxtQkFBbUIsQ0FBQyxJQUErQixDQUFDLENBQUM7WUFDbkUsSUFBSSxLQUFLLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDckIsT0FBTztZQUNULENBQUM7WUFFRCxPQUFPLENBQUMsTUFBTSxDQUFDO2dCQUNiLEdBQUcsRUFBRSxLQUFLLENBQUMsVUFBVTtvQkFDbkIsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFjLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUM7b0JBQzFELENBQUMsQ0FBQyxLQUFLLENBQUM7Z0JBQ1YsU0FBUyxFQUFFLCtCQUErQjtnQkFDMUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO2FBQ2pCLENBQUMsQ0FBQztRQUNMLENBQUM7S0FDRixDQUE2QjtJQUNoQyxJQUFJLEVBQUU7UUFDSixJQUFJLEVBQUU7WUFDSixXQUFXLEVBQ1QsMkdBQTJHO1lBQzdHLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLEdBQUcsRUFBRSxxR0FBcUc7U0FDM0c7UUFDRCxPQUFPLEVBQUUsTUFBTTtRQUNmLFFBQVEsRUFBRTtZQUNSLDZCQUE2QixFQUMzQixtSEFBbUg7U0FDdEg7UUFDRCxNQUFNLEVBQUUsRUFBRTtRQUNWLElBQUksRUFBRSxTQUFTO0tBQ2hCO0NBQ0YsQ0FBQztBQUVGLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBUU0VTVHJlZSB9IGZyb20gXCJAdHlwZXNjcmlwdC1lc2xpbnQvdXRpbHNcIjtcbmltcG9ydCB0eXBlIHsgUnVsZSB9IGZyb20gXCJlc2xpbnRcIjtcblxuaW1wb3J0IHsgZ2V0TW9ja0ZhY3RvcnlNYXRjaCB9IGZyb20gXCIuL3J1bGUtZGV0ZWN0aW9uXCI7XG5pbXBvcnQgeyBidWlsZEZpeGVzIH0gZnJvbSBcIi4vcnVsZS1yZXBvcnRpbmdcIjtcblxuLyoqIERpc2FsbG93cyBjYXN0ZWQgYHZpLm1vY2tgIGFuZCBgdmkuZG9Nb2NrYCBmYWN0b3JpZXMuICovXG5jb25zdCBub1Vuc2FmZVZpdGVzdE1vY2tGYWN0b3J5Q2FzdFJ1bGU6IFJ1bGUuUnVsZU1vZHVsZSA9IHtcbiAgY3JlYXRlOiAoY29udGV4dDogUnVsZS5SdWxlQ29udGV4dCk6IFJ1bGUuUnVsZUxpc3RlbmVyID0+XG4gICAgKHtcbiAgICAgIENhbGxFeHByZXNzaW9uKG5vZGUpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbWF0Y2ggPSBnZXRNb2NrRmFjdG9yeU1hdGNoKG5vZGUgYXMgVFNFU1RyZWUuQ2FsbEV4cHJlc3Npb24pO1xuICAgICAgICBpZiAobWF0Y2ggPT09IHZvaWQgMCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICBmaXg6IG1hdGNoLmNhbkF1dG9maXhcbiAgICAgICAgICAgID8gKGZpeGVyKTogUnVsZS5GaXhbXSA9PiBidWlsZEZpeGVzKGNvbnRleHQsIGZpeGVyLCBtYXRjaClcbiAgICAgICAgICAgIDogdm9pZCAwLFxuICAgICAgICAgIG1lc3NhZ2VJZDogXCJub1Vuc2FmZVZpdGVzdE1vY2tGYWN0b3J5Q2FzdFwiLFxuICAgICAgICAgIG5vZGU6IG1hdGNoLm5vZGUsXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9KSBzYXRpc2ZpZXMgUnVsZS5SdWxlTGlzdGVuZXIsXG4gIG1ldGE6IHtcbiAgICBkb2NzOiB7XG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgXCJEaXNhbGxvdyBjYXN0ZWQgdmkubW9jayBhbmQgdmkuZG9Nb2NrIGZhY3RvcmllcyBhbmQgcHJlZmVyIGNyZWF0ZU1vY2tQcm94eSguLi4pIGZvciBwYXJ0aWFsIG1vZHVsZSBtb2Nrcy5cIixcbiAgICAgIHJlY29tbWVuZGVkOiB0cnVlLFxuICAgICAgdXJsOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9wYXJsb3RpL2VzbGludC1wbHVnaW4vYmxvYi9tYWluL2RvY3MvcnVsZXMvbm8tdW5zYWZlLXZpdGVzdC1tb2NrLWZhY3RvcnktY2FzdC5tZFwiLFxuICAgIH0sXG4gICAgZml4YWJsZTogXCJjb2RlXCIsXG4gICAgbWVzc2FnZXM6IHtcbiAgICAgIG5vVW5zYWZlVml0ZXN0TW9ja0ZhY3RvcnlDYXN0OlxuICAgICAgICBcIkF2b2lkIGNhc3RpbmcgdmkubW9jay92aS5kb01vY2sgZmFjdG9yeSByZXN1bHRzOyB1c2UgY3JlYXRlTW9ja1Byb3h5KC4uLikgd2l0aCBhIHR5cGUtb25seSBtb2R1bGUgaW1wb3J0IGluc3RlYWQuXCIsXG4gICAgfSxcbiAgICBzY2hlbWE6IFtdLFxuICAgIHR5cGU6IFwicHJvYmxlbVwiLFxuICB9LFxufTtcblxuZXhwb3J0IHsgbm9VbnNhZmVWaXRlc3RNb2NrRmFjdG9yeUNhc3RSdWxlIH07XG4iXX0=
@@ -1 +1 @@
1
- {"version":3,"file":"fix-import-updates.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/prefer-vi-mocked-import/fix-import-updates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAInC,8DAA8D;AAC9D,UAAU,sBAAsB;IAC9B,oCAAoC;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,8CAA8C;IAC9C,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACnB,qDAAqD;IACrD,MAAM,CAAC,EAAE;QACP,0CAA0C;QAC1C,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,8CAA8C;QAC9C,oBAAoB,EAAE,MAAM,EAAE,CAAC;QAC/B,+BAA+B;QAC/B,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACzB,CAAC;CACH;AAED;;;;;;;;;;GAUG;AACH,iBAAS,wBAAwB,CAC/B,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,EAClD,KAAK,EAAE,IAAI,CAAC,SAAS,GACpB,IAAI,CAAC,GAAG,EAAE,CAMZ;AAoCD,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
1
+ {"version":3,"file":"fix-import-updates.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/prefer-vi-mocked-import/fix-import-updates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAInC,8DAA8D;AAC9D,UAAU,sBAAsB;IAC9B,oCAAoC;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,8CAA8C;IAC9C,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACnB,qDAAqD;IACrD,MAAM,CAAC,EAAE;QACP,0CAA0C;QAC1C,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,8CAA8C;QAC9C,oBAAoB,EAAE,MAAM,EAAE,CAAC;QAC/B,+BAA+B;QAC/B,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACzB,CAAC;CACH;AAED;;;;;;;;;;GAUG;AACH,iBAAS,wBAAwB,CAC/B,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,EAClD,KAAK,EAAE,IAAI,CAAC,SAAS,GACpB,IAAI,CAAC,GAAG,EAAE,CASZ;AAoCD,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
@@ -11,10 +11,13 @@ import { buildImportStatement } from "./fix-import-statements.js";
11
11
  * ```
12
12
  */
13
13
  function buildCombinedUpdateFixes(combinedPlans, fixer) {
14
- return [...combinedPlans.values()].flatMap((plan) => {
14
+ return combinedPlans
15
+ .values()
16
+ .flatMap((plan) => {
15
17
  const updateFix = toCombinedUpdateFix(plan, fixer);
16
18
  return updateFix === void 0 ? [] : [updateFix];
17
- });
19
+ })
20
+ .toArray();
18
21
  }
19
22
  /**
20
23
  * Builds a replacement fix for one combined update plan.
@@ -35,9 +38,9 @@ function toCombinedUpdateFix(plan, fixer) {
35
38
  const { defaultImportName, existingNamedImports, range } = update;
36
39
  const mergedNames = [
37
40
  ...new Set([...names, ...existingNamedImports]),
38
- ].toSorted();
41
+ ].toSorted((left, right) => (left === right ? 0 : left < right ? -1 : 1));
39
42
  const statementText = buildImportStatement(moduleSpecifier, defaultImportName, mergedNames);
40
43
  return fixer.replaceTextRange(range, statementText);
41
44
  }
42
45
  export { buildCombinedUpdateFixes };
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4LWltcG9ydC11cGRhdGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RvbWFpbi90ZXN0aW5nL3ByZWZlci12aS1tb2NrZWQtaW1wb3J0L2ZpeC1pbXBvcnQtdXBkYXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQW1CL0Q7Ozs7Ozs7Ozs7R0FVRztBQUNILFNBQVMsd0JBQXdCLENBQy9CLGFBQWtELEVBQ2xELEtBQXFCO0lBRXJCLE9BQU8sQ0FBQyxHQUFHLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ2xELE1BQU0sU0FBUyxHQUFHLG1CQUFtQixDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUVuRCxPQUFPLFNBQVMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2pELENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVEOzs7Ozs7Ozs7O0dBVUc7QUFDSCxTQUFTLG1CQUFtQixDQUMxQixJQUE0QixFQUM1QixLQUFxQjtJQUVyQixNQUFNLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUM7SUFFaEQsSUFBSSxNQUFNLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN0QixPQUFPLEtBQUssQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBQ2xFLE1BQU0sV0FBVyxHQUFHO1FBQ2xCLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLEtBQUssRUFBRSxHQUFHLG9CQUFvQixDQUFDLENBQUM7S0FDaEQsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNiLE1BQU0sYUFBYSxHQUFHLG9CQUFvQixDQUN4QyxlQUFlLEVBQ2YsaUJBQWlCLEVBQ2pCLFdBQVcsQ0FDWixDQUFDO0lBRUYsT0FBTyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0FBQ3RELENBQUM7QUFFRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUnVsZSB9IGZyb20gXCJlc2xpbnRcIjtcclxuXHJcbmltcG9ydCB7IGJ1aWxkSW1wb3J0U3RhdGVtZW50IH0gZnJvbSBcIi4vZml4LWltcG9ydC1zdGF0ZW1lbnRzXCI7XHJcblxyXG4vKiogQ29tYmluZWQgaW1wb3J0IHdvcmsgZm9yIG9uZSBtb2R1bGUgYWNyb3NzIGFsbCBtYXRjaGVzLiAqL1xyXG5pbnRlcmZhY2UgQ29tYmluZWRJbXBvcnRQbGFuTGlrZSB7XHJcbiAgLyoqIE1vZHVsZSBpbXBvcnRlZCBieSB0aGlzIHBsYW4uICovXHJcbiAgbW9kdWxlU3BlY2lmaWVyOiBzdHJpbmc7XHJcbiAgLyoqIE5hbWVkIGltcG9ydHMgcmVxdWlyZWQgZm9yIHRoaXMgbW9kdWxlLiAqL1xyXG4gIG5hbWVzOiBTZXQ8c3RyaW5nPjtcclxuICAvKiogRXhpc3RpbmcgaW1wb3J0IHJlcGxhY2VtZW50IHBsYW4gd2hlbiBwcmVzZW50LiAqL1xyXG4gIHVwZGF0ZT86IHtcclxuICAgIC8qKiBFeGlzdGluZyBkZWZhdWx0IGltcG9ydCBsb2NhbCBuYW1lLiAqL1xyXG4gICAgZGVmYXVsdEltcG9ydE5hbWU/OiBzdHJpbmc7XHJcbiAgICAvKiogRXhpc3RpbmcgbmFtZWQgaW1wb3J0cyBhbHJlYWR5IHByZXNlbnQuICovXHJcbiAgICBleGlzdGluZ05hbWVkSW1wb3J0czogc3RyaW5nW107XHJcbiAgICAvKiogSW1wb3J0IHJhbmdlIHRvIHJlcGxhY2UuICovXHJcbiAgICByYW5nZTogW251bWJlciwgbnVtYmVyXTtcclxuICB9O1xyXG59XHJcblxyXG4vKipcclxuICogQnVpbGRzIHJlcGxhY2VtZW50IGZpeGVzIGZvciBleGlzdGluZyBjb21wYXRpYmxlIGltcG9ydHMuXHJcbiAqIEBwYXJhbSBjb21iaW5lZFBsYW5zIENvbWJpbmVkIHBsYW5zIGtleWVkIGJ5IG1vZHVsZSBzcGVjaWZpZXIuXHJcbiAqIEBwYXJhbSBmaXhlciBFU0xpbnQgZml4ZXIuXHJcbiAqIEByZXR1cm5zIFJlcGxhY2VtZW50IGZpeGVzIGZvciBleGlzdGluZyBpbXBvcnRzLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IGZpeGVzID0gYnVpbGRDb21iaW5lZFVwZGF0ZUZpeGVzKG5ldyBNYXAoKSwge30gYXMgbmV2ZXIpO1xyXG4gKiB2b2lkIGZpeGVzO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGJ1aWxkQ29tYmluZWRVcGRhdGVGaXhlcyhcclxuICBjb21iaW5lZFBsYW5zOiBNYXA8c3RyaW5nLCBDb21iaW5lZEltcG9ydFBsYW5MaWtlPixcclxuICBmaXhlcjogUnVsZS5SdWxlRml4ZXIsXHJcbik6IFJ1bGUuRml4W10ge1xyXG4gIHJldHVybiBbLi4uY29tYmluZWRQbGFucy52YWx1ZXMoKV0uZmxhdE1hcCgocGxhbikgPT4ge1xyXG4gICAgY29uc3QgdXBkYXRlRml4ID0gdG9Db21iaW5lZFVwZGF0ZUZpeChwbGFuLCBmaXhlcik7XHJcblxyXG4gICAgcmV0dXJuIHVwZGF0ZUZpeCA9PT0gdm9pZCAwID8gW10gOiBbdXBkYXRlRml4XTtcclxuICB9KTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEJ1aWxkcyBhIHJlcGxhY2VtZW50IGZpeCBmb3Igb25lIGNvbWJpbmVkIHVwZGF0ZSBwbGFuLlxyXG4gKiBAcGFyYW0gcGxhbiBDb21iaW5lZCBpbXBvcnQgcGxhbiBmb3Igb25lIG1vZHVsZS5cclxuICogQHBhcmFtIGZpeGVyIEVTTGludCBmaXhlci5cclxuICogQHJldHVybnMgUmVwbGFjZW1lbnQgZml4IHdoZW4gdGhlIG1vZHVsZSBhbHJlYWR5IGhhcyBhIGNvbXBhdGlibGUgaW1wb3J0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IGZpeCA9IHRvQ29tYmluZWRVcGRhdGVGaXgoeyBtb2R1bGVTcGVjaWZpZXI6IFwiLi94XCIsIG5hbWVzOiBuZXcgU2V0KCkgfSBhcyBuZXZlciwge30gYXMgbmV2ZXIpO1xyXG4gKiB2b2lkIGZpeDtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiB0b0NvbWJpbmVkVXBkYXRlRml4KFxyXG4gIHBsYW46IENvbWJpbmVkSW1wb3J0UGxhbkxpa2UsXHJcbiAgZml4ZXI6IFJ1bGUuUnVsZUZpeGVyLFxyXG4pOiBSdWxlLkZpeCB8IHVuZGVmaW5lZCB7XHJcbiAgY29uc3QgeyBtb2R1bGVTcGVjaWZpZXIsIG5hbWVzLCB1cGRhdGUgfSA9IHBsYW47XHJcblxyXG4gIGlmICh1cGRhdGUgPT09IHZvaWQgMCkge1xyXG4gICAgcmV0dXJuIHZvaWQgMDtcclxuICB9XHJcblxyXG4gIGNvbnN0IHsgZGVmYXVsdEltcG9ydE5hbWUsIGV4aXN0aW5nTmFtZWRJbXBvcnRzLCByYW5nZSB9ID0gdXBkYXRlO1xyXG4gIGNvbnN0IG1lcmdlZE5hbWVzID0gW1xyXG4gICAgLi4ubmV3IFNldChbLi4ubmFtZXMsIC4uLmV4aXN0aW5nTmFtZWRJbXBvcnRzXSksXHJcbiAgXS50b1NvcnRlZCgpO1xyXG4gIGNvbnN0IHN0YXRlbWVudFRleHQgPSBidWlsZEltcG9ydFN0YXRlbWVudChcclxuICAgIG1vZHVsZVNwZWNpZmllcixcclxuICAgIGRlZmF1bHRJbXBvcnROYW1lLFxyXG4gICAgbWVyZ2VkTmFtZXMsXHJcbiAgKTtcclxuXHJcbiAgcmV0dXJuIGZpeGVyLnJlcGxhY2VUZXh0UmFuZ2UocmFuZ2UsIHN0YXRlbWVudFRleHQpO1xyXG59XHJcblxyXG5leHBvcnQgeyBidWlsZENvbWJpbmVkVXBkYXRlRml4ZXMgfTtcclxuIl19
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4LWltcG9ydC11cGRhdGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RvbWFpbi90ZXN0aW5nL3ByZWZlci12aS1tb2NrZWQtaW1wb3J0L2ZpeC1pbXBvcnQtdXBkYXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQW1CL0Q7Ozs7Ozs7Ozs7R0FVRztBQUNILFNBQVMsd0JBQXdCLENBQy9CLGFBQWtELEVBQ2xELEtBQXFCO0lBRXJCLE9BQU8sYUFBYTtTQUNqQixNQUFNLEVBQUU7U0FDUixPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtRQUNoQixNQUFNLFNBQVMsR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFbkQsT0FBTyxTQUFTLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNqRCxDQUFDLENBQUM7U0FDRCxPQUFPLEVBQUUsQ0FBQztBQUNmLENBQUM7QUFFRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsU0FBUyxtQkFBbUIsQ0FDMUIsSUFBNEIsRUFDNUIsS0FBcUI7SUFFckIsTUFBTSxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDO0lBRWhELElBQUksTUFBTSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDdEIsT0FBTyxLQUFLLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxFQUFFLGlCQUFpQixFQUFFLG9CQUFvQixFQUFFLEtBQUssRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUNsRSxNQUFNLFdBQVcsR0FBRztRQUNsQixHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLLEVBQUUsR0FBRyxvQkFBb0IsQ0FBQyxDQUFDO0tBQ2hELENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFFLE1BQU0sYUFBYSxHQUFHLG9CQUFvQixDQUN4QyxlQUFlLEVBQ2YsaUJBQWlCLEVBQ2pCLFdBQVcsQ0FDWixDQUFDO0lBRUYsT0FBTyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0FBQ3RELENBQUM7QUFFRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUnVsZSB9IGZyb20gXCJlc2xpbnRcIjtcclxuXHJcbmltcG9ydCB7IGJ1aWxkSW1wb3J0U3RhdGVtZW50IH0gZnJvbSBcIi4vZml4LWltcG9ydC1zdGF0ZW1lbnRzXCI7XHJcblxyXG4vKiogQ29tYmluZWQgaW1wb3J0IHdvcmsgZm9yIG9uZSBtb2R1bGUgYWNyb3NzIGFsbCBtYXRjaGVzLiAqL1xyXG5pbnRlcmZhY2UgQ29tYmluZWRJbXBvcnRQbGFuTGlrZSB7XHJcbiAgLyoqIE1vZHVsZSBpbXBvcnRlZCBieSB0aGlzIHBsYW4uICovXHJcbiAgbW9kdWxlU3BlY2lmaWVyOiBzdHJpbmc7XHJcbiAgLyoqIE5hbWVkIGltcG9ydHMgcmVxdWlyZWQgZm9yIHRoaXMgbW9kdWxlLiAqL1xyXG4gIG5hbWVzOiBTZXQ8c3RyaW5nPjtcclxuICAvKiogRXhpc3RpbmcgaW1wb3J0IHJlcGxhY2VtZW50IHBsYW4gd2hlbiBwcmVzZW50LiAqL1xyXG4gIHVwZGF0ZT86IHtcclxuICAgIC8qKiBFeGlzdGluZyBkZWZhdWx0IGltcG9ydCBsb2NhbCBuYW1lLiAqL1xyXG4gICAgZGVmYXVsdEltcG9ydE5hbWU/OiBzdHJpbmc7XHJcbiAgICAvKiogRXhpc3RpbmcgbmFtZWQgaW1wb3J0cyBhbHJlYWR5IHByZXNlbnQuICovXHJcbiAgICBleGlzdGluZ05hbWVkSW1wb3J0czogc3RyaW5nW107XHJcbiAgICAvKiogSW1wb3J0IHJhbmdlIHRvIHJlcGxhY2UuICovXHJcbiAgICByYW5nZTogW251bWJlciwgbnVtYmVyXTtcclxuICB9O1xyXG59XHJcblxyXG4vKipcclxuICogQnVpbGRzIHJlcGxhY2VtZW50IGZpeGVzIGZvciBleGlzdGluZyBjb21wYXRpYmxlIGltcG9ydHMuXHJcbiAqIEBwYXJhbSBjb21iaW5lZFBsYW5zIENvbWJpbmVkIHBsYW5zIGtleWVkIGJ5IG1vZHVsZSBzcGVjaWZpZXIuXHJcbiAqIEBwYXJhbSBmaXhlciBFU0xpbnQgZml4ZXIuXHJcbiAqIEByZXR1cm5zIFJlcGxhY2VtZW50IGZpeGVzIGZvciBleGlzdGluZyBpbXBvcnRzLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IGZpeGVzID0gYnVpbGRDb21iaW5lZFVwZGF0ZUZpeGVzKG5ldyBNYXAoKSwge30gYXMgbmV2ZXIpO1xyXG4gKiB2b2lkIGZpeGVzO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGJ1aWxkQ29tYmluZWRVcGRhdGVGaXhlcyhcclxuICBjb21iaW5lZFBsYW5zOiBNYXA8c3RyaW5nLCBDb21iaW5lZEltcG9ydFBsYW5MaWtlPixcclxuICBmaXhlcjogUnVsZS5SdWxlRml4ZXIsXHJcbik6IFJ1bGUuRml4W10ge1xyXG4gIHJldHVybiBjb21iaW5lZFBsYW5zXHJcbiAgICAudmFsdWVzKClcclxuICAgIC5mbGF0TWFwKChwbGFuKSA9PiB7XHJcbiAgICAgIGNvbnN0IHVwZGF0ZUZpeCA9IHRvQ29tYmluZWRVcGRhdGVGaXgocGxhbiwgZml4ZXIpO1xyXG5cclxuICAgICAgcmV0dXJuIHVwZGF0ZUZpeCA9PT0gdm9pZCAwID8gW10gOiBbdXBkYXRlRml4XTtcclxuICAgIH0pXHJcbiAgICAudG9BcnJheSgpO1xyXG59XHJcblxyXG4vKipcclxuICogQnVpbGRzIGEgcmVwbGFjZW1lbnQgZml4IGZvciBvbmUgY29tYmluZWQgdXBkYXRlIHBsYW4uXHJcbiAqIEBwYXJhbSBwbGFuIENvbWJpbmVkIGltcG9ydCBwbGFuIGZvciBvbmUgbW9kdWxlLlxyXG4gKiBAcGFyYW0gZml4ZXIgRVNMaW50IGZpeGVyLlxyXG4gKiBAcmV0dXJucyBSZXBsYWNlbWVudCBmaXggd2hlbiB0aGUgbW9kdWxlIGFscmVhZHkgaGFzIGEgY29tcGF0aWJsZSBpbXBvcnQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3QgZml4ID0gdG9Db21iaW5lZFVwZGF0ZUZpeCh7IG1vZHVsZVNwZWNpZmllcjogXCIuL3hcIiwgbmFtZXM6IG5ldyBTZXQoKSB9IGFzIG5ldmVyLCB7fSBhcyBuZXZlcik7XHJcbiAqIHZvaWQgZml4O1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIHRvQ29tYmluZWRVcGRhdGVGaXgoXHJcbiAgcGxhbjogQ29tYmluZWRJbXBvcnRQbGFuTGlrZSxcclxuICBmaXhlcjogUnVsZS5SdWxlRml4ZXIsXHJcbik6IFJ1bGUuRml4IHwgdW5kZWZpbmVkIHtcclxuICBjb25zdCB7IG1vZHVsZVNwZWNpZmllciwgbmFtZXMsIHVwZGF0ZSB9ID0gcGxhbjtcclxuXHJcbiAgaWYgKHVwZGF0ZSA9PT0gdm9pZCAwKSB7XHJcbiAgICByZXR1cm4gdm9pZCAwO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgeyBkZWZhdWx0SW1wb3J0TmFtZSwgZXhpc3RpbmdOYW1lZEltcG9ydHMsIHJhbmdlIH0gPSB1cGRhdGU7XHJcbiAgY29uc3QgbWVyZ2VkTmFtZXMgPSBbXHJcbiAgICAuLi5uZXcgU2V0KFsuLi5uYW1lcywgLi4uZXhpc3RpbmdOYW1lZEltcG9ydHNdKSxcclxuICBdLnRvU29ydGVkKChsZWZ0LCByaWdodCkgPT4gKGxlZnQgPT09IHJpZ2h0ID8gMCA6IGxlZnQgPCByaWdodCA/IC0xIDogMSkpO1xyXG4gIGNvbnN0IHN0YXRlbWVudFRleHQgPSBidWlsZEltcG9ydFN0YXRlbWVudChcclxuICAgIG1vZHVsZVNwZWNpZmllcixcclxuICAgIGRlZmF1bHRJbXBvcnROYW1lLFxyXG4gICAgbWVyZ2VkTmFtZXMsXHJcbiAgKTtcclxuXHJcbiAgcmV0dXJuIGZpeGVyLnJlcGxhY2VUZXh0UmFuZ2UocmFuZ2UsIHN0YXRlbWVudFRleHQpO1xyXG59XHJcblxyXG5leHBvcnQgeyBidWlsZENvbWJpbmVkVXBkYXRlRml4ZXMgfTtcclxuIl19
@@ -1 +1 @@
1
- {"version":3,"file":"fix-imports.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/prefer-vi-mocked-import/fix-imports.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAGnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAsDzC;;;;;;;;;;GAUG;AACH,iBAAS,wBAAwB,CAC/B,OAAO,EAAE,SAAS,EAAE,EACpB,KAAK,EAAE,IAAI,CAAC,SAAS,GACpB,IAAI,CAAC,GAAG,EAAE,CASZ;AAsND,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
1
+ {"version":3,"file":"fix-imports.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/prefer-vi-mocked-import/fix-imports.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAGnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAwDzC;;;;;;;;;;GAUG;AACH,iBAAS,wBAAwB,CAC/B,OAAO,EAAE,SAAS,EAAE,EACpB,KAAK,EAAE,IAAI,CAAC,SAAS,GACpB,IAAI,CAAC,GAAG,EAAE,CASZ;AAyND,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4LWltcG9ydHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3RpbmcvcHJlZmVyLXZpLW1vY2tlZC1pbXBvcnQvZml4LWltcG9ydHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFzQmhFOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxrQkFBa0IsQ0FDekIsWUFBc0MsRUFDdEMsSUFBd0I7SUFFeEIsTUFBTSxXQUFXLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FDM0QsSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUMzQyxDQUFDO0lBRUYsSUFBSSxXQUFXLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDdkQsT0FBTztJQUNULENBQUM7SUFFRCxNQUFNLEdBQUcsR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDL0MsTUFBTSxLQUFLLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFMUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQ25CLG9CQUFvQixDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQ2hFLENBQUM7SUFDRixLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsRSxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUMvQixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7R0FVRztBQUNILFNBQVMsd0JBQXdCLENBQy9CLE9BQW9CLEVBQ3BCLEtBQXFCO0lBRXJCLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLElBQUksSUFBSSxDQUFDO0lBQzVDLE1BQU0sYUFBYSxHQUFHLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xELE1BQU0sWUFBWSxHQUFHLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBRXhELE9BQU87UUFDTCxHQUFHLHdCQUF3QixDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUM7UUFDakQsR0FBRyxxQkFBcUIsQ0FBQyxZQUFZLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQztLQUN2RCxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsU0FBUyxxQkFBcUIsQ0FDNUIsWUFBc0MsRUFDdEMsS0FBcUIsRUFDckIsT0FBc0I7SUFFdEIsT0FBTyxZQUFZO1NBQ2hCLE1BQU0sRUFBRTtTQUNSLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQ2IsS0FBSyxDQUFDLFVBQVUsS0FBSyxLQUFLLENBQUM7UUFDekIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FDekIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQ04sR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxPQUFPLEdBQUcsT0FBTyxFQUFFLENBQ3hEO1FBQ0gsQ0FBQyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FDeEIsS0FBSyxDQUFDLFVBQVUsRUFDaEIsR0FBRyxPQUFPLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FDOUMsQ0FDTjtTQUNBLE9BQU8sRUFBRSxDQUFDO0FBQ2YsQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILFNBQVMsbUJBQW1CLENBQzFCLGFBQThDO0lBRTlDLE1BQU0sWUFBWSxHQUFHLElBQUksR0FBRyxFQUF1QixDQUFDO0lBRXBELEtBQUssTUFBTSxJQUFJLElBQUksYUFBYSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7UUFDMUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxPQUFPLFlBQVksQ0FBQztBQUN0QixDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsU0FBUyxrQkFBa0IsQ0FDekIsT0FBb0I7SUFFcEIsTUFBTSxhQUFhLEdBQUcsSUFBSSxHQUFHLEVBQThCLENBQUM7SUFFNUQsS0FBSyxNQUFNLEtBQUssSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUM1QixlQUFlLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxPQUFPLGFBQWEsQ0FBQztBQUN2QixDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsU0FBUyx3QkFBd0IsQ0FBQyxLQUFnQjtJQUNoRCxNQUFNLFlBQVksR0FBdUI7UUFDdkMsZUFBZSxFQUFFLEtBQUssQ0FBQyxlQUFlO1FBQ3RDLEtBQUssRUFBRSxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQztLQUN2QyxDQUFDO0lBRUYsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxVQUFVLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNuRCxZQUFZLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztJQUMvRCxDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3ZDLFlBQVksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7SUFDaEQsQ0FBQztJQUVELE9BQU8sWUFBWSxDQUFDO0FBQ3RCLENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFTLGlCQUFpQixDQUFDLFVBQTZCO0lBQ3RELE9BQU8sVUFBVSxLQUFLLEtBQUssQ0FBQztRQUMxQixDQUFDLENBQUMsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFO1FBQ3BCLENBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLENBQUM7QUFDckMsQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILFNBQVMsaUJBQWlCLENBQUMsVUFBNkI7SUFDdEQsT0FBTyxVQUFVLEtBQUssS0FBSyxDQUFDO1FBQzFCLENBQUMsQ0FBQyxLQUFLO1FBQ1AsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDaEUsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxlQUFlLENBQ3RCLGFBQThDLEVBQzlDLEtBQWdCO0lBRWhCLE1BQU0sWUFBWSxHQUNoQixhQUFhLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBSSx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUU5RSwwQkFBMEIsQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDaEQsb0JBQW9CLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0QscUJBQXFCLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzNDLGFBQWEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFBRSxZQUFZLENBQUMsQ0FBQztBQUN6RCxDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLDBCQUEwQixDQUNqQyxZQUFnQyxFQUNoQyxLQUFnQjtJQUVoQixJQUNFLFlBQVksQ0FBQyxVQUFVLEtBQUssS0FBSyxDQUFDO1FBQ2xDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLFVBQVUsS0FBSyxLQUFLLENBQUMsRUFDOUMsQ0FBQztRQUNELFlBQVksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO0lBQy9ELENBQUM7QUFDSCxDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLG9CQUFvQixDQUMzQixZQUFnQyxFQUNoQyxLQUFlO0lBRWYsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUN6QixZQUFZLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQixDQUFDO0FBQ0gsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxxQkFBcUIsQ0FDNUIsWUFBZ0MsRUFDaEMsS0FBZ0I7SUFFaEIsSUFBSSxZQUFZLENBQUMsTUFBTSxLQUFLLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDekUsWUFBWSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztJQUNoRCxDQUFDO0FBQ0gsQ0FBQztBQUVELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSdWxlIH0gZnJvbSBcImVzbGludFwiO1xyXG5cclxuaW1wb3J0IHR5cGUgeyBSYW5nZSB9IGZyb20gXCIuL21hdGNoLWhlbHBlcnNcIjtcclxuaW1wb3J0IHR5cGUgeyBSdWxlTWF0Y2ggfSBmcm9tIFwiLi90eXBlc1wiO1xyXG5cclxuaW1wb3J0IHsgYnVpbGRJbXBvcnRTdGF0ZW1lbnQgfSBmcm9tIFwiLi9maXgtaW1wb3J0LXN0YXRlbWVudHNcIjtcclxuaW1wb3J0IHsgYnVpbGRDb21iaW5lZFVwZGF0ZUZpeGVzIH0gZnJvbSBcIi4vZml4LWltcG9ydC11cGRhdGVzXCI7XHJcblxyXG4vKiogQ29tYmluZWQgaW1wb3J0IHdvcmsgZm9yIG9uZSBtb2R1bGUgYWNyb3NzIGFsbCBtYXRjaGVzLiAqL1xyXG5pbnRlcmZhY2UgQ29tYmluZWRJbXBvcnRQbGFuIHtcclxuICAvKiogSW5zZXJ0IGxvY2F0aW9uIGZvciBhIG5ldyBpbXBvcnQuICovXHJcbiAgYWZ0ZXJSYW5nZT86IFJhbmdlO1xyXG4gIC8qKiBNb2R1bGUgaW1wb3J0ZWQgYnkgdGhpcyBwbGFuLiAqL1xyXG4gIG1vZHVsZVNwZWNpZmllcjogc3RyaW5nO1xyXG4gIC8qKiBOYW1lZCBpbXBvcnRzIHJlcXVpcmVkIGZvciB0aGlzIG1vZHVsZS4gKi9cclxuICBuYW1lczogU2V0PHN0cmluZz47XHJcbiAgLyoqIEV4aXN0aW5nIGltcG9ydCByZXBsYWNlbWVudCBwbGFuIHdoZW4gcHJlc2VudC4gKi9cclxuICB1cGRhdGU/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RvbWFpbi90ZXN0aW5nL3ByZWZlci12aS1tb2NrZWQtaW1wb3J0L2ZpeC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekQ7Ozs7Ozs7Ozs7R0FVRztBQUNILFNBQVMsaUJBQWlCLENBQ3hCLEtBQWdCLEVBQ2hCLEtBQXFCO0lBRXJCLE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtRQUN4QyxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDOUQsSUFBSSxXQUFXLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMzQixPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFDRCxNQUFNLGVBQWUsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FDNUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUMvQixXQUFXLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQ2hDLENBQUM7UUFDRixPQUFPO1lBQ0wsS0FBSyxDQUFDLGdCQUFnQixDQUNwQixPQUFPLENBQUMsYUFBYSxFQUNyQixHQUFHLE9BQU8sQ0FBQyxZQUFZLEtBQUssZUFBZSxFQUFFLENBQzlDO1NBQ0YsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVEOzs7Ozs7Ozs7O0dBVUc7QUFDSCxTQUFTLFVBQVUsQ0FBQyxPQUFvQixFQUFFLEtBQXFCO0lBQzdELE9BQU87UUFDTCxHQUFHLHdCQUF3QixDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUM7UUFDM0MsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7S0FDakUsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsU0FBUyx1QkFBdUIsQ0FDOUIsS0FBZ0IsRUFDaEIsS0FBcUI7SUFFckIsT0FBTyxLQUFLLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQzFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FDcEIsT0FBTyxDQUFDLGdCQUFnQixFQUN4QixhQUFhLE9BQU8sQ0FBQyxZQUFZLEdBQUcsQ0FDckMsQ0FDRixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7Ozs7O0dBVUc7QUFDSCxTQUFTLHVCQUF1QixDQUM5QixLQUFnQixFQUNoQixLQUFxQjtJQUVyQixJQUFJLEtBQUssQ0FBQywrQkFBK0IsRUFBRSxDQUFDO1FBQzFDLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3pELE9BQU87UUFDTCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLGtCQUFrQixFQUFFLFVBQVUsVUFBVSxHQUFHLENBQUM7S0FDMUUsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsU0FBUyxtQkFBbUIsQ0FDMUIsS0FBZ0IsRUFDaEIsS0FBcUI7SUFFckIsT0FBTztRQUNMLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQztRQUNsQyxHQUFHLHVCQUF1QixDQUFDLEtBQUssRUFBRSxLQUFLLENBQUM7UUFDeEMsR0FBRyx1QkFBdUIsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDO1FBQ3hDLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQztLQUNuQyxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7Ozs7O0dBVUc7QUFDSCxTQUFTLGlCQUFpQixDQUN4QixLQUFnQixFQUNoQixLQUFxQjtJQUVyQixNQUFNLFlBQVksR0FBRyx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyRCxPQUFPLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxjQUFjLEVBQUUsRUFBRTtRQUN6QyxNQUFNLGFBQWEsR0FBRyxzQkFBc0IsQ0FDMUMsS0FBSyxDQUFDLFVBQVUsRUFDaEIsY0FBYyxDQUNmLENBQUM7UUFDRixPQUFPLEtBQUssQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDMUMsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7R0FVRztBQUNILFNBQVMsc0JBQXNCLENBQzdCLFVBQWtCLEVBQ2xCLGNBQXFCO0lBRXJCLE1BQU0sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEdBQUcsY0FBYyxDQUFDO0lBQ3BDLE1BQU0saUJBQWlCLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDeEQsT0FBTyxpQkFBaUIsS0FBSyxDQUFDLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLGlCQUFpQixHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ3JDLENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFTLHdCQUF3QixDQUFDLEtBQWdCO0lBQ2hELE1BQU0sUUFBUSxHQUFHLElBQUksR0FBRyxFQUFpQixDQUFDO0lBQzFDLEtBQUssTUFBTSxPQUFPLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3JDLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM5RCxJQUFJLFdBQVcsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzNCLE1BQU0sR0FBRyxHQUFHLEdBQUcsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN0RyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDaEQsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztBQUNyQyxDQUFDO0FBRUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSdWxlIH0gZnJvbSBcImVzbGludFwiO1xuXG5pbXBvcnQgdHlwZSB7IFJhbmdlIH0gZnJvbSBcIi4vbWF0Y2gtaGVscGVyc1wiO1xuaW1wb3J0IHR5cGUgeyBSdWxlTWF0Y2ggfSBmcm9tIFwiLi90eXBlc1wiO1xuXG5pbXBvcnQgeyBidWlsZENvbWJpbmVkSW1wb3J0Rml4ZXMgfSBmcm9tIFwiLi9maXgtaW1wb3J0c1wiO1xuXG4vKipcbiAqIEJ1aWxkcyBmaXhlcyB0aGF0IGlubGluZSBkZWNsYXJhdGlvbiBpbml0aWFsaXplcnMgaW50byBmYWN0b3J5IHByb3BlcnRpZXMuXG4gKiBAcGFyYW0gbWF0Y2ggQXV0b2ZpeCBjb250ZXh0IHByb2R1Y2VkIGJ5IHRoZSBtYXRjaGVyLlxuICogQHBhcmFtIGZpeGVyIEVTTGludCBmaXhlci5cbiAqIEByZXR1cm5zIEJpbmRpbmctcmVsYXRlZCBmaXhlcy5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBmaXhlcyA9IGJ1aWxkQmluZGluZ0ZpeGVzKHt9IGFzIG5ldmVyLCB7fSBhcyBuZXZlcik7XG4gKiB2b2lkIGZpeGVzO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGJ1aWxkQmluZGluZ0ZpeGVzKFxuICBtYXRjaDogUnVsZU1hdGNoLFxuICBmaXhlcjogUnVsZS5SdWxlRml4ZXIsXG4pOiBSdWxlLkZpeFtdIHtcbiAgcmV0dXJuIG1hdGNoLmJpbmRpbmdzLmZsYXRNYXAoKGJpbmRpbmcpID0+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"}