@codeperfect/eslint-plugin 2.11.0 → 3.1.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 (180) hide show
  1. package/README.md +0 -1
  2. package/dist/application/custom-rules.d.ts +3 -0
  3. package/dist/application/custom-rules.d.ts.map +1 -1
  4. package/dist/application/custom-rules.js +3 -2
  5. package/dist/application/index.d.ts +1 -1
  6. package/dist/application/index.d.ts.map +1 -1
  7. package/dist/application/index.js +2 -2
  8. package/dist/codeperfect-eslint-plugin-1.0.0.tgz +0 -0
  9. package/dist/domain/architecture/consistent-barrel-files/barrel-file-utilities.d.ts +0 -2
  10. package/dist/domain/architecture/consistent-barrel-files/barrel-file-utilities.d.ts.map +1 -1
  11. package/dist/domain/architecture/consistent-barrel-files/barrel-file-utilities.js +4 -6
  12. package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-listeners.d.ts.map +1 -1
  13. package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-listeners.js +12 -15
  14. package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-options.d.ts +0 -2
  15. package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-options.d.ts.map +1 -1
  16. package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-options.js +2 -10
  17. package/dist/domain/architecture/consistent-barrel-files/exports-only-rule.d.ts.map +1 -1
  18. package/dist/domain/architecture/consistent-barrel-files/exports-only-rule.js +8 -17
  19. package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-utilities.d.ts.map +1 -1
  20. package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-utilities.js +6 -8
  21. package/dist/domain/architecture/consistent-barrel-files/rule.d.ts.map +1 -1
  22. package/dist/domain/architecture/consistent-barrel-files/rule.js +4 -5
  23. package/dist/domain/architecture/index.d.ts +1 -0
  24. package/dist/domain/architecture/index.d.ts.map +1 -1
  25. package/dist/domain/architecture/index.js +2 -1
  26. package/dist/domain/architecture/no-import-export-extensions/no-import-export-extensions-rule.d.ts.map +1 -1
  27. package/dist/domain/architecture/no-import-export-extensions/no-import-export-extensions-rule.js +6 -13
  28. package/dist/domain/architecture/no-unused-exports/no-unused-exports-declaration-utilities.d.ts.map +1 -1
  29. package/dist/domain/architecture/no-unused-exports/no-unused-exports-declaration-utilities.js +11 -10
  30. package/dist/domain/architecture/no-unused-exports/no-unused-exports-identifier-utilities.d.ts.map +1 -1
  31. package/dist/domain/architecture/no-unused-exports/no-unused-exports-identifier-utilities.js +5 -9
  32. package/dist/domain/architecture/no-unused-exports/no-unused-exports-options.d.ts.map +1 -1
  33. package/dist/domain/architecture/no-unused-exports/no-unused-exports-options.js +6 -9
  34. package/dist/domain/architecture/no-unused-exports/no-unused-exports-pattern-utilities.d.ts.map +1 -1
  35. package/dist/domain/architecture/no-unused-exports/no-unused-exports-pattern-utilities.js +5 -10
  36. package/dist/domain/architecture/no-unused-exports/no-unused-exports-public-api-usage-utilities.d.ts.map +1 -1
  37. package/dist/domain/architecture/no-unused-exports/no-unused-exports-public-api-usage-utilities.js +4 -8
  38. package/dist/domain/architecture/no-unused-exports/no-unused-exports-symbol-utilities.d.ts.map +1 -1
  39. package/dist/domain/architecture/no-unused-exports/no-unused-exports-symbol-utilities.js +4 -5
  40. package/dist/domain/architecture/no-unused-public-members/index.d.ts +2 -0
  41. package/dist/domain/architecture/no-unused-public-members/index.d.ts.map +1 -0
  42. package/dist/domain/architecture/no-unused-public-members/index.js +2 -0
  43. package/dist/domain/architecture/no-unused-public-members/member-contract-utilities.d.ts +16 -0
  44. package/dist/domain/architecture/no-unused-public-members/member-contract-utilities.d.ts.map +1 -0
  45. package/dist/domain/architecture/no-unused-public-members/member-contract-utilities.js +102 -0
  46. package/dist/domain/architecture/no-unused-public-members/member-declaration-utilities.d.ts +34 -0
  47. package/dist/domain/architecture/no-unused-public-members/member-declaration-utilities.d.ts.map +1 -0
  48. package/dist/domain/architecture/no-unused-public-members/member-declaration-utilities.js +55 -0
  49. package/dist/domain/architecture/no-unused-public-members/member-host-utilities.d.ts +68 -0
  50. package/dist/domain/architecture/no-unused-public-members/member-host-utilities.d.ts.map +1 -0
  51. package/dist/domain/architecture/no-unused-public-members/member-host-utilities.js +195 -0
  52. package/dist/domain/architecture/no-unused-public-members/member-public-api-utilities.d.ts +30 -0
  53. package/dist/domain/architecture/no-unused-public-members/member-public-api-utilities.d.ts.map +1 -0
  54. package/dist/domain/architecture/no-unused-public-members/member-public-api-utilities.js +101 -0
  55. package/dist/domain/architecture/no-unused-public-members/member-usage-handoff-utilities.d.ts +28 -0
  56. package/dist/domain/architecture/no-unused-public-members/member-usage-handoff-utilities.d.ts.map +1 -0
  57. package/dist/domain/architecture/no-unused-public-members/member-usage-handoff-utilities.js +125 -0
  58. package/dist/domain/architecture/no-unused-public-members/member-usage-reference-utilities.d.ts +29 -0
  59. package/dist/domain/architecture/no-unused-public-members/member-usage-reference-utilities.d.ts.map +1 -0
  60. package/dist/domain/architecture/no-unused-public-members/member-usage-reference-utilities.js +108 -0
  61. package/dist/domain/architecture/no-unused-public-members/member-usage-type-utilities.d.ts +42 -0
  62. package/dist/domain/architecture/no-unused-public-members/member-usage-type-utilities.d.ts.map +1 -0
  63. package/dist/domain/architecture/no-unused-public-members/member-usage-type-utilities.js +96 -0
  64. package/dist/domain/architecture/no-unused-public-members/member-usage-utilities.d.ts +18 -0
  65. package/dist/domain/architecture/no-unused-public-members/member-usage-utilities.d.ts.map +1 -0
  66. package/dist/domain/architecture/no-unused-public-members/member-usage-utilities.js +128 -0
  67. package/dist/domain/architecture/no-unused-public-members/member-utilities.d.ts +41 -0
  68. package/dist/domain/architecture/no-unused-public-members/member-utilities.d.ts.map +1 -0
  69. package/dist/domain/architecture/no-unused-public-members/member-utilities.js +51 -0
  70. package/dist/domain/architecture/no-unused-public-members/rule.d.ts +5 -0
  71. package/dist/domain/architecture/no-unused-public-members/rule.d.ts.map +1 -0
  72. package/dist/domain/architecture/no-unused-public-members/rule.js +78 -0
  73. package/dist/domain/core/no-multiple-declarators/rule-utilities.d.ts.map +1 -1
  74. package/dist/domain/core/no-multiple-declarators/rule-utilities.js +13 -19
  75. package/dist/domain/core/no-multiple-declarators/rule.d.ts.map +1 -1
  76. package/dist/domain/core/no-multiple-declarators/rule.js +4 -5
  77. package/dist/domain/core/no-useless-delegation/rule.d.ts.map +1 -1
  78. package/dist/domain/core/no-useless-delegation/rule.js +5 -6
  79. package/dist/domain/core/prefer-interface-types/autofix.js +4 -5
  80. package/dist/domain/core/prefer-interface-types/rule-utilities.d.ts.map +1 -1
  81. package/dist/domain/core/prefer-interface-types/rule-utilities.js +7 -9
  82. package/dist/domain/docs/no-interface-member-docs/comment-utilities.d.ts.map +1 -1
  83. package/dist/domain/docs/no-interface-member-docs/comment-utilities.js +10 -8
  84. package/dist/domain/docs/no-interface-member-docs/parameter-tags.d.ts.map +1 -1
  85. package/dist/domain/docs/no-interface-member-docs/parameter-tags.js +5 -6
  86. package/dist/domain/docs/no-interface-member-docs/parameter-utilities.d.ts.map +1 -1
  87. package/dist/domain/docs/no-interface-member-docs/parameter-utilities.js +7 -9
  88. package/dist/domain/docs/no-interface-member-docs/rule.d.ts.map +1 -1
  89. package/dist/domain/docs/no-interface-member-docs/rule.js +2 -5
  90. package/dist/domain/docs/require-example-language/empty-fence-fixes.d.ts.map +1 -1
  91. package/dist/domain/docs/require-example-language/empty-fence-fixes.js +2 -5
  92. package/dist/domain/docs/require-example-language/example-utilities.d.ts +1 -7
  93. package/dist/domain/docs/require-example-language/example-utilities.d.ts.map +1 -1
  94. package/dist/domain/docs/require-example-language/example-utilities.js +6 -14
  95. package/dist/domain/docs/require-example-language/examples.d.ts.map +1 -1
  96. package/dist/domain/docs/require-example-language/examples.js +7 -16
  97. package/dist/domain/docs/require-example-language/fixes.d.ts.map +1 -1
  98. package/dist/domain/docs/require-example-language/fixes.js +8 -13
  99. package/dist/domain/docs/require-example-language/reporting.d.ts.map +1 -1
  100. package/dist/domain/docs/require-example-language/reporting.js +4 -8
  101. package/dist/domain/docs/require-example-language/types.d.ts +0 -2
  102. package/dist/domain/docs/require-example-language/types.d.ts.map +1 -1
  103. package/dist/domain/docs/require-example-language/types.js +1 -1
  104. package/dist/domain/docs/single-line-jsdoc/rule.d.ts.map +1 -1
  105. package/dist/domain/docs/single-line-jsdoc/rule.js +5 -11
  106. package/dist/domain/docs/single-line-jsdoc/single-line-jsdoc-content.d.ts.map +1 -1
  107. package/dist/domain/docs/single-line-jsdoc/single-line-jsdoc-content.js +5 -14
  108. package/dist/domain/docs/single-line-jsdoc/single-line-jsdoc-utilities.d.ts.map +1 -1
  109. package/dist/domain/docs/single-line-jsdoc/single-line-jsdoc-utilities.js +5 -9
  110. package/dist/domain/index.d.ts +2 -2
  111. package/dist/domain/index.d.ts.map +1 -1
  112. package/dist/domain/index.js +3 -3
  113. package/dist/domain/testing/aaa/analyzer.analysis.d.ts.map +1 -1
  114. package/dist/domain/testing/aaa/analyzer.analysis.helpers.d.ts.map +1 -1
  115. package/dist/domain/testing/aaa/analyzer.analysis.helpers.js +2 -5
  116. package/dist/domain/testing/aaa/analyzer.analysis.js +6 -11
  117. package/dist/domain/testing/aaa/analyzer.assertions.helpers.d.ts.map +1 -1
  118. package/dist/domain/testing/aaa/analyzer.assertions.helpers.js +5 -14
  119. package/dist/domain/testing/aaa/analyzer.assertions.js +2 -2
  120. package/dist/domain/testing/aaa/analyzer.assertions.operands.d.ts.map +1 -1
  121. package/dist/domain/testing/aaa/analyzer.assertions.operands.js +12 -16
  122. package/dist/domain/testing/aaa/analyzer.classification.helpers.d.ts.map +1 -1
  123. package/dist/domain/testing/aaa/analyzer.classification.helpers.js +11 -21
  124. package/dist/domain/testing/aaa/analyzer.classification.js +2 -2
  125. package/dist/domain/testing/aaa/analyzer.super.d.ts.map +1 -1
  126. package/dist/domain/testing/aaa/analyzer.super.js +5 -6
  127. package/dist/domain/testing/aaa/types.d.ts +0 -4
  128. package/dist/domain/testing/aaa/types.d.ts.map +1 -1
  129. package/dist/domain/testing/aaa/types.js +1 -1
  130. package/dist/domain/testing/enforce-aaa-phase-purity/pattern-identifiers.d.ts.map +1 -1
  131. package/dist/domain/testing/enforce-aaa-phase-purity/pattern-identifiers.js +2 -7
  132. package/dist/domain/testing/enforce-aaa-structure/missing-section-fixes.d.ts.map +1 -1
  133. package/dist/domain/testing/enforce-aaa-structure/missing-section-fixes.js +4 -5
  134. package/dist/domain/testing/index.d.ts +0 -1
  135. package/dist/domain/testing/index.d.ts.map +1 -1
  136. package/dist/domain/testing/index.js +1 -2
  137. package/dist/domain/testing/prefer-vi-mocked-import/fix.d.ts.map +1 -1
  138. package/dist/domain/testing/prefer-vi-mocked-import/fix.js +9 -7
  139. package/dist/domain/testing/prefer-vi-mocked-import/match-bindings.d.ts.map +1 -1
  140. package/dist/domain/testing/prefer-vi-mocked-import/match-bindings.js +5 -9
  141. package/dist/domain/testing/prefer-vi-mocked-import/match-collisions.d.ts.map +1 -1
  142. package/dist/domain/testing/prefer-vi-mocked-import/match-collisions.js +2 -7
  143. package/dist/domain/testing/prefer-vi-mocked-import/match-declarations.d.ts.map +1 -1
  144. package/dist/domain/testing/prefer-vi-mocked-import/match-declarations.js +5 -5
  145. package/dist/domain/testing/prefer-vi-mocked-import/match-helpers.js +3 -5
  146. package/dist/domain/testing/prefer-vi-mocked-import/match-imports.d.ts.map +1 -1
  147. package/dist/domain/testing/prefer-vi-mocked-import/match-imports.js +13 -18
  148. package/dist/domain/testing/prefer-vi-mocked-import/match-seeds.d.ts.map +1 -1
  149. package/dist/domain/testing/prefer-vi-mocked-import/match-seeds.js +5 -6
  150. package/dist/domain/testing/prefer-vi-mocked-import/types.d.ts +0 -2
  151. package/dist/domain/testing/prefer-vi-mocked-import/types.d.ts.map +1 -1
  152. package/dist/domain/testing/prefer-vi-mocked-import/types.js +1 -1
  153. package/dist/domain/testing/require-act-result-capture/rule.d.ts.map +1 -1
  154. package/dist/domain/testing/require-act-result-capture/rule.js +9 -12
  155. package/dist/domain/testing/require-test-companion/require-test-companion-listeners.d.ts.map +1 -1
  156. package/dist/domain/testing/require-test-companion/require-test-companion-listeners.js +5 -11
  157. package/dist/domain/testing/require-test-companion/require-test-companion-options.js +6 -7
  158. package/dist/domain/testing/require-test-companion/rule.js +2 -2
  159. package/dist/index.d.ts +1 -1
  160. package/dist/index.d.ts.map +1 -1
  161. package/dist/index.js +2 -2
  162. package/dist/infrastructure/codeperfect-plugin.d.ts +2 -2
  163. package/dist/infrastructure/codeperfect-plugin.js +3 -3
  164. package/dist/infrastructure/presets.js +3 -3
  165. package/package.json +26 -27
  166. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/index.d.ts +0 -2
  167. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/index.d.ts.map +0 -1
  168. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/index.js +0 -2
  169. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-detection.d.ts +0 -29
  170. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-detection.d.ts.map +0 -1
  171. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-detection.js +0 -200
  172. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-names.d.ts +0 -12
  173. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-names.d.ts.map +0 -1
  174. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-names.js +0 -151
  175. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-reporting.d.ts +0 -16
  176. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-reporting.d.ts.map +0 -1
  177. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-reporting.js +0 -109
  178. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule.d.ts +0 -5
  179. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule.d.ts.map +0 -1
  180. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule.js +0 -41
@@ -1,4 +1,4 @@
1
- import { assertActualExpectedNamesRule, barrelFilesExportsOnlyRule, consistentBarrelFilesRule, enforceAaaStructureRule, noImportExportAliasesRule, noImportExportExtensionsRule, noInterfaceMemberDocumentationRule, noMultipleDeclaratorsRule, noReexportsOutsideBarrelsRule, noUnsafeVitestMockFactoryCastRule, noUnusedExportsRule, noUselessDelegationRule, preferInterfaceTypesRule, preferViMockedImportRule, requireActResultCaptureRule, requireExampleLanguageRule, requireTestCompanionRule, singleActStatementRule, singleLineJsdocRule, } from "../application/index.js";
1
+ import { assertActualExpectedNamesRule, barrelFilesExportsOnlyRule, consistentBarrelFilesRule, enforceAaaStructureRule, noImportExportAliasesRule, noImportExportExtensionsRule, noInterfaceMemberDocumentationRule, noMultipleDeclaratorsRule, noReexportsOutsideBarrelsRule, noUnusedExportsRule, noUnusedPublicMembersRule, noUselessDelegationRule, preferInterfaceTypesRule, preferViMockedImportRule, requireActResultCaptureRule, requireExampleLanguageRule, requireTestCompanionRule, singleActStatementRule, singleLineJsdocRule, } from "../application/index.js";
2
2
  /** Rule registry exposed by the package plugin. */
3
3
  const codeperfectRules = {
4
4
  "assert-actual-expected-names": assertActualExpectedNamesRule,
@@ -10,8 +10,8 @@ const codeperfectRules = {
10
10
  "no-interface-member-docs": noInterfaceMemberDocumentationRule,
11
11
  "no-multiple-declarators": noMultipleDeclaratorsRule,
12
12
  "no-reexports-outside-barrels": noReexportsOutsideBarrelsRule,
13
- "no-unsafe-vitest-mock-factory-cast": noUnsafeVitestMockFactoryCastRule,
14
13
  "no-unused-exports": noUnusedExportsRule,
14
+ "no-unused-public-members": noUnusedPublicMembersRule,
15
15
  "no-useless-delegation": noUselessDelegationRule,
16
16
  "prefer-interface-types": preferInterfaceTypesRule,
17
17
  "prefer-vi-mocked-import": preferViMockedImportRule,
@@ -27,4 +27,4 @@ const codeperfectPlugin = {
27
27
  rules: codeperfectRules,
28
28
  };
29
29
  export { codeperfectPlugin, codeperfectRules };
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZXBlcmZlY3QtcGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2luZnJhc3RydWN0dXJlL2NvZGVwZXJmZWN0LXBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQ0wsNkJBQTZCLEVBQzdCLDBCQUEwQixFQUMxQix5QkFBeUIsRUFDekIsdUJBQXVCLEVBQ3ZCLHlCQUF5QixFQUN6Qiw0QkFBNEIsRUFDNUIsa0NBQWtDLEVBQ2xDLHlCQUF5QixFQUN6Qiw2QkFBNkIsRUFDN0IsaUNBQWlDLEVBQ2pDLG1CQUFtQixFQUNuQix1QkFBdUIsRUFDdkIsd0JBQXdCLEVBQ3hCLHdCQUF3QixFQUN4QiwyQkFBMkIsRUFDM0IsMEJBQTBCLEVBQzFCLHdCQUF3QixFQUN4QixzQkFBc0IsRUFDdEIsbUJBQW1CLEdBQ3BCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsbURBQW1EO0FBQ25ELE1BQU0sZ0JBQWdCLEdBQUc7SUFDdkIsOEJBQThCLEVBQUUsNkJBQTZCO0lBQzdELDJCQUEyQixFQUFFLDBCQUEwQjtJQUN2RCx5QkFBeUIsRUFBRSx5QkFBeUI7SUFDcEQsdUJBQXVCLEVBQUUsdUJBQXVCO0lBQ2hELDBCQUEwQixFQUFFLHlCQUF5QjtJQUNyRCw2QkFBNkIsRUFBRSw0QkFBNEI7SUFDM0QsMEJBQTBCLEVBQUUsa0NBQWtDO0lBQzlELHlCQUF5QixFQUFFLHlCQUF5QjtJQUNwRCw4QkFBOEIsRUFBRSw2QkFBNkI7SUFDN0Qsb0NBQW9DLEVBQUUsaUNBQWlDO0lBQ3ZFLG1CQUFtQixFQUFFLG1CQUFtQjtJQUN4Qyx1QkFBdUIsRUFBRSx1QkFBdUI7SUFDaEQsd0JBQXdCLEVBQUUsd0JBQXdCO0lBQ2xELHlCQUF5QixFQUFFLHdCQUF3QjtJQUNuRCw0QkFBNEIsRUFBRSwyQkFBMkI7SUFDekQsMEJBQTBCLEVBQUUsMEJBQTBCO0lBQ3RELHdCQUF3QixFQUFFLHdCQUF3QjtJQUNsRCxzQkFBc0IsRUFBRSxzQkFBc0I7SUFDOUMsbUJBQW1CLEVBQUUsbUJBQW1CO0NBQ1UsQ0FBQztBQUVyRCxvREFBb0Q7QUFDcEQsTUFBTSxpQkFBaUIsR0FBRztJQUN4QixJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsNEJBQTRCLEVBQUU7SUFDNUMsS0FBSyxFQUFFLGdCQUFnQjtDQUNnQyxDQUFDO0FBRTFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBMaW50ZXIsIFJ1bGUgfSBmcm9tIFwiZXNsaW50XCI7XG5cbmltcG9ydCB7XG4gIGFzc2VydEFjdHVhbEV4cGVjdGVkTmFtZXNSdWxlLFxuICBiYXJyZWxGaWxlc0V4cG9ydHNPbmx5UnVsZSxcbiAgY29uc2lzdGVudEJhcnJlbEZpbGVzUnVsZSxcbiAgZW5mb3JjZUFhYVN0cnVjdHVyZVJ1bGUsXG4gIG5vSW1wb3J0RXhwb3J0QWxpYXNlc1J1bGUsXG4gIG5vSW1wb3J0RXhwb3J0RXh0ZW5zaW9uc1J1bGUsXG4gIG5vSW50ZXJmYWNlTWVtYmVyRG9jdW1lbnRhdGlvblJ1bGUsXG4gIG5vTXVsdGlwbGVEZWNsYXJhdG9yc1J1bGUsXG4gIG5vUmVleHBvcnRzT3V0c2lkZUJhcnJlbHNSdWxlLFxuICBub1Vuc2FmZVZpdGVzdE1vY2tGYWN0b3J5Q2FzdFJ1bGUsXG4gIG5vVW51c2VkRXhwb3J0c1J1bGUsXG4gIG5vVXNlbGVzc0RlbGVnYXRpb25SdWxlLFxuICBwcmVmZXJJbnRlcmZhY2VUeXBlc1J1bGUsXG4gIHByZWZlclZpTW9ja2VkSW1wb3J0UnVsZSxcbiAgcmVxdWlyZUFjdFJlc3VsdENhcHR1cmVSdWxlLFxuICByZXF1aXJlRXhhbXBsZUxhbmd1YWdlUnVsZSxcbiAgcmVxdWlyZVRlc3RDb21wYW5pb25SdWxlLFxuICBzaW5nbGVBY3RTdGF0ZW1lbnRSdWxlLFxuICBzaW5nbGVMaW5lSnNkb2NSdWxlLFxufSBmcm9tIFwiLi4vYXBwbGljYXRpb25cIjtcblxuLyoqIFJ1bGUgcmVnaXN0cnkgZXhwb3NlZCBieSB0aGUgcGFja2FnZSBwbHVnaW4uICovXG5jb25zdCBjb2RlcGVyZmVjdFJ1bGVzID0ge1xuICBcImFzc2VydC1hY3R1YWwtZXhwZWN0ZWQtbmFtZXNcIjogYXNzZXJ0QWN0dWFsRXhwZWN0ZWROYW1lc1J1bGUsXG4gIFwiYmFycmVsLWZpbGVzLWV4cG9ydHMtb25seVwiOiBiYXJyZWxGaWxlc0V4cG9ydHNPbmx5UnVsZSxcbiAgXCJjb25zaXN0ZW50LWJhcnJlbC1maWxlc1wiOiBjb25zaXN0ZW50QmFycmVsRmlsZXNSdWxlLFxuICBcImVuZm9yY2UtYWFhLXN0cnVjdHVyZVwiOiBlbmZvcmNlQWFhU3RydWN0dXJlUnVsZSxcbiAgXCJuby1pbXBvcnQtZXhwb3J0LWFsaWFzZXNcIjogbm9JbXBvcnRFeHBvcnRBbGlhc2VzUnVsZSxcbiAgXCJuby1pbXBvcnQtZXhwb3J0LWV4dGVuc2lvbnNcIjogbm9JbXBvcnRFeHBvcnRFeHRlbnNpb25zUnVsZSxcbiAgXCJuby1pbnRlcmZhY2UtbWVtYmVyLWRvY3NcIjogbm9JbnRlcmZhY2VNZW1iZXJEb2N1bWVudGF0aW9uUnVsZSxcbiAgXCJuby1tdWx0aXBsZS1kZWNsYXJhdG9yc1wiOiBub011bHRpcGxlRGVjbGFyYXRvcnNSdWxlLFxuICBcIm5vLXJlZXhwb3J0cy1vdXRzaWRlLWJhcnJlbHNcIjogbm9SZWV4cG9ydHNPdXRzaWRlQmFycmVsc1J1bGUsXG4gIFwibm8tdW5zYWZlLXZpdGVzdC1tb2NrLWZhY3RvcnktY2FzdFwiOiBub1Vuc2FmZVZpdGVzdE1vY2tGYWN0b3J5Q2FzdFJ1bGUsXG4gIFwibm8tdW51c2VkLWV4cG9ydHNcIjogbm9VbnVzZWRFeHBvcnRzUnVsZSxcbiAgXCJuby11c2VsZXNzLWRlbGVnYXRpb25cIjogbm9Vc2VsZXNzRGVsZWdhdGlvblJ1bGUsXG4gIFwicHJlZmVyLWludGVyZmFjZS10eXBlc1wiOiBwcmVmZXJJbnRlcmZhY2VUeXBlc1J1bGUsXG4gIFwicHJlZmVyLXZpLW1vY2tlZC1pbXBvcnRcIjogcHJlZmVyVmlNb2NrZWRJbXBvcnRSdWxlLFxuICBcInJlcXVpcmUtYWN0LXJlc3VsdC1jYXB0dXJlXCI6IHJlcXVpcmVBY3RSZXN1bHRDYXB0dXJlUnVsZSxcbiAgXCJyZXF1aXJlLWV4YW1wbGUtbGFuZ3VhZ2VcIjogcmVxdWlyZUV4YW1wbGVMYW5ndWFnZVJ1bGUsXG4gIFwicmVxdWlyZS10ZXN0LWNvbXBhbmlvblwiOiByZXF1aXJlVGVzdENvbXBhbmlvblJ1bGUsXG4gIFwic2luZ2xlLWFjdC1zdGF0ZW1lbnRcIjogc2luZ2xlQWN0U3RhdGVtZW50UnVsZSxcbiAgXCJzaW5nbGUtbGluZS1qc2RvY1wiOiBzaW5nbGVMaW5lSnNkb2NSdWxlLFxufSBhcyBjb25zdCBzYXRpc2ZpZXMgUmVjb3JkPHN0cmluZywgUnVsZS5SdWxlTW9kdWxlPjtcblxuLyoqIEVTTGludCBwbHVnaW4gb2JqZWN0IGV4cG9ydGVkIGJ5IHRoZSBwYWNrYWdlLiAqL1xuY29uc3QgY29kZXBlcmZlY3RQbHVnaW4gPSB7XG4gIG1ldGE6IHsgbmFtZTogXCJAY29kZXBlcmZlY3QvZXNsaW50LXBsdWdpblwiIH0sXG4gIHJ1bGVzOiBjb2RlcGVyZmVjdFJ1bGVzLFxufSBzYXRpc2ZpZXMgTm9uTnVsbGFibGU8TGludGVyLkNvbmZpZ1tcInBsdWdpbnNcIl0+W3N0cmluZ107XG5cbmV4cG9ydCB7IGNvZGVwZXJmZWN0UGx1Z2luLCBjb2RlcGVyZmVjdFJ1bGVzIH07XG4iXX0=
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZXBlcmZlY3QtcGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2luZnJhc3RydWN0dXJlL2NvZGVwZXJmZWN0LXBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQ0wsNkJBQTZCLEVBQzdCLDBCQUEwQixFQUMxQix5QkFBeUIsRUFDekIsdUJBQXVCLEVBQ3ZCLHlCQUF5QixFQUN6Qiw0QkFBNEIsRUFDNUIsa0NBQWtDLEVBQ2xDLHlCQUF5QixFQUN6Qiw2QkFBNkIsRUFDN0IsbUJBQW1CLEVBQ25CLHlCQUF5QixFQUN6Qix1QkFBdUIsRUFDdkIsd0JBQXdCLEVBQ3hCLHdCQUF3QixFQUN4QiwyQkFBMkIsRUFDM0IsMEJBQTBCLEVBQzFCLHdCQUF3QixFQUN4QixzQkFBc0IsRUFDdEIsbUJBQW1CLEdBQ3BCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsbURBQW1EO0FBQ25ELE1BQU0sZ0JBQWdCLEdBQUc7SUFDdkIsOEJBQThCLEVBQUUsNkJBQTZCO0lBQzdELDJCQUEyQixFQUFFLDBCQUEwQjtJQUN2RCx5QkFBeUIsRUFBRSx5QkFBeUI7SUFDcEQsdUJBQXVCLEVBQUUsdUJBQXVCO0lBQ2hELDBCQUEwQixFQUFFLHlCQUF5QjtJQUNyRCw2QkFBNkIsRUFBRSw0QkFBNEI7SUFDM0QsMEJBQTBCLEVBQUUsa0NBQWtDO0lBQzlELHlCQUF5QixFQUFFLHlCQUF5QjtJQUNwRCw4QkFBOEIsRUFBRSw2QkFBNkI7SUFDN0QsbUJBQW1CLEVBQUUsbUJBQW1CO0lBQ3hDLDBCQUEwQixFQUFFLHlCQUF5QjtJQUNyRCx1QkFBdUIsRUFBRSx1QkFBdUI7SUFDaEQsd0JBQXdCLEVBQUUsd0JBQXdCO0lBQ2xELHlCQUF5QixFQUFFLHdCQUF3QjtJQUNuRCw0QkFBNEIsRUFBRSwyQkFBMkI7SUFDekQsMEJBQTBCLEVBQUUsMEJBQTBCO0lBQ3RELHdCQUF3QixFQUFFLHdCQUF3QjtJQUNsRCxzQkFBc0IsRUFBRSxzQkFBc0I7SUFDOUMsbUJBQW1CLEVBQUUsbUJBQW1CO0NBQ1UsQ0FBQztBQUVyRCxvREFBb0Q7QUFDcEQsTUFBTSxpQkFBaUIsR0FBRztJQUN4QixJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsNEJBQTRCLEVBQUU7SUFDNUMsS0FBSyxFQUFFLGdCQUFnQjtDQUNnQyxDQUFDO0FBRTFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBMaW50ZXIsIFJ1bGUgfSBmcm9tIFwiZXNsaW50XCI7XG5cbmltcG9ydCB7XG4gIGFzc2VydEFjdHVhbEV4cGVjdGVkTmFtZXNSdWxlLFxuICBiYXJyZWxGaWxlc0V4cG9ydHNPbmx5UnVsZSxcbiAgY29uc2lzdGVudEJhcnJlbEZpbGVzUnVsZSxcbiAgZW5mb3JjZUFhYVN0cnVjdHVyZVJ1bGUsXG4gIG5vSW1wb3J0RXhwb3J0QWxpYXNlc1J1bGUsXG4gIG5vSW1wb3J0RXhwb3J0RXh0ZW5zaW9uc1J1bGUsXG4gIG5vSW50ZXJmYWNlTWVtYmVyRG9jdW1lbnRhdGlvblJ1bGUsXG4gIG5vTXVsdGlwbGVEZWNsYXJhdG9yc1J1bGUsXG4gIG5vUmVleHBvcnRzT3V0c2lkZUJhcnJlbHNSdWxlLFxuICBub1VudXNlZEV4cG9ydHNSdWxlLFxuICBub1VudXNlZFB1YmxpY01lbWJlcnNSdWxlLFxuICBub1VzZWxlc3NEZWxlZ2F0aW9uUnVsZSxcbiAgcHJlZmVySW50ZXJmYWNlVHlwZXNSdWxlLFxuICBwcmVmZXJWaU1vY2tlZEltcG9ydFJ1bGUsXG4gIHJlcXVpcmVBY3RSZXN1bHRDYXB0dXJlUnVsZSxcbiAgcmVxdWlyZUV4YW1wbGVMYW5ndWFnZVJ1bGUsXG4gIHJlcXVpcmVUZXN0Q29tcGFuaW9uUnVsZSxcbiAgc2luZ2xlQWN0U3RhdGVtZW50UnVsZSxcbiAgc2luZ2xlTGluZUpzZG9jUnVsZSxcbn0gZnJvbSBcIi4uL2FwcGxpY2F0aW9uXCI7XG5cbi8qKiBSdWxlIHJlZ2lzdHJ5IGV4cG9zZWQgYnkgdGhlIHBhY2thZ2UgcGx1Z2luLiAqL1xuY29uc3QgY29kZXBlcmZlY3RSdWxlcyA9IHtcbiAgXCJhc3NlcnQtYWN0dWFsLWV4cGVjdGVkLW5hbWVzXCI6IGFzc2VydEFjdHVhbEV4cGVjdGVkTmFtZXNSdWxlLFxuICBcImJhcnJlbC1maWxlcy1leHBvcnRzLW9ubHlcIjogYmFycmVsRmlsZXNFeHBvcnRzT25seVJ1bGUsXG4gIFwiY29uc2lzdGVudC1iYXJyZWwtZmlsZXNcIjogY29uc2lzdGVudEJhcnJlbEZpbGVzUnVsZSxcbiAgXCJlbmZvcmNlLWFhYS1zdHJ1Y3R1cmVcIjogZW5mb3JjZUFhYVN0cnVjdHVyZVJ1bGUsXG4gIFwibm8taW1wb3J0LWV4cG9ydC1hbGlhc2VzXCI6IG5vSW1wb3J0RXhwb3J0QWxpYXNlc1J1bGUsXG4gIFwibm8taW1wb3J0LWV4cG9ydC1leHRlbnNpb25zXCI6IG5vSW1wb3J0RXhwb3J0RXh0ZW5zaW9uc1J1bGUsXG4gIFwibm8taW50ZXJmYWNlLW1lbWJlci1kb2NzXCI6IG5vSW50ZXJmYWNlTWVtYmVyRG9jdW1lbnRhdGlvblJ1bGUsXG4gIFwibm8tbXVsdGlwbGUtZGVjbGFyYXRvcnNcIjogbm9NdWx0aXBsZURlY2xhcmF0b3JzUnVsZSxcbiAgXCJuby1yZWV4cG9ydHMtb3V0c2lkZS1iYXJyZWxzXCI6IG5vUmVleHBvcnRzT3V0c2lkZUJhcnJlbHNSdWxlLFxuICBcIm5vLXVudXNlZC1leHBvcnRzXCI6IG5vVW51c2VkRXhwb3J0c1J1bGUsXG4gIFwibm8tdW51c2VkLXB1YmxpYy1tZW1iZXJzXCI6IG5vVW51c2VkUHVibGljTWVtYmVyc1J1bGUsXG4gIFwibm8tdXNlbGVzcy1kZWxlZ2F0aW9uXCI6IG5vVXNlbGVzc0RlbGVnYXRpb25SdWxlLFxuICBcInByZWZlci1pbnRlcmZhY2UtdHlwZXNcIjogcHJlZmVySW50ZXJmYWNlVHlwZXNSdWxlLFxuICBcInByZWZlci12aS1tb2NrZWQtaW1wb3J0XCI6IHByZWZlclZpTW9ja2VkSW1wb3J0UnVsZSxcbiAgXCJyZXF1aXJlLWFjdC1yZXN1bHQtY2FwdHVyZVwiOiByZXF1aXJlQWN0UmVzdWx0Q2FwdHVyZVJ1bGUsXG4gIFwicmVxdWlyZS1leGFtcGxlLWxhbmd1YWdlXCI6IHJlcXVpcmVFeGFtcGxlTGFuZ3VhZ2VSdWxlLFxuICBcInJlcXVpcmUtdGVzdC1jb21wYW5pb25cIjogcmVxdWlyZVRlc3RDb21wYW5pb25SdWxlLFxuICBcInNpbmdsZS1hY3Qtc3RhdGVtZW50XCI6IHNpbmdsZUFjdFN0YXRlbWVudFJ1bGUsXG4gIFwic2luZ2xlLWxpbmUtanNkb2NcIjogc2luZ2xlTGluZUpzZG9jUnVsZSxcbn0gYXMgY29uc3Qgc2F0aXNmaWVzIFJlY29yZDxzdHJpbmcsIFJ1bGUuUnVsZU1vZHVsZT47XG5cbi8qKiBFU0xpbnQgcGx1Z2luIG9iamVjdCBleHBvcnRlZCBieSB0aGUgcGFja2FnZS4gKi9cbmNvbnN0IGNvZGVwZXJmZWN0UGx1Z2luID0ge1xuICBtZXRhOiB7IG5hbWU6IFwiQGNvZGVwZXJmZWN0L2VzbGludC1wbHVnaW5cIiB9LFxuICBydWxlczogY29kZXBlcmZlY3RSdWxlcyxcbn0gc2F0aXNmaWVzIE5vbk51bGxhYmxlPExpbnRlci5Db25maWdbXCJwbHVnaW5zXCJdPltzdHJpbmddO1xuXG5leHBvcnQgeyBjb2RlcGVyZmVjdFBsdWdpbiwgY29kZXBlcmZlY3RSdWxlcyB9O1xuIl19
@@ -7,6 +7,7 @@ const architectureRuleNames = [
7
7
  "no-import-export-extensions",
8
8
  "no-unused-exports",
9
9
  "no-reexports-outside-barrels",
10
+ "no-unused-public-members",
10
11
  ];
11
12
  /** Rule names grouped into the core preset. */
12
13
  const coreRuleNames = [
@@ -28,7 +29,6 @@ const aaaRuleNames = [
28
29
  const testingRuleNames = [
29
30
  "assert-actual-expected-names",
30
31
  "enforce-aaa-structure",
31
- "no-unsafe-vitest-mock-factory-cast",
32
32
  "prefer-vi-mocked-import",
33
33
  "require-act-result-capture",
34
34
  "require-test-companion",
@@ -47,7 +47,7 @@ const allRuleNames = [
47
47
  "no-useless-delegation",
48
48
  "no-reexports-outside-barrels",
49
49
  "no-unused-exports",
50
- "no-unsafe-vitest-mock-factory-cast",
50
+ "no-unused-public-members",
51
51
  "prefer-interface-types",
52
52
  "prefer-vi-mocked-import",
53
53
  "require-act-result-capture",
@@ -96,4 +96,4 @@ const testing = createPreset(testingRuleNames);
96
96
  /** Preset that enables AAA-specific testing rules. */
97
97
  const aaa = createPreset(aaaRuleNames);
98
98
  export { aaa, all, architecture, core, documentation, testing };
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2V0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmZyYXN0cnVjdHVyZS9wcmVzZXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBZ0IzRSx1REFBdUQ7QUFDdkQsTUFBTSxxQkFBcUIsR0FBRztJQUM1QiwyQkFBMkI7SUFDM0IseUJBQXlCO0lBQ3pCLDBCQUEwQjtJQUMxQiw2QkFBNkI7SUFDN0IsbUJBQW1CO0lBQ25CLDhCQUE4QjtDQUNtQixDQUFDO0FBRXBELCtDQUErQztBQUMvQyxNQUFNLGFBQWEsR0FBRztJQUNwQix5QkFBeUI7SUFDekIsdUJBQXVCO0lBQ3ZCLHdCQUF3QjtDQUN5QixDQUFDO0FBRXBELHdEQUF3RDtBQUN4RCxNQUFNLHNCQUFzQixHQUFHO0lBQzdCLDBCQUEwQjtJQUMxQiwwQkFBMEI7SUFDMUIsbUJBQW1CO0NBQzhCLENBQUM7QUFFcEQsc0RBQXNEO0FBQ3RELE1BQU0sWUFBWSxHQUFHO0lBQ25CLHVCQUF1QjtDQUMwQixDQUFDO0FBRXBELDBEQUEwRDtBQUMxRCxNQUFNLGdCQUFnQixHQUFHO0lBQ3ZCLDhCQUE4QjtJQUM5Qix1QkFBdUI7SUFDdkIsb0NBQW9DO0lBQ3BDLHlCQUF5QjtJQUN6Qiw0QkFBNEI7SUFDNUIsd0JBQXdCO0lBQ3hCLHNCQUFzQjtDQUMyQixDQUFDO0FBRXBELCtDQUErQztBQUMvQyxNQUFNLFlBQVksR0FBRztJQUNuQiw4QkFBOEI7SUFDOUIsMkJBQTJCO0lBQzNCLHlCQUF5QjtJQUN6Qix1QkFBdUI7SUFDdkIsMEJBQTBCO0lBQzFCLDZCQUE2QjtJQUM3QiwwQkFBMEI7SUFDMUIseUJBQXlCO0lBQ3pCLHVCQUF1QjtJQUN2Qiw4QkFBOEI7SUFDOUIsbUJBQW1CO0lBQ25CLG9DQUFvQztJQUNwQyx3QkFBd0I7SUFDeEIseUJBQXlCO0lBQ3pCLDRCQUE0QjtJQUM1QiwwQkFBMEI7SUFDMUIsd0JBQXdCO0lBQ3hCLHNCQUFzQjtJQUN0QixtQkFBbUI7Q0FDOEIsQ0FBQztBQUVwRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsWUFBWSxDQUNuQixTQUF5QztJQUV6QyxPQUFPO1FBQ0wsT0FBTyxFQUFFLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFO1FBQzNDLEtBQUssRUFBRSxXQUFXLENBQUMsU0FBUyxDQUFDO0tBQzlCLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLFdBQVcsQ0FDbEIsU0FBeUM7SUFFekMsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUN2QixTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLGVBQWUsUUFBUSxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FDbEUsQ0FBQztBQUNKLENBQUM7QUFFRCxvREFBb0Q7QUFDcEQsTUFBTSxHQUFHLEdBQUcsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBRXZDLHNEQUFzRDtBQUN0RCxNQUFNLFlBQVksR0FBRyxZQUFZLENBQUMscUJBQXFCLENBQUMsQ0FBQztBQUV6RCxzQ0FBc0M7QUFDdEMsTUFBTSxJQUFJLEdBQUcsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBRXpDLCtDQUErQztBQUMvQyxNQUFNLGFBQWEsR0FBRyxZQUFZLENBQUMsc0JBQXNCLENBQUMsQ0FBQztBQUUzRCx5Q0FBeUM7QUFDekMsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFFL0Msc0RBQXNEO0FBQ3RELE1BQU0sR0FBRyxHQUFHLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUV2QyxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTGludGVyIH0gZnJvbSBcImVzbGludFwiO1xuXG5pbXBvcnQgeyBjb2RlcGVyZmVjdFBsdWdpbiwgY29kZXBlcmZlY3RSdWxlcyB9IGZyb20gXCIuL2NvZGVwZXJmZWN0LXBsdWdpblwiO1xuXG4vKiogUmVwcmVzZW50cyBhIHJlYWR5LXRvLXVzZSBwcmVzZXQgZXhwb3J0ZWQgYnkgdGhlIHBhY2thZ2UuICovXG50eXBlIENvZGVwZXJmZWN0UHJlc2V0ID0gUGljazxMaW50ZXIuQ29uZmlnLCBcInBsdWdpbnNcIiB8IFwicnVsZXNcIj47XG5cbi8qKiBSZXByZXNlbnRzIHRoZSBlbmFibGVkIHJ1bGUgZW50cmllcyBpbnNpZGUgYSBwcmVzZXQuICovXG50eXBlIENvZGVwZXJmZWN0UnVsZUVudHJpZXMgPSBQYXJ0aWFsPFxuICBSZWNvcmQ8Q29kZXBlcmZlY3RSdWxlS2V5LCBMaW50ZXIuUnVsZUVudHJ5PlxuPjtcblxuLyoqIE5hbWVzcGFjZXMgYSBwYWNrYWdlLW93bmVkIHJ1bGUgdW5kZXIgdGhlIGBjb2RlcGVyZmVjdC9gIHByZWZpeC4gKi9cbnR5cGUgQ29kZXBlcmZlY3RSdWxlS2V5ID0gYGNvZGVwZXJmZWN0LyR7Q29kZXBlcmZlY3RSdWxlTmFtZX1gO1xuXG4vKiogRW51bWVyYXRlcyB0aGUgcGFja2FnZS1vd25lZCBydWxlIG5hbWVzLiAqL1xudHlwZSBDb2RlcGVyZmVjdFJ1bGVOYW1lID0ga2V5b2YgdHlwZW9mIGNvZGVwZXJmZWN0UnVsZXM7XG5cbi8qKiBSdWxlIG5hbWVzIGdyb3VwZWQgaW50byB0aGUgYXJjaGl0ZWN0dXJlIHByZXNldC4gKi9cbmNvbnN0IGFyY2hpdGVjdHVyZVJ1bGVOYW1lcyA9IFtcbiAgXCJiYXJyZWwtZmlsZXMtZXhwb3J0cy1vbmx5XCIsXG4gIFwiY29uc2lzdGVudC1iYXJyZWwtZmlsZXNcIixcbiAgXCJuby1pbXBvcnQtZXhwb3J0LWFsaWFzZXNcIixcbiAgXCJuby1pbXBvcnQtZXhwb3J0LWV4dGVuc2lvbnNcIixcbiAgXCJuby11bnVzZWQtZXhwb3J0c1wiLFxuICBcIm5vLXJlZXhwb3J0cy1vdXRzaWRlLWJhcnJlbHNcIixcbl0gYXMgY29uc3Qgc2F0aXNmaWVzIHJlYWRvbmx5IENvZGVwZXJmZWN0UnVsZU5hbWVbXTtcblxuLyoqIFJ1bGUgbmFtZXMgZ3JvdXBlZCBpbnRvIHRoZSBjb3JlIHByZXNldC4gKi9cbmNvbnN0IGNvcmVSdWxlTmFtZXMgPSBbXG4gIFwibm8tbXVsdGlwbGUtZGVjbGFyYXRvcnNcIixcbiAgXCJuby11c2VsZXNzLWRlbGVnYXRpb25cIixcbiAgXCJwcmVmZXItaW50ZXJmYWNlLXR5cGVzXCIsXG5dIGFzIGNvbnN0IHNhdGlzZmllcyByZWFkb25seSBDb2RlcGVyZmVjdFJ1bGVOYW1lW107XG5cbi8qKiBSdWxlIG5hbWVzIGdyb3VwZWQgaW50byB0aGUgZG9jdW1lbnRhdGlvbiBwcmVzZXQuICovXG5jb25zdCBkb2N1bWVudGF0aW9uUnVsZU5hbWVzID0gW1xuICBcIm5vLWludGVyZmFjZS1tZW1iZXItZG9jc1wiLFxuICBcInJlcXVpcmUtZXhhbXBsZS1sYW5ndWFnZVwiLFxuICBcInNpbmdsZS1saW5lLWpzZG9jXCIsXG5dIGFzIGNvbnN0IHNhdGlzZmllcyByZWFkb25seSBDb2RlcGVyZmVjdFJ1bGVOYW1lW107XG5cbi8qKiBSdWxlIG5hbWVzIGdyb3VwZWQgaW50byB0aGUgQUFBLWZvY3VzZWQgcHJlc2V0LiAqL1xuY29uc3QgYWFhUnVsZU5hbWVzID0gW1xuICBcImVuZm9yY2UtYWFhLXN0cnVjdHVyZVwiLFxuXSBhcyBjb25zdCBzYXRpc2ZpZXMgcmVhZG9ubHkgQ29kZXBlcmZlY3RSdWxlTmFtZVtdO1xuXG4vKiogUnVsZSBuYW1lcyBncm91cGVkIGludG8gdGhlIGJyb2FkZXIgdGVzdGluZyBwcmVzZXQuICovXG5jb25zdCB0ZXN0aW5nUnVsZU5hbWVzID0gW1xuICBcImFzc2VydC1hY3R1YWwtZXhwZWN0ZWQtbmFtZXNcIixcbiAgXCJlbmZvcmNlLWFhYS1zdHJ1Y3R1cmVcIixcbiAgXCJuby11bnNhZmUtdml0ZXN0LW1vY2stZmFjdG9yeS1jYXN0XCIsXG4gIFwicHJlZmVyLXZpLW1vY2tlZC1pbXBvcnRcIixcbiAgXCJyZXF1aXJlLWFjdC1yZXN1bHQtY2FwdHVyZVwiLFxuICBcInJlcXVpcmUtdGVzdC1jb21wYW5pb25cIixcbiAgXCJzaW5nbGUtYWN0LXN0YXRlbWVudFwiLFxuXSBhcyBjb25zdCBzYXRpc2ZpZXMgcmVhZG9ubHkgQ29kZXBlcmZlY3RSdWxlTmFtZVtdO1xuXG4vKiogUnVsZSBuYW1lcyB1c2VkIGJ5IHRoZSBhbGwtcnVsZXMgcHJlc2V0LiAqL1xuY29uc3QgYWxsUnVsZU5hbWVzID0gW1xuICBcImFzc2VydC1hY3R1YWwtZXhwZWN0ZWQtbmFtZXNcIixcbiAgXCJiYXJyZWwtZmlsZXMtZXhwb3J0cy1vbmx5XCIsXG4gIFwiY29uc2lzdGVudC1iYXJyZWwtZmlsZXNcIixcbiAgXCJlbmZvcmNlLWFhYS1zdHJ1Y3R1cmVcIixcbiAgXCJuby1pbXBvcnQtZXhwb3J0LWFsaWFzZXNcIixcbiAgXCJuby1pbXBvcnQtZXhwb3J0LWV4dGVuc2lvbnNcIixcbiAgXCJuby1pbnRlcmZhY2UtbWVtYmVyLWRvY3NcIixcbiAgXCJuby1tdWx0aXBsZS1kZWNsYXJhdG9yc1wiLFxuICBcIm5vLXVzZWxlc3MtZGVsZWdhdGlvblwiLFxuICBcIm5vLXJlZXhwb3J0cy1vdXRzaWRlLWJhcnJlbHNcIixcbiAgXCJuby11bnVzZWQtZXhwb3J0c1wiLFxuICBcIm5vLXVuc2FmZS12aXRlc3QtbW9jay1mYWN0b3J5LWNhc3RcIixcbiAgXCJwcmVmZXItaW50ZXJmYWNlLXR5cGVzXCIsXG4gIFwicHJlZmVyLXZpLW1vY2tlZC1pbXBvcnRcIixcbiAgXCJyZXF1aXJlLWFjdC1yZXN1bHQtY2FwdHVyZVwiLFxuICBcInJlcXVpcmUtZXhhbXBsZS1sYW5ndWFnZVwiLFxuICBcInJlcXVpcmUtdGVzdC1jb21wYW5pb25cIixcbiAgXCJzaW5nbGUtYWN0LXN0YXRlbWVudFwiLFxuICBcInNpbmdsZS1saW5lLWpzZG9jXCIsXG5dIGFzIGNvbnN0IHNhdGlzZmllcyByZWFkb25seSBDb2RlcGVyZmVjdFJ1bGVOYW1lW107XG5cbi8qKlxuICogQ3JlYXRlcyBhIHByZXNldCBmb3IgdGhlIHByb3ZpZGVkIHJ1bGUgbmFtZXMuXG4gKiBAcGFyYW0gcnVsZU5hbWVzIFJ1bGUgbmFtZXMgdG8gZW5hYmxlLlxuICogQHJldHVybnMgRVNMaW50IHByZXNldCBjb250YWluaW5nIHRoZSBwYWNrYWdlIHBsdWdpbiBhbmQgZW5hYmxlZCBydWxlcy5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBwcmVzZXQgPSBjcmVhdGVQcmVzZXQoW1wibm8tbXVsdGlwbGUtZGVjbGFyYXRvcnNcIl0pO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZVByZXNldChcbiAgcnVsZU5hbWVzOiByZWFkb25seSBDb2RlcGVyZmVjdFJ1bGVOYW1lW10sXG4pOiBDb2RlcGVyZmVjdFByZXNldCB7XG4gIHJldHVybiB7XG4gICAgcGx1Z2luczogeyBjb2RlcGVyZmVjdDogY29kZXBlcmZlY3RQbHVnaW4gfSxcbiAgICBydWxlczogY3JlYXRlUnVsZXMocnVsZU5hbWVzKSxcbiAgfTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIHRoZSBydWxlIGVudHJ5IG1hcCBmb3IgYSBwcmVzZXQuXG4gKiBAcGFyYW0gcnVsZU5hbWVzIFJ1bGUgbmFtZXMgdG8gZW5hYmxlLlxuICogQHJldHVybnMgUnVsZSBlbnRyeSBtYXAga2V5ZWQgYnkgYGNvZGVwZXJmZWN0L2AgcnVsZSBuYW1lLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHJ1bGVzID0gY3JlYXRlUnVsZXMoW1wicHJlZmVyLWludGVyZmFjZS10eXBlc1wiXSk7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gY3JlYXRlUnVsZXMoXG4gIHJ1bGVOYW1lczogcmVhZG9ubHkgQ29kZXBlcmZlY3RSdWxlTmFtZVtdLFxuKTogQ29kZXBlcmZlY3RSdWxlRW50cmllcyB7XG4gIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgcnVsZU5hbWVzLm1hcCgocnVsZU5hbWUpID0+IFtgY29kZXBlcmZlY3QvJHtydWxlTmFtZX1gLCBcImVycm9yXCJdKSxcbiAgKTtcbn1cblxuLyoqIFByZXNldCB0aGF0IGVuYWJsZXMgZXZlcnkgcGFja2FnZS1vd25lZCBydWxlLiAqL1xuY29uc3QgYWxsID0gY3JlYXRlUHJlc2V0KGFsbFJ1bGVOYW1lcyk7XG5cbi8qKiBQcmVzZXQgdGhhdCBlbmFibGVzIGFyY2hpdGVjdHVyZS1mb2N1c2VkIHJ1bGVzLiAqL1xuY29uc3QgYXJjaGl0ZWN0dXJlID0gY3JlYXRlUHJlc2V0KGFyY2hpdGVjdHVyZVJ1bGVOYW1lcyk7XG5cbi8qKiBQcmVzZXQgdGhhdCBlbmFibGVzIGNvcmUgcnVsZXMuICovXG5jb25zdCBjb3JlID0gY3JlYXRlUHJlc2V0KGNvcmVSdWxlTmFtZXMpO1xuXG4vKiogUHJlc2V0IHRoYXQgZW5hYmxlcyBkb2N1bWVudGF0aW9uIHJ1bGVzLiAqL1xuY29uc3QgZG9jdW1lbnRhdGlvbiA9IGNyZWF0ZVByZXNldChkb2N1bWVudGF0aW9uUnVsZU5hbWVzKTtcblxuLyoqIFByZXNldCB0aGF0IGVuYWJsZXMgdGVzdGluZyBydWxlcy4gKi9cbmNvbnN0IHRlc3RpbmcgPSBjcmVhdGVQcmVzZXQodGVzdGluZ1J1bGVOYW1lcyk7XG5cbi8qKiBQcmVzZXQgdGhhdCBlbmFibGVzIEFBQS1zcGVjaWZpYyB0ZXN0aW5nIHJ1bGVzLiAqL1xuY29uc3QgYWFhID0gY3JlYXRlUHJlc2V0KGFhYVJ1bGVOYW1lcyk7XG5cbmV4cG9ydCB7IGFhYSwgYWxsLCBhcmNoaXRlY3R1cmUsIGNvcmUsIGRvY3VtZW50YXRpb24sIHRlc3RpbmcgfTtcbmV4cG9ydCB0eXBlIHsgQ29kZXBlcmZlY3RQcmVzZXQgfTtcbiJdfQ==
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2V0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmZyYXN0cnVjdHVyZS9wcmVzZXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBZ0IzRSx1REFBdUQ7QUFDdkQsTUFBTSxxQkFBcUIsR0FBRztJQUM1QiwyQkFBMkI7SUFDM0IseUJBQXlCO0lBQ3pCLDBCQUEwQjtJQUMxQiw2QkFBNkI7SUFDN0IsbUJBQW1CO0lBQ25CLDhCQUE4QjtJQUM5QiwwQkFBMEI7Q0FDdUIsQ0FBQztBQUVwRCwrQ0FBK0M7QUFDL0MsTUFBTSxhQUFhLEdBQUc7SUFDcEIseUJBQXlCO0lBQ3pCLHVCQUF1QjtJQUN2Qix3QkFBd0I7Q0FDeUIsQ0FBQztBQUVwRCx3REFBd0Q7QUFDeEQsTUFBTSxzQkFBc0IsR0FBRztJQUM3QiwwQkFBMEI7SUFDMUIsMEJBQTBCO0lBQzFCLG1CQUFtQjtDQUM4QixDQUFDO0FBRXBELHNEQUFzRDtBQUN0RCxNQUFNLFlBQVksR0FBRztJQUNuQix1QkFBdUI7Q0FDMEIsQ0FBQztBQUVwRCwwREFBMEQ7QUFDMUQsTUFBTSxnQkFBZ0IsR0FBRztJQUN2Qiw4QkFBOEI7SUFDOUIsdUJBQXVCO0lBQ3ZCLHlCQUF5QjtJQUN6Qiw0QkFBNEI7SUFDNUIsd0JBQXdCO0lBQ3hCLHNCQUFzQjtDQUMyQixDQUFDO0FBRXBELCtDQUErQztBQUMvQyxNQUFNLFlBQVksR0FBRztJQUNuQiw4QkFBOEI7SUFDOUIsMkJBQTJCO0lBQzNCLHlCQUF5QjtJQUN6Qix1QkFBdUI7SUFDdkIsMEJBQTBCO0lBQzFCLDZCQUE2QjtJQUM3QiwwQkFBMEI7SUFDMUIseUJBQXlCO0lBQ3pCLHVCQUF1QjtJQUN2Qiw4QkFBOEI7SUFDOUIsbUJBQW1CO0lBQ25CLDBCQUEwQjtJQUMxQix3QkFBd0I7SUFDeEIseUJBQXlCO0lBQ3pCLDRCQUE0QjtJQUM1QiwwQkFBMEI7SUFDMUIsd0JBQXdCO0lBQ3hCLHNCQUFzQjtJQUN0QixtQkFBbUI7Q0FDOEIsQ0FBQztBQUVwRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsWUFBWSxDQUNuQixTQUF5QztJQUV6QyxPQUFPO1FBQ0wsT0FBTyxFQUFFLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFO1FBQzNDLEtBQUssRUFBRSxXQUFXLENBQUMsU0FBUyxDQUFDO0tBQzlCLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLFdBQVcsQ0FDbEIsU0FBeUM7SUFFekMsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUN2QixTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLGVBQWUsUUFBUSxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FDbEUsQ0FBQztBQUNKLENBQUM7QUFFRCxvREFBb0Q7QUFDcEQsTUFBTSxHQUFHLEdBQUcsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBRXZDLHNEQUFzRDtBQUN0RCxNQUFNLFlBQVksR0FBRyxZQUFZLENBQUMscUJBQXFCLENBQUMsQ0FBQztBQUV6RCxzQ0FBc0M7QUFDdEMsTUFBTSxJQUFJLEdBQUcsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBRXpDLCtDQUErQztBQUMvQyxNQUFNLGFBQWEsR0FBRyxZQUFZLENBQUMsc0JBQXNCLENBQUMsQ0FBQztBQUUzRCx5Q0FBeUM7QUFDekMsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFFL0Msc0RBQXNEO0FBQ3RELE1BQU0sR0FBRyxHQUFHLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUV2QyxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTGludGVyIH0gZnJvbSBcImVzbGludFwiO1xuXG5pbXBvcnQgeyBjb2RlcGVyZmVjdFBsdWdpbiwgY29kZXBlcmZlY3RSdWxlcyB9IGZyb20gXCIuL2NvZGVwZXJmZWN0LXBsdWdpblwiO1xuXG4vKiogUmVwcmVzZW50cyBhIHJlYWR5LXRvLXVzZSBwcmVzZXQgZXhwb3J0ZWQgYnkgdGhlIHBhY2thZ2UuICovXG50eXBlIENvZGVwZXJmZWN0UHJlc2V0ID0gUGljazxMaW50ZXIuQ29uZmlnLCBcInBsdWdpbnNcIiB8IFwicnVsZXNcIj47XG5cbi8qKiBSZXByZXNlbnRzIHRoZSBlbmFibGVkIHJ1bGUgZW50cmllcyBpbnNpZGUgYSBwcmVzZXQuICovXG50eXBlIENvZGVwZXJmZWN0UnVsZUVudHJpZXMgPSBQYXJ0aWFsPFxuICBSZWNvcmQ8Q29kZXBlcmZlY3RSdWxlS2V5LCBMaW50ZXIuUnVsZUVudHJ5PlxuPjtcblxuLyoqIE5hbWVzcGFjZXMgYSBwYWNrYWdlLW93bmVkIHJ1bGUgdW5kZXIgdGhlIGBjb2RlcGVyZmVjdC9gIHByZWZpeC4gKi9cbnR5cGUgQ29kZXBlcmZlY3RSdWxlS2V5ID0gYGNvZGVwZXJmZWN0LyR7Q29kZXBlcmZlY3RSdWxlTmFtZX1gO1xuXG4vKiogRW51bWVyYXRlcyB0aGUgcGFja2FnZS1vd25lZCBydWxlIG5hbWVzLiAqL1xudHlwZSBDb2RlcGVyZmVjdFJ1bGVOYW1lID0ga2V5b2YgdHlwZW9mIGNvZGVwZXJmZWN0UnVsZXM7XG5cbi8qKiBSdWxlIG5hbWVzIGdyb3VwZWQgaW50byB0aGUgYXJjaGl0ZWN0dXJlIHByZXNldC4gKi9cbmNvbnN0IGFyY2hpdGVjdHVyZVJ1bGVOYW1lcyA9IFtcbiAgXCJiYXJyZWwtZmlsZXMtZXhwb3J0cy1vbmx5XCIsXG4gIFwiY29uc2lzdGVudC1iYXJyZWwtZmlsZXNcIixcbiAgXCJuby1pbXBvcnQtZXhwb3J0LWFsaWFzZXNcIixcbiAgXCJuby1pbXBvcnQtZXhwb3J0LWV4dGVuc2lvbnNcIixcbiAgXCJuby11bnVzZWQtZXhwb3J0c1wiLFxuICBcIm5vLXJlZXhwb3J0cy1vdXRzaWRlLWJhcnJlbHNcIixcbiAgXCJuby11bnVzZWQtcHVibGljLW1lbWJlcnNcIixcbl0gYXMgY29uc3Qgc2F0aXNmaWVzIHJlYWRvbmx5IENvZGVwZXJmZWN0UnVsZU5hbWVbXTtcblxuLyoqIFJ1bGUgbmFtZXMgZ3JvdXBlZCBpbnRvIHRoZSBjb3JlIHByZXNldC4gKi9cbmNvbnN0IGNvcmVSdWxlTmFtZXMgPSBbXG4gIFwibm8tbXVsdGlwbGUtZGVjbGFyYXRvcnNcIixcbiAgXCJuby11c2VsZXNzLWRlbGVnYXRpb25cIixcbiAgXCJwcmVmZXItaW50ZXJmYWNlLXR5cGVzXCIsXG5dIGFzIGNvbnN0IHNhdGlzZmllcyByZWFkb25seSBDb2RlcGVyZmVjdFJ1bGVOYW1lW107XG5cbi8qKiBSdWxlIG5hbWVzIGdyb3VwZWQgaW50byB0aGUgZG9jdW1lbnRhdGlvbiBwcmVzZXQuICovXG5jb25zdCBkb2N1bWVudGF0aW9uUnVsZU5hbWVzID0gW1xuICBcIm5vLWludGVyZmFjZS1tZW1iZXItZG9jc1wiLFxuICBcInJlcXVpcmUtZXhhbXBsZS1sYW5ndWFnZVwiLFxuICBcInNpbmdsZS1saW5lLWpzZG9jXCIsXG5dIGFzIGNvbnN0IHNhdGlzZmllcyByZWFkb25seSBDb2RlcGVyZmVjdFJ1bGVOYW1lW107XG5cbi8qKiBSdWxlIG5hbWVzIGdyb3VwZWQgaW50byB0aGUgQUFBLWZvY3VzZWQgcHJlc2V0LiAqL1xuY29uc3QgYWFhUnVsZU5hbWVzID0gW1xuICBcImVuZm9yY2UtYWFhLXN0cnVjdHVyZVwiLFxuXSBhcyBjb25zdCBzYXRpc2ZpZXMgcmVhZG9ubHkgQ29kZXBlcmZlY3RSdWxlTmFtZVtdO1xuXG4vKiogUnVsZSBuYW1lcyBncm91cGVkIGludG8gdGhlIGJyb2FkZXIgdGVzdGluZyBwcmVzZXQuICovXG5jb25zdCB0ZXN0aW5nUnVsZU5hbWVzID0gW1xuICBcImFzc2VydC1hY3R1YWwtZXhwZWN0ZWQtbmFtZXNcIixcbiAgXCJlbmZvcmNlLWFhYS1zdHJ1Y3R1cmVcIixcbiAgXCJwcmVmZXItdmktbW9ja2VkLWltcG9ydFwiLFxuICBcInJlcXVpcmUtYWN0LXJlc3VsdC1jYXB0dXJlXCIsXG4gIFwicmVxdWlyZS10ZXN0LWNvbXBhbmlvblwiLFxuICBcInNpbmdsZS1hY3Qtc3RhdGVtZW50XCIsXG5dIGFzIGNvbnN0IHNhdGlzZmllcyByZWFkb25seSBDb2RlcGVyZmVjdFJ1bGVOYW1lW107XG5cbi8qKiBSdWxlIG5hbWVzIHVzZWQgYnkgdGhlIGFsbC1ydWxlcyBwcmVzZXQuICovXG5jb25zdCBhbGxSdWxlTmFtZXMgPSBbXG4gIFwiYXNzZXJ0LWFjdHVhbC1leHBlY3RlZC1uYW1lc1wiLFxuICBcImJhcnJlbC1maWxlcy1leHBvcnRzLW9ubHlcIixcbiAgXCJjb25zaXN0ZW50LWJhcnJlbC1maWxlc1wiLFxuICBcImVuZm9yY2UtYWFhLXN0cnVjdHVyZVwiLFxuICBcIm5vLWltcG9ydC1leHBvcnQtYWxpYXNlc1wiLFxuICBcIm5vLWltcG9ydC1leHBvcnQtZXh0ZW5zaW9uc1wiLFxuICBcIm5vLWludGVyZmFjZS1tZW1iZXItZG9jc1wiLFxuICBcIm5vLW11bHRpcGxlLWRlY2xhcmF0b3JzXCIsXG4gIFwibm8tdXNlbGVzcy1kZWxlZ2F0aW9uXCIsXG4gIFwibm8tcmVleHBvcnRzLW91dHNpZGUtYmFycmVsc1wiLFxuICBcIm5vLXVudXNlZC1leHBvcnRzXCIsXG4gIFwibm8tdW51c2VkLXB1YmxpYy1tZW1iZXJzXCIsXG4gIFwicHJlZmVyLWludGVyZmFjZS10eXBlc1wiLFxuICBcInByZWZlci12aS1tb2NrZWQtaW1wb3J0XCIsXG4gIFwicmVxdWlyZS1hY3QtcmVzdWx0LWNhcHR1cmVcIixcbiAgXCJyZXF1aXJlLWV4YW1wbGUtbGFuZ3VhZ2VcIixcbiAgXCJyZXF1aXJlLXRlc3QtY29tcGFuaW9uXCIsXG4gIFwic2luZ2xlLWFjdC1zdGF0ZW1lbnRcIixcbiAgXCJzaW5nbGUtbGluZS1qc2RvY1wiLFxuXSBhcyBjb25zdCBzYXRpc2ZpZXMgcmVhZG9ubHkgQ29kZXBlcmZlY3RSdWxlTmFtZVtdO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBwcmVzZXQgZm9yIHRoZSBwcm92aWRlZCBydWxlIG5hbWVzLlxuICogQHBhcmFtIHJ1bGVOYW1lcyBSdWxlIG5hbWVzIHRvIGVuYWJsZS5cbiAqIEByZXR1cm5zIEVTTGludCBwcmVzZXQgY29udGFpbmluZyB0aGUgcGFja2FnZSBwbHVnaW4gYW5kIGVuYWJsZWQgcnVsZXMuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgcHJlc2V0ID0gY3JlYXRlUHJlc2V0KFtcIm5vLW11bHRpcGxlLWRlY2xhcmF0b3JzXCJdKTtcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBjcmVhdGVQcmVzZXQoXG4gIHJ1bGVOYW1lczogcmVhZG9ubHkgQ29kZXBlcmZlY3RSdWxlTmFtZVtdLFxuKTogQ29kZXBlcmZlY3RQcmVzZXQge1xuICByZXR1cm4ge1xuICAgIHBsdWdpbnM6IHsgY29kZXBlcmZlY3Q6IGNvZGVwZXJmZWN0UGx1Z2luIH0sXG4gICAgcnVsZXM6IGNyZWF0ZVJ1bGVzKHJ1bGVOYW1lcyksXG4gIH07XG59XG5cbi8qKlxuICogQ3JlYXRlcyB0aGUgcnVsZSBlbnRyeSBtYXAgZm9yIGEgcHJlc2V0LlxuICogQHBhcmFtIHJ1bGVOYW1lcyBSdWxlIG5hbWVzIHRvIGVuYWJsZS5cbiAqIEByZXR1cm5zIFJ1bGUgZW50cnkgbWFwIGtleWVkIGJ5IGBjb2RlcGVyZmVjdC9gIHJ1bGUgbmFtZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBydWxlcyA9IGNyZWF0ZVJ1bGVzKFtcInByZWZlci1pbnRlcmZhY2UtdHlwZXNcIl0pO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZVJ1bGVzKFxuICBydWxlTmFtZXM6IHJlYWRvbmx5IENvZGVwZXJmZWN0UnVsZU5hbWVbXSxcbik6IENvZGVwZXJmZWN0UnVsZUVudHJpZXMge1xuICByZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgIHJ1bGVOYW1lcy5tYXAoKHJ1bGVOYW1lKSA9PiBbYGNvZGVwZXJmZWN0LyR7cnVsZU5hbWV9YCwgXCJlcnJvclwiXSksXG4gICk7XG59XG5cbi8qKiBQcmVzZXQgdGhhdCBlbmFibGVzIGV2ZXJ5IHBhY2thZ2Utb3duZWQgcnVsZS4gKi9cbmNvbnN0IGFsbCA9IGNyZWF0ZVByZXNldChhbGxSdWxlTmFtZXMpO1xuXG4vKiogUHJlc2V0IHRoYXQgZW5hYmxlcyBhcmNoaXRlY3R1cmUtZm9jdXNlZCBydWxlcy4gKi9cbmNvbnN0IGFyY2hpdGVjdHVyZSA9IGNyZWF0ZVByZXNldChhcmNoaXRlY3R1cmVSdWxlTmFtZXMpO1xuXG4vKiogUHJlc2V0IHRoYXQgZW5hYmxlcyBjb3JlIHJ1bGVzLiAqL1xuY29uc3QgY29yZSA9IGNyZWF0ZVByZXNldChjb3JlUnVsZU5hbWVzKTtcblxuLyoqIFByZXNldCB0aGF0IGVuYWJsZXMgZG9jdW1lbnRhdGlvbiBydWxlcy4gKi9cbmNvbnN0IGRvY3VtZW50YXRpb24gPSBjcmVhdGVQcmVzZXQoZG9jdW1lbnRhdGlvblJ1bGVOYW1lcyk7XG5cbi8qKiBQcmVzZXQgdGhhdCBlbmFibGVzIHRlc3RpbmcgcnVsZXMuICovXG5jb25zdCB0ZXN0aW5nID0gY3JlYXRlUHJlc2V0KHRlc3RpbmdSdWxlTmFtZXMpO1xuXG4vKiogUHJlc2V0IHRoYXQgZW5hYmxlcyBBQUEtc3BlY2lmaWMgdGVzdGluZyBydWxlcy4gKi9cbmNvbnN0IGFhYSA9IGNyZWF0ZVByZXNldChhYWFSdWxlTmFtZXMpO1xuXG5leHBvcnQgeyBhYWEsIGFsbCwgYXJjaGl0ZWN0dXJlLCBjb3JlLCBkb2N1bWVudGF0aW9uLCB0ZXN0aW5nIH07XG5leHBvcnQgdHlwZSB7IENvZGVwZXJmZWN0UHJlc2V0IH07XG4iXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codeperfect/eslint-plugin",
3
- "version": "2.11.0",
3
+ "version": "3.1.0",
4
4
  "description": "Custom ESLint rules for TypeScript repositories",
5
5
  "license": "MIT",
6
6
  "repository": "github:parloti/eslint-plugin",
@@ -37,8 +37,7 @@
37
37
  "\n# ---------------- LINTING ---------------- #": "",
38
38
  "\n • ------------ checking ------------ •": "",
39
39
  "eslint": "npx --yes eslint --max-warnings=0",
40
- "lint": "npm run lint:run",
41
- "lint:run": "npx --yes tsx scripts/managed-tasks.ts lint:run",
40
+ "lint": "npx --yes tsx scripts/managed-tasks.ts lint",
42
41
  "prettier": "npx --yes prettier --ignore-unknown --check .",
43
42
  "\n • ------------- fixing ------------- •": "",
44
43
  "eslint:fix": "npx --yes tsx scripts/managed-tasks.ts eslint:fix",
@@ -75,13 +74,13 @@
75
74
  "nodejs"
76
75
  ],
77
76
  "dependencies": {
78
- "@typescript-eslint/utils": "^8.70.0",
77
+ "@typescript-eslint/utils": "^8.72.0",
79
78
  "minimatch": "^10.2.6"
80
79
  },
81
80
  "devDependencies": {
82
81
  "@codeperfect/commitlint-config-emoji": "^1.1.0",
83
- "@codeperfect/eslint-config": "^1.18.0",
84
- "@commitlint/cz-commitlint": "^21.2.3",
82
+ "@codeperfect/eslint-config": "^2.1.0",
83
+ "@commitlint/cz-commitlint": "^21.2.4",
85
84
  "@eslint-community/eslint-plugin-eslint-comments": "^4.8.1",
86
85
  "@eslint/js": "^10.0.1",
87
86
  "@stryker-mutator/core": "^10.0.0",
@@ -89,43 +88,43 @@
89
88
  "@stryker-mutator/vitest-runner": "^10.0.0",
90
89
  "@stylistic/eslint-plugin": "^5.10.0",
91
90
  "@types/lodash-es": "^4.17.12",
92
- "@types/node": "^26.6.2",
93
- "@typescript-eslint/rule-tester": "^8.70.0",
94
- "@vitest/coverage-v8": "^4.1.11",
91
+ "@types/node": "^26.6.5",
92
+ "@typescript-eslint/rule-tester": "^8.72.0",
93
+ "@vitest/coverage-v8": "^4.1.12",
95
94
  "@vitest/eslint-plugin": "^1.6.27",
96
- "chalk": "^6.0.0",
97
- "concurrently": "^10.0.5",
98
- "eslint": "^10.11.0",
95
+ "chalk": "^6.0.1",
96
+ "concurrently": "^10.0.6",
97
+ "eslint": "^10.13.0",
99
98
  "eslint-config-prettier": "^10.1.8",
100
99
  "eslint-import-resolver-typescript": "^4.4.5",
101
- "eslint-plugin-boundaries": "^7.2.0",
100
+ "eslint-plugin-boundaries": "^7.2.1",
102
101
  "eslint-plugin-eslint-plugin": "^7.6.2",
103
102
  "eslint-plugin-import-x": "^4.17.1",
104
103
  "eslint-plugin-jasmine": "^4.2.2",
105
- "eslint-plugin-jest": "^29.16.6",
106
- "eslint-plugin-jsdoc": "^64.5.4",
107
- "eslint-plugin-perfectionist": "^5.11.1",
108
- "eslint-plugin-prettier": "^5.5.6",
104
+ "eslint-plugin-jest": "^29.17.0",
105
+ "eslint-plugin-jsdoc": "^65.4.0",
106
+ "eslint-plugin-perfectionist": "^5.13.0",
107
+ "eslint-plugin-prettier": "^5.5.7",
109
108
  "eslint-plugin-rxjs-x": "^1.0.6",
110
- "eslint-plugin-unicorn": "^74.0.0",
111
- "globals": "^17.12.0",
109
+ "eslint-plugin-unicorn": "^78.0.0",
110
+ "globals": "^17.13.0",
112
111
  "husky": "^9.1.7",
113
112
  "jiti": "^2.7.0",
114
- "lint-staged": "^17.5.1",
115
- "listr2": "^11.1.0",
113
+ "lint-staged": "^17.6.0",
114
+ "listr2": "^11.4.0",
116
115
  "lodash-es": "^4.18.1",
117
116
  "patch-package": "^8.0.1",
118
- "prettier": "^3.9.8",
117
+ "prettier": "^3.9.10",
119
118
  "rimraf": "^6.1.3",
120
119
  "semantic-release": "^25.0.9",
121
- "tsc-alias": "^1.9.5",
120
+ "tsc-alias": "^1.9.8",
122
121
  "typedoc": "^0.28.20",
123
- "typedoc-plugin-markdown": "^4.13.1",
122
+ "typedoc-plugin-markdown": "^4.14.1",
124
123
  "typescript": "^6.0.3",
125
- "typescript-eslint": "^8.70.0",
126
- "vitest": "^4.1.11"
124
+ "typescript-eslint": "^8.72.0",
125
+ "vitest": "^4.1.12"
127
126
  },
128
127
  "peerDependencies": {
129
- "eslint": ">=10.11.0"
128
+ "eslint": ">=10.13.0"
130
129
  }
131
130
  }
@@ -1,2 +0,0 @@
1
- export { noUnsafeVitestMockFactoryCastRule } from "./rule.js";
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/no-unsafe-vitest-mock-factory-cast/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iCAAiC,EAAE,MAAM,QAAQ,CAAC"}
@@ -1,2 +0,0 @@
1
- export { noUnsafeVitestMockFactoryCastRule } from "./rule.js";
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3Rpbmcvbm8tdW5zYWZlLXZpdGVzdC1tb2NrLWZhY3RvcnktY2FzdC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBub1Vuc2FmZVZpdGVzdE1vY2tGYWN0b3J5Q2FzdFJ1bGUgfSBmcm9tIFwiLi9ydWxlXCI7XG4iXX0=
@@ -1,29 +0,0 @@
1
- import { type TSESTree } from "@typescript-eslint/utils";
2
- /** Unsafe mock-factory match details. */
3
- interface MockFactoryMatch {
4
- /** Whether the match can be safely autofixed. */
5
- canAutofix: boolean;
6
- /** Cast-free partial mock expression. */
7
- mockExpression: TSESTree.Expression;
8
- /** Second argument to the Vitest mock call. */
9
- mockFactoryNode: TSESTree.ArrowFunctionExpression | TSESTree.FunctionExpression;
10
- /** First argument to the Vitest mock call. */
11
- mockSpecifierNode: TSESTree.Expression;
12
- /** Mocked module specifier. */
13
- moduleSpecifier: string;
14
- /** Report node. */
15
- node: TSESTree.Node;
16
- }
17
- /**
18
- * Collects the most appropriate mock-factory match from a `CallExpression`.
19
- * @param node Call expression to inspect.
20
- * @returns Unsafe mock factory details when the factory uses a cast.
21
- * @example
22
- * ```ts
23
- * // Internal helper for no-unsafe-vitest-mock-factory-cast.
24
- * ```
25
- */
26
- declare function getMockFactoryMatch(node: TSESTree.CallExpression): MockFactoryMatch | undefined;
27
- export type { MockFactoryMatch };
28
- export { getMockFactoryMatch };
29
- //# sourceMappingURL=rule-detection.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rule-detection.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-detection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEzE,yCAAyC;AACzC,UAAU,gBAAgB;IACxB,iDAAiD;IACjD,UAAU,EAAE,OAAO,CAAC;IAEpB,yCAAyC;IACzC,cAAc,EAAE,QAAQ,CAAC,UAAU,CAAC;IAEpC,+CAA+C;IAC/C,eAAe,EACb,QAAQ,CAAC,uBAAuB,GAAG,QAAQ,CAAC,kBAAkB,CAAC;IAEjE,8CAA8C;IAC9C,iBAAiB,EAAE,QAAQ,CAAC,UAAU,CAAC;IAEvC,+BAA+B;IAC/B,eAAe,EAAE,MAAM,CAAC;IAExB,mBAAmB;IACnB,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;CACrB;AAiHD;;;;;;;;GAQG;AACH,iBAAS,mBAAmB,CAC1B,IAAI,EAAE,QAAQ,CAAC,cAAc,GAC5B,gBAAgB,GAAG,SAAS,CA6C9B;AAoGD,YAAY,EAAE,gBAAgB,EAAE,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
@@ -1,200 +0,0 @@
1
- import { AST_NODE_TYPES } from "@typescript-eslint/utils";
2
- /** Supported `vi` mock method names. */
3
- const supportedMockNames = new Set(["doMock", "mock"]);
4
- /**
5
- * Returns the casted expression only when the factory is safe to autofix.
6
- * @param node Factory expression to inspect.
7
- * @returns Cast-free expression when the factory can be safely replaced.
8
- * @example
9
- * ```ts
10
- * // Internal helper for no-unsafe-vitest-mock-factory-cast.
11
- * ```
12
- */
13
- function getAutofixableMockExpression(node) {
14
- if (node.type === AST_NODE_TYPES.ArrowFunctionExpression) {
15
- if (node.async || node.params.length > 0) {
16
- return void 0;
17
- }
18
- if (node.body.type === AST_NODE_TYPES.BlockStatement) {
19
- return getAutofixableReturnedCastedExpression(node.body.body);
20
- }
21
- return getCastedExpression(node.body);
22
- }
23
- if (node.async || node.generator || node.params.length > 0) {
24
- return void 0;
25
- }
26
- return getAutofixableReturnedCastedExpression(node.body.body);
27
- }
28
- /**
29
- * Finds a casted return value from a single-return factory body.
30
- * @param statements Function body statements.
31
- * @returns Returned expression when the factory has exactly one return statement.
32
- * @example
33
- * ```ts
34
- * // Internal helper for no-unsafe-vitest-mock-factory-cast.
35
- * ```
36
- */
37
- function getAutofixableReturnedCastedExpression(statements) {
38
- if (statements.length !== 1) {
39
- return void 0;
40
- }
41
- const [statement] = statements;
42
- if (statement.argument === null) {
43
- return void 0;
44
- }
45
- return getCastedExpression(statement.argument);
46
- }
47
- /**
48
- * Returns the inner expression if the input is a cast expression.
49
- * @param expression Expression to inspect.
50
- * @returns Inner expression when the input contains a cast.
51
- * @example
52
- * ```ts
53
- * // Internal helper for no-unsafe-vitest-mock-factory-cast.
54
- * ```
55
- */
56
- function getCastedExpression(expression) {
57
- if (expression.type === AST_NODE_TYPES.TSAsExpression) {
58
- return stripCastExpressions(expression.expression);
59
- }
60
- if (expression.type === AST_NODE_TYPES.TSTypeAssertion) {
61
- const innerExpression = expression.expression;
62
- return stripCastExpressions(innerExpression);
63
- }
64
- return void 0;
65
- }
66
- /**
67
- * Returns the partial mock expression after removing a cast wrapper.
68
- * @param node Factory expression to inspect.
69
- * @returns Cast-free expression when the factory is unsafe.
70
- * @example
71
- * ```ts
72
- * // Internal helper for no-unsafe-vitest-mock-factory-cast.
73
- * ```
74
- */
75
- function getCastedMockExpression(node) {
76
- if (node.type === AST_NODE_TYPES.ArrowFunctionExpression) {
77
- if (node.body.type === AST_NODE_TYPES.BlockStatement) {
78
- return getReturnedCastedExpression(node.body.body);
79
- }
80
- return getCastedExpression(node.body);
81
- }
82
- return getReturnedCastedExpression(node.body.body);
83
- }
84
- /**
85
- * Collects the most appropriate mock-factory match from a `CallExpression`.
86
- * @param node Call expression to inspect.
87
- * @returns Unsafe mock factory details when the factory uses a cast.
88
- * @example
89
- * ```ts
90
- * // Internal helper for no-unsafe-vitest-mock-factory-cast.
91
- * ```
92
- */
93
- function getMockFactoryMatch(node) {
94
- if (!isVitestMockCall(node) || node.arguments.length < 2) {
95
- return void 0;
96
- }
97
- const [mockSpecifierNode, mockFactoryNode] = node.arguments;
98
- if (mockSpecifierNode.type === AST_NODE_TYPES.SpreadElement ||
99
- mockFactoryNode.type === AST_NODE_TYPES.SpreadElement) {
100
- return void 0;
101
- }
102
- if (mockFactoryNode.type !== AST_NODE_TYPES.ArrowFunctionExpression &&
103
- mockFactoryNode.type !== AST_NODE_TYPES.FunctionExpression) {
104
- return void 0;
105
- }
106
- const moduleSpecifier = getModuleSpecifier(mockSpecifierNode);
107
- if (moduleSpecifier === void 0) {
108
- return void 0;
109
- }
110
- const mockExpression = getCastedMockExpression(mockFactoryNode);
111
- if (mockExpression === void 0) {
112
- return void 0;
113
- }
114
- const autofixableExpression = getAutofixableMockExpression(mockFactoryNode);
115
- return {
116
- canAutofix: autofixableExpression !== void 0,
117
- mockExpression: autofixableExpression ?? mockExpression,
118
- mockFactoryNode,
119
- mockSpecifierNode,
120
- moduleSpecifier,
121
- node,
122
- };
123
- }
124
- /**
125
- * Extracts a string module specifier from the first mock argument.
126
- * @param node First mock argument.
127
- * @returns Module specifier when statically known.
128
- * @example
129
- * ```ts
130
- * // Internal helper for no-unsafe-vitest-mock-factory-cast.
131
- * ```
132
- */
133
- function getModuleSpecifier(node) {
134
- if (node.type === AST_NODE_TYPES.Literal && typeof node.value === "string") {
135
- return node.value;
136
- }
137
- if (node.type === AST_NODE_TYPES.ImportExpression &&
138
- node.source.type === AST_NODE_TYPES.Literal &&
139
- typeof node.source.value === "string") {
140
- return node.source.value;
141
- }
142
- return void 0;
143
- }
144
- /**
145
- * Finds the casted return value inside a function body.
146
- * @param statements Function body statements.
147
- * @returns Returned expression when it is casted.
148
- * @example
149
- * ```ts
150
- * // Internal helper for no-unsafe-vitest-mock-factory-cast.
151
- * ```
152
- */
153
- function getReturnedCastedExpression(statements) {
154
- for (const statement of statements) {
155
- if (statement.type !== AST_NODE_TYPES.ReturnStatement) {
156
- continue;
157
- }
158
- return statement.argument === null
159
- ? void 0
160
- : getCastedExpression(statement.argument);
161
- }
162
- return void 0;
163
- }
164
- /**
165
- * Checks whether a call targets `vi.mock` or `vi.doMock`.
166
- * @param node Call expression to inspect.
167
- * @returns True when the callee is a supported Vitest mock method.
168
- * @example
169
- * ```ts
170
- * // Internal helper for no-unsafe-vitest-mock-factory-cast.
171
- * ```
172
- */
173
- function isVitestMockCall(node) {
174
- if (node.callee.type !== AST_NODE_TYPES.MemberExpression ||
175
- node.callee.object.type !== AST_NODE_TYPES.Identifier ||
176
- node.callee.object.name !== "vi" ||
177
- node.callee.property.type !== AST_NODE_TYPES.Identifier) {
178
- return false;
179
- }
180
- return supportedMockNames.has(node.callee.property.name);
181
- }
182
- /**
183
- * Removes nested cast wrappers from an expression.
184
- * @param expression Expression to normalize.
185
- * @returns Expression without any surrounding casts.
186
- * @example
187
- * ```ts
188
- * // Internal helper for no-unsafe-vitest-mock-factory-cast.
189
- * ```
190
- */
191
- function stripCastExpressions(expression) {
192
- let currentExpression = expression;
193
- while (currentExpression.type === AST_NODE_TYPES.TSAsExpression ||
194
- currentExpression.type === AST_NODE_TYPES.TSTypeAssertion) {
195
- currentExpression = currentExpression.expression;
196
- }
197
- return currentExpression;
198
- }
199
- export { getMockFactoryMatch };
200
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS1kZXRlY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3Rpbmcvbm8tdW5zYWZlLXZpdGVzdC1tb2NrLWZhY3RvcnktY2FzdC9ydWxlLWRldGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFpQixNQUFNLDBCQUEwQixDQUFDO0FBd0J6RSx3Q0FBd0M7QUFDeEMsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBUXZEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyw0QkFBNEIsQ0FDbkMsSUFBb0U7SUFFcEUsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLGNBQWMsQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1FBQ3pELElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN6QyxPQUFPLEtBQUssQ0FBQyxDQUFDO1FBQ2hCLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLGNBQWMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNyRCxPQUFPLHNDQUFzQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEUsQ0FBQztRQUVELE9BQU8sbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUMzRCxPQUFPLEtBQUssQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxPQUFPLHNDQUFzQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFD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LE9BQU8sS0FBSyxDQUFDLENBQUM7QUFDaEIsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxnQkFBZ0IsQ0FBQyxJQUE2QjtJQUNyRCxJQUNFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLGNBQWMsQ0FBQyxnQkFBZ0I7UUFDcEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLGNBQWMsQ0FBQyxVQUFVO1FBQ3JELElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxJQUFJO1FBQ2hDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxjQUFjLENBQUMsVUFBVSxFQUN2RCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsT0FBTyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDM0QsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxvQkFBb0IsQ0FDM0IsVUFBK0I7SUFFL0IsSUFBSSxpQkFBaUIsR0FBRyxVQUFVLENBQUM7SUFFbkMsT0FDRSxpQkFBaUIsQ0FBQyxJQUFJLEtBQUssY0FBYyxDQUFDLGNBQWM7UUFDeEQsaUJBQWlCLENBQUMsSUFBSSxLQUFLLGNBQWMsQ0FBQyxlQUFlLEVBQ3pELENBQUM7UUFDRCxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQyxVQUFVLENBQUM7SUFDbkQsQ0FBQztJQUVELE9BQU8saUJBQWlCLENBQUM7QUFDM0IsQ0FBQztBQUdELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVNUX05PREVfVFlQRVMsIHR5cGUgVFNFU1RyZWUgfSBmcm9tIFwiQHR5cGVzY3JpcHQtZXNsaW50L3V0aWxzXCI7XG5cbi8qKiBVbnNhZmUgbW9jay1mYWN0b3J5IG1hdGNoIGRldGFpbHMuICovXG5pbnRlcmZhY2UgTW9ja0ZhY3RvcnlNYXRjaCB7XG4gIC8qKiBXaGV0aGVyIHRoZSBtYXRjaCBjYW4gYmUgc2FmZWx5IGF1dG9maXhlZC4gKi9cbiAgY2FuQXV0b2ZpeDogYm9vbGVhbjtcblxuICAvKiogQ2FzdC1mcmVlIHBhcnRpYWwgbW9jayBleHByZXNzaW9uLiAqL1xuICBtb2NrRXhwcmVzc2lvbjogVFNFU1RyZWUuRXhwcmVzc2lvbjtcblxuICAvKiogU2Vjb25kIGFyZ3VtZW50IHRvIHRoZSBWaXRlc3QgbW9jayBjYWxsLiAqL1xuICBtb2NrRmFjdG9yeU5vZGU6XG4gICAgVFNFU1RyZWUuQXJyb3dGdW5jdGlvbkV4cHJlc3Npb24gfCBUU0VTVHJlZS5GdW5jdGlvbkV4cHJlc3Npb247XG5cbiAgLyoqIEZpcnN0IGFyZ3VtZW50IHRvIHRoZSBWaXRlc3QgbW9jayBjYWxsLiAqL1xuICBtb2NrU3BlY2lmaWVyTm9kZTogVFNFU1RyZWUuRXhwcmVzc2lvbjtcblxuICAvKiogTW9ja2VkIG1vZHVsZSBzcGVjaWZpZXIuICovXG4gIG1vZHVsZVNwZWNpZmllcjogc3RyaW5nO1xuXG4gIC8qKiBSZXBvcnQgbm9kZS4gKi9cbiAgbm9kZTogVFNFU1RyZWUuTm9kZTtcbn1cblxuLyoqIFN1cHBvcnRlZCBgdmlgIG1vY2sgbWV0aG9kIG5hbWVzLiAqL1xuY29uc3Qgc3VwcG9ydGVkTW9ja05hbWVzID0gbmV3IFNldChbXCJkb01vY2tcIiwgXCJtb2NrXCJdKTtcblxuLyoqIENhbGxFeHByZXNzaW9uIGFyZ3VtZW50IHRoYXQgaXMgbm90IGEgc3ByZWFkIGVsZW1lbnQuICovXG50eXBlIE5vblNwcmVhZENhbGxFeHByZXNzaW9uQXJndW1lbnQgPSBFeGNsdWRlPFxuICBUU0VTVHJlZS5DYWxsRXhwcmVzc2lvbkFyZ3VtZW50LFxuICBUU0VTVHJlZS5TcHJlYWRFbGVtZW50XG4+O1xuXG4vKipcbiAqIFJldHVybnMgdGhlIGNhc3RlZCBleHByZXNzaW9uIG9ubHkgd2hlbiB0aGUgZmFjdG9yeSBpcyBzYWZlIHRvIGF1dG9maXguXG4gKiBAcGFyYW0gbm9kZSBGYWN0b3J5IGV4cHJlc3Npb24gdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIENhc3QtZnJlZSBleHByZXNzaW9uIHdoZW4gdGhlIGZhY3RvcnkgY2FuIGJlIHNhZmVseSByZXBsYWNlZC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogLy8gSW50ZXJuYWwgaGVscGVyIGZvciBuby11bnNhZmUtdml0ZXN0LW1vY2stZmFjdG9yeS1jYXN0LlxuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGdldEF1dG9maXhhYmxlTW9ja0V4cHJlc3Npb24oXG4gIG5vZGU6IFRTRVNUcmVlLkFycm93RnVuY3Rpb25FeHByZXNzaW9uIHwgVFNFU1RyZWUuRnVuY3Rpb25FeHByZXNzaW9uLFxuKTogVFNFU1RyZWUuRXhwcmVzc2lvbiB8IHVuZGVmaW5lZCB7XG4gIGlmIChub2RlLnR5cGUgPT09IEFTVF9OT0RFX1RZUEVTLkFycm93RnVuY3Rpb25FeHByZXNzaW9uKSB7XG4gICAgaWYgKG5vZGUuYXN5bmMgfHwgbm9kZS5wYXJhbXMubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICB9XG5cbiAgICBpZiAobm9kZS5ib2R5LnR5cGUgPT09IEFTVF9OT0RFX1RZUEVTLkJsb2NrU3RhdGVtZW50KSB7XG4gICAgICByZXR1cm4gZ2V0QXV0b2ZpeGFibGVSZXR1cm5lZENhc3RlZEV4cHJlc3Npb24obm9kZS5ib2R5LmJvZHkpO1xuICAgIH1cblxuICAgIHJldHVybiBnZXRDYXN0ZWRFeHByZXNzaW9uKG5vZGUuYm9keSk7XG4gIH1cblxuICBpZiAobm9kZS5hc3luYyB8fCBub2RlLmdlbmVyYXRvciB8fCBub2RlLnBhcmFtcy5sZW5ndGggPiAwKSB7XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuXG4gIHJldHVybiBnZXRBdXRvZml4YWJsZVJldHVybmVkQ2FzdGVkRXhwcmVzc2lvbihub2RlLmJvZHkuYm9keSk7XG59XG5cbi8qKlxuICogRmluZHMgYSBjYXN0ZWQgcmV0dXJuIHZhbHVlIGZyb20gYSBzaW5nbGUtcmV0dXJuIGZhY3RvcnkgYm9keS5cbiAqIEBwYXJhbSBzdGF0ZW1lbnRzIEZ1bmN0aW9uIGJvZHkgc3RhdGVtZW50cy5cbiAqIEByZXR1cm5zIFJldHVybmVkIGV4cHJlc3Npb24gd2hlbiB0aGUgZmFjdG9yeSBoYXMgZXhhY3RseSBvbmUgcmV0dXJuIHN0YXRlbWVudC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogLy8gSW50ZXJuYWwgaGVscGVyIGZvciBuby11bnNhZmUtdml0ZXN0LW1vY2stZmFjdG9yeS1jYXN0LlxuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGdldEF1dG9maXhhYmxlUmV0dXJuZWRDYXN0ZWRFeHByZXNzaW9uKFxuICBzdGF0ZW1lbnRzOiBUU0VTVHJlZS5TdGF0ZW1lbnRbXSxcbik6IFRTRVNUcmVlLkV4cHJlc3Npb24gfCB1bmRlZmluZWQge1xuICBpZiAoc3RhdGVtZW50cy5sZW5ndGggIT09IDEpIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG5cbiAgY29uc3QgW3N0YXRlbWVudF0gPSBzdGF0ZW1lbnRzIGFzIFtUU0VTVHJlZS5SZXR1cm5TdGF0ZW1lbnRdO1xuICBpZiAoc3RhdGVtZW50LmFyZ3VtZW50ID09PSBudWxsKSB7XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuXG4gIHJldHVybiBnZXRDYXN0ZWRFeHByZXNzaW9uKHN0YXRlbWVudC5hcmd1bWVudCk7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgaW5uZXIgZXhwcmVzc2lvbiBpZiB0aGUgaW5wdXQgaXMgYSBjYXN0IGV4cHJlc3Npb24uXG4gKiBAcGFyYW0gZXhwcmVzc2lvbiBFeHByZXNzaW9uIHRvIGluc3BlY3QuXG4gKiBAcmV0dXJucyBJbm5lciBleHByZXNzaW9uIHdoZW4gdGhlIGlucHV0IGNvbnRhaW5zIGEgY2FzdC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogLy8gSW50ZXJuYWwgaGVscGVyIGZvciBuby11bnNhZmUtdml0ZXN0LW1vY2stZmFjdG9yeS1jYXN0LlxuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGdldENhc3RlZEV4cHJlc3Npb24oXG4gIGV4cHJlc3Npb246IFRTRVNUcmVlLkV4cHJlc3Npb24sXG4pOiBUU0VTVHJlZS5FeHByZXNzaW9uIHwgdW5kZWZpbmVkIHtcbiAgaWYgKGV4cHJlc3Npb24udHlwZSA9PT0gQVNUX05PREVfVFlQRVMuVFNBc0V4cHJlc3Npb24pIHtcbiAgICByZXR1cm4gc3RyaXBDYXN0RXhwcmVzc2lvbnMoZXhwcmVzc2lvbi5leHByZXNzaW9uKTtcbiAgfVxuXG4gIGlmIChleHByZXNzaW9uLnR5cGUgPT09IEFTVF9OT0RFX1RZUEVTLlRTVHlwZUFzc2VydGlvbikge1xuICAgIGNvbnN0IGlubmVyRXhwcmVzc2lvbiA9IGV4cHJlc3Npb24uZXhwcmVzc2lvbjtcbiAgICByZXR1cm4gc3RyaXBDYXN0RXhwcmVzc2lvbnMoaW5uZXJFeHByZXNzaW9uKTtcbiAgfVxuXG4gIHJldHVybiB2b2lkIDA7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgcGFydGlhbCBtb2NrIGV4cHJlc3Npb24gYWZ0ZXIgcmVtb3ZpbmcgYSBjYXN0IHdyYXBwZXIuXG4gKiBAcGFyYW0gbm9kZSBGYWN0b3J5IGV4cHJlc3Npb24gdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIENhc3QtZnJlZSBleHByZXNzaW9uIHdoZW4gdGhlIGZhY3RvcnkgaXMgdW5zYWZlLlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiAvLyBJbnRlcm5hbCBoZWxwZXIgZm9yIG5vLXVuc2FmZS12aXRlc3QtbW9jay1mYWN0b3J5LWNhc3QuXG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gZ2V0Q2FzdGVkTW9ja0V4cHJlc3Npb24oXG4gIG5vZGU6IFRTRVNUcmVlLkFycm93RnVuY3Rpb25FeHByZXNzaW9uIHwgVFNFU1RyZWUuRnVuY3Rpb25FeHByZXNzaW9uLFxuKTogVFNFU1RyZWUuRXhwcmVzc2lvbiB8IHVuZGVmaW5lZCB7XG4gIGlmIChub2RlLnR5cGUgPT09IEFTVF9OT0RFX1RZUEVTLkFycm93RnVuY3Rpb25FeHByZXNzaW9uKSB7XG4gICAgaWYgKG5vZGUuYm9keS50eXBlID09PSBBU1RfTk9ERV9UWVBFUy5CbG9ja1N0YXRlbWVudCkge1xuICAgICAgcmV0dXJuIGdldFJldHVybmVkQ2FzdGVkRXhwcmVzc2lvbihub2RlLmJvZHkuYm9keSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGdldENhc3RlZEV4cHJlc3Npb24obm9kZS5ib2R5KTtcbiAgfVxuXG4gIHJldHVybiBnZXRSZXR1cm5lZENhc3RlZEV4cHJlc3Npb24obm9kZS5ib2R5LmJvZHkpO1xufVxuXG4vKipcbiAqIENvbGxlY3RzIHRoZSBtb3N0IGFwcHJvcHJpYXRlIG1vY2stZmFjdG9yeSBtYXRjaCBmcm9tIGEgYENhbGxFeHByZXNzaW9uYC5cbiAqIEBwYXJhbSBub2RlIENhbGwgZXhwcmVzc2lvbiB0byBpbnNwZWN0LlxuICogQHJldHVybnMgVW5zYWZlIG1vY2sgZmFjdG9yeSBkZXRhaWxzIHdoZW4gdGhlIGZhY3RvcnkgdXNlcyBhIGNhc3QuXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIC8vIEludGVybmFsIGhlbHBlciBmb3Igbm8tdW5zYWZlLXZpdGVzdC1tb2NrLWZhY3RvcnktY2FzdC5cbiAqIGBgYFxuICovXG5mdW5jdGlvbiBnZXRNb2NrRmFjdG9yeU1hdGNoKFxuICBub2RlOiBUU0VTVHJlZS5DYWxsRXhwcmVzc2lvbixcbik6IE1vY2tGYWN0b3J5TWF0Y2ggfCB1bmRlZmluZWQge1xuICBpZiAoIWlzVml0ZXN0TW9ja0NhbGwobm9kZSkgfHwgbm9kZS5hcmd1bWVudHMubGVuZ3RoIDwgMikge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cblxuICBjb25zdCBbbW9ja1NwZWNpZmllck5vZGUsIG1vY2tGYWN0b3J5Tm9kZV0gPSBub2RlLmFyZ3VtZW50cyBhcyBbXG4gICAgVFNFU1RyZWUuQ2FsbEV4cHJlc3Npb25Bcmd1bWVudCxcbiAgICBUU0VTVHJlZS5DYWxsRXhwcmVzc2lvbkFyZ3VtZW50LFxuICAgIC4uLlRTRVNUcmVlLkNhbGxFeHByZXNzaW9uQXJndW1lbnRbXSxcbiAgXTtcblxuICBpZiAoXG4gICAgbW9ja1NwZWNpZmllck5vZGUudHlwZSA9PT0gQVNUX05PREVfVFlQRVMuU3ByZWFkRWxlbWVudCB8fFxuICAgIG1vY2tGYWN0b3J5Tm9kZS50eXBlID09PSBBU1RfTk9ERV9UWVBFUy5TcHJlYWRFbGVtZW50XG4gICkge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cblxuICBpZiAoXG4gICAgbW9ja0ZhY3RvcnlOb2RlLnR5cGUgIT09IEFTVF9OT0RFX1RZUEVTLkFycm93RnVuY3Rpb25FeHByZXNzaW9uICYmXG4gICAgbW9ja0ZhY3RvcnlOb2RlLnR5cGUgIT09IEFTVF9OT0RFX1RZUEVTLkZ1bmN0aW9uRXhwcmVzc2lvblxuICApIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG5cbiAgY29uc3QgbW9kdWxlU3BlY2lmaWVyID0gZ2V0TW9kdWxlU3BlY2lmaWVyKG1vY2tTcGVjaWZpZXJOb2RlKTtcbiAgaWYgKG1vZHVsZVNwZWNpZmllciA9PT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuXG4gIGNvbnN0IG1vY2tFeHByZXNzaW9uID0gZ2V0Q2FzdGVkTW9ja0V4cHJlc3Npb24obW9ja0ZhY3RvcnlOb2RlKTtcbiAgaWYgKG1vY2tFeHByZXNzaW9uID09PSB2b2lkIDApIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG5cbiAgY29uc3QgYXV0b2ZpeGFibGVFeHByZXNzaW9uID0gZ2V0QXV0b2ZpeGFibGVNb2NrRXhwcmVzc2lvbihtb2NrRmFjdG9yeU5vZGUpO1xuXG4gIHJldHVybiB7XG4gICAgY2FuQXV0b2ZpeDogYXV0b2ZpeGFibGVFeHByZXNzaW9uICE9PSB2b2lkIDAsXG4gICAgbW9ja0V4cHJlc3Npb246IGF1dG9maXhhYmxlRXhwcmVzc2lvbiA/PyBtb2NrRXhwcmVzc2lvbixcbiAgICBtb2NrRmFjdG9yeU5vZGUsXG4gICAgbW9ja1NwZWNpZmllck5vZGUsXG4gICAgbW9kdWxlU3BlY2lmaWVyLFxuICAgIG5vZGUsXG4gIH07XG59XG5cbi8qKlxuICogRXh0cmFjdHMgYSBzdHJpbmcgbW9kdWxlIHNwZWNpZmllciBmcm9tIHRoZSBmaXJzdCBtb2NrIGFyZ3VtZW50LlxuICogQHBhcmFtIG5vZGUgRmlyc3QgbW9jayBhcmd1bWVudC5cbiAqIEByZXR1cm5zIE1vZHVsZSBzcGVjaWZpZXIgd2hlbiBzdGF0aWNhbGx5IGtub3duLlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiAvLyBJbnRlcm5hbCBoZWxwZXIgZm9yIG5vLXVuc2FmZS12aXRlc3QtbW9jay1mYWN0b3J5LWNhc3QuXG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gZ2V0TW9kdWxlU3BlY2lmaWVyKFxuICBub2RlOiBOb25TcHJlYWRDYWxsRXhwcmVzc2lvbkFyZ3VtZW50LFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgaWYgKG5vZGUudHlwZSA9PT0gQVNUX05PREVfVFlQRVMuTGl0ZXJhbCAmJiB0eXBlb2Ygbm9kZS52YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgIHJldHVybiBub2RlLnZhbHVlO1xuICB9XG5cbiAgaWYgKFxuICAgIG5vZGUudHlwZSA9PT0gQVNUX05PREVfVFlQRVMuSW1wb3J0RXhwcmVzc2lvbiAmJlxuICAgIG5vZGUuc291cmNlLnR5cGUgPT09IEFTVF9OT0RFX1RZUEVTLkxpdGVyYWwgJiZcbiAgICB0eXBlb2Ygbm9kZS5zb3VyY2UudmFsdWUgPT09IFwic3RyaW5nXCJcbiAgKSB7XG4gICAgcmV0dXJuIG5vZGUuc291cmNlLnZhbHVlO1xuICB9XG5cbiAgcmV0dXJuIHZvaWQgMDtcbn1cblxuLyoqXG4gKiBGaW5kcyB0aGUgY2FzdGVkIHJldHVybiB2YWx1ZSBpbnNpZGUgYSBmdW5jdGlvbiBib2R5LlxuICogQHBhcmFtIHN0YXRlbWVudHMgRnVuY3Rpb24gYm9keSBzdGF0ZW1lbnRzLlxuICogQHJldHVybnMgUmV0dXJuZWQgZXhwcmVzc2lvbiB3aGVuIGl0IGlzIGNhc3RlZC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogLy8gSW50ZXJuYWwgaGVscGVyIGZvciBuby11bnNhZmUtdml0ZXN0LW1vY2stZmFjdG9yeS1jYXN0LlxuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGdldFJldHVybmVkQ2FzdGVkRXhwcmVzc2lvbihcbiAgc3RhdGVtZW50czogVFNFU1RyZWUuU3RhdGVtZW50W10sXG4pOiBUU0VTVHJlZS5FeHByZXNzaW9uIHwgdW5kZWZpbmVkIHtcbiAgZm9yIChjb25zdCBzdGF0ZW1lbnQgb2Ygc3RhdGVtZW50cykge1xuICAgIGlmIChzdGF0ZW1lbnQudHlwZSAhPT0gQVNUX05PREVfVFlQRVMuUmV0dXJuU3RhdGVtZW50KSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3RhdGVtZW50LmFyZ3VtZW50ID09PSBudWxsXG4gICAgICA/IHZvaWQgMFxuICAgICAgOiBnZXRDYXN0ZWRFeHByZXNzaW9uKHN0YXRlbWVudC5hcmd1bWVudCk7XG4gIH1cblxuICByZXR1cm4gdm9pZCAwO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGEgY2FsbCB0YXJnZXRzIGB2aS5tb2NrYCBvciBgdmkuZG9Nb2NrYC5cbiAqIEBwYXJhbSBub2RlIENhbGwgZXhwcmVzc2lvbiB0byBpbnNwZWN0LlxuICogQHJldHVybnMgVHJ1ZSB3aGVuIHRoZSBjYWxsZWUgaXMgYSBzdXBwb3J0ZWQgVml0ZXN0IG1vY2sgbWV0aG9kLlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiAvLyBJbnRlcm5hbCBoZWxwZXIgZm9yIG5vLXVuc2FmZS12aXRlc3QtbW9jay1mYWN0b3J5LWNhc3QuXG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gaXNWaXRlc3RNb2NrQ2FsbChub2RlOiBUU0VTVHJlZS5DYWxsRXhwcmVzc2lvbik6IGJvb2xlYW4ge1xuICBpZiAoXG4gICAgbm9kZS5jYWxsZWUudHlwZSAhPT0gQVNUX05PREVfVFlQRVMuTWVtYmVyRXhwcmVzc2lvbiB8fFxuICAgIG5vZGUuY2FsbGVlLm9iamVjdC50eXBlICE9PSBBU1RfTk9ERV9UWVBFUy5JZGVudGlmaWVyIHx8XG4gICAgbm9kZS5jYWxsZWUub2JqZWN0Lm5hbWUgIT09IFwidmlcIiB8fFxuICAgIG5vZGUuY2FsbGVlLnByb3BlcnR5LnR5cGUgIT09IEFTVF9OT0RFX1RZUEVTLklkZW50aWZpZXJcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHN1cHBvcnRlZE1vY2tOYW1lcy5oYXMobm9kZS5jYWxsZWUucHJvcGVydHkubmFtZSk7XG59XG5cbi8qKlxuICogUmVtb3ZlcyBuZXN0ZWQgY2FzdCB3cmFwcGVycyBmcm9tIGFuIGV4cHJlc3Npb24uXG4gKiBAcGFyYW0gZXhwcmVzc2lvbiBFeHByZXNzaW9uIHRvIG5vcm1hbGl6ZS5cbiAqIEByZXR1cm5zIEV4cHJlc3Npb24gd2l0aG91dCBhbnkgc3Vycm91bmRpbmcgY2FzdHMuXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIC8vIEludGVybmFsIGhlbHBlciBmb3Igbm8tdW5zYWZlLXZpdGVzdC1tb2NrLWZhY3RvcnktY2FzdC5cbiAqIGBgYFxuICovXG5mdW5jdGlvbiBzdHJpcENhc3RFeHByZXNzaW9ucyhcbiAgZXhwcmVzc2lvbjogVFNFU1RyZWUuRXhwcmVzc2lvbixcbik6IFRTRVNUcmVlLkV4cHJlc3Npb24ge1xuICBsZXQgY3VycmVudEV4cHJlc3Npb24gPSBleHByZXNzaW9uO1xuXG4gIHdoaWxlIChcbiAgICBjdXJyZW50RXhwcmVzc2lvbi50eXBlID09PSBBU1RfTk9ERV9UWVBFUy5UU0FzRXhwcmVzc2lvbiB8fFxuICAgIGN1cnJlbnRFeHByZXNzaW9uLnR5cGUgPT09IEFTVF9OT0RFX1RZUEVTLlRTVHlwZUFzc2VydGlvblxuICApIHtcbiAgICBjdXJyZW50RXhwcmVzc2lvbiA9IGN1cnJlbnRFeHByZXNzaW9uLmV4cHJlc3Npb247XG4gIH1cblxuICByZXR1cm4gY3VycmVudEV4cHJlc3Npb247XG59XG5cbmV4cG9ydCB0eXBlIHsgTW9ja0ZhY3RvcnlNYXRjaCB9O1xuZXhwb3J0IHsgZ2V0TW9ja0ZhY3RvcnlNYXRjaCB9O1xuIl19
@@ -1,12 +0,0 @@
1
- /**
2
- * Collects top-level binding names to avoid collisions with inserted imports.
3
- * @param statements Program statements.
4
- * @returns All top-level names in the file.
5
- * @example
6
- * ```ts
7
- * // Internal helper for no-unsafe-vitest-mock-factory-cast.
8
- * ```
9
- */
10
- declare function collectTopLevelNames(statements: readonly unknown[]): Set<string>;
11
- export { collectTopLevelNames };
12
- //# sourceMappingURL=rule-names.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rule-names.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-names.ts"],"names":[],"mappings":"AAoHA;;;;;;;;GAQG;AACH,iBAAS,oBAAoB,CAAC,UAAU,EAAE,SAAS,OAAO,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAkCzE;AAqCD,OAAO,EAAE,oBAAoB,EAAE,CAAC"}