@codeperfect/eslint-plugin 1.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 (248) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +128 -0
  3. package/dist/.tsbuildinfo +1 -0
  4. package/dist/architecture/consistent-barrel-files/consistent-barrel-files-listeners.d.ts +16 -0
  5. package/dist/architecture/consistent-barrel-files/consistent-barrel-files-listeners.d.ts.map +1 -0
  6. package/dist/architecture/consistent-barrel-files/consistent-barrel-files-listeners.js +131 -0
  7. package/dist/architecture/consistent-barrel-files/consistent-barrel-files-options.d.ts +48 -0
  8. package/dist/architecture/consistent-barrel-files/consistent-barrel-files-options.d.ts.map +1 -0
  9. package/dist/architecture/consistent-barrel-files/consistent-barrel-files-options.js +126 -0
  10. package/dist/architecture/consistent-barrel-files/exports-only-rule-test-utilities.d.ts +40 -0
  11. package/dist/architecture/consistent-barrel-files/exports-only-rule-test-utilities.d.ts.map +1 -0
  12. package/dist/architecture/consistent-barrel-files/exports-only-rule-test-utilities.js +90 -0
  13. package/dist/architecture/consistent-barrel-files/exports-only-rule.d.ts +11 -0
  14. package/dist/architecture/consistent-barrel-files/exports-only-rule.d.ts.map +1 -0
  15. package/dist/architecture/consistent-barrel-files/exports-only-rule.js +218 -0
  16. package/dist/architecture/consistent-barrel-files/index.d.ts +5 -0
  17. package/dist/architecture/consistent-barrel-files/index.d.ts.map +1 -0
  18. package/dist/architecture/consistent-barrel-files/index.js +4 -0
  19. package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.d.ts +11 -0
  20. package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.d.ts.map +1 -0
  21. package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.js +100 -0
  22. package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-test-utilities.d.ts +40 -0
  23. package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-test-utilities.d.ts.map +1 -0
  24. package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-test-utilities.js +90 -0
  25. package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-utilities.d.ts +65 -0
  26. package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-utilities.d.ts.map +1 -0
  27. package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-utilities.js +154 -0
  28. package/dist/architecture/consistent-barrel-files/rule.d.ts +11 -0
  29. package/dist/architecture/consistent-barrel-files/rule.d.ts.map +1 -0
  30. package/dist/architecture/consistent-barrel-files/rule.js +58 -0
  31. package/dist/architecture/consistent-barrel-files/test-helpers.d.ts +141 -0
  32. package/dist/architecture/consistent-barrel-files/test-helpers.d.ts.map +1 -0
  33. package/dist/architecture/consistent-barrel-files/test-helpers.js +229 -0
  34. package/dist/architecture/consistent-barrel-files/types.d.ts +25 -0
  35. package/dist/architecture/consistent-barrel-files/types.d.ts.map +1 -0
  36. package/dist/architecture/consistent-barrel-files/types.js +2 -0
  37. package/dist/architecture/index.d.ts +2 -0
  38. package/dist/architecture/index.d.ts.map +1 -0
  39. package/dist/architecture/index.js +2 -0
  40. package/dist/benchmark-rules.d.ts +83 -0
  41. package/dist/benchmark-rules.d.ts.map +1 -0
  42. package/dist/benchmark-rules.js +175 -0
  43. package/dist/codeperfect-eslint-plugin-1.0.0.tgz +0 -0
  44. package/dist/codeperfect-plugin.d.ts +46 -0
  45. package/dist/codeperfect-plugin.d.ts.map +1 -0
  46. package/dist/codeperfect-plugin.js +29 -0
  47. package/dist/core/index.d.ts +3 -0
  48. package/dist/core/index.d.ts.map +1 -0
  49. package/dist/core/index.js +3 -0
  50. package/dist/core/no-multiple-declarators/index.d.ts +2 -0
  51. package/dist/core/no-multiple-declarators/index.d.ts.map +1 -0
  52. package/dist/core/no-multiple-declarators/index.js +2 -0
  53. package/dist/core/no-multiple-declarators/rule.d.ts +4 -0
  54. package/dist/core/no-multiple-declarators/rule.d.ts.map +1 -0
  55. package/dist/core/no-multiple-declarators/rule.js +100 -0
  56. package/dist/core/prefer-interface-types/index.d.ts +2 -0
  57. package/dist/core/prefer-interface-types/index.d.ts.map +1 -0
  58. package/dist/core/prefer-interface-types/index.js +2 -0
  59. package/dist/core/prefer-interface-types/rule.d.ts +5 -0
  60. package/dist/core/prefer-interface-types/rule.d.ts.map +1 -0
  61. package/dist/core/prefer-interface-types/rule.js +145 -0
  62. package/dist/core/prefer-interface-types/test-helpers.d.ts +110 -0
  63. package/dist/core/prefer-interface-types/test-helpers.d.ts.map +1 -0
  64. package/dist/core/prefer-interface-types/test-helpers.js +116 -0
  65. package/dist/custom-rule-documentation.d.ts +36 -0
  66. package/dist/custom-rule-documentation.d.ts.map +1 -0
  67. package/dist/custom-rule-documentation.js +35 -0
  68. package/dist/custom-rules.d.ts +61 -0
  69. package/dist/custom-rules.d.ts.map +1 -0
  70. package/dist/custom-rules.js +70 -0
  71. package/dist/docs/index.d.ts +4 -0
  72. package/dist/docs/index.d.ts.map +1 -0
  73. package/dist/docs/index.js +4 -0
  74. package/dist/docs/no-interface-member-docs/comment-utilities-test-helpers.d.ts +89 -0
  75. package/dist/docs/no-interface-member-docs/comment-utilities-test-helpers.d.ts.map +1 -0
  76. package/dist/docs/no-interface-member-docs/comment-utilities-test-helpers.js +129 -0
  77. package/dist/docs/no-interface-member-docs/comment-utilities.d.ts +48 -0
  78. package/dist/docs/no-interface-member-docs/comment-utilities.d.ts.map +1 -0
  79. package/dist/docs/no-interface-member-docs/comment-utilities.js +146 -0
  80. package/dist/docs/no-interface-member-docs/index.d.ts +2 -0
  81. package/dist/docs/no-interface-member-docs/index.d.ts.map +1 -0
  82. package/dist/docs/no-interface-member-docs/index.js +2 -0
  83. package/dist/docs/no-interface-member-docs/parameter-tags.d.ts +13 -0
  84. package/dist/docs/no-interface-member-docs/parameter-tags.d.ts.map +1 -0
  85. package/dist/docs/no-interface-member-docs/parameter-tags.js +101 -0
  86. package/dist/docs/no-interface-member-docs/parameter-utilities.d.ts +24 -0
  87. package/dist/docs/no-interface-member-docs/parameter-utilities.d.ts.map +1 -0
  88. package/dist/docs/no-interface-member-docs/parameter-utilities.js +125 -0
  89. package/dist/docs/no-interface-member-docs/rule.d.ts +5 -0
  90. package/dist/docs/no-interface-member-docs/rule.d.ts.map +1 -0
  91. package/dist/docs/no-interface-member-docs/rule.js +168 -0
  92. package/dist/docs/no-interface-member-docs/test-helpers.d.ts +103 -0
  93. package/dist/docs/no-interface-member-docs/test-helpers.d.ts.map +1 -0
  94. package/dist/docs/no-interface-member-docs/test-helpers.js +157 -0
  95. package/dist/docs/no-interface-member-docs/types.d.ts +30 -0
  96. package/dist/docs/no-interface-member-docs/types.d.ts.map +1 -0
  97. package/dist/docs/no-interface-member-docs/types.js +2 -0
  98. package/dist/docs/require-example-language/empty-fence-fixes.d.ts +29 -0
  99. package/dist/docs/require-example-language/empty-fence-fixes.d.ts.map +1 -0
  100. package/dist/docs/require-example-language/empty-fence-fixes.js +169 -0
  101. package/dist/docs/require-example-language/example-utilities.d.ts +70 -0
  102. package/dist/docs/require-example-language/example-utilities.d.ts.map +1 -0
  103. package/dist/docs/require-example-language/example-utilities.js +76 -0
  104. package/dist/docs/require-example-language/examples.d.ts +36 -0
  105. package/dist/docs/require-example-language/examples.d.ts.map +1 -0
  106. package/dist/docs/require-example-language/examples.js +181 -0
  107. package/dist/docs/require-example-language/fixes.d.ts +49 -0
  108. package/dist/docs/require-example-language/fixes.d.ts.map +1 -0
  109. package/dist/docs/require-example-language/fixes.js +182 -0
  110. package/dist/docs/require-example-language/index.d.ts +3 -0
  111. package/dist/docs/require-example-language/index.d.ts.map +1 -0
  112. package/dist/docs/require-example-language/index.js +2 -0
  113. package/dist/docs/require-example-language/reporting.d.ts +60 -0
  114. package/dist/docs/require-example-language/reporting.d.ts.map +1 -0
  115. package/dist/docs/require-example-language/reporting.js +145 -0
  116. package/dist/docs/require-example-language/rule.d.ts +7 -0
  117. package/dist/docs/require-example-language/rule.d.ts.map +1 -0
  118. package/dist/docs/require-example-language/rule.js +34 -0
  119. package/dist/docs/require-example-language/types.d.ts +22 -0
  120. package/dist/docs/require-example-language/types.d.ts.map +1 -0
  121. package/dist/docs/require-example-language/types.js +2 -0
  122. package/dist/docs/single-line-jsdoc/index.d.ts +2 -0
  123. package/dist/docs/single-line-jsdoc/index.d.ts.map +1 -0
  124. package/dist/docs/single-line-jsdoc/index.js +2 -0
  125. package/dist/docs/single-line-jsdoc/rule.d.ts +5 -0
  126. package/dist/docs/single-line-jsdoc/rule.d.ts.map +1 -0
  127. package/dist/docs/single-line-jsdoc/rule.js +196 -0
  128. package/dist/docs/single-line-jsdoc/single-line-jsdoc-content.d.ts +16 -0
  129. package/dist/docs/single-line-jsdoc/single-line-jsdoc-content.d.ts.map +1 -0
  130. package/dist/docs/single-line-jsdoc/single-line-jsdoc-content.js +95 -0
  131. package/dist/docs/single-line-jsdoc/single-line-jsdoc-utilities.d.ts +25 -0
  132. package/dist/docs/single-line-jsdoc/single-line-jsdoc-utilities.d.ts.map +1 -0
  133. package/dist/docs/single-line-jsdoc/single-line-jsdoc-utilities.js +140 -0
  134. package/dist/docs/test-helpers.d.ts +50 -0
  135. package/dist/docs/test-helpers.d.ts.map +1 -0
  136. package/dist/docs/test-helpers.js +107 -0
  137. package/dist/index.d.ts +6 -0
  138. package/dist/index.d.ts.map +1 -0
  139. package/dist/index.js +6 -0
  140. package/dist/presets.d.ts +10 -0
  141. package/dist/presets.d.ts.map +1 -0
  142. package/dist/presets.js +50 -0
  143. package/dist/rules/index.d.ts +5 -0
  144. package/dist/rules/index.d.ts.map +1 -0
  145. package/dist/rules/index.js +6 -0
  146. package/dist/testing/aaa/analyzer.d.ts +36 -0
  147. package/dist/testing/aaa/analyzer.d.ts.map +1 -0
  148. package/dist/testing/aaa/analyzer.js +490 -0
  149. package/dist/testing/aaa/index.d.ts +3 -0
  150. package/dist/testing/aaa/index.d.ts.map +1 -0
  151. package/dist/testing/aaa/index.js +2 -0
  152. package/dist/testing/aaa/types.d.ts +31 -0
  153. package/dist/testing/aaa/types.d.ts.map +1 -0
  154. package/dist/testing/aaa/types.js +2 -0
  155. package/dist/testing/assert-actual-expected-names/index.d.ts +2 -0
  156. package/dist/testing/assert-actual-expected-names/index.d.ts.map +1 -0
  157. package/dist/testing/assert-actual-expected-names/index.js +2 -0
  158. package/dist/testing/assert-actual-expected-names/rule.d.ts +4 -0
  159. package/dist/testing/assert-actual-expected-names/rule.d.ts.map +1 -0
  160. package/dist/testing/assert-actual-expected-names/rule.js +54 -0
  161. package/dist/testing/enforce-aaa-phase-purity/index.d.ts +2 -0
  162. package/dist/testing/enforce-aaa-phase-purity/index.d.ts.map +1 -0
  163. package/dist/testing/enforce-aaa-phase-purity/index.js +2 -0
  164. package/dist/testing/enforce-aaa-phase-purity/rule.d.ts +4 -0
  165. package/dist/testing/enforce-aaa-phase-purity/rule.d.ts.map +1 -0
  166. package/dist/testing/enforce-aaa-phase-purity/rule.js +110 -0
  167. package/dist/testing/enforce-aaa-structure/index.d.ts +2 -0
  168. package/dist/testing/enforce-aaa-structure/index.d.ts.map +1 -0
  169. package/dist/testing/enforce-aaa-structure/index.js +2 -0
  170. package/dist/testing/enforce-aaa-structure/rule.d.ts +4 -0
  171. package/dist/testing/enforce-aaa-structure/rule.d.ts.map +1 -0
  172. package/dist/testing/enforce-aaa-structure/rule.js +48 -0
  173. package/dist/testing/index.d.ts +9 -0
  174. package/dist/testing/index.d.ts.map +1 -0
  175. package/dist/testing/index.js +9 -0
  176. package/dist/testing/prefer-vi-mocked-import/fix.d.ts +16 -0
  177. package/dist/testing/prefer-vi-mocked-import/fix.d.ts.map +1 -0
  178. package/dist/testing/prefer-vi-mocked-import/fix.js +224 -0
  179. package/dist/testing/prefer-vi-mocked-import/index.d.ts +2 -0
  180. package/dist/testing/prefer-vi-mocked-import/index.d.ts.map +1 -0
  181. package/dist/testing/prefer-vi-mocked-import/index.js +2 -0
  182. package/dist/testing/prefer-vi-mocked-import/match-bindings.d.ts +16 -0
  183. package/dist/testing/prefer-vi-mocked-import/match-bindings.d.ts.map +1 -0
  184. package/dist/testing/prefer-vi-mocked-import/match-bindings.js +52 -0
  185. package/dist/testing/prefer-vi-mocked-import/match-declarations.d.ts +16 -0
  186. package/dist/testing/prefer-vi-mocked-import/match-declarations.d.ts.map +1 -0
  187. package/dist/testing/prefer-vi-mocked-import/match-declarations.js +99 -0
  188. package/dist/testing/prefer-vi-mocked-import/match-helpers.d.ts +66 -0
  189. package/dist/testing/prefer-vi-mocked-import/match-helpers.d.ts.map +1 -0
  190. package/dist/testing/prefer-vi-mocked-import/match-helpers.js +102 -0
  191. package/dist/testing/prefer-vi-mocked-import/match-imports.d.ts +17 -0
  192. package/dist/testing/prefer-vi-mocked-import/match-imports.d.ts.map +1 -0
  193. package/dist/testing/prefer-vi-mocked-import/match-imports.js +156 -0
  194. package/dist/testing/prefer-vi-mocked-import/match-rewrites.d.ts +42 -0
  195. package/dist/testing/prefer-vi-mocked-import/match-rewrites.d.ts.map +1 -0
  196. package/dist/testing/prefer-vi-mocked-import/match-rewrites.js +119 -0
  197. package/dist/testing/prefer-vi-mocked-import/match-walk.d.ts +13 -0
  198. package/dist/testing/prefer-vi-mocked-import/match-walk.d.ts.map +1 -0
  199. package/dist/testing/prefer-vi-mocked-import/match-walk.js +62 -0
  200. package/dist/testing/prefer-vi-mocked-import/match.d.ts +15 -0
  201. package/dist/testing/prefer-vi-mocked-import/match.d.ts.map +1 -0
  202. package/dist/testing/prefer-vi-mocked-import/match.js +193 -0
  203. package/dist/testing/prefer-vi-mocked-import/rule.d.ts +5 -0
  204. package/dist/testing/prefer-vi-mocked-import/rule.d.ts.map +1 -0
  205. package/dist/testing/prefer-vi-mocked-import/rule.js +32 -0
  206. package/dist/testing/prefer-vi-mocked-import/types.d.ts +83 -0
  207. package/dist/testing/prefer-vi-mocked-import/types.d.ts.map +1 -0
  208. package/dist/testing/prefer-vi-mocked-import/types.js +2 -0
  209. package/dist/testing/require-aaa-sections/index.d.ts +2 -0
  210. package/dist/testing/require-aaa-sections/index.d.ts.map +1 -0
  211. package/dist/testing/require-aaa-sections/index.js +2 -0
  212. package/dist/testing/require-aaa-sections/rule.d.ts +4 -0
  213. package/dist/testing/require-aaa-sections/rule.d.ts.map +1 -0
  214. package/dist/testing/require-aaa-sections/rule.js +111 -0
  215. package/dist/testing/require-act-result-capture/index.d.ts +2 -0
  216. package/dist/testing/require-act-result-capture/index.d.ts.map +1 -0
  217. package/dist/testing/require-act-result-capture/index.js +2 -0
  218. package/dist/testing/require-act-result-capture/rule.d.ts +4 -0
  219. package/dist/testing/require-act-result-capture/rule.d.ts.map +1 -0
  220. package/dist/testing/require-act-result-capture/rule.js +34 -0
  221. package/dist/testing/require-test-companion/index.d.ts +3 -0
  222. package/dist/testing/require-test-companion/index.d.ts.map +1 -0
  223. package/dist/testing/require-test-companion/index.js +3 -0
  224. package/dist/testing/require-test-companion/require-test-companion-listeners.d.ts +16 -0
  225. package/dist/testing/require-test-companion/require-test-companion-listeners.d.ts.map +1 -0
  226. package/dist/testing/require-test-companion/require-test-companion-listeners.js +145 -0
  227. package/dist/testing/require-test-companion/require-test-companion-options.d.ts +54 -0
  228. package/dist/testing/require-test-companion/require-test-companion-options.d.ts.map +1 -0
  229. package/dist/testing/require-test-companion/require-test-companion-options.js +112 -0
  230. package/dist/testing/require-test-companion/require-test-companion-test-helpers.d.ts +51 -0
  231. package/dist/testing/require-test-companion/require-test-companion-test-helpers.d.ts.map +1 -0
  232. package/dist/testing/require-test-companion/require-test-companion-test-helpers.js +183 -0
  233. package/dist/testing/require-test-companion/require-test-companion-utilities.d.ts +28 -0
  234. package/dist/testing/require-test-companion/require-test-companion-utilities.d.ts.map +1 -0
  235. package/dist/testing/require-test-companion/require-test-companion-utilities.js +26 -0
  236. package/dist/testing/require-test-companion/rule.d.ts +5 -0
  237. package/dist/testing/require-test-companion/rule.d.ts.map +1 -0
  238. package/dist/testing/require-test-companion/rule.js +57 -0
  239. package/dist/testing/require-test-companion/types.d.ts +11 -0
  240. package/dist/testing/require-test-companion/types.d.ts.map +1 -0
  241. package/dist/testing/require-test-companion/types.js +2 -0
  242. package/dist/testing/single-act-statement/index.d.ts +2 -0
  243. package/dist/testing/single-act-statement/index.d.ts.map +1 -0
  244. package/dist/testing/single-act-statement/index.js +2 -0
  245. package/dist/testing/single-act-statement/rule.d.ts +4 -0
  246. package/dist/testing/single-act-statement/rule.d.ts.map +1 -0
  247. package/dist/testing/single-act-statement/rule.js +33 -0
  248. package/package.json +106 -0
@@ -0,0 +1,107 @@
1
+ /**
2
+ * Creates createFixer.
3
+ * @returns Return value output.
4
+ * @example
5
+ * ```typescript
6
+ * createFixer();
7
+ * ```
8
+ */
9
+ const createFixer = () => ({
10
+ insertTextAfter: (syntaxElement, text) => {
11
+ void syntaxElement;
12
+ return { range: [0, 0], text };
13
+ },
14
+ insertTextAfterRange: (range, text) => ({ range, text }),
15
+ insertTextBefore: (syntaxElement, text) => {
16
+ void syntaxElement;
17
+ return { range: [0, 0], text };
18
+ },
19
+ insertTextBeforeRange: (range, text) => ({ range, text }),
20
+ remove: (syntaxElement) => {
21
+ void syntaxElement;
22
+ return { range: [0, 0], text: "" };
23
+ },
24
+ removeRange: (range) => ({ range, text: "" }),
25
+ replaceText: (syntaxElement, text) => {
26
+ void syntaxElement;
27
+ return { range: [0, 0], text };
28
+ },
29
+ replaceTextRange: (range, text) => ({ range, text }),
30
+ });
31
+ /**
32
+ * Checks isFixIterable.
33
+ * @param fixResult Input fixResult value.
34
+ * @returns Return value output.
35
+ * @example
36
+ * ```typescript
37
+ * isFixIterable();
38
+ * ```
39
+ */
40
+ const isFixIterable = (fixResult) => Symbol.iterator in fixResult;
41
+ /**
42
+ * Gets getFixText.
43
+ * @param fixResult Input fixResult value.
44
+ * @returns Return value output.
45
+ * @example
46
+ * ```typescript
47
+ * getFixText();
48
+ * ```
49
+ */
50
+ const getFixText = (fixResult) => {
51
+ if (fixResult === void 0) {
52
+ return void 0;
53
+ }
54
+ if (isFixIterable(fixResult)) {
55
+ return [...fixResult][0]?.text;
56
+ }
57
+ return fixResult.text;
58
+ };
59
+ /**
60
+ * Gets getFixes.
61
+ * @param reports Input reports value.
62
+ * @returns Return value output.
63
+ * @example
64
+ * ```typescript
65
+ * getFixes();
66
+ * ```
67
+ */
68
+ const getFixes = (reports) => {
69
+ const fixer = createFixer();
70
+ const fixes = [];
71
+ for (const report of reports) {
72
+ const fixResult = report.fix?.(fixer) ?? void 0;
73
+ if (fixResult !== void 0) {
74
+ if (isFixIterable(fixResult)) {
75
+ fixes.push(...fixResult);
76
+ }
77
+ else {
78
+ fixes.push(fixResult);
79
+ }
80
+ }
81
+ }
82
+ return fixes;
83
+ };
84
+ /**
85
+ * Applies applyFixes.
86
+ * @param sourceText Input sourceText value.
87
+ * @param fixes Input fixes value.
88
+ * @returns Return value output.
89
+ * @example
90
+ * ```typescript
91
+ * applyFixes();
92
+ * ```
93
+ */
94
+ const applyFixes = (sourceText, fixes) => {
95
+ const sorted = fixes.toSorted((left, right) => right.range[0] - left.range[0]);
96
+ let output = sourceText;
97
+ for (const fix of sorted) {
98
+ output = [
99
+ output.slice(0, fix.range[0]),
100
+ fix.text,
101
+ output.slice(fix.range[1]),
102
+ ].join("");
103
+ }
104
+ return output;
105
+ };
106
+ export { applyFixes, createFixer, getFixes, getFixText };
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RvY3MvdGVzdC1oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVdBOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLFdBQVcsR0FBRyxHQUFvQyxFQUFFLENBQUMsQ0FBQztJQUMxRCxlQUFlLEVBQUUsQ0FBQyxhQUFhLEVBQUUsSUFBSSxFQUFZLEVBQUU7UUFDakQsS0FBSyxhQUFhLENBQUM7UUFDbkIsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBQ0Qsb0JBQW9CLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFZLEVBQUUsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ2xFLGdCQUFnQixFQUFFLENBQUMsYUFBYSxFQUFFLElBQUksRUFBWSxFQUFFO1FBQ2xELEtBQUssYUFBYSxDQUFDO1FBQ25CLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUNELHFCQUFxQixFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksRUFBWSxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUNuRSxNQUFNLEVBQUUsQ0FBQyxhQUFhLEVBQVksRUFBRTtRQUNsQyxLQUFLLGFBQWEsQ0FBQztRQUNuQixPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBQ0QsV0FBVyxFQUFFLENBQUMsS0FBSyxFQUFZLEVBQUUsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUN2RCxXQUFXLEVB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cGUgZGVmaW5pdGlvbiBmb3IgcnVsZSBkYXRhLiAqL1xuaW50ZXJmYWNlIEZpeFJlcG9ydEVudHJ5IHtcbiAgLyoqIEZpeCBoZWxwZXIgdmFsdWUuICovXG4gIGZpeD86IG51bGwgfCBSdWxlLlJlcG9ydEZpeGVyIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG50eXBlIEZpeFJlc3VsdCA9IEV4Y2x1ZGU8UmV0dXJuVHlwZTxSdWxlLlJlcG9ydEZpeGVyPiwgbnVsbD47XG5cbi8qKlxuICogQ3JlYXRlcyBjcmVhdGVGaXhlci5cbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY3JlYXRlRml4ZXIoKTtcbiAqIGBgYFxuICovXG5jb25zdCBjcmVhdGVGaXhlciA9ICgpOiBQYXJhbWV0ZXJzPFJ1bGUuUmVwb3J0Rml4ZXI+WzBdID0+ICh7XG4gIGluc2VydFRleHRBZnRlcjogKHN5bnRheEVsZW1lbnQsIHRleHQpOiBSdWxlLkZpeCA9PiB7XG4gICAgdm9pZCBzeW50YXhFbGVtZW50O1xuICAgIHJldHVybiB7IHJhbmdlOiBbMCwgMF0sIHRleHQgfTtcbiAgfSxcbiAgaW5zZXJ0VGV4dEFmdGVyUmFuZ2U6IChyYW5nZSwgdGV4dCk6IFJ1bGUuRml4ID0+ICh7IHJhbmdlLCB0ZXh0IH0pLFxuICBpbnNlcnRUZXh0QmVmb3JlOiAoc3ludGF4RWxlbWVudCwgdGV4dCk6IFJ1bGUuRml4ID0+IHtcbiAgICB2b2lkIHN5bnRheEVsZW1lbnQ7XG4gICAgcmV0dXJuIHsgcmFuZ2U6IFswLCAwXSwgdGV4dCB9O1xuICB9LFxuICBpbnNlcnRUZXh0QmVmb3JlUmFuZ2U6IChyYW5nZSwgdGV4dCk6IFJ1bGUuRml4ID0+ICh7IHJhbmdlLCB0ZXh0IH0pLFxuICByZW1vdmU6IChzeW50YXhFbGVtZW50KTogUnVsZS5GaXggPT4ge1xuICAgIHZvaWQgc3ludGF4RWxlbWVudDtcbiAgICByZXR1cm4geyByYW5nZTogWzAsIDBdLCB0ZXh0OiBcIlwiIH07XG4gIH0sXG4gIHJlbW92ZVJhbmdlOiAocmFuZ2UpOiBSdWxlLkZpeCA9PiAoeyByYW5nZSwgdGV4dDogXCJcIiB9KSxcbiAgcmVwbGFjZVRleHQ6IChzeW50YXhFbGVtZW50LCB0ZXh0KTogUnVsZS5GaXggPT4ge1xuICAgIHZvaWQgc3ludGF4RWxlbWVudDtcbiAgICByZXR1cm4geyByYW5nZTogWzAsIDBdLCB0ZXh0IH07XG4gIH0sXG4gIHJlcGxhY2VUZXh0UmFuZ2U6IChyYW5nZSwgdGV4dCk6IFJ1bGUuRml4ID0+ICh7IHJhbmdlLCB0ZXh0IH0pLFxufSk7XG5cbi8qKlxuICogQ2hlY2tzIGlzRml4SXRlcmFibGUuXG4gKiBAcGFyYW0gZml4UmVzdWx0IElucHV0IGZpeFJlc3VsdCB2YWx1ZS5cbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogaXNGaXhJdGVyYWJsZSgpO1xuICogYGBgXG4gKi9cbmNvbnN0IGlzRml4SXRlcmFibGUgPSAoZml4UmVzdWx0OiBGaXhSZXN1bHQpOiBmaXhSZXN1bHQgaXMgSXRlcmFibGU8UnVsZS5GaXg+ID0+XG4gIFN5bWJvbC5pdGVyYXRvciBpbiBmaXhSZXN1bHQ7XG5cbi8qKlxuICogR2V0cyBnZXRGaXhUZXh0LlxuICogQHBhcmFtIGZpeFJlc3VsdCBJbnB1dCBmaXhSZXN1bHQgdmFsdWUuXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGdldEZpeFRleHQoKTtcbiAqIGBgYFxuICovXG5jb25zdCBnZXRGaXhUZXh0ID0gKGZpeFJlc3VsdD86IEZpeFJlc3VsdCk6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XG4gIGlmIChmaXhSZXN1bHQgPT09IHZvaWQgMCkge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cbiAgaWYgKGlzRml4SXRlcmFibGUoZml4UmVzdWx0KSkge1xuICAgIHJldHVybiBbLi4uZml4UmVzdWx0XVswXT8udGV4dDtcbiAgfVxuXG4gIHJldHVybiBmaXhSZXN1bHQudGV4dDtcbn07XG5cbi8qKlxuICogR2V0cyBnZXRGaXhlcy5cbiAqIEBwYXJhbSByZXBvcnRzIElucHV0IHJlcG9ydHMgdmFsdWUuXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGdldEZpeGVzKCk7XG4gKiBgYGBcbiAqL1xuY29uc3QgZ2V0Rml4ZXMgPSAocmVwb3J0czogRml4UmVwb3J0RW50cnlbXSk6IFJ1bGUuRml4W10gPT4ge1xuICBjb25zdCBmaXhlciA9IGNyZWF0ZUZpeGVyKCk7XG4gIGNvbnN0IGZpeGVzOiBSdWxlLkZpeFtdID0gW107XG5cbiAgZm9yIChjb25zdCByZXBvcnQgb2YgcmVwb3J0cykge1xuICAgIGNvbnN0IGZpeFJlc3VsdCA9IHJlcG9ydC5maXg/LihmaXhlcikgPz8gdm9pZCAwO1xuXG4gICAgaWYgKGZpeFJlc3VsdCAhPT0gdm9pZCAwKSB7XG4gICAgICBpZiAoaXNGaXhJdGVyYWJsZShmaXhSZXN1bHQpKSB7XG4gICAgICAgIGZpeGVzLnB1c2goLi4uZml4UmVzdWx0KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZpeGVzLnB1c2goZml4UmVzdWx0KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gZml4ZXM7XG59O1xuXG4vKipcbiAqIEFwcGxpZXMgYXBwbHlGaXhlcy5cbiAqIEBwYXJhbSBzb3VyY2VUZXh0IElucHV0IHNvdXJjZVRleHQgdmFsdWUuXG4gKiBAcGFyYW0gZml4ZXMgSW5wdXQgZml4ZXMgdmFsdWUuXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGFwcGx5Rml4ZXMoKTtcbiAqIGBgYFxuICovXG5jb25zdCBhcHBseUZpeGVzID0gKHNvdXJjZVRleHQ6IHN0cmluZywgZml4ZXM6IFJ1bGUuRml4W10pOiBzdHJpbmcgPT4ge1xuICBjb25zdCBzb3J0ZWQgPSBmaXhlcy50b1NvcnRlZChcbiAgICAobGVmdCwgcmlnaHQpID0+IHJpZ2h0LnJhbmdlWzBdIC0gbGVmdC5yYW5nZVswXSxcbiAgKTtcblxuICBsZXQgb3V0cHV0ID0gc291cmNlVGV4dDtcblxuICBmb3IgKGNvbnN0IGZpeCBvZiBzb3J0ZWQpIHtcbiAgICBvdXRwdXQgPSBbXG4gICAgICBvdXRwdXQuc2xpY2UoMCwgZml4LnJhbmdlWzBdKSxcbiAgICAgIGZpeC50ZXh0LFxuICAgICAgb3V0cHV0LnNsaWNlKGZpeC5yYW5nZVsxXSksXG4gICAgXS5qb2luKFwiXCIpO1xuICB9XG5cbiAgcmV0dXJuIG91dHB1dDtcbn07XG5cbmV4cG9ydCB7IGFwcGx5Rml4ZXMsIGNyZWF0ZUZpeGVyLCBnZXRGaXhlcywgZ2V0Rml4VGV4dCB9O1xuIl19
@@ -0,0 +1,6 @@
1
+ export { codeperfectPlugin, codeperfectPlugin as default, } from "./codeperfect-plugin";
2
+ export { aaa, all, architecture, core, docs, testing } from "./presets";
3
+ export { customRules } from "./custom-rules";
4
+ export type { CustomRuleEntry } from "./custom-rules";
5
+ export { assertActualExpectedNamesRule, barrelFilesExportsOnlyRule, consistentBarrelFilesRule, enforceAaaPhasePurityRule, enforceAaaStructureRule, noInterfaceMemberDocumentationRule, noMultipleDeclaratorsRule, noReexportsOutsideBarrelsRule, preferInterfaceTypesRule, preferViMockedImportRule, requireAaaSectionsRule, requireActResultCaptureRule, requireExampleLanguageRule, requireTestCompanionRule, singleActStatementRule, singleLineJsdocRule, } from "./rules";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,iBAAiB,EACjB,iBAAiB,IAAI,OAAO,GAC7B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EACL,6BAA6B,EAC7B,0BAA0B,EAC1B,yBAAyB,EACzB,yBAAyB,EACzB,uBAAuB,EACvB,kCAAkC,EAClC,yBAAyB,EACzB,6BAA6B,EAC7B,wBAAwB,EACxB,wBAAwB,EACxB,sBAAsB,EACtB,2BAA2B,EAC3B,0BAA0B,EAC1B,wBAAwB,EACxB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,SAAS,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,6 @@
1
+ /* v8 ignore file */
2
+ export { codeperfectPlugin, codeperfectPlugin as default, } from "./codeperfect-plugin";
3
+ export { aaa, all, architecture, core, docs, testing } from "./presets";
4
+ export { customRules } from "./custom-rules";
5
+ export { assertActualExpectedNamesRule, barrelFilesExportsOnlyRule, consistentBarrelFilesRule, enforceAaaPhasePurityRule, enforceAaaStructureRule, noInterfaceMemberDocumentationRule, noMultipleDeclaratorsRule, noReexportsOutsideBarrelsRule, preferInterfaceTypesRule, preferViMockedImportRule, requireAaaSectionsRule, requireActResultCaptureRule, requireExampleLanguageRule, requireTestCompanionRule, singleActStatementRule, singleLineJsdocRule, } from "./rules";
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0JBQW9CO0FBRXBCLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsaUJBQWlCLElBQUksT0FBTyxHQUM3QixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN4RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUNMLDZCQUE2QixFQUM3QiwwQkFBMEIsRUFDMUIseUJBQXlCLEVBQ3pCLHlCQUF5QixFQUN6Qix1QkFBdUIsRUFDdkIsa0NBQWtDLEVBQ2xDLHlCQUF5QixFQUN6Qiw2QkFBNkIsRUFDN0Isd0JBQXdCLEVBQ3hCLHdCQUF3QixFQUN4QixzQkFBc0IsRUFDdEIsMkJBQTJCLEVBQzNCLDBCQUEwQixFQUMxQix3QkFBd0IsRUFDeEIsc0JBQXNCLEVBQ3RCLG1CQUFtQixHQUNwQixNQUFNLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIHY4IGlnbm9yZSBmaWxlICovXG5cbmV4cG9ydCB7XG4gIGNvZGVwZXJmZWN0UGx1Z2luLFxuICBjb2RlcGVyZmVjdFBsdWdpbiBhcyBkZWZhdWx0LFxufSBmcm9tIFwiLi9jb2RlcGVyZmVjdC1wbHVnaW5cIjtcbmV4cG9ydCB7IGFhYSwgYWxsLCBhcmNoaXRlY3R1cmUsIGNvcmUsIGRvY3MsIHRlc3RpbmcgfSBmcm9tIFwiLi9wcmVzZXRzXCI7XG5leHBvcnQgeyBjdXN0b21SdWxlcyB9IGZyb20gXCIuL2N1c3RvbS1ydWxlc1wiO1xuZXhwb3J0IHR5cGUgeyBDdXN0b21SdWxlRW50cnkgfSBmcm9tIFwiLi9jdXN0b20tcnVsZXNcIjtcbmV4cG9ydCB7XG4gIGFzc2VydEFjdHVhbEV4cGVjdGVkTmFtZXNSdWxlLFxuICBiYXJyZWxGaWxlc0V4cG9ydHNPbmx5UnVsZSxcbiAgY29uc2lzdGVudEJhcnJlbEZpbGVzUnVsZSxcbiAgZW5mb3JjZUFhYVBoYXNlUHVyaXR5UnVsZSxcbiAgZW5mb3JjZUFhYVN0cnVjdHVyZVJ1bGUsXG4gIG5vSW50ZXJmYWNlTWVtYmVyRG9jdW1lbnRhdGlvblJ1bGUsXG4gIG5vTXVsdGlwbGVEZWNsYXJhdG9yc1J1bGUsXG4gIG5vUmVleHBvcnRzT3V0c2lkZUJhcnJlbHNSdWxlLFxuICBwcmVmZXJJbnRlcmZhY2VUeXBlc1J1bGUsXG4gIHByZWZlclZpTW9ja2VkSW1wb3J0UnVsZSxcbiAgcmVxdWlyZUFhYVNlY3Rpb25zUnVsZSxcbiAgcmVxdWlyZUFjdFJlc3VsdENhcHR1cmVSdWxlLFxuICByZXF1aXJlRXhhbXBsZUxhbmd1YWdlUnVsZSxcbiAgcmVxdWlyZVRlc3RDb21wYW5pb25SdWxlLFxuICBzaW5nbGVBY3RTdGF0ZW1lbnRSdWxlLFxuICBzaW5nbGVMaW5lSnNkb2NSdWxlLFxufSBmcm9tIFwiLi9ydWxlc1wiO1xuIl19
@@ -0,0 +1,10 @@
1
+ import type { Linter } from "eslint";
2
+ type CodeperfectPreset = Pick<Linter.Config, "plugins" | "rules">;
3
+ declare const all: CodeperfectPreset;
4
+ declare const architecture: CodeperfectPreset;
5
+ declare const core: CodeperfectPreset;
6
+ declare const docs: CodeperfectPreset;
7
+ declare const testing: CodeperfectPreset;
8
+ declare const aaa: CodeperfectPreset;
9
+ export { aaa, all, architecture, core, docs, testing };
10
+ //# sourceMappingURL=presets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../src/presets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAMrC,KAAK,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,CAAC;AA4DlE,QAAA,MAAM,GAAG,mBAA6B,CAAC;AACvC,QAAA,MAAM,YAAY,mBAAsC,CAAC;AACzD,QAAA,MAAM,IAAI,mBAA8B,CAAC;AACzC,QAAA,MAAM,IAAI,mBAA8B,CAAC;AACzC,QAAA,MAAM,OAAO,mBAAiC,CAAC;AAC/C,QAAA,MAAM,GAAG,mBAA6B,CAAC;AAEvC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC"}
@@ -0,0 +1,50 @@
1
+ import { codeperfectPlugin, codeperfectRules } from "./codeperfect-plugin";
2
+ const architectureRuleNames = [
3
+ "barrel-files-exports-only",
4
+ "consistent-barrel-files",
5
+ "no-reexports-outside-barrels",
6
+ ];
7
+ const coreRuleNames = [
8
+ "no-multiple-declarators",
9
+ "prefer-interface-types",
10
+ ];
11
+ const docsRuleNames = [
12
+ "no-interface-member-docs",
13
+ "require-example-language",
14
+ "single-line-jsdoc",
15
+ ];
16
+ const aaaRuleNames = [
17
+ "enforce-aaa-phase-purity",
18
+ "enforce-aaa-structure",
19
+ "require-aaa-sections",
20
+ ];
21
+ const testingRuleNames = [
22
+ "assert-actual-expected-names",
23
+ "enforce-aaa-phase-purity",
24
+ "enforce-aaa-structure",
25
+ "prefer-vi-mocked-import",
26
+ "require-aaa-sections",
27
+ "require-act-result-capture",
28
+ "require-test-companion",
29
+ "single-act-statement",
30
+ ];
31
+ const allRuleNames = Object.keys(codeperfectRules);
32
+ function createRules(ruleNames) {
33
+ return Object.fromEntries(ruleNames.map((ruleName) => [`codeperfect/${ruleName}`, "error"]));
34
+ }
35
+ function createPreset(ruleNames) {
36
+ return {
37
+ plugins: {
38
+ codeperfect: codeperfectPlugin,
39
+ },
40
+ rules: createRules(ruleNames),
41
+ };
42
+ }
43
+ const all = createPreset(allRuleNames);
44
+ const architecture = createPreset(architectureRuleNames);
45
+ const core = createPreset(coreRuleNames);
46
+ const docs = createPreset(docsRuleNames);
47
+ const testing = createPreset(testingRuleNames);
48
+ const aaa = createPreset(aaaRuleNames);
49
+ export { aaa, all, architecture, core, docs, testing };
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2V0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wcmVzZXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBUzNFLE1BQU0scUJBQXFCLEdBQUc7SUFDNUIsMkJBQTJCO0lBQzNCLHlCQUF5QjtJQUN6Qiw4QkFBOEI7Q0FDbUIsQ0FBQztBQUVwRCxNQUFNLGFBQWEsR0FBRztJQUNwQix5QkFBeUI7SUFDekIsd0JBQXdCO0NBQ3lCLENBQUM7QUFFcEQsTUFBTSxhQUFhLEdBQUc7SUFDcEIsMEJBQTBCO0lBQzFCLDBCQUEwQjtJQUMxQixtQkFBbUI7Q0FDOEIsQ0FBQztBQUVwRCxNQUFNLFlBQVksR0FBRztJQUNuQiwwQkFBMEI7SUFDMUIsdUJBQXVCO0lBQ3ZCLHNCQUFzQjtDQUMyQixDQUFDO0FBRXBELE1BQU0sZ0JBQWdCLEdBQUc7SUFDdkIsOEJBQThCO0lBQzlCLDBCQUEwQjtJQUMxQix1QkFBdUI7SUFDdkIseUJBQXlCO0lBQ3pCLHNCQUFzQjtJQUN0Qiw0QkFBNEI7SUFDNUIsd0JBQXdCO0lBQ3hCLHNCQUFzQjtDQUMyQixDQUFDO0FBRXBELE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQTBCLENBQUM7QUFFNUUsU0FBUyxXQUFXLENBQ2xCLFNBQXlDO0lBRXpDLE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FDdkIsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxlQUFlLFFBQVEsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQ3hDLENBQUM7QUFDOUIsQ0FBQztBQUVELFNBQVMsWUFBWSxDQUNuQixTQUF5QztJQUV6QyxPQUFPO1FBQ0wsT0FBTyxFQUFFO1lBQ1AsV0FBVyxFQUFFLGlCQUFpQjtTQUMvQjtRQUNELEtBQUssRUFBRSxXQUFXLENBQUMsU0FBUyxDQUFDO0tBQzlCLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxHQUFHLEdBQUcsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQ3ZDLE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0FBQ3pELE1BQU0sSUFBSSxHQUFHLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUN6QyxNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDekMsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFDL0MsTUFBTSxHQUFHLEdBQUcsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBRXZDLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBMaW50ZXIgfSBmcm9tIFwiZXNsaW50XCI7XG5cbmltcG9ydCB7IGNvZGVwZXJmZWN0UGx1Z2luLCBjb2RlcGVyZmVjdFJ1bGVzIH0gZnJvbSBcIi4vY29kZXBlcmZlY3QtcGx1Z2luXCI7XG5cbnR5cGUgQ29kZXBlcmZlY3RSdWxlTmFtZSA9IGtleW9mIHR5cGVvZiBjb2RlcGVyZmVjdFJ1bGVzO1xudHlwZSBDb2RlcGVyZmVjdFJ1bGVLZXkgPSBgY29kZXBlcmZlY3QvJHtDb2RlcGVyZmVjdFJ1bGVOYW1lfWA7XG50eXBlIENvZGVwZXJmZWN0UHJlc2V0ID0gUGljazxMaW50ZXIuQ29uZmlnLCBcInBsdWdpbnNcIiB8IFwicnVsZXNcIj47XG50eXBlIENvZGVwZXJmZWN0UnVsZUVudHJpZXMgPSBQYXJ0aWFsPFxuICBSZWNvcmQ8Q29kZXBlcmZlY3RSdWxlS2V5LCBMaW50ZXIuUnVsZUVudHJ5PlxuPjtcblxuY29uc3QgYXJjaGl0ZWN0dXJlUnVsZU5hbWVzID0gW1xuICBcImJhcnJlbC1maWxlcy1leHBvcnRzLW9ubHlcIixcbiAgXCJjb25zaXN0ZW50LWJhcnJlbC1maWxlc1wiLFxuICBcIm5vLXJlZXhwb3J0cy1vdXRzaWRlLWJhcnJlbHNcIixcbl0gYXMgY29uc3Qgc2F0aXNmaWVzIHJlYWRvbmx5IENvZGVwZXJmZWN0UnVsZU5hbWVbXTtcblxuY29uc3QgY29yZVJ1bGVOYW1lcyA9IFtcbiAgXCJuby1tdWx0aXBsZS1kZWNsYXJhdG9yc1wiLFxuICBcInByZWZlci1pbnRlcmZhY2UtdHlwZXNcIixcbl0gYXMgY29uc3Qgc2F0aXNmaWVzIHJlYWRvbmx5IENvZGVwZXJmZWN0UnVsZU5hbWVbXTtcblxuY29uc3QgZG9jc1J1bGVOYW1lcyA9IFtcbiAgXCJuby1pbnRlcmZhY2UtbWVtYmVyLWRvY3NcIixcbiAgXCJyZXF1aXJlLWV4YW1wbGUtbGFuZ3VhZ2VcIixcbiAgXCJzaW5nbGUtbGluZS1qc2RvY1wiLFxuXSBhcyBjb25zdCBzYXRpc2ZpZXMgcmVhZG9ubHkgQ29kZXBlcmZlY3RSdWxlTmFtZVtdO1xuXG5jb25zdCBhYWFSdWxlTmFtZXMgPSBbXG4gIFwiZW5mb3JjZS1hYWEtcGhhc2UtcHVyaXR5XCIsXG4gIFwiZW5mb3JjZS1hYWEtc3RydWN0dXJlXCIsXG4gIFwicmVxdWlyZS1hYWEtc2VjdGlvbnNcIixcbl0gYXMgY29uc3Qgc2F0aXNmaWVzIHJlYWRvbmx5IENvZGVwZXJmZWN0UnVsZU5hbWVbXTtcblxuY29uc3QgdGVzdGluZ1J1bGVOYW1lcyA9IFtcbiAgXCJhc3NlcnQtYWN0dWFsLWV4cGVjdGVkLW5hbWVzXCIsXG4gIFwiZW5mb3JjZS1hYWEtcGhhc2UtcHVyaXR5XCIsXG4gIFwiZW5mb3JjZS1hYWEtc3RydWN0dXJlXCIsXG4gIFwicHJlZmVyLXZpLW1vY2tlZC1pbXBvcnRcIixcbiAgXCJyZXF1aXJlLWFhYS1zZWN0aW9uc1wiLFxuICBcInJlcXVpcmUtYWN0LXJlc3VsdC1jYXB0dXJlXCIsXG4gIFwicmVxdWlyZS10ZXN0LWNvbXBhbmlvblwiLFxuICBcInNpbmdsZS1hY3Qtc3RhdGVtZW50XCIsXG5dIGFzIGNvbnN0IHNhdGlzZmllcyByZWFkb25seSBDb2RlcGVyZmVjdFJ1bGVOYW1lW107XG5cbmNvbnN0IGFsbFJ1bGVOYW1lcyA9IE9iamVjdC5rZXlzKGNvZGVwZXJmZWN0UnVsZXMpIGFzIENvZGVwZXJmZWN0UnVsZU5hbWVbXTtcblxuZnVuY3Rpb24gY3JlYXRlUnVsZXMoXG4gIHJ1bGVOYW1lczogcmVhZG9ubHkgQ29kZXBlcmZlY3RSdWxlTmFtZVtdLFxuKTogQ29kZXBlcmZlY3RSdWxlRW50cmllcyB7XG4gIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgcnVsZU5hbWVzLm1hcCgocnVsZU5hbWUpID0+IFtgY29kZXBlcmZlY3QvJHtydWxlTmFtZX1gLCBcImVycm9yXCJdKSxcbiAgKSBhcyBDb2RlcGVyZmVjdFJ1bGVFbnRyaWVzO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVQcmVzZXQoXG4gIHJ1bGVOYW1lczogcmVhZG9ubHkgQ29kZXBlcmZlY3RSdWxlTmFtZVtdLFxuKTogQ29kZXBlcmZlY3RQcmVzZXQge1xuICByZXR1cm4ge1xuICAgIHBsdWdpbnM6IHtcbiAgICAgIGNvZGVwZXJmZWN0OiBjb2RlcGVyZmVjdFBsdWdpbixcbiAgICB9LFxuICAgIHJ1bGVzOiBjcmVhdGVSdWxlcyhydWxlTmFtZXMpLFxuICB9O1xufVxuXG5jb25zdCBhbGwgPSBjcmVhdGVQcmVzZXQoYWxsUnVsZU5hbWVzKTtcbmNvbnN0IGFyY2hpdGVjdHVyZSA9IGNyZWF0ZVByZXNldChhcmNoaXRlY3R1cmVSdWxlTmFtZXMpO1xuY29uc3QgY29yZSA9IGNyZWF0ZVByZXNldChjb3JlUnVsZU5hbWVzKTtcbmNvbnN0IGRvY3MgPSBjcmVhdGVQcmVzZXQoZG9jc1J1bGVOYW1lcyk7XG5jb25zdCB0ZXN0aW5nID0gY3JlYXRlUHJlc2V0KHRlc3RpbmdSdWxlTmFtZXMpO1xuY29uc3QgYWFhID0gY3JlYXRlUHJlc2V0KGFhYVJ1bGVOYW1lcyk7XG5cbmV4cG9ydCB7IGFhYSwgYWxsLCBhcmNoaXRlY3R1cmUsIGNvcmUsIGRvY3MsIHRlc3RpbmcgfTtcbiJdfQ==
@@ -0,0 +1,5 @@
1
+ export { barrelFilesExportsOnlyRule, consistentBarrelFilesRule, noReexportsOutsideBarrelsRule, } from "../architecture";
2
+ export { noMultipleDeclaratorsRule, preferInterfaceTypesRule } from "../core";
3
+ export { noInterfaceMemberDocumentationRule, requireExampleLanguageRule, singleLineJsdocRule, } from "../docs";
4
+ export { assertActualExpectedNamesRule, enforceAaaPhasePurityRule, enforceAaaStructureRule, preferViMockedImportRule, requireAaaSectionsRule, requireActResultCaptureRule, requireTestCompanionRule, singleActStatementRule, } from "../testing";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,6BAA6B,GAC9B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAC9E,OAAO,EACL,kCAAkC,EAClC,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,6BAA6B,EAC7B,yBAAyB,EACzB,uBAAuB,EACvB,wBAAwB,EACxB,sBAAsB,EACtB,2BAA2B,EAC3B,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,6 @@
1
+ /* v8 ignore file */
2
+ export { barrelFilesExportsOnlyRule, consistentBarrelFilesRule, noReexportsOutsideBarrelsRule, } from "../architecture";
3
+ export { noMultipleDeclaratorsRule, preferInterfaceTypesRule } from "../core";
4
+ export { noInterfaceMemberDocumentationRule, requireExampleLanguageRule, singleLineJsdocRule, } from "../docs";
5
+ export { assertActualExpectedNamesRule, enforceAaaPhasePurityRule, enforceAaaStructureRule, preferViMockedImportRule, requireAaaSectionsRule, requireActResultCaptureRule, requireTestCompanionRule, singleActStatementRule, } from "../testing";
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcnVsZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0JBQW9CO0FBRXBCLE9BQU8sRUFDTCwwQkFBMEIsRUFDMUIseUJBQXlCLEVBQ3pCLDZCQUE2QixHQUM5QixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUM5RSxPQUFPLEVBQ0wsa0NBQWtDLEVBQ2xDLDBCQUEwQixFQUMxQixtQkFBbUIsR0FDcEIsTUFBTSxTQUFTLENBQUM7QUFDakIsT0FBTyxFQUNMLDZCQUE2QixFQUM3Qix5QkFBeUIsRUFDekIsdUJBQXVCLEVBQ3ZCLHdCQUF3QixFQUN4QixzQkFBc0IsRUFDdEIsMkJBQTJCLEVBQzNCLHdCQUF3QixFQUN4QixzQkFBc0IsR0FDdkIsTUFBTSxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiB2OCBpZ25vcmUgZmlsZSAqL1xuXG5leHBvcnQge1xuICBiYXJyZWxGaWxlc0V4cG9ydHNPbmx5UnVsZSxcbiAgY29uc2lzdGVudEJhcnJlbEZpbGVzUnVsZSxcbiAgbm9SZWV4cG9ydHNPdXRzaWRlQmFycmVsc1J1bGUsXG59IGZyb20gXCIuLi9hcmNoaXRlY3R1cmVcIjtcbmV4cG9ydCB7IG5vTXVsdGlwbGVEZWNsYXJhdG9yc1J1bGUsIHByZWZlckludGVyZmFjZVR5cGVzUnVsZSB9IGZyb20gXCIuLi9jb3JlXCI7XG5leHBvcnQge1xuICBub0ludGVyZmFjZU1lbWJlckRvY3VtZW50YXRpb25SdWxlLFxuICByZXF1aXJlRXhhbXBsZUxhbmd1YWdlUnVsZSxcbiAgc2luZ2xlTGluZUpzZG9jUnVsZSxcbn0gZnJvbSBcIi4uL2RvY3NcIjtcbmV4cG9ydCB7XG4gIGFzc2VydEFjdHVhbEV4cGVjdGVkTmFtZXNSdWxlLFxuICBlbmZvcmNlQWFhUGhhc2VQdXJpdHlSdWxlLFxuICBlbmZvcmNlQWFhU3RydWN0dXJlUnVsZSxcbiAgcHJlZmVyVmlNb2NrZWRJbXBvcnRSdWxlLFxuICByZXF1aXJlQWFhU2VjdGlvbnNSdWxlLFxuICByZXF1aXJlQWN0UmVzdWx0Q2FwdHVyZVJ1bGUsXG4gIHJlcXVpcmVUZXN0Q29tcGFuaW9uUnVsZSxcbiAgc2luZ2xlQWN0U3RhdGVtZW50UnVsZSxcbn0gZnJvbSBcIi4uL3Rlc3RpbmdcIjtcbiJdfQ==
@@ -0,0 +1,36 @@
1
+ import type { Rule } from "eslint";
2
+ import type * as ESTree from "estree";
3
+ import type { AaaPhase, LocatedNode, SourceComment, TestBlockAnalysis } from "./types";
4
+ declare const aaaPhaseOrder: {
5
+ readonly Act: 1;
6
+ readonly Arrange: 0;
7
+ readonly Assert: 2;
8
+ };
9
+ declare function getSectionPhases(commentValue: string): AaaPhase[];
10
+ declare function analyzeTestBlock(context: Rule.RuleContext, node: ESTree.CallExpression): TestBlockAnalysis | undefined;
11
+ declare function countActStatements(analysis: TestBlockAnalysis): number;
12
+ interface AssertionIdentifiers {
13
+ actual: string | undefined;
14
+ expected: string | undefined;
15
+ }
16
+ declare function getAssertionIdentifiers(statement: ESTree.Statement): AssertionIdentifiers;
17
+ declare function getAssertDeclaredIdentifiers(analysis: TestBlockAnalysis): Map<string, LocatedNode<ESTree.Identifier>>;
18
+ declare function getFlattenedSections(analysis: Pick<TestBlockAnalysis, "sectionComments">): Array<{
19
+ comment: SourceComment;
20
+ phase: AaaPhase;
21
+ }>;
22
+ declare function getPhaseBoundaryComments(analysis: Pick<TestBlockAnalysis, "sectionComments">): import("./types").SectionComment[];
23
+ declare function hasAssertion(statement: ESTree.Statement): boolean;
24
+ declare function hasAsyncLogic(statement: ESTree.Statement): boolean;
25
+ declare function hasAwait(statement: ESTree.Statement): boolean;
26
+ declare function hasBlankLineBeforeComment(sourceText: string, comment: SourceComment): boolean;
27
+ declare function hasCapturableActResult(statement: ESTree.Statement): boolean;
28
+ declare function hasMutation(statement: ESTree.Statement): boolean;
29
+ declare function isMeaningfulActStatement(statement: ESTree.Statement): boolean;
30
+ declare function isSetupLikeStatement(statement: ESTree.Statement): boolean;
31
+ declare function isValidAssertStatement(statement: ESTree.Statement): boolean;
32
+ declare function usesPrefix(name: string, prefix: "actual" | "expected"): boolean;
33
+ declare function getLineStartRange(sourceText: string, line: number): [number, number];
34
+ declare function getIndentationAtOffset(sourceText: string, offset: number): string;
35
+ export { aaaPhaseOrder, analyzeTestBlock, countActStatements, getAssertDeclaredIdentifiers, getAssertionIdentifiers, getFlattenedSections, getIndentationAtOffset, getLineStartRange, getPhaseBoundaryComments, getSectionPhases, hasAssertion, hasAsyncLogic, hasAwait, hasBlankLineBeforeComment, hasCapturableActResult, hasMutation, isMeaningfulActStatement, isSetupLikeStatement, isValidAssertStatement, usesPrefix, };
36
+ //# sourceMappingURL=analyzer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../../../src/testing/aaa/analyzer.ts"],"names":[],"mappings":"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"}