ultracite 3.3.7 → 3.4.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.
package/README.md CHANGED
@@ -14,7 +14,7 @@ Ultracite is a robust linting preset for modern TypeScript apps. It's comprised
14
14
 
15
15
  ### ESLint
16
16
 
17
- Ultracite uses [ESLint](https://eslint.org/) to enforce code quality and type safety. It includes a wide range of rules to ensure your code is consistent and error-free. Ultracite combines with pre-defined rulesets for ESLint, as well as the following plugins: [Import](https://www.npmjs.com/package/eslint-plugin-import), [jsx-a11y](https://www.npmjs.com/package/eslint-plugin-jsx-a11y), [React](https://www.npmjs.com/package/eslint-plugin-react), [React Hooks](https://www.npmjs.com/package/eslint-plugin-react-hooks), [jest](https://www.npmjs.com/package/eslint-plugin-jest), [promise](https://www.npmjs.com/package/eslint-plugin-promise), [n](https://www.npmjs.com/package/eslint-plugin-n), [Typescript](https://www.npmjs.com/package/@typescript-eslint/eslint-plugin), [Prettier](https://www.npmjs.com/package/eslint-plugin-prettier), [Next.js](https://nextjs.org/docs/basic-features/eslint#eslint-plugin) and [Cypress](https://www.npmjs.com/package/eslint-plugin-cypress).
17
+ Ultracite uses [ESLint](https://eslint.org/) to enforce code quality and type safety. It includes a wide range of rules to ensure your code is consistent and error-free. Ultracite combines with pre-defined rulesets for ESLint, as well as the following plugins: [Import](https://www.npmjs.com/package/eslint-plugin-import), [jsx-a11y](https://www.npmjs.com/package/eslint-plugin-jsx-a11y), [React](https://www.npmjs.com/package/eslint-plugin-react), [React Hooks](https://www.npmjs.com/package/eslint-plugin-react-hooks), [jest](https://www.npmjs.com/package/eslint-plugin-jest), [promise](https://www.npmjs.com/package/eslint-plugin-promise), [n](https://www.npmjs.com/package/eslint-plugin-n), [Typescript](https://www.npmjs.com/package/@typescript-eslint/eslint-plugin), [Prettier](https://www.npmjs.com/package/eslint-plugin-prettier), [Next.js](https://nextjs.org/docs/basic-features/eslint#eslint-plugin), [Cypress](https://www.npmjs.com/package/eslint-plugin-cypress) and [SonarJS](https://www.npmjs.com/package/eslint-plugin-sonarjs).
18
18
 
19
19
  ### Prettier
20
20
 
@@ -1,9 +1,9 @@
1
1
  import plugin from 'eslint-plugin-react';
2
- import reactHooks, { rules as rules$a } from 'eslint-plugin-react-hooks';
2
+ import reactHooks, { rules as rules$b } from 'eslint-plugin-react-hooks';
3
3
  import typescript from '@typescript-eslint/eslint-plugin';
4
4
  import plugin$1 from 'eslint-plugin-jsx-a11y';
5
5
  import * as importPlugin from 'eslint-plugin-import';
6
- import { rules as rules$b } from 'eslint-plugin-import';
6
+ import { rules as rules$c } from 'eslint-plugin-import';
7
7
  import plugin$2 from 'eslint-plugin-jest';
8
8
  import plugin$3 from 'eslint-plugin-promise';
9
9
  import plugin$4 from 'eslint-plugin-n';
@@ -16,8 +16,9 @@ import plugin$8 from 'eslint-plugin-unused-imports';
16
16
  import * as importTypescriptResolver from 'eslint-import-resolver-typescript';
17
17
  import eslintPrettier from 'eslint-config-prettier';
18
18
  import * as typescriptParser from '@typescript-eslint/parser';
19
+ import plugin$9 from 'eslint-plugin-sonarjs';
19
20
 
20
- const config$f = {
21
+ const config$g = {
21
22
  // ESLint Possible Problems: These rules relate to possible logic errors in code
22
23
  'array-callback-return': 'error',
23
24
  'constructor-super': 'error',
@@ -205,17 +206,17 @@ const config$f = {
205
206
  'line-comment-position': 'error',
206
207
  };
207
208
 
208
- const { rules: rules$9 } = plugin;
209
+ const { rules: rules$a } = plugin;
209
210
 
210
- const availableKeys$b = Object.keys(rules$9).filter(
211
- (key) => !rules$9[key].meta.deprecated
211
+ const availableKeys$c = Object.keys(rules$a).filter(
212
+ (key) => !rules$a[key].meta.deprecated
212
213
  );
213
214
 
214
- const baseRules$b = Object.fromEntries(
215
- availableKeys$b.map((key) => [`react/${key}`, 'error'])
215
+ const baseRules$c = Object.fromEntries(
216
+ availableKeys$c.map((key) => [`react/${key}`, 'error'])
216
217
  );
217
218
 
218
- const overrideRules$b = {
219
+ const overrideRules$c = {
219
220
  'react/forbid-component-props': 'off',
220
221
  'react/function-component-definition': [
221
222
  'error',
@@ -246,17 +247,17 @@ const overrideRules$b = {
246
247
  'react/jsx-sort-props': 'off',
247
248
  };
248
249
 
249
- const config$e = Object.assign(baseRules$b, overrideRules$b);
250
+ const config$f = Object.assign(baseRules$c, overrideRules$c);
250
251
 
251
- const availableKeys$a = Object.keys(rules$a).filter(
252
- (key) => !rules$a[key].meta.deprecated
252
+ const availableKeys$b = Object.keys(rules$b).filter(
253
+ (key) => !rules$b[key].meta.deprecated
253
254
  );
254
255
 
255
- const baseRules$a = Object.fromEntries(
256
- availableKeys$a.map((key) => [`react-hooks/${key}`, 'error'])
256
+ const baseRules$b = Object.fromEntries(
257
+ availableKeys$b.map((key) => [`react-hooks/${key}`, 'error'])
257
258
  );
258
259
 
259
- const overrideRules$a = {
260
+ const overrideRules$b = {
260
261
  'react-hooks/exhaustive-deps': [
261
262
  'error',
262
263
  {
@@ -266,19 +267,19 @@ const overrideRules$a = {
266
267
  ],
267
268
  };
268
269
 
269
- const config$d = Object.assign(baseRules$a, overrideRules$a);
270
+ const config$e = Object.assign(baseRules$b, overrideRules$b);
270
271
 
271
- const { rules: rules$8 } = typescript;
272
+ const { rules: rules$9 } = typescript;
272
273
 
273
- const availableKeys$9 = Object.keys(rules$8).filter(
274
- (key) => !rules$8[key].meta.deprecated
274
+ const availableKeys$a = Object.keys(rules$9).filter(
275
+ (key) => !rules$9[key].meta.deprecated
275
276
  );
276
277
 
277
- const baseRules$9 = Object.fromEntries(
278
- availableKeys$9.map((key) => [`@typescript-eslint/${key}`, 'error'])
278
+ const baseRules$a = Object.fromEntries(
279
+ availableKeys$a.map((key) => [`@typescript-eslint/${key}`, 'error'])
279
280
  );
280
281
 
281
- const overrideRules$9 = {
282
+ const overrideRules$a = {
282
283
  '@typescript-eslint/consistent-type-definitions': ['error', 'type'],
283
284
  '@typescript-eslint/explicit-function-return-type': 'off',
284
285
  '@typescript-eslint/naming-convention': [
@@ -325,19 +326,19 @@ const overrideRules$9 = {
325
326
  '@typescript-eslint/type-annotation-spacing': 'off',
326
327
  };
327
328
 
328
- const config$c = Object.assign(baseRules$9, overrideRules$9);
329
+ const config$d = Object.assign(baseRules$a, overrideRules$a);
329
330
 
330
- const { rules: rules$7 } = plugin$1;
331
+ const { rules: rules$8 } = plugin$1;
331
332
 
332
- const availableKeys$8 = Object.keys(rules$7).filter(
333
- (key) => !rules$7[key].meta.deprecated
333
+ const availableKeys$9 = Object.keys(rules$8).filter(
334
+ (key) => !rules$8[key].meta.deprecated
334
335
  );
335
336
 
336
- const baseRules$8 = Object.fromEntries(
337
- availableKeys$8.map((key) => [`jsx-a11y/${key}`, 'error'])
337
+ const baseRules$9 = Object.fromEntries(
338
+ availableKeys$9.map((key) => [`jsx-a11y/${key}`, 'error'])
338
339
  );
339
340
 
340
- const overrideRules$8 = {
341
+ const overrideRules$9 = {
341
342
  'jsx-a11y/no-autofocus': 'off',
342
343
  'jsx-a11y/label-has-associated-control': [
343
344
  'error',
@@ -349,17 +350,17 @@ const overrideRules$8 = {
349
350
  ],
350
351
  };
351
352
 
352
- const config$b = Object.assign(baseRules$8, overrideRules$8);
353
+ const config$c = Object.assign(baseRules$9, overrideRules$9);
353
354
 
354
- const availableKeys$7 = Object.keys(rules$b).filter(
355
- (key) => !rules$b[key].meta.deprecated
355
+ const availableKeys$8 = Object.keys(rules$c).filter(
356
+ (key) => !rules$c[key].meta.deprecated
356
357
  );
357
358
 
358
- const baseRules$7 = Object.fromEntries(
359
- availableKeys$7.map((key) => [`import/${key}`, 'error'])
359
+ const baseRules$8 = Object.fromEntries(
360
+ availableKeys$8.map((key) => [`import/${key}`, 'error'])
360
361
  );
361
362
 
362
- const overrideRules$7 = {
363
+ const overrideRules$8 = {
363
364
  'import/no-unresolved': 'off',
364
365
  'import/no-internal-modules': 'off',
365
366
  'import/no-relative-parent-imports': 'off',
@@ -390,50 +391,50 @@ const overrideRules$7 = {
390
391
  'import/group-exports': 'off',
391
392
  };
392
393
 
393
- const config$a = Object.assign(baseRules$7, overrideRules$7);
394
+ const config$b = Object.assign(baseRules$8, overrideRules$8);
394
395
 
395
- const { rules: rules$6 } = plugin$2;
396
+ const { rules: rules$7 } = plugin$2;
396
397
 
397
- const availableKeys$6 = Object.keys(rules$6).filter(
398
- (key) => !rules$6[key].meta.deprecated
398
+ const availableKeys$7 = Object.keys(rules$7).filter(
399
+ (key) => !rules$7[key].meta.deprecated
399
400
  );
400
401
 
401
- const baseRules$6 = Object.fromEntries(
402
- availableKeys$6.map((key) => [`jest/${key}`, 'error'])
402
+ const baseRules$7 = Object.fromEntries(
403
+ availableKeys$7.map((key) => [`jest/${key}`, 'error'])
403
404
  );
404
405
 
405
- const overrideRules$6 = {};
406
+ const overrideRules$7 = {};
406
407
 
407
- const config$9 = Object.assign(baseRules$6, overrideRules$6);
408
+ const config$a = Object.assign(baseRules$7, overrideRules$7);
408
409
 
409
- const { rules: rules$5 } = plugin$3;
410
+ const { rules: rules$6 } = plugin$3;
410
411
 
411
- const availableKeys$5 = Object.keys(rules$5).filter(
412
- (key) => !rules$5[key].meta.deprecated
412
+ const availableKeys$6 = Object.keys(rules$6).filter(
413
+ (key) => !rules$6[key].meta.deprecated
413
414
  );
414
415
 
415
- const baseRules$5 = Object.fromEntries(
416
- availableKeys$5.map((key) => [`promise/${key}`, 'error'])
416
+ const baseRules$6 = Object.fromEntries(
417
+ availableKeys$6.map((key) => [`promise/${key}`, 'error'])
417
418
  );
418
419
 
419
- const overrideRules$5 = {
420
+ const overrideRules$6 = {
420
421
  'promise/catch-or-return': ['error', { allowFinally: true }],
421
422
  'promise/no-native': 'off',
422
423
  };
423
424
 
424
- const config$8 = Object.assign(baseRules$5, overrideRules$5);
425
+ const config$9 = Object.assign(baseRules$6, overrideRules$6);
425
426
 
426
- const { rules: rules$4 } = plugin$4;
427
+ const { rules: rules$5 } = plugin$4;
427
428
 
428
- const availableKeys$4 = Object.keys(rules$4).filter(
429
- (key) => !rules$4[key].meta.deprecated
429
+ const availableKeys$5 = Object.keys(rules$5).filter(
430
+ (key) => !rules$5[key].meta.deprecated
430
431
  );
431
432
 
432
- const baseRules$4 = Object.fromEntries(
433
- availableKeys$4.map((key) => [`n/${key}`, 'error'])
433
+ const baseRules$5 = Object.fromEntries(
434
+ availableKeys$5.map((key) => [`n/${key}`, 'error'])
434
435
  );
435
436
 
436
- const overrideRules$4 = {
437
+ const overrideRules$5 = {
437
438
  'n/no-missing-import': 'off',
438
439
  'n/no-unsupported-features/es-builtins': 'off',
439
440
  'n/no-unsupported-features/es-syntax': 'off',
@@ -442,27 +443,27 @@ const overrideRules$4 = {
442
443
  'n/no-process-env': 'off',
443
444
  };
444
445
 
445
- const config$7 = Object.assign(baseRules$4, overrideRules$4);
446
+ const config$8 = Object.assign(baseRules$5, overrideRules$5);
446
447
 
447
- const { rules: rules$3 } = plugin$5;
448
+ const { rules: rules$4 } = plugin$5;
448
449
 
449
- const availableKeys$3 = Object.keys(rules$3).filter(
450
- (key) => !rules$3[key].meta.deprecated
450
+ const availableKeys$4 = Object.keys(rules$4).filter(
451
+ (key) => !rules$4[key].meta.deprecated
451
452
  );
452
453
 
453
- const baseRules$3 = Object.fromEntries(
454
- availableKeys$3.map((key) => [`@next/next/${key}`, 'error'])
454
+ const baseRules$4 = Object.fromEntries(
455
+ availableKeys$4.map((key) => [`@next/next/${key}`, 'error'])
455
456
  );
456
457
 
457
- const overrideRules$3 = {};
458
+ const overrideRules$4 = {};
458
459
 
459
- const config$6 = Object.assign(baseRules$3, overrideRules$3);
460
+ const config$7 = Object.assign(baseRules$4, overrideRules$4);
460
461
 
461
- const config$5 = {
462
+ const config$6 = {
462
463
  'prettier/prettier': 'error',
463
464
  };
464
465
 
465
- const config$4 = {
466
+ const config$5 = {
466
467
  // ESLint Disabled for Typescript-ESLint
467
468
  'brace-style': 'off',
468
469
  camelcase: 'off',
@@ -504,49 +505,63 @@ const config$4 = {
504
505
  'space-infix-ops': 'off',
505
506
  };
506
507
 
507
- const { rules: rules$2 } = plugin$6;
508
+ const { rules: rules$3 } = plugin$6;
509
+
510
+ const availableKeys$3 = Object.keys(rules$3).filter(
511
+ (key) => !rules$3[key].meta.deprecated
512
+ );
513
+
514
+ const baseRules$3 = Object.fromEntries(
515
+ availableKeys$3.map((key) => [`cypress/${key}`, 'error'])
516
+ );
517
+
518
+ const overrideRules$3 = {};
519
+
520
+ const config$4 = Object.assign(baseRules$3, overrideRules$3);
521
+
522
+ const { rules: rules$2 } = plugin$7;
508
523
 
509
524
  const availableKeys$2 = Object.keys(rules$2).filter(
510
525
  (key) => !rules$2[key].meta.deprecated
511
526
  );
512
527
 
513
528
  const baseRules$2 = Object.fromEntries(
514
- availableKeys$2.map((key) => [`cypress/${key}`, 'error'])
529
+ availableKeys$2.map((key) => [`storybook/${key}`, 'error'])
515
530
  );
516
531
 
517
532
  const overrideRules$2 = {};
518
533
 
519
534
  const config$3 = Object.assign(baseRules$2, overrideRules$2);
520
535
 
521
- const { rules: rules$1 } = plugin$7;
536
+ const { rules: rules$1 } = plugin$8;
522
537
 
523
538
  const availableKeys$1 = Object.keys(rules$1).filter(
524
539
  (key) => !rules$1[key].meta.deprecated
525
540
  );
526
541
 
527
542
  const baseRules$1 = Object.fromEntries(
528
- availableKeys$1.map((key) => [`storybook/${key}`, 'error'])
543
+ availableKeys$1.map((key) => [`unused-imports/${key}`, 'error'])
529
544
  );
530
545
 
531
546
  const overrideRules$1 = {};
532
547
 
533
548
  const config$2 = Object.assign(baseRules$1, overrideRules$1);
534
549
 
535
- const { rules } = plugin$8;
550
+ const { rules } = plugin$9;
536
551
 
537
552
  const availableKeys = Object.keys(rules).filter(
538
553
  (key) => !rules[key].meta.deprecated
539
554
  );
540
555
 
541
556
  const baseRules = Object.fromEntries(
542
- availableKeys.map((key) => [`unused-imports/${key}`, 'error'])
557
+ availableKeys.map((key) => [`sonarjs/${key}`, 'error'])
543
558
  );
544
559
 
545
560
  const overrideRules = {};
546
561
 
547
562
  const config$1 = Object.assign(baseRules, overrideRules);
548
563
 
549
- /* eslint-disable n/no-extraneous-import, import/no-extraneous-dependencies, id-length */
564
+ /* eslint-disable n/no-unpublished-import, n/no-extraneous-import, import/no-extraneous-dependencies, id-length */
550
565
 
551
566
 
552
567
  // Patch AudioWorkletGlobalScope
@@ -590,20 +605,22 @@ const config = [
590
605
  '@next/next': plugin$5,
591
606
  'unused-imports': plugin$8,
592
607
  // tailwindcss,
608
+ sonarjs: plugin$9,
593
609
  },
594
610
  rules: {
611
+ ...config$g,
595
612
  ...config$f,
596
613
  ...config$e,
597
- ...config$d,
614
+ ...config$c,
598
615
  ...config$b,
599
- ...config$a,
616
+ ...config$9,
600
617
  ...config$8,
601
618
  ...config$7,
602
619
  ...config$6,
603
- ...config$5,
604
620
  ...eslintPrettier.rules,
605
- ...config$1,
621
+ ...config$2,
606
622
  // ...tailwindcssRules,
623
+ ...config$1,
607
624
  },
608
625
 
609
626
  settings: {
@@ -634,8 +651,8 @@ const config = [
634
651
  'import/typescript': importTypescriptResolver,
635
652
  },
636
653
  rules: {
637
- ...config$4,
638
- ...config$c,
654
+ ...config$5,
655
+ ...config$d,
639
656
  },
640
657
  },
641
658
  {
@@ -649,7 +666,7 @@ const config = [
649
666
  jest: plugin$2,
650
667
  },
651
668
  rules: {
652
- ...config$9,
669
+ ...config$a,
653
670
  },
654
671
  },
655
672
  {
@@ -663,7 +680,7 @@ const config = [
663
680
  cypress: plugin$6,
664
681
  },
665
682
  rules: {
666
- ...config$3,
683
+ ...config$4,
667
684
  },
668
685
  },
669
686
  {
@@ -677,7 +694,7 @@ const config = [
677
694
  storybook: plugin$7,
678
695
  },
679
696
  rules: {
680
- ...config$2,
697
+ ...config$3,
681
698
  },
682
699
  },
683
700
  ];
@@ -1 +1 @@
1
- import Gr from"eslint-plugin-react";import Lr from"eslint-plugin-react-hooks";import Sr from"@typescript-eslint/eslint-plugin";import Qr from"eslint-plugin-jsx-a11y";import*as o from"eslint-plugin-import";import Vr from"eslint-plugin-jest";import Wr from"eslint-plugin-promise";import _r from"eslint-plugin-n";import Br from"@next/eslint-plugin-next";import e from"globals";import Dr from"eslint-plugin-prettier";import Jr from"eslint-plugin-cypress";import Mr from"eslint-plugin-storybook";import Nr from"eslint-plugin-unused-imports";import*as Ur from"eslint-import-resolver-typescript";import Xr from"eslint-config-prettier";import*as Yr from"@typescript-eslint/parser";var P={"array-callback-return":"error","constructor-super":"error","for-direction":"error","getter-return":"error","no-async-promise-executor":"error","no-await-in-loop":"error","no-class-assign":"error","no-compare-neg-zero":"error","no-cond-assign":"error","no-const-assign":"error","no-constant-condition":"error","no-constructor-return":"error","no-control-regex":"error","no-debugger":"error","no-dupe-args":"error","no-dupe-else-if":"error","no-dupe-keys":"error","no-duplicate-case":"error","no-empty-character-class":"error","no-empty-pattern":"error","no-ex-assign":"error","no-fallthrough":"error","no-func-assign":"error","no-import-assign":"error","no-inner-declarations":"error","no-invalid-regexp":"error","no-irregular-whitespace":"error","no-misleading-character-class":"error","no-new-symbol":"error","no-obj-calls":"error","no-promise-executor-return":"error","no-prototype-builtins":"error","no-self-assign":"error","no-self-compare":"error","no-setter-return":"error","no-sparse-arrays":"error","no-template-curly-in-string":"error","no-this-before-super":"error","no-undef":"error","no-unmodified-loop-condition":"error","no-unreachable":"error","no-unreachable-loop":"error","no-unsafe-finally":"error","no-unsafe-negation":"error","no-unsafe-optional-chaining":"error","no-unused-private-class-members":"off","no-useless-backreference":"error","require-atomic-updates":"error","use-isnan":"error","valid-typeof":"error","accessor-pairs":"error","arrow-body-style":"error","block-scoped-var":"error","capitalized-comments":"off","class-methods-use-this":"error",complexity:"off","consistent-return":"error","consistent-this":"error",curly:"error","default-case":"error","default-case-last":"error",eqeqeq:"error","func-name-matching":"error","func-names":"error","func-style":"error","grouped-accessor-pairs":"error","guard-for-in":"error","id-denylist":"error","id-length":["error",{exceptions:["x","y","z"]}],"id-match":"error","max-classes-per-file":"error","max-depth":"error","max-lines":"off","max-lines-per-function":"off","max-nested-callbacks":"error","max-params":"off","max-statements":"off","multiline-comment-style":"error","new-cap":"error","no-alert":"error","no-bitwise":"error","no-caller":"error","no-case-declarations":"error","no-console":"error","no-continue":"error","no-delete-var":"error","no-div-regex":"error","no-else-return":"error","no-empty":"error","no-eq-null":"error","no-eval":"error","no-extend-native":"error","no-extra-bind":"error","no-extra-boolean-cast":"error","no-extra-label":"error","no-global-assign":"error","no-implicit-coercion":"error","no-implicit-globals":"error","no-inline-comments":"error","no-iterator":"error","no-label-var":"error","no-labels":"error","no-lone-blocks":"error","no-lonely-if":"error","no-multi-assign":"error","no-multi-str":"error","no-negated-condition":"error","no-nested-ternary":"error","no-new":"error","no-new-func":"error","no-new-object":"error","no-new-wrappers":"error","no-nonoctal-decimal-escape":"error","no-octal":"error","no-octal-escape":"error","no-param-reassign":"error","no-plusplus":"error","no-proto":"error","no-regex-spaces":"error","no-restricted-exports":"error","no-restricted-globals":"error","no-restricted-properties":"error","no-restricted-syntax":"error","no-return-assign":"error","no-script-url":"error","no-sequences":"error","no-shadow-restricted-names":"error","no-ternary":"off","no-undef-init":"error","no-undefined":"off","no-underscore-dangle":"error","no-unneeded-ternary":"error","no-unused-labels":"error","no-useless-call":"error","no-useless-catch":"error","no-useless-computed-key":"error","no-useless-concat":"error","no-useless-escape":"error","no-useless-rename":"error","no-useless-return":"error","no-var":"error","no-void":"error","no-warning-comments":"error","no-with":"error","object-shorthand":"error","one-var":"off","operator-assignment":"error","prefer-arrow-callback":"error","prefer-const":"error","prefer-destructuring":["error",{array:!1,object:!0}],"prefer-exponentiation-operator":"error","prefer-named-capture-group":"error","prefer-numeric-literals":"error","prefer-object-spread":"error","prefer-promise-reject-errors":"error","prefer-regex-literals":"error","prefer-rest-params":"error","prefer-spread":"error","prefer-template":"error",radix:"error","require-unicode-regexp":"error","require-yield":"error","sort-imports":"off","sort-keys":"off","sort-vars":"off","spaced-comment":"error",strict:"error","symbol-description":"error","vars-on-top":"error",yoda:"error","line-comment-position":"error"},t=P;import T from"eslint-plugin-react";var{rules:s}=T,A=Object.keys(s).filter(r=>!s[r].meta.deprecated),z=Object.fromEntries(A.map(r=>[`react/${r}`,"error"])),H={"react/forbid-component-props":"off","react/function-component-definition":["error",{namedComponents:"arrow-function"}],"react/no-array-index-key":"off","react/no-arrow-function-lifecycle":"off","react/no-invalid-html-attribute":"off","react/no-multi-comp":"off","react/no-unused-class-component-methods":"off","react/react-in-jsx-scope":"off","react/require-default-props":"off","react/jsx-filename-extension":["error",{extensions:[".tsx"]}],"react/jsx-max-depth":"off","react/jsx-max-props-per-line":"off","react/jsx-newline":"off","react/jsx-no-bind":"off","react/jsx-no-literals":"off","react/jsx-one-expression-per-line":"off","react/jsx-props-no-spreading":"off","react/jsx-sort-props":"off"},I=Object.assign(z,H),n=I;import{rules as i}from"eslint-plugin-react-hooks";var F=Object.keys(i).filter(r=>!i[r].meta.deprecated),G=Object.fromEntries(F.map(r=>[`react-hooks/${r}`,"error"])),L={"react-hooks/exhaustive-deps":["error",{additionalHooks:"(useAsync)"}]},S=Object.assign(G,L),a=S;import Q from"@typescript-eslint/eslint-plugin";var{rules:c}=Q,V=Object.keys(c).filter(r=>!c[r].meta.deprecated),W=Object.fromEntries(V.map(r=>[`@typescript-eslint/${r}`,"error"])),_={"@typescript-eslint/consistent-type-definitions":["error","type"],"@typescript-eslint/explicit-function-return-type":"off","@typescript-eslint/naming-convention":["error",{selector:"default",format:["camelCase","PascalCase","snake_case"]},{selector:"objectLiteralProperty",format:null,modifiers:["requiresQuotes"]}],"@typescript-eslint/no-confusing-void-expression":"off","@typescript-eslint/no-misused-promises":"off","@typescript-eslint/no-type-alias":"off","@typescript-eslint/prefer-readonly":"off","@typescript-eslint/prefer-readonly-parameter-types":"off","@typescript-eslint/sort-type-union-intersection-members":"off","@typescript-eslint/strict-boolean-expressions":"off","@typescript-eslint/no-magic-numbers":"off","@typescript-eslint/block-spacing":"off","@typescript-eslint/brace-style":"off","@typescript-eslint/comma-dangle":"off","@typescript-eslint/comma-spacing":"off","@typescript-eslint/func-call-spacing":"off","@typescript-eslint/indent":"off","@typescript-eslint/key-spacing":"off","@typescript-eslint/keyword-spacing":"off","@typescript-eslint/lines-around-comment":"off","@typescript-eslint/lines-between-class-members":"off","@typescript-eslint/member-delimiter-style":"off","@typescript-eslint/no-extra-parens":"off","@typescript-eslint/object-curly-spacing":"off","@typescript-eslint/padding-line-between-statements":"off","@typescript-eslint/quotes":"off","@typescript-eslint/semi":"off","@typescript-eslint/space-before-blocks":"off","@typescript-eslint/space-before-function-paren":"off","@typescript-eslint/space-infix-ops":"off","@typescript-eslint/type-annotation-spacing":"off"},B=Object.assign(W,_),f=B;import D from"eslint-plugin-jsx-a11y";var{rules:p}=D,J=Object.keys(p).filter(r=>!p[r].meta.deprecated),M=Object.fromEntries(J.map(r=>[`jsx-a11y/${r}`,"error"])),N={"jsx-a11y/no-autofocus":"off","jsx-a11y/label-has-associated-control":["error",{labelComponents:["Label"],controlComponents:["Input","Select","Textarea","Checkbox","Radio"],depth:3}]},U=Object.assign(M,N),l=U;import{rules as m}from"eslint-plugin-import";var X=Object.keys(m).filter(r=>!m[r].meta.deprecated),Y=Object.fromEntries(X.map(r=>[`import/${r}`,"error"])),Z={"import/no-unresolved":"off","import/no-internal-modules":"off","import/no-relative-parent-imports":"off","import/no-named-as-default":"off","import/exports-last":"off","import/no-namespace":"off","import/extensions":"off","import/order":["error",{groups:["builtin","external","internal","parent","sibling","index","object","type"]}],"import/prefer-default-export":"off","import/max-dependencies":"off","import/no-unassigned-import":"off","import/no-default-export":"off","import/no-named-export":"off","import/group-exports":"off"},rr=Object.assign(Y,Z),u=rr;import er from"eslint-plugin-jest";var{rules:d}=er,or=Object.keys(d).filter(r=>!d[r].meta.deprecated),tr=Object.fromEntries(or.map(r=>[`jest/${r}`,"error"])),sr={},nr=Object.assign(tr,sr),y=nr;import ir from"eslint-plugin-promise";var{rules:b}=ir,ar=Object.keys(b).filter(r=>!b[r].meta.deprecated),cr=Object.fromEntries(ar.map(r=>[`promise/${r}`,"error"])),fr={"promise/catch-or-return":["error",{allowFinally:!0}],"promise/no-native":"off"},pr=Object.assign(cr,fr),g=pr;import lr from"eslint-plugin-n";var{rules:x}=lr,mr=Object.keys(x).filter(r=>!x[r].meta.deprecated),ur=Object.fromEntries(mr.map(r=>[`n/${r}`,"error"])),dr={"n/no-missing-import":"off","n/no-unsupported-features/es-builtins":"off","n/no-unsupported-features/es-syntax":"off","n/no-unsupported-features/node-builtins":"off","n/file-extension-in-import":"off","n/no-process-env":"off"},yr=Object.assign(ur,dr),j=yr;import br from"@next/eslint-plugin-next";var{rules:v}=br,gr=Object.keys(v).filter(r=>!v[r].meta.deprecated),xr=Object.fromEntries(gr.map(r=>[`@next/next/${r}`,"error"])),jr={},vr=Object.assign(xr,jr),O=vr;var Or={"prettier/prettier":"error"},R=Or;var Rr={"brace-style":"off",camelcase:"off","comma-dangle":"off","comma-spacing":"off","default-param-last":"off","dot-notation":"off","func-call-spacing":"off",indent:"off","init-declarations":"off","keyword-spacing":"off","lines-between-class-members":"off","no-array-constructor":"off","no-dupe-class-members":"off","no-duplicate-imports":"off","no-empty-function":"off","no-extra-parens":"off","no-extra-semi":"off","no-implied-eval":"off","no-invalid-this":"off","no-loop-func":"off","no-loss-of-precision":"off","no-magic-numbers":"off","no-redeclare":"off","no-restricted-imports":"off","no-shadow":"off","no-throw-literal":"off","no-unused-expressions":"off","no-unused-vars":"off","no-use-before-define":"off","no-useless-constructor":"off","object-curly-spacing":"off","padding-line-between-statements":"off",quotes:"off","require-await":"off","no-return-await":"off",semi:"off","space-before-function-paren":"off","space-infix-ops":"off"},k=Rr;import kr from"eslint-plugin-cypress";var{rules:h}=kr,hr=Object.keys(h).filter(r=>!h[r].meta.deprecated),wr=Object.fromEntries(hr.map(r=>[`cypress/${r}`,"error"])),qr={},Er=Object.assign(wr,qr),w=Er;import Kr from"eslint-plugin-storybook";var{rules:q}=Kr,$r=Object.keys(q).filter(r=>!q[r].meta.deprecated),Cr=Object.fromEntries($r.map(r=>[`storybook/${r}`,"error"])),Pr={},Tr=Object.assign(Cr,Pr),E=Tr;import Ar from"eslint-plugin-unused-imports";var{rules:K}=Ar,zr=Object.keys(K).filter(r=>!K[r].meta.deprecated),Hr=Object.fromEntries(zr.map(r=>[`unused-imports/${r}`,"error"])),Ir={},Fr=Object.assign(Hr,Ir),$=Fr;var C={...e.browser};delete C["AudioWorkletGlobalScope "];var Zr=[o.configs.typescript,{languageOptions:{sourceType:"module",globals:{...C,...e.node},parserOptions:{ecmaVersion:"latest",sourceType:"module",ecmaFeatures:{jsx:!0}}},files:["**/*.js","**/*.jsx","**/*.ts","**/*.tsx","**/*.json","**/*.mjs","**/*.cjs"],plugins:{prettier:Dr,react:Gr,"react-hooks":Lr,"jsx-a11y":Qr,import:o,promise:Wr,n:_r,"@next/next":Br,"unused-imports":Nr},rules:{...t,...n,...a,...l,...u,...g,...j,...O,...R,...Xr.rules,...$},settings:{react:{version:"detect"},"import/parsers":{espree:[".js",".cjs",".mjs",".jsx",".ts",".tsx"]},"import/resolver":{typescript:!0,node:!0}}},{files:["**/*.ts","**/*.tsx"],languageOptions:{parser:Yr,parserOptions:{project:"./tsconfig.json"}},plugins:{"@typescript-eslint":Sr,"import/typescript":Ur},rules:{...k,...f}},{files:["**/*.test.js","**/*.test.jsx","tests/**/*.js","tests/**/*.jsx"],languageOptions:{globals:{...e.jest}},plugins:{jest:Vr},rules:{...y}},{files:["**/*.cy.js","**/*.cy.jsx"],languageOptions:{globals:{...e.cypress}},plugins:{cypress:Jr},rules:{...w}},{files:["**/*.stories.js","**/*.stories.jsx","**/*.stories.ts","**/*.stories.tsx"],plugins:{storybook:Mr},rules:{...E}}],oo=Zr;export{oo as default};
1
+ import Br from"eslint-plugin-react";import Dr from"eslint-plugin-react-hooks";import Jr from"@typescript-eslint/eslint-plugin";import Mr from"eslint-plugin-jsx-a11y";import*as o from"eslint-plugin-import";import Nr from"eslint-plugin-jest";import Ur from"eslint-plugin-promise";import Xr from"eslint-plugin-n";import Yr from"@next/eslint-plugin-next";import e from"globals";import Zr from"eslint-plugin-prettier";import re from"eslint-plugin-cypress";import ee from"eslint-plugin-storybook";import oe from"eslint-plugin-unused-imports";import*as te from"eslint-import-resolver-typescript";import se from"eslint-config-prettier";import*as ne from"@typescript-eslint/parser";import ie from"eslint-plugin-sonarjs";var A={"array-callback-return":"error","constructor-super":"error","for-direction":"error","getter-return":"error","no-async-promise-executor":"error","no-await-in-loop":"error","no-class-assign":"error","no-compare-neg-zero":"error","no-cond-assign":"error","no-const-assign":"error","no-constant-condition":"error","no-constructor-return":"error","no-control-regex":"error","no-debugger":"error","no-dupe-args":"error","no-dupe-else-if":"error","no-dupe-keys":"error","no-duplicate-case":"error","no-empty-character-class":"error","no-empty-pattern":"error","no-ex-assign":"error","no-fallthrough":"error","no-func-assign":"error","no-import-assign":"error","no-inner-declarations":"error","no-invalid-regexp":"error","no-irregular-whitespace":"error","no-misleading-character-class":"error","no-new-symbol":"error","no-obj-calls":"error","no-promise-executor-return":"error","no-prototype-builtins":"error","no-self-assign":"error","no-self-compare":"error","no-setter-return":"error","no-sparse-arrays":"error","no-template-curly-in-string":"error","no-this-before-super":"error","no-undef":"error","no-unmodified-loop-condition":"error","no-unreachable":"error","no-unreachable-loop":"error","no-unsafe-finally":"error","no-unsafe-negation":"error","no-unsafe-optional-chaining":"error","no-unused-private-class-members":"off","no-useless-backreference":"error","require-atomic-updates":"error","use-isnan":"error","valid-typeof":"error","accessor-pairs":"error","arrow-body-style":"error","block-scoped-var":"error","capitalized-comments":"off","class-methods-use-this":"error",complexity:"off","consistent-return":"error","consistent-this":"error",curly:"error","default-case":"error","default-case-last":"error",eqeqeq:"error","func-name-matching":"error","func-names":"error","func-style":"error","grouped-accessor-pairs":"error","guard-for-in":"error","id-denylist":"error","id-length":["error",{exceptions:["x","y","z"]}],"id-match":"error","max-classes-per-file":"error","max-depth":"error","max-lines":"off","max-lines-per-function":"off","max-nested-callbacks":"error","max-params":"off","max-statements":"off","multiline-comment-style":"error","new-cap":"error","no-alert":"error","no-bitwise":"error","no-caller":"error","no-case-declarations":"error","no-console":"error","no-continue":"error","no-delete-var":"error","no-div-regex":"error","no-else-return":"error","no-empty":"error","no-eq-null":"error","no-eval":"error","no-extend-native":"error","no-extra-bind":"error","no-extra-boolean-cast":"error","no-extra-label":"error","no-global-assign":"error","no-implicit-coercion":"error","no-implicit-globals":"error","no-inline-comments":"error","no-iterator":"error","no-label-var":"error","no-labels":"error","no-lone-blocks":"error","no-lonely-if":"error","no-multi-assign":"error","no-multi-str":"error","no-negated-condition":"error","no-nested-ternary":"error","no-new":"error","no-new-func":"error","no-new-object":"error","no-new-wrappers":"error","no-nonoctal-decimal-escape":"error","no-octal":"error","no-octal-escape":"error","no-param-reassign":"error","no-plusplus":"error","no-proto":"error","no-regex-spaces":"error","no-restricted-exports":"error","no-restricted-globals":"error","no-restricted-properties":"error","no-restricted-syntax":"error","no-return-assign":"error","no-script-url":"error","no-sequences":"error","no-shadow-restricted-names":"error","no-ternary":"off","no-undef-init":"error","no-undefined":"off","no-underscore-dangle":"error","no-unneeded-ternary":"error","no-unused-labels":"error","no-useless-call":"error","no-useless-catch":"error","no-useless-computed-key":"error","no-useless-concat":"error","no-useless-escape":"error","no-useless-rename":"error","no-useless-return":"error","no-var":"error","no-void":"error","no-warning-comments":"error","no-with":"error","object-shorthand":"error","one-var":"off","operator-assignment":"error","prefer-arrow-callback":"error","prefer-const":"error","prefer-destructuring":["error",{array:!1,object:!0}],"prefer-exponentiation-operator":"error","prefer-named-capture-group":"error","prefer-numeric-literals":"error","prefer-object-spread":"error","prefer-promise-reject-errors":"error","prefer-regex-literals":"error","prefer-rest-params":"error","prefer-spread":"error","prefer-template":"error",radix:"error","require-unicode-regexp":"error","require-yield":"error","sort-imports":"off","sort-keys":"off","sort-vars":"off","spaced-comment":"error",strict:"error","symbol-description":"error","vars-on-top":"error",yoda:"error","line-comment-position":"error"},t=A;import z from"eslint-plugin-react";var{rules:s}=z,H=Object.keys(s).filter(r=>!s[r].meta.deprecated),I=Object.fromEntries(H.map(r=>[`react/${r}`,"error"])),F={"react/forbid-component-props":"off","react/function-component-definition":["error",{namedComponents:"arrow-function"}],"react/no-array-index-key":"off","react/no-arrow-function-lifecycle":"off","react/no-invalid-html-attribute":"off","react/no-multi-comp":"off","react/no-unused-class-component-methods":"off","react/react-in-jsx-scope":"off","react/require-default-props":"off","react/jsx-filename-extension":["error",{extensions:[".tsx"]}],"react/jsx-max-depth":"off","react/jsx-max-props-per-line":"off","react/jsx-newline":"off","react/jsx-no-bind":"off","react/jsx-no-literals":"off","react/jsx-one-expression-per-line":"off","react/jsx-props-no-spreading":"off","react/jsx-sort-props":"off"},G=Object.assign(I,F),n=G;import{rules as i}from"eslint-plugin-react-hooks";var L=Object.keys(i).filter(r=>!i[r].meta.deprecated),S=Object.fromEntries(L.map(r=>[`react-hooks/${r}`,"error"])),Q={"react-hooks/exhaustive-deps":["error",{additionalHooks:"(useAsync)"}]},V=Object.assign(S,Q),a=V;import W from"@typescript-eslint/eslint-plugin";var{rules:c}=W,_=Object.keys(c).filter(r=>!c[r].meta.deprecated),B=Object.fromEntries(_.map(r=>[`@typescript-eslint/${r}`,"error"])),D={"@typescript-eslint/consistent-type-definitions":["error","type"],"@typescript-eslint/explicit-function-return-type":"off","@typescript-eslint/naming-convention":["error",{selector:"default",format:["camelCase","PascalCase","snake_case"]},{selector:"objectLiteralProperty",format:null,modifiers:["requiresQuotes"]}],"@typescript-eslint/no-confusing-void-expression":"off","@typescript-eslint/no-misused-promises":"off","@typescript-eslint/no-type-alias":"off","@typescript-eslint/prefer-readonly":"off","@typescript-eslint/prefer-readonly-parameter-types":"off","@typescript-eslint/sort-type-union-intersection-members":"off","@typescript-eslint/strict-boolean-expressions":"off","@typescript-eslint/no-magic-numbers":"off","@typescript-eslint/block-spacing":"off","@typescript-eslint/brace-style":"off","@typescript-eslint/comma-dangle":"off","@typescript-eslint/comma-spacing":"off","@typescript-eslint/func-call-spacing":"off","@typescript-eslint/indent":"off","@typescript-eslint/key-spacing":"off","@typescript-eslint/keyword-spacing":"off","@typescript-eslint/lines-around-comment":"off","@typescript-eslint/lines-between-class-members":"off","@typescript-eslint/member-delimiter-style":"off","@typescript-eslint/no-extra-parens":"off","@typescript-eslint/object-curly-spacing":"off","@typescript-eslint/padding-line-between-statements":"off","@typescript-eslint/quotes":"off","@typescript-eslint/semi":"off","@typescript-eslint/space-before-blocks":"off","@typescript-eslint/space-before-function-paren":"off","@typescript-eslint/space-infix-ops":"off","@typescript-eslint/type-annotation-spacing":"off"},J=Object.assign(B,D),f=J;import M from"eslint-plugin-jsx-a11y";var{rules:p}=M,N=Object.keys(p).filter(r=>!p[r].meta.deprecated),U=Object.fromEntries(N.map(r=>[`jsx-a11y/${r}`,"error"])),X={"jsx-a11y/no-autofocus":"off","jsx-a11y/label-has-associated-control":["error",{labelComponents:["Label"],controlComponents:["Input","Select","Textarea","Checkbox","Radio"],depth:3}]},Y=Object.assign(U,X),l=Y;import{rules as m}from"eslint-plugin-import";var Z=Object.keys(m).filter(r=>!m[r].meta.deprecated),rr=Object.fromEntries(Z.map(r=>[`import/${r}`,"error"])),er={"import/no-unresolved":"off","import/no-internal-modules":"off","import/no-relative-parent-imports":"off","import/no-named-as-default":"off","import/exports-last":"off","import/no-namespace":"off","import/extensions":"off","import/order":["error",{groups:["builtin","external","internal","parent","sibling","index","object","type"]}],"import/prefer-default-export":"off","import/max-dependencies":"off","import/no-unassigned-import":"off","import/no-default-export":"off","import/no-named-export":"off","import/group-exports":"off"},or=Object.assign(rr,er),u=or;import tr from"eslint-plugin-jest";var{rules:d}=tr,sr=Object.keys(d).filter(r=>!d[r].meta.deprecated),nr=Object.fromEntries(sr.map(r=>[`jest/${r}`,"error"])),ir={},ar=Object.assign(nr,ir),y=ar;import cr from"eslint-plugin-promise";var{rules:b}=cr,fr=Object.keys(b).filter(r=>!b[r].meta.deprecated),pr=Object.fromEntries(fr.map(r=>[`promise/${r}`,"error"])),lr={"promise/catch-or-return":["error",{allowFinally:!0}],"promise/no-native":"off"},mr=Object.assign(pr,lr),g=mr;import ur from"eslint-plugin-n";var{rules:x}=ur,dr=Object.keys(x).filter(r=>!x[r].meta.deprecated),yr=Object.fromEntries(dr.map(r=>[`n/${r}`,"error"])),br={"n/no-missing-import":"off","n/no-unsupported-features/es-builtins":"off","n/no-unsupported-features/es-syntax":"off","n/no-unsupported-features/node-builtins":"off","n/file-extension-in-import":"off","n/no-process-env":"off"},gr=Object.assign(yr,br),j=gr;import xr from"@next/eslint-plugin-next";var{rules:v}=xr,jr=Object.keys(v).filter(r=>!v[r].meta.deprecated),vr=Object.fromEntries(jr.map(r=>[`@next/next/${r}`,"error"])),Or={},Rr=Object.assign(vr,Or),O=Rr;var kr={"prettier/prettier":"error"},R=kr;var hr={"brace-style":"off",camelcase:"off","comma-dangle":"off","comma-spacing":"off","default-param-last":"off","dot-notation":"off","func-call-spacing":"off",indent:"off","init-declarations":"off","keyword-spacing":"off","lines-between-class-members":"off","no-array-constructor":"off","no-dupe-class-members":"off","no-duplicate-imports":"off","no-empty-function":"off","no-extra-parens":"off","no-extra-semi":"off","no-implied-eval":"off","no-invalid-this":"off","no-loop-func":"off","no-loss-of-precision":"off","no-magic-numbers":"off","no-redeclare":"off","no-restricted-imports":"off","no-shadow":"off","no-throw-literal":"off","no-unused-expressions":"off","no-unused-vars":"off","no-use-before-define":"off","no-useless-constructor":"off","object-curly-spacing":"off","padding-line-between-statements":"off",quotes:"off","require-await":"off","no-return-await":"off",semi:"off","space-before-function-paren":"off","space-infix-ops":"off"},k=hr;import wr from"eslint-plugin-cypress";var{rules:h}=wr,qr=Object.keys(h).filter(r=>!h[r].meta.deprecated),Er=Object.fromEntries(qr.map(r=>[`cypress/${r}`,"error"])),Kr={},$r=Object.assign(Er,Kr),w=$r;import Cr from"eslint-plugin-storybook";var{rules:q}=Cr,Pr=Object.keys(q).filter(r=>!q[r].meta.deprecated),Tr=Object.fromEntries(Pr.map(r=>[`storybook/${r}`,"error"])),Ar={},zr=Object.assign(Tr,Ar),E=zr;import Hr from"eslint-plugin-unused-imports";var{rules:K}=Hr,Ir=Object.keys(K).filter(r=>!K[r].meta.deprecated),Fr=Object.fromEntries(Ir.map(r=>[`unused-imports/${r}`,"error"])),Gr={},Lr=Object.assign(Fr,Gr),$=Lr;import Sr from"eslint-plugin-sonarjs";var{rules:C}=Sr,Qr=Object.keys(C).filter(r=>!C[r].meta.deprecated),Vr=Object.fromEntries(Qr.map(r=>[`sonarjs/${r}`,"error"])),Wr={},_r=Object.assign(Vr,Wr),P=_r;var T={...e.browser};delete T["AudioWorkletGlobalScope "];var ae=[o.configs.typescript,{languageOptions:{sourceType:"module",globals:{...T,...e.node},parserOptions:{ecmaVersion:"latest",sourceType:"module",ecmaFeatures:{jsx:!0}}},files:["**/*.js","**/*.jsx","**/*.ts","**/*.tsx","**/*.json","**/*.mjs","**/*.cjs"],plugins:{prettier:Zr,react:Br,"react-hooks":Dr,"jsx-a11y":Mr,import:o,promise:Ur,n:Xr,"@next/next":Yr,"unused-imports":oe,sonarjs:ie},rules:{...t,...n,...a,...l,...u,...g,...j,...O,...R,...se.rules,...$,...P},settings:{react:{version:"detect"},"import/parsers":{espree:[".js",".cjs",".mjs",".jsx",".ts",".tsx"]},"import/resolver":{typescript:!0,node:!0}}},{files:["**/*.ts","**/*.tsx"],languageOptions:{parser:ne,parserOptions:{project:"./tsconfig.json"}},plugins:{"@typescript-eslint":Jr,"import/typescript":te},rules:{...k,...f}},{files:["**/*.test.js","**/*.test.jsx","tests/**/*.js","tests/**/*.jsx"],languageOptions:{globals:{...e.jest}},plugins:{jest:Nr},rules:{...y}},{files:["**/*.cy.js","**/*.cy.jsx"],languageOptions:{globals:{...e.cypress}},plugins:{cypress:re},rules:{...w}},{files:["**/*.stories.js","**/*.stories.jsx","**/*.stories.ts","**/*.stories.tsx"],plugins:{storybook:ee},rules:{...E}}],yo=ae;export{yo as default};
package/package.json CHANGED
@@ -14,6 +14,7 @@
14
14
  "eslint-plugin-promise": "^6.1.1",
15
15
  "eslint-plugin-react": "^7.33.2",
16
16
  "eslint-plugin-react-hooks": "^4.6.0",
17
+ "eslint-plugin-sonarjs": "^1.0.3",
17
18
  "eslint-plugin-storybook": "^0.6.15",
18
19
  "eslint-plugin-tailwindcss": "^3.13.0",
19
20
  "eslint-plugin-unused-imports": "^3.0.0",
@@ -40,7 +41,7 @@
40
41
  },
41
42
  "name": "ultracite",
42
43
  "description": "Strict, opinionated ESLint config for modern TypeScript apps.",
43
- "version": "3.3.7",
44
+ "version": "3.4.0",
44
45
  "publishConfig": {
45
46
  "access": "public",
46
47
  "registry": "https://registry.npmjs.org/"
@@ -76,10 +77,6 @@
76
77
  "url": "https://github.com/haydenbleasel/ultracite/issues"
77
78
  },
78
79
  "homepage": "https://github.com/haydenbleasel/ultracite#readme",
79
- "prettier": "./prettier.js",
80
- "stylelint": {
81
- "extends": "./stylelint.js"
82
- },
83
80
  "auto": {
84
81
  "plugins": [
85
82
  "npm",