@codeperfect/eslint-plugin 1.0.0 → 2.0.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 (557) 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 +140 -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 +85 -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 +43 -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 +219 -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 +145 -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} +1 -1
  84. package/dist/domain/custom-rule-documentation.d.ts.map +1 -0
  85. package/dist/domain/custom-rule-documentation.js +35 -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 +168 -0
  105. package/dist/domain/docs/no-interface-member-docs/test-helpers.d.ts.map +1 -0
  106. package/dist/domain/docs/no-interface-member-docs/test-helpers.js +157 -0
  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 +34 -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.map +1 -0
  137. package/dist/domain/docs/single-line-jsdoc/rule.edge-cases.d.ts +4 -0
  138. package/dist/domain/docs/single-line-jsdoc/rule.edge-cases.d.ts.map +1 -0
  139. package/dist/domain/docs/single-line-jsdoc/rule.edge-cases.js +5 -0
  140. package/dist/domain/docs/single-line-jsdoc/rule.js +196 -0
  141. package/dist/domain/docs/single-line-jsdoc/rule.node-lookups.d.ts +4 -0
  142. package/dist/domain/docs/single-line-jsdoc/rule.node-lookups.d.ts.map +1 -0
  143. package/dist/domain/docs/single-line-jsdoc/rule.node-lookups.js +5 -0
  144. package/dist/domain/docs/single-line-jsdoc/single-line-jsdoc-content.d.ts.map +1 -0
  145. package/dist/domain/docs/single-line-jsdoc/single-line-jsdoc-content.js +95 -0
  146. package/dist/{docs → domain/docs}/single-line-jsdoc/single-line-jsdoc-utilities.d.ts +1 -1
  147. package/dist/domain/docs/single-line-jsdoc/single-line-jsdoc-utilities.d.ts.map +1 -0
  148. package/dist/domain/docs/single-line-jsdoc/single-line-jsdoc-utilities.js +140 -0
  149. package/dist/domain/docs/test-helpers.d.ts.map +1 -0
  150. package/dist/domain/docs/test-helpers.js +107 -0
  151. package/dist/domain/index.d.ts +6 -0
  152. package/dist/domain/index.d.ts.map +1 -0
  153. package/dist/domain/index.js +6 -0
  154. package/dist/domain/testing/aaa/analyzer.analysis.d.ts +92 -0
  155. package/dist/domain/testing/aaa/analyzer.analysis.d.ts.map +1 -0
  156. package/dist/domain/testing/aaa/analyzer.analysis.helpers.d.ts +4 -0
  157. package/dist/domain/testing/aaa/analyzer.analysis.helpers.d.ts.map +1 -0
  158. package/dist/domain/testing/aaa/analyzer.analysis.helpers.js +4 -0
  159. package/dist/domain/testing/aaa/analyzer.analysis.js +247 -0
  160. package/dist/domain/testing/aaa/analyzer.assertions.d.ts +93 -0
  161. package/dist/domain/testing/aaa/analyzer.assertions.d.ts.map +1 -0
  162. package/dist/domain/testing/aaa/analyzer.assertions.js +283 -0
  163. package/dist/domain/testing/aaa/analyzer.classification.d.ts +75 -0
  164. package/dist/domain/testing/aaa/analyzer.classification.d.ts.map +1 -0
  165. package/dist/domain/testing/aaa/analyzer.classification.js +201 -0
  166. package/dist/domain/testing/aaa/analyzer.classification.member-patterns.d.ts +9 -0
  167. package/dist/domain/testing/aaa/analyzer.classification.member-patterns.d.ts.map +1 -0
  168. package/dist/domain/testing/aaa/analyzer.classification.member-patterns.js +10 -0
  169. package/dist/domain/testing/aaa/analyzer.d.ts +46 -0
  170. package/dist/domain/testing/aaa/analyzer.d.ts.map +1 -0
  171. package/dist/domain/testing/aaa/analyzer.js +59 -0
  172. package/dist/domain/testing/aaa/analyzer.super.d.ts +107 -0
  173. package/dist/domain/testing/aaa/analyzer.super.d.ts.map +1 -0
  174. package/dist/domain/testing/aaa/analyzer.super.js +228 -0
  175. package/dist/{testing → domain/testing}/aaa/index.d.ts +2 -2
  176. package/dist/domain/testing/aaa/index.d.ts.map +1 -0
  177. package/dist/domain/testing/aaa/index.js +2 -0
  178. package/dist/domain/testing/aaa/types.d.ts +58 -0
  179. package/dist/domain/testing/aaa/types.d.ts.map +1 -0
  180. package/dist/domain/testing/aaa/types.js +2 -0
  181. package/dist/domain/testing/assert-actual-expected-names/index.d.ts +2 -0
  182. package/dist/domain/testing/assert-actual-expected-names/index.d.ts.map +1 -0
  183. package/dist/domain/testing/assert-actual-expected-names/index.js +2 -0
  184. package/dist/{testing → domain/testing}/assert-actual-expected-names/rule.d.ts +1 -0
  185. package/dist/domain/testing/assert-actual-expected-names/rule.d.ts.map +1 -0
  186. package/dist/domain/testing/assert-actual-expected-names/rule.js +113 -0
  187. package/dist/domain/testing/enforce-aaa-phase-purity/index.d.ts +2 -0
  188. package/dist/domain/testing/enforce-aaa-phase-purity/index.d.ts.map +1 -0
  189. package/dist/domain/testing/enforce-aaa-phase-purity/index.js +2 -0
  190. package/dist/domain/testing/enforce-aaa-phase-purity/pattern-identifiers.d.ts +13 -0
  191. package/dist/domain/testing/enforce-aaa-phase-purity/pattern-identifiers.d.ts.map +1 -0
  192. package/dist/domain/testing/enforce-aaa-phase-purity/pattern-identifiers.js +134 -0
  193. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-identifiers.d.ts +25 -0
  194. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-identifiers.d.ts.map +1 -0
  195. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-identifiers.js +138 -0
  196. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.d.ts +4 -0
  197. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.d.ts.map +1 -0
  198. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.js +4 -0
  199. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.d.ts +14 -0
  200. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.d.ts.map +1 -0
  201. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.js +180 -0
  202. package/dist/domain/testing/enforce-aaa-phase-purity/rule-test-helpers.d.ts +42 -0
  203. package/dist/domain/testing/enforce-aaa-phase-purity/rule-test-helpers.d.ts.map +1 -0
  204. package/dist/domain/testing/enforce-aaa-phase-purity/rule-test-helpers.js +188 -0
  205. package/dist/{testing → domain/testing}/enforce-aaa-phase-purity/rule.d.ts +1 -0
  206. package/dist/domain/testing/enforce-aaa-phase-purity/rule.d.ts.map +1 -0
  207. package/dist/domain/testing/enforce-aaa-phase-purity/rule.js +34 -0
  208. package/dist/domain/testing/enforce-aaa-structure/index.d.ts +2 -0
  209. package/dist/domain/testing/enforce-aaa-structure/index.d.ts.map +1 -0
  210. package/dist/domain/testing/enforce-aaa-structure/index.js +2 -0
  211. package/dist/{testing → domain/testing}/enforce-aaa-structure/rule.d.ts +1 -0
  212. package/dist/domain/testing/enforce-aaa-structure/rule.d.ts.map +1 -0
  213. package/dist/domain/testing/enforce-aaa-structure/rule.js +85 -0
  214. package/dist/{testing → domain/testing}/index.d.ts +9 -8
  215. package/dist/domain/testing/index.d.ts.map +1 -0
  216. package/dist/domain/testing/index.js +10 -0
  217. package/dist/domain/testing/prefer-vi-mocked-import/fix-import-statements.d.ts +29 -0
  218. package/dist/domain/testing/prefer-vi-mocked-import/fix-import-statements.d.ts.map +1 -0
  219. package/dist/domain/testing/prefer-vi-mocked-import/fix-import-statements.js +90 -0
  220. package/dist/domain/testing/prefer-vi-mocked-import/fix-import-updates.d.ts +31 -0
  221. package/dist/domain/testing/prefer-vi-mocked-import/fix-import-updates.d.ts.map +1 -0
  222. package/dist/domain/testing/prefer-vi-mocked-import/fix-import-updates.js +43 -0
  223. package/dist/domain/testing/prefer-vi-mocked-import/fix-imports.d.ts +16 -0
  224. package/dist/domain/testing/prefer-vi-mocked-import/fix-imports.d.ts.map +1 -0
  225. package/dist/domain/testing/prefer-vi-mocked-import/fix-imports.js +205 -0
  226. package/dist/domain/testing/prefer-vi-mocked-import/fix.d.ts +28 -0
  227. package/dist/domain/testing/prefer-vi-mocked-import/fix.d.ts.map +1 -0
  228. package/dist/domain/testing/prefer-vi-mocked-import/fix.js +171 -0
  229. package/dist/domain/testing/prefer-vi-mocked-import/index.d.ts +2 -0
  230. package/dist/domain/testing/prefer-vi-mocked-import/index.d.ts.map +1 -0
  231. package/dist/domain/testing/prefer-vi-mocked-import/index.js +2 -0
  232. package/dist/{testing → domain/testing}/prefer-vi-mocked-import/match-bindings.d.ts +1 -1
  233. package/dist/domain/testing/prefer-vi-mocked-import/match-bindings.d.ts.map +1 -0
  234. package/dist/domain/testing/prefer-vi-mocked-import/match-bindings.js +52 -0
  235. package/dist/{testing → domain/testing}/prefer-vi-mocked-import/match-declarations.d.ts +2 -1
  236. package/dist/domain/testing/prefer-vi-mocked-import/match-declarations.d.ts.map +1 -0
  237. package/dist/domain/testing/prefer-vi-mocked-import/match-declarations.js +131 -0
  238. package/dist/domain/testing/prefer-vi-mocked-import/match-helpers.d.ts.map +1 -0
  239. package/dist/domain/testing/prefer-vi-mocked-import/match-helpers.js +102 -0
  240. package/dist/{testing → domain/testing}/prefer-vi-mocked-import/match-imports.d.ts +1 -1
  241. package/dist/domain/testing/prefer-vi-mocked-import/match-imports.d.ts.map +1 -0
  242. package/dist/domain/testing/prefer-vi-mocked-import/match-imports.js +156 -0
  243. package/dist/{testing → domain/testing}/prefer-vi-mocked-import/match-rewrites.d.ts +1 -1
  244. package/dist/domain/testing/prefer-vi-mocked-import/match-rewrites.d.ts.map +1 -0
  245. package/dist/domain/testing/prefer-vi-mocked-import/match-rewrites.js +119 -0
  246. package/dist/domain/testing/prefer-vi-mocked-import/match-walk.d.ts.map +1 -0
  247. package/dist/domain/testing/prefer-vi-mocked-import/match-walk.js +62 -0
  248. package/dist/domain/testing/prefer-vi-mocked-import/match.d.ts +26 -0
  249. package/dist/domain/testing/prefer-vi-mocked-import/match.d.ts.map +1 -0
  250. package/dist/domain/testing/prefer-vi-mocked-import/match.js +198 -0
  251. package/dist/domain/testing/prefer-vi-mocked-import/rule-test-helpers.d.ts +20 -0
  252. package/dist/domain/testing/prefer-vi-mocked-import/rule-test-helpers.d.ts.map +1 -0
  253. package/dist/domain/testing/prefer-vi-mocked-import/rule-test-helpers.js +39 -0
  254. package/dist/domain/testing/prefer-vi-mocked-import/rule.d.ts.map +1 -0
  255. package/dist/domain/testing/prefer-vi-mocked-import/rule.js +36 -0
  256. package/dist/{testing → domain/testing}/prefer-vi-mocked-import/types.d.ts +1 -1
  257. package/dist/domain/testing/prefer-vi-mocked-import/types.d.ts.map +1 -0
  258. package/dist/domain/testing/prefer-vi-mocked-import/types.js +2 -0
  259. package/dist/domain/testing/prefer-vitest-incremental-casts/ast-helpers.d.ts +86 -0
  260. package/dist/domain/testing/prefer-vitest-incremental-casts/ast-helpers.d.ts.map +1 -0
  261. package/dist/domain/testing/prefer-vitest-incremental-casts/ast-helpers.js +150 -0
  262. package/dist/domain/testing/prefer-vitest-incremental-casts/index.d.ts +2 -0
  263. package/dist/domain/testing/prefer-vitest-incremental-casts/index.d.ts.map +1 -0
  264. package/dist/domain/testing/prefer-vitest-incremental-casts/index.js +2 -0
  265. package/dist/domain/testing/prefer-vitest-incremental-casts/match-input.d.ts +14 -0
  266. package/dist/domain/testing/prefer-vitest-incremental-casts/match-input.d.ts.map +1 -0
  267. package/dist/domain/testing/prefer-vitest-incremental-casts/match-input.js +81 -0
  268. package/dist/domain/testing/prefer-vitest-incremental-casts/match.d.ts +13 -0
  269. package/dist/domain/testing/prefer-vitest-incremental-casts/match.d.ts.map +1 -0
  270. package/dist/domain/testing/prefer-vitest-incremental-casts/match.js +189 -0
  271. package/dist/domain/testing/prefer-vitest-incremental-casts/replacement-helpers.d.ts +25 -0
  272. package/dist/domain/testing/prefer-vitest-incremental-casts/replacement-helpers.d.ts.map +1 -0
  273. package/dist/domain/testing/prefer-vitest-incremental-casts/replacement-helpers.js +92 -0
  274. package/dist/domain/testing/prefer-vitest-incremental-casts/rule-test-helpers.d.ts +32 -0
  275. package/dist/domain/testing/prefer-vitest-incremental-casts/rule-test-helpers.d.ts.map +1 -0
  276. package/dist/domain/testing/prefer-vitest-incremental-casts/rule-test-helpers.js +164 -0
  277. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.d.ts +5 -0
  278. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.d.ts.map +1 -0
  279. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.guardrails.d.ts +4 -0
  280. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.guardrails.d.ts.map +1 -0
  281. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.guardrails.js +4 -0
  282. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.input-shapes.d.ts +4 -0
  283. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.input-shapes.d.ts.map +1 -0
  284. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.input-shapes.js +4 -0
  285. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.js +62 -0
  286. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.signature-fallback.d.ts +4 -0
  287. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.signature-fallback.d.ts.map +1 -0
  288. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.signature-fallback.js +4 -0
  289. package/dist/domain/testing/prefer-vitest-incremental-casts/type-helpers.d.ts +24 -0
  290. package/dist/domain/testing/prefer-vitest-incremental-casts/type-helpers.d.ts.map +1 -0
  291. package/dist/domain/testing/prefer-vitest-incremental-casts/type-helpers.js +113 -0
  292. package/dist/domain/testing/prefer-vitest-incremental-casts/type-shape-helpers.d.ts +36 -0
  293. package/dist/domain/testing/prefer-vitest-incremental-casts/type-shape-helpers.d.ts.map +1 -0
  294. package/dist/domain/testing/prefer-vitest-incremental-casts/type-shape-helpers.js +138 -0
  295. package/dist/domain/testing/prefer-vitest-incremental-casts/types.d.ts +203 -0
  296. package/dist/domain/testing/prefer-vitest-incremental-casts/types.d.ts.map +1 -0
  297. package/dist/domain/testing/prefer-vitest-incremental-casts/types.js +2 -0
  298. package/dist/domain/testing/require-aaa-sections/index.d.ts +2 -0
  299. package/dist/domain/testing/require-aaa-sections/index.d.ts.map +1 -0
  300. package/dist/domain/testing/require-aaa-sections/index.js +2 -0
  301. package/dist/domain/testing/require-aaa-sections/missing-section-fixes.d.ts +17 -0
  302. package/dist/domain/testing/require-aaa-sections/missing-section-fixes.d.ts.map +1 -0
  303. package/dist/domain/testing/require-aaa-sections/missing-section-fixes.js +150 -0
  304. package/dist/{testing → domain/testing}/require-aaa-sections/rule.d.ts +1 -0
  305. package/dist/domain/testing/require-aaa-sections/rule.d.ts.map +1 -0
  306. package/dist/domain/testing/require-aaa-sections/rule.js +129 -0
  307. package/dist/domain/testing/require-aaa-sections/rule.reporting.d.ts +104 -0
  308. package/dist/domain/testing/require-aaa-sections/rule.reporting.d.ts.map +1 -0
  309. package/dist/domain/testing/require-aaa-sections/rule.reporting.js +217 -0
  310. package/dist/domain/testing/require-act-result-capture/index.d.ts +2 -0
  311. package/dist/domain/testing/require-act-result-capture/index.d.ts.map +1 -0
  312. package/dist/domain/testing/require-act-result-capture/index.js +2 -0
  313. package/dist/{testing → domain/testing}/require-act-result-capture/rule.d.ts +1 -0
  314. package/dist/domain/testing/require-act-result-capture/rule.d.ts.map +1 -0
  315. package/dist/domain/testing/require-act-result-capture/rule.js +106 -0
  316. package/dist/domain/testing/require-test-companion/index.d.ts +3 -0
  317. package/dist/domain/testing/require-test-companion/index.d.ts.map +1 -0
  318. package/dist/domain/testing/require-test-companion/index.js +3 -0
  319. package/dist/{testing → domain/testing}/require-test-companion/require-test-companion-listeners.d.ts +1 -1
  320. package/dist/domain/testing/require-test-companion/require-test-companion-listeners.d.ts.map +1 -0
  321. package/dist/domain/testing/require-test-companion/require-test-companion-listeners.js +145 -0
  322. package/dist/domain/testing/require-test-companion/require-test-companion-options.d.ts.map +1 -0
  323. package/dist/domain/testing/require-test-companion/require-test-companion-options.js +113 -0
  324. package/dist/{testing → domain/testing}/require-test-companion/require-test-companion-test-helpers.d.ts +1 -1
  325. package/dist/domain/testing/require-test-companion/require-test-companion-test-helpers.d.ts.map +1 -0
  326. package/dist/domain/testing/require-test-companion/require-test-companion-test-helpers.js +184 -0
  327. package/dist/{testing → domain/testing}/require-test-companion/require-test-companion-utilities.d.ts +1 -1
  328. package/dist/domain/testing/require-test-companion/require-test-companion-utilities.d.ts.map +1 -0
  329. package/dist/domain/testing/require-test-companion/require-test-companion-utilities.js +26 -0
  330. package/dist/domain/testing/require-test-companion/rule.d.ts.map +1 -0
  331. package/dist/domain/testing/require-test-companion/rule.js +57 -0
  332. package/dist/domain/testing/require-test-companion/types.d.ts.map +1 -0
  333. package/dist/domain/testing/require-test-companion/types.js +2 -0
  334. package/dist/domain/testing/single-act-statement/index.d.ts +2 -0
  335. package/dist/domain/testing/single-act-statement/index.d.ts.map +1 -0
  336. package/dist/domain/testing/single-act-statement/index.js +2 -0
  337. package/dist/{testing → domain/testing}/single-act-statement/rule.d.ts +1 -0
  338. package/dist/domain/testing/single-act-statement/rule.d.ts.map +1 -0
  339. package/dist/domain/testing/single-act-statement/rule.js +34 -0
  340. package/dist/index.d.ts +4 -5
  341. package/dist/index.d.ts.map +1 -1
  342. package/dist/index.js +3 -6
  343. package/dist/{codeperfect-plugin.d.ts → infrastructure/codeperfect-plugin.d.ts} +2 -0
  344. package/dist/infrastructure/codeperfect-plugin.d.ts.map +1 -0
  345. package/dist/infrastructure/codeperfect-plugin.js +30 -0
  346. package/dist/infrastructure/index.d.ts +5 -0
  347. package/dist/infrastructure/index.d.ts.map +1 -0
  348. package/dist/infrastructure/index.js +4 -0
  349. package/dist/infrastructure/presets.d.ts +18 -0
  350. package/dist/infrastructure/presets.d.ts.map +1 -0
  351. package/dist/infrastructure/presets.js +81 -0
  352. package/package.json +54 -27
  353. package/dist/architecture/consistent-barrel-files/consistent-barrel-files-listeners.d.ts.map +0 -1
  354. package/dist/architecture/consistent-barrel-files/consistent-barrel-files-listeners.js +0 -131
  355. package/dist/architecture/consistent-barrel-files/consistent-barrel-files-options.d.ts +0 -48
  356. package/dist/architecture/consistent-barrel-files/consistent-barrel-files-options.d.ts.map +0 -1
  357. package/dist/architecture/consistent-barrel-files/consistent-barrel-files-options.js +0 -126
  358. package/dist/architecture/consistent-barrel-files/exports-only-rule-test-utilities.d.ts.map +0 -1
  359. package/dist/architecture/consistent-barrel-files/exports-only-rule-test-utilities.js +0 -90
  360. package/dist/architecture/consistent-barrel-files/exports-only-rule.d.ts.map +0 -1
  361. package/dist/architecture/consistent-barrel-files/exports-only-rule.js +0 -218
  362. package/dist/architecture/consistent-barrel-files/index.d.ts +0 -5
  363. package/dist/architecture/consistent-barrel-files/index.d.ts.map +0 -1
  364. package/dist/architecture/consistent-barrel-files/index.js +0 -4
  365. package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.d.ts.map +0 -1
  366. package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.js +0 -100
  367. package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-test-utilities.d.ts.map +0 -1
  368. package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-test-utilities.js +0 -90
  369. package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-utilities.d.ts.map +0 -1
  370. package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-utilities.js +0 -154
  371. package/dist/architecture/consistent-barrel-files/rule.d.ts.map +0 -1
  372. package/dist/architecture/consistent-barrel-files/rule.js +0 -58
  373. package/dist/architecture/consistent-barrel-files/test-helpers.d.ts.map +0 -1
  374. package/dist/architecture/consistent-barrel-files/test-helpers.js +0 -229
  375. package/dist/architecture/consistent-barrel-files/types.d.ts +0 -25
  376. package/dist/architecture/consistent-barrel-files/types.d.ts.map +0 -1
  377. package/dist/architecture/consistent-barrel-files/types.js +0 -2
  378. package/dist/architecture/index.d.ts.map +0 -1
  379. package/dist/architecture/index.js +0 -2
  380. package/dist/benchmark-rules.d.ts +0 -83
  381. package/dist/benchmark-rules.d.ts.map +0 -1
  382. package/dist/benchmark-rules.js +0 -175
  383. package/dist/codeperfect-plugin.d.ts.map +0 -1
  384. package/dist/codeperfect-plugin.js +0 -29
  385. package/dist/core/index.d.ts.map +0 -1
  386. package/dist/core/index.js +0 -3
  387. package/dist/core/no-multiple-declarators/index.d.ts +0 -2
  388. package/dist/core/no-multiple-declarators/index.d.ts.map +0 -1
  389. package/dist/core/no-multiple-declarators/index.js +0 -2
  390. package/dist/core/no-multiple-declarators/rule.d.ts.map +0 -1
  391. package/dist/core/no-multiple-declarators/rule.js +0 -100
  392. package/dist/core/prefer-interface-types/index.d.ts +0 -2
  393. package/dist/core/prefer-interface-types/index.d.ts.map +0 -1
  394. package/dist/core/prefer-interface-types/index.js +0 -2
  395. package/dist/core/prefer-interface-types/rule.d.ts.map +0 -1
  396. package/dist/core/prefer-interface-types/rule.js +0 -145
  397. package/dist/core/prefer-interface-types/test-helpers.d.ts.map +0 -1
  398. package/dist/core/prefer-interface-types/test-helpers.js +0 -116
  399. package/dist/custom-rule-documentation.d.ts.map +0 -1
  400. package/dist/custom-rule-documentation.js +0 -35
  401. package/dist/custom-rules.d.ts.map +0 -1
  402. package/dist/custom-rules.js +0 -70
  403. package/dist/docs/index.d.ts +0 -4
  404. package/dist/docs/index.d.ts.map +0 -1
  405. package/dist/docs/index.js +0 -4
  406. package/dist/docs/no-interface-member-docs/comment-utilities-test-helpers.d.ts.map +0 -1
  407. package/dist/docs/no-interface-member-docs/comment-utilities-test-helpers.js +0 -129
  408. package/dist/docs/no-interface-member-docs/comment-utilities.d.ts.map +0 -1
  409. package/dist/docs/no-interface-member-docs/comment-utilities.js +0 -146
  410. package/dist/docs/no-interface-member-docs/index.d.ts +0 -2
  411. package/dist/docs/no-interface-member-docs/index.d.ts.map +0 -1
  412. package/dist/docs/no-interface-member-docs/index.js +0 -2
  413. package/dist/docs/no-interface-member-docs/parameter-tags.d.ts.map +0 -1
  414. package/dist/docs/no-interface-member-docs/parameter-tags.js +0 -101
  415. package/dist/docs/no-interface-member-docs/parameter-utilities.d.ts.map +0 -1
  416. package/dist/docs/no-interface-member-docs/parameter-utilities.js +0 -125
  417. package/dist/docs/no-interface-member-docs/rule.d.ts.map +0 -1
  418. package/dist/docs/no-interface-member-docs/rule.js +0 -168
  419. package/dist/docs/no-interface-member-docs/test-helpers.d.ts.map +0 -1
  420. package/dist/docs/no-interface-member-docs/test-helpers.js +0 -157
  421. package/dist/docs/no-interface-member-docs/types.d.ts.map +0 -1
  422. package/dist/docs/no-interface-member-docs/types.js +0 -2
  423. package/dist/docs/require-example-language/empty-fence-fixes.d.ts.map +0 -1
  424. package/dist/docs/require-example-language/empty-fence-fixes.js +0 -169
  425. package/dist/docs/require-example-language/example-utilities.d.ts.map +0 -1
  426. package/dist/docs/require-example-language/example-utilities.js +0 -76
  427. package/dist/docs/require-example-language/examples.d.ts.map +0 -1
  428. package/dist/docs/require-example-language/examples.js +0 -181
  429. package/dist/docs/require-example-language/fixes.d.ts.map +0 -1
  430. package/dist/docs/require-example-language/fixes.js +0 -182
  431. package/dist/docs/require-example-language/index.d.ts +0 -3
  432. package/dist/docs/require-example-language/index.d.ts.map +0 -1
  433. package/dist/docs/require-example-language/index.js +0 -2
  434. package/dist/docs/require-example-language/reporting.d.ts.map +0 -1
  435. package/dist/docs/require-example-language/reporting.js +0 -145
  436. package/dist/docs/require-example-language/rule.d.ts.map +0 -1
  437. package/dist/docs/require-example-language/rule.js +0 -34
  438. package/dist/docs/require-example-language/types.d.ts.map +0 -1
  439. package/dist/docs/require-example-language/types.js +0 -2
  440. package/dist/docs/single-line-jsdoc/index.d.ts +0 -2
  441. package/dist/docs/single-line-jsdoc/index.d.ts.map +0 -1
  442. package/dist/docs/single-line-jsdoc/index.js +0 -2
  443. package/dist/docs/single-line-jsdoc/rule.d.ts.map +0 -1
  444. package/dist/docs/single-line-jsdoc/rule.js +0 -196
  445. package/dist/docs/single-line-jsdoc/single-line-jsdoc-content.d.ts.map +0 -1
  446. package/dist/docs/single-line-jsdoc/single-line-jsdoc-content.js +0 -95
  447. package/dist/docs/single-line-jsdoc/single-line-jsdoc-utilities.d.ts.map +0 -1
  448. package/dist/docs/single-line-jsdoc/single-line-jsdoc-utilities.js +0 -140
  449. package/dist/docs/test-helpers.d.ts.map +0 -1
  450. package/dist/docs/test-helpers.js +0 -107
  451. package/dist/presets.d.ts +0 -10
  452. package/dist/presets.d.ts.map +0 -1
  453. package/dist/presets.js +0 -50
  454. package/dist/rules/index.d.ts +0 -5
  455. package/dist/rules/index.d.ts.map +0 -1
  456. package/dist/rules/index.js +0 -6
  457. package/dist/testing/aaa/analyzer.d.ts +0 -36
  458. package/dist/testing/aaa/analyzer.d.ts.map +0 -1
  459. package/dist/testing/aaa/analyzer.js +0 -490
  460. package/dist/testing/aaa/index.d.ts.map +0 -1
  461. package/dist/testing/aaa/index.js +0 -2
  462. package/dist/testing/aaa/types.d.ts +0 -31
  463. package/dist/testing/aaa/types.d.ts.map +0 -1
  464. package/dist/testing/aaa/types.js +0 -2
  465. package/dist/testing/assert-actual-expected-names/index.d.ts +0 -2
  466. package/dist/testing/assert-actual-expected-names/index.d.ts.map +0 -1
  467. package/dist/testing/assert-actual-expected-names/index.js +0 -2
  468. package/dist/testing/assert-actual-expected-names/rule.d.ts.map +0 -1
  469. package/dist/testing/assert-actual-expected-names/rule.js +0 -54
  470. package/dist/testing/enforce-aaa-phase-purity/index.d.ts +0 -2
  471. package/dist/testing/enforce-aaa-phase-purity/index.d.ts.map +0 -1
  472. package/dist/testing/enforce-aaa-phase-purity/index.js +0 -2
  473. package/dist/testing/enforce-aaa-phase-purity/rule.d.ts.map +0 -1
  474. package/dist/testing/enforce-aaa-phase-purity/rule.js +0 -110
  475. package/dist/testing/enforce-aaa-structure/index.d.ts +0 -2
  476. package/dist/testing/enforce-aaa-structure/index.d.ts.map +0 -1
  477. package/dist/testing/enforce-aaa-structure/index.js +0 -2
  478. package/dist/testing/enforce-aaa-structure/rule.d.ts.map +0 -1
  479. package/dist/testing/enforce-aaa-structure/rule.js +0 -48
  480. package/dist/testing/index.d.ts.map +0 -1
  481. package/dist/testing/index.js +0 -9
  482. package/dist/testing/prefer-vi-mocked-import/fix.d.ts +0 -16
  483. package/dist/testing/prefer-vi-mocked-import/fix.d.ts.map +0 -1
  484. package/dist/testing/prefer-vi-mocked-import/fix.js +0 -224
  485. package/dist/testing/prefer-vi-mocked-import/index.d.ts +0 -2
  486. package/dist/testing/prefer-vi-mocked-import/index.d.ts.map +0 -1
  487. package/dist/testing/prefer-vi-mocked-import/index.js +0 -2
  488. package/dist/testing/prefer-vi-mocked-import/match-bindings.d.ts.map +0 -1
  489. package/dist/testing/prefer-vi-mocked-import/match-bindings.js +0 -52
  490. package/dist/testing/prefer-vi-mocked-import/match-declarations.d.ts.map +0 -1
  491. package/dist/testing/prefer-vi-mocked-import/match-declarations.js +0 -99
  492. package/dist/testing/prefer-vi-mocked-import/match-helpers.d.ts.map +0 -1
  493. package/dist/testing/prefer-vi-mocked-import/match-helpers.js +0 -102
  494. package/dist/testing/prefer-vi-mocked-import/match-imports.d.ts.map +0 -1
  495. package/dist/testing/prefer-vi-mocked-import/match-imports.js +0 -156
  496. package/dist/testing/prefer-vi-mocked-import/match-rewrites.d.ts.map +0 -1
  497. package/dist/testing/prefer-vi-mocked-import/match-rewrites.js +0 -119
  498. package/dist/testing/prefer-vi-mocked-import/match-walk.d.ts.map +0 -1
  499. package/dist/testing/prefer-vi-mocked-import/match-walk.js +0 -62
  500. package/dist/testing/prefer-vi-mocked-import/match.d.ts +0 -15
  501. package/dist/testing/prefer-vi-mocked-import/match.d.ts.map +0 -1
  502. package/dist/testing/prefer-vi-mocked-import/match.js +0 -193
  503. package/dist/testing/prefer-vi-mocked-import/rule.d.ts.map +0 -1
  504. package/dist/testing/prefer-vi-mocked-import/rule.js +0 -32
  505. package/dist/testing/prefer-vi-mocked-import/types.d.ts.map +0 -1
  506. package/dist/testing/prefer-vi-mocked-import/types.js +0 -2
  507. package/dist/testing/require-aaa-sections/index.d.ts +0 -2
  508. package/dist/testing/require-aaa-sections/index.d.ts.map +0 -1
  509. package/dist/testing/require-aaa-sections/index.js +0 -2
  510. package/dist/testing/require-aaa-sections/rule.d.ts.map +0 -1
  511. package/dist/testing/require-aaa-sections/rule.js +0 -111
  512. package/dist/testing/require-act-result-capture/index.d.ts +0 -2
  513. package/dist/testing/require-act-result-capture/index.d.ts.map +0 -1
  514. package/dist/testing/require-act-result-capture/index.js +0 -2
  515. package/dist/testing/require-act-result-capture/rule.d.ts.map +0 -1
  516. package/dist/testing/require-act-result-capture/rule.js +0 -34
  517. package/dist/testing/require-test-companion/index.d.ts +0 -3
  518. package/dist/testing/require-test-companion/index.d.ts.map +0 -1
  519. package/dist/testing/require-test-companion/index.js +0 -3
  520. package/dist/testing/require-test-companion/require-test-companion-listeners.d.ts.map +0 -1
  521. package/dist/testing/require-test-companion/require-test-companion-listeners.js +0 -145
  522. package/dist/testing/require-test-companion/require-test-companion-options.d.ts.map +0 -1
  523. package/dist/testing/require-test-companion/require-test-companion-options.js +0 -112
  524. package/dist/testing/require-test-companion/require-test-companion-test-helpers.d.ts.map +0 -1
  525. package/dist/testing/require-test-companion/require-test-companion-test-helpers.js +0 -183
  526. package/dist/testing/require-test-companion/require-test-companion-utilities.d.ts.map +0 -1
  527. package/dist/testing/require-test-companion/require-test-companion-utilities.js +0 -26
  528. package/dist/testing/require-test-companion/rule.d.ts.map +0 -1
  529. package/dist/testing/require-test-companion/rule.js +0 -57
  530. package/dist/testing/require-test-companion/types.d.ts.map +0 -1
  531. package/dist/testing/require-test-companion/types.js +0 -2
  532. package/dist/testing/single-act-statement/index.d.ts +0 -2
  533. package/dist/testing/single-act-statement/index.d.ts.map +0 -1
  534. package/dist/testing/single-act-statement/index.js +0 -2
  535. package/dist/testing/single-act-statement/rule.d.ts.map +0 -1
  536. package/dist/testing/single-act-statement/rule.js +0 -33
  537. /package/dist/{architecture → domain/architecture}/consistent-barrel-files/exports-only-rule.d.ts +0 -0
  538. /package/dist/{architecture → domain/architecture}/consistent-barrel-files/no-reexports-outside-barrels-rule.d.ts +0 -0
  539. /package/dist/{architecture → domain/architecture}/consistent-barrel-files/rule.d.ts +0 -0
  540. /package/dist/{core → domain/core}/prefer-interface-types/rule.d.ts +0 -0
  541. /package/dist/{core → domain/core}/prefer-interface-types/test-helpers.d.ts +0 -0
  542. /package/dist/{docs → domain/docs}/no-interface-member-docs/comment-utilities-test-helpers.d.ts +0 -0
  543. /package/dist/{docs → domain/docs}/no-interface-member-docs/rule.d.ts +0 -0
  544. /package/dist/{docs → domain/docs}/no-interface-member-docs/test-helpers.d.ts +0 -0
  545. /package/dist/{docs → domain/docs}/require-example-language/empty-fence-fixes.d.ts +0 -0
  546. /package/dist/{docs → domain/docs}/require-example-language/example-utilities.d.ts +0 -0
  547. /package/dist/{docs → domain/docs}/require-example-language/rule.d.ts +0 -0
  548. /package/dist/{docs → domain/docs}/require-example-language/types.d.ts +0 -0
  549. /package/dist/{docs → domain/docs}/single-line-jsdoc/rule.d.ts +0 -0
  550. /package/dist/{docs → domain/docs}/single-line-jsdoc/single-line-jsdoc-content.d.ts +0 -0
  551. /package/dist/{docs → domain/docs}/test-helpers.d.ts +0 -0
  552. /package/dist/{testing → domain/testing}/prefer-vi-mocked-import/match-helpers.d.ts +0 -0
  553. /package/dist/{testing → domain/testing}/prefer-vi-mocked-import/match-walk.d.ts +0 -0
  554. /package/dist/{testing → domain/testing}/prefer-vi-mocked-import/rule.d.ts +0 -0
  555. /package/dist/{testing → domain/testing}/require-test-companion/require-test-companion-options.d.ts +0 -0
  556. /package/dist/{testing → domain/testing}/require-test-companion/rule.d.ts +0 -0
  557. /package/dist/{testing → domain/testing}/require-test-companion/types.d.ts +0 -0
@@ -0,0 +1,46 @@
1
+ /** Canonical ordering used when comparing AAA phases. */
2
+ declare const aaaPhaseOrder: {
3
+ readonly Act: 1;
4
+ readonly Arrange: 0;
5
+ readonly Assert: 2;
6
+ };
7
+ /** Analyzes a supported `it` or `test` callback for AAA sections. */
8
+ declare const analyzeTestBlock: (context: import("eslint").Rule.RuleContext, node: import("estree").CallExpression) => import("./types.js").TestBlockAnalysis | undefined;
9
+ /** Counts statement forms that should be treated as Act steps. */
10
+ declare const countActStatements: (analysis: import("./types.js").TestBlockAnalysis) => number;
11
+ /** Collects identifiers declared inside Assert sections. */
12
+ declare const getAssertDeclaredIdentifiers: (analysis: import("./types.js").TestBlockAnalysis) => Map<string, import("./types.js").LocatedNode<import("estree").Identifier>>;
13
+ /** Extracts `actual` and `expected` identifiers from assertion statements. */
14
+ declare const getAssertionIdentifiers: (statement: import("estree").Statement) => import("./analyzer.assertions.js").AssertionIdentifiers;
15
+ /** Flattens section comments into one entry per resolved phase. */
16
+ declare const getFlattenedSections: (analysis: Pick<import("./types.js").TestBlockAnalysis, "sectionComments">) => import("./analyzer.analysis.js").FlattenedSection[];
17
+ /** Returns the indentation prefix that appears before a given offset. */
18
+ declare const getIndentationAtOffset: (sourceText: string, offset: number) => string;
19
+ /** Resolves the starting range for a specific source line. */
20
+ declare const getLineStartRange: (sourceText: string, line: number) => [number, number];
21
+ /** Filters section comments down to phase boundaries that matter after Arrange. */
22
+ declare const getPhaseBoundaryComments: (analysis: Pick<import("./types.js").TestBlockAnalysis, "sectionComments">) => import("./types.js").SectionComment[];
23
+ /** Parses AAA phases from a section comment value. */
24
+ declare const getSectionPhases: (commentValue: string) => import("./types.js").AaaPhase[];
25
+ /** Detects whether a statement contains any assertion call. */
26
+ declare const hasAssertion: (statement: import("estree").Statement) => boolean;
27
+ /** Detects asynchronous behavior such as awaits, promise chains, and promises. */
28
+ declare const hasAsyncLogic: (statement: import("estree").Statement) => boolean;
29
+ /** Detects whether a statement contains an `await` expression. */
30
+ declare const hasAwait: (statement: import("estree").Statement) => boolean;
31
+ /** Checks whether a section comment is separated by a blank line. */
32
+ declare const hasBlankLineBeforeComment: (sourceText: string, comment: import("estree").Comment) => boolean;
33
+ /** Detects Act expressions whose result should usually be captured. */
34
+ declare const hasCapturableActResult: (statement: import("estree").Statement) => boolean;
35
+ /** Detects mutation-oriented statements and array mutator calls. */
36
+ declare const hasMutation: (statement: import("estree").Statement) => boolean;
37
+ /** Detects statements that represent meaningful Act steps. */
38
+ declare const isMeaningfulActStatement: (statement: import("estree").Statement) => boolean;
39
+ /** Detects statements that should stay in Arrange as setup helpers. */
40
+ declare const isSetupLikeStatement: (statement: import("estree").Statement) => boolean;
41
+ /** Detects whether a statement shape is valid inside Assert. */
42
+ declare const isValidAssertStatement: (statement: import("estree").Statement) => boolean;
43
+ /** Checks whether an identifier matches the expected AAA naming prefix. */
44
+ declare const usesPrefix: (name: string, prefix: "actual" | "expected") => boolean;
45
+ export { aaaPhaseOrder, analyzeTestBlock, countActStatements, getAssertDeclaredIdentifiers, getAssertionIdentifiers, getFlattenedSections, getIndentationAtOffset, getLineStartRange, getPhaseBoundaryComments, getSectionPhases, hasAssertion, hasAsyncLogic, hasAwait, hasBlankLineBeforeComment, hasCapturableActResult, hasMutation, isMeaningfulActStatement, isSetupLikeStatement, isValidAssertStatement, usesPrefix, };
46
+ //# sourceMappingURL=analyzer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/aaa/analyzer.ts"],"names":[],"mappings":"AA2BA,yDAAyD;AACzD,QAAA,MAAM,aAAa;;;;CAA8B,CAAC;AAmBlD,qEAAqE;AACrE,QAAA,MAAM,gBAAgB,wIAA0C,CAAC;AAEjE,kEAAkE;AAClE,QAAA,MAAM,kBAAkB,2DAA4C,CAAC;AAErE,4DAA4D;AAC5D,QAAA,MAAM,4BAA4B,4HAEjC,CAAC;AAEF,8EAA8E;AAC9E,QAAA,MAAM,uBAAuB,iGAAiD,CAAC;AAE/E,mEAAmE;AACnE,QAAA,MAAM,oBAAoB,8HAA8C,CAAC;AAEzE,yEAAyE;AACzE,QAAA,MAAM,sBAAsB,gDAAgD,CAAC;AAE7E,8DAA8D;AAC9D,QAAA,MAAM,iBAAiB,wDAA2C,CAAC;AAEnE,mFAAmF;AACnF,QAAA,MAAM,wBAAwB,gHAE7B,CAAC;AAEF,sDAAsD;AACtD,QAAA,MAAM,gBAAgB,wDAA0C,CAAC;AAEjE,+DAA+D;AAC/D,QAAA,MAAM,YAAY,oDAAsC,CAAC;AAEzD,kFAAkF;AAClF,QAAA,MAAM,aAAa,oDAAuC,CAAC;AAE3D,kEAAkE;AAClE,QAAA,MAAM,QAAQ,oDAAkC,CAAC;AAEjD,qEAAqE;AACrE,QAAA,MAAM,yBAAyB,oEAE9B,CAAC;AAEF,uEAAuE;AACvE,QAAA,MAAM,sBAAsB,oDAAgD,CAAC;AAE7E,oEAAoE;AACpE,QAAA,MAAM,WAAW,oDAAqC,CAAC;AAEvD,8DAA8D;AAC9D,QAAA,MAAM,wBAAwB,oDAE7B,CAAC;AAEF,uEAAuE;AACvE,QAAA,MAAM,oBAAoB,oDAA8C,CAAC;AAEzE,gEAAgE;AAChE,QAAA,MAAM,sBAAsB,oDAAgD,CAAC;AAE7E,2EAA2E;AAC3E,QAAA,MAAM,UAAU,0DAAoC,CAAC;AAErD,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,4BAA4B,EAC5B,uBAAuB,EACvB,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,EACjB,wBAAwB,EACxB,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,yBAAyB,EACzB,sBAAsB,EACtB,WAAW,EACX,wBAAwB,EACxB,oBAAoB,EACpB,sBAAsB,EACtB,UAAU,GACX,CAAC"}
@@ -0,0 +1,59 @@
1
+ import { aaaPhaseOrder as aaaPhaseOrderImplementation, analyzeTestBlock as analyzeTestBlockImplementation, countActStatements as countActStatementsImplementation, getFlattenedSections as getFlattenedSectionsImplementation, getIndentationAtOffset as getIndentationAtOffsetImplementation, getLineStartRange as getLineStartRangeImplementation, getPhaseBoundaryComments as getPhaseBoundaryCommentsImplementation, getSectionPhases as getSectionPhasesImplementation, } from "./analyzer.analysis.js";
2
+ import { getAssertDeclaredIdentifiers as getAssertDeclaredIdentifiersImplementation, getAssertionIdentifiers as getAssertionIdentifiersImplementation, hasAssertion as hasAssertionImplementation, isValidAssertStatement as isValidAssertStatementImplementation, usesPrefix as usesPrefixImplementation, } from "./analyzer.assertions.js";
3
+ import { hasAsyncLogic as hasAsyncLogicImplementation, hasAwait as hasAwaitImplementation, hasBlankLineBeforeComment as hasBlankLineBeforeCommentImplementation, hasCapturableActResult as hasCapturableActResultImplementation, hasMutation as hasMutationImplementation, isMeaningfulActStatement as isMeaningfulActStatementImplementation, isSetupLikeStatement as isSetupLikeStatementImplementation, } from "./analyzer.classification.js";
4
+ /** Canonical ordering used when comparing AAA phases. */
5
+ const aaaPhaseOrder = aaaPhaseOrderImplementation;
6
+ /**
7
+ * Creates a local forwarding function for an imported analyzer helper.
8
+ * @template TParameters Forwarded parameter tuple.
9
+ * @template TResult Forwarded return type.
10
+ * @param implementation Imported helper implementation.
11
+ * @returns Local function that forwards all arguments to the implementation.
12
+ * @example
13
+ * ```typescript
14
+ * const localHelper = forward(implementation);
15
+ * ```
16
+ */
17
+ function forward(implementation) {
18
+ return (...parameters) => implementation(...parameters);
19
+ }
20
+ /** Analyzes a supported `it` or `test` callback for AAA sections. */
21
+ const analyzeTestBlock = forward(analyzeTestBlockImplementation);
22
+ /** Counts statement forms that should be treated as Act steps. */
23
+ const countActStatements = forward(countActStatementsImplementation);
24
+ /** Collects identifiers declared inside Assert sections. */
25
+ const getAssertDeclaredIdentifiers = forward(getAssertDeclaredIdentifiersImplementation);
26
+ /** Extracts `actual` and `expected` identifiers from assertion statements. */
27
+ const getAssertionIdentifiers = forward(getAssertionIdentifiersImplementation);
28
+ /** Flattens section comments into one entry per resolved phase. */
29
+ const getFlattenedSections = forward(getFlattenedSectionsImplementation);
30
+ /** Returns the indentation prefix that appears before a given offset. */
31
+ const getIndentationAtOffset = forward(getIndentationAtOffsetImplementation);
32
+ /** Resolves the starting range for a specific source line. */
33
+ const getLineStartRange = forward(getLineStartRangeImplementation);
34
+ /** Filters section comments down to phase boundaries that matter after Arrange. */
35
+ const getPhaseBoundaryComments = forward(getPhaseBoundaryCommentsImplementation);
36
+ /** Parses AAA phases from a section comment value. */
37
+ const getSectionPhases = forward(getSectionPhasesImplementation);
38
+ /** Detects whether a statement contains any assertion call. */
39
+ const hasAssertion = forward(hasAssertionImplementation);
40
+ /** Detects asynchronous behavior such as awaits, promise chains, and promises. */
41
+ const hasAsyncLogic = forward(hasAsyncLogicImplementation);
42
+ /** Detects whether a statement contains an `await` expression. */
43
+ const hasAwait = forward(hasAwaitImplementation);
44
+ /** Checks whether a section comment is separated by a blank line. */
45
+ const hasBlankLineBeforeComment = forward(hasBlankLineBeforeCommentImplementation);
46
+ /** Detects Act expressions whose result should usually be captured. */
47
+ const hasCapturableActResult = forward(hasCapturableActResultImplementation);
48
+ /** Detects mutation-oriented statements and array mutator calls. */
49
+ const hasMutation = forward(hasMutationImplementation);
50
+ /** Detects statements that represent meaningful Act steps. */
51
+ const isMeaningfulActStatement = forward(isMeaningfulActStatementImplementation);
52
+ /** Detects statements that should stay in Arrange as setup helpers. */
53
+ const isSetupLikeStatement = forward(isSetupLikeStatementImplementation);
54
+ /** Detects whether a statement shape is valid inside Assert. */
55
+ const isValidAssertStatement = forward(isValidAssertStatementImplementation);
56
+ /** Checks whether an identifier matches the expected AAA naming prefix. */
57
+ const usesPrefix = forward(usesPrefixImplementation);
58
+ export { aaaPhaseOrder, analyzeTestBlock, countActStatements, getAssertDeclaredIdentifiers, getAssertionIdentifiers, getFlattenedSections, getIndentationAtOffset, getLineStartRange, getPhaseBoundaryComments, getSectionPhases, hasAssertion, hasAsyncLogic, hasAwait, hasBlankLineBeforeComment, hasCapturableActResult, hasMutation, isMeaningfulActStatement, isSetupLikeStatement, isValidAssertStatement, usesPrefix, };
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl6ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3RpbmcvYWFhL2FuYWx5emVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxhQUFhLElBQUksMkJBQTJCLEVBQzVDLGdCQUFnQixJQUFJLDhCQUE4QixFQUNsRCxrQkFBa0IsSUFBSSxnQ0FBZ0MsRUFDdEQsb0JBQW9CLElBQUksa0NBQWtDLEVBQzFELHNCQUFzQixJQUFJLG9DQUFvQyxFQUM5RCxpQkFBaUIsSUFBSSwrQkFBK0IsRUFDcEQsd0JBQXdCLElBQUksc0NBQXNDLEVBQ2xFLGdCQUFnQixJQUFJLDhCQUE4QixHQUNuRCxNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFDTCw0QkFBNEIsSUFBSSwwQ0FBMEMsRUFDMUUsdUJBQXVCLElBQUkscUNBQXFDLEVBQ2hFLFlBQVksSUFBSSwwQkFBMEIsRUFDMUMsc0JBQXNCLElBQUksb0NBQW9DLEVBQzlELFVBQVUsSUFBSSx3QkFBd0IsR0FDdkMsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQ0wsYUFBYSxJQUFJLDJCQUEyQixFQUM1QyxRQUFRLElBQUksc0JBQXNCLEVBQ2xDLHlCQUF5QixJQUFJLHVDQUF1QyxFQUNwRSxzQkFBc0IsSUFBSSxvQ0FBb0MsRUFDOUQsV0FBVyxJQUFJLHlCQUF5QixFQUN4Qyx3QkFBd0IsSUFBSSxzQ0FBc0MsRUFDbEUsb0JBQW9CLElBQUksa0NBQWtDLEdBQzNELE1BQU0sMkJBQTJCLENBQUM7QUFFbkMseURBQXlEO0FBQ3pELE1BQU0sYUFBYSxHQUFHLDJCQUEyQixDQUFDO0FBRWxEOzs7Ozs7Ozs7O0dBVUc7QUFDSCxTQUFTLE9BQU8sQ0FDZCxjQUF1RDtJQUV2RCxPQUFPLENBQUMsR0FBRyxVQUFVLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDO0FBQzFELENBQUM7QUFFRCxxRUFBcUU7QUFDckUsTUFBTSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsOEJBQThCLENBQUMsQ0FBQztBQUVqRSxrRUFBa0U7QUFDbEUsTUFBTSxrQkFBa0IsR0FBRyxPQUFPLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztBQUVyRSw0REFBNEQ7QUFDNUQsTUFBTSw0QkFBNEIsR0FBRyxPQUFPLENBQzFDLDBDQUEwQyxDQUMzQyxDQUFDO0FBRUYsOEVBQThFO0FBQzlFLE1BQU0sdUJBQXVCLEdBQUcsT0FBTyxDQUFDLHFDQUFxQyxDQUFDLENBQUM7QUFFL0UsbUVBQW1FO0FBQ25FLE1BQU0sb0JBQW9CLEdBQUcsT0FBTyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7QUFFekUseUVBQXlFO0FBQ3pFLE1BQU0sc0JBQXNCLEdBQUcsT0FBTyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7QUFFN0UsOERBQThEO0FBQzlELE1BQU0saUJBQWlCLEdBQUcsT0FBTyxDQUFDLCtCQUErQixDQUFDLENBQUM7QUFFbkUsbUZBQW1GO0FBQ25GLE1BQU0sd0JBQXdCLEdBQUcsT0FBTyxDQUN0QyxzQ0FBc0MsQ0FDdkMsQ0FBQztBQUVGLHNEQUFzRDtBQUN0RCxNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0FBRWpFLCtEQUErRDtBQUMvRCxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsMEJBQTBCLENBQUMsQ0FBQztBQUV6RCxrRkFBa0Y7QUFDbEYsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLDJCQUEyQixDQUFDLENBQUM7QUFFM0Qsa0VBQWtFO0FBQ2xFLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0FBRWpELHFFQUFxRTtBQUNyRSxNQUFNLHlCQUF5QixHQUFHLE9BQU8sQ0FDdkMsdUNBQXVDLENBQ3hDLENBQUM7QUFFRix1RUFBdUU7QUFDdkUsTUFBTSxzQkFBc0IsR0FBRyxPQUFPLENBQUMsb0NBQW9DLENBQUMsQ0FBQztBQUU3RSxvRUFBb0U7QUFDcEUsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLHlCQUF5QixDQUFDLENBQUM7QUFFdkQsOERBQThEO0FBQzlELE1BQU0sd0JBQXdCLEdBQUcsT0FBTyxDQUN0QyxzQ0FBc0MsQ0FDdkMsQ0FBQztBQUVGLHVFQUF1RTtBQUN2RSxNQUFNLG9CQUFvQixHQUFHLE9BQU8sQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO0FBRXpFLGdFQUFnRTtBQUNoRSxNQUFNLHNCQUFzQixHQUFHLE9BQU8sQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO0FBRTdFLDJFQUEyRTtBQUMzRSxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsd0JBQXdCLENBQUMsQ0FBQztBQUVyRCxPQUFPLEVBQ0wsYUFBYSxFQUNiLGdCQUFnQixFQUNoQixrQkFBa0IsRUFDbEIsNEJBQTRCLEVBQzVCLHVCQUF1QixFQUN2QixvQkFBb0IsRUFDcEIsc0JBQXNCLEVBQ3RCLGlCQUFpQixFQUNqQix3QkFBd0IsRUFDeEIsZ0JBQWdCLEVBQ2hCLFlBQVksRUFDWixhQUFhLEVBQ2IsUUFBUSxFQUNSLHlCQUF5QixFQUN6QixzQkFBc0IsRUFDdEIsV0FBVyxFQUNYLHdCQUF3QixFQUN4QixvQkFBb0IsRUFDcEIsc0JBQXNCLEVBQ3RCLFVBQVUsR0FDWCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYWFhUGhhc2VPcmRlciBhcyBhYWFQaGFzZU9yZGVySW1wbGVtZW50YXRpb24sXG4gIGFuYWx5emVUZXN0QmxvY2sgYXMgYW5hbHl6ZVRlc3RCbG9ja0ltcGxlbWVudGF0aW9uLFxuICBjb3VudEFjdFN0YXRlbWVudHMgYXMgY291bnRBY3RTdGF0ZW1lbnRzSW1wbGVtZW50YXRpb24sXG4gIGdldEZsYXR0ZW5lZFNlY3Rpb25zIGFzIGdldEZsYXR0ZW5lZFNlY3Rpb25zSW1wbGVtZW50YXRpb24sXG4gIGdldEluZGVudGF0aW9uQXRPZmZzZXQgYXMgZ2V0SW5kZW50YXRpb25BdE9mZnNldEltcGxlbWVudGF0aW9uLFxuICBnZXRMaW5lU3RhcnRSYW5nZSBhcyBnZXRMaW5lU3RhcnRSYW5nZUltcGxlbWVudGF0aW9uLFxuICBnZXRQaGFzZUJvdW5kYXJ5Q29tbWVudHMgYXMgZ2V0UGhhc2VCb3VuZGFyeUNvbW1lbnRzSW1wbGVtZW50YXRpb24sXG4gIGdldFNlY3Rpb25QaGFzZXMgYXMgZ2V0U2VjdGlvblBoYXNlc0ltcGxlbWVudGF0aW9uLFxufSBmcm9tIFwiLi9hbmFseXplci5hbmFseXNpc1wiO1xuaW1wb3J0IHtcbiAgZ2V0QXNzZXJ0RGVjbGFyZWRJZGVudGlmaWVycyBhcyBnZXRBc3NlcnREZWNsYXJlZElkZW50aWZpZXJzSW1wbGVtZW50YXRpb24sXG4gIGdldEFzc2VydGlvbklkZW50aWZpZXJzIGFzIGdldEFzc2VydGlvbklkZW50aWZpZXJzSW1wbGVtZW50YXRpb24sXG4gIGhhc0Fzc2VydGlvbiBhcyBoYXNBc3NlcnRpb25JbXBsZW1lbnRhdGlvbixcbiAgaXNWYWxpZEFzc2VydFN0YXRlbWVudCBhcyBpc1ZhbGlkQXNzZXJ0U3RhdGVtZW50SW1wbGVtZW50YXRpb24sXG4gIHVzZXNQcmVmaXggYXMgdXNlc1ByZWZpeEltcGxlbWVudGF0aW9uLFxufSBmcm9tIFwiLi9hbmFseXplci5hc3NlcnRpb25zXCI7XG5pbXBvcnQge1xuICBoYXNBc3luY0xvZ2ljIGFzIGhhc0FzeW5jTG9naWNJbXBsZW1lbnRhdGlvbixcbiAgaGFzQXdhaXQgYXMgaGFzQXdhaXRJbXBsZW1lbnRhdGlvbixcbiAgaGFzQmxhbmtMaW5lQmVmb3JlQ29tbWVudCBhcyBoYXNCbGFua0xpbmVCZWZvcmVDb21tZW50SW1wbGVtZW50YXRpb24sXG4gIGhhc0NhcHR1cmFibGVBY3RSZXN1bHQgYXMgaGFzQ2FwdHVyYWJsZUFjdFJlc3VsdEltcGxlbWVudGF0aW9uLFxuICBoYXNNdXRhdGlvbiBhcyBoYXNNdXRhdGlvbkltcGxlbWVudGF0aW9uLFxuICBpc01lYW5pbmdmdWxBY3RTdGF0ZW1lbnQgYXMgaXNNZWFuaW5nZnVsQWN0U3RhdGVtZW50SW1wbGVtZW50YXRpb24sXG4gIGlzU2V0dXBMaWtlU3RhdGVtZW50IGFzIGlzU2V0dXBMaWtlU3RhdGVtZW50SW1wbGVtZW50YXRpb24sXG59IGZyb20gXCIuL2FuYWx5emVyLmNsYXNzaWZpY2F0aW9uXCI7XG5cbi8qKiBDYW5vbmljYWwgb3JkZXJpbmcgdXNlZCB3aGVuIGNvbXBhcmluZyBBQUEgcGhhc2VzLiAqL1xuY29uc3QgYWFhUGhhc2VPcmRlciA9IGFhYVBoYXNlT3JkZXJJbXBsZW1lbnRhdGlvbjtcblxuLyoqXG4gKiBDcmVhdGVzIGEgbG9jYWwgZm9yd2FyZGluZyBmdW5jdGlvbiBmb3IgYW4gaW1wb3J0ZWQgYW5hbHl6ZXIgaGVscGVyLlxuICogQHRlbXBsYXRlIFRQYXJhbWV0ZXJzIEZvcndhcmRlZCBwYXJhbWV0ZXIgdHVwbGUuXG4gKiBAdGVtcGxhdGUgVFJlc3VsdCBGb3J3YXJkZWQgcmV0dXJuIHR5cGUuXG4gKiBAcGFyYW0gaW1wbGVtZW50YXRpb24gSW1wb3J0ZWQgaGVscGVyIGltcGxlbWVudGF0aW9uLlxuICogQHJldHVybnMgTG9jYWwgZnVuY3Rpb24gdGhhdCBmb3J3YXJkcyBhbGwgYXJndW1lbnRzIHRvIHRoZSBpbXBsZW1lbnRhdGlvbi5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBsb2NhbEhlbHBlciA9IGZvcndhcmQoaW1wbGVtZW50YXRpb24pO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGZvcndhcmQ8VFBhcmFtZXRlcnMgZXh0ZW5kcyB1bmtub3duW10sIFRSZXN1bHQ+KFxuICBpbXBsZW1lbnRhdGlvbjogKC4uLnBhcmFtZXRlcnM6IFRQYXJhbWV0ZXJzKSA9PiBUUmVzdWx0LFxuKTogKC4uLnBhcmFtZXRlcnM6IFRQYXJhbWV0ZXJzKSA9PiBUUmVzdWx0IHtcbiAgcmV0dXJuICguLi5wYXJhbWV0ZXJzKSA9PiBpbXBsZW1lbnRhdGlvbiguLi5wYXJhbWV0ZXJzKTtcbn1cblxuLyoqIEFuYWx5emVzIGEgc3VwcG9ydGVkIGBpdGAgb3IgYHRlc3RgIGNhbGxiYWNrIGZvciBBQUEgc2VjdGlvbnMuICovXG5jb25zdCBhbmFseXplVGVzdEJsb2NrID0gZm9yd2FyZChhbmFseXplVGVzdEJsb2NrSW1wbGVtZW50YXRpb24pO1xuXG4vKiogQ291bnRzIHN0YXRlbWVudCBmb3JtcyB0aGF0IHNob3VsZCBiZSB0cmVhdGVkIGFzIEFjdCBzdGVwcy4gKi9cbmNvbnN0IGNvdW50QWN0U3RhdGVtZW50cyA9IGZvcndhcmQoY291bnRBY3RTdGF0ZW1lbnRzSW1wbGVtZW50YXRpb24pO1xuXG4vKiogQ29sbGVjdHMgaWRlbnRpZmllcnMgZGVjbGFyZWQgaW5zaWRlIEFzc2VydCBzZWN0aW9ucy4gKi9cbmNvbnN0IGdldEFzc2VydERlY2xhcmVkSWRlbnRpZmllcnMgPSBmb3J3YXJkKFxuICBnZXRBc3NlcnREZWNsYXJlZElkZW50aWZpZXJzSW1wbGVtZW50YXRpb24sXG4pO1xuXG4vKiogRXh0cmFjdHMgYGFjdHVhbGAgYW5kIGBleHBlY3RlZGAgaWRlbnRpZmllcnMgZnJvbSBhc3NlcnRpb24gc3RhdGVtZW50cy4gKi9cbmNvbnN0IGdldEFzc2VydGlvbklkZW50aWZpZXJzID0gZm9yd2FyZChnZXRBc3NlcnRpb25JZGVudGlmaWVyc0ltcGxlbWVudGF0aW9uKTtcblxuLyoqIEZsYXR0ZW5zIHNlY3Rpb24gY29tbWVudHMgaW50byBvbmUgZW50cnkgcGVyIHJlc29sdmVkIHBoYXNlLiAqL1xuY29uc3QgZ2V0RmxhdHRlbmVkU2VjdGlvbnMgPSBmb3J3YXJkKGdldEZsYXR0ZW5lZFNlY3Rpb25zSW1wbGVtZW50YXRpb24pO1xuXG4vKiogUmV0dXJucyB0aGUgaW5kZW50YXRpb24gcHJlZml4IHRoYXQgYXBwZWFycyBiZWZvcmUgYSBnaXZlbiBvZmZzZXQuICovXG5jb25zdCBnZXRJbmRlbnRhdGlvbkF0T2Zmc2V0ID0gZm9yd2FyZChnZXRJbmRlbnRhdGlvbkF0T2Zmc2V0SW1wbGVtZW50YXRpb24pO1xuXG4vKiogUmVzb2x2ZXMgdGhlIHN0YXJ0aW5nIHJhbmdlIGZvciBhIHNwZWNpZmljIHNvdXJjZSBsaW5lLiAqL1xuY29uc3QgZ2V0TGluZVN0YXJ0UmFuZ2UgPSBmb3J3YXJkKGdldExpbmVTdGFydFJhbmdlSW1wbGVtZW50YXRpb24pO1xuXG4vKiogRmlsdGVycyBzZWN0aW9uIGNvbW1lbnRzIGRvd24gdG8gcGhhc2UgYm91bmRhcmllcyB0aGF0IG1hdHRlciBhZnRlciBBcnJhbmdlLiAqL1xuY29uc3QgZ2V0UGhhc2VCb3VuZGFyeUNvbW1lbnRzID0gZm9yd2FyZChcbiAgZ2V0UGhhc2VCb3VuZGFyeUNvbW1lbnRzSW1wbGVtZW50YXRpb24sXG4pO1xuXG4vKiogUGFyc2VzIEFBQSBwaGFzZXMgZnJvbSBhIHNlY3Rpb24gY29tbWVudCB2YWx1ZS4gKi9cbmNvbnN0IGdldFNlY3Rpb25QaGFzZXMgPSBmb3J3YXJkKGdldFNlY3Rpb25QaGFzZXNJbXBsZW1lbnRhdGlvbik7XG5cbi8qKiBEZXRlY3RzIHdoZXRoZXIgYSBzdGF0ZW1lbnQgY29udGFpbnMgYW55IGFzc2VydGlvbiBjYWxsLiAqL1xuY29uc3QgaGFzQXNzZXJ0aW9uID0gZm9yd2FyZChoYXNBc3NlcnRpb25JbXBsZW1lbnRhdGlvbik7XG5cbi8qKiBEZXRlY3RzIGFzeW5jaHJvbm91cyBiZWhhdmlvciBzdWNoIGFzIGF3YWl0cywgcHJvbWlzZSBjaGFpbnMsIGFuZCBwcm9taXNlcy4gKi9cbmNvbnN0IGhhc0FzeW5jTG9naWMgPSBmb3J3YXJkKGhhc0FzeW5jTG9naWNJbXBsZW1lbnRhdGlvbik7XG5cbi8qKiBEZXRlY3RzIHdoZXRoZXIgYSBzdGF0ZW1lbnQgY29udGFpbnMgYW4gYGF3YWl0YCBleHByZXNzaW9uLiAqL1xuY29uc3QgaGFzQXdhaXQgPSBmb3J3YXJkKGhhc0F3YWl0SW1wbGVtZW50YXRpb24pO1xuXG4vKiogQ2hlY2tzIHdoZXRoZXIgYSBzZWN0aW9uIGNvbW1lbnQgaXMgc2VwYXJhdGVkIGJ5IGEgYmxhbmsgbGluZS4gKi9cbmNvbnN0IGhhc0JsYW5rTGluZUJlZm9yZUNvbW1lbnQgPSBmb3J3YXJkKFxuICBoYXNCbGFua0xpbmVCZWZvcmVDb21tZW50SW1wbGVtZW50YXRpb24sXG4pO1xuXG4vKiogRGV0ZWN0cyBBY3QgZXhwcmVzc2lvbnMgd2hvc2UgcmVzdWx0IHNob3VsZCB1c3VhbGx5IGJlIGNhcHR1cmVkLiAqL1xuY29uc3QgaGFzQ2FwdHVyYWJsZUFjdFJlc3VsdCA9IGZvcndhcmQoaGFzQ2FwdHVyYWJsZUFjdFJlc3VsdEltcGxlbWVudGF0aW9uKTtcblxuLyoqIERldGVjdHMgbXV0YXRpb24tb3JpZW50ZWQgc3RhdGVtZW50cyBhbmQgYXJyYXkgbXV0YXRvciBjYWxscy4gKi9cbmNvbnN0IGhhc011dGF0aW9uID0gZm9yd2FyZChoYXNNdXRhdGlvbkltcGxlbWVudGF0aW9uKTtcblxuLyoqIERldGVjdHMgc3RhdGVtZW50cyB0aGF0IHJlcHJlc2VudCBtZWFuaW5nZnVsIEFjdCBzdGVwcy4gKi9cbmNvbnN0IGlzTWVhbmluZ2Z1bEFjdFN0YXRlbWVudCA9IGZvcndhcmQoXG4gIGlzTWVhbmluZ2Z1bEFjdFN0YXRlbWVudEltcGxlbWVudGF0aW9uLFxuKTtcblxuLyoqIERldGVjdHMgc3RhdGVtZW50cyB0aGF0IHNob3VsZCBzdGF5IGluIEFycmFuZ2UgYXMgc2V0dXAgaGVscGVycy4gKi9cbmNvbnN0IGlzU2V0dXBMaWtlU3RhdGVtZW50ID0gZm9yd2FyZChpc1NldHVwTGlrZVN0YXRlbWVudEltcGxlbWVudGF0aW9uKTtcblxuLyoqIERldGVjdHMgd2hldGhlciBhIHN0YXRlbWVudCBzaGFwZSBpcyB2YWxpZCBpbnNpZGUgQXNzZXJ0LiAqL1xuY29uc3QgaXNWYWxpZEFzc2VydFN0YXRlbWVudCA9IGZvcndhcmQoaXNWYWxpZEFzc2VydFN0YXRlbWVudEltcGxlbWVudGF0aW9uKTtcblxuLyoqIENoZWNrcyB3aGV0aGVyIGFuIGlkZW50aWZpZXIgbWF0Y2hlcyB0aGUgZXhwZWN0ZWQgQUFBIG5hbWluZyBwcmVmaXguICovXG5jb25zdCB1c2VzUHJlZml4ID0gZm9yd2FyZCh1c2VzUHJlZml4SW1wbGVtZW50YXRpb24pO1xuXG5leHBvcnQge1xuICBhYWFQaGFzZU9yZGVyLFxuICBhbmFseXplVGVzdEJsb2NrLFxuICBjb3VudEFjdFN0YXRlbWVudHMsXG4gIGdldEFzc2VydERlY2xhcmVkSWRlbnRpZmllcnMsXG4gIGdldEFzc2VydGlvbklkZW50aWZpZXJzLFxuICBnZXRGbGF0dGVuZWRTZWN0aW9ucyxcbiAgZ2V0SW5kZW50YXRpb25BdE9mZnNldCxcbiAgZ2V0TGluZVN0YXJ0UmFuZ2UsXG4gIGdldFBoYXNlQm91bmRhcnlDb21tZW50cyxcbiAgZ2V0U2VjdGlvblBoYXNlcyxcbiAgaGFzQXNzZXJ0aW9uLFxuICBoYXNBc3luY0xvZ2ljLFxuICBoYXNBd2FpdCxcbiAgaGFzQmxhbmtMaW5lQmVmb3JlQ29tbWVudCxcbiAgaGFzQ2FwdHVyYWJsZUFjdFJlc3VsdCxcbiAgaGFzTXV0YXRpb24sXG4gIGlzTWVhbmluZ2Z1bEFjdFN0YXRlbWVudCxcbiAgaXNTZXR1cExpa2VTdGF0ZW1lbnQsXG4gIGlzVmFsaWRBc3NlcnRTdGF0ZW1lbnQsXG4gIHVzZXNQcmVmaXgsXG59O1xuIl19
@@ -0,0 +1,107 @@
1
+ import type * as ESTree from "estree";
2
+ import type { LocatedComment, SourceComment } from "./types.js";
3
+ /** Array mutator methods that imply observable state changes. */
4
+ declare const arrayMutationMethods: Set<string>;
5
+ /** Names that usually signal Arrange-oriented helper calls. */
6
+ declare const setupLikeNames: RegExp;
7
+ /** Call names that should be treated as utility operations instead of Act steps. */
8
+ declare const utilityMethodNames: Set<string>;
9
+ /** Method names that usually behave like void side-effect helpers. */
10
+ declare const voidLikeMethodNames: Set<string>;
11
+ /** Name pattern used for void-like method detection. */
12
+ declare const voidLikeNamePattern: RegExp;
13
+ /**
14
+ * Gets an expression name when it can be resolved statically.
15
+ * @param expression Input expression value.
16
+ * @returns Return value output.
17
+ * @example
18
+ * ```typescript
19
+ * getExpressionName(expression);
20
+ * ```
21
+ */
22
+ declare function getExpressionName(expression: ESTree.Expression | ESTree.PrivateIdentifier | ESTree.Super): string | undefined;
23
+ /**
24
+ * Gets a callee name for a call or construction expression.
25
+ * @param expression Input expression value.
26
+ * @returns Return value output.
27
+ * @example
28
+ * ```typescript
29
+ * getInvokedName(expression);
30
+ * ```
31
+ */
32
+ declare function getInvokedName(expression: ESTree.CallExpression | ESTree.NewExpression): string | undefined;
33
+ /**
34
+ * Checks whether an expression is callable.
35
+ * @param expression Input expression value.
36
+ * @returns Return value output.
37
+ * @example
38
+ * ```typescript
39
+ * isCallableExpression(expression);
40
+ * ```
41
+ */
42
+ declare function isCallableExpression(expression: ESTree.Expression | undefined): expression is ESTree.CallExpression | ESTree.NewExpression;
43
+ /**
44
+ * Checks whether a comment has location metadata.
45
+ * @param comment Input comment value.
46
+ * @returns Return value output.
47
+ * @example
48
+ * ```typescript
49
+ * isLocatedComment(comment);
50
+ * ```
51
+ */
52
+ declare function isLocatedComment(comment: SourceComment): comment is LocatedComment;
53
+ /**
54
+ * Checks whether a range is fully contained within another range.
55
+ * @param range Input range value.
56
+ * @param container Input container value.
57
+ * @returns Return value output.
58
+ * @example
59
+ * ```typescript
60
+ * isRangeWithin(range, container);
61
+ * ```
62
+ */
63
+ declare function isRangeWithin(range: [number, number], container: [number, number]): boolean;
64
+ /**
65
+ * Checks whether a constructor call should be treated as setup.
66
+ * @param expression Input expression value.
67
+ * @param calleeName Input calleeName value.
68
+ * @returns Return value output.
69
+ * @example
70
+ * ```typescript
71
+ * isUtilityConstructor(expression, "Map");
72
+ * ```
73
+ */
74
+ declare function isUtilityConstructor(expression: ESTree.CallExpression | ESTree.NewExpression, calleeName: string): boolean;
75
+ /**
76
+ * Checks whether a callee name looks utility-like.
77
+ * @param calleeName Input calleeName value.
78
+ * @returns Return value output.
79
+ * @example
80
+ * ```typescript
81
+ * isUtilityNamedCall("setupFixture");
82
+ * ```
83
+ */
84
+ declare function isUtilityNamedCall(calleeName: string): boolean;
85
+ /**
86
+ * Checks whether a call uses a utility namespace.
87
+ * @param expression Input expression value.
88
+ * @returns Return value output.
89
+ * @example
90
+ * ```typescript
91
+ * isUtilityNamespaceCall(expression);
92
+ * ```
93
+ */
94
+ declare function isUtilityNamespaceCall(expression: ESTree.CallExpression | ESTree.NewExpression): boolean;
95
+ /**
96
+ * Visits an ESTree node graph while ignoring cycles.
97
+ * @param node Input node value.
98
+ * @param callback Input callback value.
99
+ * @param seenNodes Input seenNodes value.
100
+ * @example
101
+ * ```typescript
102
+ * visitNode(node, () => {});
103
+ * ```
104
+ */
105
+ declare function visitNode(node: ESTree.Node, callback: (node: ESTree.Node) => void, seenNodes?: WeakSet<object>): void;
106
+ export { arrayMutationMethods, getExpressionName, getInvokedName, isCallableExpression, isLocatedComment, isRangeWithin, isUtilityConstructor, isUtilityNamedCall, isUtilityNamespaceCall, setupLikeNames, utilityMethodNames, visitNode, voidLikeMethodNames, voidLikeNamePattern, };
107
+ //# sourceMappingURL=analyzer.super.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyzer.super.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/aaa/analyzer.super.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEtC,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7D,iEAAiE;AACjE,QAAA,MAAM,oBAAoB,aAUxB,CAAC;AAEH,+DAA+D;AAC/D,QAAA,MAAM,cAAc,QACsE,CAAC;AAE3F,oFAAoF;AACpF,QAAA,MAAM,kBAAkB,aAiBtB,CAAC;AAEH,sEAAsE;AACtE,QAAA,MAAM,mBAAmB,aAavB,CAAC;AAEH,wDAAwD;AACxD,QAAA,MAAM,mBAAmB,QACwD,CAAC;AAQlF;;;;;;;;GAQG;AACH,iBAAS,iBAAiB,CACxB,UAAU,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,iBAAiB,GAAG,MAAM,CAAC,KAAK,GACtE,MAAM,GAAG,SAAS,CAiBpB;AAED;;;;;;;;GAQG;AACH,iBAAS,cAAc,CACrB,UAAU,EAAE,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,aAAa,GACvD,MAAM,GAAG,SAAS,CAEpB;AAED;;;;;;;;GAQG;AACH,iBAAS,oBAAoB,CAC3B,UAAU,EAAE,MAAM,CAAC,UAAU,GAAG,SAAS,GACxC,UAAU,IAAI,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,aAAa,CAK5D;AAED;;;;;;;;GAQG;AACH,iBAAS,gBAAgB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,IAAI,cAAc,CAI3E;AAoBD;;;;;;;;;GASG;AACH,iBAAS,aAAa,CACpB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EACvB,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAC1B,OAAO,CAET;AAED;;;;;;;;;GASG;AACH,iBAAS,oBAAoB,CAC3B,UAAU,EAAE,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,aAAa,EACxD,UAAU,EAAE,MAAM,GACjB,OAAO,CAQT;AAED;;;;;;;;GAQG;AACH,iBAAS,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED;;;;;;;;GAQG;AACH,iBAAS,sBAAsB,CAC7B,UAAU,EAAE,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,aAAa,GACvD,OAAO,CAMT;AAED;;;;;;;;;GASG;AACH,iBAAS,SAAS,CAChB,IAAI,EAAE,MAAM,CAAC,IAAI,EACjB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,KAAK,IAAI,EACrC,SAAS,kBAAwB,GAChC,IAAI,CAaN;AAgCD,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,aAAa,EACb,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EACtB,cAAc,EACd,kBAAkB,EAClB,SAAS,EACT,mBAAmB,EACnB,mBAAmB,GACpB,CAAC"}
@@ -0,0 +1,228 @@
1
+ /* eslint max-lines: ["error", 320] -- Mandatory multiline JSDoc for these shared helper functions pushes this split file over the default limit. */
2
+ /** Array mutator methods that imply observable state changes. */
3
+ const arrayMutationMethods = new Set([
4
+ "copyWithin",
5
+ "fill",
6
+ "pop",
7
+ "push",
8
+ "reverse",
9
+ "shift",
10
+ "sort",
11
+ "splice",
12
+ "unshift",
13
+ ]);
14
+ /** Names that usually signal Arrange-oriented helper calls. */
15
+ const setupLikeNames = /^(?:arrange|build|create|fixture|get|given|make|mock|parse|seed|setup|spy|stub|write)/u;
16
+ /** Call names that should be treated as utility operations instead of Act steps. */
17
+ const utilityMethodNames = new Set([
18
+ "advanceTimersByTime",
19
+ "clearAllMocks",
20
+ "debug",
21
+ "fn",
22
+ "info",
23
+ "join",
24
+ "log",
25
+ "mockImplementation",
26
+ "mockRejectedValue",
27
+ "mockResolvedValue",
28
+ "mockReturnValue",
29
+ "push",
30
+ "resetAllMocks",
31
+ "resolve",
32
+ "useFakeTimers",
33
+ "warn",
34
+ ]);
35
+ /** Method names that usually behave like void side-effect helpers. */
36
+ const voidLikeMethodNames = new Set([
37
+ "clear",
38
+ "debug",
39
+ "dispatch",
40
+ "emit",
41
+ "info",
42
+ "log",
43
+ "print",
44
+ "publish",
45
+ "reset",
46
+ "set",
47
+ "trigger",
48
+ "warn",
49
+ ]);
50
+ /** Name pattern used for void-like method detection. */
51
+ const voidLikeNamePattern = /^(?:clear|debug|dispatch|emit|info|log|print|publish|reset|set|trigger|warn)/u;
52
+ /**
53
+ * Gets an expression name when it can be resolved statically.
54
+ * @param expression Input expression value.
55
+ * @returns Return value output.
56
+ * @example
57
+ * ```typescript
58
+ * getExpressionName(expression);
59
+ * ```
60
+ */
61
+ function getExpressionName(expression) {
62
+ if (expression.type === "Super") {
63
+ return void 0;
64
+ }
65
+ if (expression.type === "Identifier") {
66
+ return expression.name;
67
+ }
68
+ if (expression.type === "MemberExpression" &&
69
+ expression.property.type === "Identifier") {
70
+ return expression.property.name;
71
+ }
72
+ return void 0;
73
+ }
74
+ /**
75
+ * Gets a callee name for a call or construction expression.
76
+ * @param expression Input expression value.
77
+ * @returns Return value output.
78
+ * @example
79
+ * ```typescript
80
+ * getInvokedName(expression);
81
+ * ```
82
+ */
83
+ function getInvokedName(expression) {
84
+ return getExpressionName(expression.callee);
85
+ }
86
+ /**
87
+ * Checks whether an expression is callable.
88
+ * @param expression Input expression value.
89
+ * @returns Return value output.
90
+ * @example
91
+ * ```typescript
92
+ * isCallableExpression(expression);
93
+ * ```
94
+ */
95
+ function isCallableExpression(expression) {
96
+ return (expression?.type === "CallExpression" ||
97
+ expression?.type === "NewExpression");
98
+ }
99
+ /**
100
+ * Checks whether a comment has location metadata.
101
+ * @param comment Input comment value.
102
+ * @returns Return value output.
103
+ * @example
104
+ * ```typescript
105
+ * isLocatedComment(comment);
106
+ * ```
107
+ */
108
+ function isLocatedComment(comment) {
109
+ return (comment.loc !== null && comment.loc !== void 0 && comment.range !== void 0);
110
+ }
111
+ /**
112
+ * Checks whether a value is an ESTree node.
113
+ * @param value Input value value.
114
+ * @returns Return value output.
115
+ * @example
116
+ * ```typescript
117
+ * isNode(value);
118
+ * ```
119
+ */
120
+ function isNode(value) {
121
+ return (typeof value === "object" &&
122
+ value !== null &&
123
+ "type" in value &&
124
+ typeof value.type === "string");
125
+ }
126
+ /**
127
+ * Checks whether a range is fully contained within another range.
128
+ * @param range Input range value.
129
+ * @param container Input container value.
130
+ * @returns Return value output.
131
+ * @example
132
+ * ```typescript
133
+ * isRangeWithin(range, container);
134
+ * ```
135
+ */
136
+ function isRangeWithin(range, container) {
137
+ return range[0] >= container[0] && range[1] <= container[1];
138
+ }
139
+ /**
140
+ * Checks whether a constructor call should be treated as setup.
141
+ * @param expression Input expression value.
142
+ * @param calleeName Input calleeName value.
143
+ * @returns Return value output.
144
+ * @example
145
+ * ```typescript
146
+ * isUtilityConstructor(expression, "Map");
147
+ * ```
148
+ */
149
+ function isUtilityConstructor(expression, calleeName) {
150
+ return (expression.type === "NewExpression" &&
151
+ (calleeName === "Map" ||
152
+ calleeName === "Set" ||
153
+ calleeName === "SourceCode" ||
154
+ calleeName === "ESLint"));
155
+ }
156
+ /**
157
+ * Checks whether a callee name looks utility-like.
158
+ * @param calleeName Input calleeName value.
159
+ * @returns Return value output.
160
+ * @example
161
+ * ```typescript
162
+ * isUtilityNamedCall("setupFixture");
163
+ * ```
164
+ */
165
+ function isUtilityNamedCall(calleeName) {
166
+ return utilityMethodNames.has(calleeName) || setupLikeNames.test(calleeName);
167
+ }
168
+ /**
169
+ * Checks whether a call uses a utility namespace.
170
+ * @param expression Input expression value.
171
+ * @returns Return value output.
172
+ * @example
173
+ * ```typescript
174
+ * isUtilityNamespaceCall(expression);
175
+ * ```
176
+ */
177
+ function isUtilityNamespaceCall(expression) {
178
+ return (expression.callee.type === "MemberExpression" &&
179
+ expression.callee.object.type === "Identifier" &&
180
+ ["console", "vi"].includes(expression.callee.object.name));
181
+ }
182
+ /**
183
+ * Visits an ESTree node graph while ignoring cycles.
184
+ * @param node Input node value.
185
+ * @param callback Input callback value.
186
+ * @param seenNodes Input seenNodes value.
187
+ * @example
188
+ * ```typescript
189
+ * visitNode(node, () => {});
190
+ * ```
191
+ */
192
+ function visitNode(node, callback, seenNodes = new WeakSet()) {
193
+ if (seenNodes.has(node)) {
194
+ return;
195
+ }
196
+ seenNodes.add(node);
197
+ callback(node);
198
+ for (const [key, value] of Object.entries(node)) {
199
+ if (key !== "parent") {
200
+ visitValue(value, callback, seenNodes);
201
+ }
202
+ }
203
+ }
204
+ /**
205
+ * Visits child values that may contain nested ESTree nodes.
206
+ * @param value Input value value.
207
+ * @param callback Input callback value.
208
+ * @param seenNodes Input seenNodes value.
209
+ * @example
210
+ * ```typescript
211
+ * visitValue(value, () => {}, new WeakSet<object>());
212
+ * ```
213
+ */
214
+ function visitValue(value, callback, seenNodes) {
215
+ if (Array.isArray(value)) {
216
+ for (const item of value) {
217
+ if (isNode(item)) {
218
+ visitNode(item, callback, seenNodes);
219
+ }
220
+ }
221
+ return;
222
+ }
223
+ if (isNode(value)) {
224
+ visitNode(value, callback, seenNodes);
225
+ }
226
+ }
227
+ export { arrayMutationMethods, getExpressionName, getInvokedName, isCallableExpression, isLocatedComment, isRangeWithin, isUtilityConstructor, isUtilityNamedCall, isUtilityNamespaceCall, setupLikeNames, utilityMethodNames, visitNode, voidLikeMethodNames, voidLikeNamePattern, };
228
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl6ZXIuc3VwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3RpbmcvYWFhL2FuYWx5emVyLnN1cGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9KQUFvSjtBQU1wSixpRUFBaUU7QUFDakUsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLEdBQUcsQ0FBQztJQUNuQyxZQUFZO0lBQ1osTUFBTTtJQUNOLEtBQUs7SUFDTCxNQUFNO0lBQ04sU0FBUztJQUNULE9BQU87SUFDUCxNQUFNO0lBQ04sUUFBUTtJQUNSLFNBQVM7Q0FDVixDQUFDLENBQUM7QUFFSCwrREFBK0Q7QUFDL0QsTUFBTSxjQUFjLEdBQ2xCLHdGQUF3RixDQUFDO0FBRTNGLG9GQUFvRjtBQUNwRixNQUFNLGtCQUFrQixHQUFHLElBQUksR0FBRyxDQUFDO0lBQ2pDLHFCQUFxQjtJQUNyQixlQUFlO0lBQ2YsT0FBTztJQUNQLElBQUk7SUFDSixNQUFNO0lBQ04sTUFBTTtJQUNOLEtBQUs7SUFDTCxvQkFBb0I7SUFDcEIsbUJBQW1CO0lBQ25CLG1CQUFtQjtJQUNuQixpQkFBaUI7SUFDakIsTUFBTTtJQUNOLGVBQWU7SUFDZixTQUFTO0lBQ1QsZUFBZTtJQUNmLE1BQU07Q0FDUCxDQUFDLENBQUM7QUFFSCxzRUFBc0U7QUFDdEUsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLEdBQUcsQ0FBQztJQUNsQyxPQUFPO0lBQ1AsT0FBTztJQUNQLFVBQVU7SUFDVixNQUFNO0lBQ04sTUFBTTtJQUNOLEtBQUs7SUFDTCxPQUFPO0lBQ1AsU0FBUztJQUNULE9BQU87SUFDUCxLQUFLO0lBQ0wsU0FBUztJQUNULE1BQU07Q0FDUCxDQUFDLENBQUM7QUFFSCx3REFBd0Q7QUFDeEQsTUFBTSxtQkFBbUIsR0FDdkIsK0VBQStFLENBQUM7QUFRbEY7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLGlCQUFpQixDQUN4QixVQUF1RTtJQUV2RSxJQUFJLFVBQVUsQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFLENBQUM7UUFDaEMsT0FBTyxLQUFLLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRUQsSUFBSSxVQUFVLENBQUMsSUFBSSxLQUFLLFlBQVksRUFBRSxDQUFDO1FBQ3JDLE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFDRSxVQUFVLENBQUMsSUFBSSxLQUFLLGtCQUFrQjtRQUN0QyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxZQUFZLEVBQ3pDLENBQUM7UUFDRCxPQUFPLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQyxDQUFDO0FBQ2hCLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsY0FBYyxDQUNyQixVQUF3RDtJQUV4RCxPQUFPLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUM5QyxDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLG9CQUFvQixDQUMzQixVQUF5QztJQUV6QyxPQUFPLENBQ0wsVUFBVSxFQUFFLElBQUksS0FBSyxnQkFBZ0I7UUFDckMsVUFBVSxFQUFFLElBQUksS0FBSyxlQUFlLENBQ3JDLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLGdCQUFnQixDQUFDLE9BQXNCO0lBQzlDLE9BQU8sQ0FDTCxPQUFPLENBQUMsR0FBRyxLQUFLLElBQUksSUFBSSxPQUFPLENBQUMsR0FBRyxLQUFLLEtBQUssQ0FBQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLENBQzNFLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLE1BQU0sQ0FBQyxLQUFjO0lBQzVCLE9BQU8sQ0FDTCxPQUFPLEtBQUssS0FBSyxRQUFRO1FBQ3pCLEtBQUssS0FBSyxJQUFJO1FBQ2QsTUFBTSxJQUFJLEtBQUs7UUFDZixPQUFRLEtBQXVCLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FDbEQsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFTLGFBQWEsQ0FDcEIsS0FBdUIsRUFDdkIsU0FBMkI7SUFFM0IsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDOUQsQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILFNBQVMsb0JBQW9CLENBQzNCLFVBQXdELEVBQ3hELFVBQWtCO0lBRWxCLE9BQU8sQ0FDTCxVQUFVLENBQUMsSUFBSSxLQUFLLGVBQWU7UUFDbkMsQ0FBQyxVQUFVLEtBQUssS0FBSztZQUNuQixVQUFVLEtBQUssS0FBSztZQUNwQixVQUFVLEtBQUssWUFBWTtZQUMzQixVQUFVLEtBQUssUUFBUSxDQUFDLENBQzNCLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLGtCQUFrQixDQUFDLFVBQWtCO0lBQzVDLE9BQU8sa0JBQWtCLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDL0UsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxzQkFBc0IsQ0FDN0IsVUFBd0Q7SUFFeEQsT0FBTyxDQUNMLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLGtCQUFrQjtRQUM3QyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssWUFBWTtRQUM5QyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQzFELENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsU0FBUyxTQUFTLENBQ2hCLElBQWlCLEVBQ2pCLFFBQXFDLEVBQ3JDLFlBQVksSUFBSSxPQUFPLEVBQVU7SUFFakMsSUFBSSxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDeEIsT0FBTztJQUNULENBQUM7SUFFRCxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BCLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVmLEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDaEQsSUFBSSxHQUFHLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDckIsVUFBVSxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDekMsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsU0FBUyxVQUFVLENBQ2pCLEtBQWMsRUFDZCxRQUFxQyxFQUNyQyxTQUEwQjtJQUUxQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN6QixLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ3pCLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ2pCLFNBQVMsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ3ZDLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTztJQUNULENBQUM7SUFFRCxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ2xCLFNBQVMsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7QUFDSCxDQUFDO0FBRUQsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixpQkFBaUIsRUFDakIsY0FBYyxFQUNkLG9CQUFvQixFQUNwQixnQkFBZ0IsRUFDaEIsYUFBYSxFQUNiLG9CQUFvQixFQUNwQixrQkFBa0IsRUFDbEIsc0JBQXNCLEVBQ3RCLGNBQWMsRUFDZCxrQkFBa0IsRUFDbEIsU0FBUyxFQUNULG1CQUFtQixFQUNuQixtQkFBbUIsR0FDcEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludCBtYXgtbGluZXM6IFtcImVycm9yXCIsIDMyMF0gLS0gTWFuZGF0b3J5IG11bHRpbGluZSBKU0RvYyBmb3IgdGhlc2Ugc2hhcmVkIGhlbHBlciBmdW5jdGlvbnMgcHVzaGVzIHRoaXMgc3BsaXQgZmlsZSBvdmVyIHRoZSBkZWZhdWx0IGxpbWl0LiAqL1xyXG5cclxuaW1wb3J0IHR5cGUgKiBhcyBFU1RyZWUgZnJvbSBcImVzdHJlZVwiO1xyXG5cclxuaW1wb3J0IHR5cGUgeyBMb2NhdGVkQ29tbWVudCwgU291cmNlQ29tbWVudCB9IGZyb20gXCIuL3R5cGVzXCI7XHJcblxyXG4vKiogQXJyYXkgbXV0YXRvciBtZXRob2RzIHRoYXQgaW1wbHkgb2JzZXJ2YWJsZSBzdGF0ZSBjaGFuZ2VzLiAqL1xyXG5jb25zdCBhcnJheU11dGF0aW9uTWV0aG9kcyA9IG5ldyBTZXQoW1xyXG4gIFwiY29weVdpdGhpblwiLFxyXG4gIFwiZmlsbFwiLFxyXG4gIFwicG9wXCIsXHJcbiAgXCJwdXNoXCIsXHJcbiAgXCJyZXZlcnNlXCIsXHJcbiAgXCJzaGlmdFwiLFxyXG4gIFwic29ydFwiLFxyXG4gIFwic3BsaWNlXCIsXHJcbiAgXCJ1bnNoaWZ0XCIsXHJcbl0pO1xyXG5cclxuLyoqIE5hbWVzIHRoYXQgdXN1YWxseSBzaWduYWwgQXJyYW5nZS1vcmllbnRlZCBoZWxwZXIgY2FsbHMuICovXHJcbmNvbnN0IHNldHVwTGlrZU5hbWVzID1cclxuICAvXig/OmFycmFuZ2V8YnVpbGR8Y3JlYXRlfGZpeHR1cmV8Z2V0fGdpdmVufG1ha2V8bW9ja3xwYXJzZXxzZWVkfHNldHVwfHNweXxzdHVifHdyaXRlKS91O1xyXG5cclxuLyoqIENhbGwgbmFtZXMgdGhhdCBzaG91bGQgYmUgdHJlYXRlZCBhcyB1dGlsaXR5IG9wZXJhdGlvbnMgaW5zdGVhZCBvZiBBY3Qgc3RlcHMuICovXHJcbmNvbnN0IHV0aWxpdHlNZXRob2ROYW1lcyA9IG5ldyBTZXQoW1xyXG4gIFwiYWR2YW5jZVRpbWVyc0J5VGltZVwiLFxyXG4gIFwiY2xlYXJBbGxNb2Nrc1wiLFxyXG4gIFwiZGVidWdcIixcclxuICBcImZuXCIsXHJcbiAgXCJpbmZvXCIsXHJcbiAgXCJqb2luXCIsXHJcbiAgXCJsb2dcIixcclxuICBcIm1vY2tJbXBsZW1lbnRhdGlvblwiLFxyXG4gIFwibW9ja1JlamVjdGVkVmFsdWVcIixcclxuICBcIm1vY2tSZXNvbHZlZFZhbHVlXCIsXHJcbiAgXCJtb2NrUmV0dXJuVmFsdWVcIixcclxuICBcInB1c2hcIixcclxuICBcInJlc2V0QWxsTW9ja3NcIixcclxuICBcInJlc29sdmVcIixcclxuICBcInVzZUZha2VUaW1lcnNcIixcclxuICBcIndhcm5cIixcclxuXSk7XHJcblxyXG4vKiogTWV0aG9kIG5hbWVzIHRoYXQgdXN1YWxseSBiZWhhdmUgbGlrZSB2b2lkIHNpZGUtZWZmZWN0IGhlbHBlcnMuICovXHJcbmNvbnN0IHZvaWRMaWtlTWV0aG9kTmFtZXMgPSBuZXcgU2V0KFtcclxuICBcImNsZWFyXCIsXHJcbiAgXCJkZWJ1Z1wiLFxyXG4gIFwiZGlzcGF0Y2hcIixcclxuICBcImVtaXRcIixcclxuICBcImluZm9cIixcclxuICBcImxvZ1wiLFxyXG4gIFwicHJpbnRcIixcclxuICBcInB1Ymxpc2hcIixcclxuICBcInJlc2V0XCIsXHJcbiAgXCJzZXRcIixcclxuICBcInRyaWdnZXJcIixcclxuICBcIndhcm5cIixcclxuXSk7XHJcblxyXG4vKiogTmFtZSBwYXR0ZXJuIHVzZWQgZm9yIHZvaWQtbGlrZSBtZXRob2QgZGV0ZWN0aW9uLiAqL1xyXG5jb25zdCB2b2lkTGlrZU5hbWVQYXR0ZXJuID1cclxuICAvXig/OmNsZWFyfGRlYnVnfGRpc3BhdGNofGVtaXR8aW5mb3xsb2d8cHJpbnR8cHVibGlzaHxyZXNldHxzZXR8dHJpZ2dlcnx3YXJuKS91O1xyXG5cclxuLyoqIE9iamVjdCBzaGFwZSB1c2VkIGZvciBFU1RyZWUgbm9kZSBuYXJyb3dpbmcuICovXHJcbmludGVyZmFjZSBOb2RlTGlrZVZhbHVlIHtcclxuICAvKiogUG90ZW50aWFsIEVTVHJlZSBub2RlIHR5cGUgZmllbGQuICovXHJcbiAgdHlwZT86IHVua25vd247XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZXRzIGFuIGV4cHJlc3Npb24gbmFtZSB3aGVuIGl0IGNhbiBiZSByZXNvbHZlZCBzdGF0aWNhbGx5LlxyXG4gKiBAcGFyYW0gZXhwcmVzc2lvbiBJbnB1dCBleHByZXNzaW9uIHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGdldEV4cHJlc3Npb25OYW1lKGV4cHJlc3Npb24pO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGdldEV4cHJlc3Npb25OYW1lKFxyXG4gIGV4cHJlc3Npb246IEVTVHJlZS5FeHByZXNzaW9uIHwgRVNUcmVlLlByaXZhdGVJZGVudGlmaWVyIHwgRVNUcmVlLlN1cGVyLFxyXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gIGlmIChleHByZXNzaW9uLnR5cGUgPT09IFwiU3VwZXJcIikge1xyXG4gICAgcmV0dXJuIHZvaWQgMDtcclxuICB9XHJcblxyXG4gIGlmIChleHByZXNzaW9uLnR5cGUgPT09IFwiSWRlbnRpZmllclwiKSB7XHJcbiAgICByZXR1cm4gZXhwcmVzc2lvbi5uYW1lO1xyXG4gIH1cclxuXHJcbiAgaWYgKFxyXG4gICAgZXhwcmVzc2lvbi50eXBlID09PSBcIk1lbWJlckV4cHJlc3Npb25cIiAmJlxyXG4gICAgZXhwcmVzc2lvbi5wcm9wZXJ0eS50eXBlID09PSBcIklkZW50aWZpZXJcIlxyXG4gICkge1xyXG4gICAgcmV0dXJuIGV4cHJlc3Npb24ucHJvcGVydHkubmFtZTtcclxuICB9XHJcblxyXG4gIHJldHVybiB2b2lkIDA7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZXRzIGEgY2FsbGVlIG5hbWUgZm9yIGEgY2FsbCBvciBjb25zdHJ1Y3Rpb24gZXhwcmVzc2lvbi5cclxuICogQHBhcmFtIGV4cHJlc3Npb24gSW5wdXQgZXhwcmVzc2lvbiB2YWx1ZS5cclxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBnZXRJbnZva2VkTmFtZShleHByZXNzaW9uKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBnZXRJbnZva2VkTmFtZShcclxuICBleHByZXNzaW9uOiBFU1RyZWUuQ2FsbEV4cHJlc3Npb24gfCBFU1RyZWUuTmV3RXhwcmVzc2lvbixcclxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICByZXR1cm4gZ2V0RXhwcmVzc2lvbk5hbWUoZXhwcmVzc2lvbi5jYWxsZWUpO1xyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2tzIHdoZXRoZXIgYW4gZXhwcmVzc2lvbiBpcyBjYWxsYWJsZS5cclxuICogQHBhcmFtIGV4cHJlc3Npb24gSW5wdXQgZXhwcmVzc2lvbiB2YWx1ZS5cclxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBpc0NhbGxhYmxlRXhwcmVzc2lvbihleHByZXNzaW9uKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBpc0NhbGxhYmxlRXhwcmVzc2lvbihcclxuICBleHByZXNzaW9uOiBFU1RyZWUuRXhwcmVzc2lvbiB8IHVuZGVmaW5lZCxcclxuKTogZXhwcmVzc2lvbiBpcyBFU1RyZWUuQ2FsbEV4cHJlc3Npb24gfCBFU1RyZWUuTmV3RXhwcmVzc2lvbiB7XHJcbiAgcmV0dXJuIChcclxuICAgIGV4cHJlc3Npb24/LnR5cGUgPT09IFwiQ2FsbEV4cHJlc3Npb25cIiB8fFxyXG4gICAgZXhwcmVzc2lvbj8udHlwZSA9PT0gXCJOZXdFeHByZXNzaW9uXCJcclxuICApO1xyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2tzIHdoZXRoZXIgYSBjb21tZW50IGhhcyBsb2NhdGlvbiBtZXRhZGF0YS5cclxuICogQHBhcmFtIGNvbW1lbnQgSW5wdXQgY29tbWVudCB2YWx1ZS5cclxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBpc0xvY2F0ZWRDb21tZW50KGNvbW1lbnQpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGlzTG9jYXRlZENvbW1lbnQoY29tbWVudDogU291cmNlQ29tbWVudCk6IGNvbW1lbnQgaXMgTG9jYXRlZENvbW1lbnQge1xyXG4gIHJldHVybiAoXHJcbiAgICBjb21tZW50LmxvYyAhPT0gbnVsbCAmJiBjb21tZW50LmxvYyAhPT0gdm9pZCAwICYmIGNvbW1lbnQucmFuZ2UgIT09IHZvaWQgMFxyXG4gICk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDaGVja3Mgd2hldGhlciBhIHZhbHVlIGlzIGFuIEVTVHJlZSBub2RlLlxyXG4gKiBAcGFyYW0gdmFsdWUgSW5wdXQgdmFsdWUgdmFsdWUuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogaXNOb2RlKHZhbHVlKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBpc05vZGUodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBFU1RyZWUuTm9kZSB7XHJcbiAgcmV0dXJuIChcclxuICAgIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJlxyXG4gICAgdmFsdWUgIT09IG51bGwgJiZcclxuICAgIFwidHlwZVwiIGluIHZhbHVlICYmXHJcbiAgICB0eXBlb2YgKHZhbHVlIGFzIE5vZGVMaWtlVmFsdWUpLnR5cGUgPT09IFwic3RyaW5nXCJcclxuICApO1xyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2tzIHdoZXRoZXIgYSByYW5nZSBpcyBmdWxseSBjb250YWluZWQgd2l0aGluIGFub3RoZXIgcmFuZ2UuXHJcbiAqIEBwYXJhbSByYW5nZSBJbnB1dCByYW5nZSB2YWx1ZS5cclxuICogQHBhcmFtIGNvbnRhaW5lciBJbnB1dCBjb250YWluZXIgdmFsdWUuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogaXNSYW5nZVdpdGhpbihyYW5nZSwgY29udGFpbmVyKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBpc1JhbmdlV2l0aGluKFxyXG4gIHJhbmdlOiBbbnVtYmVyLCBudW1iZXJdLFxyXG4gIGNvbnRhaW5lcjogW251bWJlciwgbnVtYmVyXSxcclxuKTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuIHJhbmdlWzBdID49IGNvbnRhaW5lclswXSAmJiByYW5nZVsxXSA8PSBjb250YWluZXJbMV07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDaGVja3Mgd2hldGhlciBhIGNvbnN0cnVjdG9yIGNhbGwgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgc2V0dXAuXHJcbiAqIEBwYXJhbSBleHByZXNzaW9uIElucHV0IGV4cHJlc3Npb24gdmFsdWUuXHJcbiAqIEBwYXJhbSBjYWxsZWVOYW1lIElucHV0IGNhbGxlZU5hbWUgdmFsdWUuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogaXNVdGlsaXR5Q29uc3RydWN0b3IoZXhwcmVzc2lvbiwgXCJNYXBcIik7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gaXNVdGlsaXR5Q29uc3RydWN0b3IoXHJcbiAgZXhwcmVzc2lvbjogRVNUcmVlLkNhbGxFeHByZXNzaW9uIHwgRVNUcmVlLk5ld0V4cHJlc3Npb24sXHJcbiAgY2FsbGVlTmFtZTogc3RyaW5nLFxyXG4pOiBib29sZWFuIHtcclxuICByZXR1cm4gKFxyXG4gICAgZXhwcmVzc2lvbi50eXBlID09PSBcIk5ld0V4cHJlc3Npb25cIiAmJlxyXG4gICAgKGNhbGxlZU5hbWUgPT09IFwiTWFwXCIgfHxcclxuICAgICAgY2FsbGVlTmFtZSA9PT0gXCJTZXRcIiB8fFxyXG4gICAgICBjYWxsZWVOYW1lID09PSBcIlNvdXJjZUNvZGVcIiB8fFxyXG4gICAgICBjYWxsZWVOYW1lID09PSBcIkVTTGludFwiKVxyXG4gICk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDaGVja3Mgd2hldGhlciBhIGNhbGxlZSBuYW1lIGxvb2tzIHV0aWxpdHktbGlrZS5cclxuICogQHBhcmFtIGNhbGxlZU5hbWUgSW5wdXQgY2FsbGVlTmFtZSB2YWx1ZS5cclxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBpc1V0aWxpdHlOYW1lZENhbGwoXCJzZXR1cEZpeHR1cmVcIik7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gaXNVdGlsaXR5TmFtZWRDYWxsKGNhbGxlZU5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiB1dGlsaXR5TWV0aG9kTmFtZXMuaGFzKGNhbGxlZU5hbWUpIHx8IHNldHVwTGlrZU5hbWVzLnRlc3QoY2FsbGVlTmFtZSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDaGVja3Mgd2hldGhlciBhIGNhbGwgdXNlcyBhIHV0aWxpdHkgbmFtZXNwYWNlLlxyXG4gKiBAcGFyYW0gZXhwcmVzc2lvbiBJbnB1dCBleHByZXNzaW9uIHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGlzVXRpbGl0eU5hbWVzcGFjZUNhbGwoZXhwcmVzc2lvbik7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gaXNVdGlsaXR5TmFtZXNwYWNlQ2FsbChcclxuICBleHByZXNzaW9uOiBFU1RyZWUuQ2FsbEV4cHJlc3Npb24gfCBFU1RyZWUuTmV3RXhwcmVzc2lvbixcclxuKTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuIChcclxuICAgIGV4cHJlc3Npb24uY2FsbGVlLnR5cGUgPT09IFwiTWVtYmVyRXhwcmVzc2lvblwiICYmXHJcbiAgICBleHByZXNzaW9uLmNhbGxlZS5vYmplY3QudHlwZSA9PT0gXCJJZGVudGlmaWVyXCIgJiZcclxuICAgIFtcImNvbnNvbGVcIiwgXCJ2aVwiXS5pbmNsdWRlcyhleHByZXNzaW9uLmNhbGxlZS5vYmplY3QubmFtZSlcclxuICApO1xyXG59XHJcblxyXG4vKipcclxuICogVmlzaXRzIGFuIEVTVHJlZSBub2RlIGdyYXBoIHdoaWxlIGlnbm9yaW5nIGN5Y2xlcy5cclxuICogQHBhcmFtIG5vZGUgSW5wdXQgbm9kZSB2YWx1ZS5cclxuICogQHBhcmFtIGNhbGxiYWNrIElucHV0IGNhbGxiYWNrIHZhbHVlLlxyXG4gKiBAcGFyYW0gc2Vlbk5vZGVzIElucHV0IHNlZW5Ob2RlcyB2YWx1ZS5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiB2aXNpdE5vZGUobm9kZSwgKCkgPT4ge30pO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIHZpc2l0Tm9kZShcclxuICBub2RlOiBFU1RyZWUuTm9kZSxcclxuICBjYWxsYmFjazogKG5vZGU6IEVTVHJlZS5Ob2RlKSA9PiB2b2lkLFxyXG4gIHNlZW5Ob2RlcyA9IG5ldyBXZWFrU2V0PG9iamVjdD4oKSxcclxuKTogdm9pZCB7XHJcbiAgaWYgKHNlZW5Ob2Rlcy5oYXMobm9kZSkpIHtcclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIHNlZW5Ob2Rlcy5hZGQobm9kZSk7XHJcbiAgY2FsbGJhY2sobm9kZSk7XHJcblxyXG4gIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKG5vZGUpKSB7XHJcbiAgICBpZiAoa2V5ICE9PSBcInBhcmVudFwiKSB7XHJcbiAgICAgIHZpc2l0VmFsdWUodmFsdWUsIGNhbGxiYWNrLCBzZWVuTm9kZXMpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIFZpc2l0cyBjaGlsZCB2YWx1ZXMgdGhhdCBtYXkgY29udGFpbiBuZXN0ZWQgRVNUcmVlIG5vZGVzLlxyXG4gKiBAcGFyYW0gdmFsdWUgSW5wdXQgdmFsdWUgdmFsdWUuXHJcbiAqIEBwYXJhbSBjYWxsYmFjayBJbnB1dCBjYWxsYmFjayB2YWx1ZS5cclxuICogQHBhcmFtIHNlZW5Ob2RlcyBJbnB1dCBzZWVuTm9kZXMgdmFsdWUuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogdmlzaXRWYWx1ZSh2YWx1ZSwgKCkgPT4ge30sIG5ldyBXZWFrU2V0PG9iamVjdD4oKSk7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gdmlzaXRWYWx1ZShcclxuICB2YWx1ZTogdW5rbm93bixcclxuICBjYWxsYmFjazogKG5vZGU6IEVTVHJlZS5Ob2RlKSA9PiB2b2lkLFxyXG4gIHNlZW5Ob2RlczogV2Vha1NldDxvYmplY3Q+LFxyXG4pOiB2b2lkIHtcclxuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcclxuICAgIGZvciAoY29uc3QgaXRlbSBvZiB2YWx1ZSkge1xyXG4gICAgICBpZiAoaXNOb2RlKGl0ZW0pKSB7XHJcbiAgICAgICAgdmlzaXROb2RlKGl0ZW0sIGNhbGxiYWNrLCBzZWVuTm9kZXMpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgaWYgKGlzTm9kZSh2YWx1ZSkpIHtcclxuICAgIHZpc2l0Tm9kZSh2YWx1ZSwgY2FsbGJhY2ssIHNlZW5Ob2Rlcyk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQge1xyXG4gIGFycmF5TXV0YXRpb25NZXRob2RzLFxyXG4gIGdldEV4cHJlc3Npb25OYW1lLFxyXG4gIGdldEludm9rZWROYW1lLFxyXG4gIGlzQ2FsbGFibGVFeHByZXNzaW9uLFxyXG4gIGlzTG9jYXRlZENvbW1lbnQsXHJcbiAgaXNSYW5nZVdpdGhpbixcclxuICBpc1V0aWxpdHlDb25zdHJ1Y3RvcixcclxuICBpc1V0aWxpdHlOYW1lZENhbGwsXHJcbiAgaXNVdGlsaXR5TmFtZXNwYWNlQ2FsbCxcclxuICBzZXR1cExpa2VOYW1lcyxcclxuICB1dGlsaXR5TWV0aG9kTmFtZXMsXHJcbiAgdmlzaXROb2RlLFxyXG4gIHZvaWRMaWtlTWV0aG9kTmFtZXMsXHJcbiAgdm9pZExpa2VOYW1lUGF0dGVybixcclxufTtcclxuIl19
@@ -1,3 +1,3 @@
1
- export { aaaPhaseOrder, analyzeTestBlock, countActStatements, getAssertDeclaredIdentifiers, getAssertionIdentifiers, getFlattenedSections, getIndentationAtOffset, getLineStartRange, getPhaseBoundaryComments, getSectionPhases, hasAssertion, hasAsyncLogic, hasAwait, hasBlankLineBeforeComment, hasCapturableActResult, hasMutation, isMeaningfulActStatement, isSetupLikeStatement, isValidAssertStatement, usesPrefix, } from "./analyzer";
2
- export type { AaaPhase, LocatedComment, LocatedNode, SectionComment, SourceComment, StatementPhase, TestBlockAnalysis, } from "./types";
1
+ export { aaaPhaseOrder, analyzeTestBlock, countActStatements, getAssertDeclaredIdentifiers, getAssertionIdentifiers, getFlattenedSections, getIndentationAtOffset, getLineStartRange, getPhaseBoundaryComments, getSectionPhases, hasAssertion, hasAsyncLogic, hasAwait, hasBlankLineBeforeComment, hasCapturableActResult, hasMutation, isMeaningfulActStatement, isSetupLikeStatement, isValidAssertStatement, usesPrefix, } from "./analyzer.js";
2
+ export type { AaaPhase, LocatedComment, LocatedNode, SectionComment, SourceComment, StatementPhase, TestBlockAnalysis, } from "./types.js";
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/aaa/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,4BAA4B,EAC5B,uBAAuB,EACvB,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,EACjB,wBAAwB,EACxB,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,yBAAyB,EACzB,sBAAsB,EACtB,WAAW,EACX,wBAAwB,EACxB,oBAAoB,EACpB,sBAAsB,EACtB,UAAU,GACX,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,QAAQ,EACR,cAAc,EACd,WAAW,EACX,cAAc,EACd,aAAa,EACb,cAAc,EACd,iBAAiB,GAClB,MAAM,SAAS,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { aaaPhaseOrder, analyzeTestBlock, countActStatements, getAssertDeclaredIdentifiers, getAssertionIdentifiers, getFlattenedSections, getIndentationAtOffset, getLineStartRange, getPhaseBoundaryComments, getSectionPhases, hasAssertion, hasAsyncLogic, hasAwait, hasBlankLineBeforeComment, hasCapturableActResult, hasMutation, isMeaningfulActStatement, isSetupLikeStatement, isValidAssertStatement, usesPrefix, } from "./analyzer.js";
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3RpbmcvYWFhL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQiw0QkFBNEIsRUFDNUIsdUJBQXVCLEVBQ3ZCLG9CQUFvQixFQUNwQixzQkFBc0IsRUFDdEIsaUJBQWlCLEVBQ2pCLHdCQUF3QixFQUN4QixnQkFBZ0IsRUFDaEIsWUFBWSxFQUNaLGFBQWEsRUFDYixRQUFRLEVBQ1IseUJBQXlCLEVBQ3pCLHNCQUFzQixFQUN0QixXQUFXLEVBQ1gsd0JBQXdCLEVBQ3hCLG9CQUFvQixFQUNwQixzQkFBc0IsRUFDdEIsVUFBVSxHQUNYLE1BQU0sWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHtcbiAgYWFhUGhhc2VPcmRlcixcbiAgYW5hbHl6ZVRlc3RCbG9jayxcbiAgY291bnRBY3RTdGF0ZW1lbnRzLFxuICBnZXRBc3NlcnREZWNsYXJlZElkZW50aWZpZXJzLFxuICBnZXRBc3NlcnRpb25JZGVudGlmaWVycyxcbiAgZ2V0RmxhdHRlbmVkU2VjdGlvbnMsXG4gIGdldEluZGVudGF0aW9uQXRPZmZzZXQsXG4gIGdldExpbmVTdGFydFJhbmdlLFxuICBnZXRQaGFzZUJvdW5kYXJ5Q29tbWVudHMsXG4gIGdldFNlY3Rpb25QaGFzZXMsXG4gIGhhc0Fzc2VydGlvbixcbiAgaGFzQXN5bmNMb2dpYyxcbiAgaGFzQXdhaXQsXG4gIGhhc0JsYW5rTGluZUJlZm9yZUNvbW1lbnQsXG4gIGhhc0NhcHR1cmFibGVBY3RSZXN1bHQsXG4gIGhhc011dGF0aW9uLFxuICBpc01lYW5pbmdmdWxBY3RTdGF0ZW1lbnQsXG4gIGlzU2V0dXBMaWtlU3RhdGVtZW50LFxuICBpc1ZhbGlkQXNzZXJ0U3RhdGVtZW50LFxuICB1c2VzUHJlZml4LFxufSBmcm9tIFwiLi9hbmFseXplclwiO1xuZXhwb3J0IHR5cGUge1xuICBBYWFQaGFzZSxcbiAgTG9jYXRlZENvbW1lbnQsXG4gIExvY2F0ZWROb2RlLFxuICBTZWN0aW9uQ29tbWVudCxcbiAgU291cmNlQ29tbWVudCxcbiAgU3RhdGVtZW50UGhhc2UsXG4gIFRlc3RCbG9ja0FuYWx5c2lzLFxufSBmcm9tIFwiLi90eXBlc1wiO1xuIl19
@@ -0,0 +1,58 @@
1
+ import type { Rule } from "eslint";
2
+ import type * as ESTree from "estree";
3
+ /** Named AAA phases recognized by the analyzer. */
4
+ type AaaPhase = "Act" | "Arrange" | "Assert";
5
+ /** Source comment with guaranteed location and range metadata. */
6
+ type LocatedComment = SourceComment & {
7
+ /** Normalized location for the comment. */
8
+ loc: NonNullable<SourceComment["loc"]>;
9
+ /** Inclusive source range for the comment. */
10
+ range: [number, number];
11
+ };
12
+ /**
13
+ * ESTree node with required location and range metadata.
14
+ * @template TNode Node subtype carried by the wrapper.
15
+ */
16
+ type LocatedNode<TNode extends ESTree.Node = ESTree.Node> = TNode & {
17
+ /** Normalized location for the node. */
18
+ loc: NonNullable<ESTree.Node["loc"]>;
19
+ /** Inclusive source range for the node. */
20
+ range: [number, number];
21
+ };
22
+ /** Section comment and the AAA phases it declares. */
23
+ interface SectionComment {
24
+ /** Located line comment used as the section marker. */
25
+ comment: LocatedComment;
26
+ /** Phases declared by the section marker. */
27
+ phases: AaaPhase[];
28
+ }
29
+ /** Raw source comment nodes returned by ESLint. */
30
+ type SourceComment = ReturnType<Rule.RuleContext["sourceCode"]["getAllComments"]>[number];
31
+ /** Statement annotated with its active AAA phases. */
32
+ interface StatementPhase {
33
+ /** Statement node that belongs to the analyzed test body. */
34
+ node: LocatedNode<ESTree.Statement>;
35
+ /** Last active phase before this statement, when any exists. */
36
+ phase: AaaPhase | undefined;
37
+ /** All active phases inherited from the nearest section marker. */
38
+ phases: AaaPhase[];
39
+ }
40
+ /** Derived metadata for a supported test callback. */
41
+ interface TestBlockAnalysis {
42
+ /** Block body belonging to the test callback. */
43
+ body: LocatedNode<ESTree.BlockStatement>;
44
+ /** Number of lines inside the callback body. */
45
+ bodyLineCount: number;
46
+ /** Original call expression for `it` or `test`. */
47
+ callExpression: LocatedNode<ESTree.CallExpression>;
48
+ /** Newline style used by the source text. */
49
+ newline: "\n" | "\r\n";
50
+ /** Ordered AAA section comments within the callback body. */
51
+ sectionComments: SectionComment[];
52
+ /** Full source text for the analyzed file. */
53
+ sourceText: string;
54
+ /** Statements paired with their resolved AAA phases. */
55
+ statements: StatementPhase[];
56
+ }
57
+ export type { AaaPhase, LocatedComment, LocatedNode, SectionComment, SourceComment, StatementPhase, TestBlockAnalysis, };
58
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/aaa/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEtC,mDAAmD;AACnD,KAAK,QAAQ,GAAG,KAAK,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE7C,kEAAkE;AAClE,KAAK,cAAc,GAAG,aAAa,GAAG;IACpC,2CAA2C;IAC3C,GAAG,EAAE,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;IAEvC,8CAA8C;IAC9C,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzB,CAAC;AAEF;;;GAGG;AACH,KAAK,WAAW,CAAC,KAAK,SAAS,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,KAAK,GAAG;IAClE,wCAAwC;IACxC,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAErC,2CAA2C;IAC3C,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzB,CAAC;AAEF,sDAAsD;AACtD,UAAU,cAAc;IACtB,uDAAuD;IACvD,OAAO,EAAE,cAAc,CAAC;IAExB,6CAA6C;IAC7C,MAAM,EAAE,QAAQ,EAAE,CAAC;CACpB;AAED,mDAAmD;AACnD,KAAK,aAAa,GAAG,UAAU,CAC7B,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,gBAAgB,CAAC,CACjD,CAAC,MAAM,CAAC,CAAC;AAEV,sDAAsD;AACtD,UAAU,cAAc;IACtB,6DAA6D;IAC7D,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAEpC,gEAAgE;IAChE,KAAK,EAAE,QAAQ,GAAG,SAAS,CAAC;IAE5B,mEAAmE;IACnE,MAAM,EAAE,QAAQ,EAAE,CAAC;CACpB;AAED,sDAAsD;AACtD,UAAU,iBAAiB;IACzB,iDAAiD;IACjD,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAEzC,gDAAgD;IAChD,aAAa,EAAE,MAAM,CAAC;IAEtB,mDAAmD;IACnD,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAEnD,6CAA6C;IAC7C,OAAO,EAAE,IAAI,GAAG,MAAM,CAAC;IAEvB,6DAA6D;IAC7D,eAAe,EAAE,cAAc,EAAE,CAAC;IAElC,8CAA8C;IAC9C,UAAU,EAAE,MAAM,CAAC;IAEnB,wDAAwD;IACxD,UAAU,EAAE,cAAc,EAAE,CAAC;CAC9B;AAED,YAAY,EACV,QAAQ,EACR,cAAc,EACd,WAAW,EACX,cAAc,EACd,aAAa,EACb,cAAc,EACd,iBAAiB,GAClB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3RpbmcvYWFhL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tIFwiZXNsaW50XCI7XG5pbXBvcnQgdHlwZSAqIGFzIEVTVHJlZSBmcm9tIFwiZXN0cmVlXCI7XG5cbi8qKiBOYW1lZCBBQUEgcGhhc2VzIHJlY29nbml6ZWQgYnkgdGhlIGFuYWx5emVyLiAqL1xudHlwZSBBYWFQaGFzZSA9IFwiQWN0XCIgfCBcIkFycmFuZ2VcIiB8IFwiQXNzZXJ0XCI7XG5cbi8qKiBTb3VyY2UgY29tbWVudCB3aXRoIGd1YXJhbnRlZWQgbG9jYXRpb24gYW5kIHJhbmdlIG1ldGFkYXRhLiAqL1xudHlwZSBMb2NhdGVkQ29tbWVudCA9IFNvdXJjZUNvbW1lbnQgJiB7XG4gIC8qKiBOb3JtYWxpemVkIGxvY2F0aW9uIGZvciB0aGUgY29tbWVudC4gKi9cbiAgbG9jOiBOb25OdWxsYWJsZTxTb3VyY2VDb21tZW50W1wibG9jXCJdPjtcblxuICAvKiogSW5jbHVzaXZlIHNvdXJjZSByYW5nZSBmb3IgdGhlIGNvbW1lbnQuICovXG4gIHJhbmdlOiBbbnVtYmVyLCBudW1iZXJdO1xufTtcblxuLyoqXG4gKiBFU1RyZWUgbm9kZSB3aXRoIHJlcXVpcmVkIGxvY2F0aW9uIGFuZCByYW5nZSBtZXRhZGF0YS5cbiAqIEB0ZW1wbGF0ZSBUTm9kZSBOb2RlIHN1YnR5cGUgY2FycmllZCBieSB0aGUgd3JhcHBlci5cbiAqL1xudHlwZSBMb2NhdGVkTm9kZTxUTm9kZSBleHRlbmRzIEVTVHJlZS5Ob2RlID0gRVNUcmVlLk5vZGU+ID0gVE5vZGUgJiB7XG4gIC8qKiBOb3JtYWxpemVkIGxvY2F0aW9uIGZvciB0aGUgbm9kZS4gKi9cbiAgbG9jOiBOb25OdWxsYWJsZTxFU1RyZWUuTm9kZVtcImxvY1wiXT47XG5cbiAgLyoqIEluY2x1c2l2ZSBzb3VyY2UgcmFuZ2UgZm9yIHRoZSBub2RlLiAqL1xuICByYW5nZTogW251bWJlciwgbnVtYmVyXTtcbn07XG5cbi8qKiBTZWN0aW9uIGNvbW1lbnQgYW5kIHRoZSBBQUEgcGhhc2VzIGl0IGRlY2xhcmVzLiAqL1xuaW50ZXJmYWNlIFNlY3Rpb25Db21tZW50IHtcbiAgLyoqIExvY2F0ZWQgbGluZSBjb21tZW50IHVzZWQgYXMgdGhlIHNlY3Rpb24gbWFya2VyLiAqL1xuICBjb21tZW50OiBMb2NhdGVkQ29tbWVudDtcblxuICAvKiogUGhhc2VzIGRlY2xhcmVkIGJ5IHRoZSBzZWN0aW9uIG1hcmtlci4gKi9cbiAgcGhhc2VzOiBBYWFQaGFzZVtdO1xufVxuXG4vKiogUmF3IHNvdXJjZSBjb21tZW50IG5vZGVzIHJldHVybmVkIGJ5IEVTTGludC4gKi9cbnR5cGUgU291cmNlQ29tbWVudCA9IFJldHVyblR5cGU8XG4gIFJ1bGUuUnVsZUNvbnRleHRbXCJzb3VyY2VDb2RlXCJdW1wiZ2V0QWxsQ29tbWVudHNcIl1cbj5bbnVtYmVyXTtcblxuLyoqIFN0YXRlbWVudCBhbm5vdGF0ZWQgd2l0aCBpdHMgYWN0aXZlIEFBQSBwaGFzZXMuICovXG5pbnRlcmZhY2UgU3RhdGVtZW50UGhhc2Uge1xuICAvKiogU3RhdGVtZW50IG5vZGUgdGhhdCBiZWxvbmdzIHRvIHRoZSBhbmFseXplZCB0ZXN0IGJvZHkuICovXG4gIG5vZGU6IExvY2F0ZWROb2RlPEVTVHJlZS5TdGF0ZW1lbnQ+O1xuXG4gIC8qKiBMYXN0IGFjdGl2ZSBwaGFzZSBiZWZvcmUgdGhpcyBzdGF0ZW1lbnQsIHdoZW4gYW55IGV4aXN0cy4gKi9cbiAgcGhhc2U6IEFhYVBoYXNlIHwgdW5kZWZpbmVkO1xuXG4gIC8qKiBBbGwgYWN0aXZlIHBoYXNlcyBpbmhlcml0ZWQgZnJvbSB0aGUgbmVhcmVzdCBzZWN0aW9uIG1hcmtlci4gKi9cbiAgcGhhc2VzOiBBYWFQaGFzZVtdO1xufVxuXG4vKiogRGVyaXZlZCBtZXRhZGF0YSBmb3IgYSBzdXBwb3J0ZWQgdGVzdCBjYWxsYmFjay4gKi9cbmludGVyZmFjZSBUZXN0QmxvY2tBbmFseXNpcyB7XG4gIC8qKiBCbG9jayBib2R5IGJlbG9uZ2luZyB0byB0aGUgdGVzdCBjYWxsYmFjay4gKi9cbiAgYm9keTogTG9jYXRlZE5vZGU8RVNUcmVlLkJsb2NrU3RhdGVtZW50PjtcblxuICAvKiogTnVtYmVyIG9mIGxpbmVzIGluc2lkZSB0aGUgY2FsbGJhY2sgYm9keS4gKi9cbiAgYm9keUxpbmVDb3VudDogbnVtYmVyO1xuXG4gIC8qKiBPcmlnaW5hbCBjYWxsIGV4cHJlc3Npb24gZm9yIGBpdGAgb3IgYHRlc3RgLiAqL1xuICBjYWxsRXhwcmVzc2lvbjogTG9jYXRlZE5vZGU8RVNUcmVlLkNhbGxFeHByZXNzaW9uPjtcblxuICAvKiogTmV3bGluZSBzdHlsZSB1c2VkIGJ5IHRoZSBzb3VyY2UgdGV4dC4gKi9cbiAgbmV3bGluZTogXCJcXG5cIiB8IFwiXFxyXFxuXCI7XG5cbiAgLyoqIE9yZGVyZWQgQUFBIHNlY3Rpb24gY29tbWVudHMgd2l0aGluIHRoZSBjYWxsYmFjayBib2R5LiAqL1xuICBzZWN0aW9uQ29tbWVudHM6IFNlY3Rpb25Db21tZW50W107XG5cbiAgLyoqIEZ1bGwgc291cmNlIHRleHQgZm9yIHRoZSBhbmFseXplZCBmaWxlLiAqL1xuICBzb3VyY2VUZXh0OiBzdHJpbmc7XG5cbiAgLyoqIFN0YXRlbWVudHMgcGFpcmVkIHdpdGggdGhlaXIgcmVzb2x2ZWQgQUFBIHBoYXNlcy4gKi9cbiAgc3RhdGVtZW50czogU3RhdGVtZW50UGhhc2VbXTtcbn1cblxuZXhwb3J0IHR5cGUge1xuICBBYWFQaGFzZSxcbiAgTG9jYXRlZENvbW1lbnQsXG4gIExvY2F0ZWROb2RlLFxuICBTZWN0aW9uQ29tbWVudCxcbiAgU291cmNlQ29tbWVudCxcbiAgU3RhdGVtZW50UGhhc2UsXG4gIFRlc3RCbG9ja0FuYWx5c2lzLFxufTtcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export { assertActualExpectedNamesRule } from "./rule.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/assert-actual-expected-names/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,QAAQ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { assertActualExpectedNamesRule } from "./rule.js";
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3RpbmcvYXNzZXJ0LWFjdHVhbC1leHBlY3RlZC1uYW1lcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBhc3NlcnRBY3R1YWxFeHBlY3RlZE5hbWVzUnVsZSB9IGZyb20gXCIuL3J1bGVcIjtcbiJdfQ==
@@ -1,4 +1,5 @@
1
1
  import type { Rule } from "eslint";
2
+ /** Enforces actual/expected-style prefixes for assert-phase comparison variables. */
2
3
  declare const assertActualExpectedNamesRule: Rule.RuleModule;
3
4
  export { assertActualExpectedNamesRule };
4
5
  //# sourceMappingURL=rule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/assert-actual-expected-names/rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAsInC,qFAAqF;AACrF,QAAA,MAAM,6BAA6B,EAAE,IAAI,CAAC,UAwCzC,CAAC;AAEF,OAAO,EAAE,6BAA6B,EAAE,CAAC"}