@codeperfect/eslint-plugin 1.0.0 → 2.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 (587) hide show
  1. package/README.md +26 -4
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/{custom-rules.d.ts → application/custom-rules.d.ts} +3 -0
  4. package/dist/application/custom-rules.d.ts.map +1 -0
  5. package/dist/application/custom-rules.js +74 -0
  6. package/dist/application/index.d.ts +4 -0
  7. package/dist/application/index.d.ts.map +1 -0
  8. package/dist/application/index.js +3 -0
  9. package/dist/codeperfect-eslint-plugin-1.0.0.tgz +0 -0
  10. package/dist/domain/architecture/consistent-barrel-files/barrel-file-utilities.d.ts +56 -0
  11. package/dist/domain/architecture/consistent-barrel-files/barrel-file-utilities.d.ts.map +1 -0
  12. package/dist/domain/architecture/consistent-barrel-files/barrel-file-utilities.js +149 -0
  13. package/dist/{architecture → domain/architecture}/consistent-barrel-files/consistent-barrel-files-listeners.d.ts +4 -4
  14. package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-listeners.d.ts.map +1 -0
  15. package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-listeners.js +98 -0
  16. package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-options.d.ts +45 -0
  17. package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-options.d.ts.map +1 -0
  18. package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-options.js +64 -0
  19. package/dist/{architecture → domain/architecture}/consistent-barrel-files/exports-only-rule-test-utilities.d.ts +5 -4
  20. package/dist/domain/architecture/consistent-barrel-files/exports-only-rule-test-utilities.d.ts.map +1 -0
  21. package/dist/domain/architecture/consistent-barrel-files/exports-only-rule-test-utilities.js +87 -0
  22. package/dist/domain/architecture/consistent-barrel-files/exports-only-rule.d.ts.map +1 -0
  23. package/dist/domain/architecture/consistent-barrel-files/exports-only-rule.js +145 -0
  24. package/dist/domain/architecture/consistent-barrel-files/index.d.ts +5 -0
  25. package/dist/domain/architecture/consistent-barrel-files/index.d.ts.map +1 -0
  26. package/dist/domain/architecture/consistent-barrel-files/index.js +4 -0
  27. package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.d.ts.map +1 -0
  28. package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.js +90 -0
  29. package/dist/{architecture → domain/architecture}/consistent-barrel-files/no-reexports-outside-barrels-test-utilities.d.ts +1 -1
  30. package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-test-utilities.d.ts.map +1 -0
  31. package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-test-utilities.js +91 -0
  32. package/dist/{architecture → domain/architecture}/consistent-barrel-files/no-reexports-outside-barrels-utilities.d.ts +4 -6
  33. package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-utilities.d.ts.map +1 -0
  34. package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-utilities.js +95 -0
  35. package/dist/domain/architecture/consistent-barrel-files/rule.d.ts.map +1 -0
  36. package/dist/domain/architecture/consistent-barrel-files/rule.js +51 -0
  37. package/dist/domain/architecture/consistent-barrel-files/rule.repeat-runs.d.ts +4 -0
  38. package/dist/domain/architecture/consistent-barrel-files/rule.repeat-runs.d.ts.map +1 -0
  39. package/dist/domain/architecture/consistent-barrel-files/rule.repeat-runs.js +4 -0
  40. package/dist/{architecture → domain/architecture}/consistent-barrel-files/test-helpers.d.ts +48 -48
  41. package/dist/domain/architecture/consistent-barrel-files/test-helpers.d.ts.map +1 -0
  42. package/dist/domain/architecture/consistent-barrel-files/test-helpers.file-writers.d.ts +20 -0
  43. package/dist/domain/architecture/consistent-barrel-files/test-helpers.file-writers.d.ts.map +1 -0
  44. package/dist/domain/architecture/consistent-barrel-files/test-helpers.file-writers.js +25 -0
  45. package/dist/domain/architecture/consistent-barrel-files/test-helpers.js +235 -0
  46. package/dist/domain/architecture/consistent-barrel-files/types.d.ts +19 -0
  47. package/dist/domain/architecture/consistent-barrel-files/types.d.ts.map +1 -0
  48. package/dist/domain/architecture/consistent-barrel-files/types.js +2 -0
  49. package/dist/{architecture → domain/architecture}/index.d.ts +1 -1
  50. package/dist/domain/architecture/index.d.ts.map +1 -0
  51. package/dist/domain/architecture/index.js +2 -0
  52. package/dist/{core → domain/core}/index.d.ts +2 -2
  53. package/dist/domain/core/index.d.ts.map +1 -0
  54. package/dist/domain/core/index.js +3 -0
  55. package/dist/domain/core/no-multiple-declarators/index.d.ts +2 -0
  56. package/dist/domain/core/no-multiple-declarators/index.d.ts.map +1 -0
  57. package/dist/domain/core/no-multiple-declarators/index.js +2 -0
  58. package/dist/domain/core/no-multiple-declarators/rule-test-helpers.d.ts +101 -0
  59. package/dist/domain/core/no-multiple-declarators/rule-test-helpers.d.ts.map +1 -0
  60. package/dist/domain/core/no-multiple-declarators/rule-test-helpers.js +108 -0
  61. package/dist/{core → domain/core}/no-multiple-declarators/rule.d.ts +1 -0
  62. package/dist/domain/core/no-multiple-declarators/rule.d.ts.map +1 -0
  63. package/dist/domain/core/no-multiple-declarators/rule.fixes.d.ts +35 -0
  64. package/dist/domain/core/no-multiple-declarators/rule.fixes.d.ts.map +1 -0
  65. package/dist/domain/core/no-multiple-declarators/rule.fixes.js +95 -0
  66. package/dist/domain/core/no-multiple-declarators/rule.guardrails.d.ts +4 -0
  67. package/dist/domain/core/no-multiple-declarators/rule.guardrails.d.ts.map +1 -0
  68. package/dist/domain/core/no-multiple-declarators/rule.guardrails.js +4 -0
  69. package/dist/domain/core/no-multiple-declarators/rule.js +222 -0
  70. package/dist/domain/core/no-multiple-declarators/rule.mocked-types.d.ts +4 -0
  71. package/dist/domain/core/no-multiple-declarators/rule.mocked-types.d.ts.map +1 -0
  72. package/dist/domain/core/no-multiple-declarators/rule.mocked-types.js +4 -0
  73. package/dist/domain/core/no-multiple-declarators/types.d.ts +77 -0
  74. package/dist/domain/core/no-multiple-declarators/types.d.ts.map +1 -0
  75. package/dist/domain/core/no-multiple-declarators/types.js +38 -0
  76. package/dist/domain/core/prefer-interface-types/index.d.ts +2 -0
  77. package/dist/domain/core/prefer-interface-types/index.d.ts.map +1 -0
  78. package/dist/domain/core/prefer-interface-types/index.js +2 -0
  79. package/dist/domain/core/prefer-interface-types/rule.d.ts.map +1 -0
  80. package/dist/domain/core/prefer-interface-types/rule.js +148 -0
  81. package/dist/domain/core/prefer-interface-types/test-helpers.d.ts.map +1 -0
  82. package/dist/domain/core/prefer-interface-types/test-helpers.js +116 -0
  83. package/dist/{custom-rule-documentation.d.ts → domain/custom-rule-documentation.d.ts} +3 -1
  84. package/dist/domain/custom-rule-documentation.d.ts.map +1 -0
  85. package/dist/domain/custom-rule-documentation.js +36 -0
  86. package/dist/domain/docs/index.d.ts +4 -0
  87. package/dist/domain/docs/index.d.ts.map +1 -0
  88. package/dist/domain/docs/index.js +4 -0
  89. package/dist/domain/docs/no-interface-member-docs/comment-utilities-test-helpers.d.ts.map +1 -0
  90. package/dist/domain/docs/no-interface-member-docs/comment-utilities-test-helpers.js +129 -0
  91. package/dist/{docs → domain/docs}/no-interface-member-docs/comment-utilities.d.ts +1 -1
  92. package/dist/domain/docs/no-interface-member-docs/comment-utilities.d.ts.map +1 -0
  93. package/dist/domain/docs/no-interface-member-docs/comment-utilities.js +146 -0
  94. package/dist/domain/docs/no-interface-member-docs/index.d.ts +2 -0
  95. package/dist/domain/docs/no-interface-member-docs/index.d.ts.map +1 -0
  96. package/dist/domain/docs/no-interface-member-docs/index.js +2 -0
  97. package/dist/{docs → domain/docs}/no-interface-member-docs/parameter-tags.d.ts +1 -1
  98. package/dist/domain/docs/no-interface-member-docs/parameter-tags.d.ts.map +1 -0
  99. package/dist/domain/docs/no-interface-member-docs/parameter-tags.js +101 -0
  100. package/dist/{docs → domain/docs}/no-interface-member-docs/parameter-utilities.d.ts +1 -1
  101. package/dist/domain/docs/no-interface-member-docs/parameter-utilities.d.ts.map +1 -0
  102. package/dist/domain/docs/no-interface-member-docs/parameter-utilities.js +125 -0
  103. package/dist/domain/docs/no-interface-member-docs/rule.d.ts.map +1 -0
  104. package/dist/domain/docs/no-interface-member-docs/rule.js +171 -0
  105. package/dist/domain/docs/no-interface-member-docs/test-helpers.d.ts.map +1 -0
  106. package/dist/{docs → domain/docs}/no-interface-member-docs/test-helpers.js +2 -2
  107. package/dist/{docs → domain/docs}/no-interface-member-docs/types.d.ts +2 -2
  108. package/dist/domain/docs/no-interface-member-docs/types.d.ts.map +1 -0
  109. package/dist/domain/docs/no-interface-member-docs/types.js +2 -0
  110. package/dist/domain/docs/require-example-language/create-fixer.d.ts +5 -0
  111. package/dist/domain/docs/require-example-language/create-fixer.d.ts.map +1 -0
  112. package/dist/domain/docs/require-example-language/create-fixer.js +5 -0
  113. package/dist/domain/docs/require-example-language/empty-fence-fixes.d.ts.map +1 -0
  114. package/dist/domain/docs/require-example-language/empty-fence-fixes.js +169 -0
  115. package/dist/domain/docs/require-example-language/example-utilities.d.ts.map +1 -0
  116. package/dist/domain/docs/require-example-language/example-utilities.js +76 -0
  117. package/dist/{docs → domain/docs}/require-example-language/examples.d.ts +1 -1
  118. package/dist/domain/docs/require-example-language/examples.d.ts.map +1 -0
  119. package/dist/domain/docs/require-example-language/examples.js +181 -0
  120. package/dist/{docs → domain/docs}/require-example-language/fixes.d.ts +2 -2
  121. package/dist/domain/docs/require-example-language/fixes.d.ts.map +1 -0
  122. package/dist/domain/docs/require-example-language/fixes.js +182 -0
  123. package/dist/domain/docs/require-example-language/index.d.ts +3 -0
  124. package/dist/domain/docs/require-example-language/index.d.ts.map +1 -0
  125. package/dist/domain/docs/require-example-language/index.js +2 -0
  126. package/dist/{docs → domain/docs}/require-example-language/reporting.d.ts +1 -1
  127. package/dist/domain/docs/require-example-language/reporting.d.ts.map +1 -0
  128. package/dist/domain/docs/require-example-language/reporting.js +148 -0
  129. package/dist/domain/docs/require-example-language/rule.d.ts.map +1 -0
  130. package/dist/domain/docs/require-example-language/rule.js +37 -0
  131. package/dist/domain/docs/require-example-language/types.d.ts.map +1 -0
  132. package/dist/domain/docs/require-example-language/types.js +2 -0
  133. package/dist/domain/docs/single-line-jsdoc/index.d.ts +2 -0
  134. package/dist/domain/docs/single-line-jsdoc/index.d.ts.map +1 -0
  135. package/dist/domain/docs/single-line-jsdoc/index.js +2 -0
  136. package/dist/domain/docs/single-line-jsdoc/rule.d.ts +4 -0
  137. package/dist/domain/docs/single-line-jsdoc/rule.d.ts.map +1 -0
  138. package/dist/domain/docs/single-line-jsdoc/rule.edge-cases.d.ts +4 -0
  139. package/dist/domain/docs/single-line-jsdoc/rule.edge-cases.d.ts.map +1 -0
  140. package/dist/domain/docs/single-line-jsdoc/rule.edge-cases.js +5 -0
  141. package/dist/domain/docs/single-line-jsdoc/rule.js +201 -0
  142. package/dist/domain/docs/single-line-jsdoc/rule.node-lookups.d.ts +4 -0
  143. package/dist/domain/docs/single-line-jsdoc/rule.node-lookups.d.ts.map +1 -0
  144. package/dist/domain/docs/single-line-jsdoc/rule.node-lookups.js +5 -0
  145. package/dist/domain/docs/single-line-jsdoc/single-line-jsdoc-content.d.ts.map +1 -0
  146. package/dist/domain/docs/single-line-jsdoc/single-line-jsdoc-content.js +95 -0
  147. package/dist/{docs → domain/docs}/single-line-jsdoc/single-line-jsdoc-utilities.d.ts +1 -1
  148. package/dist/domain/docs/single-line-jsdoc/single-line-jsdoc-utilities.d.ts.map +1 -0
  149. package/dist/domain/docs/single-line-jsdoc/single-line-jsdoc-utilities.js +140 -0
  150. package/dist/domain/docs/test-helpers.d.ts.map +1 -0
  151. package/dist/domain/docs/test-helpers.js +107 -0
  152. package/dist/domain/index.d.ts +6 -0
  153. package/dist/domain/index.d.ts.map +1 -0
  154. package/dist/domain/index.js +6 -0
  155. package/dist/domain/testing/aaa/analyzer.analysis.d.ts +34 -0
  156. package/dist/domain/testing/aaa/analyzer.analysis.d.ts.map +1 -0
  157. package/dist/domain/testing/aaa/analyzer.analysis.helpers.d.ts +145 -0
  158. package/dist/domain/testing/aaa/analyzer.analysis.helpers.d.ts.map +1 -0
  159. package/dist/domain/testing/aaa/analyzer.analysis.helpers.js +203 -0
  160. package/dist/domain/testing/aaa/analyzer.analysis.js +82 -0
  161. package/dist/domain/testing/aaa/analyzer.analysis.unsupported.d.ts +4 -0
  162. package/dist/domain/testing/aaa/analyzer.analysis.unsupported.d.ts.map +1 -0
  163. package/dist/domain/testing/aaa/analyzer.analysis.unsupported.js +4 -0
  164. package/dist/domain/testing/aaa/analyzer.assertions.d.ts +18 -0
  165. package/dist/domain/testing/aaa/analyzer.assertions.d.ts.map +1 -0
  166. package/dist/domain/testing/aaa/analyzer.assertions.destructured.d.ts +4 -0
  167. package/dist/domain/testing/aaa/analyzer.assertions.destructured.d.ts.map +1 -0
  168. package/dist/domain/testing/aaa/analyzer.assertions.destructured.js +4 -0
  169. package/dist/domain/testing/aaa/analyzer.assertions.helpers.d.ts +95 -0
  170. package/dist/domain/testing/aaa/analyzer.assertions.helpers.d.ts.map +1 -0
  171. package/dist/domain/testing/aaa/analyzer.assertions.helpers.js +185 -0
  172. package/dist/domain/testing/aaa/analyzer.assertions.js +33 -0
  173. package/dist/domain/testing/aaa/analyzer.assertions.operands.d.ts +64 -0
  174. package/dist/domain/testing/aaa/analyzer.assertions.operands.d.ts.map +1 -0
  175. package/dist/domain/testing/aaa/analyzer.assertions.operands.js +105 -0
  176. package/dist/domain/testing/aaa/analyzer.classification.d.ts +16 -0
  177. package/dist/domain/testing/aaa/analyzer.classification.d.ts.map +1 -0
  178. package/dist/domain/testing/aaa/analyzer.classification.helpers.d.ts +77 -0
  179. package/dist/domain/testing/aaa/analyzer.classification.helpers.d.ts.map +1 -0
  180. package/dist/domain/testing/aaa/analyzer.classification.helpers.js +203 -0
  181. package/dist/domain/testing/aaa/analyzer.classification.js +31 -0
  182. package/dist/domain/testing/aaa/analyzer.classification.member-patterns.d.ts +9 -0
  183. package/dist/domain/testing/aaa/analyzer.classification.member-patterns.d.ts.map +1 -0
  184. package/dist/domain/testing/aaa/analyzer.classification.member-patterns.js +10 -0
  185. package/dist/domain/testing/aaa/analyzer.classification.mutations.d.ts +4 -0
  186. package/dist/domain/testing/aaa/analyzer.classification.mutations.d.ts.map +1 -0
  187. package/dist/domain/testing/aaa/analyzer.classification.mutations.js +4 -0
  188. package/dist/domain/testing/aaa/analyzer.classification.traversal.d.ts +15 -0
  189. package/dist/domain/testing/aaa/analyzer.classification.traversal.d.ts.map +1 -0
  190. package/dist/domain/testing/aaa/analyzer.classification.traversal.js +34 -0
  191. package/dist/domain/testing/aaa/analyzer.d.ts +46 -0
  192. package/dist/domain/testing/aaa/analyzer.d.ts.map +1 -0
  193. package/dist/domain/testing/aaa/analyzer.js +59 -0
  194. package/dist/domain/testing/aaa/analyzer.super.d.ts +106 -0
  195. package/dist/domain/testing/aaa/analyzer.super.d.ts.map +1 -0
  196. package/dist/domain/testing/aaa/analyzer.super.helpers.d.ts +27 -0
  197. package/dist/domain/testing/aaa/analyzer.super.helpers.d.ts.map +1 -0
  198. package/dist/domain/testing/aaa/analyzer.super.helpers.js +66 -0
  199. package/dist/domain/testing/aaa/analyzer.super.js +211 -0
  200. package/dist/{testing → domain/testing}/aaa/index.d.ts +2 -2
  201. package/dist/domain/testing/aaa/index.d.ts.map +1 -0
  202. package/dist/domain/testing/aaa/index.js +2 -0
  203. package/dist/domain/testing/aaa/types.d.ts +58 -0
  204. package/dist/domain/testing/aaa/types.d.ts.map +1 -0
  205. package/dist/domain/testing/aaa/types.js +2 -0
  206. package/dist/domain/testing/assert-actual-expected-names/index.d.ts +2 -0
  207. package/dist/domain/testing/assert-actual-expected-names/index.d.ts.map +1 -0
  208. package/dist/domain/testing/assert-actual-expected-names/index.js +2 -0
  209. package/dist/{testing → domain/testing}/assert-actual-expected-names/rule.d.ts +1 -0
  210. package/dist/domain/testing/assert-actual-expected-names/rule.d.ts.map +1 -0
  211. package/dist/domain/testing/assert-actual-expected-names/rule.js +116 -0
  212. package/dist/domain/testing/enforce-aaa-phase-purity/index.d.ts +2 -0
  213. package/dist/domain/testing/enforce-aaa-phase-purity/index.d.ts.map +1 -0
  214. package/dist/domain/testing/enforce-aaa-phase-purity/index.js +2 -0
  215. package/dist/domain/testing/enforce-aaa-phase-purity/pattern-identifiers.d.ts +13 -0
  216. package/dist/domain/testing/enforce-aaa-phase-purity/pattern-identifiers.d.ts.map +1 -0
  217. package/dist/domain/testing/enforce-aaa-phase-purity/pattern-identifiers.js +134 -0
  218. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-identifiers.d.ts +25 -0
  219. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-identifiers.d.ts.map +1 -0
  220. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-identifiers.js +138 -0
  221. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.combined.d.ts +4 -0
  222. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.combined.d.ts.map +1 -0
  223. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.combined.js +4 -0
  224. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.companion.d.ts +4 -0
  225. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.companion.d.ts.map +1 -0
  226. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.companion.js +4 -0
  227. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.d.ts +4 -0
  228. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.d.ts.map +1 -0
  229. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.js +4 -0
  230. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.d.ts +14 -0
  231. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.d.ts.map +1 -0
  232. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.js +180 -0
  233. package/dist/domain/testing/enforce-aaa-phase-purity/rule-test-helpers.d.ts +42 -0
  234. package/dist/domain/testing/enforce-aaa-phase-purity/rule-test-helpers.d.ts.map +1 -0
  235. package/dist/domain/testing/enforce-aaa-phase-purity/rule-test-helpers.js +188 -0
  236. package/dist/{testing → domain/testing}/enforce-aaa-phase-purity/rule.d.ts +1 -0
  237. package/dist/domain/testing/enforce-aaa-phase-purity/rule.d.ts.map +1 -0
  238. package/dist/domain/testing/enforce-aaa-phase-purity/rule.js +37 -0
  239. package/dist/domain/testing/enforce-aaa-structure/index.d.ts +2 -0
  240. package/dist/domain/testing/enforce-aaa-structure/index.d.ts.map +1 -0
  241. package/dist/domain/testing/enforce-aaa-structure/index.js +2 -0
  242. package/dist/{testing → domain/testing}/enforce-aaa-structure/rule.d.ts +1 -0
  243. package/dist/domain/testing/enforce-aaa-structure/rule.d.ts.map +1 -0
  244. package/dist/domain/testing/enforce-aaa-structure/rule.js +88 -0
  245. package/dist/{testing → domain/testing}/index.d.ts +9 -8
  246. package/dist/domain/testing/index.d.ts.map +1 -0
  247. package/dist/domain/testing/index.js +10 -0
  248. package/dist/domain/testing/prefer-vi-mocked-import/fix-import-statements.d.ts +29 -0
  249. package/dist/domain/testing/prefer-vi-mocked-import/fix-import-statements.d.ts.map +1 -0
  250. package/dist/domain/testing/prefer-vi-mocked-import/fix-import-statements.js +90 -0
  251. package/dist/domain/testing/prefer-vi-mocked-import/fix-import-updates.d.ts +31 -0
  252. package/dist/domain/testing/prefer-vi-mocked-import/fix-import-updates.d.ts.map +1 -0
  253. package/dist/domain/testing/prefer-vi-mocked-import/fix-import-updates.js +43 -0
  254. package/dist/domain/testing/prefer-vi-mocked-import/fix-imports.d.ts +16 -0
  255. package/dist/domain/testing/prefer-vi-mocked-import/fix-imports.d.ts.map +1 -0
  256. package/dist/domain/testing/prefer-vi-mocked-import/fix-imports.js +205 -0
  257. package/dist/domain/testing/prefer-vi-mocked-import/fix.d.ts +28 -0
  258. package/dist/domain/testing/prefer-vi-mocked-import/fix.d.ts.map +1 -0
  259. package/dist/domain/testing/prefer-vi-mocked-import/fix.js +171 -0
  260. package/dist/domain/testing/prefer-vi-mocked-import/index.d.ts +2 -0
  261. package/dist/domain/testing/prefer-vi-mocked-import/index.d.ts.map +1 -0
  262. package/dist/domain/testing/prefer-vi-mocked-import/index.js +2 -0
  263. package/dist/{testing → domain/testing}/prefer-vi-mocked-import/match-bindings.d.ts +1 -1
  264. package/dist/domain/testing/prefer-vi-mocked-import/match-bindings.d.ts.map +1 -0
  265. package/dist/domain/testing/prefer-vi-mocked-import/match-bindings.js +52 -0
  266. package/dist/{testing → domain/testing}/prefer-vi-mocked-import/match-declarations.d.ts +2 -1
  267. package/dist/domain/testing/prefer-vi-mocked-import/match-declarations.d.ts.map +1 -0
  268. package/dist/domain/testing/prefer-vi-mocked-import/match-declarations.js +131 -0
  269. package/dist/domain/testing/prefer-vi-mocked-import/match-helpers.d.ts.map +1 -0
  270. package/dist/domain/testing/prefer-vi-mocked-import/match-helpers.js +102 -0
  271. package/dist/{testing → domain/testing}/prefer-vi-mocked-import/match-imports.d.ts +1 -1
  272. package/dist/domain/testing/prefer-vi-mocked-import/match-imports.d.ts.map +1 -0
  273. package/dist/domain/testing/prefer-vi-mocked-import/match-imports.js +156 -0
  274. package/dist/{testing → domain/testing}/prefer-vi-mocked-import/match-rewrites.d.ts +1 -1
  275. package/dist/domain/testing/prefer-vi-mocked-import/match-rewrites.d.ts.map +1 -0
  276. package/dist/domain/testing/prefer-vi-mocked-import/match-rewrites.js +119 -0
  277. package/dist/domain/testing/prefer-vi-mocked-import/match-walk.d.ts.map +1 -0
  278. package/dist/domain/testing/prefer-vi-mocked-import/match-walk.js +62 -0
  279. package/dist/domain/testing/prefer-vi-mocked-import/match.d.ts +26 -0
  280. package/dist/domain/testing/prefer-vi-mocked-import/match.d.ts.map +1 -0
  281. package/dist/domain/testing/prefer-vi-mocked-import/match.js +198 -0
  282. package/dist/domain/testing/prefer-vi-mocked-import/rule-test-helpers.d.ts +20 -0
  283. package/dist/domain/testing/prefer-vi-mocked-import/rule-test-helpers.d.ts.map +1 -0
  284. package/dist/domain/testing/prefer-vi-mocked-import/rule-test-helpers.js +39 -0
  285. package/dist/domain/testing/prefer-vi-mocked-import/rule.d.ts.map +1 -0
  286. package/dist/domain/testing/prefer-vi-mocked-import/rule.js +39 -0
  287. package/dist/{testing → domain/testing}/prefer-vi-mocked-import/types.d.ts +1 -1
  288. package/dist/domain/testing/prefer-vi-mocked-import/types.d.ts.map +1 -0
  289. package/dist/domain/testing/prefer-vi-mocked-import/types.js +2 -0
  290. package/dist/domain/testing/prefer-vitest-incremental-casts/ast-helpers.d.ts +97 -0
  291. package/dist/domain/testing/prefer-vitest-incremental-casts/ast-helpers.d.ts.map +1 -0
  292. package/dist/domain/testing/prefer-vitest-incremental-casts/ast-helpers.js +174 -0
  293. package/dist/domain/testing/prefer-vitest-incremental-casts/index.d.ts +2 -0
  294. package/dist/domain/testing/prefer-vitest-incremental-casts/index.d.ts.map +1 -0
  295. package/dist/domain/testing/prefer-vitest-incremental-casts/index.js +2 -0
  296. package/dist/domain/testing/prefer-vitest-incremental-casts/match-input.d.ts +14 -0
  297. package/dist/domain/testing/prefer-vitest-incremental-casts/match-input.d.ts.map +1 -0
  298. package/dist/domain/testing/prefer-vitest-incremental-casts/match-input.js +84 -0
  299. package/dist/domain/testing/prefer-vitest-incremental-casts/match.d.ts +13 -0
  300. package/dist/domain/testing/prefer-vitest-incremental-casts/match.d.ts.map +1 -0
  301. package/dist/domain/testing/prefer-vitest-incremental-casts/match.js +195 -0
  302. package/dist/domain/testing/prefer-vitest-incremental-casts/replacement-helpers.d.ts +25 -0
  303. package/dist/domain/testing/prefer-vitest-incremental-casts/replacement-helpers.d.ts.map +1 -0
  304. package/dist/domain/testing/prefer-vitest-incremental-casts/replacement-helpers.js +96 -0
  305. package/dist/domain/testing/prefer-vitest-incremental-casts/rule-test-helpers.d.ts +32 -0
  306. package/dist/domain/testing/prefer-vitest-incremental-casts/rule-test-helpers.d.ts.map +1 -0
  307. package/dist/domain/testing/prefer-vitest-incremental-casts/rule-test-helpers.js +164 -0
  308. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.d.ts +5 -0
  309. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.d.ts.map +1 -0
  310. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.guardrails.d.ts +4 -0
  311. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.guardrails.d.ts.map +1 -0
  312. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.guardrails.js +4 -0
  313. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.input-shapes.d.ts +4 -0
  314. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.input-shapes.d.ts.map +1 -0
  315. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.input-shapes.js +4 -0
  316. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.js +88 -0
  317. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.signature-fallback.d.ts +4 -0
  318. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.signature-fallback.d.ts.map +1 -0
  319. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.signature-fallback.js +4 -0
  320. package/dist/domain/testing/prefer-vitest-incremental-casts/type-helpers.d.ts +24 -0
  321. package/dist/domain/testing/prefer-vitest-incremental-casts/type-helpers.d.ts.map +1 -0
  322. package/dist/domain/testing/prefer-vitest-incremental-casts/type-helpers.js +113 -0
  323. package/dist/domain/testing/prefer-vitest-incremental-casts/type-shape-helpers.d.ts +36 -0
  324. package/dist/domain/testing/prefer-vitest-incremental-casts/type-shape-helpers.d.ts.map +1 -0
  325. package/dist/domain/testing/prefer-vitest-incremental-casts/type-shape-helpers.js +138 -0
  326. package/dist/domain/testing/prefer-vitest-incremental-casts/types.d.ts +187 -0
  327. package/dist/domain/testing/prefer-vitest-incremental-casts/types.d.ts.map +1 -0
  328. package/dist/domain/testing/prefer-vitest-incremental-casts/types.js +2 -0
  329. package/dist/domain/testing/require-aaa-sections/index.d.ts +2 -0
  330. package/dist/domain/testing/require-aaa-sections/index.d.ts.map +1 -0
  331. package/dist/domain/testing/require-aaa-sections/index.js +2 -0
  332. package/dist/domain/testing/require-aaa-sections/missing-section-fixes.d.ts +17 -0
  333. package/dist/domain/testing/require-aaa-sections/missing-section-fixes.d.ts.map +1 -0
  334. package/dist/domain/testing/require-aaa-sections/missing-section-fixes.js +150 -0
  335. package/dist/{testing → domain/testing}/require-aaa-sections/rule.d.ts +1 -0
  336. package/dist/domain/testing/require-aaa-sections/rule.d.ts.map +1 -0
  337. package/dist/domain/testing/require-aaa-sections/rule.js +134 -0
  338. package/dist/domain/testing/require-aaa-sections/rule.reporting.d.ts +104 -0
  339. package/dist/domain/testing/require-aaa-sections/rule.reporting.d.ts.map +1 -0
  340. package/dist/domain/testing/require-aaa-sections/rule.reporting.js +216 -0
  341. package/dist/domain/testing/require-act-result-capture/index.d.ts +2 -0
  342. package/dist/domain/testing/require-act-result-capture/index.d.ts.map +1 -0
  343. package/dist/domain/testing/require-act-result-capture/index.js +2 -0
  344. package/dist/{testing → domain/testing}/require-act-result-capture/rule.d.ts +1 -0
  345. package/dist/domain/testing/require-act-result-capture/rule.d.ts.map +1 -0
  346. package/dist/domain/testing/require-act-result-capture/rule.js +109 -0
  347. package/dist/domain/testing/require-test-companion/index.d.ts +3 -0
  348. package/dist/domain/testing/require-test-companion/index.d.ts.map +1 -0
  349. package/dist/domain/testing/require-test-companion/index.js +3 -0
  350. package/dist/{testing → domain/testing}/require-test-companion/require-test-companion-listeners.d.ts +1 -1
  351. package/dist/domain/testing/require-test-companion/require-test-companion-listeners.d.ts.map +1 -0
  352. package/dist/domain/testing/require-test-companion/require-test-companion-listeners.js +145 -0
  353. package/dist/domain/testing/require-test-companion/require-test-companion-options.d.ts.map +1 -0
  354. package/dist/domain/testing/require-test-companion/require-test-companion-options.js +113 -0
  355. package/dist/{testing → domain/testing}/require-test-companion/require-test-companion-test-helpers.d.ts +1 -1
  356. package/dist/domain/testing/require-test-companion/require-test-companion-test-helpers.d.ts.map +1 -0
  357. package/dist/domain/testing/require-test-companion/require-test-companion-test-helpers.js +184 -0
  358. package/dist/{testing → domain/testing}/require-test-companion/require-test-companion-utilities.d.ts +1 -1
  359. package/dist/domain/testing/require-test-companion/require-test-companion-utilities.d.ts.map +1 -0
  360. package/dist/domain/testing/require-test-companion/require-test-companion-utilities.js +26 -0
  361. package/dist/domain/testing/require-test-companion/rule.d.ts.map +1 -0
  362. package/dist/domain/testing/require-test-companion/rule.js +82 -0
  363. package/dist/domain/testing/require-test-companion/types.d.ts.map +1 -0
  364. package/dist/domain/testing/require-test-companion/types.js +2 -0
  365. package/dist/domain/testing/single-act-statement/index.d.ts +2 -0
  366. package/dist/domain/testing/single-act-statement/index.d.ts.map +1 -0
  367. package/dist/domain/testing/single-act-statement/index.js +2 -0
  368. package/dist/{testing → domain/testing}/single-act-statement/rule.d.ts +1 -0
  369. package/dist/domain/testing/single-act-statement/rule.d.ts.map +1 -0
  370. package/dist/domain/testing/single-act-statement/rule.js +37 -0
  371. package/dist/index.d.ts +4 -5
  372. package/dist/index.d.ts.map +1 -1
  373. package/dist/index.js +3 -6
  374. package/dist/{codeperfect-plugin.d.ts → infrastructure/codeperfect-plugin.d.ts} +2 -0
  375. package/dist/infrastructure/codeperfect-plugin.d.ts.map +1 -0
  376. package/dist/infrastructure/codeperfect-plugin.js +30 -0
  377. package/dist/infrastructure/index.d.ts +5 -0
  378. package/dist/infrastructure/index.d.ts.map +1 -0
  379. package/dist/infrastructure/index.js +4 -0
  380. package/dist/infrastructure/presets.d.ts +18 -0
  381. package/dist/infrastructure/presets.d.ts.map +1 -0
  382. package/dist/infrastructure/presets.js +81 -0
  383. package/package.json +67 -32
  384. package/dist/architecture/consistent-barrel-files/consistent-barrel-files-listeners.d.ts.map +0 -1
  385. package/dist/architecture/consistent-barrel-files/consistent-barrel-files-listeners.js +0 -131
  386. package/dist/architecture/consistent-barrel-files/consistent-barrel-files-options.d.ts +0 -48
  387. package/dist/architecture/consistent-barrel-files/consistent-barrel-files-options.d.ts.map +0 -1
  388. package/dist/architecture/consistent-barrel-files/consistent-barrel-files-options.js +0 -126
  389. package/dist/architecture/consistent-barrel-files/exports-only-rule-test-utilities.d.ts.map +0 -1
  390. package/dist/architecture/consistent-barrel-files/exports-only-rule-test-utilities.js +0 -90
  391. package/dist/architecture/consistent-barrel-files/exports-only-rule.d.ts.map +0 -1
  392. package/dist/architecture/consistent-barrel-files/exports-only-rule.js +0 -218
  393. package/dist/architecture/consistent-barrel-files/index.d.ts +0 -5
  394. package/dist/architecture/consistent-barrel-files/index.d.ts.map +0 -1
  395. package/dist/architecture/consistent-barrel-files/index.js +0 -4
  396. package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.d.ts.map +0 -1
  397. package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.js +0 -100
  398. package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-test-utilities.d.ts.map +0 -1
  399. package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-test-utilities.js +0 -90
  400. package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-utilities.d.ts.map +0 -1
  401. package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-utilities.js +0 -154
  402. package/dist/architecture/consistent-barrel-files/rule.d.ts.map +0 -1
  403. package/dist/architecture/consistent-barrel-files/rule.js +0 -58
  404. package/dist/architecture/consistent-barrel-files/test-helpers.d.ts.map +0 -1
  405. package/dist/architecture/consistent-barrel-files/test-helpers.js +0 -229
  406. package/dist/architecture/consistent-barrel-files/types.d.ts +0 -25
  407. package/dist/architecture/consistent-barrel-files/types.d.ts.map +0 -1
  408. package/dist/architecture/consistent-barrel-files/types.js +0 -2
  409. package/dist/architecture/index.d.ts.map +0 -1
  410. package/dist/architecture/index.js +0 -2
  411. package/dist/benchmark-rules.d.ts +0 -83
  412. package/dist/benchmark-rules.d.ts.map +0 -1
  413. package/dist/benchmark-rules.js +0 -175
  414. package/dist/codeperfect-plugin.d.ts.map +0 -1
  415. package/dist/codeperfect-plugin.js +0 -29
  416. package/dist/core/index.d.ts.map +0 -1
  417. package/dist/core/index.js +0 -3
  418. package/dist/core/no-multiple-declarators/index.d.ts +0 -2
  419. package/dist/core/no-multiple-declarators/index.d.ts.map +0 -1
  420. package/dist/core/no-multiple-declarators/index.js +0 -2
  421. package/dist/core/no-multiple-declarators/rule.d.ts.map +0 -1
  422. package/dist/core/no-multiple-declarators/rule.js +0 -100
  423. package/dist/core/prefer-interface-types/index.d.ts +0 -2
  424. package/dist/core/prefer-interface-types/index.d.ts.map +0 -1
  425. package/dist/core/prefer-interface-types/index.js +0 -2
  426. package/dist/core/prefer-interface-types/rule.d.ts.map +0 -1
  427. package/dist/core/prefer-interface-types/rule.js +0 -145
  428. package/dist/core/prefer-interface-types/test-helpers.d.ts.map +0 -1
  429. package/dist/core/prefer-interface-types/test-helpers.js +0 -116
  430. package/dist/custom-rule-documentation.d.ts.map +0 -1
  431. package/dist/custom-rule-documentation.js +0 -35
  432. package/dist/custom-rules.d.ts.map +0 -1
  433. package/dist/custom-rules.js +0 -70
  434. package/dist/docs/index.d.ts +0 -4
  435. package/dist/docs/index.d.ts.map +0 -1
  436. package/dist/docs/index.js +0 -4
  437. package/dist/docs/no-interface-member-docs/comment-utilities-test-helpers.d.ts.map +0 -1
  438. package/dist/docs/no-interface-member-docs/comment-utilities-test-helpers.js +0 -129
  439. package/dist/docs/no-interface-member-docs/comment-utilities.d.ts.map +0 -1
  440. package/dist/docs/no-interface-member-docs/comment-utilities.js +0 -146
  441. package/dist/docs/no-interface-member-docs/index.d.ts +0 -2
  442. package/dist/docs/no-interface-member-docs/index.d.ts.map +0 -1
  443. package/dist/docs/no-interface-member-docs/index.js +0 -2
  444. package/dist/docs/no-interface-member-docs/parameter-tags.d.ts.map +0 -1
  445. package/dist/docs/no-interface-member-docs/parameter-tags.js +0 -101
  446. package/dist/docs/no-interface-member-docs/parameter-utilities.d.ts.map +0 -1
  447. package/dist/docs/no-interface-member-docs/parameter-utilities.js +0 -125
  448. package/dist/docs/no-interface-member-docs/rule.d.ts.map +0 -1
  449. package/dist/docs/no-interface-member-docs/rule.js +0 -168
  450. package/dist/docs/no-interface-member-docs/test-helpers.d.ts.map +0 -1
  451. package/dist/docs/no-interface-member-docs/types.d.ts.map +0 -1
  452. package/dist/docs/no-interface-member-docs/types.js +0 -2
  453. package/dist/docs/require-example-language/empty-fence-fixes.d.ts.map +0 -1
  454. package/dist/docs/require-example-language/empty-fence-fixes.js +0 -169
  455. package/dist/docs/require-example-language/example-utilities.d.ts.map +0 -1
  456. package/dist/docs/require-example-language/example-utilities.js +0 -76
  457. package/dist/docs/require-example-language/examples.d.ts.map +0 -1
  458. package/dist/docs/require-example-language/examples.js +0 -181
  459. package/dist/docs/require-example-language/fixes.d.ts.map +0 -1
  460. package/dist/docs/require-example-language/fixes.js +0 -182
  461. package/dist/docs/require-example-language/index.d.ts +0 -3
  462. package/dist/docs/require-example-language/index.d.ts.map +0 -1
  463. package/dist/docs/require-example-language/index.js +0 -2
  464. package/dist/docs/require-example-language/reporting.d.ts.map +0 -1
  465. package/dist/docs/require-example-language/reporting.js +0 -145
  466. package/dist/docs/require-example-language/rule.d.ts.map +0 -1
  467. package/dist/docs/require-example-language/rule.js +0 -34
  468. package/dist/docs/require-example-language/types.d.ts.map +0 -1
  469. package/dist/docs/require-example-language/types.js +0 -2
  470. package/dist/docs/single-line-jsdoc/index.d.ts +0 -2
  471. package/dist/docs/single-line-jsdoc/index.d.ts.map +0 -1
  472. package/dist/docs/single-line-jsdoc/index.js +0 -2
  473. package/dist/docs/single-line-jsdoc/rule.d.ts +0 -5
  474. package/dist/docs/single-line-jsdoc/rule.d.ts.map +0 -1
  475. package/dist/docs/single-line-jsdoc/rule.js +0 -196
  476. package/dist/docs/single-line-jsdoc/single-line-jsdoc-content.d.ts.map +0 -1
  477. package/dist/docs/single-line-jsdoc/single-line-jsdoc-content.js +0 -95
  478. package/dist/docs/single-line-jsdoc/single-line-jsdoc-utilities.d.ts.map +0 -1
  479. package/dist/docs/single-line-jsdoc/single-line-jsdoc-utilities.js +0 -140
  480. package/dist/docs/test-helpers.d.ts.map +0 -1
  481. package/dist/docs/test-helpers.js +0 -107
  482. package/dist/presets.d.ts +0 -10
  483. package/dist/presets.d.ts.map +0 -1
  484. package/dist/presets.js +0 -50
  485. package/dist/rules/index.d.ts +0 -5
  486. package/dist/rules/index.d.ts.map +0 -1
  487. package/dist/rules/index.js +0 -6
  488. package/dist/testing/aaa/analyzer.d.ts +0 -36
  489. package/dist/testing/aaa/analyzer.d.ts.map +0 -1
  490. package/dist/testing/aaa/analyzer.js +0 -490
  491. package/dist/testing/aaa/index.d.ts.map +0 -1
  492. package/dist/testing/aaa/index.js +0 -2
  493. package/dist/testing/aaa/types.d.ts +0 -31
  494. package/dist/testing/aaa/types.d.ts.map +0 -1
  495. package/dist/testing/aaa/types.js +0 -2
  496. package/dist/testing/assert-actual-expected-names/index.d.ts +0 -2
  497. package/dist/testing/assert-actual-expected-names/index.d.ts.map +0 -1
  498. package/dist/testing/assert-actual-expected-names/index.js +0 -2
  499. package/dist/testing/assert-actual-expected-names/rule.d.ts.map +0 -1
  500. package/dist/testing/assert-actual-expected-names/rule.js +0 -54
  501. package/dist/testing/enforce-aaa-phase-purity/index.d.ts +0 -2
  502. package/dist/testing/enforce-aaa-phase-purity/index.d.ts.map +0 -1
  503. package/dist/testing/enforce-aaa-phase-purity/index.js +0 -2
  504. package/dist/testing/enforce-aaa-phase-purity/rule.d.ts.map +0 -1
  505. package/dist/testing/enforce-aaa-phase-purity/rule.js +0 -110
  506. package/dist/testing/enforce-aaa-structure/index.d.ts +0 -2
  507. package/dist/testing/enforce-aaa-structure/index.d.ts.map +0 -1
  508. package/dist/testing/enforce-aaa-structure/index.js +0 -2
  509. package/dist/testing/enforce-aaa-structure/rule.d.ts.map +0 -1
  510. package/dist/testing/enforce-aaa-structure/rule.js +0 -48
  511. package/dist/testing/index.d.ts.map +0 -1
  512. package/dist/testing/index.js +0 -9
  513. package/dist/testing/prefer-vi-mocked-import/fix.d.ts +0 -16
  514. package/dist/testing/prefer-vi-mocked-import/fix.d.ts.map +0 -1
  515. package/dist/testing/prefer-vi-mocked-import/fix.js +0 -224
  516. package/dist/testing/prefer-vi-mocked-import/index.d.ts +0 -2
  517. package/dist/testing/prefer-vi-mocked-import/index.d.ts.map +0 -1
  518. package/dist/testing/prefer-vi-mocked-import/index.js +0 -2
  519. package/dist/testing/prefer-vi-mocked-import/match-bindings.d.ts.map +0 -1
  520. package/dist/testing/prefer-vi-mocked-import/match-bindings.js +0 -52
  521. package/dist/testing/prefer-vi-mocked-import/match-declarations.d.ts.map +0 -1
  522. package/dist/testing/prefer-vi-mocked-import/match-declarations.js +0 -99
  523. package/dist/testing/prefer-vi-mocked-import/match-helpers.d.ts.map +0 -1
  524. package/dist/testing/prefer-vi-mocked-import/match-helpers.js +0 -102
  525. package/dist/testing/prefer-vi-mocked-import/match-imports.d.ts.map +0 -1
  526. package/dist/testing/prefer-vi-mocked-import/match-imports.js +0 -156
  527. package/dist/testing/prefer-vi-mocked-import/match-rewrites.d.ts.map +0 -1
  528. package/dist/testing/prefer-vi-mocked-import/match-rewrites.js +0 -119
  529. package/dist/testing/prefer-vi-mocked-import/match-walk.d.ts.map +0 -1
  530. package/dist/testing/prefer-vi-mocked-import/match-walk.js +0 -62
  531. package/dist/testing/prefer-vi-mocked-import/match.d.ts +0 -15
  532. package/dist/testing/prefer-vi-mocked-import/match.d.ts.map +0 -1
  533. package/dist/testing/prefer-vi-mocked-import/match.js +0 -193
  534. package/dist/testing/prefer-vi-mocked-import/rule.d.ts.map +0 -1
  535. package/dist/testing/prefer-vi-mocked-import/rule.js +0 -32
  536. package/dist/testing/prefer-vi-mocked-import/types.d.ts.map +0 -1
  537. package/dist/testing/prefer-vi-mocked-import/types.js +0 -2
  538. package/dist/testing/require-aaa-sections/index.d.ts +0 -2
  539. package/dist/testing/require-aaa-sections/index.d.ts.map +0 -1
  540. package/dist/testing/require-aaa-sections/index.js +0 -2
  541. package/dist/testing/require-aaa-sections/rule.d.ts.map +0 -1
  542. package/dist/testing/require-aaa-sections/rule.js +0 -111
  543. package/dist/testing/require-act-result-capture/index.d.ts +0 -2
  544. package/dist/testing/require-act-result-capture/index.d.ts.map +0 -1
  545. package/dist/testing/require-act-result-capture/index.js +0 -2
  546. package/dist/testing/require-act-result-capture/rule.d.ts.map +0 -1
  547. package/dist/testing/require-act-result-capture/rule.js +0 -34
  548. package/dist/testing/require-test-companion/index.d.ts +0 -3
  549. package/dist/testing/require-test-companion/index.d.ts.map +0 -1
  550. package/dist/testing/require-test-companion/index.js +0 -3
  551. package/dist/testing/require-test-companion/require-test-companion-listeners.d.ts.map +0 -1
  552. package/dist/testing/require-test-companion/require-test-companion-listeners.js +0 -145
  553. package/dist/testing/require-test-companion/require-test-companion-options.d.ts.map +0 -1
  554. package/dist/testing/require-test-companion/require-test-companion-options.js +0 -112
  555. package/dist/testing/require-test-companion/require-test-companion-test-helpers.d.ts.map +0 -1
  556. package/dist/testing/require-test-companion/require-test-companion-test-helpers.js +0 -183
  557. package/dist/testing/require-test-companion/require-test-companion-utilities.d.ts.map +0 -1
  558. package/dist/testing/require-test-companion/require-test-companion-utilities.js +0 -26
  559. package/dist/testing/require-test-companion/rule.d.ts.map +0 -1
  560. package/dist/testing/require-test-companion/rule.js +0 -57
  561. package/dist/testing/require-test-companion/types.d.ts.map +0 -1
  562. package/dist/testing/require-test-companion/types.js +0 -2
  563. package/dist/testing/single-act-statement/index.d.ts +0 -2
  564. package/dist/testing/single-act-statement/index.d.ts.map +0 -1
  565. package/dist/testing/single-act-statement/index.js +0 -2
  566. package/dist/testing/single-act-statement/rule.d.ts.map +0 -1
  567. package/dist/testing/single-act-statement/rule.js +0 -33
  568. /package/dist/{architecture → domain/architecture}/consistent-barrel-files/exports-only-rule.d.ts +0 -0
  569. /package/dist/{architecture → domain/architecture}/consistent-barrel-files/no-reexports-outside-barrels-rule.d.ts +0 -0
  570. /package/dist/{architecture → domain/architecture}/consistent-barrel-files/rule.d.ts +0 -0
  571. /package/dist/{core → domain/core}/prefer-interface-types/rule.d.ts +0 -0
  572. /package/dist/{core → domain/core}/prefer-interface-types/test-helpers.d.ts +0 -0
  573. /package/dist/{docs → domain/docs}/no-interface-member-docs/comment-utilities-test-helpers.d.ts +0 -0
  574. /package/dist/{docs → domain/docs}/no-interface-member-docs/rule.d.ts +0 -0
  575. /package/dist/{docs → domain/docs}/no-interface-member-docs/test-helpers.d.ts +0 -0
  576. /package/dist/{docs → domain/docs}/require-example-language/empty-fence-fixes.d.ts +0 -0
  577. /package/dist/{docs → domain/docs}/require-example-language/example-utilities.d.ts +0 -0
  578. /package/dist/{docs → domain/docs}/require-example-language/rule.d.ts +0 -0
  579. /package/dist/{docs → domain/docs}/require-example-language/types.d.ts +0 -0
  580. /package/dist/{docs → domain/docs}/single-line-jsdoc/single-line-jsdoc-content.d.ts +0 -0
  581. /package/dist/{docs → domain/docs}/test-helpers.d.ts +0 -0
  582. /package/dist/{testing → domain/testing}/prefer-vi-mocked-import/match-helpers.d.ts +0 -0
  583. /package/dist/{testing → domain/testing}/prefer-vi-mocked-import/match-walk.d.ts +0 -0
  584. /package/dist/{testing → domain/testing}/prefer-vi-mocked-import/rule.d.ts +0 -0
  585. /package/dist/{testing → domain/testing}/require-test-companion/require-test-companion-options.d.ts +0 -0
  586. /package/dist/{testing → domain/testing}/require-test-companion/rule.d.ts +0 -0
  587. /package/dist/{testing → domain/testing}/require-test-companion/types.d.ts +0 -0
@@ -0,0 +1,97 @@
1
+ import { TSESTree } from "@typescript-eslint/utils";
2
+ import type { ShorthandContext, SupportedProperty } from "./types.js";
3
+ /**
4
+ * Checks whether a property can remain in shorthand form after replacement.
5
+ * @param context Property shorthand decision context.
6
+ * @returns True when shorthand syntax remains valid.
7
+ * @example
8
+ * ```typescript
9
+ * const keepShorthand = canUseShorthand(context);
10
+ * ```
11
+ */
12
+ declare function canUseShorthand(context: ShorthandContext): boolean;
13
+ /**
14
+ * Resolves the expression returned by the mock factory.
15
+ * @param factoryArgument Mock factory function expression.
16
+ * @returns Returned expression when one is present.
17
+ * @example
18
+ * ```typescript
19
+ * const returnExpression = getFactoryReturnExpression(factoryArgument);
20
+ * ```
21
+ */
22
+ declare function getFactoryReturnExpression(factoryArgument: TSESTree.ArrowFunctionExpression | TSESTree.FunctionExpression): TSESTree.Expression | undefined;
23
+ /**
24
+ * Extracts the module specifier from a mock call argument.
25
+ * @param moduleArgument Import expression or string literal argument.
26
+ * @returns Static module specifier when it can be determined.
27
+ * @example
28
+ * ```typescript
29
+ * const moduleSpecifier = getModuleSpecifier(moduleArgument);
30
+ * ```
31
+ */
32
+ declare function getModuleSpecifier(moduleArgument: TSESTree.Expression): string | undefined;
33
+ /**
34
+ * Converts an object property key node into a stable string name.
35
+ * @param propertyKey Property key node from the object literal.
36
+ * @returns Property name when the key is statically known.
37
+ * @example
38
+ * ```typescript
39
+ * const propertyName = getPropertyName(property.key);
40
+ * ```
41
+ */
42
+ declare function getPropertyName(propertyKey: TSESTree.PropertyName): string | undefined;
43
+ /**
44
+ * Checks whether an expression's cast chain contains an escape-hatch cast through unknown or any.
45
+ * @param expression Expression to inspect.
46
+ * @returns True when at least one cast in the chain uses unknown or any as the type annotation.
47
+ * @example
48
+ * ```typescript
49
+ * const isEscapeHatch = hasEscapeHatchCast(expression);
50
+ * ```
51
+ */
52
+ declare function hasEscapeHatchCast(expression: TSESTree.Expression): boolean;
53
+ /**
54
+ * Narrows object literal elements to the subset the fixer can rewrite safely.
55
+ * @param property Object literal element to inspect.
56
+ * @returns True when the property is supported by the fixer.
57
+ * @example
58
+ * ```typescript
59
+ * const supported = isSupportedProperty(property);
60
+ * ```
61
+ */
62
+ declare function isSupportedProperty(property: TSESTree.ObjectLiteralElement): property is SupportedProperty;
63
+ /**
64
+ * Detects `vi.mock(...)` and `vi.doMock(...)` calls.
65
+ * @param node Call expression being inspected.
66
+ * @returns True when the call targets a Vitest mock factory.
67
+ * @example
68
+ * ```typescript
69
+ * const isMockCall = isVitestMockCall(callExpression);
70
+ * ```
71
+ */
72
+ declare function isVitestMockCall(node: TSESTree.CallExpression): boolean;
73
+ /**
74
+ * Determines whether the fixed object literal must be parenthesized.
75
+ * @param factoryArgument Mock factory function expression.
76
+ * @param returnExpression Expression returned by the factory.
77
+ * @param objectExpression Object literal being rewritten.
78
+ * @returns True when parentheses are required around the object literal.
79
+ * @example
80
+ * ```typescript
81
+ * const wrapObject = shouldWrapImplicitObject(factoryArgument, returnExpression, objectExpression);
82
+ * ```
83
+ */
84
+ declare function shouldWrapImplicitObject(factoryArgument: TSESTree.ArrowFunctionExpression | TSESTree.FunctionExpression, returnExpression: TSESTree.Expression, objectExpression: TSESTree.ObjectExpression): boolean;
85
+ /**
86
+ * Checks whether an expression's cast chain contains an escape-hatch cast through unknown or any.
87
+ * Removes surrounding cast wrappers from an expression.
88
+ * @param expression Expression to unwrap.
89
+ * @returns The innermost non-cast expression.
90
+ * @example
91
+ * ```typescript
92
+ * const baseExpression = unwrapExpression(expression);
93
+ * ```
94
+ */
95
+ declare function unwrapExpression(expression: TSESTree.Expression): TSESTree.Expression;
96
+ export { canUseShorthand, getFactoryReturnExpression, getModuleSpecifier, getPropertyName, hasEscapeHatchCast, isSupportedProperty, isVitestMockCall, shouldWrapImplicitObject, unwrapExpression, };
97
+ //# sourceMappingURL=ast-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ast-helpers.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/prefer-vitest-incremental-casts/ast-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEnE;;;;;;;;GAQG;AACH,iBAAS,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAU3D;AAED;;;;;;;;GAQG;AACH,iBAAS,0BAA0B,CACjC,eAAe,EACX,QAAQ,CAAC,uBAAuB,GAChC,QAAQ,CAAC,kBAAkB,GAC9B,QAAQ,CAAC,UAAU,GAAG,SAAS,CAYjC;AAED;;;;;;;;GAQG;AACH,iBAAS,kBAAkB,CACzB,cAAc,EAAE,QAAQ,CAAC,UAAU,GAClC,MAAM,GAAG,SAAS,CAkBpB;AAED;;;;;;;;GAQG;AACH,iBAAS,eAAe,CACtB,WAAW,EAAE,QAAQ,CAAC,YAAY,GACjC,MAAM,GAAG,SAAS,CAapB;AAED;;;;;;;;GAQG;AACH,iBAAS,kBAAkB,CAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,GAAG,OAAO,CAoBpE;AAED;;;;;;;;GAQG;AACH,iBAAS,mBAAmB,CAC1B,QAAQ,EAAE,QAAQ,CAAC,oBAAoB,GACtC,QAAQ,IAAI,iBAAiB,CAQ/B;AAED;;;;;;;;GAQG;AACH,iBAAS,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,cAAc,GAAG,OAAO,CAahE;AAED;;;;;;;;;;GAUG;AACH,iBAAS,wBAAwB,CAC/B,eAAe,EACX,QAAQ,CAAC,uBAAuB,GAChC,QAAQ,CAAC,kBAAkB,EAC/B,gBAAgB,EAAE,QAAQ,CAAC,UAAU,EACrC,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB,GAC1C,OAAO,CAMT;AAED;;;;;;;;;GASG;AACH,iBAAS,gBAAgB,CACvB,UAAU,EAAE,QAAQ,CAAC,UAAU,GAC9B,QAAQ,CAAC,UAAU,CAYrB;AAED,OAAO,EACL,eAAe,EACf,0BAA0B,EAC1B,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,wBAAwB,EACxB,gBAAgB,GACjB,CAAC"}
@@ -0,0 +1,174 @@
1
+ import { TSESTree } from "@typescript-eslint/utils";
2
+ /**
3
+ * Checks whether a property can remain in shorthand form after replacement.
4
+ * @param context Property shorthand decision context.
5
+ * @returns True when shorthand syntax remains valid.
6
+ * @example
7
+ * ```typescript
8
+ * const keepShorthand = canUseShorthand(context);
9
+ * ```
10
+ */
11
+ function canUseShorthand(context) {
12
+ const { baseValue, keyName, needsCast, property } = context;
13
+ return (!needsCast &&
14
+ baseValue.type === TSESTree.AST_NODE_TYPES.Identifier &&
15
+ property.key.type === TSESTree.AST_NODE_TYPES.Identifier &&
16
+ property.key.name === keyName &&
17
+ baseValue.name === keyName);
18
+ }
19
+ /**
20
+ * Resolves the expression returned by the mock factory.
21
+ * @param factoryArgument Mock factory function expression.
22
+ * @returns Returned expression when one is present.
23
+ * @example
24
+ * ```typescript
25
+ * const returnExpression = getFactoryReturnExpression(factoryArgument);
26
+ * ```
27
+ */
28
+ function getFactoryReturnExpression(factoryArgument) {
29
+ if (factoryArgument.body.type !== TSESTree.AST_NODE_TYPES.BlockStatement) {
30
+ return factoryArgument.body;
31
+ }
32
+ const returnStatement = factoryArgument.body.body.find((statement) => statement.type === TSESTree.AST_NODE_TYPES.ReturnStatement &&
33
+ statement.argument !== null);
34
+ return returnStatement?.argument ?? void 0;
35
+ }
36
+ /**
37
+ * Extracts the module specifier from a mock call argument.
38
+ * @param moduleArgument Import expression or string literal argument.
39
+ * @returns Static module specifier when it can be determined.
40
+ * @example
41
+ * ```typescript
42
+ * const moduleSpecifier = getModuleSpecifier(moduleArgument);
43
+ * ```
44
+ */
45
+ function getModuleSpecifier(moduleArgument) {
46
+ if (moduleArgument.type === TSESTree.AST_NODE_TYPES.ImportExpression) {
47
+ const { source } = moduleArgument;
48
+ if (source.type === TSESTree.AST_NODE_TYPES.Literal &&
49
+ typeof source.value === "string") {
50
+ return source.value;
51
+ }
52
+ return void 0;
53
+ }
54
+ return moduleArgument.type === TSESTree.AST_NODE_TYPES.Literal &&
55
+ typeof moduleArgument.value === "string"
56
+ ? moduleArgument.value
57
+ : void 0;
58
+ }
59
+ /**
60
+ * Converts an object property key node into a stable string name.
61
+ * @param propertyKey Property key node from the object literal.
62
+ * @returns Property name when the key is statically known.
63
+ * @example
64
+ * ```typescript
65
+ * const propertyName = getPropertyName(property.key);
66
+ * ```
67
+ */
68
+ function getPropertyName(propertyKey) {
69
+ if (propertyKey.type === TSESTree.AST_NODE_TYPES.Identifier) {
70
+ return propertyKey.name;
71
+ }
72
+ if (propertyKey.type === TSESTree.AST_NODE_TYPES.Literal) {
73
+ return typeof propertyKey.value === "string" ||
74
+ typeof propertyKey.value === "number"
75
+ ? String(propertyKey.value)
76
+ : void 0;
77
+ }
78
+ return void 0;
79
+ }
80
+ /**
81
+ * Checks whether an expression's cast chain contains an escape-hatch cast through unknown or any.
82
+ * @param expression Expression to inspect.
83
+ * @returns True when at least one cast in the chain uses unknown or any as the type annotation.
84
+ * @example
85
+ * ```typescript
86
+ * const isEscapeHatch = hasEscapeHatchCast(expression);
87
+ * ```
88
+ */
89
+ function hasEscapeHatchCast(expression) {
90
+ let current = expression;
91
+ while (current.type === TSESTree.AST_NODE_TYPES.TSAsExpression ||
92
+ current.type === TSESTree.AST_NODE_TYPES.TSTypeAssertion ||
93
+ current.type === TSESTree.AST_NODE_TYPES.TSSatisfiesExpression) {
94
+ if (current.typeAnnotation.type ===
95
+ TSESTree.AST_NODE_TYPES.TSUnknownKeyword ||
96
+ current.typeAnnotation.type === TSESTree.AST_NODE_TYPES.TSAnyKeyword) {
97
+ return true;
98
+ }
99
+ current = current.expression;
100
+ }
101
+ return false;
102
+ }
103
+ /**
104
+ * Narrows object literal elements to the subset the fixer can rewrite safely.
105
+ * @param property Object literal element to inspect.
106
+ * @returns True when the property is supported by the fixer.
107
+ * @example
108
+ * ```typescript
109
+ * const supported = isSupportedProperty(property);
110
+ * ```
111
+ */
112
+ function isSupportedProperty(property) {
113
+ return (property.type === TSESTree.AST_NODE_TYPES.Property &&
114
+ !property.computed &&
115
+ property.kind === "init" &&
116
+ !property.method &&
117
+ property.value.type !== TSESTree.AST_NODE_TYPES.AssignmentPattern);
118
+ }
119
+ /**
120
+ * Detects `vi.mock(...)` and `vi.doMock(...)` calls.
121
+ * @param node Call expression being inspected.
122
+ * @returns True when the call targets a Vitest mock factory.
123
+ * @example
124
+ * ```typescript
125
+ * const isMockCall = isVitestMockCall(callExpression);
126
+ * ```
127
+ */
128
+ function isVitestMockCall(node) {
129
+ if (node.callee.type !== TSESTree.AST_NODE_TYPES.MemberExpression) {
130
+ return false;
131
+ }
132
+ const { object, property } = node.callee;
133
+ return (object.type === TSESTree.AST_NODE_TYPES.Identifier &&
134
+ object.name === "vi" &&
135
+ property.type === TSESTree.AST_NODE_TYPES.Identifier &&
136
+ (property.name === "mock" || property.name === "doMock"));
137
+ }
138
+ /**
139
+ * Determines whether the fixed object literal must be parenthesized.
140
+ * @param factoryArgument Mock factory function expression.
141
+ * @param returnExpression Expression returned by the factory.
142
+ * @param objectExpression Object literal being rewritten.
143
+ * @returns True when parentheses are required around the object literal.
144
+ * @example
145
+ * ```typescript
146
+ * const wrapObject = shouldWrapImplicitObject(factoryArgument, returnExpression, objectExpression);
147
+ * ```
148
+ */
149
+ function shouldWrapImplicitObject(factoryArgument, returnExpression, objectExpression) {
150
+ return (factoryArgument.body.type !== TSESTree.AST_NODE_TYPES.BlockStatement &&
151
+ (returnExpression.range[0] !== objectExpression.range[0] ||
152
+ returnExpression.range[1] !== objectExpression.range[1]));
153
+ }
154
+ /**
155
+ * Checks whether an expression's cast chain contains an escape-hatch cast through unknown or any.
156
+ * Removes surrounding cast wrappers from an expression.
157
+ * @param expression Expression to unwrap.
158
+ * @returns The innermost non-cast expression.
159
+ * @example
160
+ * ```typescript
161
+ * const baseExpression = unwrapExpression(expression);
162
+ * ```
163
+ */
164
+ function unwrapExpression(expression) {
165
+ let currentExpression = expression;
166
+ while (currentExpression.type === TSESTree.AST_NODE_TYPES.TSAsExpression ||
167
+ currentExpression.type === TSESTree.AST_NODE_TYPES.TSSatisfiesExpression ||
168
+ currentExpression.type === TSESTree.AST_NODE_TYPES.TSTypeAssertion) {
169
+ currentExpression = currentExpression.expression;
170
+ }
171
+ return currentExpression;
172
+ }
173
+ export { canUseShorthand, getFactoryReturnExpression, getModuleSpecifier, getPropertyName, hasEscapeHatchCast, isSupportedProperty, isVitestMockCall, shouldWrapImplicitObject, unwrapExpression, };
174
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN0LWhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3RpbmcvcHJlZmVyLXZpdGVzdC1pbmNyZW1lbnRhbC1jYXN0cy9hc3QtaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFJcEQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLGVBQWUsQ0FBQyxPQUF5QjtJQUNoRCxNQUFNLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBRTVELE9BQU8sQ0FDTCxDQUFDLFNBQVM7UUFDVixTQUFTLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxjQUFjLENBQUMsVUFBVTtRQUNyRCxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsY0FBYyxDQUFDLFVBQVU7UUFDeEQsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssT0FBTztRQUM3QixTQUFTLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FDM0IsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsMEJBQTBCLENBQ2pDLGVBRStCO0lBRS9CLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLGNBQWMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN6RSxPQUFPLGVBQWUsQ0FBQyxJQUFJLENBQUM7SUFDOUIsQ0FBQztJQUVELE1BQU0sZUFBZSxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDcEQsQ0FBQyxTQUFTLEVBQXlDLEVBQUUsQ0FDbkQsU0FBUyxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsY0FBYyxDQUFDLGVBQWU7UUFDMUQsU0FBUyxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQzlCLENBQUM7SUFFRixPQUFPLGVBQWUsRUFBRSxRQUFRLElBQUksS0FBSyxDQUFDLENBQUM7QUFDN0MsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxrQkFBa0IsQ0FDekIsY0FBbUM7SUFFbkMsSUFBSSxjQUFjLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUNyRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsY0FBYyxDQUFDO1FBRWxDLElBQ0UsTUFBTSxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsY0FBYyxDQUFDLE9BQU87WUFDL0MsT0FBTyxNQUFNLENBQUMsS0FBSyxLQUFLLFFBQVEsRUFDaEMsQ0FBQztZQUNELE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQztRQUN0QixDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRUQsT0FBTyxjQUFjLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxjQUFjLENBQUMsT0FBTztRQUM1RCxPQUFPLGNBQWMsQ0FBQyxLQUFLLEtBQUssUUFBUTtRQUN4QyxDQUFDLENBQUMsY0FBYyxDQUFDLEtBQUs7UUFDdEIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2IsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxlQUFlLENBQ3RCLFdBQWtDO0lBRWxDLElBQUksV0FBVyxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQzVELE9BQU8sV0FBVyxDQUFDLElBQUksQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxXQUFXLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDekQsT0FBTyxPQUFPLFdBQVcsQ0FBQyxLQUFLLEtBQUssUUFBUTtZQUMxQyxPQUFPLFdBQVcsQ0FBQyxLQUFLLEtBQUssUUFBUTtZQUNyQyxDQUFDLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7WUFDM0IsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVELE9BQU8sS0FBSyxDQUFDLENBQUM7QUFDaEIsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxrQkFBa0IsQ0FBQyxVQUErQjtJQUN6RCxJQUFJLE9BQU8sR0FBd0IsVUFBVSxDQUFDO0lBRTlDLE9BQ0UsT0FBTyxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsY0FBYyxDQUFDLGNBQWM7UUFDdkQsT0FBTyxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsY0FBYyxDQUFDLGVBQWU7UUFDeEQsT0FBTyxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsY0FBYyxDQUFDLHFCQUFxQixFQUM5RCxDQUFDO1FBQ0QsSUFDRSxPQUFPLENBQUMsY0FBYyxDQUFDLElBQUk7WUFDekIsUUFBUSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0I7WUFDMUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQ3BFLENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxPQUFPLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQztJQUMvQixDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLG1CQUFtQixDQUMxQixRQUF1QztJQUV2QyxPQUFPLENBQ0wsUUFBUSxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsY0FBYyxDQUFDLFFBQVE7UUFDbEQsQ0FBQyxRQUFRLENBQUMsUUFBUTtRQUNsQixRQUFRLENBQUMsSUFBSSxLQUFLLE1BQU07UUFDeEIsQ0FBQyxRQUFRLENBQUMsTUFBTTtRQUNoQixRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUNsRSxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxnQkFBZ0IsQ0FBQyxJQUE2QjtJQUNyRCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUNsRSxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7SUFFekMsT0FBTyxDQUNMLE1BQU0sQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLGNBQWMsQ0FBQyxVQUFVO1FBQ2xELE1BQU0sQ0FBQyxJQUFJLEtBQUssSUFBSTtRQUNwQixRQUFRLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxjQUFjLENBQUMsVUFBVTtRQUNwRCxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssTUFBTSxJQUFJLFFBQVEsQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQ3pELENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7R0FVRztBQUNILFNBQVMsd0JBQXdCLENBQy9CLGVBRStCLEVBQy9CLGdCQUFxQyxFQUNyQyxnQkFBMkM7SUFFM0MsT0FBTyxDQUNMLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxjQUFjLENBQUMsY0FBYztRQUNwRSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ3RELGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDM0QsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFTLGdCQUFnQixDQUN2QixVQUErQjtJQUUvQixJQUFJLGlCQUFpQixHQUFHLFVBQVUsQ0FBQztJQUVuQyxPQUNFLGlCQUFpQixDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsY0FBYyxDQUFDLGNBQWM7UUFDakUsaUJBQWlCLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxjQUFjLENBQUMscUJBQXFCO1FBQ3hFLGlCQUFpQixDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsY0FBYyxDQUFDLGVBQWUsRUFDbEUsQ0FBQztRQUNELGlCQUFpQixHQUFHLGlCQUFpQixDQUFDLFVBQVUsQ0FBQztJQUNuRCxDQUFDO0lBRUQsT0FBTyxpQkFBaUIsQ0FBQztBQUMzQixDQUFDO0FBRUQsT0FBTyxFQUNMLGVBQWUsRUFDZiwwQkFBMEIsRUFDMUIsa0JBQWtCLEVBQ2xCLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLGdCQUFnQixFQUNoQix3QkFBd0IsRUFDeEIsZ0JBQWdCLEdBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUU0VTVHJlZSB9IGZyb20gXCJAdHlwZXNjcmlwdC1lc2xpbnQvdXRpbHNcIjtcclxuXHJcbmltcG9ydCB0eXBlIHsgU2hvcnRoYW5kQ29udGV4dCwgU3VwcG9ydGVkUHJvcGVydHkgfSBmcm9tIFwiLi90eXBlc1wiO1xyXG5cclxuLyoqXHJcbiAqIENoZWNrcyB3aGV0aGVyIGEgcHJvcGVydHkgY2FuIHJlbWFpbiBpbiBzaG9ydGhhbmQgZm9ybSBhZnRlciByZXBsYWNlbWVudC5cclxuICogQHBhcmFtIGNvbnRleHQgUHJvcGVydHkgc2hvcnRoYW5kIGRlY2lzaW9uIGNvbnRleHQuXHJcbiAqIEByZXR1cm5zIFRydWUgd2hlbiBzaG9ydGhhbmQgc3ludGF4IHJlbWFpbnMgdmFsaWQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3Qga2VlcFNob3J0aGFuZCA9IGNhblVzZVNob3J0aGFuZChjb250ZXh0KTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBjYW5Vc2VTaG9ydGhhbmQoY29udGV4dDogU2hvcnRoYW5kQ29udGV4dCk6IGJvb2xlYW4ge1xyXG4gIGNvbnN0IHsgYmFzZVZhbHVlLCBrZXlOYW1lLCBuZWVkc0Nhc3QsIHByb3BlcnR5IH0gPSBjb250ZXh0O1xyXG5cclxuICByZXR1cm4gKFxyXG4gICAgIW5lZWRzQ2FzdCAmJlxyXG4gICAgYmFzZVZhbHVlLnR5cGUgPT09IFRTRVNUcmVlLkFTVF9OT0RFX1RZUEVTLklkZW50aWZpZXIgJiZcclxuICAgIHByb3BlcnR5LmtleS50eXBlID09PSBUU0VTVHJlZS5BU1RfTk9ERV9UWVBFUy5JZGVudGlmaWVyICYmXHJcbiAgICBwcm9wZXJ0eS5rZXkubmFtZSA9PT0ga2V5TmFtZSAmJlxyXG4gICAgYmFzZVZhbHVlLm5hbWUgPT09IGtleU5hbWVcclxuICApO1xyXG59XHJcblxyXG4vKipcclxuICogUmVzb2x2ZXMgdGhlIGV4cHJlc3Npb24gcmV0dXJuZWQgYnkgdGhlIG1vY2sgZmFjdG9yeS5cclxuICogQHBhcmFtIGZhY3RvcnlBcmd1bWVudCBNb2NrIGZhY3RvcnkgZnVuY3Rpb24gZXhwcmVzc2lvbi5cclxuICogQHJldHVybnMgUmV0dXJuZWQgZXhwcmVzc2lvbiB3aGVuIG9uZSBpcyBwcmVzZW50LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IHJldHVybkV4cHJlc3Npb24gPSBnZXRGYWN0b3J5UmV0dXJuRXhwcmVzc2lvbihmYWN0b3J5QXJndW1lbnQpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGdldEZhY3RvcnlSZXR1cm5FeHByZXNzaW9uKFxyXG4gIGZhY3RvcnlBcmd1bWVudDpcclxuICAgIHwgVFNFU1RyZWUuQXJyb3dGdW5jdGlvbkV4cHJlc3Npb25cclxuICAgIHwgVFNFU1RyZWUuRnVuY3Rpb25FeHByZXNzaW9uLFxyXG4pOiBUU0VTVHJlZS5FeHByZXNzaW9uIHwgdW5kZWZpbmVkIHtcclxuICBpZiAoZmFjdG9yeUFyZ3VtZW50LmJvZHkudHlwZSAhPT0gVFNFU1RyZWUuQVNUX05PREVfVFlQRVMuQmxvY2tTdGF0ZW1lbnQpIHtcclxuICAgIHJldHVybiBmYWN0b3J5QXJndW1lbnQuYm9keTtcclxuICB9XHJcblxyXG4gIGNvbnN0IHJldHVyblN0YXRlbWVudCA9IGZhY3RvcnlBcmd1bWVudC5ib2R5LmJvZHkuZmluZChcclxuICAgIChzdGF0ZW1lbnQpOiBzdGF0ZW1lbnQgaXMgVFNFU1RyZWUuUmV0dXJuU3RhdGVtZW50ID0+XHJcbiAgICAgIHN0YXRlbWVudC50eXBlID09PSBUU0VTVHJlZS5BU1RfTk9ERV9UWVBFUy5SZXR1cm5TdGF0ZW1lbnQgJiZcclxuICAgICAgc3RhdGVtZW50LmFyZ3VtZW50ICE9PSBudWxsLFxyXG4gICk7XHJcblxyXG4gIHJldHVybiByZXR1cm5TdGF0ZW1lbnQ/LmFyZ3VtZW50ID8/IHZvaWQgMDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEV4dHJhY3RzIHRoZSBtb2R1bGUgc3BlY2lmaWVyIGZyb20gYSBtb2NrIGNhbGwgYXJndW1lbnQuXHJcbiAqIEBwYXJhbSBtb2R1bGVBcmd1bWVudCBJbXBvcnQgZXhwcmVzc2lvbiBvciBzdHJpbmcgbGl0ZXJhbCBhcmd1bWVudC5cclxuICogQHJldHVybnMgU3RhdGljIG1vZHVsZSBzcGVjaWZpZXIgd2hlbiBpdCBjYW4gYmUgZGV0ZXJtaW5lZC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCBtb2R1bGVTcGVjaWZpZXIgPSBnZXRNb2R1bGVTcGVjaWZpZXIobW9kdWxlQXJndW1lbnQpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGdldE1vZHVsZVNwZWNpZmllcihcclxuICBtb2R1bGVBcmd1bWVudDogVFNFU1RyZWUuRXhwcmVzc2lvbixcclxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICBpZiAobW9kdWxlQXJndW1lbnQudHlwZSA9PT0gVFNFU1RyZWUuQVNUX05PREVfVFlQRVMuSW1wb3J0RXhwcmVzc2lvbikge1xyXG4gICAgY29uc3QgeyBzb3VyY2UgfSA9IG1vZHVsZUFyZ3VtZW50O1xyXG5cclxuICAgIGlmIChcclxuICAgICAgc291cmNlLnR5cGUgPT09IFRTRVNUcmVlLkFTVF9OT0RFX1RZUEVTLkxpdGVyYWwgJiZcclxuICAgICAgdHlwZW9mIHNvdXJjZS52YWx1ZSA9PT0gXCJzdHJpbmdcIlxyXG4gICAgKSB7XHJcbiAgICAgIHJldHVybiBzb3VyY2UudmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHZvaWQgMDtcclxuICB9XHJcblxyXG4gIHJldHVybiBtb2R1bGVBcmd1bWVudC50eXBlID09PSBUU0VTVHJlZS5BU1RfTk9ERV9UWVBFUy5MaXRlcmFsICYmXHJcbiAgICB0eXBlb2YgbW9kdWxlQXJndW1lbnQudmFsdWUgPT09IFwic3RyaW5nXCJcclxuICAgID8gbW9kdWxlQXJndW1lbnQudmFsdWVcclxuICAgIDogdm9pZCAwO1xyXG59XHJcblxyXG4vKipcclxuICogQ29udmVydHMgYW4gb2JqZWN0IHByb3BlcnR5IGtleSBub2RlIGludG8gYSBzdGFibGUgc3RyaW5nIG5hbWUuXHJcbiAqIEBwYXJhbSBwcm9wZXJ0eUtleSBQcm9wZXJ0eSBrZXkgbm9kZSBmcm9tIHRoZSBvYmplY3QgbGl0ZXJhbC5cclxuICogQHJldHVybnMgUHJvcGVydHkgbmFtZSB3aGVuIHRoZSBrZXkgaXMgc3RhdGljYWxseSBrbm93bi5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCBwcm9wZXJ0eU5hbWUgPSBnZXRQcm9wZXJ0eU5hbWUocHJvcGVydHkua2V5KTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBnZXRQcm9wZXJ0eU5hbWUoXHJcbiAgcHJvcGVydHlLZXk6IFRTRVNUcmVlLlByb3BlcnR5TmFtZSxcclxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICBpZiAocHJvcGVydHlLZXkudHlwZSA9PT0gVFNFU1RyZWUuQVNUX05PREVfVFlQRVMuSWRlbnRpZmllcikge1xyXG4gICAgcmV0dXJuIHByb3BlcnR5S2V5Lm5hbWU7XHJcbiAgfVxyXG5cclxuICBpZiAocHJvcGVydHlLZXkudHlwZSA9PT0gVFNFU1RyZWUuQVNUX05PREVfVFlQRVMuTGl0ZXJhbCkge1xyXG4gICAgcmV0dXJuIHR5cGVvZiBwcm9wZXJ0eUtleS52YWx1ZSA9PT0gXCJzdHJpbmdcIiB8fFxyXG4gICAgICB0eXBlb2YgcHJvcGVydHlLZXkudmFsdWUgPT09IFwibnVtYmVyXCJcclxuICAgICAgPyBTdHJpbmcocHJvcGVydHlLZXkudmFsdWUpXHJcbiAgICAgIDogdm9pZCAwO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHZvaWQgMDtcclxufVxyXG5cclxuLyoqXHJcbiAqIENoZWNrcyB3aGV0aGVyIGFuIGV4cHJlc3Npb24ncyBjYXN0IGNoYWluIGNvbnRhaW5zIGFuIGVzY2FwZS1oYXRjaCBjYXN0IHRocm91Z2ggdW5rbm93biBvciBhbnkuXHJcbiAqIEBwYXJhbSBleHByZXNzaW9uIEV4cHJlc3Npb24gdG8gaW5zcGVjdC5cclxuICogQHJldHVybnMgVHJ1ZSB3aGVuIGF0IGxlYXN0IG9uZSBjYXN0IGluIHRoZSBjaGFpbiB1c2VzIHVua25vd24gb3IgYW55IGFzIHRoZSB0eXBlIGFubm90YXRpb24uXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3QgaXNFc2NhcGVIYXRjaCA9IGhhc0VzY2FwZUhhdGNoQ2FzdChleHByZXNzaW9uKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBoYXNFc2NhcGVIYXRjaENhc3QoZXhwcmVzc2lvbjogVFNFU1RyZWUuRXhwcmVzc2lvbik6IGJvb2xlYW4ge1xyXG4gIGxldCBjdXJyZW50OiBUU0VTVHJlZS5FeHByZXNzaW9uID0gZXhwcmVzc2lvbjtcclxuXHJcbiAgd2hpbGUgKFxyXG4gICAgY3VycmVudC50eXBlID09PSBUU0VTVHJlZS5BU1RfTk9ERV9UWVBFUy5UU0FzRXhwcmVzc2lvbiB8fFxyXG4gICAgY3VycmVudC50eXBlID09PSBUU0VTVHJlZS5BU1RfTk9ERV9UWVBFUy5UU1R5cGVBc3NlcnRpb24gfHxcclxuICAgIGN1cnJlbnQudHlwZSA9PT0gVFNFU1RyZWUuQVNUX05PREVfVFlQRVMuVFNTYXRpc2ZpZXNFeHByZXNzaW9uXHJcbiAgKSB7XHJcbiAgICBpZiAoXHJcbiAgICAgIGN1cnJlbnQudHlwZUFubm90YXRpb24udHlwZSA9PT1cclxuICAgICAgICBUU0VTVHJlZS5BU1RfTk9ERV9UWVBFUy5UU1Vua25vd25LZXl3b3JkIHx8XHJcbiAgICAgIGN1cnJlbnQudHlwZUFubm90YXRpb24udHlwZSA9PT0gVFNFU1RyZWUuQVNUX05PREVfVFlQRVMuVFNBbnlLZXl3b3JkXHJcbiAgICApIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgY3VycmVudCA9IGN1cnJlbnQuZXhwcmVzc2lvbjtcclxuICB9XHJcblxyXG4gIHJldHVybiBmYWxzZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIE5hcnJvd3Mgb2JqZWN0IGxpdGVyYWwgZWxlbWVudHMgdG8gdGhlIHN1YnNldCB0aGUgZml4ZXIgY2FuIHJld3JpdGUgc2FmZWx5LlxyXG4gKiBAcGFyYW0gcHJvcGVydHkgT2JqZWN0IGxpdGVyYWwgZWxlbWVudCB0byBpbnNwZWN0LlxyXG4gKiBAcmV0dXJucyBUcnVlIHdoZW4gdGhlIHByb3BlcnR5IGlzIHN1cHBvcnRlZCBieSB0aGUgZml4ZXIuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3Qgc3VwcG9ydGVkID0gaXNTdXBwb3J0ZWRQcm9wZXJ0eShwcm9wZXJ0eSk7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gaXNTdXBwb3J0ZWRQcm9wZXJ0eShcclxuICBwcm9wZXJ0eTogVFNFU1RyZWUuT2JqZWN0TGl0ZXJhbEVsZW1lbnQsXHJcbik6IHByb3BlcnR5IGlzIFN1cHBvcnRlZFByb3BlcnR5IHtcclxuICByZXR1cm4gKFxyXG4gICAgcHJvcGVydHkudHlwZSA9PT0gVFNFU1RyZWUuQVNUX05PREVfVFlQRVMuUHJvcGVydHkgJiZcclxuICAgICFwcm9wZXJ0eS5jb21wdXRlZCAmJlxyXG4gICAgcHJvcGVydHkua2luZCA9PT0gXCJpbml0XCIgJiZcclxuICAgICFwcm9wZXJ0eS5tZXRob2QgJiZcclxuICAgIHByb3BlcnR5LnZhbHVlLnR5cGUgIT09IFRTRVNUcmVlLkFTVF9OT0RFX1RZUEVTLkFzc2lnbm1lbnRQYXR0ZXJuXHJcbiAgKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIERldGVjdHMgYHZpLm1vY2soLi4uKWAgYW5kIGB2aS5kb01vY2soLi4uKWAgY2FsbHMuXHJcbiAqIEBwYXJhbSBub2RlIENhbGwgZXhwcmVzc2lvbiBiZWluZyBpbnNwZWN0ZWQuXHJcbiAqIEByZXR1cm5zIFRydWUgd2hlbiB0aGUgY2FsbCB0YXJnZXRzIGEgVml0ZXN0IG1vY2sgZmFjdG9yeS5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCBpc01vY2tDYWxsID0gaXNWaXRlc3RNb2NrQ2FsbChjYWxsRXhwcmVzc2lvbik7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gaXNWaXRlc3RNb2NrQ2FsbChub2RlOiBUU0VTVHJlZS5DYWxsRXhwcmVzc2lvbik6IGJvb2xlYW4ge1xyXG4gIGlmIChub2RlLmNhbGxlZS50eXBlICE9PSBUU0VTVHJlZS5BU1RfTk9ERV9UWVBFUy5NZW1iZXJFeHByZXNzaW9uKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBjb25zdCB7IG9iamVjdCwgcHJvcGVydHkgfSA9IG5vZGUuY2FsbGVlO1xyXG5cclxuICByZXR1cm4gKFxyXG4gICAgb2JqZWN0LnR5cGUgPT09IFRTRVNUcmVlLkFTVF9OT0RFX1RZUEVTLklkZW50aWZpZXIgJiZcclxuICAgIG9iamVjdC5uYW1lID09PSBcInZpXCIgJiZcclxuICAgIHByb3BlcnR5LnR5cGUgPT09IFRTRVNUcmVlLkFTVF9OT0RFX1RZUEVTLklkZW50aWZpZXIgJiZcclxuICAgIChwcm9wZXJ0eS5uYW1lID09PSBcIm1vY2tcIiB8fCBwcm9wZXJ0eS5uYW1lID09PSBcImRvTW9ja1wiKVxyXG4gICk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGZpeGVkIG9iamVjdCBsaXRlcmFsIG11c3QgYmUgcGFyZW50aGVzaXplZC5cclxuICogQHBhcmFtIGZhY3RvcnlBcmd1bWVudCBNb2NrIGZhY3RvcnkgZnVuY3Rpb24gZXhwcmVzc2lvbi5cclxuICogQHBhcmFtIHJldHVybkV4cHJlc3Npb24gRXhwcmVzc2lvbiByZXR1cm5lZCBieSB0aGUgZmFjdG9yeS5cclxuICogQHBhcmFtIG9iamVjdEV4cHJlc3Npb24gT2JqZWN0IGxpdGVyYWwgYmVpbmcgcmV3cml0dGVuLlxyXG4gKiBAcmV0dXJucyBUcnVlIHdoZW4gcGFyZW50aGVzZXMgYXJlIHJlcXVpcmVkIGFyb3VuZCB0aGUgb2JqZWN0IGxpdGVyYWwuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3Qgd3JhcE9iamVjdCA9IHNob3VsZFdyYXBJbXBsaWNpdE9iamVjdChmYWN0b3J5QXJndW1lbnQsIHJldHVybkV4cHJlc3Npb24sIG9iamVjdEV4cHJlc3Npb24pO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIHNob3VsZFdyYXBJbXBsaWNpdE9iamVjdChcclxuICBmYWN0b3J5QXJndW1lbnQ6XHJcbiAgICB8IFRTRVNUcmVlLkFycm93RnVuY3Rpb25FeHByZXNzaW9uXHJcbiAgICB8IFRTRVNUcmVlLkZ1bmN0aW9uRXhwcmVzc2lvbixcclxuICByZXR1cm5FeHByZXNzaW9uOiBUU0VTVHJlZS5FeHByZXNzaW9uLFxyXG4gIG9iamVjdEV4cHJlc3Npb246IFRTRVNUcmVlLk9iamVjdEV4cHJlc3Npb24sXHJcbik6IGJvb2xlYW4ge1xyXG4gIHJldHVybiAoXHJcbiAgICBmYWN0b3J5QXJndW1lbnQuYm9keS50eXBlICE9PSBUU0VTVHJlZS5BU1RfTk9ERV9UWVBFUy5CbG9ja1N0YXRlbWVudCAmJlxyXG4gICAgKHJldHVybkV4cHJlc3Npb24ucmFuZ2VbMF0gIT09IG9iamVjdEV4cHJlc3Npb24ucmFuZ2VbMF0gfHxcclxuICAgICAgcmV0dXJuRXhwcmVzc2lvbi5yYW5nZVsxXSAhPT0gb2JqZWN0RXhwcmVzc2lvbi5yYW5nZVsxXSlcclxuICApO1xyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2tzIHdoZXRoZXIgYW4gZXhwcmVzc2lvbidzIGNhc3QgY2hhaW4gY29udGFpbnMgYW4gZXNjYXBlLWhhdGNoIGNhc3QgdGhyb3VnaCB1bmtub3duIG9yIGFueS5cclxuICogUmVtb3ZlcyBzdXJyb3VuZGluZyBjYXN0IHdyYXBwZXJzIGZyb20gYW4gZXhwcmVzc2lvbi5cclxuICogQHBhcmFtIGV4cHJlc3Npb24gRXhwcmVzc2lvbiB0byB1bndyYXAuXHJcbiAqIEByZXR1cm5zIFRoZSBpbm5lcm1vc3Qgbm9uLWNhc3QgZXhwcmVzc2lvbi5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCBiYXNlRXhwcmVzc2lvbiA9IHVud3JhcEV4cHJlc3Npb24oZXhwcmVzc2lvbik7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gdW53cmFwRXhwcmVzc2lvbihcclxuICBleHByZXNzaW9uOiBUU0VTVHJlZS5FeHByZXNzaW9uLFxyXG4pOiBUU0VTVHJlZS5FeHByZXNzaW9uIHtcclxuICBsZXQgY3VycmVudEV4cHJlc3Npb24gPSBleHByZXNzaW9uO1xyXG5cclxuICB3aGlsZSAoXHJcbiAgICBjdXJyZW50RXhwcmVzc2lvbi50eXBlID09PSBUU0VTVHJlZS5BU1RfTk9ERV9UWVBFUy5UU0FzRXhwcmVzc2lvbiB8fFxyXG4gICAgY3VycmVudEV4cHJlc3Npb24udHlwZSA9PT0gVFNFU1RyZWUuQVNUX05PREVfVFlQRVMuVFNTYXRpc2ZpZXNFeHByZXNzaW9uIHx8XHJcbiAgICBjdXJyZW50RXhwcmVzc2lvbi50eXBlID09PSBUU0VTVHJlZS5BU1RfTk9ERV9UWVBFUy5UU1R5cGVBc3NlcnRpb25cclxuICApIHtcclxuICAgIGN1cnJlbnRFeHByZXNzaW9uID0gY3VycmVudEV4cHJlc3Npb24uZXhwcmVzc2lvbjtcclxuICB9XHJcblxyXG4gIHJldHVybiBjdXJyZW50RXhwcmVzc2lvbjtcclxufVxyXG5cclxuZXhwb3J0IHtcclxuICBjYW5Vc2VTaG9ydGhhbmQsXHJcbiAgZ2V0RmFjdG9yeVJldHVybkV4cHJlc3Npb24sXHJcbiAgZ2V0TW9kdWxlU3BlY2lmaWVyLFxyXG4gIGdldFByb3BlcnR5TmFtZSxcclxuICBoYXNFc2NhcGVIYXRjaENhc3QsXHJcbiAgaXNTdXBwb3J0ZWRQcm9wZXJ0eSxcclxuICBpc1ZpdGVzdE1vY2tDYWxsLFxyXG4gIHNob3VsZFdyYXBJbXBsaWNpdE9iamVjdCxcclxuICB1bndyYXBFeHByZXNzaW9uLFxyXG59O1xyXG4iXX0=
@@ -0,0 +1,2 @@
1
+ export { preferVitestIncrementalCastsRule } from "./rule.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/prefer-vitest-incremental-casts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gCAAgC,EAAE,MAAM,QAAQ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { preferVitestIncrementalCastsRule } from "./rule.js";
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3RpbmcvcHJlZmVyLXZpdGVzdC1pbmNyZW1lbnRhbC1jYXN0cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBwcmVmZXJWaXRlc3RJbmNyZW1lbnRhbENhc3RzUnVsZSB9IGZyb20gXCIuL3J1bGVcIjtcbiJdfQ==
@@ -0,0 +1,14 @@
1
+ import { TSESTree } from "@typescript-eslint/utils";
2
+ import type { FactoryMatchInput } from "./types.js";
3
+ /**
4
+ * Extracts the mock-factory inputs needed for a rewrite attempt.
5
+ * @param callExpression Call expression to inspect.
6
+ * @returns Normalized factory input when the call is supported.
7
+ * @example
8
+ * ```typescript
9
+ * const factoryInput = getFactoryMatchInput(callExpression);
10
+ * ```
11
+ */
12
+ declare function getFactoryMatchInput(callExpression: TSESTree.CallExpression): FactoryMatchInput | undefined;
13
+ export { getFactoryMatchInput };
14
+ //# sourceMappingURL=match-input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"match-input.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/prefer-vitest-incremental-casts/match-input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,KAAK,EAEV,iBAAiB,EAElB,MAAM,SAAS,CAAC;AAgDjB;;;;;;;;GAQG;AACH,iBAAS,oBAAoB,CAC3B,cAAc,EAAE,QAAQ,CAAC,cAAc,GACtC,iBAAiB,GAAG,SAAS,CAU/B;AA+CD,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
@@ -0,0 +1,84 @@
1
+ import { TSESTree } from "@typescript-eslint/utils";
2
+ import { getFactoryReturnExpression, getModuleSpecifier, hasEscapeHatchCast, isVitestMockCall, unwrapExpression, } from "./ast-helpers.js";
3
+ /**
4
+ * Builds normalized match input from a supported factory call.
5
+ * @param mockArguments Supported mock-call arguments.
6
+ * @returns Normalized factory input when the returned value is an object literal.
7
+ * @example
8
+ * ```typescript
9
+ * const factoryInput = buildFactoryMatchInput(mockArguments);
10
+ * ```
11
+ */
12
+ function buildFactoryMatchInput(mockArguments) {
13
+ const { factoryArgument, moduleArgument } = mockArguments;
14
+ const moduleSpecifier = getModuleSpecifier(moduleArgument);
15
+ const returnExpression = getFactoryReturnExpression(factoryArgument);
16
+ if (moduleSpecifier === void 0 || returnExpression === void 0) {
17
+ return void 0;
18
+ }
19
+ const objectExpression = unwrapExpression(returnExpression);
20
+ if (objectExpression.type !== TSESTree.AST_NODE_TYPES.ObjectExpression ||
21
+ (returnExpression !== objectExpression &&
22
+ !hasEscapeHatchCast(returnExpression))) {
23
+ return void 0;
24
+ }
25
+ return {
26
+ factoryArgument,
27
+ moduleSpecifier,
28
+ objectExpression,
29
+ returnExpression,
30
+ };
31
+ }
32
+ /**
33
+ * Extracts the mock-factory inputs needed for a rewrite attempt.
34
+ * @param callExpression Call expression to inspect.
35
+ * @returns Normalized factory input when the call is supported.
36
+ * @example
37
+ * ```typescript
38
+ * const factoryInput = getFactoryMatchInput(callExpression);
39
+ * ```
40
+ */
41
+ function getFactoryMatchInput(callExpression) {
42
+ if (!isVitestMockCall(callExpression)) {
43
+ return void 0;
44
+ }
45
+ const mockArguments = getMockFactoryArguments(callExpression.arguments);
46
+ return mockArguments === void 0
47
+ ? void 0
48
+ : buildFactoryMatchInput(mockArguments);
49
+ }
50
+ /**
51
+ * Extracts valid mock-factory arguments from a call expression.
52
+ * @param argumentsList Arguments supplied to the mock call.
53
+ * @returns Normalized arguments when the call shape is supported.
54
+ * @example
55
+ * ```typescript
56
+ * const mockArguments = getMockFactoryArguments(callExpression.arguments);
57
+ * ```
58
+ */
59
+ function getMockFactoryArguments(argumentsList) {
60
+ const [moduleArgument, factoryArgument] = argumentsList;
61
+ if (moduleArgument === void 0 ||
62
+ factoryArgument === void 0 ||
63
+ moduleArgument.type === TSESTree.AST_NODE_TYPES.SpreadElement ||
64
+ factoryArgument.type === TSESTree.AST_NODE_TYPES.SpreadElement ||
65
+ !isFactoryFunctionExpression(factoryArgument)) {
66
+ return void 0;
67
+ }
68
+ return { factoryArgument, moduleArgument };
69
+ }
70
+ /**
71
+ * Determines whether an expression is a supported mock factory function.
72
+ * @param expression Expression to inspect.
73
+ * @returns True when the expression is a function compatible with the fixer.
74
+ * @example
75
+ * ```typescript
76
+ * const supported = isFactoryFunctionExpression(expression);
77
+ * ```
78
+ */
79
+ function isFactoryFunctionExpression(expression) {
80
+ return (expression.type === TSESTree.AST_NODE_TYPES.ArrowFunctionExpression ||
81
+ expression.type === TSESTree.AST_NODE_TYPES.FunctionExpression);
82
+ }
83
+ export { getFactoryMatchInput };
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2gtaW5wdXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3RpbmcvcHJlZmVyLXZpdGVzdC1pbmNyZW1lbnRhbC1jYXN0cy9tYXRjaC1pbnB1dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFRcEQsT0FBTyxFQUNMLDBCQUEwQixFQUMxQixrQkFBa0IsRUFDbEIsa0JBQWtCLEVBQ2xCLGdCQUFnQixFQUNoQixnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFFdkI7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLHNCQUFzQixDQUM3QixhQUFtQztJQUVuQyxNQUFNLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxHQUFHLGFBQWEsQ0FBQztJQUMxRCxNQUFNLGVBQWUsR0FBRyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMzRCxNQUFNLGdCQUFnQixHQUFHLDBCQUEwQixDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBRXJFLElBQUksZUFBZSxLQUFLLEtBQUssQ0FBQyxJQUFJLGdCQUFnQixLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDOUQsT0FBTyxLQUFLLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBRTVELElBQ0UsZ0JBQWdCLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxjQUFjLENBQUMsZ0JBQWdCO1FBQ2xFLENBQUMsZ0JBQWdCLEtBQUssZ0JBQWdCO1lBQ3BDLENBQUMsa0JBQWtCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxFQUN4QyxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRUQsT0FBTztRQUNMLGVBQWU7UUFDZixlQUFlO1FBQ2YsZ0JBQWdCO1FBQ2hCLGdCQUFnQjtLQUNqQixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxvQkFBb0IsQ0FDM0IsY0FBdUM7SUFFdkMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7UUFDdEMsT0FBTyxLQUFLLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxhQUFhLEdBQUcsdUJBQXVCLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRXhFLE9BQU8sYUFBYSxLQUFLLEtBQUssQ0FBQztRQUM3QixDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ1IsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQzVDLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsdUJBQXVCLENBQzlCLGFBQXlEO0lBRXpELE1BQU0sQ0FBQyxjQUFjLEVBQUUsZUFBZSxDQUFDLEdBQUcsYUFBYSxDQUFDO0lBRXhELElBQ0UsY0FBYyxLQUFLLEtBQUssQ0FBQztRQUN6QixlQUFlLEtBQUssS0FBSyxDQUFDO1FBQzFCLGNBQWMsQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLGNBQWMsQ0FBQyxhQUFhO1FBQzdELGVBQWUsQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLGNBQWMsQ0FBQyxhQUFhO1FBQzlELENBQUMsMkJBQTJCLENBQUMsZUFBZSxDQUFDLEVBQzdDLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxPQUFPLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxDQUFDO0FBQzdDLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsMkJBQTJCLENBQ2xDLFVBQStCO0lBRS9CLE9BQU8sQ0FDTCxVQUFVLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxjQUFjLENBQUMsdUJBQXVCO1FBQ25FLFVBQVUsQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FDL0QsQ0FBQztBQUNKLENBQUM7QUFFRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRTRVNUcmVlIH0gZnJvbSBcIkB0eXBlc2NyaXB0LWVzbGludC91dGlsc1wiO1xyXG5cclxuaW1wb3J0IHR5cGUge1xyXG4gIEZhY3RvcnlGdW5jdGlvbkV4cHJlc3Npb24sXHJcbiAgRmFjdG9yeU1hdGNoSW5wdXQsXHJcbiAgTW9ja0ZhY3RvcnlBcmd1bWVudHMsXHJcbn0gZnJvbSBcIi4vdHlwZXNcIjtcclxuXHJcbmltcG9ydCB7XHJcbiAgZ2V0RmFjdG9yeVJldHVybkV4cHJlc3Npb24sXHJcbiAgZ2V0TW9kdWxlU3BlY2lmaWVyLFxyXG4gIGhhc0VzY2FwZUhhdGNoQ2FzdCxcclxuICBpc1ZpdGVzdE1vY2tDYWxsLFxyXG4gIHVud3JhcEV4cHJlc3Npb24sXHJcbn0gZnJvbSBcIi4vYXN0LWhlbHBlcnNcIjtcclxuXHJcbi8qKlxyXG4gKiBCdWlsZHMgbm9ybWFsaXplZCBtYXRjaCBpbnB1dCBmcm9tIGEgc3VwcG9ydGVkIGZhY3RvcnkgY2FsbC5cclxuICogQHBhcmFtIG1vY2tBcmd1bWVudHMgU3VwcG9ydGVkIG1vY2stY2FsbCBhcmd1bWVudHMuXHJcbiAqIEByZXR1cm5zIE5vcm1hbGl6ZWQgZmFjdG9yeSBpbnB1dCB3aGVuIHRoZSByZXR1cm5lZCB2YWx1ZSBpcyBhbiBvYmplY3QgbGl0ZXJhbC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCBmYWN0b3J5SW5wdXQgPSBidWlsZEZhY3RvcnlNYXRjaElucHV0KG1vY2tBcmd1bWVudHMpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGJ1aWxkRmFjdG9yeU1hdGNoSW5wdXQoXHJcbiAgbW9ja0FyZ3VtZW50czogTW9ja0ZhY3RvcnlBcmd1bWVudHMsXHJcbik6IEZhY3RvcnlNYXRjaElucHV0IHwgdW5kZWZpbmVkIHtcclxuICBjb25zdCB7IGZhY3RvcnlBcmd1bWVudCwgbW9kdWxlQXJndW1lbnQgfSA9IG1vY2tBcmd1bWVudHM7XHJcbiAgY29uc3QgbW9kdWxlU3BlY2lmaWVyID0gZ2V0TW9kdWxlU3BlY2lmaWVyKG1vZHVsZUFyZ3VtZW50KTtcclxuICBjb25zdCByZXR1cm5FeHByZXNzaW9uID0gZ2V0RmFjdG9yeVJldHVybkV4cHJlc3Npb24oZmFjdG9yeUFyZ3VtZW50KTtcclxuXHJcbiAgaWYgKG1vZHVsZVNwZWNpZmllciA9PT0gdm9pZCAwIHx8IHJldHVybkV4cHJlc3Npb24gPT09IHZvaWQgMCkge1xyXG4gICAgcmV0dXJuIHZvaWQgMDtcclxuICB9XHJcblxyXG4gIGNvbnN0IG9iamVjdEV4cHJlc3Npb24gPSB1bndyYXBFeHByZXNzaW9uKHJldHVybkV4cHJlc3Npb24pO1xyXG5cclxuICBpZiAoXHJcbiAgICBvYmplY3RFeHByZXNzaW9uLnR5cGUgIT09IFRTRVNUcmVlLkFTVF9OT0RFX1RZUEVTLk9iamVjdEV4cHJlc3Npb24gfHxcclxuICAgIChyZXR1cm5FeHByZXNzaW9uICE9PSBvYmplY3RFeHByZXNzaW9uICYmXHJcbiAgICAgICFoYXNFc2NhcGVIYXRjaENhc3QocmV0dXJuRXhwcmVzc2lvbikpXHJcbiAgKSB7XHJcbiAgICByZXR1cm4gdm9pZCAwO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHtcclxuICAgIGZhY3RvcnlBcmd1bWVudCxcclxuICAgIG1vZHVsZVNwZWNpZmllcixcclxuICAgIG9iamVjdEV4cHJlc3Npb24sXHJcbiAgICByZXR1cm5FeHByZXNzaW9uLFxyXG4gIH07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBFeHRyYWN0cyB0aGUgbW9jay1mYWN0b3J5IGlucHV0cyBuZWVkZWQgZm9yIGEgcmV3cml0ZSBhdHRlbXB0LlxyXG4gKiBAcGFyYW0gY2FsbEV4cHJlc3Npb24gQ2FsbCBleHByZXNzaW9uIHRvIGluc3BlY3QuXHJcbiAqIEByZXR1cm5zIE5vcm1hbGl6ZWQgZmFjdG9yeSBpbnB1dCB3aGVuIHRoZSBjYWxsIGlzIHN1cHBvcnRlZC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCBmYWN0b3J5SW5wdXQgPSBnZXRGYWN0b3J5TWF0Y2hJbnB1dChjYWxsRXhwcmVzc2lvbik7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gZ2V0RmFjdG9yeU1hdGNoSW5wdXQoXHJcbiAgY2FsbEV4cHJlc3Npb246IFRTRVNUcmVlLkNhbGxFeHByZXNzaW9uLFxyXG4pOiBGYWN0b3J5TWF0Y2hJbnB1dCB8IHVuZGVmaW5lZCB7XHJcbiAgaWYgKCFpc1ZpdGVzdE1vY2tDYWxsKGNhbGxFeHByZXNzaW9uKSkge1xyXG4gICAgcmV0dXJuIHZvaWQgMDtcclxuICB9XHJcblxyXG4gIGNvbnN0IG1vY2tBcmd1bWVudHMgPSBnZXRNb2NrRmFjdG9yeUFyZ3VtZW50cyhjYWxsRXhwcmVzc2lvbi5hcmd1bWVudHMpO1xyXG5cclxuICByZXR1cm4gbW9ja0FyZ3VtZW50cyA9PT0gdm9pZCAwXHJcbiAgICA/IHZvaWQgMFxyXG4gICAgOiBidWlsZEZhY3RvcnlNYXRjaElucHV0KG1vY2tBcmd1bWVudHMpO1xyXG59XHJcblxyXG4vKipcclxuICogRXh0cmFjdHMgdmFsaWQgbW9jay1mYWN0b3J5IGFyZ3VtZW50cyBmcm9tIGEgY2FsbCBleHByZXNzaW9uLlxyXG4gKiBAcGFyYW0gYXJndW1lbnRzTGlzdCBBcmd1bWVudHMgc3VwcGxpZWQgdG8gdGhlIG1vY2sgY2FsbC5cclxuICogQHJldHVybnMgTm9ybWFsaXplZCBhcmd1bWVudHMgd2hlbiB0aGUgY2FsbCBzaGFwZSBpcyBzdXBwb3J0ZWQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3QgbW9ja0FyZ3VtZW50cyA9IGdldE1vY2tGYWN0b3J5QXJndW1lbnRzKGNhbGxFeHByZXNzaW9uLmFyZ3VtZW50cyk7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gZ2V0TW9ja0ZhY3RvcnlBcmd1bWVudHMoXHJcbiAgYXJndW1lbnRzTGlzdDogcmVhZG9ubHkgVFNFU1RyZWUuQ2FsbEV4cHJlc3Npb25Bcmd1bWVudFtdLFxyXG4pOiBNb2NrRmFjdG9yeUFyZ3VtZW50cyB8IHVuZGVmaW5lZCB7XHJcbiAgY29uc3QgW21vZHVsZUFyZ3VtZW50LCBmYWN0b3J5QXJndW1lbnRdID0gYXJndW1lbnRzTGlzdDtcclxuXHJcbiAgaWYgKFxyXG4gICAgbW9kdWxlQXJndW1lbnQgPT09IHZvaWQgMCB8fFxyXG4gICAgZmFjdG9yeUFyZ3VtZW50ID09PSB2b2lkIDAgfHxcclxuICAgIG1vZHVsZUFyZ3VtZW50LnR5cGUgPT09IFRTRVNUcmVlLkFTVF9OT0RFX1RZUEVTLlNwcmVhZEVsZW1lbnQgfHxcclxuICAgIGZhY3RvcnlBcmd1bWVudC50eXBlID09PSBUU0VTVHJlZS5BU1RfTk9ERV9UWVBFUy5TcHJlYWRFbGVtZW50IHx8XHJcbiAgICAhaXNGYWN0b3J5RnVuY3Rpb25FeHByZXNzaW9uKGZhY3RvcnlBcmd1bWVudClcclxuICApIHtcclxuICAgIHJldHVybiB2b2lkIDA7XHJcbiAgfVxyXG5cclxuICByZXR1cm4geyBmYWN0b3J5QXJndW1lbnQsIG1vZHVsZUFyZ3VtZW50IH07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgYW4gZXhwcmVzc2lvbiBpcyBhIHN1cHBvcnRlZCBtb2NrIGZhY3RvcnkgZnVuY3Rpb24uXHJcbiAqIEBwYXJhbSBleHByZXNzaW9uIEV4cHJlc3Npb24gdG8gaW5zcGVjdC5cclxuICogQHJldHVybnMgVHJ1ZSB3aGVuIHRoZSBleHByZXNzaW9uIGlzIGEgZnVuY3Rpb24gY29tcGF0aWJsZSB3aXRoIHRoZSBmaXhlci5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCBzdXBwb3J0ZWQgPSBpc0ZhY3RvcnlGdW5jdGlvbkV4cHJlc3Npb24oZXhwcmVzc2lvbik7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gaXNGYWN0b3J5RnVuY3Rpb25FeHByZXNzaW9uKFxyXG4gIGV4cHJlc3Npb246IFRTRVNUcmVlLkV4cHJlc3Npb24sXHJcbik6IGV4cHJlc3Npb24gaXMgRmFjdG9yeUZ1bmN0aW9uRXhwcmVzc2lvbiB7XHJcbiAgcmV0dXJuIChcclxuICAgIGV4cHJlc3Npb24udHlwZSA9PT0gVFNFU1RyZWUuQVNUX05PREVfVFlQRVMuQXJyb3dGdW5jdGlvbkV4cHJlc3Npb24gfHxcclxuICAgIGV4cHJlc3Npb24udHlwZSA9PT0gVFNFU1RyZWUuQVNUX05PREVfVFlQRVMuRnVuY3Rpb25FeHByZXNzaW9uXHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IHsgZ2V0RmFjdG9yeU1hdGNoSW5wdXQgfTtcclxuIl19
@@ -0,0 +1,13 @@
1
+ import type { CollectMatchContext, MatchResult } from "./types.js";
2
+ /**
3
+ * Collects a fix match for a supported Vitest mock factory call.
4
+ * @param context Match collection context.
5
+ * @returns Match result when the object literal can be safely rewritten.
6
+ * @example
7
+ * ```typescript
8
+ * const match = collectMatch(context);
9
+ * ```
10
+ */
11
+ declare function collectMatch(context: CollectMatchContext): MatchResult | undefined;
12
+ export { collectMatch };
13
+ //# sourceMappingURL=match.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"match.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/prefer-vitest-incremental-casts/match.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,mBAAmB,EAEnB,WAAW,EAKZ,MAAM,SAAS,CAAC;AA2GjB;;;;;;;;GAQG;AACH,iBAAS,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,WAAW,GAAG,SAAS,CA+C3E;AAkHD,OAAO,EAAE,YAAY,EAAE,CAAC"}