@pumpn/eslint-config 15.5.2 → 15.5.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.
package/config.js CHANGED
@@ -5,6 +5,10 @@ import globals from "globals";
5
5
  import plugins from "./plugins.js";
6
6
  import rules from "./rules.js";
7
7
 
8
+ /**
9
+ * @import { Linter } from "eslint"
10
+ */
11
+
8
12
  const cssFilesRefreshRate = 5_000;
9
13
 
10
14
  const convertedGlobals = Object.fromEntries(
@@ -45,7 +49,15 @@ const rulesWithAutofixDisabled = Object.fromEntries(
45
49
  ])
46
50
  );
47
51
 
48
- const config = [
52
+ /**
53
+ * ESLint configuration.
54
+ *
55
+ * This configuration includes settings for various file types, plugins, and rules.
56
+ * It also defines specific settings for different environments and file patterns.
57
+ *
58
+ * @satisfies {Linter.Config[]}
59
+ */
60
+ const config = /** @type {const} */ ([
49
61
  {
50
62
  ignores: [
51
63
  "_fresh/**",
@@ -215,6 +227,6 @@ const config = [
215
227
  plugins,
216
228
  rules: rulesWithAutofixDisabled
217
229
  }
218
- ];
230
+ ]);
219
231
 
220
232
  export default config;
package/deno.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pumpn/eslint-config",
3
- "version": "15.5.2",
3
+ "version": "15.5.3",
4
4
  "exports": "./config.js",
5
5
  "tasks": {
6
6
  "lint": "deno run -A npm:eslint",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pumpn/eslint-config",
3
- "version": "15.5.2",
3
+ "version": "15.5.3",
4
4
  "description": "standard eslint config for pumpn code projects",
5
5
  "main": "config.js",
6
6
  "author": "Nano Miratus <nanomiratus@gmail.com>",
package/plugins.js CHANGED
@@ -1,5 +1,7 @@
1
+ /* eslint-disable object-shorthand -- const types */
1
2
  /* eslint-disable import-x/no-rename-default -- bad export names */
2
3
  /* eslint-disable import-x/max-dependencies -- collection file */
4
+
3
5
  // import github from "eslint-plugin-github";
4
6
  // import jsxA11y from "eslint-plugin-jsx-a11y";
5
7
  // import noUnsanitized from "eslint-plugin-no-unsanitized";
@@ -21,19 +23,34 @@ import sonarjs from "eslint-plugin-sonarjs";
21
23
  import tailwindcss from "eslint-plugin-tailwindcss";
22
24
  import unicorn from "eslint-plugin-unicorn";
23
25
 
24
- const plugins = {
26
+ /**
27
+ * @import { Linter, ESLint } from "eslint"
28
+ */
29
+
30
+ const reactPlugins = /** @type {Record<string, ESLint.Plugin>} */ (
31
+ /** @type {unknown} */ (react.configs.all.plugins)
32
+ );
33
+
34
+ /**
35
+ * @satisfies { Linter.Config["plugins"] }
36
+ */
37
+ const plugins = /** @type {const} */ ({
25
38
  // github,
26
39
  // "jsx-a11y": jsxA11y,
27
40
  // "no-unsanitized": noUnsanitized,
28
41
  "@eslint-community/eslint-comments": eslintComments,
29
- "@stylistic": stylistic,
42
+ "@stylistic": /** @type {ESLint.Plugin} */ (stylistic),
30
43
  depend,
31
44
  "disable-autofix": disableAutofix,
32
45
  "func-params-args": funcParamsArgs,
33
- "import-x": importX,
46
+ "import-x": /** @type {ESLint.Plugin} */ (
47
+ /** @type {unknown} */ (importX)
48
+ ),
34
49
  jsdoc,
35
50
  "no-secrets": noSecrets,
36
- perfectionist,
51
+ perfectionist: /** @type {ESLint.Plugin} */ (
52
+ /** @type {unknown} */ (perfectionist)
53
+ ),
37
54
  promise,
38
55
  redos,
39
56
  regexp,
@@ -41,7 +58,7 @@ const plugins = {
41
58
  sonarjs,
42
59
  tailwindcss,
43
60
  unicorn,
44
- ...react.configs.all.plugins
45
- };
61
+ ...reactPlugins
62
+ });
46
63
 
47
64
  export default plugins;
package/rules/depend.js CHANGED
@@ -1,3 +1,10 @@
1
+ /**
2
+ * @import { Linter } from "eslint"
3
+ */
4
+
5
+ /**
6
+ * @satisfies {Linter.RulesRecord}
7
+ */
1
8
  const dependRules = {
2
9
  "depend/ban-dependencies": "error"
3
10
  };
@@ -1,5 +1,12 @@
1
1
  import * as eslintCommentsRuleSets from "./eslint-comments/_exports.js";
2
2
 
3
+ /**
4
+ * @import { Linter } from "eslint"
5
+ */
6
+
7
+ /**
8
+ * @satisfies {Linter.RulesRecord}
9
+ */
3
10
  const eslintCommentsRules = Object.values(eslintCommentsRuleSets)
4
11
  .reduce(
5
12
  (allRules, ruleSet) => ({
@@ -1,3 +1,10 @@
1
+ /**
2
+ * @import { Linter } from "eslint"
3
+ */
4
+
5
+ /**
6
+ * @satisfies {Linter.RulesRecord}
7
+ */
1
8
  const funcParamsArgsRules = {
2
9
  "func-params-args/func-args": [
3
10
  "warn",
package/rules/github.js CHANGED
@@ -1,3 +1,10 @@
1
+ /**
2
+ * @import { Linter } from "eslint"
3
+ */
4
+
5
+ /**
6
+ * @satisfies {Linter.RulesRecord}
7
+ */
1
8
  const githubRules = {
2
9
  "github/a11y-aria-label-is-well-formatted": "error",
3
10
  "github/a11y-no-title-attribute": "error",
package/rules/import-x.js CHANGED
@@ -1,5 +1,12 @@
1
1
  import * as importRuleSets from "./import-x/_exports.js";
2
2
 
3
+ /**
4
+ * @import { Linter } from "eslint"
5
+ */
6
+
7
+ /**
8
+ * @satisfies {Linter.RulesRecord}
9
+ */
3
10
  const importXRules = Object.values(importRuleSets)
4
11
  .reduce(
5
12
  (allRules, ruleSet) => ({
package/rules/jsdoc.js CHANGED
@@ -1,3 +1,10 @@
1
+ /**
2
+ * @import { Linter } from "eslint"
3
+ */
4
+
5
+ /**
6
+ * @satisfies {Linter.RulesRecord}
7
+ */
1
8
  const jsdocRules = {
2
9
  "jsdoc/check-access": "warn",
3
10
  "jsdoc/check-alignment": "warn",
package/rules/jsx-a11y.js CHANGED
@@ -1,3 +1,10 @@
1
+ /**
2
+ * @import { Linter } from "eslint"
3
+ */
4
+
5
+ /**
6
+ * @satisfies {Linter.RulesRecord}
7
+ */
1
8
  const jsxA11yRules = {
2
9
  "jsx-a11y/alt-text": "error",
3
10
  "jsx-a11y/anchor-ambiguous-text": [
@@ -1,3 +1,10 @@
1
+ /**
2
+ * @import { Linter } from "eslint"
3
+ */
4
+
5
+ /**
6
+ * @satisfies {Linter.RulesRecord}
7
+ */
1
8
  const layoutAndFormattingRules = {
2
9
  "line-comment-position": "off",
3
10
  "unicode-bom": ["error", "never"]
@@ -1,5 +1,12 @@
1
+ /**
2
+ * @import { Linter } from "eslint"
3
+ */
4
+
1
5
  const tolerance = 5;
2
6
 
7
+ /**
8
+ * @satisfies {Linter.RulesRecord}
9
+ */
3
10
  const noSecretsRules = {
4
11
  "no-secrets/no-secrets": [
5
12
  "error",
@@ -1,3 +1,10 @@
1
+ /**
2
+ * @import { Linter } from "eslint"
3
+ */
4
+
5
+ /**
6
+ * @satisfies {Linter.RulesRecord}
7
+ */
1
8
  const noUnsanitizedRules = {
2
9
  "no-unsanitized/method": "error",
3
10
  "no-unsanitized/property": "error"
@@ -1,3 +1,10 @@
1
+ /**
2
+ * @import { Linter } from "eslint"
3
+ */
4
+
5
+ /**
6
+ * @satisfies {Linter.RulesRecord}
7
+ */
1
8
  const perfectionistRules = {
2
9
  "perfectionist/sort-array-includes": [
3
10
  "error",
@@ -1,3 +1,10 @@
1
+ /**
2
+ * @import { Linter } from "eslint"
3
+ */
4
+
5
+ /**
6
+ * @satisfies {Linter.RulesRecord}
7
+ */
1
8
  const possibleProblemsRules = {
2
9
  "array-callback-return": "error",
3
10
  "constructor-super": "error",
package/rules/promise.js CHANGED
@@ -1,3 +1,10 @@
1
+ /**
2
+ * @import { Linter } from "eslint"
3
+ */
4
+
5
+ /**
6
+ * @satisfies {Linter.RulesRecord}
7
+ */
1
8
  const promiseRules = {
2
9
  "promise/always-return": "error",
3
10
  "promise/avoid-new": "off",
package/rules/react.js CHANGED
@@ -1,5 +1,12 @@
1
1
  import * as reactRuleSets from "./react/_exports.js";
2
2
 
3
+ /**
4
+ * @import { Linter } from "eslint"
5
+ */
6
+
7
+ /**
8
+ * @satisfies {Linter.RulesRecord}
9
+ */
3
10
  const reactRules = Object.values(reactRuleSets)
4
11
  .reduce(
5
12
  (allRules, ruleSet) => ({
package/rules/redos.js CHANGED
@@ -1,5 +1,12 @@
1
+ /**
2
+ * @import { Linter } from "eslint"
3
+ */
4
+
1
5
  const timeout = 10_000;
2
6
 
7
+ /**
8
+ * @satisfies {Linter.RulesRecord}
9
+ */
3
10
  const redosRules = {
4
11
  "redos/no-vulnerable": [
5
12
  "error",
package/rules/regexp.js CHANGED
@@ -1,5 +1,12 @@
1
1
  import * as regexpRuleSets from "./regexp/_exports.js";
2
2
 
3
+ /**
4
+ * @import { Linter } from "eslint"
5
+ */
6
+
7
+ /**
8
+ * @satisfies {Linter.RulesRecord}
9
+ */
3
10
  const regexpRules = Object.values(regexpRuleSets)
4
11
  .reduce(
5
12
  (allRules, ruleSet) => ({
package/rules/security.js CHANGED
@@ -1,3 +1,10 @@
1
+ /**
2
+ * @import { Linter } from "eslint"
3
+ */
4
+
5
+ /**
6
+ * @satisfies {Linter.RulesRecord}
7
+ */
1
8
  const securityRules = {
2
9
  "security/detect-bidi-characters": "warn",
3
10
  "security/detect-buffer-noassert": "warn",
package/rules/sonarjs.js CHANGED
@@ -1,5 +1,12 @@
1
1
  import * as sonarjsRuleSets from "./sonarjs/_exports.js";
2
2
 
3
+ /**
4
+ * @import { Linter } from "eslint"
5
+ */
6
+
7
+ /**
8
+ * @satisfies {Linter.RulesRecord}
9
+ */
3
10
  const sonarjsRules = Object.values(sonarjsRuleSets)
4
11
  .reduce(
5
12
  (allRules, ruleSet) => ({
@@ -1,5 +1,12 @@
1
1
  import * as stylisticRuleSets from "./stylistic/_exports.js";
2
2
 
3
+ /**
4
+ * @import { Linter } from "eslint"
5
+ */
6
+
7
+ /**
8
+ * @satisfies {Linter.RulesRecord}
9
+ */
3
10
  const stylisticRules = Object.values(stylisticRuleSets)
4
11
  .reduce(
5
12
  (allRules, ruleSet) => ({
@@ -1,3 +1,7 @@
1
+ /**
2
+ * @import { Linter } from "eslint"
3
+ */
4
+
1
5
  const minIdentifierLength = 2;
2
6
  const maxIdentifierLength = 30;
3
7
  const maxClassesPerFile = 1;
@@ -8,6 +12,9 @@ const maxNestedCallbacks = 10;
8
12
  const maxParameters = 3;
9
13
  const maxStatements = 20;
10
14
 
15
+ /**
16
+ * @satisfies {Linter.RulesRecord}
17
+ */
11
18
  const suggestionsRules = {
12
19
  "max-classes-per-file": ["error", maxClassesPerFile],
13
20
  "max-depth": ["error", maxDepth],
@@ -1,3 +1,10 @@
1
+ /**
2
+ * @import { Linter } from "eslint"
3
+ */
4
+
5
+ /**
6
+ * @satisfies {Linter.RulesRecord}
7
+ */
1
8
  const tailwindcssRules = {
2
9
  "tailwindcss/classnames-order": "error",
3
10
  "tailwindcss/enforces-negative-arbitrary-values": "error",
package/rules/unicorn.js CHANGED
@@ -1,3 +1,7 @@
1
+ /**
2
+ * @import { Linter } from "eslint"
3
+ */
4
+
1
5
  const hexadecimalGroupLength = 2;
2
6
  const binaryGroupLength = 4;
3
7
  const octalGroupLength = 4;
@@ -30,6 +34,9 @@ const patterns = {
30
34
  "-->": "⟶"
31
35
  };
32
36
 
37
+ /**
38
+ * @satisfies {Linter.RulesRecord}
39
+ */
33
40
  const unicornRules = {
34
41
  "unicorn/catch-error-name": "error",
35
42
  "unicorn/consistent-destructuring": "error",
package/rules.js CHANGED
@@ -1,8 +1,15 @@
1
1
  import * as ruleSets from "./rules/_exports.js";
2
2
 
3
+ /**
4
+ * @import { Linter } from "eslint"
5
+ */
6
+
7
+ /**
8
+ * @satisfies {Linter.RulesRecord}
9
+ */
3
10
  const rules = Object.values(ruleSets)
4
11
  .reduce(
5
- (allRules, ruleSet) => ({
12
+ (allRules, ruleSet) => /** @type {const} */ ({
6
13
  ...allRules,
7
14
  ...ruleSet
8
15
  }),