@firefoxic/eslint-config 5.0.0 → 6.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.
Files changed (3) hide show
  1. package/lib/index.d.ts +6 -5
  2. package/lib/index.js +232 -181
  3. package/package.json +54 -59
package/lib/index.d.ts CHANGED
@@ -1,7 +1,8 @@
1
- declare module '@firefoxic/eslint-config' {
2
- import { Linter } from 'eslint';
1
+ declare module "@firefoxic/eslint-config" {
2
+ import { Linter } from "eslint"
3
+ import globals from "globals"
3
4
 
4
- export let globals: any;
5
- let firefoxicEslintConfig: Linter.Config;
6
- export default firefoxicEslintConfig;
5
+ export type GlobalsType = typeof globals
6
+ let firefoxicEslintConfig: Linter.Config
7
+ export default firefoxicEslintConfig
7
8
  }
package/lib/index.js CHANGED
@@ -1,12 +1,13 @@
1
+ import stylistic from "@stylistic/eslint-plugin"
1
2
  import eslintPluginPreferLet from "eslint-plugin-prefer-let"
2
- import js from "@eslint/js"
3
- import stylisticJs from "@stylistic/eslint-plugin-js"
3
+ import eslintPluginSimpleImportSort from "eslint-plugin-simple-import-sort"
4
+
5
+ import enoughIsEnough from "./enough-is-enough/index.js"
4
6
 
5
7
  export { default as globals } from "globals"
6
8
 
7
9
  /** @type {import('eslint').Linter.Config[]} */
8
10
  export default [
9
- js.configs.recommended,
10
11
  {
11
12
  rules: {
12
13
  "accessor-pairs": `error`,
@@ -15,47 +16,102 @@ export default [
15
16
  `as-needed`,
16
17
  ],
17
18
  "camelcase": `error`,
19
+ "constructor-super": `error`,
18
20
  "curly": [
19
21
  `error`,
20
- `multi-line`,
22
+ `multi-or-nest`,
21
23
  ],
22
24
  "eqeqeq": [
23
25
  `error`,
24
26
  `always`,
25
27
  ],
28
+ "for-direction": `error`,
26
29
  "func-style": [
27
30
  `error`,
28
31
  `declaration`,
29
32
  ],
33
+ "getter-return": `error`,
30
34
  "guard-for-in": `error`,
31
35
  "no-alert": `error`,
32
- "no-irregular-whitespace": `off`,
36
+ "no-async-promise-executor": `error`,
37
+ "no-case-declarations": `error`,
38
+ "no-class-assign": `error`,
39
+ "no-compare-neg-zero": `error`,
40
+ "no-cond-assign": `error`,
41
+ "no-const-assign": `error`,
42
+ "no-constant-binary-expression": `error`,
43
+ "no-constant-condition": `error`,
44
+ "no-control-regex": `error`,
45
+ "no-debugger": `error`,
46
+ "no-delete-var": `error`,
47
+ "no-dupe-args": `error`,
48
+ "no-dupe-class-members": `error`,
49
+ "no-dupe-else-if": `error`,
50
+ "no-dupe-keys": `error`,
51
+ "no-duplicate-case": `error`,
52
+ "no-empty": `error`,
53
+ "no-empty-character-class": `error`,
54
+ "no-empty-pattern": `error`,
55
+ "no-empty-static-block": `error`,
56
+ "no-ex-assign": `error`,
57
+ "no-extra-boolean-cast": `error`,
58
+ "no-fallthrough": `error`,
59
+ "no-func-assign": `error`,
60
+ "no-global-assign": `error`,
61
+ "no-import-assign": `error`,
62
+ "no-invalid-regexp": `error`,
33
63
  "no-lonely-if": `error`,
64
+ "no-loss-of-precision": `error`,
65
+ "no-misleading-character-class": `error`,
34
66
  "no-multi-assign": `error`,
35
- "no-proto": `error`,
36
67
  "no-nested-ternary": `error`,
68
+ "no-new-native-nonconstructor": `error`,
69
+ "no-nonoctal-decimal-escape": `error`,
70
+ "no-obj-calls": `error`,
71
+ "no-octal": `error`,
37
72
  "no-octal-escape": `error`,
73
+ "no-proto": `error`,
38
74
  "no-prototype-builtins": `error`,
75
+ "no-redeclare": `error`,
76
+ "no-regex-spaces": `error`,
39
77
  "no-return-assign": `error`,
78
+ "no-self-assign": `error`,
40
79
  "no-self-compare": `error`,
80
+ "no-setter-return": `error`,
41
81
  "no-shadow": [
42
82
  `error`,
43
83
  {
44
84
  hoist: `all`,
45
85
  },
46
86
  ],
87
+ "no-shadow-restricted-names": `error`,
88
+ "no-sparse-arrays": `error`,
47
89
  "no-template-curly-in-string": `error`,
90
+ "no-this-before-super": `error`,
91
+ "no-undef": `error`,
92
+ "no-unexpected-multiline": `error`,
48
93
  "no-unneeded-ternary": `error`,
94
+ "no-unreachable": `error`,
95
+ "no-unsafe-finally": `error`,
96
+ "no-unsafe-negation": `error`,
97
+ "no-unsafe-optional-chaining": `error`,
49
98
  "no-unused-expressions": `error`,
99
+ "no-unused-labels": `error`,
100
+ "no-unused-private-class-members": `error`,
101
+ "no-unused-vars": `error`,
50
102
  "no-use-before-define": [
51
103
  `error`,
52
104
  {
53
105
  functions: false,
54
106
  },
55
107
  ],
108
+ "no-useless-backreference": `error`,
109
+ "no-useless-catch": `error`,
56
110
  "no-useless-concat": `error`,
111
+ "no-useless-escape": `error`,
57
112
  "no-useless-return": `error`,
58
113
  "no-var": `error`,
114
+ "no-with": `error`,
59
115
  "object-shorthand": `error`,
60
116
  "one-var": [
61
117
  `error`,
@@ -65,10 +121,13 @@ export default [
65
121
  "prefer-object-has-own": `error`,
66
122
  "prefer-template": `error`,
67
123
  "radix": `error`,
124
+ "require-yield": `error`,
68
125
  "strict": [
69
126
  `error`,
70
127
  `global`,
71
128
  ],
129
+ "use-isnan": `error`,
130
+ "valid-typeof": `error`,
72
131
  },
73
132
  },
74
133
  {
@@ -81,300 +140,292 @@ export default [
81
140
  },
82
141
  {
83
142
  plugins: {
84
- "@stylistic/js": stylisticJs,
143
+ "simple-import-sort": eslintPluginSimpleImportSort,
85
144
  },
86
145
  rules: {
87
- "@stylistic/js/array-bracket-newline": [
88
- `error`,
89
- // `consistent`,
90
- { multiline: true },
91
- ],
92
- "@stylistic/js/array-bracket-spacing": [
93
- `error`,
94
- `never`,
95
- ],
96
- "@stylistic/js/array-element-newline": [
97
- `error`,
98
- `consistent`,
99
- ],
100
- "@stylistic/js/arrow-parens": [
101
- `error`,
102
- `always`,
103
- ],
104
- "@stylistic/js/arrow-spacing": [
146
+ "simple-import-sort/exports": `error`,
147
+ "simple-import-sort/imports": [
105
148
  `error`,
106
149
  {
107
- before: true,
108
- after: true,
150
+ groups: [
151
+ // 1.Node.js modules
152
+ [`^node:`],
153
+ // 2. Foreign modules
154
+ [`^@?\\w`],
155
+ // 3. Absolute imports (@/...)
156
+ [`^@/`],
157
+ // 4. Relative imports (up)
158
+ [
159
+ `^\\.\\.(?!/?$)`,
160
+ `^\\.\\./?$`,
161
+ ],
162
+ // 5. Relative imports (down)
163
+ [
164
+ `^\\./(?=.*/)(?!/?$)`,
165
+ `^\\.(?!/?$)`,
166
+ `^\\./?$`,
167
+ ],
168
+ // 6. Styles
169
+ [`^.+\\.s?css$`],
170
+ ],
109
171
  },
110
172
  ],
111
- "@stylistic/js/block-spacing": [
173
+ },
174
+ },
175
+ {
176
+ plugins: {
177
+ "@stylistic": stylistic,
178
+ },
179
+ rules: {
180
+ "@stylistic/array-bracket-newline": `error`,
181
+ "@stylistic/array-bracket-spacing": `error`,
182
+ "@stylistic/array-element-newline": [
112
183
  `error`,
113
- `always`,
184
+ {
185
+ consistent: true,
186
+ multiline: true,
187
+ },
114
188
  ],
115
- "@stylistic/js/brace-style": [
189
+ "@stylistic/arrow-parens": `error`,
190
+ "@stylistic/arrow-spacing": `error`,
191
+ "@stylistic/block-spacing": `error`,
192
+ "@stylistic/brace-style": [
116
193
  `error`,
117
- `1tbs`,
194
+ `stroustrup`,
118
195
  {
119
196
  allowSingleLine: true,
120
197
  },
121
198
  ],
122
- "@stylistic/js/comma-dangle": [
199
+ "@stylistic/comma-dangle": [
123
200
  `error`,
124
201
  `always-multiline`,
125
202
  ],
126
- "@stylistic/js/comma-spacing": [
203
+ "@stylistic/comma-spacing": `error`,
204
+ "@stylistic/comma-style": `error`,
205
+ "@stylistic/computed-property-spacing": `error`,
206
+ "@stylistic/curly-newline": [
127
207
  `error`,
128
208
  {
129
- before: false,
130
- after: true,
209
+ consistent: true,
210
+ multiline: true,
131
211
  },
132
212
  ],
133
- "@stylistic/js/comma-style": [
134
- `error`,
135
- `last`,
136
- ],
137
- "@stylistic/js/computed-property-spacing": [
138
- `error`,
139
- `never`,
140
- ],
141
- "@stylistic/js/dot-location": [
213
+ "@stylistic/dot-location": [
142
214
  `error`,
143
215
  `property`,
144
216
  ],
145
- "@stylistic/js/eol-last": [
146
- `error`,
147
- `always`,
148
- ],
149
- "@stylistic/js/function-call-argument-newline": [
217
+ "@stylistic/eol-last": `error`,
218
+ "@stylistic/function-call-argument-newline": [
150
219
  `error`,
151
220
  `consistent`,
152
221
  ],
153
- "@stylistic/js/function-call-spacing": [
154
- `error`,
155
- `never`,
156
- ],
157
- "@stylistic/js/function-paren-newline": [
222
+ "@stylistic/function-call-spacing": `error`,
223
+ "@stylistic/function-paren-newline": [
158
224
  `error`,
159
225
  `multiline-arguments`,
160
226
  ],
161
- "@stylistic/js/generator-star-spacing": [
227
+ "@stylistic/generator-star-spacing": [
162
228
  `error`,
163
- {
164
- before: true,
165
- after: false,
166
- },
229
+ `after`,
167
230
  ],
168
- "@stylistic/js/implicit-arrow-linebreak": [
169
- `error`,
170
- `beside`,
171
- ],
172
- "@stylistic/js/indent": [
231
+ "@stylistic/implicit-arrow-linebreak": `error`,
232
+ "@stylistic/indent": [
173
233
  `error`,
174
234
  `tab`,
175
235
  {
176
236
  SwitchCase: 1,
177
237
  },
178
238
  ],
179
- "@stylistic/js/key-spacing": [
180
- `error`,
181
- {
182
- beforeColon: false,
183
- afterColon: true,
184
- },
185
- ],
186
- "@stylistic/js/keyword-spacing": [
187
- `error`,
188
- {
189
- before: true,
190
- after: true,
191
- },
192
- ],
193
- "@stylistic/js/linebreak-style": [
239
+ "@stylistic/indent-binary-ops": [
194
240
  `error`,
195
- `unix`,
241
+ `tab`,
196
242
  ],
197
- "@stylistic/js/lines-around-comment": [
243
+ "@stylistic/key-spacing": `error`,
244
+ "@stylistic/keyword-spacing": `error`,
245
+ "@stylistic/linebreak-style": `error`,
246
+ "@stylistic/lines-around-comment": [
198
247
  `error`,
199
248
  {
200
249
  beforeBlockComment: true,
201
250
  allowBlockStart: true,
202
251
  },
203
252
  ],
204
- "@stylistic/js/lines-between-class-members": [
205
- `error`,
206
- `always`,
207
- ],
208
- "@stylistic/js/max-len": [
253
+ "@stylistic/lines-between-class-members": `error`,
254
+ "@stylistic/member-delimiter-style": [
209
255
  `error`,
210
- { code: Infinity },
256
+ {
257
+ multiline: {
258
+ delimiter: `comma`,
259
+ requireLast: true,
260
+ },
261
+ singleline: {
262
+ delimiter: `comma`,
263
+ requireLast: false,
264
+ },
265
+ },
211
266
  ],
212
- "@stylistic/js/multiline-comment-style": [
267
+ "@stylistic/multiline-comment-style": [
213
268
  `error`,
214
269
  `separate-lines`,
215
270
  ],
216
- "@stylistic/js/multiline-ternary": [
271
+ "@stylistic/multiline-ternary": [
217
272
  `error`,
218
273
  `always-multiline`,
219
274
  ],
220
- "@stylistic/js/new-parens": [
221
- `error`,
222
- `never`,
223
- ],
224
- "@stylistic/js/no-extra-semi": [`error`],
225
- "@stylistic/js/no-floating-decimal": [`error`],
226
- "@stylistic/js/no-mixed-operators": [
227
- `error`,
228
- { allowSamePrecedence: true },
229
- ],
230
- "@stylistic/js/no-mixed-spaces-and-tabs": [
231
- `error`,
232
- // `smart-tabs`,
233
- ],
234
- "@stylistic/js/no-multi-spaces": [
235
- `error`,
236
- {
237
- ignoreEOLComments: true,
238
- },
239
- ],
240
- "@stylistic/js/no-multiple-empty-lines": [
275
+ "@stylistic/new-parens": `error`,
276
+ "@stylistic/no-confusing-arrow": `off`,
277
+ "@stylistic/no-extra-semi": `error`,
278
+ "@stylistic/no-floating-decimal": `error`,
279
+ "@stylistic/no-mixed-operators": `error`,
280
+ "@stylistic/no-mixed-spaces-and-tabs": `error`,
281
+ "@stylistic/no-multi-spaces": `error`,
282
+ "@stylistic/no-multiple-empty-lines": [
241
283
  `error`,
242
284
  {
243
285
  max: 1,
286
+ maxBOF: 0,
287
+ maxEOF: 0,
244
288
  },
245
289
  ],
246
- '@stylistic/js/no-trailing-spaces': [`error`],
247
- "@stylistic/js/no-whitespace-before-property": [`error`],
248
- "@stylistic/js/nonblock-statement-body-position": [
249
- `error`,
250
- `beside`,
251
- ],
252
- "@stylistic/js/object-curly-newline": [
290
+ "@stylistic/no-trailing-spaces": `error`,
291
+ "@stylistic/no-whitespace-before-property": `error`,
292
+ "@stylistic/nonblock-statement-body-position": `error`,
293
+ "@stylistic/object-curly-newline": [
253
294
  `error`,
254
295
  {
255
296
  consistent: true,
256
297
  multiline: true,
257
298
  },
258
299
  ],
259
- "@stylistic/js/object-curly-spacing": [
300
+ "@stylistic/object-curly-spacing": [
260
301
  `error`,
261
302
  `always`,
262
303
  ],
263
- "@stylistic/js/object-property-newline": [
304
+ "@stylistic/object-property-newline": [
264
305
  `error`,
265
306
  {
266
- allowMultiplePropertiesPerLine: true,
307
+ allowAllPropertiesOnSameLine: true,
267
308
  },
268
309
  ],
269
- "@stylistic/js/operator-linebreak": [
310
+ "@stylistic/one-var-declaration-per-line": `error`,
311
+ "@stylistic/operator-linebreak": [
270
312
  `error`,
271
313
  `before`,
314
+ {
315
+ overrides: {
316
+ "=": `none`,
317
+ },
318
+ },
272
319
  ],
273
- "@stylistic/js/padded-blocks": [
320
+ "@stylistic/padded-blocks": [
274
321
  `error`,
275
322
  `never`,
276
323
  ],
277
- "@stylistic/js/padding-line-between-statements": [
324
+ "@stylistic/padding-line-between-statements": [
278
325
  `error`,
279
326
  {
280
327
  blankLine: `always`,
281
328
  prev: `*`,
282
- next: [`function`, `const`, `let`, `var`, `export`, `return`],
329
+ next: [
330
+ `class`,
331
+ `export`,
332
+ `function`,
333
+ `import`,
334
+ ],
283
335
  },
284
336
  {
285
337
  blankLine: `always`,
286
- prev: [`import`, `const`, `let`, `var`, `export`, `function`],
338
+ prev: [
339
+ `class`,
340
+ `export`,
341
+ `function`,
342
+ `import`,
343
+ ],
287
344
  next: `*`,
288
345
  },
289
346
  {
290
347
  blankLine: `any`,
291
- prev: [`const`, `let`, `var`],
292
- next: [`const`, `let`, `var`],
348
+ prev: [
349
+ `const`,
350
+ `let`,
351
+ `var`,
352
+ ],
353
+ next: [
354
+ `const`,
355
+ `let`,
356
+ `var`,
357
+ ],
358
+ },
359
+ {
360
+ blankLine: `any`,
361
+ prev: `export`,
362
+ next: `export`,
293
363
  },
294
364
  {
295
365
  blankLine: `any`,
296
366
  prev: `import`,
297
367
  next: `import`,
298
368
  },
369
+ {
370
+ blankLine: `any`,
371
+ prev: `*`,
372
+ next: `return`,
373
+ },
299
374
  ],
300
- "@stylistic/js/quote-props": [
375
+ "@stylistic/quote-props": [
301
376
  `error`,
302
377
  `consistent-as-needed`,
303
378
  {
304
379
  keywords: true,
305
380
  },
306
381
  ],
307
- "@stylistic/js/quotes": [
382
+ "@stylistic/quotes": [
308
383
  `error`,
309
384
  `backtick`,
310
385
  ],
311
- "@stylistic/js/rest-spread-spacing": [
312
- `error`,
313
- `never`,
314
- ],
315
- "@stylistic/js/semi": [
386
+ "@stylistic/rest-spread-spacing": `error`,
387
+ "@stylistic/semi": [
316
388
  `error`,
317
389
  `never`,
318
390
  {
319
391
  beforeStatementContinuationChars: `always`,
320
392
  },
321
393
  ],
322
- "@stylistic/js/semi-spacing": [
394
+ "@stylistic/semi-spacing": [
323
395
  `error`,
324
396
  {
325
397
  before: false,
326
398
  after: true,
327
399
  },
328
400
  ],
329
- "@stylistic/js/semi-style": [
401
+ "@stylistic/semi-style": [
330
402
  `error`,
331
403
  `first`,
332
404
  ],
333
- "@stylistic/js/space-before-blocks": [
334
- `error`,
335
- `always`,
336
- ],
337
- "@stylistic/js/space-before-function-paren": [
338
- `error`,
339
- `always`,
340
- ],
341
- "@stylistic/js/space-in-parens": [
342
- `error`,
343
- `never`,
344
- ],
345
- "@stylistic/js/space-infix-ops": [
346
- `error`,
347
- { int32Hint: false },
348
- ],
349
- "@stylistic/js/space-unary-ops": [`error`],
350
- "@stylistic/js/spaced-comment": [
351
- `error`,
352
- `always`,
353
- ],
354
- "@stylistic/js/switch-colon-spacing": [
355
- `error`,
356
- {
357
- before: false,
358
- after: true,
359
- },
360
- ],
361
- "@stylistic/js/template-curly-spacing": [
362
- `error`,
363
- `never`,
364
- ],
365
- "@stylistic/js/template-tag-spacing": [
366
- `error`,
367
- `never`,
368
- ],
369
- "@stylistic/js/wrap-iife": [
370
- `error`,
371
- `outside`,
372
- ],
373
- "@stylistic/js/wrap-regex": [`error`],
374
- "@stylistic/js/yield-star-spacing": [
375
- `error`,
376
- `before`,
377
- ],
405
+ "@stylistic/space-before-blocks": `error`,
406
+ "@stylistic/space-before-function-paren": `error`,
407
+ "@stylistic/space-in-parens": `error`,
408
+ "@stylistic/space-infix-ops": `error`,
409
+ "@stylistic/space-unary-ops": `error`,
410
+ "@stylistic/spaced-comment": `error`,
411
+ "@stylistic/switch-colon-spacing": `error`,
412
+ "@stylistic/template-curly-spacing": `error`,
413
+ "@stylistic/template-tag-spacing": `error`,
414
+ "@stylistic/type-annotation-spacing": `error`,
415
+ "@stylistic/type-generic-spacing": `error`,
416
+ "@stylistic/type-named-tuple-spacing": `error`,
417
+ "@stylistic/wrap-iife": `error`,
418
+ "@stylistic/wrap-regex": `error`,
419
+ "@stylistic/yield-star-spacing": `error`,
420
+ },
421
+ },
422
+ {
423
+ plugins: {
424
+ "enough-is-enough": enoughIsEnough,
425
+ },
426
+ rules: {
427
+ "enough-is-enough/no-multiline-named-imports": `error`,
428
+ "enough-is-enough/no-single-quotes-in-imports-and-object-keys": `error`,
378
429
  },
379
430
  },
380
431
  ]
package/package.json CHANGED
@@ -1,60 +1,55 @@
1
1
  {
2
- "name": "@firefoxic/eslint-config",
3
- "description": "Shared config for eslint by firefoxic.",
4
- "version": "5.0.0",
5
- "license": "MIT",
6
- "author": {
7
- "name": "Sergey Artemov",
8
- "email": "firefoxic.dev@gmail.com"
9
- },
10
- "homepage": "https://github.com/firefoxic/eslint-config#readme",
11
- "bugs": {
12
- "url": "https://github.com/firefoxic/eslint-config/issues"
13
- },
14
- "repository": {
15
- "type": "git",
16
- "url": "git+https://github.com/firefoxic/eslint-config.git"
17
- },
18
- "type": "module",
19
- "engines": {
20
- "node": "^20.13 || >=22.11"
21
- },
22
- "exports": {
23
- "types": "./lib/index.d.ts",
24
- "default": "./lib/index.js"
25
- },
26
- "files": [
27
- "./lib/index.d.ts",
28
- "./lib/index.js"
29
- ],
30
- "peerDependencies": {
31
- "eslint": "^9.15.0"
32
- },
33
- "dependencies": {
34
- "@eslint/js": "^9.15.0",
35
- "@stylistic/eslint-plugin-js": "^2.10.1",
36
- "eslint-plugin-prefer-let": "^4.0.0",
37
- "globals": "^15.12.0"
38
- },
39
- "devDependencies": {
40
- "@firefoxic/update-changelog": "^1.0.0",
41
- "eslint": "^9.15.0"
42
- },
43
- "keywords": [
44
- "config",
45
- "eslint",
46
- "javascript",
47
- "js",
48
- "lint",
49
- "linter",
50
- "linting"
51
- ],
52
- "scripts": {
53
- "lint": "eslint",
54
- "pretest": "pnpm lint",
55
- "test": "node --test",
56
- "preversion": "pnpm test",
57
- "version": "update-changelog",
58
- "postversion": "pnpm publish --provenance --access public --no-git-checks"
59
- }
60
- }
2
+ "name": "@firefoxic/eslint-config",
3
+ "description": "Shared config for eslint by firefoxic.",
4
+ "version": "6.0.0",
5
+ "license": "MIT",
6
+ "author": {
7
+ "name": "Sergey Artemov",
8
+ "email": "firefoxic.dev@gmail.com"
9
+ },
10
+ "homepage": "https://github.com/firefoxic/eslint-config#readme",
11
+ "bugs": {
12
+ "url": "https://github.com/firefoxic/eslint-config/issues"
13
+ },
14
+ "repository": {
15
+ "type": "git",
16
+ "url": "git+https://github.com/firefoxic/eslint-config.git"
17
+ },
18
+ "type": "module",
19
+ "engines": {
20
+ "node": ">=20.19"
21
+ },
22
+ "exports": {
23
+ "default": "./lib/index.js",
24
+ "types": "./lib/index.d.ts"
25
+ },
26
+ "files": [
27
+ "./lib/index.d.ts",
28
+ "./lib/index.js"
29
+ ],
30
+ "peerDependencies": {
31
+ "eslint": "^9.39.2"
32
+ },
33
+ "dependencies": {
34
+ "@stylistic/eslint-plugin": "^5.7.0",
35
+ "eslint-plugin-prefer-let": "^4.0.1",
36
+ "eslint-plugin-simple-import-sort": "^12.1.1",
37
+ "globals": "^17.0.0"
38
+ },
39
+ "scripts": {
40
+ "help": "make help",
41
+ "eslint": "eslint"
42
+ },
43
+ "devDependencies": {
44
+ "eslint": "^9.39.2"
45
+ },
46
+ "keywords": [
47
+ "config",
48
+ "eslint",
49
+ "javascript",
50
+ "js",
51
+ "lint",
52
+ "linter",
53
+ "linting"
54
+ ]
55
+ }