@kitschpatrol/eslint-config 8.9.0 → 8.10.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kitschpatrol/eslint-config",
3
- "version": "8.9.0",
3
+ "version": "8.10.0",
4
4
  "description": "ESLint configuration for @kitschpatrol/shared-config.",
5
5
  "keywords": [
6
6
  "shared-config",
@@ -44,41 +44,41 @@
44
44
  "dependencies": {
45
45
  "@e18e/eslint-plugin": "^0.8.1",
46
46
  "@eslint-community/eslint-plugin-eslint-comments": "^4.8.1",
47
- "@eslint-react/eslint-plugin": "^5.19.1",
47
+ "@eslint-react/eslint-plugin": "^5.20.5",
48
48
  "@html-eslint/eslint-plugin": "^0.66.1",
49
49
  "@html-eslint/parser": "^0.66.1",
50
50
  "@pinojs/json-colorizer": "^4.0.0",
51
51
  "@stylistic/eslint-plugin": "^5.10.0",
52
- "@typescript-eslint/eslint-plugin": "^8.70.0",
53
- "@typescript-eslint/parser": "^8.70.0",
52
+ "@typescript-eslint/eslint-plugin": "^8.70.1",
53
+ "@typescript-eslint/parser": "^8.70.1",
54
54
  "@vitest/eslint-plugin": "^1.6.27",
55
55
  "astro-eslint-parser": "^3.1.0",
56
56
  "cosmiconfig": "^10.0.1",
57
57
  "cosmiconfig-typescript-loader": "^6.3.0",
58
58
  "decircular": "^1.0.0",
59
59
  "deepmerge": "^4.3.1",
60
- "eslint": "^10.10.0",
60
+ "eslint": "~10.10.0",
61
61
  "eslint-config-flat-gitignore": "^2.4.0",
62
62
  "eslint-flat-config-utils": "^3.2.0",
63
63
  "eslint-import-resolver-typescript": "^4.4.5",
64
64
  "eslint-plugin-astro": "^3.2.1",
65
- "eslint-plugin-de-morgan": "^2.1.3",
65
+ "eslint-plugin-de-morgan": "^2.2.0",
66
66
  "eslint-plugin-depend": "^1.5.0",
67
67
  "eslint-plugin-html": "^8.2.0",
68
68
  "eslint-plugin-import-x": "^4.17.1",
69
- "eslint-plugin-jsdoc": "^64.5.2",
69
+ "eslint-plugin-jsdoc": "^64.5.4",
70
70
  "eslint-plugin-jsonc": "^3.4.2",
71
71
  "eslint-plugin-jsx-a11y": "^6.10.2",
72
72
  "eslint-plugin-math": "^0.13.1",
73
73
  "eslint-plugin-mdx": "^3.8.1",
74
74
  "eslint-plugin-n": "^18.3.0",
75
75
  "eslint-plugin-no-only-tests": "^3.4.0",
76
- "eslint-plugin-package-json": "^1.8.1",
76
+ "eslint-plugin-package-json": "^1.9.0",
77
77
  "eslint-plugin-perfectionist": "^5.11.1",
78
- "eslint-plugin-regexp": "^3.3.0",
78
+ "eslint-plugin-regexp": "^3.3.1",
79
79
  "eslint-plugin-svelte": "^3.23.0",
80
80
  "eslint-plugin-toml": "^1.5.0",
81
- "eslint-plugin-unicorn": "^75.0.0",
81
+ "eslint-plugin-unicorn": "^76.0.0",
82
82
  "eslint-plugin-yml": "^3.8.1",
83
83
  "execa": "^10.0.1",
84
84
  "find-workspaces": "^0.3.1",
@@ -89,12 +89,12 @@
89
89
  "local-pkg": "^1.2.1",
90
90
  "package-up": "^5.0.0",
91
91
  "picocolors": "^1.1.1",
92
- "prettier": "^3.9.7",
92
+ "prettier": "^3.9.8",
93
93
  "sort-package-json": "^4.0.0",
94
94
  "svelte-eslint-parser": "^1.8.1",
95
95
  "toml-eslint-parser": "^1.0.3",
96
96
  "yaml-eslint-parser": "^2.1.0",
97
- "yargs": "^18.1.0"
97
+ "yargs": "^18.2.0"
98
98
  },
99
99
  "devDependencies": {
100
100
  "@eslint/js": "^10.0.1",
@@ -102,10 +102,10 @@
102
102
  "@types/eslint-plugin-jsx-a11y": "^6.10.1",
103
103
  "dot-prop": "^10.2.0",
104
104
  "eslint-config-prettier": "^10.1.8",
105
- "eslint-config-xo": "^3.0.1",
105
+ "eslint-config-xo": "^4.0.0",
106
106
  "eslint-typegen": "^2.3.1",
107
107
  "globby": "^16.2.4",
108
- "svelte": "^5.57.0"
108
+ "svelte": "^5.57.1"
109
109
  },
110
110
  "engines": {
111
111
  "node": "^24.16.0 || >=26.3.0"
package/readme.md CHANGED
@@ -237,6 +237,14 @@ The ESLint module and instances are cached internally for performance across mul
237
237
 
238
238
  ## Notes
239
239
 
240
+ ### Caching
241
+
242
+ `ksc-eslint lint` and `ksc-eslint fix` never pass `--cache` to ESLint, and the shared `--cache` option has no effect on them.
243
+
244
+ ESLint's cache is per-file: a result is reused whenever the file's own content and the resolved config are unchanged. Type-aware rules (enabled by default whenever a `tsconfig.json` is found) and cross-file rules like `import/no-cycle` also depend on the types and exports of other files, on `tsconfig.json`, on declaration files, and on generated types like Astro's `.astro/` output, none of which are part of the cache key. Changing a function's return type in `a.ts` can make a cached result for `b.ts` wrong in either direction: a stale error that `--no-cache` clears, or a stale pass that hides a real one. The `metadata` and `content` cache strategies differ only in how they detect changes to the file itself, so neither helps. typescript-eslint's [FAQ](https://typescript-eslint.io/troubleshooting/faqs/eslint#can-i-use-eslints---cache-with-typescript-eslint) recommends against `--cache` for the same reason.
245
+
246
+ The other tools that cache (CSpell, Prettier, and Stylelint) evaluate each file in isolation, so their per-file caches remain enabled.
247
+
240
248
  ### Config location
241
249
 
242
250
  Regrettably the `eslint-config init --location package` option is not supported due to ESLint's removal of support for putting configuration in `package.json`. See ESLint discussion thread [18131](https://github.com/eslint/eslint/discussions/18131).
@@ -247,6 +255,10 @@ The `update-rules` script is used to manually regenerate preset rule sets when p
247
255
 
248
256
  The script requires two calls to `ksc-prettier fix` to accommodate a lack of idempotence in Prettier's handling of the resulting `typegen.d.ts` file. This surfaced a few Prettier versions ago, and the necessity of this work-around should be reevaluated periodically against future versions of Prettier.
249
257
 
258
+ ### ESLint version pin
259
+
260
+ ESLint is pinned to `~10.10.0`. ESLint 10.11.0 added a private rule-definition cache to its `Config` class, which breaks the config cloning in [eslint-plugin-html](https://github.com/BenoitZugmeyer/eslint-plugin-html) and crashes linting of `.html` files. Restore the caret range once [eslint-plugin-html#342](https://github.com/BenoitZugmeyer/eslint-plugin-html/issues/342) is resolved.
261
+
250
262
  ### Origins
251
263
 
252
264
  This config is a heavily modified variation on Anthony Fu's [@antfu/eslint-config](https://github.com/antfu/eslint-config). This package is a somewhat leaner approach intended to work with other tools wrapped behind a monolithic CLI instead of handling everything on its own. It mainly leverages the factory / type generation implementation from the original repo, which itself builds on Kevin Deng's [@sxzz/eslint-config](https://github.com/sxzz/eslint-config). See the [modification notes](./modification-notes.md) for more details on what's changed from Anthony's approach.