From 5c6260ca3ce861a9064264b40a247e330fa3aa3f Mon Sep 17 00:00:00 2001 From: Guspan Tanadi <36249910+guspan-tanadi@users.noreply.github.com> Date: Thu, 1 Aug 2024 20:59:33 +0700 Subject: [PATCH 1/3] docs: section link Error Handling (#293) --- API.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/API.md b/API.md index 64459e3..c8e55ee 100644 --- a/API.md +++ b/API.md @@ -786,7 +786,7 @@ has a method `error(message, options)` that returns an error object. This method should always be used to raise errors relating to the syntax of selectors. The options to this method are passed to postcss's error constructor -([documentation](http://api.postcss.org/Container.html#error)). +([documentation](http://postcss.org/api/#container-error)). #### Async Error Example From fb38876194130c7518790c116886186fc1d0e37f Mon Sep 17 00:00:00 2001 From: Romain Menke <11521496+romainmenke@users.noreply.github.com> Date: Mon, 12 Aug 2024 12:41:08 +0200 Subject: [PATCH 2/3] fix: erroneous trailing combinators in pseudos --- src/__tests__/comments.mjs | 25 +++++++++++++++++++++++++ src/parser.js | 2 +- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/src/__tests__/comments.mjs b/src/__tests__/comments.mjs index 4365458..1b1dffe 100644 --- a/src/__tests__/comments.mjs +++ b/src/__tests__/comments.mjs @@ -33,12 +33,37 @@ test('multiple comments and other things', 'h1/*test*/h2/*test*/.test/*test*/', }); test('ending in comment', ".bar /* comment 3 */", (t, tree) => { + t.is(tree.nodes[0].nodes.length, 1); let classname = tree.nodes[0].nodes[0]; t.deepEqual(classname.type, 'class', 'should have a tag'); t.deepEqual(classname.spaces.after, ' '); t.deepEqual(classname.raws.spaces.after, ' /* comment 3 */'); }); +test('ending in comment and whitespace', ".bar /* comment 3 */ ", (t, tree) => { + t.is(tree.nodes[0].nodes.length, 1); + let classname = tree.nodes[0].nodes[0]; + t.deepEqual(classname.type, 'class', 'should have a tag'); + t.deepEqual(classname.spaces.after, ' '); + t.deepEqual(classname.raws.spaces.after, ' /* comment 3 */ '); +}); + +test('ending in comment in a pseudo', ":is(.bar /* comment 3 */)", (t, tree) => { + t.is(tree.nodes[0].nodes[0].nodes[0].nodes.length, 1); + let classname = tree.nodes[0].nodes[0].nodes[0].nodes[0]; + t.deepEqual(classname.type, 'class', 'should have a tag'); + t.deepEqual(classname.spaces.after, ' '); + t.deepEqual(classname.raws.spaces.after, ' /* comment 3 */'); +}); + +test('ending in comment and whitespace in a pseudo', ":is(.bar /* comment 3 */ )", (t, tree) => { + t.is(tree.nodes[0].nodes[0].nodes[0].nodes.length, 1); + let classname = tree.nodes[0].nodes[0].nodes[0].nodes[0]; + t.deepEqual(classname.type, 'class', 'should have a tag'); + t.deepEqual(classname.spaces.after, ' '); + t.deepEqual(classname.raws.spaces.after, ' /* comment 3 */ '); +}); + test('comments in selector list', 'h2, /*test*/ h4', (t, tree) => { t.deepEqual(tree.nodes[0].nodes[0].type, 'tag'); t.deepEqual(tree.nodes[0].nodes[0].value, 'h2'); diff --git a/src/parser.js b/src/parser.js index 4815c6e..e50ea08 100644 --- a/src/parser.js +++ b/src/parser.js @@ -525,7 +525,7 @@ export default class Parser { // We need to decide between a space that's a descendant combinator and meaningless whitespace at the end of a selector. let nextSigTokenPos = this.locateNextMeaningfulToken(this.position); - if (nextSigTokenPos < 0 || this.tokens[nextSigTokenPos][TOKEN.TYPE] === tokens.comma) { + if (nextSigTokenPos < 0 || this.tokens[nextSigTokenPos][TOKEN.TYPE] === tokens.comma || this.tokens[nextSigTokenPos][TOKEN.TYPE] === tokens.closeParenthesis) { let nodes = this.parseWhitespaceEquivalentTokens(nextSigTokenPos); if (nodes.length > 0) { let last = this.current.last; From 1b1e9c3bc10ccc3bc5f07a987caa7f2684c0b52f Mon Sep 17 00:00:00 2001 From: "alexander.akait" Date: Mon, 12 Aug 2024 13:42:29 +0300 Subject: [PATCH 3/3] chore(release): 6.1.2 --- CHANGELOG.md | 4 ++++ package-lock.json | 2 +- package.json | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b9dbb1b..14ffadc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +# 6.1.2 + +- Fixed: erroneous trailing combinators in pseudos + # 6.1.1 - Fixed: improve typings of constructor helpers (#292) diff --git a/package-lock.json b/package-lock.json index 2e85d49..d86df35 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "postcss-selector-parser", - "version": "6.1.1", + "version": "6.1.2", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index c5f89e5..0b074d0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss-selector-parser", - "version": "6.1.1", + "version": "6.1.2", "devDependencies": { "@babel/cli": "^7.11.6", "@babel/core": "^7.11.6",