Update linter packages
- Updates stylelint to 13.8.0
- Updates ESLint to 7.14.0
- Updates @typescript-eslint to 4.9.0
DISABLE_THIRD_PARTY_CHECK=NPM update
R=jacktfranklin@chromium.org
Change-Id: I207e204607ede782710e042c17d6510c7f696905
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2566806
Reviewed-by: Jack Franklin <jacktfranklin@chromium.org>
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
diff --git a/node_modules/postcss-selector-parser/API.md b/node_modules/postcss-selector-parser/API.md
index ceee157..6aa1f14 100644
--- a/node_modules/postcss-selector-parser/API.md
+++ b/node_modules/postcss-selector-parser/API.md
@@ -684,7 +684,7 @@
```js
{
attribute: "href",
- operatator: "=",
+ operator: "=",
value: "test",
spaces: {
before: '',
diff --git a/node_modules/postcss-selector-parser/CHANGELOG.md b/node_modules/postcss-selector-parser/CHANGELOG.md
index 8aeec16..ef9c5a2 100644
--- a/node_modules/postcss-selector-parser/CHANGELOG.md
+++ b/node_modules/postcss-selector-parser/CHANGELOG.md
@@ -1,3 +1,13 @@
+# 6.0.4
+
+- Fixed: ts errors
+
+# 6.0.3
+
+- Fixed: replace node built-in "util" module with "util-deprecate"
+- Fixed: handle uppercase pseudo elements
+- Fixed: do not create invalid combinator before comment
+
# 6.0.2
- Fixed an issue with parsing and stringifying an empty attribute value
diff --git a/node_modules/postcss-selector-parser/dist/__tests__/classes.js b/node_modules/postcss-selector-parser/dist/__tests__/classes.js
index 003d6b3..28526a5 100644
--- a/node_modules/postcss-selector-parser/dist/__tests__/classes.js
+++ b/node_modules/postcss-selector-parser/dist/__tests__/classes.js
@@ -213,4 +213,14 @@
t.deepEqual(tree.nodes[0].nodes[0].value, '𝌆');
t.deepEqual(tree.nodes[0].nodes[0].type, 'class');
t.deepEqual(tree.nodes[0].nodes[0].raws.value, '\\1D306');
+});
+(0, _helpers.test)('class selector with escaping (35)', '.not-pseudo\\:focus', function (t, tree) {
+ t.deepEqual(tree.nodes[0].nodes[0].value, 'not-pseudo:focus');
+ t.deepEqual(tree.nodes[0].nodes[0].type, 'class');
+ t.deepEqual(tree.nodes[0].nodes[0].raws.value, 'not-pseudo\\:focus');
+});
+(0, _helpers.test)('class selector with escaping (36)', '.not-pseudo\\:\\:focus', function (t, tree) {
+ t.deepEqual(tree.nodes[0].nodes[0].value, 'not-pseudo::focus');
+ t.deepEqual(tree.nodes[0].nodes[0].type, 'class');
+ t.deepEqual(tree.nodes[0].nodes[0].raws.value, 'not-pseudo\\:\\:focus');
});
\ No newline at end of file
diff --git a/node_modules/postcss-selector-parser/dist/__tests__/comments.js b/node_modules/postcss-selector-parser/dist/__tests__/comments.js
index 83463b5..d317e8a 100644
--- a/node_modules/postcss-selector-parser/dist/__tests__/comments.js
+++ b/node_modules/postcss-selector-parser/dist/__tests__/comments.js
@@ -35,4 +35,47 @@
t.deepEqual(classname.type, 'class', 'should have a tag');
t.deepEqual(classname.spaces.after, ' ');
t.deepEqual(classname.raws.spaces.after, ' /* comment 3 */');
+});
+(0, _helpers.test)('comments in selector list', 'h2, /*test*/ h4', function (t, tree) {
+ t.deepEqual(tree.nodes[0].nodes[0].type, 'tag');
+ t.deepEqual(tree.nodes[0].nodes[0].value, 'h2');
+ t.deepEqual(tree.nodes[1].nodes[0].rawSpaceBefore, ' ');
+ t.deepEqual(tree.nodes[1].nodes[0].type, 'comment');
+ t.deepEqual(tree.nodes[1].nodes[0].value, '/*test*/');
+ t.deepEqual(tree.nodes[1].nodes[1].rawSpaceBefore, ' ');
+ t.deepEqual(tree.nodes[1].nodes[1].type, 'tag');
+ t.deepEqual(tree.nodes[1].nodes[1].value, 'h4');
+});
+(0, _helpers.test)('comments in selector list (2)', 'h2,/*test*/h4', function (t, tree) {
+ t.deepEqual(tree.nodes[0].nodes[0].type, 'tag');
+ t.deepEqual(tree.nodes[0].nodes[0].value, 'h2');
+ t.deepEqual(tree.nodes[1].nodes[0].rawSpaceBefore, '');
+ t.deepEqual(tree.nodes[1].nodes[0].type, 'comment');
+ t.deepEqual(tree.nodes[1].nodes[0].value, '/*test*/');
+ t.deepEqual(tree.nodes[1].nodes[1].type, 'tag');
+ t.deepEqual(tree.nodes[1].nodes[1].value, 'h4');
+ t.deepEqual(tree.nodes[1].nodes[1].rawSpaceBefore, '');
+});
+(0, _helpers.test)('comments in selector list (3)', 'h2/*test*/, h4', function (t, tree) {
+ t.deepEqual(tree.nodes[0].nodes[0].type, 'tag');
+ t.deepEqual(tree.nodes[0].nodes[0].value, 'h2');
+ t.deepEqual(tree.nodes[0].nodes[1].rawSpaceBefore, '');
+ t.deepEqual(tree.nodes[0].nodes[1].type, 'comment');
+ t.deepEqual(tree.nodes[0].nodes[1].value, '/*test*/');
+ t.deepEqual(tree.nodes[1].nodes[0].type, 'tag');
+ t.deepEqual(tree.nodes[1].nodes[0].value, 'h4');
+ t.deepEqual(tree.nodes[1].nodes[0].rawSpaceBefore, ' ');
+});
+(0, _helpers.test)('comments in selector list (4)', 'h2, /*test*/ /*test*/ h4', function (t, tree) {
+ t.deepEqual(tree.nodes[0].nodes[0].type, 'tag');
+ t.deepEqual(tree.nodes[0].nodes[0].value, 'h2');
+ t.deepEqual(tree.nodes[1].nodes[0].rawSpaceBefore, ' ');
+ t.deepEqual(tree.nodes[1].nodes[0].type, 'comment');
+ t.deepEqual(tree.nodes[1].nodes[0].value, '/*test*/');
+ t.deepEqual(tree.nodes[1].nodes[1].rawSpaceBefore, ' ');
+ t.deepEqual(tree.nodes[1].nodes[1].type, 'comment');
+ t.deepEqual(tree.nodes[1].nodes[1].value, '/*test*/');
+ t.deepEqual(tree.nodes[1].nodes[2].rawSpaceBefore, ' ');
+ t.deepEqual(tree.nodes[1].nodes[2].type, 'tag');
+ t.deepEqual(tree.nodes[1].nodes[2].value, 'h4');
});
\ No newline at end of file
diff --git a/node_modules/postcss-selector-parser/dist/__tests__/guards.js b/node_modules/postcss-selector-parser/dist/__tests__/guards.js
index b2045ca..1f2412b 100644
--- a/node_modules/postcss-selector-parser/dist/__tests__/guards.js
+++ b/node_modules/postcss-selector-parser/dist/__tests__/guards.js
@@ -91,6 +91,15 @@
t.false(_.default.isNamespace(n));
});
});
+(0, _helpers.test)('special pseudo element guard (uppercase)', ':BEFORE:AFTER', function (t, tree) {
+ [node(tree), node(tree, 1)].forEach(function (n) {
+ t.true(_.default.isPseudo(n));
+ t.false(_.default.isPseudoClass(n));
+ t.true(_.default.isPseudoElement(n));
+ t.true(_.default.isContainer(n));
+ t.false(_.default.isNamespace(n));
+ });
+});
(0, _helpers.test)('string guard', '"string"', function (t, tree) {
var n = node(tree);
t.true(_.default.isNode(n));
diff --git a/node_modules/postcss-selector-parser/dist/__tests__/id.js b/node_modules/postcss-selector-parser/dist/__tests__/id.js
index 73386f6..87dc746 100644
--- a/node_modules/postcss-selector-parser/dist/__tests__/id.js
+++ b/node_modules/postcss-selector-parser/dist/__tests__/id.js
@@ -6,6 +6,12 @@
t.deepEqual(tree.nodes[0].nodes[0].value, 'one');
t.deepEqual(tree.nodes[0].nodes[0].type, 'id');
});
+(0, _helpers.test)('id selector with universal', '*#z98y ', function (t, tree) {
+ t.deepEqual(tree.nodes[0].nodes[0].value, '*');
+ t.deepEqual(tree.nodes[0].nodes[0].type, 'universal');
+ t.deepEqual(tree.nodes[0].nodes[1].value, 'z98y');
+ t.deepEqual(tree.nodes[0].nodes[1].type, 'id');
+});
(0, _helpers.test)('id hack', '#one#two', function (t, tree) {
t.deepEqual(tree.nodes[0].nodes[0].type, 'id');
t.deepEqual(tree.nodes[0].nodes[1].type, 'id');
diff --git a/node_modules/postcss-selector-parser/dist/__tests__/nonstandard.js b/node_modules/postcss-selector-parser/dist/__tests__/nonstandard.js
index 599e64d..d9786f2 100644
--- a/node_modules/postcss-selector-parser/dist/__tests__/nonstandard.js
+++ b/node_modules/postcss-selector-parser/dist/__tests__/nonstandard.js
@@ -19,20 +19,28 @@
t.deepEqual(tree.nodes[0].nodes[1].value, '*');
});
(0, _helpers.test)('sass escapes', '.#{$classname}', function (t, tree) {
- t.deepEqual(tree.nodes[0].nodes.map(function (n) {
- return n.type;
- }), ["class"]);
+ t.deepEqual(tree.nodes[0].nodes[0].type, "class");
t.deepEqual(tree.nodes[0].nodes[0].value, "#{$classname}");
});
(0, _helpers.test)('sass escapes (2)', '[lang=#{$locale}]', function (t, tree) {
- t.deepEqual(tree.nodes[0].nodes.map(function (n) {
- return n.type;
- }), ["attribute"]);
+ t.deepEqual(tree.nodes[0].nodes[0].type, "attribute");
+ t.deepEqual(tree.nodes[0].nodes[0].attribute, "lang");
+ t.deepEqual(tree.nodes[0].nodes[0].operator, "=");
t.deepEqual(tree.nodes[0].nodes[0].value, "#{$locale}");
});
(0, _helpers.test)('placeholder', '%foo', function (t, tree) {
- t.deepEqual(tree.nodes[0].nodes.map(function (n) {
- return n.type;
- }), ["tag"]);
+ t.deepEqual(tree.nodes[0].nodes[0].type, "tag");
t.deepEqual(tree.nodes[0].nodes[0].value, "%foo");
+});
+(0, _helpers.test)('styled selector', '${Step}', function (t, tree) {
+ t.deepEqual(tree.nodes[0].nodes[0].type, "tag");
+ t.deepEqual(tree.nodes[0].nodes[0].value, "${Step}");
+});
+(0, _helpers.test)('styled selector (2)', '${Step}:nth-child(odd)', function (t, tree) {
+ t.deepEqual(tree.nodes[0].nodes[0].type, "tag");
+ t.deepEqual(tree.nodes[0].nodes[0].value, "${Step}");
+ t.deepEqual(tree.nodes[0].nodes[1].type, "pseudo");
+ t.deepEqual(tree.nodes[0].nodes[1].value, ":nth-child");
+ t.deepEqual(tree.nodes[0].nodes[1].nodes[0].nodes[0].type, "tag");
+ t.deepEqual(tree.nodes[0].nodes[1].nodes[0].nodes[0].value, "odd");
});
\ No newline at end of file
diff --git a/node_modules/postcss-selector-parser/dist/__tests__/pseudos.js b/node_modules/postcss-selector-parser/dist/__tests__/pseudos.js
index d316a0c..2dd64b1 100644
--- a/node_modules/postcss-selector-parser/dist/__tests__/pseudos.js
+++ b/node_modules/postcss-selector-parser/dist/__tests__/pseudos.js
@@ -95,4 +95,71 @@
t.deepEqual(tree.nodes[0].nodes[0].type, 'tag');
t.deepEqual(tree.nodes[1].nodes[0].value, ':--foobar');
t.deepEqual(tree.nodes[1].nodes[0].type, 'pseudo');
+});
+(0, _helpers.test)('current pseudo class', ':current(p, li, dt, dd)', function (t, tree) {
+ t.deepEqual(tree.nodes[0].nodes[0].type, 'pseudo');
+ t.deepEqual(tree.nodes[0].nodes[0].value, ':current');
+ t.deepEqual(tree.nodes[0].nodes[0].nodes[0].nodes[0].type, 'tag');
+ t.deepEqual(tree.nodes[0].nodes[0].nodes[0].nodes[0].value, 'p');
+ t.deepEqual(tree.nodes[0].nodes[0].nodes[1].nodes[0].type, 'tag');
+ t.deepEqual(tree.nodes[0].nodes[0].nodes[1].nodes[0].value, 'li');
+ t.deepEqual(tree.nodes[0].nodes[0].nodes[2].nodes[0].type, 'tag');
+ t.deepEqual(tree.nodes[0].nodes[0].nodes[2].nodes[0].value, 'dt');
+ t.deepEqual(tree.nodes[0].nodes[0].nodes[3].nodes[0].type, 'tag');
+ t.deepEqual(tree.nodes[0].nodes[0].nodes[3].nodes[0].value, 'dd');
+});
+(0, _helpers.test)('is pseudo class', ':is(p, li, dt, dd)', function (t, tree) {
+ t.deepEqual(tree.nodes[0].nodes[0].type, 'pseudo');
+ t.deepEqual(tree.nodes[0].nodes[0].value, ':is');
+ t.deepEqual(tree.nodes[0].nodes[0].nodes[0].nodes[0].type, 'tag');
+ t.deepEqual(tree.nodes[0].nodes[0].nodes[0].nodes[0].value, 'p');
+ t.deepEqual(tree.nodes[0].nodes[0].nodes[1].nodes[0].type, 'tag');
+ t.deepEqual(tree.nodes[0].nodes[0].nodes[1].nodes[0].value, 'li');
+ t.deepEqual(tree.nodes[0].nodes[0].nodes[2].nodes[0].type, 'tag');
+ t.deepEqual(tree.nodes[0].nodes[0].nodes[2].nodes[0].value, 'dt');
+ t.deepEqual(tree.nodes[0].nodes[0].nodes[3].nodes[0].type, 'tag');
+ t.deepEqual(tree.nodes[0].nodes[0].nodes[3].nodes[0].value, 'dd');
+});
+(0, _helpers.test)('is pseudo class with namespace', '*|*:is(:hover, :focus) ', function (t, tree) {
+ t.deepEqual(tree.nodes[0].nodes[0].type, 'universal');
+ t.deepEqual(tree.nodes[0].nodes[0].namespace, '*');
+ t.deepEqual(tree.nodes[0].nodes[0].value, '*');
+ t.deepEqual(tree.nodes[0].nodes[1].type, 'pseudo');
+ t.deepEqual(tree.nodes[0].nodes[1].value, ':is');
+ t.deepEqual(tree.nodes[0].nodes[1].nodes[0].nodes[0].type, 'pseudo');
+ t.deepEqual(tree.nodes[0].nodes[1].nodes[0].nodes[0].value, ':hover');
+ t.deepEqual(tree.nodes[0].nodes[1].nodes[1].nodes[0].type, 'pseudo');
+ t.deepEqual(tree.nodes[0].nodes[1].nodes[1].nodes[0].value, ':focus');
+});
+(0, _helpers.test)('has pseudo class', 'a:has(> img)', function (t, tree) {
+ t.deepEqual(tree.nodes[0].nodes[0].type, 'tag');
+ t.deepEqual(tree.nodes[0].nodes[0].value, 'a');
+ t.deepEqual(tree.nodes[0].nodes[1].type, 'pseudo');
+ t.deepEqual(tree.nodes[0].nodes[1].value, ':has');
+ t.deepEqual(tree.nodes[0].nodes[1].nodes[0].nodes[0].type, 'combinator');
+ t.deepEqual(tree.nodes[0].nodes[1].nodes[0].nodes[0].value, '>');
+ t.deepEqual(tree.nodes[0].nodes[1].nodes[0].nodes[1].type, 'tag');
+ t.deepEqual(tree.nodes[0].nodes[1].nodes[0].nodes[1].value, 'img');
+});
+(0, _helpers.test)('where pseudo class', 'a:where(:not(:hover))', function (t, tree) {
+ t.deepEqual(tree.nodes[0].nodes[0].type, 'tag');
+ t.deepEqual(tree.nodes[0].nodes[0].value, 'a');
+ t.deepEqual(tree.nodes[0].nodes[1].type, 'pseudo');
+ t.deepEqual(tree.nodes[0].nodes[1].value, ':where');
+ t.deepEqual(tree.nodes[0].nodes[1].nodes[0].nodes[0].type, 'pseudo');
+ t.deepEqual(tree.nodes[0].nodes[1].nodes[0].nodes[0].value, ':not');
+ t.deepEqual(tree.nodes[0].nodes[1].nodes[0].nodes[0].nodes[0].nodes[0].type, 'pseudo');
+ t.deepEqual(tree.nodes[0].nodes[1].nodes[0].nodes[0].nodes[0].nodes[0].value, ':hover');
+});
+(0, _helpers.test)('nested pseudo classes', "section:not( :has(h1, h2 ) )", function (t, tree) {
+ t.deepEqual(tree.nodes[0].nodes[0].type, 'tag');
+ t.deepEqual(tree.nodes[0].nodes[0].value, 'section');
+ t.deepEqual(tree.nodes[0].nodes[1].type, 'pseudo');
+ t.deepEqual(tree.nodes[0].nodes[1].value, ':not');
+ t.deepEqual(tree.nodes[0].nodes[1].nodes[0].nodes[0].type, 'pseudo');
+ t.deepEqual(tree.nodes[0].nodes[1].nodes[0].nodes[0].value, ':has');
+ t.deepEqual(tree.nodes[0].nodes[1].nodes[0].nodes[0].nodes[0].nodes[0].type, 'tag');
+ t.deepEqual(tree.nodes[0].nodes[1].nodes[0].nodes[0].nodes[0].nodes[0].value, 'h1');
+ t.deepEqual(tree.nodes[0].nodes[1].nodes[0].nodes[0].nodes[1].nodes[0].type, 'tag');
+ t.deepEqual(tree.nodes[0].nodes[1].nodes[0].nodes[0].nodes[1].nodes[0].value, 'h2');
});
\ No newline at end of file
diff --git a/node_modules/postcss-selector-parser/dist/__tests__/universal.js b/node_modules/postcss-selector-parser/dist/__tests__/universal.js
index 019c003..c1d39b0 100644
--- a/node_modules/postcss-selector-parser/dist/__tests__/universal.js
+++ b/node_modules/postcss-selector-parser/dist/__tests__/universal.js
@@ -11,6 +11,16 @@
t.deepEqual(tree.nodes[0].nodes[1].type, 'combinator');
t.deepEqual(tree.nodes[0].nodes[2].type, 'universal');
});
+(0, _helpers.test)('universal selector with descendant combinator', '* *', function (t, tree) {
+ t.deepEqual(tree.nodes[0].nodes[0].type, 'universal');
+ t.deepEqual(tree.nodes[0].nodes[1].type, 'combinator');
+ t.deepEqual(tree.nodes[0].nodes[2].type, 'universal');
+});
+(0, _helpers.test)('universal selector with descendant combinator and extraneous non-combinating whitespace', '* *', function (t, tree) {
+ t.deepEqual(tree.nodes[0].nodes[0].type, 'universal');
+ t.deepEqual(tree.nodes[0].nodes[1].type, 'combinator');
+ t.deepEqual(tree.nodes[0].nodes[2].type, 'universal');
+});
(0, _helpers.test)('extraneous non-combinating whitespace', ' * , * ', function (t, tree) {
t.deepEqual(tree.nodes[0].nodes[0].value, '*');
t.deepEqual(tree.nodes[0].nodes[0].spaces.before, ' ');
diff --git a/node_modules/postcss-selector-parser/dist/parser.js b/node_modules/postcss-selector-parser/dist/parser.js
index 927d18a..4133ad1 100644
--- a/node_modules/postcss-selector-parser/dist/parser.js
+++ b/node_modules/postcss-selector-parser/dist/parser.js
@@ -885,7 +885,9 @@
_proto.space = function space() {
var content = this.content(); // Handle space before and after the selector
- if (this.position === 0 || this.prevToken[_tokenize.FIELDS.TYPE] === tokens.comma || this.prevToken[_tokenize.FIELDS.TYPE] === tokens.openParenthesis) {
+ if (this.position === 0 || this.prevToken[_tokenize.FIELDS.TYPE] === tokens.comma || this.prevToken[_tokenize.FIELDS.TYPE] === tokens.openParenthesis || this.current.nodes.every(function (node) {
+ return node.type === 'comment';
+ })) {
this.spaces = this.optionalSpace(content);
this.position++;
} else if (this.position === this.tokens.length - 1 || this.nextToken[_tokenize.FIELDS.TYPE] === tokens.comma || this.nextToken[_tokenize.FIELDS.TYPE] === tokens.closeParenthesis) {
diff --git a/node_modules/postcss-selector-parser/dist/selectors/attribute.js b/node_modules/postcss-selector-parser/dist/selectors/attribute.js
index 8d9c280..3212d90 100644
--- a/node_modules/postcss-selector-parser/dist/selectors/attribute.js
+++ b/node_modules/postcss-selector-parser/dist/selectors/attribute.js
@@ -22,8 +22,7 @@
function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
-var _require = require("util"),
- deprecate = _require.deprecate;
+var deprecate = require("util-deprecate");
var WRAPPED_IN_QUOTES = /^('|")(.*)\1$/;
var warnOfDeprecatedValueAssignment = deprecate(function () {}, "Assigning an attribute a value containing characters that might need to be escaped is deprecated. " + "Call attribute.setValue() instead.");
diff --git a/node_modules/postcss-selector-parser/dist/selectors/className.js b/node_modules/postcss-selector-parser/dist/selectors/className.js
index d79247d..76145bc 100644
--- a/node_modules/postcss-selector-parser/dist/selectors/className.js
+++ b/node_modules/postcss-selector-parser/dist/selectors/className.js
@@ -35,8 +35,8 @@
var _proto = ClassName.prototype;
- _proto.toString = function toString() {
- return [this.rawSpaceBefore, String('.' + this.stringifyProperty("value")), this.rawSpaceAfter].join('');
+ _proto.valueToString = function valueToString() {
+ return '.' + _Node.prototype.valueToString.call(this);
};
_createClass(ClassName, [{
diff --git a/node_modules/postcss-selector-parser/dist/selectors/guards.js b/node_modules/postcss-selector-parser/dist/selectors/guards.js
index 8cf7bcf..aa76912 100644
--- a/node_modules/postcss-selector-parser/dist/selectors/guards.js
+++ b/node_modules/postcss-selector-parser/dist/selectors/guards.js
@@ -48,7 +48,7 @@
exports.isUniversal = isUniversal;
function isPseudoElement(node) {
- return isPseudo(node) && node.value && (node.value.startsWith("::") || node.value === ":before" || node.value === ":after");
+ return isPseudo(node) && node.value && (node.value.startsWith("::") || node.value.toLowerCase() === ":before" || node.value.toLowerCase() === ":after");
}
function isPseudoClass(node) {
diff --git a/node_modules/postcss-selector-parser/dist/selectors/id.js b/node_modules/postcss-selector-parser/dist/selectors/id.js
index d93afad..541beeb 100644
--- a/node_modules/postcss-selector-parser/dist/selectors/id.js
+++ b/node_modules/postcss-selector-parser/dist/selectors/id.js
@@ -26,8 +26,8 @@
var _proto = ID.prototype;
- _proto.toString = function toString() {
- return [this.rawSpaceBefore, String('#' + this.stringifyProperty("value")), this.rawSpaceAfter].join('');
+ _proto.valueToString = function valueToString() {
+ return '#' + _Node.prototype.valueToString.call(this);
};
return ID;
diff --git a/node_modules/postcss-selector-parser/dist/selectors/namespace.js b/node_modules/postcss-selector-parser/dist/selectors/namespace.js
index 6cc6a27..c12233a 100644
--- a/node_modules/postcss-selector-parser/dist/selectors/namespace.js
+++ b/node_modules/postcss-selector-parser/dist/selectors/namespace.js
@@ -36,8 +36,8 @@
}
};
- _proto.toString = function toString() {
- return [this.rawSpaceBefore, this.qualifiedName(this.stringifyProperty("value")), this.rawSpaceAfter].join('');
+ _proto.valueToString = function valueToString() {
+ return this.qualifiedName(_Node.prototype.valueToString.call(this));
};
_createClass(Namespace, [{
diff --git a/node_modules/postcss-selector-parser/dist/selectors/node.js b/node_modules/postcss-selector-parser/dist/selectors/node.js
index 9236311..f959846 100644
--- a/node_modules/postcss-selector-parser/dist/selectors/node.js
+++ b/node_modules/postcss-selector-parser/dist/selectors/node.js
@@ -160,7 +160,7 @@
}
}
/**
- *
+ *
* @param {number} line The number (starting with 1)
* @param {number} column The column number (starting with 1)
*/
@@ -194,8 +194,12 @@
return this.raws && this.raws[name] || this[name];
};
+ _proto.valueToString = function valueToString() {
+ return String(this.stringifyProperty("value"));
+ };
+
_proto.toString = function toString() {
- return [this.rawSpaceBefore, String(this.stringifyProperty("value")), this.rawSpaceAfter].join('');
+ return [this.rawSpaceBefore, this.valueToString(), this.rawSpaceAfter].join('');
};
_createClass(Node, [{
diff --git a/node_modules/postcss-selector-parser/package.json b/node_modules/postcss-selector-parser/package.json
index 59ac86c..843e9b4 100644
--- a/node_modules/postcss-selector-parser/package.json
+++ b/node_modules/postcss-selector-parser/package.json
@@ -20,7 +20,8 @@
"dependencies": {
"cssesc": "^3.0.0",
"indexes-of": "^1.0.1",
- "uniq": "^1.0.1"
+ "uniq": "^1.0.1",
+ "util-deprecate": "^1.0.2"
},
"devDependencies": {
"@babel/cli": "^7.2.3",
@@ -40,7 +41,8 @@
"minimist": "^1.2.0",
"nyc": "^13.3.0",
"postcss": "^7.0.14",
- "semver": "^5.6.0"
+ "semver": "^5.6.0",
+ "typescript": "^4.0.3"
},
"engines": {
"node": ">=4"
@@ -66,11 +68,11 @@
"scripts": {
"lintfix": "eslint --fix src",
"prepare": "del-cli dist && BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/",
- "pretest": "eslint src",
+ "pretest": "eslint src && tsc --noEmit postcss-selector-parser.d.ts",
"report": "nyc report --reporter=html",
"test": "nyc ava src/__tests__/*.js",
"testone": "ava"
},
"types": "postcss-selector-parser.d.ts",
- "version": "6.0.2"
+ "version": "6.0.4"
}
diff --git a/node_modules/postcss-selector-parser/postcss-selector-parser.d.ts b/node_modules/postcss-selector-parser/postcss-selector-parser.d.ts
index 52bdb77..383e222 100644
--- a/node_modules/postcss-selector-parser/postcss-selector-parser.d.ts
+++ b/node_modules/postcss-selector-parser/postcss-selector-parser.d.ts
@@ -14,6 +14,9 @@
*/
export = parser;
+// A type that's T but not U.
+type Diff<T, U> = T extends U ? never : T;
+
// TODO: Conditional types in TS 1.8 will really clean this up.
declare function parser(): parser.Processor<never>;
declare function parser<Transform>(processor: parser.AsyncProcessor<Transform>): parser.Processor<Transform, never>;
@@ -203,11 +206,14 @@
interface ContainerOptions extends NodeOptions {
nodes?: Array<Node>;
}
- interface Container<Value extends string | undefined = string> extends Base<Value> {
- nodes: Array<Node>;
- append(selector: Selector): Container;
- prepend(selector: Selector): Container;
- at(index: number): Node;
+ interface Container<
+ Value extends string | undefined = string,
+ Child extends Node = Node
+ > extends Base<Value> {
+ nodes: Array<Child>;
+ append(selector: Selector): this;
+ prepend(selector: Selector): this;
+ at(index: number): Child;
/**
* Return the most specific node at the line and column number given.
* The source location is based on the original parsed location, locations aren't
@@ -221,33 +227,74 @@
* @param line The line number of the node to find. (1-based index)
* @param col The column number of the node to find. (1-based index)
*/
- atPosition(line: number, column: number): Node;
- index(child: Node): number;
- readonly first: Node;
- readonly last: Node;
+ atPosition(line: number, column: number): Child;
+ index(child: Child): number;
+ readonly first: Child;
+ readonly last: Child;
readonly length: number;
- removeChild(child: Node): Container;
+ removeChild(child: Child): this;
removeAll(): Container;
empty(): Container;
- insertAfter(oldNode: Node, newNode: Node): Container;
- insertBefore(oldNode: Node, newNode: Node): Container;
- each(callback: (node: Node) => boolean | void): boolean | undefined;
- walk(callback: (node: Node) => boolean | void): boolean | undefined;
- walkAttributes(callback: (node: Node) => boolean | void): boolean | undefined;
- walkClasses(callback: (node: Node) => boolean | void): boolean | undefined;
- walkCombinators(callback: (node: Node) => boolean | void): boolean | undefined;
- walkComments(callback: (node: Node) => boolean | void): boolean | undefined;
- walkIds(callback: (node: Node) => boolean | void): boolean | undefined;
- walkNesting(callback: (node: Node) => boolean | void): boolean | undefined;
- walkPseudos(callback: (node: Node) => boolean | void): boolean | undefined;
- walkTags(callback: (node: Node) => boolean | void): boolean | undefined;
- split(callback: (node: Node) => boolean): [Node[], Node[]];
- map(callback: (node: Node) => Node): Node[];
- reduce<T>(callback: (node: Node) => Node, memo: T): T;
- every(callback: (node: Node) => boolean): boolean;
- some(callback: (node: Node) => boolean): boolean;
- filter(callback: (node: Node) => boolean): Node[];
- sort(callback: (nodeA: Node, nodeB: Node) => number): Node[];
+ insertAfter(oldNode: Child, newNode: Child): this;
+ insertBefore(oldNode: Child, newNode: Child): this;
+ each(callback: (node: Child) => boolean | void): boolean | undefined;
+ walk(
+ callback: (node: Node) => boolean | void
+ ): boolean | undefined;
+ walkAttributes(
+ callback: (node: Attribute) => boolean | void
+ ): boolean | undefined;
+ walkClasses(
+ callback: (node: ClassName) => boolean | void
+ ): boolean | undefined;
+ walkCombinators(
+ callback: (node: Combinator) => boolean | void
+ ): boolean | undefined;
+ walkComments(
+ callback: (node: Comment) => boolean | void
+ ): boolean | undefined;
+ walkIds(
+ callback: (node: Identifier) => boolean | void
+ ): boolean | undefined;
+ walkNesting(
+ callback: (node: Nesting) => boolean | void
+ ): boolean | undefined;
+ walkPseudos(
+ callback: (node: Pseudo) => boolean | void
+ ): boolean | undefined;
+ walkTags(callback: (node: Tag) => boolean | void): boolean | undefined;
+ split(callback: (node: Child) => boolean): [Child[], Child[]];
+ map<T>(callback: (node: Child) => T): T[];
+ reduce(
+ callback: (
+ previousValue: Child,
+ currentValue: Child,
+ currentIndex: number,
+ array: readonly Child[]
+ ) => Child
+ ): Child;
+ reduce(
+ callback: (
+ previousValue: Child,
+ currentValue: Child,
+ currentIndex: number,
+ array: readonly Child[]
+ ) => Child,
+ initialValue: Child
+ ): Child;
+ reduce<T>(
+ callback: (
+ previousValue: T,
+ currentValue: Child,
+ currentIndex: number,
+ array: readonly Child[]
+ ) => T,
+ initialValue: T
+ ): T;
+ every(callback: (node: Child) => boolean): boolean;
+ some(callback: (node: Child) => boolean): boolean;
+ filter(callback: (node: Child) => boolean): Child[];
+ sort(callback: (nodeA: Child, nodeB: Child) => number): Child[];
toString(): string;
}
function isContainer(node: any): node is Root | Selector | Pseudo;
@@ -273,7 +320,7 @@
}
function isNamespace(node: any): node is Attribute | Tag;
- interface Root extends Container<undefined> {
+ interface Root extends Container<undefined, Selector> {
type: "root";
/**
* Raises an error, if the processor is invoked on
@@ -285,9 +332,10 @@
function root(opts: ContainerOptions): Root;
function isRoot(node: any): node is Root;
- interface Selector extends Container {
+ interface _Selector<S> extends Container<string, Diff<Node, S>> {
type: "selector";
}
+ type Selector = _Selector<Selector>;
function selector(opts: ContainerOptions): Selector;
function isSelector(node: any): node is Selector;
@@ -439,7 +487,7 @@
function attribute(opts: AttributeOptions): Attribute;
function isAttribute(node: any): node is Attribute;
- interface Pseudo extends Container {
+ interface Pseudo extends Container<string, Selector> {
type: "pseudo";
}
function pseudo(opts: ContainerOptions): Pseudo;