@ntnyq/eslint-config 5.2.0 → 5.3.1

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 = [] | [{
@@ -14139,7 +14143,6 @@ type PrettierPrettier = [] | [{
14139
14143
  fileInfoOptions?: {
14140
14144
  [k: string]: unknown | undefined;
14141
14145
  };
14142
- [k: string]: unknown | undefined;
14143
14146
  }];
14144
14147
  // ----- quote-props -----
14145
14148
  type QuoteProps = ([] | [("always" | "as-needed" | "consistent" | "consistent-as-needed")] | [] | [("always" | "as-needed" | "consistent" | "consistent-as-needed")] | [("always" | "as-needed" | "consistent" | "consistent-as-needed"), {
@@ -15394,6 +15397,12 @@ type UnocssEnforceClassCompile = [] | [{
15394
15397
  prefix?: string;
15395
15398
  enableFix?: boolean;
15396
15399
  }];
15400
+ // ----- unocss/order -----
15401
+ type UnocssOrder = [] | [{
15402
+ unoFunctions?: string[];
15403
+ unoVariables?: string[];
15404
+ [k: string]: unknown | undefined;
15405
+ }];
15397
15406
  // ----- unused-imports/no-unused-imports -----
15398
15407
  type UnusedImportsNoUnusedImports = [] | [(("all" | "local") | {
15399
15408
  args?: ("all" | "after-used" | "none");
@@ -16244,6 +16253,7 @@ type VueNoDeprecatedRouterLinkTagProp = [] | [{
16244
16253
  // ----- vue/no-deprecated-slot-attribute -----
16245
16254
  type VueNoDeprecatedSlotAttribute = [] | [{
16246
16255
  ignore?: string[];
16256
+ ignoreParents?: string[];
16247
16257
  }];
16248
16258
  // ----- vue/no-dupe-keys -----
16249
16259
  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.1",
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.2",
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.4",
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
- "eslint-plugin-ntnyq": "^0.11.0",
110
+ "eslint-plugin-ntnyq": "^0.12.0",
111
111
  "eslint-plugin-perfectionist": "^4.15.0",
112
112
  "eslint-plugin-pinia": "^0.4.1",
113
- "eslint-plugin-prettier": "^5.5.3",
114
- "eslint-plugin-regexp": "^2.9.0",
113
+ "eslint-plugin-prettier": "^5.5.4",
114
+ "eslint-plugin-regexp": "^2.10.0",
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,27 @@
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
+ "tsx": "^4.20.3",
146
+ "typescript": "^5.9.2",
146
147
  "uncase": "^0.1.0",
147
148
  "vitest": "^3.2.4"
148
149
  },
@@ -154,18 +155,21 @@
154
155
  "*.{css,scss,html}": "prettier -uw"
155
156
  },
156
157
  "scripts": {
157
- "build": "tsdown",
158
- "dev": "tsdown --watch",
158
+ "build": "run-s types:generate lib:build",
159
+ "dev": "run-s types:generate lib:dev",
159
160
  "docs:build": "pnpm -C docs run build",
160
161
  "docs:dev": "pnpm -C docs run dev",
161
162
  "inspector:build": "run-s build inspector:generate",
162
163
  "inspector:generate": "pnpm dlx @eslint/config-inspector build --config eslint-inspector.config.ts",
164
+ "lib:build": "tsdown",
165
+ "lib:dev": "tsdown --watch",
163
166
  "lint": "eslint --cache",
164
167
  "release": "run-s release:check release:version release:publish",
165
168
  "release:check": "run-s build lint test typecheck",
166
169
  "release:publish": "pnpm publish",
167
170
  "release:version": "bumpp",
168
171
  "test": "vitest",
169
- "typecheck": "tsc --noEmit"
172
+ "typecheck": "tsc --noEmit",
173
+ "types:generate": "tsx scripts/generateType.ts"
170
174
  }
171
175
  }