diff --git a/CHANGELOG.md b/CHANGELOG.md index c8fe210..054e5d7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +- Fixed parsing unclosed attribute selector (such as `a[href`). + ## v2.11.3 - Fixed for TypeScript 5.5. diff --git a/parser.d.ts b/parser.d.ts index d64495e..75c9bfe 100644 --- a/parser.d.ts +++ b/parser.d.ts @@ -68,6 +68,8 @@ type PreprocessUnchecked = I extends `${infer L}\\${Quotes}${infer R}` // rem ? PreprocessUnchecked<`${L}${R}`> : I extends `${infer L}[${string}]${infer R}` // process attribute ? PreprocessUnchecked<`${L}#x${R}`> // replace it with a fake ID selector + : I extends `${infer L}[${string}${infer R}` // process unclosed attribute + ? PreprocessUnchecked<`${L}#x${R}`> // replace it with a fake ID selector : I /** Parse `:is()` and `:where()` */ diff --git a/parser.test.ts b/parser.test.ts index a6ab931..d5d660a 100644 --- a/parser.test.ts +++ b/parser.test.ts @@ -78,6 +78,7 @@ type _Tests = [ Expect, HTMLDivElement>>, Expect, HTMLDivElement>>, Expect, HTMLDivElement>>, + Expect, HTMLDivElement>>, Expect, Element>>, Expect< Equal, HTMLLinkElement>