From ce7ae0e9e2377d688d6d772b3c43df67479a5d65 Mon Sep 17 00:00:00 2001
From: Connor Pearson <cjp822@gmail.com>
Date: Wed, 4 Aug 2021 09:58:29 +0200
Subject: [PATCH] feat: support updating the volta-pinned npm version (#11030)

Co-authored-by: Rhys Arkins <rhys@arkins.net>
---
 lib/manager/npm/extract/__snapshots__/index.spec.ts.snap | 7 +++++++
 lib/manager/npm/extract/index.spec.ts                    | 1 +
 lib/manager/npm/extract/index.ts                         | 2 ++
 lib/manager/npm/readme.md                                | 2 +-
 4 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/lib/manager/npm/extract/__snapshots__/index.spec.ts.snap b/lib/manager/npm/extract/__snapshots__/index.spec.ts.snap
index 8f96b95467..2dd06d7b1b 100644
--- a/lib/manager/npm/extract/__snapshots__/index.spec.ts.snap
+++ b/lib/manager/npm/extract/__snapshots__/index.spec.ts.snap
@@ -400,9 +400,16 @@ Object {
     },
     Object {
       "currentValue": "5.9.0",
+      "datasource": "npm",
       "depName": "npm",
       "depType": "volta",
       "prettyDepType": "volta",
+    },
+    Object {
+      "currentValue": "6.11.2",
+      "depName": "pnpm",
+      "depType": "volta",
+      "prettyDepType": "volta",
       "skipReason": "unknown-volta",
     },
   ],
diff --git a/lib/manager/npm/extract/index.spec.ts b/lib/manager/npm/extract/index.spec.ts
index 83a3a08b5a..055d6e1a17 100644
--- a/lib/manager/npm/extract/index.spec.ts
+++ b/lib/manager/npm/extract/index.spec.ts
@@ -270,6 +270,7 @@ describe(getName(), () => {
           node: '8.9.2',
           yarn: '1.12.3',
           npm: '5.9.0',
+          pnpm: '6.11.2',
         },
       };
       const pJsonStr = JSON.stringify(pJson);
diff --git a/lib/manager/npm/extract/index.ts b/lib/manager/npm/extract/index.ts
index 56f0552712..d1d2bdacef 100644
--- a/lib/manager/npm/extract/index.ts
+++ b/lib/manager/npm/extract/index.ts
@@ -213,6 +213,8 @@ export async function extractPackageFile(
       } else if (depName === 'yarn') {
         dep.datasource = npmId;
         dep.commitMessageTopic = 'Yarn';
+      } else if (depName === 'npm') {
+        dep.datasource = npmId;
       } else {
         dep.skipReason = SkipReason.UnknownVolta;
       }
diff --git a/lib/manager/npm/readme.md b/lib/manager/npm/readme.md
index ae66e58fb3..9dc4941bbc 100644
--- a/lib/manager/npm/readme.md
+++ b/lib/manager/npm/readme.md
@@ -5,4 +5,4 @@ The following `depTypes` are currently supported by the npm manager :
 - `optionalDependencies`
 - `peerDependencies`
 - `engines` : Renovate will update any `node`, `npm` and `yarn` version specified under `engines`.
-- `volta` : Renovate will update any `node` and `yarn` version specified under `volta`.
+- `volta` : Renovate will update any `node`, `npm` and `yarn` version specified under `volta`.
-- 
GitLab