A path to a dependency with a specific set of resolved subdependencies. It is always a valid filesystem path. It mostly equals the package ID of the dependency but may differ when:
- The package has peer dependencies which are resolved neither by its own dependencies nor with top dependencies.
- The package has dependencies with peer dependencies that are resolved from higher in the dependency tree.
In those cases the package path has the next format: <package ID>_<peer specs...> (in shrinkwrap version <=4, it is <package ID>/<peer specs...>)
E.g., if foo@1.0.0 dependends on peers bar@2.0.0 and @scope/qar@3.0.0 then its path is: /registry.npmjs.org/foo/1.0.0_bar@2.0.0+@scope+qar@3.0.0 (in shrinkwrap version <=4 /registry.npmjs.org/foo/1.0.0/bar@2.0.0+@scope!qar@3.0.0.).
Peer specs are joined with + and if a peer is scoped then the / symbol is escaped with + as well (or with ! in shrinkwrap version <=4).