vlt / docs

  • PricingBenchmarks (opens in new window)Community (opens in new window)Feedback
  • Overview
  • Attribute Selectors
  • Combinators
  • ID Selectors
  • Security Insights
    • Overview
  • Graph structure states
  • :root
  • :scope
  • :project
  • :workspace
  • Dependency type states
  • :prod
  • :dev
  • :optional
  • :peer
  • :missing
  • :overridden
  • Package property states
  • :private
  • :empty
  • :link
  • :prerelease
  • :built
  • :scanned
  • What gets selected
  • See also
  1. Client
  2. /
  3. Selectors
  4. /
  5. Overview

Pseudo-state Selectors

Pseudo-state selectors match packages based on their relationship to the project or their dependency type. Unlike pseudo-classes, they don't take arguments.

Graph structure states

SelectorDescription
:rootThe root package (top-level package.json)
:scopeThe current scope of the selector
:projectRoot node plus all workspaces
:workspaceWorkspace packages (listed in vlt.json)

:root

Returns the root node — the package defined at the top-level package.json of your project.

Terminal
$ vlt query ':root'

Commonly used with combinators to select direct dependencies:

Terminal
$ vlt query ':root > *'

:scope

Returns the current scope of the selector. Useful when using the --scope CLI flag to limit the query context.

:project

Returns the root node along with any workspaces declared in your project. Useful for selecting "your code" vs. third-party dependencies.

Terminal
$ vlt query ':project > *'

:workspace

Matches workspace packages defined in your vlt.json.

Terminal
$ vlt query ':workspace'

Find workspaces that have changed since main:

Terminal
$ vlt query ':workspace:diff(main)'

Dependency type states

SelectorDescription
:prodProduction dependencies
:devDevelopment-only dependencies
:optionalOptional dependencies
:peerPeer dependencies
:missingDependencies declared but not installed
:overriddenDependencies with an override applied

:prod

Matches production dependencies:

Terminal
$ vlt query ':prod'

:dev

Matches packages that are only used as dev dependencies:

Terminal
$ vlt query ':dev'

Find all dev dependencies that are outdated:

Terminal
$ vlt query ':dev:outdated'

:optional

Matches optional dependencies:

Terminal
$ vlt query ':optional'

:peer

Matches peer dependencies:

Terminal
$ vlt query ':peer'

:missing

Matches edges (dependency declarations) that are not resolved to any installed package. This selector returns edges only — no nodes.

Terminal
$ vlt query ':missing'

:overridden

Matches dependencies that have an override applied (via the overrides field in package.json):

Terminal
$ vlt query ':overridden'

Package property states

SelectorDescription
:privatePackages with "private": true
:emptyPackages with no dependencies
:linkLinked packages
:prereleasePackages with prerelease versions
:builtPackages successfully built during reify
:scannedPackages with security metadata

:private

Matches packages with "private": true in their package.json:

Terminal
$ vlt query ':private'

:empty

Matches packages that have no dependencies installed:

Terminal
$ vlt query ':empty'

:link

Matches linked packages only:

Terminal
$ vlt query ':link'

:prerelease

Matches packages whose version contains prerelease identifiers (e.g., 1.0.0-beta.1, 2.0.0-rc.1+rev.2, 0.0.0-canary):

Terminal
$ vlt query ':prerelease'

Find direct prerelease dependencies:

Terminal
$ vlt query ':root > :prerelease'

:built

Matches packages that have been successfully built during the reify process (have buildState set to 'built'):

Terminal
$ vlt query ':built'

:scanned

Matches packages that have Socket security metadata. See Security Insights for security-specific selectors.

Terminal
$ vlt query ':scanned'

What gets selected

Given a monorepo:

Text
my-monorepo (root)
├── packages/core (workspace, private)
│   ├── react@18.2.0 (prod)
│   └── vitest@1.0.0 (dev)
├── packages/utils (workspace)
│   └── lodash@4.17.21 (prod)
└── typescript@5.3.0 (dev)
QuerySelected
:rootmy-monorepo
:workspacecore, utils
:projectmy-monorepo, core, utils
:privatecore
:devvitest, typescript
:prodreact, lodash
:root > :devtypescript
:workspace:privatecore
:prerelease(packages with pre-versions)
:missing(edges with no resolved pkg)

See also

  • Pseudo-class Selectors — functional selectors with arguments
  • Combinators — traverse the graph
  • Security Insights — security pseudo-selectors

Previous:registry()NextAPI Reference

On this page

  • Graph structure states
  • :root
  • :scope
  • :project
  • :workspace
  • Dependency type states
  • :prod
  • :dev
  • :optional
  • :peer
  • :missing
  • :overridden
  • Package property states
  • :private
  • :empty
  • :link
  • :prerelease
  • :built
  • :scanned
  • What gets selected
  • See also
Edit this page

Deploy your package on vlt.io

Publish scoped and private packages, manage organizations and access, and give every developer and CI environment a consistent source for public and private JavaScript dependencies.

Publish now