@dword-design/eslint-config 7.0.6 → 8.0.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.
@@ -0,0 +1,4 @@
1
+ declare const _default: ({ cwd }?: {
2
+ cwd?: string | undefined;
3
+ }) => import("eslint").Linter.Config<import("eslint").Linter.RulesRecord>[];
4
+ export default _default;
@@ -1,34 +1,34 @@
1
- import pathLib from 'node:path';
2
- import { fileURLToPath } from 'node:url';
3
- import importAlias from '@dword-design/eslint-plugin-import-alias';
4
- import { FlatCompat } from '@eslint/eslintrc';
5
- import confusingBrowserGlobals from 'confusing-browser-globals';
6
- import packageName from 'depcheck-package-name';
7
- import { defineConfig } from 'eslint/config';
8
- import gitignore from 'eslint-config-flat-gitignore';
9
- import { createTypeScriptImportResolver } from 'eslint-import-resolver-typescript';
10
- import { importX } from 'eslint-plugin-import-x';
11
- import eslintPluginJsonc from 'eslint-plugin-jsonc';
12
- import pluginPlaywright from 'eslint-plugin-playwright';
13
- import eslintPluginPrettierRecommended from 'eslint-plugin-prettier/recommended';
14
- import pluginPromise from 'eslint-plugin-promise';
15
- import eslintPluginUnicorn from 'eslint-plugin-unicorn';
16
- import pluginVue from 'eslint-plugin-vue';
17
- import globals from 'globals';
18
- import loadPkg from 'load-pkg';
19
- import { compact, omit, without } from 'lodash-es';
20
- import { sortOrder as packageJsonSortOrder } from 'sort-package-json';
21
- import tseslint from 'typescript-eslint';
1
+ import pathLib from "node:path";
2
+ import { fileURLToPath } from "node:url";
3
+ import importAlias from "@dword-design/eslint-plugin-import-alias";
4
+ import { FlatCompat } from "@eslint/eslintrc";
5
+ import stylistic from "@stylistic/eslint-plugin";
6
+ import confusingBrowserGlobals from "confusing-browser-globals";
7
+ import packageName from "depcheck-package-name";
8
+ import { defineConfig } from "eslint/config";
9
+ import gitignore from "eslint-config-flat-gitignore";
10
+ import { createTypeScriptImportResolver } from "eslint-import-resolver-typescript";
11
+ import { importX } from "eslint-plugin-import-x";
12
+ import eslintPluginJsonc from "eslint-plugin-jsonc";
13
+ import pluginPlaywright from "eslint-plugin-playwright";
14
+ import eslintPluginPrettierRecommended from "eslint-plugin-prettier/recommended";
15
+ import pluginPromise from "eslint-plugin-promise";
16
+ import eslintPluginUnicorn from "eslint-plugin-unicorn";
17
+ import pluginVue from "eslint-plugin-vue";
18
+ import globals from "globals";
19
+ import loadPkg from "load-pkg";
20
+ import { compact, omit, without } from "lodash-es";
21
+ import { sortOrder as packageJsonSortOrder } from "sort-package-json";
22
+ import tseslint from "typescript-eslint";
22
23
  import restrictedImports from "./restricted-imports.js";
23
24
  export default ({
24
- cwd = '.'
25
+ cwd = "."
25
26
  } = {}) => {
26
27
  const packageConfig = loadPkg.sync(cwd) || {};
27
- const eslintRestrictedImports = restrictedImports.filter(importDef => importDef.alternative === undefined || importDef.alternative !== packageConfig.name).map(importDef => ({
28
- ...omit(importDef, ['alternative']),
29
- message: compact([importDef.message, importDef.alternative ? `Use '${importDef.alternative}' instead` : '']).join(' ')
28
+ const eslintRestrictedImports = restrictedImports.filter(importDef => importDef.alternative === void 0 || importDef.alternative !== packageConfig.name).map(importDef => ({
29
+ ...omit(importDef, ["alternative"]),
30
+ message: compact([importDef.message, importDef.alternative ? `Use '${importDef.alternative}' instead` : ""]).join(" ")
30
31
  }));
31
- // mimic CommonJS variables -- not needed if using CommonJS
32
32
  const __filename = fileURLToPath(import.meta.url);
33
33
  const __dirname = pathLib.dirname(__filename);
34
34
  const compat = new FlatCompat({
@@ -36,39 +36,43 @@ export default ({
36
36
  });
37
37
  return defineConfig([gitignore({
38
38
  strict: false
39
- }), tseslint.configs.recommended, importX.flatConfigs.recommended, importX.flatConfigs.typescript, pluginPromise.configs['flat/recommended'], ...pluginVue.configs['flat/recommended'].map(plugin => ({
40
- files: ['**/*.ts', '**/*.vue'],
39
+ }), tseslint.configs.recommended, importX.flatConfigs.recommended, importX.flatConfigs.typescript, pluginPromise.configs["flat/recommended"], ...pluginVue.configs["flat/recommended"].map(plugin => ({
40
+ files: ["**/*.ts", "**/*.vue"],
41
41
  ...plugin
42
42
  })), {
43
- files: ['**/*.ts', '**/*.vue'],
43
+ files: ["**/*.ts", "**/*.vue"],
44
+ ...stylistic.configs.recommended
45
+ }, {
46
+ files: ["**/*.ts", "**/*.vue"],
44
47
  ...importAlias.configs.recommended
45
48
  }, {
46
- files: ['**/*.ts', '**/*.vue'],
49
+ files: ["**/*.ts", "**/*.vue"],
47
50
  ...eslintPluginPrettierRecommended
48
- }, pluginPlaywright.configs['flat/recommended'], ...compat.plugins(packageName`eslint-plugin-prefer-arrow`), ...compat.plugins(packageName`eslint-plugin-simple-import-sort`), ...compat.plugins(packageName`eslint-plugin-sort-keys-fix`), {
49
- files: ['**/*.ts', '**/*.vue'],
51
+ }, pluginPlaywright.configs["flat/recommended"], ...compat.plugins(packageName`eslint-plugin-prefer-arrow`), ...compat.plugins(packageName`eslint-plugin-simple-import-sort`), ...compat.plugins(packageName`eslint-plugin-sort-keys-fix`), {
52
+ files: ["**/*.ts", "**/*.vue"],
50
53
  ...eslintPluginUnicorn.configs.recommended
51
- }, ...eslintPluginJsonc.configs['flat/recommended-with-jsonc'], {
52
- files: ['**/*.json'],
54
+ }, ...eslintPluginJsonc.configs["flat/recommended-with-jsonc"], {
55
+ files: ["**/*.json"],
53
56
  rules: {
54
- 'jsonc/indent': ['error', 2],
55
- 'jsonc/sort-keys': 'error'
57
+ "jsonc/indent": ["error", 2],
58
+ "jsonc/sort-keys": "error"
56
59
  }
57
60
  }, {
58
- files: ['**/package.json'],
61
+ files: ["**/package.json"],
59
62
  rules: {
60
- 'jsonc/sort-keys': ['error', {
63
+ "jsonc/sort-keys": ["error", {
61
64
  order: packageJsonSortOrder,
62
- pathPattern: '^$'
65
+ pathPattern: "^$"
63
66
  }]
64
67
  }
65
68
  }, {
66
- files: ['**/*.ts'],
69
+ files: ["**/*.ts"],
67
70
  rules: {
68
- 'unicorn/no-empty-file': 'off' // TODO: Deactivate comments when it's possible https://github.com/sindresorhus/eslint-plugin-unicorn/pull/2300
71
+ "unicorn/no-empty-file": "off"
72
+ // TODO: Deactivate comments when it's possible https://github.com/sindresorhus/eslint-plugin-unicorn/pull/2300
69
73
  }
70
74
  }, {
71
- files: ['**/*.ts', '**/*.vue'],
75
+ files: ["**/*.ts", "**/*.vue"],
72
76
  languageOptions: {
73
77
  globals: {
74
78
  ...globals.node,
@@ -79,105 +83,109 @@ export default ({
79
83
  }
80
84
  },
81
85
  rules: {
82
- '@dword-design/import-alias/prefer-alias': ['error', {
86
+ "@dword-design/import-alias/prefer-alias": ["error", {
83
87
  alias: {
84
- '@': '.'
88
+ "@": "."
85
89
  }
86
90
  }],
87
- 'arrow-body-style': ['error', 'as-needed'],
88
- 'func-names': ['error', 'never'],
89
- 'global-require': 'off',
90
- 'import-x/extensions': ['error', 'ignorePackages', {
91
- ts: 'never'
91
+ "@stylistic/linebreak-style": ["error", "unix"],
92
+ "@stylistic/padding-line-between-statements": ["error", {
93
+ blankLine: "never",
94
+ next: "*",
95
+ prev: "*"
96
+ }, {
97
+ blankLine: "always",
98
+ next: "*",
99
+ prev: "import"
100
+ }, {
101
+ blankLine: "any",
102
+ next: "import",
103
+ prev: "import"
104
+ }, ...Object.keys({
105
+ "block-like": true,
106
+ const: true,
107
+ expression: true,
108
+ let: true
109
+ }).flatMap(name => [{
110
+ blankLine: "always",
111
+ next: `multiline-${name}`,
112
+ prev: "*"
113
+ }, {
114
+ blankLine: "always",
115
+ next: "*",
116
+ prev: `multiline-${name}`
117
+ }]), {
118
+ blankLine: "always",
119
+ next: "export",
120
+ prev: "*"
121
+ }, {
122
+ blankLine: "always",
123
+ next: "type",
124
+ prev: "*"
125
+ }],
126
+ "arrow-body-style": ["error", "as-needed"],
127
+ "func-names": ["error", "never"],
128
+ "global-require": "off",
129
+ "import-x/extensions": ["error", "ignorePackages", {
130
+ ts: "never"
92
131
  }],
93
- 'import-x/no-extraneous-dependencies': ['error', {
94
- devDependencies: ['**/*.spec.ts', 'fixtures/**', 'global-setup.ts', 'global-teardown.ts', 'playwright.config.ts']
132
+ "import-x/no-extraneous-dependencies": ["error", {
133
+ devDependencies: ["**/*.spec.ts", "fixtures/**", "global-setup.ts", "global-teardown.ts", "playwright.config.ts"]
95
134
  }],
96
- 'import-x/no-named-as-default': 'off',
97
- 'import-x/no-named-as-default-member': 'off',
98
- 'linebreak-style': ['error', 'unix'],
99
- 'new-cap': 'off',
100
- 'no-await-in-loop': 'off',
101
- 'no-console': 'off',
102
- 'no-constant-condition': ['error', {
135
+ "import-x/no-named-as-default": "off",
136
+ "import-x/no-named-as-default-member": "off",
137
+ "new-cap": "off",
138
+ "no-await-in-loop": "off",
139
+ "no-console": "off",
140
+ "no-constant-condition": ["error", {
103
141
  checkLoops: false
104
142
  }],
105
- 'no-continue': 'off',
106
- 'no-empty-pattern': 'error',
107
- 'no-lonely-if': 'off',
108
- 'no-negated-condition': 'error',
109
- 'no-nested-ternary': 'off',
110
- 'no-param-reassign': 'off',
111
- 'no-promise-executor-return': 'off',
112
- 'no-regex-spaces': 'off',
143
+ "no-continue": "off",
144
+ "no-empty-pattern": "error",
145
+ "no-lonely-if": "off",
146
+ "no-negated-condition": "error",
147
+ "no-nested-ternary": "off",
148
+ "no-param-reassign": "off",
149
+ "no-promise-executor-return": "off",
150
+ "no-regex-spaces": "off",
113
151
  // https://github.com/facebook/create-react-app/issues/12847
114
- 'no-restricted-globals': ['error', {
115
- message: 'Use Number.isFinite instead https://github.com/airbnb/javascript#standard-library--isfinite',
116
- name: 'isFinite'
152
+ "no-restricted-globals": ["error", {
153
+ message: "Use Number.isFinite instead https://github.com/airbnb/javascript#standard-library--isfinite",
154
+ name: "isFinite"
117
155
  }, {
118
- message: 'Use Number.isNaN instead https://github.com/airbnb/javascript#standard-library--isnan',
119
- name: 'isNaN'
120
- }, ...without(confusingBrowserGlobals, 'self').map(g => ({
156
+ message: "Use Number.isNaN instead https://github.com/airbnb/javascript#standard-library--isnan",
157
+ name: "isNaN"
158
+ }, ...without(confusingBrowserGlobals, "self").map(g => ({
121
159
  message: `Use window.${g} instead. https://github.com/facebook/create-react-app/blob/HEAD/packages/confusing-browser-globals/README.md`,
122
160
  name: g
123
161
  }))],
124
- 'no-restricted-imports': ['error', {
162
+ "no-restricted-imports": ["error", {
125
163
  paths: eslintRestrictedImports
126
164
  }],
127
- 'no-return-assign': 'off',
128
- 'no-template-curly-in-string': 'off',
129
- 'no-underscore-dangle': 'off',
130
- 'no-var': 'error',
131
- [`${packageName`prettier`}/prettier`]: ['error', {
132
- arrowParens: 'avoid',
133
- objectWrap: 'collapse',
165
+ "no-return-assign": "off",
166
+ "no-template-curly-in-string": "off",
167
+ "no-underscore-dangle": "off",
168
+ "no-var": "error",
169
+ [`${packageName`prettier`}/prettier`]: ["error", {
170
+ arrowParens: "avoid",
171
+ objectWrap: "collapse",
134
172
  singleQuote: true,
135
- trailingComma: 'all'
136
- }],
137
- 'object-shorthand': ['error', 'always'],
138
- 'padding-line-between-statements': ['error', {
139
- blankLine: 'never',
140
- next: '*',
141
- prev: '*'
142
- }, {
143
- blankLine: 'always',
144
- next: '*',
145
- prev: 'import'
146
- }, {
147
- blankLine: 'any',
148
- next: 'import',
149
- prev: 'import'
150
- }, ...Object.keys({
151
- 'block-like': true,
152
- const: true,
153
- expression: true,
154
- let: true
155
- }).flatMap(name => [{
156
- blankLine: 'always',
157
- next: `multiline-${name}`,
158
- prev: '*'
159
- }, {
160
- blankLine: 'always',
161
- next: '*',
162
- prev: `multiline-${name}`
163
- }]), {
164
- blankLine: 'always',
165
- next: 'export',
166
- prev: '*'
173
+ trailingComma: "all"
167
174
  }],
168
- 'prefer-arrow/prefer-arrow-functions': ['error'],
169
- 'prefer-destructuring': 'off',
170
- 'require-await': 'error',
171
- 'simple-import-sort/imports': 'error',
172
- 'sort-keys-fix/sort-keys-fix': 'error',
173
- 'unicorn/catch-error-name': 'off',
174
- 'unicorn/consistent-function-scoping': 'off',
175
- 'unicorn/no-anonymous-default-export': 'off',
176
- 'unicorn/no-negated-condition': 'off',
177
- 'unicorn/no-nested-ternary': 'off',
178
- 'unicorn/no-null': 'off',
179
- 'unicorn/prevent-abbreviations': 'off',
180
- 'unicorn/template-indent': ['error', {
175
+ "object-shorthand": ["error", "always"],
176
+ "prefer-arrow/prefer-arrow-functions": ["error"],
177
+ "prefer-destructuring": "off",
178
+ "require-await": "error",
179
+ "simple-import-sort/imports": "error",
180
+ "sort-keys-fix/sort-keys-fix": "error",
181
+ "unicorn/catch-error-name": "off",
182
+ "unicorn/consistent-function-scoping": "off",
183
+ "unicorn/no-anonymous-default-export": "off",
184
+ "unicorn/no-negated-condition": "off",
185
+ "unicorn/no-nested-ternary": "off",
186
+ "unicorn/no-null": "off",
187
+ "unicorn/prevent-abbreviations": "off",
188
+ "unicorn/template-indent": ["error", {
181
189
  tags: Object.keys({
182
190
  css: true,
183
191
  endent: true,
@@ -188,41 +196,43 @@ export default ({
188
196
  xml: true
189
197
  })
190
198
  }],
191
- 'vue/attributes-order': ['error', {
199
+ "vue/attributes-order": ["error", {
192
200
  alphabetical: true
193
201
  }],
194
- 'vue/no-deprecated-functional-template': 'error',
195
- 'vue/order-in-components': 'off',
196
- 'vue/prefer-true-attribute-shorthand': 'error',
197
- 'vue/require-default-prop': 'off',
198
- 'vue/require-prop-types': 'off' // Complains about title not being a string if variable is passed
202
+ "vue/no-deprecated-functional-template": "error",
203
+ "vue/order-in-components": "off",
204
+ "vue/prefer-true-attribute-shorthand": "error",
205
+ "vue/require-default-prop": "off",
206
+ "vue/require-prop-types": "off"
207
+ // Complains about title not being a string if variable is passed
199
208
  },
200
209
  settings: {
201
- 'import-x/resolver-next': [createTypeScriptImportResolver({
210
+ "import-x/resolver-next": [createTypeScriptImportResolver({
202
211
  extensionAlias: {
203
- '.js': ['.js']
212
+ ".js": [".js"]
204
213
  },
205
214
  // Disable auto-guessing of .ts when .js is imported
206
- project: pathLib.join(cwd, 'tsconfig.json')
215
+ project: pathLib.join(cwd, "tsconfig.json")
207
216
  })]
208
217
  }
209
218
  }, {
210
- files: ['**/*.spec.ts'],
219
+ files: ["**/*.spec.ts"],
211
220
  rules: {
212
- 'playwright/expect-expect': 'off',
213
- 'playwright/valid-title': ['error', {
221
+ "playwright/expect-expect": "off",
222
+ "playwright/no-focused-test": "off",
223
+ "playwright/valid-title": ["error", {
214
224
  ignoreTypeOfTestName: true
215
225
  }]
216
226
  }
217
227
  }, {
218
- files: ['fixtures/**', '**/*.spec.ts'],
228
+ files: ["fixtures/**", "**/*.spec.ts"],
219
229
  rules: {
220
- 'no-empty-pattern': 'off'
230
+ "no-empty-pattern": "off"
221
231
  }
222
232
  }, {
223
- files: ['**/*.vue'],
233
+ files: ["**/*.vue"],
224
234
  rules: {
225
- 'vue/multi-word-component-names': 'off'
235
+ "vue/multi-word-component-names": "off"
226
236
  }
227
237
  }]);
228
238
  };
@@ -0,0 +1,17 @@
1
+ declare const _default: ({
2
+ alternative: string;
3
+ message: string;
4
+ name: string;
5
+ importNames?: undefined;
6
+ } | {
7
+ alternative: string;
8
+ name: string;
9
+ message?: undefined;
10
+ importNames?: undefined;
11
+ } | {
12
+ importNames: string[];
13
+ message: string;
14
+ name: string;
15
+ alternative?: undefined;
16
+ })[];
17
+ export default _default;
@@ -1,67 +1,67 @@
1
1
  export default [{
2
- alternative: 'parse-packagejson-name',
3
- message: 'Does not work in the browser due to fs dependency in ow.',
4
- name: 'parse-pkg-name'
2
+ alternative: "parse-packagejson-name",
3
+ message: "Does not work in the browser due to fs dependency in ow.",
4
+ name: "parse-pkg-name"
5
5
  }, {
6
- alternative: '@dword-design/nuxt-auth',
7
- message: 'Does not auto-rewrite redirects.',
8
- name: '@nuxtjs/auth'
6
+ alternative: "@dword-design/nuxt-auth",
7
+ message: "Does not auto-rewrite redirects.",
8
+ name: "@nuxtjs/auth"
9
9
  }, {
10
- alternative: '@dword-design/chdir',
11
- message: 'It is not maintained anymore.',
12
- name: 'chdir'
10
+ alternative: "@dword-design/chdir",
11
+ message: "It is not maintained anymore.",
12
+ name: "chdir"
13
13
  }, {
14
- alternative: 'execa',
14
+ alternative: "execa",
15
15
  message: "'execa' provides more features and syntactic sugar.",
16
- name: 'child-process-promise'
16
+ name: "child-process-promise"
17
17
  }, {
18
- alternative: 'execa',
19
- message: 'It does not support promises.',
20
- name: 'child_process'
18
+ alternative: "execa",
19
+ message: "It does not support promises.",
20
+ name: "child_process"
21
21
  }, {
22
- alternative: 'fs-extra',
23
- message: 'Does not support promises.',
24
- name: 'fs'
22
+ alternative: "fs-extra",
23
+ message: "Does not support promises.",
24
+ name: "fs"
25
25
  }, {
26
- alternative: 'globby',
27
- message: 'Does not support promises.',
28
- name: 'glob'
26
+ alternative: "globby",
27
+ message: "Does not support promises.",
28
+ name: "glob"
29
29
  }, {
30
- alternative: 'globby',
31
- message: 'Does not support pattern arrays.',
32
- name: 'glob-promise'
30
+ alternative: "globby",
31
+ message: "Does not support pattern arrays.",
32
+ name: "glob-promise"
33
33
  }, {
34
- alternative: 'globby',
35
- message: 'Only works for Node.js >= 12.',
36
- name: 'matched'
34
+ alternative: "globby",
35
+ message: "Only works for Node.js >= 12.",
36
+ name: "matched"
37
37
  }, {
38
- alternative: 'node-sass-package-importer',
39
- message: 'Does not support inline importing CSS files.',
40
- name: 'node-sass-tilde-importer'
38
+ alternative: "node-sass-package-importer",
39
+ message: "Does not support inline importing CSS files.",
40
+ name: "node-sass-tilde-importer"
41
41
  }, {
42
- alternative: '@dword-design/proxyquire',
43
- message: 'Does not set some important default values.',
44
- name: 'proxyquire'
42
+ alternative: "@dword-design/proxyquire",
43
+ message: "Does not set some important default values.",
44
+ name: "proxyquire"
45
45
  }, {
46
- alternative: 'stealthy-require-no-leak',
47
- message: 'Has a memory leak when requiring the same module multiple times.',
48
- name: 'stealthy-require'
46
+ alternative: "stealthy-require-no-leak",
47
+ message: "Has a memory leak when requiring the same module multiple times.",
48
+ name: "stealthy-require"
49
49
  }, {
50
- alternative: 'matchdep',
51
- name: 'resolve-dep'
50
+ alternative: "matchdep",
51
+ name: "resolve-dep"
52
52
  }, {
53
- alternative: '@dword-design/endent',
54
- name: 'dedent'
53
+ alternative: "@dword-design/endent",
54
+ name: "dedent"
55
55
  }, {
56
- alternative: 'sort-keys',
57
- message: 'Does not support recursive sorting.',
58
- name: 'sort-object-keys'
56
+ alternative: "sort-keys",
57
+ message: "Does not support recursive sorting.",
58
+ name: "sort-object-keys"
59
59
  }, {
60
- alternative: 'tree-kill-promise',
61
- message: 'Does not support promises.',
62
- name: 'tree-kill'
60
+ alternative: "tree-kill-promise",
61
+ message: "Does not support promises.",
62
+ name: "tree-kill"
63
63
  }, {
64
- importNames: ['zipObject'],
65
- message: 'Use map and fromPairs instead',
66
- name: '@dword-design/functions'
64
+ importNames: ["zipObject"],
65
+ message: "Use map and fromPairs instead",
66
+ name: "@dword-design/functions"
67
67
  }];
@@ -0,0 +1,2 @@
1
+ declare const _default: import("eslint").Linter.Config<import("eslint").Linter.RulesRecord>[];
2
+ export default _default;
package/package.json CHANGED
@@ -1,12 +1,19 @@
1
1
  {
2
2
  "name": "@dword-design/eslint-config",
3
- "version": "7.0.6",
3
+ "version": "8.0.0",
4
4
  "repository": "dword-design/eslint-config",
5
5
  "funding": "https://github.com/sponsors/dword-design",
6
6
  "license": "MIT",
7
7
  "author": "Sebastian Landwehr <info@sebastianlandwehr.com>",
8
8
  "type": "module",
9
- "exports": "./dist/index.js",
9
+ "exports": {
10
+ ".": {
11
+ "import": {
12
+ "default": "./dist/index.js",
13
+ "types": "./dist/index.d.ts"
14
+ }
15
+ }
16
+ },
10
17
  "main": "dist/index.js",
11
18
  "files": [
12
19
  "dist"
@@ -19,43 +26,46 @@
19
26
  "lint": "base lint",
20
27
  "prepare": "base prepare",
21
28
  "prepublishOnly": "base prepublishOnly",
22
- "test": "base test"
29
+ "test": "base test",
30
+ "typecheck": "base typecheck",
31
+ "verify": "base verify"
23
32
  },
24
33
  "dependencies": {
25
34
  "@dword-design/eslint-plugin-import-alias": "^6.0.3",
26
35
  "@eslint/eslintrc": "^3.3.1",
36
+ "@stylistic/eslint-plugin": "^5.2.0",
27
37
  "confusing-browser-globals": "^1.0.11",
28
- "depcheck-package-name": "^3.0.1",
29
- "eslint": "^9.28.0",
38
+ "depcheck-package-name": "^4.0.0",
39
+ "eslint": "^9.29.0",
30
40
  "eslint-config-flat-gitignore": "^2.1.0",
31
41
  "eslint-config-prettier": "^10.1.5",
32
42
  "eslint-import-resolver-typescript": "^4.4.3",
33
- "eslint-plugin-import-x": "^4.15.1",
43
+ "eslint-plugin-import-x": "^4.15.2",
34
44
  "eslint-plugin-jsonc": "^2.20.1",
35
45
  "eslint-plugin-playwright": "^2.2.0",
36
46
  "eslint-plugin-prefer-arrow": "^1.2.3",
37
- "eslint-plugin-prettier": "^5.4.1",
47
+ "eslint-plugin-prettier": "^5.5.0",
38
48
  "eslint-plugin-promise": "^7.2.1",
39
49
  "eslint-plugin-simple-import-sort": "^12.1.1",
40
50
  "eslint-plugin-sort-keys-fix": "^1.1.2",
41
51
  "eslint-plugin-unicorn": "npm:@dword-design/eslint-plugin-unicorn@^0.0.1",
42
- "eslint-plugin-vue": "^10.1.0",
52
+ "eslint-plugin-vue": "^10.2.0",
43
53
  "globals": "^16.2.0",
44
54
  "load-pkg": "^4.0.0",
45
55
  "lodash-es": "^4.17.21",
46
56
  "prettier": "^3.5.3",
47
57
  "sort-package-json": "^3.2.1",
48
- "typescript-eslint": "^8.33.1"
58
+ "typescript-eslint": "^8.34.1"
49
59
  },
50
60
  "devDependencies": {
51
- "@dword-design/base": "^13.0.1",
52
- "@playwright/test": "^1.52.0",
61
+ "@dword-design/base": "^14.1.2",
62
+ "@playwright/test": "^1.53.1",
53
63
  "endent": "npm:@dword-design/endent@^1.4.1",
54
- "output-files": "^2.0.32"
64
+ "output-files": "^3.0.0"
55
65
  },
56
66
  "packageManager": "pnpm@10.11.0+sha512.6540583f41cc5f628eb3d9773ecee802f4f9ef9923cc45b69890fb47991d4b092964694ec3a4f738a420c918a333062c8b925d312f42e4f0c263eb603551f977",
57
67
  "engines": {
58
- "node": ">=18"
68
+ "node": ">=20"
59
69
  },
60
70
  "publishConfig": {
61
71
  "access": "public"