@taiga-ui/eslint-plugin-experience-next 0.250.0 → 0.252.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/eslint.config.js CHANGED
@@ -34,7 +34,7 @@ try {
34
34
  angularVersion = parseInt(major, 10);
35
35
  }
36
36
  catch { }
37
- export default tseslint.config(progress.configs['recommended-ci'], require('eslint-plugin-import').flatConfigs.recommended, require('eslint-plugin-promise').configs['flat/recommended'], {
37
+ export default tseslint.config(progress.configs['recommended-ci'], require('eslint-plugin-import').flatConfigs.recommended, require('eslint-plugin-import').flatConfigs.typescript, require('eslint-plugin-promise').configs['flat/recommended'], {
38
38
  ignores: [
39
39
  '*/icons/all.ts',
40
40
  '**/tests-report/**',
@@ -77,12 +77,18 @@ export default tseslint.config(progress.configs['recommended-ci'], require('esli
77
77
  ],
78
78
  }, eslint.configs.recommended, tseslint.configs.recommended, require('eslint-config-prettier'), {
79
79
  files: ['**/*.ts', '**/*.js'],
80
- rules: {
81
- 'no-template-curly-in-string': 'error',
82
- 'no-empty': ['error', { allowEmptyCatch: true }],
80
+ plugins: {
81
+ '@stylistic': stylistic,
82
+ '@stylistic/ts': stylisticTs,
83
+ 'decorator-position': require('eslint-plugin-decorator-position'),
84
+ perfectionist: require('eslint-plugin-perfectionist'),
85
+ prettier,
86
+ rxjs,
87
+ 'simple-import-sort': simpleImportSort,
88
+ sonarjs,
89
+ unicorn,
90
+ 'unused-imports': unusedImports,
83
91
  },
84
- }, {
85
- files: ['**/*.ts'],
86
92
  extends: [
87
93
  eslint.configs.recommended,
88
94
  ...tseslint.configs.recommended,
@@ -90,7 +96,6 @@ export default tseslint.config(progress.configs['recommended-ci'], require('esli
90
96
  ...angular.configs.tsRecommended,
91
97
  ],
92
98
  languageOptions: {
93
- globals: globals.builtin,
94
99
  parserOptions: {
95
100
  ecmaVersion: 'latest',
96
101
  errorOnTypeScriptSyntacticAndSemanticIssues: false,
@@ -99,21 +104,13 @@ export default tseslint.config(progress.configs['recommended-ci'], require('esli
99
104
  warnOnUnsupportedTypeScriptVersion: false,
100
105
  ...parserOptions,
101
106
  },
107
+ globals: globals.builtin,
102
108
  },
103
109
  processor: angular.processInlineTemplates,
104
- plugins: {
105
- rxjs,
106
- unicorn,
107
- sonarjs,
108
- prettier,
109
- perfectionist: require('eslint-plugin-perfectionist'),
110
- '@stylistic': stylistic,
111
- '@stylistic/ts': stylisticTs,
112
- 'unused-imports': unusedImports,
113
- 'decorator-position': require('eslint-plugin-decorator-position'),
114
- 'simple-import-sort': simpleImportSort,
115
- },
116
110
  rules: {
111
+ '@typescript-eslint/no-import-type-side-effects': 'error',
112
+ 'no-void': ['error', { allowAsStatement: true }],
113
+ 'sonarjs/no-identical-functions': 'error',
117
114
  '@angular-eslint/contextual-decorator': 'error',
118
115
  '@angular-eslint/contextual-lifecycle': 'error',
119
116
  '@angular-eslint/directive-selector': 'error',
@@ -227,7 +224,7 @@ export default tseslint.config(progress.configs['recommended-ci'], require('esli
227
224
  },
228
225
  },
229
226
  ],
230
- '@typescript-eslint/max-params': ['error', { countVoidThis: true, max: 3 }],
227
+ '@typescript-eslint/max-params': ['error', { countVoidThis: true, max: 5 }],
231
228
  '@typescript-eslint/member-ordering': [
232
229
  'error',
233
230
  {
@@ -384,7 +381,6 @@ export default tseslint.config(progress.configs['recommended-ci'], require('esli
384
381
  ],
385
382
  '@typescript-eslint/no-for-in-array': 'error',
386
383
  '@typescript-eslint/no-implied-eval': 'error',
387
- '@typescript-eslint/no-import-type-side-effects': 'error',
388
384
  '@typescript-eslint/no-inferrable-types': 'error',
389
385
  '@typescript-eslint/no-namespace': ['error', { allowDeclarations: true }],
390
386
  '@typescript-eslint/no-non-null-asserted-nullish-coalescing': 'error',
@@ -393,9 +389,6 @@ export default tseslint.config(progress.configs['recommended-ci'], require('esli
393
389
  'error',
394
390
  {
395
391
  types: {
396
- '{}': {
397
- message: '`{}` actually means `any non-nullish value`.\n- If you want a type meaning `any object`, you probably want `object` instead.\n- If you want a type meaning `any value`, you probably want `unknown` instead.\n- If you want a type meaning `empty object`, you probably want `Record<string, never>` instead.',
398
- },
399
392
  BigInt: {
400
393
  fixWith: 'bigint',
401
394
  message: 'Use bigint instead',
@@ -419,6 +412,9 @@ export default tseslint.config(progress.configs['recommended-ci'], require('esli
419
412
  fixWith: 'symbol',
420
413
  message: 'Use symbol instead',
421
414
  },
415
+ '{}': {
416
+ message: '`{}` actually means `any non-nullish value`.\n- If you want a type meaning `any object`, you probably want `object` instead.\n- If you want a type meaning `any value`, you probably want `unknown` instead.\n- If you want a type meaning `empty object`, you probably want `Record<string, never>` instead.',
417
+ },
422
418
  },
423
419
  },
424
420
  ],
@@ -480,8 +476,8 @@ export default tseslint.config(progress.configs['recommended-ci'], require('esli
480
476
  '@typescript-eslint/switch-exhaustiveness-check': [
481
477
  'error',
482
478
  {
483
- allowDefaultCaseForExhaustiveSwitch: true,
484
479
  considerDefaultExhaustiveForUnions: true,
480
+ allowDefaultCaseForExhaustiveSwitch: true,
485
481
  requireDefaultForNonUnion: false,
486
482
  },
487
483
  ],
@@ -498,8 +494,8 @@ export default tseslint.config(progress.configs['recommended-ci'], require('esli
498
494
  'decorator-position/decorator-position': [
499
495
  'error',
500
496
  {
501
- methods: 'above',
502
497
  printWidth: 120,
498
+ methods: 'above',
503
499
  properties: 'above',
504
500
  },
505
501
  ],
@@ -523,7 +519,6 @@ export default tseslint.config(progress.configs['recommended-ci'], require('esli
523
519
  'import/newline-after-import': ['error', { count: 1 }],
524
520
  'import/no-absolute-path': 'error',
525
521
  'import/no-cycle': 'error',
526
- 'import/no-deprecated': 'error',
527
522
  'import/no-duplicates': 'error',
528
523
  'import/no-mutable-exports': 'error',
529
524
  'import/no-self-import': 'error',
@@ -554,6 +549,7 @@ export default tseslint.config(progress.configs['recommended-ci'], require('esli
554
549
  ],
555
550
  'max-depth': 'error',
556
551
  'max-nested-callbacks': ['error', 4],
552
+ 'max-params': ['error', 5],
557
553
  'no-bitwise': 'error',
558
554
  'no-case-declarations': 'error',
559
555
  'no-console': [
@@ -563,9 +559,10 @@ export default tseslint.config(progress.configs['recommended-ci'], require('esli
563
559
  },
564
560
  ],
565
561
  'no-constant-condition': 'error',
562
+ 'no-empty': ['error', { allowEmptyCatch: true }],
566
563
  'no-implicit-coercion': ['error', { allow: ['!!'] }],
567
- 'no-irregular-whitespace': 'error',
568
564
  'no-loop-func': 'error',
565
+ 'no-nested-ternary': 'error',
569
566
  'no-restricted-imports': [
570
567
  'error',
571
568
  {
@@ -670,7 +667,6 @@ export default tseslint.config(progress.configs['recommended-ci'], require('esli
670
667
  },
671
668
  ],
672
669
  'no-var': 'error',
673
- 'no-void': ['error', { allowAsStatement: true }],
674
670
  'perfectionist/sort-array-includes': [
675
671
  'error',
676
672
  {
@@ -726,6 +722,7 @@ export default tseslint.config(progress.configs['recommended-ci'], require('esli
726
722
  'rxjs/no-connectable': 'error',
727
723
  'rxjs/no-cyclic-action': 'error',
728
724
  'rxjs/no-ignored-observable': 'error',
725
+ 'rxjs/no-nested-subscribe': 'error',
729
726
  'rxjs/no-topromise': 'error',
730
727
  'rxjs/no-unsafe-catch': 'error',
731
728
  'rxjs/no-unsafe-first': 'error',
@@ -733,7 +730,6 @@ export default tseslint.config(progress.configs['recommended-ci'], require('esli
733
730
  'rxjs/throw-error': 'error',
734
731
  'simple-import-sort/exports': 'error',
735
732
  'simple-import-sort/imports': 'error',
736
- 'sonarjs/no-identical-functions': 'error',
737
733
  'sonarjs/no-inverted-boolean-check': 'error',
738
734
  'spaced-comment': [
739
735
  'error',
@@ -776,9 +772,9 @@ export default tseslint.config(progress.configs['recommended-ci'], require('esli
776
772
  ...angular.configs.templateAccessibility,
777
773
  ],
778
774
  rules: {
779
- '@angular-eslint/template/no-negated-async': 'off',
780
- '@angular-eslint/template/label-has-associated-control': 'off',
781
775
  '@angular-eslint/template/interactive-supports-focus': 'off',
776
+ '@angular-eslint/template/label-has-associated-control': 'off',
777
+ '@angular-eslint/template/no-negated-async': 'off',
782
778
  '@typescript-eslint/ban-ts-comment': 'off',
783
779
  'import/namespace': 'off',
784
780
  },
@@ -787,9 +783,9 @@ export default tseslint.config(progress.configs['recommended-ci'], require('esli
787
783
  ...playwright.configs['flat/recommended'],
788
784
  rules: {
789
785
  ...playwright.configs['flat/recommended'].rules,
786
+ 'playwright/no-networkidle': 'off',
790
787
  'jest/prefer-importing-jest-globals': 'off',
791
788
  'playwright/no-force-option': 'error',
792
- 'playwright/no-networkidle': 'off',
793
789
  'playwright/no-skipped-test': 'error',
794
790
  'playwright/no-wait-for-selector': 'off',
795
791
  'playwright/no-wait-for-timeout': 'off',
@@ -821,6 +817,7 @@ export default tseslint.config(progress.configs['recommended-ci'], require('esli
821
817
  * If enabled we have
822
818
  * Expected to be running in 'ProxyZone', but it was not found
823
819
  */
820
+ 'jest/valid-title': 'error',
824
821
  'jest/prefer-importing-jest-globals': 'off',
825
822
  'jest/prefer-lowercase-title': [
826
823
  'error',
@@ -857,7 +854,6 @@ export default tseslint.config(progress.configs['recommended-ci'], require('esli
857
854
  },
858
855
  ],
859
856
  'jest/unbound-method': 'off',
860
- 'jest/valid-title': 'error',
861
857
  },
862
858
  }, {
863
859
  files: ['**/*.cy.ts'],
@@ -867,10 +863,17 @@ export default tseslint.config(progress.configs['recommended-ci'], require('esli
867
863
  'max-nested-callbacks': 'off',
868
864
  'no-implicit-globals': 'error',
869
865
  },
866
+ }, {
867
+ files: ['**/*.js'],
868
+ rules: {
869
+ '@typescript-eslint/explicit-function-return-type': 'off',
870
+ 'no-template-curly-in-string': 'off',
871
+ },
870
872
  }, {
871
873
  files: ['**/*'],
872
874
  rules: {
873
- 'no-constant-binary-expression': 'off',
875
+ '@angular-eslint/use-injectable-provided-in': 'off',
876
+ 'sonarjs/no-invalid-await': 'off',
874
877
  '@angular-eslint/component-class-suffix': 'off',
875
878
  '@angular-eslint/component-max-inline-declarations': 'off',
876
879
  '@angular-eslint/component-selector': 'off',
@@ -888,17 +891,16 @@ export default tseslint.config(progress.configs['recommended-ci'], require('esli
888
891
  '@angular-eslint/template/click-events-have-key-events': 'off',
889
892
  '@angular-eslint/use-component-selector': 'off',
890
893
  '@angular-eslint/use-component-view-encapsulation': 'off',
891
- '@angular-eslint/use-injectable-provided-in': 'off',
892
894
  '@typescript-eslint/adjacent-overload-signatures': 'off',
893
- '@typescript-eslint/class-literal-property-style': 'off',
894
- '@typescript-eslint/no-require-imports': 'off',
895
895
  '@typescript-eslint/ban-ts-comment': 'off',
896
+ '@typescript-eslint/class-literal-property-style': 'off',
896
897
  '@typescript-eslint/consistent-return': 'off',
897
898
  '@typescript-eslint/explicit-module-boundary-types': 'off',
898
899
  '@typescript-eslint/no-base-to-string': 'off',
899
900
  '@typescript-eslint/no-explicit-any': 'off',
900
901
  '@typescript-eslint/no-floating-promises': 'off',
901
902
  '@typescript-eslint/no-non-null-assertion': 'off',
903
+ '@typescript-eslint/no-require-imports': 'off',
902
904
  '@typescript-eslint/no-shadow': 'off',
903
905
  '@typescript-eslint/no-unnecessary-condition': 'off',
904
906
  '@typescript-eslint/no-unsafe-member-access': 'off',
@@ -921,9 +923,11 @@ export default tseslint.config(progress.configs['recommended-ci'], require('esli
921
923
  'func-names': 'off',
922
924
  'global-require': 'off',
923
925
  'grouped-accessor-pairs': 'off',
926
+ 'import/export': 'off',
924
927
  'import/exports-last': 'off',
925
928
  'import/extensions': 'off',
926
929
  'import/no-default-export': 'off',
930
+ 'import/no-deprecated': 'off',
927
931
  'import/no-dynamic-require': 'off',
928
932
  'import/no-extraneous-dependencies': 'off',
929
933
  'import/no-relative-packages': 'off',
@@ -931,15 +935,16 @@ export default tseslint.config(progress.configs['recommended-ci'], require('esli
931
935
  'import/prefer-default-export': 'off',
932
936
  'lines-between-class-members': 'off',
933
937
  'max-classes-per-file': 'off',
934
- 'max-params': 'off',
935
938
  'max-statements': 'off',
936
939
  'no-await-in-loop': 'off',
937
940
  'no-bitwise': 'off',
941
+ 'no-constant-binary-expression': 'off',
938
942
  'no-constructor-return': 'off',
939
943
  'no-continue': 'off',
940
944
  'no-dupe-class-members': 'off',
941
945
  'no-duplicate-imports': 'off',
942
946
  'no-empty-function': 'off',
947
+ 'no-irregular-whitespace': 'off',
943
948
  'no-param-reassign': 'off',
944
949
  'no-plusplus': 'off',
945
950
  'no-prototype-builtins': 'off',
@@ -961,7 +966,6 @@ export default tseslint.config(progress.configs['recommended-ci'], require('esli
961
966
  'react/no-is-mounted': 'off',
962
967
  'require-await': 'off',
963
968
  'rxjs/no-ignored-takewhile-value': 'off',
964
- 'rxjs/no-nested-subscribe': 'off',
965
969
  'rxjs/no-unsafe-takeuntil': 'off',
966
970
  'sonarjs/aws-apigateway-public-api': 'off',
967
971
  'sonarjs/aws-ec2-rds-dms-public': 'off',
@@ -994,7 +998,6 @@ export default tseslint.config(progress.configs['recommended-ci'], require('esli
994
998
  'sonarjs/no-commented-code': 'off',
995
999
  'sonarjs/no-duplicate-string': 'off',
996
1000
  'sonarjs/no-empty-function': 'off',
997
- 'sonarjs/no-invalid-await': 'off',
998
1001
  'sonarjs/no-misleading-array-reverse': 'off',
999
1002
  'sonarjs/no-misused-promises': 'off',
1000
1003
  'sonarjs/no-nested-conditional': 'off',
package/eslint.config.ts CHANGED
@@ -44,6 +44,7 @@ try {
44
44
  export default tseslint.config(
45
45
  progress.configs['recommended-ci'],
46
46
  require('eslint-plugin-import').flatConfigs.recommended,
47
+ require('eslint-plugin-import').flatConfigs.typescript,
47
48
  require('eslint-plugin-promise').configs['flat/recommended'],
48
49
  {
49
50
  ignores: [
@@ -92,13 +93,18 @@ export default tseslint.config(
92
93
  require('eslint-config-prettier'),
93
94
  {
94
95
  files: ['**/*.ts', '**/*.js'],
95
- rules: {
96
- 'no-template-curly-in-string': 'error',
97
- 'no-empty': ['error', {allowEmptyCatch: true}],
96
+ plugins: {
97
+ '@stylistic': stylistic,
98
+ '@stylistic/ts': stylisticTs,
99
+ 'decorator-position': require('eslint-plugin-decorator-position'),
100
+ perfectionist: require('eslint-plugin-perfectionist'),
101
+ prettier,
102
+ rxjs,
103
+ 'simple-import-sort': simpleImportSort,
104
+ sonarjs,
105
+ unicorn,
106
+ 'unused-imports': unusedImports,
98
107
  },
99
- },
100
- {
101
- files: ['**/*.ts'],
102
108
  extends: [
103
109
  eslint.configs.recommended,
104
110
  ...tseslint.configs.recommended,
@@ -106,7 +112,6 @@ export default tseslint.config(
106
112
  ...angular.configs.tsRecommended,
107
113
  ],
108
114
  languageOptions: {
109
- globals: globals.builtin,
110
115
  parserOptions: {
111
116
  ecmaVersion: 'latest',
112
117
  errorOnTypeScriptSyntacticAndSemanticIssues: false,
@@ -115,21 +120,13 @@ export default tseslint.config(
115
120
  warnOnUnsupportedTypeScriptVersion: false,
116
121
  ...parserOptions,
117
122
  },
123
+ globals: globals.builtin,
118
124
  },
119
125
  processor: angular.processInlineTemplates,
120
- plugins: {
121
- rxjs,
122
- unicorn,
123
- sonarjs,
124
- prettier,
125
- perfectionist: require('eslint-plugin-perfectionist'),
126
- '@stylistic': stylistic,
127
- '@stylistic/ts': stylisticTs,
128
- 'unused-imports': unusedImports,
129
- 'decorator-position': require('eslint-plugin-decorator-position'),
130
- 'simple-import-sort': simpleImportSort,
131
- },
132
126
  rules: {
127
+ '@typescript-eslint/no-import-type-side-effects': 'error',
128
+ 'no-void': ['error', {allowAsStatement: true}],
129
+ 'sonarjs/no-identical-functions': 'error',
133
130
  '@angular-eslint/contextual-decorator': 'error',
134
131
  '@angular-eslint/contextual-lifecycle': 'error',
135
132
  '@angular-eslint/directive-selector': 'error',
@@ -244,7 +241,7 @@ export default tseslint.config(
244
241
  },
245
242
  },
246
243
  ],
247
- '@typescript-eslint/max-params': ['error', {countVoidThis: true, max: 3}],
244
+ '@typescript-eslint/max-params': ['error', {countVoidThis: true, max: 5}],
248
245
  '@typescript-eslint/member-ordering': [
249
246
  'error',
250
247
  {
@@ -401,7 +398,6 @@ export default tseslint.config(
401
398
  ],
402
399
  '@typescript-eslint/no-for-in-array': 'error',
403
400
  '@typescript-eslint/no-implied-eval': 'error',
404
- '@typescript-eslint/no-import-type-side-effects': 'error',
405
401
  '@typescript-eslint/no-inferrable-types': 'error',
406
402
  '@typescript-eslint/no-namespace': ['error', {allowDeclarations: true}],
407
403
  '@typescript-eslint/no-non-null-asserted-nullish-coalescing': 'error',
@@ -410,10 +406,6 @@ export default tseslint.config(
410
406
  'error',
411
407
  {
412
408
  types: {
413
- '{}': {
414
- message:
415
- '`{}` actually means `any non-nullish value`.\n- If you want a type meaning `any object`, you probably want `object` instead.\n- If you want a type meaning `any value`, you probably want `unknown` instead.\n- If you want a type meaning `empty object`, you probably want `Record<string, never>` instead.',
416
- },
417
409
  BigInt: {
418
410
  fixWith: 'bigint',
419
411
  message: 'Use bigint instead',
@@ -438,6 +430,10 @@ export default tseslint.config(
438
430
  fixWith: 'symbol',
439
431
  message: 'Use symbol instead',
440
432
  },
433
+ '{}': {
434
+ message:
435
+ '`{}` actually means `any non-nullish value`.\n- If you want a type meaning `any object`, you probably want `object` instead.\n- If you want a type meaning `any value`, you probably want `unknown` instead.\n- If you want a type meaning `empty object`, you probably want `Record<string, never>` instead.',
436
+ },
441
437
  },
442
438
  },
443
439
  ],
@@ -499,8 +495,8 @@ export default tseslint.config(
499
495
  '@typescript-eslint/switch-exhaustiveness-check': [
500
496
  'error',
501
497
  {
502
- allowDefaultCaseForExhaustiveSwitch: true,
503
498
  considerDefaultExhaustiveForUnions: true,
499
+ allowDefaultCaseForExhaustiveSwitch: true,
504
500
  requireDefaultForNonUnion: false,
505
501
  },
506
502
  ],
@@ -517,8 +513,8 @@ export default tseslint.config(
517
513
  'decorator-position/decorator-position': [
518
514
  'error',
519
515
  {
520
- methods: 'above',
521
516
  printWidth: 120,
517
+ methods: 'above',
522
518
  properties: 'above',
523
519
  },
524
520
  ],
@@ -542,7 +538,6 @@ export default tseslint.config(
542
538
  'import/newline-after-import': ['error', {count: 1}],
543
539
  'import/no-absolute-path': 'error',
544
540
  'import/no-cycle': 'error',
545
- 'import/no-deprecated': 'error',
546
541
  'import/no-duplicates': 'error',
547
542
  'import/no-mutable-exports': 'error',
548
543
  'import/no-self-import': 'error',
@@ -573,6 +568,7 @@ export default tseslint.config(
573
568
  ],
574
569
  'max-depth': 'error',
575
570
  'max-nested-callbacks': ['error', 4],
571
+ 'max-params': ['error', 5],
576
572
  'no-bitwise': 'error',
577
573
  'no-case-declarations': 'error',
578
574
  'no-console': [
@@ -582,9 +578,10 @@ export default tseslint.config(
582
578
  },
583
579
  ],
584
580
  'no-constant-condition': 'error',
581
+ 'no-empty': ['error', {allowEmptyCatch: true}],
585
582
  'no-implicit-coercion': ['error', {allow: ['!!']}],
586
- 'no-irregular-whitespace': 'error',
587
583
  'no-loop-func': 'error',
584
+ 'no-nested-ternary': 'error',
588
585
  'no-restricted-imports': [
589
586
  'error',
590
587
  {
@@ -706,7 +703,6 @@ export default tseslint.config(
706
703
  },
707
704
  ],
708
705
  'no-var': 'error',
709
- 'no-void': ['error', {allowAsStatement: true}],
710
706
  'perfectionist/sort-array-includes': [
711
707
  'error',
712
708
  {
@@ -762,6 +758,7 @@ export default tseslint.config(
762
758
  'rxjs/no-connectable': 'error',
763
759
  'rxjs/no-cyclic-action': 'error',
764
760
  'rxjs/no-ignored-observable': 'error',
761
+ 'rxjs/no-nested-subscribe': 'error',
765
762
  'rxjs/no-topromise': 'error',
766
763
  'rxjs/no-unsafe-catch': 'error',
767
764
  'rxjs/no-unsafe-first': 'error',
@@ -769,7 +766,6 @@ export default tseslint.config(
769
766
  'rxjs/throw-error': 'error',
770
767
  'simple-import-sort/exports': 'error',
771
768
  'simple-import-sort/imports': 'error',
772
- 'sonarjs/no-identical-functions': 'error',
773
769
  'sonarjs/no-inverted-boolean-check': 'error',
774
770
  'spaced-comment': [
775
771
  'error',
@@ -813,9 +809,9 @@ export default tseslint.config(
813
809
  ...angular.configs.templateAccessibility,
814
810
  ],
815
811
  rules: {
816
- '@angular-eslint/template/no-negated-async': 'off',
817
- '@angular-eslint/template/label-has-associated-control': 'off',
818
812
  '@angular-eslint/template/interactive-supports-focus': 'off',
813
+ '@angular-eslint/template/label-has-associated-control': 'off',
814
+ '@angular-eslint/template/no-negated-async': 'off',
819
815
  '@typescript-eslint/ban-ts-comment': 'off',
820
816
  'import/namespace': 'off',
821
817
  },
@@ -825,9 +821,9 @@ export default tseslint.config(
825
821
  ...playwright.configs['flat/recommended'],
826
822
  rules: {
827
823
  ...playwright.configs['flat/recommended'].rules,
824
+ 'playwright/no-networkidle': 'off',
828
825
  'jest/prefer-importing-jest-globals': 'off',
829
826
  'playwright/no-force-option': 'error',
830
- 'playwright/no-networkidle': 'off',
831
827
  'playwright/no-skipped-test': 'error',
832
828
  'playwright/no-wait-for-selector': 'off',
833
829
  'playwright/no-wait-for-timeout': 'off',
@@ -860,6 +856,7 @@ export default tseslint.config(
860
856
  * If enabled we have
861
857
  * Expected to be running in 'ProxyZone', but it was not found
862
858
  */
859
+ 'jest/valid-title': 'error',
863
860
  'jest/prefer-importing-jest-globals': 'off',
864
861
  'jest/prefer-lowercase-title': [
865
862
  'error',
@@ -896,7 +893,6 @@ export default tseslint.config(
896
893
  },
897
894
  ],
898
895
  'jest/unbound-method': 'off',
899
- 'jest/valid-title': 'error',
900
896
  },
901
897
  },
902
898
  {
@@ -908,10 +904,18 @@ export default tseslint.config(
908
904
  'no-implicit-globals': 'error',
909
905
  },
910
906
  },
907
+ {
908
+ files: ['**/*.js'],
909
+ rules: {
910
+ '@typescript-eslint/explicit-function-return-type': 'off',
911
+ 'no-template-curly-in-string': 'off',
912
+ },
913
+ },
911
914
  {
912
915
  files: ['**/*'],
913
916
  rules: {
914
- 'no-constant-binary-expression': 'off',
917
+ '@angular-eslint/use-injectable-provided-in': 'off',
918
+ 'sonarjs/no-invalid-await': 'off',
915
919
  '@angular-eslint/component-class-suffix': 'off',
916
920
  '@angular-eslint/component-max-inline-declarations': 'off',
917
921
  '@angular-eslint/component-selector': 'off',
@@ -929,17 +933,16 @@ export default tseslint.config(
929
933
  '@angular-eslint/template/click-events-have-key-events': 'off',
930
934
  '@angular-eslint/use-component-selector': 'off',
931
935
  '@angular-eslint/use-component-view-encapsulation': 'off',
932
- '@angular-eslint/use-injectable-provided-in': 'off',
933
936
  '@typescript-eslint/adjacent-overload-signatures': 'off',
934
- '@typescript-eslint/class-literal-property-style': 'off',
935
- '@typescript-eslint/no-require-imports': 'off',
936
937
  '@typescript-eslint/ban-ts-comment': 'off',
938
+ '@typescript-eslint/class-literal-property-style': 'off',
937
939
  '@typescript-eslint/consistent-return': 'off',
938
940
  '@typescript-eslint/explicit-module-boundary-types': 'off',
939
941
  '@typescript-eslint/no-base-to-string': 'off',
940
942
  '@typescript-eslint/no-explicit-any': 'off',
941
943
  '@typescript-eslint/no-floating-promises': 'off',
942
944
  '@typescript-eslint/no-non-null-assertion': 'off',
945
+ '@typescript-eslint/no-require-imports': 'off',
943
946
  '@typescript-eslint/no-shadow': 'off',
944
947
  '@typescript-eslint/no-unnecessary-condition': 'off',
945
948
  '@typescript-eslint/no-unsafe-member-access': 'off',
@@ -962,9 +965,11 @@ export default tseslint.config(
962
965
  'func-names': 'off',
963
966
  'global-require': 'off',
964
967
  'grouped-accessor-pairs': 'off',
968
+ 'import/export': 'off',
965
969
  'import/exports-last': 'off',
966
970
  'import/extensions': 'off',
967
971
  'import/no-default-export': 'off',
972
+ 'import/no-deprecated': 'off',
968
973
  'import/no-dynamic-require': 'off',
969
974
  'import/no-extraneous-dependencies': 'off',
970
975
  'import/no-relative-packages': 'off',
@@ -972,15 +977,16 @@ export default tseslint.config(
972
977
  'import/prefer-default-export': 'off',
973
978
  'lines-between-class-members': 'off',
974
979
  'max-classes-per-file': 'off',
975
- 'max-params': 'off',
976
980
  'max-statements': 'off',
977
981
  'no-await-in-loop': 'off',
978
982
  'no-bitwise': 'off',
983
+ 'no-constant-binary-expression': 'off',
979
984
  'no-constructor-return': 'off',
980
985
  'no-continue': 'off',
981
986
  'no-dupe-class-members': 'off',
982
987
  'no-duplicate-imports': 'off',
983
988
  'no-empty-function': 'off',
989
+ 'no-irregular-whitespace': 'off',
984
990
  'no-param-reassign': 'off',
985
991
  'no-plusplus': 'off',
986
992
  'no-prototype-builtins': 'off',
@@ -1002,7 +1008,6 @@ export default tseslint.config(
1002
1008
  'react/no-is-mounted': 'off',
1003
1009
  'require-await': 'off',
1004
1010
  'rxjs/no-ignored-takewhile-value': 'off',
1005
- 'rxjs/no-nested-subscribe': 'off',
1006
1011
  'rxjs/no-unsafe-takeuntil': 'off',
1007
1012
  'sonarjs/aws-apigateway-public-api': 'off',
1008
1013
  'sonarjs/aws-ec2-rds-dms-public': 'off',
@@ -1035,7 +1040,6 @@ export default tseslint.config(
1035
1040
  'sonarjs/no-commented-code': 'off',
1036
1041
  'sonarjs/no-duplicate-string': 'off',
1037
1042
  'sonarjs/no-empty-function': 'off',
1038
- 'sonarjs/no-invalid-await': 'off',
1039
1043
  'sonarjs/no-misleading-array-reverse': 'off',
1040
1044
  'sonarjs/no-misused-promises': 'off',
1041
1045
  'sonarjs/no-nested-conditional': 'off',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taiga-ui/eslint-plugin-experience-next",
3
- "version": "0.250.0",
3
+ "version": "0.252.0",
4
4
  "description": "An ESLint plugin to enforce a consistent code styles across taiga-ui projects",
5
5
  "license": "Apache-2.0",
6
6
  "main": "eslint.config.ts",
@@ -9,24 +9,24 @@
9
9
  "@smarttools/eslint-plugin-rxjs": ">=1.0.18",
10
10
  "@stylistic/eslint-plugin": ">=3.1.0",
11
11
  "@stylistic/eslint-plugin-ts": ">=3.1.0",
12
- "@typescript-eslint/eslint-plugin": ">=8.23.0",
12
+ "@typescript-eslint/eslint-plugin": ">=8.24.0",
13
13
  "angular-eslint": ">=19.1.0",
14
- "eslint": ">=9.20.0",
14
+ "eslint": ">=9.20.1",
15
15
  "eslint-config-prettier": ">=10.0.1",
16
16
  "eslint-plugin-decorator-position": ">=6.0.0",
17
17
  "eslint-plugin-file-progress": ">=3.0.1",
18
18
  "eslint-plugin-import": ">=2.31.0",
19
19
  "eslint-plugin-jest": ">=28.11.0",
20
- "eslint-plugin-perfectionist": ">=4.8.0",
20
+ "eslint-plugin-perfectionist": ">=4.9.0",
21
21
  "eslint-plugin-playwright": ">=2.2.0",
22
22
  "eslint-plugin-prettier": ">=5.2.3",
23
23
  "eslint-plugin-promise": ">=7.2.1",
24
24
  "eslint-plugin-simple-import-sort": ">=12.1.1",
25
- "eslint-plugin-sonarjs": ">=3.0.1",
25
+ "eslint-plugin-sonarjs": ">=3.0.2",
26
26
  "eslint-plugin-unicorn": ">=56.0.1",
27
27
  "eslint-plugin-unused-imports": ">=4.1.4",
28
- "globals": ">=15.14.0",
29
- "typescript-eslint": ">=8.23.0"
28
+ "globals": ">=15.15.0",
29
+ "typescript-eslint": ">=8.24.0"
30
30
  },
31
31
  "publishConfig": {
32
32
  "access": "public"