@@ -53,6 +53,7 @@ const config = {
5353 } ,
5454 plugins : [
5555 '@typescript-eslint' ,
56+ 'import' ,
5657 'jsdoc' ,
5758 'node' ,
5859 'prettier' ,
@@ -171,7 +172,6 @@ const config = {
171172 }
172173 ] ,
173174 '@typescript-eslint/no-dupe-class-members' : 2 ,
174- '@typescript-eslint/no-duplicate-imports' : 2 ,
175175 '@typescript-eslint/no-dynamic-delete' : 2 ,
176176 '@typescript-eslint/no-empty-function' : [
177177 2 ,
@@ -352,7 +352,11 @@ const config = {
352352 2 ,
353353 {
354354 allowAny : false ,
355- checkCompoundAssignments : false
355+ allowBoolean : false ,
356+ allowNullish : false ,
357+ allowNumberAndString : true ,
358+ allowRegExp : false ,
359+ skipCompoundAssignments : true
356360 }
357361 ] ,
358362 '@typescript-eslint/restrict-template-expressions' : [
@@ -366,7 +370,7 @@ const config = {
366370 }
367371 ] ,
368372 '@typescript-eslint/return-await' : [ 2 , 'in-try-catch' ] ,
369- '@typescript-eslint/sort-type-union-intersection-members ' : 2 ,
373+ '@typescript-eslint/sort-type-constituents ' : 2 ,
370374 '@typescript-eslint/strict-boolean-expressions' : [
371375 2 ,
372376 {
@@ -394,6 +398,13 @@ const config = {
394398 '@typescript-eslint/unified-signatures' : 2 ,
395399 'default-param-last' : 0 ,
396400 eqeqeq : 1 ,
401+ 'import/no-duplicates' : [
402+ 2 ,
403+ {
404+ considerQueryString : true ,
405+ 'prefer-inline' : true
406+ }
407+ ] ,
397408 'init-declarations' : 0 ,
398409 'jsdoc/check-access' : 1 ,
399410 'jsdoc/check-alignment' : 1 ,
@@ -417,6 +428,7 @@ const config = {
417428 1 ,
418429 {
419430 definedTags : [
431+ 'decorator' ,
420432 'experimental' ,
421433 'maximum' ,
422434 'minimum' ,
@@ -434,7 +446,6 @@ const config = {
434446 'jsdoc/match-description' : 0 ,
435447 'jsdoc/match-name' : 0 ,
436448 'jsdoc/multiline-blocks' : 1 ,
437- 'jsdoc/newline-after-description' : [ 1 , 'always' ] ,
438449 'jsdoc/no-bad-blocks' : [ 1 , { preventAllMultiAsteriskBlocks : true } ] ,
439450 'jsdoc/no-defaults' : 0 ,
440451 'jsdoc/no-missing-syntax' : 0 ,
@@ -557,9 +568,10 @@ const config = {
557568 1 ,
558569 'any' ,
559570 {
571+ applyToEndTag : true ,
560572 count : 1 ,
561- dropEndLines : true ,
562- noEndLines : false ,
573+ endLines : 0 ,
574+ startLines : 1 ,
563575 tags : { }
564576 }
565577 ] ,
@@ -572,6 +584,7 @@ const config = {
572584 'no-empty-function' : 0 ,
573585 'no-ex-assign' : 0 ,
574586 'no-extra-parens' : 0 ,
587+ 'no-extra-semi' : 0 ,
575588 'no-implied-eval' : 0 ,
576589 'no-invalid-this' : 0 ,
577590 'no-loop-func' : 0 ,
@@ -661,7 +674,7 @@ const config = {
661674 terms : [ '@fixme' , '@todo' ]
662675 }
663676 ] ,
664- 'unicorn/explicit-length-check' : 2 ,
677+ 'unicorn/explicit-length-check' : 0 ,
665678 'unicorn/filename-case' : [
666679 2 ,
667680 {
@@ -774,15 +787,8 @@ const config = {
774787 allowArgumentsExplicitlyTypedAsAny : true ,
775788 allowDirectConstAssertionInArrowFunctions : true ,
776789 allowHigherOrderFunctions : false ,
777- allowTypedFunctionExpressions : true ,
778- allowedNames : [ ] ,
779- shouldTrackReferences : true
780- }
781- ] ,
782- '@typescript-eslint/no-implicit-any-catch' : [
783- 2 ,
784- {
785- allowExplicitAny : false
790+ allowTypedFunctionExpressions : false ,
791+ allowedNames : [ ]
786792 }
787793 ] ,
788794 'no-undef' : 0
@@ -835,6 +841,7 @@ const config = {
835841 } ,
836842 plugins : [ 'chai-expect' , 'jest-formatting' ] ,
837843 rules : {
844+ '@typescript-eslint/class-literal-property-style' : 0 ,
838845 '@typescript-eslint/consistent-indexed-object-style' : 0 ,
839846 '@typescript-eslint/no-base-to-string' : 0 ,
840847 '@typescript-eslint/no-empty-function' : 0 ,
@@ -858,7 +865,6 @@ const config = {
858865 'promise/valid-params' : 0 ,
859866 'unicorn/consistent-destructuring' : 0 ,
860867 'unicorn/error-message' : 0 ,
861- 'unicorn/explicit-length-check' : 0 ,
862868 'unicorn/no-array-for-each' : 0 ,
863869 'unicorn/no-hex-escape' : 0 ,
864870 'unicorn/no-useless-undefined' : 0 ,
@@ -878,6 +884,12 @@ const config = {
878884 '@typescript-eslint/no-redundant-type-constituents' : 0
879885 }
880886 } ,
887+ {
888+ files : [ '**/decorators/*.constraint.ts' , '**/*.decorator.ts' ] ,
889+ rules : {
890+ '@typescript-eslint/ban-types' : 0
891+ }
892+ } ,
881893 {
882894 files : [ '**/enums/*.ts' , '**/interfaces/*.ts' , '**/types/*.ts' ] ,
883895 rules : {
@@ -990,6 +1002,7 @@ const config = {
9901002 '@typescript-eslint/naming-convention' : 0 ,
9911003 '@typescript-eslint/no-base-to-string' : 0 ,
9921004 '@typescript-eslint/no-confusing-void-expression' : 0 ,
1005+ '@typescript-eslint/no-duplicate-type-constituents' : 0 ,
9931006 '@typescript-eslint/no-floating-promises' : 0 ,
9941007 '@typescript-eslint/no-for-in-array' : 0 ,
9951008 '@typescript-eslint/no-implied-eval' : 0 ,
@@ -1006,12 +1019,14 @@ const config = {
10061019 '@typescript-eslint/no-unsafe-argument' : 0 ,
10071020 '@typescript-eslint/no-unsafe-assignment' : 0 ,
10081021 '@typescript-eslint/no-unsafe-call' : 0 ,
1022+ '@typescript-eslint/no-unsafe-enum-comparison' : 0 ,
10091023 '@typescript-eslint/no-unsafe-member-access' : 0 ,
10101024 '@typescript-eslint/no-unsafe-return' : 0 ,
10111025 '@typescript-eslint/no-unused-expressions' : 0 ,
10121026 '@typescript-eslint/non-nullable-type-assertion-style' : 0 ,
10131027 '@typescript-eslint/prefer-includes' : 0 ,
10141028 '@typescript-eslint/prefer-nullish-coalescing' : 0 ,
1029+ '@typescript-eslint/prefer-optional-chain' : 0 ,
10151030 '@typescript-eslint/prefer-readonly' : 0 ,
10161031 '@typescript-eslint/prefer-readonly-parameter-types' : 0 ,
10171032 '@typescript-eslint/prefer-reduce-type-parameter' : 0 ,
@@ -1032,7 +1047,7 @@ const config = {
10321047 }
10331048 } ,
10341049 {
1035- files : '**/*.yml' ,
1050+ files : '**/*.+(yaml| yml) ' ,
10361051 parser : 'yaml-eslint-parser' ,
10371052 plugins : [ 'yml' ] ,
10381053 rules : {
@@ -1151,20 +1166,35 @@ const config = {
11511166 'prettier/prettier' : [ 2 , { } , { usePrettierrc : true } ]
11521167 } ,
11531168 settings : {
1169+ 'import/parsers' : {
1170+ '@typescript-eslint/parser' : [ '.cts' , '.mts' , '.ts' , '.tsx' ]
1171+ } ,
1172+ 'import/resolver' : {
1173+ node : true ,
1174+ typescript : true
1175+ } ,
11541176 jsdoc : {
11551177 augmentsExtendsReplacesDocs : true ,
11561178 ignoreInternal : false ,
11571179 ignorePrivate : false ,
11581180 implementsReplacesDocs : true ,
11591181 overrideReplacesDocs : true ,
11601182 preferredTypes : {
1161- '*' : false
1183+ '*' : false ,
1184+ '.<>' : false ,
1185+ 'Array<>' : { replacement : '[]' } ,
1186+ Object : { replacement : 'object' } ,
1187+ 'Object<>' : { replacement : 'Record<>' } ,
1188+ object : 'object'
11621189 } ,
11631190 structuredTags : {
11641191 const : {
11651192 name : 'namepath-defining' ,
11661193 required : [ 'name' ]
11671194 } ,
1195+ decorator : {
1196+ name : 'none'
1197+ } ,
11681198 enum : {
11691199 name : 'namepath-defining' ,
11701200 required : [ 'name' , 'type' ]
0 commit comments