@fullstacksjs/eslint-config 11.5.0 → 11.6.1

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/README.md CHANGED
@@ -80,7 +80,7 @@ export default init(
80
80
  {
81
81
  typescript: true,
82
82
  // You can pass extends here
83
- rules {
83
+ rules: {
84
84
  'no-console': 'error'
85
85
  }
86
86
  },
@@ -19,7 +19,8 @@ function playwright() {
19
19
  additionalTestBlockFunctions: ['test.jestPlaywrightDebug', 'it.jestPlaywrightDebug', 'test.jestPlaywrightSkip', 'it.jestPlaywrightSkip', 'test.jestPlaywrightConfig', 'it.jestPlaywrightConfig']
20
20
  }],
21
21
  'playwright/missing-playwright-await': 'error',
22
- 'playwright/no-page-pause': 'warn'
22
+ 'playwright/no-page-pause': 'warn',
23
+ 'playwright/no-slowed-test': 'warn'
23
24
  }
24
25
  };
25
26
  }
@@ -73,9 +73,11 @@ function react() {
73
73
  '@eslint-react/hooks-extra/ensure-custom-hooks-using-other-hooks': 'warn',
74
74
  '@eslint-react/hooks-extra/ensure-use-memo-has-non-empty-deps': 'warn',
75
75
  '@eslint-react/hooks-extra/prefer-use-state-lazy-initialization': 'warn',
76
+ '@eslint-react/hooks-extra/no-useless-custom-hooks': 'warn',
76
77
  '@eslint-react/naming-convention/component-name': 'warn',
77
78
  '@eslint-react/naming-convention/filename': 'off',
78
- '@eslint-react/naming-convention/filename-extension': ['warn', {
79
+ '@eslint-react/naming-convention/filename-extension': ['error', {
80
+ allow: 'always',
79
81
  extensions: ['.jsx', '.tsx']
80
82
  }],
81
83
  '@eslint-react/naming-convention/use-state': 'off',
@@ -39,7 +39,7 @@ function tests(options = {}) {
39
39
  }),
40
40
  ...(0, _conditions.predicate)(options.typescript, {
41
41
  '@typescript-eslint/method-signature-style': 'off',
42
- '@typescript-eslint/no-namespace ': 'off',
42
+ '@typescript-eslint/no-namespace': 'off',
43
43
  '@typescript-eslint/unbound-method': 'off',
44
44
  '@typescript-eslint/no-empty-function': 'off',
45
45
  '@typescript-eslint/no-floating-promises': 'off'
@@ -196,6 +196,7 @@ function typescript(options = {}) {
196
196
  }
197
197
  }]
198
198
  }),
199
+ '@typescript-eslint/no-misused-spread': 'error',
199
200
  '@typescript-eslint/no-mixed-enums': 'error',
200
201
  '@typescript-eslint/no-redundant-type-constituents': 'warn',
201
202
  // '@typescript-eslint/no-throw-literal': ['warn', { allowThrowingUnknown: false }],
@@ -206,10 +207,10 @@ function typescript(options = {}) {
206
207
  allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing: false
207
208
  }],
208
209
  '@typescript-eslint/no-unnecessary-qualifier': 'error',
210
+ '@typescript-eslint/no-unnecessary-template-expression': 'warn',
209
211
  '@typescript-eslint/no-unnecessary-type-arguments': 'error',
210
212
  '@typescript-eslint/no-unnecessary-type-assertion': 'error',
211
213
  '@typescript-eslint/no-unsafe-unary-minus': 'error',
212
- '@typescript-eslint/no-unnecessary-template-expression': 'warn',
213
214
  '@typescript-eslint/non-nullable-type-assertion-style': 'warn',
214
215
  '@typescript-eslint/prefer-includes': 'warn',
215
216
  '@typescript-eslint/prefer-optional-chain': 'warn',
package/cjs/option.d.ts CHANGED
@@ -7,7 +7,7 @@ export interface Options extends Linter.Config {
7
7
  tailwind?: boolean | { callees: string[] };
8
8
  node?: boolean;
9
9
  strict?: boolean;
10
- import?: { internalRegExp?: string; lifetime?: number; projects?: string | string[] } | boolean;
10
+ import?: boolean | { internalRegExp?: string; lifetime?: number; projects?: string | string[] };
11
11
  esm?: boolean;
12
12
  test?: boolean;
13
13
  jest?: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fullstacksjs/eslint-config",
3
- "version": "11.5.0",
3
+ "version": "11.6.1",
4
4
  "license": "MIT",
5
5
  "author": "fullstacks <fullstacksjs@gmail.com>",
6
6
  "description": "fullstacks eslint config",
@@ -34,48 +34,48 @@
34
34
  }
35
35
  },
36
36
  "dependencies": {
37
- "@eslint-react/eslint-plugin": "1.19.0",
38
- "@next/eslint-plugin-next": "15.1.0",
37
+ "@eslint-react/eslint-plugin": "1.28.0",
38
+ "@next/eslint-plugin-next": "15.1.7",
39
39
  "deepmerge": "4.3.1",
40
- "eslint-import-resolver-typescript": "3.7.0",
40
+ "eslint-import-resolver-typescript": "3.8.3",
41
41
  "eslint-plugin-cypress": "4.1.0",
42
- "eslint-plugin-import-x": "4.5.0",
43
- "eslint-plugin-jest": "28.9.0",
42
+ "eslint-plugin-import-x": "4.6.1",
43
+ "eslint-plugin-jest": "28.11.0",
44
44
  "eslint-plugin-jest-formatting": "3.1.0",
45
45
  "eslint-plugin-jsx-a11y": "6.10.2",
46
- "eslint-plugin-n": "17.15.0",
47
- "eslint-plugin-perfectionist": "4.3.0",
48
- "eslint-plugin-playwright": "2.1.0",
49
- "eslint-plugin-prettier": "5.2.1",
46
+ "eslint-plugin-n": "17.15.1",
47
+ "eslint-plugin-perfectionist": "4.9.0",
48
+ "eslint-plugin-playwright": "2.2.0",
49
+ "eslint-plugin-prettier": "5.2.3",
50
50
  "eslint-plugin-promise": "7.2.1",
51
51
  "eslint-plugin-react-hooks": "5.1.0",
52
- "eslint-plugin-storybook": "0.11.1",
53
- "eslint-plugin-tailwindcss": "3.17.5",
52
+ "eslint-plugin-storybook": "0.11.3",
53
+ "eslint-plugin-tailwindcss": "3.18.0",
54
54
  "eslint-plugin-vitest": "0.5.4",
55
- "globals": "15.13.0",
56
- "local-pkg": "0.5.1",
57
- "typescript-eslint": "8.18.0"
55
+ "globals": "16.0.0",
56
+ "local-pkg": "1.0.0",
57
+ "typescript-eslint": "8.25.0"
58
58
  },
59
59
  "devDependencies": {
60
- "@eslint/eslintrc": "3.2.0",
61
- "@eslint/js": "9.17.0",
60
+ "@eslint/eslintrc": "3.3.0",
61
+ "@eslint/js": "9.21.0",
62
62
  "@semantic-release/github": "11.0.1",
63
63
  "@semantic-release/npm": "12.0.1",
64
- "@semantic-release/release-notes-generator": "14.0.1",
64
+ "@semantic-release/release-notes-generator": "14.0.3",
65
65
  "@types/eslint": "9.6.1",
66
- "cspell": "8.16.1",
67
- "eslint": "9.17.0",
68
- "eslint-find-rules": "4.2.0",
66
+ "cspell": "8.17.5",
67
+ "eslint": "9.21.0",
68
+ "eslint-find-rules": "5.0.0",
69
69
  "husky": "9.1.7",
70
70
  "jest": "29.7.0",
71
- "lint-staged": "15.2.11",
72
- "np": "10.1.0",
71
+ "lint-staged": "15.4.3",
72
+ "np": "10.2.0",
73
73
  "npm-run-all": "4.1.5",
74
74
  "pinst": "3.0.0",
75
- "prettier": "3.4.2",
76
- "semantic-release": "24.2.0",
77
- "typescript": "5.7.2",
78
- "unbuild": "^2"
75
+ "prettier": "3.5.2",
76
+ "semantic-release": "24.2.3",
77
+ "typescript": "5.7.3",
78
+ "unbuild": "3.5.0"
79
79
  },
80
80
  "peerDependencies": {
81
81
  "cypress": ">=8",
@@ -23,6 +23,7 @@ function playwright() {
23
23
  ],
24
24
  'playwright/missing-playwright-await': 'error',
25
25
  'playwright/no-page-pause': 'warn',
26
+ 'playwright/no-slowed-test': 'warn',
26
27
  },
27
28
  };
28
29
  }
@@ -69,10 +69,11 @@ function react() {
69
69
  '@eslint-react/hooks-extra/ensure-custom-hooks-using-other-hooks': 'warn',
70
70
  '@eslint-react/hooks-extra/ensure-use-memo-has-non-empty-deps': 'warn',
71
71
  '@eslint-react/hooks-extra/prefer-use-state-lazy-initialization': 'warn',
72
+ '@eslint-react/hooks-extra/no-useless-custom-hooks': 'warn',
72
73
 
73
74
  '@eslint-react/naming-convention/component-name': 'warn',
74
75
  '@eslint-react/naming-convention/filename': 'off',
75
- '@eslint-react/naming-convention/filename-extension': ['warn', { extensions: ['.jsx', '.tsx'] }],
76
+ '@eslint-react/naming-convention/filename-extension': ['error', { allow: 'always', extensions: ['.jsx', '.tsx'] }],
76
77
  '@eslint-react/naming-convention/use-state': 'off',
77
78
 
78
79
  'react-hooks/exhaustive-deps': 'warn',
@@ -32,7 +32,7 @@ function tests(options = {}) {
32
32
 
33
33
  ...predicate(options.typescript, {
34
34
  '@typescript-eslint/method-signature-style': 'off',
35
- '@typescript-eslint/no-namespace ': 'off',
35
+ '@typescript-eslint/no-namespace': 'off',
36
36
  '@typescript-eslint/unbound-method': 'off',
37
37
  '@typescript-eslint/no-empty-function': 'off',
38
38
  '@typescript-eslint/no-floating-promises': 'off',
@@ -169,6 +169,7 @@ function typescript(options = {}) {
169
169
  '@typescript-eslint/no-floating-promises': ['error', { ignoreVoid: true }],
170
170
  '@typescript-eslint/no-misused-promises': ['warn', { checksVoidReturn: { attributes: false } }],
171
171
  }),
172
+ '@typescript-eslint/no-misused-spread': 'error',
172
173
  '@typescript-eslint/no-mixed-enums': 'error',
173
174
  '@typescript-eslint/no-redundant-type-constituents': 'warn',
174
175
  // '@typescript-eslint/no-throw-literal': ['warn', { allowThrowingUnknown: false }],
@@ -182,10 +183,10 @@ function typescript(options = {}) {
182
183
  },
183
184
  ],
184
185
  '@typescript-eslint/no-unnecessary-qualifier': 'error',
186
+ '@typescript-eslint/no-unnecessary-template-expression': 'warn',
185
187
  '@typescript-eslint/no-unnecessary-type-arguments': 'error',
186
188
  '@typescript-eslint/no-unnecessary-type-assertion': 'error',
187
189
  '@typescript-eslint/no-unsafe-unary-minus': 'error',
188
- '@typescript-eslint/no-unnecessary-template-expression': 'warn',
189
190
  '@typescript-eslint/non-nullable-type-assertion-style': 'warn',
190
191
  '@typescript-eslint/prefer-includes': 'warn',
191
192
  '@typescript-eslint/prefer-optional-chain': 'warn',
package/src/option.d.ts CHANGED
@@ -7,7 +7,7 @@ export interface Options extends Linter.Config {
7
7
  tailwind?: boolean | { callees: string[] };
8
8
  node?: boolean;
9
9
  strict?: boolean;
10
- import?: { internalRegExp?: string; lifetime?: number; projects?: string | string[] } | boolean;
10
+ import?: boolean | { internalRegExp?: string; lifetime?: number; projects?: string | string[] };
11
11
  esm?: boolean;
12
12
  test?: boolean;
13
13
  jest?: boolean;