@ntnyq/eslint-config 5.2.0 → 5.3.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.ts CHANGED
@@ -6774,7 +6774,7 @@ interface RuleOptions {
6774
6774
  * Order of UnoCSS utilities in class attribute
6775
6775
  * @see https://unocss.dev/integrations/eslint#rules
6776
6776
  */
6777
- 'unocss/order'?: Linter.RuleEntry<[]>;
6777
+ 'unocss/order'?: Linter.RuleEntry<UnocssOrder>;
6778
6778
  /**
6779
6779
  * Order of UnoCSS attributes
6780
6780
  * @see https://unocss.dev/integrations/eslint#rules
@@ -7696,6 +7696,16 @@ interface RuleOptions {
7696
7696
  * @see https://eslint.vuejs.org/rules/no-mutating-props.html
7697
7697
  */
7698
7698
  'vue/no-mutating-props'?: Linter.RuleEntry<VueNoMutatingProps>;
7699
+ /**
7700
+ * Disallow negated conditions in `<template>`
7701
+ * @see https://eslint.vuejs.org/rules/no-negated-condition.html
7702
+ */
7703
+ 'vue/no-negated-condition'?: Linter.RuleEntry<[]>;
7704
+ /**
7705
+ * disallow negated conditions in v-if/v-else
7706
+ * @see https://eslint.vuejs.org/rules/no-negated-v-if-condition.html
7707
+ */
7708
+ 'vue/no-negated-v-if-condition'?: Linter.RuleEntry<[]>;
7699
7709
  /**
7700
7710
  * disallow parsing errors in `<template>`
7701
7711
  * @see https://eslint.vuejs.org/rules/no-parsing-error.html
@@ -8574,13 +8584,11 @@ type EslintCommunityEslintCommentsRequireDescription = [] | [{
8574
8584
  type HtmlEslintAttrsNewline = [] | [{
8575
8585
  closeStyle?: ("newline" | "sameline");
8576
8586
  ifAttrsMoreThan?: number;
8577
- [k: string]: unknown | undefined;
8578
8587
  }];
8579
8588
  // ----- @html-eslint/element-newline -----
8580
8589
  type HtmlEslintElementNewline = [] | [{
8581
8590
  inline?: string[];
8582
8591
  skip?: string[];
8583
- [k: string]: unknown | undefined;
8584
8592
  }];
8585
8593
  // ----- @html-eslint/id-naming-convention -----
8586
8594
  type HtmlEslintIdNamingConvention = [] | [("camelCase" | "snake_case" | "PascalCase" | "kebab-case" | "regex")] | [("camelCase" | "snake_case" | "PascalCase" | "kebab-case" | "regex"), {
@@ -8593,7 +8601,6 @@ type HtmlEslintIndent = [] | [("tab" | number)] | [("tab" | number), {
8593
8601
  tagChildrenIndent?: {
8594
8602
  [k: string]: number;
8595
8603
  };
8596
- [k: string]: unknown | undefined;
8597
8604
  }];
8598
8605
  // ----- @html-eslint/max-element-depth -----
8599
8606
  type HtmlEslintMaxElementDepth = [] | [{
@@ -8605,7 +8612,6 @@ type HtmlEslintNoExtraSpacingAttrs = [] | [{
8605
8612
  disallowMissing?: boolean;
8606
8613
  disallowTabs?: boolean;
8607
8614
  enforceBeforeSelfClose?: boolean;
8608
- [k: string]: unknown | undefined;
8609
8615
  }];
8610
8616
  // ----- @html-eslint/no-extra-spacing-text -----
8611
8617
  type HtmlEslintNoExtraSpacingText = [] | [{
@@ -8620,17 +8626,17 @@ type HtmlEslintNoRestrictedAttrValues = {
8620
8626
  attrPatterns: string[];
8621
8627
  attrValuePatterns: string[];
8622
8628
  message?: string;
8623
- [k: string]: unknown | undefined;
8624
8629
  }[];
8625
8630
  // ----- @html-eslint/no-restricted-attrs -----
8626
8631
  type HtmlEslintNoRestrictedAttrs = {
8627
8632
  tagPatterns: string[];
8628
8633
  attrPatterns: string[];
8629
8634
  message?: string;
8630
- [k: string]: unknown | undefined;
8631
8635
  }[];
8632
8636
  // ----- @html-eslint/quotes -----
8633
- type HtmlEslintQuotes = [] | [("single" | "double")];
8637
+ type HtmlEslintQuotes = [] | [("single" | "double")] | [("single" | "double"), {
8638
+ enforceTemplatedAttrValue?: boolean;
8639
+ }];
8634
8640
  // ----- @html-eslint/require-attrs -----
8635
8641
  type HtmlEslintRequireAttrs = {
8636
8642
  tag: string;
@@ -8650,14 +8656,12 @@ type HtmlEslintRequireExplicitSize = [] | [{
8650
8656
  // ----- @html-eslint/require-img-alt -----
8651
8657
  type HtmlEslintRequireImgAlt = [] | [{
8652
8658
  substitute?: string[];
8653
- [k: string]: unknown | undefined;
8654
8659
  }];
8655
8660
  // ----- @html-eslint/require-open-graph-protocol -----
8656
8661
  type HtmlEslintRequireOpenGraphProtocol = [] | [string[]];
8657
8662
  // ----- @html-eslint/sort-attrs -----
8658
8663
  type HtmlEslintSortAttrs = [] | [{
8659
8664
  priority?: string[];
8660
- [k: string]: unknown | undefined;
8661
8665
  }];
8662
8666
  // ----- @html-eslint/use-baseline -----
8663
8667
  type HtmlEslintUseBaseline = [] | [{
@@ -15394,6 +15398,12 @@ type UnocssEnforceClassCompile = [] | [{
15394
15398
  prefix?: string;
15395
15399
  enableFix?: boolean;
15396
15400
  }];
15401
+ // ----- unocss/order -----
15402
+ type UnocssOrder = [] | [{
15403
+ unoFunctions?: string[];
15404
+ unoVariables?: string[];
15405
+ [k: string]: unknown | undefined;
15406
+ }];
15397
15407
  // ----- unused-imports/no-unused-imports -----
15398
15408
  type UnusedImportsNoUnusedImports = [] | [(("all" | "local") | {
15399
15409
  args?: ("all" | "after-used" | "none");
@@ -16244,6 +16254,7 @@ type VueNoDeprecatedRouterLinkTagProp = [] | [{
16244
16254
  // ----- vue/no-deprecated-slot-attribute -----
16245
16255
  type VueNoDeprecatedSlotAttribute = [] | [{
16246
16256
  ignore?: string[];
16257
+ ignoreParents?: string[];
16247
16258
  }];
16248
16259
  // ----- vue/no-dupe-keys -----
16249
16260
  type VueNoDupeKeys = [] | [{
package/dist/index.js CHANGED
@@ -203,6 +203,7 @@ const extensionRules = {
203
203
  "vue/no-empty-pattern": "error",
204
204
  "vue/no-extra-parens": ["error", "functions"],
205
205
  "vue/no-loss-of-precision": "error",
206
+ "vue/no-negated-condition": "error",
206
207
  "vue/no-restricted-syntax": [
207
208
  "error",
208
209
  "DebuggerStatement",
@@ -296,6 +297,7 @@ const unCategorizedRules = {
296
297
  "vue/no-empty-component-block": "error",
297
298
  "vue/no-irregular-whitespace": "error",
298
299
  "vue/no-multiple-objects-in-class": "error",
300
+ "vue/no-negated-v-if-condition": "error",
299
301
  "vue/no-ref-object-reactivity-loss": "error",
300
302
  "vue/no-required-prop-with-default": ["error", { autofix: true }],
301
303
  "vue/no-restricted-v-bind": ["error", "/^v-/"],
@@ -2510,6 +2512,7 @@ const configJavaScript = (options = {}) => [{
2510
2512
  "no-loss-of-precision": "error",
2511
2513
  "no-misleading-character-class": "error",
2512
2514
  "no-multi-str": "error",
2515
+ "no-negated-condition": "error",
2513
2516
  "no-new": "error",
2514
2517
  "no-new-func": "error",
2515
2518
  "no-new-native-nonconstructor": "error",
@@ -2817,10 +2820,10 @@ const configESLintPlugin = async (options = {}) => {
2817
2820
  await ensurePackages(["eslint-plugin-eslint-plugin"]);
2818
2821
  const pluginESLintPlugin = await interopDefault(import("eslint-plugin-eslint-plugin"));
2819
2822
  return [{
2820
- ...pluginESLintPlugin.configs["flat/all"],
2823
+ ...pluginESLintPlugin.configs.all,
2821
2824
  name: "ntnyq/eslint-plugin",
2822
2825
  rules: {
2823
- ...pluginESLintPlugin.configs["flat/all"].rules,
2826
+ ...pluginESLintPlugin.configs.all.rules,
2824
2827
  "eslint-plugin/require-meta-docs-url": "off",
2825
2828
  ...options.overrides
2826
2829
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ntnyq/eslint-config",
3
3
  "type": "module",
4
- "version": "5.2.0",
4
+ "version": "5.3.0",
5
5
  "description": "An opinionated ESLint config preset of ntnyq",
6
6
  "keywords": [
7
7
  "eslint",
@@ -36,18 +36,18 @@
36
36
  "tag": "latest"
37
37
  },
38
38
  "peerDependencies": {
39
- "@html-eslint/eslint-plugin": "^0.42.0",
40
- "@html-eslint/parser": "^0.42.0",
39
+ "@html-eslint/eslint-plugin": "^0.44.0",
40
+ "@html-eslint/parser": "^0.44.0",
41
41
  "astro-eslint-parser": "^1.2.2",
42
42
  "eslint": "^9.20.0",
43
43
  "eslint-plugin-astro": "^1.3.1",
44
- "eslint-plugin-eslint-plugin": "^6.5.0",
44
+ "eslint-plugin-eslint-plugin": "^7.0.0",
45
45
  "eslint-plugin-format": "^1.0.1",
46
- "eslint-plugin-pnpm": "^1.0.0",
47
- "eslint-plugin-svelte": "^3.10.1",
46
+ "eslint-plugin-pnpm": "^1.1.0",
47
+ "eslint-plugin-svelte": "^3.11.0",
48
48
  "eslint-plugin-unused-imports": "^4.1.4",
49
- "svelte": "^5.31.1",
50
- "svelte-eslint-parser": "^1.2.0"
49
+ "svelte": "^5.37.3",
50
+ "svelte-eslint-parser": "^1.3.1"
51
51
  },
52
52
  "peerDependenciesMeta": {
53
53
  "@html-eslint/eslint-plugin": {
@@ -90,32 +90,32 @@
90
90
  "@eslint-community/eslint-plugin-eslint-comments": "^4.5.0",
91
91
  "@eslint/js": "^9.32.0",
92
92
  "@eslint/markdown": "^7.1.0",
93
- "@unocss/eslint-plugin": "^66.3.3",
93
+ "@unocss/eslint-plugin": "^66.4.1",
94
94
  "@vitest/eslint-plugin": "^1.3.4",
95
95
  "eslint-config-flat-gitignore": "^2.1.0",
96
- "eslint-flat-config-utils": "^2.1.0",
96
+ "eslint-flat-config-utils": "^2.1.1",
97
97
  "eslint-import-resolver-typescript": "^4.4.4",
98
98
  "eslint-merge-processors": "^2.0.0",
99
99
  "eslint-parser-plain": "^0.1.1",
100
100
  "eslint-plugin-antfu": "^3.1.1",
101
101
  "eslint-plugin-command": "^3.3.1",
102
- "eslint-plugin-de-morgan": "^1.3.0",
102
+ "eslint-plugin-de-morgan": "^1.3.1",
103
103
  "eslint-plugin-depend": "^1.2.0",
104
104
  "eslint-plugin-github-action": "^0.0.16",
105
105
  "eslint-plugin-import-x": "^4.16.1",
106
- "eslint-plugin-jsdoc": "^51.4.1",
106
+ "eslint-plugin-jsdoc": "^52.0.2",
107
107
  "eslint-plugin-jsonc": "^2.20.1",
108
- "eslint-plugin-n": "^17.21.0",
108
+ "eslint-plugin-n": "^17.21.3",
109
109
  "eslint-plugin-no-only-tests": "^3.3.0",
110
110
  "eslint-plugin-ntnyq": "^0.11.0",
111
111
  "eslint-plugin-perfectionist": "^4.15.0",
112
112
  "eslint-plugin-pinia": "^0.4.1",
113
113
  "eslint-plugin-prettier": "^5.5.3",
114
- "eslint-plugin-regexp": "^2.9.0",
114
+ "eslint-plugin-regexp": "^2.9.1",
115
115
  "eslint-plugin-svgo": "^0.10.0",
116
116
  "eslint-plugin-toml": "^0.12.0",
117
117
  "eslint-plugin-unicorn": "^60.0.0",
118
- "eslint-plugin-vue": "^10.3.0",
118
+ "eslint-plugin-vue": "^10.4.0",
119
119
  "eslint-plugin-yml": "^1.18.0",
120
120
  "eslint-processor-vue-blocks": "^2.0.0",
121
121
  "globals": "^16.3.0",
@@ -123,26 +123,26 @@
123
123
  "local-pkg": "^1.1.1",
124
124
  "prettier": "^3.6.2",
125
125
  "toml-eslint-parser": "^0.10.0",
126
- "typescript-eslint": "^8.38.0",
126
+ "typescript-eslint": "^8.39.0",
127
127
  "vue-eslint-parser": "^10.2.0",
128
128
  "yaml-eslint-parser": "^1.3.0"
129
129
  },
130
130
  "devDependencies": {
131
131
  "@ntnyq/prettier-config": "^3.0.1",
132
- "@types/node": "^24.1.0",
133
- "@typescript-eslint/utils": "^8.38.0",
134
- "bumpp": "^10.2.0",
132
+ "@types/node": "^24.2.0",
133
+ "@typescript-eslint/utils": "^8.39.0",
134
+ "bumpp": "^10.2.2",
135
135
  "consola": "^3.4.2",
136
136
  "eslint": "^9.32.0",
137
- "eslint-plugin-eslint-plugin": "^6.5.0",
137
+ "eslint-plugin-eslint-plugin": "^7.0.0",
138
138
  "eslint-typegen": "^2.3.0",
139
139
  "husky": "^9.1.7",
140
140
  "jiti": "^2.5.1",
141
141
  "nano-staged": "^0.8.0",
142
142
  "npm-run-all2": "^8.0.4",
143
143
  "tinyglobby": "^0.2.14",
144
- "tsdown": "^0.13.0",
145
- "typescript": "^5.8.3",
144
+ "tsdown": "^0.13.3",
145
+ "typescript": "^5.9.2",
146
146
  "uncase": "^0.1.0",
147
147
  "vitest": "^3.2.4"
148
148
  },