@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,104 @@
1
+ import type { Rule } from "eslint";
2
+ import type { TestBlockAnalysis } from "../aaa/index.js";
3
+ /** Mocked AAA helper exports consumed by the rule. */
4
+ interface AaaModuleMock {
5
+ /** Mocked analyzer entry point. */
6
+ analyzeTestBlock: () => TestBlockAnalysis;
7
+ /** Mocked line-start helper. */
8
+ getLineStartRange: () => [number, number];
9
+ /** Mocked boundary-comment helper. */
10
+ getPhaseBoundaryComments: (analysis: TestBlockAnalysis) => TestBlockAnalysis["sectionComments"];
11
+ /** Mocked blank-line helper. */
12
+ hasBlankLineBeforeComment: () => false;
13
+ }
14
+ /** Mocked missing-section-fixes module. */
15
+ interface MissingSectionFixesModule {
16
+ /** Mocked fix builder. */
17
+ buildMissingSectionFixes: () => Rule.Fix[];
18
+ }
19
+ /** Message identifiers emitted by the rule under test. */
20
+ type RequireAaaSectionsMessageId = "blankLineBeforeSection" | "codeBeforeArrange" | "emptySection" | "missingSections";
21
+ /** Captured result from the mocked reporting scenario. */
22
+ interface ScenarioResult {
23
+ /** Fix emitted for the blank-line report. */
24
+ blankLineFix: Rule.Fix | Rule.Fix[] | undefined;
25
+ /** Fixes recorded by the synthetic fixer. */
26
+ insertedFixes: Rule.Fix[];
27
+ /** Message identifiers emitted in report order. */
28
+ messageIds: (RequireAaaSectionsMessageId | undefined)[];
29
+ /** Fix emitted for the missing-sections report. */
30
+ missingSectionsFix: Rule.Fix | Rule.Fix[] | undefined;
31
+ }
32
+ /**
33
+ * Creates the mocked AAA helper module.
34
+ * @returns Mocked exports consumed by the rule module.
35
+ * @example
36
+ * ```typescript
37
+ * const mockModule = createAaaModuleMock(); void mockModule;
38
+ * ```
39
+ */
40
+ declare function createAaaModuleMock(): AaaModuleMock;
41
+ /**
42
+ * Creates the mocked missing-section-fixes module.
43
+ * @param buildMissingSectionFixes Mocked fix builder.
44
+ * @returns Mocked module exposing the provided fix builder.
45
+ * @example
46
+ * ```typescript
47
+ * const mockModule = createMissingSectionFixesModule(() => []); void mockModule;
48
+ * ```
49
+ */
50
+ declare function createMissingSectionFixesModule(buildMissingSectionFixes: () => Rule.Fix[]): MissingSectionFixesModule;
51
+ /**
52
+ * Creates a fixer that records inserted text edits.
53
+ * @param insertedFixes Collection updated when the fixer inserts text.
54
+ * @returns Rule fixer that records inserted edits.
55
+ * @example
56
+ * ```typescript
57
+ * const fixer = createRecordedFixer([]); void fixer;
58
+ * ```
59
+ */
60
+ declare function createRecordedFixer(insertedFixes: Rule.Fix[]): Rule.RuleFixer;
61
+ /**
62
+ * Creates the minimal rule context used by the mocked scenario.
63
+ * @param reports Report descriptors captured during rule execution.
64
+ * @returns Rule context that records emitted reports.
65
+ * @example
66
+ * ```typescript
67
+ * const context = createRuleContext([]); void context;
68
+ * ```
69
+ */
70
+ declare function createRuleContext(reports: Rule.ReportDescriptor[]): Rule.RuleContext;
71
+ /**
72
+ * Reads the fix emitted by a report descriptor.
73
+ * @param descriptor Report descriptor to evaluate.
74
+ * @param fixer Synthetic fixer passed into the descriptor callback.
75
+ * @returns Fix output produced by the descriptor.
76
+ * @example
77
+ * ```typescript
78
+ * const fix = getDescriptorFix(void 0, {} as never); void fix;
79
+ * ```
80
+ */
81
+ declare function getDescriptorFix(descriptor: Rule.ReportDescriptor | undefined, fixer: Rule.RuleFixer): Rule.Fix | Rule.Fix[] | undefined;
82
+ /**
83
+ * Reads the message identifier from a report descriptor when present.
84
+ * @param descriptor Report descriptor emitted by the rule.
85
+ * @returns Supported message identifier when present.
86
+ * @example
87
+ * ```typescript
88
+ * const messageId = getReportMessageId({ messageId: "missingSections" } as Rule.ReportDescriptor);
89
+ * void messageId;
90
+ * ```
91
+ */
92
+ declare function getReportMessageId(descriptor: Rule.ReportDescriptor): RequireAaaSectionsMessageId | undefined;
93
+ /**
94
+ * Loads the rule module after test mocks have been applied.
95
+ * @returns The rule module under test.
96
+ * @example
97
+ * ```typescript
98
+ * const rule = await loadRequireAaaSectionsRule(); void rule;
99
+ * ```
100
+ */
101
+ declare function loadRequireAaaSectionsRule(): Promise<Rule.RuleModule>;
102
+ export { createAaaModuleMock, createMissingSectionFixesModule, createRecordedFixer, createRuleContext, getDescriptorFix, getReportMessageId, loadRequireAaaSectionsRule, };
103
+ export type { ScenarioResult };
104
+ //# sourceMappingURL=rule.reporting.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule.reporting.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/require-aaa-sections/rule.reporting.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAEhD,sDAAsD;AACtD,UAAU,aAAa;IACrB,mCAAmC;IACnC,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;IAC1C,gCAAgC;IAChC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,sCAAsC;IACtC,wBAAwB,EAAE,CACxB,QAAQ,EAAE,iBAAiB,KACxB,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IAC1C,gCAAgC;IAChC,yBAAyB,EAAE,MAAM,KAAK,CAAC;CACxC;AAED,2CAA2C;AAC3C,UAAU,yBAAyB;IACjC,0BAA0B;IAC1B,wBAAwB,EAAE,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;CAC5C;AAED,0DAA0D;AAC1D,KAAK,2BAA2B,GAC5B,wBAAwB,GACxB,mBAAmB,GACnB,cAAc,GACd,iBAAiB,CAAC;AAEtB,0DAA0D;AAC1D,UAAU,cAAc;IACtB,6CAA6C;IAC7C,YAAY,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IAChD,6CAA6C;IAC7C,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;IAC1B,mDAAmD;IACnD,UAAU,EAAE,CAAC,2BAA2B,GAAG,SAAS,CAAC,EAAE,CAAC;IACxD,mDAAmD;IACnD,kBAAkB,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;CACvD;AAcD;;;;;;;GAOG;AACH,iBAAS,mBAAmB,IAAI,aAAa,CAO5C;AAED;;;;;;;;GAQG;AACH,iBAAS,+BAA+B,CACtC,wBAAwB,EAAE,MAAM,IAAI,CAAC,GAAG,EAAE,GACzC,yBAAyB,CAE3B;AAsDD;;;;;;;;GAQG;AACH,iBAAS,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAQtE;AAED;;;;;;;;GAQG;AACH,iBAAS,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,GAAG,IAAI,CAAC,WAAW,CAM7E;AAED;;;;;;;;;GASG;AACH,iBAAS,gBAAgB,CACvB,UAAU,EAAE,IAAI,CAAC,gBAAgB,GAAG,SAAS,EAC7C,KAAK,EAAE,IAAI,CAAC,SAAS,GACpB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAcnC;AA8BD;;;;;;;;;GASG;AACH,iBAAS,kBAAkB,CACzB,UAAU,EAAE,IAAI,CAAC,gBAAgB,GAChC,2BAA2B,GAAG,SAAS,CAQzC;AAuBD;;;;;;;GAOG;AACH,iBAAe,0BAA0B,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAGpE;AAED,OAAO,EACL,mBAAmB,EACnB,+BAA+B,EAC/B,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,0BAA0B,GAC3B,CAAC;AAEF,YAAY,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,216 @@
1
+ /**
2
+ * Returns false so the mocked rule path always reports a missing blank line.
3
+ * @returns False for every invocation.
4
+ * @example
5
+ * ```typescript
6
+ * const actual = alwaysReturnFalse(); void actual;
7
+ * ```
8
+ */
9
+ function alwaysReturnFalse() {
10
+ return false;
11
+ }
12
+ /**
13
+ * Creates the mocked AAA helper module.
14
+ * @returns Mocked exports consumed by the rule module.
15
+ * @example
16
+ * ```typescript
17
+ * const mockModule = createAaaModuleMock(); void mockModule;
18
+ * ```
19
+ */
20
+ function createAaaModuleMock() {
21
+ return {
22
+ analyzeTestBlock: createMockAnalysis,
23
+ getLineStartRange: getMockLineStartRange,
24
+ getPhaseBoundaryComments: getMockPhaseBoundaryComments,
25
+ hasBlankLineBeforeComment: alwaysReturnFalse,
26
+ };
27
+ }
28
+ /**
29
+ * Creates the mocked missing-section-fixes module.
30
+ * @param buildMissingSectionFixes Mocked fix builder.
31
+ * @returns Mocked module exposing the provided fix builder.
32
+ * @example
33
+ * ```typescript
34
+ * const mockModule = createMissingSectionFixesModule(() => []); void mockModule;
35
+ * ```
36
+ */
37
+ function createMissingSectionFixesModule(buildMissingSectionFixes) {
38
+ return { buildMissingSectionFixes };
39
+ }
40
+ /**
41
+ * Builds the synthetic analysis returned by the mocked AAA helpers.
42
+ * @returns Minimal test-block analysis used by the regression scenario.
43
+ * @example
44
+ * ```typescript
45
+ * const analysis = createMockAnalysis(); void analysis;
46
+ * ```
47
+ */
48
+ function createMockAnalysis() {
49
+ return {
50
+ bodyLineCount: 4,
51
+ callExpression: { type: "CallExpression" },
52
+ newline: "\n",
53
+ sectionComments: [
54
+ {
55
+ comment: {
56
+ loc: { end: { line: 2 }, start: { line: 2 } },
57
+ type: "Line",
58
+ },
59
+ phases: ["Arrange"],
60
+ },
61
+ {
62
+ comment: {
63
+ loc: { end: { line: 4 }, start: { line: 4 } },
64
+ type: "Line",
65
+ },
66
+ phases: ["Act"],
67
+ },
68
+ ],
69
+ sourceText: [
70
+ "const setup = createSetup();",
71
+ "// Arrange",
72
+ "run();",
73
+ "// Act",
74
+ ].join("\n"),
75
+ statements: [
76
+ {
77
+ node: {
78
+ loc: { end: { line: 1 }, start: { line: 1 } },
79
+ type: "ExpressionStatement",
80
+ },
81
+ },
82
+ {
83
+ node: {
84
+ loc: { end: { line: 3 }, start: { line: 3 } },
85
+ type: "ExpressionStatement",
86
+ },
87
+ },
88
+ ],
89
+ };
90
+ }
91
+ /**
92
+ * Creates a fixer that records inserted text edits.
93
+ * @param insertedFixes Collection updated when the fixer inserts text.
94
+ * @returns Rule fixer that records inserted edits.
95
+ * @example
96
+ * ```typescript
97
+ * const fixer = createRecordedFixer([]); void fixer;
98
+ * ```
99
+ */
100
+ function createRecordedFixer(insertedFixes) {
101
+ return {
102
+ insertTextBeforeRange(range, text) {
103
+ const fix = { range, text };
104
+ insertedFixes.push(fix);
105
+ return fix;
106
+ },
107
+ };
108
+ }
109
+ /**
110
+ * Creates the minimal rule context used by the mocked scenario.
111
+ * @param reports Report descriptors captured during rule execution.
112
+ * @returns Rule context that records emitted reports.
113
+ * @example
114
+ * ```typescript
115
+ * const context = createRuleContext([]); void context;
116
+ * ```
117
+ */
118
+ function createRuleContext(reports) {
119
+ return {
120
+ report(descriptor) {
121
+ reports.push(descriptor);
122
+ },
123
+ };
124
+ }
125
+ /**
126
+ * Reads the fix emitted by a report descriptor.
127
+ * @param descriptor Report descriptor to evaluate.
128
+ * @param fixer Synthetic fixer passed into the descriptor callback.
129
+ * @returns Fix output produced by the descriptor.
130
+ * @example
131
+ * ```typescript
132
+ * const fix = getDescriptorFix(void 0, {} as never); void fix;
133
+ * ```
134
+ */
135
+ function getDescriptorFix(descriptor, fixer) {
136
+ const actual = descriptor?.fix?.(fixer);
137
+ if (!(actual instanceof Object)) {
138
+ return void 0;
139
+ }
140
+ if (Array.isArray(actual) || "range" in actual) {
141
+ return actual;
142
+ }
143
+ const iterableFixes = actual;
144
+ return [...iterableFixes];
145
+ }
146
+ /**
147
+ * Reads the mocked line-start range for the blank-line fix.
148
+ * @returns Synthetic range used by the rule fix.
149
+ * @example
150
+ * ```typescript
151
+ * const range = getMockLineStartRange(); void range;
152
+ * ```
153
+ */
154
+ function getMockLineStartRange() {
155
+ return [7, 7];
156
+ }
157
+ /**
158
+ * Returns the phase-boundary comments from the mocked analysis.
159
+ * @param analysis Parsed analysis used by the mocked rule helpers.
160
+ * @returns Only comments that begin a later AAA phase.
161
+ * @example
162
+ * ```typescript
163
+ * const comments = getMockPhaseBoundaryComments(createMockAnalysis());
164
+ * void comments;
165
+ * ```
166
+ */
167
+ function getMockPhaseBoundaryComments(analysis) {
168
+ return analysis.sectionComments.slice(1);
169
+ }
170
+ /**
171
+ * Reads the message identifier from a report descriptor when present.
172
+ * @param descriptor Report descriptor emitted by the rule.
173
+ * @returns Supported message identifier when present.
174
+ * @example
175
+ * ```typescript
176
+ * const messageId = getReportMessageId({ messageId: "missingSections" } as Rule.ReportDescriptor);
177
+ * void messageId;
178
+ * ```
179
+ */
180
+ function getReportMessageId(descriptor) {
181
+ if (!("messageId" in descriptor) ||
182
+ !isRequireAaaSectionsMessageId(descriptor.messageId)) {
183
+ return void 0;
184
+ }
185
+ return descriptor.messageId;
186
+ }
187
+ /**
188
+ * Checks whether an unknown value is a valid rule message identifier.
189
+ * @param value Value to validate.
190
+ * @returns Whether the value is a supported message identifier.
191
+ * @example
192
+ * ```typescript
193
+ * const actual = isRequireAaaSectionsMessageId("missingSections");
194
+ * void actual;
195
+ * ```
196
+ */
197
+ function isRequireAaaSectionsMessageId(value) {
198
+ return (value === "blankLineBeforeSection" ||
199
+ value === "codeBeforeArrange" ||
200
+ value === "emptySection" ||
201
+ value === "missingSections");
202
+ }
203
+ /**
204
+ * Loads the rule module after test mocks have been applied.
205
+ * @returns The rule module under test.
206
+ * @example
207
+ * ```typescript
208
+ * const rule = await loadRequireAaaSectionsRule(); void rule;
209
+ * ```
210
+ */
211
+ async function loadRequireAaaSectionsRule() {
212
+ const { requireAaaSectionsRule } = await import("./rule.js");
213
+ return requireAaaSectionsRule;
214
+ }
215
+ export { createAaaModuleMock, createMissingSectionFixesModule, createRecordedFixer, createRuleContext, getDescriptorFix, getReportMessageId, loadRequireAaaSectionsRule, };
216
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5yZXBvcnRpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3RpbmcvcmVxdWlyZS1hYWEtc2VjdGlvbnMvcnVsZS5yZXBvcnRpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMkNBOzs7Ozs7O0dBT0c7QUFDSCxTQUFTLGlCQUFpQjtJQUN4QixPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsU0FBUyxtQkFBbUI7SUFDMUIsT0FBTztRQUNMLGdCQUFnQixFQUFFLGtCQUFrQjtRQUNwQyxpQkFBaUIsRUFBRSxxQkFBcUI7UUFDeEMsd0JBQXdCLEVBQUUsNEJBQTRCO1FBQ3RELHlCQUF5QixFQUFFLGlCQUFpQjtLQUM3QyxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUywrQkFBK0IsQ0FDdEMsd0JBQTBDO0lBRTFDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxDQUFDO0FBQ3RDLENBQUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsU0FBUyxrQkFBa0I7SUFDekIsT0FBTztRQUNMLGFBQWEsRUFBRSxDQUFDO1FBQ2hCLGNBQWMsRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtRQUMxQyxPQUFPLEVBQUUsSUFBSTtRQUNiLGVBQWUsRUFBRTtZQUNmO2dCQUNFLE9BQU8sRUFBRTtvQkFDUCxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFO29CQUM3QyxJQUFJLEVBQUUsTUFBTTtpQkFDYjtnQkFDRCxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUM7YUFDcEI7WUFDRDtnQkFDRSxPQUFPLEVBQUU7b0JBQ1AsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRTtvQkFDN0MsSUFBSSxFQUFFLE1BQU07aUJBQ2I7Z0JBQ0QsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDO2FBQ2hCO1NBQ0Y7UUFDRCxVQUFVLEVBQUU7WUFDViw4QkFBOEI7WUFDOUIsWUFBWTtZQUNaLFFBQVE7WUFDUixRQUFRO1NBQ1QsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ1osVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsSUFBSSxFQUFFO29CQUNKLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUU7b0JBQzdDLElBQUksRUFBRSxxQkFBcUI7aUJBQzVCO2FBQ0Y7WUFDRDtnQkFDRSxJQUFJLEVBQUU7b0JBQ0osR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRTtvQkFDN0MsSUFBSSxFQUFFLHFCQUFxQjtpQkFDNUI7YUFDRjtTQUNGO0tBQ21CLENBQUM7QUFDekIsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxtQkFBbUIsQ0FBQyxhQUF5QjtJQUNwRCxPQUFPO1FBQ0wscUJBQXFCLENBQUMsS0FBdUIsRUFBRSxJQUFZO1lBQ3pELE1BQU0sR0FBRyxHQUFhLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDO1lBQ3RDLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDeEIsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDO0tBQ2dCLENBQUM7QUFDdEIsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxpQkFBaUIsQ0FBQyxPQUFnQztJQUN6RCxPQUFPO1FBQ0wsTUFBTSxDQUFDLFVBQWlDO1lBQ3RDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDM0IsQ0FBQztLQUNrQixDQUFDO0FBQ3hCLENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFTLGdCQUFnQixDQUN2QixVQUE2QyxFQUM3QyxLQUFxQjtJQUVyQixNQUFNLE1BQU0sR0FBRyxVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFeEMsSUFBSSxDQUFDLENBQUMsTUFBTSxZQUFZLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDaEMsT0FBTyxLQUFLLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLE9BQU8sSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUMvQyxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxhQUFhLEdBQXVCLE1BQU0sQ0FBQztJQUVqRCxPQUFPLENBQUMsR0FBRyxhQUFhLENBQUMsQ0FBQztBQUM1QixDQUFDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILFNBQVMscUJBQXFCO0lBQzVCLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDaEIsQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILFNBQVMsNEJBQTRCLENBQ25DLFFBQTJCO0lBRTNCLE9BQU8sUUFBUSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDM0MsQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILFNBQVMsa0JBQWtCLENBQ3pCLFVBQWlDO0lBRWpDLElBQ0UsQ0FBQyxDQUFDLFdBQVcsSUFBSSxVQUFVLENBQUM7UUFDNUIsQ0FBQyw2QkFBNkIsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQ3BELENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFDRCxPQUFPLFVBQVUsQ0FBQyxTQUFTLENBQUM7QUFDOUIsQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILFNBQVMsNkJBQTZCLENBQ3BDLEtBQWM7SUFFZCxPQUFPLENBQ0wsS0FBSyxLQUFLLHdCQUF3QjtRQUNsQyxLQUFLLEtBQUssbUJBQW1CO1FBQzdCLEtBQUssS0FBSyxjQUFjO1FBQ3hCLEtBQUssS0FBSyxpQkFBaUIsQ0FDNUIsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsS0FBSyxVQUFVLDBCQUEwQjtJQUN2QyxNQUFNLEVBQUUsc0JBQXNCLEVBQUUsR0FBRyxNQUFNLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxRCxPQUFPLHNCQUFzQixDQUFDO0FBQ2hDLENBQUM7QUFFRCxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLCtCQUErQixFQUMvQixtQkFBbUIsRUFDbkIsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixrQkFBa0IsRUFDbEIsMEJBQTBCLEdBQzNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tIFwiZXNsaW50XCI7XHJcblxyXG5pbXBvcnQgdHlwZSB7IFRlc3RCbG9ja0FuYWx5c2lzIH0gZnJvbSBcIi4uL2FhYVwiO1xyXG5cclxuLyoqIE1vY2tlZCBBQUEgaGVscGVyIGV4cG9ydHMgY29uc3VtZWQgYnkgdGhlIHJ1bGUuICovXHJcbmludGVyZmFjZSBBYWFNb2R1bGVNb2NrIHtcclxuICAvKiogTW9ja2VkIGFuYWx5emVyIGVudHJ5IHBvaW50LiAqL1xyXG4gIGFuYWx5emVUZXN0QmxvY2s6ICgpID0+IFRlc3RCbG9ja0FuYWx5c2lzO1xyXG4gIC8qKiBNb2NrZWQgbGluZS1zdGFydCBoZWxwZXIuICovXHJcbiAgZ2V0TGluZVN0YXJ0UmFuZ2U6ICgpID0+IFtudW1iZXIsIG51bWJlcl07XHJcbiAgLyoqIE1vY2tlZCBib3VuZGFyeS1jb21tZW50IGhlbHBlci4gKi9cclxuICBnZXRQaGFzZUJvdW5kYXJ5Q29tbWVudHM6IChcclxuICAgIGFuYWx5c2lzOiBUZXN0QmxvY2tBbmFseXNpcyxcclxuICApID0+IFRlc3RCbG9ja0FuYWx5c2lzW1wic2VjdGlvbkNvbW1lbnRzXCJdO1xyXG4gIC8qKiBNb2NrZWQgYmxhbmstbGluZSBoZWxwZXIuICovXHJcbiAgaGFzQmxhbmtMaW5lQmVmb3JlQ29tbWVudDogKCkgPT4gZmFsc2U7XHJcbn1cclxuXHJcbi8qKiBNb2NrZWQgbWlzc2luZy1zZWN0aW9uLWZpeGVzIG1vZHVsZS4gKi9cclxuaW50ZXJmYWNlIE1pc3NpbmdTZWN0aW9uRml4ZXNNb2R1bGUge1xyXG4gIC8qKiBNb2NrZWQgZml4IGJ1aWxkZXIuICovXHJcbiAgYnVpbGRNaXNzaW5nU2VjdGlvbkZpeGVzOiAoKSA9PiBSdWxlLkZpeFtdO1xyXG59XHJcblxyXG4vKiogTWVzc2FnZSBpZGVudGlmaWVycyBlbWl0dGVkIGJ5IHRoZSBydWxlIHVuZGVyIHRlc3QuICovXHJcbnR5cGUgUmVxdWlyZUFhYVNlY3Rpb25zTWVzc2FnZUlkID1cclxuICB8IFwiYmxhbmtMaW5lQmVmb3JlU2VjdGlvblwiXHJcbiAgfCBcImNvZGVCZWZvcmVBcnJhbmdlXCJcclxuICB8IFwiZW1wdHlTZWN0aW9uXCJcclxuICB8IFwibWlzc2luZ1NlY3Rpb25zXCI7XHJcblxyXG4vKiogQ2FwdHVyZWQgcmVzdWx0IGZyb20gdGhlIG1vY2tlZCByZXBvcnRpbmcgc2NlbmFyaW8uICovXHJcbmludGVyZmFjZSBTY2VuYXJpb1Jlc3VsdCB7XHJcbiAgLyoqIEZpeCBlbWl0dGVkIGZvciB0aGUgYmxhbmstbGluZSByZXBvcnQuICovXHJcbiAgYmxhbmtMaW5lRml4OiBSdWxlLkZpeCB8IFJ1bGUuRml4W10gfCB1bmRlZmluZWQ7XHJcbiAgLyoqIEZpeGVzIHJlY29yZGVkIGJ5IHRoZSBzeW50aGV0aWMgZml4ZXIuICovXHJcbiAgaW5zZXJ0ZWRGaXhlczogUnVsZS5GaXhbXTtcclxuICAvKiogTWVzc2FnZSBpZGVudGlmaWVycyBlbWl0dGVkIGluIHJlcG9ydCBvcmRlci4gKi9cclxuICBtZXNzYWdlSWRzOiAoUmVxdWlyZUFhYVNlY3Rpb25zTWVzc2FnZUlkIHwgdW5kZWZpbmVkKVtdO1xyXG4gIC8qKiBGaXggZW1pdHRlZCBmb3IgdGhlIG1pc3Npbmctc2VjdGlvbnMgcmVwb3J0LiAqL1xyXG4gIG1pc3NpbmdTZWN0aW9uc0ZpeDogUnVsZS5GaXggfCBSdWxlLkZpeFtdIHwgdW5kZWZpbmVkO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJucyBmYWxzZSBzbyB0aGUgbW9ja2VkIHJ1bGUgcGF0aCBhbHdheXMgcmVwb3J0cyBhIG1pc3NpbmcgYmxhbmsgbGluZS5cclxuICogQHJldHVybnMgRmFsc2UgZm9yIGV2ZXJ5IGludm9jYXRpb24uXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3QgYWN0dWFsID0gYWx3YXlzUmV0dXJuRmFsc2UoKTsgdm9pZCBhY3R1YWw7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gYWx3YXlzUmV0dXJuRmFsc2UoKTogZmFsc2Uge1xyXG4gIHJldHVybiBmYWxzZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENyZWF0ZXMgdGhlIG1vY2tlZCBBQUEgaGVscGVyIG1vZHVsZS5cclxuICogQHJldHVybnMgTW9ja2VkIGV4cG9ydHMgY29uc3VtZWQgYnkgdGhlIHJ1bGUgbW9kdWxlLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IG1vY2tNb2R1bGUgPSBjcmVhdGVBYWFNb2R1bGVNb2NrKCk7IHZvaWQgbW9ja01vZHVsZTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBjcmVhdGVBYWFNb2R1bGVNb2NrKCk6IEFhYU1vZHVsZU1vY2sge1xyXG4gIHJldHVybiB7XHJcbiAgICBhbmFseXplVGVzdEJsb2NrOiBjcmVhdGVNb2NrQW5hbHlzaXMsXHJcbiAgICBnZXRMaW5lU3RhcnRSYW5nZTogZ2V0TW9ja0xpbmVTdGFydFJhbmdlLFxyXG4gICAgZ2V0UGhhc2VCb3VuZGFyeUNvbW1lbnRzOiBnZXRNb2NrUGhhc2VCb3VuZGFyeUNvbW1lbnRzLFxyXG4gICAgaGFzQmxhbmtMaW5lQmVmb3JlQ29tbWVudDogYWx3YXlzUmV0dXJuRmFsc2UsXHJcbiAgfTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENyZWF0ZXMgdGhlIG1vY2tlZCBtaXNzaW5nLXNlY3Rpb24tZml4ZXMgbW9kdWxlLlxyXG4gKiBAcGFyYW0gYnVpbGRNaXNzaW5nU2VjdGlvbkZpeGVzIE1vY2tlZCBmaXggYnVpbGRlci5cclxuICogQHJldHVybnMgTW9ja2VkIG1vZHVsZSBleHBvc2luZyB0aGUgcHJvdmlkZWQgZml4IGJ1aWxkZXIuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3QgbW9ja01vZHVsZSA9IGNyZWF0ZU1pc3NpbmdTZWN0aW9uRml4ZXNNb2R1bGUoKCkgPT4gW10pOyB2b2lkIG1vY2tNb2R1bGU7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gY3JlYXRlTWlzc2luZ1NlY3Rpb25GaXhlc01vZHVsZShcclxuICBidWlsZE1pc3NpbmdTZWN0aW9uRml4ZXM6ICgpID0+IFJ1bGUuRml4W10sXHJcbik6IE1pc3NpbmdTZWN0aW9uRml4ZXNNb2R1bGUge1xyXG4gIHJldHVybiB7IGJ1aWxkTWlzc2luZ1NlY3Rpb25GaXhlcyB9O1xyXG59XHJcblxyXG4vKipcclxuICogQnVpbGRzIHRoZSBzeW50aGV0aWMgYW5hbHlzaXMgcmV0dXJuZWQgYnkgdGhlIG1vY2tlZCBBQUEgaGVscGVycy5cclxuICogQHJldHVybnMgTWluaW1hbCB0ZXN0LWJsb2NrIGFuYWx5c2lzIHVzZWQgYnkgdGhlIHJlZ3Jlc3Npb24gc2NlbmFyaW8uXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3QgYW5hbHlzaXMgPSBjcmVhdGVNb2NrQW5hbHlzaXMoKTsgdm9pZCBhbmFseXNpcztcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBjcmVhdGVNb2NrQW5hbHlzaXMoKTogVGVzdEJsb2NrQW5hbHlzaXMge1xyXG4gIHJldHVybiB7XHJcbiAgICBib2R5TGluZUNvdW50OiA0LFxyXG4gICAgY2FsbEV4cHJlc3Npb246IHsgdHlwZTogXCJDYWxsRXhwcmVzc2lvblwiIH0sXHJcbiAgICBuZXdsaW5lOiBcIlxcblwiLFxyXG4gICAgc2VjdGlvbkNvbW1lbnRzOiBbXHJcbiAgICAgIHtcclxuICAgICAgICBjb21tZW50OiB7XHJcbiAgICAgICAgICBsb2M6IHsgZW5kOiB7IGxpbmU6IDIgfSwgc3RhcnQ6IHsgbGluZTogMiB9IH0sXHJcbiAgICAgICAgICB0eXBlOiBcIkxpbmVcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIHBoYXNlczogW1wiQXJyYW5nZVwiXSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGNvbW1lbnQ6IHtcclxuICAgICAgICAgIGxvYzogeyBlbmQ6IHsgbGluZTogNCB9LCBzdGFydDogeyBsaW5lOiA0IH0gfSxcclxuICAgICAgICAgIHR5cGU6IFwiTGluZVwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcGhhc2VzOiBbXCJBY3RcIl0sXHJcbiAgICAgIH0sXHJcbiAgICBdLFxyXG4gICAgc291cmNlVGV4dDogW1xyXG4gICAgICBcImNvbnN0IHNldHVwID0gY3JlYXRlU2V0dXAoKTtcIixcclxuICAgICAgXCIvLyBBcnJhbmdlXCIsXHJcbiAgICAgIFwicnVuKCk7XCIsXHJcbiAgICAgIFwiLy8gQWN0XCIsXHJcbiAgICBdLmpvaW4oXCJcXG5cIiksXHJcbiAgICBzdGF0ZW1lbnRzOiBbXHJcbiAgICAgIHtcclxuICAgICAgICBub2RlOiB7XHJcbiAgICAgICAgICBsb2M6IHsgZW5kOiB7IGxpbmU6IDEgfSwgc3RhcnQ6IHsgbGluZTogMSB9IH0sXHJcbiAgICAgICAgICB0eXBlOiBcIkV4cHJlc3Npb25TdGF0ZW1lbnRcIixcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgbm9kZToge1xyXG4gICAgICAgICAgbG9jOiB7IGVuZDogeyBsaW5lOiAzIH0sIHN0YXJ0OiB7IGxpbmU6IDMgfSB9LFxyXG4gICAgICAgICAgdHlwZTogXCJFeHByZXNzaW9uU3RhdGVtZW50XCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgIF0sXHJcbiAgfSBhcyBUZXN0QmxvY2tBbmFseXNpcztcclxufVxyXG5cclxuLyoqXHJcbiAqIENyZWF0ZXMgYSBmaXhlciB0aGF0IHJlY29yZHMgaW5zZXJ0ZWQgdGV4dCBlZGl0cy5cclxuICogQHBhcmFtIGluc2VydGVkRml4ZXMgQ29sbGVjdGlvbiB1cGRhdGVkIHdoZW4gdGhlIGZpeGVyIGluc2VydHMgdGV4dC5cclxuICogQHJldHVybnMgUnVsZSBmaXhlciB0aGF0IHJlY29yZHMgaW5zZXJ0ZWQgZWRpdHMuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3QgZml4ZXIgPSBjcmVhdGVSZWNvcmRlZEZpeGVyKFtdKTsgdm9pZCBmaXhlcjtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBjcmVhdGVSZWNvcmRlZEZpeGVyKGluc2VydGVkRml4ZXM6IFJ1bGUuRml4W10pOiBSdWxlLlJ1bGVGaXhlciB7XHJcbiAgcmV0dXJuIHtcclxuICAgIGluc2VydFRleHRCZWZvcmVSYW5nZShyYW5nZTogW251bWJlciwgbnVtYmVyXSwgdGV4dDogc3RyaW5nKTogUnVsZS5GaXgge1xyXG4gICAgICBjb25zdCBmaXg6IFJ1bGUuRml4ID0geyByYW5nZSwgdGV4dCB9O1xyXG4gICAgICBpbnNlcnRlZEZpeGVzLnB1c2goZml4KTtcclxuICAgICAgcmV0dXJuIGZpeDtcclxuICAgIH0sXHJcbiAgfSBhcyBSdWxlLlJ1bGVGaXhlcjtcclxufVxyXG5cclxuLyoqXHJcbiAqIENyZWF0ZXMgdGhlIG1pbmltYWwgcnVsZSBjb250ZXh0IHVzZWQgYnkgdGhlIG1vY2tlZCBzY2VuYXJpby5cclxuICogQHBhcmFtIHJlcG9ydHMgUmVwb3J0IGRlc2NyaXB0b3JzIGNhcHR1cmVkIGR1cmluZyBydWxlIGV4ZWN1dGlvbi5cclxuICogQHJldHVybnMgUnVsZSBjb250ZXh0IHRoYXQgcmVjb3JkcyBlbWl0dGVkIHJlcG9ydHMuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3QgY29udGV4dCA9IGNyZWF0ZVJ1bGVDb250ZXh0KFtdKTsgdm9pZCBjb250ZXh0O1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGNyZWF0ZVJ1bGVDb250ZXh0KHJlcG9ydHM6IFJ1bGUuUmVwb3J0RGVzY3JpcHRvcltdKTogUnVsZS5SdWxlQ29udGV4dCB7XHJcbiAgcmV0dXJuIHtcclxuICAgIHJlcG9ydChkZXNjcmlwdG9yOiBSdWxlLlJlcG9ydERlc2NyaXB0b3IpOiB2b2lkIHtcclxuICAgICAgcmVwb3J0cy5wdXNoKGRlc2NyaXB0b3IpO1xyXG4gICAgfSxcclxuICB9IGFzIFJ1bGUuUnVsZUNvbnRleHQ7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZWFkcyB0aGUgZml4IGVtaXR0ZWQgYnkgYSByZXBvcnQgZGVzY3JpcHRvci5cclxuICogQHBhcmFtIGRlc2NyaXB0b3IgUmVwb3J0IGRlc2NyaXB0b3IgdG8gZXZhbHVhdGUuXHJcbiAqIEBwYXJhbSBmaXhlciBTeW50aGV0aWMgZml4ZXIgcGFzc2VkIGludG8gdGhlIGRlc2NyaXB0b3IgY2FsbGJhY2suXHJcbiAqIEByZXR1cm5zIEZpeCBvdXRwdXQgcHJvZHVjZWQgYnkgdGhlIGRlc2NyaXB0b3IuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3QgZml4ID0gZ2V0RGVzY3JpcHRvckZpeCh2b2lkIDAsIHt9IGFzIG5ldmVyKTsgdm9pZCBmaXg7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gZ2V0RGVzY3JpcHRvckZpeChcclxuICBkZXNjcmlwdG9yOiBSdWxlLlJlcG9ydERlc2NyaXB0b3IgfCB1bmRlZmluZWQsXHJcbiAgZml4ZXI6IFJ1bGUuUnVsZUZpeGVyLFxyXG4pOiBSdWxlLkZpeCB8IFJ1bGUuRml4W10gfCB1bmRlZmluZWQge1xyXG4gIGNvbnN0IGFjdHVhbCA9IGRlc2NyaXB0b3I/LmZpeD8uKGZpeGVyKTtcclxuXHJcbiAgaWYgKCEoYWN0dWFsIGluc3RhbmNlb2YgT2JqZWN0KSkge1xyXG4gICAgcmV0dXJuIHZvaWQgMDtcclxuICB9XHJcblxyXG4gIGlmIChBcnJheS5pc0FycmF5KGFjdHVhbCkgfHwgXCJyYW5nZVwiIGluIGFjdHVhbCkge1xyXG4gICAgcmV0dXJuIGFjdHVhbDtcclxuICB9XHJcblxyXG4gIGNvbnN0IGl0ZXJhYmxlRml4ZXM6IEl0ZXJhYmxlPFJ1bGUuRml4PiA9IGFjdHVhbDtcclxuXHJcbiAgcmV0dXJuIFsuLi5pdGVyYWJsZUZpeGVzXTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJlYWRzIHRoZSBtb2NrZWQgbGluZS1zdGFydCByYW5nZSBmb3IgdGhlIGJsYW5rLWxpbmUgZml4LlxyXG4gKiBAcmV0dXJucyBTeW50aGV0aWMgcmFuZ2UgdXNlZCBieSB0aGUgcnVsZSBmaXguXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3QgcmFuZ2UgPSBnZXRNb2NrTGluZVN0YXJ0UmFuZ2UoKTsgdm9pZCByYW5nZTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBnZXRNb2NrTGluZVN0YXJ0UmFuZ2UoKTogW251bWJlciwgbnVtYmVyXSB7XHJcbiAgcmV0dXJuIFs3LCA3XTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybnMgdGhlIHBoYXNlLWJvdW5kYXJ5IGNvbW1lbnRzIGZyb20gdGhlIG1vY2tlZCBhbmFseXNpcy5cclxuICogQHBhcmFtIGFuYWx5c2lzIFBhcnNlZCBhbmFseXNpcyB1c2VkIGJ5IHRoZSBtb2NrZWQgcnVsZSBoZWxwZXJzLlxyXG4gKiBAcmV0dXJucyBPbmx5IGNvbW1lbnRzIHRoYXQgYmVnaW4gYSBsYXRlciBBQUEgcGhhc2UuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3QgY29tbWVudHMgPSBnZXRNb2NrUGhhc2VCb3VuZGFyeUNvbW1lbnRzKGNyZWF0ZU1vY2tBbmFseXNpcygpKTtcclxuICogdm9pZCBjb21tZW50cztcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBnZXRNb2NrUGhhc2VCb3VuZGFyeUNvbW1lbnRzKFxyXG4gIGFuYWx5c2lzOiBUZXN0QmxvY2tBbmFseXNpcyxcclxuKTogVGVzdEJsb2NrQW5hbHlzaXNbXCJzZWN0aW9uQ29tbWVudHNcIl0ge1xyXG4gIHJldHVybiBhbmFseXNpcy5zZWN0aW9uQ29tbWVudHMuc2xpY2UoMSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZWFkcyB0aGUgbWVzc2FnZSBpZGVudGlmaWVyIGZyb20gYSByZXBvcnQgZGVzY3JpcHRvciB3aGVuIHByZXNlbnQuXHJcbiAqIEBwYXJhbSBkZXNjcmlwdG9yIFJlcG9ydCBkZXNjcmlwdG9yIGVtaXR0ZWQgYnkgdGhlIHJ1bGUuXHJcbiAqIEByZXR1cm5zIFN1cHBvcnRlZCBtZXNzYWdlIGlkZW50aWZpZXIgd2hlbiBwcmVzZW50LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IG1lc3NhZ2VJZCA9IGdldFJlcG9ydE1lc3NhZ2VJZCh7IG1lc3NhZ2VJZDogXCJtaXNzaW5nU2VjdGlvbnNcIiB9IGFzIFJ1bGUuUmVwb3J0RGVzY3JpcHRvcik7XHJcbiAqIHZvaWQgbWVzc2FnZUlkO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGdldFJlcG9ydE1lc3NhZ2VJZChcclxuICBkZXNjcmlwdG9yOiBSdWxlLlJlcG9ydERlc2NyaXB0b3IsXHJcbik6IFJlcXVpcmVBYWFTZWN0aW9uc01lc3NhZ2VJZCB8IHVuZGVmaW5lZCB7XHJcbiAgaWYgKFxyXG4gICAgIShcIm1lc3NhZ2VJZFwiIGluIGRlc2NyaXB0b3IpIHx8XHJcbiAgICAhaXNSZXF1aXJlQWFhU2VjdGlvbnNNZXNzYWdlSWQoZGVzY3JpcHRvci5tZXNzYWdlSWQpXHJcbiAgKSB7XHJcbiAgICByZXR1cm4gdm9pZCAwO1xyXG4gIH1cclxuICByZXR1cm4gZGVzY3JpcHRvci5tZXNzYWdlSWQ7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDaGVja3Mgd2hldGhlciBhbiB1bmtub3duIHZhbHVlIGlzIGEgdmFsaWQgcnVsZSBtZXNzYWdlIGlkZW50aWZpZXIuXHJcbiAqIEBwYXJhbSB2YWx1ZSBWYWx1ZSB0byB2YWxpZGF0ZS5cclxuICogQHJldHVybnMgV2hldGhlciB0aGUgdmFsdWUgaXMgYSBzdXBwb3J0ZWQgbWVzc2FnZSBpZGVudGlmaWVyLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IGFjdHVhbCA9IGlzUmVxdWlyZUFhYVNlY3Rpb25zTWVzc2FnZUlkKFwibWlzc2luZ1NlY3Rpb25zXCIpO1xyXG4gKiB2b2lkIGFjdHVhbDtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBpc1JlcXVpcmVBYWFTZWN0aW9uc01lc3NhZ2VJZChcclxuICB2YWx1ZTogdW5rbm93bixcclxuKTogdmFsdWUgaXMgUmVxdWlyZUFhYVNlY3Rpb25zTWVzc2FnZUlkIHtcclxuICByZXR1cm4gKFxyXG4gICAgdmFsdWUgPT09IFwiYmxhbmtMaW5lQmVmb3JlU2VjdGlvblwiIHx8XHJcbiAgICB2YWx1ZSA9PT0gXCJjb2RlQmVmb3JlQXJyYW5nZVwiIHx8XHJcbiAgICB2YWx1ZSA9PT0gXCJlbXB0eVNlY3Rpb25cIiB8fFxyXG4gICAgdmFsdWUgPT09IFwibWlzc2luZ1NlY3Rpb25zXCJcclxuICApO1xyXG59XHJcblxyXG4vKipcclxuICogTG9hZHMgdGhlIHJ1bGUgbW9kdWxlIGFmdGVyIHRlc3QgbW9ja3MgaGF2ZSBiZWVuIGFwcGxpZWQuXHJcbiAqIEByZXR1cm5zIFRoZSBydWxlIG1vZHVsZSB1bmRlciB0ZXN0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IHJ1bGUgPSBhd2FpdCBsb2FkUmVxdWlyZUFhYVNlY3Rpb25zUnVsZSgpOyB2b2lkIHJ1bGU7XHJcbiAqIGBgYFxyXG4gKi9cclxuYXN5bmMgZnVuY3Rpb24gbG9hZFJlcXVpcmVBYWFTZWN0aW9uc1J1bGUoKTogUHJvbWlzZTxSdWxlLlJ1bGVNb2R1bGU+IHtcclxuICBjb25zdCB7IHJlcXVpcmVBYWFTZWN0aW9uc1J1bGUgfSA9IGF3YWl0IGltcG9ydChcIi4vcnVsZVwiKTtcclxuICByZXR1cm4gcmVxdWlyZUFhYVNlY3Rpb25zUnVsZTtcclxufVxyXG5cclxuZXhwb3J0IHtcclxuICBjcmVhdGVBYWFNb2R1bGVNb2NrLFxyXG4gIGNyZWF0ZU1pc3NpbmdTZWN0aW9uRml4ZXNNb2R1bGUsXHJcbiAgY3JlYXRlUmVjb3JkZWRGaXhlcixcclxuICBjcmVhdGVSdWxlQ29udGV4dCxcclxuICBnZXREZXNjcmlwdG9yRml4LFxyXG4gIGdldFJlcG9ydE1lc3NhZ2VJZCxcclxuICBsb2FkUmVxdWlyZUFhYVNlY3Rpb25zUnVsZSxcclxufTtcclxuXHJcbmV4cG9ydCB0eXBlIHsgU2NlbmFyaW9SZXN1bHQgfTtcclxuIl19
@@ -0,0 +1,2 @@
1
+ export { requireActResultCaptureRule } from "./rule.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/require-act-result-capture/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,QAAQ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { requireActResultCaptureRule } from "./rule.js";
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3RpbmcvcmVxdWlyZS1hY3QtcmVzdWx0LWNhcHR1cmUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgcmVxdWlyZUFjdFJlc3VsdENhcHR1cmVSdWxlIH0gZnJvbSBcIi4vcnVsZVwiO1xuIl19
@@ -1,4 +1,5 @@
1
1
  import type { Rule } from "eslint";
2
+ /** Requires Act-phase expressions to capture non-void results before asserting. */
2
3
  declare const requireActResultCaptureRule: Rule.RuleModule;
3
4
  export { requireActResultCaptureRule };
4
5
  //# sourceMappingURL=rule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/require-act-result-capture/rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AA2FnC,mFAAmF;AACnF,QAAA,MAAM,2BAA2B,EAAE,IAAI,CAAC,UAuCvC,CAAC;AAEF,OAAO,EAAE,2BAA2B,EAAE,CAAC"}
@@ -0,0 +1,109 @@
1
+ import { analyzeTestBlock, hasCapturableActResult } from "../aaa/index.js";
2
+ /**
3
+ * Checks whether a call reports through `context.report(...)`.
4
+ * @param expression Call expression to inspect.
5
+ * @returns True when the call targets `context.report`.
6
+ * @example
7
+ * ```typescript
8
+ * const matches = isContextReportCall({} as ESTree.CallExpression);
9
+ * void matches;
10
+ * ```
11
+ */
12
+ function isContextReportCall(expression) {
13
+ return (expression.callee.type === "MemberExpression" &&
14
+ expression.callee.object.type === "Identifier" &&
15
+ expression.callee.object.name === "context" &&
16
+ expression.callee.property.type === "Identifier" &&
17
+ expression.callee.property.name === "report");
18
+ }
19
+ /**
20
+ * Checks whether an Act statement is already delegated to a known helper.
21
+ * @param statement Statement to inspect.
22
+ * @returns True when the statement is handled by a helper wrapper.
23
+ * @example
24
+ * ```typescript
25
+ * const handled = isHelperDrivenAct({} as ESTree.Statement);
26
+ * void handled;
27
+ * ```
28
+ */
29
+ function isHelperDrivenAct(statement) {
30
+ if (statement.type !== "ExpressionStatement") {
31
+ return false;
32
+ }
33
+ const { expression } = statement;
34
+ if (expression.type !== "CallExpression") {
35
+ return false;
36
+ }
37
+ return (isContextReportCall(expression) ||
38
+ isNamedHelperCall(expression) ||
39
+ isRuleCreateCall(expression));
40
+ }
41
+ /**
42
+ * Checks whether a call targets one of the known Act helper wrappers.
43
+ * @param expression Call expression to inspect.
44
+ * @returns True when the helper name matches the allowlist.
45
+ * @example
46
+ * ```typescript
47
+ * const matches = isNamedHelperCall({} as ESTree.CallExpression);
48
+ * void matches;
49
+ * ```
50
+ */
51
+ function isNamedHelperCall(expression) {
52
+ return (expression.callee.type === "Identifier" &&
53
+ /^(?:report[A-Z]\w*|run(?:FunctionListener|Listener|Rule))$/u.test(expression.callee.name));
54
+ }
55
+ /**
56
+ * Checks whether a call targets `*.Rule.create(...)`.
57
+ * @param expression Call expression to inspect.
58
+ * @returns True when the call targets a rule factory create method.
59
+ * @example
60
+ * ```typescript
61
+ * const matches = isRuleCreateCall({} as ESTree.CallExpression);
62
+ * void matches;
63
+ * ```
64
+ */
65
+ function isRuleCreateCall(expression) {
66
+ return (expression.callee.type === "MemberExpression" &&
67
+ expression.callee.object.type === "Identifier" &&
68
+ expression.callee.object.name.endsWith("Rule") &&
69
+ expression.callee.property.type === "Identifier" &&
70
+ expression.callee.property.name === "create");
71
+ }
72
+ /** Requires Act-phase expressions to capture non-void results before asserting. */
73
+ const requireActResultCaptureRule = {
74
+ create(context) {
75
+ return {
76
+ CallExpression(node) {
77
+ const analysis = analyzeTestBlock(context, node);
78
+ if (analysis === void 0) {
79
+ return;
80
+ }
81
+ for (const statement of analysis.statements) {
82
+ if (statement.phases.includes("Act") &&
83
+ !statement.phases.includes("Assert") &&
84
+ !isHelperDrivenAct(statement.node) &&
85
+ hasCapturableActResult(statement.node)) {
86
+ context.report({
87
+ messageId: "captureActResult",
88
+ node: statement.node,
89
+ });
90
+ }
91
+ }
92
+ },
93
+ };
94
+ },
95
+ meta: {
96
+ docs: {
97
+ description: "Require non-void Act expressions to store the observed result before assertions.",
98
+ recommended: false,
99
+ url: "https://github.com/parloti/eslint-plugin/blob/main/docs/rules/require-act-result-capture.md",
100
+ },
101
+ messages: {
102
+ captureActResult: "Capture the // Act result in a named variable before asserting on it.",
103
+ },
104
+ schema: [],
105
+ type: "suggestion",
106
+ },
107
+ };
108
+ export { requireActResultCaptureRule };
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vdGVzdGluZy9yZXF1aXJlLWFjdC1yZXN1bHQtY2FwdHVyZS9ydWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUVsRTs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFTLG1CQUFtQixDQUFDLFVBQWlDO0lBQzVELE9BQU8sQ0FDTCxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxrQkFBa0I7UUFDN0MsVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLFlBQVk7UUFDOUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLFNBQVM7UUFDM0MsVUFBVSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLFlBQVk7UUFDaEQsVUFBVSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FDN0MsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFTLGlCQUFpQixDQUFDLFNBQTJCO0lBQ3BELElBQUksU0FBUyxDQUFDLElBQUksS0FBSyxxQkFBcUIsRUFBRSxDQUFDO1FBQzdDLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxTQUFTLENBQUM7SUFDakMsSUFBSSxVQUFVLENBQUMsSUFBSSxLQUFLLGdCQUFnQixFQUFFLENBQUM7UUFDekMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsT0FBTyxDQUNMLG1CQUFtQixDQUFDLFVBQVUsQ0FBQztRQUMvQixpQkFBaUIsQ0FBQyxVQUFVLENBQUM7UUFDN0IsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQzdCLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsU0FBUyxpQkFBaUIsQ0FBQyxVQUFpQztJQUMxRCxPQUFPLENBQ0wsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssWUFBWTtRQUN2Qyw2REFBNkQsQ0FBQyxJQUFJLENBQ2hFLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUN2QixDQUNGLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsU0FBUyxnQkFBZ0IsQ0FBQyxVQUFpQztJQUN6RCxPQUFPLENBQ0wsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssa0JBQWtCO1FBQzdDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxZQUFZO1FBQzlDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO1FBQzlDLFVBQVUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxZQUFZO1FBQ2hELFVBQVUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxRQUFRLENBQzdDLENBQUM7QUFDSixDQUFDO0FBRUQsbUZBQW1GO0FBQ25GLE1BQU0sMkJBQTJCLEdBQW9CO0lBQ25ELE1BQU0sQ0FBQyxPQUF5QjtRQUM5QixPQUFPO1lBQ0wsY0FBYyxDQUFDLElBQUk7Z0JBQ2pCLE1BQU0sUUFBUSxHQUFHLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDakQsSUFBSSxRQUFRLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDeEIsT0FBTztnQkFDVCxDQUFDO2dCQUVELEtBQUssTUFBTSxTQUFTLElBQUksUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO29CQUM1QyxJQUNFLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQzt3QkFDaEMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7d0JBQ3BDLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQzt3QkFDbEMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUN0QyxDQUFDO3dCQUNELE9BQU8sQ0FBQyxNQUFNLENBQUM7NEJBQ2IsU0FBUyxFQUFFLGtCQUFrQjs0QkFDN0IsSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJO3lCQUNyQixDQUFDLENBQUM7b0JBQ0wsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztTQUMwQixDQUFDO0lBQ2hDLENBQUM7SUFDRCxJQUFJLEVBQUU7UUFDSixJQUFJLEVBQUU7WUFDSixXQUFXLEVBQ1Qsa0ZBQWtGO1lBQ3BGLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLEdBQUcsRUFBRSw2RkFBNkY7U0FDbkc7UUFDRCxRQUFRLEVBQUU7WUFDUixnQkFBZ0IsRUFDZCx1RUFBdUU7U0FDMUU7UUFDRCxNQUFNLEVBQUUsRUFBRTtRQUNWLElBQUksRUFBRSxZQUFZO0tBQ25CO0NBQ0YsQ0FBQztBQUVGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSdWxlIH0gZnJvbSBcImVzbGludFwiO1xuaW1wb3J0IHR5cGUgKiBhcyBFU1RyZWUgZnJvbSBcImVzdHJlZVwiO1xuXG5pbXBvcnQgeyBhbmFseXplVGVzdEJsb2NrLCBoYXNDYXB0dXJhYmxlQWN0UmVzdWx0IH0gZnJvbSBcIi4uL2FhYVwiO1xuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGEgY2FsbCByZXBvcnRzIHRocm91Z2ggYGNvbnRleHQucmVwb3J0KC4uLilgLlxuICogQHBhcmFtIGV4cHJlc3Npb24gQ2FsbCBleHByZXNzaW9uIHRvIGluc3BlY3QuXG4gKiBAcmV0dXJucyBUcnVlIHdoZW4gdGhlIGNhbGwgdGFyZ2V0cyBgY29udGV4dC5yZXBvcnRgLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG1hdGNoZXMgPSBpc0NvbnRleHRSZXBvcnRDYWxsKHt9IGFzIEVTVHJlZS5DYWxsRXhwcmVzc2lvbik7XG4gKiB2b2lkIG1hdGNoZXM7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gaXNDb250ZXh0UmVwb3J0Q2FsbChleHByZXNzaW9uOiBFU1RyZWUuQ2FsbEV4cHJlc3Npb24pOiBib29sZWFuIHtcbiAgcmV0dXJuIChcbiAgICBleHByZXNzaW9uLmNhbGxlZS50eXBlID09PSBcIk1lbWJlckV4cHJlc3Npb25cIiAmJlxuICAgIGV4cHJlc3Npb24uY2FsbGVlLm9iamVjdC50eXBlID09PSBcIklkZW50aWZpZXJcIiAmJlxuICAgIGV4cHJlc3Npb24uY2FsbGVlLm9iamVjdC5uYW1lID09PSBcImNvbnRleHRcIiAmJlxuICAgIGV4cHJlc3Npb24uY2FsbGVlLnByb3BlcnR5LnR5cGUgPT09IFwiSWRlbnRpZmllclwiICYmXG4gICAgZXhwcmVzc2lvbi5jYWxsZWUucHJvcGVydHkubmFtZSA9PT0gXCJyZXBvcnRcIlxuICApO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGFuIEFjdCBzdGF0ZW1lbnQgaXMgYWxyZWFkeSBkZWxlZ2F0ZWQgdG8gYSBrbm93biBoZWxwZXIuXG4gKiBAcGFyYW0gc3RhdGVtZW50IFN0YXRlbWVudCB0byBpbnNwZWN0LlxuICogQHJldHVybnMgVHJ1ZSB3aGVuIHRoZSBzdGF0ZW1lbnQgaXMgaGFuZGxlZCBieSBhIGhlbHBlciB3cmFwcGVyLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGhhbmRsZWQgPSBpc0hlbHBlckRyaXZlbkFjdCh7fSBhcyBFU1RyZWUuU3RhdGVtZW50KTtcbiAqIHZvaWQgaGFuZGxlZDtcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBpc0hlbHBlckRyaXZlbkFjdChzdGF0ZW1lbnQ6IEVTVHJlZS5TdGF0ZW1lbnQpOiBib29sZWFuIHtcbiAgaWYgKHN0YXRlbWVudC50eXBlICE9PSBcIkV4cHJlc3Npb25TdGF0ZW1lbnRcIikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IHsgZXhwcmVzc2lvbiB9ID0gc3RhdGVtZW50O1xuICBpZiAoZXhwcmVzc2lvbi50eXBlICE9PSBcIkNhbGxFeHByZXNzaW9uXCIpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIGlzQ29udGV4dFJlcG9ydENhbGwoZXhwcmVzc2lvbikgfHxcbiAgICBpc05hbWVkSGVscGVyQ2FsbChleHByZXNzaW9uKSB8fFxuICAgIGlzUnVsZUNyZWF0ZUNhbGwoZXhwcmVzc2lvbilcbiAgKTtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhIGNhbGwgdGFyZ2V0cyBvbmUgb2YgdGhlIGtub3duIEFjdCBoZWxwZXIgd3JhcHBlcnMuXG4gKiBAcGFyYW0gZXhwcmVzc2lvbiBDYWxsIGV4cHJlc3Npb24gdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIFRydWUgd2hlbiB0aGUgaGVscGVyIG5hbWUgbWF0Y2hlcyB0aGUgYWxsb3dsaXN0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG1hdGNoZXMgPSBpc05hbWVkSGVscGVyQ2FsbCh7fSBhcyBFU1RyZWUuQ2FsbEV4cHJlc3Npb24pO1xuICogdm9pZCBtYXRjaGVzO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGlzTmFtZWRIZWxwZXJDYWxsKGV4cHJlc3Npb246IEVTVHJlZS5DYWxsRXhwcmVzc2lvbik6IGJvb2xlYW4ge1xuICByZXR1cm4gKFxuICAgIGV4cHJlc3Npb24uY2FsbGVlLnR5cGUgPT09IFwiSWRlbnRpZmllclwiICYmXG4gICAgL14oPzpyZXBvcnRbQS1aXVxcdyp8cnVuKD86RnVuY3Rpb25MaXN0ZW5lcnxMaXN0ZW5lcnxSdWxlKSkkL3UudGVzdChcbiAgICAgIGV4cHJlc3Npb24uY2FsbGVlLm5hbWUsXG4gICAgKVxuICApO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGEgY2FsbCB0YXJnZXRzIGAqLlJ1bGUuY3JlYXRlKC4uLilgLlxuICogQHBhcmFtIGV4cHJlc3Npb24gQ2FsbCBleHByZXNzaW9uIHRvIGluc3BlY3QuXG4gKiBAcmV0dXJucyBUcnVlIHdoZW4gdGhlIGNhbGwgdGFyZ2V0cyBhIHJ1bGUgZmFjdG9yeSBjcmVhdGUgbWV0aG9kLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG1hdGNoZXMgPSBpc1J1bGVDcmVhdGVDYWxsKHt9IGFzIEVTVHJlZS5DYWxsRXhwcmVzc2lvbik7XG4gKiB2b2lkIG1hdGNoZXM7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gaXNSdWxlQ3JlYXRlQ2FsbChleHByZXNzaW9uOiBFU1RyZWUuQ2FsbEV4cHJlc3Npb24pOiBib29sZWFuIHtcbiAgcmV0dXJuIChcbiAgICBleHByZXNzaW9uLmNhbGxlZS50eXBlID09PSBcIk1lbWJlckV4cHJlc3Npb25cIiAmJlxuICAgIGV4cHJlc3Npb24uY2FsbGVlLm9iamVjdC50eXBlID09PSBcIklkZW50aWZpZXJcIiAmJlxuICAgIGV4cHJlc3Npb24uY2FsbGVlLm9iamVjdC5uYW1lLmVuZHNXaXRoKFwiUnVsZVwiKSAmJlxuICAgIGV4cHJlc3Npb24uY2FsbGVlLnByb3BlcnR5LnR5cGUgPT09IFwiSWRlbnRpZmllclwiICYmXG4gICAgZXhwcmVzc2lvbi5jYWxsZWUucHJvcGVydHkubmFtZSA9PT0gXCJjcmVhdGVcIlxuICApO1xufVxuXG4vKiogUmVxdWlyZXMgQWN0LXBoYXNlIGV4cHJlc3Npb25zIHRvIGNhcHR1cmUgbm9uLXZvaWQgcmVzdWx0cyBiZWZvcmUgYXNzZXJ0aW5nLiAqL1xuY29uc3QgcmVxdWlyZUFjdFJlc3VsdENhcHR1cmVSdWxlOiBSdWxlLlJ1bGVNb2R1bGUgPSB7XG4gIGNyZWF0ZShjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0KTogUnVsZS5SdWxlTGlzdGVuZXIge1xuICAgIHJldHVybiB7XG4gICAgICBDYWxsRXhwcmVzc2lvbihub2RlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGFuYWx5c2lzID0gYW5hbHl6ZVRlc3RCbG9jayhjb250ZXh0LCBub2RlKTtcbiAgICAgICAgaWYgKGFuYWx5c2lzID09PSB2b2lkIDApIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IHN0YXRlbWVudCBvZiBhbmFseXNpcy5zdGF0ZW1lbnRzKSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgc3RhdGVtZW50LnBoYXNlcy5pbmNsdWRlcyhcIkFjdFwiKSAmJlxuICAgICAgICAgICAgIXN0YXRlbWVudC5waGFzZXMuaW5jbHVkZXMoXCJBc3NlcnRcIikgJiZcbiAgICAgICAgICAgICFpc0hlbHBlckRyaXZlbkFjdChzdGF0ZW1lbnQubm9kZSkgJiZcbiAgICAgICAgICAgIGhhc0NhcHR1cmFibGVBY3RSZXN1bHQoc3RhdGVtZW50Lm5vZGUpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICAgIG1lc3NhZ2VJZDogXCJjYXB0dXJlQWN0UmVzdWx0XCIsXG4gICAgICAgICAgICAgIG5vZGU6IHN0YXRlbWVudC5ub2RlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0gc2F0aXNmaWVzIFJ1bGUuUnVsZUxpc3RlbmVyO1xuICB9LFxuICBtZXRhOiB7XG4gICAgZG9jczoge1xuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIFwiUmVxdWlyZSBub24tdm9pZCBBY3QgZXhwcmVzc2lvbnMgdG8gc3RvcmUgdGhlIG9ic2VydmVkIHJlc3VsdCBiZWZvcmUgYXNzZXJ0aW9ucy5cIixcbiAgICAgIHJlY29tbWVuZGVkOiBmYWxzZSxcbiAgICAgIHVybDogXCJodHRwczovL2dpdGh1Yi5jb20vcGFybG90aS9lc2xpbnQtcGx1Z2luL2Jsb2IvbWFpbi9kb2NzL3J1bGVzL3JlcXVpcmUtYWN0LXJlc3VsdC1jYXB0dXJlLm1kXCIsXG4gICAgfSxcbiAgICBtZXNzYWdlczoge1xuICAgICAgY2FwdHVyZUFjdFJlc3VsdDpcbiAgICAgICAgXCJDYXB0dXJlIHRoZSAvLyBBY3QgcmVzdWx0IGluIGEgbmFtZWQgdmFyaWFibGUgYmVmb3JlIGFzc2VydGluZyBvbiBpdC5cIixcbiAgICB9LFxuICAgIHNjaGVtYTogW10sXG4gICAgdHlwZTogXCJzdWdnZXN0aW9uXCIsXG4gIH0sXG59O1xuXG5leHBvcnQgeyByZXF1aXJlQWN0UmVzdWx0Q2FwdHVyZVJ1bGUgfTtcbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export { buildListenerForFilename, getOptions, } from "./require-test-companion-utilities.js";
2
+ export { requireTestCompanionRule } from "./rule.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/require-test-companion/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,UAAU,GACX,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,QAAQ,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { buildListenerForFilename, getOptions, } from "./require-test-companion-utilities.js";
2
+ export { requireTestCompanionRule } from "./rule.js";
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3RpbmcvcmVxdWlyZS10ZXN0LWNvbXBhbmlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLFVBQVUsR0FDWCxNQUFNLG9DQUFvQyxDQUFDO0FBQzVDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7XG4gIGJ1aWxkTGlzdGVuZXJGb3JGaWxlbmFtZSxcbiAgZ2V0T3B0aW9ucyxcbn0gZnJvbSBcIi4vcmVxdWlyZS10ZXN0LWNvbXBhbmlvbi11dGlsaXRpZXNcIjtcbmV4cG9ydCB7IHJlcXVpcmVUZXN0Q29tcGFuaW9uUnVsZSB9IGZyb20gXCIuL3J1bGVcIjtcbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  import type { Rule } from "eslint";
2
- import type { RequireTestCompanionState } from "./require-test-companion-options";
2
+ import type { RequireTestCompanionState } from "./require-test-companion-options.js";
3
3
  /**
4
4
  * Builds a listener for a specific filename.
5
5
  * @param context Input context value.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"require-test-companion-listeners.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/require-test-companion/require-test-companion-listeners.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAKnC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAuLlF;;;;;;;;;;GAUG;AACH,QAAA,MAAM,wBAAwB,GAC5B,SAAS,IAAI,CAAC,WAAW,EACzB,UAAU,MAAM,EAChB,SAAS,yBAAyB,KACjC,IAAI,CAAC,YAuBP,CAAC;AAEF,OAAO,EAAE,wBAAwB,EAAE,CAAC"}