diff --git a/lib/workers/dep-type/package-json.js b/lib/manager/npm/extract.js
similarity index 100%
rename from lib/workers/dep-type/package-json.js
rename to lib/manager/npm/extract.js
diff --git a/lib/workers/dep-type/index.js b/lib/workers/dep-type/index.js
index 750c89ef432e990c74d24cf5fc9e9e9de3dc0b17..511b50c4c167c3ececd1b4c379e86cdfbe2860c0 100644
--- a/lib/workers/dep-type/index.js
+++ b/lib/workers/dep-type/index.js
@@ -1,6 +1,6 @@
 const configParser = require('../../config');
 const pkgWorker = require('../package');
-const packageJson = require('./package-json');
+const npmExtract = require('../../manager/npm/extract');
 const dockerExtract = require('../../manager/docker/extract');
 const meteorExtract = require('../../manager/meteor/extract');
 const nodeExtract = require('../../manager/node/extract');
@@ -31,7 +31,7 @@ async function renovateDepType(
   const { manager } = config;
   if (manager === 'npm') {
     // Extract all dependencies from the package.json
-    deps = await packageJson.extractDependencies(
+    deps = await npmExtract.extractDependencies(
       packageContent,
       config.depType,
       packageLockParsed,
diff --git a/test/workers/dep-type/__snapshots__/package-json.spec.js.snap b/test/manager/npm/__snapshots__/extract.spec.js.snap
similarity index 85%
rename from test/workers/dep-type/__snapshots__/package-json.spec.js.snap
rename to test/manager/npm/__snapshots__/extract.spec.js.snap
index a5113479c14d7ab72952e7a50fd9688cf48f51fe..5090fa33da90f7b8cce433fe32f15d6d1901756b 100644
--- a/test/workers/dep-type/__snapshots__/package-json.spec.js.snap
+++ b/test/manager/npm/__snapshots__/extract.spec.js.snap
@@ -1,6 +1,6 @@
 // Jest Snapshot v1, https://goo.gl/fbAQLP
 
-exports[`workers/dep-type/package-json .extractDependencies(packageJson, depType) each element contains non-null depType, depName, currentVersion 1`] = `
+exports[`workers/dep-type/package-json .extractDependencies(npmExtract, depType) each element contains non-null depType, depName, currentVersion 1`] = `
 Array [
   Object {
     "currentVersion": "6.5.0",
diff --git a/test/workers/dep-type/package-json.spec.js b/test/manager/npm/extract.spec.js
similarity index 82%
rename from test/workers/dep-type/package-json.spec.js
rename to test/manager/npm/extract.spec.js
index 235a386c02a8cf7d1e924901c8dbeda205c0ee2b..29a62c8e1028739275745b254f41b8d06e31fabf 100644
--- a/test/workers/dep-type/package-json.spec.js
+++ b/test/manager/npm/extract.spec.js
@@ -1,6 +1,6 @@
 const fs = require('fs');
 const path = require('path');
-const packageJson = require('../../../lib/workers/dep-type/package-json');
+const npmExtract = require('../../../lib/manager/npm/extract');
 
 function readFixture(fixture) {
   return fs.readFileSync(
@@ -13,9 +13,9 @@ const input01Content = readFixture('inputs/01.json');
 const input02Content = readFixture('inputs/02.json');
 
 describe('workers/dep-type/package-json', () => {
-  describe('.extractDependencies(packageJson, depType)', () => {
+  describe('.extractDependencies(npmExtract, depType)', () => {
     it('returns an array of correct length (dependencies)', () => {
-      const extractedDependencies = packageJson.extractDependencies(
+      const extractedDependencies = npmExtract.extractDependencies(
         JSON.parse(input01Content),
         'dependencies'
       );
@@ -23,7 +23,7 @@ describe('workers/dep-type/package-json', () => {
       extractedDependencies.should.have.length(6);
     });
     it('returns an array of correct length (devDependencies)', () => {
-      const extractedDependencies = packageJson.extractDependencies(
+      const extractedDependencies = npmExtract.extractDependencies(
         JSON.parse(input01Content),
         'devDependencies'
       );
@@ -31,7 +31,7 @@ describe('workers/dep-type/package-json', () => {
       extractedDependencies.should.have.length(4);
     });
     it('each element contains non-null depType, depName, currentVersion', () => {
-      const extractedDependencies = packageJson.extractDependencies(
+      const extractedDependencies = npmExtract.extractDependencies(
         JSON.parse(input01Content),
         'dependencies'
       );
@@ -41,7 +41,7 @@ describe('workers/dep-type/package-json', () => {
         .should.eql(true);
     });
     it('supports null devDependencies indirect', () => {
-      const extractedDependencies = packageJson.extractDependencies(
+      const extractedDependencies = npmExtract.extractDependencies(
         JSON.parse(input02Content),
         'dependencies'
       );
@@ -49,7 +49,7 @@ describe('workers/dep-type/package-json', () => {
       extractedDependencies.should.have.length(6);
     });
     it('supports null', () => {
-      const extractedDependencies = packageJson.extractDependencies(
+      const extractedDependencies = npmExtract.extractDependencies(
         JSON.parse(input02Content),
         'fooDependencies'
       );
@@ -60,7 +60,7 @@ describe('workers/dep-type/package-json', () => {
       const packageLockParsed = {
         dependencies: { chalk: { version: '2.0.1' } },
       };
-      const extractedDependencies = packageJson.extractDependencies(
+      const extractedDependencies = npmExtract.extractDependencies(
         { dependencies: { chalk: '^2.0.0', foo: '^1.0.0' } },
         'dependencies',
         packageLockParsed
@@ -74,7 +74,7 @@ describe('workers/dep-type/package-json', () => {
       const yarnLockParsed = {
         object: { 'chalk@^2.0.0': { version: '2.0.1' } },
       };
-      const extractedDependencies = packageJson.extractDependencies(
+      const extractedDependencies = npmExtract.extractDependencies(
         { dependencies: { chalk: '^2.0.0', foo: '^1.0.0' } },
         'dependencies',
         undefined,
@@ -86,7 +86,7 @@ describe('workers/dep-type/package-json', () => {
       expect(extractedDependencies[1].lockedVersion).toBeUndefined();
     });
     it('handles lock error', () => {
-      const extractedDependencies = packageJson.extractDependencies(
+      const extractedDependencies = npmExtract.extractDependencies(
         { dependencies: { chalk: '^2.0.0', foo: '^1.0.0' } },
         'dependencies',
         true
diff --git a/test/workers/dep-type/index.spec.js b/test/workers/dep-type/index.spec.js
index ae50573a3fa8039fbf74294d43f4c02508cf430d..064c792f9e2fafd9be8b2f56574eadc87901790e 100644
--- a/test/workers/dep-type/index.spec.js
+++ b/test/workers/dep-type/index.spec.js
@@ -1,10 +1,10 @@
 const path = require('path');
 const fs = require('fs');
-const packageJson = require('../../../lib/workers/dep-type/package-json');
+const npmExtract = require('../../../lib/manager/npm/extract');
 const pkgWorker = require('../../../lib/workers/package/index');
 const depTypeWorker = require('../../../lib/workers/dep-type/index');
 
-jest.mock('../../../lib/workers/dep-type/package-json');
+jest.mock('../../../lib/manager/npm/extract');
 jest.mock('../../../lib/workers/package/index');
 
 pkgWorker.renovatePackage = jest.fn(() => ['a']);
@@ -27,12 +27,12 @@ describe('lib/workers/dep-type/index', () => {
       expect(res).toMatchObject([]);
     });
     it('returns empty if no deps found', async () => {
-      packageJson.extractDependencies.mockReturnValueOnce([]);
+      npmExtract.extractDependencies.mockReturnValueOnce([]);
       const res = await depTypeWorker.renovateDepType({}, config);
       expect(res).toMatchObject([]);
     });
     it('returns empty if all deps are filtered', async () => {
-      packageJson.extractDependencies.mockReturnValueOnce([
+      npmExtract.extractDependencies.mockReturnValueOnce([
         { depName: 'a' },
         { depName: 'b' },
         { depName: 'e' },
@@ -41,7 +41,7 @@ describe('lib/workers/dep-type/index', () => {
       expect(res).toMatchObject([]);
     });
     it('returns combined upgrades if all deps are filtered', async () => {
-      packageJson.extractDependencies.mockReturnValueOnce([
+      npmExtract.extractDependencies.mockReturnValueOnce([
         { depName: 'a' },
         { depName: 'c' },
         { depName: 'd' },