@codeperfect/eslint-plugin 2.4.0 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/dist/codeperfect-eslint-plugin-1.0.0.tgz +0 -0
  2. package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-options.d.ts.map +1 -1
  3. package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-options.js +4 -2
  4. package/dist/domain/architecture/consistent-barrel-files/exports-only-rule.d.ts.map +1 -1
  5. package/dist/domain/architecture/consistent-barrel-files/exports-only-rule.js +2 -4
  6. package/dist/domain/architecture/consistent-barrel-files/no-import-export-aliases-rule.d.ts.map +1 -1
  7. package/dist/domain/architecture/consistent-barrel-files/no-import-export-aliases-rule.js +4 -134
  8. package/dist/domain/architecture/consistent-barrel-files/no-import-export-aliases-utilities.d.ts +14 -0
  9. package/dist/domain/architecture/consistent-barrel-files/no-import-export-aliases-utilities.d.ts.map +1 -0
  10. package/dist/domain/architecture/consistent-barrel-files/no-import-export-aliases-utilities.js +154 -0
  11. package/dist/domain/architecture/consistent-barrel-files/no-import-export-extensions-rule.d.ts.map +1 -1
  12. package/dist/domain/architecture/consistent-barrel-files/no-import-export-extensions-rule.js +10 -12
  13. package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.d.ts.map +1 -1
  14. package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.js +4 -11
  15. package/dist/domain/architecture/no-unused-exports/no-unused-exports-declaration-utilities.d.ts +14 -0
  16. package/dist/domain/architecture/no-unused-exports/no-unused-exports-declaration-utilities.d.ts.map +1 -0
  17. package/dist/domain/architecture/no-unused-exports/no-unused-exports-declaration-utilities.js +187 -0
  18. package/dist/domain/architecture/no-unused-exports/no-unused-exports-identifier-utilities.d.ts +26 -0
  19. package/dist/domain/architecture/no-unused-exports/no-unused-exports-identifier-utilities.d.ts.map +1 -0
  20. package/dist/domain/architecture/no-unused-exports/no-unused-exports-identifier-utilities.js +95 -0
  21. package/dist/domain/architecture/no-unused-exports/no-unused-exports-pattern-utilities.d.ts +32 -0
  22. package/dist/domain/architecture/no-unused-exports/no-unused-exports-pattern-utilities.d.ts.map +1 -0
  23. package/dist/domain/architecture/no-unused-exports/no-unused-exports-pattern-utilities.js +78 -0
  24. package/dist/domain/architecture/no-unused-exports/no-unused-exports-public-api-usage-utilities.d.ts +18 -0
  25. package/dist/domain/architecture/no-unused-exports/no-unused-exports-public-api-usage-utilities.d.ts.map +1 -0
  26. package/dist/domain/architecture/no-unused-exports/no-unused-exports-public-api-usage-utilities.js +45 -0
  27. package/dist/domain/architecture/no-unused-exports/no-unused-exports-record-utilities.d.ts +34 -0
  28. package/dist/domain/architecture/no-unused-exports/no-unused-exports-record-utilities.d.ts.map +1 -0
  29. package/dist/domain/architecture/no-unused-exports/no-unused-exports-record-utilities.js +44 -0
  30. package/dist/domain/architecture/no-unused-exports/no-unused-exports-symbol-utilities.d.ts +59 -0
  31. package/dist/domain/architecture/no-unused-exports/no-unused-exports-symbol-utilities.d.ts.map +1 -0
  32. package/dist/domain/architecture/no-unused-exports/no-unused-exports-symbol-utilities.js +133 -0
  33. package/dist/domain/architecture/no-unused-exports/no-unused-exports-usage-utilities.d.ts +28 -0
  34. package/dist/domain/architecture/no-unused-exports/no-unused-exports-usage-utilities.d.ts.map +1 -0
  35. package/dist/domain/architecture/no-unused-exports/no-unused-exports-usage-utilities.js +106 -0
  36. package/dist/domain/architecture/no-unused-exports/no-unused-exports-utilities.d.ts +21 -21
  37. package/dist/domain/architecture/no-unused-exports/no-unused-exports-utilities.d.ts.map +1 -1
  38. package/dist/domain/architecture/no-unused-exports/no-unused-exports-utilities.js +24 -587
  39. package/dist/domain/core/no-multiple-declarators/rule-utilities.d.ts +58 -0
  40. package/dist/domain/core/no-multiple-declarators/rule-utilities.d.ts.map +1 -0
  41. package/dist/domain/core/no-multiple-declarators/rule-utilities.js +204 -0
  42. package/dist/domain/core/no-multiple-declarators/rule.d.ts.map +1 -1
  43. package/dist/domain/core/no-multiple-declarators/rule.js +9 -211
  44. package/dist/domain/core/no-multiple-declarators/types.js +2 -2
  45. package/dist/domain/core/prefer-interface-types/rule-utilities.d.ts +57 -0
  46. package/dist/domain/core/prefer-interface-types/rule-utilities.d.ts.map +1 -0
  47. package/dist/domain/core/prefer-interface-types/rule-utilities.js +105 -0
  48. package/dist/domain/core/prefer-interface-types/rule.d.ts.map +1 -1
  49. package/dist/domain/core/prefer-interface-types/rule.js +2 -104
  50. package/dist/domain/docs/no-interface-member-docs/comment-removal-ranges.d.ts +25 -0
  51. package/dist/domain/docs/no-interface-member-docs/comment-removal-ranges.d.ts.map +1 -0
  52. package/dist/domain/docs/no-interface-member-docs/comment-removal-ranges.js +64 -0
  53. package/dist/domain/docs/no-interface-member-docs/comment-utilities.d.ts +2 -24
  54. package/dist/domain/docs/no-interface-member-docs/comment-utilities.d.ts.map +1 -1
  55. package/dist/domain/docs/no-interface-member-docs/comment-utilities.js +3 -65
  56. package/dist/domain/docs/no-interface-member-docs/parameter-tags.js +2 -2
  57. package/dist/domain/docs/no-interface-member-docs/parameter-utilities.js +2 -2
  58. package/dist/domain/docs/no-interface-member-docs/rule.d.ts.map +1 -1
  59. package/dist/domain/docs/no-interface-member-docs/rule.js +3 -2
  60. package/dist/domain/docs/require-example-language/examples-collect.d.ts +15 -0
  61. package/dist/domain/docs/require-example-language/examples-collect.d.ts.map +1 -0
  62. package/dist/domain/docs/require-example-language/examples-collect.js +113 -0
  63. package/dist/domain/docs/require-example-language/examples.d.ts +24 -13
  64. package/dist/domain/docs/require-example-language/examples.d.ts.map +1 -1
  65. package/dist/domain/docs/require-example-language/examples.js +2 -111
  66. package/dist/domain/docs/require-example-language/fixes.js +4 -4
  67. package/dist/domain/docs/require-example-language/rule.d.ts.map +1 -1
  68. package/dist/domain/docs/require-example-language/rule.js +9 -8
  69. package/dist/domain/docs/require-example-language/types.d.ts.map +1 -1
  70. package/dist/domain/docs/require-example-language/types.js +1 -1
  71. package/dist/domain/testing/aaa/analyzer.analysis.helpers.d.ts.map +1 -1
  72. package/dist/domain/testing/aaa/analyzer.analysis.helpers.js +8 -8
  73. package/dist/domain/testing/aaa/analyzer.assertions.helpers.d.ts.map +1 -1
  74. package/dist/domain/testing/aaa/analyzer.assertions.helpers.js +10 -9
  75. package/dist/domain/testing/aaa/analyzer.assertions.operands.d.ts.map +1 -1
  76. package/dist/domain/testing/aaa/analyzer.assertions.operands.js +2 -5
  77. package/dist/domain/testing/aaa/analyzer.classification.helpers.js +14 -16
  78. package/dist/domain/testing/aaa/analyzer.classification.traversal.js +6 -4
  79. package/dist/domain/testing/aaa/analyzer.super.d.ts.map +1 -1
  80. package/dist/domain/testing/aaa/analyzer.super.js +10 -8
  81. package/dist/domain/testing/assert-actual-expected-names/rule.d.ts.map +1 -1
  82. package/dist/domain/testing/assert-actual-expected-names/rule.js +21 -23
  83. package/dist/domain/testing/enforce-aaa-phase-purity/pattern-identifiers.d.ts.map +1 -1
  84. package/dist/domain/testing/enforce-aaa-phase-purity/pattern-identifiers.js +1 -1
  85. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.d.ts.map +1 -1
  86. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.js +2 -160
  87. package/dist/domain/testing/enforce-aaa-phase-purity/statement-purity-reporters.d.ts +41 -0
  88. package/dist/domain/testing/enforce-aaa-phase-purity/statement-purity-reporters.d.ts.map +1 -0
  89. package/dist/domain/testing/enforce-aaa-phase-purity/statement-purity-reporters.js +161 -0
  90. package/dist/domain/testing/enforce-aaa-structure/missing-section-fixes.d.ts.map +1 -1
  91. package/dist/domain/testing/enforce-aaa-structure/missing-section-fixes.js +2 -2
  92. package/dist/domain/testing/enforce-aaa-structure/rule-section-reporting.d.ts +81 -0
  93. package/dist/domain/testing/enforce-aaa-structure/rule-section-reporting.d.ts.map +1 -0
  94. package/dist/domain/testing/enforce-aaa-structure/rule-section-reporting.js +181 -0
  95. package/dist/domain/testing/enforce-aaa-structure/rule.d.ts.map +1 -1
  96. package/dist/domain/testing/enforce-aaa-structure/rule.js +28 -217
  97. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-detection.d.ts +29 -0
  98. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-detection.d.ts.map +1 -0
  99. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-detection.js +200 -0
  100. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-names.d.ts +12 -0
  101. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-names.d.ts.map +1 -0
  102. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-names.js +151 -0
  103. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-reporting.d.ts +16 -0
  104. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-reporting.d.ts.map +1 -0
  105. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-reporting.js +109 -0
  106. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule.d.ts.map +1 -1
  107. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule.js +18 -450
  108. package/dist/domain/testing/prefer-vi-mocked-import/fix-import-updates.d.ts.map +1 -1
  109. package/dist/domain/testing/prefer-vi-mocked-import/fix-import-updates.js +7 -4
  110. package/dist/domain/testing/prefer-vi-mocked-import/fix-imports.d.ts.map +1 -1
  111. package/dist/domain/testing/prefer-vi-mocked-import/fix-imports.js +7 -4
  112. package/dist/domain/testing/prefer-vi-mocked-import/fix.js +2 -2
  113. package/dist/domain/testing/prefer-vi-mocked-import/match-collisions.d.ts +18 -0
  114. package/dist/domain/testing/prefer-vi-mocked-import/match-collisions.d.ts.map +1 -0
  115. package/dist/domain/testing/prefer-vi-mocked-import/match-collisions.js +162 -0
  116. package/dist/domain/testing/prefer-vi-mocked-import/match-rewrites.d.ts.map +1 -1
  117. package/dist/domain/testing/prefer-vi-mocked-import/match-rewrites.js +5 -4
  118. package/dist/domain/testing/prefer-vi-mocked-import/match-seeds.d.ts +29 -0
  119. package/dist/domain/testing/prefer-vi-mocked-import/match-seeds.d.ts.map +1 -0
  120. package/dist/domain/testing/prefer-vi-mocked-import/match-seeds.js +100 -0
  121. package/dist/domain/testing/prefer-vi-mocked-import/match.d.ts.map +1 -1
  122. package/dist/domain/testing/prefer-vi-mocked-import/match.js +5 -246
  123. package/dist/domain/testing/prefer-vi-mocked-import/rule.d.ts.map +1 -1
  124. package/dist/domain/testing/prefer-vi-mocked-import/rule.js +18 -20
  125. package/dist/domain/testing/require-act-result-capture/rule.d.ts.map +1 -1
  126. package/dist/domain/testing/require-act-result-capture/rule.js +47 -21
  127. package/dist/domain/testing/require-test-companion/rule.d.ts.map +1 -1
  128. package/dist/domain/testing/require-test-companion/rule.js +2 -4
  129. package/dist/domain/testing/single-act-statement/rule.d.ts.map +1 -1
  130. package/dist/domain/testing/single-act-statement/rule.js +20 -22
  131. package/package.json +35 -38
@@ -55,13 +55,13 @@ function buildMissingFenceFix(example) {
55
55
  function buildMissingLanguageFix(original) {
56
56
  const lineBreak = original.includes("\r\n") ? "\r\n" : "\n";
57
57
  const lines = original.split(/\r?\n/u);
58
- let inFence = false;
58
+ let isInFence = false;
59
59
  const updatedLines = lines.map((line) => {
60
60
  const { inFence: nextInFence, line: nextLine } = applyFenceLanguage({
61
- inFence,
61
+ inFence: isInFence,
62
62
  line,
63
63
  });
64
- inFence = nextInFence;
64
+ isInFence = nextInFence;
65
65
  return nextLine;
66
66
  });
67
67
  const updated = updatedLines.join(lineBreak);
@@ -182,4 +182,4 @@ function stripContentPrefix(context) {
182
182
  return line.replace(/^\s*\*\s?/u, "");
183
183
  }
184
184
  export { createFixer };
185
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL2RvY3MvcmVxdWlyZS1leGFtcGxlLWxhbmd1YWdlL2ZpeGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQTREeEU7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLGtCQUFrQixDQUFDLE9BQTZCO0lBQ3ZELE1BQU0sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBQ2xDLE1BQU0sU0FBUyxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUV2QyxJQUFJLFNBQVMsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3pCLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxPQUFPLElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO0lBQ3RFLE1BQU0sUUFBUSxHQUFHLGlCQUFpQjtRQUNoQyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsT0FBTyxrQkFBa0I7UUFDeEMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUVULE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDO0FBQy9DLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsb0JBQW9CLENBQUMsT0FBZ0I7SUFDNUMsTUFBTSxZQUFZLEdBQUcscUJBQXFCLENBQUM7UUFDekMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPO1FBQ3hCLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtLQUN2QixDQUFDLENBQUM7SUFFSCxPQUFPO1FBQ0wsR0FBRyxPQUFPLENBQUMsTUFBTSxVQUFVO1FBQzNCLEdBQUcsT0FBTyxD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QUFDO1FBQ3ZCLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxJQUFJLGdCQUFnQixFQUFFLENBQUM7UUFDckIsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDN0IsT0FBTyxLQUFLLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRUQsT0FBTyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUN2QyxDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLGtCQUFrQixDQUFDLE9BQWtDO0lBQzVELE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBRWpDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQzVCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDeEMsQ0FBQztBQUVELE9BQU8sRUFBRSxXQUFXLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUnVsZSB9IGZyb20gXCJlc2xpbnRcIjtcblxuaW1wb3J0IHR5cGUgeyBFeGFtcGxlLCBQcm9ibGVtIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuaW1wb3J0IHsgcGFyc2VGZW5jZUxpbmUsIHJlbW92ZUVtcHR5RmVuY2VzIH0gZnJvbSBcIi4vZW1wdHktZmVuY2UtZml4ZXNcIjtcblxuLyoqIFR5cGUgZGVmaW5pdGlvbiBmb3IgcnVsZSBkYXRhLiAqL1xuaW50ZXJmYWNlIEVtcHR5RXhhbXBsZUZpeENvbnRleHQge1xuICAvKiogRXhhbXBsZSBmaWVsZCB2YWx1ZS4gKi9cbiAgZXhhbXBsZTogRXhhbXBsZTtcbiAgLyoqIEhhc090aGVyRXhhbXBsZXMgZmllbGQgdmFsdWUuICovXG4gIGhhc090aGVyRXhhbXBsZXM6IGJvb2xlYW47XG4gIC8qKiBPcmlnaW5hbCBmaWVsZCB2YWx1ZS4gKi9cbiAgb3JpZ2luYWw6IHN0cmluZztcbn1cblxuLyoqIFR5cGUgZGVmaW5pdGlvbiBmb3IgcnVsZSBkYXRhLiAqL1xuaW50ZXJmYWNlIEZlbmNlTGFuZ3VhZ2VDb250ZXh0IHtcbiAgLyoqIEluRmVuY2UgZmllbGQgdmFsdWUuICovXG4gIGluRmVuY2U6IGJvb2xlYW47XG4gIC8qKiBMaW5lIGZpZWxkIHZhbHVlLiAqL1xuICBsaW5lOiBzdHJpbmc7XG59XG5cbi8qKiBUeXBlIGRlZmluaXRpb24gZm9yIHJ1bGUgZGF0YS4gKi9cbmludGVyZmFjZSBGZW5jZVJlc3VsdCB7XG4gIC8qKiBJbkZlbmNlIGZpZWxkIHZhbHVlLiAqL1xuICBpbkZlbmNlOiBib29sZWFuO1xuICAvKiogTGluZSBmaWVsZCB2YWx1ZS4gKi9cbiAgbGluZTogc3RyaW5nO1xufVxuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG5pbnRlcmZhY2UgRml4ZXJDb250ZXh0IHtcbiAgLyoqIEFic29sdXRlRW5kIGZpZWxkIHZhbHVlLiAqL1xuICBhYnNvbHV0ZUVuZDogbnVtYmVyO1xuICAvKiogQWJzb2x1dGVTdGFydCBmaWVsZCB2YWx1ZS4gKi9cbiAgYWJzb2x1dGVTdGFydDogbnVtYmVyO1xuICAvKiogRXhhbXBsZSBmaWVsZCB2YWx1ZS4gKi9cbiAgZXhhbXBsZTogRXhhbXBsZTtcbiAgLyoqIEhhc090aGVyRXhhbXBsZXMgZmllbGQgdmFsdWUuICovXG4gIGhhc090aGVyRXhhbXBsZXM6IGJvb2xlYW47XG4gIC8qKiBQcm9ibGVtIGZpZWxkIHZhbHVlLiAqL1xuICBwcm9ibGVtOiBQcm9ibGVtO1xuICAvKiogU291cmNlVGV4dCBmaWVsZCB2YWx1ZS4gKi9cbiAgc291cmNlVGV4dDogc3RyaW5nO1xufVxuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG5pbnRlcmZhY2UgTm9ybWFsaXplQ29udGVudExpbmVzQ29udGV4dCB7XG4gIC8qKiBDb250ZW50IGZpZWxkIHZhbHVlLiAqL1xuICBjb250ZW50OiBzdHJpbmc7XG4gIC8qKiBQcmVmaXggZmllbGQgdmFsdWUuICovXG4gIHByZWZpeDogc3RyaW5nO1xufVxuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG5pbnRlcmZhY2UgU3RyaXBDb250ZW50UHJlZml4Q29udGV4dCB7XG4gIC8qKiBMaW5lIGZpZWxkIHZhbHVlLiAqL1xuICBsaW5lOiBzdHJpbmc7XG4gIC8qKiBQcmVmaXggZmllbGQgdmFsdWUuICovXG4gIHByZWZpeDogc3RyaW5nO1xufVxuXG4vKipcbiAqIEFwcGxpZXMgYSBsYW5ndWFnZSB0byBhIGZlbmNlIGxpbmUgd2hlbiBuZWVkZWQuXG4gKiBAcGFyYW0gY29udGV4dCBGZW5jZSBzdGF0ZSBhbmQgbGluZSBkYXRhLlxuICogQHJldHVybnMgVXBkYXRlZCBsaW5lIGFuZCBmZW5jZSBzdGF0ZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCByZXN1bHQgPSBhcHBseUZlbmNlTGFuZ3VhZ2UoeyBpbkZlbmNlOiBmYWxzZSwgbGluZTogXCIgKiBgYGBcIiB9KTtcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBhcHBseUZlbmNlTGFuZ3VhZ2UoY29udGV4dDogRmVuY2VMYW5ndWFnZUNvbnRleHQpOiBGZW5jZVJlc3VsdCB7XG4gIGNvbnN0IHsgaW5GZW5jZSwgbGluZSB9ID0gY29udGV4dDtcbiAgY29uc3QgZmVuY2VJbmZvID0gcGFyc2VGZW5jZUxpbmUobGluZSk7XG5cbiAgaWYgKGZlbmNlSW5mbyA9PT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuIHsgaW5GZW5jZSwgbGluZSB9O1xuICB9XG5cbiAgY29uc3Qgc2hvdWxkQWRkTGFuZ3VhZ2UgPSAhaW5GZW5jZSAmJiBmZW5jZUluZm8ubGFuZ3VhZ2UubGVuZ3RoID09PSAwO1xuICBjb25zdCBuZXh0TGluZSA9IHNob3VsZEFkZExhbmd1YWdlXG4gICAgPyBgJHtmZW5jZUluZm8ubGVhZGluZ31cXGBcXGBcXGB0eXBlc2NyaXB0YFxuICAgIDogbGluZTtcblxuICByZXR1cm4geyBpbkZlbmNlOiAhaW5GZW5jZSwgbGluZTogbmV4dExpbmUgfTtcbn1cblxuLyoqXG4gKiBCdWlsZHMgYSBmdWxsIGV4YW1wbGUgd2l0aCBhIGZlbmNlZCBibG9jayB3aGVuIG1pc3NpbmcgZW50aXJlbHkuXG4gKiBAcGFyYW0gZXhhbXBsZSBFeGFtcGxlIG1ldGFkYXRhLlxuICogQHJldHVybnMgRXhhbXBsZSB0ZXh0IHdpdGggYSBmZW5jZWQgYmxvY2suXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgdGV4dCA9IGJ1aWxkTWlzc2luZ0ZlbmNlRml4KGV4YW1wbGUpO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGJ1aWxkTWlzc2luZ0ZlbmNlRml4KGV4YW1wbGU6IEV4YW1wbGUpOiBzdHJpbmcge1xuICBjb25zdCBjb250ZW50TGluZXMgPSBub3JtYWxpemVDb250ZW50TGluZXMoe1xuICAgIGNvbnRlbnQ6IGV4YW1wbGUuY29udGVudCxcbiAgICBwcmVmaXg6IGV4YW1wbGUucHJlZml4LFxuICB9KTtcblxuICByZXR1cm4gW1xuICAgIGAke2V4YW1wbGUucHJlZml4fUBleGFtcGxlYCxcbiAgICBgJHtleGFtcGxlLnByZWZpeH1cXGBcXGBcXGB0eXBlc2NyaXB0YCxcbiAgICAuLi5jb250ZW50TGluZXMubWFwKChjb250ZW50TGluZSkgPT5cbiAgICAgIGNvbnRlbnRMaW5lLmxlbmd0aCA+IDBcbiAgICAgICAgPyBgJHtleGFtcGxlLnByZWZpeH0gJHtjb250ZW50TGluZX1gXG4gICAgICAgIDogZXhhbXBsZS5wcmVmaXgsXG4gICAgKSxcbiAgICBgJHtleGFtcGxlLnByZWZpeH1cXGBcXGBcXGBgLFxuICBdLmpvaW4oXCJcXG5cIik7XG59XG5cbi8qKlxuICogQWRkcyBtaXNzaW5nIGxhbmd1YWdlcyB0byBleGlzdGluZyBmZW5jZWQgYmxvY2tzLlxuICogQHBhcmFtIG9yaWdpbmFsIE9yaWdpbmFsIGNvbW1lbnQgdGV4dC5cbiAqIEByZXR1cm5zIFVwZGF0ZWQgY29tbWVudCB0ZXh0IHdoZW4gY2hhbmdlcyBhcmUgbWFkZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCB1cGRhdGVkID0gYnVpbGRNaXNzaW5nTGFuZ3VhZ2VGaXgoXCIqIGBgYFxcbiogb2tcXG4qIGBgYFwiKTtcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBidWlsZE1pc3NpbmdMYW5ndWFnZUZpeChvcmlnaW5hbDogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgbGluZUJyZWFrID0gb3JpZ2luYWwuaW5jbHVkZXMoXCJcXHJcXG5cIikgPyBcIlxcclxcblwiIDogXCJcXG5cIjtcbiAgY29uc3QgbGluZXMgPSBvcmlnaW5hbC5zcGxpdCgvXFxyP1xcbi91KTtcbiAgbGV0IGluRmVuY2UgPSBmYWxzZTtcblxuICBjb25zdCB1cGRhdGVkTGluZXMgPSBsaW5lcy5tYXAoKGxpbmUpID0+IHtcbiAgICBjb25zdCB7IGluRmVuY2U6IG5leHRJbkZlbmNlLCBsaW5lOiBuZXh0TGluZSB9ID0gYXBwbHlGZW5jZUxhbmd1YWdlKHtcbiAgICAgIGluRmVuY2UsXG4gICAgICBsaW5lLFxuICAgIH0pO1xuICAgIGluRmVuY2UgPSBuZXh0SW5GZW5jZTtcbiAgICByZXR1cm4gbmV4dExpbmU7XG4gIH0pO1xuXG4gIGNvbnN0IHVwZGF0ZWQgPSB1cGRhdGVkTGluZXMuam9pbihsaW5lQnJlYWspO1xuXG4gIHJldHVybiB1cGRhdGVkID09PSBvcmlnaW5hbCA/IHZvaWQgMCA6IHVwZGF0ZWQ7XG59XG5cbi8qKlxuICogQnVpbGRzIGEgZml4ZXIgZnVuY3Rpb24gZm9yIHRoZSByZXBvcnQuXG4gKiBAcGFyYW0gY29udGV4dCBGaXhlciBjb250ZXh0IGRldGFpbHMuXG4gKiBAcmV0dXJucyBGaXhlciBmdW5jdGlvbiBmb3IgRVNMaW50LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGZpeGVyID0gY3JlYXRlRml4ZXIoY29udGV4dCk7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gY3JlYXRlRml4ZXIoXG4gIGNvbnRleHQ6IEZpeGVyQ29udGV4dCxcbik6IChmaXhlcjogUnVsZS5SdWxlRml4ZXIpID0+IFJ1bGUuRml4IHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgeyBhYnNvbHV0ZUVuZCwgYWJzb2x1dGVTdGFydCB9ID0gY29udGV4dDtcblxuICByZXR1cm4gKGZpeGVyOiBSdWxlLlJ1bGVGaXhlcik6IFJ1bGUuRml4IHwgdW5kZWZpbmVkID0+IHtcbiAgICBjb25zdCB1cGRhdGVkID0gZ2V0VXBkYXRlZEV4YW1wbGVUZXh0KGNvbnRleHQpO1xuXG4gICAgaWYgKHVwZGF0ZWQgPT09IHZvaWQgMCkge1xuICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICB9XG5cbiAgICByZXR1cm4gZml4ZXIucmVwbGFjZVRleHRSYW5nZShbYWJzb2x1dGVTdGFydCwgYWJzb2x1dGVFbmRdLCB1cGRhdGVkKTtcbiAgfTtcbn1cblxuLyoqXG4gKiBFeHRyYWN0cyB0cmFpbGluZyB3aGl0ZXNwYWNlIGZyb20gdGhlIG9yaWdpbmFsIGV4YW1wbGUgcmFuZ2UuXG4gKiBAcGFyYW0gb3JpZ2luYWwgT3JpZ2luYWwgZXhhbXBsZSB0ZXh0LlxuICogQHJldHVybnMgVHJhaWxpbmcgd2hpdGVzcGFjZSB0byBwcmVzZXJ2ZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBzdWZmaXggPSBnZXRUcmFpbGluZ1doaXRlc3BhY2UoXCIqIEBleGFtcGxlIG9rXFxuIFwiKTtcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBnZXRUcmFpbGluZ1doaXRlc3BhY2Uob3JpZ2luYWw6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IHRyYWlsaW5nTWF0Y2ggPSAvKD86XFxyP1xcblsgXFx0XSopJC91LmV4ZWMob3JpZ2luYWwpO1xuXG4gIHJldHVybiB0cmFpbGluZ01hdGNoPy5bMF0gPz8gXCJcIjtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyB0aGUgdXBkYXRlZCB0ZXh0IGZvciBhbiBleGFtcGxlLlxuICogQHBhcmFtIGNvbnRleHQgRml4ZXIgY29udGV4dCBkZXRhaWxzLlxuICogQHJldHVybnMgRml4ZWQgZXhhbXBsZSB0ZXh0IHdoZW4gYSBjaGFuZ2UgaXMgcmVxdWlyZWQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgdGV4dCA9IGdldFVwZGF0ZWRFeGFtcGxlVGV4dChjb250ZXh0KTtcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBnZXRVcGRhdGVkRXhhbXBsZVRleHQoY29udGV4dDogRml4ZXJDb250ZXh0KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgY29uc3Qge1xuICAgIGFic29sdXRlRW5kLFxuICAgIGFic29sdXRlU3RhcnQsXG4gICAgZXhhbXBsZSxcbiAgICBoYXNPdGhlckV4YW1wbGVzLFxuICAgIHByb2JsZW0sXG4gICAgc291cmNlVGV4dCxcbiAgfSA9IGNvbnRleHQ7XG4gIGNvbnN0IG9yaWdpbmFsID0gc291cmNlVGV4dC5zbGljZShhYnNvbHV0ZVN0YXJ0LCBhYnNvbHV0ZUVuZCk7XG5cbiAgaWYgKHByb2JsZW0gPT09IFwibWlzc2luZ0xhbmd1YWdlXCIpIHtcbiAgICByZXR1cm4gYnVpbGRNaXNzaW5nTGFuZ3VhZ2VGaXgob3JpZ2luYWwpO1xuICB9XG5cbiAgaWYgKHByb2JsZW0gPT09IFwiZW1wdHlFeGFtcGxlXCIpIHtcbiAgICByZXR1cm4gcmVzb2x2ZUVtcHR5RXhhbXBsZUZpeCh7IGV4YW1wbGUsIGhhc090aGVyRXhhbXBsZXMsIG9yaWdpbmFsIH0pO1xuICB9XG5cbiAgaWYgKHByb2JsZW0gPT09IFwiY29udGVudE91dHNpZGVGZW5jZVwiKSB7XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuXG4gIGNvbnN0IGZpeGVkID0gYnVpbGRNaXNzaW5nRmVuY2VGaXgoZXhhbXBsZSk7XG4gIGNvbnN0IHRyYWlsaW5nV2hpdGVzcGFjZSA9IGdldFRyYWlsaW5nV2hpdGVzcGFjZShvcmlnaW5hbCk7XG5cbiAgcmV0dXJuIHRyYWlsaW5nV2hpdGVzcGFjZS5sZW5ndGggPiAwXG4gICAgPyBgJHtmaXhlZH0ke3RyYWlsaW5nV2hpdGVzcGFjZX1gXG4gICAgOiBmaXhlZDtcbn1cblxuLyoqXG4gKiBOb3JtYWxpemVzIHJhdyBleGFtcGxlIGNvbnRlbnQgbGluZXMgYmVmb3JlIGZlbmNlIHdyYXBwaW5nLlxuICogQHBhcmFtIGNvbnRleHQgUHJlZml4IGFuZCByYXcgY29udGVudC5cbiAqIEByZXR1cm5zIENvbnRlbnQgbGluZXMgc2FmZSB0byB3cmFwIGluIGEgZmVuY2VkIGJsb2NrLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGxpbmVzID0gbm9ybWFsaXplQ29udGVudExpbmVzKHsgY29udGVudDogXCJhXFxuICogYlwiLCBwcmVmaXg6IFwiICogXCIgfSk7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplQ29udGVudExpbmVzKFxuICBjb250ZXh0OiBOb3JtYWxpemVDb250ZW50TGluZXNDb250ZXh0LFxuKTogc3RyaW5nW10ge1xuICBjb25zdCB7IGNvbnRlbnQsIHByZWZpeCB9ID0gY29udGV4dDtcbiAgY29uc3QgbGluZXMgPSBjb250ZW50Lmxlbmd0aCA+IDAgPyBjb250ZW50LnNwbGl0KC9cXHI/XFxuL3UpIDogW107XG5cbiAgcmV0dXJuIGxpbmVzXG4gICAgLm1hcCgobGluZSkgPT4gc3RyaXBDb250ZW50UHJlZml4KHsgbGluZSwgcHJlZml4IH0pKVxuICAgIC5tYXAoKGxpbmUpID0+IGxpbmUucmVwbGFjZSgvXFxzKlxcKlxcL1sgXFx0XSokL3UsIFwiXCIpKTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyB0aGUgYXBwcm9wcmlhdGUgZml4IGZvciBlbXB0eSBleGFtcGxlcy5cbiAqIEBwYXJhbSBjb250ZXh0IEVtcHR5IGV4YW1wbGUgZml4IGRldGFpbHMuXG4gKiBAcmV0dXJucyBGaXhlZCBleGFtcGxlIHRleHQgd2hlbiBhIGNoYW5nZSBpcyByZXF1aXJlZC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCB0ZXh0ID0gcmVzb2x2ZUVtcHR5RXhhbXBsZUZpeChjb250ZXh0KTtcbiAqIGBgYFxuICovXG5mdW5jdGlvbiByZXNvbHZlRW1wdHlFeGFtcGxlRml4KFxuICBjb250ZXh0OiBFbXB0eUV4YW1wbGVGaXhDb250ZXh0LFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgeyBleGFtcGxlLCBoYXNPdGhlckV4YW1wbGVzLCBvcmlnaW5hbCB9ID0gY29udGV4dDtcbiAgY29uc3QgY2xlYW5lZCA9IHJlbW92ZUVtcHR5RmVuY2VzKG9yaWdpbmFsKTtcblxuICBpZiAoY2xlYW5lZCAhPT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuIGNsZWFuZWQ7XG4gIH1cblxuICBpZiAoaGFzT3RoZXJFeGFtcGxlcykge1xuICAgIHJldHVybiBcIlwiO1xuICB9XG5cbiAgaWYgKG9yaWdpbmFsLmluY2x1ZGVzKFwiYGBgXCIpKSB7XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuXG4gIHJldHVybiBidWlsZE1pc3NpbmdGZW5jZUZpeChleGFtcGxlKTtcbn1cblxuLyoqXG4gKiBSZW1vdmVzIEpTRG9jIGxpbmUgcHJlZml4ZXMgZnJvbSBleGFtcGxlIGNvbnRlbnQuXG4gKiBAcGFyYW0gY29udGV4dCBQcmVmaXggYW5kIHNvdXJjZSBsaW5lLlxuICogQHJldHVybnMgQ2xlYW5lZCBjb250ZW50IGxpbmUuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgbGluZSA9IHN0cmlwQ29udGVudFByZWZpeCh7IGxpbmU6IFwiICogdmFsdWVcIiwgcHJlZml4OiBcIiAqIFwiIH0pO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIHN0cmlwQ29udGVudFByZWZpeChjb250ZXh0OiBTdHJpcENvbnRlbnRQcmVmaXhDb250ZXh0KTogc3RyaW5nIHtcbiAgY29uc3QgeyBsaW5lLCBwcmVmaXggfSA9IGNvbnRleHQ7XG5cbiAgaWYgKGxpbmUuc3RhcnRzV2l0aChwcmVmaXgpKSB7XG4gICAgcmV0dXJuIGxpbmUuc2xpY2UocHJlZml4Lmxlbmd0aCk7XG4gIH1cblxuICByZXR1cm4gbGluZS5yZXBsYWNlKC9eXFxzKlxcKlxccz8vdSwgXCJcIik7XG59XG5cbmV4cG9ydCB7IGNyZWF0ZUZpeGVyIH07XG4iXX0=
185
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL2RvY3MvcmVxdWlyZS1leGFtcGxlLWxhbmd1YWdlL2ZpeGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQTREeEU7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLGtCQUFrQixDQUFDLE9BQTZCO0lBQ3ZELE1BQU0sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBQ2xDLE1BQU0sU0FBUyxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUV2QyxJQUFJLFNBQVMsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3pCLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxPQUFPLElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO0lBQ3RFLE1BQU0sUUFBUSxHQUFHLGlCQUFpQjtRQUNoQyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsT0FBTyxrQkFBa0I7UUFDeEMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUVULE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDO0FBQy9DLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsb0JBQW9CLENBQUMsT0FBZ0I7SUFDNUMsTUFBTSxZQUFZLEdBQUcscUJBQXFCLENBQUM7UUFDekMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPO1FBQ3hCLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtLQUN2QixDQUFDLENBQUM7SUFFSCxPQUFPO1FBQ0wsR0FBRyxPQUFPLENBQUMsTUFBTSxVQUFVO1FBQzNCLEdBQUcsT0FBTyxD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Q0FBQyxFQUFFLENBQUM7UUFDdkIsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELElBQUksZ0JBQWdCLEVBQUUsQ0FBQztRQUNyQixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUM3QixPQUFPLEtBQUssQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxPQUFPLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3ZDLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsa0JBQWtCLENBQUMsT0FBa0M7SUFDNUQsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUM7SUFFakMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDNUIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSdWxlIH0gZnJvbSBcImVzbGludFwiO1xuXG5pbXBvcnQgdHlwZSB7IEV4YW1wbGUsIFByb2JsZW0gfSBmcm9tIFwiLi90eXBlc1wiO1xuXG5pbXBvcnQgeyBwYXJzZUZlbmNlTGluZSwgcmVtb3ZlRW1wdHlGZW5jZXMgfSBmcm9tIFwiLi9lbXB0eS1mZW5jZS1maXhlc1wiO1xuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG5pbnRlcmZhY2UgRW1wdHlFeGFtcGxlRml4Q29udGV4dCB7XG4gIC8qKiBFeGFtcGxlIGZpZWxkIHZhbHVlLiAqL1xuICBleGFtcGxlOiBFeGFtcGxlO1xuICAvKiogSGFzT3RoZXJFeGFtcGxlcyBmaWVsZCB2YWx1ZS4gKi9cbiAgaGFzT3RoZXJFeGFtcGxlczogYm9vbGVhbjtcbiAgLyoqIE9yaWdpbmFsIGZpZWxkIHZhbHVlLiAqL1xuICBvcmlnaW5hbDogc3RyaW5nO1xufVxuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG5pbnRlcmZhY2UgRmVuY2VMYW5ndWFnZUNvbnRleHQge1xuICAvKiogSW5GZW5jZSBmaWVsZCB2YWx1ZS4gKi9cbiAgaW5GZW5jZTogYm9vbGVhbjtcbiAgLyoqIExpbmUgZmllbGQgdmFsdWUuICovXG4gIGxpbmU6IHN0cmluZztcbn1cblxuLyoqIFR5cGUgZGVmaW5pdGlvbiBmb3IgcnVsZSBkYXRhLiAqL1xuaW50ZXJmYWNlIEZlbmNlUmVzdWx0IHtcbiAgLyoqIEluRmVuY2UgZmllbGQgdmFsdWUuICovXG4gIGluRmVuY2U6IGJvb2xlYW47XG4gIC8qKiBMaW5lIGZpZWxkIHZhbHVlLiAqL1xuICBsaW5lOiBzdHJpbmc7XG59XG5cbi8qKiBUeXBlIGRlZmluaXRpb24gZm9yIHJ1bGUgZGF0YS4gKi9cbmludGVyZmFjZSBGaXhlckNvbnRleHQge1xuICAvKiogQWJzb2x1dGVFbmQgZmllbGQgdmFsdWUuICovXG4gIGFic29sdXRlRW5kOiBudW1iZXI7XG4gIC8qKiBBYnNvbHV0ZVN0YXJ0IGZpZWxkIHZhbHVlLiAqL1xuICBhYnNvbHV0ZVN0YXJ0OiBudW1iZXI7XG4gIC8qKiBFeGFtcGxlIGZpZWxkIHZhbHVlLiAqL1xuICBleGFtcGxlOiBFeGFtcGxlO1xuICAvKiogSGFzT3RoZXJFeGFtcGxlcyBmaWVsZCB2YWx1ZS4gKi9cbiAgaGFzT3RoZXJFeGFtcGxlczogYm9vbGVhbjtcbiAgLyoqIFByb2JsZW0gZmllbGQgdmFsdWUuICovXG4gIHByb2JsZW06IFByb2JsZW07XG4gIC8qKiBTb3VyY2VUZXh0IGZpZWxkIHZhbHVlLiAqL1xuICBzb3VyY2VUZXh0OiBzdHJpbmc7XG59XG5cbi8qKiBUeXBlIGRlZmluaXRpb24gZm9yIHJ1bGUgZGF0YS4gKi9cbmludGVyZmFjZSBOb3JtYWxpemVDb250ZW50TGluZXNDb250ZXh0IHtcbiAgLyoqIENvbnRlbnQgZmllbGQgdmFsdWUuICovXG4gIGNvbnRlbnQ6IHN0cmluZztcbiAgLyoqIFByZWZpeCBmaWVsZCB2YWx1ZS4gKi9cbiAgcHJlZml4OiBzdHJpbmc7XG59XG5cbi8qKiBUeXBlIGRlZmluaXRpb24gZm9yIHJ1bGUgZGF0YS4gKi9cbmludGVyZmFjZSBTdHJpcENvbnRlbnRQcmVmaXhDb250ZXh0IHtcbiAgLyoqIExpbmUgZmllbGQgdmFsdWUuICovXG4gIGxpbmU6IHN0cmluZztcbiAgLyoqIFByZWZpeCBmaWVsZCB2YWx1ZS4gKi9cbiAgcHJlZml4OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQXBwbGllcyBhIGxhbmd1YWdlIHRvIGEgZmVuY2UgbGluZSB3aGVuIG5lZWRlZC5cbiAqIEBwYXJhbSBjb250ZXh0IEZlbmNlIHN0YXRlIGFuZCBsaW5lIGRhdGEuXG4gKiBAcmV0dXJucyBVcGRhdGVkIGxpbmUgYW5kIGZlbmNlIHN0YXRlLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHJlc3VsdCA9IGFwcGx5RmVuY2VMYW5ndWFnZSh7IGluRmVuY2U6IGZhbHNlLCBsaW5lOiBcIiAqIGBgYFwiIH0pO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGFwcGx5RmVuY2VMYW5ndWFnZShjb250ZXh0OiBGZW5jZUxhbmd1YWdlQ29udGV4dCk6IEZlbmNlUmVzdWx0IHtcbiAgY29uc3QgeyBpbkZlbmNlLCBsaW5lIH0gPSBjb250ZXh0O1xuICBjb25zdCBmZW5jZUluZm8gPSBwYXJzZUZlbmNlTGluZShsaW5lKTtcblxuICBpZiAoZmVuY2VJbmZvID09PSB2b2lkIDApIHtcbiAgICByZXR1cm4geyBpbkZlbmNlLCBsaW5lIH07XG4gIH1cblxuICBjb25zdCBzaG91bGRBZGRMYW5ndWFnZSA9ICFpbkZlbmNlICYmIGZlbmNlSW5mby5sYW5ndWFnZS5sZW5ndGggPT09IDA7XG4gIGNvbnN0IG5leHRMaW5lID0gc2hvdWxkQWRkTGFuZ3VhZ2VcbiAgICA/IGAke2ZlbmNlSW5mby5sZWFkaW5nfVxcYFxcYFxcYHR5cGVzY3JpcHRgXG4gICAgOiBsaW5lO1xuXG4gIHJldHVybiB7IGluRmVuY2U6ICFpbkZlbmNlLCBsaW5lOiBuZXh0TGluZSB9O1xufVxuXG4vKipcbiAqIEJ1aWxkcyBhIGZ1bGwgZXhhbXBsZSB3aXRoIGEgZmVuY2VkIGJsb2NrIHdoZW4gbWlzc2luZyBlbnRpcmVseS5cbiAqIEBwYXJhbSBleGFtcGxlIEV4YW1wbGUgbWV0YWRhdGEuXG4gKiBAcmV0dXJucyBFeGFtcGxlIHRleHQgd2l0aCBhIGZlbmNlZCBibG9jay5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCB0ZXh0ID0gYnVpbGRNaXNzaW5nRmVuY2VGaXgoZXhhbXBsZSk7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gYnVpbGRNaXNzaW5nRmVuY2VGaXgoZXhhbXBsZTogRXhhbXBsZSk6IHN0cmluZyB7XG4gIGNvbnN0IGNvbnRlbnRMaW5lcyA9IG5vcm1hbGl6ZUNvbnRlbnRMaW5lcyh7XG4gICAgY29udGVudDogZXhhbXBsZS5jb250ZW50LFxuICAgIHByZWZpeDogZXhhbXBsZS5wcmVmaXgsXG4gIH0pO1xuXG4gIHJldHVybiBbXG4gICAgYCR7ZXhhbXBsZS5wcmVmaXh9QGV4YW1wbGVgLFxuICAgIGAke2V4YW1wbGUucHJlZml4fVxcYFxcYFxcYHR5cGVzY3JpcHRgLFxuICAgIC4uLmNvbnRlbnRMaW5lcy5tYXAoKGNvbnRlbnRMaW5lKSA9PlxuICAgICAgY29udGVudExpbmUubGVuZ3RoID4gMFxuICAgICAgICA/IGAke2V4YW1wbGUucHJlZml4fSAke2NvbnRlbnRMaW5lfWBcbiAgICAgICAgOiBleGFtcGxlLnByZWZpeCxcbiAgICApLFxuICAgIGAke2V4YW1wbGUucHJlZml4fVxcYFxcYFxcYGAsXG4gIF0uam9pbihcIlxcblwiKTtcbn1cblxuLyoqXG4gKiBBZGRzIG1pc3NpbmcgbGFuZ3VhZ2VzIHRvIGV4aXN0aW5nIGZlbmNlZCBibG9ja3MuXG4gKiBAcGFyYW0gb3JpZ2luYWwgT3JpZ2luYWwgY29tbWVudCB0ZXh0LlxuICogQHJldHVybnMgVXBkYXRlZCBjb21tZW50IHRleHQgd2hlbiBjaGFuZ2VzIGFyZSBtYWRlLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHVwZGF0ZWQgPSBidWlsZE1pc3NpbmdMYW5ndWFnZUZpeChcIiogYGBgXFxuKiBva1xcbiogYGBgXCIpO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGJ1aWxkTWlzc2luZ0xhbmd1YWdlRml4KG9yaWdpbmFsOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBjb25zdCBsaW5lQnJlYWsgPSBvcmlnaW5hbC5pbmNsdWRlcyhcIlxcclxcblwiKSA/IFwiXFxyXFxuXCIgOiBcIlxcblwiO1xuICBjb25zdCBsaW5lcyA9IG9yaWdpbmFsLnNwbGl0KC9cXHI/XFxuL3UpO1xuICBsZXQgaXNJbkZlbmNlID0gZmFsc2U7XG5cbiAgY29uc3QgdXBkYXRlZExpbmVzID0gbGluZXMubWFwKChsaW5lKSA9PiB7XG4gICAgY29uc3QgeyBpbkZlbmNlOiBuZXh0SW5GZW5jZSwgbGluZTogbmV4dExpbmUgfSA9IGFwcGx5RmVuY2VMYW5ndWFnZSh7XG4gICAgICBpbkZlbmNlOiBpc0luRmVuY2UsXG4gICAgICBsaW5lLFxuICAgIH0pO1xuICAgIGlzSW5GZW5jZSA9IG5leHRJbkZlbmNlO1xuICAgIHJldHVybiBuZXh0TGluZTtcbiAgfSk7XG5cbiAgY29uc3QgdXBkYXRlZCA9IHVwZGF0ZWRMaW5lcy5qb2luKGxpbmVCcmVhayk7XG5cbiAgcmV0dXJuIHVwZGF0ZWQgPT09IG9yaWdpbmFsID8gdm9pZCAwIDogdXBkYXRlZDtcbn1cblxuLyoqXG4gKiBCdWlsZHMgYSBmaXhlciBmdW5jdGlvbiBmb3IgdGhlIHJlcG9ydC5cbiAqIEBwYXJhbSBjb250ZXh0IEZpeGVyIGNvbnRleHQgZGV0YWlscy5cbiAqIEByZXR1cm5zIEZpeGVyIGZ1bmN0aW9uIGZvciBFU0xpbnQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZml4ZXIgPSBjcmVhdGVGaXhlcihjb250ZXh0KTtcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBjcmVhdGVGaXhlcihcbiAgY29udGV4dDogRml4ZXJDb250ZXh0LFxuKTogKGZpeGVyOiBSdWxlLlJ1bGVGaXhlcikgPT4gUnVsZS5GaXggfCB1bmRlZmluZWQge1xuICBjb25zdCB7IGFic29sdXRlRW5kLCBhYnNvbHV0ZVN0YXJ0IH0gPSBjb250ZXh0O1xuXG4gIHJldHVybiAoZml4ZXI6IFJ1bGUuUnVsZUZpeGVyKTogUnVsZS5GaXggfCB1bmRlZmluZWQgPT4ge1xuICAgIGNvbnN0IHVwZGF0ZWQgPSBnZXRVcGRhdGVkRXhhbXBsZVRleHQoY29udGV4dCk7XG5cbiAgICBpZiAodXBkYXRlZCA9PT0gdm9pZCAwKSB7XG4gICAgICByZXR1cm4gdm9pZCAwO1xuICAgIH1cblxuICAgIHJldHVybiBmaXhlci5yZXBsYWNlVGV4dFJhbmdlKFthYnNvbHV0ZVN0YXJ0LCBhYnNvbHV0ZUVuZF0sIHVwZGF0ZWQpO1xuICB9O1xufVxuXG4vKipcbiAqIEV4dHJhY3RzIHRyYWlsaW5nIHdoaXRlc3BhY2UgZnJvbSB0aGUgb3JpZ2luYWwgZXhhbXBsZSByYW5nZS5cbiAqIEBwYXJhbSBvcmlnaW5hbCBPcmlnaW5hbCBleGFtcGxlIHRleHQuXG4gKiBAcmV0dXJucyBUcmFpbGluZyB3aGl0ZXNwYWNlIHRvIHByZXNlcnZlLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHN1ZmZpeCA9IGdldFRyYWlsaW5nV2hpdGVzcGFjZShcIiogQGV4YW1wbGUgb2tcXG4gXCIpO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGdldFRyYWlsaW5nV2hpdGVzcGFjZShvcmlnaW5hbDogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgdHJhaWxpbmdNYXRjaCA9IC8oPzpcXHI/XFxuWyBcXHRdKikkL3UuZXhlYyhvcmlnaW5hbCk7XG5cbiAgcmV0dXJuIHRyYWlsaW5nTWF0Y2g/LlswXSA/PyBcIlwiO1xufVxuXG4vKipcbiAqIFJlc29sdmVzIHRoZSB1cGRhdGVkIHRleHQgZm9yIGFuIGV4YW1wbGUuXG4gKiBAcGFyYW0gY29udGV4dCBGaXhlciBjb250ZXh0IGRldGFpbHMuXG4gKiBAcmV0dXJucyBGaXhlZCBleGFtcGxlIHRleHQgd2hlbiBhIGNoYW5nZSBpcyByZXF1aXJlZC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCB0ZXh0ID0gZ2V0VXBkYXRlZEV4YW1wbGVUZXh0KGNvbnRleHQpO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGdldFVwZGF0ZWRFeGFtcGxlVGV4dChjb250ZXh0OiBGaXhlckNvbnRleHQpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBjb25zdCB7XG4gICAgYWJzb2x1dGVFbmQsXG4gICAgYWJzb2x1dGVTdGFydCxcbiAgICBleGFtcGxlLFxuICAgIGhhc090aGVyRXhhbXBsZXMsXG4gICAgcHJvYmxlbSxcbiAgICBzb3VyY2VUZXh0LFxuICB9ID0gY29udGV4dDtcbiAgY29uc3Qgb3JpZ2luYWwgPSBzb3VyY2VUZXh0LnNsaWNlKGFic29sdXRlU3RhcnQsIGFic29sdXRlRW5kKTtcblxuICBpZiAocHJvYmxlbSA9PT0gXCJtaXNzaW5nTGFuZ3VhZ2VcIikge1xuICAgIHJldHVybiBidWlsZE1pc3NpbmdMYW5ndWFnZUZpeChvcmlnaW5hbCk7XG4gIH1cblxuICBpZiAocHJvYmxlbSA9PT0gXCJlbXB0eUV4YW1wbGVcIikge1xuICAgIHJldHVybiByZXNvbHZlRW1wdHlFeGFtcGxlRml4KHsgZXhhbXBsZSwgaGFzT3RoZXJFeGFtcGxlcywgb3JpZ2luYWwgfSk7XG4gIH1cblxuICBpZiAocHJvYmxlbSA9PT0gXCJjb250ZW50T3V0c2lkZUZlbmNlXCIpIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG5cbiAgY29uc3QgZml4ZWQgPSBidWlsZE1pc3NpbmdGZW5jZUZpeChleGFtcGxlKTtcbiAgY29uc3QgdHJhaWxpbmdXaGl0ZXNwYWNlID0gZ2V0VHJhaWxpbmdXaGl0ZXNwYWNlKG9yaWdpbmFsKTtcblxuICByZXR1cm4gdHJhaWxpbmdXaGl0ZXNwYWNlLmxlbmd0aCA+IDBcbiAgICA/IGAke2ZpeGVkfSR7dHJhaWxpbmdXaGl0ZXNwYWNlfWBcbiAgICA6IGZpeGVkO1xufVxuXG4vKipcbiAqIE5vcm1hbGl6ZXMgcmF3IGV4YW1wbGUgY29udGVudCBsaW5lcyBiZWZvcmUgZmVuY2Ugd3JhcHBpbmcuXG4gKiBAcGFyYW0gY29udGV4dCBQcmVmaXggYW5kIHJhdyBjb250ZW50LlxuICogQHJldHVybnMgQ29udGVudCBsaW5lcyBzYWZlIHRvIHdyYXAgaW4gYSBmZW5jZWQgYmxvY2suXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgbGluZXMgPSBub3JtYWxpemVDb250ZW50TGluZXMoeyBjb250ZW50OiBcImFcXG4gKiBiXCIsIHByZWZpeDogXCIgKiBcIiB9KTtcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBub3JtYWxpemVDb250ZW50TGluZXMoXG4gIGNvbnRleHQ6IE5vcm1hbGl6ZUNvbnRlbnRMaW5lc0NvbnRleHQsXG4pOiBzdHJpbmdbXSB7XG4gIGNvbnN0IHsgY29udGVudCwgcHJlZml4IH0gPSBjb250ZXh0O1xuICBjb25zdCBsaW5lcyA9IGNvbnRlbnQubGVuZ3RoID4gMCA/IGNvbnRlbnQuc3BsaXQoL1xccj9cXG4vdSkgOiBbXTtcblxuICByZXR1cm4gbGluZXNcbiAgICAubWFwKChsaW5lKSA9PiBzdHJpcENvbnRlbnRQcmVmaXgoeyBsaW5lLCBwcmVmaXggfSkpXG4gICAgLm1hcCgobGluZSkgPT4gbGluZS5yZXBsYWNlKC9cXHMqXFwqXFwvWyBcXHRdKiQvdSwgXCJcIikpO1xufVxuXG4vKipcbiAqIFJlc29sdmVzIHRoZSBhcHByb3ByaWF0ZSBmaXggZm9yIGVtcHR5IGV4YW1wbGVzLlxuICogQHBhcmFtIGNvbnRleHQgRW1wdHkgZXhhbXBsZSBmaXggZGV0YWlscy5cbiAqIEByZXR1cm5zIEZpeGVkIGV4YW1wbGUgdGV4dCB3aGVuIGEgY2hhbmdlIGlzIHJlcXVpcmVkLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHRleHQgPSByZXNvbHZlRW1wdHlFeGFtcGxlRml4KGNvbnRleHQpO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIHJlc29sdmVFbXB0eUV4YW1wbGVGaXgoXG4gIGNvbnRleHQ6IEVtcHR5RXhhbXBsZUZpeENvbnRleHQsXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBjb25zdCB7IGV4YW1wbGUsIGhhc090aGVyRXhhbXBsZXMsIG9yaWdpbmFsIH0gPSBjb250ZXh0O1xuICBjb25zdCBjbGVhbmVkID0gcmVtb3ZlRW1wdHlGZW5jZXMob3JpZ2luYWwpO1xuXG4gIGlmIChjbGVhbmVkICE9PSB2b2lkIDApIHtcbiAgICByZXR1cm4gY2xlYW5lZDtcbiAgfVxuXG4gIGlmIChoYXNPdGhlckV4YW1wbGVzKSB7XG4gICAgcmV0dXJuIFwiXCI7XG4gIH1cblxuICBpZiAob3JpZ2luYWwuaW5jbHVkZXMoXCJgYGBcIikpIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG5cbiAgcmV0dXJuIGJ1aWxkTWlzc2luZ0ZlbmNlRml4KGV4YW1wbGUpO1xufVxuXG4vKipcbiAqIFJlbW92ZXMgSlNEb2MgbGluZSBwcmVmaXhlcyBmcm9tIGV4YW1wbGUgY29udGVudC5cbiAqIEBwYXJhbSBjb250ZXh0IFByZWZpeCBhbmQgc291cmNlIGxpbmUuXG4gKiBAcmV0dXJucyBDbGVhbmVkIGNvbnRlbnQgbGluZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBsaW5lID0gc3RyaXBDb250ZW50UHJlZml4KHsgbGluZTogXCIgKiB2YWx1ZVwiLCBwcmVmaXg6IFwiICogXCIgfSk7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gc3RyaXBDb250ZW50UHJlZml4KGNvbnRleHQ6IFN0cmlwQ29udGVudFByZWZpeENvbnRleHQpOiBzdHJpbmcge1xuICBjb25zdCB7IGxpbmUsIHByZWZpeCB9ID0gY29udGV4dDtcblxuICBpZiAobGluZS5zdGFydHNXaXRoKHByZWZpeCkpIHtcbiAgICByZXR1cm4gbGluZS5zbGljZShwcmVmaXgubGVuZ3RoKTtcbiAgfVxuXG4gIHJldHVybiBsaW5lLnJlcGxhY2UoL15cXHMqXFwqXFxzPy91LCBcIlwiKTtcbn1cblxuZXhwb3J0IHsgY3JlYXRlRml4ZXIgfTtcbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../../src/domain/docs/require-example-language/rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAKnC;;GAEG;AACH,QAAA,MAAM,0BAA0B,EAAE,IAAI,CAAC,UAsCtC,CAAC;AAEF,OAAO,EAAE,0BAA0B,EAAE,CAAC"}
1
+ {"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../../src/domain/docs/require-example-language/rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAKnC;;GAEG;AACH,QAAA,MAAM,0BAA0B,EAAE,IAAI,CAAC,UAwCtC,CAAC;AAEF,OAAO,EAAE,0BAA0B,EAAE,CAAC"}
@@ -1,4 +1,4 @@
1
- import { getExamples } from "./examples.js";
1
+ import { getExamples } from "./examples-collect.js";
2
2
  import { reportExample } from "./reporting.js";
3
3
  /**
4
4
  * ESLint rule requiring \@example tags to use fenced code blocks with a language.
@@ -7,12 +7,13 @@ const requireExampleLanguageRule = {
7
7
  create(context) {
8
8
  const { sourceCode } = context;
9
9
  for (const comment of sourceCode.getAllComments()) {
10
- if (comment.type === "Block" && comment.value.startsWith("*")) {
11
- const examples = getExamples(comment.value);
12
- const hasOtherExamples = examples.length > 1;
13
- for (const example of examples) {
14
- reportExample({ comment, context, example, hasOtherExamples });
15
- }
10
+ if (!(comment.type === "Block" && comment.value.startsWith("*"))) {
11
+ continue;
12
+ }
13
+ const examples = getExamples(comment.value);
14
+ const hasOtherExamples = examples.length > 1;
15
+ for (const example of examples) {
16
+ reportExample({ comment, context, example, hasOtherExamples });
16
17
  }
17
18
  }
18
19
  return {};
@@ -35,4 +36,4 @@ const requireExampleLanguageRule = {
35
36
  },
36
37
  };
37
38
  export { requireExampleLanguageRule };
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vZG9jcy9yZXF1aXJlLWV4YW1wbGUtbGFuZ3VhZ2UvcnVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFNUM7O0dBRUc7QUFDSCxNQUFNLDBCQUEwQixHQUFvQjtJQUNsRCxNQUFNLENBQUMsT0FBeUI7UUFDOUIsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUUvQixLQUFLLE1BQU0sT0FBTyxJQUFJLFVBQVUsQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDO1lBQ2xELElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxPQUFPLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDOUQsTUFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFFNUMsTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztnQkFFN0MsS0FBSyxNQUFNLE9BQU8sSUFBSSxRQUFRLEVBQUUsQ0FBQztvQkFDL0IsYUFBYSxDQUFDLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO2dCQUNqRSxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFDRCxJQUFJLEVBQUU7UUFDSixJQUFJLEVBQUU7WUFDSixXQUFXLEVBQ1Qsa0VBQWtFO1lBQ3BFLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLEdBQUcsRUFBRSwyRkFBMkY7U0FDakc7UUFDRCxPQUFPLEVBQUUsTUFBTTtRQUNmLFFBQVEsRUFBRTtZQUNSLG1CQUFtQixFQUNqQiwyREFBMkQ7WUFDN0QsWUFBWSxFQUFFLHdDQUF3QztZQUN0RCxZQUFZLEVBQ1YsaUZBQWlGO1lBQ25GLGVBQWUsRUFDYiwyRUFBMkU7U0FDOUU7UUFDRCxNQUFNLEVBQUUsRUFBRTtRQUNWLElBQUksRUFBRSxTQUFTO0tBQ2hCO0NBQ0YsQ0FBQztBQUVGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSdWxlIH0gZnJvbSBcImVzbGludFwiO1xuXG5pbXBvcnQgeyBnZXRFeGFtcGxlcyB9IGZyb20gXCIuL2V4YW1wbGVzXCI7XG5pbXBvcnQgeyByZXBvcnRFeGFtcGxlIH0gZnJvbSBcIi4vcmVwb3J0aW5nXCI7XG5cbi8qKlxuICogRVNMaW50IHJ1bGUgcmVxdWlyaW5nIFxcQGV4YW1wbGUgdGFncyB0byB1c2UgZmVuY2VkIGNvZGUgYmxvY2tzIHdpdGggYSBsYW5ndWFnZS5cbiAqL1xuY29uc3QgcmVxdWlyZUV4YW1wbGVMYW5ndWFnZVJ1bGU6IFJ1bGUuUnVsZU1vZHVsZSA9IHtcbiAgY3JlYXRlKGNvbnRleHQ6IFJ1bGUuUnVsZUNvbnRleHQpOiBSdWxlLlJ1bGVMaXN0ZW5lciB7XG4gICAgY29uc3QgeyBzb3VyY2VDb2RlIH0gPSBjb250ZXh0O1xuXG4gICAgZm9yIChjb25zdCBjb21tZW50IG9mIHNvdXJjZUNvZGUuZ2V0QWxsQ29tbWVudHMoKSkge1xuICAgICAgaWYgKGNvbW1lbnQudHlwZSA9PT0gXCJCbG9ja1wiICYmIGNvbW1lbnQudmFsdWUuc3RhcnRzV2l0aChcIipcIikpIHtcbiAgICAgICAgY29uc3QgZXhhbXBsZXMgPSBnZXRFeGFtcGxlcyhjb21tZW50LnZhbHVlKTtcblxuICAgICAgICBjb25zdCBoYXNPdGhlckV4YW1wbGVzID0gZXhhbXBsZXMubGVuZ3RoID4gMTtcblxuICAgICAgICBmb3IgKGNvbnN0IGV4YW1wbGUgb2YgZXhhbXBsZXMpIHtcbiAgICAgICAgICByZXBvcnRFeGFtcGxlKHsgY29tbWVudCwgY29udGV4dCwgZXhhbXBsZSwgaGFzT3RoZXJFeGFtcGxlcyB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7fTtcbiAgfSxcbiAgbWV0YToge1xuICAgIGRvY3M6IHtcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICBcIlJlcXVpcmUgQGV4YW1wbGUgdGFncyB0byB1c2UgZmVuY2VkIGNvZGUgYmxvY2tzIHdpdGggYSBsYW5ndWFnZS5cIixcbiAgICAgIHJlY29tbWVuZGVkOiBmYWxzZSxcbiAgICAgIHVybDogXCJodHRwczovL2dpdGh1Yi5jb20vcGFybG90aS9lc2xpbnQtcGx1Z2luL2Jsb2IvbWFpbi9kb2NzL3J1bGVzL3JlcXVpcmUtZXhhbXBsZS1sYW5ndWFnZS5tZFwiLFxuICAgIH0sXG4gICAgZml4YWJsZTogXCJjb2RlXCIsXG4gICAgbWVzc2FnZXM6IHtcbiAgICAgIGNvbnRlbnRPdXRzaWRlRmVuY2U6XG4gICAgICAgIFwiQGV4YW1wbGUgY29udGVudCBtdXN0IGJlIGZ1bGx5IGluc2lkZSBmZW5jZWQgY29kZSBibG9ja3MuXCIsXG4gICAgICBlbXB0eUV4YW1wbGU6IFwiQGV4YW1wbGUgbXVzdCBpbmNsdWRlIGV4YW1wbGUgY29udGVudC5cIixcbiAgICAgIG1pc3NpbmdGZW5jZTpcbiAgICAgICAgXCJAZXhhbXBsZSBtdXN0IGluY2x1ZGUgYSBmZW5jZWQgY29kZSBibG9jayB3aXRoIGEgbGFuZ3VhZ2UgKGUuZy4gYGBgdHlwZXNjcmlwdCkuXCIsXG4gICAgICBtaXNzaW5nTGFuZ3VhZ2U6XG4gICAgICAgIFwiQGV4YW1wbGUgZmVuY2VkIGNvZGUgYmxvY2tzIG11c3Qgc3BlY2lmeSBhIGxhbmd1YWdlIChlLmcuIGBgYHR5cGVzY3JpcHQpLlwiLFxuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgICB0eXBlOiBcInByb2JsZW1cIixcbiAgfSxcbn07XG5cbmV4cG9ydCB7IHJlcXVpcmVFeGFtcGxlTGFuZ3VhZ2VSdWxlIH07XG4iXX0=
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vZG9jcy9yZXF1aXJlLWV4YW1wbGUtbGFuZ3VhZ2UvcnVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDakQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU1Qzs7R0FFRztBQUNILE1BQU0sMEJBQTBCLEdBQW9CO0lBQ2xELE1BQU0sQ0FBQyxPQUF5QjtRQUM5QixNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsT0FBTyxDQUFDO1FBRS9CLEtBQUssTUFBTSxPQUFPLElBQUksVUFBVSxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUM7WUFDbEQsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxPQUFPLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNqRSxTQUFTO1lBQ1gsQ0FBQztZQUVELE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFNUMsTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUU3QyxLQUFLLE1BQU0sT0FBTyxJQUFJLFFBQVEsRUFBRSxDQUFDO2dCQUMvQixhQUFhLENBQUMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7WUFDakUsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFDRCxJQUFJLEVBQUU7UUFDSixJQUFJLEVBQUU7WUFDSixXQUFXLEVBQ1Qsa0VBQWtFO1lBQ3BFLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLEdBQUcsRUFBRSwyRkFBMkY7U0FDakc7UUFDRCxPQUFPLEVBQUUsTUFBTTtRQUNmLFFBQVEsRUFBRTtZQUNSLG1CQUFtQixFQUNqQiwyREFBMkQ7WUFDN0QsWUFBWSxFQUFFLHdDQUF3QztZQUN0RCxZQUFZLEVBQ1YsaUZBQWlGO1lBQ25GLGVBQWUsRUFDYiwyRUFBMkU7U0FDOUU7UUFDRCxNQUFNLEVBQUUsRUFBRTtRQUNWLElBQUksRUFBRSxTQUFTO0tBQ2hCO0NBQ0YsQ0FBQztBQUVGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSdWxlIH0gZnJvbSBcImVzbGludFwiO1xuXG5pbXBvcnQgeyBnZXRFeGFtcGxlcyB9IGZyb20gXCIuL2V4YW1wbGVzLWNvbGxlY3RcIjtcbmltcG9ydCB7IHJlcG9ydEV4YW1wbGUgfSBmcm9tIFwiLi9yZXBvcnRpbmdcIjtcblxuLyoqXG4gKiBFU0xpbnQgcnVsZSByZXF1aXJpbmcgXFxAZXhhbXBsZSB0YWdzIHRvIHVzZSBmZW5jZWQgY29kZSBibG9ja3Mgd2l0aCBhIGxhbmd1YWdlLlxuICovXG5jb25zdCByZXF1aXJlRXhhbXBsZUxhbmd1YWdlUnVsZTogUnVsZS5SdWxlTW9kdWxlID0ge1xuICBjcmVhdGUoY29udGV4dDogUnVsZS5SdWxlQ29udGV4dCk6IFJ1bGUuUnVsZUxpc3RlbmVyIHtcbiAgICBjb25zdCB7IHNvdXJjZUNvZGUgfSA9IGNvbnRleHQ7XG5cbiAgICBmb3IgKGNvbnN0IGNvbW1lbnQgb2Ygc291cmNlQ29kZS5nZXRBbGxDb21tZW50cygpKSB7XG4gICAgICBpZiAoIShjb21tZW50LnR5cGUgPT09IFwiQmxvY2tcIiAmJiBjb21tZW50LnZhbHVlLnN0YXJ0c1dpdGgoXCIqXCIpKSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZXhhbXBsZXMgPSBnZXRFeGFtcGxlcyhjb21tZW50LnZhbHVlKTtcblxuICAgICAgY29uc3QgaGFzT3RoZXJFeGFtcGxlcyA9IGV4YW1wbGVzLmxlbmd0aCA+IDE7XG5cbiAgICAgIGZvciAoY29uc3QgZXhhbXBsZSBvZiBleGFtcGxlcykge1xuICAgICAgICByZXBvcnRFeGFtcGxlKHsgY29tbWVudCwgY29udGV4dCwgZXhhbXBsZSwgaGFzT3RoZXJFeGFtcGxlcyB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4ge307XG4gIH0sXG4gIG1ldGE6IHtcbiAgICBkb2NzOiB7XG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgXCJSZXF1aXJlIEBleGFtcGxlIHRhZ3MgdG8gdXNlIGZlbmNlZCBjb2RlIGJsb2NrcyB3aXRoIGEgbGFuZ3VhZ2UuXCIsXG4gICAgICByZWNvbW1lbmRlZDogZmFsc2UsXG4gICAgICB1cmw6IFwiaHR0cHM6Ly9naXRodWIuY29tL3BhcmxvdGkvZXNsaW50LXBsdWdpbi9ibG9iL21haW4vZG9jcy9ydWxlcy9yZXF1aXJlLWV4YW1wbGUtbGFuZ3VhZ2UubWRcIixcbiAgICB9LFxuICAgIGZpeGFibGU6IFwiY29kZVwiLFxuICAgIG1lc3NhZ2VzOiB7XG4gICAgICBjb250ZW50T3V0c2lkZUZlbmNlOlxuICAgICAgICBcIkBleGFtcGxlIGNvbnRlbnQgbXVzdCBiZSBmdWxseSBpbnNpZGUgZmVuY2VkIGNvZGUgYmxvY2tzLlwiLFxuICAgICAgZW1wdHlFeGFtcGxlOiBcIkBleGFtcGxlIG11c3QgaW5jbHVkZSBleGFtcGxlIGNvbnRlbnQuXCIsXG4gICAgICBtaXNzaW5nRmVuY2U6XG4gICAgICAgIFwiQGV4YW1wbGUgbXVzdCBpbmNsdWRlIGEgZmVuY2VkIGNvZGUgYmxvY2sgd2l0aCBhIGxhbmd1YWdlIChlLmcuIGBgYHR5cGVzY3JpcHQpLlwiLFxuICAgICAgbWlzc2luZ0xhbmd1YWdlOlxuICAgICAgICBcIkBleGFtcGxlIGZlbmNlZCBjb2RlIGJsb2NrcyBtdXN0IHNwZWNpZnkgYSBsYW5ndWFnZSAoZS5nLiBgYGB0eXBlc2NyaXB0KS5cIixcbiAgICB9LFxuICAgIHNjaGVtYTogW10sXG4gICAgdHlwZTogXCJwcm9ibGVtXCIsXG4gIH0sXG59O1xuXG5leHBvcnQgeyByZXF1aXJlRXhhbXBsZUxhbmd1YWdlUnVsZSB9O1xuIl19
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/domain/docs/require-example-language/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC,qCAAqC;AACrC,KAAK,OAAO,GAAG,UAAU,CACvB,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,gBAAgB,CAAC,CACjD,CAAC,MAAM,CAAC,CAAC;AAEV,qCAAqC;AACrC,UAAU,OAAO;IACf,2BAA2B;IAC3B,OAAO,EAAE,MAAM,CAAC;IAEhB,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAC;IAEjB,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAC;IAElB,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAC;IAElB,0BAA0B;IAC1B,MAAM,EAAE,MAAM,CAAC;IAEf,+BAA+B;IAC/B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,qCAAqC;AACrC,KAAK,OAAO,GACR,qBAAqB,GACrB,cAAc,GACd,cAAc,GACd,iBAAiB,CAAC;AAEtB,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/domain/docs/require-example-language/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC,qCAAqC;AACrC,KAAK,OAAO,GAAG,UAAU,CACvB,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,gBAAgB,CAAC,CACjD,CAAC,MAAM,CAAC,CAAC;AAEV,qCAAqC;AACrC,UAAU,OAAO;IACf,2BAA2B;IAC3B,OAAO,EAAE,MAAM,CAAC;IAEhB,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAC;IAEjB,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAC;IAElB,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAC;IAElB,0BAA0B;IAC1B,MAAM,EAAE,MAAM,CAAC;IAEf,+BAA+B;IAC/B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,qCAAqC;AACrC,KAAK,OAAO,GACV,qBAAqB,GAAG,cAAc,GAAG,cAAc,GAAG,iBAAiB,CAAC;AAE9E,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC"}
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL2RvY3MvcmVxdWlyZS1leGFtcGxlLWxhbmd1YWdlL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tIFwiZXNsaW50XCI7XG5cbi8qKiBUeXBlIGRlZmluaXRpb24gZm9yIHJ1bGUgZGF0YS4gKi9cbnR5cGUgQ29tbWVudCA9IFJldHVyblR5cGU8XG4gIFJ1bGUuUnVsZUNvbnRleHRbXCJzb3VyY2VDb2RlXCJdW1wiZ2V0QWxsQ29tbWVudHNcIl1cbj5bbnVtYmVyXTtcblxuLyoqIFR5cGUgZGVmaW5pdGlvbiBmb3IgcnVsZSBkYXRhLiAqL1xuaW50ZXJmYWNlIEV4YW1wbGUge1xuICAvKiogQ29udGVudCBmaWVsZCB2YWx1ZS4gKi9cbiAgY29udGVudDogc3RyaW5nO1xuXG4gIC8qKiBFbmRJbmRleCBmaWVsZCB2YWx1ZS4gKi9cbiAgZW5kSW5kZXg6IG51bWJlcjtcblxuICAvKiogRW5kT2Zmc2V0IGZpZWxkIHZhbHVlLiAqL1xuICBlbmRPZmZzZXQ6IG51bWJlcjtcblxuICAvKiogTGluZUluZGV4IGZpZWxkIHZhbHVlLiAqL1xuICBsaW5lSW5kZXg6IG51bWJlcjtcblxuICAvKiogUHJlZml4IGZpZWxkIHZhbHVlLiAqL1xuICBwcmVmaXg6IHN0cmluZztcblxuICAvKiogU3RhcnRPZmZzZXQgZmllbGQgdmFsdWUuICovXG4gIHN0YXJ0T2Zmc2V0OiBudW1iZXI7XG59XG5cbi8qKiBUeXBlIGRlZmluaXRpb24gZm9yIHJ1bGUgZGF0YS4gKi9cbnR5cGUgUHJvYmxlbSA9XG4gIHwgXCJjb250ZW50T3V0c2lkZUZlbmNlXCJcbiAgfCBcImVtcHR5RXhhbXBsZVwiXG4gIHwgXCJtaXNzaW5nRmVuY2VcIlxuICB8IFwibWlzc2luZ0xhbmd1YWdlXCI7XG5cbmV4cG9ydCB0eXBlIHsgQ29tbWVudCwgRXhhbXBsZSwgUHJvYmxlbSB9O1xuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL2RvY3MvcmVxdWlyZS1leGFtcGxlLWxhbmd1YWdlL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tIFwiZXNsaW50XCI7XG5cbi8qKiBUeXBlIGRlZmluaXRpb24gZm9yIHJ1bGUgZGF0YS4gKi9cbnR5cGUgQ29tbWVudCA9IFJldHVyblR5cGU8XG4gIFJ1bGUuUnVsZUNvbnRleHRbXCJzb3VyY2VDb2RlXCJdW1wiZ2V0QWxsQ29tbWVudHNcIl1cbj5bbnVtYmVyXTtcblxuLyoqIFR5cGUgZGVmaW5pdGlvbiBmb3IgcnVsZSBkYXRhLiAqL1xuaW50ZXJmYWNlIEV4YW1wbGUge1xuICAvKiogQ29udGVudCBmaWVsZCB2YWx1ZS4gKi9cbiAgY29udGVudDogc3RyaW5nO1xuXG4gIC8qKiBFbmRJbmRleCBmaWVsZCB2YWx1ZS4gKi9cbiAgZW5kSW5kZXg6IG51bWJlcjtcblxuICAvKiogRW5kT2Zmc2V0IGZpZWxkIHZhbHVlLiAqL1xuICBlbmRPZmZzZXQ6IG51bWJlcjtcblxuICAvKiogTGluZUluZGV4IGZpZWxkIHZhbHVlLiAqL1xuICBsaW5lSW5kZXg6IG51bWJlcjtcblxuICAvKiogUHJlZml4IGZpZWxkIHZhbHVlLiAqL1xuICBwcmVmaXg6IHN0cmluZztcblxuICAvKiogU3RhcnRPZmZzZXQgZmllbGQgdmFsdWUuICovXG4gIHN0YXJ0T2Zmc2V0OiBudW1iZXI7XG59XG5cbi8qKiBUeXBlIGRlZmluaXRpb24gZm9yIHJ1bGUgZGF0YS4gKi9cbnR5cGUgUHJvYmxlbSA9XG4gIFwiY29udGVudE91dHNpZGVGZW5jZVwiIHwgXCJlbXB0eUV4YW1wbGVcIiB8IFwibWlzc2luZ0ZlbmNlXCIgfCBcIm1pc3NpbmdMYW5ndWFnZVwiO1xuXG5leHBvcnQgdHlwZSB7IENvbW1lbnQsIEV4YW1wbGUsIFByb2JsZW0gfTtcbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"analyzer.analysis.helpers.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/aaa/analyzer.analysis.helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEtC,OAAO,KAAK,EACV,QAAQ,EACR,WAAW,EACX,aAAa,EACb,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAEjB,yDAAyD;AACzD,QAAA,MAAM,aAAa;;;;CAI0B,CAAC;AAS9C,mDAAmD;AACnD,UAAU,gBAAgB;IACxB,sDAAsD;IACtD,OAAO,EAAE,aAAa,CAAC;IACvB,wDAAwD;IACxD,KAAK,EAAE,QAAQ,CAAC;CACjB;AAED,kEAAkE;AAClE,UAAU,iBAAiB;IACzB,iDAAiD;IACjD,QAAQ,EAAE,qBAAqB,CAAC;IAChC,0CAA0C;IAC1C,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;CACpD;AAED,+DAA+D;AAC/D,KAAK,qBAAqB,GAAG,WAAW,CACtC,MAAM,CAAC,uBAAuB,GAAG,MAAM,CAAC,kBAAkB,CAC3D,GAAG;IACF,qDAAqD;IACrD,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;CAC1C,CAAC;AAEF;;;;;;;;GAQG;AACH,iBAAS,kBAAkB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,CAE/D;AAED;;;;;;;;GAQG;AACH,iBAAS,wBAAwB,CAC/B,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAAE,YAAY,CAAC,GAC9C,iBAAiB,CAAC,YAAY,CAAC,CAKjC;AAED;;;;;;;;GAQG;AACH,iBAAS,oBAAoB,CAC3B,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,GACnD,gBAAgB,EAAE,CAOpB;AAED;;;;;;;;;GASG;AACH,iBAAS,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAa7E;AAED;;;;;;;;GAQG;AACH,iBAAS,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAE/C;AAED;;;;;;;;GAQG;AACH,iBAAS,wBAAwB,CAC/B,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,GACnD,iBAAiB,CAAC,iBAAiB,CAAC,CAMtC;AAED;;;;;;;;GAQG;AACH,iBAAS,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,QAAQ,EAAE,CAO1D;AAED;;;;;;;;;GASG;AACH,iBAAS,kBAAkB,CACzB,SAAS,EAAE,MAAM,CAAC,SAAS,EAC3B,eAAe,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,GACpD,QAAQ,EAAE,CAaZ;AAED;;;;;;;;GAQG;AACH,iBAAS,oBAAoB,CAC3B,IAAI,EAAE,MAAM,CAAC,cAAc,GAC1B,iBAAiB,GAAG,SAAS,CAqB/B;AAuCD,2CAA2C;AAC3C,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,wBAAwB,EACxB,oBAAoB,EACpB,iBAAiB,EACjB,UAAU,EACV,wBAAwB,EACxB,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,GACrB,CAAC"}
1
+ {"version":3,"file":"analyzer.analysis.helpers.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/aaa/analyzer.analysis.helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEtC,OAAO,KAAK,EACV,QAAQ,EACR,WAAW,EACX,aAAa,EACb,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAEjB,yDAAyD;AACzD,QAAA,MAAM,aAAa;;;;CAI0B,CAAC;AAS9C,mDAAmD;AACnD,UAAU,gBAAgB;IACxB,sDAAsD;IACtD,OAAO,EAAE,aAAa,CAAC;IACvB,wDAAwD;IACxD,KAAK,EAAE,QAAQ,CAAC;CACjB;AAED,kEAAkE;AAClE,UAAU,iBAAiB;IACzB,iDAAiD;IACjD,QAAQ,EAAE,qBAAqB,CAAC;IAChC,0CAA0C;IAC1C,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;CACpD;AAED,+DAA+D;AAC/D,KAAK,qBAAqB,GAAG,WAAW,CACtC,MAAM,CAAC,uBAAuB,GAAG,MAAM,CAAC,kBAAkB,CAC3D,GAAG;IACF,qDAAqD;IACrD,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;CAC1C,CAAC;AAEF;;;;;;;;GAQG;AACH,iBAAS,kBAAkB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,CAE/D;AAED;;;;;;;;GAQG;AACH,iBAAS,wBAAwB,CAC/B,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAAE,YAAY,CAAC,GAC9C,iBAAiB,CAAC,YAAY,CAAC,CAKjC;AAED;;;;;;;;GAQG;AACH,iBAAS,oBAAoB,CAC3B,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,GACnD,gBAAgB,EAAE,CAOpB;AAED;;;;;;;;;GASG;AACH,iBAAS,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAa7E;AAED;;;;;;;;GAQG;AACH,iBAAS,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAE/C;AAED;;;;;;;;GAQG;AACH,iBAAS,wBAAwB,CAC/B,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,GACnD,iBAAiB,CAAC,iBAAiB,CAAC,CAMtC;AAED;;;;;;;;GAQG;AACH,iBAAS,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,QAAQ,EAAE,CAO1D;AAED;;;;;;;;;GASG;AACH,iBAAS,kBAAkB,CACzB,SAAS,EAAE,MAAM,CAAC,SAAS,EAC3B,eAAe,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,GACpD,QAAQ,EAAE,CAaZ;AAED;;;;;;;;GAQG;AACH,iBAAS,oBAAoB,CAC3B,IAAI,EAAE,MAAM,CAAC,cAAc,GAC1B,iBAAiB,GAAG,SAAS,CAqB/B;AA4CD,2CAA2C;AAC3C,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,wBAAwB,EACxB,oBAAoB,EACpB,iBAAiB,EACjB,UAAU,EACV,wBAAwB,EACxB,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,GACrB,CAAC"}
@@ -171,14 +171,14 @@ function getSupportedTestCall(node) {
171
171
  * ```
172
172
  */
173
173
  function getTestRootName(callee) {
174
- if (callee.type === "CallExpression") {
175
- return getTestRootName(callee.callee);
174
+ let current = callee;
175
+ while (current.type === "CallExpression" ||
176
+ (current.type === "MemberExpression" && current.object.type !== "Super")) {
177
+ current =
178
+ current.type === "CallExpression" ? current.callee : current.object;
176
179
  }
177
- if (callee.type === "Identifier") {
178
- return callee.name;
179
- }
180
- if (callee.type === "MemberExpression" && callee.object.type !== "Super") {
181
- return getTestRootName(callee.object);
180
+ if (current.type === "Identifier") {
181
+ return current.name;
182
182
  }
183
183
  return void 0;
184
184
  }
@@ -196,4 +196,4 @@ function isAaaPhase(value) {
196
196
  }
197
197
  /** Companion marker for test isolation. */
198
198
  export { aaaPhaseOrder, countActStatements, getActTopLevelStatements, getFlattenedSections, getLineStartRange, getNewline, getPhaseBoundaryComments, getSectionPhases, getStatementPhases, getSupportedTestCall, };
199
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl6ZXIuYW5hbHlzaXMuaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vdGVzdGluZy9hYWEvYW5hbHl6ZXIuYW5hbHlzaXMuaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFTQSx5REFBeUQ7QUFDekQsTUFBTSxhQUFhLEdBQUc7SUFDcEIsR0FBRyxFQUFFLENBQUM7SUFDTixPQUFPLEVBQUUsQ0FBQztJQUNWLE1BQU0sRUFBRSxDQUFDO0NBQ2tDLENBQUM7QUFFOUMsa0NBQWtDO0FBQ2xDLE1BQU0sVUFBVSxHQUFHLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxRQUFRLENBSTdDLENBQUM7QUEwQkY7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLGtCQUFrQixDQUFDLFFBQTJCO0lBQ3JELE9BQU8sd0JBQXdCLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDO0FBQ25ELENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsd0JBQXdCLENBQy9CLFFBQStDO0lBRS9DLE9BQU8sUUFBUSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQy9CLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FDWixTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUMzRSxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxvQkFBb0IsQ0FDM0IsUUFBb0Q7SUFFcEQsT0FBTyxRQUFRLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQ3pELGNBQWMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3BDLE9BQU8sRUFBRSxjQUFjLENBQUMsT0FBTztRQUMvQixLQUFLO0tBQ04sQ0FB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QUFDO0FBQ2hELENBQUM7QUFFRCwyQ0FBMkM7QUFDM0MsT0FBTyxFQUNMLGFBQWEsRUFDYixrQkFBa0IsRUFDbEIsd0JBQXdCLEVBQ3hCLG9CQUFvQixFQUNwQixpQkFBaUIsRUFDakIsVUFBVSxFQUNWLHdCQUF3QixFQUN4QixnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLG9CQUFvQixHQUNyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBFU1RyZWUgZnJvbSBcImVzdHJlZVwiO1xyXG5cclxuaW1wb3J0IHR5cGUge1xyXG4gIEFhYVBoYXNlLFxyXG4gIExvY2F0ZWROb2RlLFxyXG4gIFNvdXJjZUNvbW1lbnQsXHJcbiAgVGVzdEJsb2NrQW5hbHlzaXMsXHJcbn0gZnJvbSBcIi4vdHlwZXNcIjtcclxuXHJcbi8qKiBDYW5vbmljYWwgb3JkZXJpbmcgdXNlZCB3aGVuIGNvbXBhcmluZyBBQUEgcGhhc2VzLiAqL1xyXG5jb25zdCBhYWFQaGFzZU9yZGVyID0ge1xyXG4gIEFjdDogMSxcclxuICBBcnJhbmdlOiAwLFxyXG4gIEFzc2VydDogMixcclxufSBhcyBjb25zdCBzYXRpc2ZpZXMgUmVjb3JkPEFhYVBoYXNlLCBudW1iZXI+O1xyXG5cclxuLyoqIFJlY29nbml6ZWQgQUFBIHBoYXNlIG5hbWVzLiAqL1xyXG5jb25zdCBwaGFzZU5hbWVzID0gW1wiQXJyYW5nZVwiLCBcIkFjdFwiLCBcIkFzc2VydFwiXSBhcyBjb25zdCBzYXRpc2ZpZXMgcmVhZG9ubHkgW1xyXG4gIEFhYVBoYXNlLFxyXG4gIEFhYVBoYXNlLFxyXG4gIEFhYVBoYXNlLFxyXG5dO1xyXG5cclxuLyoqIEhlbHBlciBzdGF0ZSBmb3IgZmxhdHRlbmVkIHNlY3Rpb24gY29tbWVudHMuICovXHJcbmludGVyZmFjZSBGbGF0dGVuZWRTZWN0aW9uIHtcclxuICAvKiogT3JpZ2luYWwgc291cmNlIGNvbW1lbnQgZm9yIHRoZSBzZWN0aW9uIG1hcmtlci4gKi9cclxuICBjb21tZW50OiBTb3VyY2VDb21tZW50O1xyXG4gIC8qKiBQaGFzZSByZXByZXNlbnRlZCBieSB0aGUgZmxhdHRlbmVkIHNlY3Rpb24gZW50cnkuICovXHJcbiAgcGhhc2U6IEFhYVBoYXNlO1xyXG59XHJcblxyXG4vKiogU3VwcG9ydGVkIGNhbGwtZXhwcmVzc2lvbiB3cmFwcGVyIGZvciBhbmFseXplZCB0ZXN0IGJsb2Nrcy4gKi9cclxuaW50ZXJmYWNlIFN1cHBvcnRlZFRlc3RDYWxsIHtcclxuICAvKiogQ2FsbGJhY2sgYXJndW1lbnQgdGhhdCBvd25zIHRoZSB0ZXN0IGJvZHkuICovXHJcbiAgY2FsbGJhY2s6IFN1cHBvcnRlZFRlc3RDYWxsYmFjaztcclxuICAvKiogT3JpZ2luYWwgYGl0YCBvciBgdGVzdGAgaW52b2NhdGlvbi4gKi9cclxuICBjYWxsRXhwcmVzc2lvbjogTG9jYXRlZE5vZGU8RVNUcmVlLkNhbGxFeHByZXNzaW9uPjtcclxufVxyXG5cclxuLyoqIFN1cHBvcnRlZCB0ZXN0IGNhbGxiYWNrIHNoYXBlIGZvciBgaXRgIGFuZCBgdGVzdGAgY2FsbHMuICovXHJcbnR5cGUgU3VwcG9ydGVkVGVzdENhbGxiYWNrID0gTG9jYXRlZE5vZGU8XHJcbiAgRVNUcmVlLkFycm93RnVuY3Rpb25FeHByZXNzaW9uIHwgRVNUcmVlLkZ1bmN0aW9uRXhwcmVzc2lvblxyXG4+ICYge1xyXG4gIC8qKiBDYWxsYmFjayBib2R5IGJsb2NrIHVzZWQgZm9yIHNlY3Rpb24gYW5hbHlzaXMuICovXHJcbiAgYm9keTogTG9jYXRlZE5vZGU8RVNUcmVlLkJsb2NrU3RhdGVtZW50PjtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBDb3VudHMgQWN0IHN0YXRlbWVudHMuXHJcbiAqIEBwYXJhbSBhbmFseXNpcyBJbnB1dCBhbmFseXNpcyB2YWx1ZS5cclxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb3VudEFjdFN0YXRlbWVudHMoYW5hbHlzaXMpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGNvdW50QWN0U3RhdGVtZW50cyhhbmFseXNpczogVGVzdEJsb2NrQW5hbHlzaXMpOiBudW1iZXIge1xyXG4gIHJldHVybiBnZXRBY3RUb3BMZXZlbFN0YXRlbWVudHMoYW5hbHlzaXMpLmxlbmd0aDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEdldHMgdG9wLWxldmVsIHN0YXRlbWVudHMgdGhhdCBiZWxvbmcgdG8gdGhlIEFjdCBwaGFzZSBvbmx5LlxyXG4gKiBAcGFyYW0gYW5hbHlzaXMgSW5wdXQgYW5hbHlzaXMgdmFsdWUuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogZ2V0QWN0VG9wTGV2ZWxTdGF0ZW1lbnRzKGFuYWx5c2lzKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBnZXRBY3RUb3BMZXZlbFN0YXRlbWVudHMoXHJcbiAgYW5hbHlzaXM6IFBpY2s8VGVzdEJsb2NrQW5hbHlzaXMsIFwic3RhdGVtZW50c1wiPixcclxuKTogVGVzdEJsb2NrQW5hbHlzaXNbXCJzdGF0ZW1lbnRzXCJdIHtcclxuICByZXR1cm4gYW5hbHlzaXMuc3RhdGVtZW50cy5maWx0ZXIoXHJcbiAgICAoc3RhdGVtZW50KSA9PlxyXG4gICAgICBzdGF0ZW1lbnQucGhhc2VzLmluY2x1ZGVzKFwiQWN0XCIpICYmICFzdGF0ZW1lbnQucGhhc2VzLmluY2x1ZGVzKFwiQXNzZXJ0XCIpLFxyXG4gICk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBGbGF0dGVucyBzZWN0aW9uIGNvbW1lbnRzLlxyXG4gKiBAcGFyYW0gYW5hbHlzaXMgSW5wdXQgYW5hbHlzaXMgdmFsdWUuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogZ2V0RmxhdHRlbmVkU2VjdGlvbnMoYW5hbHlzaXMpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGdldEZsYXR0ZW5lZFNlY3Rpb25zKFxyXG4gIGFuYWx5c2lzOiBQaWNrPFRlc3RCbG9ja0FuYWx5c2lzLCBcInNlY3Rpb25Db21tZW50c1wiPixcclxuKTogRmxhdHRlbmVkU2VjdGlvbltdIHtcclxuICByZXR1cm4gYW5hbHlzaXMuc2VjdGlvbkNvbW1lbnRzLmZsYXRNYXAoKHNlY3Rpb25Db21tZW50KSA9PlxyXG4gICAgc2VjdGlvbkNvbW1lbnQucGhhc2VzLm1hcCgocGhhc2UpID0+ICh7XHJcbiAgICAgIGNvbW1lbnQ6IHNlY3Rpb25Db21tZW50LmNvbW1lbnQsXHJcbiAgICAgIHBoYXNlLFxyXG4gICAgfSkpLFxyXG4gICk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZXRzIHRoZSBzdGFydCByYW5nZSBmb3IgYSBsaW5lLlxyXG4gKiBAcGFyYW0gc291cmNlVGV4dCBJbnB1dCBzb3VyY2VUZXh0IHZhbHVlLlxyXG4gKiBAcGFyYW0gbGluZSBJbnB1dCBsaW5lIHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGdldExpbmVTdGFydFJhbmdlKHNvdXJjZVRleHQsIDIpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGdldExpbmVTdGFydFJhbmdlKHNvdXJjZVRleHQ6IHN0cmluZywgbGluZTogbnVtYmVyKTogW251bWJlciwgbnVtYmVyXSB7XHJcbiAgbGV0IGN1cnJlbnRMaW5lID0gMTtcclxuICBsZXQgY3VycmVudE9mZnNldCA9IDA7XHJcbiAgZm9yIChjb25zdCBjaGFyYWN0ZXIgb2Ygc291cmNlVGV4dCkge1xyXG4gICAgaWYgKGN1cnJlbnRMaW5lID09PSBsaW5lKSB7XHJcbiAgICAgIHJldHVybiBbY3VycmVudE9mZnNldCwgY3VycmVudE9mZnNldF07XHJcbiAgICB9XHJcbiAgICBpZiAoY2hhcmFjdGVyID09PSBcIlxcblwiKSB7XHJcbiAgICAgIGN1cnJlbnRMaW5lICs9IDE7XHJcbiAgICB9XHJcbiAgICBjdXJyZW50T2Zmc2V0ICs9IDE7XHJcbiAgfVxyXG4gIHJldHVybiBbc291cmNlVGV4dC5sZW5ndGgsIHNvdXJjZVRleHQubGVuZ3RoXTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEdldHMgdGhlIG5ld2xpbmUgc2VxdWVuY2UuXHJcbiAqIEBwYXJhbSB0ZXh0IElucHV0IHRleHQgdmFsdWUuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogZ2V0TmV3bGluZShzb3VyY2VUZXh0KTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBnZXROZXdsaW5lKHRleHQ6IHN0cmluZyk6IFwiXFxuXCIgfCBcIlxcclxcblwiIHtcclxuICByZXR1cm4gdGV4dC5pbmNsdWRlcyhcIlxcclxcblwiKSA/IFwiXFxyXFxuXCIgOiBcIlxcblwiO1xyXG59XHJcblxyXG4vKipcclxuICogR2V0cyBwaGFzZS1ib3VuZGFyeSBjb21tZW50cy5cclxuICogQHBhcmFtIGFuYWx5c2lzIElucHV0IGFuYWx5c2lzIHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGdldFBoYXNlQm91bmRhcnlDb21tZW50cyhhbmFseXNpcyk7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gZ2V0UGhhc2VCb3VuZGFyeUNvbW1lbnRzKFxyXG4gIGFuYWx5c2lzOiBQaWNrPFRlc3RCbG9ja0FuYWx5c2lzLCBcInNlY3Rpb25Db21tZW50c1wiPixcclxuKTogVGVzdEJsb2NrQW5hbHlzaXNbXCJzZWN0aW9uQ29tbWVudHNcIl0ge1xyXG4gIHJldHVybiBhbmFseXNpcy5zZWN0aW9uQ29tbWVudHMuZmlsdGVyKChzZWN0aW9uQ29tbWVudCkgPT5cclxuICAgIHNlY3Rpb25Db21tZW50LnBoYXNlcy5zb21lKFxyXG4gICAgICAocGhhc2UpID0+IHBoYXNlID09PSBcIkFjdFwiIHx8IHBoYXNlID09PSBcIkFzc2VydFwiLFxyXG4gICAgKSxcclxuICApO1xyXG59XHJcblxyXG4vKipcclxuICogUGFyc2VzIEFBQSBwaGFzZXMgZnJvbSBhIGNvbW1lbnQuXHJcbiAqIEBwYXJhbSBjb21tZW50VmFsdWUgSW5wdXQgY29tbWVudFZhbHVlIHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGdldFNlY3Rpb25QaGFzZXMoXCJBcnJhbmdlICYgQWN0XCIpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGdldFNlY3Rpb25QaGFzZXMoY29tbWVudFZhbHVlOiBzdHJpbmcpOiBBYWFQaGFzZVtdIHtcclxuICBjb25zdCB0cmltbWVkQ29tbWVudCA9IGNvbW1lbnRWYWx1ZS50cmltKCk7XHJcbiAgaWYgKHRyaW1tZWRDb21tZW50Lmxlbmd0aCA9PT0gMCkge1xyXG4gICAgcmV0dXJuIFtdO1xyXG4gIH1cclxuICBjb25zdCBwYXJ0cyA9IHRyaW1tZWRDb21tZW50LnNwbGl0KC9cXHMqJlxccyovdSk7XHJcbiAgcmV0dXJuIHBhcnRzLmV2ZXJ5KChwYXJ0KSA9PiBpc0FhYVBoYXNlKHBhcnQpKSA/IHBhcnRzIDogW107XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZXRzIHRoZSBhY3RpdmUgcGhhc2VzIGZvciBhIHN0YXRlbWVudC5cclxuICogQHBhcmFtIHN0YXRlbWVudCBJbnB1dCBzdGF0ZW1lbnQgdmFsdWUuXHJcbiAqIEBwYXJhbSBzZWN0aW9uQ29tbWVudHMgSW5wdXQgc2VjdGlvbkNvbW1lbnRzIHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGdldFN0YXRlbWVudFBoYXNlcyhzdGF0ZW1lbnQsIHNlY3Rpb25Db21tZW50cyk7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gZ2V0U3RhdGVtZW50UGhhc2VzKFxyXG4gIHN0YXRlbWVudDogRVNUcmVlLlN0YXRlbWVudCxcclxuICBzZWN0aW9uQ29tbWVudHM6IFRlc3RCbG9ja0FuYWx5c2lzW1wic2VjdGlvbkNvbW1lbnRzXCJdLFxyXG4pOiBBYWFQaGFzZVtdIHtcclxuICBjb25zdCBzdGF0ZW1lbnRMaW5lID0gc3RhdGVtZW50LmxvYz8uc3RhcnQubGluZTtcclxuICBpZiAoc3RhdGVtZW50TGluZSA9PT0gdm9pZCAwKSB7XHJcbiAgICByZXR1cm4gW107XHJcbiAgfVxyXG4gIGxldCBjdXJyZW50UGhhc2VzOiBBYWFQaGFzZVtdID0gW107XHJcbiAgZm9yIChjb25zdCBzZWN0aW9uQ29tbWVudCBvZiBzZWN0aW9uQ29tbWVudHMpIHtcclxuICAgIGlmIChzZWN0aW9uQ29tbWVudC5jb21tZW50LmxvYy5zdGFydC5saW5lID4gc3RhdGVtZW50TGluZSkge1xyXG4gICAgICBicmVhaztcclxuICAgIH1cclxuICAgIGN1cnJlbnRQaGFzZXMgPSBzZWN0aW9uQ29tbWVudC5waGFzZXM7XHJcbiAgfVxyXG4gIHJldHVybiBjdXJyZW50UGhhc2VzO1xyXG59XHJcblxyXG4vKipcclxuICogR2V0cyBzdXBwb3J0ZWQgdGVzdCBjYWxsIG1ldGFkYXRhLlxyXG4gKiBAcGFyYW0gbm9kZSBJbnB1dCBub2RlIHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGdldFN1cHBvcnRlZFRlc3RDYWxsKG5vZGUpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGdldFN1cHBvcnRlZFRlc3RDYWxsKFxyXG4gIG5vZGU6IEVTVHJlZS5DYWxsRXhwcmVzc2lvbixcclxuKTogU3VwcG9ydGVkVGVzdENhbGwgfCB1bmRlZmluZWQge1xyXG4gIGNvbnN0IHJvb3ROYW1lID0gZ2V0VGVzdFJvb3ROYW1lKG5vZGUuY2FsbGVlKTtcclxuICBpZiAocm9vdE5hbWUgIT09IFwiaXRcIiAmJiByb290TmFtZSAhPT0gXCJ0ZXN0XCIpIHtcclxuICAgIHJldHVybiB2b2lkIDA7XHJcbiAgfVxyXG5cclxuICBjb25zdCBjYWxsYmFja0FyZ3VtZW50ID0gbm9kZS5hcmd1bWVudHMuYXQoLTEpO1xyXG4gIGlmIChcclxuICAgIGNhbGxiYWNrQXJndW1lbnQgPT09IHZvaWQgMCB8fFxyXG4gICAgY2FsbGJhY2tBcmd1bWVudC50eXBlID09PSBcIlNwcmVhZEVsZW1lbnRcIiB8fFxyXG4gICAgKGNhbGxiYWNrQXJndW1lbnQudHlwZSAhPT0gXCJBcnJvd0Z1bmN0aW9uRXhwcmVzc2lvblwiICYmXHJcbiAgICAgIGNhbGxiYWNrQXJndW1lbnQudHlwZSAhPT0gXCJGdW5jdGlvbkV4cHJlc3Npb25cIikgfHxcclxuICAgIGNhbGxiYWNrQXJndW1lbnQuYm9keS50eXBlICE9PSBcIkJsb2NrU3RhdGVtZW50XCJcclxuICApIHtcclxuICAgIHJldHVybiB2b2lkIDA7XHJcbiAgfVxyXG5cclxuICByZXR1cm4ge1xyXG4gICAgY2FsbGJhY2s6IGNhbGxiYWNrQXJndW1lbnQgYXMgU3VwcG9ydGVkVGVzdENhbGxiYWNrLFxyXG4gICAgY2FsbEV4cHJlc3Npb246IG5vZGUgYXMgTG9jYXRlZE5vZGU8RVNUcmVlLkNhbGxFeHByZXNzaW9uPixcclxuICB9O1xyXG59XHJcblxyXG4vKipcclxuICogR2V0cyB0aGUgcm9vdCB0ZXN0IGNhbGxlZSBuYW1lLlxyXG4gKiBAcGFyYW0gY2FsbGVlIElucHV0IGNhbGxlZSB2YWx1ZS5cclxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBnZXRUZXN0Um9vdE5hbWUoY2FsbEV4cHJlc3Npb24uY2FsbGVlKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBnZXRUZXN0Um9vdE5hbWUoXHJcbiAgY2FsbGVlOiBFU1RyZWUuQ2FsbEV4cHJlc3Npb25bXCJjYWxsZWVcIl0sXHJcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XHJcbiAgaWYgKGNhbGxlZS50eXBlID09PSBcIkNhbGxFeHByZXNzaW9uXCIpIHtcclxuICAgIHJldHVybiBnZXRUZXN0Um9vdE5hbWUoY2FsbGVlLmNhbGxlZSk7XHJcbiAgfVxyXG4gIGlmIChjYWxsZWUudHlwZSA9PT0gXCJJZGVudGlmaWVyXCIpIHtcclxuICAgIHJldHVybiBjYWxsZWUubmFtZTtcclxuICB9XHJcbiAgaWYgKGNhbGxlZS50eXBlID09PSBcIk1lbWJlckV4cHJlc3Npb25cIiAmJiBjYWxsZWUub2JqZWN0LnR5cGUgIT09IFwiU3VwZXJcIikge1xyXG4gICAgcmV0dXJuIGdldFRlc3RSb290TmFtZShjYWxsZWUub2JqZWN0KTtcclxuICB9XHJcbiAgcmV0dXJuIHZvaWQgMDtcclxufVxyXG5cclxuLyoqXHJcbiAqIENoZWNrcyB3aGV0aGVyIGEgdmFsdWUgaXMgYW4gQUFBIHBoYXNlLlxyXG4gKiBAcGFyYW0gdmFsdWUgSW5wdXQgdmFsdWUgdmFsdWUuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogaXNBYWFQaGFzZShcIkFycmFuZ2VcIik7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gaXNBYWFQaGFzZSh2YWx1ZTogc3RyaW5nKTogdmFsdWUgaXMgQWFhUGhhc2Uge1xyXG4gIHJldHVybiBwaGFzZU5hbWVzLmluY2x1ZGVzKHZhbHVlIGFzIEFhYVBoYXNlKTtcclxufVxyXG5cclxuLyoqIENvbXBhbmlvbiBtYXJrZXIgZm9yIHRlc3QgaXNvbGF0aW9uLiAqL1xyXG5leHBvcnQge1xyXG4gIGFhYVBoYXNlT3JkZXIsXHJcbiAgY291bnRBY3RTdGF0ZW1lbnRzLFxyXG4gIGdldEFjdFRvcExldmVsU3RhdGVtZW50cyxcclxuICBnZXRGbGF0dGVuZWRTZWN0aW9ucyxcclxuICBnZXRMaW5lU3RhcnRSYW5nZSxcclxuICBnZXROZXdsaW5lLFxyXG4gIGdldFBoYXNlQm91bmRhcnlDb21tZW50cyxcclxuICBnZXRTZWN0aW9uUGhhc2VzLFxyXG4gIGdldFN0YXRlbWVudFBoYXNlcyxcclxuICBnZXRTdXBwb3J0ZWRUZXN0Q2FsbCxcclxufTtcclxuIl19
199
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl6ZXIuYW5hbHlzaXMuaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vdGVzdGluZy9hYWEvYW5hbHl6ZXIuYW5hbHlzaXMuaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFTQSx5REFBeUQ7QUFDekQsTUFBTSxhQUFhLEdBQUc7SUFDcEIsR0FBRyxFQUFFLENBQUM7SUFDTixPQUFPLEVBQUUsQ0FBQztJQUNWLE1BQU0sRUFBRSxDQUFDO0NBQ2tDLENBQUM7QUFFOUMsa0NBQWtDO0FBQ2xDLE1BQU0sVUFBVSxHQUFHLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxRQUFRLENBSTdDLENBQUM7QUEwQkY7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLGtCQUFrQixDQUFDLFFBQTJCO0lBQ3JELE9BQU8sd0JBQXdCLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDO0FBQ25ELENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsd0JBQXdCLENBQy9CLFFBQStDO0lBRS9DLE9BQU8sUUFBUSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQy9CLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FDWixTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUMzRSxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxvQkFBb0IsQ0FDM0IsUUFBb0Q7SUFFcEQsT0FBTyxRQUFRLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQ3pELGNBQWMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3BDLE9BQU8sRUFBRSxjQUFjLENBQUMsT0FBTztRQUMvQixLQUFLO0tBQ04sQ0FB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LFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBaUIsQ0FBQyxDQUFDO0FBQ2hELENBQUM7QUFFRCwyQ0FBMkM7QUFDM0MsT0FBTyxFQUNMLGFBQWEsRUFDYixrQkFBa0IsRUFDbEIsd0JBQXdCLEVBQ3hCLG9CQUFvQixFQUNwQixpQkFBaUIsRUFDakIsVUFBVSxFQUNWLHdCQUF3QixFQUN4QixnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLG9CQUFvQixHQUNyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBFU1RyZWUgZnJvbSBcImVzdHJlZVwiO1xyXG5cclxuaW1wb3J0IHR5cGUge1xyXG4gIEFhYVBoYXNlLFxyXG4gIExvY2F0ZWROb2RlLFxyXG4gIFNvdXJjZUNvbW1lbnQsXHJcbiAgVGVzdEJsb2NrQW5hbHlzaXMsXHJcbn0gZnJvbSBcIi4vdHlwZXNcIjtcclxuXHJcbi8qKiBDYW5vbmljYWwgb3JkZXJpbmcgdXNlZCB3aGVuIGNvbXBhcmluZyBBQUEgcGhhc2VzLiAqL1xyXG5jb25zdCBhYWFQaGFzZU9yZGVyID0ge1xyXG4gIEFjdDogMSxcclxuICBBcnJhbmdlOiAwLFxyXG4gIEFzc2VydDogMixcclxufSBhcyBjb25zdCBzYXRpc2ZpZXMgUmVjb3JkPEFhYVBoYXNlLCBudW1iZXI+O1xyXG5cclxuLyoqIFJlY29nbml6ZWQgQUFBIHBoYXNlIG5hbWVzLiAqL1xyXG5jb25zdCBwaGFzZU5hbWVzID0gW1wiQXJyYW5nZVwiLCBcIkFjdFwiLCBcIkFzc2VydFwiXSBhcyBjb25zdCBzYXRpc2ZpZXMgcmVhZG9ubHkgW1xyXG4gIEFhYVBoYXNlLFxyXG4gIEFhYVBoYXNlLFxyXG4gIEFhYVBoYXNlLFxyXG5dO1xyXG5cclxuLyoqIEhlbHBlciBzdGF0ZSBmb3IgZmxhdHRlbmVkIHNlY3Rpb24gY29tbWVudHMuICovXHJcbmludGVyZmFjZSBGbGF0dGVuZWRTZWN0aW9uIHtcclxuICAvKiogT3JpZ2luYWwgc291cmNlIGNvbW1lbnQgZm9yIHRoZSBzZWN0aW9uIG1hcmtlci4gKi9cclxuICBjb21tZW50OiBTb3VyY2VDb21tZW50O1xyXG4gIC8qKiBQaGFzZSByZXByZXNlbnRlZCBieSB0aGUgZmxhdHRlbmVkIHNlY3Rpb24gZW50cnkuICovXHJcbiAgcGhhc2U6IEFhYVBoYXNlO1xyXG59XHJcblxyXG4vKiogU3VwcG9ydGVkIGNhbGwtZXhwcmVzc2lvbiB3cmFwcGVyIGZvciBhbmFseXplZCB0ZXN0IGJsb2Nrcy4gKi9cclxuaW50ZXJmYWNlIFN1cHBvcnRlZFRlc3RDYWxsIHtcclxuICAvKiogQ2FsbGJhY2sgYXJndW1lbnQgdGhhdCBvd25zIHRoZSB0ZXN0IGJvZHkuICovXHJcbiAgY2FsbGJhY2s6IFN1cHBvcnRlZFRlc3RDYWxsYmFjaztcclxuICAvKiogT3JpZ2luYWwgYGl0YCBvciBgdGVzdGAgaW52b2NhdGlvbi4gKi9cclxuICBjYWxsRXhwcmVzc2lvbjogTG9jYXRlZE5vZGU8RVNUcmVlLkNhbGxFeHByZXNzaW9uPjtcclxufVxyXG5cclxuLyoqIFN1cHBvcnRlZCB0ZXN0IGNhbGxiYWNrIHNoYXBlIGZvciBgaXRgIGFuZCBgdGVzdGAgY2FsbHMuICovXHJcbnR5cGUgU3VwcG9ydGVkVGVzdENhbGxiYWNrID0gTG9jYXRlZE5vZGU8XHJcbiAgRVNUcmVlLkFycm93RnVuY3Rpb25FeHByZXNzaW9uIHwgRVNUcmVlLkZ1bmN0aW9uRXhwcmVzc2lvblxyXG4+ICYge1xyXG4gIC8qKiBDYWxsYmFjayBib2R5IGJsb2NrIHVzZWQgZm9yIHNlY3Rpb24gYW5hbHlzaXMuICovXHJcbiAgYm9keTogTG9jYXRlZE5vZGU8RVNUcmVlLkJsb2NrU3RhdGVtZW50PjtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBDb3VudHMgQWN0IHN0YXRlbWVudHMuXHJcbiAqIEBwYXJhbSBhbmFseXNpcyBJbnB1dCBhbmFseXNpcyB2YWx1ZS5cclxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb3VudEFjdFN0YXRlbWVudHMoYW5hbHlzaXMpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGNvdW50QWN0U3RhdGVtZW50cyhhbmFseXNpczogVGVzdEJsb2NrQW5hbHlzaXMpOiBudW1iZXIge1xyXG4gIHJldHVybiBnZXRBY3RUb3BMZXZlbFN0YXRlbWVudHMoYW5hbHlzaXMpLmxlbmd0aDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEdldHMgdG9wLWxldmVsIHN0YXRlbWVudHMgdGhhdCBiZWxvbmcgdG8gdGhlIEFjdCBwaGFzZSBvbmx5LlxyXG4gKiBAcGFyYW0gYW5hbHlzaXMgSW5wdXQgYW5hbHlzaXMgdmFsdWUuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogZ2V0QWN0VG9wTGV2ZWxTdGF0ZW1lbnRzKGFuYWx5c2lzKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBnZXRBY3RUb3BMZXZlbFN0YXRlbWVudHMoXHJcbiAgYW5hbHlzaXM6IFBpY2s8VGVzdEJsb2NrQW5hbHlzaXMsIFwic3RhdGVtZW50c1wiPixcclxuKTogVGVzdEJsb2NrQW5hbHlzaXNbXCJzdGF0ZW1lbnRzXCJdIHtcclxuICByZXR1cm4gYW5hbHlzaXMuc3RhdGVtZW50cy5maWx0ZXIoXHJcbiAgICAoc3RhdGVtZW50KSA9PlxyXG4gICAgICBzdGF0ZW1lbnQucGhhc2VzLmluY2x1ZGVzKFwiQWN0XCIpICYmICFzdGF0ZW1lbnQucGhhc2VzLmluY2x1ZGVzKFwiQXNzZXJ0XCIpLFxyXG4gICk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBGbGF0dGVucyBzZWN0aW9uIGNvbW1lbnRzLlxyXG4gKiBAcGFyYW0gYW5hbHlzaXMgSW5wdXQgYW5hbHlzaXMgdmFsdWUuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogZ2V0RmxhdHRlbmVkU2VjdGlvbnMoYW5hbHlzaXMpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGdldEZsYXR0ZW5lZFNlY3Rpb25zKFxyXG4gIGFuYWx5c2lzOiBQaWNrPFRlc3RCbG9ja0FuYWx5c2lzLCBcInNlY3Rpb25Db21tZW50c1wiPixcclxuKTogRmxhdHRlbmVkU2VjdGlvbltdIHtcclxuICByZXR1cm4gYW5hbHlzaXMuc2VjdGlvbkNvbW1lbnRzLmZsYXRNYXAoKHNlY3Rpb25Db21tZW50KSA9PlxyXG4gICAgc2VjdGlvbkNvbW1lbnQucGhhc2VzLm1hcCgocGhhc2UpID0+ICh7XHJcbiAgICAgIGNvbW1lbnQ6IHNlY3Rpb25Db21tZW50LmNvbW1lbnQsXHJcbiAgICAgIHBoYXNlLFxyXG4gICAgfSkpLFxyXG4gICk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZXRzIHRoZSBzdGFydCByYW5nZSBmb3IgYSBsaW5lLlxyXG4gKiBAcGFyYW0gc291cmNlVGV4dCBJbnB1dCBzb3VyY2VUZXh0IHZhbHVlLlxyXG4gKiBAcGFyYW0gbGluZSBJbnB1dCBsaW5lIHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGdldExpbmVTdGFydFJhbmdlKHNvdXJjZVRleHQsIDIpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGdldExpbmVTdGFydFJhbmdlKHNvdXJjZVRleHQ6IHN0cmluZywgbGluZTogbnVtYmVyKTogW251bWJlciwgbnVtYmVyXSB7XHJcbiAgbGV0IGN1cnJlbnRMaW5lID0gMTtcclxuICBsZXQgY3VycmVudE9mZnNldCA9IDA7XHJcbiAgZm9yIChjb25zdCBjaGFyYWN0ZXIgb2Ygc291cmNlVGV4dCkge1xyXG4gICAgaWYgKGN1cnJlbnRMaW5lID09PSBsaW5lKSB7XHJcbiAgICAgIHJldHVybiBbY3VycmVudE9mZnNldCwgY3VycmVudE9mZnNldF07XHJcbiAgICB9XHJcbiAgICBpZiAoY2hhcmFjdGVyID09PSBcIlxcblwiKSB7XHJcbiAgICAgIGN1cnJlbnRMaW5lICs9IDE7XHJcbiAgICB9XHJcbiAgICBjdXJyZW50T2Zmc2V0ICs9IDE7XHJcbiAgfVxyXG4gIHJldHVybiBbc291cmNlVGV4dC5sZW5ndGgsIHNvdXJjZVRleHQubGVuZ3RoXTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEdldHMgdGhlIG5ld2xpbmUgc2VxdWVuY2UuXHJcbiAqIEBwYXJhbSB0ZXh0IElucHV0IHRleHQgdmFsdWUuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogZ2V0TmV3bGluZShzb3VyY2VUZXh0KTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBnZXROZXdsaW5lKHRleHQ6IHN0cmluZyk6IFwiXFxuXCIgfCBcIlxcclxcblwiIHtcclxuICByZXR1cm4gdGV4dC5pbmNsdWRlcyhcIlxcclxcblwiKSA/IFwiXFxyXFxuXCIgOiBcIlxcblwiO1xyXG59XHJcblxyXG4vKipcclxuICogR2V0cyBwaGFzZS1ib3VuZGFyeSBjb21tZW50cy5cclxuICogQHBhcmFtIGFuYWx5c2lzIElucHV0IGFuYWx5c2lzIHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGdldFBoYXNlQm91bmRhcnlDb21tZW50cyhhbmFseXNpcyk7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gZ2V0UGhhc2VCb3VuZGFyeUNvbW1lbnRzKFxyXG4gIGFuYWx5c2lzOiBQaWNrPFRlc3RCbG9ja0FuYWx5c2lzLCBcInNlY3Rpb25Db21tZW50c1wiPixcclxuKTogVGVzdEJsb2NrQW5hbHlzaXNbXCJzZWN0aW9uQ29tbWVudHNcIl0ge1xyXG4gIHJldHVybiBhbmFseXNpcy5zZWN0aW9uQ29tbWVudHMuZmlsdGVyKChzZWN0aW9uQ29tbWVudCkgPT5cclxuICAgIHNlY3Rpb25Db21tZW50LnBoYXNlcy5zb21lKFxyXG4gICAgICAocGhhc2UpID0+IHBoYXNlID09PSBcIkFjdFwiIHx8IHBoYXNlID09PSBcIkFzc2VydFwiLFxyXG4gICAgKSxcclxuICApO1xyXG59XHJcblxyXG4vKipcclxuICogUGFyc2VzIEFBQSBwaGFzZXMgZnJvbSBhIGNvbW1lbnQuXHJcbiAqIEBwYXJhbSBjb21tZW50VmFsdWUgSW5wdXQgY29tbWVudFZhbHVlIHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGdldFNlY3Rpb25QaGFzZXMoXCJBcnJhbmdlICYgQWN0XCIpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGdldFNlY3Rpb25QaGFzZXMoY29tbWVudFZhbHVlOiBzdHJpbmcpOiBBYWFQaGFzZVtdIHtcclxuICBjb25zdCB0cmltbWVkQ29tbWVudCA9IGNvbW1lbnRWYWx1ZS50cmltKCk7XHJcbiAgaWYgKHRyaW1tZWRDb21tZW50Lmxlbmd0aCA9PT0gMCkge1xyXG4gICAgcmV0dXJuIFtdO1xyXG4gIH1cclxuICBjb25zdCBwYXJ0cyA9IHRyaW1tZWRDb21tZW50LnNwbGl0KC9cXHMqJlxccyovdSk7XHJcbiAgcmV0dXJuIHBhcnRzLmV2ZXJ5KChwYXJ0KSA9PiBpc0FhYVBoYXNlKHBhcnQpKSA/IHBhcnRzIDogW107XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZXRzIHRoZSBhY3RpdmUgcGhhc2VzIGZvciBhIHN0YXRlbWVudC5cclxuICogQHBhcmFtIHN0YXRlbWVudCBJbnB1dCBzdGF0ZW1lbnQgdmFsdWUuXHJcbiAqIEBwYXJhbSBzZWN0aW9uQ29tbWVudHMgSW5wdXQgc2VjdGlvbkNvbW1lbnRzIHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGdldFN0YXRlbWVudFBoYXNlcyhzdGF0ZW1lbnQsIHNlY3Rpb25Db21tZW50cyk7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gZ2V0U3RhdGVtZW50UGhhc2VzKFxyXG4gIHN0YXRlbWVudDogRVNUcmVlLlN0YXRlbWVudCxcclxuICBzZWN0aW9uQ29tbWVudHM6IFRlc3RCbG9ja0FuYWx5c2lzW1wic2VjdGlvbkNvbW1lbnRzXCJdLFxyXG4pOiBBYWFQaGFzZVtdIHtcclxuICBjb25zdCBzdGF0ZW1lbnRMaW5lID0gc3RhdGVtZW50LmxvYz8uc3RhcnQubGluZTtcclxuICBpZiAoc3RhdGVtZW50TGluZSA9PT0gdm9pZCAwKSB7XHJcbiAgICByZXR1cm4gW107XHJcbiAgfVxyXG4gIGxldCBjdXJyZW50UGhhc2VzOiBBYWFQaGFzZVtdID0gW107XHJcbiAgZm9yIChjb25zdCBzZWN0aW9uQ29tbWVudCBvZiBzZWN0aW9uQ29tbWVudHMpIHtcclxuICAgIGlmIChzZWN0aW9uQ29tbWVudC5jb21tZW50LmxvYy5zdGFydC5saW5lID4gc3RhdGVtZW50TGluZSkge1xyXG4gICAgICBicmVhaztcclxuICAgIH1cclxuICAgIGN1cnJlbnRQaGFzZXMgPSBzZWN0aW9uQ29tbWVudC5waGFzZXM7XHJcbiAgfVxyXG4gIHJldHVybiBjdXJyZW50UGhhc2VzO1xyXG59XHJcblxyXG4vKipcclxuICogR2V0cyBzdXBwb3J0ZWQgdGVzdCBjYWxsIG1ldGFkYXRhLlxyXG4gKiBAcGFyYW0gbm9kZSBJbnB1dCBub2RlIHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGdldFN1cHBvcnRlZFRlc3RDYWxsKG5vZGUpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGdldFN1cHBvcnRlZFRlc3RDYWxsKFxyXG4gIG5vZGU6IEVTVHJlZS5DYWxsRXhwcmVzc2lvbixcclxuKTogU3VwcG9ydGVkVGVzdENhbGwgfCB1bmRlZmluZWQge1xyXG4gIGNvbnN0IHJvb3ROYW1lID0gZ2V0VGVzdFJvb3ROYW1lKG5vZGUuY2FsbGVlKTtcclxuICBpZiAocm9vdE5hbWUgIT09IFwiaXRcIiAmJiByb290TmFtZSAhPT0gXCJ0ZXN0XCIpIHtcclxuICAgIHJldHVybiB2b2lkIDA7XHJcbiAgfVxyXG5cclxuICBjb25zdCBjYWxsYmFja0FyZ3VtZW50ID0gbm9kZS5hcmd1bWVudHMuYXQoLTEpO1xyXG4gIGlmIChcclxuICAgIGNhbGxiYWNrQXJndW1lbnQgPT09IHZvaWQgMCB8fFxyXG4gICAgY2FsbGJhY2tBcmd1bWVudC50eXBlID09PSBcIlNwcmVhZEVsZW1lbnRcIiB8fFxyXG4gICAgKGNhbGxiYWNrQXJndW1lbnQudHlwZSAhPT0gXCJBcnJvd0Z1bmN0aW9uRXhwcmVzc2lvblwiICYmXHJcbiAgICAgIGNhbGxiYWNrQXJndW1lbnQudHlwZSAhPT0gXCJGdW5jdGlvbkV4cHJlc3Npb25cIikgfHxcclxuICAgIGNhbGxiYWNrQXJndW1lbnQuYm9keS50eXBlICE9PSBcIkJsb2NrU3RhdGVtZW50XCJcclxuICApIHtcclxuICAgIHJldHVybiB2b2lkIDA7XHJcbiAgfVxyXG5cclxuICByZXR1cm4ge1xyXG4gICAgY2FsbGJhY2s6IGNhbGxiYWNrQXJndW1lbnQgYXMgU3VwcG9ydGVkVGVzdENhbGxiYWNrLFxyXG4gICAgY2FsbEV4cHJlc3Npb246IG5vZGUgYXMgTG9jYXRlZE5vZGU8RVNUcmVlLkNhbGxFeHByZXNzaW9uPixcclxuICB9O1xyXG59XHJcblxyXG4vKipcclxuICogR2V0cyB0aGUgcm9vdCB0ZXN0IGNhbGxlZSBuYW1lLlxyXG4gKiBAcGFyYW0gY2FsbGVlIElucHV0IGNhbGxlZSB2YWx1ZS5cclxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBnZXRUZXN0Um9vdE5hbWUoY2FsbEV4cHJlc3Npb24uY2FsbGVlKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBnZXRUZXN0Um9vdE5hbWUoXHJcbiAgY2FsbGVlOiBFU1RyZWUuQ2FsbEV4cHJlc3Npb25bXCJjYWxsZWVcIl0sXHJcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XHJcbiAgbGV0IGN1cnJlbnQ6IEVTVHJlZS5DYWxsRXhwcmVzc2lvbltcImNhbGxlZVwiXSA9IGNhbGxlZTtcclxuXHJcbiAgd2hpbGUgKFxyXG4gICAgY3VycmVudC50eXBlID09PSBcIkNhbGxFeHByZXNzaW9uXCIgfHxcclxuICAgIChjdXJyZW50LnR5cGUgPT09IFwiTWVtYmVyRXhwcmVzc2lvblwiICYmIGN1cnJlbnQub2JqZWN0LnR5cGUgIT09IFwiU3VwZXJcIilcclxuICApIHtcclxuICAgIGN1cnJlbnQgPVxyXG4gICAgICBjdXJyZW50LnR5cGUgPT09IFwiQ2FsbEV4cHJlc3Npb25cIiA/IGN1cnJlbnQuY2FsbGVlIDogY3VycmVudC5vYmplY3Q7XHJcbiAgfVxyXG5cclxuICBpZiAoY3VycmVudC50eXBlID09PSBcIklkZW50aWZpZXJcIikge1xyXG4gICAgcmV0dXJuIGN1cnJlbnQubmFtZTtcclxuICB9XHJcblxyXG4gIHJldHVybiB2b2lkIDA7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDaGVja3Mgd2hldGhlciBhIHZhbHVlIGlzIGFuIEFBQSBwaGFzZS5cclxuICogQHBhcmFtIHZhbHVlIElucHV0IHZhbHVlIHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGlzQWFhUGhhc2UoXCJBcnJhbmdlXCIpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGlzQWFhUGhhc2UodmFsdWU6IHN0cmluZyk6IHZhbHVlIGlzIEFhYVBoYXNlIHtcclxuICByZXR1cm4gcGhhc2VOYW1lcy5pbmNsdWRlcyh2YWx1ZSBhcyBBYWFQaGFzZSk7XHJcbn1cclxuXHJcbi8qKiBDb21wYW5pb24gbWFya2VyIGZvciB0ZXN0IGlzb2xhdGlvbi4gKi9cclxuZXhwb3J0IHtcclxuICBhYWFQaGFzZU9yZGVyLFxyXG4gIGNvdW50QWN0U3RhdGVtZW50cyxcclxuICBnZXRBY3RUb3BMZXZlbFN0YXRlbWVudHMsXHJcbiAgZ2V0RmxhdHRlbmVkU2VjdGlvbnMsXHJcbiAgZ2V0TGluZVN0YXJ0UmFuZ2UsXHJcbiAgZ2V0TmV3bGluZSxcclxuICBnZXRQaGFzZUJvdW5kYXJ5Q29tbWVudHMsXHJcbiAgZ2V0U2VjdGlvblBoYXNlcyxcclxuICBnZXRTdGF0ZW1lbnRQaGFzZXMsXHJcbiAgZ2V0U3VwcG9ydGVkVGVzdENhbGwsXHJcbn07XHJcbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"analyzer.assertions.helpers.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/aaa/analyzer.assertions.helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEtC,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAW9D,8DAA8D;AAC9D,UAAU,oBAAoB;IAC5B,2CAA2C;IAC3C,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B;AAED;;;;;;;;GAQG;AACH,iBAAS,4BAA4B,CACnC,QAAQ,EAAE,iBAAiB,GAC1B,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAkB7C;AAwBD;;;;;;;;GAQG;AACH,iBAAS,uBAAuB,CAC9B,SAAS,EAAE,MAAM,CAAC,SAAS,GAC1B,oBAAoB,CAqBtB;AAED;;;;;;;;GAQG;AACH,iBAAS,sBAAsB,CAC7B,SAAS,EAAE,MAAM,CAAC,SAAS,GAC1B,MAAM,CAAC,UAAU,GAAG,SAAS,CAY/B;AAED;;;;;;;;GAQG;AACH,iBAAS,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,GAAG,OAAO,CAQ1D;AAED;;;;;;;;GAQG;AACH,iBAAS,kBAAkB,CACzB,UAAU,EAAE,MAAM,CAAC,UAAU,GAAG,SAAS,GACxC,OAAO,CAOT;AAED;;;;;;;;GAQG;AACH,iBAAS,sBAAsB,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,GAAG,OAAO,CAmBpE;AAED;;;;;;;;GAQG;AACH,iBAAS,gBAAgB,CACvB,UAAU,EAAE,MAAM,CAAC,UAAU,GAAG,SAAS,GACxC,MAAM,CAAC,UAAU,GAAG,SAAS,CAQ/B;AAED;;;;;;;;;GASG;AACH,iBAAS,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,UAAU,GAAG,OAAO,CAExE;AAED,2CAA2C;AAC3C,OAAO,EACL,4BAA4B,EAC5B,uBAAuB,EACvB,sBAAsB,EACtB,YAAY,EACZ,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,EAChB,UAAU,GACX,CAAC"}
1
+ {"version":3,"file":"analyzer.assertions.helpers.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/aaa/analyzer.assertions.helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEtC,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAW9D,8DAA8D;AAC9D,UAAU,oBAAoB;IAC5B,2CAA2C;IAC3C,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B;AAED;;;;;;;;GAQG;AACH,iBAAS,4BAA4B,CACnC,QAAQ,EAAE,iBAAiB,GAC1B,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAkB7C;AAwBD;;;;;;;;GAQG;AACH,iBAAS,uBAAuB,CAC9B,SAAS,EAAE,MAAM,CAAC,SAAS,GAC1B,oBAAoB,CAqBtB;AAED;;;;;;;;GAQG;AACH,iBAAS,sBAAsB,CAC7B,SAAS,EAAE,MAAM,CAAC,SAAS,GAC1B,MAAM,CAAC,UAAU,GAAG,SAAS,CAY/B;AAED;;;;;;;;GAQG;AACH,iBAAS,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,GAAG,OAAO,CAQ1D;AAED;;;;;;;;GAQG;AACH,iBAAS,kBAAkB,CACzB,UAAU,EAAE,MAAM,CAAC,UAAU,GAAG,SAAS,GACxC,OAAO,CAOT;AAED;;;;;;;;GAQG;AACH,iBAAS,sBAAsB,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,GAAG,OAAO,CAmBpE;AAED;;;;;;;;GAQG;AACH,iBAAS,gBAAgB,CACvB,UAAU,EAAE,MAAM,CAAC,UAAU,GAAG,SAAS,GACxC,MAAM,CAAC,UAAU,GAAG,SAAS,CAY/B;AAED;;;;;;;;;GASG;AACH,iBAAS,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,UAAU,GAAG,OAAO,CAExE;AAED,2CAA2C;AAC3C,OAAO,EACL,4BAA4B,EAC5B,uBAAuB,EACvB,sBAAsB,EACtB,YAAY,EACZ,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,EAChB,UAAU,GACX,CAAC"}
@@ -100,13 +100,13 @@ function getStatementExpression(statement) {
100
100
  * ```
101
101
  */
102
102
  function hasAssertion(statement) {
103
- let foundAssertion = false;
103
+ let isAssertionFound = false;
104
104
  visitNode(statement, (node) => {
105
105
  if (node.type === "CallExpression" && isAssertionCall(node)) {
106
- foundAssertion = true;
106
+ isAssertionFound = true;
107
107
  }
108
108
  });
109
- return foundAssertion;
109
+ return isAssertionFound;
110
110
  }
111
111
  /**
112
112
  * Checks for action expressions.
@@ -158,13 +158,14 @@ function isValidAssertStatement(statement) {
158
158
  * ```
159
159
  */
160
160
  function unwrapExpression(expression) {
161
- if (expression?.type === "ChainExpression") {
162
- return unwrapExpression(expression.expression);
161
+ let current = expression;
162
+ while (current?.type === "ChainExpression") {
163
+ current = current.expression;
163
164
  }
164
- if (expression?.type === "AwaitExpression") {
165
- return expression.argument;
165
+ if (current?.type === "AwaitExpression") {
166
+ return current.argument;
166
167
  }
167
- return expression;
168
+ return current;
168
169
  }
169
170
  /**
170
171
  * Checks AAA naming prefixes.
@@ -181,4 +182,4 @@ function usesPrefix(name, prefix) {
181
182
  }
182
183
  /** Companion marker for test isolation. */
183
184
  export { getAssertDeclaredIdentifiers, getAssertionIdentifiers, getStatementExpression, hasAssertion, isActionExpression, isValidAssertStatement, unwrapExpression, usesPrefix, };
184
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl6ZXIuYXNzZXJ0aW9ucy5oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RvbWFpbi90ZXN0aW5nL2FhYS9hbmFseXplci5hc3NlcnRpb25zLmhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixpQkFBaUIsRUFDakIsaUJBQWlCLEVBQ2pCLDJCQUEyQixFQUMzQixlQUFlLEdBQ2hCLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBVXJEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyw0QkFBNEIsQ0FDbkMsUUFBMkI7SUFFM0IsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLEdBQUcsRUFBMEMsQ0FBQztJQUM5RSxLQUFLLE1BQU0sU0FBUyxJQUFJLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUM1QyxJQUNFLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztZQUNuQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxxQkFBcUIsRUFDN0MsQ0FBQztZQUNELEtBQUssTUFBTSxXQUFXLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDdEQsSUFBSSxXQUFXLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxZQUFZLEVBQUUsQ0FBQztvQkFDekMsbUJBQW1CLENBQUMsR0FBRyxDQUNyQixXQUFXLENBQUMsRUFBRSxDQUFDLElBQUksRUFDbkIsV0FBVyxDQUFDLEVBQW9DLENBQ2pELENBQUM7Z0JBQ0osQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sbUJBQW1CLENBQUM7QUFDN0IsQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILFNBQVMsc0JBQXNCLENBQzdCLFNBQTJCO0lBRTNCLElBQUksU0FBUyxD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QUFVLENBQUMsSUFBWSxFQUFFLE1BQTZCO0lBQzdELE9BQU8sSUFBSSxLQUFLLE1BQU0sSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3BELENBQUM7QUFFRCwyQ0FBMkM7QUFDM0MsT0FBTyxFQUNMLDRCQUE0QixFQUM1Qix1QkFBdUIsRUFDdkIsc0JBQXNCLEVBQ3RCLFlBQVksRUFDWixrQkFBa0IsRUFDbEIsc0JBQXNCLEVBQ3RCLGdCQUFnQixFQUNoQixVQUFVLEdBQ1gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlICogYXMgRVNUcmVlIGZyb20gXCJlc3RyZWVcIjtcclxuXHJcbmltcG9ydCB0eXBlIHsgTG9jYXRlZE5vZGUsIFRlc3RCbG9ja0FuYWx5c2lzIH0gZnJvbSBcIi4vdHlwZXNcIjtcclxuXHJcbmltcG9ydCB7XHJcbiAgZ2V0QXNzZXJ0T3BlcmFuZHMsXHJcbiAgZ2V0RXhwZWN0T3BlcmFuZHMsXHJcbiAgZ2V0SWRlbnRpZmllck5hbWUsXHJcbiAgaGFzRXZhbHVhdGVkQXNzZXJ0aW9uQWN0dWFsLFxyXG4gIGlzQXNzZXJ0aW9uQ2FsbCxcclxufSBmcm9tIFwiLi9hbmFseXplci5hc3NlcnRpb25zLm9wZXJhbmRzXCI7XHJcbmltcG9ydCB7IHZpc2l0Tm9kZSB9IGZyb20gXCIuL2FuYWx5emVyLnN1cGVyLmhlbHBlcnNcIjtcclxuXHJcbi8qKiBJZGVudGlmaWVyIG5hbWVzIGV4dHJhY3RlZCBmcm9tIGFuIGFzc2VydGlvbiBzdGF0ZW1lbnQuICovXHJcbmludGVyZmFjZSBBc3NlcnRpb25JZGVudGlmaWVycyB7XHJcbiAgLyoqIElkZW50aWZpZXIgdXNlZCBhcyB0aGUgYWN0dWFsIHZhbHVlLiAqL1xyXG4gIGFjdHVhbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIC8qKiBJZGVudGlmaWVyIHVzZWQgYXMgdGhlIGV4cGVjdGVkIHZhbHVlLiAqL1xyXG4gIGV4cGVjdGVkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDb2xsZWN0cyBBc3NlcnQgZGVjbGFyYXRpb25zLlxyXG4gKiBAcGFyYW0gYW5hbHlzaXMgSW5wdXQgYW5hbHlzaXMgdmFsdWUuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogZ2V0QXNzZXJ0RGVjbGFyZWRJZGVudGlmaWVycyhhbmFseXNpcyk7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gZ2V0QXNzZXJ0RGVjbGFyZWRJZGVudGlmaWVycyhcclxuICBhbmFseXNpczogVGVzdEJsb2NrQW5hbHlzaXMsXHJcbik6IE1hcDxzdHJpbmcsIExvY2F0ZWROb2RlPEVTVHJlZS5JZGVudGlmaWVyPj4ge1xyXG4gIGNvbnN0IGRlY2xhcmVkSWRlbnRpZmllcnMgPSBuZXcgTWFwPHN0cmluZywgTG9jYXRlZE5vZGU8RVNUcmVlLklkZW50aWZpZXI+PigpO1xyXG4gIGZvciAoY29uc3Qgc3RhdGVtZW50IG9mIGFuYWx5c2lzLnN0YXRlbWVudHMpIHtcclxuICAgIGlmIChcclxuICAgICAgc3RhdGVtZW50LnBoYXNlcy5pbmNsdWRlcyhcIkFzc2VydFwiKSAmJlxyXG4gICAgICBzdGF0ZW1lbnQubm9kZS50eXBlID09PSBcIlZhcmlhYmxlRGVjbGFyYXRpb25cIlxyXG4gICAgKSB7XHJcbiAgICAgIGZvciAoY29uc3QgZGVjbGFyYXRpb24gb2Ygc3RhdGVtZW50Lm5vZGUuZGVjbGFyYXRpb25zKSB7XHJcbiAgICAgICAgaWYgKGRlY2xhcmF0aW9uLmlkLnR5cGUgPT09IFwiSWRlbnRpZmllclwiKSB7XHJcbiAgICAgICAgICBkZWNsYXJlZElkZW50aWZpZXJzLnNldChcclxuICAgICAgICAgICAgZGVjbGFyYXRpb24uaWQubmFtZSxcclxuICAgICAgICAgICAgZGVjbGFyYXRpb24uaWQgYXMgTG9jYXRlZE5vZGU8RVNUcmVlLklkZW50aWZpZXI+LFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIGRlY2xhcmVkSWRlbnRpZmllcnM7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZXRzIHRoZSBvdXRlciBhc3NlcnRpb24gY2FsbCBleHByZXNzaW9uIGZvciBvbmUgc3RhdGVtZW50IHdoZW4gcHJlc2VudC5cclxuICogQHBhcmFtIHN0YXRlbWVudCBTdGF0ZW1lbnQgdG8gaW5zcGVjdC5cclxuICogQHJldHVybnMgQXNzZXJ0aW9uIGNhbGwgZXhwcmVzc2lvbiB3aGVuIHRoZSBzdGF0ZW1lbnQgaXMgZXhwcmVzc2lvbi1iYXNlZC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCBleHByZXNzaW9uID0gZ2V0QXNzZXJ0aW9uRXhwcmVzc2lvbihzdGF0ZW1lbnQpO1xyXG4gKiB2b2lkIGV4cHJlc3Npb247XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gZ2V0QXNzZXJ0aW9uRXhwcmVzc2lvbihcclxuICBzdGF0ZW1lbnQ6IEVTVHJlZS5TdGF0ZW1lbnQsXHJcbik6IEVTVHJlZS5DYWxsRXhwcmVzc2lvbiB8IHVuZGVmaW5lZCB7XHJcbiAgaWYgKHN0YXRlbWVudC50eXBlICE9PSBcIkV4cHJlc3Npb25TdGF0ZW1lbnRcIikge1xyXG4gICAgcmV0dXJuIHZvaWQgMDtcclxuICB9XHJcblxyXG4gIGNvbnN0IGV4cHJlc3Npb24gPSB1bndyYXBFeHByZXNzaW9uKHN0YXRlbWVudC5leHByZXNzaW9uKTtcclxuXHJcbiAgcmV0dXJuIGV4cHJlc3Npb24/LnR5cGUgPT09IFwiQ2FsbEV4cHJlc3Npb25cIiA/IGV4cHJlc3Npb24gOiB2b2lkIDA7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBFeHRyYWN0cyBhc3NlcnRpb24gaWRlbnRpZmllcnMuXHJcbiAqIEBwYXJhbSBzdGF0ZW1lbnQgSW5wdXQgc3RhdGVtZW50IHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGdldEFzc2VydGlvbklkZW50aWZpZXJzKHN0YXRlbWVudCk7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gZ2V0QXNzZXJ0aW9uSWRlbnRpZmllcnMoXHJcbiAgc3RhdGVtZW50OiBFU1RyZWUuU3RhdGVtZW50LFxyXG4pOiBBc3NlcnRpb25JZGVudGlmaWVycyB7XHJcbiAgaWYgKHN0YXRlbWVudC50eXBlICE9PSBcIkV4cHJlc3Npb25TdGF0ZW1lbnRcIikge1xyXG4gICAgcmV0dXJuIHsgYWN0dWFsOiB2b2lkIDAsIGV4cGVjdGVkOiB2b2lkIDAgfTtcclxuICB9XHJcbiAgY29uc3QgZXhwcmVzc2lvbiA9IHVud3JhcEV4cHJlc3Npb24oc3RhdGVtZW50LmV4cHJlc3Npb24pO1xyXG4gIGlmIChleHByZXNzaW9uPy50eXBlICE9PSBcIkNhbGxFeHByZXNzaW9uXCIpIHtcclxuICAgIHJldHVybiB7IGFjdHVhbDogdm9pZCAwLCBleHBlY3RlZDogdm9pZCAwIH07XHJcbiAgfVxyXG5cclxuICBjb25zdCBleHBlY3RPcGVyYW5kcyA9IGdldEV4cGVjdE9wZXJhbmRzKGV4cHJlc3Npb24pO1xyXG4gIGlmIChleHBlY3RPcGVyYW5kcyAhPT0gdm9pZCAwKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBhY3R1YWw6IGdldElkZW50aWZpZXJOYW1lKGV4cGVjdE9wZXJhbmRzLmFjdHVhbCksXHJcbiAgICAgIGV4cGVjdGVkOiBnZXRJZGVudGlmaWVyTmFtZShleHBlY3RPcGVyYW5kcy5leHBlY3RlZCksXHJcbiAgICB9O1xyXG4gIH1cclxuICBjb25zdCBhc3NlcnRPcGVyYW5kcyA9IGdldEFzc2VydE9wZXJhbmRzKGV4cHJlc3Npb24pO1xyXG4gIHJldHVybiB7XHJcbiAgICBhY3R1YWw6IGdldElkZW50aWZpZXJOYW1lKGFzc2VydE9wZXJhbmRzPy5hY3R1YWwpLFxyXG4gICAgZXhwZWN0ZWQ6IGdldElkZW50aWZpZXJOYW1lKGFzc2VydE9wZXJhbmRzPy5leHBlY3RlZCksXHJcbiAgfTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEdldHMgYSBzdGF0ZW1lbnQgZXhwcmVzc2lvbi5cclxuICogQHBhcmFtIHN0YXRlbWVudCBJbnB1dCBzdGF0ZW1lbnQgdmFsdWUuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogZ2V0U3RhdGVtZW50RXhwcmVzc2lvbihzdGF0ZW1lbnQpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGdldFN0YXRlbWVudEV4cHJlc3Npb24oXHJcbiAgc3RhdGVtZW50OiBFU1RyZWUuU3RhdGVtZW50LFxyXG4pOiBFU1RyZWUuRXhwcmVzc2lvbiB8IHVuZGVmaW5lZCB7XHJcbiAgaWYgKHN0YXRlbWVudC50eXBlID09PSBcIkV4cHJlc3Npb25TdGF0ZW1lbnRcIikge1xyXG4gICAgcmV0dXJuIHN0YXRlbWVudC5leHByZXNzaW9uO1xyXG4gIH1cclxuICBpZiAoXHJcbiAgICBzdGF0ZW1lbnQudHlwZSA9PT0gXCJWYXJpYWJsZURlY2xhcmF0aW9uXCIgJiZcclxuICAgIHN0YXRlbWVudC5kZWNsYXJhdGlvbnMubGVuZ3RoID09PSAxXHJcbiAgKSB7XHJcbiAgICBjb25zdCBbZGVjbGFyYXRpb25dID0gc3RhdGVtZW50LmRlY2xhcmF0aW9ucztcclxuICAgIHJldHVybiBkZWNsYXJhdGlvbj8uaW5pdCBhcyBFU1RyZWUuRXhwcmVzc2lvbiB8IHVuZGVmaW5lZDtcclxuICB9XHJcbiAgcmV0dXJuIHZvaWQgMDtcclxufVxyXG5cclxuLyoqXHJcbiAqIENoZWNrcyBmb3IgYXNzZXJ0aW9ucy5cclxuICogQHBhcmFtIHN0YXRlbWVudCBJbnB1dCBzdGF0ZW1lbnQgdmFsdWUuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogaGFzQXNzZXJ0aW9uKHN0YXRlbWVudCk7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gaGFzQXNzZXJ0aW9uKHN0YXRlbWVudDogRVNUcmVlLlN0YXRlbWVudCk6IGJvb2xlYW4ge1xyXG4gIGxldCBmb3VuZEFzc2VydGlvbiA9IGZhbHNlO1xyXG4gIHZpc2l0Tm9kZShzdGF0ZW1lbnQsIChub2RlKSA9PiB7XHJcbiAgICBpZiAobm9kZS50eXBlID09PSBcIkNhbGxFeHByZXNzaW9uXCIgJiYgaXNBc3NlcnRpb25DYWxsKG5vZGUpKSB7XHJcbiAgICAgIGZvdW5kQXNzZXJ0aW9uID0gdHJ1ZTtcclxuICAgIH1cclxuICB9KTtcclxuICByZXR1cm4gZm91bmRBc3NlcnRpb247XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDaGVja3MgZm9yIGFjdGlvbiBleHByZXNzaW9ucy5cclxuICogQHBhcmFtIGV4cHJlc3Npb24gSW5wdXQgZXhwcmVzc2lvbiB2YWx1ZS5cclxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBpc0FjdGlvbkV4cHJlc3Npb24oZXhwcmVzc2lvbik7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gaXNBY3Rpb25FeHByZXNzaW9uKFxyXG4gIGV4cHJlc3Npb246IEVTVHJlZS5FeHByZXNzaW9uIHwgdW5kZWZpbmVkLFxyXG4pOiBib29sZWFuIHtcclxuICBjb25zdCB1bndyYXBwZWRFeHByZXNzaW9uID0gdW53cmFwRXhwcmVzc2lvbihleHByZXNzaW9uKTtcclxuICByZXR1cm4gKFxyXG4gICAgdW53cmFwcGVkRXhwcmVzc2lvbj8udHlwZSA9PT0gXCJBd2FpdEV4cHJlc3Npb25cIiB8fFxyXG4gICAgdW53cmFwcGVkRXhwcmVzc2lvbj8udHlwZSA9PT0gXCJDYWxsRXhwcmVzc2lvblwiIHx8XHJcbiAgICB1bndyYXBwZWRFeHByZXNzaW9uPy50eXBlID09PSBcIk5ld0V4cHJlc3Npb25cIlxyXG4gICk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDaGVja3MgQXNzZXJ0IHN0YXRlbWVudCB2YWxpZGl0eS5cclxuICogQHBhcmFtIHN0YXRlbWVudCBJbnB1dCBzdGF0ZW1lbnQgdmFsdWUuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogaXNWYWxpZEFzc2VydFN0YXRlbWVudChzdGF0ZW1lbnQpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGlzVmFsaWRBc3NlcnRTdGF0ZW1lbnQoc3RhdGVtZW50OiBFU1RyZWUuU3RhdGVtZW50KTogYm9vbGVhbiB7XHJcbiAgaWYgKGhhc0Fzc2VydGlvbihzdGF0ZW1lbnQpKSB7XHJcbiAgICBjb25zdCBhc3NlcnRpb25FeHByZXNzaW9uID0gZ2V0QXNzZXJ0aW9uRXhwcmVzc2lvbihzdGF0ZW1lbnQpO1xyXG5cclxuICAgIHJldHVybiAoXHJcbiAgICAgIGFzc2VydGlvbkV4cHJlc3Npb24gPT09IHZvaWQgMCB8fFxyXG4gICAgICAhaGFzRXZhbHVhdGVkQXNzZXJ0aW9uQWN0dWFsKGFzc2VydGlvbkV4cHJlc3Npb24sIGlzQWN0aW9uRXhwcmVzc2lvbilcclxuICAgICk7XHJcbiAgfVxyXG4gIGlmIChzdGF0ZW1lbnQudHlwZSAhPT0gXCJWYXJpYWJsZURlY2xhcmF0aW9uXCIpIHtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHJldHVybiBzdGF0ZW1lbnQuZGVjbGFyYXRpb25zLmV2ZXJ5KChkZWNsYXJhdGlvbikgPT4ge1xyXG4gICAgaWYgKGRlY2xhcmF0aW9uLmluaXQgPT09IG51bGwpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gIWlzQWN0aW9uRXhwcmVzc2lvbih1bndyYXBFeHByZXNzaW9uKGRlY2xhcmF0aW9uLmluaXQpKTtcclxuICB9KTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFVud3JhcHMgbmVzdGVkIGV4cHJlc3Npb25zLlxyXG4gKiBAcGFyYW0gZXhwcmVzc2lvbiBJbnB1dCBleHByZXNzaW9uIHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIHVud3JhcEV4cHJlc3Npb24oZXhwcmVzc2lvbik7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gdW53cmFwRXhwcmVzc2lvbihcclxuICBleHByZXNzaW9uOiBFU1RyZWUuRXhwcmVzc2lvbiB8IHVuZGVmaW5lZCxcclxuKTogRVNUcmVlLkV4cHJlc3Npb24gfCB1bmRlZmluZWQge1xyXG4gIGlmIChleHByZXNzaW9uPy50eXBlID09PSBcIkNoYWluRXhwcmVzc2lvblwiKSB7XHJcbiAgICByZXR1cm4gdW53cmFwRXhwcmVzc2lvbihleHByZXNzaW9uLmV4cHJlc3Npb24pO1xyXG4gIH1cclxuICBpZiAoZXhwcmVzc2lvbj8udHlwZSA9PT0gXCJBd2FpdEV4cHJlc3Npb25cIikge1xyXG4gICAgcmV0dXJuIGV4cHJlc3Npb24uYXJndW1lbnQ7XHJcbiAgfVxyXG4gIHJldHVybiBleHByZXNzaW9uO1xyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2tzIEFBQSBuYW1pbmcgcHJlZml4ZXMuXHJcbiAqIEBwYXJhbSBuYW1lIElucHV0IG5hbWUgdmFsdWUuXHJcbiAqIEBwYXJhbSBwcmVmaXggSW5wdXQgcHJlZml4IHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIHVzZXNQcmVmaXgoXCJhY3R1YWxSZXN1bHRcIiwgXCJhY3R1YWxcIik7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gdXNlc1ByZWZpeChuYW1lOiBzdHJpbmcsIHByZWZpeDogXCJhY3R1YWxcIiB8IFwiZXhwZWN0ZWRcIik6IGJvb2xlYW4ge1xyXG4gIHJldHVybiBuYW1lID09PSBwcmVmaXggfHwgbmFtZS5zdGFydHNXaXRoKHByZWZpeCk7XHJcbn1cclxuXHJcbi8qKiBDb21wYW5pb24gbWFya2VyIGZvciB0ZXN0IGlzb2xhdGlvbi4gKi9cclxuZXhwb3J0IHtcclxuICBnZXRBc3NlcnREZWNsYXJlZElkZW50aWZpZXJzLFxyXG4gIGdldEFzc2VydGlvbklkZW50aWZpZXJzLFxyXG4gIGdldFN0YXRlbWVudEV4cHJlc3Npb24sXHJcbiAgaGFzQXNzZXJ0aW9uLFxyXG4gIGlzQWN0aW9uRXhwcmVzc2lvbixcclxuICBpc1ZhbGlkQXNzZXJ0U3RhdGVtZW50LFxyXG4gIHVud3JhcEV4cHJlc3Npb24sXHJcbiAgdXNlc1ByZWZpeCxcclxufTtcclxuIl19
185
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl6ZXIuYXNzZXJ0aW9ucy5oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RvbWFpbi90ZXN0aW5nL2FhYS9hbmFseXplci5hc3NlcnRpb25zLmhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixpQkFBaUIsRUFDakIsaUJBQWlCLEVBQ2pCLDJCQUEyQixFQUMzQixlQUFlLEdBQ2hCLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBVXJEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyw0QkFBNEIsQ0FDbkMsUUFBMkI7SUFFM0IsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLEdBQUcsRUFBMEMsQ0FBQztJQUM5RSxLQUFLLE1BQU0sU0FBUyxJQUFJLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUM1QyxJQUNFLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztZQUNuQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxxQkFBcUIsRUFDN0MsQ0FBQztZQUNELEtBQUssTUFBTSxXQUFXLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDdEQsSUFBSSxXQUFXLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxZQUFZLEVBQUUsQ0FBQztvQkFDekMsbUJBQW1CLENBQUMsR0FBRyxDQUNyQixXQUFXLENBQUMsRUFBRSxDQUFDLElBQUksRUFDbkIsV0FBVyxDQUFDLEVBQW9DLENBQ2pELENBQUM7Z0JBQ0osQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sbUJBQW1CLENBQUM7QUFDN0IsQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILFNBQVMsc0JBQXNCLENBQzdCLFNBQTJCO0lBRTNCLElBQUksU0FBUyxD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Ozs7Ozs7Ozs7R0FTRztBQUNILFNBQVMsVUFBVSxDQUFDLElBQVksRUFBRSxNQUE2QjtJQUM3RCxPQUFPLElBQUksS0FBSyxNQUFNLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNwRCxDQUFDO0FBRUQsMkNBQTJDO0FBQzNDLE9BQU8sRUFDTCw0QkFBNEIsRUFDNUIsdUJBQXVCLEVBQ3ZCLHNCQUFzQixFQUN0QixZQUFZLEVBQ1osa0JBQWtCLEVBQ2xCLHNCQUFzQixFQUN0QixnQkFBZ0IsRUFDaEIsVUFBVSxHQUNYLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSAqIGFzIEVTVHJlZSBmcm9tIFwiZXN0cmVlXCI7XHJcblxyXG5pbXBvcnQgdHlwZSB7IExvY2F0ZWROb2RlLCBUZXN0QmxvY2tBbmFseXNpcyB9IGZyb20gXCIuL3R5cGVzXCI7XHJcblxyXG5pbXBvcnQge1xyXG4gIGdldEFzc2VydE9wZXJhbmRzLFxyXG4gIGdldEV4cGVjdE9wZXJhbmRzLFxyXG4gIGdldElkZW50aWZpZXJOYW1lLFxyXG4gIGhhc0V2YWx1YXRlZEFzc2VydGlvbkFjdHVhbCxcclxuICBpc0Fzc2VydGlvbkNhbGwsXHJcbn0gZnJvbSBcIi4vYW5hbHl6ZXIuYXNzZXJ0aW9ucy5vcGVyYW5kc1wiO1xyXG5pbXBvcnQgeyB2aXNpdE5vZGUgfSBmcm9tIFwiLi9hbmFseXplci5zdXBlci5oZWxwZXJzXCI7XHJcblxyXG4vKiogSWRlbnRpZmllciBuYW1lcyBleHRyYWN0ZWQgZnJvbSBhbiBhc3NlcnRpb24gc3RhdGVtZW50LiAqL1xyXG5pbnRlcmZhY2UgQXNzZXJ0aW9uSWRlbnRpZmllcnMge1xyXG4gIC8qKiBJZGVudGlmaWVyIHVzZWQgYXMgdGhlIGFjdHVhbCB2YWx1ZS4gKi9cclxuICBhY3R1YWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAvKiogSWRlbnRpZmllciB1c2VkIGFzIHRoZSBleHBlY3RlZCB2YWx1ZS4gKi9cclxuICBleHBlY3RlZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG59XHJcblxyXG4vKipcclxuICogQ29sbGVjdHMgQXNzZXJ0IGRlY2xhcmF0aW9ucy5cclxuICogQHBhcmFtIGFuYWx5c2lzIElucHV0IGFuYWx5c2lzIHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGdldEFzc2VydERlY2xhcmVkSWRlbnRpZmllcnMoYW5hbHlzaXMpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGdldEFzc2VydERlY2xhcmVkSWRlbnRpZmllcnMoXHJcbiAgYW5hbHlzaXM6IFRlc3RCbG9ja0FuYWx5c2lzLFxyXG4pOiBNYXA8c3RyaW5nLCBMb2NhdGVkTm9kZTxFU1RyZWUuSWRlbnRpZmllcj4+IHtcclxuICBjb25zdCBkZWNsYXJlZElkZW50aWZpZXJzID0gbmV3IE1hcDxzdHJpbmcsIExvY2F0ZWROb2RlPEVTVHJlZS5JZGVudGlmaWVyPj4oKTtcclxuICBmb3IgKGNvbnN0IHN0YXRlbWVudCBvZiBhbmFseXNpcy5zdGF0ZW1lbnRzKSB7XHJcbiAgICBpZiAoXHJcbiAgICAgIHN0YXRlbWVudC5waGFzZXMuaW5jbHVkZXMoXCJBc3NlcnRcIikgJiZcclxuICAgICAgc3RhdGVtZW50Lm5vZGUudHlwZSA9PT0gXCJWYXJpYWJsZURlY2xhcmF0aW9uXCJcclxuICAgICkge1xyXG4gICAgICBmb3IgKGNvbnN0IGRlY2xhcmF0aW9uIG9mIHN0YXRlbWVudC5ub2RlLmRlY2xhcmF0aW9ucykge1xyXG4gICAgICAgIGlmIChkZWNsYXJhdGlvbi5pZC50eXBlID09PSBcIklkZW50aWZpZXJcIikge1xyXG4gICAgICAgICAgZGVjbGFyZWRJZGVudGlmaWVycy5zZXQoXHJcbiAgICAgICAgICAgIGRlY2xhcmF0aW9uLmlkLm5hbWUsXHJcbiAgICAgICAgICAgIGRlY2xhcmF0aW9uLmlkIGFzIExvY2F0ZWROb2RlPEVTVHJlZS5JZGVudGlmaWVyPixcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBkZWNsYXJlZElkZW50aWZpZXJzO1xyXG59XHJcblxyXG4vKipcclxuICogR2V0cyB0aGUgb3V0ZXIgYXNzZXJ0aW9uIGNhbGwgZXhwcmVzc2lvbiBmb3Igb25lIHN0YXRlbWVudCB3aGVuIHByZXNlbnQuXHJcbiAqIEBwYXJhbSBzdGF0ZW1lbnQgU3RhdGVtZW50IHRvIGluc3BlY3QuXHJcbiAqIEByZXR1cm5zIEFzc2VydGlvbiBjYWxsIGV4cHJlc3Npb24gd2hlbiB0aGUgc3RhdGVtZW50IGlzIGV4cHJlc3Npb24tYmFzZWQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3QgZXhwcmVzc2lvbiA9IGdldEFzc2VydGlvbkV4cHJlc3Npb24oc3RhdGVtZW50KTtcclxuICogdm9pZCBleHByZXNzaW9uO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGdldEFzc2VydGlvbkV4cHJlc3Npb24oXHJcbiAgc3RhdGVtZW50OiBFU1RyZWUuU3RhdGVtZW50LFxyXG4pOiBFU1RyZWUuQ2FsbEV4cHJlc3Npb24gfCB1bmRlZmluZWQge1xyXG4gIGlmIChzdGF0ZW1lbnQudHlwZSAhPT0gXCJFeHByZXNzaW9uU3RhdGVtZW50XCIpIHtcclxuICAgIHJldHVybiB2b2lkIDA7XHJcbiAgfVxyXG5cclxuICBjb25zdCBleHByZXNzaW9uID0gdW53cmFwRXhwcmVzc2lvbihzdGF0ZW1lbnQuZXhwcmVzc2lvbik7XHJcblxyXG4gIHJldHVybiBleHByZXNzaW9uPy50eXBlID09PSBcIkNhbGxFeHByZXNzaW9uXCIgPyBleHByZXNzaW9uIDogdm9pZCAwO1xyXG59XHJcblxyXG4vKipcclxuICogRXh0cmFjdHMgYXNzZXJ0aW9uIGlkZW50aWZpZXJzLlxyXG4gKiBAcGFyYW0gc3RhdGVtZW50IElucHV0IHN0YXRlbWVudCB2YWx1ZS5cclxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBnZXRBc3NlcnRpb25JZGVudGlmaWVycyhzdGF0ZW1lbnQpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGdldEFzc2VydGlvbklkZW50aWZpZXJzKFxyXG4gIHN0YXRlbWVudDogRVNUcmVlLlN0YXRlbWVudCxcclxuKTogQXNzZXJ0aW9uSWRlbnRpZmllcnMge1xyXG4gIGlmIChzdGF0ZW1lbnQudHlwZSAhPT0gXCJFeHByZXNzaW9uU3RhdGVtZW50XCIpIHtcclxuICAgIHJldHVybiB7IGFjdHVhbDogdm9pZCAwLCBleHBlY3RlZDogdm9pZCAwIH07XHJcbiAgfVxyXG4gIGNvbnN0IGV4cHJlc3Npb24gPSB1bndyYXBFeHByZXNzaW9uKHN0YXRlbWVudC5leHByZXNzaW9uKTtcclxuICBpZiAoZXhwcmVzc2lvbj8udHlwZSAhPT0gXCJDYWxsRXhwcmVzc2lvblwiKSB7XHJcbiAgICByZXR1cm4geyBhY3R1YWw6IHZvaWQgMCwgZXhwZWN0ZWQ6IHZvaWQgMCB9O1xyXG4gIH1cclxuXHJcbiAgY29uc3QgZXhwZWN0T3BlcmFuZHMgPSBnZXRFeHBlY3RPcGVyYW5kcyhleHByZXNzaW9uKTtcclxuICBpZiAoZXhwZWN0T3BlcmFuZHMgIT09IHZvaWQgMCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgYWN0dWFsOiBnZXRJZGVudGlmaWVyTmFtZShleHBlY3RPcGVyYW5kcy5hY3R1YWwpLFxyXG4gICAgICBleHBlY3RlZDogZ2V0SWRlbnRpZmllck5hbWUoZXhwZWN0T3BlcmFuZHMuZXhwZWN0ZWQpLFxyXG4gICAgfTtcclxuICB9XHJcbiAgY29uc3QgYXNzZXJ0T3BlcmFuZHMgPSBnZXRBc3NlcnRPcGVyYW5kcyhleHByZXNzaW9uKTtcclxuICByZXR1cm4ge1xyXG4gICAgYWN0dWFsOiBnZXRJZGVudGlmaWVyTmFtZShhc3NlcnRPcGVyYW5kcz8uYWN0dWFsKSxcclxuICAgIGV4cGVjdGVkOiBnZXRJZGVudGlmaWVyTmFtZShhc3NlcnRPcGVyYW5kcz8uZXhwZWN0ZWQpLFxyXG4gIH07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZXRzIGEgc3RhdGVtZW50IGV4cHJlc3Npb24uXHJcbiAqIEBwYXJhbSBzdGF0ZW1lbnQgSW5wdXQgc3RhdGVtZW50IHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGdldFN0YXRlbWVudEV4cHJlc3Npb24oc3RhdGVtZW50KTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBnZXRTdGF0ZW1lbnRFeHByZXNzaW9uKFxyXG4gIHN0YXRlbWVudDogRVNUcmVlLlN0YXRlbWVudCxcclxuKTogRVNUcmVlLkV4cHJlc3Npb24gfCB1bmRlZmluZWQge1xyXG4gIGlmIChzdGF0ZW1lbnQudHlwZSA9PT0gXCJFeHByZXNzaW9uU3RhdGVtZW50XCIpIHtcclxuICAgIHJldHVybiBzdGF0ZW1lbnQuZXhwcmVzc2lvbjtcclxuICB9XHJcbiAgaWYgKFxyXG4gICAgc3RhdGVtZW50LnR5cGUgPT09IFwiVmFyaWFibGVEZWNsYXJhdGlvblwiICYmXHJcbiAgICBzdGF0ZW1lbnQuZGVjbGFyYXRpb25zLmxlbmd0aCA9PT0gMVxyXG4gICkge1xyXG4gICAgY29uc3QgW2RlY2xhcmF0aW9uXSA9IHN0YXRlbWVudC5kZWNsYXJhdGlvbnM7XHJcbiAgICByZXR1cm4gZGVjbGFyYXRpb24/LmluaXQgYXMgRVNUcmVlLkV4cHJlc3Npb24gfCB1bmRlZmluZWQ7XHJcbiAgfVxyXG4gIHJldHVybiB2b2lkIDA7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDaGVja3MgZm9yIGFzc2VydGlvbnMuXHJcbiAqIEBwYXJhbSBzdGF0ZW1lbnQgSW5wdXQgc3RhdGVtZW50IHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGhhc0Fzc2VydGlvbihzdGF0ZW1lbnQpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGhhc0Fzc2VydGlvbihzdGF0ZW1lbnQ6IEVTVHJlZS5TdGF0ZW1lbnQpOiBib29sZWFuIHtcclxuICBsZXQgaXNBc3NlcnRpb25Gb3VuZCA9IGZhbHNlO1xyXG4gIHZpc2l0Tm9kZShzdGF0ZW1lbnQsIChub2RlKSA9PiB7XHJcbiAgICBpZiAobm9kZS50eXBlID09PSBcIkNhbGxFeHByZXNzaW9uXCIgJiYgaXNBc3NlcnRpb25DYWxsKG5vZGUpKSB7XHJcbiAgICAgIGlzQXNzZXJ0aW9uRm91bmQgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIHJldHVybiBpc0Fzc2VydGlvbkZvdW5kO1xyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2tzIGZvciBhY3Rpb24gZXhwcmVzc2lvbnMuXHJcbiAqIEBwYXJhbSBleHByZXNzaW9uIElucHV0IGV4cHJlc3Npb24gdmFsdWUuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogaXNBY3Rpb25FeHByZXNzaW9uKGV4cHJlc3Npb24pO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGlzQWN0aW9uRXhwcmVzc2lvbihcclxuICBleHByZXNzaW9uOiBFU1RyZWUuRXhwcmVzc2lvbiB8IHVuZGVmaW5lZCxcclxuKTogYm9vbGVhbiB7XHJcbiAgY29uc3QgdW53cmFwcGVkRXhwcmVzc2lvbiA9IHVud3JhcEV4cHJlc3Npb24oZXhwcmVzc2lvbik7XHJcbiAgcmV0dXJuIChcclxuICAgIHVud3JhcHBlZEV4cHJlc3Npb24/LnR5cGUgPT09IFwiQXdhaXRFeHByZXNzaW9uXCIgfHxcclxuICAgIHVud3JhcHBlZEV4cHJlc3Npb24/LnR5cGUgPT09IFwiQ2FsbEV4cHJlc3Npb25cIiB8fFxyXG4gICAgdW53cmFwcGVkRXhwcmVzc2lvbj8udHlwZSA9PT0gXCJOZXdFeHByZXNzaW9uXCJcclxuICApO1xyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2tzIEFzc2VydCBzdGF0ZW1lbnQgdmFsaWRpdHkuXHJcbiAqIEBwYXJhbSBzdGF0ZW1lbnQgSW5wdXQgc3RhdGVtZW50IHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGlzVmFsaWRBc3NlcnRTdGF0ZW1lbnQoc3RhdGVtZW50KTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBpc1ZhbGlkQXNzZXJ0U3RhdGVtZW50KHN0YXRlbWVudDogRVNUcmVlLlN0YXRlbWVudCk6IGJvb2xlYW4ge1xyXG4gIGlmIChoYXNBc3NlcnRpb24oc3RhdGVtZW50KSkge1xyXG4gICAgY29uc3QgYXNzZXJ0aW9uRXhwcmVzc2lvbiA9IGdldEFzc2VydGlvbkV4cHJlc3Npb24oc3RhdGVtZW50KTtcclxuXHJcbiAgICByZXR1cm4gKFxyXG4gICAgICBhc3NlcnRpb25FeHByZXNzaW9uID09PSB2b2lkIDAgfHxcclxuICAgICAgIWhhc0V2YWx1YXRlZEFzc2VydGlvbkFjdHVhbChhc3NlcnRpb25FeHByZXNzaW9uLCBpc0FjdGlvbkV4cHJlc3Npb24pXHJcbiAgICApO1xyXG4gIH1cclxuICBpZiAoc3RhdGVtZW50LnR5cGUgIT09IFwiVmFyaWFibGVEZWNsYXJhdGlvblwiKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gc3RhdGVtZW50LmRlY2xhcmF0aW9ucy5ldmVyeSgoZGVjbGFyYXRpb24pID0+IHtcclxuICAgIGlmIChkZWNsYXJhdGlvbi5pbml0ID09PSBudWxsKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuICFpc0FjdGlvbkV4cHJlc3Npb24odW53cmFwRXhwcmVzc2lvbihkZWNsYXJhdGlvbi5pbml0KSk7XHJcbiAgfSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBVbndyYXBzIG5lc3RlZCBleHByZXNzaW9ucy5cclxuICogQHBhcmFtIGV4cHJlc3Npb24gSW5wdXQgZXhwcmVzc2lvbiB2YWx1ZS5cclxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiB1bndyYXBFeHByZXNzaW9uKGV4cHJlc3Npb24pO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIHVud3JhcEV4cHJlc3Npb24oXHJcbiAgZXhwcmVzc2lvbjogRVNUcmVlLkV4cHJlc3Npb24gfCB1bmRlZmluZWQsXHJcbik6IEVTVHJlZS5FeHByZXNzaW9uIHwgdW5kZWZpbmVkIHtcclxuICBsZXQgY3VycmVudCA9IGV4cHJlc3Npb247XHJcblxyXG4gIHdoaWxlIChjdXJyZW50Py50eXBlID09PSBcIkNoYWluRXhwcmVzc2lvblwiKSB7XHJcbiAgICBjdXJyZW50ID0gY3VycmVudC5leHByZXNzaW9uO1xyXG4gIH1cclxuXHJcbiAgaWYgKGN1cnJlbnQ/LnR5cGUgPT09IFwiQXdhaXRFeHByZXNzaW9uXCIpIHtcclxuICAgIHJldHVybiBjdXJyZW50LmFyZ3VtZW50O1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGN1cnJlbnQ7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDaGVja3MgQUFBIG5hbWluZyBwcmVmaXhlcy5cclxuICogQHBhcmFtIG5hbWUgSW5wdXQgbmFtZSB2YWx1ZS5cclxuICogQHBhcmFtIHByZWZpeCBJbnB1dCBwcmVmaXggdmFsdWUuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogdXNlc1ByZWZpeChcImFjdHVhbFJlc3VsdFwiLCBcImFjdHVhbFwiKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiB1c2VzUHJlZml4KG5hbWU6IHN0cmluZywgcHJlZml4OiBcImFjdHVhbFwiIHwgXCJleHBlY3RlZFwiKTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuIG5hbWUgPT09IHByZWZpeCB8fCBuYW1lLnN0YXJ0c1dpdGgocHJlZml4KTtcclxufVxyXG5cclxuLyoqIENvbXBhbmlvbiBtYXJrZXIgZm9yIHRlc3QgaXNvbGF0aW9uLiAqL1xyXG5leHBvcnQge1xyXG4gIGdldEFzc2VydERlY2xhcmVkSWRlbnRpZmllcnMsXHJcbiAgZ2V0QXNzZXJ0aW9uSWRlbnRpZmllcnMsXHJcbiAgZ2V0U3RhdGVtZW50RXhwcmVzc2lvbixcclxuICBoYXNBc3NlcnRpb24sXHJcbiAgaXNBY3Rpb25FeHByZXNzaW9uLFxyXG4gIGlzVmFsaWRBc3NlcnRTdGF0ZW1lbnQsXHJcbiAgdW53cmFwRXhwcmVzc2lvbixcclxuICB1c2VzUHJlZml4LFxyXG59O1xyXG4iXX0=
@@ -1 +1 @@
1
- {"version":3,"file":"analyzer.assertions.operands.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/aaa/analyzer.assertions.operands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEtC,+DAA+D;AAC/D,UAAU,iBAAiB;IACzB,6CAA6C;IAC7C,MAAM,EAAE,MAAM,CAAC,UAAU,GAAG,SAAS,CAAC;IACtC,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,CAAC,UAAU,GAAG,SAAS,CAAC;CACzC;AAED;;;;;;;;GAQG;AACH,iBAAS,iBAAiB,CACxB,UAAU,EAAE,MAAM,CAAC,cAAc,GAChC,iBAAiB,GAAG,SAAS,CAe/B;AAED;;;;;;;;GAQG;AACH,iBAAS,iBAAiB,CACxB,UAAU,EAAE,MAAM,CAAC,cAAc,GAChC,iBAAiB,GAAG,SAAS,CA4B/B;AAED;;;;;;;;GAQG;AACH,iBAAS,iBAAiB,CACxB,UAAU,EAAE,MAAM,CAAC,UAAU,GAAG,SAAS,GACxC,MAAM,GAAG,SAAS,CAEpB;AAED;;;;;;;;;;GAUG;AACH,iBAAS,2BAA2B,CAClC,UAAU,EAAE,MAAM,CAAC,cAAc,EACjC,kBAAkB,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,GAAG,SAAS,KAAK,OAAO,GACzE,OAAO,CAKT;AAED;;;;;;;;GAQG;AACH,iBAAS,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,cAAc,GAAG,OAAO,CAyB7D;AAED,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,2BAA2B,EAC3B,eAAe,GAChB,CAAC"}
1
+ {"version":3,"file":"analyzer.assertions.operands.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/aaa/analyzer.assertions.operands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEtC,+DAA+D;AAC/D,UAAU,iBAAiB;IACzB,6CAA6C;IAC7C,MAAM,EAAE,MAAM,CAAC,UAAU,GAAG,SAAS,CAAC;IACtC,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,CAAC,UAAU,GAAG,SAAS,CAAC;CACzC;AAED;;;;;;;;GAQG;AACH,iBAAS,iBAAiB,CACxB,UAAU,EAAE,MAAM,CAAC,cAAc,GAChC,iBAAiB,GAAG,SAAS,CAe/B;AAED;;;;;;;;GAQG;AACH,iBAAS,iBAAiB,CACxB,UAAU,EAAE,MAAM,CAAC,cAAc,GAChC,iBAAiB,GAAG,SAAS,CA4B/B;AAED;;;;;;;;GAQG;AACH,iBAAS,iBAAiB,CACxB,UAAU,EAAE,MAAM,CAAC,UAAU,GAAG,SAAS,GACxC,MAAM,GAAG,SAAS,CAEpB;AAED;;;;;;;;;;GAUG;AACH,iBAAS,2BAA2B,CAClC,UAAU,EAAE,MAAM,CAAC,cAAc,EACjC,kBAAkB,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,GAAG,SAAS,KAAK,OAAO,GACzE,OAAO,CAKT;AAED;;;;;;;;GAQG;AACH,iBAAS,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,cAAc,GAAG,OAAO,CAsB7D;AAED,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,2BAA2B,EAC3B,eAAe,GAChB,CAAC"}
@@ -87,10 +87,7 @@ function hasEvaluatedAssertionActual(expression, isActionExpression) {
87
87
  */
88
88
  function isAssertionCall(node) {
89
89
  if (node.callee.type === "Identifier") {
90
- return (node.callee.name === "expect" ||
91
- node.callee.name === "assert" ||
92
- node.callee.name === "assertType" ||
93
- node.callee.name === "expectTypeOf");
90
+ return ["assert", "assertType", "expect", "expectTypeOf"].includes(node.callee.name);
94
91
  }
95
92
  if (node.callee.type !== "MemberExpression") {
96
93
  return false;
@@ -103,4 +100,4 @@ function isAssertionCall(node) {
103
100
  isAssertionCall(node.callee.object));
104
101
  }
105
102
  export { getAssertOperands, getExpectOperands, getIdentifierName, hasEvaluatedAssertionActual, isAssertionCall, };
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl6ZXIuYXNzZXJ0aW9ucy5vcGVyYW5kcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vdGVzdGluZy9hYWEvYW5hbHl6ZXIuYXNzZXJ0aW9ucy5vcGVyYW5kcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFVQTs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsaUJBQWlCLENBQ3hCLFVBQWlDO0lBRWpDLElBQ0UsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssa0JBQWtCO1FBQzdDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxZQUFZO1FBQzlDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxRQUFRLEVBQzFDLENBQUM7UUFDRCxNQUFNLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxTQUFTLENBQUM7UUFDaEQsSUFDRSxNQUFNLEVBQUUsSUFBSSxLQUFLLGVBQWU7WUFDaEMsUUFBUSxFQUFFLElBQUksS0FBSyxlQUFlLEVBQ2xDLENBQUM7WUFDRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxDQUFDO1FBQzlCLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUMsQ0FBQztBQUNoQixDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLGlCQUFpQixDQUN4QixVQUFpQztJQUVqQyxJQUNFLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLFlBQVk7UUFDdkMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUNuQyxDQUFDO1FBQ0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLFVBQVUsQ0FBQyxTQUFTLENBQUM7UUFDdEMsT0FBTyxNQUFNLEVBQUUsSUFBSSxLQUFLLGVBQWU7WUFDckMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsRUFBRTtZQUN0QyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQ0UsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssa0JBQWtCO1FBQzdDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxnQkFBZ0IsRUFDbEQsQ0FBQztRQUNELE1BQU0sY0FBYyxHQUFHLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkUsSUFBSSxjQUFjLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM5QixPQUFPLEtBQUssQ0FBQyxDQUFDO1FBQ2hCLENBQUM7UUFFRCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQztRQUV4QyxPQUFPLFFBQVEsRUFBRSxJQUFJLEtBQUssZUFBZTtZQUN2QyxDQUFDLENBQUMsY0FBYztZQUNoQixDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsY0FBYyxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsQ0FBQztJQUNsRCxDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUMsQ0FBQztBQUNoQixDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLGlCQUFpQixDQUN4QixVQUF5QztJQUV6QyxPQUFPLFVBQVUsRUFBRSxJQUFJLEtBQUssWUFBWSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN0RSxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7R0FVRztBQUNILFNBQVMsMkJBQTJCLENBQ2xDLFVBQWlDLEVBQ2pDLGtCQUEwRTtJQUUxRSxNQUFNLFFBQVEsR0FDWixpQkFBaUIsQ0FBQyxVQUFVLENBQUMsSUFBSSxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUVqRSxPQUFPLFFBQVEsS0FBSyxLQUFLLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDcEUsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxlQUFlLENBQUMsSUFBMkI7SUFDbEQsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxZQUFZLEVBQUUsQ0FBQztRQUN0QyxPQUFPLENBQ0wsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssUUFBUTtZQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxRQUFRO1lBQzdCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLFlBQVk7WUFDakMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssY0FBYyxDQUNwQyxDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssa0JBQWtCLEVBQUUsQ0FBQztRQUM1QyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxJQUNFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxZQUFZO1FBQ3hDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxRQUFRLEVBQ3BDLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxPQUFPLENBQ0wsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLGdCQUFnQjtRQUM1QyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FDcEMsQ0FBQztBQUNKLENBQUM7QUFFRCxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLGlCQUFpQixFQUNqQixpQkFBaUIsRUFDakIsMkJBQTJCLEVBQzNCLGVBQWUsR0FDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlICogYXMgRVNUcmVlIGZyb20gXCJlc3RyZWVcIjtcclxuXHJcbi8qKiBSYXcgYXNzZXJ0aW9uIG9wZXJhbmRzIGV4dHJhY3RlZCBmcm9tIGEgY2FsbCBleHByZXNzaW9uLiAqL1xyXG5pbnRlcmZhY2UgQXNzZXJ0aW9uT3BlcmFuZHMge1xyXG4gIC8qKiBFeHByZXNzaW9uIHVzZWQgYXMgdGhlIGFjdHVhbCBvcGVyYW5kLiAqL1xyXG4gIGFjdHVhbDogRVNUcmVlLkV4cHJlc3Npb24gfCB1bmRlZmluZWQ7XHJcbiAgLyoqIEV4cHJlc3Npb24gdXNlZCBhcyB0aGUgZXhwZWN0ZWQgb3BlcmFuZC4gKi9cclxuICBleHBlY3RlZDogRVNUcmVlLkV4cHJlc3Npb24gfCB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZXRzIGFzc2VydCBvcGVyYW5kcy5cclxuICogQHBhcmFtIGV4cHJlc3Npb24gSW5wdXQgZXhwcmVzc2lvbiB2YWx1ZS5cclxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBnZXRBc3NlcnRPcGVyYW5kcyhleHByZXNzaW9uKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBnZXRBc3NlcnRPcGVyYW5kcyhcclxuICBleHByZXNzaW9uOiBFU1RyZWUuQ2FsbEV4cHJlc3Npb24sXHJcbik6IEFzc2VydGlvbk9wZXJhbmRzIHwgdW5kZWZpbmVkIHtcclxuICBpZiAoXHJcbiAgICBleHByZXNzaW9uLmNhbGxlZS50eXBlID09PSBcIk1lbWJlckV4cHJlc3Npb25cIiAmJlxyXG4gICAgZXhwcmVzc2lvbi5jYWxsZWUub2JqZWN0LnR5cGUgPT09IFwiSWRlbnRpZmllclwiICYmXHJcbiAgICBleHByZXNzaW9uLmNhbGxlZS5vYmplY3QubmFtZSA9PT0gXCJhc3NlcnRcIlxyXG4gICkge1xyXG4gICAgY29uc3QgW2FjdHVhbCwgZXhwZWN0ZWRdID0gZXhwcmVzc2lvbi5hcmd1bWVudHM7XHJcbiAgICBpZiAoXHJcbiAgICAgIGFjdHVhbD8udHlwZSAhPT0gXCJTcHJlYWRFbGVtZW50XCIgJiZcclxuICAgICAgZXhwZWN0ZWQ/LnR5cGUgIT09IFwiU3ByZWFkRWxlbWVudFwiXHJcbiAgICApIHtcclxuICAgICAgcmV0dXJuIHsgYWN0dWFsLCBleHBlY3RlZCB9O1xyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gdm9pZCAwO1xyXG59XHJcblxyXG4vKipcclxuICogR2V0cyBleHBlY3Qgb3BlcmFuZHMuXHJcbiAqIEBwYXJhbSBleHByZXNzaW9uIElucHV0IGV4cHJlc3Npb24gdmFsdWUuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogZ2V0RXhwZWN0T3BlcmFuZHMoZXhwcmVzc2lvbik7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gZ2V0RXhwZWN0T3BlcmFuZHMoXHJcbiAgZXhwcmVzc2lvbjogRVNUcmVlLkNhbGxFeHByZXNzaW9uLFxyXG4pOiBBc3NlcnRpb25PcGVyYW5kcyB8IHVuZGVmaW5lZCB7XHJcbiAgaWYgKFxyXG4gICAgZXhwcmVzc2lvbi5jYWxsZWUudHlwZSA9PT0gXCJJZGVudGlmaWVyXCIgJiZcclxuICAgIGV4cHJlc3Npb24uY2FsbGVlLm5hbWUgPT09IFwiZXhwZWN0XCJcclxuICApIHtcclxuICAgIGNvbnN0IFthY3R1YWxdID0gZXhwcmVzc2lvbi5hcmd1bWVudHM7XHJcbiAgICByZXR1cm4gYWN0dWFsPy50eXBlID09PSBcIlNwcmVhZEVsZW1lbnRcIlxyXG4gICAgICA/IHsgYWN0dWFsOiB2b2lkIDAsIGV4cGVjdGVkOiB2b2lkIDAgfVxyXG4gICAgICA6IHsgYWN0dWFsLCBleHBlY3RlZDogdm9pZCAwIH07XHJcbiAgfVxyXG5cclxuICBpZiAoXHJcbiAgICBleHByZXNzaW9uLmNhbGxlZS50eXBlID09PSBcIk1lbWJlckV4cHJlc3Npb25cIiAmJlxyXG4gICAgZXhwcmVzc2lvbi5jYWxsZWUub2JqZWN0LnR5cGUgPT09IFwiQ2FsbEV4cHJlc3Npb25cIlxyXG4gICkge1xyXG4gICAgY29uc3QgbmVzdGVkT3BlcmFuZHMgPSBnZXRFeHBlY3RPcGVyYW5kcyhleHByZXNzaW9uLmNhbGxlZS5vYmplY3QpO1xyXG4gICAgaWYgKG5lc3RlZE9wZXJhbmRzID09PSB2b2lkIDApIHtcclxuICAgICAgcmV0dXJuIHZvaWQgMDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBbZXhwZWN0ZWRdID0gZXhwcmVzc2lvbi5hcmd1bWVudHM7XHJcblxyXG4gICAgcmV0dXJuIGV4cGVjdGVkPy50eXBlID09PSBcIlNwcmVhZEVsZW1lbnRcIlxyXG4gICAgICA/IG5lc3RlZE9wZXJhbmRzXHJcbiAgICAgIDogeyBhY3R1YWw6IG5lc3RlZE9wZXJhbmRzLmFjdHVhbCwgZXhwZWN0ZWQgfTtcclxuICB9XHJcblxyXG4gIHJldHVybiB2b2lkIDA7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZXRzIGFuIGlkZW50aWZpZXIgbmFtZS5cclxuICogQHBhcmFtIGV4cHJlc3Npb24gSW5wdXQgZXhwcmVzc2lvbiB2YWx1ZS5cclxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBnZXRJZGVudGlmaWVyTmFtZShleHByZXNzaW9uKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBnZXRJZGVudGlmaWVyTmFtZShcclxuICBleHByZXNzaW9uOiBFU1RyZWUuRXhwcmVzc2lvbiB8IHVuZGVmaW5lZCxcclxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICByZXR1cm4gZXhwcmVzc2lvbj8udHlwZSA9PT0gXCJJZGVudGlmaWVyXCIgPyBleHByZXNzaW9uLm5hbWUgOiB2b2lkIDA7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDaGVja3Mgd2hldGhlciBhbiBhc3NlcnRpb24gZXZhbHVhdGVzIHRoZSBhY3R1YWwgb3BlcmFuZCBpbmxpbmUuXHJcbiAqIEBwYXJhbSBleHByZXNzaW9uIEFzc2VydGlvbiBjYWxsIGV4cHJlc3Npb24gdG8gaW5zcGVjdC5cclxuICogQHBhcmFtIGlzQWN0aW9uRXhwcmVzc2lvbiBQcmVkaWNhdGUgdGhhdCBpZGVudGlmaWVzIGFjdGlvbi1saWtlIGV4cHJlc3Npb25zLlxyXG4gKiBAcmV0dXJucyBUcnVlIHdoZW4gdGhlIGFzc2VydGlvbiBhY3R1YWwgb3BlcmFuZCBwZXJmb3JtcyBhY3Rpb24tbGlrZSB3b3JrLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IGFjdHVhbCA9IGhhc0V2YWx1YXRlZEFzc2VydGlvbkFjdHVhbChleHByZXNzaW9uLCAoKSA9PiB0cnVlKTtcclxuICogdm9pZCBhY3R1YWw7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gaGFzRXZhbHVhdGVkQXNzZXJ0aW9uQWN0dWFsKFxyXG4gIGV4cHJlc3Npb246IEVTVHJlZS5DYWxsRXhwcmVzc2lvbixcclxuICBpc0FjdGlvbkV4cHJlc3Npb246IChleHByZXNzaW9uOiBFU1RyZWUuRXhwcmVzc2lvbiB8IHVuZGVmaW5lZCkgPT4gYm9vbGVhbixcclxuKTogYm9vbGVhbiB7XHJcbiAgY29uc3Qgb3BlcmFuZHMgPVxyXG4gICAgZ2V0RXhwZWN0T3BlcmFuZHMoZXhwcmVzc2lvbikgPz8gZ2V0QXNzZXJ0T3BlcmFuZHMoZXhwcmVzc2lvbik7XHJcblxyXG4gIHJldHVybiBvcGVyYW5kcyAhPT0gdm9pZCAwICYmIGlzQWN0aW9uRXhwcmVzc2lvbihvcGVyYW5kcy5hY3R1YWwpO1xyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2tzIGZvciBhc3NlcnRpb24gY2FsbHMuXHJcbiAqIEBwYXJhbSBub2RlIElucHV0IG5vZGUgdmFsdWUuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogaXNBc3NlcnRpb25DYWxsKG5vZGUpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGlzQXNzZXJ0aW9uQ2FsbChub2RlOiBFU1RyZWUuQ2FsbEV4cHJlc3Npb24pOiBib29sZWFuIHtcclxuICBpZiAobm9kZS5jYWxsZWUudHlwZSA9PT0gXCJJZGVudGlmaWVyXCIpIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIG5vZGUuY2FsbGVlLm5hbWUgPT09IFwiZXhwZWN0XCIgfHxcclxuICAgICAgbm9kZS5jYWxsZWUubmFtZSA9PT0gXCJhc3NlcnRcIiB8fFxyXG4gICAgICBub2RlLmNhbGxlZS5uYW1lID09PSBcImFzc2VydFR5cGVcIiB8fFxyXG4gICAgICBub2RlLmNhbGxlZS5uYW1lID09PSBcImV4cGVjdFR5cGVPZlwiXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgaWYgKG5vZGUuY2FsbGVlLnR5cGUgIT09IFwiTWVtYmVyRXhwcmVzc2lvblwiKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBpZiAoXHJcbiAgICBub2RlLmNhbGxlZS5vYmplY3QudHlwZSA9PT0gXCJJZGVudGlmaWVyXCIgJiZcclxuICAgIG5vZGUuY2FsbGVlLm9iamVjdC5uYW1lID09PSBcImFzc2VydFwiXHJcbiAgKSB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHJldHVybiAoXHJcbiAgICBub2RlLmNhbGxlZS5vYmplY3QudHlwZSA9PT0gXCJDYWxsRXhwcmVzc2lvblwiICYmXHJcbiAgICBpc0Fzc2VydGlvbkNhbGwobm9kZS5jYWxsZWUub2JqZWN0KVxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCB7XHJcbiAgZ2V0QXNzZXJ0T3BlcmFuZHMsXHJcbiAgZ2V0RXhwZWN0T3BlcmFuZHMsXHJcbiAgZ2V0SWRlbnRpZmllck5hbWUsXHJcbiAgaGFzRXZhbHVhdGVkQXNzZXJ0aW9uQWN0dWFsLFxyXG4gIGlzQXNzZXJ0aW9uQ2FsbCxcclxufTtcclxuIl19
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl6ZXIuYXNzZXJ0aW9ucy5vcGVyYW5kcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vdGVzdGluZy9hYWEvYW5hbHl6ZXIuYXNzZXJ0aW9ucy5vcGVyYW5kcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFVQTs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsaUJBQWlCLENBQ3hCLFVBQWlDO0lBRWpDLElBQ0UsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssa0JBQWtCO1FBQzdDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxZQUFZO1FBQzlDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxRQUFRLEVBQzFDLENBQUM7UUFDRCxNQUFNLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxTQUFTLENBQUM7UUFDaEQsSUFDRSxNQUFNLEVBQUUsSUFBSSxLQUFLLGVBQWU7WUFDaEMsUUFBUSxFQUFFLElBQUksS0FBSyxlQUFlLEVBQ2xDLENBQUM7WUFDRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxDQUFDO1FBQzlCLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUMsQ0FBQztBQUNoQixDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLGlCQUFpQixDQUN4QixVQUFpQztJQUVqQyxJQUNFLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLFlBQVk7UUFDdkMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUNuQyxDQUFDO1FBQ0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLFVBQVUsQ0FBQyxTQUFTLENBQUM7UUFDdEMsT0FBTyxNQUFNLEVBQUUsSUFBSSxLQUFLLGVBQWU7WUFDckMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsRUFBRTtZQUN0QyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQ0UsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssa0JBQWtCO1FBQzdDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxnQkFBZ0IsRUFDbEQsQ0FBQztRQUNELE1BQU0sY0FBYyxHQUFHLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkUsSUFBSSxjQUFjLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM5QixPQUFPLEtBQUssQ0FBQyxDQUFDO1FBQ2hCLENBQUM7UUFFRCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQztRQUV4QyxPQUFPLFFBQVEsRUFBRSxJQUFJLEtBQUssZUFBZTtZQUN2QyxDQUFDLENBQUMsY0FBYztZQUNoQixDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsY0FBYyxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsQ0FBQztJQUNsRCxDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUMsQ0FBQztBQUNoQixDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLGlCQUFpQixDQUN4QixVQUF5QztJQUV6QyxPQUFPLFVBQVUsRUFBRSxJQUFJLEtBQUssWUFBWSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN0RSxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7R0FVRztBQUNILFNBQVMsMkJBQTJCLENBQ2xDLFVBQWlDLEVBQ2pDLGtCQUEwRTtJQUUxRSxNQUFNLFFBQVEsR0FDWixpQkFBaUIsQ0FBQyxVQUFVLENBQUMsSUFBSSxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUVqRSxPQUFPLFFBQVEsS0FBSyxLQUFLLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDcEUsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxlQUFlLENBQUMsSUFBMkI7SUFDbEQsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxZQUFZLEVBQUUsQ0FBQztRQUN0QyxPQUFPLENBQUMsUUFBUSxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsY0FBYyxDQUFDLENBQUMsUUFBUSxDQUNoRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDakIsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLGtCQUFrQixFQUFFLENBQUM7UUFDNUMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsSUFDRSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssWUFBWTtRQUN4QyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUNwQyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsT0FBTyxDQUNMLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxnQkFBZ0I7UUFDNUMsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQ3BDLENBQUM7QUFDSixDQUFDO0FBRUQsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixpQkFBaUIsRUFDakIsaUJBQWlCLEVBQ2pCLDJCQUEyQixFQUMzQixlQUFlLEdBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSAqIGFzIEVTVHJlZSBmcm9tIFwiZXN0cmVlXCI7XHJcblxyXG4vKiogUmF3IGFzc2VydGlvbiBvcGVyYW5kcyBleHRyYWN0ZWQgZnJvbSBhIGNhbGwgZXhwcmVzc2lvbi4gKi9cclxuaW50ZXJmYWNlIEFzc2VydGlvbk9wZXJhbmRzIHtcclxuICAvKiogRXhwcmVzc2lvbiB1c2VkIGFzIHRoZSBhY3R1YWwgb3BlcmFuZC4gKi9cclxuICBhY3R1YWw6IEVTVHJlZS5FeHByZXNzaW9uIHwgdW5kZWZpbmVkO1xyXG4gIC8qKiBFeHByZXNzaW9uIHVzZWQgYXMgdGhlIGV4cGVjdGVkIG9wZXJhbmQuICovXHJcbiAgZXhwZWN0ZWQ6IEVTVHJlZS5FeHByZXNzaW9uIHwgdW5kZWZpbmVkO1xyXG59XHJcblxyXG4vKipcclxuICogR2V0cyBhc3NlcnQgb3BlcmFuZHMuXHJcbiAqIEBwYXJhbSBleHByZXNzaW9uIElucHV0IGV4cHJlc3Npb24gdmFsdWUuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogZ2V0QXNzZXJ0T3BlcmFuZHMoZXhwcmVzc2lvbik7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gZ2V0QXNzZXJ0T3BlcmFuZHMoXHJcbiAgZXhwcmVzc2lvbjogRVNUcmVlLkNhbGxFeHByZXNzaW9uLFxyXG4pOiBBc3NlcnRpb25PcGVyYW5kcyB8IHVuZGVmaW5lZCB7XHJcbiAgaWYgKFxyXG4gICAgZXhwcmVzc2lvbi5jYWxsZWUudHlwZSA9PT0gXCJNZW1iZXJFeHByZXNzaW9uXCIgJiZcclxuICAgIGV4cHJlc3Npb24uY2FsbGVlLm9iamVjdC50eXBlID09PSBcIklkZW50aWZpZXJcIiAmJlxyXG4gICAgZXhwcmVzc2lvbi5jYWxsZWUub2JqZWN0Lm5hbWUgPT09IFwiYXNzZXJ0XCJcclxuICApIHtcclxuICAgIGNvbnN0IFthY3R1YWwsIGV4cGVjdGVkXSA9IGV4cHJlc3Npb24uYXJndW1lbnRzO1xyXG4gICAgaWYgKFxyXG4gICAgICBhY3R1YWw/LnR5cGUgIT09IFwiU3ByZWFkRWxlbWVudFwiICYmXHJcbiAgICAgIGV4cGVjdGVkPy50eXBlICE9PSBcIlNwcmVhZEVsZW1lbnRcIlxyXG4gICAgKSB7XHJcbiAgICAgIHJldHVybiB7IGFjdHVhbCwgZXhwZWN0ZWQgfTtcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIHZvaWQgMDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEdldHMgZXhwZWN0IG9wZXJhbmRzLlxyXG4gKiBAcGFyYW0gZXhwcmVzc2lvbiBJbnB1dCBleHByZXNzaW9uIHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGdldEV4cGVjdE9wZXJhbmRzKGV4cHJlc3Npb24pO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGdldEV4cGVjdE9wZXJhbmRzKFxyXG4gIGV4cHJlc3Npb246IEVTVHJlZS5DYWxsRXhwcmVzc2lvbixcclxuKTogQXNzZXJ0aW9uT3BlcmFuZHMgfCB1bmRlZmluZWQge1xyXG4gIGlmIChcclxuICAgIGV4cHJlc3Npb24uY2FsbGVlLnR5cGUgPT09IFwiSWRlbnRpZmllclwiICYmXHJcbiAgICBleHByZXNzaW9uLmNhbGxlZS5uYW1lID09PSBcImV4cGVjdFwiXHJcbiAgKSB7XHJcbiAgICBjb25zdCBbYWN0dWFsXSA9IGV4cHJlc3Npb24uYXJndW1lbnRzO1xyXG4gICAgcmV0dXJuIGFjdHVhbD8udHlwZSA9PT0gXCJTcHJlYWRFbGVtZW50XCJcclxuICAgICAgPyB7IGFjdHVhbDogdm9pZCAwLCBleHBlY3RlZDogdm9pZCAwIH1cclxuICAgICAgOiB7IGFjdHVhbCwgZXhwZWN0ZWQ6IHZvaWQgMCB9O1xyXG4gIH1cclxuXHJcbiAgaWYgKFxyXG4gICAgZXhwcmVzc2lvbi5jYWxsZWUudHlwZSA9PT0gXCJNZW1iZXJFeHByZXNzaW9uXCIgJiZcclxuICAgIGV4cHJlc3Npb24uY2FsbGVlLm9iamVjdC50eXBlID09PSBcIkNhbGxFeHByZXNzaW9uXCJcclxuICApIHtcclxuICAgIGNvbnN0IG5lc3RlZE9wZXJhbmRzID0gZ2V0RXhwZWN0T3BlcmFuZHMoZXhwcmVzc2lvbi5jYWxsZWUub2JqZWN0KTtcclxuICAgIGlmIChuZXN0ZWRPcGVyYW5kcyA9PT0gdm9pZCAwKSB7XHJcbiAgICAgIHJldHVybiB2b2lkIDA7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgW2V4cGVjdGVkXSA9IGV4cHJlc3Npb24uYXJndW1lbnRzO1xyXG5cclxuICAgIHJldHVybiBleHBlY3RlZD8udHlwZSA9PT0gXCJTcHJlYWRFbGVtZW50XCJcclxuICAgICAgPyBuZXN0ZWRPcGVyYW5kc1xyXG4gICAgICA6IHsgYWN0dWFsOiBuZXN0ZWRPcGVyYW5kcy5hY3R1YWwsIGV4cGVjdGVkIH07XHJcbiAgfVxyXG5cclxuICByZXR1cm4gdm9pZCAwO1xyXG59XHJcblxyXG4vKipcclxuICogR2V0cyBhbiBpZGVudGlmaWVyIG5hbWUuXHJcbiAqIEBwYXJhbSBleHByZXNzaW9uIElucHV0IGV4cHJlc3Npb24gdmFsdWUuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogZ2V0SWRlbnRpZmllck5hbWUoZXhwcmVzc2lvbik7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gZ2V0SWRlbnRpZmllck5hbWUoXHJcbiAgZXhwcmVzc2lvbjogRVNUcmVlLkV4cHJlc3Npb24gfCB1bmRlZmluZWQsXHJcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XHJcbiAgcmV0dXJuIGV4cHJlc3Npb24/LnR5cGUgPT09IFwiSWRlbnRpZmllclwiID8gZXhwcmVzc2lvbi5uYW1lIDogdm9pZCAwO1xyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2tzIHdoZXRoZXIgYW4gYXNzZXJ0aW9uIGV2YWx1YXRlcyB0aGUgYWN0dWFsIG9wZXJhbmQgaW5saW5lLlxyXG4gKiBAcGFyYW0gZXhwcmVzc2lvbiBBc3NlcnRpb24gY2FsbCBleHByZXNzaW9uIHRvIGluc3BlY3QuXHJcbiAqIEBwYXJhbSBpc0FjdGlvbkV4cHJlc3Npb24gUHJlZGljYXRlIHRoYXQgaWRlbnRpZmllcyBhY3Rpb24tbGlrZSBleHByZXNzaW9ucy5cclxuICogQHJldHVybnMgVHJ1ZSB3aGVuIHRoZSBhc3NlcnRpb24gYWN0dWFsIG9wZXJhbmQgcGVyZm9ybXMgYWN0aW9uLWxpa2Ugd29yay5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCBhY3R1YWwgPSBoYXNFdmFsdWF0ZWRBc3NlcnRpb25BY3R1YWwoZXhwcmVzc2lvbiwgKCkgPT4gdHJ1ZSk7XHJcbiAqIHZvaWQgYWN0dWFsO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGhhc0V2YWx1YXRlZEFzc2VydGlvbkFjdHVhbChcclxuICBleHByZXNzaW9uOiBFU1RyZWUuQ2FsbEV4cHJlc3Npb24sXHJcbiAgaXNBY3Rpb25FeHByZXNzaW9uOiAoZXhwcmVzc2lvbjogRVNUcmVlLkV4cHJlc3Npb24gfCB1bmRlZmluZWQpID0+IGJvb2xlYW4sXHJcbik6IGJvb2xlYW4ge1xyXG4gIGNvbnN0IG9wZXJhbmRzID1cclxuICAgIGdldEV4cGVjdE9wZXJhbmRzKGV4cHJlc3Npb24pID8/IGdldEFzc2VydE9wZXJhbmRzKGV4cHJlc3Npb24pO1xyXG5cclxuICByZXR1cm4gb3BlcmFuZHMgIT09IHZvaWQgMCAmJiBpc0FjdGlvbkV4cHJlc3Npb24ob3BlcmFuZHMuYWN0dWFsKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENoZWNrcyBmb3IgYXNzZXJ0aW9uIGNhbGxzLlxyXG4gKiBAcGFyYW0gbm9kZSBJbnB1dCBub2RlIHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGlzQXNzZXJ0aW9uQ2FsbChub2RlKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBpc0Fzc2VydGlvbkNhbGwobm9kZTogRVNUcmVlLkNhbGxFeHByZXNzaW9uKTogYm9vbGVhbiB7XHJcbiAgaWYgKG5vZGUuY2FsbGVlLnR5cGUgPT09IFwiSWRlbnRpZmllclwiKSB7XHJcbiAgICByZXR1cm4gW1wiYXNzZXJ0XCIsIFwiYXNzZXJ0VHlwZVwiLCBcImV4cGVjdFwiLCBcImV4cGVjdFR5cGVPZlwiXS5pbmNsdWRlcyhcclxuICAgICAgbm9kZS5jYWxsZWUubmFtZSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBpZiAobm9kZS5jYWxsZWUudHlwZSAhPT0gXCJNZW1iZXJFeHByZXNzaW9uXCIpIHtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGlmIChcclxuICAgIG5vZGUuY2FsbGVlLm9iamVjdC50eXBlID09PSBcIklkZW50aWZpZXJcIiAmJlxyXG4gICAgbm9kZS5jYWxsZWUub2JqZWN0Lm5hbWUgPT09IFwiYXNzZXJ0XCJcclxuICApIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIChcclxuICAgIG5vZGUuY2FsbGVlLm9iamVjdC50eXBlID09PSBcIkNhbGxFeHByZXNzaW9uXCIgJiZcclxuICAgIGlzQXNzZXJ0aW9uQ2FsbChub2RlLmNhbGxlZS5vYmplY3QpXHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IHtcclxuICBnZXRBc3NlcnRPcGVyYW5kcyxcclxuICBnZXRFeHBlY3RPcGVyYW5kcyxcclxuICBnZXRJZGVudGlmaWVyTmFtZSxcclxuICBoYXNFdmFsdWF0ZWRBc3NlcnRpb25BY3R1YWwsXHJcbiAgaXNBc3NlcnRpb25DYWxsLFxyXG59O1xyXG4iXX0=