This data structure is a valid locator (so a reference to a unique package) that went through the resolution pipeline in order to extract all the extra metadata stored on the registry. It’s typically what you can find stored inside the lockfile.
bin entries defined by the package
While we don’t need the binaries during the resolution, keeping them
within the lockfile is critical to make
yarn run fast (otherwise we
need to inspect the zip content of every dependency to figure out which
binaries they export, which is too slow for a command that might be
called at every keystroke)
A set of constraints indicating whether the package supports the host environment.
A map of the package’s dependencies. There’s no distinction between prod dependencies and dev dependencies, because those have already been merged together during the resolution process.
Map with additional information about direct dependencies.
Unique hash of a package scope and name. Used as key in various places, so that two idents can be quickly compared.
The “language” of the package (eg.
node), for use with multi-linkers.
Currently experimental; will probably be renamed before stable release.
Describes the type of the file system link for a package.
Unique hash of a package locator. Used as key in various places so that two locators can be quickly compared.
Name of the package (eg.
A map of the package’s peer dependencies.
Map with additional information about peer dependencies.
The keys are stringified idents, for example:
A package reference uniquely identifies a package (eg.
Scope of the package, without the
@ prefix (eg.
The version of the package, if available.