@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
@@ -1,145 +0,0 @@
1
- import fs from "node:fs";
2
- import path from "node:path";
3
- import { isLintableFilename, isPathMatch, isTypeScriptFile, TYPESCRIPT_EXTENSION, } from "./require-test-companion-options";
4
- /**
5
- * Gets the test suffix for a file name when present.
6
- * @param basename Input basename value.
7
- * @param testSuffixes Input testSuffixes value.
8
- * @returns Matched test suffix when present.
9
- * @example
10
- * ```typescript
11
- * const suffix = getTestSuffix("feature.spec.ts", ["spec"]);
12
- * ```
13
- */
14
- const getTestSuffix = (basename, testSuffixes) => testSuffixes.find((suffix) => basename.endsWith(`.${suffix}${TYPESCRIPT_EXTENSION}`));
15
- /**
16
- * Checks for any test companion file in the directory.
17
- * @param directory Input directory value.
18
- * @param baseStem Input baseStem value.
19
- * @param testSuffixes Input testSuffixes value.
20
- * @returns True when any test companion exists.
21
- * @example
22
- * ```typescript
23
- * const ok = hasAnyTestCompanion(dir, "feature", ["spec"]);
24
- * ```
25
- */
26
- const hasAnyTestCompanion = (directory, baseStem, testSuffixes) => testSuffixes.some((suffix) => fs.existsSync(path.join(directory, `${baseStem}.${suffix}.ts`)));
27
- /**
28
- * Builds a listener that reports missing test companions.
29
- * @param context Input context value.
30
- * @param options Input options value.
31
- * @returns Rule listener for missing tests.
32
- * @example
33
- * ```typescript
34
- * const listener = buildMissingTestListener(context, options);
35
- * ```
36
- */
37
- const buildMissingTestListener = (context, options) => {
38
- const { basename, directory, testSuffixes } = options;
39
- const baseStem = basename.slice(0, -TYPESCRIPT_EXTENSION.length);
40
- if (baseStem.length === 0) {
41
- return {};
42
- }
43
- if (hasAnyTestCompanion(directory, baseStem, testSuffixes)) {
44
- return {};
45
- }
46
- return {
47
- Program(node) {
48
- const testFiles = testSuffixes
49
- .map((suffix) => `${baseStem}.${suffix}${TYPESCRIPT_EXTENSION}`)
50
- .join(", ");
51
- context.report({
52
- data: { testFiles },
53
- messageId: "missingTest",
54
- node,
55
- });
56
- },
57
- };
58
- };
59
- /**
60
- * Builds a listener that reports missing source files.
61
- * @param context Input context value.
62
- * @param options Input options value.
63
- * @returns Rule listener for missing sources.
64
- * @example
65
- * ```typescript
66
- * const listener = buildMissingSourceListener(context, options);
67
- * ```
68
- */
69
- const buildMissingSourceListener = (context, options) => {
70
- const { basename, directory, suffix } = options;
71
- const sourceBasename = basename.slice(0, -`.${suffix}${TYPESCRIPT_EXTENSION}`.length);
72
- if (sourceBasename.length === 0) {
73
- return {};
74
- }
75
- const sourceFile = `${sourceBasename}${TYPESCRIPT_EXTENSION}`;
76
- if (fs.existsSync(path.join(directory, sourceFile))) {
77
- return {};
78
- }
79
- return {
80
- Program(node) {
81
- context.report({
82
- data: { sourceFile },
83
- messageId: "missingSource",
84
- node,
85
- });
86
- },
87
- };
88
- };
89
- /**
90
- * Determines whether a file should be linted.
91
- * @param filename Input filename value.
92
- * @param options Input options value.
93
- * @returns True when the file should be linted.
94
- * @example
95
- * ```typescript
96
- * const ok = shouldLintFile(filename, options);
97
- * ```
98
- */
99
- const shouldLintFile = (filename, options) => {
100
- const { enforceIn, ignorePatterns } = options;
101
- if (!isLintableFilename(filename)) {
102
- return false;
103
- }
104
- if (!isTypeScriptFile(filename)) {
105
- return false;
106
- }
107
- if (!isPathMatch(filename, enforceIn)) {
108
- return false;
109
- }
110
- return !isPathMatch(filename, ignorePatterns);
111
- };
112
- /**
113
- * Builds a listener for a specific filename.
114
- * @param context Input context value.
115
- * @param filename Input filename value.
116
- * @param options Input options value.
117
- * @returns Rule listener for the filename.
118
- * @example
119
- * ```typescript
120
- * const listener = buildListenerForFilename(context, filename, options);
121
- * ```
122
- */
123
- const buildListenerForFilename = (context, filename, options) => {
124
- if (!shouldLintFile(filename, options)) {
125
- return {};
126
- }
127
- const basename = path.basename(filename);
128
- const directory = path.dirname(filename);
129
- const { testSuffixes } = options;
130
- const testSuffix = getTestSuffix(basename, testSuffixes);
131
- if (testSuffix !== void 0) {
132
- return buildMissingSourceListener(context, {
133
- basename,
134
- directory,
135
- suffix: testSuffix,
136
- });
137
- }
138
- return buildMissingTestListener(context, {
139
- basename,
140
- directory,
141
- testSuffixes,
142
- });
143
- };
144
- export { buildListenerForFilename };
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWlyZS10ZXN0LWNvbXBhbmlvbi1saXN0ZW5lcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGVzdGluZy9yZXF1aXJlLXRlc3QtY29tcGFuaW9uL3JlcXVpcmUtdGVzdC1jb21wYW5pb24tbGlzdGVuZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN6QixPQUFPLElBQUksTUFBTSxXQUFXLENBQUM7QUFJN0IsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2hCLG9CQUFvQixHQUNyQixNQUFNLGtDQUFrQyxDQUFDO0FBMEIxQzs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLGFBQWEsR0FBRyxDQUNwQixRQUFnQixFQUNoQixZQUFzQixFQUNGLEVBQUUsQ0FDdEIsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQzNCLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxNQUFNLEdBQUcsb0JBQW9CLEVBQUUsQ0FBQyxDQUN2RCxDQUFDO0FBRUo7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQU0sbUJBQW1CLEdBQUcsQ0FDMUIsU0FBaUIsRUFDakIsUUFBZ0IsRUFDaEIsWUFBc0IsRUFDYixFQUFFLENBQ1gsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQzNCLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxRQUFRLElBQUksTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUNoRSxDQUFDO0FBRUo7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSx3QkFBd0IsR0FBRyxDQUMvQixPQUF5QixFQUN6QixPQUFtQyxFQUNoQixFQUFFO0lBQ3JCLE1BQU0sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxHQUFHLE9BQU8sQ0FBQztJQUN0RCxN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QUFFLENBQUM7SUFDWixDQUFDO0lBRUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN6QyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3pDLE1BQU0sRUFBRSxZQUFZLEVBQUUsR0FBRyxPQUFPLENBQUM7SUFDakMsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUV6RCxJQUFJLFVBQVUsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzFCLE9BQU8sMEJBQTBCLENBQUMsT0FBTyxFQUFFO1lBQ3pDLFFBQVE7WUFDUixTQUFTO1lBQ1QsTUFBTSxFQUFFLFVBQVU7U0FDbkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU8sd0JBQXdCLENBQUMsT0FBTyxFQUFFO1FBQ3ZDLFFBQVE7UUFDUixTQUFTO1FBQ1QsWUFBWTtLQUNiLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQztBQUVGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSdWxlIH0gZnJvbSBcImVzbGludFwiO1xuXG5pbXBvcnQgZnMgZnJvbSBcIm5vZGU6ZnNcIjtcbmltcG9ydCBwYXRoIGZyb20gXCJub2RlOnBhdGhcIjtcblxuaW1wb3J0IHR5cGUgeyBSZXF1aXJlVGVzdENvbXBhbmlvblN0YXRlIH0gZnJvbSBcIi4vcmVxdWlyZS10ZXN0LWNvbXBhbmlvbi1vcHRpb25zXCI7XG5cbmltcG9ydCB7XG4gIGlzTGludGFibGVGaWxlbmFtZSxcbiAgaXNQYXRoTWF0Y2gsXG4gIGlzVHlwZVNjcmlwdEZpbGUsXG4gIFRZUEVTQ1JJUFRfRVhURU5TSU9OLFxufSBmcm9tIFwiLi9yZXF1aXJlLXRlc3QtY29tcGFuaW9uLW9wdGlvbnNcIjtcblxuLyoqIFR5cGUgZGVmaW5pdGlvbiBmb3IgcnVsZSBkYXRhLiAqL1xuaW50ZXJmYWNlIE1pc3NpbmdTb3VyY2VMaXN0ZW5lck9wdGlvbnMge1xuICAvKiogQmFzZW5hbWUgZmllbGQgdmFsdWUuICovXG4gIGJhc2VuYW1lOiBzdHJpbmc7XG5cbiAgLyoqIERpcmVjdG9yeSBmaWVsZCB2YWx1ZS4gKi9cbiAgZGlyZWN0b3J5OiBzdHJpbmc7XG5cbiAgLyoqIFN1ZmZpeCBmaWVsZCB2YWx1ZS4gKi9cbiAgc3VmZml4OiBzdHJpbmc7XG59XG5cbi8qKiBUeXBlIGRlZmluaXRpb24gZm9yIHJ1bGUgZGF0YS4gKi9cbmludGVyZmFjZSBNaXNzaW5nVGVzdExpc3RlbmVyT3B0aW9ucyB7XG4gIC8qKiBCYXNlbmFtZSBmaWVsZCB2YWx1ZS4gKi9cbiAgYmFzZW5hbWU6IHN0cmluZztcblxuICAvKiogRGlyZWN0b3J5IGZpZWxkIHZhbHVlLiAqL1xuICBkaXJlY3Rvcnk6IHN0cmluZztcblxuICAvKiogVGVzdFN1ZmZpeGVzIGZpZWxkIHZhbHVlLiAqL1xuICB0ZXN0U3VmZml4ZXM6IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIEdldHMgdGhlIHRlc3Qgc3VmZml4IGZvciBhIGZpbGUgbmFtZSB3aGVuIHByZXNlbnQuXG4gKiBAcGFyYW0gYmFzZW5hbWUgSW5wdXQgYmFzZW5hbWUgdmFsdWUuXG4gKiBAcGFyYW0gdGVzdFN1ZmZpeGVzIElucHV0IHRlc3RTdWZmaXhlcyB2YWx1ZS5cbiAqIEByZXR1cm5zIE1hdGNoZWQgdGVzdCBzdWZmaXggd2hlbiBwcmVzZW50LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHN1ZmZpeCA9IGdldFRlc3RTdWZmaXgoXCJmZWF0dXJlLnNwZWMudHNcIiwgW1wic3BlY1wiXSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgZ2V0VGVzdFN1ZmZpeCA9IChcbiAgYmFzZW5hbWU6IHN0cmluZyxcbiAgdGVzdFN1ZmZpeGVzOiBzdHJpbmdbXSxcbik6IHN0cmluZyB8IHVuZGVmaW5lZCA9PlxuICB0ZXN0U3VmZml4ZXMuZmluZCgoc3VmZml4KSA9PlxuICAgIGJhc2VuYW1lLmVuZHNXaXRoKGAuJHtzdWZmaXh9JHtUWVBFU0NSSVBUX0VYVEVOU0lPTn1gKSxcbiAgKTtcblxuLyoqXG4gKiBDaGVja3MgZm9yIGFueSB0ZXN0IGNvbXBhbmlvbiBmaWxlIGluIHRoZSBkaXJlY3RvcnkuXG4gKiBAcGFyYW0gZGlyZWN0b3J5IElucHV0IGRpcmVjdG9yeSB2YWx1ZS5cbiAqIEBwYXJhbSBiYXNlU3RlbSBJbnB1dCBiYXNlU3RlbSB2YWx1ZS5cbiAqIEBwYXJhbSB0ZXN0U3VmZml4ZXMgSW5wdXQgdGVzdFN1ZmZpeGVzIHZhbHVlLlxuICogQHJldHVybnMgVHJ1ZSB3aGVuIGFueSB0ZXN0IGNvbXBhbmlvbiBleGlzdHMuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgb2sgPSBoYXNBbnlUZXN0Q29tcGFuaW9uKGRpciwgXCJmZWF0dXJlXCIsIFtcInNwZWNcIl0pO1xuICogYGBgXG4gKi9cbmNvbnN0IGhhc0FueVRlc3RDb21wYW5pb24gPSAoXG4gIGRpcmVjdG9yeTogc3RyaW5nLFxuICBiYXNlU3RlbTogc3RyaW5nLFxuICB0ZXN0U3VmZml4ZXM6IHN0cmluZ1tdLFxuKTogYm9vbGVhbiA9PlxuICB0ZXN0U3VmZml4ZXMuc29tZSgoc3VmZml4KSA9PlxuICAgIGZzLmV4aXN0c1N5bmMocGF0aC5qb2luKGRpcmVjdG9yeSwgYCR7YmFzZVN0ZW19LiR7c3VmZml4fS50c2ApKSxcbiAgKTtcblxuLyoqXG4gKiBCdWlsZHMgYSBsaXN0ZW5lciB0aGF0IHJlcG9ydHMgbWlzc2luZyB0ZXN0IGNvbXBhbmlvbnMuXG4gKiBAcGFyYW0gY29udGV4dCBJbnB1dCBjb250ZXh0IHZhbHVlLlxuICogQHBhcmFtIG9wdGlvbnMgSW5wdXQgb3B0aW9ucyB2YWx1ZS5cbiAqIEByZXR1cm5zIFJ1bGUgbGlzdGVuZXIgZm9yIG1pc3NpbmcgdGVzdHMuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgbGlzdGVuZXIgPSBidWlsZE1pc3NpbmdUZXN0TGlzdGVuZXIoY29udGV4dCwgb3B0aW9ucyk7XG4gKiBgYGBcbiAqL1xuY29uc3QgYnVpbGRNaXNzaW5nVGVzdExpc3RlbmVyID0gKFxuICBjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0LFxuICBvcHRpb25zOiBNaXNzaW5nVGVzdExpc3RlbmVyT3B0aW9ucyxcbik6IFJ1bGUuUnVsZUxpc3RlbmVyID0+IHtcbiAgY29uc3QgeyBiYXNlbmFtZSwgZGlyZWN0b3J5LCB0ZXN0U3VmZml4ZXMgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IGJhc2VTdGVtID0gYmFzZW5hbWUuc2xpY2UoMCwgLVRZUEVTQ1JJUFRfRVhURU5TSU9OLmxlbmd0aCk7XG5cbiAgaWYgKGJhc2VTdGVtLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIGlmIChoYXNBbnlUZXN0Q29tcGFuaW9uKGRpcmVjdG9yeSwgYmFzZVN0ZW0sIHRlc3RTdWZmaXhlcykpIHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICByZXR1cm4ge1xuICAgIFByb2dyYW0obm9kZSk6IHZvaWQge1xuICAgICAgY29uc3QgdGVzdEZpbGVzID0gdGVzdFN1ZmZpeGVzXG4gICAgICAgIC5tYXAoKHN1ZmZpeCkgPT4gYCR7YmFzZVN0ZW19LiR7c3VmZml4fSR7VFlQRVNDUklQVF9FWFRFTlNJT059YClcbiAgICAgICAgLmpvaW4oXCIsIFwiKTtcblxuICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICBkYXRhOiB7IHRlc3RGaWxlcyB9LFxuICAgICAgICBtZXNzYWdlSWQ6IFwibWlzc2luZ1Rlc3RcIixcbiAgICAgICAgbm9kZSxcbiAgICAgIH0pO1xuICAgIH0sXG4gIH07XG59O1xuXG4vKipcbiAqIEJ1aWxkcyBhIGxpc3RlbmVyIHRoYXQgcmVwb3J0cyBtaXNzaW5nIHNvdXJjZSBmaWxlcy5cbiAqIEBwYXJhbSBjb250ZXh0IElucHV0IGNvbnRleHQgdmFsdWUuXG4gKiBAcGFyYW0gb3B0aW9ucyBJbnB1dCBvcHRpb25zIHZhbHVlLlxuICogQHJldHVybnMgUnVsZSBsaXN0ZW5lciBmb3IgbWlzc2luZyBzb3VyY2VzLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGxpc3RlbmVyID0gYnVpbGRNaXNzaW5nU291cmNlTGlzdGVuZXIoY29udGV4dCwgb3B0aW9ucyk7XG4gKiBgYGBcbiAqL1xuY29uc3QgYnVpbGRNaXNzaW5nU291cmNlTGlzdGVuZXIgPSAoXG4gIGNvbnRleHQ6IFJ1bGUuUnVsZUNvbnRleHQsXG4gIG9wdGlvbnM6IE1pc3NpbmdTb3VyY2VMaXN0ZW5lck9wdGlvbnMsXG4pOiBSdWxlLlJ1bGVMaXN0ZW5lciA9PiB7XG4gIGNvbnN0IHsgYmFzZW5hbWUsIGRpcmVjdG9yeSwgc3VmZml4IH0gPSBvcHRpb25zO1xuICBjb25zdCBzb3VyY2VCYXNlbmFtZSA9IGJhc2VuYW1lLnNsaWNlKFxuICAgIDAsXG4gICAgLWAuJHtzdWZmaXh9JHtUWVBFU0NSSVBUX0VYVEVOU0lPTn1gLmxlbmd0aCxcbiAgKTtcblxuICBpZiAoc291cmNlQmFzZW5hbWUubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgY29uc3Qgc291cmNlRmlsZSA9IGAke3NvdXJjZUJhc2VuYW1lfSR7VFlQRVNDUklQVF9FWFRFTlNJT059YDtcblxuICBpZiAoZnMuZXhpc3RzU3luYyhwYXRoLmpvaW4oZGlyZWN0b3J5LCBzb3VyY2VGaWxlKSkpIHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICByZXR1cm4ge1xuICAgIFByb2dyYW0obm9kZSk6IHZvaWQge1xuICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICBkYXRhOiB7IHNvdXJjZUZpbGUgfSxcbiAgICAgICAgbWVzc2FnZUlkOiBcIm1pc3NpbmdTb3VyY2VcIixcbiAgICAgICAgbm9kZSxcbiAgICAgIH0pO1xuICAgIH0sXG4gIH07XG59O1xuXG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciBhIGZpbGUgc2hvdWxkIGJlIGxpbnRlZC5cbiAqIEBwYXJhbSBmaWxlbmFtZSBJbnB1dCBmaWxlbmFtZSB2YWx1ZS5cbiAqIEBwYXJhbSBvcHRpb25zIElucHV0IG9wdGlvbnMgdmFsdWUuXG4gKiBAcmV0dXJucyBUcnVlIHdoZW4gdGhlIGZpbGUgc2hvdWxkIGJlIGxpbnRlZC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBvayA9IHNob3VsZExpbnRGaWxlKGZpbGVuYW1lLCBvcHRpb25zKTtcbiAqIGBgYFxuICovXG5jb25zdCBzaG91bGRMaW50RmlsZSA9IChcbiAgZmlsZW5hbWU6IHN0cmluZyxcbiAgb3B0aW9uczogUmVxdWlyZVRlc3RDb21wYW5pb25TdGF0ZSxcbik6IGJvb2xlYW4gPT4ge1xuICBjb25zdCB7IGVuZm9yY2VJbiwgaWdub3JlUGF0dGVybnMgfSA9IG9wdGlvbnM7XG5cbiAgaWYgKCFpc0xpbnRhYmxlRmlsZW5hbWUoZmlsZW5hbWUpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCFpc1R5cGVTY3JpcHRGaWxlKGZpbGVuYW1lKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghaXNQYXRoTWF0Y2goZmlsZW5hbWUsIGVuZm9yY2VJbikpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gIWlzUGF0aE1hdGNoKGZpbGVuYW1lLCBpZ25vcmVQYXR0ZXJucyk7XG59O1xuXG4vKipcbiAqIEJ1aWxkcyBhIGxpc3RlbmVyIGZvciBhIHNwZWNpZmljIGZpbGVuYW1lLlxuICogQHBhcmFtIGNvbnRleHQgSW5wdXQgY29udGV4dCB2YWx1ZS5cbiAqIEBwYXJhbSBmaWxlbmFtZSBJbnB1dCBmaWxlbmFtZSB2YWx1ZS5cbiAqIEBwYXJhbSBvcHRpb25zIElucHV0IG9wdGlvbnMgdmFsdWUuXG4gKiBAcmV0dXJucyBSdWxlIGxpc3RlbmVyIGZvciB0aGUgZmlsZW5hbWUuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgbGlzdGVuZXIgPSBidWlsZExpc3RlbmVyRm9yRmlsZW5hbWUoY29udGV4dCwgZmlsZW5hbWUsIG9wdGlvbnMpO1xuICogYGBgXG4gKi9cbmNvbnN0IGJ1aWxkTGlzdGVuZXJGb3JGaWxlbmFtZSA9IChcbiAgY29udGV4dDogUnVsZS5SdWxlQ29udGV4dCxcbiAgZmlsZW5hbWU6IHN0cmluZyxcbiAgb3B0aW9uczogUmVxdWlyZVRlc3RDb21wYW5pb25TdGF0ZSxcbik6IFJ1bGUuUnVsZUxpc3RlbmVyID0+IHtcbiAgaWYgKCFzaG91bGRMaW50RmlsZShmaWxlbmFtZSwgb3B0aW9ucykpIHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICBjb25zdCBiYXNlbmFtZSA9IHBhdGguYmFzZW5hbWUoZmlsZW5hbWUpO1xuICBjb25zdCBkaXJlY3RvcnkgPSBwYXRoLmRpcm5hbWUoZmlsZW5hbWUpO1xuICBjb25zdCB7IHRlc3RTdWZmaXhlcyB9ID0gb3B0aW9ucztcbiAgY29uc3QgdGVzdFN1ZmZpeCA9IGdldFRlc3RTdWZmaXgoYmFzZW5hbWUsIHRlc3RTdWZmaXhlcyk7XG5cbiAgaWYgKHRlc3RTdWZmaXggIT09IHZvaWQgMCkge1xuICAgIHJldHVybiBidWlsZE1pc3NpbmdTb3VyY2VMaXN0ZW5lcihjb250ZXh0LCB7XG4gICAgICBiYXNlbmFtZSxcbiAgICAgIGRpcmVjdG9yeSxcbiAgICAgIHN1ZmZpeDogdGVzdFN1ZmZpeCxcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBidWlsZE1pc3NpbmdUZXN0TGlzdGVuZXIoY29udGV4dCwge1xuICAgIGJhc2VuYW1lLFxuICAgIGRpcmVjdG9yeSxcbiAgICB0ZXN0U3VmZml4ZXMsXG4gIH0pO1xufTtcblxuZXhwb3J0IHsgYnVpbGRMaXN0ZW5lckZvckZpbGVuYW1lIH07XG4iXX0=
@@ -1 +0,0 @@
1
- {"version":3,"file":"require-test-companion-options.d.ts","sourceRoot":"","sources":["../../../src/testing/require-test-companion/require-test-companion-options.ts"],"names":[],"mappings":"AAcA,6DAA6D;AAC7D,QAAA,MAAM,oBAAoB,QAAQ,CAAC;AAEnC,qCAAqC;AACrC,UAAU,yBAAyB;IACjC,6BAA6B;IAC7B,SAAS,EAAE,MAAM,EAAE,CAAC;IAEpB,kCAAkC;IAClC,cAAc,EAAE,MAAM,EAAE,CAAC;IAEzB,gCAAgC;IAChC,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;;;;;;;GAQG;AACH,QAAA,MAAM,kBAAkB,GAAI,UAAU,MAAM,KAAG,OACG,CAAC;AAEnD;;;;;;;;GAQG;AACH,QAAA,MAAM,gBAAgB,GAAI,UAAU,MAAM,KAAG,OAC2B,CAAC;AA+BzE;;;;;;;;GAQG;AACH,QAAA,MAAM,UAAU,GAAI,SAAS,SAAS,OAAO,EAAE,KAAG,yBAcjD,CAAC;AA0BF;;;;;;;;;GASG;AACH,QAAA,MAAM,WAAW,GAAI,UAAU,MAAM,EAAE,UAAU,MAAM,EAAE,KAAG,OAc3D,CAAC;AAEF,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,WAAW,EACX,gBAAgB,EAChB,KAAK,yBAAyB,EAC9B,oBAAoB,GACrB,CAAC"}
@@ -1,112 +0,0 @@
1
- import { minimatch } from "minimatch";
2
- import path from "node:path";
3
- /** Default value used by this module. */
4
- const DEFAULT_TEST_SUFFIXES = ["spec", "test"];
5
- /** Default value used by this module. */
6
- const DEFAULT_IGNORE_PATTERNS = ["/*.d.ts", "/index.ts"];
7
- /** Default folders where test companions are enforced. */
8
- const DEFAULT_ENFORCE_IN = ["src/**"];
9
- /** File extension used to detect TypeScript source files. */
10
- const TYPESCRIPT_EXTENSION = ".ts";
11
- /**
12
- * Checks isLintableFilename.
13
- * @param filename Input filename value.
14
- * @returns Return value output.
15
- * @example
16
- * ```typescript
17
- * isLintableFilename();
18
- * ```
19
- */
20
- const isLintableFilename = (filename) => filename.length > 0 && path.isAbsolute(filename);
21
- /**
22
- * Checks isTypeScriptFile.
23
- * @param filename Input filename value.
24
- * @returns Return value output.
25
- * @example
26
- * ```typescript
27
- * isTypeScriptFile();
28
- * ```
29
- */
30
- const isTypeScriptFile = (filename) => filename.endsWith(TYPESCRIPT_EXTENSION) && !filename.endsWith(".d.ts");
31
- /**
32
- * Normalizes a rule option into a string list.
33
- * @param value Input value value.
34
- * @param defaults Input defaults value.
35
- * @returns Normalized list of strings.
36
- * @example
37
- * ```typescript
38
- * const list = normalizeList("src/**", ["src/**"]);
39
- * ```
40
- */
41
- const normalizeList = (value, defaults) => {
42
- if (Array.isArray(value)) {
43
- return value
44
- .filter((entry) => typeof entry === "string")
45
- .map((entry) => entry.trim())
46
- .filter((entry) => entry.length > 0);
47
- }
48
- if (typeof value === "string") {
49
- const trimmed = value.trim();
50
- return trimmed.length === 0 ? [] : [trimmed];
51
- }
52
- return [...defaults];
53
- };
54
- /**
55
- * Gets getOptions.
56
- * @param options Input options value.
57
- * @returns Return value output.
58
- * @example
59
- * ```typescript
60
- * getOptions();
61
- * ```
62
- */
63
- const getOptions = (options) => {
64
- const rawOptions = options[0];
65
- return {
66
- enforceIn: normalizeList(rawOptions?.enforceIn, DEFAULT_ENFORCE_IN),
67
- ignorePatterns: normalizeList(rawOptions?.ignorePatterns, DEFAULT_IGNORE_PATTERNS),
68
- testSuffixes: normalizeList(rawOptions?.testSuffixes, DEFAULT_TEST_SUFFIXES),
69
- };
70
- };
71
- /**
72
- * Normalizes normalizeRelativePath.
73
- * @param filename Input filename value.
74
- * @returns Return value output.
75
- * @example
76
- * ```typescript
77
- * normalizeRelativePath();
78
- * ```
79
- */
80
- const normalizeRelativePath = (filename) => path.relative(process.cwd(), filename).split(path.sep).join("/");
81
- /**
82
- * Normalizes normalizePattern.
83
- * @param pattern Input pattern value.
84
- * @returns Return value output.
85
- * @example
86
- * ```typescript
87
- * normalizePattern();
88
- * ```
89
- */
90
- const normalizePattern = (pattern) => pattern.startsWith("/") ? `**${pattern}` : pattern;
91
- /**
92
- * Checks isPathMatch.
93
- * @param filename Input filename value.
94
- * @param patterns Input patterns value.
95
- * @returns Return value output.
96
- * @example
97
- * ```typescript
98
- * isPathMatch();
99
- * ```
100
- */
101
- const isPathMatch = (filename, patterns) => {
102
- if (patterns.length === 0) {
103
- return false;
104
- }
105
- const relativePath = normalizeRelativePath(filename);
106
- if (relativePath.startsWith("..") || path.isAbsolute(relativePath)) {
107
- return false;
108
- }
109
- return patterns.some((pattern) => minimatch(relativePath, normalizePattern(pattern), { dot: true }));
110
- };
111
- export { getOptions, isLintableFilename, isPathMatch, isTypeScriptFile, TYPESCRIPT_EXTENSION, };
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWlyZS10ZXN0LWNvbXBhbmlvbi1vcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Rlc3RpbmcvcmVxdWlyZS10ZXN0LWNvbXBhbmlvbi9yZXF1aXJlLXRlc3QtY29tcGFuaW9uLW9wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN0QyxPQUFPLElBQUksTUFBTSxXQUFXLENBQUM7QUFJN0IseUNBQXlDO0FBQ3pDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFVLENBQUM7QUFFeEQseUNBQXlDO0FBQ3pDLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFVLENBQUM7QUFFbEUsMERBQTBEO0FBQzFELE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxRQUFRLENBQVUsQ0FBQztBQUUvQyw2REFBNkQ7QUFDN0QsTUFBTSxvQkFBb0IsR0FBRyxLQUFLLENBQUM7QUFjbkM7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLGtCQUFrQixHQUFHLENBQUMsUUFBZ0IsRUFBVyxFQUFFLENBQ3ZELFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7QUFFbkQ7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLGdCQUFnQixHQUFHLENBQUMsUUFBZ0IsRUFBVyxFQUFFLENBQ3JELFFBQVEsQ0FBQyxRQUFRLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7QUFFekU7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxhQUFhLEdBQUcsQ0FDcEIsS0FBcUUsRUFDckUsUUFBMkIsRUFDakIsRUFBRTtJQUNaLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3pCLE9BQU8sS0FBSzthQUNULE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBbUIsRUFBRSxDQUFDLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQzthQUM3RCxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUM1QixNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDOUIsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzdCLE9BQU8sT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsT0FBTyxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUM7QUFDdkIsQ0FBQyxDQUFDO0FBRUY7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsR0FBRyxDQUFDLE9BQTJCLEVBQTZCLEVBQUU7SUFDNUUsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBNEMsQ0FBQztJQUV6RSxPQUFPO1FBQ0wsU0FBUyxFQUFFLGFBQWEsQ0FBQyxVQUFVLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixDQUFDO1FBQ25FLGNBQWMsRUFBRSxhQUFhLENBQzNCLFVBQVUsRUFBRSxjQUFjLEVBQzFCLHVCQUF1QixDQUN4QjtRQUNELFlBQVksRUFBRSxhQUFhLENBQ3pCLFVBQVUsRUFBRSxZQUFZLEVBQ3hCLHFCQUFxQixDQUN0QjtLQUNGLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxRQUFnQixFQUFVLEVBQUUsQ0FDekQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFFbkU7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLGdCQUFnQixHQUFHLENBQUMsT0FBZSxFQUFVLEVBQUUsQ0FDbkQsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0FBRXJEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sV0FBVyxHQUFHLENBQUMsUUFBZ0IsRUFBRSxRQUFrQixFQUFXLEVBQUU7SUFDcEUsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzFCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE1BQU0sWUFBWSxHQUFHLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRXJELElBQUksWUFBWSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7UUFDbkUsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FDL0IsU0FBUyxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUNsRSxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsT0FBTyxFQUNMLFVBQVUsRUFDVixrQkFBa0IsRUFDbEIsV0FBVyxFQUNYLGdCQUFnQixFQUVoQixvQkFBb0IsR0FDckIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1pbmltYXRjaCB9IGZyb20gXCJtaW5pbWF0Y2hcIjtcbmltcG9ydCBwYXRoIGZyb20gXCJub2RlOnBhdGhcIjtcblxuaW1wb3J0IHR5cGUgeyBSZXF1aXJlVGVzdENvbXBhbmlvbk9wdGlvbnMgfSBmcm9tIFwiLi90eXBlc1wiO1xuXG4vKiogRGVmYXVsdCB2YWx1ZSB1c2VkIGJ5IHRoaXMgbW9kdWxlLiAqL1xuY29uc3QgREVGQVVMVF9URVNUX1NVRkZJWEVTID0gW1wic3BlY1wiLCBcInRlc3RcIl0gYXMgY29uc3Q7XG5cbi8qKiBEZWZhdWx0IHZhbHVlIHVzZWQgYnkgdGhpcyBtb2R1bGUuICovXG5jb25zdCBERUZBVUxUX0lHTk9SRV9QQVRURVJOUyA9IFtcIi8qLmQudHNcIiwgXCIvaW5kZXgudHNcIl0gYXMgY29uc3Q7XG5cbi8qKiBEZWZhdWx0IGZvbGRlcnMgd2hlcmUgdGVzdCBjb21wYW5pb25zIGFyZSBlbmZvcmNlZC4gKi9cbmNvbnN0IERFRkFVTFRfRU5GT1JDRV9JTiA9IFtcInNyYy8qKlwiXSBhcyBjb25zdDtcblxuLyoqIEZpbGUgZXh0ZW5zaW9uIHVzZWQgdG8gZGV0ZWN0IFR5cGVTY3JpcHQgc291cmNlIGZpbGVzLiAqL1xuY29uc3QgVFlQRVNDUklQVF9FWFRFTlNJT04gPSBcIi50c1wiO1xuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG5pbnRlcmZhY2UgUmVxdWlyZVRlc3RDb21wYW5pb25TdGF0ZSB7XG4gIC8qKiBFbmZvcmNlSW4gZmllbGQgdmFsdWUuICovXG4gIGVuZm9yY2VJbjogc3RyaW5nW107XG5cbiAgLyoqIElnbm9yZVBhdHRlcm5zIGZpZWxkIHZhbHVlLiAqL1xuICBpZ25vcmVQYXR0ZXJuczogc3RyaW5nW107XG5cbiAgLyoqIFRlc3RTdWZmaXhlcyBmaWVsZCB2YWx1ZS4gKi9cbiAgdGVzdFN1ZmZpeGVzOiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBDaGVja3MgaXNMaW50YWJsZUZpbGVuYW1lLlxuICogQHBhcmFtIGZpbGVuYW1lIElucHV0IGZpbGVuYW1lIHZhbHVlLlxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBpc0xpbnRhYmxlRmlsZW5hbWUoKTtcbiAqIGBgYFxuICovXG5jb25zdCBpc0xpbnRhYmxlRmlsZW5hbWUgPSAoZmlsZW5hbWU6IHN0cmluZyk6IGJvb2xlYW4gPT5cbiAgZmlsZW5hbWUubGVuZ3RoID4gMCAmJiBwYXRoLmlzQWJzb2x1dGUoZmlsZW5hbWUpO1xuXG4vKipcbiAqIENoZWNrcyBpc1R5cGVTY3JpcHRGaWxlLlxuICogQHBhcmFtIGZpbGVuYW1lIElucHV0IGZpbGVuYW1lIHZhbHVlLlxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBpc1R5cGVTY3JpcHRGaWxlKCk7XG4gKiBgYGBcbiAqL1xuY29uc3QgaXNUeXBlU2NyaXB0RmlsZSA9IChmaWxlbmFtZTogc3RyaW5nKTogYm9vbGVhbiA9PlxuICBmaWxlbmFtZS5lbmRzV2l0aChUWVBFU0NSSVBUX0VYVEVOU0lPTikgJiYgIWZpbGVuYW1lLmVuZHNXaXRoKFwiLmQudHNcIik7XG5cbi8qKlxuICogTm9ybWFsaXplcyBhIHJ1bGUgb3B0aW9uIGludG8gYSBzdHJpbmcgbGlzdC5cbiAqIEBwYXJhbSB2YWx1ZSBJbnB1dCB2YWx1ZSB2YWx1ZS5cbiAqIEBwYXJhbSBkZWZhdWx0cyBJbnB1dCBkZWZhdWx0cyB2YWx1ZS5cbiAqIEByZXR1cm5zIE5vcm1hbGl6ZWQgbGlzdCBvZiBzdHJpbmdzLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGxpc3QgPSBub3JtYWxpemVMaXN0KFwic3JjLyoqXCIsIFtcInNyYy8qKlwiXSk7XG4gKiBgYGBcbiAqL1xuY29uc3Qgbm9ybWFsaXplTGlzdCA9IChcbiAgdmFsdWU6IFJlcXVpcmVUZXN0Q29tcGFuaW9uT3B0aW9uc1trZXlvZiBSZXF1aXJlVGVzdENvbXBhbmlvbk9wdGlvbnNdLFxuICBkZWZhdWx0czogcmVhZG9ubHkgc3RyaW5nW10sXG4pOiBzdHJpbmdbXSA9PiB7XG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZVxuICAgICAgLmZpbHRlcigoZW50cnkpOiBlbnRyeSBpcyBzdHJpbmcgPT4gdHlwZW9mIGVudHJ5ID09PSBcInN0cmluZ1wiKVxuICAgICAgLm1hcCgoZW50cnkpID0+IGVudHJ5LnRyaW0oKSlcbiAgICAgIC5maWx0ZXIoKGVudHJ5KSA9PiBlbnRyeS5sZW5ndGggPiAwKTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICBjb25zdCB0cmltbWVkID0gdmFsdWUudHJpbSgpO1xuICAgIHJldHVybiB0cmltbWVkLmxlbmd0aCA9PT0gMCA/IFtdIDogW3RyaW1tZWRdO1xuICB9XG5cbiAgcmV0dXJuIFsuLi5kZWZhdWx0c107XG59O1xuXG4vKipcbiAqIEdldHMgZ2V0T3B0aW9ucy5cbiAqIEBwYXJhbSBvcHRpb25zIElucHV0IG9wdGlvbnMgdmFsdWUuXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGdldE9wdGlvbnMoKTtcbiAqIGBgYFxuICovXG5jb25zdCBnZXRPcHRpb25zID0gKG9wdGlvbnM6IHJlYWRvbmx5IHVua25vd25bXSk6IFJlcXVpcmVUZXN0Q29tcGFuaW9uU3RhdGUgPT4ge1xuICBjb25zdCByYXdPcHRpb25zID0gb3B0aW9uc1swXSBhcyBSZXF1aXJlVGVzdENvbXBhbmlvbk9wdGlvbnMgfCB1bmRlZmluZWQ7XG5cbiAgcmV0dXJuIHtcbiAgICBlbmZvcmNlSW46IG5vcm1hbGl6ZUxpc3QocmF3T3B0aW9ucz8uZW5mb3JjZUluLCBERUZBVUxUX0VORk9SQ0VfSU4pLFxuICAgIGlnbm9yZVBhdHRlcm5zOiBub3JtYWxpemVMaXN0KFxuICAgICAgcmF3T3B0aW9ucz8uaWdub3JlUGF0dGVybnMsXG4gICAgICBERUZBVUxUX0lHTk9SRV9QQVRURVJOUyxcbiAgICApLFxuICAgIHRlc3RTdWZmaXhlczogbm9ybWFsaXplTGlzdChcbiAgICAgIHJhd09wdGlvbnM/LnRlc3RTdWZmaXhlcyxcbiAgICAgIERFRkFVTFRfVEVTVF9TVUZGSVhFUyxcbiAgICApLFxuICB9O1xufTtcblxuLyoqXG4gKiBOb3JtYWxpemVzIG5vcm1hbGl6ZVJlbGF0aXZlUGF0aC5cbiAqIEBwYXJhbSBmaWxlbmFtZSBJbnB1dCBmaWxlbmFtZSB2YWx1ZS5cbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogbm9ybWFsaXplUmVsYXRpdmVQYXRoKCk7XG4gKiBgYGBcbiAqL1xuY29uc3Qgbm9ybWFsaXplUmVsYXRpdmVQYXRoID0gKGZpbGVuYW1lOiBzdHJpbmcpOiBzdHJpbmcgPT5cbiAgcGF0aC5yZWxhdGl2ZShwcm9jZXNzLmN3ZCgpLCBmaWxlbmFtZSkuc3BsaXQocGF0aC5zZXApLmpvaW4oXCIvXCIpO1xuXG4vKipcbiAqIE5vcm1hbGl6ZXMgbm9ybWFsaXplUGF0dGVybi5cbiAqIEBwYXJhbSBwYXR0ZXJuIElucHV0IHBhdHRlcm4gdmFsdWUuXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIG5vcm1hbGl6ZVBhdHRlcm4oKTtcbiAqIGBgYFxuICovXG5jb25zdCBub3JtYWxpemVQYXR0ZXJuID0gKHBhdHRlcm46IHN0cmluZyk6IHN0cmluZyA9PlxuICBwYXR0ZXJuLnN0YXJ0c1dpdGgoXCIvXCIpID8gYCoqJHtwYXR0ZXJufWAgOiBwYXR0ZXJuO1xuXG4vKipcbiAqIENoZWNrcyBpc1BhdGhNYXRjaC5cbiAqIEBwYXJhbSBmaWxlbmFtZSBJbnB1dCBmaWxlbmFtZSB2YWx1ZS5cbiAqIEBwYXJhbSBwYXR0ZXJucyBJbnB1dCBwYXR0ZXJucyB2YWx1ZS5cbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogaXNQYXRoTWF0Y2goKTtcbiAqIGBgYFxuICovXG5jb25zdCBpc1BhdGhNYXRjaCA9IChmaWxlbmFtZTogc3RyaW5nLCBwYXR0ZXJuczogc3RyaW5nW10pOiBib29sZWFuID0+IHtcbiAgaWYgKHBhdHRlcm5zLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IHJlbGF0aXZlUGF0aCA9IG5vcm1hbGl6ZVJlbGF0aXZlUGF0aChmaWxlbmFtZSk7XG5cbiAgaWYgKHJlbGF0aXZlUGF0aC5zdGFydHNXaXRoKFwiLi5cIikgfHwgcGF0aC5pc0Fic29sdXRlKHJlbGF0aXZlUGF0aCkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gcGF0dGVybnMuc29tZSgocGF0dGVybikgPT5cbiAgICBtaW5pbWF0Y2gocmVsYXRpdmVQYXRoLCBub3JtYWxpemVQYXR0ZXJuKHBhdHRlcm4pLCB7IGRvdDogdHJ1ZSB9KSxcbiAgKTtcbn07XG5cbmV4cG9ydCB7XG4gIGdldE9wdGlvbnMsXG4gIGlzTGludGFibGVGaWxlbmFtZSxcbiAgaXNQYXRoTWF0Y2gsXG4gIGlzVHlwZVNjcmlwdEZpbGUsXG4gIHR5cGUgUmVxdWlyZVRlc3RDb21wYW5pb25TdGF0ZSxcbiAgVFlQRVNDUklQVF9FWFRFTlNJT04sXG59O1xuIl19
@@ -1 +0,0 @@
1
- {"version":3,"file":"require-test-companion-test-helpers.d.ts","sourceRoot":"","sources":["../../../src/testing/require-test-companion/require-test-companion-test-helpers.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAC;AAU3D,qCAAqC;AACrC,UAAU,UAAU;IAClB,8BAA8B;IAC9B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAgCD;;;;;;;;;GASG;AACH,QAAA,MAAM,mBAAmB,GAAI,MAAM,KAAK,GAAG,KAAK,EAAE,UAAU,MAAM,KAAG,MAMpE,CAAC;AAyBF;;;;;;;;;;;GAWG;AACH,QAAA,MAAM,mBAAmB,GACvB,MAAM,KAAK,GAAG,KAAK,EACnB,OAAO,MAAM,EACb,QAAQ,MAAM,KACb,CAAC,MAAM,EAAE,MAAM,CAOjB,CAAC;AA2EF;;;;;;;;;GASG;AACH,QAAA,MAAM,OAAO,GACX,UAAU,MAAM,EAChB,UAAU,2BAA2B,KACpC,UAAU,EAUZ,CAAC;AAEF;;;;;;GAMG;AACH,QAAA,MAAM,2BAA2B,QAAO,IAIvC,CAAC;AAEF,OAAO,EACL,2BAA2B,EAC3B,mBAAmB,EACnB,mBAAmB,EACnB,OAAO,GACR,CAAC"}
@@ -1,183 +0,0 @@
1
- import { SourceCode } from "eslint";
2
- import fs from "node:fs";
3
- import path from "node:path";
4
- import { requireTestCompanionRule } from "./rule";
5
- /** Tracks temporary directories so tests can clean them up. */
6
- const temporaryDirectories = [];
7
- /**
8
- * Creates createRepoDirectory.
9
- * @param root Input root value.
10
- * @returns Return value output.
11
- * @example
12
- * ```typescript
13
- * createRepoDirectory();
14
- * ```
15
- */
16
- const createRepoDirectory = (root) => {
17
- const baseDirectory = path.join(process.cwd(), root);
18
- fs.mkdirSync(baseDirectory, { recursive: true });
19
- return fs.mkdtempSync(path.join(baseDirectory, "test-companion-"));
20
- };
21
- /**
22
- * Writes a simple TypeScript file at the provided path.
23
- * @param filePath Input filePath value.
24
- * @example
25
- * ```typescript
26
- * writeFile("/tmp/feature.ts");
27
- * ```
28
- */
29
- const writeFile = (filePath) => {
30
- fs.writeFileSync(filePath, "export const value = 1;", "utf8");
31
- };
32
- /**
33
- * Creates createTemporaryFile.
34
- * @param root Input root value.
35
- * @param filename Input filename value.
36
- * @returns Return value output.
37
- * @example
38
- * ```typescript
39
- * createTemporaryFile();
40
- * ```
41
- */
42
- const createTemporaryFile = (root, filename) => {
43
- const directory = createRepoDirectory(root);
44
- temporaryDirectories.push(directory);
45
- const filePath = path.join(directory, filename);
46
- writeFile(filePath);
47
- return filePath;
48
- };
49
- /**
50
- * Creates multiple temporary files under the given root.
51
- * @param root Input root value.
52
- * @param filenames Input filenames value.
53
- * @returns Paths to the created files.
54
- * @example
55
- * ```typescript
56
- * const paths = createTemporaryFiles("tmp", ["a.ts", "b.ts"]);
57
- * ```
58
- */
59
- const createTemporaryFiles = (root, filenames) => {
60
- const directory = createRepoDirectory(root);
61
- temporaryDirectories.push(directory);
62
- return filenames.map((filename) => {
63
- const filePath = path.join(directory, filename);
64
- writeFile(filePath);
65
- return filePath;
66
- });
67
- };
68
- /**
69
- * Creates a temporary file pair for test/source combinations.
70
- * @param root Input root value.
71
- * @param first Input first value.
72
- * @param second Input second value.
73
- * @returns Tuple of created file paths.
74
- * @throws {Error} When the file paths are missing.
75
- * @example
76
- * ```typescript
77
- * const [source, test] = createTemporaryPair("tmp", "a.ts", "a.spec.ts");
78
- * ```
79
- */
80
- const createTemporaryPair = (root, first, second) => {
81
- const [firstPath, secondPath] = createTemporaryFiles(root, [
82
- first,
83
- second,
84
- ]);
85
- return [firstPath, secondPath];
86
- };
87
- /**
88
- * Creates createProgramAst.
89
- * @returns Return value output.
90
- * @example
91
- * ```typescript
92
- * createProgramAst();
93
- * ```
94
- */
95
- const createProgramAst = () => ({
96
- body: [],
97
- comments: [],
98
- loc: {
99
- end: { column: 0, line: 1 },
100
- start: { column: 0, line: 1 },
101
- },
102
- range: [0, 0],
103
- sourceType: "module",
104
- tokens: [],
105
- type: "Program",
106
- });
107
- /**
108
- * Creates a rule context for the given filename.
109
- * @param filename Input filename value.
110
- * @param reports Input reports value.
111
- * @param sourceCode Input sourceCode value.
112
- * @returns Rule context for tests.
113
- * @example
114
- * ```typescript
115
- * const context = createRuleContext(file, reports, sourceCode);
116
- * ```
117
- */
118
- const createRuleContext = (filename, reports, sourceCode) => ({
119
- cwd: process.cwd(),
120
- filename,
121
- id: "require-test-companion",
122
- languageOptions: {
123
- ecmaVersion: "latest",
124
- sourceType: "module",
125
- },
126
- options: [],
127
- parserOptions: {},
128
- parserPath: void 0,
129
- physicalFilename: filename,
130
- report: (report) => {
131
- const { messageId } = report;
132
- reports.push({ messageId });
133
- },
134
- settings: {},
135
- sourceCode,
136
- });
137
- /**
138
- * Runs the rule listeners for a context.
139
- * @param context Input context value.
140
- * @example
141
- * ```typescript
142
- * runListeners(context);
143
- * ```
144
- */
145
- const runListeners = (context) => {
146
- const listeners = requireTestCompanionRule.create(context);
147
- const programNode = context.sourceCode.ast;
148
- const programListener = listeners.Program;
149
- programListener?.(programNode);
150
- };
151
- /**
152
- * Runs the rule with the given options.
153
- * @param filename Input filename value.
154
- * @param options Input options value.
155
- * @returns Collected rule reports.
156
- * @example
157
- * ```typescript
158
- * const reports = runRule("/tmp/feature.ts");
159
- * ```
160
- */
161
- const runRule = (filename, options) => {
162
- const reports = [];
163
- const programAst = createProgramAst();
164
- const sourceCode = new SourceCode("", programAst);
165
- const context = createRuleContext(filename, reports, sourceCode);
166
- context.options = options === void 0 ? [] : [options];
167
- runListeners(context);
168
- return reports;
169
- };
170
- /**
171
- * Cleans up temporary directories created by tests.
172
- * @example
173
- * ```typescript
174
- * cleanupTemporaryDirectories();
175
- * ```
176
- */
177
- const cleanupTemporaryDirectories = () => {
178
- for (const directory of temporaryDirectories.splice(0)) {
179
- fs.rmSync(directory, { force: true, recursive: true });
180
- }
181
- };
182
- export { cleanupTemporaryDirectories, createTemporaryFile, createTemporaryPair, runRule, };
183
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWlyZS10ZXN0LWNvbXBhbmlvbi10ZXN0LWhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGVzdGluZy9yZXF1aXJlLXRlc3QtY29tcGFuaW9uL3JlcXVpcmUtdGVzdC1jb21wYW5pb24tdGVzdC1oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDcEMsT0FBTyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3pCLE9BQU8sSUFBSSxNQUFNLFdBQVcsQ0FBQztBQUk3QixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFjbEQsK0RBQStEO0FBQy9ELE1BQU0sb0JBQW9CLEdBQWEsRUFBRSxDQUFDO0FBRTFDOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLElBQW1CLEVBQVUsRUFBRTtJQUMxRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNyRCxFQUFFLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2pELE9BQU8sRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7QUFDckUsQ0FBQyxDQUFDO0FBRUY7Ozs7Ozs7R0FPRztBQUNILE1BQU0sU0FBUyxHQUFHLENBQUMsUUFBZ0IsRUFBUSxFQUFFO0lBQzNDLEVBQUUsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLHlCQUF5QixFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ2hFLENBQUMsQ0FBQztBQUVGOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxJQUFtQixFQUFFLFFBQWdCLEVB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QUNSLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFTVCwgUnVsZSB9IGZyb20gXCJlc2xpbnRcIjtcblxuaW1wb3J0IHsgU291cmNlQ29kZSB9IGZyb20gXCJlc2xpbnRcIjtcbmltcG9ydCBmcyBmcm9tIFwibm9kZTpmc1wiO1xuaW1wb3J0IHBhdGggZnJvbSBcIm5vZGU6cGF0aFwiO1xuXG5pbXBvcnQgdHlwZSB7IFJlcXVpcmVUZXN0Q29tcGFuaW9uT3B0aW9ucyB9IGZyb20gXCIuL3R5cGVzXCI7XG5cbmltcG9ydCB7IHJlcXVpcmVUZXN0Q29tcGFuaW9uUnVsZSB9IGZyb20gXCIuL3J1bGVcIjtcblxuLyoqIFR5cGUgZGVmaW5pdGlvbiBmb3IgcnVsZSBkYXRhLiAqL1xuaW50ZXJmYWNlIFJlcG9ydERlc2NyaXB0b3JXaXRoTWVzc2FnZUlkIHtcbiAgLyoqIE1lc3NhZ2VJZCBmaWVsZCB2YWx1ZS4gKi9cbiAgbWVzc2FnZUlkPzogc3RyaW5nO1xufVxuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG5pbnRlcmZhY2UgUnVsZVJlcG9ydCB7XG4gIC8qKiBNZXNzYWdlSWQgaGVscGVyIHZhbHVlLiAqL1xuICBtZXNzYWdlSWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbn1cblxuLyoqIFRyYWNrcyB0ZW1wb3JhcnkgZGlyZWN0b3JpZXMgc28gdGVzdHMgY2FuIGNsZWFuIHRoZW0gdXAuICovXG5jb25zdCB0ZW1wb3JhcnlEaXJlY3Rvcmllczogc3RyaW5nW10gPSBbXTtcblxuLyoqXG4gKiBDcmVhdGVzIGNyZWF0ZVJlcG9EaXJlY3RvcnkuXG4gKiBAcGFyYW0gcm9vdCBJbnB1dCByb290IHZhbHVlLlxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjcmVhdGVSZXBvRGlyZWN0b3J5KCk7XG4gKiBgYGBcbiAqL1xuY29uc3QgY3JlYXRlUmVwb0RpcmVjdG9yeSA9IChyb290OiBcInNyY1wiIHwgXCJ0bXBcIik6IHN0cmluZyA9PiB7XG4gIGNvbnN0IGJhc2VEaXJlY3RvcnkgPSBwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgcm9vdCk7XG4gIGZzLm1rZGlyU3luYyhiYXNlRGlyZWN0b3J5LCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgcmV0dXJuIGZzLm1rZHRlbXBTeW5jKHBhdGguam9pbihiYXNlRGlyZWN0b3J5LCBcInRlc3QtY29tcGFuaW9uLVwiKSk7XG59O1xuXG4vKipcbiAqIFdyaXRlcyBhIHNpbXBsZSBUeXBlU2NyaXB0IGZpbGUgYXQgdGhlIHByb3ZpZGVkIHBhdGguXG4gKiBAcGFyYW0gZmlsZVBhdGggSW5wdXQgZmlsZVBhdGggdmFsdWUuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogd3JpdGVGaWxlKFwiL3RtcC9mZWF0dXJlLnRzXCIpO1xuICogYGBgXG4gKi9cbmNvbnN0IHdyaXRlRmlsZSA9IChmaWxlUGF0aDogc3RyaW5nKTogdm9pZCA9PiB7XG4gIGZzLndyaXRlRmlsZVN5bmMoZmlsZVBhdGgsIFwiZXhwb3J0IGNvbnN0IHZhbHVlID0gMTtcIiwgXCJ1dGY4XCIpO1xufTtcblxuLyoqXG4gKiBDcmVhdGVzIGNyZWF0ZVRlbXBvcmFyeUZpbGUuXG4gKiBAcGFyYW0gcm9vdCBJbnB1dCByb290IHZhbHVlLlxuICogQHBhcmFtIGZpbGVuYW1lIElucHV0IGZpbGVuYW1lIHZhbHVlLlxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjcmVhdGVUZW1wb3JhcnlGaWxlKCk7XG4gKiBgYGBcbiAqL1xuY29uc3QgY3JlYXRlVGVtcG9yYXJ5RmlsZSA9IChyb290OiBcInNyY1wiIHwgXCJ0bXBcIiwgZmlsZW5hbWU6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IGRpcmVjdG9yeSA9IGNyZWF0ZVJlcG9EaXJlY3Rvcnkocm9vdCk7XG4gIHRlbXBvcmFyeURpcmVjdG9yaWVzLnB1c2goZGlyZWN0b3J5KTtcbiAgY29uc3QgZmlsZVBhdGggPSBwYXRoLmpvaW4oZGlyZWN0b3J5LCBmaWxlbmFtZSk7XG4gIHdyaXRlRmlsZShmaWxlUGF0aCk7XG4gIHJldHVybiBmaWxlUGF0aDtcbn07XG5cbi8qKlxuICogQ3JlYXRlcyBtdWx0aXBsZSB0ZW1wb3JhcnkgZmlsZXMgdW5kZXIgdGhlIGdpdmVuIHJvb3QuXG4gKiBAcGFyYW0gcm9vdCBJbnB1dCByb290IHZhbHVlLlxuICogQHBhcmFtIGZpbGVuYW1lcyBJbnB1dCBmaWxlbmFtZXMgdmFsdWUuXG4gKiBAcmV0dXJucyBQYXRocyB0byB0aGUgY3JlYXRlZCBmaWxlcy5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBwYXRocyA9IGNyZWF0ZVRlbXBvcmFyeUZpbGVzKFwidG1wXCIsIFtcImEudHNcIiwgXCJiLnRzXCJdKTtcbiAqIGBgYFxuICovXG5jb25zdCBjcmVhdGVUZW1wb3JhcnlGaWxlcyA9IChcbiAgcm9vdDogXCJzcmNcIiB8IFwidG1wXCIsXG4gIGZpbGVuYW1lczogc3RyaW5nW10sXG4pOiBzdHJpbmdbXSA9PiB7XG4gIGNvbnN0IGRpcmVjdG9yeSA9IGNyZWF0ZVJlcG9EaXJlY3Rvcnkocm9vdCk7XG4gIHRlbXBvcmFyeURpcmVjdG9yaWVzLnB1c2goZGlyZWN0b3J5KTtcbiAgcmV0dXJuIGZpbGVuYW1lcy5tYXAoKGZpbGVuYW1lKSA9PiB7XG4gICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLmpvaW4oZGlyZWN0b3J5LCBmaWxlbmFtZSk7XG4gICAgd3JpdGVGaWxlKGZpbGVQYXRoKTtcbiAgICByZXR1cm4gZmlsZVBhdGg7XG4gIH0pO1xufTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgdGVtcG9yYXJ5IGZpbGUgcGFpciBmb3IgdGVzdC9zb3VyY2UgY29tYmluYXRpb25zLlxuICogQHBhcmFtIHJvb3QgSW5wdXQgcm9vdCB2YWx1ZS5cbiAqIEBwYXJhbSBmaXJzdCBJbnB1dCBmaXJzdCB2YWx1ZS5cbiAqIEBwYXJhbSBzZWNvbmQgSW5wdXQgc2Vjb25kIHZhbHVlLlxuICogQHJldHVybnMgVHVwbGUgb2YgY3JlYXRlZCBmaWxlIHBhdGhzLlxuICogQHRocm93cyB7RXJyb3J9IFdoZW4gdGhlIGZpbGUgcGF0aHMgYXJlIG1pc3NpbmcuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgW3NvdXJjZSwgdGVzdF0gPSBjcmVhdGVUZW1wb3JhcnlQYWlyKFwidG1wXCIsIFwiYS50c1wiLCBcImEuc3BlYy50c1wiKTtcbiAqIGBgYFxuICovXG5jb25zdCBjcmVhdGVUZW1wb3JhcnlQYWlyID0gKFxuICByb290OiBcInNyY1wiIHwgXCJ0bXBcIixcbiAgZmlyc3Q6IHN0cmluZyxcbiAgc2Vjb25kOiBzdHJpbmcsXG4pOiBbc3RyaW5nLCBzdHJpbmddID0+IHtcbiAgY29uc3QgW2ZpcnN0UGF0aCwgc2Vjb25kUGF0aF0gPSBjcmVhdGVUZW1wb3JhcnlGaWxlcyhyb290LCBbXG4gICAgZmlyc3QsXG4gICAgc2Vjb25kLFxuICBdKSBhcyBbc3RyaW5nLCBzdHJpbmddO1xuXG4gIHJldHVybiBbZmlyc3RQYXRoLCBzZWNvbmRQYXRoXTtcbn07XG5cbi8qKlxuICogQ3JlYXRlcyBjcmVhdGVQcm9ncmFtQXN0LlxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjcmVhdGVQcm9ncmFtQXN0KCk7XG4gKiBgYGBcbiAqL1xuY29uc3QgY3JlYXRlUHJvZ3JhbUFzdCA9ICgpOiBBU1QuUHJvZ3JhbSA9PiAoe1xuICBib2R5OiBbXSxcbiAgY29tbWVudHM6IFtdLFxuICBsb2M6IHtcbiAgICBlbmQ6IHsgY29sdW1uOiAwLCBsaW5lOiAxIH0sXG4gICAgc3RhcnQ6IHsgY29sdW1uOiAwLCBsaW5lOiAxIH0sXG4gIH0sXG4gIHJhbmdlOiBbMCwgMF0sXG4gIHNvdXJjZVR5cGU6IFwibW9kdWxlXCIsXG4gIHRva2VuczogW10sXG4gIHR5cGU6IFwiUHJvZ3JhbVwiLFxufSk7XG5cbi8qKlxuICogQ3JlYXRlcyBhIHJ1bGUgY29udGV4dCBmb3IgdGhlIGdpdmVuIGZpbGVuYW1lLlxuICogQHBhcmFtIGZpbGVuYW1lIElucHV0IGZpbGVuYW1lIHZhbHVlLlxuICogQHBhcmFtIHJlcG9ydHMgSW5wdXQgcmVwb3J0cyB2YWx1ZS5cbiAqIEBwYXJhbSBzb3VyY2VDb2RlIElucHV0IHNvdXJjZUNvZGUgdmFsdWUuXG4gKiBAcmV0dXJucyBSdWxlIGNvbnRleHQgZm9yIHRlc3RzLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGNvbnRleHQgPSBjcmVhdGVSdWxlQ29udGV4dChmaWxlLCByZXBvcnRzLCBzb3VyY2VDb2RlKTtcbiAqIGBgYFxuICovXG5jb25zdCBjcmVhdGVSdWxlQ29udGV4dCA9IChcbiAgZmlsZW5hbWU6IHN0cmluZyxcbiAgcmVwb3J0czogUnVsZVJlcG9ydFtdLFxuICBzb3VyY2VDb2RlOiBTb3VyY2VDb2RlLFxuKTogUnVsZS5SdWxlQ29udGV4dCA9PlxuICAoe1xuICAgIGN3ZDogcHJvY2Vzcy5jd2QoKSxcbiAgICBmaWxlbmFtZSxcbiAgICBpZDogXCJyZXF1aXJlLXRlc3QtY29tcGFuaW9uXCIsXG4gICAgbGFuZ3VhZ2VPcHRpb25zOiB7XG4gICAgICBlY21hVmVyc2lvbjogXCJsYXRlc3RcIixcbiAgICAgIHNvdXJjZVR5cGU6IFwibW9kdWxlXCIsXG4gICAgfSxcbiAgICBvcHRpb25zOiBbXSxcbiAgICBwYXJzZXJPcHRpb25zOiB7fSxcbiAgICBwYXJzZXJQYXRoOiB2b2lkIDAsXG4gICAgcGh5c2ljYWxGaWxlbmFtZTogZmlsZW5hbWUsXG4gICAgcmVwb3J0OiAocmVwb3J0OiBSdWxlLlJlcG9ydERlc2NyaXB0b3IpOiB2b2lkID0+IHtcbiAgICAgIGNvbnN0IHsgbWVzc2FnZUlkIH0gPSByZXBvcnQgYXMgUmVwb3J0RGVzY3JpcHRvcldpdGhNZXNzYWdlSWQ7XG4gICAgICByZXBvcnRzLnB1c2goeyBtZXNzYWdlSWQgfSk7XG4gICAgfSxcbiAgICBzZXR0aW5nczoge30sXG4gICAgc291cmNlQ29kZSxcbiAgfSkgYXMgdW5rbm93biBhcyBSdWxlLlJ1bGVDb250ZXh0O1xuXG4vKipcbiAqIFJ1bnMgdGhlIHJ1bGUgbGlzdGVuZXJzIGZvciBhIGNvbnRleHQuXG4gKiBAcGFyYW0gY29udGV4dCBJbnB1dCBjb250ZXh0IHZhbHVlLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIHJ1bkxpc3RlbmVycyhjb250ZXh0KTtcbiAqIGBgYFxuICovXG5jb25zdCBydW5MaXN0ZW5lcnMgPSAoY29udGV4dDogUnVsZS5SdWxlQ29udGV4dCk6IHZvaWQgPT4ge1xuICBjb25zdCBsaXN0ZW5lcnMgPSByZXF1aXJlVGVzdENvbXBhbmlvblJ1bGUuY3JlYXRlKGNvbnRleHQpO1xuICBjb25zdCBwcm9ncmFtTm9kZSA9IGNvbnRleHQuc291cmNlQ29kZS5hc3Q7XG4gIGNvbnN0IHByb2dyYW1MaXN0ZW5lciA9IGxpc3RlbmVycy5Qcm9ncmFtO1xuXG4gIHByb2dyYW1MaXN0ZW5lcj8uKHByb2dyYW1Ob2RlKTtcbn07XG5cbi8qKlxuICogUnVucyB0aGUgcnVsZSB3aXRoIHRoZSBnaXZlbiBvcHRpb25zLlxuICogQHBhcmFtIGZpbGVuYW1lIElucHV0IGZpbGVuYW1lIHZhbHVlLlxuICogQHBhcmFtIG9wdGlvbnMgSW5wdXQgb3B0aW9ucyB2YWx1ZS5cbiAqIEByZXR1cm5zIENvbGxlY3RlZCBydWxlIHJlcG9ydHMuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgcmVwb3J0cyA9IHJ1blJ1bGUoXCIvdG1wL2ZlYXR1cmUudHNcIik7XG4gKiBgYGBcbiAqL1xuY29uc3QgcnVuUnVsZSA9IChcbiAgZmlsZW5hbWU6IHN0cmluZyxcbiAgb3B0aW9ucz86IFJlcXVpcmVUZXN0Q29tcGFuaW9uT3B0aW9ucyxcbik6IFJ1bGVSZXBvcnRbXSA9PiB7XG4gIGNvbnN0IHJlcG9ydHM6IFJ1bGVSZXBvcnRbXSA9IFtdO1xuICBjb25zdCBwcm9ncmFtQXN0ID0gY3JlYXRlUHJvZ3JhbUFzdCgpO1xuICBjb25zdCBzb3VyY2VDb2RlID0gbmV3IFNvdXJjZUNvZGUoXCJcIiwgcHJvZ3JhbUFzdCk7XG4gIGNvbnN0IGNvbnRleHQgPSBjcmVhdGVSdWxlQ29udGV4dChmaWxlbmFtZSwgcmVwb3J0cywgc291cmNlQ29kZSk7XG4gIGNvbnRleHQub3B0aW9ucyA9IG9wdGlvbnMgPT09IHZvaWQgMCA/IFtdIDogW29wdGlvbnNdO1xuXG4gIHJ1bkxpc3RlbmVycyhjb250ZXh0KTtcblxuICByZXR1cm4gcmVwb3J0cztcbn07XG5cbi8qKlxuICogQ2xlYW5zIHVwIHRlbXBvcmFyeSBkaXJlY3RvcmllcyBjcmVhdGVkIGJ5IHRlc3RzLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNsZWFudXBUZW1wb3JhcnlEaXJlY3RvcmllcygpO1xuICogYGBgXG4gKi9cbmNvbnN0IGNsZWFudXBUZW1wb3JhcnlEaXJlY3RvcmllcyA9ICgpOiB2b2lkID0+IHtcbiAgZm9yIChjb25zdCBkaXJlY3Rvcnkgb2YgdGVtcG9yYXJ5RGlyZWN0b3JpZXMuc3BsaWNlKDApKSB7XG4gICAgZnMucm1TeW5jKGRpcmVjdG9yeSwgeyBmb3JjZTogdHJ1ZSwgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICB9XG59O1xuXG5leHBvcnQge1xuICBjbGVhbnVwVGVtcG9yYXJ5RGlyZWN0b3JpZXMsXG4gIGNyZWF0ZVRlbXBvcmFyeUZpbGUsXG4gIGNyZWF0ZVRlbXBvcmFyeVBhaXIsXG4gIHJ1blJ1bGUsXG59O1xuIl19
@@ -1 +0,0 @@
1
- {"version":3,"file":"require-test-companion-utilities.d.ts","sourceRoot":"","sources":["../../../src/testing/require-test-companion/require-test-companion-utilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAGnC,OAAO,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAEhF,qCAAqC;AACrC,KAAK,yBAAyB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAEnE;;;;;;;;;;GAUG;AACH,QAAA,MAAM,wBAAwB,GAC5B,SAAS,IAAI,CAAC,WAAW,EACzB,UAAU,MAAM,EAChB,SAAS,yBAAyB,KACjC,IAAI,CAAC,YACkD,CAAC;AAE3D;;;;;;;;GAQG;AACH,QAAA,MAAM,UAAU,GAAI,SAAS,SAAS,OAAO,EAAE,KAAG,yBACzB,CAAC;AAE1B,OAAO,EAAE,wBAAwB,EAAE,UAAU,EAAE,CAAC"}
@@ -1,26 +0,0 @@
1
- import { buildListenerForFilename as buildListenerForFilenameImpl } from "./require-test-companion-listeners";
2
- import { getOptions as getOptionsImpl } from "./require-test-companion-options";
3
- /**
4
- * Build a rule listener for a source filename.
5
- * @param context Rule execution context.
6
- * @param filename Source file path.
7
- * @param options Normalized rule options state.
8
- * @returns Rule listener for the file.
9
- * @example
10
- * ```typescript
11
- * const listener = buildListenerForFilename(context, filename, options);
12
- * ```
13
- */
14
- const buildListenerForFilename = (context, filename, options) => buildListenerForFilenameImpl(context, filename, options);
15
- /**
16
- * Normalize rule options for the listener.
17
- * @param options Raw rule options.
18
- * @returns Normalized rule options state.
19
- * @example
20
- * ```typescript
21
- * const options = getOptions([]);
22
- * ```
23
- */
24
- const getOptions = (options) => getOptionsImpl(options);
25
- export { buildListenerForFilename, getOptions };
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWlyZS10ZXN0LWNvbXBhbmlvbi11dGlsaXRpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGVzdGluZy9yZXF1aXJlLXRlc3QtY29tcGFuaW9uL3JlcXVpcmUtdGVzdC1jb21wYW5pb24tdXRpbGl0aWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSx3QkFBd0IsSUFBSSw0QkFBNEIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzlHLE9BQU8sRUFBRSxVQUFVLElBQUksY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFLaEY7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQU0sd0JBQXdCLEdBQUcsQ0FDL0IsT0FBeUIsRUFDekIsUUFBZ0IsRUFDaEIsT0FBa0MsRUFDZixFQUFFLENBQ3JCLDRCQUE0QixDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFFM0Q7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsR0FBRyxDQUFDLE9BQTJCLEVBQTZCLEVBQUUsQ0FDNUUsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBRTFCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxVQUFVLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUnVsZSB9IGZyb20gXCJlc2xpbnRcIjtcblxuaW1wb3J0IHsgYnVpbGRMaXN0ZW5lckZvckZpbGVuYW1lIGFzIGJ1aWxkTGlzdGVuZXJGb3JGaWxlbmFtZUltcGwgfSBmcm9tIFwiLi9yZXF1aXJlLXRlc3QtY29tcGFuaW9uLWxpc3RlbmVyc1wiO1xuaW1wb3J0IHsgZ2V0T3B0aW9ucyBhcyBnZXRPcHRpb25zSW1wbCB9IGZyb20gXCIuL3JlcXVpcmUtdGVzdC1jb21wYW5pb24tb3B0aW9uc1wiO1xuXG4vKiogTm9ybWFsaXplZCBvcHRpb25zIHN0YXRlIHR5cGUuICovXG50eXBlIFJlcXVpcmVUZXN0Q29tcGFuaW9uU3RhdGUgPSBSZXR1cm5UeXBlPHR5cGVvZiBnZXRPcHRpb25zSW1wbD47XG5cbi8qKlxuICogQnVpbGQgYSBydWxlIGxpc3RlbmVyIGZvciBhIHNvdXJjZSBmaWxlbmFtZS5cbiAqIEBwYXJhbSBjb250ZXh0IFJ1bGUgZXhlY3V0aW9uIGNvbnRleHQuXG4gKiBAcGFyYW0gZmlsZW5hbWUgU291cmNlIGZpbGUgcGF0aC5cbiAqIEBwYXJhbSBvcHRpb25zIE5vcm1hbGl6ZWQgcnVsZSBvcHRpb25zIHN0YXRlLlxuICogQHJldHVybnMgUnVsZSBsaXN0ZW5lciBmb3IgdGhlIGZpbGUuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgbGlzdGVuZXIgPSBidWlsZExpc3RlbmVyRm9yRmlsZW5hbWUoY29udGV4dCwgZmlsZW5hbWUsIG9wdGlvbnMpO1xuICogYGBgXG4gKi9cbmNvbnN0IGJ1aWxkTGlzdGVuZXJGb3JGaWxlbmFtZSA9IChcbiAgY29udGV4dDogUnVsZS5SdWxlQ29udGV4dCxcbiAgZmlsZW5hbWU6IHN0cmluZyxcbiAgb3B0aW9uczogUmVxdWlyZVRlc3RDb21wYW5pb25TdGF0ZSxcbik6IFJ1bGUuUnVsZUxpc3RlbmVyID0+XG4gIGJ1aWxkTGlzdGVuZXJGb3JGaWxlbmFtZUltcGwoY29udGV4dCwgZmlsZW5hbWUsIG9wdGlvbnMpO1xuXG4vKipcbiAqIE5vcm1hbGl6ZSBydWxlIG9wdGlvbnMgZm9yIHRoZSBsaXN0ZW5lci5cbiAqIEBwYXJhbSBvcHRpb25zIFJhdyBydWxlIG9wdGlvbnMuXG4gKiBAcmV0dXJucyBOb3JtYWxpemVkIHJ1bGUgb3B0aW9ucyBzdGF0ZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBvcHRpb25zID0gZ2V0T3B0aW9ucyhbXSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgZ2V0T3B0aW9ucyA9IChvcHRpb25zOiByZWFkb25seSB1bmtub3duW10pOiBSZXF1aXJlVGVzdENvbXBhbmlvblN0YXRlID0+XG4gIGdldE9wdGlvbnNJbXBsKG9wdGlvbnMpO1xuXG5leHBvcnQgeyBidWlsZExpc3RlbmVyRm9yRmlsZW5hbWUsIGdldE9wdGlvbnMgfTtcbiJdfQ==
@@ -1 +0,0 @@
1
- {"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../src/testing/require-test-companion/rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAMnC,sEAAsE;AACtE,QAAA,MAAM,wBAAwB,EAAE,IAAI,CAAC,UA2DpC,CAAC;AAEF,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
@@ -1,57 +0,0 @@
1
- import { createRuleDocumentation } from "../../custom-rule-documentation";
2
- import { buildListenerForFilename } from "./require-test-companion-listeners";
3
- import { getOptions } from "./require-test-companion-options";
4
- /** ESLint rule enforcing 1:1 test companions for TypeScript files. */
5
- const requireTestCompanionRule = {
6
- create(context) {
7
- return buildListenerForFilename(context, context.filename, getOptions(context.options));
8
- },
9
- meta: {
10
- docs: createRuleDocumentation("require-test-companion", "Require a matching test file for each TypeScript file and vice versa."),
11
- messages: {
12
- missingSource: "Test file requires a matching source file '{{sourceFile}}' in the same folder.",
13
- missingTest: "Source file requires a matching test file ({{testFiles}}) in the same folder.",
14
- },
15
- schema: [
16
- {
17
- additionalProperties: false,
18
- properties: {
19
- enforceIn: {
20
- oneOf: [
21
- { type: "string" },
22
- {
23
- items: { type: "string" },
24
- minItems: 1,
25
- type: "array",
26
- },
27
- ],
28
- },
29
- ignorePatterns: {
30
- oneOf: [
31
- { type: "string" },
32
- {
33
- items: { type: "string" },
34
- minItems: 1,
35
- type: "array",
36
- },
37
- ],
38
- },
39
- testSuffixes: {
40
- oneOf: [
41
- { type: "string" },
42
- {
43
- items: { type: "string" },
44
- minItems: 1,
45
- type: "array",
46
- },
47
- ],
48
- },
49
- },
50
- type: "object",
51
- },
52
- ],
53
- type: "problem",
54
- },
55
- };
56
- export { requireTestCompanionRule };
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZXN0aW5nL3JlcXVpcmUtdGVzdC1jb21wYW5pb24vcnVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFOUQsc0VBQXNFO0FBQ3RFLE1BQU0sd0JBQXdCLEdBQW9CO0lBQ2hELE1BQU0sQ0FBQyxPQUF5QjtRQUM5QixPQUFPLHdCQUF3QixDQUM3QixPQUFPLEVBQ1AsT0FBTyxDQUFDLFFBQVEsRUFDaEIsVUFBVSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FDNUIsQ0FBQztJQUNKLENBQUM7SUFDRCxJQUFJLEVBQUU7UUFDSixJQUFJLEVBQUUsdUJBQXVCLENBQzNCLHdCQUF3QixFQUN4Qix1RUFBdUUsQ0FDeEU7UUFDRCxRQUFRLEVBQUU7WUFDUixhQUFhLEVBQ1gsZ0ZBQWdGO1lBQ2xGLFdBQVcsRUFDVCwrRUFBK0U7U0FDbEY7UUFDRCxNQUFNLEVBQUU7WUFDTjtnQkFDRSxvQkFBb0IsRUFBRSxLQUFLO2dCQUMzQixVQUFVLEVBQUU7b0JBQ1YsU0FBUyxFQUFFO3dCQUNULEtBQUssRUFBRTs0QkFDTCxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7NEJBQ2xCO2dDQUNFLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7Z0NBQ3pCLFFBQVEsRUFBRSxDQUFDO2dDQUNYLElBQUksRUFBRSxPQUFPOzZCQUNkO3lCQUNGO3FCQUNGO29CQUNELGNBQWMsRUFBRTt3QkFDZCxLQUFLLEVBQUU7NEJBQ0wsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFOzRCQUNsQjtnQ0FDRSxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO2dDQUN6QixRQUFRLEVBQUUsQ0FBQztnQ0FDWCxJQUFJLEVBQUUsT0FBTzs2QkFDZDt5QkFDRjtxQkFDRjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1osS0FBSyxFQUFFOzRCQUNMLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTs0QkFDbEI7Z0NBQ0UsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtnQ0FDekIsUUFBUSxFQUFFLENBQUM7Z0NBQ1gsSUFBSSxFQUFFLE9BQU87NkJBQ2Q7eUJBQ0Y7cUJBQ0Y7aUJBQ0Y7Z0JBQ0QsSUFBSSxFQUFFLFFBQVE7YUFDZjtTQUNGO1FBQ0QsSUFBSSxFQUFFLFNBQVM7S0FDaEI7Q0FDRixDQUFDO0FBRUYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tIFwiZXNsaW50XCI7XG5cbmltcG9ydCB7IGNyZWF0ZVJ1bGVEb2N1bWVudGF0aW9uIH0gZnJvbSBcIi4uLy4uL2N1c3RvbS1ydWxlLWRvY3VtZW50YXRpb25cIjtcbmltcG9ydCB7IGJ1aWxkTGlzdGVuZXJGb3JGaWxlbmFtZSB9IGZyb20gXCIuL3JlcXVpcmUtdGVzdC1jb21wYW5pb24tbGlzdGVuZXJzXCI7XG5pbXBvcnQgeyBnZXRPcHRpb25zIH0gZnJvbSBcIi4vcmVxdWlyZS10ZXN0LWNvbXBhbmlvbi1vcHRpb25zXCI7XG5cbi8qKiBFU0xpbnQgcnVsZSBlbmZvcmNpbmcgMToxIHRlc3QgY29tcGFuaW9ucyBmb3IgVHlwZVNjcmlwdCBmaWxlcy4gKi9cbmNvbnN0IHJlcXVpcmVUZXN0Q29tcGFuaW9uUnVsZTogUnVsZS5SdWxlTW9kdWxlID0ge1xuICBjcmVhdGUoY29udGV4dDogUnVsZS5SdWxlQ29udGV4dCk6IFJ1bGUuUnVsZUxpc3RlbmVyIHtcbiAgICByZXR1cm4gYnVpbGRMaXN0ZW5lckZvckZpbGVuYW1lKFxuICAgICAgY29udGV4dCxcbiAgICAgIGNvbnRleHQuZmlsZW5hbWUsXG4gICAgICBnZXRPcHRpb25zKGNvbnRleHQub3B0aW9ucyksXG4gICAgKTtcbiAgfSxcbiAgbWV0YToge1xuICAgIGRvY3M6IGNyZWF0ZVJ1bGVEb2N1bWVudGF0aW9uKFxuICAgICAgXCJyZXF1aXJlLXRlc3QtY29tcGFuaW9uXCIsXG4gICAgICBcIlJlcXVpcmUgYSBtYXRjaGluZyB0ZXN0IGZpbGUgZm9yIGVhY2ggVHlwZVNjcmlwdCBmaWxlIGFuZCB2aWNlIHZlcnNhLlwiLFxuICAgICksXG4gICAgbWVzc2FnZXM6IHtcbiAgICAgIG1pc3NpbmdTb3VyY2U6XG4gICAgICAgIFwiVGVzdCBmaWxlIHJlcXVpcmVzIGEgbWF0Y2hpbmcgc291cmNlIGZpbGUgJ3t7c291cmNlRmlsZX19JyBpbiB0aGUgc2FtZSBmb2xkZXIuXCIsXG4gICAgICBtaXNzaW5nVGVzdDpcbiAgICAgICAgXCJTb3VyY2UgZmlsZSByZXF1aXJlcyBhIG1hdGNoaW5nIHRlc3QgZmlsZSAoe3t0ZXN0RmlsZXN9fSkgaW4gdGhlIHNhbWUgZm9sZGVyLlwiLFxuICAgIH0sXG4gICAgc2NoZW1hOiBbXG4gICAgICB7XG4gICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgIGVuZm9yY2VJbjoge1xuICAgICAgICAgICAgb25lT2Y6IFtcbiAgICAgICAgICAgICAgeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpdGVtczogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICAgICAgbWluSXRlbXM6IDEsXG4gICAgICAgICAgICAgICAgdHlwZTogXCJhcnJheVwiLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGlnbm9yZVBhdHRlcm5zOiB7XG4gICAgICAgICAgICBvbmVPZjogW1xuICAgICAgICAgICAgICB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGl0ZW1zOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgICAgICBtaW5JdGVtczogMSxcbiAgICAgICAgICAgICAgICB0eXBlOiBcImFycmF5XCIsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgdGVzdFN1ZmZpeGVzOiB7XG4gICAgICAgICAgICBvbmVPZjogW1xuICAgICAgICAgICAgICB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGl0ZW1zOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgICAgICBtaW5JdGVtczogMSxcbiAgICAgICAgICAgICAgICB0eXBlOiBcImFycmF5XCIsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICB9LFxuICAgIF0sXG4gICAgdHlwZTogXCJwcm9ibGVtXCIsXG4gIH0sXG59O1xuXG5leHBvcnQgeyByZXF1aXJlVGVzdENvbXBhbmlvblJ1bGUgfTtcbiJdfQ==
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/testing/require-test-companion/types.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,UAAU,2BAA2B;IACnC,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAE9B,mCAAmC;IACnC,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAEnC,iCAAiC;IACjC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAClC;AAED,YAAY,EAAE,2BAA2B,EAAE,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGVzdGluZy9yZXF1aXJlLXRlc3QtY29tcGFuaW9uL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG5pbnRlcmZhY2UgUmVxdWlyZVRlc3RDb21wYW5pb25PcHRpb25zIHtcbiAgLyoqIEVuZm9yY2VJbiBoZWxwZXIgdmFsdWUuICovXG4gIGVuZm9yY2VJbj86IHN0cmluZyB8IHN0cmluZ1tdO1xuXG4gIC8qKiBJZ25vcmVQYXR0ZXJucyBoZWxwZXIgdmFsdWUuICovXG4gIGlnbm9yZVBhdHRlcm5zPzogc3RyaW5nIHwgc3RyaW5nW107XG5cbiAgLyoqIFRlc3RTdWZmaXhlcyBoZWxwZXIgdmFsdWUuICovXG4gIHRlc3RTdWZmaXhlcz86IHN0cmluZyB8IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgdHlwZSB7IFJlcXVpcmVUZXN0Q29tcGFuaW9uT3B0aW9ucyB9O1xuIl19
@@ -1,2 +0,0 @@
1
- export { singleActStatementRule } from "./rule";
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/testing/single-act-statement/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,QAAQ,CAAC"}
@@ -1,2 +0,0 @@
1
- export { singleActStatementRule } from "./rule";
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGVzdGluZy9zaW5nbGUtYWN0LXN0YXRlbWVudC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBzaW5nbGVBY3RTdGF0ZW1lbnRSdWxlIH0gZnJvbSBcIi4vcnVsZVwiO1xuIl19
@@ -1 +0,0 @@
1
- {"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../src/testing/single-act-statement/rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAKnC,QAAA,MAAM,sBAAsB,EAAE,IAAI,CAAC,UAkClC,CAAC;AAEF,OAAO,EAAE,sBAAsB,EAAE,CAAC"}