diff --git a/.eslintrc.js b/.eslintrc.js
index 7e59c443aa4b31e15555b88b11503cd8b171afff..33397a5140c4362e826b80dd1c7c925649f1645b 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -3,33 +3,24 @@ module.exports = {
     node: true,
   },
   extends: [
-    'airbnb-base',
+    'plugin:promise/recommended',
     'plugin:@typescript-eslint/recommended',
+    'airbnb-typescript/base',
     'prettier',
     'prettier/@typescript-eslint',
   ],
-  parser: '@typescript-eslint/parser',
   parserOptions: {
     ecmaVersion: 9,
     project: './tsconfig.json',
   },
-  plugins: ['import', 'promise', '@typescript-eslint'],
   rules: {
+    'import/no-unresolved': 0, // only required for js, see overrides
     'require-await': 'error',
     'no-use-before-define': 0,
     'no-restricted-syntax': 0,
     'no-await-in-loop': 0,
     'prefer-destructuring': 'off',
     'prefer-template': 'off',
-    'promise/always-return': 'error',
-    'promise/no-return-wrap': 'error',
-    'promise/param-names': 'error',
-    'promise/catch-or-return': 'error',
-    'promise/no-native': 'off',
-    'promise/no-nesting': 'warn',
-    'promise/no-promise-in-callback': 'warn',
-    'promise/no-callback-in-promise': 'warn',
-    'promise/avoid-new': 'warn',
     'no-underscore-dangle': 0,
 
     // TODO: fix lint
@@ -38,25 +29,19 @@ module.exports = {
     '@typescript-eslint/no-use-before-define': 'off', // disable until all files converted to typescript
     '@typescript-eslint/explicit-member-accessibility': 0,
     '@typescript-eslint/explicit-function-return-type': 0,
-    '@typescript-eslint/interface-name-prefix': 0,
     '@typescript-eslint/no-explicit-any': 0,
     '@typescript-eslint/no-non-null-assertion': 0,
   },
   overrides: [
     {
-      files: ['*.spec.js', '*.spec.ts'],
+      // TODO: should be removed in near future, uses around ~50% lint time
+      files: ['*.js'],
       rules: {
-        'global-require': 0,
-        'prefer-promise-reject-errors': 0,
+        'import/no-unresolved': [
+          'error',
+          { commonjs: true, caseSensitive: true },
+        ],
       },
     },
   ],
-  settings: {
-    'import/resolver': {
-      node: {
-        paths: ['lib'],
-        extensions: ['.js', '.ts'],
-      },
-    },
-  },
 };
diff --git a/.gitignore b/.gitignore
index 9e5bf63972562775909a920630daaa4847c27cb3..be2d4e67d00cc2c8754d2efae16267a7d600e77c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -11,3 +11,4 @@
 *.pyc
 renovate-0.0.0-semantic-release.tgz
 /e2e/node_modules
+.eslintcache
diff --git a/.vscode/settings.json b/.vscode/settings.json
index eaa55322bf9de5d2c2abb5c5da32b881536df9ed..f133e938fb7dc43195e2e44d8e936b0d6c8084e2 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -3,7 +3,6 @@
     "javascript",
     { "language": "typescript", "autoFix": true }
   ],
-  "eslint.options": { "configFile": ".eslintrc.js" },
   "[javascript]": {
     "editor.defaultFormatter": "esbenp.prettier-vscode"
   },
diff --git a/lib/platform/bitbucket-server/bb-got-wrapper.ts b/lib/platform/bitbucket-server/bb-got-wrapper.ts
index dfe674f1ccee6380fd6cda22d22c590a59a116bc..5f1188ff0a11e45f876edb3206226025f5dacaa0 100644
--- a/lib/platform/bitbucket-server/bb-got-wrapper.ts
+++ b/lib/platform/bitbucket-server/bb-got-wrapper.ts
@@ -1,13 +1,13 @@
 import URL from 'url';
 import { GotJSONOptions } from 'got';
 import got from '../../util/got';
-import { IGotApi, IGotApiOptions } from '../common';
+import { GotApi, GotApiOptions } from '../common';
 
 let baseUrl: string;
 
-function get(path: string, options: IGotApiOptions & GotJSONOptions) {
+function get(path: string, options: GotApiOptions & GotJSONOptions) {
   const url = URL.resolve(baseUrl, path);
-  const opts: IGotApiOptions & GotJSONOptions = {
+  const opts: GotApiOptions & GotJSONOptions = {
     hostType: 'bitbucket-server',
     json: true,
     ...options,
@@ -21,7 +21,7 @@ function get(path: string, options: IGotApiOptions & GotJSONOptions) {
 
 const helpers = ['get', 'post', 'put', 'patch', 'head', 'delete'];
 
-export const api: IGotApi = {} as any;
+export const api: GotApi = {} as any;
 
 for (const x of helpers) {
   (api as any)[x] = (url: string, opts: any) =>
diff --git a/lib/platform/bitbucket-server/index.ts b/lib/platform/bitbucket-server/index.ts
index 5cdb3ed318c93f220889c061499417b04a30d4f9..ad091305228bd2559db33c6ffd6780208d7bf21e 100644
--- a/lib/platform/bitbucket-server/index.ts
+++ b/lib/platform/bitbucket-server/index.ts
@@ -1,7 +1,7 @@
 import url from 'url';
 import delay from 'delay';
 
-import api from './bb-got-wrapper';
+import { api } from './bb-got-wrapper';
 import * as utils from './utils';
 import * as hostRules from '../../util/host-rules';
 import GitStorage from '../git/storage';
diff --git a/lib/platform/bitbucket-server/utils.ts b/lib/platform/bitbucket-server/utils.ts
index dc6eab449a1105ef4d012eee0b7338bb65d2ceb6..61c4847b6a9ce1a83a86c9fdd7ec3f48459a8fc6 100644
--- a/lib/platform/bitbucket-server/utils.ts
+++ b/lib/platform/bitbucket-server/utils.ts
@@ -1,6 +1,6 @@
 // SEE for the reference https://github.com/renovatebot/renovate/blob/c3e9e572b225085448d94aa121c7ec81c14d3955/lib/platform/bitbucket/utils.js
 import url from 'url';
-import api from './bb-got-wrapper';
+import { api } from './bb-got-wrapper';
 
 // https://docs.atlassian.com/bitbucket-server/rest/6.0.0/bitbucket-rest.html#idp250
 const prStateMapping: any = {
diff --git a/lib/platform/bitbucket/bb-got-wrapper.ts b/lib/platform/bitbucket/bb-got-wrapper.ts
index 40f8eccac2edaf0d937c34d5ba5260d95f3687b4..27aa0a2879aff9212c5e261a7ff311b10089b936 100644
--- a/lib/platform/bitbucket/bb-got-wrapper.ts
+++ b/lib/platform/bitbucket/bb-got-wrapper.ts
@@ -1,9 +1,9 @@
 import { GotJSONOptions } from 'got';
 import got from '../../util/got';
-import { IGotApi, IGotApiOptions } from '../common';
+import { GotApi, GotApiOptions } from '../common';
 
-async function get(path: string, options: IGotApiOptions & GotJSONOptions) {
-  const opts: IGotApiOptions & GotJSONOptions = {
+async function get(path: string, options: GotApiOptions & GotJSONOptions) {
+  const opts: GotApiOptions & GotJSONOptions = {
     json: true,
     hostType: 'bitbucket',
     baseUrl: 'https://api.bitbucket.org/',
@@ -15,7 +15,7 @@ async function get(path: string, options: IGotApiOptions & GotJSONOptions) {
 
 const helpers = ['get', 'post', 'put', 'patch', 'head', 'delete'];
 
-export const api: IGotApi = {} as any;
+export const api: GotApi = {} as any;
 
 for (const x of helpers) {
   (api as any)[x] = (url: string, opts: any) =>
diff --git a/lib/platform/bitbucket/index.ts b/lib/platform/bitbucket/index.ts
index 2bd1637ae433710f4a4c40be6782d8d152a613cb..f4bca52cac608101630fd1acbb41444a1bc3aa34 100644
--- a/lib/platform/bitbucket/index.ts
+++ b/lib/platform/bitbucket/index.ts
@@ -1,5 +1,5 @@
 import parseDiff from 'parse-diff';
-import api from './bb-got-wrapper';
+import { api } from './bb-got-wrapper';
 import * as utils from './utils';
 import * as hostRules from '../../util/host-rules';
 import GitStorage from '../git/storage';
diff --git a/lib/platform/bitbucket/utils.ts b/lib/platform/bitbucket/utils.ts
index aadf7ffc85e0a2894e4e1186235e58cd2cbf465c..d44bf2b1dd508ece22d218749c53dbc1b18cd85b 100644
--- a/lib/platform/bitbucket/utils.ts
+++ b/lib/platform/bitbucket/utils.ts
@@ -1,5 +1,5 @@
 import url from 'url';
-import api from './bb-got-wrapper';
+import { api } from './bb-got-wrapper';
 
 export function repoInfoTransformer(repoInfoBody: any) {
   return {
diff --git a/lib/platform/common.ts b/lib/platform/common.ts
index a8703c70df338213b45e2b395726f93075bd95f0..ac0f4db5dd2a73d8a3816a0bb61ac29851c5276b 100644
--- a/lib/platform/common.ts
+++ b/lib/platform/common.ts
@@ -1,35 +1,35 @@
 import got from 'got';
 
-export interface IGotApiOptions {
+export interface GotApiOptions {
   useCache?: boolean;
   hostType?: string;
   body?: any;
 }
 
-export interface IGotApi<TOptions extends object = any> {
+export interface GotApi<TOptions extends object = any> {
   get<T extends object = any>(
     url: string,
-    options?: IGotApiOptions & TOptions
+    options?: GotApiOptions & TOptions
   ): Promise<got.Response<T>>;
   post<T extends object = any>(
     url: string,
-    options?: IGotApiOptions & TOptions
+    options?: GotApiOptions & TOptions
   ): Promise<got.Response<T>>;
   put<T extends object = any>(
     url: string,
-    options?: IGotApiOptions & TOptions
+    options?: GotApiOptions & TOptions
   ): Promise<got.Response<T>>;
   patch<T extends object = any>(
     url: string,
-    options?: IGotApiOptions & TOptions
+    options?: GotApiOptions & TOptions
   ): Promise<got.Response<T>>;
   head<T extends object = any>(
     url: string,
-    options?: IGotApiOptions & TOptions
+    options?: GotApiOptions & TOptions
   ): Promise<got.Response<T>>;
   delete<T extends object = any>(
     url: string,
-    options?: IGotApiOptions & TOptions
+    options?: GotApiOptions & TOptions
   ): Promise<got.Response<T>>;
 
   reset(): void;
diff --git a/lib/platform/git/storage.ts b/lib/platform/git/storage.ts
index 8b77f7a37edfddc65c834a96e44f13fc4344ba3c..a61db82ea5bc66baea273e12d3960d3415440cb4 100644
--- a/lib/platform/git/storage.ts
+++ b/lib/platform/git/storage.ts
@@ -9,14 +9,14 @@ declare module 'fs-extra' {
   export function exists(pathLike: string): Promise<boolean>;
 }
 
-interface IStorageConfig {
+interface StorageConfig {
   localDir: string;
   baseBranch?: string;
   url: string;
   gitPrivateKey?: string;
 }
 
-interface ILocalConfig extends IStorageConfig {
+interface LocalConfig extends StorageConfig {
   baseBranch: string;
   baseBranchSha: string;
   branchExists: { [branch: string]: boolean };
@@ -24,7 +24,7 @@ interface ILocalConfig extends IStorageConfig {
 }
 
 export class Storage {
-  private _config: ILocalConfig = {} as any;
+  private _config: LocalConfig = {} as any;
 
   private _git: Git.SimpleGit | undefined;
 
@@ -50,10 +50,10 @@ export class Storage {
     }
   }
 
-  async initRepo(args: IStorageConfig) {
+  async initRepo(args: StorageConfig) {
     this.cleanRepo();
     // eslint-disable-next-line no-multi-assign
-    const config: ILocalConfig = (this._config = { ...args } as any);
+    const config: LocalConfig = (this._config = { ...args } as any);
     // eslint-disable-next-line no-multi-assign
     const cwd = (this._cwd = config.localDir);
     this._config.branchExists = {};
diff --git a/lib/platform/gitlab/gl-got-wrapper.ts b/lib/platform/gitlab/gl-got-wrapper.ts
index aed193ba80112969631448fc18a3fc0694aeaa25..d256961f12dde5f2281a8d3d141c9863fdcbb1e2 100644
--- a/lib/platform/gitlab/gl-got-wrapper.ts
+++ b/lib/platform/gitlab/gl-got-wrapper.ts
@@ -1,6 +1,6 @@
 import parseLinkHeader from 'parse-link-header';
 
-import { IGotApi } from '../common';
+import { GotApi } from '../common';
 import got from '../../util/got';
 
 const hostType = 'gitlab';
@@ -45,15 +45,15 @@ async function get(path: string, options: any) {
 
 const helpers = ['get', 'post', 'put', 'patch', 'head', 'delete'];
 
-interface IGlGotApi
-  extends IGotApi<{
+interface GlGotApi
+  extends GotApi<{
     paginate?: boolean;
     token?: string;
   }> {
   setBaseUrl(url: string): void;
 }
 
-export const api: IGlGotApi = {} as any;
+export const api: GlGotApi = {} as any;
 
 for (const x of helpers) {
   (api as any)[x] = (url: string, opts: any) =>
diff --git a/lib/platform/gitlab/index.ts b/lib/platform/gitlab/index.ts
index 18ae6192ae03c4e701ff366224ace605d14286e7..bfe2edfd19f26663c3475764daf84e6f903420e8 100644
--- a/lib/platform/gitlab/index.ts
+++ b/lib/platform/gitlab/index.ts
@@ -1,7 +1,7 @@
 import URL from 'url';
 import is from '@sindresorhus/is';
 
-import api from './gl-got-wrapper';
+import { api } from './gl-got-wrapper';
 import * as hostRules from '../../util/host-rules';
 import GitStorage from '../git/storage';
 import { PlatformConfig } from '../common';
diff --git a/lib/types.d.ts b/lib/types.d.ts
index e681ad47649dd9ad464e8d7369d721cc6792ce2c..2b8c8fbfa91aa3e1b21c2a78eab21764fab6004e 100644
--- a/lib/types.d.ts
+++ b/lib/types.d.ts
@@ -1,6 +1,6 @@
 declare namespace Renovate {
   // TODO: refactor logger
-  interface ILogger {
+  interface Logger {
     trace(...args: any[]): void;
     debug(...args: any[]): void;
     info(...args: any[]): void;
@@ -11,14 +11,10 @@ declare namespace Renovate {
 
     setMeta(obj: any): void;
   }
-
-  interface IDict<T> {
-    [key: string]: T;
-  }
 }
 
 // eslint-disable-next-line no-var, vars-on-top
-declare var logger: Renovate.ILogger;
+declare var logger: Renovate.Logger;
 
 declare interface Error {
   validationError?: string;
@@ -28,6 +24,6 @@ declare interface Error {
 declare namespace NodeJS {
   interface Global {
     gitAuthor?: { name: string; email: string };
-    logger: Renovate.ILogger;
+    logger: Renovate.Logger;
   }
 }
diff --git a/package.json b/package.json
index d50e87b34bdcde413aad29af4c5d9181b6f6a1d2..ef18621b01778a4cad8ead0c060c0251d00f7dbf 100644
--- a/package.json
+++ b/package.json
@@ -172,7 +172,7 @@
     "copyfiles": "2.1.0",
     "cross-env": "5.2.0",
     "eslint": "5.16.0",
-    "eslint-config-airbnb-base": "13.2.0",
+    "eslint-config-airbnb-typescript": "4.0.0",
     "eslint-config-prettier": "4.3.0",
     "eslint-plugin-import": "2.18.0",
     "eslint-plugin-promise": "4.2.1",
diff --git a/test/platform/bitbucket-server/index.spec.ts b/test/platform/bitbucket-server/index.spec.ts
index 163e287ade27d1080a47f16aff805634087c8642..3deca6128c2f0f7b871b1a81b05bb9621f68c9df 100644
--- a/test/platform/bitbucket-server/index.spec.ts
+++ b/test/platform/bitbucket-server/index.spec.ts
@@ -1,6 +1,6 @@
 import responses from './_fixtures/responses';
-import { IGotApi } from '../../../lib/platform/common';
-import Storage from '../../../lib/platform/git/storage';
+import { GotApi } from '../../../lib/platform/common';
+import { Storage } from '../../../lib/platform/git/storage';
 
 type BbsApi = typeof import('../../../lib/platform/bitbucket-server');
 
@@ -8,7 +8,7 @@ describe('platform/bitbucket-server', () => {
   Object.entries(responses).forEach(([scenarioName, mockResponses]) => {
     describe(scenarioName, () => {
       let bitbucket: typeof import('../../../lib/platform/bitbucket-server');
-      let api: jest.Mocked<IGotApi>;
+      let api: jest.Mocked<GotApi>;
       let hostRules: jest.Mocked<typeof import('../../../lib/util/host-rules')>;
       let GitStorage: jest.Mock<Storage> & {
         getUrl: jest.MockInstance<any, any>;
diff --git a/test/platform/bitbucket/bb-got-wrapper.spec.ts b/test/platform/bitbucket/bb-got-wrapper.spec.ts
index 18c63770515d4c1b10732226470e2614c731b469..790708144e880e792dd10106e6a99b4bc678bd6e 100644
--- a/test/platform/bitbucket/bb-got-wrapper.spec.ts
+++ b/test/platform/bitbucket/bb-got-wrapper.spec.ts
@@ -1,7 +1,7 @@
-import { IGotApi } from '../../../lib/platform/common';
+import { GotApi } from '../../../lib/platform/common';
 
 describe('platform/gl-got-wrapper', () => {
-  let api: IGotApi;
+  let api: GotApi;
   let got: jest.Mock<typeof import('got')>;
   let hostRules: typeof import('../../../lib/util/host-rules');
   beforeEach(() => {
diff --git a/test/platform/bitbucket/index.spec.ts b/test/platform/bitbucket/index.spec.ts
index ce8efd1b6b196315f3a6deba9a6542c0facaeabe..e73c17574a18a3f5fd20c2e6e70e1ab62dd42d19 100644
--- a/test/platform/bitbucket/index.spec.ts
+++ b/test/platform/bitbucket/index.spec.ts
@@ -1,10 +1,10 @@
 import URL from 'url';
 import responses from './_fixtures/responses';
-import { IGotApi } from '../../../lib/platform/common';
+import { GotApi } from '../../../lib/platform/common';
 
 describe('platform/bitbucket', () => {
   let bitbucket: typeof import('../../../lib/platform/bitbucket');
-  let api: jest.Mocked<IGotApi>;
+  let api: jest.Mocked<GotApi>;
   let hostRules: jest.Mocked<typeof import('../../../lib/util/host-rules')>;
   let GitStorage: jest.Mocked<
     import('../../../lib/platform/git/storage').Storage
diff --git a/test/platform/bitbucket/utils.spec.ts b/test/platform/bitbucket/utils.spec.ts
index 2afd2c3db98efff820ddfeae4de4bbf6216f39dc..75a2cd7a09588c9759599b3289efc5dc5624570b 100644
--- a/test/platform/bitbucket/utils.spec.ts
+++ b/test/platform/bitbucket/utils.spec.ts
@@ -1,10 +1,10 @@
 import * as utils from '../../../lib/platform/bitbucket/utils';
-import { IGotApi } from '../../../lib/platform/common';
+import { GotApi } from '../../../lib/platform/common';
 
 jest.mock('../../../lib/platform/bitbucket/bb-got-wrapper');
 
 const api: jest.Mocked<
-  IGotApi
+  GotApi
 > = require('../../../lib/platform/bitbucket/bb-got-wrapper').api;
 
 const range = (count: number) => [...Array(count).keys()];
diff --git a/test/platform/gitlab/gl-got-wrapper.spec.ts b/test/platform/gitlab/gl-got-wrapper.spec.ts
index 4a8eda6a2ad3e531a0fcbf90357886520b9fef8b..5ea848f84a03cb1f8d07e0c58c7ec067f5452edb 100644
--- a/test/platform/gitlab/gl-got-wrapper.spec.ts
+++ b/test/platform/gitlab/gl-got-wrapper.spec.ts
@@ -1,5 +1,5 @@
 import got from '../../../lib/util/got';
-import api from '../../../lib/platform/gitlab/gl-got-wrapper';
+import { api } from '../../../lib/platform/gitlab/gl-got-wrapper';
 import * as hostRules from '../../../lib/util/host-rules';
 
 jest.mock('../../../lib/util/got');
diff --git a/yarn.lock b/yarn.lock
index 61c03ce03d5247037bc6882a55d60015a4cc7eb7..c1523f86c56882ddcf309d6983205e2bbc0e4036 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2701,7 +2701,7 @@ debug@^3.1.0, debug@^3.2.6:
   dependencies:
     ms "^2.1.1"
 
-debuglog@*, debuglog@^1.0.1:
+debuglog@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492"
   integrity sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=
@@ -3106,7 +3106,7 @@ escodegen@1.x.x, escodegen@^1.9.1:
   optionalDependencies:
     source-map "~0.6.1"
 
-eslint-config-airbnb-base@13.2.0:
+eslint-config-airbnb-base@^13.1.0, eslint-config-airbnb-base@^13.2.0:
   version "13.2.0"
   resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-13.2.0.tgz#f6ea81459ff4dec2dda200c35f1d8f7419d57943"
   integrity sha512-1mg/7eoB4AUeB0X1c/ho4vb2gYkNH8Trr/EgCT/aGmKhhG+F6vF5s8+iRBlWAzFIAphxIdp3YfEKgEl0f9Xg+w==
@@ -3115,6 +3115,23 @@ eslint-config-airbnb-base@13.2.0:
     object.assign "^4.1.0"
     object.entries "^1.1.0"
 
+eslint-config-airbnb-typescript@4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-4.0.0.tgz#98d20bfd0cb18f4a4c7c309e48ad2adc3c3ab4de"
+  integrity sha512-eB/eLUE9JT7F7/HDYhIL3iBOER7fi+k6A2F24CZ5E+kJizEnvrfXMerBrAVP+8gEzQCRGAsJFed/7GYlhDkomw==
+  dependencies:
+    eslint-config-airbnb "^17.1.0"
+    eslint-config-airbnb-base "^13.1.0"
+
+eslint-config-airbnb@^17.1.0:
+  version "17.1.1"
+  resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-17.1.1.tgz#2272e0b86bb1e2b138cdf88d07a3b6f4cda3d626"
+  integrity sha512-xCu//8a/aWqagKljt+1/qAM62BYZeNq04HmdevG5yUGWpja0I/xhqd6GdLRch5oetEGFiJAnvtGuTEAese53Qg==
+  dependencies:
+    eslint-config-airbnb-base "^13.2.0"
+    object.assign "^4.1.0"
+    object.entries "^1.1.0"
+
 eslint-config-prettier@4.3.0:
   version "4.3.0"
   resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-4.3.0.tgz#c55c1fcac8ce4518aeb77906984e134d9eb5a4f0"
@@ -4261,7 +4278,7 @@ import-local@^2.0.0:
     pkg-dir "^3.0.0"
     resolve-cwd "^2.0.0"
 
-imurmurhash@*, imurmurhash@^0.1.4:
+imurmurhash@^0.1.4:
   version "0.1.4"
   resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
   integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
@@ -5442,7 +5459,7 @@ libnpm@^2.0.1:
     read-package-json "^2.0.13"
     stringify-package "^1.0.0"
 
-libnpmaccess@*, libnpmaccess@^3.0.1:
+libnpmaccess@^3.0.1:
   version "3.0.1"
   resolved "https://registry.yarnpkg.com/libnpmaccess/-/libnpmaccess-3.0.1.tgz#5b3a9de621f293d425191aa2e779102f84167fa8"
   integrity sha512-RlZ7PNarCBt+XbnP7R6PoVgOq9t+kou5rvhaInoNibhPO7eMlRfS0B8yjatgn2yaHIwWNyoJDolC/6Lc5L/IQA==
@@ -5471,7 +5488,7 @@ libnpmhook@^5.0.2:
     get-stream "^4.0.0"
     npm-registry-fetch "^3.8.0"
 
-libnpmorg@*, libnpmorg@^1.0.0:
+libnpmorg@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/libnpmorg/-/libnpmorg-1.0.0.tgz#979b868c48ba28c5820e3bb9d9e73c883c16a232"
   integrity sha512-o+4eVJBoDGMgRwh2lJY0a8pRV2c/tQM/SxlqXezjcAg26Qe9jigYVs+Xk0vvlYDWCDhP0g74J8UwWeAgsB7gGw==
@@ -5496,7 +5513,7 @@ libnpmpublish@^1.1.0:
     semver "^5.5.1"
     ssri "^6.0.1"
 
-libnpmsearch@*, libnpmsearch@^2.0.0:
+libnpmsearch@^2.0.0:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/libnpmsearch/-/libnpmsearch-2.0.1.tgz#eccc73a8fbf267d765d18082b85daa2512501f96"
   integrity sha512-K0yXyut9MHHCAH+DOiglQCpmBKPZXSUu76+BE2maSEfQN15OwNaA/Aiioe9lRFlVFOr7WcuJCY+VSl+gLi9NTA==
@@ -5505,7 +5522,7 @@ libnpmsearch@*, libnpmsearch@^2.0.0:
     get-stream "^4.0.0"
     npm-registry-fetch "^3.8.0"
 
-libnpmteam@*, libnpmteam@^1.0.1:
+libnpmteam@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/libnpmteam/-/libnpmteam-1.0.1.tgz#ff704b1b6c06ea674b3b1101ac3e305f5114f213"
   integrity sha512-gDdrflKFCX7TNwOMX1snWojCoDE5LoRWcfOC0C/fqF7mBq8Uz9zWAX4B2RllYETNO7pBupBaSyBDkTAC15cAMg==
@@ -5608,11 +5625,6 @@ lockfile@^1.0.4:
   dependencies:
     signal-exit "^3.0.2"
 
-lodash._baseindexof@*:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz#fe52b53a1c6761e42618d654e4a25789ed61822c"
-  integrity sha1-/lK1OhxnYeQmGNZU5KJXie1hgiw=
-
 lodash._baseuniq@~4.6.0:
   version "4.6.0"
   resolved "https://registry.yarnpkg.com/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz#0ebb44e456814af7905c6212fa2c9b2d51b841e8"
@@ -5621,33 +5633,11 @@ lodash._baseuniq@~4.6.0:
     lodash._createset "~4.0.0"
     lodash._root "~3.0.0"
 
-lodash._bindcallback@*:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e"
-  integrity sha1-5THCdkTPi1epnhftlbNcdIeJOS4=
-
-lodash._cacheindexof@*:
-  version "3.0.2"
-  resolved "https://registry.yarnpkg.com/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz#3dc69ac82498d2ee5e3ce56091bafd2adc7bde92"
-  integrity sha1-PcaayCSY0u5ePOVgkbr9Ktx73pI=
-
-lodash._createcache@*:
-  version "3.1.2"
-  resolved "https://registry.yarnpkg.com/lodash._createcache/-/lodash._createcache-3.1.2.tgz#56d6a064017625e79ebca6b8018e17440bdcf093"
-  integrity sha1-VtagZAF2JeeevKa4AY4XRAvc8JM=
-  dependencies:
-    lodash._getnative "^3.0.0"
-
 lodash._createset@~4.0.0:
   version "4.0.3"
   resolved "https://registry.yarnpkg.com/lodash._createset/-/lodash._createset-4.0.3.tgz#0f4659fbb09d75194fa9e2b88a6644d363c9fe26"
   integrity sha1-D0ZZ+7CddRlPqeK4imZE02PJ/iY=
 
-lodash._getnative@*, lodash._getnative@^3.0.0:
-  version "3.9.1"
-  resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5"
-  integrity sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=
-
 lodash._reinterpolate@~3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d"
@@ -5688,11 +5678,6 @@ lodash.isstring@^4.0.1:
   resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451"
   integrity sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=
 
-lodash.restparam@*:
-  version "3.6.1"
-  resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805"
-  integrity sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=
-
 lodash.set@^4.3.2:
   version "4.3.2"
   resolved "https://registry.yarnpkg.com/lodash.set/-/lodash.set-4.3.2.tgz#d8757b1da807dde24816b0d6a84bea1a76230b23"
@@ -6557,7 +6542,7 @@ npm-pick-manifest@^2.2.3:
     npm-package-arg "^6.0.0"
     semver "^5.4.1"
 
-npm-profile@*, npm-profile@^4.0.1:
+npm-profile@^4.0.1:
   version "4.0.1"
   resolved "https://registry.yarnpkg.com/npm-profile/-/npm-profile-4.0.1.tgz#d350f7a5e6b60691c7168fbb8392c3603583f5aa"
   integrity sha512-NQ1I/1Q7YRtHZXkcuU1/IyHeLy6pd+ScKg4+DQHdfsm769TGq6HPrkbuNJVJS4zwE+0mvvmeULzQdWn2L2EsVA==
@@ -7831,7 +7816,7 @@ readable-stream@~1.0.31:
     isarray "0.0.1"
     string_decoder "~0.10.x"
 
-readdir-scoped-modules@*, readdir-scoped-modules@^1.0.0, readdir-scoped-modules@^1.1.0:
+readdir-scoped-modules@^1.0.0, readdir-scoped-modules@^1.1.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz#8d45407b4f870a0dcaebc0e28670d18e74514309"
   integrity sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==