eslint-config-decent 2.5.0 → 2.6.0-beta2

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/dist/index.cjs CHANGED
@@ -19,6 +19,7 @@ const a11y = require('eslint-plugin-jsx-a11y');
19
19
  const react = require('eslint-plugin-react');
20
20
  const reactHooks = require('eslint-plugin-react-hooks');
21
21
  const security = require('eslint-plugin-security');
22
+ const stylistic = require('@stylistic/eslint-plugin');
22
23
  const testingLibrary = require('eslint-plugin-testing-library');
23
24
  const unicorn = require('eslint-plugin-unicorn');
24
25
 
@@ -39,10 +40,11 @@ const a11y__default = /*#__PURE__*/_interopDefaultCompat(a11y);
39
40
  const react__default = /*#__PURE__*/_interopDefaultCompat(react);
40
41
  const reactHooks__default = /*#__PURE__*/_interopDefaultCompat(reactHooks);
41
42
  const security__default = /*#__PURE__*/_interopDefaultCompat(security);
43
+ const stylistic__default = /*#__PURE__*/_interopDefaultCompat(stylistic);
42
44
  const testingLibrary__default = /*#__PURE__*/_interopDefaultCompat(testingLibrary);
43
45
  const unicorn__default = /*#__PURE__*/_interopDefaultCompat(unicorn);
44
46
 
45
- const base$c = {
47
+ const base$d = {
46
48
  rules: {
47
49
  "array-callback-return": ["error", { allowImplicit: true }],
48
50
  "block-scoped-var": "error",
@@ -107,7 +109,6 @@ const base$c = {
107
109
  "no-labels": ["error", { allowLoop: false, allowSwitch: false }],
108
110
  "no-lone-blocks": "error",
109
111
  "no-lonely-if": "error",
110
- "no-mixed-spaces-and-tabs": "error",
111
112
  "no-multi-assign": ["error"],
112
113
  "no-multi-str": "error",
113
114
  "no-negated-condition": "error",
@@ -184,44 +185,6 @@ const base$c = {
184
185
  "no-useless-concat": "error",
185
186
  "no-useless-rename": "error",
186
187
  "no-useless-return": "error",
187
- "padding-line-between-statements": [
188
- "error",
189
- {
190
- blankLine: "always",
191
- prev: ["directive", "block", "block-like", "multiline-block-like", "cjs-export", "cjs-import", "class", "export", "import", "if"],
192
- next: "*"
193
- },
194
- {
195
- blankLine: "never",
196
- prev: "directive",
197
- next: "directive"
198
- },
199
- {
200
- blankLine: "any",
201
- prev: "*",
202
- next: ["if", "for", "cjs-import", "import"]
203
- },
204
- {
205
- blankLine: "any",
206
- prev: ["export", "import"],
207
- next: ["export", "import"]
208
- },
209
- {
210
- blankLine: "always",
211
- prev: "*",
212
- next: ["try", "function", "switch"]
213
- },
214
- {
215
- blankLine: "always",
216
- prev: "if",
217
- next: "if"
218
- },
219
- {
220
- blankLine: "never",
221
- prev: ["return", "throw"],
222
- next: "*"
223
- }
224
- ],
225
188
  "prefer-const": [
226
189
  "error",
227
190
  {
@@ -257,9 +220,7 @@ const cjsAndEsm = {
257
220
  rules: {
258
221
  curly: ["error", "multi-line"],
259
222
  "dot-notation": ["error", { allowKeywords: true }],
260
- "dot-location": ["error", "property"],
261
223
  "getter-return": ["error", { allowImplicit: true }],
262
- "lines-between-class-members": ["error", "always", { exceptAfterSingleLine: false }],
263
224
  "no-array-constructor": "error",
264
225
  "no-empty-function": [
265
226
  "error",
@@ -283,8 +244,7 @@ const cjsAndEsm = {
283
244
  allowUnboundThis: true
284
245
  }
285
246
  ],
286
- "prefer-promise-reject-errors": ["error", { allowEmptyReject: true }],
287
- "wrap-iife": ["error", "outside", { functionPrototypeMethods: false }]
247
+ "prefer-promise-reject-errors": ["error", { allowEmptyReject: true }]
288
248
  }
289
249
  };
290
250
  const cjs = {
@@ -292,8 +252,8 @@ const cjs = {
292
252
  strict: ["error", "global"]
293
253
  }
294
254
  };
295
- const configs$c = {
296
- base: base$c,
255
+ const configs$d = {
256
+ base: base$d,
297
257
  cjsAndEsm,
298
258
  cjs
299
259
  };
@@ -392,7 +352,7 @@ const requireIndexRule = utils.ESLintUtils.RuleCreator(() => "https://github.com
392
352
  }
393
353
  });
394
354
 
395
- const base$b = {
355
+ const base$c = {
396
356
  plugins: {
397
357
  "decent-extension": {
398
358
  meta: {
@@ -410,11 +370,11 @@ const base$b = {
410
370
  "decent-extension/require-index": "error"
411
371
  }
412
372
  };
413
- const configs$b = {
414
- base: base$b
373
+ const configs$c = {
374
+ base: base$c
415
375
  };
416
376
 
417
- const base$a = {
377
+ const base$b = {
418
378
  plugins: {
419
379
  import: importPlugin__default
420
380
  },
@@ -429,11 +389,11 @@ const base$a = {
429
389
  ]
430
390
  }
431
391
  };
432
- const configs$a = {
433
- base: base$a
392
+ const configs$b = {
393
+ base: base$b
434
394
  };
435
395
 
436
- const base$9 = {
396
+ const base$a = {
437
397
  plugins: {
438
398
  jest: jest__default,
439
399
  "jest-dom": jestDom__default
@@ -476,11 +436,11 @@ const base$9 = {
476
436
  "@typescript-eslint/unbound-method": "off"
477
437
  }
478
438
  };
479
- const configs$9 = {
480
- base: base$9
439
+ const configs$a = {
440
+ base: base$a
481
441
  };
482
442
 
483
- const base$8 = {
443
+ const base$9 = {
484
444
  settings: {
485
445
  jsdoc: {
486
446
  preferredTypes: {
@@ -496,20 +456,38 @@ const base$8 = {
496
456
  jsdoc: jsdoc__default
497
457
  },
498
458
  rules: {
499
- "unicorn/better-regex": "error",
500
- "unicorn/custom-error-definition": "error",
501
- "unicorn/no-array-method-this-argument": "error",
502
- "unicorn/no-for-loop": "error",
503
- "unicorn/prefer-array-find": "error",
504
- "unicorn/prefer-object-from-entries": "error",
505
- "unicorn/prefer-set-has": "error"
459
+ ...jsdoc__default.configs["flat/recommended"].rules,
460
+ "jsdoc/check-alignment": "error",
461
+ "jsdoc/check-indentation": "error",
462
+ "jsdoc/check-param-names": "off",
463
+ "jsdoc/check-tag-names": "error",
464
+ "jsdoc/check-types": "error",
465
+ "jsdoc/require-description": "off",
466
+ "jsdoc/require-description-complete-sentence": "off",
467
+ "jsdoc/require-example": "off",
468
+ "jsdoc/require-hyphen-before-param-description": "error",
469
+ "jsdoc/require-param": [
470
+ "error",
471
+ {
472
+ enableFixer: false,
473
+ ignoreWhenAllParamsMissing: true,
474
+ unnamedRootBase: ["args"]
475
+ }
476
+ ],
477
+ "jsdoc/require-param-description": "off",
478
+ "jsdoc/require-param-name": "error",
479
+ "jsdoc/require-param-type": "error",
480
+ "jsdoc/require-returns-description": "off",
481
+ "jsdoc/require-jsdoc": "off",
482
+ "jsdoc/require-returns-type": "off",
483
+ "jsdoc/valid-types": "error"
506
484
  }
507
485
  };
508
- const configs$8 = {
509
- base: base$8
486
+ const configs$9 = {
487
+ base: base$9
510
488
  };
511
489
 
512
- const base$7 = {
490
+ const base$8 = {
513
491
  plugins: {
514
492
  mocha: mocha__default
515
493
  },
@@ -528,15 +506,15 @@ const base$7 = {
528
506
  "mocha/no-mocha-arrows": "off"
529
507
  }
530
508
  };
531
- const configs$7 = {
532
- base: base$7
509
+ const configs$8 = {
510
+ base: base$8
533
511
  };
534
512
 
535
513
  const recommendedRules = {};
536
514
  for (const ruleName of Object.keys({ ...nextJs__default.configs.recommended.rules })) {
537
515
  recommendedRules[ruleName] = "error";
538
516
  }
539
- const base$6 = {
517
+ const base$7 = {
540
518
  plugins: {
541
519
  "@next/next": compat.fixupPluginRules(nextJs__default)
542
520
  },
@@ -544,11 +522,11 @@ const base$6 = {
544
522
  ...recommendedRules
545
523
  }
546
524
  };
547
- const configs$6 = {
548
- base: base$6
525
+ const configs$7 = {
526
+ base: base$7
549
527
  };
550
528
 
551
- const base$5 = {
529
+ const base$6 = {
552
530
  plugins: {
553
531
  promise: promise__default
554
532
  },
@@ -565,11 +543,11 @@ const base$5 = {
565
543
  "promise/param-names": "error"
566
544
  }
567
545
  };
568
- const configs$5 = {
569
- base: base$5
546
+ const configs$6 = {
547
+ base: base$6
570
548
  };
571
549
 
572
- const base$4 = {
550
+ const base$5 = {
573
551
  settings: {
574
552
  react: {
575
553
  version: "detect",
@@ -637,11 +615,11 @@ const base$4 = {
637
615
  "react-hooks/exhaustive-deps": "error"
638
616
  }
639
617
  };
640
- const configs$4 = {
641
- base: base$4
618
+ const configs$5 = {
619
+ base: base$5
642
620
  };
643
621
 
644
- const base$3 = {
622
+ const base$4 = {
645
623
  plugins: {
646
624
  security: security__default
647
625
  },
@@ -661,6 +639,59 @@ const base$3 = {
661
639
  "security/detect-unsafe-regex": "error"
662
640
  }
663
641
  };
642
+ const configs$4 = {
643
+ base: base$4
644
+ };
645
+
646
+ const baseStylistic = stylistic__default.configs.customize({
647
+ braceStyle: "1tbs",
648
+ jsx: true
649
+ });
650
+ const base$3 = {
651
+ ...baseStylistic,
652
+ rules: {
653
+ ...stylistic__default.configs["disable-legacy"].rules,
654
+ ...baseStylistic.rules,
655
+ "@stylistic/padding-line-between-statements": [
656
+ "error",
657
+ {
658
+ blankLine: "always",
659
+ prev: ["directive", "block", "block-like", "multiline-block-like", "cjs-export", "cjs-import", "class", "export", "import", "if"],
660
+ next: "*"
661
+ },
662
+ {
663
+ blankLine: "never",
664
+ prev: "directive",
665
+ next: "directive"
666
+ },
667
+ {
668
+ blankLine: "any",
669
+ prev: "*",
670
+ next: ["if", "for", "cjs-import", "import"]
671
+ },
672
+ {
673
+ blankLine: "any",
674
+ prev: ["export", "import"],
675
+ next: ["export", "import"]
676
+ },
677
+ {
678
+ blankLine: "always",
679
+ prev: "*",
680
+ next: ["try", "function", "switch"]
681
+ },
682
+ {
683
+ blankLine: "always",
684
+ prev: "if",
685
+ next: "if"
686
+ },
687
+ {
688
+ blankLine: "never",
689
+ prev: ["return", "throw"],
690
+ next: "*"
691
+ }
692
+ ]
693
+ }
694
+ };
664
695
  const configs$3 = {
665
696
  base: base$3
666
697
  };
@@ -802,27 +833,27 @@ function tsEslintConfig(options) {
802
833
  {
803
834
  languageOptions,
804
835
  settings: {
805
- ...configs$8.base.settings
836
+ ...configs$9.base.settings
806
837
  }
807
838
  },
808
839
  {
809
840
  name: "eslint-config-decent/base",
810
841
  files: ["**/*.ts", "**/*.js", "**/*.cjs", "**/*.mjs", "**/*.tsx"],
811
842
  plugins: {
843
+ ...configs$c.base.plugins,
812
844
  ...configs$b.base.plugins,
813
- ...configs$a.base.plugins,
814
- ...configs$8.base.plugins,
815
- ...configs$5.base.plugins,
816
- ...configs$3.base.plugins,
845
+ ...configs$9.base.plugins,
846
+ ...configs$6.base.plugins,
847
+ ...configs$4.base.plugins,
817
848
  ...configs.base.plugins
818
849
  },
819
850
  rules: {
820
- ...configs$c.base.rules,
821
- ...enableRequireExtensionRule ? configs$b.base.rules : {},
822
- ...configs$a.base.rules,
823
- ...configs$8.base.rules,
824
- ...configs$5.base.rules,
825
- ...configs$3.base.rules,
851
+ ...configs$d.base.rules,
852
+ ...enableRequireExtensionRule ? configs$c.base.rules : {},
853
+ ...configs$b.base.rules,
854
+ ...configs$9.base.rules,
855
+ ...configs$6.base.rules,
856
+ ...configs$4.base.rules,
826
857
  ...configs.base.rules
827
858
  }
828
859
  },
@@ -835,7 +866,7 @@ function tsEslintConfig(options) {
835
866
  {
836
867
  name: "eslint-config-decent/tsx",
837
868
  files: ["**/*.tsx"],
838
- ...configs$4.base
869
+ ...configs$5.base
839
870
  },
840
871
  {
841
872
  name: "eslint-config-decent/tsx-disable-ts-rules",
@@ -854,7 +885,7 @@ function tsEslintConfig(options) {
854
885
  rootDir: options?.nextJsRootDir
855
886
  }
856
887
  },
857
- ...configs$6.base
888
+ ...configs$7.base
858
889
  }
859
890
  ] : [],
860
891
  {
@@ -863,7 +894,7 @@ function tsEslintConfig(options) {
863
894
  languageOptions: {
864
895
  sourceType: "script"
865
896
  },
866
- ...configs$c.cjsAndEsm
897
+ ...configs$d.cjsAndEsm
867
898
  },
868
899
  {
869
900
  name: "eslint-config-decent/cjs",
@@ -871,20 +902,20 @@ function tsEslintConfig(options) {
871
902
  languageOptions: {
872
903
  sourceType: "script"
873
904
  },
874
- ...configs$c.cjs
905
+ ...configs$d.cjs
875
906
  },
876
907
  ...enableMocha ? [
877
908
  {
878
909
  name: "eslint-config-decent/mocha-tests",
879
910
  files: ["**/*.tests.ts", "tests/tests.ts"],
880
- ...configs$7.base
911
+ ...configs$8.base
881
912
  }
882
913
  ] : [],
883
914
  ...enableJest ? [
884
915
  {
885
916
  name: "eslint-config-decent/jest-tests",
886
917
  files: ["**/__tests__/**/*.ts?(x)", "**/*.{spec,test}.ts?(x)"],
887
- ...configs$9.base
918
+ ...configs$a.base
888
919
  }
889
920
  ] : [],
890
921
  ...enableTestingLibrary ? [
@@ -901,12 +932,24 @@ function tsEslintConfig(options) {
901
932
  }
902
933
  }
903
934
  ] : [],
935
+ {
936
+ ...configs$3.base,
937
+ name: "eslint-config-decent/stylistic",
938
+ files: ["**/*.ts", "**/*.js", "**/*.cjs", "**/*.mjs", "**/*.tsx"]
939
+ },
904
940
  {
905
941
  name: "eslint-config-decent/cjs-and-esm-disable-ts-rules",
906
942
  files: ["**/*.js", "**/*.cjs", "**/*.mjs"],
907
943
  extends: [tsEslint__default.configs.disableTypeChecked]
908
944
  },
909
- prettier__default
945
+ prettier__default,
946
+ {
947
+ name: "eslint-config-decent/1tbs",
948
+ files: ["**/*.ts", "**/*.js", "**/*.cjs", "**/*.mjs", "**/*.tsx"],
949
+ rules: {
950
+ "@stylistic/brace-style": "error"
951
+ }
952
+ }
910
953
  ];
911
954
  }
912
955
  function config(options) {
@@ -915,16 +958,16 @@ function config(options) {
915
958
 
916
959
  exports.config = config;
917
960
  exports.defaultConfig = defaultConfig;
918
- exports.eslintConfigs = configs$c;
919
- exports.extensionConfigs = configs$b;
920
- exports.importConfigs = configs$a;
921
- exports.jestConfigs = configs$9;
922
- exports.jsdocConfigs = configs$8;
923
- exports.mochaConfigs = configs$7;
924
- exports.nextJsConfigs = configs$6;
925
- exports.promiseConfigs = configs$5;
926
- exports.reactConfigs = configs$4;
927
- exports.securityConfigs = configs$3;
961
+ exports.eslintConfigs = configs$d;
962
+ exports.extensionConfigs = configs$c;
963
+ exports.importConfigs = configs$b;
964
+ exports.jestConfigs = configs$a;
965
+ exports.jsdocConfigs = configs$9;
966
+ exports.mochaConfigs = configs$8;
967
+ exports.nextJsConfigs = configs$7;
968
+ exports.promiseConfigs = configs$6;
969
+ exports.reactConfigs = configs$5;
970
+ exports.securityConfigs = configs$4;
928
971
  exports.testingLibraryConfigs = configs$2;
929
972
  exports.tsEslintConfig = tsEslintConfig;
930
973
  exports.typescriptEslintConfigs = configs$1;
package/dist/index.d.cts CHANGED
@@ -78,7 +78,7 @@ declare const defaultConfig: typeof tsEslintConfig;
78
78
  declare function tsEslintConfig(options?: DefaultConfigOptions): ConfigWithExtends[];
79
79
  /**
80
80
  * Exports eslint configurations. Use this if you do not need to explicitly import typescript-eslint in your project.
81
- * @param options
81
+ * @param {object} options
82
82
  * @returns An array of eslint configurations
83
83
  */
84
84
  declare function config(options?: DefaultConfigOptions): TSESLint.FlatConfig.ConfigArray;
package/dist/index.d.mts CHANGED
@@ -78,7 +78,7 @@ declare const defaultConfig: typeof tsEslintConfig;
78
78
  declare function tsEslintConfig(options?: DefaultConfigOptions): ConfigWithExtends[];
79
79
  /**
80
80
  * Exports eslint configurations. Use this if you do not need to explicitly import typescript-eslint in your project.
81
- * @param options
81
+ * @param {object} options
82
82
  * @returns An array of eslint configurations
83
83
  */
84
84
  declare function config(options?: DefaultConfigOptions): TSESLint.FlatConfig.ConfigArray;
package/dist/index.d.ts CHANGED
@@ -78,7 +78,7 @@ declare const defaultConfig: typeof tsEslintConfig;
78
78
  declare function tsEslintConfig(options?: DefaultConfigOptions): ConfigWithExtends[];
79
79
  /**
80
80
  * Exports eslint configurations. Use this if you do not need to explicitly import typescript-eslint in your project.
81
- * @param options
81
+ * @param {object} options
82
82
  * @returns An array of eslint configurations
83
83
  */
84
84
  declare function config(options?: DefaultConfigOptions): TSESLint.FlatConfig.ConfigArray;
package/dist/index.mjs CHANGED
@@ -17,10 +17,11 @@ import a11y from 'eslint-plugin-jsx-a11y';
17
17
  import react from 'eslint-plugin-react';
18
18
  import reactHooks from 'eslint-plugin-react-hooks';
19
19
  import security from 'eslint-plugin-security';
20
+ import stylistic from '@stylistic/eslint-plugin';
20
21
  import testingLibrary from 'eslint-plugin-testing-library';
21
22
  import unicorn from 'eslint-plugin-unicorn';
22
23
 
23
- const base$c = {
24
+ const base$d = {
24
25
  rules: {
25
26
  "array-callback-return": ["error", { allowImplicit: true }],
26
27
  "block-scoped-var": "error",
@@ -85,7 +86,6 @@ const base$c = {
85
86
  "no-labels": ["error", { allowLoop: false, allowSwitch: false }],
86
87
  "no-lone-blocks": "error",
87
88
  "no-lonely-if": "error",
88
- "no-mixed-spaces-and-tabs": "error",
89
89
  "no-multi-assign": ["error"],
90
90
  "no-multi-str": "error",
91
91
  "no-negated-condition": "error",
@@ -162,44 +162,6 @@ const base$c = {
162
162
  "no-useless-concat": "error",
163
163
  "no-useless-rename": "error",
164
164
  "no-useless-return": "error",
165
- "padding-line-between-statements": [
166
- "error",
167
- {
168
- blankLine: "always",
169
- prev: ["directive", "block", "block-like", "multiline-block-like", "cjs-export", "cjs-import", "class", "export", "import", "if"],
170
- next: "*"
171
- },
172
- {
173
- blankLine: "never",
174
- prev: "directive",
175
- next: "directive"
176
- },
177
- {
178
- blankLine: "any",
179
- prev: "*",
180
- next: ["if", "for", "cjs-import", "import"]
181
- },
182
- {
183
- blankLine: "any",
184
- prev: ["export", "import"],
185
- next: ["export", "import"]
186
- },
187
- {
188
- blankLine: "always",
189
- prev: "*",
190
- next: ["try", "function", "switch"]
191
- },
192
- {
193
- blankLine: "always",
194
- prev: "if",
195
- next: "if"
196
- },
197
- {
198
- blankLine: "never",
199
- prev: ["return", "throw"],
200
- next: "*"
201
- }
202
- ],
203
165
  "prefer-const": [
204
166
  "error",
205
167
  {
@@ -235,9 +197,7 @@ const cjsAndEsm = {
235
197
  rules: {
236
198
  curly: ["error", "multi-line"],
237
199
  "dot-notation": ["error", { allowKeywords: true }],
238
- "dot-location": ["error", "property"],
239
200
  "getter-return": ["error", { allowImplicit: true }],
240
- "lines-between-class-members": ["error", "always", { exceptAfterSingleLine: false }],
241
201
  "no-array-constructor": "error",
242
202
  "no-empty-function": [
243
203
  "error",
@@ -261,8 +221,7 @@ const cjsAndEsm = {
261
221
  allowUnboundThis: true
262
222
  }
263
223
  ],
264
- "prefer-promise-reject-errors": ["error", { allowEmptyReject: true }],
265
- "wrap-iife": ["error", "outside", { functionPrototypeMethods: false }]
224
+ "prefer-promise-reject-errors": ["error", { allowEmptyReject: true }]
266
225
  }
267
226
  };
268
227
  const cjs = {
@@ -270,8 +229,8 @@ const cjs = {
270
229
  strict: ["error", "global"]
271
230
  }
272
231
  };
273
- const configs$c = {
274
- base: base$c,
232
+ const configs$d = {
233
+ base: base$d,
275
234
  cjsAndEsm,
276
235
  cjs
277
236
  };
@@ -370,7 +329,7 @@ const requireIndexRule = ESLintUtils.RuleCreator(() => "https://github.com/jgeur
370
329
  }
371
330
  });
372
331
 
373
- const base$b = {
332
+ const base$c = {
374
333
  plugins: {
375
334
  "decent-extension": {
376
335
  meta: {
@@ -388,11 +347,11 @@ const base$b = {
388
347
  "decent-extension/require-index": "error"
389
348
  }
390
349
  };
391
- const configs$b = {
392
- base: base$b
350
+ const configs$c = {
351
+ base: base$c
393
352
  };
394
353
 
395
- const base$a = {
354
+ const base$b = {
396
355
  plugins: {
397
356
  import: importPlugin
398
357
  },
@@ -407,11 +366,11 @@ const base$a = {
407
366
  ]
408
367
  }
409
368
  };
410
- const configs$a = {
411
- base: base$a
369
+ const configs$b = {
370
+ base: base$b
412
371
  };
413
372
 
414
- const base$9 = {
373
+ const base$a = {
415
374
  plugins: {
416
375
  jest,
417
376
  "jest-dom": jestDom
@@ -454,11 +413,11 @@ const base$9 = {
454
413
  "@typescript-eslint/unbound-method": "off"
455
414
  }
456
415
  };
457
- const configs$9 = {
458
- base: base$9
416
+ const configs$a = {
417
+ base: base$a
459
418
  };
460
419
 
461
- const base$8 = {
420
+ const base$9 = {
462
421
  settings: {
463
422
  jsdoc: {
464
423
  preferredTypes: {
@@ -474,20 +433,38 @@ const base$8 = {
474
433
  jsdoc
475
434
  },
476
435
  rules: {
477
- "unicorn/better-regex": "error",
478
- "unicorn/custom-error-definition": "error",
479
- "unicorn/no-array-method-this-argument": "error",
480
- "unicorn/no-for-loop": "error",
481
- "unicorn/prefer-array-find": "error",
482
- "unicorn/prefer-object-from-entries": "error",
483
- "unicorn/prefer-set-has": "error"
436
+ ...jsdoc.configs["flat/recommended"].rules,
437
+ "jsdoc/check-alignment": "error",
438
+ "jsdoc/check-indentation": "error",
439
+ "jsdoc/check-param-names": "off",
440
+ "jsdoc/check-tag-names": "error",
441
+ "jsdoc/check-types": "error",
442
+ "jsdoc/require-description": "off",
443
+ "jsdoc/require-description-complete-sentence": "off",
444
+ "jsdoc/require-example": "off",
445
+ "jsdoc/require-hyphen-before-param-description": "error",
446
+ "jsdoc/require-param": [
447
+ "error",
448
+ {
449
+ enableFixer: false,
450
+ ignoreWhenAllParamsMissing: true,
451
+ unnamedRootBase: ["args"]
452
+ }
453
+ ],
454
+ "jsdoc/require-param-description": "off",
455
+ "jsdoc/require-param-name": "error",
456
+ "jsdoc/require-param-type": "error",
457
+ "jsdoc/require-returns-description": "off",
458
+ "jsdoc/require-jsdoc": "off",
459
+ "jsdoc/require-returns-type": "off",
460
+ "jsdoc/valid-types": "error"
484
461
  }
485
462
  };
486
- const configs$8 = {
487
- base: base$8
463
+ const configs$9 = {
464
+ base: base$9
488
465
  };
489
466
 
490
- const base$7 = {
467
+ const base$8 = {
491
468
  plugins: {
492
469
  mocha
493
470
  },
@@ -506,15 +483,15 @@ const base$7 = {
506
483
  "mocha/no-mocha-arrows": "off"
507
484
  }
508
485
  };
509
- const configs$7 = {
510
- base: base$7
486
+ const configs$8 = {
487
+ base: base$8
511
488
  };
512
489
 
513
490
  const recommendedRules = {};
514
491
  for (const ruleName of Object.keys({ ...nextJs.configs.recommended.rules })) {
515
492
  recommendedRules[ruleName] = "error";
516
493
  }
517
- const base$6 = {
494
+ const base$7 = {
518
495
  plugins: {
519
496
  "@next/next": fixupPluginRules(nextJs)
520
497
  },
@@ -522,11 +499,11 @@ const base$6 = {
522
499
  ...recommendedRules
523
500
  }
524
501
  };
525
- const configs$6 = {
526
- base: base$6
502
+ const configs$7 = {
503
+ base: base$7
527
504
  };
528
505
 
529
- const base$5 = {
506
+ const base$6 = {
530
507
  plugins: {
531
508
  promise
532
509
  },
@@ -543,11 +520,11 @@ const base$5 = {
543
520
  "promise/param-names": "error"
544
521
  }
545
522
  };
546
- const configs$5 = {
547
- base: base$5
523
+ const configs$6 = {
524
+ base: base$6
548
525
  };
549
526
 
550
- const base$4 = {
527
+ const base$5 = {
551
528
  settings: {
552
529
  react: {
553
530
  version: "detect",
@@ -615,11 +592,11 @@ const base$4 = {
615
592
  "react-hooks/exhaustive-deps": "error"
616
593
  }
617
594
  };
618
- const configs$4 = {
619
- base: base$4
595
+ const configs$5 = {
596
+ base: base$5
620
597
  };
621
598
 
622
- const base$3 = {
599
+ const base$4 = {
623
600
  plugins: {
624
601
  security
625
602
  },
@@ -639,6 +616,59 @@ const base$3 = {
639
616
  "security/detect-unsafe-regex": "error"
640
617
  }
641
618
  };
619
+ const configs$4 = {
620
+ base: base$4
621
+ };
622
+
623
+ const baseStylistic = stylistic.configs.customize({
624
+ braceStyle: "1tbs",
625
+ jsx: true
626
+ });
627
+ const base$3 = {
628
+ ...baseStylistic,
629
+ rules: {
630
+ ...stylistic.configs["disable-legacy"].rules,
631
+ ...baseStylistic.rules,
632
+ "@stylistic/padding-line-between-statements": [
633
+ "error",
634
+ {
635
+ blankLine: "always",
636
+ prev: ["directive", "block", "block-like", "multiline-block-like", "cjs-export", "cjs-import", "class", "export", "import", "if"],
637
+ next: "*"
638
+ },
639
+ {
640
+ blankLine: "never",
641
+ prev: "directive",
642
+ next: "directive"
643
+ },
644
+ {
645
+ blankLine: "any",
646
+ prev: "*",
647
+ next: ["if", "for", "cjs-import", "import"]
648
+ },
649
+ {
650
+ blankLine: "any",
651
+ prev: ["export", "import"],
652
+ next: ["export", "import"]
653
+ },
654
+ {
655
+ blankLine: "always",
656
+ prev: "*",
657
+ next: ["try", "function", "switch"]
658
+ },
659
+ {
660
+ blankLine: "always",
661
+ prev: "if",
662
+ next: "if"
663
+ },
664
+ {
665
+ blankLine: "never",
666
+ prev: ["return", "throw"],
667
+ next: "*"
668
+ }
669
+ ]
670
+ }
671
+ };
642
672
  const configs$3 = {
643
673
  base: base$3
644
674
  };
@@ -780,27 +810,27 @@ function tsEslintConfig(options) {
780
810
  {
781
811
  languageOptions,
782
812
  settings: {
783
- ...configs$8.base.settings
813
+ ...configs$9.base.settings
784
814
  }
785
815
  },
786
816
  {
787
817
  name: "eslint-config-decent/base",
788
818
  files: ["**/*.ts", "**/*.js", "**/*.cjs", "**/*.mjs", "**/*.tsx"],
789
819
  plugins: {
820
+ ...configs$c.base.plugins,
790
821
  ...configs$b.base.plugins,
791
- ...configs$a.base.plugins,
792
- ...configs$8.base.plugins,
793
- ...configs$5.base.plugins,
794
- ...configs$3.base.plugins,
822
+ ...configs$9.base.plugins,
823
+ ...configs$6.base.plugins,
824
+ ...configs$4.base.plugins,
795
825
  ...configs.base.plugins
796
826
  },
797
827
  rules: {
798
- ...configs$c.base.rules,
799
- ...enableRequireExtensionRule ? configs$b.base.rules : {},
800
- ...configs$a.base.rules,
801
- ...configs$8.base.rules,
802
- ...configs$5.base.rules,
803
- ...configs$3.base.rules,
828
+ ...configs$d.base.rules,
829
+ ...enableRequireExtensionRule ? configs$c.base.rules : {},
830
+ ...configs$b.base.rules,
831
+ ...configs$9.base.rules,
832
+ ...configs$6.base.rules,
833
+ ...configs$4.base.rules,
804
834
  ...configs.base.rules
805
835
  }
806
836
  },
@@ -813,7 +843,7 @@ function tsEslintConfig(options) {
813
843
  {
814
844
  name: "eslint-config-decent/tsx",
815
845
  files: ["**/*.tsx"],
816
- ...configs$4.base
846
+ ...configs$5.base
817
847
  },
818
848
  {
819
849
  name: "eslint-config-decent/tsx-disable-ts-rules",
@@ -832,7 +862,7 @@ function tsEslintConfig(options) {
832
862
  rootDir: options?.nextJsRootDir
833
863
  }
834
864
  },
835
- ...configs$6.base
865
+ ...configs$7.base
836
866
  }
837
867
  ] : [],
838
868
  {
@@ -841,7 +871,7 @@ function tsEslintConfig(options) {
841
871
  languageOptions: {
842
872
  sourceType: "script"
843
873
  },
844
- ...configs$c.cjsAndEsm
874
+ ...configs$d.cjsAndEsm
845
875
  },
846
876
  {
847
877
  name: "eslint-config-decent/cjs",
@@ -849,20 +879,20 @@ function tsEslintConfig(options) {
849
879
  languageOptions: {
850
880
  sourceType: "script"
851
881
  },
852
- ...configs$c.cjs
882
+ ...configs$d.cjs
853
883
  },
854
884
  ...enableMocha ? [
855
885
  {
856
886
  name: "eslint-config-decent/mocha-tests",
857
887
  files: ["**/*.tests.ts", "tests/tests.ts"],
858
- ...configs$7.base
888
+ ...configs$8.base
859
889
  }
860
890
  ] : [],
861
891
  ...enableJest ? [
862
892
  {
863
893
  name: "eslint-config-decent/jest-tests",
864
894
  files: ["**/__tests__/**/*.ts?(x)", "**/*.{spec,test}.ts?(x)"],
865
- ...configs$9.base
895
+ ...configs$a.base
866
896
  }
867
897
  ] : [],
868
898
  ...enableTestingLibrary ? [
@@ -879,16 +909,28 @@ function tsEslintConfig(options) {
879
909
  }
880
910
  }
881
911
  ] : [],
912
+ {
913
+ ...configs$3.base,
914
+ name: "eslint-config-decent/stylistic",
915
+ files: ["**/*.ts", "**/*.js", "**/*.cjs", "**/*.mjs", "**/*.tsx"]
916
+ },
882
917
  {
883
918
  name: "eslint-config-decent/cjs-and-esm-disable-ts-rules",
884
919
  files: ["**/*.js", "**/*.cjs", "**/*.mjs"],
885
920
  extends: [tsEslint.configs.disableTypeChecked]
886
921
  },
887
- prettier
922
+ prettier,
923
+ {
924
+ name: "eslint-config-decent/1tbs",
925
+ files: ["**/*.ts", "**/*.js", "**/*.cjs", "**/*.mjs", "**/*.tsx"],
926
+ rules: {
927
+ "@stylistic/brace-style": "error"
928
+ }
929
+ }
888
930
  ];
889
931
  }
890
932
  function config(options) {
891
933
  return tsEslint.config(...tsEslintConfig(options));
892
934
  }
893
935
 
894
- export { config, defaultConfig, configs$c as eslintConfigs, configs$b as extensionConfigs, configs$a as importConfigs, configs$9 as jestConfigs, configs$8 as jsdocConfigs, configs$7 as mochaConfigs, configs$6 as nextJsConfigs, configs$5 as promiseConfigs, configs$4 as reactConfigs, configs$3 as securityConfigs, configs$2 as testingLibraryConfigs, tsEslintConfig, configs$1 as typescriptEslintConfigs, configs as unicornConfigs };
936
+ export { config, defaultConfig, configs$d as eslintConfigs, configs$c as extensionConfigs, configs$b as importConfigs, configs$a as jestConfigs, configs$9 as jsdocConfigs, configs$8 as mochaConfigs, configs$7 as nextJsConfigs, configs$6 as promiseConfigs, configs$5 as reactConfigs, configs$4 as securityConfigs, configs$2 as testingLibraryConfigs, tsEslintConfig, configs$1 as typescriptEslintConfigs, configs as unicornConfigs };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eslint-config-decent",
3
- "version": "2.5.0",
3
+ "version": "2.6.0-beta2",
4
4
  "description": "A decent ESLint configuration",
5
5
  "main": "./dist/index.cjs",
6
6
  "module": "./dist/index.mjs",
@@ -72,10 +72,11 @@
72
72
  "node": ">=20.11.0"
73
73
  },
74
74
  "dependencies": {
75
- "@eslint/compat": "1.2.6",
76
- "@eslint/js": "9.20.0",
77
- "@typescript-eslint/utils": "8.24.0",
75
+ "@eslint/compat": "1.2.7",
76
+ "@eslint/js": "9.21.0",
78
77
  "@next/eslint-plugin-next": "^15.1.7",
78
+ "@stylistic/eslint-plugin": "^4.0.1",
79
+ "@typescript-eslint/utils": "8.24.1",
79
80
  "eslint-config-prettier": "10.0.1",
80
81
  "eslint-plugin-import-x": "4.6.1",
81
82
  "eslint-plugin-jest": "28.11.0",
@@ -89,20 +90,20 @@
89
90
  "eslint-plugin-react-hooks": "5.1.0",
90
91
  "eslint-plugin-security": "3.0.1",
91
92
  "eslint-plugin-testing-library": "7.1.1",
92
- "eslint-plugin-unicorn": "56.0.1",
93
- "globals": "15.14.0",
94
- "typescript-eslint": "8.24.0"
93
+ "eslint-plugin-unicorn": "57.0.0",
94
+ "globals": "16.0.0",
95
+ "typescript-eslint": "8.24.1"
95
96
  },
96
97
  "devDependencies": {
97
- "@swc/core": "^1.10.15",
98
+ "@swc/core": "^1.10.18",
98
99
  "@types/node": ">=22",
99
- "eslint": "^9.20.0",
100
+ "eslint": "^9.21.0",
100
101
  "husky": "^9.1.7",
101
102
  "lint-staged": "^15.4.3",
102
103
  "markdownlint-cli": "^0.44.0",
103
104
  "npm-run-all": "^4.1.5",
104
105
  "pinst": "^3.0.0",
105
- "prettier": "3.4.2",
106
+ "prettier": "3.5.1",
106
107
  "typescript": "^5.7.3",
107
108
  "unbuild": "3.3.1"
108
109
  },
package/src/eslint.ts CHANGED
@@ -65,7 +65,6 @@ const base: TSESLint.FlatConfig.Config = {
65
65
  'no-labels': ['error', { allowLoop: false, allowSwitch: false }],
66
66
  'no-lone-blocks': 'error',
67
67
  'no-lonely-if': 'error',
68
- 'no-mixed-spaces-and-tabs': 'error',
69
68
  'no-multi-assign': ['error'],
70
69
  'no-multi-str': 'error',
71
70
  'no-negated-condition': 'error',
@@ -139,44 +138,6 @@ const base: TSESLint.FlatConfig.Config = {
139
138
  'no-useless-concat': 'error',
140
139
  'no-useless-rename': 'error',
141
140
  'no-useless-return': 'error',
142
- 'padding-line-between-statements': [
143
- 'error',
144
- {
145
- blankLine: 'always',
146
- prev: ['directive', 'block', 'block-like', 'multiline-block-like', 'cjs-export', 'cjs-import', 'class', 'export', 'import', 'if'],
147
- next: '*',
148
- },
149
- {
150
- blankLine: 'never',
151
- prev: 'directive',
152
- next: 'directive',
153
- },
154
- {
155
- blankLine: 'any',
156
- prev: '*',
157
- next: ['if', 'for', 'cjs-import', 'import'],
158
- },
159
- {
160
- blankLine: 'any',
161
- prev: ['export', 'import'],
162
- next: ['export', 'import'],
163
- },
164
- {
165
- blankLine: 'always',
166
- prev: '*',
167
- next: ['try', 'function', 'switch'],
168
- },
169
- {
170
- blankLine: 'always',
171
- prev: 'if',
172
- next: 'if',
173
- },
174
- {
175
- blankLine: 'never',
176
- prev: ['return', 'throw'],
177
- next: '*',
178
- },
179
- ],
180
141
  'prefer-const': [
181
142
  'error',
182
143
  {
@@ -213,9 +174,7 @@ const cjsAndEsm: TSESLint.FlatConfig.Config = {
213
174
  rules: {
214
175
  curly: ['error', 'multi-line'],
215
176
  'dot-notation': ['error', { allowKeywords: true }],
216
- 'dot-location': ['error', 'property'],
217
177
  'getter-return': ['error', { allowImplicit: true }],
218
- 'lines-between-class-members': ['error', 'always', { exceptAfterSingleLine: false }],
219
178
  'no-array-constructor': 'error',
220
179
  'no-empty-function': [
221
180
  'error',
@@ -240,7 +199,6 @@ const cjsAndEsm: TSESLint.FlatConfig.Config = {
240
199
  },
241
200
  ],
242
201
  'prefer-promise-reject-errors': ['error', { allowEmptyReject: true }],
243
- 'wrap-iife': ['error', 'outside', { functionPrototypeMethods: false }],
244
202
  },
245
203
  };
246
204
 
package/src/index.ts CHANGED
@@ -14,6 +14,7 @@ import { configs as nextJsConfigs } from './nextjs.js';
14
14
  import { configs as promiseConfigs } from './promise.js';
15
15
  import { configs as reactConfigs } from './react.js';
16
16
  import { configs as securityConfigs } from './security.js';
17
+ import { configs as stylisticConfigs } from './stylistic.js';
17
18
  import { configs as testingLibraryConfigs } from './testingLibrary.js';
18
19
  import { configs as typescriptEslintConfigs } from './typescriptEslint.js';
19
20
  import { configs as unicornConfigs } from './unicorn.js';
@@ -205,18 +206,30 @@ export function tsEslintConfig(options?: DefaultConfigOptions): ConfigWithExtend
205
206
  },
206
207
  ] as TSESLint.FlatConfig.Config[])
207
208
  : []),
209
+ {
210
+ ...stylisticConfigs.base,
211
+ name: 'eslint-config-decent/stylistic',
212
+ files: ['**/*.ts', '**/*.js', '**/*.cjs', '**/*.mjs', '**/*.tsx'],
213
+ },
208
214
  {
209
215
  name: 'eslint-config-decent/cjs-and-esm-disable-ts-rules',
210
216
  files: ['**/*.js', '**/*.cjs', '**/*.mjs'],
211
217
  extends: [tsEslint.configs.disableTypeChecked],
212
218
  },
213
219
  prettier,
220
+ {
221
+ name: 'eslint-config-decent/1tbs',
222
+ files: ['**/*.ts', '**/*.js', '**/*.cjs', '**/*.mjs', '**/*.tsx'],
223
+ rules: {
224
+ '@stylistic/brace-style': 'error',
225
+ },
226
+ },
214
227
  ];
215
228
  }
216
229
 
217
230
  /**
218
231
  * Exports eslint configurations. Use this if you do not need to explicitly import typescript-eslint in your project.
219
- * @param options
232
+ * @param {object} options
220
233
  * @returns An array of eslint configurations
221
234
  */
222
235
  export function config(options?: DefaultConfigOptions): TSESLint.FlatConfig.ConfigArray {
package/src/jsdoc.ts CHANGED
@@ -17,13 +17,31 @@ const base: TSESLint.FlatConfig.Config = {
17
17
  jsdoc,
18
18
  },
19
19
  rules: {
20
- 'unicorn/better-regex': 'error',
21
- 'unicorn/custom-error-definition': 'error',
22
- 'unicorn/no-array-method-this-argument': 'error',
23
- 'unicorn/no-for-loop': 'error',
24
- 'unicorn/prefer-array-find': 'error',
25
- 'unicorn/prefer-object-from-entries': 'error',
26
- 'unicorn/prefer-set-has': 'error',
20
+ ...jsdoc.configs['flat/recommended'].rules,
21
+ 'jsdoc/check-alignment': 'error',
22
+ 'jsdoc/check-indentation': 'error',
23
+ 'jsdoc/check-param-names': 'off',
24
+ 'jsdoc/check-tag-names': 'error',
25
+ 'jsdoc/check-types': 'error',
26
+ 'jsdoc/require-description': 'off',
27
+ 'jsdoc/require-description-complete-sentence': 'off',
28
+ 'jsdoc/require-example': 'off',
29
+ 'jsdoc/require-hyphen-before-param-description': 'error',
30
+ 'jsdoc/require-param': [
31
+ 'error',
32
+ {
33
+ enableFixer: false,
34
+ ignoreWhenAllParamsMissing: true,
35
+ unnamedRootBase: ['args'],
36
+ },
37
+ ],
38
+ 'jsdoc/require-param-description': 'off',
39
+ 'jsdoc/require-param-name': 'error',
40
+ 'jsdoc/require-param-type': 'error',
41
+ 'jsdoc/require-returns-description': 'off',
42
+ 'jsdoc/require-jsdoc': 'off',
43
+ 'jsdoc/require-returns-type': 'off',
44
+ 'jsdoc/valid-types': 'error',
27
45
  },
28
46
  };
29
47
 
@@ -0,0 +1,61 @@
1
+ import stylistic from '@stylistic/eslint-plugin';
2
+ import type { TSESLint } from '@typescript-eslint/utils';
3
+
4
+ const baseStylistic = stylistic.configs.customize({
5
+ braceStyle: '1tbs',
6
+ jsx: true,
7
+ });
8
+
9
+ const base: TSESLint.FlatConfig.Config = {
10
+ ...baseStylistic,
11
+ rules: {
12
+ ...stylistic.configs['disable-legacy'].rules,
13
+ ...baseStylistic.rules,
14
+ '@stylistic/padding-line-between-statements': [
15
+ 'error',
16
+ {
17
+ blankLine: 'always',
18
+ prev: ['directive', 'block', 'block-like', 'multiline-block-like', 'cjs-export', 'cjs-import', 'class', 'export', 'import', 'if'],
19
+ next: '*',
20
+ },
21
+ {
22
+ blankLine: 'never',
23
+ prev: 'directive',
24
+ next: 'directive',
25
+ },
26
+ {
27
+ blankLine: 'any',
28
+ prev: '*',
29
+ next: ['if', 'for', 'cjs-import', 'import'],
30
+ },
31
+ {
32
+ blankLine: 'any',
33
+ prev: ['export', 'import'],
34
+ next: ['export', 'import'],
35
+ },
36
+ {
37
+ blankLine: 'always',
38
+ prev: '*',
39
+ next: ['try', 'function', 'switch'],
40
+ },
41
+ {
42
+ blankLine: 'always',
43
+ prev: 'if',
44
+ next: 'if',
45
+ },
46
+ {
47
+ blankLine: 'never',
48
+ prev: ['return', 'throw'],
49
+ next: '*',
50
+ },
51
+ ],
52
+ },
53
+ };
54
+
55
+ export const configs = {
56
+ base,
57
+ };
58
+
59
+ export default {
60
+ configs,
61
+ };
@@ -1,5 +1,6 @@
1
1
  declare module '@eslint/js' {
2
2
  import type { TSESLint } from '@typescript-eslint/utils';
3
+
3
4
  const value: TSESLint.FlatConfig.Plugin & {
4
5
  configs: {
5
6
  recommended: TSESLint.FlatConfig.Config;
@@ -1,5 +1,6 @@
1
1
  declare module 'eslint-plugin-jest-dom' {
2
2
  import type { TSESLint } from '@typescript-eslint/utils';
3
+
3
4
  const value: TSESLint.FlatConfig.Plugin & {
4
5
  configs: {
5
6
  'flat/all': TSESLint.FlatConfig.Config;
@@ -1,5 +1,6 @@
1
1
  declare module 'eslint-plugin-jest' {
2
2
  import type { TSESLint } from '@typescript-eslint/utils';
3
+
3
4
  const value: TSESLint.FlatConfig.Plugin & {
4
5
  configs: {
5
6
  'flat/all': TSESLint.FlatConfig.Config;
@@ -1,5 +1,6 @@
1
1
  declare module 'eslint-plugin-jsx-a11y' {
2
2
  import type { TSESLint } from '@typescript-eslint/utils';
3
+
3
4
  const value: TSESLint.FlatConfig.Plugin & {
4
5
  configs: {
5
6
  recommended: TSESLint.FlatConfig.Config;
@@ -1,5 +1,6 @@
1
1
  declare module 'eslint-plugin-mocha' {
2
2
  import type { TSESLint } from '@typescript-eslint/utils';
3
+
3
4
  const value: TSESLint.FlatConfig.Plugin & {
4
5
  configs: {
5
6
  recommended: TSESLint.FlatConfig.Config;
@@ -1,5 +1,6 @@
1
1
  declare module '@next/eslint-plugin-next' {
2
2
  import type { TSESLint } from '@typescript-eslint/utils';
3
+
3
4
  const value: TSESLint.FlatConfig.Plugin & {
4
5
  configs: {
5
6
  recommended: TSESLint.FlatConfig.Config;
@@ -1,5 +1,6 @@
1
1
  declare module 'eslint-plugin-promise' {
2
2
  import type { TSESLint } from '@typescript-eslint/utils';
3
+
3
4
  const value: TSESLint.FlatConfig.Plugin;
4
5
  export default value;
5
6
  }
@@ -1,5 +1,6 @@
1
1
  declare module 'eslint-plugin-react-hooks' {
2
2
  import type { TSESLint } from '@typescript-eslint/utils';
3
+
3
4
  const value: TSESLint.FlatConfig.Plugin;
4
5
  export default value;
5
6
  }
@@ -1,5 +1,6 @@
1
1
  declare module 'eslint-plugin-react' {
2
2
  import type { TSESLint } from '@typescript-eslint/utils';
3
+
3
4
  const value: TSESLint.FlatConfig.Plugin & {
4
5
  configs: {
5
6
  all: TSESLint.FlatConfig.Config;
@@ -1,5 +1,6 @@
1
1
  declare module 'eslint-plugin-security' {
2
2
  import type { TSESLint } from '@typescript-eslint/utils';
3
+
3
4
  const value: TSESLint.FlatConfig.Plugin;
4
5
  export default value;
5
6
  }
@@ -1,5 +1,6 @@
1
1
  declare module 'eslint-plugin-testing-library' {
2
2
  import type { TSESLint } from '@typescript-eslint/utils';
3
+
3
4
  const value: TSESLint.FlatConfig.Plugin & {
4
5
  configs: {
5
6
  'flat/angular': TSESLint.FlatConfig.Config;
@@ -1,5 +1,6 @@
1
1
  declare module 'eslint-plugin-unicorn' {
2
2
  import type { TSESLint } from '@typescript-eslint/utils';
3
+
3
4
  const value: TSESLint.FlatConfig.Plugin;
4
5
  export default value;
5
6
  }