From e1e1ecad3f67be4fbb44a347d99019c47cf88ac6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yann=20=E3=82=A4=E3=83=BC=E3=83=99=E3=82=B9=20Eves?= Date: Fri, 26 Sep 2025 23:06:42 +0100 Subject: [PATCH] fix(no-navigation-without-resolve): do not report parent-directory relative urls in anchor links --- .../src/rules/no-navigation-without-resolve.ts | 3 +++ .../valid/link-relative-url01-input.svelte | 11 +++++++++++ 2 files changed, 14 insertions(+) create mode 100644 packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/valid/link-relative-url01-input.svelte diff --git a/packages/eslint-plugin-svelte/src/rules/no-navigation-without-resolve.ts b/packages/eslint-plugin-svelte/src/rules/no-navigation-without-resolve.ts index f8672da69..d12640ace 100644 --- a/packages/eslint-plugin-svelte/src/rules/no-navigation-without-resolve.ts +++ b/packages/eslint-plugin-svelte/src/rules/no-navigation-without-resolve.ts @@ -227,6 +227,7 @@ function checkLinkAttribute( !isValueAllowed(new FindVariableContext(context), value, resolveReferences, { allowAbsolute: true, allowFragment: true, + allowParentDirectoryRelative: true, allowNullish: true }) ) { @@ -277,6 +278,7 @@ function isValueAllowed( allowAbsolute?: boolean; allowEmpty?: boolean; allowFragment?: boolean; + allowParentDirectoryRelative?: boolean; allowNullish?: boolean; } ): boolean { @@ -295,6 +297,7 @@ function isValueAllowed( (config.allowAbsolute && expressionIsAbsoluteUrl(ctx, value)) || (config.allowEmpty && expressionIsEmpty(value)) || (config.allowFragment && expressionStartsWith(ctx, value, '#')) || + (config.allowParentDirectoryRelative && expressionStartsWith(ctx, value, '..')) || (config.allowNullish && expressionIsNullish(value)) || expressionIsResolveCall(ctx, value, resolveReferences) ) { diff --git a/packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/valid/link-relative-url01-input.svelte b/packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/valid/link-relative-url01-input.svelte new file mode 100644 index 000000000..03cdc2b9b --- /dev/null +++ b/packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/valid/link-relative-url01-input.svelte @@ -0,0 +1,11 @@ + + +Click me! +Click me! +Click me! +Click me! +Click me! +Click me!