@ntnyq/eslint-config 6.0.0 → 6.1.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/dist/index.d.mts +157 -14
- package/dist/index.mjs +67 -4
- package/package.json +28 -28
package/dist/index.d.mts
CHANGED
|
@@ -1157,6 +1157,11 @@ interface RuleOptions {
|
|
|
1157
1157
|
* @see https://html-eslint.org/docs/rules/require-closing-tags
|
|
1158
1158
|
*/
|
|
1159
1159
|
'@html-eslint/require-closing-tags'?: Linter.RuleEntry<HtmlEslintRequireClosingTags>;
|
|
1160
|
+
/**
|
|
1161
|
+
* Require that certain elements have meaningful content.
|
|
1162
|
+
* @see https://html-eslint.org/docs/rules/require-content
|
|
1163
|
+
*/
|
|
1164
|
+
'@html-eslint/require-content'?: Linter.RuleEntry<[]>;
|
|
1160
1165
|
/**
|
|
1161
1166
|
* Require `<details>` elements to have a `<summary>` as their first child element.
|
|
1162
1167
|
* @see https://html-eslint.org/docs/rules/require-details-summary
|
|
@@ -1232,6 +1237,11 @@ interface RuleOptions {
|
|
|
1232
1237
|
* @see https://html-eslint.org/docs/rules/sort-attrs
|
|
1233
1238
|
*/
|
|
1234
1239
|
'@html-eslint/sort-attrs'?: Linter.RuleEntry<HtmlEslintSortAttrs>;
|
|
1240
|
+
/**
|
|
1241
|
+
* Require `viewBox` attribute on `<svg>` elements
|
|
1242
|
+
* @see https://html-eslint.org/docs/rules/svg-require-viewbox
|
|
1243
|
+
*/
|
|
1244
|
+
'@html-eslint/svg-require-viewbox'?: Linter.RuleEntry<[]>;
|
|
1235
1245
|
/**
|
|
1236
1246
|
* Enforce the use of baseline features.
|
|
1237
1247
|
* @see https://html-eslint.org/docs/rules/use-baseline
|
|
@@ -2229,6 +2239,11 @@ interface RuleOptions {
|
|
|
2229
2239
|
* @see https://ota-meshi.github.io/eslint-plugin-astro/rules/no-exports-from-components/
|
|
2230
2240
|
*/
|
|
2231
2241
|
'astro/no-exports-from-components'?: Linter.RuleEntry<[]>;
|
|
2242
|
+
/**
|
|
2243
|
+
* disallow `prerender` export outside of pages/ directory
|
|
2244
|
+
* @see https://ota-meshi.github.io/eslint-plugin-astro/rules/no-prerender-export-outside-pages/
|
|
2245
|
+
*/
|
|
2246
|
+
'astro/no-prerender-export-outside-pages'?: Linter.RuleEntry<[]>;
|
|
2232
2247
|
/**
|
|
2233
2248
|
* disallow use of `set:html` to prevent XSS attack
|
|
2234
2249
|
* @see https://ota-meshi.github.io/eslint-plugin-astro/rules/no-set-html-directive/
|
|
@@ -4986,6 +5001,11 @@ interface RuleOptions {
|
|
|
4986
5001
|
* @see https://perfectionist.dev/rules/sort-array-includes
|
|
4987
5002
|
*/
|
|
4988
5003
|
'perfectionist/sort-array-includes'?: Linter.RuleEntry<PerfectionistSortArrayIncludes>;
|
|
5004
|
+
/**
|
|
5005
|
+
* Enforce sorted arrays.
|
|
5006
|
+
* @see https://perfectionist.dev/rules/sort-arrays
|
|
5007
|
+
*/
|
|
5008
|
+
'perfectionist/sort-arrays'?: Linter.RuleEntry<PerfectionistSortArrays>;
|
|
4989
5009
|
/**
|
|
4990
5010
|
* Enforce sorted classes.
|
|
4991
5011
|
* @see https://perfectionist.dev/rules/sort-classes
|
|
@@ -8029,7 +8049,7 @@ interface RuleOptions {
|
|
|
8029
8049
|
* disallow object, array, and function literals in template
|
|
8030
8050
|
* @see https://eslint.vuejs.org/rules/no-literals-in-template.html
|
|
8031
8051
|
*/
|
|
8032
|
-
'vue/no-literals-in-template'?: Linter.RuleEntry<
|
|
8052
|
+
'vue/no-literals-in-template'?: Linter.RuleEntry<VueNoLiteralsInTemplate>;
|
|
8033
8053
|
/**
|
|
8034
8054
|
* disallow unnecessary `<template>`
|
|
8035
8055
|
* @see https://eslint.vuejs.org/rules/no-lone-template.html
|
|
@@ -8422,6 +8442,11 @@ interface RuleOptions {
|
|
|
8422
8442
|
* @see https://eslint.vuejs.org/rules/prefer-separate-static-class.html
|
|
8423
8443
|
*/
|
|
8424
8444
|
'vue/prefer-separate-static-class'?: Linter.RuleEntry<[]>;
|
|
8445
|
+
/**
|
|
8446
|
+
* enforce passing a single argument to custom event emissions
|
|
8447
|
+
* @see https://eslint.vuejs.org/rules/prefer-single-event-payload.html
|
|
8448
|
+
*/
|
|
8449
|
+
'vue/prefer-single-event-payload'?: Linter.RuleEntry<[]>;
|
|
8425
8450
|
/**
|
|
8426
8451
|
* Require template literals instead of string concatenation in `<template>`
|
|
8427
8452
|
* @see https://eslint.vuejs.org/rules/prefer-template.html
|
|
@@ -8437,6 +8462,11 @@ interface RuleOptions {
|
|
|
8437
8462
|
* @see https://eslint.vuejs.org/rules/prefer-use-template-ref.html
|
|
8438
8463
|
*/
|
|
8439
8464
|
'vue/prefer-use-template-ref'?: Linter.RuleEntry<[]>;
|
|
8465
|
+
/**
|
|
8466
|
+
* enforce using `v-model` instead of `:prop`/`@update:prop` pair
|
|
8467
|
+
* @see https://eslint.vuejs.org/rules/prefer-v-model.html
|
|
8468
|
+
*/
|
|
8469
|
+
'vue/prefer-v-model'?: Linter.RuleEntry<[]>;
|
|
8440
8470
|
/**
|
|
8441
8471
|
* enforce specific casing for the Prop name in Vue components
|
|
8442
8472
|
* @see https://eslint.vuejs.org/rules/prop-name-casing.html
|
|
@@ -8953,6 +8983,8 @@ type EslintCommunityEslintCommentsRequireDescription = [] | [{
|
|
|
8953
8983
|
type HtmlEslintAttrsNewline = [] | [{
|
|
8954
8984
|
closeStyle?: ("newline" | "sameline");
|
|
8955
8985
|
ifAttrsMoreThan?: number;
|
|
8986
|
+
skip?: string[];
|
|
8987
|
+
inline?: string[];
|
|
8956
8988
|
}]; // ----- @html-eslint/element-newline -----
|
|
8957
8989
|
type HtmlEslintElementNewline = [] | [{
|
|
8958
8990
|
inline?: string[];
|
|
@@ -12459,7 +12491,7 @@ type OxfmtOxfmt = [] | [{
|
|
|
12459
12491
|
htmlWhitespaceSensitivity?: ("css" | "ignore" | "strict");
|
|
12460
12492
|
ignorePatterns?: string[];
|
|
12461
12493
|
insertFinalNewline?: boolean;
|
|
12462
|
-
jsdoc?: {
|
|
12494
|
+
jsdoc?: (boolean | {
|
|
12463
12495
|
addDefaultToDescription?: boolean;
|
|
12464
12496
|
bracketSpacing?: boolean;
|
|
12465
12497
|
capitalizeDescriptions?: boolean;
|
|
@@ -12471,7 +12503,7 @@ type OxfmtOxfmt = [] | [{
|
|
|
12471
12503
|
preferCodeFences?: boolean;
|
|
12472
12504
|
separateReturnsFromParam?: boolean;
|
|
12473
12505
|
separateTagGroups?: boolean;
|
|
12474
|
-
};
|
|
12506
|
+
});
|
|
12475
12507
|
jsxSingleQuote?: boolean;
|
|
12476
12508
|
objectWrap?: ("preserve" | "collapse" | "always");
|
|
12477
12509
|
printWidth?: number;
|
|
@@ -12480,7 +12512,7 @@ type OxfmtOxfmt = [] | [{
|
|
|
12480
12512
|
semi?: boolean;
|
|
12481
12513
|
singleAttributePerLine?: boolean;
|
|
12482
12514
|
singleQuote?: boolean;
|
|
12483
|
-
sortImports?: {
|
|
12515
|
+
sortImports?: (boolean | {
|
|
12484
12516
|
customGroups?: {
|
|
12485
12517
|
elementNamePattern?: string[];
|
|
12486
12518
|
groupName?: string;
|
|
@@ -12497,18 +12529,18 @@ type OxfmtOxfmt = [] | [{
|
|
|
12497
12529
|
partitionByComment?: boolean;
|
|
12498
12530
|
partitionByNewline?: boolean;
|
|
12499
12531
|
sortSideEffects?: boolean;
|
|
12500
|
-
};
|
|
12532
|
+
});
|
|
12501
12533
|
sortPackageJson?: (boolean | {
|
|
12502
12534
|
sortScripts?: boolean;
|
|
12503
12535
|
});
|
|
12504
|
-
sortTailwindcss?: {
|
|
12536
|
+
sortTailwindcss?: (boolean | {
|
|
12505
12537
|
attributes?: string[];
|
|
12506
12538
|
config?: string;
|
|
12507
12539
|
functions?: string[];
|
|
12508
12540
|
preserveDuplicates?: boolean;
|
|
12509
12541
|
preserveWhitespace?: boolean;
|
|
12510
12542
|
stylesheet?: string;
|
|
12511
|
-
};
|
|
12543
|
+
});
|
|
12512
12544
|
tabWidth?: number;
|
|
12513
12545
|
trailingComma?: ("all" | "es5" | "none");
|
|
12514
12546
|
useTabs?: boolean;
|
|
@@ -12527,7 +12559,7 @@ type OxfmtOxfmt = [] | [{
|
|
|
12527
12559
|
htmlWhitespaceSensitivity?: ("css" | "ignore" | "strict");
|
|
12528
12560
|
ignorePatterns?: string[];
|
|
12529
12561
|
insertFinalNewline?: boolean;
|
|
12530
|
-
jsdoc?: {
|
|
12562
|
+
jsdoc?: (boolean | {
|
|
12531
12563
|
addDefaultToDescription?: boolean;
|
|
12532
12564
|
bracketSpacing?: boolean;
|
|
12533
12565
|
capitalizeDescriptions?: boolean;
|
|
@@ -12539,7 +12571,7 @@ type OxfmtOxfmt = [] | [{
|
|
|
12539
12571
|
preferCodeFences?: boolean;
|
|
12540
12572
|
separateReturnsFromParam?: boolean;
|
|
12541
12573
|
separateTagGroups?: boolean;
|
|
12542
|
-
};
|
|
12574
|
+
});
|
|
12543
12575
|
jsxSingleQuote?: boolean;
|
|
12544
12576
|
objectWrap?: ("preserve" | "collapse" | "always");
|
|
12545
12577
|
printWidth?: number;
|
|
@@ -12548,7 +12580,7 @@ type OxfmtOxfmt = [] | [{
|
|
|
12548
12580
|
semi?: boolean;
|
|
12549
12581
|
singleAttributePerLine?: boolean;
|
|
12550
12582
|
singleQuote?: boolean;
|
|
12551
|
-
sortImports?: {
|
|
12583
|
+
sortImports?: (boolean | {
|
|
12552
12584
|
customGroups?: {
|
|
12553
12585
|
elementNamePattern?: string[];
|
|
12554
12586
|
groupName?: string;
|
|
@@ -12565,18 +12597,18 @@ type OxfmtOxfmt = [] | [{
|
|
|
12565
12597
|
partitionByComment?: boolean;
|
|
12566
12598
|
partitionByNewline?: boolean;
|
|
12567
12599
|
sortSideEffects?: boolean;
|
|
12568
|
-
};
|
|
12600
|
+
});
|
|
12569
12601
|
sortPackageJson?: (boolean | {
|
|
12570
12602
|
sortScripts?: boolean;
|
|
12571
12603
|
});
|
|
12572
|
-
sortTailwindcss?: {
|
|
12604
|
+
sortTailwindcss?: (boolean | {
|
|
12573
12605
|
attributes?: string[];
|
|
12574
12606
|
config?: string;
|
|
12575
12607
|
functions?: string[];
|
|
12576
12608
|
preserveDuplicates?: boolean;
|
|
12577
12609
|
preserveWhitespace?: boolean;
|
|
12578
12610
|
stylesheet?: string;
|
|
12579
|
-
};
|
|
12611
|
+
});
|
|
12580
12612
|
tabWidth?: number;
|
|
12581
12613
|
trailingComma?: ("all" | "es5" | "none");
|
|
12582
12614
|
useTabs?: boolean;
|
|
@@ -12707,6 +12739,112 @@ type PerfectionistSortArrayIncludes = {
|
|
|
12707
12739
|
} | string)));
|
|
12708
12740
|
});
|
|
12709
12741
|
partitionByNewLine?: boolean;
|
|
12742
|
+
}[]; // ----- perfectionist/sort-arrays -----
|
|
12743
|
+
type PerfectionistSortArrays = {
|
|
12744
|
+
fallbackSort?: {
|
|
12745
|
+
type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
|
|
12746
|
+
order?: ("asc" | "desc");
|
|
12747
|
+
};
|
|
12748
|
+
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
|
|
12749
|
+
specialCharacters?: ("remove" | "trim" | "keep");
|
|
12750
|
+
ignoreCase?: boolean;
|
|
12751
|
+
alphabet?: string;
|
|
12752
|
+
locales?: (string | string[]);
|
|
12753
|
+
order?: ("asc" | "desc");
|
|
12754
|
+
customGroups?: ({
|
|
12755
|
+
fallbackSort?: {
|
|
12756
|
+
type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
|
|
12757
|
+
order?: ("asc" | "desc");
|
|
12758
|
+
};
|
|
12759
|
+
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
|
|
12760
|
+
groupName: string;
|
|
12761
|
+
newlinesInside?: ("ignore" | number);
|
|
12762
|
+
order?: ("asc" | "desc");
|
|
12763
|
+
anyOf: [{
|
|
12764
|
+
elementNamePattern?: (({
|
|
12765
|
+
pattern: string;
|
|
12766
|
+
flags?: string;
|
|
12767
|
+
} | string)[] | ({
|
|
12768
|
+
pattern: string;
|
|
12769
|
+
flags?: string;
|
|
12770
|
+
} | string));
|
|
12771
|
+
selector?: "literal";
|
|
12772
|
+
}, ...({
|
|
12773
|
+
elementNamePattern?: (({
|
|
12774
|
+
pattern: string;
|
|
12775
|
+
flags?: string;
|
|
12776
|
+
} | string)[] | ({
|
|
12777
|
+
pattern: string;
|
|
12778
|
+
flags?: string;
|
|
12779
|
+
} | string));
|
|
12780
|
+
selector?: "literal";
|
|
12781
|
+
})[]];
|
|
12782
|
+
} | {
|
|
12783
|
+
fallbackSort?: {
|
|
12784
|
+
type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
|
|
12785
|
+
order?: ("asc" | "desc");
|
|
12786
|
+
};
|
|
12787
|
+
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
|
|
12788
|
+
groupName: string;
|
|
12789
|
+
newlinesInside?: ("ignore" | number);
|
|
12790
|
+
order?: ("asc" | "desc");
|
|
12791
|
+
elementNamePattern?: (({
|
|
12792
|
+
pattern: string;
|
|
12793
|
+
flags?: string;
|
|
12794
|
+
} | string)[] | ({
|
|
12795
|
+
pattern: string;
|
|
12796
|
+
flags?: string;
|
|
12797
|
+
} | string));
|
|
12798
|
+
selector?: "literal";
|
|
12799
|
+
})[];
|
|
12800
|
+
newlinesInside?: (("ignore" | number) | "newlinesBetween");
|
|
12801
|
+
groups?: (string | [string, ...(string)[]] | {
|
|
12802
|
+
newlinesBetween: ("ignore" | number);
|
|
12803
|
+
} | {
|
|
12804
|
+
group: (string | [string, ...(string)[]]);
|
|
12805
|
+
fallbackSort?: {
|
|
12806
|
+
type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
|
|
12807
|
+
order?: ("asc" | "desc");
|
|
12808
|
+
};
|
|
12809
|
+
commentAbove?: string;
|
|
12810
|
+
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
|
|
12811
|
+
newlinesInside?: ("ignore" | number);
|
|
12812
|
+
order?: ("asc" | "desc");
|
|
12813
|
+
})[];
|
|
12814
|
+
newlinesBetween?: ("ignore" | number);
|
|
12815
|
+
useConfigurationIf: {
|
|
12816
|
+
allNamesMatchPattern?: (({
|
|
12817
|
+
pattern: string;
|
|
12818
|
+
flags?: string;
|
|
12819
|
+
} | string)[] | ({
|
|
12820
|
+
pattern: string;
|
|
12821
|
+
flags?: string;
|
|
12822
|
+
} | string));
|
|
12823
|
+
matchesAstSelector?: string;
|
|
12824
|
+
};
|
|
12825
|
+
partitionByComment?: (boolean | (({
|
|
12826
|
+
pattern: string;
|
|
12827
|
+
flags?: string;
|
|
12828
|
+
} | string)[] | ({
|
|
12829
|
+
pattern: string;
|
|
12830
|
+
flags?: string;
|
|
12831
|
+
} | string)) | {
|
|
12832
|
+
block?: (boolean | (({
|
|
12833
|
+
pattern: string;
|
|
12834
|
+
flags?: string;
|
|
12835
|
+
} | string)[] | ({
|
|
12836
|
+
pattern: string;
|
|
12837
|
+
flags?: string;
|
|
12838
|
+
} | string)));
|
|
12839
|
+
line?: (boolean | (({
|
|
12840
|
+
pattern: string;
|
|
12841
|
+
flags?: string;
|
|
12842
|
+
} | string)[] | ({
|
|
12843
|
+
pattern: string;
|
|
12844
|
+
flags?: string;
|
|
12845
|
+
} | string)));
|
|
12846
|
+
});
|
|
12847
|
+
partitionByNewLine?: boolean;
|
|
12710
12848
|
}[]; // ----- perfectionist/sort-classes -----
|
|
12711
12849
|
type PerfectionistSortClasses = {
|
|
12712
12850
|
fallbackSort?: {
|
|
@@ -12836,6 +12974,7 @@ type PerfectionistSortClasses = {
|
|
|
12836
12974
|
matchesAstSelector?: string;
|
|
12837
12975
|
};
|
|
12838
12976
|
useExperimentalDependencyDetection?: boolean;
|
|
12977
|
+
newlinesBetweenOverloadSignatures?: ("ignore" | number);
|
|
12839
12978
|
ignoreCallbackDependenciesPatterns?: (({
|
|
12840
12979
|
pattern: string;
|
|
12841
12980
|
flags?: string;
|
|
@@ -14199,6 +14338,7 @@ type PerfectionistSortModules = [] | [{
|
|
|
14199
14338
|
})[];
|
|
14200
14339
|
newlinesBetween?: ("ignore" | number);
|
|
14201
14340
|
useExperimentalDependencyDetection?: boolean;
|
|
14341
|
+
newlinesBetweenOverloadSignatures?: ("ignore" | number);
|
|
14202
14342
|
partitionByComment?: (boolean | (({
|
|
14203
14343
|
pattern: string;
|
|
14204
14344
|
flags?: string;
|
|
@@ -17166,6 +17306,9 @@ type VueNoIrregularWhitespace = [] | [{
|
|
|
17166
17306
|
skipRegExps?: boolean;
|
|
17167
17307
|
skipHTMLAttributeValues?: boolean;
|
|
17168
17308
|
skipHTMLTextContents?: boolean;
|
|
17309
|
+
}]; // ----- vue/no-literals-in-template -----
|
|
17310
|
+
type VueNoLiteralsInTemplate = [] | [{
|
|
17311
|
+
ignores?: string[];
|
|
17169
17312
|
}]; // ----- vue/no-lone-template -----
|
|
17170
17313
|
type VueNoLoneTemplate = [] | [{
|
|
17171
17314
|
ignoreAccessible?: boolean;
|
|
@@ -17320,7 +17463,7 @@ type VueNoUnusedComponents = [] | [{
|
|
|
17320
17463
|
ignoreWhenBindingPresent?: boolean;
|
|
17321
17464
|
}]; // ----- vue/no-unused-properties -----
|
|
17322
17465
|
type VueNoUnusedProperties = [] | [{
|
|
17323
|
-
groups?: ("props" | "data" | "asyncData" | "computed" | "methods" | "setup")[];
|
|
17466
|
+
groups?: ("props" | "data" | "asyncData" | "computed" | "methods" | "setup" | "inject")[];
|
|
17324
17467
|
deepData?: boolean;
|
|
17325
17468
|
ignorePublicMembers?: boolean;
|
|
17326
17469
|
unreferencedOptions?: ("unknownMemberAsUnreferenced" | "returnAsUnreferenced")[];
|
package/dist/index.mjs
CHANGED
|
@@ -155,7 +155,11 @@ const GLOB_EXCLUDE = [
|
|
|
155
155
|
"**/.yarnrc",
|
|
156
156
|
"**/.husky",
|
|
157
157
|
"**/src-tauri/gen",
|
|
158
|
-
"**/src-tauri/target"
|
|
158
|
+
"**/src-tauri/target",
|
|
159
|
+
"**/*.context",
|
|
160
|
+
"**/*.claude",
|
|
161
|
+
"**/*.agents",
|
|
162
|
+
"**/.*/skills"
|
|
159
163
|
];
|
|
160
164
|
//#endregion
|
|
161
165
|
//#region src/configs/vue.ts
|
|
@@ -571,7 +575,7 @@ const configYml = (options = {}) => {
|
|
|
571
575
|
//#region src/utils/env.ts
|
|
572
576
|
const hasPinia = () => isPackageExists("pinia");
|
|
573
577
|
const hasVitest = () => isPackageExists("vitest");
|
|
574
|
-
const hasTypeScript = () => isPackageExists("typescript");
|
|
578
|
+
const hasTypeScript = () => isPackageExists("typescript") || isPackageExists("@typescript/native-preview");
|
|
575
579
|
const hasShadcnVue = () => (isPackageExists("radix-vue") || isPackageExists("reka-ui")) && isPackageExists("class-variance-authority") && isPackageExists("clsx");
|
|
576
580
|
const hasUnoCSS = () => isPackageExists("unocss") || isPackageExists("@unocss/postcss") || isPackageExists("@unocss/webpack") || isPackageExists("@unocss/nuxt");
|
|
577
581
|
const hasVue = () => isPackageExists("vue") || isPackageExists("nuxt") || isPackageExists("vitepress") || isPackageExists("vuepress") || isPackageExists("@slidev/cli") || isPackageExists("vue", { paths: [resolve(process.cwd(), "playground"), resolve(process.cwd(), "docs")] });
|
|
@@ -1344,10 +1348,16 @@ const configJsdoc = (options = {}) => [{
|
|
|
1344
1348
|
name: "ntnyq/jsdoc",
|
|
1345
1349
|
plugins: { jsdoc: pluginJsdoc },
|
|
1346
1350
|
rules: {
|
|
1351
|
+
/**
|
|
1352
|
+
* @pg Disabled rules
|
|
1353
|
+
*/
|
|
1347
1354
|
"jsdoc/prefer-import-tag": "off",
|
|
1348
1355
|
"jsdoc/require-tags": "off",
|
|
1349
1356
|
"jsdoc/tag-lines": "off",
|
|
1350
1357
|
"jsdoc/text-escaping": "off",
|
|
1358
|
+
/**
|
|
1359
|
+
* @pg Warning only rules
|
|
1360
|
+
*/
|
|
1351
1361
|
"jsdoc/check-access": "warn",
|
|
1352
1362
|
"jsdoc/implements-on-classes": "warn",
|
|
1353
1363
|
"jsdoc/require-param-name": "warn",
|
|
@@ -1358,6 +1368,9 @@ const configJsdoc = (options = {}) => [{
|
|
|
1358
1368
|
"jsdoc/require-returns-description": "warn",
|
|
1359
1369
|
"jsdoc/require-template-description": "warn",
|
|
1360
1370
|
"jsdoc/require-yields-check": "warn",
|
|
1371
|
+
/**
|
|
1372
|
+
* @pg Maybe next release
|
|
1373
|
+
*/
|
|
1361
1374
|
"jsdoc/require-next-description": "warn",
|
|
1362
1375
|
"jsdoc/require-next-type": "warn",
|
|
1363
1376
|
"jsdoc/require-throws-description": "warn",
|
|
@@ -1367,6 +1380,9 @@ const configJsdoc = (options = {}) => [{
|
|
|
1367
1380
|
"jsdoc/ts-method-signature-style": "warn",
|
|
1368
1381
|
"jsdoc/ts-no-empty-object-type": "warn",
|
|
1369
1382
|
"jsdoc/ts-no-unnecessary-template-expression": "warn",
|
|
1383
|
+
/**
|
|
1384
|
+
* @pg Enabled rules
|
|
1385
|
+
*/
|
|
1370
1386
|
"jsdoc/check-alignment": "error",
|
|
1371
1387
|
"jsdoc/check-line-alignment": "error",
|
|
1372
1388
|
"jsdoc/check-param-names": "error",
|
|
@@ -1383,6 +1399,9 @@ const configJsdoc = (options = {}) => [{
|
|
|
1383
1399
|
"internal"
|
|
1384
1400
|
] }],
|
|
1385
1401
|
"jsdoc/check-types": "error",
|
|
1402
|
+
/**
|
|
1403
|
+
* @pg Fixable rules
|
|
1404
|
+
*/
|
|
1386
1405
|
"jsdoc/empty-tags": "error",
|
|
1387
1406
|
"jsdoc/multiline-blocks": "error",
|
|
1388
1407
|
"jsdoc/no-bad-blocks": ["error", { ignore: [
|
|
@@ -1919,6 +1938,9 @@ const configUnicorn = (options = {}) => {
|
|
|
1919
1938
|
plugins: { unicorn: pluginUnicorn },
|
|
1920
1939
|
rules: {
|
|
1921
1940
|
"unicorn/explicit-length-check": "off",
|
|
1941
|
+
/**
|
|
1942
|
+
* @see https://caniuse.com/?search=globalThis
|
|
1943
|
+
*/
|
|
1922
1944
|
"unicorn/prefer-global-this": "off",
|
|
1923
1945
|
"unicorn/prefer-top-level-await": "off",
|
|
1924
1946
|
"unicorn/consistent-assert": "error",
|
|
@@ -1955,6 +1977,9 @@ const configUnicorn = (options = {}) => {
|
|
|
1955
1977
|
"unicorn/prefer-structured-clone": "error",
|
|
1956
1978
|
"unicorn/switch-case-braces": ["error", "avoid"],
|
|
1957
1979
|
"unicorn/switch-case-break-position": "error",
|
|
1980
|
+
/**
|
|
1981
|
+
* @pg Error
|
|
1982
|
+
*/
|
|
1958
1983
|
"unicorn/catch-error-name": ["error", {
|
|
1959
1984
|
name: "err",
|
|
1960
1985
|
ignore: ["^_."]
|
|
@@ -1963,19 +1988,40 @@ const configUnicorn = (options = {}) => {
|
|
|
1963
1988
|
"unicorn/no-useless-error-capture-stack-trace": "error",
|
|
1964
1989
|
"unicorn/prefer-type-error": "error",
|
|
1965
1990
|
"unicorn/throw-new-error": "error",
|
|
1991
|
+
/**
|
|
1992
|
+
* @pg Number
|
|
1993
|
+
*/
|
|
1966
1994
|
"unicorn/no-zero-fractions": "error",
|
|
1967
1995
|
"unicorn/number-literal-case": ["error", { hexadecimalValue: "lowercase" }],
|
|
1968
1996
|
"unicorn/prefer-number-properties": "error",
|
|
1997
|
+
/**
|
|
1998
|
+
* @pg BigInt
|
|
1999
|
+
*/
|
|
1969
2000
|
"unicorn/prefer-bigint-literals": "error",
|
|
2001
|
+
/**
|
|
2002
|
+
* @pg RegExp
|
|
2003
|
+
*/
|
|
2004
|
+
/**
|
|
2005
|
+
* Prefer `eslint-plugin-regexp` instead
|
|
2006
|
+
*/
|
|
1970
2007
|
"unicorn/better-regex": "off",
|
|
1971
2008
|
"unicorn/prefer-regexp-test": "error",
|
|
2009
|
+
/**
|
|
2010
|
+
* @pg Date
|
|
2011
|
+
*/
|
|
1972
2012
|
"unicorn/consistent-date-clone": "error",
|
|
1973
2013
|
"unicorn/prefer-date-now": "error",
|
|
2014
|
+
/**
|
|
2015
|
+
* @pg String
|
|
2016
|
+
*/
|
|
1974
2017
|
"unicorn/consistent-template-literal-escape": "error",
|
|
1975
2018
|
"unicorn/prefer-code-point": "error",
|
|
1976
2019
|
"unicorn/prefer-string-slice": "error",
|
|
1977
2020
|
"unicorn/prefer-string-starts-ends-with": "error",
|
|
1978
2021
|
"unicorn/prefer-string-trim-start-end": "error",
|
|
2022
|
+
/**
|
|
2023
|
+
* @pg DOM
|
|
2024
|
+
*/
|
|
1979
2025
|
"unicorn/no-invalid-remove-event-listener": "error",
|
|
1980
2026
|
"unicorn/prefer-add-event-listener": "error",
|
|
1981
2027
|
"unicorn/prefer-classlist-toggle": "error",
|
|
@@ -1985,7 +2031,15 @@ const configUnicorn = (options = {}) => {
|
|
|
1985
2031
|
"unicorn/prefer-dom-node-text-content": "error",
|
|
1986
2032
|
"unicorn/prefer-modern-dom-apis": "error",
|
|
1987
2033
|
"unicorn/prefer-query-selector": "error",
|
|
2034
|
+
/**
|
|
2035
|
+
* @pg Array
|
|
2036
|
+
*/
|
|
1988
2037
|
"unicorn/no-array-callback-reference": "off",
|
|
2038
|
+
/**
|
|
2039
|
+
* TODO: chrome 110, baseline 2023 required
|
|
2040
|
+
*
|
|
2041
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/toReversed#browser_compatibility
|
|
2042
|
+
*/
|
|
1989
2043
|
"unicorn/no-array-reverse": "off",
|
|
1990
2044
|
"unicorn/no-array-sort": "off",
|
|
1991
2045
|
"unicorn/no-array-method-this-argument": "error",
|
|
@@ -1999,8 +2053,14 @@ const configUnicorn = (options = {}) => {
|
|
|
1999
2053
|
"unicorn/prefer-array-some": "error",
|
|
2000
2054
|
"unicorn/prefer-single-call": "error",
|
|
2001
2055
|
"unicorn/require-array-join-separator": "error",
|
|
2056
|
+
/**
|
|
2057
|
+
* @pg Set
|
|
2058
|
+
*/
|
|
2002
2059
|
"unicorn/prefer-set-has": "error",
|
|
2003
2060
|
"unicorn/prefer-set-size": "error",
|
|
2061
|
+
/**
|
|
2062
|
+
* @pg Module
|
|
2063
|
+
*/
|
|
2004
2064
|
"unicorn/require-module-specifiers": "off",
|
|
2005
2065
|
"unicorn/require-module-attributes": "error",
|
|
2006
2066
|
...options.overrides
|
|
@@ -2149,6 +2209,10 @@ const configPrettier = (options = {}) => {
|
|
|
2149
2209
|
"vue/space-infix-ops": "off",
|
|
2150
2210
|
"vue/space-unary-ops": "off",
|
|
2151
2211
|
"vue/template-curly-spacing": "off",
|
|
2212
|
+
/**
|
|
2213
|
+
* @pg
|
|
2214
|
+
* @see {@link https://github.com/prettier/eslint-plugin-prettier/blob/cd48a275f130e515f23cebdf7c6cb588b041cd64/eslint-plugin-prettier.js#L101-L103}
|
|
2215
|
+
*/
|
|
2152
2216
|
"arrow-body-style": "off",
|
|
2153
2217
|
"prefer-arrow-callback": "off",
|
|
2154
2218
|
"prettier/prettier": options.severity || "warn",
|
|
@@ -3004,10 +3068,9 @@ const configPerfectionist = (options = {}) => {
|
|
|
3004
3068
|
*/
|
|
3005
3069
|
const configUnusedImports = async (options = {}) => {
|
|
3006
3070
|
await ensurePackages(["eslint-plugin-unused-imports"]);
|
|
3007
|
-
const pluginUnusedImports = await interopDefault(import("eslint-plugin-unused-imports"));
|
|
3008
3071
|
return [{
|
|
3009
3072
|
name: "ntnyq/unused-imports",
|
|
3010
|
-
plugins: { "unused-imports":
|
|
3073
|
+
plugins: { "unused-imports": await interopDefault(import("eslint-plugin-unused-imports")) },
|
|
3011
3074
|
rules: {
|
|
3012
3075
|
"@typescript-eslint/no-unused-vars": "off",
|
|
3013
3076
|
"unused-imports/no-unused-imports": "error",
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ntnyq/eslint-config",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "6.
|
|
4
|
+
"version": "6.1.0",
|
|
5
5
|
"description": "An opinionated ESLint config preset of ntnyq",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"eslint",
|
|
@@ -36,16 +36,16 @@
|
|
|
36
36
|
"tag": "latest"
|
|
37
37
|
},
|
|
38
38
|
"peerDependencies": {
|
|
39
|
-
"@html-eslint/eslint-plugin": "^0.
|
|
40
|
-
"@html-eslint/parser": "^0.
|
|
39
|
+
"@html-eslint/eslint-plugin": "^0.59.0",
|
|
40
|
+
"@html-eslint/parser": "^0.59.0",
|
|
41
41
|
"astro-eslint-parser": "^1.4.0",
|
|
42
42
|
"eslint": "^9.38.0 || ^10.0.0",
|
|
43
43
|
"eslint-plugin-astro": "^1.6.0",
|
|
44
44
|
"eslint-plugin-eslint-plugin": "^7.3.2",
|
|
45
45
|
"eslint-plugin-pnpm": "^1.6.0",
|
|
46
|
-
"eslint-plugin-svelte": "^3.
|
|
46
|
+
"eslint-plugin-svelte": "^3.17.0",
|
|
47
47
|
"eslint-plugin-unused-imports": "^4.4.1",
|
|
48
|
-
"svelte": "^5.55.
|
|
48
|
+
"svelte": "^5.55.1",
|
|
49
49
|
"svelte-eslint-parser": "^1.6.0"
|
|
50
50
|
},
|
|
51
51
|
"peerDependenciesMeta": {
|
|
@@ -82,14 +82,14 @@
|
|
|
82
82
|
},
|
|
83
83
|
"dependencies": {
|
|
84
84
|
"@antfu/install-pkg": "^1.1.0",
|
|
85
|
-
"@clack/prompts": "^1.
|
|
85
|
+
"@clack/prompts": "^1.2.0",
|
|
86
86
|
"@eslint-community/eslint-plugin-eslint-comments": "^4.7.1",
|
|
87
87
|
"@eslint/js": "^10.0.1",
|
|
88
88
|
"@eslint/markdown": "^8.0.1",
|
|
89
|
-
"@unocss/eslint-plugin": "^66.6.
|
|
90
|
-
"@vitest/eslint-plugin": "^1.6.
|
|
89
|
+
"@unocss/eslint-plugin": "^66.6.8",
|
|
90
|
+
"@vitest/eslint-plugin": "^1.6.16",
|
|
91
91
|
"eslint-config-flat-gitignore": "^2.3.0",
|
|
92
|
-
"eslint-flat-config-utils": "
|
|
92
|
+
"eslint-flat-config-utils": "3.0.2",
|
|
93
93
|
"eslint-import-resolver-typescript": "^4.4.4",
|
|
94
94
|
"eslint-merge-processors": "^2.0.0",
|
|
95
95
|
"eslint-parser-plain": "^0.1.1",
|
|
@@ -99,51 +99,51 @@
|
|
|
99
99
|
"eslint-plugin-depend": "^1.5.0",
|
|
100
100
|
"eslint-plugin-github-action": "^0.2.0",
|
|
101
101
|
"eslint-plugin-import-x": "^4.16.2",
|
|
102
|
-
"eslint-plugin-jsdoc": "^62.
|
|
102
|
+
"eslint-plugin-jsdoc": "^62.9.0",
|
|
103
103
|
"eslint-plugin-jsonc": "^3.1.2",
|
|
104
104
|
"eslint-plugin-n": "^17.24.0",
|
|
105
105
|
"eslint-plugin-no-only-tests": "^3.3.0",
|
|
106
|
-
"eslint-plugin-ntnyq": "^0.
|
|
107
|
-
"eslint-plugin-oxfmt": "^0.
|
|
108
|
-
"eslint-plugin-perfectionist": "^5.
|
|
106
|
+
"eslint-plugin-ntnyq": "^0.14.0",
|
|
107
|
+
"eslint-plugin-oxfmt": "^0.4.0",
|
|
108
|
+
"eslint-plugin-perfectionist": "^5.9.0",
|
|
109
109
|
"eslint-plugin-pinia": "^0.4.2",
|
|
110
110
|
"eslint-plugin-prettier": "^5.5.5",
|
|
111
111
|
"eslint-plugin-regexp": "^3.1.0",
|
|
112
112
|
"eslint-plugin-svgo": "^0.12.0",
|
|
113
113
|
"eslint-plugin-toml": "^1.3.1",
|
|
114
114
|
"eslint-plugin-unicorn": "^64.0.0",
|
|
115
|
-
"eslint-plugin-vue": "^10.
|
|
115
|
+
"eslint-plugin-vue": "^10.9.0",
|
|
116
116
|
"eslint-plugin-yml": "^3.3.1",
|
|
117
117
|
"eslint-processor-vue-blocks": "^2.0.0",
|
|
118
|
-
"globals": "^17.
|
|
118
|
+
"globals": "^17.5.0",
|
|
119
119
|
"jsonc-eslint-parser": "^3.1.0",
|
|
120
120
|
"local-pkg": "^1.1.2",
|
|
121
121
|
"toml-eslint-parser": "^1.0.3",
|
|
122
|
-
"typescript-eslint": "^8.
|
|
122
|
+
"typescript-eslint": "^8.59.0",
|
|
123
123
|
"vue-eslint-parser": "^10.4.0",
|
|
124
124
|
"yaml-eslint-parser": "^2.0.0"
|
|
125
125
|
},
|
|
126
126
|
"devDependencies": {
|
|
127
|
-
"@types/node": "^25.
|
|
128
|
-
"@typescript-eslint/types": "^8.
|
|
129
|
-
"@typescript-eslint/utils": "^8.
|
|
130
|
-
"@typescript/native-preview": "^7.0.0-dev.
|
|
127
|
+
"@types/node": "^25.6.0",
|
|
128
|
+
"@typescript-eslint/types": "^8.59.0",
|
|
129
|
+
"@typescript-eslint/utils": "^8.59.0",
|
|
130
|
+
"@typescript/native-preview": "^7.0.0-dev.20260422.1",
|
|
131
131
|
"bumpp": "^11.0.1",
|
|
132
132
|
"consola": "^3.4.2",
|
|
133
|
-
"eslint": "^10.1
|
|
133
|
+
"eslint": "^10.2.1",
|
|
134
134
|
"eslint-typegen": "^2.3.1",
|
|
135
135
|
"husky": "^9.1.7",
|
|
136
136
|
"jiti": "^2.6.1",
|
|
137
|
-
"nano-staged": "^0.
|
|
137
|
+
"nano-staged": "^1.0.2",
|
|
138
138
|
"npm-run-all2": "^8.0.4",
|
|
139
|
-
"oxfmt": "^0.
|
|
140
|
-
"prettier": "^3.8.
|
|
141
|
-
"tinyglobby": "^0.2.
|
|
142
|
-
"tsdown": "^0.21.
|
|
139
|
+
"oxfmt": "^0.46.0",
|
|
140
|
+
"prettier": "^3.8.3",
|
|
141
|
+
"tinyglobby": "^0.2.16",
|
|
142
|
+
"tsdown": "^0.21.10",
|
|
143
143
|
"tsx": "^4.21.0",
|
|
144
|
-
"typescript": "^6.0.
|
|
144
|
+
"typescript": "^6.0.3",
|
|
145
145
|
"uncase": "^0.2.0",
|
|
146
|
-
"vitest": "^4.1.
|
|
146
|
+
"vitest": "^4.1.5"
|
|
147
147
|
},
|
|
148
148
|
"engines": {
|
|
149
149
|
"node": "^20.19.0 || ^22.13.0 || >=24"
|