
Product
Introducing PHP and Composer Support in Socket
Socket now supports PHP with full Composer and Packagist integration, enabling developers to search packages, generate SBOMs, and protect their PHP dependencies from supply chain threats.
@frontmeans/doqry
Advanced tools
Doqry represents CSS selectors as data structures rather than trying to parse selectors text.
Structured CSS selector is one of:
Raw CSS selector text is never interpreted and is used verbatim.
CSS combinator is one of: >, +, or ~.
CSS selector part is a structure representing selectors like
element-name#id.class1.classN[attr1][attr2]:pseudo-class::pseudo-element.
Each selector part is represented by corresponding property:
{ e: 'element-name' } for element-name.{ ns: 'ns-prefix', e: 'element-name' } for ns-prefix | element-name.{ e: '*' }, which is the same as {} for *.{ ns: 'ns-prefix', e: '*' }, which is the same as { ns: 'ns-prefix' } for ns-prefix | *.{ i: 'element-id' } for #element-id.{ c: 'class-name' } for .class-name.{ c: ['class-1', 'class-2'] } for .class-1.class-2.{ u: ['disabled'] } for [disabled],
{ u: ['lang', '|=', 'en'] } for [lang |= "en"].{ e: 'li', u: ['::', 'after'] } for li::after.{ u: [':', 'host', { c: 'active' }] } for :host(.active),
{ u: [':', 'is', [{ e: 'ul' }, '>', { e: 'li' }], [{ c: 'menu'}, { c: 'menu-item'}]] }
for :is(ul > li, .menu > .menu-item){ e: 'a', s: '[href^=https://]:visited' } for a[href^=https://]:visited.{ s: '.my-selector' } for .my-selector.Selector part may combine multiple properties. Parts may be combined too.
E.g. [{ e: 'ul', c: 'unstyled' }, '>', { e: 'li' }] corresponds to ul.unstyled > li CSS selector.
CSS selector may include qualifiers. Qualifiers do not correspond to CSS selectors directly. Instead, they are used internally to classify selectors. E.g. they may represent at-rule selectors.
Qualifiers represented by $ property of structured CSS selector part, that may contain either one qualifier, or an
array of qualifiers:
{ c: 'sr-only', $: '@media=screen' }.
Each qualifier is a string in the <name>[=<value>] format, where the <name> may be qualified and consist of multiple
colon-separated parts like block:visibility:hidden.
The presence of q1:q2:q3=v qualifier means the same as presence of q1, q1:q2, q1:q2:q3, and q1:q2:q3=v
qualifiers.
The following operations over structure CSS selectors supported:
doqryDisplayText(selector) - Converts selector to textual representation including qualifiers.doqryEqual(first, second) - Checks whether the first selector equals to the second one.doqryPicker(selector) - Normalizes selector representation and converts it to CSS picker.doqryText(selector, format?) - Converts selector to textual representation in the given format.
By default, converts to representation that can be used in CSS (i.e. without qualifiers).FAQs
Document query notation for CSS selectors
We found that @frontmeans/doqry demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Product
Socket now supports PHP with full Composer and Packagist integration, enabling developers to search packages, generate SBOMs, and protect their PHP dependencies from supply chain threats.

Security News
An AI agent is merging PRs into major OSS projects and cold-emailing maintainers to drum up more work.

Research
/Security News
Chrome extension CL Suite by @CLMasters neutralizes 2FA for Facebook and Meta Business accounts while exfiltrating Business Manager contact and analytics data.