diff --git a/docs-svelte-kit/src/lib/eslint/MonacoEditor.svelte b/docs-svelte-kit/src/lib/eslint/MonacoEditor.svelte
index 9fed3d2fd..34b3ae02b 100644
--- a/docs-svelte-kit/src/lib/eslint/MonacoEditor.svelte
+++ b/docs-svelte-kit/src/lib/eslint/MonacoEditor.svelte
@@ -1,4 +1,4 @@
-
diff --git a/package.json b/package.json
index 342ab661f..374fdaf57 100644
--- a/package.json
+++ b/package.json
@@ -15,34 +15,34 @@
},
"devDependencies": {
"@changesets/changelog-github": "^0.5.0",
- "@changesets/cli": "^2.27.5",
- "@changesets/get-release-plan": "^4.0.2",
- "@eslint-community/eslint-plugin-eslint-comments": "^4.3.0",
- "@ota-meshi/eslint-plugin": "^0.17.1",
- "@types/eslint": "^8.56.10",
- "@typescript-eslint/eslint-plugin": "^7.13.0",
- "@typescript-eslint/parser": "^7.13.0",
+ "@changesets/cli": "^2.27.8",
+ "@changesets/get-release-plan": "^4.0.4",
+ "@eslint-community/eslint-plugin-eslint-comments": "^4.4.0",
+ "@ota-meshi/eslint-plugin": "^0.17.5",
+ "@types/eslint": "^9.6.1",
+ "@typescript-eslint/eslint-plugin": "^7.18.0",
+ "@typescript-eslint/parser": "^7.18.0",
"env-cmd": "^10.1.0",
- "eslint": "^9.4.0",
+ "eslint": "^9.10.0",
"eslint-config-prettier": "^9.1.0",
"eslint-formatter-friendly": "^7.0.0",
- "eslint-plugin-eslint-plugin": "^6.1.0",
- "eslint-plugin-jsdoc": "^50.0.0",
- "eslint-plugin-json-schema-validator": "^5.1.0",
+ "eslint-plugin-eslint-plugin": "^6.2.0",
+ "eslint-plugin-jsdoc": "^50.2.2",
+ "eslint-plugin-json-schema-validator": "^5.1.2",
"eslint-plugin-jsonc": "^2.16.0",
- "eslint-plugin-markdown": "^5.0.0",
+ "eslint-plugin-markdown": "^5.1.0",
"eslint-plugin-mdx": "^3.1.5",
- "eslint-plugin-n": "^17.9.0",
+ "eslint-plugin-n": "^17.10.2",
"eslint-plugin-node-dependencies": "^0.12.0",
- "eslint-plugin-prettier": "^5.1.3",
+ "eslint-plugin-prettier": "^5.2.1",
"eslint-plugin-regexp": "^2.6.0",
"eslint-plugin-yml": "^1.14.0",
- "npm-run-all2": "^6.2.0",
- "prettier": "^3.3.2",
- "prettier-plugin-svelte": "^3.2.4",
- "rimraf": "^6.0.0",
- "typescript": "~5.5.0",
- "typescript-eslint": "^7.13.0"
+ "npm-run-all2": "^6.2.2",
+ "prettier": "^3.3.3",
+ "prettier-plugin-svelte": "^3.2.6",
+ "rimraf": "^6.0.1",
+ "typescript": "~5.5.4",
+ "typescript-eslint": "^7.18.0"
},
"publishConfig": {
"access": "public"
diff --git a/packages/eslint-plugin-svelte/package.json b/packages/eslint-plugin-svelte/package.json
index a341ec478..0b8b8b2cd 100644
--- a/packages/eslint-plugin-svelte/package.json
+++ b/packages/eslint-plugin-svelte/package.json
@@ -69,39 +69,39 @@
"svelte-eslint-parser": "^0.41.0"
},
"devDependencies": {
- "@babel/core": "^7.24.7",
- "@babel/eslint-parser": "^7.24.7",
+ "@babel/core": "^7.25.2",
+ "@babel/eslint-parser": "^7.25.1",
"@babel/plugin-proposal-function-bind": "^7.24.7",
- "@eslint-community/eslint-plugin-eslint-comments": "^4.3.0",
+ "@eslint-community/eslint-plugin-eslint-comments": "^4.4.0",
"@types/babel__core": "^7.20.5",
"@types/eslint-utils": "^3.0.5",
"@types/esutils": "^2.0.2",
"@types/json-schema": "^7.0.15",
"@types/less": "^3.0.6",
- "@types/mocha": "^10.0.6",
- "@types/node": "^20.14.2",
+ "@types/mocha": "^10.0.8",
+ "@types/node": "^20.16.5",
"@types/postcss-safe-parser": "^5.0.4",
"@types/semver": "^7.5.8",
"@types/stylus": "^0.48.42",
- "acorn": "^8.12.0",
+ "acorn": "^8.12.1",
"assert": "^2.1.0",
- "esbuild": "^0.23.0",
- "esbuild-register": "^3.5.0",
- "eslint-scope": "^8.0.1",
- "eslint-typegen": "^0.3.0",
+ "esbuild": "^0.23.1",
+ "esbuild-register": "^3.6.0",
+ "eslint-scope": "^8.0.2",
+ "eslint-typegen": "^0.3.2",
"eslint-visitor-keys": "^4.0.0",
- "espree": "^10.0.1",
+ "espree": "^10.1.0",
"less": "^4.2.0",
- "mocha": "^10.4.0",
+ "mocha": "^10.7.3",
"nyc": "^17.0.0",
- "postcss-nested": "^6.0.1",
- "sass": "^1.77.5",
- "source-map-js": "^1.2.0",
+ "postcss-nested": "^6.2.0",
+ "sass": "^1.78.0",
+ "source-map-js": "^1.2.1",
"stylus": "^0.63.0",
- "svelte": "^5.0.0-next.191",
+ "svelte": "5.0.0-next.245",
"svelte-i18n": "^4.0.0",
- "type-coverage": "^2.29.0",
- "yaml": "^2.4.5"
+ "type-coverage": "^2.29.1",
+ "yaml": "^2.5.1"
},
"publishConfig": {
"access": "public"
diff --git a/packages/eslint-plugin-svelte/src/configs/all.ts b/packages/eslint-plugin-svelte/src/configs/all.ts
index 41a45fa39..44b943f91 100644
--- a/packages/eslint-plugin-svelte/src/configs/all.ts
+++ b/packages/eslint-plugin-svelte/src/configs/all.ts
@@ -3,7 +3,7 @@ import path from 'node:path';
import { rules } from '../utils/rules';
const base = require.resolve('./base');
const baseExtend = path.extname(`${base}`) === '.ts' ? 'plugin:svelte/base' : base;
-const config: Linter.Config = {
+const config: Linter.LegacyConfig = {
extends: [baseExtend],
rules: Object.fromEntries(
rules
diff --git a/packages/eslint-plugin-svelte/src/configs/base.ts b/packages/eslint-plugin-svelte/src/configs/base.ts
index fe0e3a94d..21114065d 100644
--- a/packages/eslint-plugin-svelte/src/configs/base.ts
+++ b/packages/eslint-plugin-svelte/src/configs/base.ts
@@ -2,7 +2,7 @@
// This file has been automatically generated,
// in order to update its content execute "pnpm run update"
import type { Linter } from 'eslint';
-const config: Linter.Config = {
+const config: Linter.LegacyConfig = {
plugins: ['svelte'],
overrides: [
{
diff --git a/packages/eslint-plugin-svelte/src/configs/flat/base.ts b/packages/eslint-plugin-svelte/src/configs/flat/base.ts
index 6956628ea..9882b43fc 100644
--- a/packages/eslint-plugin-svelte/src/configs/flat/base.ts
+++ b/packages/eslint-plugin-svelte/src/configs/flat/base.ts
@@ -2,7 +2,7 @@
// This file has been automatically generated,
// in order to update its content execute "pnpm run update"
import type { ESLint, Linter } from 'eslint';
-const config: Linter.FlatConfig[] = [
+const config: Linter.Config[] = [
{
name: 'svelte:base:setup-plugin',
plugins: {
diff --git a/packages/eslint-plugin-svelte/src/configs/flat/prettier.ts b/packages/eslint-plugin-svelte/src/configs/flat/prettier.ts
index 6d1610751..f383837db 100644
--- a/packages/eslint-plugin-svelte/src/configs/flat/prettier.ts
+++ b/packages/eslint-plugin-svelte/src/configs/flat/prettier.ts
@@ -3,7 +3,7 @@
// in order to update its content execute "pnpm run update"
import type { Linter } from 'eslint';
import base from './base';
-const config: Linter.FlatConfig[] = [
+const config: Linter.Config[] = [
...base,
{
name: 'svelte:prettier:turn-off-rules',
diff --git a/packages/eslint-plugin-svelte/src/configs/flat/recommended.ts b/packages/eslint-plugin-svelte/src/configs/flat/recommended.ts
index eff2aa8d4..f948fd083 100644
--- a/packages/eslint-plugin-svelte/src/configs/flat/recommended.ts
+++ b/packages/eslint-plugin-svelte/src/configs/flat/recommended.ts
@@ -3,7 +3,7 @@
// in order to update its content execute "pnpm run update"
import type { Linter } from 'eslint';
import base from './base';
-const config: Linter.FlatConfig[] = [
+const config: Linter.Config[] = [
...base,
{
name: 'svelte:recommended:rules',
diff --git a/packages/eslint-plugin-svelte/src/configs/prettier.ts b/packages/eslint-plugin-svelte/src/configs/prettier.ts
index 42054233b..eb76a588c 100644
--- a/packages/eslint-plugin-svelte/src/configs/prettier.ts
+++ b/packages/eslint-plugin-svelte/src/configs/prettier.ts
@@ -5,7 +5,7 @@ import type { Linter } from 'eslint';
import path from 'node:path';
const base = require.resolve('./base');
const baseExtend = path.extname(`${base}`) === '.ts' ? 'plugin:svelte/base' : base;
-const config: Linter.Config = {
+const config: Linter.LegacyConfig = {
extends: [baseExtend],
rules: {
// eslint-plugin-svelte rules
diff --git a/packages/eslint-plugin-svelte/src/configs/recommended.ts b/packages/eslint-plugin-svelte/src/configs/recommended.ts
index 5e53547be..683ab215e 100644
--- a/packages/eslint-plugin-svelte/src/configs/recommended.ts
+++ b/packages/eslint-plugin-svelte/src/configs/recommended.ts
@@ -5,7 +5,7 @@ import type { Linter } from 'eslint';
import path from 'node:path';
const base = require.resolve('./base');
const baseExtend = path.extname(`${base}`) === '.ts' ? 'plugin:svelte/base' : base;
-const config: Linter.Config = {
+const config: Linter.LegacyConfig = {
extends: [baseExtend],
rules: {
// eslint-plugin-svelte rules
diff --git a/packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/invalid/script-comment02-svelte4-requirements.json b/packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/invalid/script-comment02-svelte4-requirements.json
new file mode 100644
index 000000000..b650cc296
--- /dev/null
+++ b/packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/invalid/script-comment02-svelte4-requirements.json
@@ -0,0 +1,3 @@
+{
+ "svelte": "^3.0.0 || ^4.0.0"
+}
diff --git a/packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/script-comment-svelte4-requirements.json b/packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/script-comment-svelte4-requirements.json
new file mode 100644
index 000000000..b650cc296
--- /dev/null
+++ b/packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/script-comment-svelte4-requirements.json
@@ -0,0 +1,3 @@
+{
+ "svelte": "^3.0.0 || ^4.0.0"
+}
diff --git a/packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/script-comment-input.svelte b/packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/script-comment-input.svelte
index 62e42407f..e567d7cc8 100644
--- a/packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/script-comment-input.svelte
+++ b/packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/script-comment-input.svelte
@@ -1,4 +1,4 @@
-
diff --git a/packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/ts/script-comment-input.svelte b/packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/ts/script-comment-input.svelte
index cd5721671..4d90a1a09 100644
--- a/packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/ts/script-comment-input.svelte
+++ b/packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/ts/script-comment-input.svelte
@@ -1,4 +1,4 @@
-
diff --git a/packages/eslint-plugin-svelte/tools/update-rulesets.ts b/packages/eslint-plugin-svelte/tools/update-rulesets.ts
index a47af99ce..e1a21b4b6 100644
--- a/packages/eslint-plugin-svelte/tools/update-rulesets.ts
+++ b/packages/eslint-plugin-svelte/tools/update-rulesets.ts
@@ -12,7 +12,7 @@ const legacyBaseContent = `/*
* in order to update its content execute "pnpm run update"
*/
import type { Linter } from 'eslint'
-const config: Linter.Config = {
+const config: Linter.LegacyConfig = {
plugins: ["svelte"],
overrides: [
{
@@ -55,7 +55,7 @@ import path from "node:path"
const base = require.resolve("./base")
const baseExtend =
path.extname(\`\${base}\`) === ".ts" ? "plugin:svelte/base" : base
-const config: Linter.Config = {
+const config: Linter.LegacyConfig = {
extends: [baseExtend],
rules: {
// eslint-plugin-svelte rules
@@ -86,7 +86,7 @@ import path from "node:path"
const base = require.resolve("./base")
const baseExtend =
path.extname(\`\${base}\`) === ".ts" ? "plugin:svelte/base" : base
-const config: Linter.Config = {
+const config: Linter.LegacyConfig = {
extends: [baseExtend],
rules: {
// eslint-plugin-svelte rules
@@ -114,7 +114,7 @@ const baseContent = `/*
* in order to update its content execute "pnpm run update"
*/
import type { ESLint, Linter } from 'eslint';
-const config: Linter.FlatConfig[] = [
+const config: Linter.Config[] = [
{
name: 'svelte:base:setup-plugin',
plugins: {
@@ -165,7 +165,7 @@ const recommendedContent = `/*
*/
import type { Linter } from 'eslint';
import base from "./base"
-const config: Linter.FlatConfig[] = [
+const config: Linter.Config[] = [
...base,
{
name: 'svelte:recommended:rules',
@@ -196,7 +196,7 @@ const prettierContent = `/*
*/
import type { Linter } from 'eslint';
import base from "./base"
-const config: Linter.FlatConfig[] = [
+const config: Linter.Config[] = [
...base,
{
name: 'svelte:prettier:turn-off-rules',