eslint-plugin-etc-misc 1.0.2 → 1.0.3

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 (370) hide show
  1. package/CHANGELOG.md +2 -4
  2. package/README.md +197 -151
  3. package/dist/_internal/casing.d.ts.map +1 -1
  4. package/dist/_internal/casing.js +6 -6
  5. package/dist/_internal/casing.js.map +1 -1
  6. package/dist/_internal/create-external-rule.d.ts +2 -1
  7. package/dist/_internal/create-external-rule.d.ts.map +1 -1
  8. package/dist/_internal/create-external-rule.js +20 -22
  9. package/dist/_internal/create-external-rule.js.map +1 -1
  10. package/dist/_internal/create-import-pattern-rule.d.ts.map +1 -1
  11. package/dist/_internal/create-import-pattern-rule.js +2 -1
  12. package/dist/_internal/create-import-pattern-rule.js.map +1 -1
  13. package/dist/_internal/get-core-rule.d.ts +2 -1
  14. package/dist/_internal/get-core-rule.d.ts.map +1 -1
  15. package/dist/_internal/get-core-rule.js +2 -1
  16. package/dist/_internal/get-core-rule.js.map +1 -1
  17. package/dist/_internal/identifier-blocks.d.ts.map +1 -1
  18. package/dist/_internal/identifier-blocks.js +4 -4
  19. package/dist/_internal/identifier-blocks.js.map +1 -1
  20. package/dist/_internal/ignore-patterns.d.ts.map +1 -1
  21. package/dist/_internal/ignore-patterns.js +2 -1
  22. package/dist/_internal/ignore-patterns.js.map +1 -1
  23. package/dist/_internal/rule-creator.d.ts +2 -1
  24. package/dist/_internal/rule-creator.d.ts.map +1 -1
  25. package/dist/_internal/rule-creator.js.map +1 -1
  26. package/dist/_internal/rule-deprecation.d.ts +2 -1
  27. package/dist/_internal/rule-deprecation.d.ts.map +1 -1
  28. package/dist/_internal/rule-deprecation.js +3 -2
  29. package/dist/_internal/rule-deprecation.js.map +1 -1
  30. package/dist/_internal/symbol-usage.d.ts.map +1 -1
  31. package/dist/_internal/symbol-usage.js +11 -10
  32. package/dist/_internal/symbol-usage.js.map +1 -1
  33. package/dist/_internal/syntax-selectors.d.ts.map +1 -1
  34. package/dist/_internal/syntax-selectors.js +13 -8
  35. package/dist/_internal/syntax-selectors.js.map +1 -1
  36. package/dist/configs/all-strict.d.ts.map +1 -1
  37. package/dist/configs/all-strict.js +3 -2
  38. package/dist/configs/all-strict.js.map +1 -1
  39. package/dist/configs/all.d.ts.map +1 -1
  40. package/dist/configs/all.js +3 -2
  41. package/dist/configs/all.js.map +1 -1
  42. package/dist/configs/minimal.d.ts +22 -0
  43. package/dist/configs/minimal.d.ts.map +1 -0
  44. package/dist/configs/minimal.js +22 -0
  45. package/dist/configs/minimal.js.map +1 -0
  46. package/dist/configs/strict-type-checked.d.ts.map +1 -1
  47. package/dist/configs/strict-type-checked.js +8 -10
  48. package/dist/configs/strict-type-checked.js.map +1 -1
  49. package/dist/configs/strict.d.ts.map +1 -1
  50. package/dist/configs/strict.js +3 -2
  51. package/dist/configs/strict.js.map +1 -1
  52. package/dist/configs.d.ts +2 -0
  53. package/dist/configs.d.ts.map +1 -1
  54. package/dist/configs.js +2 -0
  55. package/dist/configs.js.map +1 -1
  56. package/dist/rules/comment-spacing.d.ts.map +1 -1
  57. package/dist/rules/comment-spacing.js +3 -2
  58. package/dist/rules/comment-spacing.js.map +1 -1
  59. package/dist/rules/consistent-empty-lines.d.ts.map +1 -1
  60. package/dist/rules/consistent-empty-lines.js +3 -2
  61. package/dist/rules/consistent-empty-lines.js.map +1 -1
  62. package/dist/rules/consistent-filename.d.ts.map +1 -1
  63. package/dist/rules/consistent-filename.js +2 -1
  64. package/dist/rules/consistent-filename.js.map +1 -1
  65. package/dist/rules/consistent-import.d.ts.map +1 -1
  66. package/dist/rules/consistent-import.js +2 -1
  67. package/dist/rules/consistent-import.js.map +1 -1
  68. package/dist/rules/consistent-optional-props.d.ts.map +1 -1
  69. package/dist/rules/consistent-optional-props.js +6 -5
  70. package/dist/rules/consistent-optional-props.js.map +1 -1
  71. package/dist/rules/export-matching-filename-only.d.ts.map +1 -1
  72. package/dist/rules/export-matching-filename-only.js +2 -1
  73. package/dist/rules/export-matching-filename-only.js.map +1 -1
  74. package/dist/rules/match-filename.d.ts.map +1 -1
  75. package/dist/rules/match-filename.js +2 -1
  76. package/dist/rules/match-filename.js.map +1 -1
  77. package/dist/rules/max-identifier-blocks.d.ts.map +1 -1
  78. package/dist/rules/max-identifier-blocks.js +2 -4
  79. package/dist/rules/max-identifier-blocks.js.map +1 -1
  80. package/dist/rules/no-assign-mutated-array.d.ts.map +1 -1
  81. package/dist/rules/no-assign-mutated-array.js +2 -1
  82. package/dist/rules/no-assign-mutated-array.js.map +1 -1
  83. package/dist/rules/no-commented-out-code.d.ts.map +1 -1
  84. package/dist/rules/no-commented-out-code.js +22 -25
  85. package/dist/rules/no-commented-out-code.js.map +1 -1
  86. package/dist/rules/no-const-enum.d.ts.map +1 -1
  87. package/dist/rules/no-const-enum.js +2 -1
  88. package/dist/rules/no-const-enum.js.map +1 -1
  89. package/dist/rules/no-deprecated.d.ts.map +1 -1
  90. package/dist/rules/no-deprecated.js +4 -3
  91. package/dist/rules/no-deprecated.js.map +1 -1
  92. package/dist/rules/no-expression-empty-lines.d.ts.map +1 -1
  93. package/dist/rules/no-expression-empty-lines.js +3 -2
  94. package/dist/rules/no-expression-empty-lines.js.map +1 -1
  95. package/dist/rules/no-foreach.d.ts.map +1 -1
  96. package/dist/rules/no-foreach.js +2 -1
  97. package/dist/rules/no-foreach.js.map +1 -1
  98. package/dist/rules/no-implicit-any-catch.d.ts.map +1 -1
  99. package/dist/rules/no-implicit-any-catch.js +3 -2
  100. package/dist/rules/no-implicit-any-catch.js.map +1 -1
  101. package/dist/rules/no-internal.d.ts.map +1 -1
  102. package/dist/rules/no-internal.js +4 -3
  103. package/dist/rules/no-internal.js.map +1 -1
  104. package/dist/rules/no-language-mixing.d.ts.map +1 -1
  105. package/dist/rules/no-language-mixing.js +3 -2
  106. package/dist/rules/no-language-mixing.js.map +1 -1
  107. package/dist/rules/no-misused-generics.d.ts.map +1 -1
  108. package/dist/rules/no-misused-generics.js +5 -4
  109. package/dist/rules/no-misused-generics.js.map +1 -1
  110. package/dist/rules/no-negated-conditions.d.ts.map +1 -1
  111. package/dist/rules/no-negated-conditions.js +2 -1
  112. package/dist/rules/no-negated-conditions.js.map +1 -1
  113. package/dist/rules/no-param-reassign.d.ts.map +1 -1
  114. package/dist/rules/no-param-reassign.js +2 -1
  115. package/dist/rules/no-param-reassign.js.map +1 -1
  116. package/dist/rules/no-restricted-syntax.d.ts.map +1 -1
  117. package/dist/rules/no-restricted-syntax.js +2 -1
  118. package/dist/rules/no-restricted-syntax.js.map +1 -1
  119. package/dist/rules/no-self-import.d.ts.map +1 -1
  120. package/dist/rules/no-self-import.js +2 -1
  121. package/dist/rules/no-self-import.js.map +1 -1
  122. package/dist/rules/no-underscore-export.d.ts.map +1 -1
  123. package/dist/rules/no-underscore-export.js +3 -2
  124. package/dist/rules/no-underscore-export.js.map +1 -1
  125. package/dist/rules/no-unnecessary-break.d.ts.map +1 -1
  126. package/dist/rules/no-unnecessary-break.js +4 -3
  127. package/dist/rules/no-unnecessary-break.js.map +1 -1
  128. package/dist/rules/no-unnecessary-initialization.d.ts.map +1 -1
  129. package/dist/rules/no-unnecessary-initialization.js +3 -2
  130. package/dist/rules/no-unnecessary-initialization.js.map +1 -1
  131. package/dist/rules/no-unnecessary-template-literal.d.ts.map +1 -1
  132. package/dist/rules/no-unnecessary-template-literal.js +3 -2
  133. package/dist/rules/no-unnecessary-template-literal.js.map +1 -1
  134. package/dist/rules/only-export-name.d.ts.map +1 -1
  135. package/dist/rules/only-export-name.js +13 -10
  136. package/dist/rules/only-export-name.js.map +1 -1
  137. package/dist/rules/prefer-interface.d.ts.map +1 -1
  138. package/dist/rules/prefer-interface.js +5 -8
  139. package/dist/rules/prefer-interface.js.map +1 -1
  140. package/dist/rules/require-jsdoc.d.ts.map +1 -1
  141. package/dist/rules/require-jsdoc.js +7 -7
  142. package/dist/rules/require-jsdoc.js.map +1 -1
  143. package/dist/rules/require-syntax.d.ts.map +1 -1
  144. package/dist/rules/require-syntax.js +2 -1
  145. package/dist/rules/require-syntax.js.map +1 -1
  146. package/dist/rules/sort-array.d.ts.map +1 -1
  147. package/dist/rules/sort-array.js +8 -7
  148. package/dist/rules/sort-array.js.map +1 -1
  149. package/dist/rules/sort-class-members.d.ts.map +1 -1
  150. package/dist/rules/sort-class-members.js +2 -1
  151. package/dist/rules/sort-class-members.js.map +1 -1
  152. package/dist/rules/sort-export-specifiers.d.ts.map +1 -1
  153. package/dist/rules/sort-export-specifiers.js +6 -6
  154. package/dist/rules/sort-export-specifiers.js.map +1 -1
  155. package/dist/rules/sort-keys.d.ts.map +1 -1
  156. package/dist/rules/sort-keys.js +5 -5
  157. package/dist/rules/sort-keys.js.map +1 -1
  158. package/dist/rules/sort-top-comments.d.ts.map +1 -1
  159. package/dist/rules/sort-top-comments.js +7 -8
  160. package/dist/rules/sort-top-comments.js.map +1 -1
  161. package/dist/rules/switch-case-spacing.d.ts.map +1 -1
  162. package/dist/rules/switch-case-spacing.js +2 -2
  163. package/dist/rules/switch-case-spacing.js.map +1 -1
  164. package/dist/rules/template-literal-format.d.ts.map +1 -1
  165. package/dist/rules/template-literal-format.js +11 -13
  166. package/dist/rules/template-literal-format.js.map +1 -1
  167. package/dist/rules/throw-error.d.ts.map +1 -1
  168. package/dist/rules/throw-error.js +6 -4
  169. package/dist/rules/throw-error.js.map +1 -1
  170. package/dist/rules/typescript-array-callback-return-type.d.ts.map +1 -1
  171. package/dist/rules/typescript-array-callback-return-type.js +3 -2
  172. package/dist/rules/typescript-array-callback-return-type.js.map +1 -1
  173. package/dist/rules/typescript-class-methods-use-this.d.ts.map +1 -1
  174. package/dist/rules/typescript-class-methods-use-this.js +4 -3
  175. package/dist/rules/typescript-class-methods-use-this.js.map +1 -1
  176. package/dist/rules/typescript-no-boolean-literal-type.d.ts.map +1 -1
  177. package/dist/rules/typescript-no-boolean-literal-type.js +3 -2
  178. package/dist/rules/typescript-no-boolean-literal-type.js.map +1 -1
  179. package/dist/rules/typescript-no-inferrable-types.d.ts.map +1 -1
  180. package/dist/rules/typescript-no-inferrable-types.js +3 -2
  181. package/dist/rules/typescript-no-inferrable-types.js.map +1 -1
  182. package/dist/rules/typescript-no-redundant-undefined-const.d.ts.map +1 -1
  183. package/dist/rules/typescript-no-redundant-undefined-const.js +4 -3
  184. package/dist/rules/typescript-no-redundant-undefined-const.js.map +1 -1
  185. package/dist/rules/typescript-no-redundant-undefined-default-parameter.d.ts.map +1 -1
  186. package/dist/rules/typescript-no-redundant-undefined-default-parameter.js +4 -3
  187. package/dist/rules/typescript-no-redundant-undefined-default-parameter.js.map +1 -1
  188. package/dist/rules/typescript-no-redundant-undefined-let.d.ts.map +1 -1
  189. package/dist/rules/typescript-no-redundant-undefined-let.js +4 -3
  190. package/dist/rules/typescript-no-redundant-undefined-let.js.map +1 -1
  191. package/dist/rules/typescript-no-redundant-undefined-optional.d.ts.map +1 -1
  192. package/dist/rules/typescript-no-redundant-undefined-optional.js +6 -5
  193. package/dist/rules/typescript-no-redundant-undefined-optional.js.map +1 -1
  194. package/dist/rules/typescript-no-redundant-undefined-promise-return-type.d.ts.map +1 -1
  195. package/dist/rules/typescript-no-redundant-undefined-promise-return-type.js +6 -5
  196. package/dist/rules/typescript-no-redundant-undefined-promise-return-type.js.map +1 -1
  197. package/dist/rules/typescript-no-redundant-undefined-readonly-property.d.ts.map +1 -1
  198. package/dist/rules/typescript-no-redundant-undefined-readonly-property.js +4 -3
  199. package/dist/rules/typescript-no-redundant-undefined-readonly-property.js.map +1 -1
  200. package/dist/rules/typescript-no-redundant-undefined-return-type.d.ts.map +1 -1
  201. package/dist/rules/typescript-no-redundant-undefined-return-type.js +6 -5
  202. package/dist/rules/typescript-no-redundant-undefined-return-type.js.map +1 -1
  203. package/dist/rules/typescript-no-redundant-undefined-var.d.ts.map +1 -1
  204. package/dist/rules/typescript-no-redundant-undefined-var.js +4 -3
  205. package/dist/rules/typescript-no-redundant-undefined-var.js.map +1 -1
  206. package/dist/rules/typescript-prefer-enum.d.ts.map +1 -1
  207. package/dist/rules/typescript-prefer-enum.js +6 -5
  208. package/dist/rules/typescript-prefer-enum.js.map +1 -1
  209. package/dist/rules/typescript-prefer-readonly-array.d.ts.map +1 -1
  210. package/dist/rules/typescript-prefer-readonly-array.js +3 -2
  211. package/dist/rules/typescript-prefer-readonly-array.js.map +1 -1
  212. package/dist/rules/typescript-prefer-readonly-property.d.ts.map +1 -1
  213. package/dist/rules/typescript-prefer-readonly-property.js +5 -4
  214. package/dist/rules/typescript-prefer-readonly-property.js.map +1 -1
  215. package/dist/rules/typescript-require-prop-type-annotation.d.ts.map +1 -1
  216. package/dist/rules/typescript-require-prop-type-annotation.js +5 -4
  217. package/dist/rules/typescript-require-prop-type-annotation.js.map +1 -1
  218. package/dist/rules/typescript-require-this-void.d.ts.map +1 -1
  219. package/dist/rules/typescript-require-this-void.js +2 -1
  220. package/dist/rules/typescript-require-this-void.js.map +1 -1
  221. package/dist/rules.d.ts +2 -1
  222. package/dist/rules.d.ts.map +1 -1
  223. package/dist/rules.js +14 -7
  224. package/dist/rules.js.map +1 -1
  225. package/docs/docusaurus/blog/2026-03-09-docs-site-online.md +3 -3
  226. package/docs/docusaurus/blog/2026-03-11-adr-driven-docs-roadmap.md +3 -3
  227. package/docs/docusaurus/docusaurus.config.ts +2 -3
  228. package/docs/docusaurus/sidebars.rules.ts +8 -0
  229. package/docs/docusaurus/site-docs/getting-started.md +2 -3
  230. package/docs/docusaurus/site-docs/guides/blog-post-backlog.md +12 -12
  231. package/docs/docusaurus/site-docs/guides/migration-from-etc-and-misc.md +7 -7
  232. package/docs/docusaurus/site-docs/intro.md +1 -1
  233. package/docs/rules/array-type.md +6 -6
  234. package/docs/rules/class-match-filename.md +6 -6
  235. package/docs/rules/comment-spacing.md +9 -9
  236. package/docs/rules/consistent-empty-lines.md +8 -9
  237. package/docs/rules/consistent-enum-members.md +17 -16
  238. package/docs/rules/consistent-filename.md +12 -10
  239. package/docs/rules/consistent-import.md +11 -11
  240. package/docs/rules/consistent-optional-props.md +12 -12
  241. package/docs/rules/consistent-source-extension.md +6 -6
  242. package/docs/rules/consistent-symbol-description.md +6 -6
  243. package/docs/rules/default-case.md +20 -20
  244. package/docs/rules/disallow-import.md +11 -9
  245. package/docs/rules/export-matching-filename-only.md +12 -10
  246. package/docs/rules/getting-started.md +7 -6
  247. package/docs/rules/match-filename.md +13 -13
  248. package/docs/rules/max-identifier-blocks.md +7 -7
  249. package/docs/rules/no-assign-mutated-array.md +31 -11
  250. package/docs/rules/no-at-sign-import.md +9 -9
  251. package/docs/rules/no-at-sign-internal-import.md +9 -9
  252. package/docs/rules/no-chain-coalescence-mixture.md +6 -6
  253. package/docs/rules/no-commented-out-code.md +12 -12
  254. package/docs/rules/no-const-enum.md +13 -13
  255. package/docs/rules/no-deprecated.md +26 -26
  256. package/docs/rules/no-enum.md +14 -14
  257. package/docs/rules/no-expression-empty-lines.md +12 -20
  258. package/docs/rules/no-foreach.md +14 -10
  259. package/docs/rules/no-implicit-any-catch.md +31 -31
  260. package/docs/rules/no-index-import.md +9 -9
  261. package/docs/rules/no-internal-modules.md +9 -9
  262. package/docs/rules/no-internal.md +26 -26
  263. package/docs/rules/no-language-mixing.md +6 -6
  264. package/docs/rules/no-misused-generics.md +8 -8
  265. package/docs/rules/no-mixed-enums.md +14 -14
  266. package/docs/rules/no-negated-conditions.md +16 -12
  267. package/docs/rules/no-nodejs-modules.md +9 -9
  268. package/docs/rules/no-param-reassign.md +19 -19
  269. package/docs/rules/no-relative-parent-import.md +12 -12
  270. package/docs/rules/no-restricted-syntax.md +24 -23
  271. package/docs/rules/no-secret.md +6 -6
  272. package/docs/rules/no-self-import.md +6 -6
  273. package/docs/rules/no-shadow.md +12 -12
  274. package/docs/rules/no-sibling-import.md +8 -8
  275. package/docs/rules/no-single-line-comment.md +10 -10
  276. package/docs/rules/no-t.md +15 -15
  277. package/docs/rules/no-underscore-export.md +6 -6
  278. package/docs/rules/no-unnecessary-as-const.md +8 -8
  279. package/docs/rules/no-unnecessary-break.md +19 -19
  280. package/docs/rules/no-unnecessary-initialization.md +8 -8
  281. package/docs/rules/no-unnecessary-template-literal.md +7 -7
  282. package/docs/rules/no-unused-disable.md +6 -6
  283. package/docs/rules/no-useless-generics.md +10 -10
  284. package/docs/rules/no-value-tostring.md +6 -6
  285. package/docs/rules/no-writeonly.md +26 -26
  286. package/docs/rules/object-format.md +16 -16
  287. package/docs/rules/only-export-name.md +10 -8
  288. package/docs/rules/overview.md +8 -7
  289. package/docs/rules/prefer-arrow-function-property.md +24 -24
  290. package/docs/rules/prefer-const-require.md +8 -8
  291. package/docs/rules/prefer-includes.md +17 -8
  292. package/docs/rules/prefer-interface.md +24 -24
  293. package/docs/rules/prefer-less-than.md +10 -10
  294. package/docs/rules/prefer-object-has-own.md +6 -6
  295. package/docs/rules/prefer-only-export.md +6 -6
  296. package/docs/rules/presets/all-strict.md +1 -1
  297. package/docs/rules/presets/minimal.md +44 -0
  298. package/docs/rules/presets/recommended.md +3 -1
  299. package/docs/rules/presets/strict-type-checked.md +1 -1
  300. package/docs/rules/presets/strict.md +1 -1
  301. package/docs/rules/require-jsdoc.md +29 -17
  302. package/docs/rules/require-syntax.md +23 -19
  303. package/docs/rules/restrict-identifier-characters.md +6 -6
  304. package/docs/rules/sort-array.md +16 -8
  305. package/docs/rules/sort-call-signature.md +16 -16
  306. package/docs/rules/sort-class-members.md +14 -14
  307. package/docs/rules/sort-construct-signature.md +14 -14
  308. package/docs/rules/sort-export-specifiers.md +6 -6
  309. package/docs/rules/sort-keys.md +15 -15
  310. package/docs/rules/sort-top-comments.md +6 -6
  311. package/docs/rules/switch-case-spacing.md +20 -18
  312. package/docs/rules/template-literal-format.md +6 -6
  313. package/docs/rules/throw-error.md +6 -6
  314. package/docs/rules/throw-new-error.md +6 -6
  315. package/docs/rules/typescript-array-callback-return-type.md +22 -10
  316. package/docs/rules/typescript-class-methods-use-this.md +21 -21
  317. package/docs/rules/typescript-consistent-array-type-name.md +6 -6
  318. package/docs/rules/typescript-define-function-in-one-statement.md +6 -6
  319. package/docs/rules/typescript-exhaustive-switch.md +20 -20
  320. package/docs/rules/typescript-no-boolean-literal-type.md +10 -10
  321. package/docs/rules/typescript-no-complex-declarator-type.md +15 -15
  322. package/docs/rules/typescript-no-complex-return-type.md +9 -9
  323. package/docs/rules/typescript-no-empty-interfaces.md +7 -7
  324. package/docs/rules/typescript-no-inferrable-types.md +10 -10
  325. package/docs/rules/typescript-no-multi-type-tuples.md +6 -6
  326. package/docs/rules/typescript-no-never.md +8 -8
  327. package/docs/rules/typescript-no-redundant-undefined-const.md +6 -6
  328. package/docs/rules/typescript-no-redundant-undefined-default-parameter.md +11 -11
  329. package/docs/rules/typescript-no-redundant-undefined-let.md +6 -6
  330. package/docs/rules/typescript-no-redundant-undefined-optional.md +9 -9
  331. package/docs/rules/typescript-no-redundant-undefined-promise-return-type.md +17 -17
  332. package/docs/rules/typescript-no-redundant-undefined-readonly-property.md +14 -14
  333. package/docs/rules/typescript-no-redundant-undefined-return-type.md +16 -16
  334. package/docs/rules/typescript-no-redundant-undefined-var.md +6 -6
  335. package/docs/rules/typescript-no-restricted-syntax.md +10 -10
  336. package/docs/rules/typescript-no-unsafe-object-assign.md +6 -6
  337. package/docs/rules/typescript-no-unsafe-object-assignment.md +6 -6
  338. package/docs/rules/typescript-prefer-array-type-alias.md +6 -6
  339. package/docs/rules/typescript-prefer-class-method.md +9 -9
  340. package/docs/rules/typescript-prefer-enum.md +11 -11
  341. package/docs/rules/typescript-prefer-named-tuple-members.md +6 -6
  342. package/docs/rules/typescript-prefer-readonly-array-parameter.md +8 -8
  343. package/docs/rules/typescript-prefer-readonly-array.md +6 -6
  344. package/docs/rules/typescript-prefer-readonly-index-signature.md +12 -12
  345. package/docs/rules/typescript-prefer-readonly-map.md +6 -6
  346. package/docs/rules/typescript-prefer-readonly-property.md +10 -10
  347. package/docs/rules/typescript-prefer-readonly-record.md +9 -7
  348. package/docs/rules/typescript-prefer-readonly-set.md +6 -6
  349. package/docs/rules/typescript-require-prop-type-annotation.md +12 -12
  350. package/docs/rules/typescript-require-readonly-array-property-type.md +12 -12
  351. package/docs/rules/typescript-require-readonly-array-return-type.md +11 -11
  352. package/docs/rules/typescript-require-readonly-array-type-alias.md +6 -6
  353. package/docs/rules/typescript-require-readonly-map-parameter-type.md +9 -9
  354. package/docs/rules/typescript-require-readonly-map-property-type.md +13 -13
  355. package/docs/rules/typescript-require-readonly-map-return-type.md +13 -13
  356. package/docs/rules/typescript-require-readonly-map-type-alias.md +7 -7
  357. package/docs/rules/typescript-require-readonly-record-parameter-type.md +8 -8
  358. package/docs/rules/typescript-require-readonly-record-property-type.md +12 -12
  359. package/docs/rules/typescript-require-readonly-record-return-type.md +12 -12
  360. package/docs/rules/typescript-require-readonly-record-type-alias.md +6 -6
  361. package/docs/rules/typescript-require-readonly-set-parameter-type.md +8 -8
  362. package/docs/rules/typescript-require-readonly-set-property-type.md +12 -12
  363. package/docs/rules/typescript-require-readonly-set-return-type.md +12 -12
  364. package/docs/rules/typescript-require-readonly-set-type-alias.md +6 -6
  365. package/docs/rules/typescript-require-this-void.md +14 -14
  366. package/docs/rules/underscore-internal.md +10 -10
  367. package/docs/rules/unused-internal-properties.md +14 -14
  368. package/docs/rules/uppercase-iife.md +8 -8
  369. package/docs/rules/words.md +6 -6
  370. package/package.json +19 -13
@@ -3,9 +3,9 @@ title: Docs Site Is Online
3
3
  slug: docs-site-online
4
4
  authors: nick
5
5
  tags:
6
- - docs
7
- - docusaurus
8
- - release
6
+ - docs
7
+ - docusaurus
8
+ - release
9
9
  ---
10
10
 
11
11
  The Docusaurus site is now live with:
@@ -3,9 +3,9 @@ title: ADR-Driven Docs Roadmap
3
3
  slug: adr-driven-docs-roadmap
4
4
  authors: nick
5
5
  tags:
6
- - docs
7
- - adr
8
- - architecture
6
+ - docs
7
+ - adr
8
+ - architecture
9
9
  ---
10
10
 
11
11
  We added three new ADRs to document core project strategy:
@@ -23,7 +23,6 @@ const projectName = "eslint-plugin-etc-misc";
23
23
  const modernEnhancementsClientModule = fileURLToPath(
24
24
  new URL("src/js/modernEnhancements.ts", import.meta.url)
25
25
  );
26
-
27
26
  /** PWA theme-color meta value for Chromium-based browsers. */
28
27
  const pwaThemeColor = "#8D0CE8";
29
28
  /** Windows tile color for pinned-site metadata. */
@@ -285,7 +284,7 @@ const config: Config = {
285
284
  },
286
285
  {
287
286
  label: "🎛 Presets",
288
- to: "/docs/rules/presets/recommended",
287
+ to: "/docs/rules/presets/minimal",
289
288
  },
290
289
  {
291
290
  label: "📏 Rule Reference",
@@ -365,7 +364,7 @@ const config: Config = {
365
364
  activeBaseRegex: "^/docs/rules/presets(?:/.*)?$",
366
365
  label: "🎛️ Presets",
367
366
  position: "left",
368
- to: "/docs/rules/presets/recommended",
367
+ to: "/docs/rules/presets/minimal",
369
368
  },
370
369
  {
371
370
  label: "📰 Blog",
@@ -238,6 +238,14 @@ if (guideItems.length > 0) {
238
238
 
239
239
  const presetItems: SidebarsConfig["rules"] = [];
240
240
 
241
+ if (hasRulesPluginDocId("presets/minimal")) {
242
+ presetItems.push({
243
+ id: "presets/minimal",
244
+ label: "🟢 Minimal",
245
+ type: "doc",
246
+ });
247
+ }
248
+
241
249
  if (hasRulesPluginDocId("presets/recommended")) {
242
250
  presetItems.push({
243
251
  id: "presets/recommended",
@@ -15,13 +15,12 @@ Then enable it in your Flat Config:
15
15
  ```ts
16
16
  import etcMisc from "eslint-plugin-etc-misc";
17
17
 
18
- export default [
19
- etcMisc.configs.recommended,
20
- ];
18
+ export default [etcMisc.configs.recommended];
21
19
  ```
22
20
 
23
21
  ## Recommended approach
24
22
 
23
+ - Start with `etcMisc.configs.minimal` if you want to defer readonly-style constraints.
25
24
  - Start with `etcMisc.configs.recommended`.
26
25
  - Fix violations in small batches.
27
26
  - Move to `etcMisc.configs.all` when you want every available rule enabled.
@@ -8,18 +8,18 @@ title: Blog post backlog
8
8
  This page tracks high-value blog post ideas sourced from ADRs, release
9
9
  workflow, benchmarking, and rule curation work.
10
10
 
11
- | Proposed title | Core angle | Source material | Audience | Status |
12
- | --- | --- | --- | --- | --- |
13
- | Why we unified etc + misc into one plugin | Explain the curation strategy and trade-offs | ADR 0003 | New adopters | Idea |
14
- | How we keep 100+ rule docs in sync | Show generated catalog and sync automation | ADR 0004 + sync scripts | Maintainers | Idea |
15
- | Designing a practical recommended preset | Discuss warn/error tiering philosophy | ADR 0005 + `src/configs/recommended.ts` | Teams adopting plugin | Idea |
16
- | Flat Config-first from day one | Migration rationale for modern ESLint | ADR 0001 | ESLint users migrating from legacy | Idea |
17
- | Docs coverage as a hard gate | Why docs parity must fail fast | ADR 0002 + sidebar checks | OSS maintainers | Idea |
18
- | Rule overlap audits: how we avoid duplicates | Method for checking ecosystem overlap before adding rules | Rule scan workflow + tests | Rule authors | Idea |
19
- | Performance guardrails for large rule sets | Benchmark strategy and regression tracking | `benchmarks/README.md` | Performance-focused users | Idea |
20
- | Release engineering without changelog drift | Runtime release notes + no-commit CI changelog policy | `RELEASING.md` + workflows | Maintainers | Idea |
21
- | Immutability rule family deep dive | Why readonly array/map/set/record rules are bundled | Rule docs in `/docs/rules/typescript-*readonly*` | TypeScript teams | Idea |
22
- | Building reliable autofixes in custom ESLint rules | Patterns for safe fixers and suggestions | Rule tests + docs maintenance playbook | Rule developers | Idea |
11
+ | Proposed title | Core angle | Source material | Audience | Status |
12
+ | -------------------------------------------------- | --------------------------------------------------------- | ------------------------------------------------ | ---------------------------------- | ------ |
13
+ | Why we unified etc + misc into one plugin | Explain the curation strategy and trade-offs | ADR 0003 | New adopters | Idea |
14
+ | How we keep 100+ rule docs in sync | Show generated catalog and sync automation | ADR 0004 + sync scripts | Maintainers | Idea |
15
+ | Designing a practical recommended preset | Discuss warn/error tiering philosophy | ADR 0005 + `src/configs/recommended.ts` | Teams adopting plugin | Idea |
16
+ | Flat Config-first from day one | Migration rationale for modern ESLint | ADR 0001 | ESLint users migrating from legacy | Idea |
17
+ | Docs coverage as a hard gate | Why docs parity must fail fast | ADR 0002 + sidebar checks | OSS maintainers | Idea |
18
+ | Rule overlap audits: how we avoid duplicates | Method for checking ecosystem overlap before adding rules | Rule scan workflow + tests | Rule authors | Idea |
19
+ | Performance guardrails for large rule sets | Benchmark strategy and regression tracking | `benchmarks/README.md` | Performance-focused users | Idea |
20
+ | Release engineering without changelog drift | Runtime release notes + no-commit CI changelog policy | `RELEASING.md` + workflows | Maintainers | Idea |
21
+ | Immutability rule family deep dive | Why readonly array/map/set/record rules are bundled | Rule docs in `/docs/rules/typescript-*readonly*` | TypeScript teams | Idea |
22
+ | Building reliable autofixes in custom ESLint rules | Patterns for safe fixers and suggestions | Rule tests + docs maintenance playbook | Rule developers | Idea |
23
23
 
24
24
  ## Editorial guidance
25
25
 
@@ -31,13 +31,13 @@ import etc from "eslint-plugin-etc";
31
31
  import misc from "eslint-plugin-misc";
32
32
 
33
33
  export default [
34
- {
35
- plugins: { etc, misc },
36
- rules: {
37
- "etc/no-internal": "error",
38
- "misc/no-t": "error",
39
- },
40
- },
34
+ {
35
+ plugins: { etc, misc },
36
+ rules: {
37
+ "etc/no-internal": "error",
38
+ "misc/no-t": "error",
39
+ },
40
+ },
41
41
  ];
42
42
  ```
43
43
 
@@ -20,7 +20,7 @@ projects.
20
20
  ```mermaid
21
21
  flowchart LR
22
22
  A[Rule Source\nsrc/rules/*.ts] --> B[Plugin Registry\nsrc/rules.ts]
23
- B --> C[Presets\nconfigs/recommended + configs/all]
23
+ B --> C[Presets\nconfigs/minimal + configs/recommended + configs/all]
24
24
  A --> D[Rule Docs\ndocs/rules/*.md]
25
25
  D --> E[Docs Site\n/docs/rules]
26
26
  F[Architecture ADRs\n/docs/architecture/adr] --> E
@@ -53,12 +53,12 @@ type ValuesFixed = string[];
53
53
  import etcMisc from "eslint-plugin-etc-misc";
54
54
 
55
55
  export default [
56
- {
57
- plugins: { "etc-misc": etcMisc },
58
- rules: {
59
- "etc-misc/array-type": "error",
60
- },
61
- },
56
+ {
57
+ plugins: { "etc-misc": etcMisc },
58
+ rules: {
59
+ "etc-misc/array-type": "error",
60
+ },
61
+ },
62
62
  ];
63
63
  ```
64
64
 
@@ -66,12 +66,12 @@ export default class UserService {}
66
66
  import etcMisc from "eslint-plugin-etc-misc";
67
67
 
68
68
  export default [
69
- {
70
- plugins: { "etc-misc": etcMisc },
71
- rules: {
72
- "etc-misc/class-match-filename": "error",
73
- },
74
- },
69
+ {
70
+ plugins: { "etc-misc": etcMisc },
71
+ rules: {
72
+ "etc-misc/class-match-filename": "error",
73
+ },
74
+ },
75
75
  ];
76
76
  ```
77
77
 
@@ -38,7 +38,7 @@ across contributors and editors.
38
38
  * Renders the profile panel.
39
39
  */
40
40
  const renderProfile = () => {
41
- // ...
41
+ // ...
42
42
  };
43
43
  ```
44
44
 
@@ -56,7 +56,7 @@ const normalize = (value: string) => value.trim();
56
56
  */
57
57
 
58
58
  const renderProfile = () => {
59
- // ...
59
+ // ...
60
60
  };
61
61
  ```
62
62
 
@@ -82,7 +82,7 @@ This rule has no options.
82
82
  ```ts
83
83
  /* eslint-disable no-console */
84
84
  const run = () => {
85
- console.log("allowed here");
85
+ console.log("allowed here");
86
86
  };
87
87
  ```
88
88
 
@@ -101,12 +101,12 @@ const createTask = () => ({ id: crypto.randomUUID() });
101
101
  import etcMisc from "eslint-plugin-etc-misc";
102
102
 
103
103
  export default [
104
- {
105
- plugins: { "etc-misc": etcMisc },
106
- rules: {
107
- "etc-misc/comment-spacing": "error",
108
- },
109
- },
104
+ {
105
+ plugins: { "etc-misc": etcMisc },
106
+ rules: {
107
+ "etc-misc/comment-spacing": "error",
108
+ },
109
+ },
110
110
  ];
111
111
  ```
112
112
 
@@ -31,7 +31,6 @@ reduces noisy formatting diffs.
31
31
  ```ts
32
32
  const first = 1;
33
33
 
34
-
35
34
  const second = 2;
36
35
  ```
37
36
 
@@ -61,9 +60,9 @@ This rule has no options.
61
60
 
62
61
  ```ts
63
62
  function run(): void {
64
- stepOne();
63
+ stepOne();
65
64
 
66
- stepTwo();
65
+ stepTwo();
67
66
  }
68
67
  ```
69
68
 
@@ -73,12 +72,12 @@ function run(): void {
73
72
  import etcMisc from "eslint-plugin-etc-misc";
74
73
 
75
74
  export default [
76
- {
77
- plugins: { "etc-misc": etcMisc },
78
- rules: {
79
- "etc-misc/consistent-empty-lines": "error",
80
- },
81
- },
75
+ {
76
+ plugins: { "etc-misc": etcMisc },
77
+ rules: {
78
+ "etc-misc/consistent-empty-lines": "error",
79
+ },
80
+ },
82
81
  ];
83
82
  ```
84
83
 
@@ -9,18 +9,18 @@ This rule analyzes TypeScript `TSEnumMember` nodes and validates naming for:
9
9
  - enum member identifiers (for example `ACTIVE_USER`), and
10
10
  - string literal member values when provided.
11
11
 
12
- It enforces SCREAMING_SNAKE_CASE in both places.
12
+ It enforces SCREAMING\_SNAKE\_CASE in both places.
13
13
 
14
14
  ## What this rule reports
15
15
 
16
16
  This rule reports enum members when **neither** of these matches
17
- SCREAMING_SNAKE_CASE:
17
+ SCREAMING\_SNAKE\_CASE:
18
18
 
19
19
  - the member identifier name, or
20
20
  - the string literal initializer value.
21
21
 
22
22
  In other words, the current implementation accepts a member if either side is
23
- already SCREAMING_SNAKE_CASE.
23
+ already SCREAMING\_SNAKE\_CASE.
24
24
 
25
25
  ## Why this rule exists
26
26
 
@@ -32,8 +32,8 @@ Standardizing enum casing lowers conversion glue and helps grepability.
32
32
 
33
33
  ```ts
34
34
  enum Status {
35
- pendingApproval = "PENDING_APPROVAL",
36
- ACTIVE_USER = "active_user",
35
+ pendingApproval = "PENDING_APPROVAL",
36
+ ACTIVE_USER = "active_user",
37
37
  }
38
38
  ```
39
39
 
@@ -41,8 +41,8 @@ enum Status {
41
41
 
42
42
  ```ts
43
43
  enum Status {
44
- PENDING_APPROVAL = "PENDING_APPROVAL",
45
- ACTIVE_USER = "ACTIVE_USER",
44
+ PENDING_APPROVAL = "PENDING_APPROVAL",
45
+ ACTIVE_USER = "ACTIVE_USER",
46
46
  }
47
47
  ```
48
48
 
@@ -58,22 +58,23 @@ This rule has no options.
58
58
 
59
59
  ```ts
60
60
  enum EventType {
61
- USER_CREATED,
62
- USER_DELETED,
61
+ USER_CREATED,
62
+ USER_DELETED,
63
63
  }
64
64
  ```
65
65
 
66
66
  ```ts
67
67
  enum Permission {
68
- READ_ONLY = "READ_ONLY",
69
- READ_WRITE = "READ_WRITE",
68
+ READ_ONLY = "READ_ONLY",
69
+ READ_WRITE = "READ_WRITE",
70
70
  }
71
71
  ```
72
72
 
73
- ```ts
74
- enum Partial {
75
- USER_CREATED = "user_created",
76
- }
73
+ ````ts
74
+
75
+
76
+
77
+ enum Partial { USER_CREATED = "user_created",}
77
78
  // ✅ currently accepted (name matches SCREAMING_SNAKE_CASE)
78
79
 
79
80
  ## ESLint flat config example
@@ -89,7 +90,7 @@ export default [
89
90
  },
90
91
  },
91
92
  ];
92
- ```
93
+ ````
93
94
 
94
95
  ## When not to use it
95
96
 
@@ -54,16 +54,18 @@ It reports only and does not provide an autofix.
54
54
 
55
55
  ```ts
56
56
  type Options = [
57
- {
58
- format?: "camelCase" | "kebab-case" | "PascalCase";
59
- },
57
+ {
58
+ format?: "camelCase" | "kebab-case" | "PascalCase";
59
+ },
60
60
  ];
61
61
  ```
62
62
 
63
63
  Default:
64
64
 
65
65
  ```ts
66
- { format: "kebab-case" }
66
+ {
67
+ format: "kebab-case";
68
+ }
67
69
  ```
68
70
 
69
71
  ### Status
@@ -86,12 +88,12 @@ Use the **Deprecated** section above for lifecycle details.
86
88
  import etcMisc from "eslint-plugin-etc-misc";
87
89
 
88
90
  export default [
89
- {
90
- plugins: { "etc-misc": etcMisc },
91
- rules: {
92
- "etc-misc/consistent-filename": "error",
93
- },
94
- },
91
+ {
92
+ plugins: { "etc-misc": etcMisc },
93
+ rules: {
94
+ "etc-misc/consistent-filename": "error",
95
+ },
96
+ },
95
97
  ];
96
98
  ```
97
99
 
@@ -20,7 +20,7 @@ It distinguishes five styles:
20
20
  This rule reports imports whose style does not match the expected style.
21
21
 
22
22
  - Without options, the first import style seen for a given module source becomes
23
- the expected style for subsequent imports from that same source.
23
+ the expected style for subsequent imports from that same source.
24
24
  - With `style`, all imports must match the configured style globally.
25
25
 
26
26
  ## Why this rule exists
@@ -61,9 +61,9 @@ cleanup) before promoting from `warn` to `error`.
61
61
 
62
62
  ```ts
63
63
  type Options = [
64
- {
65
- style?: "default" | "mixed" | "named" | "namespace" | "side-effect";
66
- },
64
+ {
65
+ style?: "default" | "mixed" | "named" | "namespace" | "side-effect";
66
+ },
67
67
  ];
68
68
  ```
69
69
 
@@ -72,7 +72,7 @@ type Options = [
72
72
  ### Default configuration
73
73
 
74
74
  ```ts
75
- [{}]
75
+ [{}];
76
76
  ```
77
77
 
78
78
  When `style` is omitted, the first seen import style for each module source is
@@ -98,12 +98,12 @@ import "reflect-metadata";
98
98
  import etcMisc from "eslint-plugin-etc-misc";
99
99
 
100
100
  export default [
101
- {
102
- plugins: { "etc-misc": etcMisc },
103
- rules: {
104
- "etc-misc/consistent-import": "error",
105
- },
106
- },
101
+ {
102
+ plugins: { "etc-misc": etcMisc },
103
+ rules: {
104
+ "etc-misc/consistent-import": "error",
105
+ },
106
+ },
107
107
  ];
108
108
  ```
109
109
 
@@ -34,11 +34,11 @@ to read.
34
34
 
35
35
  ```ts
36
36
  interface User {
37
- name?: string | undefined;
37
+ name?: string | undefined;
38
38
  }
39
39
 
40
40
  class Config {
41
- timeoutMs?: number | undefined;
41
+ timeoutMs?: number | undefined;
42
42
  }
43
43
  ```
44
44
 
@@ -46,11 +46,11 @@ class Config {
46
46
 
47
47
  ```ts
48
48
  interface User {
49
- name?: string;
49
+ name?: string;
50
50
  }
51
51
 
52
52
  class Config {
53
- timeoutMs?: number;
53
+ timeoutMs?: number;
54
54
  }
55
55
  ```
56
56
 
@@ -68,12 +68,12 @@ This rule has no options.
68
68
 
69
69
  ```ts
70
70
  type Options = {
71
- verbose?: boolean | undefined;
71
+ verbose?: boolean | undefined;
72
72
  };
73
73
  // ❌ reported
74
74
 
75
75
  type OptionsFixed = {
76
- verbose?: boolean;
76
+ verbose?: boolean;
77
77
  };
78
78
  // ✅ valid
79
79
  ```
@@ -84,12 +84,12 @@ type OptionsFixed = {
84
84
  import etcMisc from "eslint-plugin-etc-misc";
85
85
 
86
86
  export default [
87
- {
88
- plugins: { "etc-misc": etcMisc },
89
- rules: {
90
- "etc-misc/consistent-optional-props": "error",
91
- },
92
- },
87
+ {
88
+ plugins: { "etc-misc": etcMisc },
89
+ rules: {
90
+ "etc-misc/consistent-optional-props": "error",
91
+ },
92
+ },
93
93
  ];
94
94
  ```
95
95
 
@@ -76,12 +76,12 @@ export * from "./utils";
76
76
  import etcMisc from "eslint-plugin-etc-misc";
77
77
 
78
78
  export default [
79
- {
80
- plugins: { "etc-misc": etcMisc },
81
- rules: {
82
- "etc-misc/consistent-source-extension": "error",
83
- },
84
- },
79
+ {
80
+ plugins: { "etc-misc": etcMisc },
81
+ rules: {
82
+ "etc-misc/consistent-source-extension": "error",
83
+ },
84
+ },
85
85
  ];
86
86
  ```
87
87
 
@@ -62,12 +62,12 @@ const bad = Symbol("Cache_Key");
62
62
  import etcMisc from "eslint-plugin-etc-misc";
63
63
 
64
64
  export default [
65
- {
66
- plugins: { "etc-misc": etcMisc },
67
- rules: {
68
- "etc-misc/consistent-symbol-description": "error",
69
- },
70
- },
65
+ {
66
+ plugins: { "etc-misc": etcMisc },
67
+ rules: {
68
+ "etc-misc/consistent-symbol-description": "error",
69
+ },
70
+ },
71
71
  ];
72
72
  ```
73
73
 
@@ -19,8 +19,8 @@ control flow.
19
19
 
20
20
  ```ts
21
21
  switch (status) {
22
- case "open":
23
- break;
22
+ case "open":
23
+ break;
24
24
  }
25
25
  ```
26
26
 
@@ -28,10 +28,10 @@ switch (status) {
28
28
 
29
29
  ```ts
30
30
  switch (status) {
31
- case "open":
32
- break;
33
- default:
34
- break;
31
+ case "open":
32
+ break;
33
+ default:
34
+ break;
35
35
  }
36
36
  ```
37
37
 
@@ -43,18 +43,18 @@ This rule forwards options and behavior to ESLint core `default-case`.
43
43
 
44
44
  ```ts
45
45
  switch (kind) {
46
- case "a":
47
- runA();
48
- break;
46
+ case "a":
47
+ runA();
48
+ break;
49
49
  }
50
50
  // ❌ reported
51
51
 
52
52
  switch (kind) {
53
- case "a":
54
- runA();
55
- break;
56
- default:
57
- throw new Error(`Unhandled kind: ${kind}`);
53
+ case "a":
54
+ runA();
55
+ break;
56
+ default:
57
+ throw new Error(`Unhandled kind: ${kind}`);
58
58
  }
59
59
  // ✅ valid
60
60
  ```
@@ -65,12 +65,12 @@ switch (kind) {
65
65
  import etcMisc from "eslint-plugin-etc-misc";
66
66
 
67
67
  export default [
68
- {
69
- plugins: { "etc-misc": etcMisc },
70
- rules: {
71
- "etc-misc/default-case": "error",
72
- },
73
- },
68
+ {
69
+ plugins: { "etc-misc": etcMisc },
70
+ rules: {
71
+ "etc-misc/default-case": "error",
72
+ },
73
+ },
74
74
  ];
75
75
  ```
76
76
 
@@ -31,7 +31,9 @@ import value from "../source";
31
31
  with options:
32
32
 
33
33
  ```ts
34
- { disallow: ["../**"] }
34
+ {
35
+ disallow: ["../**"];
36
+ }
35
37
  ```
36
38
 
37
39
  ## ✅ Correct
@@ -57,8 +59,8 @@ configure `disallow` patterns.
57
59
 
58
60
  ```ts
59
61
  type Options = {
60
- allow?: string[];
61
- disallow?: string[];
62
+ allow?: string[];
63
+ disallow?: string[];
62
64
  };
63
65
  ```
64
66
 
@@ -79,12 +81,12 @@ import shared from "../shared/math";
79
81
  import etcMisc from "eslint-plugin-etc-misc";
80
82
 
81
83
  export default [
82
- {
83
- plugins: { "etc-misc": etcMisc },
84
- rules: {
85
- "etc-misc/disallow-import": ["error", { disallow: ["../**"] }],
86
- },
87
- },
84
+ {
85
+ plugins: { "etc-misc": etcMisc },
86
+ rules: {
87
+ "etc-misc/disallow-import": ["error", { disallow: ["../**"] }],
88
+ },
89
+ },
88
90
  ];
89
91
  ```
90
92