eslint-config-moneyforward 3.0.0 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/README.md +85 -3
  2. package/configs/eslintrc/essentials.js +15 -0
  3. package/configs/eslintrc/jsdoc.js +3 -0
  4. package/configs/eslintrc/next.js +3 -0
  5. package/configs/{node.js → eslintrc/node.js} +1 -1
  6. package/configs/eslintrc/react.js +12 -0
  7. package/configs/{storybook.js → eslintrc/storybook.js} +1 -1
  8. package/configs/{test → eslintrc/test}/react.js +3 -3
  9. package/configs/{typescript.js → eslintrc/typescript.js} +1 -1
  10. package/configs/flat/essentials.mjs +54 -0
  11. package/configs/flat/index.mjs +15 -0
  12. package/configs/flat/jsdoc.mjs +31 -0
  13. package/configs/flat/next.mjs +34 -0
  14. package/configs/flat/node.mjs +15 -0
  15. package/configs/flat/react.mjs +54 -0
  16. package/configs/flat/storybook.mjs +42 -0
  17. package/configs/flat/test/react.mjs +57 -0
  18. package/configs/flat/typescript.mjs +31 -0
  19. package/package.json +38 -24
  20. package/rules/best-practices.js +0 -29
  21. package/rules/errors.js +0 -17
  22. package/rules/es6.js +0 -37
  23. package/rules/imports.js +12 -2
  24. package/rules/jest-dom.js +1 -0
  25. package/rules/react.js +7 -1
  26. package/rules/style.js +0 -426
  27. package/rules/variables.js +0 -4
  28. package/.eslintrc.js +0 -10
  29. package/.github/dependabot.yml +0 -10
  30. package/.github/workflows/check_pull_request_title.yml +0 -37
  31. package/.github/workflows/release.yml +0 -31
  32. package/.github/workflows/test.yml +0 -20
  33. package/.node-version +0 -1
  34. package/.prettierrc.js +0 -6
  35. package/CHANGELOG.md +0 -44
  36. package/configs/essentials.js +0 -15
  37. package/configs/jsdoc.js +0 -3
  38. package/configs/next.js +0 -3
  39. package/configs/react.js +0 -8
  40. package/release.config.js +0 -24
  41. package/tests/requires.test.js +0 -46
package/README.md CHANGED
@@ -15,6 +15,58 @@ npm install --save-dev eslint-config-moneyforward eslint
15
15
 
16
16
  ### 2. Configure ESLint
17
17
 
18
+ #### 2a. for Flat Config
19
+
20
+ Within your ESLint config file (`eslint.config.js`):
21
+
22
+ ```js
23
+ import { essentials } from 'eslint-config-moneyforward/flat';
24
+
25
+ export default [...essentials];
26
+ ```
27
+
28
+ If you need TypeScript Support:
29
+
30
+ ```diff
31
+ -import { essentials } from 'eslint-config-moneyforward/flat';
32
+ +import { essentials, typescript } from 'eslint-config-moneyforward/flat';
33
+
34
+ export default [
35
+ ...essentials,
36
+ + ...typescript,
37
+ ];
38
+ ```
39
+
40
+ Must be added after `essentials`.
41
+
42
+ We also provide various other rule sets that you can configure to suit your project.
43
+
44
+ ```js
45
+ import {
46
+ essentials,
47
+ jsdoc,
48
+ next,
49
+ node,
50
+ react,
51
+ storybook,
52
+ test,
53
+ typescript,
54
+ } from 'eslint-config-moneyforward/flat';
55
+
56
+ export default [
57
+ ...essentials,
58
+ ...jsdoc,
59
+ ...next,
60
+ ...node,
61
+ ...react,
62
+ ...storybook,
63
+ ...test.react,
64
+ ...typescript,
65
+ ];
66
+ ```
67
+
68
+ #### 2b. for eslintrc format
69
+
18
70
  Within your ESLint config file:
19
71
 
20
72
  ```json
@@ -57,11 +109,11 @@ We also provide various other rule sets that you can configure to suit your proj
57
109
  | -----------: | :---------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
58
110
  | `essentials` | Contains basic, import, and promise recommended rules | [`eslint`](https://eslint.org/) <br> [`eslint-plugin-promise`](https://github.com/eslint-community/eslint-plugin-promise) <br> [`eslint-plugin-import`](https://github.com/import-js/eslint-plugin-import) |
59
111
  | `jsdoc` | Contains JSDoc recommended rules | [`eslint-plugin-jsdoc`](https://github.com/gajus/eslint-plugin-jsdoc) |
60
- | `next` | Contains Next.js recommended rules | [`eslint-plugin-next`](https://github.com/vercel/next.js/tree/canary/packages/eslint-plugin-next) |
112
+ | `next` | Contains Next.js recommended rules | [`@next/eslint-plugin-next`](https://github.com/vercel/next.js/tree/canary/packages/eslint-plugin-next) |
61
113
  | `node` | Contains Node.js recommended rules | [`eslint-plugin-n`](https://github.com/eslint-community/eslint-plugin-n) |
62
114
  | `react` | Contains React recommended rules | [`eslint-plugin-jsx-a11y`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y) <br> [`eslint-plugin-react-hooks`](https://github.com/facebook/react/tree/main/packages/eslint-plugin-react-hooks) <br> [`eslint-plugin-react`](https://github.com/jsx-eslint/eslint-plugin-react) |
63
115
  | `storybook` | Contains Storybook recommended rules | [`eslint-plugin-storybook`](https://github.com/storybookjs/eslint-plugin-storybook) |
64
- | `test/react` | Contains Jest and React Testing Library rules | [`eslint-plugin-jest`](https://github.com/jest-community/eslint-plugin-jest) <br> [`eslint-plugin-testing-library`](https://github.com/testing-library/eslint-plugin-testing-library) |
116
+ | `test/react` | Contains Jest and React Testing Library rules | [`eslint-plugin-jest`](https://github.com/jest-community/eslint-plugin-jest) <br> [`eslint-plugin-jest-dom`](https://github.com/testing-library/eslint-plugin-jest-dom) <br> [`eslint-plugin-testing-library`](https://github.com/testing-library/eslint-plugin-testing-library) |
65
117
  | `typescript` | Contains TypeScript recommended rules | [`@eslint-typescript/eslint-plugin`](https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin) <br> [`@eslint-typescript/parser`](https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/parser) |
66
118
 
67
119
  ## Using Prettier
@@ -79,6 +131,21 @@ npm install --save-dev eslint-config-prettier
79
131
  Within your ESLint config file:
80
132
 
81
133
  ```diff
134
+ // eslint.config.js
135
+
136
+ import { essentials, react } from 'eslint-config-moneyforward/flat';
137
+ +import prettier from 'eslint-config-prettier';
138
+
139
+ export default [
140
+ ...essentials,
141
+ ...react,
142
+ + prettier,
143
+ ],
144
+ ```
145
+
146
+ ```diff
147
+ // .eslintrc.js
148
+
82
149
  {
83
150
  "extends": [
84
151
  "moneyforward/essentials",
@@ -88,7 +155,22 @@ Within your ESLint config file:
88
155
  }
89
156
  ```
90
157
 
91
- By adding the `prettier` configuration to `extends` in the ESLint configuration, you can disable all rules in `moneyforward/essentials` that conflict with Prettier.
158
+ By adding the `prettier` configuration to `extends` in the ESLint configuration, you can disable all rules in `...essentials` (or `moneyforward/essentials`) that conflict with Prettier.
159
+
160
+ ## Migrate from an existing configuration
161
+
162
+ eslint-config-moneyforward contains various plugins related to different rule sets. Therefore, users don't need to install them separately. If you have installed them in your existing configuration, we recommend uninstalling them.
163
+
164
+ ```bash
165
+ npm uninstall eslint-plugin-promise eslint-plugin-import \
166
+ eslint-plugin-jsdoc \
167
+ @next/eslint-plugin-next \
168
+ eslint-plugin-n \
169
+ eslint-plugin-jsx-a11y eslint-plugin-react eslint-plugin-react-hooks \
170
+ eslint-plugin-storybook \
171
+ eslint-plugin-jest eslint-plugin-testing-library \
172
+ @eslint-typescript/eslint-plugin @eslint-typescript/parser
173
+ ```
92
174
 
93
175
  ## Versioning
94
176
 
@@ -0,0 +1,15 @@
1
+ module.exports = {
2
+ extends: [
3
+ '../../rules/best-practices',
4
+ '../../rules/errors',
5
+ '../../rules/es6',
6
+ '../../rules/imports',
7
+ '../../rules/promise',
8
+ '../../rules/style',
9
+ '../../rules/variables',
10
+ ],
11
+ parserOptions: {
12
+ ecmaVersion: 12,
13
+ sourceType: 'module',
14
+ },
15
+ };
@@ -0,0 +1,3 @@
1
+ module.exports = {
2
+ extends: ['../../rules/jsdoc'],
3
+ };
@@ -0,0 +1,3 @@
1
+ module.exports = {
2
+ extends: ['../../rules/next'],
3
+ };
@@ -1,5 +1,5 @@
1
1
  module.exports = {
2
- extends: ['../rules/node'],
2
+ extends: ['../../rules/node'],
3
3
  env: {
4
4
  node: true,
5
5
  },
@@ -0,0 +1,12 @@
1
+ module.exports = {
2
+ extends: [
3
+ '../../rules/react',
4
+ '../../rules/react-hooks',
5
+ '../../rules/jsx-a11y',
6
+ ],
7
+ settings: {
8
+ react: {
9
+ version: 'detect',
10
+ },
11
+ },
12
+ };
@@ -1,7 +1,7 @@
1
1
  module.exports = {
2
2
  overrides: [
3
3
  {
4
- extends: ['../rules/storybook'],
4
+ extends: ['../../rules/storybook'],
5
5
  files: [
6
6
  '*.stories.@(ts|tsx|js|jsx)',
7
7
  '*.story.@(ts|tsx|js|jsx)',
@@ -2,9 +2,9 @@ module.exports = {
2
2
  overrides: [
3
3
  {
4
4
  extends: [
5
- '../../rules/jest',
6
- '../../rules/jest-dom',
7
- '../../rules/testing-library/react',
5
+ '../../../rules/jest',
6
+ '../../../rules/jest-dom',
7
+ '../../../rules/testing-library/react',
8
8
  ],
9
9
  files: ['**/__tests__/**/*', '**/*.{spec,test}.*'],
10
10
  env: {
@@ -1,7 +1,7 @@
1
1
  module.exports = {
2
2
  overrides: [
3
3
  {
4
- extends: ['../rules/typescript'],
4
+ extends: ['../../rules/typescript'],
5
5
  files: ['*.@(ts|tsx|cts|mts)'],
6
6
  parser: '@typescript-eslint/parser',
7
7
  },
@@ -0,0 +1,54 @@
1
+ // @ts-check
2
+ import globals from 'globals';
3
+ // @ts-ignore
4
+ import importPlugin from 'eslint-plugin-import';
5
+ import promisePlugin from 'eslint-plugin-promise';
6
+ import bestPracticesRuleSet from '../../rules/best-practices.js';
7
+ import errorsRuleSet from '../../rules/errors.js';
8
+ import es6RuleSet from '../../rules/es6.js';
9
+ import importRuleSetBase from '../../rules/imports.js';
10
+ import promiseRuleSetBase from '../../rules/promise.js';
11
+ import styleRuleSet from '../../rules/style.js';
12
+ import variablesRuleSet from '../../rules/variables.js';
13
+
14
+ const importRuleSet = {
15
+ plugins: {
16
+ import: importPlugin,
17
+ },
18
+ settings: importRuleSetBase.settings,
19
+ rules: {
20
+ ...importPlugin.configs.recommended.rules,
21
+ ...importPlugin.configs.errors.rules,
22
+ ...importRuleSetBase.rules,
23
+ },
24
+ };
25
+
26
+ const promiseRuleSet = {
27
+ plugins: {
28
+ promise: promisePlugin,
29
+ },
30
+ rules: {
31
+ ...promisePlugin.configs.recommended.rules,
32
+ ...promiseRuleSetBase.rules,
33
+ },
34
+ };
35
+
36
+ export default [
37
+ {
38
+ languageOptions: {
39
+ parserOptions: {
40
+ ecmaVersion: 'latest',
41
+ sourceType: 'module',
42
+ },
43
+ globals: globals.builtin,
44
+ },
45
+ },
46
+
47
+ bestPracticesRuleSet,
48
+ errorsRuleSet,
49
+ es6RuleSet,
50
+ importRuleSet,
51
+ promiseRuleSet,
52
+ styleRuleSet,
53
+ variablesRuleSet,
54
+ ];
@@ -0,0 +1,15 @@
1
+ // @ts-check
2
+ import essentials from './essentials.mjs';
3
+ import jsdoc from './jsdoc.mjs';
4
+ import next from './next.mjs';
5
+ import node from './node.mjs';
6
+ import react from './react.mjs';
7
+ import storybook from './storybook.mjs';
8
+ import testReact from './test/react.mjs';
9
+ import typescript from './typescript.mjs';
10
+
11
+ const test = {
12
+ react: testReact,
13
+ };
14
+
15
+ export { essentials, jsdoc, next, node, react, storybook, test, typescript };
@@ -0,0 +1,31 @@
1
+ // @ts-check
2
+ import jsdoc from 'eslint-plugin-jsdoc';
3
+ import jsdocRuleSetBase from '../../rules/jsdoc.js';
4
+
5
+ const jsdocRuleSetTs = {
6
+ plugins: {
7
+ jsdoc,
8
+ },
9
+ rules: {
10
+ ...jsdoc.configs['flat/recommended-typescript-error'].rules,
11
+ ...jsdocRuleSetBase.rules,
12
+ },
13
+ };
14
+
15
+ const jsdocRuleSetJs = {
16
+ plugins: {
17
+ jsdoc,
18
+ },
19
+ rules: {
20
+ ...jsdocRuleSetBase.overrides[0].rules,
21
+ },
22
+ };
23
+
24
+ export default [
25
+ jsdocRuleSetTs,
26
+
27
+ {
28
+ files: ['*.@(js|cjs|mjs)'],
29
+ ...jsdocRuleSetJs,
30
+ },
31
+ ];
@@ -0,0 +1,34 @@
1
+ // @ts-check
2
+ import next from '@next/eslint-plugin-next';
3
+ // @ts-ignore
4
+ import importPlugin from 'eslint-plugin-import';
5
+ import nextRuleSetBase from '../../rules/next.js';
6
+
7
+ const nextRuleSet = {
8
+ plugins: {
9
+ '@next/next': next,
10
+ },
11
+ rules: {
12
+ ...next.configs.recommended.rules,
13
+ ...next.configs['core-web-vitals'].rules,
14
+ },
15
+ };
16
+
17
+ const nextRuleSetPages = {
18
+ plugins: {
19
+ '@next/next': next,
20
+ import: importPlugin,
21
+ },
22
+ rules: {
23
+ ...nextRuleSetBase.overrides[0].rules,
24
+ },
25
+ };
26
+
27
+ export default [
28
+ nextRuleSet,
29
+
30
+ {
31
+ files: ['**/@(app|pages)/**/*', '**/*.page.@(tsx|jsx|js)'],
32
+ ...nextRuleSetPages,
33
+ },
34
+ ];
@@ -0,0 +1,15 @@
1
+ // @ts-check
2
+ import n from 'eslint-plugin-n';
3
+ import nodeRuleSetBase from '../../rules/node.js';
4
+
5
+ const nodeRuleSet = {
6
+ plugins: {
7
+ n,
8
+ },
9
+ rules: {
10
+ ...n.configs['flat/recommended'].rules,
11
+ ...nodeRuleSetBase.rules,
12
+ },
13
+ };
14
+
15
+ export default [nodeRuleSet];
@@ -0,0 +1,54 @@
1
+ // @ts-check
2
+ import jsxA11y from 'eslint-plugin-jsx-a11y';
3
+ import react from 'eslint-plugin-react';
4
+ import reactHooks from 'eslint-plugin-react-hooks';
5
+ import jsxA11yRuleSetBase from '../../rules/jsx-a11y.js';
6
+ import reactHooksRuleSetBase from '../../rules/react-hooks.js';
7
+ import reactRuleSetBase from '../../rules/react.js';
8
+
9
+ const reactRuleSet = {
10
+ plugins: {
11
+ react,
12
+ },
13
+ rules: {
14
+ ...react.configs.recommended.rules,
15
+ ...reactRuleSetBase.rules,
16
+ },
17
+ };
18
+
19
+ const reactHooksRuleSet = {
20
+ plugins: {
21
+ 'react-hooks': reactHooks,
22
+ },
23
+ rules: {
24
+ ...reactHooksRuleSetBase.rules,
25
+ },
26
+ };
27
+
28
+ const jsxA11yRuleSet = {
29
+ plugins: {
30
+ 'jsx-a11y': jsxA11y,
31
+ },
32
+ rules: {
33
+ ...jsxA11y.configs.recommended.rules,
34
+ ...jsxA11yRuleSetBase.rules,
35
+ },
36
+ };
37
+
38
+ export default [
39
+ {
40
+ languageOptions: {
41
+ ...react.configs.recommended.languageOptions,
42
+ },
43
+
44
+ settings: {
45
+ react: {
46
+ version: 'detect',
47
+ },
48
+ },
49
+ },
50
+
51
+ reactRuleSet,
52
+ reactHooksRuleSet,
53
+ jsxA11yRuleSet,
54
+ ];
@@ -0,0 +1,42 @@
1
+ // @ts-check
2
+ // @ts-ignore
3
+ import importPlugin from 'eslint-plugin-import';
4
+ import * as storybook from 'eslint-plugin-storybook';
5
+ import storybookRuleSetBase from '../../rules/storybook.js';
6
+
7
+ const storybookRuleSetStories = {
8
+ plugins: {
9
+ storybook,
10
+ import: importPlugin,
11
+ },
12
+
13
+ rules: {
14
+ ...storybook.configs.recommended.overrides[0].rules,
15
+ ...storybook.configs['csf-strict'].rules,
16
+ ...storybookRuleSetBase.rules,
17
+ 'import/no-default-export': ['off'],
18
+ },
19
+ };
20
+
21
+ const storybookRuleSetConfig = {
22
+ plugins: {
23
+ storybook,
24
+ import: importPlugin,
25
+ },
26
+ rules: {
27
+ ...storybook.configs.recommended.overrides[1].rules,
28
+ 'import/no-default-export': ['off'],
29
+ },
30
+ };
31
+
32
+ export default [
33
+ {
34
+ files: ['**/*.@(stories|story).@(ts|tsx|js|jsx|mjs|cjs)'],
35
+ ...storybookRuleSetStories,
36
+ },
37
+
38
+ {
39
+ files: ['**/.storybook/**/*.@(ts|tsx|js|jsx|mjs|cjs)'],
40
+ ...storybookRuleSetConfig,
41
+ },
42
+ ];
@@ -0,0 +1,57 @@
1
+ // @ts-check
2
+ import jest from 'eslint-plugin-jest';
3
+ // @ts-ignore
4
+ import jestDom from 'eslint-plugin-jest-dom';
5
+ import testingLibrary from 'eslint-plugin-testing-library';
6
+ import jestDomRuleSetBase from '../../../rules/jest-dom.js';
7
+ import jestRuleSetBase from '../../../rules/jest.js';
8
+ import testingLibraryReactRuleSetBase from '../../../rules/testing-library/react.js';
9
+
10
+ const jestRuleSet = {
11
+ plugins: {
12
+ jest,
13
+ },
14
+ rules: {
15
+ ...jest.configs.recommended.rules,
16
+ ...jest.configs.style.rules,
17
+ ...jestRuleSetBase.rules,
18
+ },
19
+ };
20
+
21
+ const jestDomRuleSet = {
22
+ plugins: {
23
+ 'jest-dom': jestDom,
24
+ },
25
+ rules: {
26
+ ...jestDom.configs.recommended.rules,
27
+ ...jestDomRuleSetBase.rules,
28
+ },
29
+ };
30
+
31
+ const testingLibraryReactRuleSet = {
32
+ plugins: {
33
+ 'testing-library': testingLibrary,
34
+ },
35
+
36
+ rules: {
37
+ ...testingLibrary.configs.react.rules,
38
+ ...testingLibraryReactRuleSetBase.rules,
39
+ },
40
+ };
41
+
42
+ export default [
43
+ {
44
+ files: ['**/__tests__/**/*', '**/*.{spec,test}.*'],
45
+ ...jestRuleSet,
46
+ },
47
+
48
+ {
49
+ files: ['**/__tests__/**/*', '**/*.{spec,test}.*'],
50
+ ...jestDomRuleSet,
51
+ },
52
+
53
+ {
54
+ files: ['**/__tests__/**/*', '**/*.{spec,test}.*'],
55
+ ...testingLibraryReactRuleSet,
56
+ },
57
+ ];
@@ -0,0 +1,31 @@
1
+ // @ts-check
2
+ import typescriptEslint from '@typescript-eslint/eslint-plugin';
3
+ import typescriptEslintParser from '@typescript-eslint/parser';
4
+ import typescriptRuleSetBase from '../../rules/typescript.js';
5
+
6
+ const typescriptRuleSet = {
7
+ plugins: {
8
+ '@typescript-eslint': typescriptEslint,
9
+ },
10
+ rules: {
11
+ ...typescriptEslint.configs['eslint-recommended'].overrides?.[0].rules,
12
+ ...typescriptEslint.configs['strict-type-checked'].rules,
13
+ ...typescriptEslint.configs['stylistic-type-checked'].rules,
14
+ ...typescriptRuleSetBase.rules,
15
+ },
16
+ };
17
+
18
+ export default [
19
+ {
20
+ files: ['**/*.@(ts|tsx|cts|mts)'],
21
+
22
+ languageOptions: {
23
+ parser: typescriptEslintParser,
24
+ parserOptions: {
25
+ project: true,
26
+ },
27
+ },
28
+
29
+ ...typescriptRuleSet,
30
+ },
31
+ ];
package/package.json CHANGED
@@ -1,24 +1,31 @@
1
1
  {
2
2
  "name": "eslint-config-moneyforward",
3
- "version": "3.0.0",
3
+ "version": "4.1.0",
4
4
  "description": "Money Forward's ESLint rules as an extensible shared config.",
5
5
  "exports": {
6
- "./essentials": "./configs/essentials.js",
7
- "./jsdoc": "./configs/jsdoc.js",
8
- "./next": "./configs/next.js",
9
- "./node": "./configs/node.js",
10
- "./react": "./configs/react.js",
11
- "./storybook": "./configs/storybook.js",
12
- "./test/*": "./configs/test/*.js",
13
- "./typescript": "./configs/typescript.js"
6
+ "./flat": {
7
+ "import": "./configs/flat/index.mjs"
8
+ },
9
+ "./essentials": "./configs/eslintrc/essentials.js",
10
+ "./jsdoc": "./configs/eslintrc/jsdoc.js",
11
+ "./next": "./configs/eslintrc/next.js",
12
+ "./node": "./configs/eslintrc/node.js",
13
+ "./react": "./configs/eslintrc/react.js",
14
+ "./storybook": "./configs/eslintrc/storybook.js",
15
+ "./test/*": "./configs/eslintrc/test/*.js",
16
+ "./typescript": "./configs/eslintrc/typescript.js"
14
17
  },
15
18
  "engines": {
16
- "node": ">= 18.0.0"
19
+ "node": ">= 18.18.0 || >= 20.0.0"
17
20
  },
21
+ "files": [
22
+ "configs",
23
+ "rules"
24
+ ],
18
25
  "scripts": {
19
26
  "lint": "eslint && prettier --check .",
20
27
  "lint:fix": "eslint --fix && prettier --write .",
21
- "test": "jest",
28
+ "test": "NODE_OPTIONS=\"$NODE_OPTIONS --experimental-vm-modules\" jest",
22
29
  "release": "semantic-release"
23
30
  },
24
31
  "repository": {
@@ -33,36 +40,43 @@
33
40
  "homepage": "https://github.com/moneyforward/eslint-config-moneyforward#readme",
34
41
  "dependencies": {
35
42
  "@next/eslint-plugin-next": "^14.1.3",
36
- "@typescript-eslint/eslint-plugin": "^6.21.0",
37
- "@typescript-eslint/parser": "^6.21.0",
43
+ "@typescript-eslint/eslint-plugin": "^7.10.0",
44
+ "@typescript-eslint/parser": "^7.10.0",
38
45
  "confusing-browser-globals": "^1.0.11",
46
+ "eslint-import-resolver-typescript": "^3.6.1",
39
47
  "eslint-plugin-import": "^2.29.1",
40
- "eslint-plugin-jest": "^27.9.0",
48
+ "eslint-plugin-jest": "^28.5.0",
41
49
  "eslint-plugin-jest-dom": "^5.1.0",
42
50
  "eslint-plugin-jsdoc": "^48.2.1",
43
51
  "eslint-plugin-jsx-a11y": "^6.8.0",
44
- "eslint-plugin-n": "^16.6.2",
52
+ "eslint-plugin-n": "^17.7.0",
45
53
  "eslint-plugin-promise": "^6.1.1",
46
54
  "eslint-plugin-react": "^7.34.0",
47
55
  "eslint-plugin-react-hooks": "^4.6.0",
48
56
  "eslint-plugin-storybook": "^0.8.0",
49
- "eslint-plugin-testing-library": "^5.11.1"
57
+ "eslint-plugin-testing-library": "^6.2.2",
58
+ "globals": "^15.9.0"
50
59
  },
51
60
  "devDependencies": {
52
61
  "@semantic-release/changelog": "6.0.3",
53
62
  "@semantic-release/git": "10.0.1",
54
- "eslint": "^7.32.0 || ^8.2.0",
55
- "eslint-config-prettier": "^9.1.0",
56
- "jest": "^29.5.0",
57
- "prettier": "^2.8.7",
58
- "semantic-release": "23.0.8",
59
- "typescript": ">= 4.2.4 || ^5.0.0"
63
+ "eslint": "8.57.0",
64
+ "eslint-config-prettier": "9.1.0",
65
+ "jest": "29.7.0",
66
+ "prettier": "3.3.3",
67
+ "prettier-plugin-organize-imports": "3.2.4",
68
+ "semantic-release": "23.1.1",
69
+ "typescript": "5.5.4"
60
70
  },
61
71
  "peerDependencies": {
62
- "eslint": "^7.32.0 || ^8.2.0",
63
- "typescript": ">= 4.2.4 || ^5.0.0"
72
+ "eslint": "^8.56.0",
73
+ "jest": "*",
74
+ "typescript": "^4.7.5 || ^5.0.0"
64
75
  },
65
76
  "peerDependenciesMeta": {
77
+ "jest": {
78
+ "optional": true
79
+ },
66
80
  "typescript": {
67
81
  "optional": true
68
82
  }