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
@@ -1 +1 @@
1
- {"version":3,"file":"casing.d.ts","sourceRoot":"","sources":["../../src/_internal/casing.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG,WAAW,GAAG,YAAY,GAAG,YAAY,CAAC;AAU/D;;GAEG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,MAAM,EAAE,QAAQ,MAAM,KAAG,MAmBxD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,UAAU,MAAM,KAAG,MAK/C,CAAC"}
1
+ {"version":3,"file":"casing.d.ts","sourceRoot":"","sources":["../../src/_internal/casing.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG,WAAW,GAAG,YAAY,GAAG,YAAY,CAAC;AAa/D;;GAEG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,MAAM,EAAE,QAAQ,MAAM,KAAG,MAmBxD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,UAAU,MAAM,KAAG,MAM/C,CAAC"}
@@ -1,8 +1,7 @@
1
+ import { arrayAt, arrayJoin, stringSplit } from "ts-extras";
1
2
  import { splitIdentifierBlocks } from "./identifier-blocks.js";
2
3
  const splitWords = (value) => splitIdentifierBlocks(value).map((word) => word.toLowerCase());
3
- const toPascal = (value) => splitWords(value)
4
- .map((word) => `${word[0]?.toUpperCase() ?? ""}${word.slice(1)}`)
5
- .join("");
4
+ const toPascal = (value) => arrayJoin(splitWords(value).map((word) => `${word[0]?.toUpperCase() ?? ""}${word.slice(1)}`), "");
6
5
  /**
7
6
  * Convert an input string into the requested casing format.
8
7
  */
@@ -13,7 +12,7 @@ export const toCasing = (value, format) => {
13
12
  return `${pascal[0]?.toLowerCase() ?? ""}${pascal.slice(1)}`;
14
13
  }
15
14
  case "kebab-case": {
16
- return splitWords(value).join("-");
15
+ return arrayJoin(splitWords(value), "-");
17
16
  }
18
17
  case "PascalCase": {
19
18
  return toPascal(value);
@@ -27,8 +26,9 @@ export const toCasing = (value, format) => {
27
26
  * Extract the final filename segment without extension.
28
27
  */
29
28
  export const filenameStem = (filePath) => {
30
- const pathSegments = filePath.split(/[/\\]/u);
31
- const lastPathSegment = pathSegments.at(-1) ?? filePath;
29
+ const normalizedPath = filePath.replaceAll("\\", "/");
30
+ const pathSegments = stringSplit(normalizedPath, "/");
31
+ const lastPathSegment = arrayAt(pathSegments, -1) ?? filePath;
32
32
  return lastPathSegment.replace(/\.[^./\\]+$/u, "");
33
33
  };
34
34
  //# sourceMappingURL=casing.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"casing.js","sourceRoot":"","sources":["../../src/_internal/casing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAO/D,MAAM,UAAU,GAAG,CAAC,KAAa,EAAqB,EAAE,CACpD,qBAAqB,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;AAEnE,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAU,EAAE,CACvC,UAAU,CAAC,KAAK,CAAC;KACZ,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;KAChE,IAAI,CAAC,EAAE,CAAC,CAAC;AAElB;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,MAAc,EAAU,EAAE;IAC9D,QAAQ,MAAM,EAAE,CAAC;QACb,KAAK,WAAW,CAAC,CAAC,CAAC;YACf,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC/B,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,CAAC;QAED,KAAK,YAAY,CAAC,CAAC,CAAC;YAChB,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvC,CAAC;QAED,KAAK,YAAY,CAAC,CAAC,CAAC;YAChB,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QAED,OAAO,CAAC,CAAC,CAAC;YACN,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;AACL,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,QAAgB,EAAU,EAAE;IACrD,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC9C,MAAM,eAAe,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC;IAExD,OAAO,eAAe,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;AACvD,CAAC,CAAC"}
1
+ {"version":3,"file":"casing.js","sourceRoot":"","sources":["../../src/_internal/casing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAO/D,MAAM,UAAU,GAAG,CAAC,KAAa,EAAqB,EAAE,CACpD,qBAAqB,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;AAEnE,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAU,EAAE,CACvC,SAAS,CACL,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,CACjB,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAC9D,EACD,EAAE,CACL,CAAC;AAEN;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,MAAc,EAAU,EAAE;IAC9D,QAAQ,MAAM,EAAE,CAAC;QACb,KAAK,WAAW,CAAC,CAAC,CAAC;YACf,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC/B,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,CAAC;QAED,KAAK,YAAY,CAAC,CAAC,CAAC;YAChB,OAAO,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;QAC7C,CAAC;QAED,KAAK,YAAY,CAAC,CAAC,CAAC;YAChB,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QAED,OAAO,CAAC,CAAC,CAAC;YACN,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;AACL,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,QAAgB,EAAU,EAAE;IACrD,MAAM,cAAc,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACtD,MAAM,YAAY,GAAG,WAAW,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;IACtD,MAAM,eAAe,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC;IAE9D,OAAO,eAAe,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;AACvD,CAAC,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import type { TSESLint } from "@typescript-eslint/utils";
2
- type RuleModule = TSESLint.RuleModule<string, readonly unknown[]>;
2
+ import type { UnknownArray } from "type-fest";
3
+ type RuleModule = TSESLint.RuleModule<string, Readonly<UnknownArray>>;
3
4
  /**
4
5
  * Resolve a rule module from an external ESLint plugin's `rules` map.
5
6
  */
@@ -1 +1 @@
1
- {"version":3,"file":"create-external-rule.d.ts","sourceRoot":"","sources":["../../src/_internal/create-external-rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGzD,KAAK,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,CAAC,CAAC;AAsClE;;GAEG;AACH,eAAO,MAAM,yBAAyB,GAClC,QAAQ,OAAO,EACf,UAAU,MAAM,EAChB,YAAY,MAAM,KACnB,OAeF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC1B,cAAc,OAAO,EACrB,SAAS,MAAM,KAChB,UA+BF,CAAC"}
1
+ {"version":3,"file":"create-external-rule.d.ts","sourceRoot":"","sources":["../../src/_internal/create-external-rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAiB,MAAM,WAAW,CAAC;AAK7D,KAAK,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;AAkCtE;;GAEG;AACH,eAAO,MAAM,yBAAyB,GAClC,QAAQ,OAAO,EACf,UAAU,MAAM,EAChB,YAAY,MAAM,KACnB,OAeF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC1B,cAAc,OAAO,EACrB,SAAS,MAAM,KAChB,UAiCF,CAAC"}
@@ -1,25 +1,23 @@
1
+ import { objectHasOwn, safeCastTo } from "ts-extras";
1
2
  const isObjectRecord = (value) => typeof value === "object" && value !== null;
2
3
  const hasCreateFunction = (value) => isObjectRecord(value) && typeof value["create"] === "function";
3
- const createLegacyContextCompat = (context) => {
4
- const contextRecord = context;
5
- return new Proxy(contextRecord, {
6
- get: (target, property, receiver) => {
7
- if (property === "getSourceCode") {
8
- return () => target.sourceCode;
9
- }
10
- if (property === "getFilename") {
11
- return () => target.filename;
12
- }
13
- if (property === "getPhysicalFilename") {
14
- return () => target.physicalFilename;
15
- }
16
- if (property === "getCwd") {
17
- return () => target.cwd;
18
- }
19
- return Reflect.get(target, property, receiver);
20
- },
21
- });
22
- };
4
+ const createLegacyContextCompat = (context) => new Proxy(context, {
5
+ get: (target, property, receiver) => {
6
+ if (property === "getSourceCode") {
7
+ return () => target.sourceCode;
8
+ }
9
+ if (property === "getFilename") {
10
+ return () => target.filename;
11
+ }
12
+ if (property === "getPhysicalFilename") {
13
+ return () => target.physicalFilename;
14
+ }
15
+ if (property === "getCwd") {
16
+ return () => target.cwd;
17
+ }
18
+ return Reflect.get(target, property, receiver);
19
+ },
20
+ });
23
21
  /**
24
22
  * Resolve a rule module from an external ESLint plugin's `rules` map.
25
23
  */
@@ -28,7 +26,7 @@ export const getExternalRuleFromPlugin = (plugin, ruleName, pluginName) => {
28
26
  throw new TypeError(`Plugin "${pluginName}" does not expose a valid rules map.`);
29
27
  }
30
28
  const rules = plugin["rules"];
31
- if (!Object.hasOwn(rules, ruleName)) {
29
+ if (!objectHasOwn(rules, ruleName)) {
32
30
  throw new Error(`Rule "${ruleName}" was not found in plugin "${pluginName}".`);
33
31
  }
34
32
  return rules[ruleName];
@@ -52,7 +50,7 @@ export const adaptExternalRule = (externalRule, docsUrl) => {
52
50
  ...externalRuleRecord,
53
51
  create,
54
52
  defaultOptions: Array.isArray(externalRuleRecord["defaultOptions"])
55
- ? externalRuleRecord["defaultOptions"]
53
+ ? safeCastTo(externalRuleRecord["defaultOptions"])
56
54
  : [],
57
55
  meta: {
58
56
  ...externalMeta,
@@ -1 +1 @@
1
- {"version":3,"file":"create-external-rule.js","sourceRoot":"","sources":["../../src/_internal/create-external-rule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-external-rule.js","sourceRoot":"","sources":["../../src/_internal/create-external-rule.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"create-import-pattern-rule.d.ts","sourceRoot":"","sources":["../../src/_internal/create-import-pattern-rule.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD;;GAEG;AACH,UAAU,8BAA8B;IACpC;;;OAGG;IACH,QAAQ,CAAC,uBAAuB,EAAE,SAAS,MAAM,EAAE,CAAC;IACpD;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACzB;AAED,KAAK,uBAAuB,GAAG,kBAAkB,CAAC;AAElD;;GAEG;AACH,KAAK,wBAAwB,GAAG,SAAS;IACrC;QACI,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QACnC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;KACzC,CAAC;CACL,CAAC;AAyCF;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,GAAI,iDAIrC,QAAQ,CAAC,8BAA8B,CAAC,KAAG,UAAU,CACpD,OAAO,WAAW,CAAC,wBAAwB,EAAE,uBAAuB,CAAC,CAyCnE,CAAC;AAEP,YAAY,EAAE,wBAAwB,EAAE,CAAC"}
1
+ {"version":3,"file":"create-import-pattern-rule.d.ts","sourceRoot":"","sources":["../../src/_internal/create-import-pattern-rule.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD;;GAEG;AACH,UAAU,8BAA8B;IACpC;;;OAGG;IACH,QAAQ,CAAC,uBAAuB,EAAE,SAAS,MAAM,EAAE,CAAC;IACpD;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACzB;AAED,KAAK,uBAAuB,GAAG,kBAAkB,CAAC;AAElD;;GAEG;AACH,KAAK,wBAAwB,GAAG,SAAS;IACrC;QACI,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QACnC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;KACzC,CAAC;CACL,CAAC;AAyCF;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,GAAI,iDAIrC,QAAQ,CAAC,8BAA8B,CAAC,KAAG,UAAU,CACpD,OAAO,WAAW,CAAC,wBAAwB,EAAE,uBAAuB,CAAC,CAyCnE,CAAC;AAEP,YAAY,EAAE,wBAAwB,EAAE,CAAC"}
@@ -1,9 +1,10 @@
1
+ import { isDefined } from "ts-extras";
1
2
  import { getImportSourceFromNode, shouldReportImportSource, } from "./import-patterns.js";
2
3
  import { ruleCreator } from "./rule-creator.js";
3
4
  const createImportVisitors = (context, defaultDisallowPatterns) => ({
4
5
  "ImportDeclaration, ExportNamedDeclaration[source], ExportAllDeclaration, ImportExpression": (node) => {
5
6
  const sourceText = getImportSourceFromNode(node);
6
- if (sourceText === undefined) {
7
+ if (!isDefined(sourceText)) {
7
8
  return;
8
9
  }
9
10
  const [options = {}] = context.options;
@@ -1 +1 @@
1
- {"version":3,"file":"create-import-pattern-rule.js","sourceRoot":"","sources":["../../src/_internal/create-import-pattern-rule.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,uBAAuB,EACvB,wBAAwB,GAC3B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAiChD,MAAM,oBAAoB,GAAG,CACzB,OAOI,EACJ,uBAA0C,EACiB,EAAE,CAAC,CAAC;IAC/D,2FAA2F,EACvF,CAAC,IAAuB,EAAQ,EAAE;QAC9B,MAAM,UAAU,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO;QACX,CAAC;QAED,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;QACvC,IACI,CAAC,wBAAwB,CACrB,UAAU,EACV,OAAO,EACP,uBAAuB,CAC1B,EACH,CAAC;YACC,OAAO;QACX,CAAC;QAED,OAAO,CAAC,MAAM,CAAC;YACX,IAAI,EAAE;gBACF,MAAM,EAAE,UAAU;aACrB;YACD,SAAS,EAAE,kBAAkB;YAC7B,IAAI;SACP,CAAC,CAAC;IACP,CAAC;CACR,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,EACpC,uBAAuB,EACvB,WAAW,EACX,IAAI,GACmC,EAEzC,EAAE,CACA,WAAW,CAAoD;IAC3D,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAChB,oBAAoB,CAAC,OAAO,EAAE,uBAAuB,CAAC;IAC1D,cAAc,EAAE,CAAC,EAAE,CAAC;IACpB,IAAI,EAAE;QACF,cAAc,EAAE,CAAC,EAAE,CAAC;QACpB,IAAI,EAAE;YACF,WAAW;YACX,WAAW,EAAE,KAAK;YAClB,GAAG,EAAE,kEAAkE,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;SACrG;QACD,cAAc,EAAE,KAAK;QACrB,QAAQ,EAAE;YACN,gBAAgB,EACZ,0DAA0D;SACjE;QACD,MAAM,EAAE;YACJ;gBACI,oBAAoB,EAAE,KAAK;gBAC3B,UAAU,EAAE;oBACR,KAAK,EAAE;wBACH,KAAK,EAAE;4BACH,IAAI,EAAE,QAAQ;yBACjB;wBACD,IAAI,EAAE,OAAO;qBAChB;oBACD,QAAQ,EAAE;wBACN,KAAK,EAAE;4BACH,IAAI,EAAE,QAAQ;yBACjB;wBACD,IAAI,EAAE,OAAO;qBAChB;iBACJ;gBACD,IAAI,EAAE,QAAQ;aACjB;SACJ;QACD,IAAI,EAAE,SAAS;KAClB;IACD,IAAI;CACP,CAAC,CAAC"}
1
+ {"version":3,"file":"create-import-pattern-rule.js","sourceRoot":"","sources":["../../src/_internal/create-import-pattern-rule.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EACH,uBAAuB,EACvB,wBAAwB,GAC3B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAiChD,MAAM,oBAAoB,GAAG,CACzB,OAOI,EACJ,uBAA0C,EACiB,EAAE,CAAC,CAAC;IAC/D,2FAA2F,EACvF,CAAC,IAAuB,EAAQ,EAAE;QAC9B,MAAM,UAAU,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;YACzB,OAAO;QACX,CAAC;QAED,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;QACvC,IACI,CAAC,wBAAwB,CACrB,UAAU,EACV,OAAO,EACP,uBAAuB,CAC1B,EACH,CAAC;YACC,OAAO;QACX,CAAC;QAED,OAAO,CAAC,MAAM,CAAC;YACX,IAAI,EAAE;gBACF,MAAM,EAAE,UAAU;aACrB;YACD,SAAS,EAAE,kBAAkB;YAC7B,IAAI;SACP,CAAC,CAAC;IACP,CAAC;CACR,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,EACpC,uBAAuB,EACvB,WAAW,EACX,IAAI,GACmC,EAEzC,EAAE,CACA,WAAW,CAAoD;IAC3D,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAChB,oBAAoB,CAAC,OAAO,EAAE,uBAAuB,CAAC;IAC1D,cAAc,EAAE,CAAC,EAAE,CAAC;IACpB,IAAI,EAAE;QACF,cAAc,EAAE,CAAC,EAAE,CAAC;QACpB,IAAI,EAAE;YACF,WAAW;YACX,WAAW,EAAE,KAAK;YAClB,GAAG,EAAE,kEAAkE,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;SACrG;QACD,cAAc,EAAE,KAAK;QACrB,QAAQ,EAAE;YACN,gBAAgB,EACZ,0DAA0D;SACjE;QACD,MAAM,EAAE;YACJ;gBACI,oBAAoB,EAAE,KAAK;gBAC3B,UAAU,EAAE;oBACR,KAAK,EAAE;wBACH,KAAK,EAAE;4BACH,IAAI,EAAE,QAAQ;yBACjB;wBACD,IAAI,EAAE,OAAO;qBAChB;oBACD,QAAQ,EAAE;wBACN,KAAK,EAAE;4BACH,IAAI,EAAE,QAAQ;yBACjB;wBACD,IAAI,EAAE,OAAO;qBAChB;iBACJ;gBACD,IAAI,EAAE,QAAQ;aACjB;SACJ;QACD,IAAI,EAAE,SAAS;KAClB;IACD,IAAI;CACP,CAAC,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import type { TSESLint } from "@typescript-eslint/utils";
2
- type RuleModule = TSESLint.RuleModule<string, readonly unknown[]>;
2
+ import type { UnknownArray } from "type-fest";
3
+ type RuleModule = TSESLint.RuleModule<string, Readonly<UnknownArray>>;
3
4
  /**
4
5
  * Resolve a core ESLint rule module by rule ID.
5
6
  */
@@ -1 +1 @@
1
- {"version":3,"file":"get-core-rule.d.ts","sourceRoot":"","sources":["../../src/_internal/get-core-rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAKzD,KAAK,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,CAAC,CAAC;AAElE;;GAEG;AACH,eAAO,MAAM,WAAW,GAAI,QAAQ,MAAM,KAAG,UAQ5C,CAAC"}
1
+ {"version":3,"file":"get-core-rule.d.ts","sourceRoot":"","sources":["../../src/_internal/get-core-rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAM9C,KAAK,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;AAEtE;;GAEG;AACH,eAAO,MAAM,WAAW,GAAI,QAAQ,MAAM,KAAG,UAQ5C,CAAC"}
@@ -1,12 +1,13 @@
1
1
  // eslint-disable-next-line import-x/no-deprecated, sonarjs/deprecation -- ESLint currently exposes core rules through this compatibility entrypoint.
2
2
  import { builtinRules } from "eslint/use-at-your-own-risk";
3
+ import { isDefined } from "ts-extras";
3
4
  /**
4
5
  * Resolve a core ESLint rule module by rule ID.
5
6
  */
6
7
  export const getCoreRule = (ruleId) => {
7
8
  // eslint-disable-next-line @typescript-eslint/no-deprecated, import-x/no-deprecated, sonarjs/deprecation -- ESLint currently exposes core rule modules through this entrypoint.
8
9
  const coreRule = builtinRules.get(ruleId);
9
- if (coreRule === undefined) {
10
+ if (!isDefined(coreRule)) {
10
11
  throw new Error(`Missing core ESLint rule "${ruleId}".`);
11
12
  }
12
13
  return coreRule;
@@ -1 +1 @@
1
- {"version":3,"file":"get-core-rule.js","sourceRoot":"","sources":["../../src/_internal/get-core-rule.ts"],"names":[],"mappings":"AAEA,qJAAqJ;AACrJ,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAI3D;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,MAAc,EAAc,EAAE;IACtD,gLAAgL;IAChL,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,6BAA6B,MAAM,IAAI,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,QAAiC,CAAC;AAC7C,CAAC,CAAC"}
1
+ {"version":3,"file":"get-core-rule.js","sourceRoot":"","sources":["../../src/_internal/get-core-rule.ts"],"names":[],"mappings":"AAGA,qJAAqJ;AACrJ,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAItC;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,MAAc,EAAc,EAAE;IACtD,gLAAgL;IAChL,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1C,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,6BAA6B,MAAM,IAAI,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,QAAiC,CAAC;AAC7C,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"identifier-blocks.d.ts","sourceRoot":"","sources":["../../src/_internal/identifier-blocks.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAAI,OAAO,MAAM,KAAG,SAAS,MAAM,EAapE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,GAAI,OAAO,MAAM,KAAG,MACf,CAAC"}
1
+ {"version":3,"file":"identifier-blocks.d.ts","sourceRoot":"","sources":["../../src/_internal/identifier-blocks.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAAI,OAAO,MAAM,KAAG,SAAS,MAAM,EAepE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,GAAI,OAAO,MAAM,KAAG,MACf,CAAC"}
@@ -1,6 +1,7 @@
1
+ import { stringSplit } from "ts-extras";
1
2
  const camelCaseBoundaryPattern = /(?<=[\da-z])(?=[A-Z])/gu;
2
3
  const nonAlphanumericPattern = /[^0-9A-Za-z]+/gu;
3
- const whitespacePattern = /\s+/u;
4
+ const whitespacePattern = /\s+/gu;
4
5
  /**
5
6
  * Split identifier-like text into non-empty blocks while preserving original
6
7
  * block casing.
@@ -13,9 +14,8 @@ export const splitIdentifierBlocks = (value) => {
13
14
  if (normalized.length === 0) {
14
15
  return [];
15
16
  }
16
- return normalized
17
- .split(whitespacePattern)
18
- .filter((segment) => segment.length > 0);
17
+ const normalizedWhitespace = normalized.replaceAll(whitespacePattern, " ");
18
+ return stringSplit(normalizedWhitespace, " ").filter((segment) => segment.length > 0);
19
19
  };
20
20
  /**
21
21
  * Count non-empty identifier blocks after casing/punctuation normalization.
@@ -1 +1 @@
1
- {"version":3,"file":"identifier-blocks.js","sourceRoot":"","sources":["../../src/_internal/identifier-blocks.ts"],"names":[],"mappings":"AAAA,MAAM,wBAAwB,GAAG,yBAAyB,CAAC;AAC3D,MAAM,sBAAsB,GAAG,iBAAiB,CAAC;AACjD,MAAM,iBAAiB,GAAG,MAAM,CAAC;AAEjC;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,KAAa,EAAqB,EAAE;IACtE,MAAM,UAAU,GAAG,KAAK;SACnB,UAAU,CAAC,wBAAwB,EAAE,GAAG,CAAC;SACzC,UAAU,CAAC,sBAAsB,EAAE,GAAG,CAAC;SACvC,IAAI,EAAE,CAAC;IAEZ,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAC;IACd,CAAC;IAED,OAAO,UAAU;SACZ,KAAK,CAAC,iBAAiB,CAAC;SACxB,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACjD,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,KAAa,EAAU,EAAE,CAC3D,qBAAqB,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC"}
1
+ {"version":3,"file":"identifier-blocks.js","sourceRoot":"","sources":["../../src/_internal/identifier-blocks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,MAAM,wBAAwB,GAAG,yBAAyB,CAAC;AAC3D,MAAM,sBAAsB,GAAG,iBAAiB,CAAC;AACjD,MAAM,iBAAiB,GAAG,OAAO,CAAC;AAElC;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,KAAa,EAAqB,EAAE;IACtE,MAAM,UAAU,GAAG,KAAK;SACnB,UAAU,CAAC,wBAAwB,EAAE,GAAG,CAAC;SACzC,UAAU,CAAC,sBAAsB,EAAE,GAAG,CAAC;SACvC,IAAI,EAAE,CAAC;IAEZ,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAC;IACd,CAAC;IAED,MAAM,oBAAoB,GAAG,UAAU,CAAC,UAAU,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;IAE3E,OAAO,WAAW,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC,MAAM,CAChD,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAClC,CAAC;AACN,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,KAAa,EAAU,EAAE,CAC3D,qBAAqB,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ignore-patterns.d.ts","sourceRoot":"","sources":["../../src/_internal/ignore-patterns.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAAC;IAC1C,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;CAC3C,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;AAEzC;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CAAC;IACxC,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC,CAAC,CAAC;AAGH;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAC9B,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,KAC9C,sBAyBF,CAAC"}
1
+ {"version":3,"file":"ignore-patterns.d.ts","sourceRoot":"","sources":["../../src/_internal/ignore-patterns.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAAC;IAC1C,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;CAC3C,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;AAEzC;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CAAC;IACxC,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC,CAAC,CAAC;AAGH;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAC9B,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,KAC9C,sBAyBF,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { objectEntries } from "ts-extras";
1
2
  /* eslint-disable security/detect-non-literal-regexp -- Rule options intentionally accept user-provided regex strings. */
2
3
  /**
3
4
  * Compile ignore-option regex patterns into mode buckets.
@@ -9,7 +10,7 @@ export const compileIgnorePatterns = (ignored) => {
9
10
  let namePatterns = [];
10
11
  let pathPatterns = [];
11
12
  let invalidPatterns = [];
12
- for (const [pattern, mode] of Object.entries(ignored)) {
13
+ for (const [pattern, mode] of objectEntries(ignored)) {
13
14
  try {
14
15
  const regularExpression = new RegExp(pattern, "u");
15
16
  if (mode === "name") {
@@ -1 +1 @@
1
- {"version":3,"file":"ignore-patterns.js","sourceRoot":"","sources":["../../src/_internal/ignore-patterns.ts"],"names":[],"mappings":"AAqBA,yHAAyH;AACzH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACjC,OAA6C,EACvB,EAAE;IACxB,IAAI,YAAY,GAAsB,EAAE,CAAC;IACzC,IAAI,YAAY,GAAsB,EAAE,CAAC;IACzC,IAAI,eAAe,GAAsB,EAAE,CAAC;IAE5C,KAAK,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACpD,IAAI,CAAC;YACD,MAAM,iBAAiB,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACnD,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBAClB,YAAY,GAAG,CAAC,GAAG,YAAY,EAAE,iBAAiB,CAAC,CAAC;YACxD,CAAC;iBAAM,CAAC;gBACJ,YAAY,GAAG,CAAC,GAAG,YAAY,EAAE,iBAAiB,CAAC,CAAC;YACxD,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACL,eAAe,GAAG,CAAC,GAAG,eAAe,EAAE,OAAO,CAAC,CAAC;QACpD,CAAC;IACL,CAAC;IAED,OAAO;QACH,eAAe;QACf,QAAQ,EAAE;YACN,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,YAAY;SACrB;KACJ,CAAC;AACN,CAAC,CAAC;AACF,4HAA4H"}
1
+ {"version":3,"file":"ignore-patterns.js","sourceRoot":"","sources":["../../src/_internal/ignore-patterns.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAuB1C,yHAAyH;AACzH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACjC,OAA6C,EACvB,EAAE;IACxB,IAAI,YAAY,GAAsB,EAAE,CAAC;IACzC,IAAI,YAAY,GAAsB,EAAE,CAAC;IACzC,IAAI,eAAe,GAAsB,EAAE,CAAC;IAE5C,KAAK,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;QACnD,IAAI,CAAC;YACD,MAAM,iBAAiB,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACnD,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBAClB,YAAY,GAAG,CAAC,GAAG,YAAY,EAAE,iBAAiB,CAAC,CAAC;YACxD,CAAC;iBAAM,CAAC;gBACJ,YAAY,GAAG,CAAC,GAAG,YAAY,EAAE,iBAAiB,CAAC,CAAC;YACxD,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACL,eAAe,GAAG,CAAC,GAAG,eAAe,EAAE,OAAO,CAAC,CAAC;QACpD,CAAC;IACL,CAAC;IAED,OAAO;QACH,eAAe;QACf,QAAQ,EAAE;YACN,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,YAAY;SACrB;KACJ,CAAC;AACN,CAAC,CAAC;AACF,4HAA4H"}
@@ -1,9 +1,10 @@
1
1
  import type { TSESLint } from "@typescript-eslint/utils";
2
+ import type { UnknownArray } from "type-fest";
2
3
  import { ESLintUtils } from "@typescript-eslint/utils";
3
4
  /**
4
5
  * Broad rule-module type used by incrementally migrated rule files.
5
6
  */
6
- export type AnyRuleModule = TSESLint.RuleModule<string, readonly unknown[]>;
7
+ export type AnyRuleModule = TSESLint.RuleModule<string, Readonly<UnknownArray>>;
7
8
  type RuleCreatorFactory = ReturnType<typeof ESLintUtils.RuleCreator<RuleDocsMetadata>>;
8
9
  type RuleDocsMetadata = {
9
10
  readonly catalogId?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"rule-creator.d.ts","sourceRoot":"","sources":["../../src/_internal/rule-creator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEzD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,CAAC,CAAC;AAE5E,KAAK,kBAAkB,GAAG,UAAU,CAChC,OAAO,WAAW,CAAC,WAAW,CAAC,gBAAgB,CAAC,CACnD,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACpB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IACxC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;CACjC,CAAC;AAEF;;GAEG;AACH;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,kBAKpB,CAAC"}
1
+ {"version":3,"file":"rule-creator.d.ts","sourceRoot":"","sources":["../../src/_internal/rule-creator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE9C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;AAEhF,KAAK,kBAAkB,GAAG,UAAU,CAChC,OAAO,WAAW,CAAC,WAAW,CAAC,gBAAgB,CAAC,CACnD,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACpB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IACxC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;CACjC,CAAC;AAEF;;GAEG;AACH;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,kBAKpB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"rule-creator.js","sourceRoot":"","sources":["../../src/_internal/rule-creator.ts"],"names":[],"mappings":"AAAA,kKAAkK;AAIlK,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAsBvD;;GAEG;AACH;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GACpB,WAAW,CAAC,WAAW,CAAmB,CAAC,IAAI,EAAE,EAAE;IAC/C,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAE/C,OAAO,kEAAkE,YAAY,EAAE,CAAC;AAC5F,CAAC,CAAC,CAAC;AAEP,qJAAqJ"}
1
+ {"version":3,"file":"rule-creator.js","sourceRoot":"","sources":["../../src/_internal/rule-creator.ts"],"names":[],"mappings":"AAAA,kKAAkK;AAKlK,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAsBvD;;GAEG;AACH;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GACpB,WAAW,CAAC,WAAW,CAAmB,CAAC,IAAI,EAAE,EAAE;IAC/C,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAE/C,OAAO,kEAAkE,YAAY,EAAE,CAAC;AAC5F,CAAC,CAAC,CAAC;AAEP,qJAAqJ"}
@@ -1,4 +1,5 @@
1
1
  import type { TSESLint } from "@typescript-eslint/utils";
2
+ import type { UnknownArray } from "type-fest";
2
3
  type DeprecatedInfo = Exclude<TSESLint.RuleMetaData<string>["deprecated"], boolean | undefined>;
3
4
  type ReplacedByInfo = NonNullable<DeprecatedInfo["replacedBy"]>[number];
4
5
  type RuleDeprecationOptions = Readonly<{
@@ -6,7 +7,7 @@ type RuleDeprecationOptions = Readonly<{
6
7
  readonly replacedBy?: readonly ReplacedByInfo[];
7
8
  readonly ruleId: string;
8
9
  }>;
9
- type RuleModule = TSESLint.RuleModule<string, readonly unknown[]>;
10
+ type RuleModule = TSESLint.RuleModule<string, Readonly<UnknownArray>>;
10
11
  /**
11
12
  * Create a replacement descriptor for deprecation metadata.
12
13
  */
@@ -1 +1 @@
1
- {"version":3,"file":"rule-deprecation.d.ts","sourceRoot":"","sources":["../../src/_internal/rule-deprecation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEzD,KAAK,cAAc,GAAG,OAAO,CACzB,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,EAC3C,OAAO,GAAG,SAAS,CACtB,CAAC;AACF,KAAK,cAAc,GAAG,WAAW,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAExE,KAAK,sBAAsB,GAAG,QAAQ,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;IAChD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CAC3B,CAAC,CAAC;AAEH,KAAK,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,CAAC,CAAC;AAKlE;;GAEG;AACH,eAAO,MAAM,yBAAyB,GAClC,aAAa,QAAQ,CAAC;IAClB,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC;QACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC,CAAC;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC;QACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC,CAAC;CACN,CAAC,KACH,cAGD,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,wBAAwB,GAAI,kCAItC,sBAAsB,KAAG,cAM1B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,2BAA2B,GAAI,KAAK,SAAS,UAAU,EAChE,MAAM,KAAK,EACX,SAAS,sBAAsB,KAChC,KAeD,CAAC"}
1
+ {"version":3,"file":"rule-deprecation.d.ts","sourceRoot":"","sources":["../../src/_internal/rule-deprecation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAI9C,KAAK,cAAc,GAAG,OAAO,CACzB,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,EAC3C,OAAO,GAAG,SAAS,CACtB,CAAC;AACF,KAAK,cAAc,GAAG,WAAW,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAExE,KAAK,sBAAsB,GAAG,QAAQ,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;IAChD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CAC3B,CAAC,CAAC;AAEH,KAAK,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;AAKtE;;GAEG;AACH,eAAO,MAAM,yBAAyB,GAClC,aAAa,QAAQ,CAAC;IAClB,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC;QACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC,CAAC;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC;QACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC,CAAC;CACN,CAAC,KACH,cAGD,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,wBAAwB,GAAI,kCAItC,sBAAsB,KAAG,cAM1B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,2BAA2B,GAAI,KAAK,SAAS,UAAU,EAChE,MAAM,KAAK,EACX,SAAS,sBAAsB,KAChC,KAeD,CAAC"}
@@ -1,10 +1,11 @@
1
+ import { isDefined } from "ts-extras";
1
2
  const docsBaseUrl = "https://nick2bad4u.github.io/eslint-plugin-etc-misc/docs/rules";
2
3
  /**
3
4
  * Create a replacement descriptor for deprecation metadata.
4
5
  */
5
6
  export const createReplacementRuleInfo = (replacement) => ({
6
- ...(replacement.plugin === undefined ? {} : { plugin: replacement.plugin }),
7
- ...(replacement.rule === undefined ? {} : { rule: replacement.rule }),
7
+ ...(isDefined(replacement.plugin) ? { plugin: replacement.plugin } : {}),
8
+ ...(isDefined(replacement.rule) ? { rule: replacement.rule } : {}),
8
9
  });
9
10
  /**
10
11
  * Create standardized deprecation metadata for this plugin.
@@ -1 +1 @@
1
- {"version":3,"file":"rule-deprecation.js","sourceRoot":"","sources":["../../src/_internal/rule-deprecation.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,GACb,gEAAgE,CAAC;AAErE;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACrC,WASE,EACY,EAAE,CAAC,CAAC;IAClB,GAAG,CAAC,WAAW,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC;IAC3E,GAAG,CAAC,WAAW,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC;CACxE,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,EACrC,OAAO,EACP,UAAU,GAAG,EAAE,EACf,MAAM,GACe,EAAkB,EAAE,CAAC,CAAC;IAC3C,cAAc,EAAE,OAAO;IACvB,eAAe,EAAE,OAAO;IACxB,OAAO;IACP,GAAG,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,GAAG,UAAU,CAAC,EAAE,CAAC;IACnE,GAAG,EAAE,GAAG,WAAW,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;CACvD,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CACvC,IAAW,EACX,OAA+B,EAC1B,EAAE,CAAC,CAAC;IACT,GAAG,IAAI;IACP,IAAI,EAAE;QACF,GAAG,IAAI,CAAC,IAAI;QACZ,UAAU,EAAE,wBAAwB,CAAC,OAAO,CAAC;QAC7C,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS;YAC5B,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACI,IAAI,EAAE;oBACF,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI;oBACjB,UAAU,EAAE,IAAI;oBAChB,MAAM,EAAE,IAAI;iBACf;aACJ,CAAC;KACX;CACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"rule-deprecation.js","sourceRoot":"","sources":["../../src/_internal/rule-deprecation.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAgBtC,MAAM,WAAW,GACb,gEAAgE,CAAC;AAErE;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACrC,WASE,EACY,EAAE,CAAC,CAAC;IAClB,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACxE,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;CACrE,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,EACrC,OAAO,EACP,UAAU,GAAG,EAAE,EACf,MAAM,GACe,EAAkB,EAAE,CAAC,CAAC;IAC3C,cAAc,EAAE,OAAO;IACvB,eAAe,EAAE,OAAO;IACxB,OAAO;IACP,GAAG,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,GAAG,UAAU,CAAC,EAAE,CAAC;IACnE,GAAG,EAAE,GAAG,WAAW,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;CACvD,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CACvC,IAAW,EACX,OAA+B,EAC1B,EAAE,CAAC,CAAC;IACT,GAAG,IAAI;IACP,IAAI,EAAE;QACF,GAAG,IAAI,CAAC,IAAI;QACZ,UAAU,EAAE,wBAAwB,CAAC,OAAO,CAAC;QAC7C,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS;YAC5B,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACI,IAAI,EAAE;oBACF,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI;oBACjB,UAAU,EAAE,IAAI;oBAChB,MAAM,EAAE,IAAI;iBACf;aACJ,CAAC;KACX;CACJ,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"symbol-usage.d.ts","sourceRoot":"","sources":["../../src/_internal/symbol-usage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAS7E,KAAK,cAAc,GAAG,QAAQ,CAC1B,UAAU,CAAC,OAAO,4BAA4B,CAAC,CAAC,CAAC,CAAC,CACrD,CAAC;AAMF;;GAEG;AACH,eAAO,MAAM,yBAAyB,GAClC,QAAQ,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,SAAS,KACtC,OAImC,CAAC;AAEvC;;GAEG;AACH,eAAO,MAAM,uBAAuB,GAChC,MAAM,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,KAC9B,OA2BF,CAAC;AAqCF;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAC5B,QAAQ,OAAO,EACf,SAAS,OAAO,EAChB,SAAS,MAAM,KAChB,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,EAS/B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC1B,MAAM,MAAM,EACZ,UAAU,SAAS,QAAQ,CAAC,MAAM,CAAC,EAAE,KACtC,OAAyD,CAAC;AAE7D;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAC5B,gBAAgB,cAAc,EAC9B,MAAM,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,KAC9B,UAAU,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC,GAAG,SAOtD,CAAC"}
1
+ {"version":3,"file":"symbol-usage.d.ts","sourceRoot":"","sources":["../../src/_internal/symbol-usage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAG/D,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAU7E,KAAK,cAAc,GAAG,QAAQ,CAC1B,UAAU,CAAC,OAAO,4BAA4B,CAAC,CAAC,CAAC,CAAC,CACrD,CAAC;AAMF;;GAEG;AACH,eAAO,MAAM,yBAAyB,GAClC,QAAQ,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,SAAS,KACtC,OAImC,CAAC;AAEvC;;GAEG;AACH,eAAO,MAAM,uBAAuB,GAChC,MAAM,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,KAC9B,OA2BF,CAAC;AAyCF;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAC5B,QAAQ,OAAO,EACf,SAAS,OAAO,EAChB,SAAS,MAAM,KAChB,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,EAW/B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC1B,MAAM,MAAM,EACZ,UAAU,SAAS,QAAQ,CAAC,MAAM,CAAC,EAAE,KACtC,OAAyD,CAAC;AAE7D;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAC5B,gBAAgB,cAAc,EAC9B,MAAM,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,KAC9B,UAAU,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC,GAAG,SAOtD,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { getConstrainedTypeAtLocation } from "@typescript-eslint/type-utils";
2
+ import { arrayJoin, isDefined, keyIn } from "ts-extras";
2
3
  /**
3
4
  * Whether an identifier belongs to an import/export specifier position.
4
5
  */
@@ -30,28 +31,27 @@ export const isDeclarationIdentifier = (node) => {
30
31
  return false;
31
32
  };
32
33
  const normalizeTagComment = (text) => {
33
- if (text === undefined) {
34
+ if (!isDefined(text)) {
34
35
  return undefined;
35
36
  }
36
37
  if (typeof text === "string") {
37
38
  const normalized = text.trim().replaceAll(/\s+/gu, " ");
38
39
  return normalized.length > 0 ? normalized : undefined;
39
40
  }
40
- const normalized = text
41
- .map((part) => part.text)
42
- .join("")
41
+ const normalized = arrayJoin(text.map((part) => part.text), "")
43
42
  .replaceAll(/\s+/gu, " ")
44
43
  .trim();
45
44
  return normalized.length > 0 ? normalized : undefined;
46
45
  };
46
+ const isUnknownRecord = (value) => typeof value === "object" && value !== null;
47
47
  const isSymbolWithJsDocTags = (symbol) => {
48
- if (typeof symbol !== "object" || symbol === null) {
48
+ if (!isUnknownRecord(symbol)) {
49
49
  return false;
50
50
  }
51
- if (!("getJsDocTags" in symbol)) {
51
+ if (!keyIn(symbol, "getJsDocTags")) {
52
52
  return false;
53
53
  }
54
- return typeof symbol.getJsDocTags === "function";
54
+ return typeof symbol["getJsDocTags"] === "function";
55
55
  };
56
56
  /**
57
57
  * Collect normalized comment payloads for a specific JSDoc tag name.
@@ -60,8 +60,9 @@ export const getJsDocTagComments = (symbol, checker, tagName) => {
60
60
  if (!isSymbolWithJsDocTags(symbol)) {
61
61
  return [];
62
62
  }
63
- return symbol
64
- .getJsDocTags(checker)
63
+ const tags = symbol.getJsDocTags();
64
+ const resolvedTags = tags.length > 0 ? tags : symbol.getJsDocTags(checker);
65
+ return resolvedTags
65
66
  .filter((tag) => tag.name === tagName)
66
67
  .map((tag) => normalizeTagComment(tag.text));
67
68
  };
@@ -74,7 +75,7 @@ export const matchesAnyPattern = (text, patterns) => patterns.some((pattern) =>
74
75
  */
75
76
  export const getIdentifierSymbol = (parserServices, node) => {
76
77
  const symbolFromLocation = parserServices.getSymbolAtLocation(node);
77
- if (symbolFromLocation !== undefined) {
78
+ if (isDefined(symbolFromLocation)) {
78
79
  return symbolFromLocation;
79
80
  }
80
81
  return getConstrainedTypeAtLocation(parserServices, node).getSymbol();
@@ -1 +1 @@
1
- {"version":3,"file":"symbol-usage.js","sourceRoot":"","sources":["../../src/_internal/symbol-usage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"symbol-usage.js","sourceRoot":"","sources":["../../src/_internal/symbol-usage.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"syntax-selectors.d.ts","sourceRoot":"","sources":["../../src/_internal/syntax-selectors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE/D;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC;IACvC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC7B,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAC1B,QAAQ,CAAC;IACL,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC7B,CAAC,GACF,MAAM,CAAC;AASb;;GAEG;AACH,eAAO,MAAM,uBAAuB,GAChC,UAAU,oBAAoB,KAC/B,mBAiBF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,8BAA8B,GACvC,SAAS,SAAS,mBAAmB,EAAE,EACvC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,KAAK,IAAI,KACtE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAQxD,CAAC"}
1
+ {"version":3,"file":"syntax-selectors.d.ts","sourceRoot":"","sources":["../../src/_internal/syntax-selectors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAI/D;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC;IACvC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC7B,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAC1B,QAAQ,CAAC;IACL,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC7B,CAAC,GACF,MAAM,CAAC;AASb;;GAEG;AACH,eAAO,MAAM,uBAAuB,GAChC,UAAU,oBAAoB,KAC/B,mBAiBF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,8BAA8B,GACvC,SAAS,SAAS,mBAAmB,EAAE,EACvC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,KAAK,IAAI,KACtE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAW5D,CAAC"}
@@ -1,10 +1,11 @@
1
- const isSelectorObject = (value) => typeof value === "object" && value !== null && "selector" in value;
1
+ import { isDefined, keyIn } from "ts-extras";
2
+ const isSelectorObject = (value) => typeof value === "object" && value !== null && keyIn(value, "selector");
2
3
  /**
3
4
  * Normalize a selector option into a selector entry object.
4
5
  */
5
6
  export const normalizeSyntaxSelector = (selector) => {
6
7
  if (isSelectorObject(selector)) {
7
- if (selector.message === undefined) {
8
+ if (!isDefined(selector.message)) {
8
9
  return {
9
10
  selector: selector.selector,
10
11
  };
@@ -21,10 +22,14 @@ export const normalizeSyntaxSelector = (selector) => {
21
22
  /**
22
23
  * Build ESLint selector listeners from selector entries.
23
24
  */
24
- export const buildRestrictedSyntaxListeners = (entries, report) => Object.fromEntries(entries.map((entry) => [
25
- entry.selector,
26
- (node) => {
27
- report(node, entry);
28
- },
29
- ]));
25
+ export const buildRestrictedSyntaxListeners = (entries, report) => {
26
+ // eslint-disable-next-line etc-misc/typescript/prefer-readonly-record -- Local builder object is mutated during listener collection before returning readonly view.
27
+ const listeners = {};
28
+ for (const entry of entries) {
29
+ listeners[entry.selector] = (node) => {
30
+ report(node, entry);
31
+ };
32
+ }
33
+ return listeners;
34
+ };
30
35
  //# sourceMappingURL=syntax-selectors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"syntax-selectors.js","sourceRoot":"","sources":["../../src/_internal/syntax-selectors.ts"],"names":[],"mappings":"AAoBA,MAAM,gBAAgB,GAAG,CACrB,KAA2B,EAI5B,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,UAAU,IAAI,KAAK,CAAC;AAEzE;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACnC,QAA8B,EACX,EAAE;IACrB,IAAI,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACjC,OAAO;gBACH,QAAQ,EAAE,QAAQ,CAAC,QAAQ;aAC9B,CAAC;QACN,CAAC;QAED,OAAO;YACH,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;SAC9B,CAAC;IACN,CAAC;IAED,OAAO;QACH,QAAQ;KACX,CAAC;AACN,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAC1C,OAAuC,EACvC,MAAqE,EACV,EAAE,CAC7D,MAAM,CAAC,WAAW,CACd,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;IACnB,KAAK,CAAC,QAAQ;IACd,CAAC,IAAuB,EAAQ,EAAE;QAC9B,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACxB,CAAC;CACJ,CAAC,CACL,CAAC"}
1
+ {"version":3,"file":"syntax-selectors.js","sourceRoot":"","sources":["../../src/_internal/syntax-selectors.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAoB7C,MAAM,gBAAgB,GAAG,CACrB,KAA2B,EAI5B,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AAE9E;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACnC,QAA8B,EACX,EAAE;IACrB,IAAI,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/B,OAAO;gBACH,QAAQ,EAAE,QAAQ,CAAC,QAAQ;aAC9B,CAAC;QACN,CAAC;QAED,OAAO;YACH,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;SAC9B,CAAC;IACN,CAAC;IAED,OAAO;QACH,QAAQ;KACX,CAAC;AACN,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAC1C,OAAuC,EACvC,MAAqE,EACV,EAAE;IAC7D,oKAAoK;IACpK,MAAM,SAAS,GAAsD,EAAE,CAAC;IAExE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC1B,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAuB,EAAQ,EAAE;YAC1D,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACxB,CAAC,CAAC;IACN,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"all-strict.d.ts","sourceRoot":"","sources":["../../src/configs/all-strict.ts"],"names":[],"mappings":"AAIA,KAAK,eAAe,GAAG;IACnB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;CAC1D,CAAC;AAEF,KAAK,YAAY,GAAG,OAAO,GAAG,MAAM,CAAC;AAcrC;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,eAEvB,CAAC"}
1
+ {"version":3,"file":"all-strict.d.ts","sourceRoot":"","sources":["../../src/configs/all-strict.ts"],"names":[],"mappings":"AAMA,KAAK,eAAe,GAAG;IACnB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;CAC1D,CAAC;AAEF,KAAK,YAAY,GAAG,OAAO,GAAG,MAAM,CAAC;AAcrC;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,eAEvB,CAAC"}
@@ -1,10 +1,11 @@
1
1
  /* eslint-disable canonical/no-reassign-imports -- Rule entry map intentionally references imported plugin rules metadata. */
2
+ import { objectEntries, objectFromEntries } from "ts-extras";
2
3
  import { rules as pluginRules } from "../rules.js";
3
- const allStrictRuleEntries = Object.entries(pluginRules).map(([ruleName, ruleModule]) => [
4
+ const allStrictRuleEntries = objectEntries(pluginRules).map(([ruleName, ruleModule]) => [
4
5
  `etc-misc/${ruleName}`,
5
6
  ruleModule.meta.deprecated === false ? "error" : "warn",
6
7
  ]);
7
- const allStrictRules = Object.fromEntries(allStrictRuleEntries);
8
+ const allStrictRules = objectFromEntries(allStrictRuleEntries);
8
9
  /**
9
10
  * Flat config preset enabling every plugin rule at `error`, except deprecated
10
11
  * rules which remain at `warn`.
@@ -1 +1 @@
1
- {"version":3,"file":"all-strict.js","sourceRoot":"","sources":["../../src/configs/all-strict.ts"],"names":[],"mappings":"AAAA,6HAA6H;AAE7H,OAAO,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,aAAa,CAAC;AAQnD,MAAM,oBAAoB,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CACxD,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,EAAE,CACvB;IACI,YAAY,QAAQ,EAAE;IACtB,UAAU,CAAC,IAAI,CAAC,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;CACjD,CACjB,CAAC;AAEF,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,CAAC,oBAAoB,CAE7D,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAoB;IACtC,KAAK,EAAE,cAAc;CACxB,CAAC;AAEF,wIAAwI"}
1
+ {"version":3,"file":"all-strict.js","sourceRoot":"","sources":["../../src/configs/all-strict.ts"],"names":[],"mappings":"AAAA,6HAA6H;AAE7H,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE7D,OAAO,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,aAAa,CAAC;AAQnD,MAAM,oBAAoB,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC,GAAG,CACvD,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,EAAE,CACvB;IACI,YAAY,QAAQ,EAAE;IACtB,UAAU,CAAC,IAAI,CAAC,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;CACjD,CACjB,CAAC;AAEF,MAAM,cAAc,GAAG,iBAAiB,CAAC,oBAAoB,CAE5D,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAoB;IACtC,KAAK,EAAE,cAAc;CACxB,CAAC;AAEF,wIAAwI"}
@@ -1 +1 @@
1
- {"version":3,"file":"all.d.ts","sourceRoot":"","sources":["../../src/configs/all.ts"],"names":[],"mappings":"AAIA,KAAK,SAAS,GAAG;IACb,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;CAC1D,CAAC;AAEF,KAAK,YAAY,GAAG,OAAO,GAAG,MAAM,CAAC;AAqBrC;;GAEG;AACH,eAAO,MAAM,GAAG,EAAE,SAEjB,CAAC"}
1
+ {"version":3,"file":"all.d.ts","sourceRoot":"","sources":["../../src/configs/all.ts"],"names":[],"mappings":"AAMA,KAAK,SAAS,GAAG;IACb,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;CAC1D,CAAC;AAEF,KAAK,YAAY,GAAG,OAAO,GAAG,MAAM,CAAC;AAqBrC;;GAEG;AACH,eAAO,MAAM,GAAG,EAAE,SAEjB,CAAC"}
@@ -1,4 +1,5 @@
1
1
  /* eslint-disable canonical/no-reassign-imports -- Rule entry map intentionally references imported plugin rules object. */
2
+ import { objectEntries, objectFromEntries } from "ts-extras";
2
3
  import { rules as pluginRules } from "../rules.js";
3
4
  const getAllPresetSeverity = (ruleModule) => {
4
5
  if (ruleModule.meta.deprecated !== false) {
@@ -6,8 +7,8 @@ const getAllPresetSeverity = (ruleModule) => {
6
7
  }
7
8
  return ruleModule.meta.type === "problem" ? "error" : "warn";
8
9
  };
9
- const allRuleEntries = Object.entries(pluginRules).map(([ruleName, ruleModule]) => [`etc-misc/${ruleName}`, getAllPresetSeverity(ruleModule)]);
10
- const allRules = Object.fromEntries(allRuleEntries);
10
+ const allRuleEntries = objectEntries(pluginRules).map(([ruleName, ruleModule]) => [`etc-misc/${ruleName}`, getAllPresetSeverity(ruleModule)]);
11
+ const allRules = objectFromEntries(allRuleEntries);
11
12
  /**
12
13
  * Flat config preset enabling every available plugin rule.
13
14
  */
@@ -1 +1 @@
1
- {"version":3,"file":"all.js","sourceRoot":"","sources":["../../src/configs/all.ts"],"names":[],"mappings":"AAAA,2HAA2H;AAE3H,OAAO,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,aAAa,CAAC;AAQnD,MAAM,oBAAoB,GAAG,CACzB,UAAkD,EACtC,EAAE;IACd,IAAI,UAAU,CAAC,IAAI,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;QACvC,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;AACjE,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CAClD,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,EAAE,CACvB,CAAC,YAAY,QAAQ,EAAE,EAAE,oBAAoB,CAAC,UAAU,CAAC,CAAU,CAC1E,CAAC;AAEF,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,cAAc,CAEjD,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,GAAG,GAAc;IAC1B,KAAK,EAAE,QAAQ;CAClB,CAAC;AAEF,wIAAwI"}
1
+ {"version":3,"file":"all.js","sourceRoot":"","sources":["../../src/configs/all.ts"],"names":[],"mappings":"AAAA,2HAA2H;AAE3H,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE7D,OAAO,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,aAAa,CAAC;AAQnD,MAAM,oBAAoB,GAAG,CACzB,UAAkD,EACtC,EAAE;IACd,IAAI,UAAU,CAAC,IAAI,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;QACvC,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;AACjE,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC,GAAG,CACjD,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,EAAE,CACvB,CAAC,YAAY,QAAQ,EAAE,EAAE,oBAAoB,CAAC,UAAU,CAAC,CAAU,CAC1E,CAAC;AAEF,MAAM,QAAQ,GAAG,iBAAiB,CAAC,cAAc,CAEhD,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,GAAG,GAAc;IAC1B,KAAK,EAAE,QAAQ;CAClB,CAAC;AAEF,wIAAwI"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Minimal starter preset: `recommended` without the `prefer-readonly*` rules.
3
+ */
4
+ export declare const minimal: {
5
+ readonly rules: {
6
+ readonly "etc-misc/consistent-optional-props": "warn";
7
+ readonly "etc-misc/no-assign-mutated-array": "error";
8
+ readonly "etc-misc/no-const-enum": "warn";
9
+ readonly "etc-misc/no-implicit-any-catch": "error";
10
+ readonly "etc-misc/no-internal": "error";
11
+ readonly "etc-misc/no-t": "error";
12
+ readonly "etc-misc/no-unnecessary-as-const": "warn";
13
+ readonly "etc-misc/no-unnecessary-break": "warn";
14
+ readonly "etc-misc/no-unnecessary-initialization": "warn";
15
+ readonly "etc-misc/no-unnecessary-template-literal": "warn";
16
+ readonly "etc-misc/throw-error": "error";
17
+ readonly "etc-misc/typescript/no-boolean-literal-type": "error";
18
+ readonly "etc-misc/typescript/require-readonly-array-return-type": "warn";
19
+ readonly "etc-misc/typescript/require-this-void": "warn";
20
+ };
21
+ };
22
+ //# sourceMappingURL=minimal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"minimal.d.ts","sourceRoot":"","sources":["../../src/configs/minimal.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;CAiBV,CAAC"}