Turbopack: Auto-detect pnpm GVS and configure an additional root for it (#99758)
This implements auto-configuration (behind a flag for now) for pnpm 11+.
pnpm 10 supports GVS, but `node_modules/.modules.yaml` is actually YAML
on 10. 11 changes it to a JSON file, which lets us avoid pulling in a
YAML parser. IMO, this is fine as GVS on pnpm 10 is very experimental
(it seems like it doesn't play nicely with `packageExtensions`).
TODO in future PRs:
- bun, nub, aube support
- figure out how to support `NODE_PATH` so that hoisting works for
broken packages with phantom dependencies (users can work around this
with `packageExtensions`, pnpm documents this problem in the GVS docs)
- Switch on GVS for (most of) the Next.js e2e tests so that we have some
good coverage of this feature.
https://github.com/vercel/next.js/pull/100337