New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

css-selector-parser

Package Overview
Dependencies
Maintainers
1
Versions
25
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

css-selector-parser - npm Package Compare versions

Comparing version 2.3.1 to 2.3.2

8

dist/cjs/index.d.ts

@@ -1,4 +0,4 @@

export { createParser, Parser, ParserError } from './parser';
export { render } from './render';
export { ast, AstAttribute, AstEntity, AstFactory, AstFormula, AstFormulaOfSelector, AstNamespaceName, AstNoNamespace, AstPseudoClass, AstRule, AstSelector, AstString, AstSubstitution, AstTagName, AstWildcardNamespace, AstWildcardTag } from './ast';
export { CssLevel, SyntaxDefinition } from './syntax-definitions';
export { createParser, Parser, ParserError } from './parser.js';
export { render } from './render.js';
export { ast, AstAttribute, AstEntity, AstFactory, AstFormula, AstFormulaOfSelector, AstNamespaceName, AstNoNamespace, AstPseudoClass, AstRule, AstSelector, AstString, AstSubstitution, AstTagName, AstWildcardNamespace, AstWildcardTag } from './ast.js';
export { CssLevel, SyntaxDefinition } from './syntax-definitions.js';
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ast = exports.render = exports.createParser = void 0;
var parser_1 = require("./parser");
Object.defineProperty(exports, "createParser", { enumerable: true, get: function () { return parser_1.createParser; } });
var render_1 = require("./render");
Object.defineProperty(exports, "render", { enumerable: true, get: function () { return render_1.render; } });
var ast_1 = require("./ast");
Object.defineProperty(exports, "ast", { enumerable: true, get: function () { return ast_1.ast; } });
var parser_js_1 = require("./parser.js");
Object.defineProperty(exports, "createParser", { enumerable: true, get: function () { return parser_js_1.createParser; } });
var render_js_1 = require("./render.js");
Object.defineProperty(exports, "render", { enumerable: true, get: function () { return render_js_1.render; } });
var ast_js_1 = require("./ast.js");
Object.defineProperty(exports, "ast", { enumerable: true, get: function () { return ast_js_1.ast; } });

@@ -1,3 +0,3 @@

import { AstSelector } from './ast';
import { CssLevel, SyntaxDefinition } from './syntax-definitions';
import { AstSelector } from './ast.js';
import { CssLevel, SyntaxDefinition } from './syntax-definitions.js';
/**

@@ -4,0 +4,0 @@ * This error is thrown when parser encounters problems in CSS string.

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createParser = void 0;
var indexes_1 = require("./indexes");
var pseudo_class_signatures_1 = require("./pseudo-class-signatures");
var syntax_definitions_1 = require("./syntax-definitions");
var utils_1 = require("./utils");
var indexes_js_1 = require("./indexes.js");
var pseudo_class_signatures_js_1 = require("./pseudo-class-signatures.js");
var syntax_definitions_js_1 = require("./syntax-definitions.js");
var utils_js_1 = require("./utils.js");
var errorPrefix = "css-selector-parser parse error: ";

@@ -16,8 +16,8 @@ /**

// noinspection SuspiciousTypeOfGuard
var syntaxDefinition = typeof syntax === 'string' ? syntax_definitions_1.cssSyntaxDefinitions[syntax] : syntax;
var syntaxDefinition = typeof syntax === 'string' ? syntax_definitions_js_1.cssSyntaxDefinitions[syntax] : syntax;
if (syntaxDefinition.baseSyntax) {
syntaxDefinition = (0, syntax_definitions_1.extendSyntaxDefinition)(syntax_definitions_1.cssSyntaxDefinitions[syntaxDefinition.baseSyntax], syntaxDefinition);
syntaxDefinition = (0, syntax_definitions_js_1.extendSyntaxDefinition)(syntax_definitions_js_1.cssSyntaxDefinitions[syntaxDefinition.baseSyntax], syntaxDefinition);
}
var _c = syntaxDefinition.tag
? [true, Boolean((0, syntax_definitions_1.getXmlOptions)(syntaxDefinition.tag).wildcard)]
? [true, Boolean((0, syntax_definitions_js_1.getXmlOptions)(syntaxDefinition.tag).wildcard)]
: [false, false], tagNameEnabled = _c[0], tagNameWildcardEnabled = _c[1];

@@ -34,4 +34,4 @@ var idEnabled = Boolean(syntaxDefinition.ids);

var combinatorsIndex = syntaxDefinition.combinators
? (0, indexes_1.createMulticharIndex)(syntaxDefinition.combinators)
: indexes_1.emptyMulticharIndex;
? (0, indexes_js_1.createMulticharIndex)(syntaxDefinition.combinators)
: indexes_js_1.emptyMulticharIndex;
var _d = syntaxDefinition.attributes

@@ -41,10 +41,10 @@ ? [

syntaxDefinition.attributes.operators
? (0, indexes_1.createMulticharIndex)(syntaxDefinition.attributes.operators)
: indexes_1.emptyMulticharIndex,
? (0, indexes_js_1.createMulticharIndex)(syntaxDefinition.attributes.operators)
: indexes_js_1.emptyMulticharIndex,
syntaxDefinition.attributes.caseSensitivityModifiers
? (0, indexes_1.createRegularIndex)(syntaxDefinition.attributes.caseSensitivityModifiers)
: indexes_1.emptyRegularIndex,
? (0, indexes_js_1.createRegularIndex)(syntaxDefinition.attributes.caseSensitivityModifiers)
: indexes_js_1.emptyRegularIndex,
syntaxDefinition.attributes.unknownCaseSensitivityModifiers === 'accept'
]
: [false, indexes_1.emptyMulticharIndex, indexes_1.emptyRegularIndex, false], attributesEnabled = _d[0], attributesOperatorsIndex = _d[1], attributesCaseSensitivityModifiers = _d[2], attributesAcceptUnknownCaseSensitivityModifiers = _d[3];
: [false, indexes_js_1.emptyMulticharIndex, indexes_js_1.emptyRegularIndex, false], attributesEnabled = _d[0], attributesOperatorsIndex = _d[1], attributesCaseSensitivityModifiers = _d[2], attributesAcceptUnknownCaseSensitivityModifiers = _d[3];
var attributesCaseSensitivityModifiersEnabled = attributesAcceptUnknownCaseSensitivityModifiers || Object.keys(attributesCaseSensitivityModifiers).length > 0;

@@ -55,7 +55,7 @@ var _e = syntaxDefinition.pseudoClasses

syntaxDefinition.pseudoClasses.definitions
? (0, pseudo_class_signatures_1.calculatePseudoClassSignatures)(syntaxDefinition.pseudoClasses.definitions)
: pseudo_class_signatures_1.emptyPseudoClassSignatures,
? (0, pseudo_class_signatures_js_1.calculatePseudoClassSignatures)(syntaxDefinition.pseudoClasses.definitions)
: pseudo_class_signatures_js_1.emptyPseudoClassSignatures,
syntaxDefinition.pseudoClasses.unknown === 'accept'
]
: [false, pseudo_class_signatures_1.emptyPseudoClassSignatures, false], pseudoClassesEnabled = _e[0], paeudoClassesDefinitions = _e[1], pseudoClassesAcceptUnknown = _e[2];
: [false, pseudo_class_signatures_js_1.emptyPseudoClassSignatures, false], pseudoClassesEnabled = _e[0], paeudoClassesDefinitions = _e[1], pseudoClassesAcceptUnknown = _e[2];
var _f = syntaxDefinition.pseudoElements

@@ -70,7 +70,7 @@ ? [

syntaxDefinition.pseudoElements.definitions
? (0, indexes_1.createRegularIndex)(syntaxDefinition.pseudoElements.definitions)
: indexes_1.emptyRegularIndex,
? (0, indexes_js_1.createRegularIndex)(syntaxDefinition.pseudoElements.definitions)
: indexes_js_1.emptyRegularIndex,
syntaxDefinition.pseudoElements.unknown === 'accept'
]
: [false, false, false, indexes_1.emptyRegularIndex, false], pseudoElementsEnabled = _f[0], pseudoElementsSingleColonNotationEnabled = _f[1], pseudoElementsDoubleColonNotationEnabled = _f[2], pseudoElementsIndex = _f[3], pseudoElementsAcceptUnknown = _f[4];
: [false, false, false, indexes_js_1.emptyRegularIndex, false], pseudoElementsEnabled = _f[0], pseudoElementsSingleColonNotationEnabled = _f[1], pseudoElementsDoubleColonNotationEnabled = _f[2], pseudoElementsIndex = _f[3], pseudoElementsAcceptUnknown = _f[4];
var str = '';

@@ -81,3 +81,3 @@ var l = str.length;

var is = function (comparison) { return chr === comparison; };
var isTagStart = function () { return is('*') || (0, utils_1.isIdentStart)(chr) || is('\\'); };
var isTagStart = function () { return is('*') || (0, utils_js_1.isIdentStart)(chr) || is('\\'); };
var rewind = function (newPos) {

@@ -143,3 +143,3 @@ pos = newPos;

var hex = readAndNext();
while ((0, utils_1.isHex)(chr)) {
while ((0, utils_js_1.isHex)(chr)) {
hex += readAndNext();

@@ -166,6 +166,6 @@ }

}
else if ((esc = utils_1.stringEscapeChars[chr]) !== undefined) {
else if ((esc = utils_js_1.stringEscapeChars[chr]) !== undefined) {
result += esc;
}
else if ((0, utils_1.isHex)(chr)) {
else if ((0, utils_js_1.isHex)(chr)) {
result += parseHex();

@@ -188,3 +188,3 @@ continue;

while (pos < l) {
if ((0, utils_1.isIdent)(chr)) {
if ((0, utils_js_1.isIdent)(chr)) {
result += readAndNext();

@@ -195,3 +195,3 @@ }

assertNonEof();
if ((0, utils_1.isHex)(chr)) {
if ((0, utils_js_1.isHex)(chr)) {
result += parseHex();

@@ -221,3 +221,3 @@ }

assertNonEof();
if ((0, utils_1.isHex)(chr)) {
if ((0, utils_js_1.isHex)(chr)) {
result += parseHex();

@@ -236,3 +236,3 @@ }

function skipWhitespace() {
while (utils_1.whitespaceChars[chr]) {
while (utils_js_1.whitespaceChars[chr]) {
next();

@@ -288,3 +288,3 @@ }

next();
if ((0, utils_1.isIdentStart)(chr) || is('\\')) {
if ((0, utils_js_1.isIdentStart)(chr) || is('\\')) {
assert(namespaceEnabled, 'Namespaces are not enabled.');

@@ -315,3 +315,3 @@ attr = {

assertNonEof();
if (utils_1.quoteChars[chr]) {
if (utils_js_1.quoteChars[chr]) {
attr.value = {

@@ -356,24 +356,36 @@ type: 'String',

}
function parseNumber(signed) {
function parseNumber() {
var result = '';
if (signed && is('-')) {
result = readAndNext();
}
while (utils_1.digitsChars[chr]) {
while (utils_js_1.digitsChars[chr]) {
result += readAndNext();
}
assert(result !== '' && result !== '-', 'Formula parse error.');
assert(result !== '', 'Formula parse error.');
return parseInt(result);
}
var isNumberStart = function () { return is('-') || is('+') || utils_1.digitsChars[chr]; };
var isNumberStart = function () { return is('-') || is('+') || utils_js_1.digitsChars[chr]; };
function parseFormula() {
if (is('e') || is('o')) {
var ident = parseIdentifier();
if (ident === 'even') {
skipWhitespace();
return [2, 0];
}
if (ident === 'odd') {
skipWhitespace();
return [2, 1];
}
}
var firstNumber = null;
var firstNumberMultiplier = 1;
if (is('-')) {
next();
firstNumberMultiplier = -1;
}
if (isNumberStart()) {
if (is('+')) {
next();
assert(!is('-'), 'Formula parse error.');
}
firstNumber = parseNumber(true);
firstNumber = parseNumber();
if (!is('\\') && !is('n')) {
return [0, firstNumber];
return [0, firstNumber * firstNumberMultiplier];
}

@@ -384,12 +396,17 @@ }

}
var ident = parseIdentifier();
if (ident === 'even') {
skipWhitespace();
return [2, 0];
firstNumber *= firstNumberMultiplier;
var identifier;
if (is('\\')) {
next();
if ((0, utils_js_1.isHex)(chr)) {
identifier = parseHex();
}
else {
identifier = readAndNext();
}
}
if (ident === 'odd') {
skipWhitespace();
return [2, 1];
else {
identifier = readAndNext();
}
assert(ident === 'n', 'Formula parse error');
assert(identifier === 'n', 'Formula parse error: expected "n".');
skipWhitespace();

@@ -400,3 +417,3 @@ if (is('+') || is('-')) {

skipWhitespace();
return [firstNumber, sign * parseNumber(false)];
return [firstNumber, sign * parseNumber()];
}

@@ -414,3 +431,3 @@ else {

if (!pseudoDefinition && pseudoClassesAcceptUnknown) {
pseudoDefinition = pseudo_class_signatures_1.defaultPseudoClassSignature;
pseudoDefinition = pseudo_class_signatures_js_1.defaultPseudoClassSignature;
}

@@ -482,3 +499,3 @@ assert(pseudoDefinition, "Unknown pseudo-class: \"".concat(pseudoName, "\"."));

}
else if ((0, utils_1.isIdentStart)(chr) || is('\\')) {
else if ((0, utils_js_1.isIdentStart)(chr) || is('\\')) {
assert(tagNameEnabled, 'Tag names are not enabled.');

@@ -520,3 +537,3 @@ return {

}
else if ((0, utils_1.isIdentStart)(chr) || is('\\')) {
else if ((0, utils_js_1.isIdentStart)(chr) || is('\\')) {
var identifier = parseIdentifier();

@@ -617,3 +634,3 @@ if (!is('|')) {

rule.pseudoElement = pseudoName;
if (!utils_1.whitespaceChars[chr] && !is(',') && !is(')') && !isEof()) {
if (!utils_js_1.whitespaceChars[chr] && !is(',') && !is(')') && !isEof()) {
return fail('Pseudo-element should be the last component of a CSS selector rule.');

@@ -620,0 +637,0 @@ }

@@ -1,2 +0,2 @@

import { PseudoClassType } from './syntax-definitions';
import { PseudoClassType } from './syntax-definitions.js';
export type PseudoClassSignature = {

@@ -3,0 +3,0 @@ optional: boolean;

@@ -1,2 +0,2 @@

import { AstRule, AstSelector } from './ast';
import { AstRule, AstSelector } from './ast.js';
/**

@@ -3,0 +3,0 @@ * Renders CSS Selector AST back to a string.

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.render = void 0;
var utils_1 = require("./utils");
var utils_js_1 = require("./utils.js");
function renderNamespace(namespace) {

@@ -10,3 +10,3 @@ if (namespace.type === 'WildcardNamespace') {

else if (namespace.type === 'NamespaceName') {
return "".concat((0, utils_1.escapeIdentifier)(namespace.name), "|");
return "".concat((0, utils_js_1.escapeIdentifier)(namespace.name), "|");
}

@@ -19,7 +19,7 @@ else if (namespace.type === 'NoNamespace') {

function renderSubstitution(sub) {
return "$".concat((0, utils_1.escapeIdentifier)(sub.name));
return "$".concat((0, utils_js_1.escapeIdentifier)(sub.name));
}
function renderFormula(a, b) {
if (a) {
var result = "".concat(a === 1 ? '' : a, "n");
var result = "".concat(a === 1 ? '' : a === -1 ? '-' : a, "n");
if (b) {

@@ -60,3 +60,6 @@ result += "".concat(b > 0 ? '+' : '').concat(b);

var result = '';
var tag = entity.tag, ids = entity.ids, classNames = entity.classNames, attributes = entity.attributes, pseudoClasses = entity.pseudoClasses, pseudoElement = entity.pseudoElement, nestedRule = entity.nestedRule;
var tag = entity.tag, ids = entity.ids, classNames = entity.classNames, attributes = entity.attributes, pseudoClasses = entity.pseudoClasses, pseudoElement = entity.pseudoElement, combinator = entity.combinator, nestedRule = entity.nestedRule;
if (combinator) {
result += "".concat(combinator, " ");
}
if (tag) {

@@ -68,3 +71,3 @@ var namespace = tag.namespace;

if (tag.type === 'TagName') {
result += (0, utils_1.escapeIdentifier)(tag.name);
result += (0, utils_js_1.escapeIdentifier)(tag.name);
}

@@ -81,3 +84,3 @@ else if (tag.type === 'WildcardTag') {

var id = ids_1[_i];
result += "#".concat((0, utils_1.escapeIdentifier)(id));
result += "#".concat((0, utils_js_1.escapeIdentifier)(id));
}

@@ -88,3 +91,3 @@ }

var className = classNames_1[_a];
result += ".".concat((0, utils_1.escapeIdentifier)(className));
result += ".".concat((0, utils_js_1.escapeIdentifier)(className));
}

@@ -99,7 +102,7 @@ }

}
result += (0, utils_1.escapeIdentifier)(name_1);
result += (0, utils_js_1.escapeIdentifier)(name_1);
if (operator && value) {
result += operator;
if (value.type === 'String') {
result += (0, utils_1.escapeStr)(value.value);
result += (0, utils_js_1.escapeStr)(value.value);
}

@@ -113,3 +116,3 @@ else if (value.type === 'Substitution') {

if (caseSensitivityModifier) {
result += " ".concat((0, utils_1.escapeIdentifier)(caseSensitivityModifier));
result += " ".concat((0, utils_js_1.escapeIdentifier)(caseSensitivityModifier));
}

@@ -123,3 +126,3 @@ }

var _e = pseudoClasses_1[_d], name_2 = _e.name, argument = _e.argument;
result += ":".concat((0, utils_1.escapeIdentifier)(name_2));
result += ":".concat((0, utils_js_1.escapeIdentifier)(name_2));
if (argument) {

@@ -131,3 +134,3 @@ result += '(';

else if (argument.type === 'String') {
result += (0, utils_1.escapePseudoClassString)(argument.value);
result += (0, utils_js_1.escapePseudoClassString)(argument.value);
}

@@ -153,8 +156,5 @@ else if (argument.type === 'Formula') {

if (pseudoElement) {
result += "::".concat((0, utils_1.escapeIdentifier)(pseudoElement));
result += "::".concat((0, utils_js_1.escapeIdentifier)(pseudoElement));
}
if (nestedRule) {
if (nestedRule.combinator) {
result += " ".concat(nestedRule.combinator);
}
result += " ".concat(render(nestedRule));

@@ -161,0 +161,0 @@ }

@@ -1,2 +0,2 @@

import { AstPseudoClassArgument } from './ast';
import { AstPseudoClassArgument } from './ast.js';
export type PseudoClassType = 'NoArgument' | AstPseudoClassArgument['type'];

@@ -3,0 +3,0 @@ export type CssLevel = 'css1' | 'css2' | 'css3' | 'selectors-3' | 'selectors-4' | 'latest' | 'progressive';

@@ -1,4 +0,4 @@

export { createParser, Parser, ParserError } from './parser';
export { render } from './render';
export { ast, AstAttribute, AstEntity, AstFactory, AstFormula, AstFormulaOfSelector, AstNamespaceName, AstNoNamespace, AstPseudoClass, AstRule, AstSelector, AstString, AstSubstitution, AstTagName, AstWildcardNamespace, AstWildcardTag } from './ast';
export { CssLevel, SyntaxDefinition } from './syntax-definitions';
export { createParser, Parser, ParserError } from './parser.js';
export { render } from './render.js';
export { ast, AstAttribute, AstEntity, AstFactory, AstFormula, AstFormulaOfSelector, AstNamespaceName, AstNoNamespace, AstPseudoClass, AstRule, AstSelector, AstString, AstSubstitution, AstTagName, AstWildcardNamespace, AstWildcardTag } from './ast.js';
export { CssLevel, SyntaxDefinition } from './syntax-definitions.js';

@@ -1,3 +0,3 @@

export { createParser } from './parser';
export { render } from './render';
export { ast } from './ast';
export { createParser } from './parser.js';
export { render } from './render.js';
export { ast } from './ast.js';

@@ -1,3 +0,3 @@

import { AstSelector } from './ast';
import { CssLevel, SyntaxDefinition } from './syntax-definitions';
import { AstSelector } from './ast.js';
import { CssLevel, SyntaxDefinition } from './syntax-definitions.js';
/**

@@ -4,0 +4,0 @@ * This error is thrown when parser encounters problems in CSS string.

@@ -1,5 +0,5 @@

import { createMulticharIndex, createRegularIndex, emptyMulticharIndex, emptyRegularIndex } from './indexes';
import { calculatePseudoClassSignatures, defaultPseudoClassSignature, emptyPseudoClassSignatures } from './pseudo-class-signatures';
import { cssSyntaxDefinitions, extendSyntaxDefinition, getXmlOptions } from './syntax-definitions';
import { digitsChars, isHex, isIdent, isIdentStart, quoteChars, stringEscapeChars, whitespaceChars } from './utils';
import { createMulticharIndex, createRegularIndex, emptyMulticharIndex, emptyRegularIndex } from './indexes.js';
import { calculatePseudoClassSignatures, defaultPseudoClassSignature, emptyPseudoClassSignatures } from './pseudo-class-signatures.js';
import { cssSyntaxDefinitions, extendSyntaxDefinition, getXmlOptions } from './syntax-definitions.js';
import { digitsChars, isHex, isIdent, isIdentStart, quoteChars, stringEscapeChars, whitespaceChars } from './utils.js';
const errorPrefix = `css-selector-parser parse error: `;

@@ -337,11 +337,8 @@ /**

}
function parseNumber(signed) {
function parseNumber() {
let result = '';
if (signed && is('-')) {
result = readAndNext();
}
while (digitsChars[chr]) {
result += readAndNext();
}
assert(result !== '' && result !== '-', 'Formula parse error.');
assert(result !== '', 'Formula parse error.');
return parseInt(result);

@@ -351,11 +348,26 @@ }

function parseFormula() {
if (is('e') || is('o')) {
const ident = parseIdentifier();
if (ident === 'even') {
skipWhitespace();
return [2, 0];
}
if (ident === 'odd') {
skipWhitespace();
return [2, 1];
}
}
let firstNumber = null;
let firstNumberMultiplier = 1;
if (is('-')) {
next();
firstNumberMultiplier = -1;
}
if (isNumberStart()) {
if (is('+')) {
next();
assert(!is('-'), 'Formula parse error.');
}
firstNumber = parseNumber(true);
firstNumber = parseNumber();
if (!is('\\') && !is('n')) {
return [0, firstNumber];
return [0, firstNumber * firstNumberMultiplier];
}

@@ -366,12 +378,17 @@ }

}
const ident = parseIdentifier();
if (ident === 'even') {
skipWhitespace();
return [2, 0];
firstNumber *= firstNumberMultiplier;
let identifier;
if (is('\\')) {
next();
if (isHex(chr)) {
identifier = parseHex();
}
else {
identifier = readAndNext();
}
}
if (ident === 'odd') {
skipWhitespace();
return [2, 1];
else {
identifier = readAndNext();
}
assert(ident === 'n', 'Formula parse error');
assert(identifier === 'n', 'Formula parse error: expected "n".');
skipWhitespace();

@@ -382,3 +399,3 @@ if (is('+') || is('-')) {

skipWhitespace();
return [firstNumber, sign * parseNumber(false)];
return [firstNumber, sign * parseNumber()];
}

@@ -385,0 +402,0 @@ else {

@@ -1,2 +0,2 @@

import { PseudoClassType } from './syntax-definitions';
import { PseudoClassType } from './syntax-definitions.js';
export type PseudoClassSignature = {

@@ -3,0 +3,0 @@ optional: boolean;

@@ -1,2 +0,2 @@

import { AstRule, AstSelector } from './ast';
import { AstRule, AstSelector } from './ast.js';
/**

@@ -3,0 +3,0 @@ * Renders CSS Selector AST back to a string.

@@ -1,2 +0,2 @@

import { escapeIdentifier, escapePseudoClassString, escapeStr } from './utils';
import { escapeIdentifier, escapePseudoClassString, escapeStr } from './utils.js';
function renderNamespace(namespace) {

@@ -19,3 +19,3 @@ if (namespace.type === 'WildcardNamespace') {

if (a) {
let result = `${a === 1 ? '' : a}n`;
let result = `${a === 1 ? '' : a === -1 ? '-' : a}n`;
if (b) {

@@ -56,3 +56,6 @@ result += `${b > 0 ? '+' : ''}${b}`;

let result = '';
const { tag, ids, classNames, attributes, pseudoClasses, pseudoElement, nestedRule } = entity;
const { tag, ids, classNames, attributes, pseudoClasses, pseudoElement, combinator, nestedRule } = entity;
if (combinator) {
result += `${combinator} `;
}
if (tag) {

@@ -141,5 +144,2 @@ const namespace = tag.namespace;

if (nestedRule) {
if (nestedRule.combinator) {
result += ` ${nestedRule.combinator}`;
}
result += ` ${render(nestedRule)}`;

@@ -146,0 +146,0 @@ }

@@ -1,2 +0,2 @@

import { AstPseudoClassArgument } from './ast';
import { AstPseudoClassArgument } from './ast.js';
export type PseudoClassType = 'NoArgument' | AstPseudoClassArgument['type'];

@@ -3,0 +3,0 @@ export type CssLevel = 'css1' | 'css2' | 'css3' | 'selectors-3' | 'selectors-4' | 'latest' | 'progressive';

{
"name": "css-selector-parser",
"version": "2.3.1",
"version": "2.3.2",
"description": "Powerful and compliant CSS selector parser.",

@@ -41,2 +41,3 @@ "keywords": [

"jest": "^29.5.0",
"jest-ts-webcompat-resolver": "^1.0.0",
"prettier": "^2.2.1",

@@ -69,5 +70,6 @@ "standard-version": "^9.5.0",

"test": "jest test",
"test:watch": "jest --watch test",
"test:dist": "TEST_DIST=cjs npm run test",
"lint": "eslint src/**.ts",
"lint:fix": "eslint --fix src/**.ts",
"lint": "eslint {src,test,benchmark}/**.ts",
"lint:fix": "eslint --fix {src,test,benchmark}/**.ts",
"benchmark": "ts-node benchmark/benchmark.ts",

@@ -74,0 +76,0 @@ "release": "standard-version",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc