aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGrégoire Aubert <gregoire.aubert@sonarsource.com>2017-11-01 13:41:25 +0100
committerGitHub <noreply@github.com>2017-11-01 13:41:25 +0100
commitee9b4cce454a518b0ae67f04efd967d618f69872 (patch)
tree1bfeb0cbb5ce28785bdeb0bf8f343feed9081a8c
parent67fe4ce8f2d9f12704d829e95f1927b5698f1830 (diff)
downloadsonarqube-ee9b4cce454a518b0ae67f04efd967d618f69872.tar.gz
sonarqube-ee9b4cce454a518b0ae67f04efd967d618f69872.zip
Update to React 16 and Enzyme 3 (#2776)
* Update to React 16 * Add missing promise catch * Fix jest tests * extract react-dom mock * remove empty snapshots * Fix modals
-rw-r--r--server/sonar-web/config/jest/SetupEnzyme.js23
-rw-r--r--server/sonar-web/config/jest/SetupTestEnvironment.js6
-rw-r--r--server/sonar-web/package.json31
-rw-r--r--server/sonar-web/src/main/js/__mocks__/react-dom.ts26
-rw-r--r--server/sonar-web/src/main/js/app/components/__tests__/ComponentContainer-test.tsx75
-rw-r--r--server/sonar-web/src/main/js/app/components/nav/component/__tests__/ComponentNav-test.tsx10
-rw-r--r--server/sonar-web/src/main/js/app/components/nav/component/__tests__/__snapshots__/ComponentNav-test.tsx.snap1
-rw-r--r--server/sonar-web/src/main/js/app/components/nav/settings/SettingsEditionsNotif.tsx16
-rw-r--r--server/sonar-web/src/main/js/app/components/search/__tests__/SearchResult-test.js1
-rw-r--r--server/sonar-web/src/main/js/apps/account/profile/UserExternalIdentity.js4
-rw-r--r--server/sonar-web/src/main/js/apps/background-tasks/components/Stacktrace.tsx15
-rw-r--r--server/sonar-web/src/main/js/apps/background-tasks/components/Workers.tsx23
-rw-r--r--server/sonar-web/src/main/js/apps/background-tasks/components/__tests__/ScannerContext-test.tsx26
-rw-r--r--server/sonar-web/src/main/js/apps/background-tasks/components/__tests__/Stacktrace-test.tsx26
-rw-r--r--server/sonar-web/src/main/js/apps/background-tasks/components/__tests__/TaskActions-test.tsx2
-rw-r--r--server/sonar-web/src/main/js/apps/code/components/App.tsx4
-rw-r--r--server/sonar-web/src/main/js/apps/component-measures/components/App.js6
-rw-r--r--server/sonar-web/src/main/js/apps/component-measures/components/__tests__/App-test.js2
-rw-r--r--server/sonar-web/src/main/js/apps/issues/sidebar/__tests__/__snapshots__/AssigneeFacet-test.js.snap3
-rw-r--r--server/sonar-web/src/main/js/apps/marketplace/__tests__/EditionBoxes-test.tsx1
-rw-r--r--server/sonar-web/src/main/js/apps/marketplace/__tests__/PendingActions-test.tsx2
-rw-r--r--server/sonar-web/src/main/js/apps/marketplace/__tests__/__snapshots__/PendingActions-test.tsx.snap2
-rw-r--r--server/sonar-web/src/main/js/apps/marketplace/components/EditionBox.tsx8
-rw-r--r--server/sonar-web/src/main/js/apps/marketplace/components/__tests__/EditionBoxBadge-test.tsx12
-rw-r--r--server/sonar-web/src/main/js/apps/marketplace/components/__tests__/LicenseEditionForm-test.tsx2
-rw-r--r--server/sonar-web/src/main/js/apps/marketplace/components/__tests__/LicenseEditionSet-test.tsx12
-rw-r--r--server/sonar-web/src/main/js/apps/marketplace/components/__tests__/PluginLicense-test.tsx2
-rw-r--r--server/sonar-web/src/main/js/apps/marketplace/components/__tests__/PluginUrls-test.tsx2
-rw-r--r--server/sonar-web/src/main/js/apps/marketplace/components/__tests__/__snapshots__/EditionBoxBadge-test.tsx.snap30
-rw-r--r--server/sonar-web/src/main/js/apps/marketplace/components/__tests__/__snapshots__/LicenseEditionSet-test.tsx.snap10
-rw-r--r--server/sonar-web/src/main/js/apps/marketplace/components/__tests__/__snapshots__/PluginLicense-test.tsx.snap2
-rw-r--r--server/sonar-web/src/main/js/apps/marketplace/components/__tests__/__snapshots__/PluginUrls-test.tsx.snap2
-rw-r--r--server/sonar-web/src/main/js/apps/organizations/components/OrganizationAdmin.js6
-rw-r--r--server/sonar-web/src/main/js/apps/organizations/components/OrganizationPage.js4
-rw-r--r--server/sonar-web/src/main/js/apps/organizations/components/__tests__/OrganizationAdmin-test.js16
-rw-r--r--server/sonar-web/src/main/js/apps/organizations/components/__tests__/OrganizationMembers-test.js2
-rw-r--r--server/sonar-web/src/main/js/apps/organizations/components/__tests__/OrganizationPage-test.js21
-rw-r--r--server/sonar-web/src/main/js/apps/organizations/components/__tests__/__snapshots__/OrganizationAdmin-test.js.snap2
-rw-r--r--server/sonar-web/src/main/js/apps/organizations/components/__tests__/__snapshots__/OrganizationPage-test.js.snap7
-rw-r--r--server/sonar-web/src/main/js/apps/organizations/components/forms/AddMemberForm.js14
-rw-r--r--server/sonar-web/src/main/js/apps/organizations/components/forms/ManageMemberGroupsForm.js14
-rw-r--r--server/sonar-web/src/main/js/apps/organizations/components/forms/RemoveMemberForm.js14
-rw-r--r--server/sonar-web/src/main/js/apps/organizations/components/forms/__tests__/AddMemberForm-test.js10
-rw-r--r--server/sonar-web/src/main/js/apps/organizations/components/forms/__tests__/ManageMemberGroupsForm-test.js12
-rw-r--r--server/sonar-web/src/main/js/apps/organizations/components/forms/__tests__/RemoveMemberForm-test.js8
-rw-r--r--server/sonar-web/src/main/js/apps/organizations/components/forms/__tests__/__snapshots__/AddMemberForm-test.js.snap18
-rw-r--r--server/sonar-web/src/main/js/apps/organizations/components/forms/__tests__/__snapshots__/ManageMemberGroupsForm-test.js.snap22
-rw-r--r--server/sonar-web/src/main/js/apps/organizations/components/forms/__tests__/__snapshots__/RemoveMemberForm-test.js.snap19
-rw-r--r--server/sonar-web/src/main/js/apps/organizations/routes.js8
-rw-r--r--server/sonar-web/src/main/js/apps/overview/components/__tests__/__snapshots__/ApplicationLeakPeriodLegend-test.js.snap8
-rw-r--r--server/sonar-web/src/main/js/apps/overview/meta/MetaLink.js2
-rw-r--r--server/sonar-web/src/main/js/apps/overview/meta/__tests__/MetaTags-test.js12
-rw-r--r--server/sonar-web/src/main/js/apps/overview/meta/__tests__/__snapshots__/MetaLink-test.js.snap1
-rw-r--r--server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/GraphsTooltipsContentDuplication-test.js4
-rw-r--r--server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/GraphsTooltipsContentDuplication-test.js.snap2
-rw-r--r--server/sonar-web/src/main/js/apps/projectActivity/components/forms/AddEventForm.js15
-rw-r--r--server/sonar-web/src/main/js/apps/projectActivity/components/forms/AddGraphMetric.js16
-rw-r--r--server/sonar-web/src/main/js/apps/projectActivity/components/forms/ChangeEventForm.js6
-rw-r--r--server/sonar-web/src/main/js/apps/projectActivity/components/forms/RemoveAnalysisForm.js14
-rw-r--r--server/sonar-web/src/main/js/apps/projectActivity/components/forms/RemoveEventForm.js5
-rw-r--r--server/sonar-web/src/main/js/apps/projectBranches/components/__tests__/LongBranchesPattern-test.tsx22
-rw-r--r--server/sonar-web/src/main/js/apps/projects/components/__tests__/AllProjects-test.tsx12
-rw-r--r--server/sonar-web/src/main/js/apps/projects/components/__tests__/FavoriteFilter-test.tsx6
-rw-r--r--server/sonar-web/src/main/js/apps/projects/components/__tests__/ProjectCardLanguages-test.tsx2
-rw-r--r--server/sonar-web/src/main/js/apps/projects/components/__tests__/ProjectCardQualityGate-test.tsx2
-rw-r--r--server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/AllProjects-test.tsx.snap72
-rw-r--r--server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/FavoriteFilter-test.tsx.snap2
-rw-r--r--server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/ProjectCardLanguages-test.tsx.snap34
-rw-r--r--server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/ProjectCardQualityGate-test.tsx.snap2
-rw-r--r--server/sonar-web/src/main/js/apps/projects/filters/__tests__/__snapshots__/LanguagesFilter-test.tsx.snap4
-rw-r--r--server/sonar-web/src/main/js/apps/projects/filters/__tests__/__snapshots__/TagsFilter-test.tsx.snap6
-rw-r--r--server/sonar-web/src/main/js/apps/projectsManagement/__tests__/App-test.tsx15
-rw-r--r--server/sonar-web/src/main/js/apps/projectsManagement/__tests__/BulkApplyTemplateModal-test.tsx14
-rw-r--r--server/sonar-web/src/main/js/apps/projectsManagement/__tests__/Header-test.tsx1
-rw-r--r--server/sonar-web/src/main/js/apps/projectsManagement/__tests__/Search-test.tsx1
-rw-r--r--server/sonar-web/src/main/js/apps/quality-gates/components/Details.js4
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/components/ProfileContainer.tsx4
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/components/__tests__/ProfileContainer-test.tsx17
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/ProfilePermissions-test.tsx23
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/ProfilePermissionsFormSelect-test.tsx13
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/ProfileRules-test.tsx40
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfilePermissionsFormSelect-test.tsx.snap2
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/routes.ts2
-rw-r--r--server/sonar-web/src/main/js/apps/system/components/info-items/__tests__/__snapshots__/SysInfoItem-test.tsx.snap1
-rw-r--r--server/sonar-web/src/main/js/apps/system/components/system-upgrade/__tests__/SystemUpgradeNotif-test.tsx23
-rw-r--r--server/sonar-web/src/main/js/apps/system/components/system-upgrade/__tests__/__snapshots__/SystemUpgradeNotif-test.tsx.snap6
-rw-r--r--server/sonar-web/src/main/js/apps/tutorials/onboarding/__tests__/NewOrganizationForm-test.js22
-rw-r--r--server/sonar-web/src/main/js/apps/tutorials/onboarding/__tests__/NewProjectForm-test.js22
-rw-r--r--server/sonar-web/src/main/js/apps/tutorials/onboarding/__tests__/OrganizationStep-test.js47
-rw-r--r--server/sonar-web/src/main/js/apps/tutorials/onboarding/__tests__/ProjectKeyStep-test.js20
-rw-r--r--server/sonar-web/src/main/js/apps/tutorials/onboarding/__tests__/TokenStep-test.js11
-rw-r--r--server/sonar-web/src/main/js/apps/tutorials/onboarding/__tests__/__snapshots__/OrganizationStep-test.js.snap17
-rw-r--r--server/sonar-web/src/main/js/apps/tutorials/onboarding/__tests__/__snapshots__/TokenStep-test.js.snap18
-rw-r--r--server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/Command-test.js4
-rw-r--r--server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/Command-test.js.snap27
-rw-r--r--server/sonar-web/src/main/js/apps/web-api/components/ResponseExample.tsx4
-rw-r--r--server/sonar-web/src/main/js/components/SourceViewer/components/LineCode.js8
-rw-r--r--server/sonar-web/src/main/js/components/charts/__tests__/__snapshots__/BubbleChart-test.js.snap22
-rw-r--r--server/sonar-web/src/main/js/components/common/MultiSelect.js4
-rw-r--r--server/sonar-web/src/main/js/components/common/__tests__/BranchStatus-test.tsx10
-rw-r--r--server/sonar-web/src/main/js/components/common/__tests__/BubblePopupHelper-test.js12
-rw-r--r--server/sonar-web/src/main/js/components/common/__tests__/DeferredSpinner-test.js4
-rw-r--r--server/sonar-web/src/main/js/components/common/__tests__/MultiSelect-test.js5
-rw-r--r--server/sonar-web/src/main/js/components/common/__tests__/SelectList-test.js2
-rw-r--r--server/sonar-web/src/main/js/components/common/__tests__/__snapshots__/BranchStatus-test.tsx.snap6
-rw-r--r--server/sonar-web/src/main/js/components/common/__tests__/__snapshots__/MultiSelect-test.js.snap14
-rw-r--r--server/sonar-web/src/main/js/components/issue/components/__tests__/__snapshots__/IssueCommentAction-test.js.snap2
-rw-r--r--server/sonar-web/src/main/js/components/shared/__tests__/Organization-test.tsx10
-rw-r--r--server/sonar-web/src/main/js/components/shared/__tests__/QualifierIcon-test.js2
-rw-r--r--server/sonar-web/src/main/js/components/shared/__tests__/__snapshots__/Organization-test.tsx.snap4
-rw-r--r--server/sonar-web/src/main/js/components/shared/__tests__/__snapshots__/QualifierIcon-test.js.snap2
-rw-r--r--server/sonar-web/src/main/js/store/utils/configureStore.js2
-rw-r--r--server/sonar-web/yarn.lock1690
113 files changed, 1638 insertions, 1352 deletions
diff --git a/server/sonar-web/config/jest/SetupEnzyme.js b/server/sonar-web/config/jest/SetupEnzyme.js
new file mode 100644
index 00000000000..ec2ff5f0561
--- /dev/null
+++ b/server/sonar-web/config/jest/SetupEnzyme.js
@@ -0,0 +1,23 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2016 SonarSource SA
+ * mailto:contact AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+import Enzyme from 'enzyme';
+import Adapter from 'enzyme-adapter-react-16';
+
+Enzyme.configure({ adapter: new Adapter() });
diff --git a/server/sonar-web/config/jest/SetupTestEnvironment.js b/server/sonar-web/config/jest/SetupTestEnvironment.js
index 64c8d0c15aa..c5d8747dde5 100644
--- a/server/sonar-web/config/jest/SetupTestEnvironment.js
+++ b/server/sonar-web/config/jest/SetupTestEnvironment.js
@@ -22,3 +22,9 @@ window.t = window.tp = function() {
const args = Array.prototype.slice.call(arguments, 0);
return args.join('.');
};
+
+// Fix for https://github.com/facebook/jest/issues/4545
+// Try to remove when jest 21.3.0 is out
+window.requestAnimationFrame = function(callback) {
+ setTimeout(callback, 0);
+};
diff --git a/server/sonar-web/package.json b/server/sonar-web/package.json
index 1ec6c0ba8a0..febc889e9b3 100644
--- a/server/sonar-web/package.json
+++ b/server/sonar-web/package.json
@@ -26,14 +26,14 @@
"lodash": "4.17.4",
"prop-types": "15.6.0",
"rc-tooltip": "3.5.0",
- "react": "15.6.2",
- "react-dom": "15.6.2",
+ "react": "16.0.0",
+ "react-dom": "16.0.0",
"react-draggable": "3.0.3",
"react-helmet": "5.2.0",
"react-intl": "2.4.0",
"react-modal": "3.0.4",
"react-redux": "5.0.6",
- "react-router": "3.0.5",
+ "react-router": "3.2.0",
"react-select": "1.0.0-rc.10",
"react-virtualized": "9.12.0",
"redux": "3.7.2",
@@ -46,20 +46,19 @@
"@types/classnames": "2.2.3",
"@types/d3-array": "1.2.1",
"@types/d3-scale": "1.0.10",
- "@types/date-fns": "2.6.0",
- "@types/enzyme": "2.8.6",
+ "@types/enzyme": "3.1.1",
"@types/escape-html": "0.0.20",
"@types/jest": "21.1.5",
"@types/jquery": "3.2.11",
- "@types/lodash": "4.14.79",
+ "@types/lodash": "4.14.80",
"@types/prop-types": "15.5.2",
- "@types/react": "16.0.2",
- "@types/react-dom": "15.5.2",
+ "@types/react": "16.0.19",
+ "@types/react-dom": "16.0.2",
"@types/react-helmet": "5.0.3",
"@types/react-intl": "2.3.2",
"@types/react-modal": "2.2.2",
- "@types/react-redux": "5.0.10",
- "@types/react-router": "3.0.5",
+ "@types/react-redux": "5.0.12",
+ "@types/react-router": "3.0.13",
"@types/react-select": "1.0.59",
"autoprefixer": "7.1.6",
"awesome-typescript-loader": "3.2.3",
@@ -77,8 +76,9 @@
"babel-preset-react": "^6.22.0",
"chalk": "2.3.0",
"css-loader": "0.28.7",
- "enzyme": "2.9.1",
- "enzyme-to-json": "2.0.1",
+ "enzyme": "3.1.0",
+ "enzyme-adapter-react-16": "1.0.2",
+ "enzyme-to-json": "3.1.4",
"eslint": "4.9.0",
"eslint-plugin-import": "2.8.0",
"eslint-plugin-jsx-a11y": "6.0.2",
@@ -96,10 +96,10 @@
"postcss-loader": "2.0.8",
"prettier": "1.7.4",
"react-error-overlay": "1.0.7",
- "react-test-renderer": "15.6.2",
+ "react-test-renderer": "16.0.0",
"rimraf": "2.6.2",
"style-loader": "0.19.0",
- "ts-jest": "21.1.3",
+ "ts-jest": "21.1.4",
"typescript": "2.5.3",
"typescript-eslint-parser": "8.0.1",
"webpack": "3.8.1",
@@ -141,7 +141,8 @@
},
"setupFiles": [
"<rootDir>/config/polyfills.js",
- "<rootDir>/config/jest/SetupTestEnvironment.js"
+ "<rootDir>/config/jest/SetupTestEnvironment.js",
+ "<rootDir>/config/jest/SetupEnzyme.js"
],
"snapshotSerializers": ["enzyme-to-json/serializer"],
"testPathIgnorePatterns": [
diff --git a/server/sonar-web/src/main/js/__mocks__/react-dom.ts b/server/sonar-web/src/main/js/__mocks__/react-dom.ts
new file mode 100644
index 00000000000..a4b6f39bb75
--- /dev/null
+++ b/server/sonar-web/src/main/js/__mocks__/react-dom.ts
@@ -0,0 +1,26 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2017 SonarSource SA
+ * mailto:contact AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+const ReactDOM = require.requireActual('react-dom');
+
+//FIXME To be dropped when https://github.com/airbnb/enzyme/issues/1150 is resolved
+module.exports = {
+ ...ReactDOM,
+ createPortal: (children: React.ReactNode) => children
+};
diff --git a/server/sonar-web/src/main/js/app/components/__tests__/ComponentContainer-test.tsx b/server/sonar-web/src/main/js/app/components/__tests__/ComponentContainer-test.tsx
index 623451a6542..1ba8962fcbb 100644
--- a/server/sonar-web/src/main/js/app/components/__tests__/ComponentContainer-test.tsx
+++ b/server/sonar-web/src/main/js/app/components/__tests__/ComponentContainer-test.tsx
@@ -17,23 +17,29 @@
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-/* eslint-disable import/first */
-jest.mock('../../../api/branches', () => ({ getBranches: jest.fn() }));
-jest.mock('../../../api/components', () => ({ getComponentData: jest.fn() }));
-jest.mock('../../../api/nav', () => ({ getComponentNavigation: jest.fn() }));
-
-// mock this, because some of its children are using redux store
-jest.mock('../nav/component/ComponentNav', () => ({
- default: () => null
-}));
-
import * as React from 'react';
import { shallow, mount } from 'enzyme';
import { ComponentContainer } from '../ComponentContainer';
import { getBranches } from '../../../api/branches';
import { getComponentData } from '../../../api/components';
import { getComponentNavigation } from '../../../api/nav';
-import { doAsync } from '../../../helpers/testUtils';
+
+jest.mock('../../../api/branches', () => ({ getBranches: jest.fn(() => Promise.resolve([])) }));
+jest.mock('../../../api/components', () => ({
+ getComponentData: jest.fn(() => Promise.resolve({}))
+}));
+jest.mock('../../../api/nav', () => ({
+ getComponentNavigation: jest.fn(() =>
+ Promise.resolve({
+ breadcrumbs: [{ key: 'portfolioKey', name: 'portfolio', qualifier: 'VW' }]
+ })
+ )
+}));
+
+// mock this, because some of its children are using redux store
+jest.mock('../nav/component/ComponentNav', () => ({
+ default: () => null
+}));
const Inner = () => <div />;
@@ -60,10 +66,8 @@ it('changes component', () => {
expect(wrapper.state().component).toEqual({ qualifier: 'TRK', visibility: 'private' });
});
-it("loads branches for module's project", () => {
- (getBranches as jest.Mock<any>).mockImplementation(() => Promise.resolve([]));
- (getComponentData as jest.Mock<any>).mockImplementation(() => Promise.resolve({}));
- (getComponentNavigation as jest.Mock<any>).mockImplementation(() =>
+it("loads branches for module's project", async () => {
+ (getComponentNavigation as jest.Mock<any>).mockImplementationOnce(() =>
Promise.resolve({
breadcrumbs: [
{ key: 'projectKey', name: 'project', qualifier: 'TRK' },
@@ -78,38 +82,28 @@ it("loads branches for module's project", () => {
</ComponentContainer>
);
- return doAsync().then(() => {
- expect(getBranches).toBeCalledWith('projectKey');
- expect(getComponentData).toBeCalledWith('moduleKey', undefined);
- expect(getComponentNavigation).toBeCalledWith('moduleKey', undefined);
- });
+ await new Promise(setImmediate);
+ expect(getBranches).toBeCalledWith('projectKey');
+ expect(getComponentData).toBeCalledWith('moduleKey', undefined);
+ expect(getComponentNavigation).toBeCalledWith('moduleKey', undefined);
});
-it("doesn't load branches portfolio", () => {
- (getBranches as jest.Mock<any>).mockImplementation(() => Promise.resolve([]));
- (getComponentData as jest.Mock<any>).mockImplementation(() => Promise.resolve({}));
- (getComponentNavigation as jest.Mock<any>).mockImplementation(() =>
- Promise.resolve({
- breadcrumbs: [{ key: 'portfolioKey', name: 'portfolio', qualifier: 'VW' }]
- })
- );
-
+it("doesn't load branches portfolio", async () => {
const wrapper = mount(
<ComponentContainer fetchOrganizations={jest.fn()} location={{ query: { id: 'portfolioKey' } }}>
<Inner />
</ComponentContainer>
);
- return doAsync().then(() => {
- expect(getBranches).not.toBeCalled();
- expect(getComponentData).toBeCalledWith('portfolioKey', undefined);
- expect(getComponentNavigation).toBeCalledWith('portfolioKey', undefined);
- expect(wrapper.find(Inner).exists()).toBeTruthy();
- });
+ await new Promise(setImmediate);
+ expect(getBranches).not.toBeCalled();
+ expect(getComponentData).toBeCalledWith('portfolioKey', undefined);
+ expect(getComponentNavigation).toBeCalledWith('portfolioKey', undefined);
+ wrapper.update();
+ expect(wrapper.find(Inner).exists()).toBeTruthy();
});
it('updates branches on change', () => {
- (getBranches as jest.Mock<any>).mockImplementation(() => Promise.resolve([]));
const wrapper = shallow(
<ComponentContainer fetchOrganizations={jest.fn()} location={{ query: { id: 'portfolioKey' } }}>
<Inner />
@@ -125,8 +119,8 @@ it('updates branches on change', () => {
expect(getBranches).toBeCalledWith('projectKey');
});
-it('loads organization', () => {
- (getComponentData as jest.Mock<any>).mockImplementation(() =>
+it('loads organization', async () => {
+ (getComponentData as jest.Mock<any>).mockImplementationOnce(() =>
Promise.resolve({ organization: 'org' })
);
@@ -140,7 +134,6 @@ it('loads organization', () => {
</ComponentContainer>
);
- return doAsync().then(() => {
- expect(fetchOrganizations).toBeCalledWith(['org']);
- });
+ await new Promise(setImmediate);
+ expect(fetchOrganizations).toBeCalledWith(['org']);
});
diff --git a/server/sonar-web/src/main/js/app/components/nav/component/__tests__/ComponentNav-test.tsx b/server/sonar-web/src/main/js/app/components/nav/component/__tests__/ComponentNav-test.tsx
index 9975e19bf06..170bce7eb27 100644
--- a/server/sonar-web/src/main/js/app/components/nav/component/__tests__/ComponentNav-test.tsx
+++ b/server/sonar-web/src/main/js/app/components/nav/component/__tests__/ComponentNav-test.tsx
@@ -17,7 +17,11 @@
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-/* eslint-disable import/first, import/order */
+/* eslint-disable import/order */
+import * as React from 'react';
+import { mount, shallow } from 'enzyme';
+import ComponentNav from '../ComponentNav';
+
jest.mock('../ComponentNavFavorite', () => ({
// eslint-disable-next-line
default: function ComponentNavFavorite() {
@@ -47,10 +51,6 @@ jest.mock('../../../../../api/ce', () => ({
getTasksForComponent: jest.fn(() => Promise.resolve({ queue: [] }))
}));
-import * as React from 'react';
-import { mount, shallow } from 'enzyme';
-import ComponentNav from '../ComponentNav';
-
const getTasksForComponent = require('../../../../../api/ce').getTasksForComponent as jest.Mock<
any
>;
diff --git a/server/sonar-web/src/main/js/app/components/nav/component/__tests__/__snapshots__/ComponentNav-test.tsx.snap b/server/sonar-web/src/main/js/app/components/nav/component/__tests__/__snapshots__/ComponentNav-test.tsx.snap
index a8090844fd9..f92f0e066ea 100644
--- a/server/sonar-web/src/main/js/app/components/nav/component/__tests__/__snapshots__/ComponentNav-test.tsx.snap
+++ b/server/sonar-web/src/main/js/app/components/nav/component/__tests__/__snapshots__/ComponentNav-test.tsx.snap
@@ -21,6 +21,7 @@ exports[`renders 1`] = `
"qualifier": "TRK",
}
}
+ currentTask={undefined}
isInProgress={true}
isPending={true}
/>
diff --git a/server/sonar-web/src/main/js/app/components/nav/settings/SettingsEditionsNotif.tsx b/server/sonar-web/src/main/js/app/components/nav/settings/SettingsEditionsNotif.tsx
index b0340d6730a..2c4cebc6a29 100644
--- a/server/sonar-web/src/main/js/app/components/nav/settings/SettingsEditionsNotif.tsx
+++ b/server/sonar-web/src/main/js/app/components/nav/settings/SettingsEditionsNotif.tsx
@@ -64,7 +64,7 @@ export default class SettingsEditionsNotif extends React.PureComponent<Props, St
</button>
)}
{!preventRestart &&
- this.state.openRestart && <RestartForm onClose={this.hanleCloseRestart} />}
+ this.state.openRestart && <RestartForm onClose={this.hanleCloseRestart} />}
</NavBarNotif>
);
}
@@ -73,14 +73,12 @@ export default class SettingsEditionsNotif extends React.PureComponent<Props, St
const { editionStatus } = this.props;
return (
<NavBarNotif className="alert alert-danger">
- {edition ? (
- translateWithParameters(
- 'marketplace.status_x.' + editionStatus.installationStatus,
- edition.name
- )
- ) : (
- translate('marketplace.status', editionStatus.installationStatus)
- )}
+ {edition
+ ? translateWithParameters(
+ 'marketplace.status_x.' + editionStatus.installationStatus,
+ edition.name
+ )
+ : translate('marketplace.status', editionStatus.installationStatus)}
{edition && (
<a
className="button spacer-left"
diff --git a/server/sonar-web/src/main/js/app/components/search/__tests__/SearchResult-test.js b/server/sonar-web/src/main/js/app/components/search/__tests__/SearchResult-test.js
index 0ff0d8672f9..56378090b58 100644
--- a/server/sonar-web/src/main/js/app/components/search/__tests__/SearchResult-test.js
+++ b/server/sonar-web/src/main/js/app/components/search/__tests__/SearchResult-test.js
@@ -118,6 +118,7 @@ it('shows tooltip after delay', () => {
expect(wrapper.find('Tooltip').prop('visible')).toBe(false);
jest.runAllTimers();
+ wrapper.update();
expect(wrapper.find('Tooltip').prop('visible')).toBe(true);
wrapper.setProps({ selected: false });
diff --git a/server/sonar-web/src/main/js/apps/account/profile/UserExternalIdentity.js b/server/sonar-web/src/main/js/apps/account/profile/UserExternalIdentity.js
index fba6c92f27c..c00d9f7fff6 100644
--- a/server/sonar-web/src/main/js/apps/account/profile/UserExternalIdentity.js
+++ b/server/sonar-web/src/main/js/apps/account/profile/UserExternalIdentity.js
@@ -30,8 +30,8 @@ export default class UserExternalIdentity extends React.PureComponent {
this.fetchIdentityProviders();
}
- componentDidUpdate(nextProps) {
- if (nextProps.user !== this.props.user) {
+ componentDidUpdate(prevProps) {
+ if (prevProps.user !== this.props.user) {
this.this.fetchIdentityProviders();
}
}
diff --git a/server/sonar-web/src/main/js/apps/background-tasks/components/Stacktrace.tsx b/server/sonar-web/src/main/js/apps/background-tasks/components/Stacktrace.tsx
index 0c450bf02dc..edc3a9d7800 100644
--- a/server/sonar-web/src/main/js/apps/background-tasks/components/Stacktrace.tsx
+++ b/server/sonar-web/src/main/js/apps/background-tasks/components/Stacktrace.tsx
@@ -47,11 +47,18 @@ export default class Stacktrace extends React.PureComponent<Props, State> {
}
loadStacktrace() {
- getTask(this.props.task.id, ['stacktrace']).then(task => {
- if (this.mounted) {
- this.setState({ loading: false, stacktrace: task.errorStacktrace });
+ getTask(this.props.task.id, ['stacktrace']).then(
+ task => {
+ if (this.mounted) {
+ this.setState({ loading: false, stacktrace: task.errorStacktrace });
+ }
+ },
+ () => {
+ if (this.mounted) {
+ this.setState({ loading: false });
+ }
}
- });
+ );
}
handleCloseClick = (event: React.SyntheticEvent<HTMLAnchorElement>) => {
diff --git a/server/sonar-web/src/main/js/apps/background-tasks/components/Workers.tsx b/server/sonar-web/src/main/js/apps/background-tasks/components/Workers.tsx
index 60312ec8927..ee8225ac722 100644
--- a/server/sonar-web/src/main/js/apps/background-tasks/components/Workers.tsx
+++ b/server/sonar-web/src/main/js/apps/background-tasks/components/Workers.tsx
@@ -56,15 +56,22 @@ export default class Workers extends React.PureComponent<{}, State> {
loadWorkers = () => {
this.setState({ loading: true });
- getWorkers().then(({ canSetWorkerCount, value }) => {
- if (this.mounted) {
- this.setState({
- canSetWorkerCount,
- loading: false,
- workerCount: value
- });
+ getWorkers().then(
+ ({ canSetWorkerCount, value }) => {
+ if (this.mounted) {
+ this.setState({
+ canSetWorkerCount,
+ loading: false,
+ workerCount: value
+ });
+ }
+ },
+ () => {
+ if (this.mounted) {
+ this.setState({ loading: false });
+ }
}
- });
+ );
};
closeForm = (newWorkerCount?: number) =>
diff --git a/server/sonar-web/src/main/js/apps/background-tasks/components/__tests__/ScannerContext-test.tsx b/server/sonar-web/src/main/js/apps/background-tasks/components/__tests__/ScannerContext-test.tsx
index 64cd98c8f77..7ec4218caf0 100644
--- a/server/sonar-web/src/main/js/apps/background-tasks/components/__tests__/ScannerContext-test.tsx
+++ b/server/sonar-web/src/main/js/apps/background-tasks/components/__tests__/ScannerContext-test.tsx
@@ -17,15 +17,17 @@
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-/* eslint-disable import/first, import/order */
-jest.mock('../../../../api/ce', () => ({
- getTask: jest.fn()
-}));
-
+/* eslint-disable import/order */
import * as React from 'react';
import { mount, shallow } from 'enzyme';
import ScannerContext from '../ScannerContext';
-import { click, doAsync } from '../../../../helpers/testUtils';
+import { click } from '../../../../helpers/testUtils';
+
+jest.mock('react-dom');
+
+jest.mock('../../../../api/ce', () => ({
+ getTask: jest.fn(() => Promise.resolve({ scannerContext: 'context' }))
+}));
const getTask = require('../../../../api/ce').getTask as jest.Mock<any>;
@@ -37,6 +39,10 @@ const task = {
type: 'REPORT'
};
+beforeEach(() => {
+ getTask.mockClear();
+});
+
it('renders', () => {
const wrapper = shallow(<ScannerContext onClose={jest.fn()} task={task} />);
wrapper.setState({ scannerContext: 'context' });
@@ -50,12 +56,10 @@ it('closes', () => {
expect(onClose).toBeCalled();
});
-it('fetches scanner context on mount', () => {
- getTask.mockImplementation(() => Promise.resolve({ scannerContext: 'context' }));
+it('fetches scanner context on mount', async () => {
const wrapper = mount(<ScannerContext onClose={jest.fn()} task={task} />);
expect(wrapper.state()).toEqual({});
expect(getTask).toBeCalledWith('123', ['scannerContext']);
- return doAsync().then(() => {
- expect(wrapper.state()).toEqual({ scannerContext: 'context' });
- });
+ await new Promise(setImmediate);
+ expect(wrapper.state()).toEqual({ scannerContext: 'context' });
});
diff --git a/server/sonar-web/src/main/js/apps/background-tasks/components/__tests__/Stacktrace-test.tsx b/server/sonar-web/src/main/js/apps/background-tasks/components/__tests__/Stacktrace-test.tsx
index 28bddab75a8..50724fa9946 100644
--- a/server/sonar-web/src/main/js/apps/background-tasks/components/__tests__/Stacktrace-test.tsx
+++ b/server/sonar-web/src/main/js/apps/background-tasks/components/__tests__/Stacktrace-test.tsx
@@ -17,15 +17,17 @@
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-/* eslint-disable import/first, import/order */
-jest.mock('../../../../api/ce', () => ({
- getTask: jest.fn()
-}));
-
+/* eslint-disable import/order */
import * as React from 'react';
import { mount, shallow } from 'enzyme';
import Stacktrace from '../Stacktrace';
-import { click, doAsync } from '../../../../helpers/testUtils';
+import { click } from '../../../../helpers/testUtils';
+
+jest.mock('react-dom');
+
+jest.mock('../../../../api/ce', () => ({
+ getTask: jest.fn(() => Promise.resolve({ errorStacktrace: 'stacktrace' }))
+}));
const getTask = require('../../../../api/ce').getTask as jest.Mock<any>;
@@ -37,6 +39,10 @@ const task = {
type: 'REPORT'
};
+beforeEach(() => {
+ getTask.mockClear();
+});
+
it('renders', () => {
const wrapper = shallow(<Stacktrace onClose={jest.fn()} task={task} />);
wrapper.setState({ loading: false, stacktrace: 'stacktrace' });
@@ -50,12 +56,10 @@ it('closes', () => {
expect(onClose).toBeCalled();
});
-it('fetches scanner context on mount', () => {
- getTask.mockImplementation(() => Promise.resolve({ errorStacktrace: 'stacktrace' }));
+it('fetches scanner context on mount', async () => {
const wrapper = mount(<Stacktrace onClose={jest.fn()} task={task} />);
expect(wrapper.state()).toEqual({ loading: true });
expect(getTask).toBeCalledWith('123', ['stacktrace']);
- return doAsync().then(() => {
- expect(wrapper.state()).toEqual({ loading: false, stacktrace: 'stacktrace' });
- });
+ await new Promise(setImmediate);
+ expect(wrapper.state()).toEqual({ loading: false, stacktrace: 'stacktrace' });
});
diff --git a/server/sonar-web/src/main/js/apps/background-tasks/components/__tests__/TaskActions-test.tsx b/server/sonar-web/src/main/js/apps/background-tasks/components/__tests__/TaskActions-test.tsx
index 4c86aa33142..8b735a1644b 100644
--- a/server/sonar-web/src/main/js/apps/background-tasks/components/__tests__/TaskActions-test.tsx
+++ b/server/sonar-web/src/main/js/apps/background-tasks/components/__tests__/TaskActions-test.tsx
@@ -35,6 +35,7 @@ it('shows stack trace', () => {
click(wrapper.find('.js-task-show-stacktrace'));
expect(wrapper.find('Stacktrace')).toMatchSnapshot();
wrapper.find('Stacktrace').prop<Function>('onClose')();
+ wrapper.update();
expect(wrapper.find('Stacktrace').exists()).toBeFalsy();
});
@@ -43,6 +44,7 @@ it('shows scanner context', () => {
click(wrapper.find('.js-task-show-scanner-context'));
expect(wrapper.find('ScannerContext')).toMatchSnapshot();
wrapper.find('ScannerContext').prop<Function>('onClose')();
+ wrapper.update();
expect(wrapper.find('ScannerContext').exists()).toBeFalsy();
});
diff --git a/server/sonar-web/src/main/js/apps/code/components/App.tsx b/server/sonar-web/src/main/js/apps/code/components/App.tsx
index 13718a6f520..a7a7432e3cd 100644
--- a/server/sonar-web/src/main/js/apps/code/components/App.tsx
+++ b/server/sonar-web/src/main/js/apps/code/components/App.tsx
@@ -94,7 +94,9 @@ export default class App extends React.PureComponent<Props, State> {
retrieveComponentChildren(component.key, isPortfolio, branch && getBranchName(branch))
.then(() => {
addComponent(component);
- this.handleUpdate();
+ if (this.mounted) {
+ this.handleUpdate();
+ }
})
.catch(e => {
if (this.mounted) {
diff --git a/server/sonar-web/src/main/js/apps/component-measures/components/App.js b/server/sonar-web/src/main/js/apps/component-measures/components/App.js
index e5a483dcac8..84bd294f9e9 100644
--- a/server/sonar-web/src/main/js/apps/component-measures/components/App.js
+++ b/server/sonar-web/src/main/js/apps/component-measures/components/App.js
@@ -117,7 +117,11 @@ export default class App extends React.PureComponent {
});
}
},
- () => this.setState({ loading: false })
+ () => {
+ if (this.mounted) {
+ this.setState({ loading: false });
+ }
+ }
);
};
diff --git a/server/sonar-web/src/main/js/apps/component-measures/components/__tests__/App-test.js b/server/sonar-web/src/main/js/apps/component-measures/components/__tests__/App-test.js
index b990be2ff47..99da3d9d9b3 100644
--- a/server/sonar-web/src/main/js/apps/component-measures/components/__tests__/App-test.js
+++ b/server/sonar-web/src/main/js/apps/component-measures/components/__tests__/App-test.js
@@ -42,7 +42,7 @@ const PROPS = {
branch: { isMain: true, name: 'master' },
component: { key: 'foo' },
location: { pathname: '/component_measures', query: { metric: 'coverage' } },
- fetchMeasures: () => {},
+ fetchMeasures: () => Promise.resolve({ measures: [] }),
fetchMetrics: () => {},
metrics: METRICS,
metricsKey: ['lines_to_cover', 'coverage', 'duplicated_lines_density', 'new_bugs'],
diff --git a/server/sonar-web/src/main/js/apps/issues/sidebar/__tests__/__snapshots__/AssigneeFacet-test.js.snap b/server/sonar-web/src/main/js/apps/issues/sidebar/__tests__/__snapshots__/AssigneeFacet-test.js.snap
index d384037257b..28442511ef4 100644
--- a/server/sonar-web/src/main/js/apps/issues/sidebar/__tests__/__snapshots__/AssigneeFacet-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/issues/sidebar/__tests__/__snapshots__/AssigneeFacet-test.js.snap
@@ -14,6 +14,7 @@ exports[`should render 1`] = `
active={false}
disabled={false}
halfWidth={false}
+ key=""
name="unassigned"
onClick={[Function]}
stat="5"
@@ -100,6 +101,7 @@ exports[`should select unassigned 1`] = `
active={true}
disabled={false}
halfWidth={false}
+ key=""
name="unassigned"
onClick={[Function]}
stat="5"
@@ -162,6 +164,7 @@ exports[`should select user 1`] = `
active={false}
disabled={false}
halfWidth={false}
+ key=""
name="unassigned"
onClick={[Function]}
stat="5"
diff --git a/server/sonar-web/src/main/js/apps/marketplace/__tests__/EditionBoxes-test.tsx b/server/sonar-web/src/main/js/apps/marketplace/__tests__/EditionBoxes-test.tsx
index 0201372b086..f7fe0280173 100644
--- a/server/sonar-web/src/main/js/apps/marketplace/__tests__/EditionBoxes-test.tsx
+++ b/server/sonar-web/src/main/js/apps/marketplace/__tests__/EditionBoxes-test.tsx
@@ -62,6 +62,7 @@ it('should display an error message', () => {
it('should open the license form', () => {
const wrapper = getWrapper({ editions: DEFAULT_EDITIONS });
(wrapper.instance() as EditionBoxes).handleOpenLicenseForm(DEFAULT_EDITIONS[0]);
+ wrapper.update();
expect(wrapper.find('LicenseEditionForm').exists()).toBeTruthy();
});
diff --git a/server/sonar-web/src/main/js/apps/marketplace/__tests__/PendingActions-test.tsx b/server/sonar-web/src/main/js/apps/marketplace/__tests__/PendingActions-test.tsx
index 882cc16ec84..d83b37197be 100644
--- a/server/sonar-web/src/main/js/apps/marketplace/__tests__/PendingActions-test.tsx
+++ b/server/sonar-web/src/main/js/apps/marketplace/__tests__/PendingActions-test.tsx
@@ -38,7 +38,7 @@ it('should display pending actions', () => {
});
it('should not display anything', () => {
- expect(getWrapper({ pending: { installing: [], updating: [], removing: [] } })).toMatchSnapshot();
+ expect(getWrapper({ pending: { installing: [], updating: [], removing: [] } }).type()).toBeNull();
});
it('should open the restart form', () => {
diff --git a/server/sonar-web/src/main/js/apps/marketplace/__tests__/__snapshots__/PendingActions-test.tsx.snap b/server/sonar-web/src/main/js/apps/marketplace/__tests__/__snapshots__/PendingActions-test.tsx.snap
index 7e8801a1e0c..f68b3b68416 100644
--- a/server/sonar-web/src/main/js/apps/marketplace/__tests__/__snapshots__/PendingActions-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/marketplace/__tests__/__snapshots__/PendingActions-test.tsx.snap
@@ -59,5 +59,3 @@ exports[`should display pending actions 1`] = `
</div>
</div>
`;
-
-exports[`should not display anything 1`] = `null`;
diff --git a/server/sonar-web/src/main/js/apps/marketplace/components/EditionBox.tsx b/server/sonar-web/src/main/js/apps/marketplace/components/EditionBox.tsx
index 6f90fda970e..2d97b212ed0 100644
--- a/server/sonar-web/src/main/js/apps/marketplace/components/EditionBox.tsx
+++ b/server/sonar-web/src/main/js/apps/marketplace/components/EditionBox.tsx
@@ -43,11 +43,9 @@ export default class EditionBox extends React.PureComponent<Props> {
if (canInstall && !isInstalled) {
return (
<button disabled={installInProgress || uninstallInProgress} onClick={this.handleInstall}>
- {this.props.isDowngrade ? (
- translate('marketplace.downgrade')
- ) : (
- translate('marketplace.upgrade')
- )}
+ {this.props.isDowngrade
+ ? translate('marketplace.downgrade')
+ : translate('marketplace.upgrade')}
</button>
);
}
diff --git a/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/EditionBoxBadge-test.tsx b/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/EditionBoxBadge-test.tsx
index 88a9c2c4ab0..d2ad1c52ec7 100644
--- a/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/EditionBoxBadge-test.tsx
+++ b/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/EditionBoxBadge-test.tsx
@@ -31,7 +31,7 @@ const DEFAULT_STATUS: EditionStatus = {
it('should display installed badge', () => {
expect(
getWrapper({
- editionStatus: {
+ status: {
currentEditionKey: 'foo',
nextEditionKey: '',
installationStatus: 'NONE'
@@ -43,7 +43,7 @@ it('should display installed badge', () => {
it('should display installing badge', () => {
expect(
getWrapper({
- editionStatus: {
+ status: {
currentEditionKey: 'foo',
nextEditionKey: 'foo',
installationStatus: 'AUTOMATIC_IN_PROGRESS'
@@ -55,7 +55,7 @@ it('should display installing badge', () => {
it('should display pending badge', () => {
expect(
getWrapper({
- editionStatus: {
+ status: {
currentEditionKey: '',
nextEditionKey: 'foo',
installationStatus: 'AUTOMATIC_READY'
@@ -67,13 +67,13 @@ it('should display pending badge', () => {
it('should not display a badge', () => {
expect(
getWrapper({
- editionStatus: {
+ status: {
currentEditionKey: '',
nextEditionKey: 'bar',
installationStatus: 'AUTOMATIC_READY'
}
- })
- ).toMatchSnapshot();
+ }).type()
+ ).toBeNull();
});
function getWrapper(props = {}) {
diff --git a/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/LicenseEditionForm-test.tsx b/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/LicenseEditionForm-test.tsx
index 8c217a66793..2105a1405bc 100644
--- a/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/LicenseEditionForm-test.tsx
+++ b/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/LicenseEditionForm-test.tsx
@@ -63,8 +63,8 @@ it('should update the edition status after install', async () => {
const updateEditionStatus = jest.fn();
const wrapper = getWrapper({ updateEditionStatus });
const form = wrapper.instance() as LicenseEditionForm;
- form.mounted = true;
form.handleLicenseChange('mylicense', 'AUTOMATIC_INSTALL');
+ wrapper.update();
click(wrapper.find('button'));
expect(applyLicense).toHaveBeenCalledWith({ license: 'mylicense' });
await new Promise(setImmediate);
diff --git a/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/LicenseEditionSet-test.tsx b/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/LicenseEditionSet-test.tsx
index 77ef1d270a3..ce2c5e98fdd 100644
--- a/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/LicenseEditionSet-test.tsx
+++ b/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/LicenseEditionSet-test.tsx
@@ -26,7 +26,8 @@ import LicenseEditionSet from '../LicenseEditionSet';
jest.mock('../../../../api/marketplace', () => ({
getLicensePreview: jest.fn(() =>
Promise.resolve({ nextEditionKey: 'foo', previewStatus: 'NO_INSTALL' })
- )
+ ),
+ getFormData: jest.fn(() => Promise.resolve({ serverId: 'foo', ncloc: 1000 }))
}));
jest.mock('lodash', () => {
@@ -56,6 +57,13 @@ it('should display correctly', () => {
expect(getWrapper()).toMatchSnapshot();
});
+it('should display the get license link with parameters', async () => {
+ const wrapper = getWrapper();
+ await new Promise(setImmediate);
+ wrapper.update();
+ expect(wrapper.find('a')).toMatchSnapshot();
+});
+
it('should correctly display status message after checking license', async () => {
await testLicenseStatus('NO_INSTALL');
await testLicenseStatus('AUTOMATIC_INSTALL');
@@ -79,10 +87,10 @@ async function testLicenseStatus(status: string) {
);
const updateLicense = jest.fn();
const wrapper = getWrapper({ updateLicense });
- (wrapper.instance() as LicenseEditionSet).mounted = true;
change(wrapper.find('textarea'), 'mylicense');
expect(getLicensePreview).toHaveBeenCalled();
await new Promise(setImmediate);
expect(updateLicense).toHaveBeenCalled();
+ wrapper.update();
expect(wrapper.find('p.alert')).toMatchSnapshot();
}
diff --git a/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/PluginLicense-test.tsx b/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/PluginLicense-test.tsx
index 1031b90b53b..23f79108451 100644
--- a/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/PluginLicense-test.tsx
+++ b/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/PluginLicense-test.tsx
@@ -26,5 +26,5 @@ it('should display the license field', () => {
});
it('should not display anything', () => {
- expect(shallow(<PluginLicense />)).toMatchSnapshot();
+ expect(shallow(<PluginLicense />).type()).toBeNull();
});
diff --git a/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/PluginUrls-test.tsx b/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/PluginUrls-test.tsx
index cbddc53a91f..01011b36af6 100644
--- a/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/PluginUrls-test.tsx
+++ b/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/PluginUrls-test.tsx
@@ -30,7 +30,7 @@ it('should display only one url', () => {
});
it('should not display anything', () => {
- expect(getWrapper({ homepageUrl: undefined, issueTrackerUrl: undefined })).toMatchSnapshot();
+ expect(getWrapper({ homepageUrl: undefined, issueTrackerUrl: undefined }).type()).toBeNull();
});
function getWrapper(plugin = {}) {
diff --git a/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/__snapshots__/EditionBoxBadge-test.tsx.snap b/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/__snapshots__/EditionBoxBadge-test.tsx.snap
index 7e824591e02..0d5724e6fc1 100644
--- a/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/__snapshots__/EditionBoxBadge-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/__snapshots__/EditionBoxBadge-test.tsx.snap
@@ -1,9 +1,29 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`should display installed badge 1`] = `null`;
+exports[`should display installed badge 1`] = `
+<span
+ className="marketplace-edition-badge badge badge-normal-size"
+>
+ <CheckIcon
+ className="little-spacer-right text-bottom"
+ size={14}
+ />
+ marketplace.installed
+</span>
+`;
-exports[`should display installing badge 1`] = `null`;
+exports[`should display installing badge 1`] = `
+<span
+ className="marketplace-edition-badge badge badge-normal-size"
+>
+ marketplace.installing
+</span>
+`;
-exports[`should display pending badge 1`] = `null`;
-
-exports[`should not display a badge 1`] = `null`;
+exports[`should display pending badge 1`] = `
+<span
+ className="marketplace-edition-badge badge badge-normal-size"
+>
+ marketplace.pending
+</span>
+`;
diff --git a/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/__snapshots__/LicenseEditionSet-test.tsx.snap b/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/__snapshots__/LicenseEditionSet-test.tsx.snap
index b990a23a26c..6026ff03d97 100644
--- a/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/__snapshots__/LicenseEditionSet-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/__snapshots__/LicenseEditionSet-test.tsx.snap
@@ -75,3 +75,13 @@ exports[`should display correctly 1`] = `
</a>
</div>
`;
+
+exports[`should display the get license link with parameters 1`] = `
+<a
+ className="display-inline-block spacer-top"
+ href="license_url?serverId=foo&ncloc=1000"
+ target="_blank"
+>
+ marketplace.i_need_a_license
+</a>
+`;
diff --git a/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/__snapshots__/PluginLicense-test.tsx.snap b/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/__snapshots__/PluginLicense-test.tsx.snap
index 5a77d6923b2..64bc114f97a 100644
--- a/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/__snapshots__/PluginLicense-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/__snapshots__/PluginLicense-test.tsx.snap
@@ -24,5 +24,3 @@ exports[`should display the license field 1`] = `
</li>
</Tooltip>
`;
-
-exports[`should not display anything 1`] = `null`;
diff --git a/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/__snapshots__/PluginUrls-test.tsx.snap b/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/__snapshots__/PluginUrls-test.tsx.snap
index f1a088480ba..a55d3214845 100644
--- a/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/__snapshots__/PluginUrls-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/__snapshots__/PluginUrls-test.tsx.snap
@@ -48,5 +48,3 @@ exports[`should display the urls 1`] = `
</ul>
</li>
`;
-
-exports[`should not display anything 1`] = `null`;
diff --git a/server/sonar-web/src/main/js/apps/organizations/components/OrganizationAdmin.js b/server/sonar-web/src/main/js/apps/organizations/components/OrganizationAdmin.js
index a58a5315717..d11ba3c3d5b 100644
--- a/server/sonar-web/src/main/js/apps/organizations/components/OrganizationAdmin.js
+++ b/server/sonar-web/src/main/js/apps/organizations/components/OrganizationAdmin.js
@@ -23,12 +23,12 @@ import { connect } from 'react-redux';
import { getOrganizationByKey } from '../../../store/rootReducer';
import handleRequiredAuthorization from '../../../app/utils/handleRequiredAuthorization';
-class OrganizationAdmin extends React.PureComponent {
+export class OrganizationAdmin extends React.PureComponent {
/*:: props: {
children?: React.Element<*>,
organization: { canAdmin: boolean }
};
-*/
+ */
componentDidMount() {
this.checkPermissions();
@@ -62,5 +62,3 @@ const mapStateToProps = (state, ownProps) => ({
});
export default connect(mapStateToProps)(OrganizationAdmin);
-
-export const UnconnectedOrganizationAdmin = OrganizationAdmin;
diff --git a/server/sonar-web/src/main/js/apps/organizations/components/OrganizationPage.js b/server/sonar-web/src/main/js/apps/organizations/components/OrganizationPage.js
index 4c10db34e07..75d97828745 100644
--- a/server/sonar-web/src/main/js/apps/organizations/components/OrganizationPage.js
+++ b/server/sonar-web/src/main/js/apps/organizations/components/OrganizationPage.js
@@ -49,7 +49,7 @@ type State = {
};
*/
-class OrganizationPage extends React.PureComponent {
+export class OrganizationPage extends React.PureComponent {
/*:: mounted: boolean; */
/*:: props: Props; */
state /*: State */ = { loading: true };
@@ -108,5 +108,3 @@ const mapStateToProps = (state, ownProps /*: OwnProps */) => ({
const mapDispatchToProps = { fetchOrganization };
export default connect(mapStateToProps, mapDispatchToProps)(OrganizationPage);
-
-export const UnconnectedOrganizationPage = OrganizationPage;
diff --git a/server/sonar-web/src/main/js/apps/organizations/components/__tests__/OrganizationAdmin-test.js b/server/sonar-web/src/main/js/apps/organizations/components/__tests__/OrganizationAdmin-test.js
index 321be58a0ae..77c7e788dcf 100644
--- a/server/sonar-web/src/main/js/apps/organizations/components/__tests__/OrganizationAdmin-test.js
+++ b/server/sonar-web/src/main/js/apps/organizations/components/__tests__/OrganizationAdmin-test.js
@@ -19,15 +19,17 @@
*/
import React from 'react';
import { shallow } from 'enzyme';
-import { UnconnectedOrganizationAdmin } from '../OrganizationAdmin';
+import { OrganizationAdmin } from '../OrganizationAdmin';
+
+jest.mock('../../../../app/utils/handleRequiredAuthorization', () => jest.fn());
it('should render children', () => {
const organization = { canAdmin: true };
expect(
shallow(
- <UnconnectedOrganizationAdmin organization={organization}>
+ <OrganizationAdmin organization={organization}>
<div>hello</div>
- </UnconnectedOrganizationAdmin>
+ </OrganizationAdmin>
)
).toMatchSnapshot();
});
@@ -36,9 +38,9 @@ it('should not render anything', () => {
const organization = { canAdmin: false };
expect(
shallow(
- <UnconnectedOrganizationAdmin organization={organization}>
+ <OrganizationAdmin organization={organization}>
<div>hello</div>
- </UnconnectedOrganizationAdmin>
- )
- ).toMatchSnapshot();
+ </OrganizationAdmin>
+ ).type()
+ ).toBeNull();
});
diff --git a/server/sonar-web/src/main/js/apps/organizations/components/__tests__/OrganizationMembers-test.js b/server/sonar-web/src/main/js/apps/organizations/components/__tests__/OrganizationMembers-test.js
index 9be07a22d0b..893051711bf 100644
--- a/server/sonar-web/src/main/js/apps/organizations/components/__tests__/OrganizationMembers-test.js
+++ b/server/sonar-web/src/main/js/apps/organizations/components/__tests__/OrganizationMembers-test.js
@@ -35,6 +35,7 @@ it('should not render actions for non admin', () => {
members={members}
status={status}
fetchOrganizationMembers={jest.fn()}
+ fetchOrganizationGroups={jest.fn()}
fetchMoreOrganizationMembers={jest.fn()}
/>
);
@@ -48,6 +49,7 @@ it('should render actions for admin', () => {
members={members}
status={{ ...status, loading: true }}
fetchOrganizationMembers={jest.fn()}
+ fetchOrganizationGroups={jest.fn()}
fetchMoreOrganizationMembers={jest.fn()}
/>
);
diff --git a/server/sonar-web/src/main/js/apps/organizations/components/__tests__/OrganizationPage-test.js b/server/sonar-web/src/main/js/apps/organizations/components/__tests__/OrganizationPage-test.js
index 4ced6f1a369..5130a0abd4f 100644
--- a/server/sonar-web/src/main/js/apps/organizations/components/__tests__/OrganizationPage-test.js
+++ b/server/sonar-web/src/main/js/apps/organizations/components/__tests__/OrganizationPage-test.js
@@ -19,15 +19,17 @@
*/
import React from 'react';
import { shallow } from 'enzyme';
-import { UnconnectedOrganizationPage } from '../OrganizationPage';
+import { OrganizationPage } from '../OrganizationPage';
+
+const fetchOrganization = () => Promise.resolve();
it('smoke test', () => {
const wrapper = shallow(
- <UnconnectedOrganizationPage params={{ organizationKey: 'foo' }}>
+ <OrganizationPage fetchOrganization={fetchOrganization} params={{ organizationKey: 'foo' }}>
<div>hello</div>
- </UnconnectedOrganizationPage>
+ </OrganizationPage>
);
- expect(wrapper).toMatchSnapshot();
+ expect(wrapper.type()).toBeNull();
const organization = { key: 'foo', name: 'Foo', isDefault: false, canAdmin: false };
wrapper.setProps({ organization });
@@ -36,9 +38,9 @@ it('smoke test', () => {
it('not found', () => {
const wrapper = shallow(
- <UnconnectedOrganizationPage params={{ organizationKey: 'foo' }}>
+ <OrganizationPage fetchOrganization={fetchOrganization} params={{ organizationKey: 'foo' }}>
<div>hello</div>
- </UnconnectedOrganizationPage>
+ </OrganizationPage>
);
wrapper.setState({ loading: false });
expect(wrapper).toMatchSnapshot();
@@ -47,12 +49,11 @@ it('not found', () => {
it('should correctly update when the organization changes', () => {
const fetchOrganization = jest.fn(() => Promise.resolve());
const wrapper = shallow(
- <UnconnectedOrganizationPage
- params={{ organizationKey: 'foo' }}
- fetchOrganization={fetchOrganization}>
+ <OrganizationPage params={{ organizationKey: 'foo' }} fetchOrganization={fetchOrganization}>
<div>hello</div>
- </UnconnectedOrganizationPage>
+ </OrganizationPage>
);
wrapper.setProps({ params: { organizationKey: 'bar' } });
+ expect(fetchOrganization).toHaveBeenCalledTimes(2);
expect(fetchOrganization.mock.calls).toMatchSnapshot();
});
diff --git a/server/sonar-web/src/main/js/apps/organizations/components/__tests__/__snapshots__/OrganizationAdmin-test.js.snap b/server/sonar-web/src/main/js/apps/organizations/components/__tests__/__snapshots__/OrganizationAdmin-test.js.snap
index b22c9e9f05c..331cb8d84f7 100644
--- a/server/sonar-web/src/main/js/apps/organizations/components/__tests__/__snapshots__/OrganizationAdmin-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/organizations/components/__tests__/__snapshots__/OrganizationAdmin-test.js.snap
@@ -1,7 +1,5 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`should not render anything 1`] = `null`;
-
exports[`should render children 1`] = `
<div>
hello
diff --git a/server/sonar-web/src/main/js/apps/organizations/components/__tests__/__snapshots__/OrganizationPage-test.js.snap b/server/sonar-web/src/main/js/apps/organizations/components/__tests__/__snapshots__/OrganizationPage-test.js.snap
index 350cc9b5d80..46bff666818 100644
--- a/server/sonar-web/src/main/js/apps/organizations/components/__tests__/__snapshots__/OrganizationPage-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/organizations/components/__tests__/__snapshots__/OrganizationPage-test.js.snap
@@ -5,14 +5,15 @@ exports[`not found 1`] = `<NotFound />`;
exports[`should correctly update when the organization changes 1`] = `
Array [
Array [
+ "foo",
+ ],
+ Array [
"bar",
],
]
`;
-exports[`smoke test 1`] = `null`;
-
-exports[`smoke test 2`] = `
+exports[`smoke test 1`] = `
<div>
<HelmetWrapper
defaultTitle="Foo"
diff --git a/server/sonar-web/src/main/js/apps/organizations/components/forms/AddMemberForm.js b/server/sonar-web/src/main/js/apps/organizations/components/forms/AddMemberForm.js
index b62b316c97d..ef4b5ed4ebb 100644
--- a/server/sonar-web/src/main/js/apps/organizations/components/forms/AddMemberForm.js
+++ b/server/sonar-web/src/main/js/apps/organizations/components/forms/AddMemberForm.js
@@ -77,10 +77,11 @@ export default class AddMemberForm extends React.PureComponent {
};
renderModal() {
+ const header = translate('users.add');
return (
- <Modal contentLabel="modal form" onRequestClose={this.closeForm}>
+ <Modal key="add-member-modal" contentLabel={header} onRequestClose={this.closeForm}>
<header className="modal-head">
- <h2>{translate('users.add')}</h2>
+ <h2>{header}</h2>
</header>
<form onSubmit={this.handleSubmit}>
<div className="modal-body">
@@ -111,11 +112,14 @@ export default class AddMemberForm extends React.PureComponent {
}
render() {
- return (
- <button onClick={this.openForm}>
+ const buttonComponent = (
+ <button key="add-member-button" onClick={this.openForm}>
{translate('organization.members.add')}
- {this.state.open && this.renderModal()}
</button>
);
+ if (this.state.open) {
+ return [buttonComponent, this.renderModal()];
+ }
+ return buttonComponent;
}
}
diff --git a/server/sonar-web/src/main/js/apps/organizations/components/forms/ManageMemberGroupsForm.js b/server/sonar-web/src/main/js/apps/organizations/components/forms/ManageMemberGroupsForm.js
index 0152ce62c21..6e8818b6e85 100644
--- a/server/sonar-web/src/main/js/apps/organizations/components/forms/ManageMemberGroupsForm.js
+++ b/server/sonar-web/src/main/js/apps/organizations/components/forms/ManageMemberGroupsForm.js
@@ -105,10 +105,11 @@ export default class ManageMemberGroupsForm extends React.PureComponent {
};
renderModal() {
+ const header = translate('organization.members.manage_groups');
return (
- <Modal contentLabel="modal form" onRequestClose={this.closeForm}>
+ <Modal key="manage-member-modal" contentLabel={header} onRequestClose={this.closeForm}>
<header className="modal-head">
- <h2>{translate('organization.members.manage_groups')}</h2>
+ <h2>{header}</h2>
</header>
<form onSubmit={this.handleSubmit}>
<div className="modal-body">
@@ -146,11 +147,14 @@ export default class ManageMemberGroupsForm extends React.PureComponent {
}
render() {
- return (
- <a onClick={this.openForm} href="#">
+ const buttonComponent = (
+ <a key="manage-member-button" onClick={this.openForm} href="#">
{translate('organization.members.manage_groups')}
- {this.state.open && this.renderModal()}
</a>
);
+ if (this.state.open) {
+ return [buttonComponent, this.renderModal()];
+ }
+ return buttonComponent;
}
}
diff --git a/server/sonar-web/src/main/js/apps/organizations/components/forms/RemoveMemberForm.js b/server/sonar-web/src/main/js/apps/organizations/components/forms/RemoveMemberForm.js
index d14eff121c6..94fb72dd24f 100644
--- a/server/sonar-web/src/main/js/apps/organizations/components/forms/RemoveMemberForm.js
+++ b/server/sonar-web/src/main/js/apps/organizations/components/forms/RemoveMemberForm.js
@@ -61,10 +61,11 @@ export default class RemoveMemberForm extends React.PureComponent {
};
renderModal() {
+ const header = translate('users.remove');
return (
- <Modal contentLabel="modal form" onRequestClose={this.closeForm}>
+ <Modal key="remove-member-modal" contentLabel={header} onRequestClose={this.closeForm}>
<header className="modal-head">
- <h2>{translate('users.remove')}</h2>
+ <h2>{header}</h2>
</header>
<form onSubmit={this.handleSubmit}>
<div className="modal-body markdown">
@@ -92,11 +93,14 @@ export default class RemoveMemberForm extends React.PureComponent {
}
render() {
- return (
- <a onClick={this.openForm} href="#">
+ const buttonComponent = (
+ <a key="remove-member-button" onClick={this.openForm} href="#">
{translate('organization.members.remove')}
- {this.state.open && this.renderModal()}
</a>
);
+ if (this.state.open) {
+ return [buttonComponent, this.renderModal()];
+ }
+ return buttonComponent;
}
}
diff --git a/server/sonar-web/src/main/js/apps/organizations/components/forms/__tests__/AddMemberForm-test.js b/server/sonar-web/src/main/js/apps/organizations/components/forms/__tests__/AddMemberForm-test.js
index 1874608a815..2014d4b2990 100644
--- a/server/sonar-web/src/main/js/apps/organizations/components/forms/__tests__/AddMemberForm-test.js
+++ b/server/sonar-web/src/main/js/apps/organizations/components/forms/__tests__/AddMemberForm-test.js
@@ -18,21 +18,25 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import React from 'react';
-import { shallow, mount } from 'enzyme';
+import { shallow } from 'enzyme';
import { click } from '../../../../../helpers/testUtils';
import AddMemberForm from '../AddMemberForm';
+jest.mock('react-dom');
+
const memberLogins = ['admin'];
it('should render and open the modal', () => {
const wrapper = shallow(<AddMemberForm memberLogins={memberLogins} addMember={jest.fn()} />);
expect(wrapper).toMatchSnapshot();
wrapper.setState({ open: true });
- expect(wrapper).toMatchSnapshot();
+
+ // FIXME Can probably be removed when https://github.com/airbnb/enzyme/issues/1149 is resolved
+ expect(wrapper.first().getElements()).toMatchSnapshot();
});
it('should correctly handle user interactions', () => {
- const wrapper = mount(<AddMemberForm memberLogins={memberLogins} addMember={jest.fn()} />);
+ const wrapper = shallow(<AddMemberForm memberLogins={memberLogins} addMember={jest.fn()} />);
click(wrapper.find('button'));
expect(wrapper.state('open')).toBeTruthy();
wrapper.instance().closeForm();
diff --git a/server/sonar-web/src/main/js/apps/organizations/components/forms/__tests__/ManageMemberGroupsForm-test.js b/server/sonar-web/src/main/js/apps/organizations/components/forms/__tests__/ManageMemberGroupsForm-test.js
index 224a1222658..c28b5cbcd9a 100644
--- a/server/sonar-web/src/main/js/apps/organizations/components/forms/__tests__/ManageMemberGroupsForm-test.js
+++ b/server/sonar-web/src/main/js/apps/organizations/components/forms/__tests__/ManageMemberGroupsForm-test.js
@@ -18,10 +18,12 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import React from 'react';
-import { shallow, mount } from 'enzyme';
+import { shallow } from 'enzyme';
import { click, mockEvent } from '../../../../../helpers/testUtils';
import ManageMemberGroupsForm from '../ManageMemberGroupsForm';
+jest.mock('react-dom');
+
const member = { login: 'admin', name: 'Admin Istrator', avatar: '', groupCount: 3 };
const organization = { name: 'MyOrg', key: 'myorg' };
const organizationGroups = [
@@ -48,8 +50,8 @@ const userGroups = {
11: { id: 11, name: 'pull-request-analysers', description: 'Technical accounts', selected: true }
};
-const getMountedForm = function(updateFunc = jest.fn()) {
- const wrapper = mount(
+function getMountedForm(updateFunc = jest.fn()) {
+ const wrapper = shallow(
<ManageMemberGroupsForm
member={member}
organization={organization}
@@ -62,7 +64,7 @@ const getMountedForm = function(updateFunc = jest.fn()) {
instance.setState({ loading: false, userGroups });
});
return { wrapper, instance };
-};
+}
it('should render and open the modal', () => {
const wrapper = shallow(
@@ -75,7 +77,7 @@ it('should render and open the modal', () => {
);
expect(wrapper).toMatchSnapshot();
wrapper.setState({ open: true });
- expect(wrapper).toMatchSnapshot();
+ expect(wrapper.first().getElements()).toMatchSnapshot();
});
it('should correctly handle user interactions', () => {
diff --git a/server/sonar-web/src/main/js/apps/organizations/components/forms/__tests__/RemoveMemberForm-test.js b/server/sonar-web/src/main/js/apps/organizations/components/forms/__tests__/RemoveMemberForm-test.js
index 427559eb011..5c007ae4123 100644
--- a/server/sonar-web/src/main/js/apps/organizations/components/forms/__tests__/RemoveMemberForm-test.js
+++ b/server/sonar-web/src/main/js/apps/organizations/components/forms/__tests__/RemoveMemberForm-test.js
@@ -18,10 +18,12 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import React from 'react';
-import { shallow, mount } from 'enzyme';
+import { shallow } from 'enzyme';
import { click, mockEvent } from '../../../../../helpers/testUtils';
import RemoveMemberForm from '../RemoveMemberForm';
+jest.mock('react-dom');
+
const member = { login: 'admin', name: 'Admin Istrator', avatar: '', groupCount: 3 };
const organization = { name: 'MyOrg' };
@@ -31,12 +33,12 @@ it('should render and open the modal', () => {
);
expect(wrapper).toMatchSnapshot();
wrapper.setState({ open: true });
- expect(wrapper).toMatchSnapshot();
+ expect(wrapper.first().getElements()).toMatchSnapshot();
});
it('should correctly handle user interactions', () => {
const removeMember = jest.fn();
- const wrapper = mount(
+ const wrapper = shallow(
<RemoveMemberForm member={member} removeMember={removeMember} organization={organization} />
);
const instance = wrapper.instance();
diff --git a/server/sonar-web/src/main/js/apps/organizations/components/forms/__tests__/__snapshots__/AddMemberForm-test.js.snap b/server/sonar-web/src/main/js/apps/organizations/components/forms/__tests__/__snapshots__/AddMemberForm-test.js.snap
index eee77a0a2cd..ac981164804 100644
--- a/server/sonar-web/src/main/js/apps/organizations/components/forms/__tests__/__snapshots__/AddMemberForm-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/organizations/components/forms/__tests__/__snapshots__/AddMemberForm-test.js.snap
@@ -2,6 +2,7 @@
exports[`should render and open the modal 1`] = `
<button
+ key="add-member-button"
onClick={[Function]}
>
organization.members.add
@@ -9,12 +10,14 @@ exports[`should render and open the modal 1`] = `
`;
exports[`should render and open the modal 2`] = `
-<button
- onClick={[Function]}
->
- organization.members.add
+Array [
+ <button
+ onClick={[Function]}
+ >
+ organization.members.add
+ </button>,
<Modal
- contentLabel="modal form"
+ contentLabel="users.add"
onRequestClose={[Function]}
>
<header
@@ -45,6 +48,7 @@ exports[`should render and open the modal 2`] = `
}
handleValueChange={[Function]}
searchUsers={[Function]}
+ selectedUser={undefined}
/>
</div>
</div>
@@ -68,6 +72,6 @@ exports[`should render and open the modal 2`] = `
</div>
</footer>
</form>
- </Modal>
-</button>
+ </Modal>,
+]
`;
diff --git a/server/sonar-web/src/main/js/apps/organizations/components/forms/__tests__/__snapshots__/ManageMemberGroupsForm-test.js.snap b/server/sonar-web/src/main/js/apps/organizations/components/forms/__tests__/__snapshots__/ManageMemberGroupsForm-test.js.snap
index eaa7b2a51d0..51d9f708ee7 100644
--- a/server/sonar-web/src/main/js/apps/organizations/components/forms/__tests__/__snapshots__/ManageMemberGroupsForm-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/organizations/components/forms/__tests__/__snapshots__/ManageMemberGroupsForm-test.js.snap
@@ -71,6 +71,7 @@ Object {
exports[`should render and open the modal 1`] = `
<a
href="#"
+ key="manage-member-button"
onClick={[Function]}
>
organization.members.manage_groups
@@ -78,13 +79,15 @@ exports[`should render and open the modal 1`] = `
`;
exports[`should render and open the modal 2`] = `
-<a
- href="#"
- onClick={[Function]}
->
- organization.members.manage_groups
+Array [
+ <a
+ href="#"
+ onClick={[Function]}
+ >
+ organization.members.manage_groups
+ </a>,
<Modal
- contentLabel="modal form"
+ contentLabel="organization.members.manage_groups"
onRequestClose={[Function]}
>
<header
@@ -117,7 +120,6 @@ exports[`should render and open the modal 2`] = `
"name": "professionals",
}
}
- key="7"
onCheck={[Function]}
/>
<OrganizationGroupCheckbox
@@ -130,7 +132,6 @@ exports[`should render and open the modal 2`] = `
"name": "pull-request-analysers",
}
}
- key="11"
onCheck={[Function]}
/>
<OrganizationGroupCheckbox
@@ -143,7 +144,6 @@ exports[`should render and open the modal 2`] = `
"name": "sonar-administrators",
}
}
- key="1"
onCheck={[Function]}
/>
</ul>
@@ -167,8 +167,8 @@ exports[`should render and open the modal 2`] = `
</div>
</footer>
</form>
- </Modal>
-</a>
+ </Modal>,
+]
`;
exports[`should reset the selected groups when the modal is opened 1`] = `
diff --git a/server/sonar-web/src/main/js/apps/organizations/components/forms/__tests__/__snapshots__/RemoveMemberForm-test.js.snap b/server/sonar-web/src/main/js/apps/organizations/components/forms/__tests__/__snapshots__/RemoveMemberForm-test.js.snap
index 72f58137dc4..3e362fcf4db 100644
--- a/server/sonar-web/src/main/js/apps/organizations/components/forms/__tests__/__snapshots__/RemoveMemberForm-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/organizations/components/forms/__tests__/__snapshots__/RemoveMemberForm-test.js.snap
@@ -16,6 +16,7 @@ Array [
exports[`should render and open the modal 1`] = `
<a
href="#"
+ key="remove-member-button"
onClick={[Function]}
>
organization.members.remove
@@ -23,13 +24,15 @@ exports[`should render and open the modal 1`] = `
`;
exports[`should render and open the modal 2`] = `
-<a
- href="#"
- onClick={[Function]}
->
- organization.members.remove
+Array [
+ <a
+ href="#"
+ onClick={[Function]}
+ >
+ organization.members.remove
+ </a>,
<Modal
- contentLabel="modal form"
+ contentLabel="users.remove"
onRequestClose={[Function]}
>
<header
@@ -70,6 +73,6 @@ exports[`should render and open the modal 2`] = `
</div>
</footer>
</form>
- </Modal>
-</a>
+ </Modal>,
+]
`;
diff --git a/server/sonar-web/src/main/js/apps/organizations/routes.js b/server/sonar-web/src/main/js/apps/organizations/routes.js
index ecdd76eb7e1..072bb955202 100644
--- a/server/sonar-web/src/main/js/apps/organizations/routes.js
+++ b/server/sonar-web/src/main/js/apps/organizations/routes.js
@@ -17,13 +17,13 @@
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-import OrganizationPage from './components/OrganizationPage';
+import OrganizationPageContainer from './components/OrganizationPage';
import OrganizationPageExtension from '../../app/components/extensions/OrganizationPageExtension';
import OrganizationContainer from './components/OrganizationContainer';
import OrganizationProjects from './components/OrganizationProjects';
import OrganizationFavoriteProjects from './components/OrganizationFavoriteProjects';
import OrganizationRules from './components/OrganizationRules';
-import OrganizationAdmin from './components/OrganizationAdmin';
+import OrganizationAdminContainer from './components/OrganizationAdmin';
import OrganizationEdit from './components/OrganizationEdit';
import OrganizationGroups from './components/OrganizationGroups';
import OrganizationMembersContainer from './components/OrganizationMembersContainer';
@@ -38,7 +38,7 @@ import issuesRoutes from '../issues/routes';
const routes = [
{
path: ':organizationKey',
- component: OrganizationPage,
+ component: OrganizationPageContainer,
childRoutes: [
{
indexRoute: {
@@ -90,7 +90,7 @@ const routes = [
component: OrganizationPageExtension
},
{
- component: OrganizationAdmin,
+ component: OrganizationAdminContainer,
childRoutes: [
{ path: 'delete', component: OrganizationDelete },
{ path: 'edit', component: OrganizationEdit },
diff --git a/server/sonar-web/src/main/js/apps/overview/components/__tests__/__snapshots__/ApplicationLeakPeriodLegend-test.js.snap b/server/sonar-web/src/main/js/apps/overview/components/__tests__/__snapshots__/ApplicationLeakPeriodLegend-test.js.snap
index f7c73f3b9fb..cb842597822 100644
--- a/server/sonar-web/src/main/js/apps/overview/components/__tests__/__snapshots__/ApplicationLeakPeriodLegend-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/overview/components/__tests__/__snapshots__/ApplicationLeakPeriodLegend-test.js.snap
@@ -25,18 +25,14 @@ exports[`renders 2`] = `
<ul
className="text-left"
>
- <li
- key="foo"
- >
+ <li>
Foo
:
<DateTooltipFormatter
date="2017-01-01T11:39:03+0100"
/>
</li>
- <li
- key="bar"
- >
+ <li>
Bar
:
<DateTooltipFormatter
diff --git a/server/sonar-web/src/main/js/apps/overview/meta/MetaLink.js b/server/sonar-web/src/main/js/apps/overview/meta/MetaLink.js
index 5ae748ed6ad..b4162176ab3 100644
--- a/server/sonar-web/src/main/js/apps/overview/meta/MetaLink.js
+++ b/server/sonar-web/src/main/js/apps/overview/meta/MetaLink.js
@@ -74,7 +74,7 @@ export default class MetaLink extends React.PureComponent {
className="link-with-icon"
href={link.url}
target="_blank"
- onClick={!isClickable(link) && this.handleClick}>
+ onClick={!isClickable(link) ? this.handleClick : undefined}>
{this.renderLinkIcon(link)}
&nbsp;
{link.name}
diff --git a/server/sonar-web/src/main/js/apps/overview/meta/__tests__/MetaTags-test.js b/server/sonar-web/src/main/js/apps/overview/meta/__tests__/MetaTags-test.js
index 85e4c744e92..633c529cbfe 100644
--- a/server/sonar-web/src/main/js/apps/overview/meta/__tests__/MetaTags-test.js
+++ b/server/sonar-web/src/main/js/apps/overview/meta/__tests__/MetaTags-test.js
@@ -39,15 +39,21 @@ const componentWithTags = {
};
it('should render without tags and admin rights', () => {
- expect(shallow(<MetaTags component={component} />)).toMatchSnapshot();
+ expect(
+ shallow(<MetaTags component={component} />, { disableLifecycleMethods: true })
+ ).toMatchSnapshot();
});
it('should render with tags and admin rights', () => {
- expect(shallow(<MetaTags component={componentWithTags} />)).toMatchSnapshot();
+ expect(
+ shallow(<MetaTags component={componentWithTags} />, { disableLifecycleMethods: true })
+ ).toMatchSnapshot();
});
it('should open the tag selector on click', () => {
- const wrapper = shallow(<MetaTags component={componentWithTags} />);
+ const wrapper = shallow(<MetaTags component={componentWithTags} />, {
+ disableLifecycleMethods: true
+ });
expect(wrapper).toMatchSnapshot();
// open
diff --git a/server/sonar-web/src/main/js/apps/overview/meta/__tests__/__snapshots__/MetaLink-test.js.snap b/server/sonar-web/src/main/js/apps/overview/meta/__tests__/__snapshots__/MetaLink-test.js.snap
index 416a8104ae2..20c6a30481a 100644
--- a/server/sonar-web/src/main/js/apps/overview/meta/__tests__/__snapshots__/MetaLink-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/overview/meta/__tests__/__snapshots__/MetaLink-test.js.snap
@@ -67,7 +67,6 @@ exports[`should match snapshot 1`] = `
<a
className="link-with-icon"
href="http://example.com"
- onClick={false}
target="_blank"
>
<i
diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/GraphsTooltipsContentDuplication-test.js b/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/GraphsTooltipsContentDuplication-test.js
index c0a69de2a06..6f908f29363 100644
--- a/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/GraphsTooltipsContentDuplication-test.js
+++ b/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/GraphsTooltipsContentDuplication-test.js
@@ -48,6 +48,6 @@ it('should render correctly', () => {
it('should render null when data is missing', () => {
expect(
- shallow(<GraphsTooltipsContentDuplication {...DEFAULT_PROPS} tooltipIdx={0} />)
- ).toMatchSnapshot();
+ shallow(<GraphsTooltipsContentDuplication {...DEFAULT_PROPS} tooltipIdx={0} />).type()
+ ).toBeNull();
});
diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/GraphsTooltipsContentDuplication-test.js.snap b/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/GraphsTooltipsContentDuplication-test.js.snap
index bfc14879a9f..eaecbb80248 100644
--- a/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/GraphsTooltipsContentDuplication-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/GraphsTooltipsContentDuplication-test.js.snap
@@ -25,5 +25,3 @@ exports[`should render correctly 1`] = `
</tr>
</tbody>
`;
-
-exports[`should render null when data is missing 1`] = `null`;
diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/forms/AddEventForm.js b/server/sonar-web/src/main/js/apps/projectActivity/components/forms/AddEventForm.js
index f1b45f2cdaf..520a159d0c0 100644
--- a/server/sonar-web/src/main/js/apps/projectActivity/components/forms/AddEventForm.js
+++ b/server/sonar-web/src/main/js/apps/projectActivity/components/forms/AddEventForm.js
@@ -97,10 +97,11 @@ export default class AddEventForm extends React.PureComponent {
};
renderModal() {
+ const header = translate(this.props.addEventButtonText);
return (
- <Modal contentLabel="modal form" onRequestClose={this.closeForm}>
+ <Modal key="add-event-modal" contentLabel={header} onRequestClose={this.closeForm}>
<header className="modal-head">
- <h2>{translate(this.props.addEventButtonText)}</h2>
+ <h2>{header}</h2>
</header>
<form onSubmit={this.handleSubmit}>
@@ -111,7 +112,6 @@ export default class AddEventForm extends React.PureComponent {
value={this.state.name}
autoFocus={true}
disabled={this.state.processing}
- className="input-medium"
type="text"
onChange={this.changeInput}
/>
@@ -136,11 +136,14 @@ export default class AddEventForm extends React.PureComponent {
}
render() {
- return (
- <a className="js-add-event" href="#" onClick={this.openForm}>
+ const linkComponent = (
+ <a key="add-event-link" className="js-add-event" href="#" onClick={this.openForm}>
{translate(this.props.addEventButtonText)}
- {this.state.open && this.renderModal()}
</a>
);
+ if (this.state.open) {
+ return [linkComponent, this.renderModal()];
+ }
+ return linkComponent;
}
}
diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/forms/AddGraphMetric.js b/server/sonar-web/src/main/js/apps/projectActivity/components/forms/AddGraphMetric.js
index 76dfd5e7bf5..872648637df 100644
--- a/server/sonar-web/src/main/js/apps/projectActivity/components/forms/AddGraphMetric.js
+++ b/server/sonar-web/src/main/js/apps/projectActivity/components/forms/AddGraphMetric.js
@@ -102,10 +102,11 @@ export default class AddGraphMetric extends React.PureComponent {
renderModal() {
const { metricsTypeFilter } = this.props;
+ const header = translate('project_activity.graphs.custom.add_metric');
return (
- <Modal contentLabel="graph metric add" onRequestClose={this.closeForm}>
+ <Modal key="add-metric-modal" contentLabel={header} onRequestClose={this.closeForm}>
<header className="modal-head">
- <h2>{translate('project_activity.graphs.custom.add_metric')}</h2>
+ <h2>{header}</h2>
</header>
<form onSubmit={this.handleSubmit}>
<div className="modal-body">
@@ -165,11 +166,16 @@ export default class AddGraphMetric extends React.PureComponent {
);
}
- return (
- <button className={this.props.className} onClick={this.openForm}>
+ const buttonComponent = (
+ <button key="add-metric-button" className={this.props.className} onClick={this.openForm}>
{translate('project_activity.graphs.custom.add')}
- {this.state.open && this.renderModal()}
</button>
);
+
+ if (this.state.open) {
+ return [buttonComponent, this.renderModal()];
+ }
+
+ return buttonComponent;
}
}
diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/forms/ChangeEventForm.js b/server/sonar-web/src/main/js/apps/projectActivity/components/forms/ChangeEventForm.js
index 2dad5bc831c..72b49534bb6 100644
--- a/server/sonar-web/src/main/js/apps/projectActivity/components/forms/ChangeEventForm.js
+++ b/server/sonar-web/src/main/js/apps/projectActivity/components/forms/ChangeEventForm.js
@@ -95,10 +95,11 @@ export default class ChangeEventForm extends React.PureComponent {
};
render() {
+ const header = translate(this.props.changeEventButtonText);
return (
- <Modal contentLabel="modal form" onRequestClose={this.closeForm}>
+ <Modal contentLabel={header} onRequestClose={this.closeForm}>
<header className="modal-head">
- <h2>{translate(this.props.changeEventButtonText)}</h2>
+ <h2>{header}</h2>
</header>
<form onSubmit={this.handleSubmit}>
@@ -109,7 +110,6 @@ export default class ChangeEventForm extends React.PureComponent {
value={this.state.name}
autoFocus={true}
disabled={this.state.processing}
- className="input-medium"
type="text"
onChange={this.changeInput}
/>
diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/forms/RemoveAnalysisForm.js b/server/sonar-web/src/main/js/apps/projectActivity/components/forms/RemoveAnalysisForm.js
index 88d6e69f48e..b3395d92a72 100644
--- a/server/sonar-web/src/main/js/apps/projectActivity/components/forms/RemoveAnalysisForm.js
+++ b/server/sonar-web/src/main/js/apps/projectActivity/components/forms/RemoveAnalysisForm.js
@@ -88,10 +88,11 @@ export default class RemoveAnalysisForm extends React.PureComponent {
};
renderModal() {
+ const header = translate('project_activity.delete_analysis');
return (
- <Modal contentLabel="modal form" onRequestClose={this.closeForm}>
+ <Modal key="delete-analysis-modal" contentLabel={header} onRequestClose={this.closeForm}>
<header className="modal-head">
- <h2>{translate('project_activity.delete_analysis')}</h2>
+ <h2>{header}</h2>
</header>
<form onSubmit={this.handleSubmit}>
@@ -117,11 +118,14 @@ export default class RemoveAnalysisForm extends React.PureComponent {
}
render() {
- return (
- <a className="js-delete-analysis" href="#" onClick={this.openForm}>
+ const linkComponent = (
+ <a key="delete-analysis-link" className="js-delete-analysis" href="#" onClick={this.openForm}>
{translate('project_activity.delete_analysis')}
- {this.state.open && this.renderModal()}
</a>
);
+ if (this.state.open) {
+ return [linkComponent, this.renderModal()];
+ }
+ return linkComponent;
}
}
diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/forms/RemoveEventForm.js b/server/sonar-web/src/main/js/apps/projectActivity/components/forms/RemoveEventForm.js
index abed52766cd..7bbe5312afe 100644
--- a/server/sonar-web/src/main/js/apps/projectActivity/components/forms/RemoveEventForm.js
+++ b/server/sonar-web/src/main/js/apps/projectActivity/components/forms/RemoveEventForm.js
@@ -81,10 +81,11 @@ export default class RemoveEventForm extends React.PureComponent {
};
render() {
+ const header = translate(this.props.removeEventButtonText);
return (
- <Modal contentLabel="modal form" onRequestClose={this.closeForm}>
+ <Modal contentLabel={header} onRequestClose={this.closeForm}>
<header className="modal-head">
- <h2>{translate(this.props.removeEventButtonText)}</h2>
+ <h2>{header}</h2>
</header>
<form onSubmit={this.handleSubmit}>
diff --git a/server/sonar-web/src/main/js/apps/projectBranches/components/__tests__/LongBranchesPattern-test.tsx b/server/sonar-web/src/main/js/apps/projectBranches/components/__tests__/LongBranchesPattern-test.tsx
index 48c79f25fed..8324b04e538 100644
--- a/server/sonar-web/src/main/js/apps/projectBranches/components/__tests__/LongBranchesPattern-test.tsx
+++ b/server/sonar-web/src/main/js/apps/projectBranches/components/__tests__/LongBranchesPattern-test.tsx
@@ -17,16 +17,16 @@
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-/* eslint-disable import/first, import/order */
-jest.mock('../../../../api/settings', () => ({
- getValues: jest.fn(() => Promise.resolve([]))
-}));
-
+/* eslint-disable import/order */
import * as React from 'react';
-import { mount, shallow } from 'enzyme';
+import { shallow } from 'enzyme';
import LongBranchesPattern from '../LongBranchesPattern';
import { click } from '../../../../helpers/testUtils';
+jest.mock('../../../../api/settings', () => ({
+ getValues: jest.fn(() => Promise.resolve([]))
+}));
+
const getValues = require('../../../../api/settings').getValues as jest.Mock<any>;
beforeEach(() => {
@@ -41,25 +41,25 @@ it('renders', () => {
it('opens form', () => {
const wrapper = shallow(<LongBranchesPattern project="project" />);
- (wrapper.instance() as LongBranchesPattern).mounted = true;
wrapper.setState({ loading: false, setting: { value: 'release-.*' } });
click(wrapper.find('a'));
expect(wrapper.find('LongBranchesPatternForm').exists()).toBeTruthy();
wrapper.find('LongBranchesPatternForm').prop<Function>('onClose')();
+ wrapper.update();
expect(wrapper.find('LongBranchesPatternForm').exists()).toBeFalsy();
});
it('fetches setting value on mount', () => {
- mount(<LongBranchesPattern project="project" />);
+ shallow(<LongBranchesPattern project="project" />);
expect(getValues).lastCalledWith('sonar.branch.longLivedBranches.regex', 'project');
});
it('fetches new setting value after change', () => {
- const wrapper = mount(<LongBranchesPattern project="project" />);
- expect(getValues.mock.calls).toHaveLength(1);
+ const wrapper = shallow(<LongBranchesPattern project="project" />);
+ expect(getValues).toHaveBeenCalledTimes(1);
(wrapper.instance() as LongBranchesPattern).handleChange();
- expect(getValues.mock.calls).toHaveLength(2);
+ expect(getValues).toHaveBeenCalledTimes(2);
});
diff --git a/server/sonar-web/src/main/js/apps/projects/components/__tests__/AllProjects-test.tsx b/server/sonar-web/src/main/js/apps/projects/components/__tests__/AllProjects-test.tsx
index c696b9509c9..8a12762240d 100644
--- a/server/sonar-web/src/main/js/apps/projects/components/__tests__/AllProjects-test.tsx
+++ b/server/sonar-web/src/main/js/apps/projects/components/__tests__/AllProjects-test.tsx
@@ -17,7 +17,12 @@
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-/* eslint-disable import/first, import/order */
+/* eslint-disable import/order */
+import * as React from 'react';
+import { mount, shallow } from 'enzyme';
+import AllProjects from '../AllProjects';
+import { getView, saveSort, saveView, saveVisualization } from '../../../../helpers/storage';
+
jest.mock('../ProjectsList', () => ({
// eslint-disable-next-line
default: function ProjectsList() {
@@ -54,11 +59,6 @@ jest.mock('../../../../helpers/storage', () => ({
saveVisualization: jest.fn()
}));
-import * as React from 'react';
-import { mount, shallow } from 'enzyme';
-import AllProjects from '../AllProjects';
-import { getView, saveSort, saveView, saveVisualization } from '../../../../helpers/storage';
-
const fetchProjects = require('../../utils').fetchProjects as jest.Mock<any>;
beforeEach(() => {
diff --git a/server/sonar-web/src/main/js/apps/projects/components/__tests__/FavoriteFilter-test.tsx b/server/sonar-web/src/main/js/apps/projects/components/__tests__/FavoriteFilter-test.tsx
index 658ee1ab158..5b235e0a193 100644
--- a/server/sonar-web/src/main/js/apps/projects/components/__tests__/FavoriteFilter-test.tsx
+++ b/server/sonar-web/src/main/js/apps/projects/components/__tests__/FavoriteFilter-test.tsx
@@ -69,6 +69,8 @@ it('does not save last selection with organization', () => {
it('does not render for anonymous', () => {
expect(
- shallow(<FavoriteFilter query={query} />, { context: { currentUser: { isLoggedIn: false } } })
- ).toMatchSnapshot();
+ shallow(<FavoriteFilter query={query} />, {
+ context: { currentUser: { isLoggedIn: false } }
+ }).type()
+ ).toBeNull();
});
diff --git a/server/sonar-web/src/main/js/apps/projects/components/__tests__/ProjectCardLanguages-test.tsx b/server/sonar-web/src/main/js/apps/projects/components/__tests__/ProjectCardLanguages-test.tsx
index cca1d63feb1..c81dffce5e4 100644
--- a/server/sonar-web/src/main/js/apps/projects/components/__tests__/ProjectCardLanguages-test.tsx
+++ b/server/sonar-web/src/main/js/apps/projects/components/__tests__/ProjectCardLanguages-test.tsx
@@ -49,5 +49,5 @@ it('handles unknown languages', () => {
});
it('does not render', () => {
- expect(shallow(<ProjectCardLanguages />, { context: { languages } })).toMatchSnapshot();
+ expect(shallow(<ProjectCardLanguages />, { context: { languages } }).type()).toBeNull();
});
diff --git a/server/sonar-web/src/main/js/apps/projects/components/__tests__/ProjectCardQualityGate-test.tsx b/server/sonar-web/src/main/js/apps/projects/components/__tests__/ProjectCardQualityGate-test.tsx
index 1a0f549c763..acfb2fc47e9 100644
--- a/server/sonar-web/src/main/js/apps/projects/components/__tests__/ProjectCardQualityGate-test.tsx
+++ b/server/sonar-web/src/main/js/apps/projects/components/__tests__/ProjectCardQualityGate-test.tsx
@@ -26,5 +26,5 @@ it('renders', () => {
});
it('does not render', () => {
- expect(shallow(<ProjectCardQualityGate />)).toMatchSnapshot();
+ expect(shallow(<ProjectCardQualityGate />).type()).toBeNull();
});
diff --git a/server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/AllProjects-test.tsx.snap b/server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/AllProjects-test.tsx.snap
index 5ac9039df25..ef7225c06eb 100644
--- a/server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/AllProjects-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/AllProjects-test.tsx.snap
@@ -28,7 +28,29 @@ exports[`renders 1`] = `
>
<PageSidebar
isFavorite={false}
- query={Object {}}
+ query={
+ Object {
+ "coverage": undefined,
+ "duplications": undefined,
+ "gate": undefined,
+ "languages": undefined,
+ "maintainability": undefined,
+ "new_coverage": undefined,
+ "new_duplications": undefined,
+ "new_lines": undefined,
+ "new_maintainability": undefined,
+ "new_reliability": undefined,
+ "new_security": undefined,
+ "reliability": undefined,
+ "search": undefined,
+ "security": undefined,
+ "size": undefined,
+ "sort": undefined,
+ "tags": undefined,
+ "view": undefined,
+ "visualization": undefined,
+ }
+ }
view="overall"
visualization="risk"
/>
@@ -67,7 +89,29 @@ exports[`renders 1`] = `
},
]
}
- query={Object {}}
+ query={
+ Object {
+ "coverage": undefined,
+ "duplications": undefined,
+ "gate": undefined,
+ "languages": undefined,
+ "maintainability": undefined,
+ "new_coverage": undefined,
+ "new_duplications": undefined,
+ "new_lines": undefined,
+ "new_maintainability": undefined,
+ "new_reliability": undefined,
+ "new_security": undefined,
+ "reliability": undefined,
+ "search": undefined,
+ "security": undefined,
+ "size": undefined,
+ "sort": undefined,
+ "tags": undefined,
+ "view": undefined,
+ "visualization": undefined,
+ }
+ }
selectedSort="name"
total={0}
view="overall"
@@ -92,7 +136,29 @@ exports[`renders 1`] = `
},
]
}
- query={Object {}}
+ query={
+ Object {
+ "coverage": undefined,
+ "duplications": undefined,
+ "gate": undefined,
+ "languages": undefined,
+ "maintainability": undefined,
+ "new_coverage": undefined,
+ "new_duplications": undefined,
+ "new_lines": undefined,
+ "new_maintainability": undefined,
+ "new_reliability": undefined,
+ "new_security": undefined,
+ "reliability": undefined,
+ "search": undefined,
+ "security": undefined,
+ "size": undefined,
+ "sort": undefined,
+ "tags": undefined,
+ "view": undefined,
+ "visualization": undefined,
+ }
+ }
/>
<ListFooter
count={1}
diff --git a/server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/FavoriteFilter-test.tsx.snap b/server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/FavoriteFilter-test.tsx.snap
index 411ec45c0b0..a6f62835202 100644
--- a/server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/FavoriteFilter-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/FavoriteFilter-test.tsx.snap
@@ -1,7 +1,5 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`does not render for anonymous 1`] = `null`;
-
exports[`handles organization 1`] = `
<header
className="page-header text-center"
diff --git a/server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/ProjectCardLanguages-test.tsx.snap b/server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/ProjectCardLanguages-test.tsx.snap
index 5b18aee0615..a97f467c07d 100644
--- a/server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/ProjectCardLanguages-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/ProjectCardLanguages-test.tsx.snap
@@ -1,7 +1,5 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`does not render 1`] = `null`;
-
exports[`handles unknown languages 1`] = `
<div
className="project-card-languages"
@@ -9,15 +7,11 @@ exports[`handles unknown languages 1`] = `
<Tooltip
overlay={
<span>
- <span
- key="cpp"
- >
+ <span>
cpp
<br />
</span>
- <span
- key="Java"
- >
+ <span>
Java
<br />
</span>
@@ -39,15 +33,11 @@ exports[`handles unknown languages 2`] = `
<Tooltip
overlay={
<span>
- <span
- key="unknown"
- >
+ <span>
unknown
<br />
</span>
- <span
- key="Java"
- >
+ <span>
Java
<br />
</span>
@@ -69,15 +59,11 @@ exports[`renders 1`] = `
<Tooltip
overlay={
<span>
- <span
- key="Java"
- >
+ <span>
Java
<br />
</span>
- <span
- key="JavaScript"
- >
+ <span>
JavaScript
<br />
</span>
@@ -99,15 +85,11 @@ exports[`sorts languages 1`] = `
<Tooltip
overlay={
<span>
- <span
- key="JavaScript"
- >
+ <span>
JavaScript
<br />
</span>
- <span
- key="Java"
- >
+ <span>
Java
<br />
</span>
diff --git a/server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/ProjectCardQualityGate-test.tsx.snap b/server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/ProjectCardQualityGate-test.tsx.snap
index 54acf190a57..5e2c8b7a700 100644
--- a/server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/ProjectCardQualityGate-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/ProjectCardQualityGate-test.tsx.snap
@@ -1,7 +1,5 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`does not render 1`] = `null`;
-
exports[`renders 1`] = `
<div
className="project-card-measure project-card-quality-gate spacer-left"
diff --git a/server/sonar-web/src/main/js/apps/projects/filters/__tests__/__snapshots__/LanguagesFilter-test.tsx.snap b/server/sonar-web/src/main/js/apps/projects/filters/__tests__/__snapshots__/LanguagesFilter-test.tsx.snap
index 3de7fafe747..a9b3db73ed8 100644
--- a/server/sonar-web/src/main/js/apps/projects/filters/__tests__/__snapshots__/LanguagesFilter-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/projects/filters/__tests__/__snapshots__/LanguagesFilter-test.tsx.snap
@@ -57,6 +57,7 @@ exports[`should render maximum 10 languages in the searchbox results 1`] = `
},
]
}
+ organization={undefined}
property="languages"
query={
Object {
@@ -130,6 +131,7 @@ exports[`should render the languages facet with the selected languages 1`] = `
},
]
}
+ organization={undefined}
property="languages"
query={
Object {
@@ -333,6 +335,7 @@ exports[`should render the languages without the ones in the facet 1`] = `
}
footer={
<SearchableFilterFooter
+ isFavorite={undefined}
options={
Array [
Object {
@@ -349,6 +352,7 @@ exports[`should render the languages without the ones in the facet 1`] = `
},
]
}
+ organization={undefined}
property="languages"
query={
Object {
diff --git a/server/sonar-web/src/main/js/apps/projects/filters/__tests__/__snapshots__/TagsFilter-test.tsx.snap b/server/sonar-web/src/main/js/apps/projects/filters/__tests__/__snapshots__/TagsFilter-test.tsx.snap
index 66d789e0a75..0d669e7d8c8 100644
--- a/server/sonar-web/src/main/js/apps/projects/filters/__tests__/__snapshots__/TagsFilter-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/projects/filters/__tests__/__snapshots__/TagsFilter-test.tsx.snap
@@ -60,6 +60,7 @@ exports[`should render maximum 10 tags in the searchbox results 1`] = `
},
]
}
+ organization={undefined}
property="tags"
query={
Object {
@@ -121,6 +122,7 @@ exports[`should render the tags facet with the selected tags 1`] = `
onInputChange={[Function]}
onOpen={[Function]}
options={Array []}
+ organization={undefined}
property="tags"
query={
Object {
@@ -294,10 +296,12 @@ exports[`should render the tags without the ones in the facet 1`] = `
}
footer={
<SearchableFilterFooter
+ isFavorite={undefined}
isLoading={false}
onInputChange={[Function]}
onOpen={[Function]}
options={Array []}
+ organization={undefined}
property="tags"
query={
Object {
@@ -340,6 +344,7 @@ exports[`should render the tags without the ones in the facet 2`] = `
}
footer={
<SearchableFilterFooter
+ isFavorite={undefined}
isLoading={false}
onInputChange={[Function]}
onOpen={[Function]}
@@ -359,6 +364,7 @@ exports[`should render the tags without the ones in the facet 2`] = `
},
]
}
+ organization={undefined}
property="tags"
query={
Object {
diff --git a/server/sonar-web/src/main/js/apps/projectsManagement/__tests__/App-test.tsx b/server/sonar-web/src/main/js/apps/projectsManagement/__tests__/App-test.tsx
index dadd3a45a1b..3cab9ca7f6d 100644
--- a/server/sonar-web/src/main/js/apps/projectsManagement/__tests__/App-test.tsx
+++ b/server/sonar-web/src/main/js/apps/projectsManagement/__tests__/App-test.tsx
@@ -17,7 +17,13 @@
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-/* eslint-disable import/first, import/order */
+/* eslint-disable import/order */
+import * as React from 'react';
+import { mount } from 'enzyme';
+import App, { Props } from '../App';
+
+jest.mock('react-dom');
+
jest.mock('lodash', () => {
const lodash = require.requireActual('lodash');
lodash.debounce = (fn: Function) => (...args: any[]) => fn(args);
@@ -34,10 +40,6 @@ jest.mock('rc-tooltip', () => ({
jest.mock('../../../api/components', () => ({ getComponents: jest.fn() }));
-import * as React from 'react';
-import { mount } from 'enzyme';
-import App, { Props } from '../App';
-
const getComponents = require('../../../api/components').getComponents as jest.Mock<any>;
const organization = { key: 'org', name: 'org', projectVisibility: 'public' };
@@ -121,12 +123,15 @@ it('creates project', () => {
expect(wrapper.find('CreateProjectForm').exists()).toBeFalsy();
wrapper.find('Header').prop<Function>('onProjectCreate')();
+ wrapper.update();
expect(wrapper.find('CreateProjectForm').exists()).toBeTruthy();
wrapper.find('CreateProjectForm').prop<Function>('onProjectCreated')();
+ wrapper.update();
expect(getComponents.mock.calls).toHaveLength(2);
wrapper.find('CreateProjectForm').prop<Function>('onClose')();
+ wrapper.update();
expect(wrapper.find('CreateProjectForm').exists()).toBeFalsy();
});
diff --git a/server/sonar-web/src/main/js/apps/projectsManagement/__tests__/BulkApplyTemplateModal-test.tsx b/server/sonar-web/src/main/js/apps/projectsManagement/__tests__/BulkApplyTemplateModal-test.tsx
index 75368168411..c9981980339 100644
--- a/server/sonar-web/src/main/js/apps/projectsManagement/__tests__/BulkApplyTemplateModal-test.tsx
+++ b/server/sonar-web/src/main/js/apps/projectsManagement/__tests__/BulkApplyTemplateModal-test.tsx
@@ -17,17 +17,19 @@
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-/* eslint-disable import/first, import/order */
-jest.mock('../../../api/permissions', () => ({
- bulkApplyTemplate: jest.fn(() => Promise.resolve()),
- getPermissionTemplates: jest.fn(() => Promise.resolve({ permissionTemplates: [] }))
-}));
-
+/* eslint-disable import/order */
import * as React from 'react';
import { mount, shallow } from 'enzyme';
import BulkApplyTemplateModal, { Props } from '../BulkApplyTemplateModal';
import { click } from '../../../helpers/testUtils';
+jest.mock('react-dom');
+
+jest.mock('../../../api/permissions', () => ({
+ bulkApplyTemplate: jest.fn(() => Promise.resolve()),
+ getPermissionTemplates: jest.fn(() => Promise.resolve({ permissionTemplates: [] }))
+}));
+
const bulkApplyTemplate = require('../../../api/permissions').bulkApplyTemplate as jest.Mock<any>;
const getPermissionTemplates = require('../../../api/permissions')
.getPermissionTemplates as jest.Mock<any>;
diff --git a/server/sonar-web/src/main/js/apps/projectsManagement/__tests__/Header-test.tsx b/server/sonar-web/src/main/js/apps/projectsManagement/__tests__/Header-test.tsx
index 64b7d42366b..b7cb62ab9a4 100644
--- a/server/sonar-web/src/main/js/apps/projectsManagement/__tests__/Header-test.tsx
+++ b/server/sonar-web/src/main/js/apps/projectsManagement/__tests__/Header-test.tsx
@@ -48,6 +48,7 @@ it('changes default visibility', () => {
expect(onVisibilityChange).toBeCalledWith(Visibility.Private);
modalWrapper.prop<Function>('onClose')();
+ wrapper.update();
expect(wrapper.find('ChangeVisibilityForm').exists()).toBeFalsy();
});
diff --git a/server/sonar-web/src/main/js/apps/projectsManagement/__tests__/Search-test.tsx b/server/sonar-web/src/main/js/apps/projectsManagement/__tests__/Search-test.tsx
index e7ec8d71e94..1983d99dce6 100644
--- a/server/sonar-web/src/main/js/apps/projectsManagement/__tests__/Search-test.tsx
+++ b/server/sonar-web/src/main/js/apps/projectsManagement/__tests__/Search-test.tsx
@@ -97,6 +97,7 @@ it('bulk applies permission template', () => {
click(wrapper.find('.js-bulk-apply-permission-template'));
expect(wrapper.find('BulkApplyTemplateModal')).toMatchSnapshot();
wrapper.find('BulkApplyTemplateModal').prop<Function>('onClose')();
+ wrapper.update();
expect(wrapper.find('BulkApplyTemplateModal').exists()).toBeFalsy();
});
diff --git a/server/sonar-web/src/main/js/apps/quality-gates/components/Details.js b/server/sonar-web/src/main/js/apps/quality-gates/components/Details.js
index 07070991007..751ae51ede3 100644
--- a/server/sonar-web/src/main/js/apps/quality-gates/components/Details.js
+++ b/server/sonar-web/src/main/js/apps/quality-gates/components/Details.js
@@ -37,8 +37,8 @@ export default class Details extends React.PureComponent {
this.fetchDetails();
}
- componentDidUpdate(nextProps) {
- if (nextProps.params.id !== this.props.params.id) {
+ componentDidUpdate(prevProps) {
+ if (prevProps.params.id !== this.props.params.id) {
this.fetchDetails();
}
}
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/components/ProfileContainer.tsx b/server/sonar-web/src/main/js/apps/quality-profiles/components/ProfileContainer.tsx
index d159d8354a3..d2e14e79255 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/components/ProfileContainer.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/components/ProfileContainer.tsx
@@ -19,6 +19,7 @@
*/
import * as React from 'react';
import Helmet from 'react-helmet';
+import { WithRouterProps } from 'react-router';
import ProfileNotFound from './ProfileNotFound';
import ProfileHeader from '../details/ProfileHeader';
import { Profile } from '../types';
@@ -32,11 +33,10 @@ interface Props {
onRequestFail: (reasong: any) => void;
organization: string | null;
profiles: Profile[];
- router: { replace: (path: any) => void };
updateProfiles: () => Promise<void>;
}
-export default class ProfileContainer extends React.PureComponent<Props> {
+export default class ProfileContainer extends React.PureComponent<Props & WithRouterProps> {
componentDidMount() {
const { location, profiles, router } = this.props;
if (location.query.key) {
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/components/__tests__/ProfileContainer-test.tsx b/server/sonar-web/src/main/js/apps/quality-profiles/components/__tests__/ProfileContainer-test.tsx
index 24be8e1d635..378e62fcf9c 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/components/__tests__/ProfileContainer-test.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/components/__tests__/ProfileContainer-test.tsx
@@ -17,14 +17,17 @@
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-import { shallow } from 'enzyme';
import * as React from 'react';
+import { shallow } from 'enzyme';
import Helmet from 'react-helmet';
+import { WithRouterProps } from 'react-router';
import ProfileContainer from '../ProfileContainer';
import ProfileNotFound from '../ProfileNotFound';
import ProfileHeader from '../../details/ProfileHeader';
import { createFakeProfile } from '../../utils';
+const routerProps = { router: {} } as WithRouterProps;
+
it('should render ProfileHeader', () => {
const targetProfile = createFakeProfile({ language: 'js', name: 'fake' });
const profiles = [targetProfile, createFakeProfile({ language: 'js', name: 'another' })];
@@ -35,8 +38,8 @@ it('should render ProfileHeader', () => {
onRequestFail={jest.fn()}
organization={null}
profiles={profiles}
- router={{} as any}
- updateProfiles={updateProfiles}>
+ updateProfiles={updateProfiles}
+ {...routerProps}>
<div />
</ProfileContainer>
);
@@ -57,8 +60,8 @@ it('should render ProfileNotFound', () => {
onRequestFail={jest.fn()}
organization={null}
profiles={profiles}
- router={{} as any}
- updateProfiles={jest.fn()}>
+ updateProfiles={jest.fn()}
+ {...routerProps}>
<div />
</ProfileContainer>
);
@@ -74,8 +77,8 @@ it('should render Helmet', () => {
onRequestFail={jest.fn()}
organization={null}
profiles={profiles}
- router={{} as any}
- updateProfiles={updateProfiles}>
+ updateProfiles={updateProfiles}
+ {...routerProps}>
<div />
</ProfileContainer>
);
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/ProfilePermissions-test.tsx b/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/ProfilePermissions-test.tsx
index fc13a173960..21a8003c99c 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/ProfilePermissions-test.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/ProfilePermissions-test.tsx
@@ -17,17 +17,17 @@
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-/* eslint-disable import/first, import/order */
-jest.mock('../../../../api/quality-profiles', () => ({
- searchUsers: jest.fn(() => Promise.resolve([])),
- searchGroups: jest.fn(() => Promise.resolve([]))
-}));
-
+/* eslint-disable import/order */
import * as React from 'react';
import { mount, shallow } from 'enzyme';
import ProfilePermissions from '../ProfilePermissions';
import { click } from '../../../../helpers/testUtils';
+jest.mock('../../../../api/quality-profiles', () => ({
+ searchUsers: jest.fn(() => Promise.resolve([])),
+ searchGroups: jest.fn(() => Promise.resolve([]))
+}));
+
const searchUsers = require('../../../../api/quality-profiles').searchUsers as jest.Mock<any>;
const searchGroups = require('../../../../api/quality-profiles').searchGroups as jest.Mock<any>;
@@ -50,16 +50,21 @@ it('renders', () => {
expect(wrapper).toMatchSnapshot();
});
-it('opens add users form', () => {
+it('opens add users form', async () => {
+ searchUsers.mockImplementationOnce(() =>
+ Promise.resolve({ users: [{ login: 'luke', name: 'Luke Skywalker' }] })
+ );
const wrapper = shallow(<ProfilePermissions profile={profile} />);
- (wrapper.instance() as ProfilePermissions).mounted = true;
- wrapper.setState({ loading: false, users: [{ login: 'luke', name: 'Luke Skywalker' }] });
+ expect(searchUsers).toHaveBeenCalled();
+ await new Promise(setImmediate);
+ wrapper.update();
expect(wrapper.find('ProfilePermissionsForm').exists()).toBeFalsy();
click(wrapper.find('button'));
expect(wrapper.find('ProfilePermissionsForm').exists()).toBeTruthy();
wrapper.find('ProfilePermissionsForm').prop<Function>('onClose')();
+ wrapper.update();
expect(wrapper.find('ProfilePermissionsForm').exists()).toBeFalsy();
});
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/ProfilePermissionsFormSelect-test.tsx b/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/ProfilePermissionsFormSelect-test.tsx
index 7a029559e80..ad5127eec1b 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/ProfilePermissionsFormSelect-test.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/ProfilePermissionsFormSelect-test.tsx
@@ -17,23 +17,22 @@
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-/* eslint-disable import/first */
+import * as React from 'react';
+import { shallow } from 'enzyme';
+import ProfilePermissionsFormSelect from '../ProfilePermissionsFormSelect';
+
jest.mock('lodash', () => {
const lodash = require.requireActual('lodash');
lodash.debounce = (fn: Function) => (...args: any[]) => fn(...args);
return lodash;
});
-import * as React from 'react';
-import { shallow } from 'enzyme';
-import ProfilePermissionsFormSelect from '../ProfilePermissionsFormSelect';
-
it('renders', () => {
expect(
shallow(
<ProfilePermissionsFormSelect
onChange={jest.fn()}
- onSearch={jest.fn()}
+ onSearch={jest.fn(() => Promise.resolve([]))}
selected={{ name: 'lambda' }}
/>
)
@@ -49,6 +48,8 @@ it('searches', () => {
selected={{ name: 'lambda' }}
/>
);
+ expect(onSearch).toBeCalledWith('');
+ onSearch.mockClear();
wrapper.prop<Function>('onInputChange')('f');
expect(onSearch).not.toBeCalled();
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/ProfileRules-test.tsx b/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/ProfileRules-test.tsx
index 95a3665df08..05de8311e22 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/ProfileRules-test.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/ProfileRules-test.tsx
@@ -20,7 +20,6 @@
import * as React from 'react';
import { shallow } from 'enzyme';
import ProfileRules from '../ProfileRules';
-import { doAsync } from '../../../../helpers/testUtils';
import * as apiRules from '../../../../api/rules';
import * as apiQP from '../../../../api/quality-profiles';
@@ -82,16 +81,15 @@ const apiResponseActive = {
}
});
-it('should render the quality profiles rules with sonarway comparison', () => {
+it('should render the quality profiles rules with sonarway comparison', async () => {
const wrapper = shallow(<ProfileRules organization="foo" profile={PROFILE} />);
const instance = wrapper.instance() as any;
instance.mounted = true;
instance.loadRules();
- return doAsync(() => {
- wrapper.update();
- expect(wrapper.find('ProfileRulesSonarWayComparison')).toHaveLength(1);
- expect(wrapper).toMatchSnapshot();
- });
+ await new Promise(setImmediate);
+ wrapper.update();
+ expect(wrapper.find('ProfileRulesSonarWayComparison')).toHaveLength(1);
+ expect(wrapper).toMatchSnapshot();
});
it('should show a button to activate more rules for admins', () => {
@@ -116,22 +114,18 @@ it('should not show a button to activate more rules on built in profiles', () =>
expect(wrapper.find('.js-activate-rules')).toHaveLength(0);
});
-it('should not show sonarway comparison for built in profiles', () => {
+it('should not show sonarway comparison for built in profiles', async () => {
(apiQP as any).getQualityProfile = jest.fn(() => Promise.resolve());
const wrapper = shallow(
<ProfileRules organization={null} profile={{ ...PROFILE, isBuiltIn: true }} />
);
- const instance = wrapper.instance() as any;
- instance.mounted = true;
- instance.loadRules();
- return doAsync(() => {
- wrapper.update();
- expect(apiQP.getQualityProfile).toHaveBeenCalledTimes(0);
- expect(wrapper.find('ProfileRulesSonarWayComparison')).toHaveLength(0);
- });
+ await new Promise(setImmediate);
+ wrapper.update();
+ expect(apiQP.getQualityProfile).toHaveBeenCalledTimes(0);
+ expect(wrapper.find('ProfileRulesSonarWayComparison')).toHaveLength(0);
});
-it('should not show sonarway comparison if there is no missing rules', () => {
+it('should not show sonarway comparison if there is no missing rules', async () => {
(apiQP as any).getQualityProfile = jest.fn(() =>
Promise.resolve({
compareToSonarWay: {
@@ -142,12 +136,8 @@ it('should not show sonarway comparison if there is no missing rules', () => {
})
);
const wrapper = shallow(<ProfileRules organization={null} profile={PROFILE} />);
- const instance = wrapper.instance() as any;
- instance.mounted = true;
- instance.loadRules();
- return doAsync(() => {
- wrapper.update();
- expect(apiQP.getQualityProfile).toHaveBeenCalledTimes(1);
- expect(wrapper.find('ProfileRulesSonarWayComparison')).toHaveLength(0);
- });
+ await new Promise(setImmediate);
+ wrapper.update();
+ expect(apiQP.getQualityProfile).toHaveBeenCalledTimes(1);
+ expect(wrapper.find('ProfileRulesSonarWayComparison')).toHaveLength(0);
});
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfilePermissionsFormSelect-test.tsx.snap b/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfilePermissionsFormSelect-test.tsx.snap
index a2760e70710..15cbb3f39fb 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfilePermissionsFormSelect-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfilePermissionsFormSelect-test.tsx.snap
@@ -6,7 +6,7 @@ exports[`renders 1`] = `
className="Select-big"
clearable={false}
filterOptions={[Function]}
- isLoading={false}
+ isLoading={true}
noResultsText="no_results"
onChange={[Function]}
onInputChange={[Function]}
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/routes.ts b/server/sonar-web/src/main/js/apps/quality-profiles/routes.ts
index 6f8e8730ded..7b889b6eaab 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/routes.ts
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/routes.ts
@@ -17,7 +17,7 @@
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-import { withRouter, RouterState, IndexRouteProps, RouteComponent } from 'react-router';
+import { RouterState, IndexRouteProps, RouteComponent, withRouter } from 'react-router';
const routes = [
{
diff --git a/server/sonar-web/src/main/js/apps/system/components/info-items/__tests__/__snapshots__/SysInfoItem-test.tsx.snap b/server/sonar-web/src/main/js/apps/system/components/info-items/__tests__/__snapshots__/SysInfoItem-test.tsx.snap
index 86c9310e1d7..f2164f53967 100644
--- a/server/sonar-web/src/main/js/apps/system/components/info-items/__tests__/__snapshots__/SysInfoItem-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/system/components/info-items/__tests__/__snapshots__/SysInfoItem-test.tsx.snap
@@ -129,6 +129,7 @@ Array [
>
<CheckIcon>
<svg
+ className={undefined}
height={16}
viewBox="0 0 16 16"
width={16}
diff --git a/server/sonar-web/src/main/js/apps/system/components/system-upgrade/__tests__/SystemUpgradeNotif-test.tsx b/server/sonar-web/src/main/js/apps/system/components/system-upgrade/__tests__/SystemUpgradeNotif-test.tsx
index 57a5bb78559..7bab8e65039 100644
--- a/server/sonar-web/src/main/js/apps/system/components/system-upgrade/__tests__/SystemUpgradeNotif-test.tsx
+++ b/server/sonar-web/src/main/js/apps/system/components/system-upgrade/__tests__/SystemUpgradeNotif-test.tsx
@@ -81,29 +81,20 @@ beforeEach(() => {
it('should display correctly', async () => {
const wrapper = shallow(<SystemUpgradeNotif />);
- expect(wrapper).toMatchSnapshot();
-
- const instance = wrapper.instance() as SystemUpgradeNotif;
- instance.mounted = true;
- instance.fetchSystemUpgrade();
-
+ expect(wrapper.type()).toBeNull();
await new Promise(setImmediate);
wrapper.update();
expect(wrapper).toMatchSnapshot();
});
it('should display nothing', async () => {
- getSystemUpgrades.mockImplementationOnce(() =>
- Promise.resolve({ updateCenterRefresh: '', upgrades: [] })
- );
+ getSystemUpgrades.mockImplementationOnce(() => {
+ return Promise.resolve({ updateCenterRefresh: '', upgrades: [] });
+ });
const wrapper = shallow(<SystemUpgradeNotif />);
- const instance = wrapper.instance() as SystemUpgradeNotif;
- instance.mounted = true;
- instance.fetchSystemUpgrade();
-
await new Promise(setImmediate);
wrapper.update();
- expect(wrapper).toMatchSnapshot();
+ expect(wrapper.type()).toBeNull();
});
it('should fetch upgrade when mounting', () => {
@@ -113,12 +104,8 @@ it('should fetch upgrade when mounting', () => {
it('should open the upgrade form', async () => {
const wrapper = shallow(<SystemUpgradeNotif />);
- const instance = wrapper.instance() as SystemUpgradeNotif;
- instance.mounted = true;
- instance.fetchSystemUpgrade();
await new Promise(setImmediate);
wrapper.update();
-
click(wrapper.find('button'));
expect(wrapper.find('SystemUpgradeForm').exists()).toBeTruthy();
});
diff --git a/server/sonar-web/src/main/js/apps/system/components/system-upgrade/__tests__/__snapshots__/SystemUpgradeNotif-test.tsx.snap b/server/sonar-web/src/main/js/apps/system/components/system-upgrade/__tests__/__snapshots__/SystemUpgradeNotif-test.tsx.snap
index a750b00055d..f1b0b865020 100644
--- a/server/sonar-web/src/main/js/apps/system/components/system-upgrade/__tests__/__snapshots__/SystemUpgradeNotif-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/system/components/system-upgrade/__tests__/__snapshots__/SystemUpgradeNotif-test.tsx.snap
@@ -1,8 +1,6 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`should display correctly 1`] = `null`;
-
-exports[`should display correctly 2`] = `
+exports[`should display correctly 1`] = `
<div
className="page-notifs"
>
@@ -19,5 +17,3 @@ exports[`should display correctly 2`] = `
</div>
</div>
`;
-
-exports[`should display nothing 1`] = `null`;
diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/__tests__/NewOrganizationForm-test.js b/server/sonar-web/src/main/js/apps/tutorials/onboarding/__tests__/NewOrganizationForm-test.js
index 79a5542b3ee..f6f6eba3125 100644
--- a/server/sonar-web/src/main/js/apps/tutorials/onboarding/__tests__/NewOrganizationForm-test.js
+++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/__tests__/NewOrganizationForm-test.js
@@ -21,7 +21,7 @@
import React from 'react';
import { mount } from 'enzyme';
import NewOrganizationForm from '../NewOrganizationForm';
-import { change, doAsync, submit } from '../../../../helpers/testUtils';
+import { change, submit } from '../../../../helpers/testUtils';
jest.mock('../../../../api/organizations', () => ({
createOrganization: () => Promise.resolve(),
@@ -29,28 +29,28 @@ jest.mock('../../../../api/organizations', () => ({
getOrganization: () => Promise.resolve(null)
}));
-it('creates new organization', () => {
+it('creates new organization', async () => {
const onDone = jest.fn();
const wrapper = mount(<NewOrganizationForm onDelete={jest.fn()} onDone={onDone} />);
expect(wrapper).toMatchSnapshot();
change(wrapper.find('input'), 'foo');
submit(wrapper.find('form'));
expect(wrapper).toMatchSnapshot(); // spinner
- return doAsync(() => {
- expect(wrapper).toMatchSnapshot();
- expect(onDone).toBeCalledWith('foo');
- });
+ await new Promise(setImmediate);
+ wrapper.update();
+ expect(wrapper).toMatchSnapshot();
+ expect(onDone).toBeCalledWith('foo');
});
-it('deletes organization', () => {
+it('deletes organization', async () => {
const onDelete = jest.fn();
const wrapper = mount(<NewOrganizationForm onDelete={onDelete} onDone={jest.fn()} />);
wrapper.setState({ done: true, loading: false, organization: 'foo' });
expect(wrapper).toMatchSnapshot();
submit(wrapper.find('form'));
expect(wrapper).toMatchSnapshot(); // spinner
- return doAsync(() => {
- expect(wrapper).toMatchSnapshot();
- expect(onDelete).toBeCalled();
- });
+ await new Promise(setImmediate);
+ wrapper.update();
+ expect(wrapper).toMatchSnapshot();
+ expect(onDelete).toBeCalled();
});
diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/__tests__/NewProjectForm-test.js b/server/sonar-web/src/main/js/apps/tutorials/onboarding/__tests__/NewProjectForm-test.js
index 7b05724cbe7..89952611111 100644
--- a/server/sonar-web/src/main/js/apps/tutorials/onboarding/__tests__/NewProjectForm-test.js
+++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/__tests__/NewProjectForm-test.js
@@ -21,35 +21,35 @@
import React from 'react';
import { mount } from 'enzyme';
import NewProjectForm from '../NewProjectForm';
-import { change, doAsync, submit } from '../../../../helpers/testUtils';
+import { change, submit } from '../../../../helpers/testUtils';
jest.mock('../../../../api/components', () => ({
createProject: () => Promise.resolve(),
deleteProject: () => Promise.resolve()
}));
-it('creates new project', () => {
+it('creates new project', async () => {
const onDone = jest.fn();
const wrapper = mount(<NewProjectForm onDelete={jest.fn()} onDone={onDone} />);
expect(wrapper).toMatchSnapshot();
change(wrapper.find('input'), 'foo');
submit(wrapper.find('form'));
expect(wrapper).toMatchSnapshot(); // spinner
- return doAsync(() => {
- expect(wrapper).toMatchSnapshot();
- expect(onDone).toBeCalledWith('foo');
- });
+ await new Promise(setImmediate);
+ wrapper.update();
+ expect(wrapper).toMatchSnapshot();
+ expect(onDone).toBeCalledWith('foo');
});
-it('deletes project', () => {
+it('deletes project', async () => {
const onDelete = jest.fn();
const wrapper = mount(<NewProjectForm onDelete={onDelete} onDone={jest.fn()} />);
wrapper.setState({ done: true, loading: false, projectKey: 'foo' });
expect(wrapper).toMatchSnapshot();
submit(wrapper.find('form'));
expect(wrapper).toMatchSnapshot(); // spinner
- return doAsync(() => {
- expect(wrapper).toMatchSnapshot();
- expect(onDelete).toBeCalled();
- });
+ await new Promise(setImmediate);
+ wrapper.update();
+ expect(wrapper).toMatchSnapshot();
+ expect(onDelete).toBeCalled();
});
diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/__tests__/OrganizationStep-test.js b/server/sonar-web/src/main/js/apps/tutorials/onboarding/__tests__/OrganizationStep-test.js
index 5dadb7c0c94..6bc5530cd54 100644
--- a/server/sonar-web/src/main/js/apps/tutorials/onboarding/__tests__/OrganizationStep-test.js
+++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/__tests__/OrganizationStep-test.js
@@ -21,14 +21,19 @@
import React from 'react';
import { mount } from 'enzyme';
import OrganizationStep from '../OrganizationStep';
-import { click, doAsync } from '../../../../helpers/testUtils';
+import { click } from '../../../../helpers/testUtils';
+import { getMyOrganizations } from '../../../../api/organizations';
jest.mock('../../../../api/organizations', () => ({
- getMyOrganizations: () => Promise.resolve(['user', 'another'])
+ getMyOrganizations: jest.fn(() => Promise.resolve(['user', 'another']))
}));
const currentUser = { isLoggedIn: true, login: 'user' };
+beforeEach(() => {
+ getMyOrganizations.mockClear();
+});
+
// FIXME
// - if `mount` is used, then it's not possible to correctly set the state,
// because the mocked api call is used
@@ -49,7 +54,7 @@ it.skip('works with personal organization', () => {
expect(onContinue).toBeCalledWith('user');
});
-it('works with existing organization', () => {
+it('works with existing organization', async () => {
const onContinue = jest.fn();
const wrapper = mount(
<OrganizationStep
@@ -61,19 +66,20 @@ it('works with existing organization', () => {
stepNumber={1}
/>
);
- return doAsync(() => {
- click(wrapper.find('.js-existing'));
- expect(wrapper).toMatchSnapshot();
- wrapper
- .find('Select')
- .first()
- .prop('onChange')({ value: 'another' });
- click(wrapper.find('.js-continue'));
- expect(onContinue).toBeCalledWith('another');
- });
+ await new Promise(setImmediate);
+ wrapper.update();
+ click(wrapper.find('.js-existing'));
+ expect(wrapper).toMatchSnapshot();
+ wrapper
+ .find('Select')
+ .first()
+ .prop('onChange')({ value: 'another' });
+ wrapper.update();
+ click(wrapper.find('.js-continue'));
+ expect(onContinue).toBeCalledWith('another');
});
-it('works with new organization', () => {
+it('works with new organization', async () => {
const onContinue = jest.fn();
const wrapper = mount(
<OrganizationStep
@@ -85,10 +91,11 @@ it('works with new organization', () => {
stepNumber={1}
/>
);
- return doAsync(() => {
- click(wrapper.find('.js-new'));
- wrapper.find('NewOrganizationForm').prop('onDone')('new');
- click(wrapper.find('.js-continue'));
- expect(onContinue).toBeCalledWith('new');
- });
+ await new Promise(setImmediate);
+ wrapper.update();
+ click(wrapper.find('.js-new'));
+ wrapper.find('NewOrganizationForm').prop('onDone')('new');
+ wrapper.update();
+ click(wrapper.find('.js-continue'));
+ expect(onContinue).toBeCalledWith('new');
});
diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/__tests__/ProjectKeyStep-test.js b/server/sonar-web/src/main/js/apps/tutorials/onboarding/__tests__/ProjectKeyStep-test.js
index 2af50f6a3b5..8d36627114f 100644
--- a/server/sonar-web/src/main/js/apps/tutorials/onboarding/__tests__/ProjectKeyStep-test.js
+++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/__tests__/ProjectKeyStep-test.js
@@ -28,28 +28,28 @@ jest.mock('../../../../api/components', () => ({
deleteProject: () => Promise.resolve()
}));
-it('creates new project', () => {
+it('creates new project', async () => {
const onDone = jest.fn();
const wrapper = mount(<ProjectKeyStep onDelete={jest.fn()} onDone={onDone} />);
expect(wrapper).toMatchSnapshot();
change(wrapper.find('input'), 'foo');
submit(wrapper.find('form'));
expect(wrapper).toMatchSnapshot(); // spinner
- return doAsync(() => {
- expect(wrapper).toMatchSnapshot();
- expect(onDone).toBeCalledWith('foo');
- });
+ await new Promise(setImmediate);
+ wrapper.update();
+ expect(wrapper).toMatchSnapshot();
+ expect(onDone).toBeCalledWith('foo');
});
-it('deletes project', () => {
+it('deletes project', async () => {
const onDelete = jest.fn();
const wrapper = mount(<ProjectKeyStep onDelete={onDelete} onDone={jest.fn()} />);
wrapper.setState({ done: true, loading: false, projectKey: 'foo' });
expect(wrapper).toMatchSnapshot();
submit(wrapper.find('form'));
expect(wrapper).toMatchSnapshot(); // spinner
- return doAsync(() => {
- expect(wrapper).toMatchSnapshot();
- expect(onDelete).toBeCalled();
- });
+ await new Promise(setImmediate);
+ wrapper.update();
+ expect(wrapper).toMatchSnapshot();
+ expect(onDelete).toBeCalled();
});
diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/__tests__/TokenStep-test.js b/server/sonar-web/src/main/js/apps/tutorials/onboarding/__tests__/TokenStep-test.js
index 200a9030052..801da708998 100644
--- a/server/sonar-web/src/main/js/apps/tutorials/onboarding/__tests__/TokenStep-test.js
+++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/__tests__/TokenStep-test.js
@@ -21,7 +21,7 @@
import React from 'react';
import { mount } from 'enzyme';
import TokenStep from '../TokenStep';
-import { change, click, doAsync, submit } from '../../../../helpers/testUtils';
+import { change, click, submit } from '../../../../helpers/testUtils';
jest.mock('../../../../api/user-tokens', () => ({
getTokens: () => Promise.resolve([{ name: 'foo' }]),
@@ -43,11 +43,14 @@ it('generates token', async () => {
/>
);
await new Promise(setImmediate);
+ wrapper.update();
expect(wrapper).toMatchSnapshot();
change(wrapper.find('input'), 'my token');
submit(wrapper.find('form'));
expect(wrapper).toMatchSnapshot(); // spinner
- return doAsync(() => expect(wrapper).toMatchSnapshot());
+ await new Promise(setImmediate);
+ wrapper.update();
+ expect(wrapper).toMatchSnapshot();
});
it('revokes token', async () => {
@@ -66,7 +69,9 @@ it('revokes token', async () => {
expect(wrapper).toMatchSnapshot();
submit(wrapper.find('form'));
expect(wrapper).toMatchSnapshot(); // spinner
- return doAsync(() => expect(wrapper).toMatchSnapshot());
+ await new Promise(setImmediate);
+ wrapper.update();
+ expect(wrapper).toMatchSnapshot();
});
it('continues', async () => {
diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/__tests__/__snapshots__/OrganizationStep-test.js.snap b/server/sonar-web/src/main/js/apps/tutorials/onboarding/__tests__/__snapshots__/OrganizationStep-test.js.snap
index 48a5505dee2..b36b4f02776 100644
--- a/server/sonar-web/src/main/js/apps/tutorials/onboarding/__tests__/__snapshots__/OrganizationStep-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/__tests__/__snapshots__/OrganizationStep-test.js.snap
@@ -25,6 +25,9 @@ exports[`works with existing organization 1`] = `
>
<div
className="boxed-group onboarding-step is-open"
+ onClick={undefined}
+ role={undefined}
+ tabIndex={undefined}
>
<div
className="onboarding-step-number"
@@ -79,6 +82,7 @@ exports[`works with existing organization 1`] = `
},
]
}
+ value={undefined}
>
<Select
addLabelText="Add \\"{label}\\"?"
@@ -134,11 +138,13 @@ exports[`works with existing organization 1`] = `
searchable={true}
simpleValue={false}
tabSelectsValue={true}
+ value={undefined}
valueComponent={[Function]}
valueKey="value"
>
<div
className="Select input-super-large Select--single is-searchable"
+ style={undefined}
>
<div
className="Select-control"
@@ -147,6 +153,7 @@ exports[`works with existing organization 1`] = `
onTouchEnd={[Function]}
onTouchMove={[Function]}
onTouchStart={[Function]}
+ style={undefined}
>
<span
className="Select-multi-value-wrapper"
@@ -159,8 +166,11 @@ exports[`works with existing organization 1`] = `
</div>
<AutosizeInput
aria-activedescendant="react-select-2--value"
+ aria-describedby={undefined}
aria-expanded="false"
aria-haspopup="false"
+ aria-label={undefined}
+ aria-labelledby={undefined}
aria-owns=""
className="Select-input"
minWidth="5"
@@ -169,6 +179,7 @@ exports[`works with existing organization 1`] = `
onFocus={[Function]}
required={false}
role="combobox"
+ tabIndex={undefined}
value=""
>
<div
@@ -188,9 +199,14 @@ exports[`works with existing organization 1`] = `
/>
<input
aria-activedescendant="react-select-2--value"
+ aria-describedby={undefined}
aria-expanded="false"
aria-haspopup="false"
+ aria-label={undefined}
+ aria-labelledby={undefined}
aria-owns=""
+ className={undefined}
+ id={undefined}
onBlur={[Function]}
onChange={[Function]}
onFocus={[Function]}
@@ -202,6 +218,7 @@ exports[`works with existing organization 1`] = `
"width": "5px",
}
}
+ tabIndex={undefined}
value=""
/>
<div
diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/__tests__/__snapshots__/TokenStep-test.js.snap b/server/sonar-web/src/main/js/apps/tutorials/onboarding/__tests__/__snapshots__/TokenStep-test.js.snap
index 5afe9b488f1..637a26c6425 100644
--- a/server/sonar-web/src/main/js/apps/tutorials/onboarding/__tests__/__snapshots__/TokenStep-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/__tests__/__snapshots__/TokenStep-test.js.snap
@@ -24,6 +24,9 @@ exports[`generates token 1`] = `
>
<div
className="boxed-group onboarding-step is-open"
+ onClick={undefined}
+ role={undefined}
+ tabIndex={undefined}
>
<div
className="onboarding-step-number"
@@ -126,6 +129,9 @@ exports[`generates token 2`] = `
>
<div
className="boxed-group onboarding-step is-open"
+ onClick={undefined}
+ role={undefined}
+ tabIndex={undefined}
>
<div
className="onboarding-step-number"
@@ -225,6 +231,9 @@ exports[`generates token 3`] = `
>
<div
className="boxed-group onboarding-step is-open"
+ onClick={undefined}
+ role={undefined}
+ tabIndex={undefined}
>
<div
className="onboarding-step-number"
@@ -322,6 +331,9 @@ exports[`revokes token 1`] = `
>
<div
className="boxed-group onboarding-step is-open"
+ onClick={undefined}
+ role={undefined}
+ tabIndex={undefined}
>
<div
className="onboarding-step-number"
@@ -419,6 +431,9 @@ exports[`revokes token 2`] = `
>
<div
className="boxed-group onboarding-step is-open"
+ onClick={undefined}
+ role={undefined}
+ tabIndex={undefined}
>
<div
className="onboarding-step-number"
@@ -498,6 +513,9 @@ exports[`revokes token 3`] = `
>
<div
className="boxed-group onboarding-step is-open"
+ onClick={undefined}
+ role={undefined}
+ tabIndex={undefined}
>
<div
className="onboarding-step-number"
diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/Command-test.js b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/Command-test.js
index 19ee425c791..c0504abce82 100644
--- a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/Command-test.js
+++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/Command-test.js
@@ -19,9 +19,9 @@
*/
// @flow
import React from 'react';
-import { shallow } from 'enzyme';
+import { mount } from 'enzyme';
import Command from '../Command';
it('renders correctly', () => {
- expect(shallow(<Command command={'foo\nbar'} />)).toMatchSnapshot();
+ expect(mount(<Command command={'foo\nbar'} />)).toMatchSnapshot();
});
diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/Command-test.js.snap b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/Command-test.js.snap
index f456088c24a..63e31484c8d 100644
--- a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/Command-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/Command-test.js.snap
@@ -1,18 +1,23 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`renders correctly 1`] = `
-<div
- className="onboarding-command"
+<Command
+ command="foo
+bar"
>
- <pre>
- foo
+ <div
+ className="onboarding-command"
+ >
+ <pre>
+ foo
bar
- </pre>
- <button
- data-clipboard-text="foo
+ </pre>
+ <button
+ data-clipboard-text="foo
bar"
- >
- copy
- </button>
-</div>
+ >
+ copy
+ </button>
+ </div>
+</Command>
`;
diff --git a/server/sonar-web/src/main/js/apps/web-api/components/ResponseExample.tsx b/server/sonar-web/src/main/js/apps/web-api/components/ResponseExample.tsx
index c20fc9c7515..d23ea61c6d4 100644
--- a/server/sonar-web/src/main/js/apps/web-api/components/ResponseExample.tsx
+++ b/server/sonar-web/src/main/js/apps/web-api/components/ResponseExample.tsx
@@ -43,8 +43,8 @@ export default class ResponseExample extends React.PureComponent<Props, State> {
this.fetchResponseExample();
}
- componentDidUpdate(nextProps: Props) {
- if (nextProps.action !== this.props.action) {
+ componentDidUpdate(prevProps: Props) {
+ if (prevProps.action !== this.props.action) {
this.fetchResponseExample();
}
}
diff --git a/server/sonar-web/src/main/js/components/SourceViewer/components/LineCode.js b/server/sonar-web/src/main/js/components/SourceViewer/components/LineCode.js
index a71c07d8002..e2dc21087bf 100644
--- a/server/sonar-web/src/main/js/components/SourceViewer/components/LineCode.js
+++ b/server/sonar-web/src/main/js/components/SourceViewer/components/LineCode.js
@@ -115,9 +115,11 @@ export default class LineCode extends React.PureComponent {
}
attachEvents() {
- this.symbols = this.codeNode.querySelectorAll('.sym');
- for (const symbol of this.symbols) {
- symbol.addEventListener('click', this.handleSymbolClick);
+ if (this.codeNode) {
+ this.symbols = this.codeNode.querySelectorAll('.sym');
+ for (const symbol of this.symbols) {
+ symbol.addEventListener('click', this.handleSymbolClick);
+ }
}
}
diff --git a/server/sonar-web/src/main/js/components/charts/__tests__/__snapshots__/BubbleChart-test.js.snap b/server/sonar-web/src/main/js/components/charts/__tests__/__snapshots__/BubbleChart-test.js.snap
index e5854e7792f..acc3eec0736 100644
--- a/server/sonar-web/src/main/js/components/charts/__tests__/__snapshots__/BubbleChart-test.js.snap
+++ b/server/sonar-web/src/main/js/components/charts/__tests__/__snapshots__/BubbleChart-test.js.snap
@@ -2,13 +2,18 @@
exports[`should display bubbles 1`] = `
<Bubble
+ color={undefined}
key="0"
+ link={undefined}
+ onClick={undefined}
r={45}
+ tooltip={undefined}
x={-10}
y={52.3015873015873}
>
<circle
className="bubble-chart-bubble"
+ onClick={undefined}
r={45}
style={
Object {
@@ -23,13 +28,18 @@ exports[`should display bubbles 1`] = `
exports[`should display bubbles 2`] = `
<Bubble
+ color={undefined}
key="1"
+ link={undefined}
+ onClick={undefined}
r={33.57142857142857}
+ tooltip={undefined}
x={-75}
y={33.57142857142857}
>
<circle
className="bubble-chart-bubble"
+ onClick={undefined}
r={33.57142857142857}
style={
Object {
@@ -44,9 +54,12 @@ exports[`should display bubbles 2`] = `
exports[`should render bubble links 1`] = `
<Bubble
+ color={undefined}
key="0"
link="foo"
+ onClick={undefined}
r={45}
+ tooltip={undefined}
x={-10}
y={52.3015873015873}
>
@@ -61,6 +74,7 @@ exports[`should render bubble links 1`] = `
>
<circle
className="bubble-chart-bubble"
+ onClick={undefined}
r={45}
style={
Object {
@@ -77,9 +91,12 @@ exports[`should render bubble links 1`] = `
exports[`should render bubble links 2`] = `
<Bubble
+ color={undefined}
key="1"
link="bar"
+ onClick={undefined}
r={33.57142857142857}
+ tooltip={undefined}
x={-75}
y={33.57142857142857}
>
@@ -94,6 +111,7 @@ exports[`should render bubble links 2`] = `
>
<circle
className="bubble-chart-bubble"
+ onClick={undefined}
r={33.57142857142857}
style={
Object {
@@ -110,10 +128,12 @@ exports[`should render bubble links 2`] = `
exports[`should render bubbles with click handlers 1`] = `
<Bubble
+ color={undefined}
key="0"
link="foo"
onClick={[Function]}
r={45}
+ tooltip={undefined}
x={-10}
y={52.3015873015873}
>
@@ -134,10 +154,12 @@ exports[`should render bubbles with click handlers 1`] = `
exports[`should render bubbles with click handlers 2`] = `
<Bubble
+ color={undefined}
key="1"
link="bar"
onClick={[Function]}
r={33.57142857142857}
+ tooltip={undefined}
x={-75}
y={33.57142857142857}
>
diff --git a/server/sonar-web/src/main/js/components/common/MultiSelect.js b/server/sonar-web/src/main/js/components/common/MultiSelect.js
index 2547da0d2b5..9bfed621cc0 100644
--- a/server/sonar-web/src/main/js/components/common/MultiSelect.js
+++ b/server/sonar-web/src/main/js/components/common/MultiSelect.js
@@ -68,7 +68,9 @@ export default class MultiSelect extends React.PureComponent {
componentDidMount() {
this.updateSelectedElements(this.props);
this.updateUnselectedElements(this.props);
- this.container.addEventListener('keydown', this.handleKeyboard, true);
+ if (this.container) {
+ this.container.addEventListener('keydown', this.handleKeyboard, true);
+ }
}
componentWillReceiveProps(nextProps /*: Props */) {
diff --git a/server/sonar-web/src/main/js/components/common/__tests__/BranchStatus-test.tsx b/server/sonar-web/src/main/js/components/common/__tests__/BranchStatus-test.tsx
index 7b2de5d01d7..99d3937a354 100644
--- a/server/sonar-web/src/main/js/components/common/__tests__/BranchStatus-test.tsx
+++ b/server/sonar-web/src/main/js/components/common/__tests__/BranchStatus-test.tsx
@@ -45,11 +45,11 @@ it('renders status of short-living branches', () => {
});
it('renders status of long-living branches', () => {
- checkLong();
- checkLong('OK');
- checkLong('ERROR');
+ expect(getWrapper().type()).toBeNull();
+ expect(getWrapper('OK')).toMatchSnapshot();
+ expect(getWrapper('ERROR')).toMatchSnapshot();
- function checkLong(qualityGateStatus?: string) {
+ function getWrapper(qualityGateStatus?: string) {
const branch: LongLivingBranch = {
isMain: false,
name: 'foo',
@@ -58,6 +58,6 @@ it('renders status of long-living branches', () => {
if (qualityGateStatus) {
branch.status = { qualityGateStatus };
}
- expect(shallow(<BranchStatus branch={branch} />)).toMatchSnapshot();
+ return shallow(<BranchStatus branch={branch} />);
}
});
diff --git a/server/sonar-web/src/main/js/components/common/__tests__/BubblePopupHelper-test.js b/server/sonar-web/src/main/js/components/common/__tests__/BubblePopupHelper-test.js
index d17527119b7..953cfad379e 100644
--- a/server/sonar-web/src/main/js/components/common/__tests__/BubblePopupHelper-test.js
+++ b/server/sonar-web/src/main/js/components/common/__tests__/BubblePopupHelper-test.js
@@ -36,7 +36,8 @@ it('should render an open popup on the right', () => {
</BubblePopup>
}>
<button onClick={toggle}>open</button>
- </BubblePopupHelper>
+ </BubblePopupHelper>,
+ { disableLifecycleMethods: true }
);
expect(popup).toMatchSnapshot();
});
@@ -54,7 +55,8 @@ it('should render the popup helper with a closed popup', () => {
</BubblePopup>
}>
<button onClick={toggle}>open</button>
- </BubblePopupHelper>
+ </BubblePopupHelper>,
+ { disableLifecycleMethods: true }
);
expect(popup).toMatchSnapshot();
});
@@ -73,7 +75,8 @@ it('should render with custom classes', () => {
</BubblePopup>
}>
<button onClick={toggle}>open</button>
- </BubblePopupHelper>
+ </BubblePopupHelper>,
+ { disableLifecycleMethods: true }
);
expect(popup).toMatchSnapshot();
});
@@ -130,7 +133,8 @@ it('should correctly handle clicks on the button', () => {
</BubblePopup>
}>
<button onClick={toggle}>open</button>
- </BubblePopupHelper>
+ </BubblePopupHelper>,
+ { disableLifecycleMethods: true }
);
expect(popup).toMatchSnapshot();
click(popup.find('button'));
diff --git a/server/sonar-web/src/main/js/components/common/__tests__/DeferredSpinner-test.js b/server/sonar-web/src/main/js/components/common/__tests__/DeferredSpinner-test.js
index 560c705c4cb..d078ddaeb74 100644
--- a/server/sonar-web/src/main/js/components/common/__tests__/DeferredSpinner-test.js
+++ b/server/sonar-web/src/main/js/components/common/__tests__/DeferredSpinner-test.js
@@ -28,12 +28,14 @@ it('renders spinner after timeout', () => {
const spinner = mount(<DeferredSpinner />);
expect(spinner).toMatchSnapshot();
jest.runAllTimers();
+ spinner.update();
expect(spinner).toMatchSnapshot();
});
it('add custom className', () => {
const spinner = mount(<DeferredSpinner className="foo" />);
jest.runAllTimers();
+ spinner.update();
expect(spinner).toMatchSnapshot();
});
@@ -45,6 +47,7 @@ it('renders children before timeout', () => {
);
expect(spinner).toMatchSnapshot();
jest.runAllTimers();
+ spinner.update();
expect(spinner).toMatchSnapshot();
});
@@ -58,6 +61,7 @@ it('is controlled by loading prop', () => {
spinner.setProps({ loading: true });
expect(spinner).toMatchSnapshot();
jest.runAllTimers();
+ spinner.update();
expect(spinner).toMatchSnapshot();
spinner.setProps({ loading: false });
expect(spinner).toMatchSnapshot();
diff --git a/server/sonar-web/src/main/js/components/common/__tests__/MultiSelect-test.js b/server/sonar-web/src/main/js/components/common/__tests__/MultiSelect-test.js
index 1a52e06f0c3..fe5e7370ea0 100644
--- a/server/sonar-web/src/main/js/components/common/__tests__/MultiSelect-test.js
+++ b/server/sonar-web/src/main/js/components/common/__tests__/MultiSelect-test.js
@@ -33,10 +33,9 @@ const elements = ['foo', 'bar', 'baz'];
it('should render multiselect with selected elements', () => {
const multiselect = shallow(<MultiSelect {...props} />);
- // Will not have any element in the list since its filled with componentDidMount the first time
+ // Will not only the selected element
expect(multiselect).toMatchSnapshot();
- // Will have some elements
multiselect.setProps({ elements });
expect(multiselect).toMatchSnapshot();
multiselect.setState({ activeIdx: 2 });
@@ -47,5 +46,5 @@ it('should render multiselect with selected elements', () => {
it('should render with the focus inside the search input', () => {
const multiselect = mount(<MultiSelect {...props} />);
- expect(multiselect.find('input').node).toBe(document.activeElement);
+ expect(multiselect.find('input').getDOMNode()).toBe(document.activeElement);
});
diff --git a/server/sonar-web/src/main/js/components/common/__tests__/SelectList-test.js b/server/sonar-web/src/main/js/components/common/__tests__/SelectList-test.js
index 58afbecad26..9f26ebd25ee 100644
--- a/server/sonar-web/src/main/js/components/common/__tests__/SelectList-test.js
+++ b/server/sonar-web/src/main/js/components/common/__tests__/SelectList-test.js
@@ -70,6 +70,6 @@ it('should correclty handle user actions', () => {
expect(list.state()).toMatchSnapshot();
keydown(38);
expect(list.state()).toMatchSnapshot();
- click(list.childAt(2).find('a'));
+ click(list.find('a').at(2));
expect(onSelect.mock.calls).toMatchSnapshot(); // eslint-disable-linelist
});
diff --git a/server/sonar-web/src/main/js/components/common/__tests__/__snapshots__/BranchStatus-test.tsx.snap b/server/sonar-web/src/main/js/components/common/__tests__/__snapshots__/BranchStatus-test.tsx.snap
index 32c0d0a2afa..8833bab3ceb 100644
--- a/server/sonar-web/src/main/js/components/common/__tests__/__snapshots__/BranchStatus-test.tsx.snap
+++ b/server/sonar-web/src/main/js/components/common/__tests__/__snapshots__/BranchStatus-test.tsx.snap
@@ -1,15 +1,13 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`renders status of long-living branches 1`] = `null`;
-
-exports[`renders status of long-living branches 2`] = `
+exports[`renders status of long-living branches 1`] = `
<Level
level="OK"
small={true}
/>
`;
-exports[`renders status of long-living branches 3`] = `
+exports[`renders status of long-living branches 2`] = `
<Level
level="ERROR"
small={true}
diff --git a/server/sonar-web/src/main/js/components/common/__tests__/__snapshots__/MultiSelect-test.js.snap b/server/sonar-web/src/main/js/components/common/__tests__/__snapshots__/MultiSelect-test.js.snap
index 2fa03425675..dd5d323ec6d 100644
--- a/server/sonar-web/src/main/js/components/common/__tests__/__snapshots__/MultiSelect-test.js.snap
+++ b/server/sonar-web/src/main/js/components/common/__tests__/__snapshots__/MultiSelect-test.js.snap
@@ -25,7 +25,17 @@ exports[`should render multiselect with selected elements 1`] = `
</div>
<ul
className="menu"
- />
+ >
+ <MultiSelectOption
+ active={true}
+ custom={false}
+ element="bar"
+ key="bar"
+ onHover={[Function]}
+ onSelectChange={[Function]}
+ selected={true}
+ />
+ </ul>
</div>
`;
@@ -56,7 +66,7 @@ exports[`should render multiselect with selected elements 2`] = `
className="menu"
>
<MultiSelectOption
- active={false}
+ active={true}
custom={false}
element="bar"
key="bar"
diff --git a/server/sonar-web/src/main/js/components/issue/components/__tests__/__snapshots__/IssueCommentAction-test.js.snap b/server/sonar-web/src/main/js/components/issue/components/__tests__/__snapshots__/IssueCommentAction-test.js.snap
index 53bb476c610..13f54108ff2 100644
--- a/server/sonar-web/src/main/js/components/issue/components/__tests__/__snapshots__/IssueCommentAction-test.js.snap
+++ b/server/sonar-web/src/main/js/components/issue/components/__tests__/__snapshots__/IssueCommentAction-test.js.snap
@@ -10,6 +10,7 @@ exports[`should open the popup when the button is clicked 1`] = `
<CommentPopup
customClass="issue-comment-bubble-popup"
onComment={[Function]}
+ placeholder={undefined}
toggleComment={[Function]}
/>
}
@@ -40,6 +41,7 @@ exports[`should render correctly 1`] = `
<CommentPopup
customClass="issue-comment-bubble-popup"
onComment={[Function]}
+ placeholder={undefined}
toggleComment={[Function]}
/>
}
diff --git a/server/sonar-web/src/main/js/components/shared/__tests__/Organization-test.tsx b/server/sonar-web/src/main/js/components/shared/__tests__/Organization-test.tsx
index 34f6ace01b2..f08ea3ede15 100644
--- a/server/sonar-web/src/main/js/components/shared/__tests__/Organization-test.tsx
+++ b/server/sonar-web/src/main/js/components/shared/__tests__/Organization-test.tsx
@@ -31,10 +31,12 @@ it('should match snapshot', () => {
it('should not be displayed', () => {
expect(
- shallow(<UnconnectedOrganization organization={organization} shouldBeDisplayed={false} />)
- ).toMatchSnapshot();
+ shallow(
+ <UnconnectedOrganization organization={organization} shouldBeDisplayed={false} />
+ ).type()
+ ).toBeNull();
expect(
- shallow(<UnconnectedOrganization organization={null} shouldBeDisplayed={true} />)
- ).toMatchSnapshot();
+ shallow(<UnconnectedOrganization organization={null} shouldBeDisplayed={true} />).type()
+ ).toBeNull();
});
diff --git a/server/sonar-web/src/main/js/components/shared/__tests__/QualifierIcon-test.js b/server/sonar-web/src/main/js/components/shared/__tests__/QualifierIcon-test.js
index 857ccbaf450..406eb03591e 100644
--- a/server/sonar-web/src/main/js/components/shared/__tests__/QualifierIcon-test.js
+++ b/server/sonar-web/src/main/js/components/shared/__tests__/QualifierIcon-test.js
@@ -27,7 +27,7 @@ it('should render icon', () => {
});
it('should not render icon', () => {
- expect(shallow(<QualifierIcon qualifier={null} />)).toMatchSnapshot();
+ expect(shallow(<QualifierIcon qualifier={null} />).type()).toBeNull();
});
it('should render with custom class', () => {
diff --git a/server/sonar-web/src/main/js/components/shared/__tests__/__snapshots__/Organization-test.tsx.snap b/server/sonar-web/src/main/js/components/shared/__tests__/__snapshots__/Organization-test.tsx.snap
index 72ffd1b6d84..4f12a56b205 100644
--- a/server/sonar-web/src/main/js/components/shared/__tests__/__snapshots__/Organization-test.tsx.snap
+++ b/server/sonar-web/src/main/js/components/shared/__tests__/__snapshots__/Organization-test.tsx.snap
@@ -17,7 +17,3 @@ exports[`should match snapshot 1`] = `
/>
</span>
`;
-
-exports[`should not be displayed 1`] = `null`;
-
-exports[`should not be displayed 2`] = `null`;
diff --git a/server/sonar-web/src/main/js/components/shared/__tests__/__snapshots__/QualifierIcon-test.js.snap b/server/sonar-web/src/main/js/components/shared/__tests__/__snapshots__/QualifierIcon-test.js.snap
index c42ce36411a..3e1625b3e32 100644
--- a/server/sonar-web/src/main/js/components/shared/__tests__/__snapshots__/QualifierIcon-test.js.snap
+++ b/server/sonar-web/src/main/js/components/shared/__tests__/__snapshots__/QualifierIcon-test.js.snap
@@ -1,7 +1,5 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`should not render icon 1`] = `null`;
-
exports[`should render icon 1`] = `
<i
className="icon-qualifier-trk"
diff --git a/server/sonar-web/src/main/js/store/utils/configureStore.js b/server/sonar-web/src/main/js/store/utils/configureStore.js
index e356fffe796..1b0f950a658 100644
--- a/server/sonar-web/src/main/js/store/utils/configureStore.js
+++ b/server/sonar-web/src/main/js/store/utils/configureStore.js
@@ -23,7 +23,7 @@ import thunk from 'redux-thunk';
const middlewares = [thunk];
const composed = [];
-if (process.env.NODE_ENV !== 'production') {
+if (process.env.NODE_ENV === 'development') {
const { createLogger } = require('redux-logger');
middlewares.push(createLogger());
diff --git a/server/sonar-web/yarn.lock b/server/sonar-web/yarn.lock
index 9b69d65b638..7777a06fcf6 100644
--- a/server/sonar-web/yarn.lock
+++ b/server/sonar-web/yarn.lock
@@ -3,8 +3,8 @@
"@types/cheerio@*":
- version "0.22.2"
- resolved "https://registry.yarnpkg.com/@types/cheerio/-/cheerio-0.22.2.tgz#539625874bc856086ad491c2fdc9b10c05ae308e"
+ version "0.22.4"
+ resolved "https://registry.yarnpkg.com/@types/cheerio/-/cheerio-0.22.4.tgz#0c8d546ef43c249070223cf8bf9cbac29ac0e64e"
"@types/classnames@2.2.3":
version "2.2.3"
@@ -24,15 +24,9 @@
version "1.0.7"
resolved "https://registry.yarnpkg.com/@types/d3-time/-/d3-time-1.0.7.tgz#4266d7c9be15fa81256a88d1d052d61cd8dc572c"
-"@types/date-fns@2.6.0":
- version "2.6.0"
- resolved "https://registry.yarnpkg.com/@types/date-fns/-/date-fns-2.6.0.tgz#b062ca46562002909be0c63a6467ed173136acc1"
- dependencies:
- date-fns "*"
-
-"@types/enzyme@2.8.6":
- version "2.8.6"
- resolved "https://registry.yarnpkg.com/@types/enzyme/-/enzyme-2.8.6.tgz#b508da0860b4fcda2ab851d600e5bfaf695775dd"
+"@types/enzyme@3.1.1":
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/@types/enzyme/-/enzyme-3.1.1.tgz#102ebd9aa33fa15fd11477b6f701cde18cbe7de0"
dependencies:
"@types/cheerio" "*"
"@types/react" "*"
@@ -42,8 +36,8 @@
resolved "https://registry.yarnpkg.com/@types/escape-html/-/escape-html-0.0.20.tgz#cae698714dd61ebee5ab3f2aeb9a34ba1011735a"
"@types/history@^3":
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/@types/history/-/history-3.2.1.tgz#0039ab0e0be2a0cc22bac171d27a44588103d123"
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/@types/history/-/history-3.2.2.tgz#b6affa240cb10b5f841c6443d8a24d7f3fc8bb0c"
"@types/jest@21.1.5":
version "21.1.5"
@@ -53,21 +47,25 @@
version "3.2.11"
resolved "https://registry.yarnpkg.com/@types/jquery/-/jquery-3.2.11.tgz#9119f91bb103b16ae8c4375b019a9b341b409f50"
-"@types/lodash@4.14.79":
- version "4.14.79"
- resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.79.tgz#125f9df9d8a1cc032c730681c62fb9efd74c0da7"
+"@types/lodash@4.14.80":
+ version "4.14.80"
+ resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.80.tgz#a6b8b7900e6a7dcbc2e90d9b6dfbe3f6a7f69951"
"@types/node@*":
- version "8.0.22"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-8.0.22.tgz#9c6bfee1f45f5e9952ff6b487e657ecca48c7777"
+ version "8.0.47"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-8.0.47.tgz#968e596f91acd59069054558a00708c445ca30c2"
+
+"@types/node@^6.0.46":
+ version "6.0.90"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-6.0.90.tgz#0ed74833fa1b73dcdb9409dcb1c97ec0a8b13b02"
"@types/prop-types@15.5.2":
version "15.5.2"
resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.5.2.tgz#3c6b8dceb2906cc87fe4358e809f9d20c8d59be1"
-"@types/react-dom@15.5.2":
- version "15.5.2"
- resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-15.5.2.tgz#f7203c75a1728812355f037ea112611d082555e6"
+"@types/react-dom@16.0.2":
+ version "16.0.2"
+ resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.0.2.tgz#2da9de21fd83f0140b64794ad9c47930230aedae"
dependencies:
"@types/node" "*"
"@types/react" "*"
@@ -88,16 +86,16 @@
dependencies:
"@types/react" "*"
-"@types/react-redux@5.0.10":
- version "5.0.10"
- resolved "https://registry.yarnpkg.com/@types/react-redux/-/react-redux-5.0.10.tgz#f5c45a349f759d87d6b1f2aa096a756561a6d5c9"
+"@types/react-redux@5.0.12":
+ version "5.0.12"
+ resolved "https://registry.yarnpkg.com/@types/react-redux/-/react-redux-5.0.12.tgz#c066812eb970009b373372f439d08265ed2a6f8e"
dependencies:
"@types/react" "*"
redux "^3.6.0"
-"@types/react-router@3.0.5":
- version "3.0.5"
- resolved "https://registry.yarnpkg.com/@types/react-router/-/react-router-3.0.5.tgz#ef5eea33f067d877586d06c464a5f864860be09d"
+"@types/react-router@3.0.13":
+ version "3.0.13"
+ resolved "https://registry.yarnpkg.com/@types/react-router/-/react-router-3.0.13.tgz#493c2f0794313a37e4698deed9b816b2ad239716"
dependencies:
"@types/history" "^3"
"@types/react" "*"
@@ -108,23 +106,23 @@
dependencies:
"@types/react" "*"
-"@types/react@*", "@types/react@16.0.2":
- version "16.0.2"
- resolved "https://registry.yarnpkg.com/@types/react/-/react-16.0.2.tgz#0b31a73cdde6272b719e5b05a7df6d1e2654a804"
+"@types/react@*", "@types/react@16.0.19":
+ version "16.0.19"
+ resolved "https://registry.yarnpkg.com/@types/react/-/react-16.0.19.tgz#f804a0fcd6d94c17df92cf2fd46671bbbc862329"
abab@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/abab/-/abab-1.0.3.tgz#b81de5f7274ec4e756d797cd834f303642724e5d"
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/abab/-/abab-1.0.4.tgz#5faad9c2c07f60dd76770f71cf025b62a63cfd4e"
abbrev@1:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f"
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
-accepts@~1.3.3:
- version "1.3.3"
- resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.3.tgz#c3ca7434938648c3e0d9c1e328dd68b622c284ca"
+accepts@~1.3.4:
+ version "1.3.4"
+ resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.4.tgz#86246758c7dd6d21a6474ff084a4740ec05eb21f"
dependencies:
- mime-types "~2.1.11"
+ mime-types "~2.1.16"
negotiator "0.6.1"
acorn-dynamic-import@^2.0.0:
@@ -154,8 +152,8 @@ acorn@^4.0.3, acorn@^4.0.4:
resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787"
acorn@^5.0.0, acorn@^5.1.1:
- version "5.1.1"
- resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.1.1.tgz#53fe161111f912ab999ee887a90a0bc52822fd75"
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.2.1.tgz#317ac7821826c22c702d66189ab8359675f135d7"
add-dom-event-listener@1.x:
version "1.0.2"
@@ -163,13 +161,17 @@ add-dom-event-listener@1.x:
dependencies:
object-assign "4.x"
-address@1.0.2, address@^1.0.1:
+address@1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/address/-/address-1.0.2.tgz#480081e82b587ba319459fef512f516fe03d58af"
+address@^1.0.1:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/address/-/address-1.0.3.tgz#b5f50631f8d6cec8bd20c963963afb55e06cbce9"
+
ajv-keywords@^2.0.0, ajv-keywords@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.0.tgz#a296e17f7bfae7c1ce4f7e0de53d29cb32162df0"
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762"
ajv@^4.9.1:
version "4.11.8"
@@ -178,16 +180,7 @@ ajv@^4.9.1:
co "^4.6.0"
json-stable-stringify "^1.0.1"
-ajv@^5.0.0:
- version "5.2.2"
- resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.2.2.tgz#47c68d69e86f5d953103b0074a9430dc63da5e39"
- dependencies:
- co "^4.6.0"
- fast-deep-equal "^1.0.0"
- json-schema-traverse "^0.3.0"
- json-stable-stringify "^1.0.1"
-
-ajv@^5.1.5:
+ajv@^5.0.0, ajv@^5.1.0, ajv@^5.1.5, ajv@^5.2.0, ajv@^5.2.3:
version "5.3.0"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.3.0.tgz#4414ff74a50879c208ee5fdc826e32c303549eda"
dependencies:
@@ -196,15 +189,6 @@ ajv@^5.1.5:
fast-json-stable-stringify "^2.0.0"
json-schema-traverse "^0.3.0"
-ajv@^5.2.0, ajv@^5.2.3:
- version "5.2.3"
- resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.2.3.tgz#c06f598778c44c6b161abafe3466b81ad1814ed2"
- dependencies:
- co "^4.6.0"
- fast-deep-equal "^1.0.0"
- json-schema-traverse "^0.3.0"
- json-stable-stringify "^1.0.1"
-
align-text@^0.1.1, align-text@^0.1.3:
version "0.1.4"
resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117"
@@ -281,8 +265,8 @@ append-transform@^0.4.0:
default-require-extensions "^1.0.0"
aproba@^1.0.3:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.1.2.tgz#45c6629094de4e96f693ef7eab74ae079c240fc1"
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
are-we-there-yet@~1.1.2:
version "1.1.4"
@@ -313,7 +297,7 @@ arr-diff@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520"
-arr-flatten@^1.0.1, arr-flatten@^1.0.3:
+arr-flatten@^1.0.1, arr-flatten@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1"
@@ -481,7 +465,11 @@ aws-sign2@~0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f"
-aws4@^1.2.1:
+aws-sign2@~0.7.0:
+ version "0.7.0"
+ resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
+
+aws4@^1.2.1, aws4@^1.6.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e"
@@ -491,7 +479,7 @@ axobject-query@^0.1.0:
dependencies:
ast-types-flow "0.0.7"
-babel-code-frame@6.22.0, babel-code-frame@^6.11.0, babel-code-frame@^6.22.0:
+babel-code-frame@6.22.0:
version "6.22.0"
resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.22.0.tgz#027620bee567a88c32561574e7fd0801d33118e4"
dependencies:
@@ -499,7 +487,7 @@ babel-code-frame@6.22.0, babel-code-frame@^6.11.0, babel-code-frame@^6.22.0:
esutils "^2.0.2"
js-tokens "^3.0.0"
-babel-code-frame@^6.26.0:
+babel-code-frame@^6.11.0, babel-code-frame@^6.22.0, babel-code-frame@^6.26.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"
dependencies:
@@ -507,7 +495,7 @@ babel-code-frame@^6.26.0:
esutils "^2.0.2"
js-tokens "^3.0.2"
-babel-core@6.26.0, babel-core@^6.26.0:
+babel-core@6.26.0, babel-core@^6.0.0, babel-core@^6.24.1, babel-core@^6.26.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8"
dependencies:
@@ -531,44 +519,7 @@ babel-core@6.26.0, babel-core@^6.26.0:
slash "^1.0.0"
source-map "^0.5.6"
-babel-core@^6.0.0, babel-core@^6.24.1:
- version "6.25.0"
- resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.25.0.tgz#7dd42b0463c742e9d5296deb3ec67a9322dad729"
- dependencies:
- babel-code-frame "^6.22.0"
- babel-generator "^6.25.0"
- babel-helpers "^6.24.1"
- babel-messages "^6.23.0"
- babel-register "^6.24.1"
- babel-runtime "^6.22.0"
- babel-template "^6.25.0"
- babel-traverse "^6.25.0"
- babel-types "^6.25.0"
- babylon "^6.17.2"
- convert-source-map "^1.1.0"
- debug "^2.1.1"
- json5 "^0.5.0"
- lodash "^4.2.0"
- minimatch "^3.0.2"
- path-is-absolute "^1.0.0"
- private "^0.1.6"
- slash "^1.0.0"
- source-map "^0.5.0"
-
-babel-generator@^6.18.0, babel-generator@^6.25.0:
- version "6.25.0"
- resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.25.0.tgz#33a1af70d5f2890aeb465a4a7793c1df6a9ea9fc"
- dependencies:
- babel-messages "^6.23.0"
- babel-runtime "^6.22.0"
- babel-types "^6.25.0"
- detect-indent "^4.0.0"
- jsesc "^1.3.0"
- lodash "^4.2.0"
- source-map "^0.5.0"
- trim-right "^1.0.1"
-
-babel-generator@^6.26.0:
+babel-generator@^6.18.0, babel-generator@^6.26.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.0.tgz#ac1ae20070b79f6e3ca1d3269613053774f20dc5"
dependencies:
@@ -590,12 +541,12 @@ babel-helper-builder-binary-assignment-operator-visitor@^6.24.1:
babel-types "^6.24.1"
babel-helper-builder-react-jsx@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.24.1.tgz#0ad7917e33c8d751e646daca4e77cc19377d2cbc"
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz#39ff8313b75c8b65dceff1f31d383e0ff2a408a0"
dependencies:
- babel-runtime "^6.22.0"
- babel-types "^6.24.1"
- esutils "^2.0.0"
+ babel-runtime "^6.26.0"
+ babel-types "^6.26.0"
+ esutils "^2.0.2"
babel-helper-call-delegate@^6.24.1:
version "6.24.1"
@@ -607,13 +558,13 @@ babel-helper-call-delegate@^6.24.1:
babel-types "^6.24.1"
babel-helper-define-map@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.24.1.tgz#7a9747f258d8947d32d515f6aa1c7bd02204a080"
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f"
dependencies:
babel-helper-function-name "^6.24.1"
- babel-runtime "^6.22.0"
- babel-types "^6.24.1"
- lodash "^4.2.0"
+ babel-runtime "^6.26.0"
+ babel-types "^6.26.0"
+ lodash "^4.17.4"
babel-helper-explode-assignable-expression@^6.24.1:
version "6.24.1"
@@ -655,12 +606,12 @@ babel-helper-optimise-call-expression@^6.24.1:
babel-types "^6.24.1"
babel-helper-regex@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.24.1.tgz#d36e22fab1008d79d88648e32116868128456ce8"
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72"
dependencies:
- babel-runtime "^6.22.0"
- babel-types "^6.24.1"
- lodash "^4.2.0"
+ babel-runtime "^6.26.0"
+ babel-types "^6.26.0"
+ lodash "^4.17.4"
babel-helper-remap-async-to-generator@^6.24.1:
version "6.24.1"
@@ -726,11 +677,11 @@ babel-plugin-dynamic-import-node@1.1.0:
babel-types "^6.26.0"
babel-plugin-istanbul@^4.0.0, babel-plugin-istanbul@^4.1.4:
- version "4.1.4"
- resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.4.tgz#18dde84bf3ce329fddf3f4103fae921456d8e587"
+ version "4.1.5"
+ resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.5.tgz#6760cdd977f411d3e175bb064f2bc327d99b2b6e"
dependencies:
find-up "^2.1.0"
- istanbul-lib-instrument "^1.7.2"
+ istanbul-lib-instrument "^1.7.5"
test-exclude "^4.1.1"
babel-plugin-jest-hoist@^21.2.0:
@@ -799,14 +750,14 @@ babel-plugin-transform-es2015-block-scoped-functions@^6.22.0:
babel-runtime "^6.22.0"
babel-plugin-transform-es2015-block-scoping@^6.23.0:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.24.1.tgz#76c295dc3a4741b1665adfd3167215dcff32a576"
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f"
dependencies:
- babel-runtime "^6.22.0"
- babel-template "^6.24.1"
- babel-traverse "^6.24.1"
- babel-types "^6.24.1"
- lodash "^4.2.0"
+ babel-runtime "^6.26.0"
+ babel-template "^6.26.0"
+ babel-traverse "^6.26.0"
+ babel-types "^6.26.0"
+ lodash "^4.17.4"
babel-plugin-transform-es2015-classes@^6.23.0:
version "6.24.1"
@@ -871,13 +822,13 @@ babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015
babel-template "^6.24.1"
babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.24.1.tgz#d3e310b40ef664a36622200097c6d440298f2bfe"
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz#0d8394029b7dc6abe1a97ef181e00758dd2e5d8a"
dependencies:
babel-plugin-transform-strict-mode "^6.24.1"
- babel-runtime "^6.22.0"
- babel-template "^6.24.1"
- babel-types "^6.24.1"
+ babel-runtime "^6.26.0"
+ babel-template "^6.26.0"
+ babel-types "^6.26.0"
babel-plugin-transform-es2015-modules-systemjs@^6.23.0:
version "6.24.1"
@@ -1011,10 +962,10 @@ babel-plugin-transform-react-jsx@^6.24.1:
babel-runtime "^6.22.0"
babel-plugin-transform-regenerator@^6.22.0:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.24.1.tgz#b8da305ad43c3c99b4848e4fe4037b770d23c418"
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f"
dependencies:
- regenerator-transform "0.9.11"
+ regenerator-transform "^0.10.0"
babel-plugin-transform-strict-mode@^6.24.1:
version "6.24.1"
@@ -1090,18 +1041,6 @@ babel-preset-react@^6.22.0:
babel-plugin-transform-react-jsx-source "^6.22.0"
babel-preset-flow "^6.23.0"
-babel-register@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.24.1.tgz#7e10e13a2f71065bdfad5a1787ba45bca6ded75f"
- dependencies:
- babel-core "^6.24.1"
- babel-runtime "^6.22.0"
- core-js "^2.4.0"
- home-or-tmp "^2.0.0"
- lodash "^4.2.0"
- mkdirp "^0.5.1"
- source-map-support "^0.4.2"
-
babel-register@^6.26.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071"
@@ -1121,31 +1060,14 @@ babel-runtime@6.23.0:
core-js "^2.4.0"
regenerator-runtime "^0.10.0"
-babel-runtime@6.x, babel-runtime@^6.18.0, babel-runtime@^6.22.0:
- version "6.25.0"
- resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.25.0.tgz#33b98eaa5d482bb01a8d1aa6b437ad2b01aec41c"
- dependencies:
- core-js "^2.4.0"
- regenerator-runtime "^0.10.0"
-
-babel-runtime@^6.23.0, babel-runtime@^6.26.0:
+babel-runtime@6.x, babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.23.0, babel-runtime@^6.26.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
dependencies:
core-js "^2.4.0"
regenerator-runtime "^0.11.0"
-babel-template@^6.16.0, babel-template@^6.24.1, babel-template@^6.25.0:
- version "6.25.0"
- resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.25.0.tgz#665241166b7c2aa4c619d71e192969552b10c071"
- dependencies:
- babel-runtime "^6.22.0"
- babel-traverse "^6.25.0"
- babel-types "^6.25.0"
- babylon "^6.17.2"
- lodash "^4.2.0"
-
-babel-template@^6.26.0:
+babel-template@^6.16.0, babel-template@^6.24.1, babel-template@^6.26.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02"
dependencies:
@@ -1155,21 +1077,7 @@ babel-template@^6.26.0:
babylon "^6.18.0"
lodash "^4.17.4"
-babel-traverse@^6.18.0, babel-traverse@^6.24.1, babel-traverse@^6.25.0:
- version "6.25.0"
- resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.25.0.tgz#2257497e2fcd19b89edc13c4c91381f9512496f1"
- dependencies:
- babel-code-frame "^6.22.0"
- babel-messages "^6.23.0"
- babel-runtime "^6.22.0"
- babel-types "^6.25.0"
- babylon "^6.17.2"
- debug "^2.2.0"
- globals "^9.0.0"
- invariant "^2.2.0"
- lodash "^4.2.0"
-
-babel-traverse@^6.26.0:
+babel-traverse@^6.18.0, babel-traverse@^6.24.1, babel-traverse@^6.26.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee"
dependencies:
@@ -1183,16 +1091,7 @@ babel-traverse@^6.26.0:
invariant "^2.2.2"
lodash "^4.17.4"
-babel-types@^6.18.0, babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.25.0:
- version "6.25.0"
- resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.25.0.tgz#70afb248d5660e5d18f811d91c8303b54134a18e"
- dependencies:
- babel-runtime "^6.22.0"
- esutils "^2.0.2"
- lodash "^4.2.0"
- to-fast-properties "^1.0.1"
-
-babel-types@^6.26.0:
+babel-types@^6.18.0, babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497"
dependencies:
@@ -1201,10 +1100,6 @@ babel-types@^6.26.0:
lodash "^4.17.4"
to-fast-properties "^1.0.3"
-babylon@^6.17.2, babylon@^6.17.4:
- version "6.17.4"
- resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.17.4.tgz#3e8b7402b88d22c3423e137a1577883b15ff869a"
-
babylon@^6.18.0:
version "6.18.0"
resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3"
@@ -1251,17 +1146,15 @@ base64-js@^1.0.2:
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.1.tgz#a91947da1f4a516ea38e5b4ec0ec3773675e0886"
base@^0.11.1:
- version "0.11.1"
- resolved "https://registry.yarnpkg.com/base/-/base-0.11.1.tgz#b36a7f11113853a342a15691d98e2dcc8a6cc270"
+ version "0.11.2"
+ resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f"
dependencies:
- arr-union "^3.1.0"
- cache-base "^0.8.4"
- class-utils "^0.3.4"
+ cache-base "^1.0.1"
+ class-utils "^0.3.5"
component-emitter "^1.2.1"
- define-property "^0.2.5"
- isobject "^2.1.0"
- lazy-cache "^2.0.1"
- mixin-deep "^1.1.3"
+ define-property "^1.0.0"
+ isobject "^3.0.1"
+ mixin-deep "^1.2.0"
pascalcase "^0.1.1"
batch@0.6.1:
@@ -1275,8 +1168,8 @@ bcrypt-pbkdf@^1.0.0:
tweetnacl "^0.14.3"
big.js@^3.1.3:
- version "3.1.3"
- resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.1.3.tgz#4cada2193652eb3ca9ec8e55c9015669c9806978"
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e"
binary-extensions@^1.0.0:
version "1.10.0"
@@ -1289,13 +1182,28 @@ block-stream@*:
inherits "~2.0.0"
bluebird@^3.4.7:
- version "3.5.0"
- resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.0.tgz#791420d7f551eea2897453a8a77653f96606d67c"
+ version "3.5.1"
+ resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9"
bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0:
version "4.11.8"
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f"
+body-parser@1.18.2:
+ version "1.18.2"
+ resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454"
+ dependencies:
+ bytes "3.0.0"
+ content-type "~1.0.4"
+ debug "2.6.9"
+ depd "~1.1.1"
+ http-errors "~1.6.2"
+ iconv-lite "0.4.19"
+ on-finished "~2.3.0"
+ qs "6.5.1"
+ raw-body "2.3.2"
+ type-is "~1.6.15"
+
bonjour@^3.5.0:
version "3.5.0"
resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5"
@@ -1317,6 +1225,18 @@ boom@2.x.x:
dependencies:
hoek "2.x.x"
+boom@4.x.x:
+ version "4.3.1"
+ resolved "https://registry.yarnpkg.com/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31"
+ dependencies:
+ hoek "4.x.x"
+
+boom@5.x.x:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02"
+ dependencies:
+ hoek "4.x.x"
+
brace-expansion@^1.0.0, brace-expansion@^1.1.7:
version "1.1.8"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292"
@@ -1332,20 +1252,20 @@ braces@^1.8.2:
preserve "^0.2.0"
repeat-element "^1.1.2"
-braces@^2.2.2:
- version "2.2.2"
- resolved "https://registry.yarnpkg.com/braces/-/braces-2.2.2.tgz#241f868c2b2690d9febeee5a7c83fbbf25d00b1b"
+braces@^2.3.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.0.tgz#a46941cb5fb492156b3d6a656e06c35364e3e66e"
dependencies:
- arr-flatten "^1.0.3"
+ arr-flatten "^1.1.0"
array-unique "^0.3.2"
define-property "^1.0.0"
extend-shallow "^2.0.1"
fill-range "^4.0.0"
- isobject "^3.0.0"
+ isobject "^3.0.1"
repeat-element "^1.1.2"
snapdragon "^0.8.1"
snapdragon-node "^2.0.1"
- split-string "^2.1.0"
+ split-string "^3.0.2"
to-regex "^3.0.1"
brorand@^1.0.1:
@@ -1359,14 +1279,15 @@ browser-resolve@^1.11.2:
resolve "1.1.7"
browserify-aes@^1.0.0, browserify-aes@^1.0.4:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.0.6.tgz#5e7725dbdef1fd5930d4ebab48567ce451c48a0a"
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.1.1.tgz#38b7ab55edb806ff2dcda1a7f1620773a477c49f"
dependencies:
- buffer-xor "^1.0.2"
+ buffer-xor "^1.0.3"
cipher-base "^1.0.0"
create-hash "^1.1.0"
- evp_bytestokey "^1.0.0"
+ evp_bytestokey "^1.0.3"
inherits "^2.0.1"
+ safe-buffer "^5.0.1"
browserify-cipher@^1.0.0:
version "1.0.0"
@@ -1416,19 +1337,12 @@ browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6:
caniuse-db "^1.0.30000639"
electron-to-chromium "^1.2.7"
-browserslist@^2.1.2:
- version "2.3.3"
- resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.3.3.tgz#2b0cabc4d28489f682598605858a0782f14b154c"
- dependencies:
- caniuse-lite "^1.0.30000715"
- electron-to-chromium "^1.3.18"
-
-browserslist@^2.5.1:
- version "2.5.1"
- resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.5.1.tgz#68e4bc536bbcc6086d62843a2ffccea8396821c6"
+browserslist@^2.1.2, browserslist@^2.5.1:
+ version "2.6.1"
+ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.6.1.tgz#cc65a05ad6131ebda26f076f2822ba1bc826376b"
dependencies:
- caniuse-lite "^1.0.30000744"
- electron-to-chromium "^1.3.24"
+ caniuse-lite "^1.0.30000755"
+ electron-to-chromium "^1.3.27"
bser@^2.0.0:
version "2.0.0"
@@ -1440,7 +1354,7 @@ buffer-indexof@^1.0.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c"
-buffer-xor@^1.0.2:
+buffer-xor@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9"
@@ -1460,24 +1374,23 @@ builtin-status-codes@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
-bytes@2.5.0:
- version "2.5.0"
- resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.5.0.tgz#4c9423ea2d252c270c41b2bdefeff9bb6b62c06a"
+bytes@3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048"
-cache-base@^0.8.4:
- version "0.8.5"
- resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-0.8.5.tgz#60ceb3504021eceec7011fd3384b7f4e95729bfa"
+cache-base@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2"
dependencies:
- collection-visit "^0.2.1"
+ collection-visit "^1.0.0"
component-emitter "^1.2.1"
- get-value "^2.0.5"
- has-value "^0.3.1"
- isobject "^3.0.0"
- lazy-cache "^2.0.1"
- set-value "^0.4.2"
+ get-value "^2.0.6"
+ has-value "^1.0.0"
+ isobject "^3.0.1"
+ set-value "^2.0.0"
to-object-path "^0.3.0"
- union-value "^0.2.3"
- unset-value "^0.1.1"
+ union-value "^1.0.0"
+ unset-value "^1.0.0"
caller-path@^0.1.0:
version "0.1.0"
@@ -1533,16 +1446,12 @@ caniuse-api@^1.5.2:
lodash.uniq "^4.5.0"
caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639:
- version "1.0.30000715"
- resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000715.tgz#0b9b5c795950dfbaf301a8806bafe87f126da8ca"
-
-caniuse-lite@^1.0.30000715:
- version "1.0.30000715"
- resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000715.tgz#c327f5e6d907ebcec62cde598c3bf0dd793fb9a0"
+ version "1.0.30000756"
+ resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000756.tgz#e938a6b991630f30d2263dd3458beb65d362268b"
-caniuse-lite@^1.0.30000744, caniuse-lite@^1.0.30000748:
- version "1.0.30000749"
- resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000749.tgz#2ff382865aead8cca35dacfbab04f58effa4c01c"
+caniuse-lite@^1.0.30000748, caniuse-lite@^1.0.30000755:
+ version "1.0.30000756"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000756.tgz#3da701c1521b9fab87004c6de7c97fa47dbeaad2"
caseless@~0.12.0:
version "0.12.0"
@@ -1565,7 +1474,7 @@ chalk@1.1.3, chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3:
strip-ansi "^3.0.0"
supports-color "^2.0.0"
-chalk@2.3.0, chalk@^2.0.1:
+chalk@2.3.0, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.0.tgz#b5ea48efc9c1793dccc9b4767c93914d3f2d52ba"
dependencies:
@@ -1573,34 +1482,16 @@ chalk@2.3.0, chalk@^2.0.1:
escape-string-regexp "^1.0.5"
supports-color "^4.0.0"
-chalk@^2.0.0, chalk@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.1.0.tgz#ac5becf14fa21b99c6c92ca7a7d7cfd5b17e743e"
- dependencies:
- ansi-styles "^3.1.0"
- escape-string-regexp "^1.0.5"
- supports-color "^4.0.0"
-
-cheerio@^0.22.0:
- version "0.22.0"
- resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-0.22.0.tgz#a9baa860a3f9b595a6b81b1a86873121ed3a269e"
+cheerio@^1.0.0-rc.2:
+ version "1.0.0-rc.2"
+ resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.2.tgz#4b9f53a81b27e4d5dac31c0ffd0cfa03cc6830db"
dependencies:
css-select "~1.2.0"
dom-serializer "~0.1.0"
entities "~1.1.1"
htmlparser2 "^3.9.1"
- lodash.assignin "^4.0.9"
- lodash.bind "^4.1.4"
- lodash.defaults "^4.0.1"
- lodash.filter "^4.4.0"
- lodash.flatten "^4.2.0"
- lodash.foreach "^4.3.0"
- lodash.map "^4.4.0"
- lodash.merge "^4.4.0"
- lodash.pick "^4.2.1"
- lodash.reduce "^4.4.0"
- lodash.reject "^4.4.0"
- lodash.some "^4.4.0"
+ lodash "^4.15.0"
+ parse5 "^3.0.1"
chokidar@^1.6.0, chokidar@^1.7.0:
version "1.7.0"
@@ -1618,8 +1509,8 @@ chokidar@^1.6.0, chokidar@^1.7.0:
fsevents "^1.0.0"
ci-info@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.0.0.tgz#dc5285f2b4e251821683681c381c3388f46ec534"
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.1.1.tgz#47b44df118c48d2597b56d342e7e25791060171a"
cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
version "1.0.4"
@@ -1633,12 +1524,12 @@ circular-json@^0.3.1:
resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66"
clap@^1.0.9:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/clap/-/clap-1.2.0.tgz#59c90fe3e137104746ff19469a27a634ff68c857"
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/clap/-/clap-1.2.3.tgz#4f36745b32008492557f46412d66d50cb99bce51"
dependencies:
chalk "^1.1.3"
-class-utils@^0.3.4:
+class-utils@^0.3.5:
version "0.3.5"
resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.5.tgz#17e793103750f9627b2176ea34cfd1b565903c80"
dependencies:
@@ -1653,8 +1544,8 @@ classnames@2.2.5, classnames@^2.2.3, classnames@^2.2.4, classnames@^2.2.5:
resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.5.tgz#fb3801d453467649ef3603c7d61a02bd129bde6d"
clean-css@4.1.x:
- version "4.1.7"
- resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.1.7.tgz#b9aea4f85679889cf3eae8b40349ec4ebdfdd032"
+ version "4.1.9"
+ resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.1.9.tgz#35cee8ae7687a49b98034f70de00c4edd3826301"
dependencies:
source-map "0.5.x"
@@ -1682,8 +1573,8 @@ cli-truncate@^0.2.1:
string-width "^1.0.1"
cli-width@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a"
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639"
clipboard@1.7.1:
version "1.7.1"
@@ -1727,13 +1618,12 @@ code-point-at@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
-collection-visit@^0.2.1:
- version "0.2.3"
- resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-0.2.3.tgz#2f62483caecc95f083b9a454a3ee9e6139ad7957"
+collection-visit@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0"
dependencies:
- lazy-cache "^2.0.1"
- map-visit "^0.1.5"
- object-visit "^0.3.4"
+ map-visit "^1.0.0"
+ object-visit "^1.0.0"
color-convert@^1.3.0, color-convert@^1.9.0:
version "1.9.0"
@@ -1767,6 +1657,10 @@ colormin@^1.0.5:
css-color-names "0.0.4"
has "^1.0.1"
+colors@0.5.x:
+ version "0.5.1"
+ resolved "https://registry.yarnpkg.com/colors/-/colors-0.5.1.tgz#7d0023eaeb154e8ee9fce75dcb923d0ed1667774"
+
colors@^1.1.2, colors@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63"
@@ -1799,23 +1693,23 @@ component-indexof@0.0.3:
version "0.0.3"
resolved "https://registry.yarnpkg.com/component-indexof/-/component-indexof-0.0.3.tgz#11d091312239eb8f32c8f25ae9cb002ffe8d3c24"
-compressible@~2.0.10:
- version "2.0.11"
- resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.11.tgz#16718a75de283ed8e604041625a2064586797d8a"
+compressible@~2.0.11:
+ version "2.0.12"
+ resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.12.tgz#c59a5c99db76767e9876500e271ef63b3493bd66"
dependencies:
- mime-db ">= 1.29.0 < 2"
+ mime-db ">= 1.30.0 < 2"
compression@^1.5.2:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.0.tgz#030c9f198f1643a057d776a738e922da4373012d"
+ version "1.7.1"
+ resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.1.tgz#eff2603efc2e22cf86f35d2eb93589f9875373db"
dependencies:
- accepts "~1.3.3"
- bytes "2.5.0"
- compressible "~2.0.10"
- debug "2.6.8"
+ accepts "~1.3.4"
+ bytes "3.0.0"
+ compressible "~2.0.11"
+ debug "2.6.9"
on-headers "~1.0.1"
safe-buffer "5.1.1"
- vary "~1.1.1"
+ vary "~1.1.2"
concat-map@0.0.1:
version "0.0.1"
@@ -1830,8 +1724,8 @@ concat-stream@^1.6.0:
typedarray "^0.0.6"
connect-history-api-fallback@^1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.3.0.tgz#e51d17f8f0ef0db90a64fdb47de3051556e9f169"
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.4.0.tgz#3db24f973f4b923b0e82f619ce0df02411ca623d"
console-browserify@^1.1.0:
version "1.1.0"
@@ -1856,14 +1750,14 @@ content-disposition@0.5.2:
resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4"
content-type-parser@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/content-type-parser/-/content-type-parser-1.0.1.tgz#c3e56988c53c65127fb46d4032a3a900246fdc94"
-
-content-type@~1.0.2:
version "1.0.2"
- resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.2.tgz#b7d113aee7a8dd27bd21133c4dc2529df1721eed"
+ resolved "https://registry.yarnpkg.com/content-type-parser/-/content-type-parser-1.0.2.tgz#caabe80623e63638b2502fd4c7f12ff4ce2352e7"
+
+content-type@~1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
-convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.5.0:
+convert-source-map@^1.4.0, convert-source-map@^1.5.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5"
@@ -1883,11 +1777,7 @@ core-js@^1.0.0:
version "1.2.7"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636"
-core-js@^2.4.0:
- version "2.5.0"
- resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.0.tgz#569c050918be6486b3837552028ae0466b717086"
-
-core-js@^2.5.0:
+core-js@^2.4.0, core-js@^2.5.0:
version "2.5.1"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.1.tgz#ae6874dc66937789b80754ff5428df66819ca50b"
@@ -1927,7 +1817,7 @@ create-ecdh@^4.0.0:
bn.js "^4.1.0"
elliptic "^6.0.0"
-create-hash@^1.1.0, create-hash@^1.1.1, create-hash@^1.1.2:
+create-hash@^1.1.0, create-hash@^1.1.2:
version "1.1.3"
resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.1.3.tgz#606042ac8b9262750f483caddab0f5819172d8fd"
dependencies:
@@ -1947,7 +1837,7 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4:
safe-buffer "^5.0.1"
sha.js "^2.4.8"
-create-react-class@15.6.2:
+create-react-class@15.6.2, create-react-class@15.x, create-react-class@^15.5.1, create-react-class@^15.5.2:
version "15.6.2"
resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.2.tgz#cf1ed15f12aad7f14ef5f2dfe05e6c42f91ef02a"
dependencies:
@@ -1955,14 +1845,6 @@ create-react-class@15.6.2:
loose-envify "^1.3.1"
object-assign "^4.1.1"
-create-react-class@15.x, create-react-class@^15.5.1, create-react-class@^15.5.2, create-react-class@^15.6.0:
- version "15.6.0"
- resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.0.tgz#ab448497c26566e1e29413e883207d57cfe7bed4"
- dependencies:
- fbjs "^0.8.9"
- loose-envify "^1.3.1"
- object-assign "^4.1.1"
-
cross-spawn@5.1.0, cross-spawn@^5.0.1, cross-spawn@^5.1.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
@@ -1977,6 +1859,12 @@ cryptiles@2.x.x:
dependencies:
boom "2.x.x"
+cryptiles@3.x.x:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe"
+ dependencies:
+ boom "5.x.x"
+
crypto-browserify@^3.11.0:
version "3.11.1"
resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.11.1.tgz#948945efc6757a400d6e5e5af47194d10064279f"
@@ -1993,9 +1881,10 @@ crypto-browserify@^3.11.0:
randombytes "^2.0.0"
css-animation@^1.3.2:
- version "1.3.2"
- resolved "https://registry.yarnpkg.com/css-animation/-/css-animation-1.3.2.tgz#df515820ef5903733ad2db0999403b3037b8b880"
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/css-animation/-/css-animation-1.4.1.tgz#5b8813125de0fbbbb0bbe1b472ae84221469b7a8"
dependencies:
+ babel-runtime "6.x"
component-classes "^1.2.5"
css-color-names@0.0.4:
@@ -2159,8 +2048,8 @@ d3-shape@1.2.0:
d3-path "1"
d3-time-format@2:
- version "2.0.5"
- resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-2.0.5.tgz#9d7780204f7c9119c9170b1a56db4de9a8af972e"
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-2.1.0.tgz#a1d9540a1dc498817d44066b121b19a4a83e3531"
dependencies:
d3-time "1"
@@ -2184,10 +2073,6 @@ dashdash@^1.12.0:
dependencies:
assert-plus "^1.0.0"
-date-fns@*:
- version "1.28.5"
- resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.28.5.tgz#257cfc45d322df45ef5658665967ee841cd73faf"
-
date-fns@1.29.0, date-fns@^1.27.2:
version "1.29.0"
resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.29.0.tgz#12e609cdcb935127311d04d33334e2960a2a54e6"
@@ -2196,9 +2081,9 @@ date-now@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b"
-debug@2.6.8, debug@^2.1.1, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.3, debug@^2.6.6, debug@^2.6.8:
- version "2.6.8"
- resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc"
+debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.6, debug@^2.6.8:
+ version "2.6.9"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
dependencies:
ms "2.0.0"
@@ -2212,6 +2097,10 @@ decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2:
version "1.2.0"
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
+decode-uri-component@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
+
deep-diff@^0.3.5:
version "0.3.8"
resolved "https://registry.yarnpkg.com/deep-diff/-/deep-diff-0.3.8.tgz#c01de63efb0eec9798801d40c7e0dae25b582c84"
@@ -2325,8 +2214,8 @@ detect-port-alt@1.1.3:
debug "^2.6.0"
diff@^3.2.0:
- version "3.3.0"
- resolved "https://registry.yarnpkg.com/diff/-/diff-3.3.0.tgz#056695150d7aa93237ca7e378ac3b1682b7963b9"
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/diff/-/diff-3.4.0.tgz#b1d85507daf3964828de54b37d0d73ba67dda56c"
diffie-hellman@^5.0.0:
version "5.0.2"
@@ -2336,6 +2225,10 @@ diffie-hellman@^5.0.0:
miller-rabin "^4.0.0"
randombytes "^2.0.0"
+discontinuous-range@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/discontinuous-range/-/discontinuous-range-1.0.0.tgz#e38331f0844bba49b9a9cb71c771585aab1bc65a"
+
dns-equal@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d"
@@ -2368,8 +2261,8 @@ doctrine@^2.0.0:
isarray "^1.0.0"
dom-align@1.x:
- version "1.6.3"
- resolved "https://registry.yarnpkg.com/dom-align/-/dom-align-1.6.3.tgz#3017bcc87f02547b1f15b458649a8d94a71f5903"
+ version "1.6.5"
+ resolved "https://registry.yarnpkg.com/dom-align/-/dom-align-1.6.5.tgz#48890ee37563dd43d3b580b75cfb79a6ac8fa004"
dom-converter@~0.1:
version "0.1.4"
@@ -2450,11 +2343,7 @@ ejs@^2.5.6:
version "2.5.7"
resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.5.7.tgz#cc872c168880ae3c7189762fd5ffc00896c9518a"
-electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.18:
- version "1.3.18"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.18.tgz#3dcc99da3e6b665f6abbc71c28ad51a2cd731a9c"
-
-electron-to-chromium@^1.3.24:
+electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.27:
version "1.3.27"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.27.tgz#78ecb8a399066187bb374eede35d9c70565a803d"
@@ -2514,32 +2403,45 @@ entities@^1.1.1, entities@~1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0"
-enzyme-to-json@2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/enzyme-to-json/-/enzyme-to-json-2.0.1.tgz#e8b223040a7cc603bc678a4698c1a83c8c649932"
- dependencies:
- lodash.filter "^4.6.0"
- lodash.isnil "^4.0.0"
- lodash.isplainobject "^4.0.6"
- lodash.omitby "^4.6.0"
- lodash.range "^3.2.0"
- object-values "^1.0.0"
- object.entries "^1.0.4"
+enzyme-adapter-react-16@1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.0.2.tgz#8c6f431f17c69e1e9eeb25ca4bd92f31971eb2dd"
+ dependencies:
+ enzyme-adapter-utils "^1.0.0"
+ lodash "^4.17.4"
+ object.assign "^4.0.4"
+ object.values "^1.0.4"
+ prop-types "^15.5.10"
+ react-test-renderer "^16.0.0-0"
-enzyme@2.9.1:
- version "2.9.1"
- resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-2.9.1.tgz#07d5ce691241240fb817bf2c4b18d6e530240df6"
+enzyme-adapter-utils@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.0.1.tgz#fcd81223339a55a312f7552641e045c404084009"
dependencies:
- cheerio "^0.22.0"
- function.prototype.name "^1.0.0"
+ lodash "^4.17.4"
+ object.assign "^4.0.4"
+ prop-types "^15.5.10"
+
+enzyme-to-json@3.1.4:
+ version "3.1.4"
+ resolved "https://registry.yarnpkg.com/enzyme-to-json/-/enzyme-to-json-3.1.4.tgz#a4a85a8f7b561cb8c9c0d728ad1b619a3fed7df2"
+ dependencies:
+ lodash "^4.17.4"
+
+enzyme@3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-3.1.0.tgz#d8ca84085790fbcec6ed40badd14478faee4c25a"
+ dependencies:
+ cheerio "^1.0.0-rc.2"
+ function.prototype.name "^1.0.3"
is-subset "^0.1.1"
lodash "^4.17.4"
object-is "^1.0.1"
object.assign "^4.0.4"
object.entries "^1.0.4"
object.values "^1.0.4"
- prop-types "^15.5.10"
- uuid "^3.0.1"
+ raf "^3.3.2"
+ rst-selector-parser "^2.2.2"
errno@^0.1.3, errno@^0.1.4:
version "0.1.4"
@@ -2554,11 +2456,11 @@ error-ex@^1.2.0:
is-arrayish "^0.2.1"
es-abstract@^1.6.1, es-abstract@^1.7.0:
- version "1.8.0"
- resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.8.0.tgz#3b00385e85729932beffa9163bbea1234e932914"
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.9.0.tgz#690829a07cae36b222e7fd9b75c0d0573eb25227"
dependencies:
es-to-primitive "^1.1.1"
- function-bind "^1.1.0"
+ function-bind "^1.1.1"
has "^1.0.1"
is-callable "^1.1.3"
is-regex "^1.0.4"
@@ -2632,15 +2534,15 @@ escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
escodegen@^1.6.1:
- version "1.8.1"
- resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.8.1.tgz#5a5b53af4693110bebb0867aa3430dd3b70a1018"
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.9.0.tgz#9811a2f265dc1cd3894420ee3717064b632b8852"
dependencies:
- esprima "^2.7.1"
- estraverse "^1.9.1"
+ esprima "^3.1.3"
+ estraverse "^4.2.0"
esutils "^2.0.2"
optionator "^0.8.1"
optionalDependencies:
- source-map "~0.2.0"
+ source-map "~0.5.6"
escope@^3.6.0:
version "3.6.0"
@@ -2761,10 +2663,14 @@ espree@^3.5.1:
acorn "^5.1.1"
acorn-jsx "^3.0.0"
-esprima@^2.6.0, esprima@^2.7.1:
+esprima@^2.6.0:
version "2.7.3"
resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581"
+esprima@^3.1.3:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633"
+
esprima@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804"
@@ -2782,21 +2688,17 @@ esrecurse@^4.1.0:
estraverse "^4.1.0"
object-assign "^4.0.1"
-estraverse@^1.9.1:
- version "1.9.3"
- resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44"
-
estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
-esutils@^2.0.0, esutils@^2.0.2:
+esutils@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
-etag@~1.8.0:
- version "1.8.0"
- resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.0.tgz#6f631aef336d6c46362b51764044ce216be3c051"
+etag@~1.8.1:
+ version "1.8.1"
+ resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
event-emitter@~0.3.5:
version "0.3.5"
@@ -2819,15 +2721,16 @@ eventsource@0.1.6:
dependencies:
original ">=0.0.5"
-evp_bytestokey@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz#497b66ad9fef65cd7c08a6180824ba1476b66e53"
+evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02"
dependencies:
- create-hash "^1.1.1"
+ md5.js "^1.3.4"
+ safe-buffer "^5.1.1"
exec-sh@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.2.0.tgz#14f75de3f20d286ef933099b2ce50a90359cef10"
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.2.1.tgz#163b98a6e89e6b65b47c2a28d215bc1f63989c38"
dependencies:
merge "^1.1.3"
@@ -2869,7 +2772,7 @@ expand-brackets@^0.1.4:
dependencies:
is-posix-bracket "^0.1.0"
-expand-brackets@^2.0.1:
+expand-brackets@^2.1.4:
version "2.1.4"
resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622"
dependencies:
@@ -2909,37 +2812,39 @@ expose-loader@0.7.3:
resolved "https://registry.yarnpkg.com/expose-loader/-/expose-loader-0.7.3.tgz#35fbd3659789e4faa81f59de8b7e9fc39e466d51"
express@^4.13.3, express@^4.15.2:
- version "4.15.4"
- resolved "https://registry.yarnpkg.com/express/-/express-4.15.4.tgz#032e2253489cf8fce02666beca3d11ed7a2daed1"
+ version "4.16.2"
+ resolved "https://registry.yarnpkg.com/express/-/express-4.16.2.tgz#e35c6dfe2d64b7dca0a5cd4f21781be3299e076c"
dependencies:
- accepts "~1.3.3"
+ accepts "~1.3.4"
array-flatten "1.1.1"
+ body-parser "1.18.2"
content-disposition "0.5.2"
- content-type "~1.0.2"
+ content-type "~1.0.4"
cookie "0.3.1"
cookie-signature "1.0.6"
- debug "2.6.8"
+ debug "2.6.9"
depd "~1.1.1"
encodeurl "~1.0.1"
escape-html "~1.0.3"
- etag "~1.8.0"
- finalhandler "~1.0.4"
- fresh "0.5.0"
+ etag "~1.8.1"
+ finalhandler "1.1.0"
+ fresh "0.5.2"
merge-descriptors "1.0.1"
methods "~1.1.2"
on-finished "~2.3.0"
- parseurl "~1.3.1"
+ parseurl "~1.3.2"
path-to-regexp "0.1.7"
- proxy-addr "~1.1.5"
- qs "6.5.0"
+ proxy-addr "~2.0.2"
+ qs "6.5.1"
range-parser "~1.2.0"
- send "0.15.4"
- serve-static "1.12.4"
- setprototypeof "1.0.3"
+ safe-buffer "5.1.1"
+ send "0.16.1"
+ serve-static "1.13.1"
+ setprototypeof "1.1.0"
statuses "~1.3.1"
type-is "~1.6.15"
- utils-merge "1.0.0"
- vary "~1.1.1"
+ utils-merge "1.0.1"
+ vary "~1.1.2"
extend-shallow@^2.0.1:
version "2.0.1"
@@ -2947,17 +2852,17 @@ extend-shallow@^2.0.1:
dependencies:
is-extendable "^0.1.0"
-extend@~3.0.0:
+extend@~3.0.0, extend@~3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444"
external-editor@^2.0.4:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.0.4.tgz#1ed9199da9cbfe2ef2f7a31b2fde8b0d12368972"
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.0.5.tgz#52c249a3981b9ba187c7cacf5beb50bf1d91a6bc"
dependencies:
iconv-lite "^0.4.17"
jschardet "^1.4.2"
- tmp "^0.0.31"
+ tmp "^0.0.33"
extglob@^0.3.1:
version "0.3.2"
@@ -2965,18 +2870,18 @@ extglob@^0.3.1:
dependencies:
is-extglob "^1.0.0"
-extglob@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/extglob/-/extglob-1.1.0.tgz#0678b4e2ce45c0e4e50f5e5eafb1b0dab5b4e424"
+extglob@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.2.tgz#3290f46208db1b2e8eb8be0c94ed9e6ad80edbe2"
dependencies:
array-unique "^0.3.2"
- define-property "^0.2.5"
- expand-brackets "^2.0.1"
+ define-property "^1.0.0"
+ expand-brackets "^2.1.4"
extend-shallow "^2.0.1"
- fragment-cache "^0.2.0"
+ fragment-cache "^0.2.1"
regex-not "^1.0.0"
snapdragon "^0.8.1"
- to-regex "^2.1.0"
+ to-regex "^3.0.1"
extract-text-webpack-plugin@3.0.1:
version "3.0.1"
@@ -3025,7 +2930,7 @@ fb-watchman@^2.0.0:
dependencies:
bser "^2.0.0"
-fbjs@^0.8.16:
+fbjs@^0.8.16, fbjs@^0.8.9:
version "0.8.16"
resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.16.tgz#5e67432f550dc41b572bf55847b8aca64e5337db"
dependencies:
@@ -3037,18 +2942,6 @@ fbjs@^0.8.16:
setimmediate "^1.0.5"
ua-parser-js "^0.7.9"
-fbjs@^0.8.9:
- version "0.8.14"
- resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.14.tgz#d1dbe2be254c35a91e09f31f9cd50a40b2a0ed1c"
- dependencies:
- core-js "^1.0.0"
- isomorphic-fetch "^2.1.1"
- loose-envify "^1.0.0"
- object-assign "^4.1.0"
- promise "^7.1.1"
- setimmediate "^1.0.5"
- ua-parser-js "^0.7.9"
-
figures@^1.7.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e"
@@ -3080,10 +2973,14 @@ fileset@^2.0.2:
glob "^7.0.3"
minimatch "^3.0.3"
-filesize@3.5.10, filesize@^3.5.9:
+filesize@3.5.10:
version "3.5.10"
resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.5.10.tgz#fc8fa23ddb4ef9e5e0ab6e1e64f679a24a56761f"
+filesize@^3.5.9:
+ version "3.5.11"
+ resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.5.11.tgz#1919326749433bb3cf77368bd158caabcc19e9ee"
+
fill-range@^2.1.0:
version "2.2.3"
resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723"
@@ -3103,15 +3000,15 @@ fill-range@^4.0.0:
repeat-string "^1.6.1"
to-regex-range "^2.1.0"
-finalhandler@~1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.0.4.tgz#18574f2e7c4b98b8ae3b230c21f201f31bdb3fb7"
+finalhandler@1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.0.tgz#ce0b6855b45853e791b2fcc680046d88253dd7f5"
dependencies:
- debug "2.6.8"
+ debug "2.6.9"
encodeurl "~1.0.1"
escape-html "~1.0.3"
on-finished "~2.3.0"
- parseurl "~1.3.1"
+ parseurl "~1.3.2"
statuses "~1.3.1"
unpipe "~1.0.0"
@@ -3137,8 +3034,8 @@ find-up@^2.0.0, find-up@^2.1.0:
locate-path "^2.0.0"
flat-cache@^1.2.1:
- version "1.2.2"
- resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.2.2.tgz#fa86714e72c21db88601761ecf2f555d1abc6b96"
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481"
dependencies:
circular-json "^0.3.1"
del "^2.0.2"
@@ -3179,19 +3076,27 @@ form-data@~2.1.1:
combined-stream "^1.0.5"
mime-types "^2.1.12"
-forwarded@~0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.0.tgz#19ef9874c4ae1c297bcf078fde63a09b66a84363"
+form-data@~2.3.1:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.1.tgz#6fb94fbd71885306d73d15cc497fe4cc4ecd44bf"
+ dependencies:
+ asynckit "^0.4.0"
+ combined-stream "^1.0.5"
+ mime-types "^2.1.12"
+
+forwarded@~0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84"
-fragment-cache@^0.2.0, fragment-cache@^0.2.1:
+fragment-cache@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19"
dependencies:
map-cache "^0.2.2"
-fresh@0.5.0:
- version "0.5.0"
- resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.0.tgz#f474ca5e6a9246d6fd8e0953cfa9b9c805afa78e"
+fresh@0.5.2:
+ version "0.5.2"
+ resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
fs-extra@0.30.0:
version "0.30.0"
@@ -3204,11 +3109,11 @@ fs-extra@0.30.0:
rimraf "^2.2.8"
fs-extra@^4.0.0:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.1.tgz#7fc0c6c8957f983f57f306a24e5b9ddd8d0dd880"
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.2.tgz#f91704c53d1b461f893452b0c307d9997647ab6b"
dependencies:
graceful-fs "^4.1.2"
- jsonfile "^3.0.0"
+ jsonfile "^4.0.0"
universalify "^0.1.0"
fs.realpath@^1.0.0:
@@ -3239,11 +3144,11 @@ fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2:
mkdirp ">=0.5 0"
rimraf "2"
-function-bind@^1.0.2, function-bind@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771"
+function-bind@^1.0.2, function-bind@^1.1.0, function-bind@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
-function.prototype.name@^1.0.0:
+function.prototype.name@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.0.3.tgz#0099ae5572e9dd6f03c97d023fd92bcc5e639eac"
dependencies:
@@ -3284,7 +3189,7 @@ get-stream@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
-get-value@^2.0.3, get-value@^2.0.5, get-value@^2.0.6:
+get-value@^2.0.3, get-value@^2.0.6:
version "2.0.6"
resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
@@ -3336,7 +3241,7 @@ global-prefix@^1.0.1:
is-windows "^1.0.1"
which "^1.2.14"
-globals@^9.0.0, globals@^9.17.0, globals@^9.18.0:
+globals@^9.17.0, globals@^9.18.0:
version "9.18.0"
resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"
@@ -3403,8 +3308,8 @@ handlebars@2.0.0:
uglify-js "~2.3"
handlebars@^4.0.3:
- version "4.0.10"
- resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.10.tgz#3d30c718b09a3d96f23ea4cc1f403c4d3ba9ff4f"
+ version "4.0.11"
+ resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.11.tgz#630a35dfe0294bc281edae6ffc5d329fc7982dcc"
dependencies:
async "^1.4.0"
optimist "^0.6.1"
@@ -3416,6 +3321,10 @@ har-schema@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e"
+har-schema@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
+
har-validator@~4.2.1:
version "4.2.1"
resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a"
@@ -3423,6 +3332,13 @@ har-validator@~4.2.1:
ajv "^4.9.1"
har-schema "^1.0.5"
+har-validator@~5.0.3:
+ version "5.0.3"
+ resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd"
+ dependencies:
+ ajv "^5.1.0"
+ har-schema "^2.0.0"
+
has-ansi@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
@@ -3449,10 +3365,25 @@ has-value@^0.3.1:
has-values "^0.1.4"
isobject "^2.0.0"
+has-value@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177"
+ dependencies:
+ get-value "^2.0.6"
+ has-values "^1.0.0"
+ isobject "^3.0.0"
+
has-values@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771"
+has-values@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f"
+ dependencies:
+ is-number "^3.0.0"
+ kind-of "^4.0.0"
+
has@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28"
@@ -3465,6 +3396,13 @@ hash-base@^2.0.0:
dependencies:
inherits "^2.0.1"
+hash-base@^3.0.0:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918"
+ dependencies:
+ inherits "^2.0.1"
+ safe-buffer "^5.0.1"
+
hash.js@^1.0.0, hash.js@^1.0.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846"
@@ -3472,7 +3410,7 @@ hash.js@^1.0.0, hash.js@^1.0.3:
inherits "^2.0.3"
minimalistic-assert "^1.0.0"
-hawk@~3.1.3:
+hawk@3.1.3, hawk@~3.1.3:
version "3.1.3"
resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4"
dependencies:
@@ -3481,6 +3419,15 @@ hawk@~3.1.3:
hoek "2.x.x"
sntp "1.x.x"
+hawk@~6.0.2:
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038"
+ dependencies:
+ boom "4.x.x"
+ cryptiles "3.x.x"
+ hoek "4.x.x"
+ sntp "2.x.x"
+
he@1.1.x:
version "1.1.1"
resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd"
@@ -3506,6 +3453,10 @@ hoek@2.x.x:
version "2.16.3"
resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed"
+hoek@4.x.x:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.0.tgz#72d9d0754f7fe25ca2d01ad8f8f9a9449a89526d"
+
hoist-non-react-statics@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-1.2.0.tgz#aa448cf0986d55cc40773b17174b7dd066cb7cfb"
@@ -3545,8 +3496,8 @@ html-comment-regex@^1.1.0:
resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.1.tgz#668b93776eaae55ebde8f3ad464b307a4963625e"
html-encoding-sniffer@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.1.tgz#79bf7a785ea495fe66165e734153f363ff5437da"
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8"
dependencies:
whatwg-encoding "^1.0.1"
@@ -3555,8 +3506,8 @@ html-entities@1.2.1, html-entities@^1.2.0:
resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f"
html-minifier@^3.2.3:
- version "3.5.3"
- resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.3.tgz#4a275e3b1a16639abb79b4c11191ff0d0fcf1ab9"
+ version "3.5.6"
+ resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.6.tgz#7e4e661a09999599c7d8e8a2b8d7fb7430bb5c3e"
dependencies:
camel-case "3.0.x"
clean-css "4.1.x"
@@ -3565,7 +3516,7 @@ html-minifier@^3.2.3:
ncname "1.0.x"
param-case "2.1.x"
relateurl "0.2.x"
- uglify-js "3.0.x"
+ uglify-js "3.1.x"
html-webpack-plugin@2.30.1:
version "2.30.1"
@@ -3602,7 +3553,7 @@ http-deceiver@^1.2.7:
version "1.2.7"
resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87"
-http-errors@~1.6.1, http-errors@~1.6.2:
+http-errors@1.6.2, http-errors@~1.6.2:
version "1.6.2"
resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736"
dependencies:
@@ -3611,6 +3562,10 @@ http-errors@~1.6.1, http-errors@~1.6.2:
setprototypeof "1.0.3"
statuses ">= 1.3.1 < 2"
+http-parser-js@>=0.4.0:
+ version "0.4.9"
+ resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.9.tgz#ea1a04fb64adff0242e9974f297dd4c3cad271e1"
+
http-proxy-middleware@~0.17.4:
version "0.17.4"
resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz#642e8848851d66f09d4f124912846dbaeb41b833"
@@ -3635,17 +3590,21 @@ http-signature@~1.1.0:
jsprim "^1.2.2"
sshpk "^1.7.0"
+http-signature@~1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
+ dependencies:
+ assert-plus "^1.0.0"
+ jsprim "^1.2.2"
+ sshpk "^1.7.0"
+
https-browserify@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82"
-iconv-lite@0.4.13:
- version "0.4.13"
- resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.13.tgz#1f88aba4ab0b1508e8312acc39345f36e992e2f2"
-
-iconv-lite@^0.4.17, iconv-lite@~0.4.13:
- version "0.4.18"
- resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.18.tgz#23d8656b16aae6742ac29732ea8f0336a4789cf2"
+iconv-lite@0.4.19, iconv-lite@^0.4.17, iconv-lite@~0.4.13:
+ version "0.4.19"
+ resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b"
icss-replace-symbols@^1.1.0:
version "1.1.0"
@@ -3662,8 +3621,8 @@ ieee754@^1.1.4:
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4"
ignore@^3.3.3:
- version "3.3.5"
- resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.5.tgz#c4e715455f6073a8d7e5dae72d2fc9d71663dba6"
+ version "3.3.7"
+ resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.7.tgz#612289bfb3c220e186a58118618d5be8c1bab021"
import-local@^0.1.1:
version "0.1.1"
@@ -3758,8 +3717,8 @@ internal-ip@1.2.0:
meow "^3.3.0"
interpret@^1.0.0:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.3.tgz#cbc35c62eeee73f19ab7b10a801511401afc0f90"
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.4.tgz#820cdd588b868ffb191a809506d6c9c8f212b1b0"
intl-format-cache@^2.0.5:
version "2.0.5"
@@ -3781,7 +3740,7 @@ intl-relativeformat@2.1.0, intl-relativeformat@^2.0.0:
dependencies:
intl-messageformat "^2.0.0"
-invariant@^2.0.0, invariant@^2.1.1, invariant@^2.2.0, invariant@^2.2.1, invariant@^2.2.2:
+invariant@^2.0.0, invariant@^2.1.1, invariant@^2.2.1, invariant@^2.2.2:
version "2.2.2"
resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360"
dependencies:
@@ -3795,9 +3754,9 @@ ip@^1.1.0, ip@^1.1.5:
version "1.1.5"
resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a"
-ipaddr.js@1.4.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.4.0.tgz#296aca878a821816e5b85d0a285a99bcff4582f0"
+ipaddr.js@1.5.2:
+ version "1.5.2"
+ resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.5.2.tgz#d4b505bde9946987ccf0fc58d9010ff9607e3fa0"
is-absolute-url@^2.0.0:
version "2.1.0"
@@ -3820,8 +3779,8 @@ is-binary-path@^1.0.0:
binary-extensions "^1.0.0"
is-buffer@^1.1.5:
- version "1.1.5"
- resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc"
+ version "1.1.6"
+ resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
is-builtin-module@^1.0.0:
version "1.0.0"
@@ -3967,7 +3926,7 @@ is-plain-obj@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e"
-is-plain-object@^2.0.1:
+is-plain-object@^2.0.1, is-plain-object@^2.0.3:
version "2.0.4"
resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
dependencies:
@@ -4051,7 +4010,7 @@ isexe@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
-isobject@^2.0.0, isobject@^2.1.0:
+isobject@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
dependencies:
@@ -4073,17 +4032,17 @@ isstream@~0.1.2:
resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
istanbul-api@^1.1.1:
- version "1.1.11"
- resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.1.11.tgz#fcc0b461e2b3bda71e305155138238768257d9de"
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.2.1.tgz#0c60a0515eb11c7d65c6b50bba2c6e999acd8620"
dependencies:
async "^2.1.4"
fileset "^2.0.2"
istanbul-lib-coverage "^1.1.1"
- istanbul-lib-hook "^1.0.7"
- istanbul-lib-instrument "^1.7.4"
- istanbul-lib-report "^1.1.1"
- istanbul-lib-source-maps "^1.2.1"
- istanbul-reports "^1.1.1"
+ istanbul-lib-hook "^1.1.0"
+ istanbul-lib-instrument "^1.9.1"
+ istanbul-lib-report "^1.1.2"
+ istanbul-lib-source-maps "^1.2.2"
+ istanbul-reports "^1.1.3"
js-yaml "^3.7.0"
mkdirp "^0.5.1"
once "^1.4.0"
@@ -4092,46 +4051,46 @@ istanbul-lib-coverage@^1.0.1, istanbul-lib-coverage@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz#73bfb998885299415c93d38a3e9adf784a77a9da"
-istanbul-lib-hook@^1.0.7:
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.0.7.tgz#dd6607f03076578fe7d6f2a630cf143b49bacddc"
+istanbul-lib-hook@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz#8538d970372cb3716d53e55523dd54b557a8d89b"
dependencies:
append-transform "^0.4.0"
-istanbul-lib-instrument@^1.4.2, istanbul-lib-instrument@^1.7.2, istanbul-lib-instrument@^1.7.4:
- version "1.7.4"
- resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.7.4.tgz#e9fd920e4767f3d19edc765e2d6b3f5ccbd0eea8"
+istanbul-lib-instrument@^1.4.2, istanbul-lib-instrument@^1.7.5, istanbul-lib-instrument@^1.9.1:
+ version "1.9.1"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.9.1.tgz#250b30b3531e5d3251299fdd64b0b2c9db6b558e"
dependencies:
babel-generator "^6.18.0"
babel-template "^6.16.0"
babel-traverse "^6.18.0"
babel-types "^6.18.0"
- babylon "^6.17.4"
+ babylon "^6.18.0"
istanbul-lib-coverage "^1.1.1"
semver "^5.3.0"
-istanbul-lib-report@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz#f0e55f56655ffa34222080b7a0cd4760e1405fc9"
+istanbul-lib-report@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.2.tgz#922be27c13b9511b979bd1587359f69798c1d425"
dependencies:
istanbul-lib-coverage "^1.1.1"
mkdirp "^0.5.1"
path-parse "^1.0.5"
supports-color "^3.1.2"
-istanbul-lib-source-maps@^1.1.0, istanbul-lib-source-maps@^1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.1.tgz#a6fe1acba8ce08eebc638e572e294d267008aa0c"
+istanbul-lib-source-maps@^1.1.0, istanbul-lib-source-maps@^1.2.2:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.2.tgz#750578602435f28a0c04ee6d7d9e0f2960e62c1c"
dependencies:
- debug "^2.6.3"
+ debug "^3.1.0"
istanbul-lib-coverage "^1.1.1"
mkdirp "^0.5.1"
rimraf "^2.6.1"
source-map "^0.5.3"
-istanbul-reports@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.1.1.tgz#042be5c89e175bc3f86523caab29c014e77fee4e"
+istanbul-reports@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.1.3.tgz#3b9e1e8defb6d18b1d425da8e8b32c5a163f2d10"
dependencies:
handlebars "^4.0.3"
@@ -4365,21 +4324,14 @@ jquery@2.2.0:
resolved "https://registry.yarnpkg.com/jquery/-/jquery-2.2.0.tgz#d0e84ebbf199da51bf7ec39307f19b35754e9cba"
js-base64@^2.1.9:
- version "2.1.9"
- resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.1.9.tgz#f0e80ae039a4bd654b5f281fc93f04a914a7fcce"
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.3.2.tgz#a79a923666372b580f8e27f51845c6f7e8fbfbaf"
js-tokens@^3.0.0, js-tokens@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
-js-yaml@^3.4.3, js-yaml@^3.7.0:
- version "3.9.1"
- resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.9.1.tgz#08775cebdfdd359209f0d2acd383c8f86a6904a0"
- dependencies:
- argparse "^1.0.7"
- esprima "^4.0.0"
-
-js-yaml@^3.9.1:
+js-yaml@^3.4.3, js-yaml@^3.7.0, js-yaml@^3.9.1:
version "3.10.0"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc"
dependencies:
@@ -4398,8 +4350,8 @@ jsbn@~0.1.0:
resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
jschardet@^1.4.2:
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/jschardet/-/jschardet-1.5.1.tgz#c519f629f86b3a5bedba58a88d311309eec097f9"
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/jschardet/-/jschardet-1.6.0.tgz#c7d1a71edcff2839db2f9ec30fc5d5ebd3c1a678"
jsdom@^9.12.0:
version "9.12.0"
@@ -4469,9 +4421,9 @@ jsonfile@^2.1.0:
optionalDependencies:
graceful-fs "^4.1.6"
-jsonfile@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-3.0.1.tgz#a5ecc6f65f53f662c4415c7675a0331d0992ec66"
+jsonfile@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
optionalDependencies:
graceful-fs "^4.1.6"
@@ -4514,9 +4466,13 @@ kind-of@^4.0.0:
dependencies:
is-buffer "^1.1.5"
-kind-of@^5.0.0:
- version "5.0.2"
- resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.0.2.tgz#f57bec933d9a2209ffa96c5c08343607b7035fda"
+kind-of@^5.0.0, kind-of@^5.0.2:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d"
+
+kind-of@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.0.tgz#3606e9e2fa960e7ddaa8898c03804e47e5d66644"
klaw@^1.0.0:
version "1.3.1"
@@ -4528,7 +4484,7 @@ lazy-cache@^1.0.3:
version "1.0.4"
resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e"
-lazy-cache@^2.0.1, lazy-cache@^2.0.2:
+lazy-cache@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-2.0.2.tgz#b9190a4f913354694840859f8a8f7084d8822264"
dependencies:
@@ -4681,14 +4637,6 @@ lodash._getnative@^3.0.0:
version "3.9.1"
resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5"
-lodash.assignin@^4.0.9:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/lodash.assignin/-/lodash.assignin-4.2.0.tgz#ba8df5fb841eb0a3e8044232b0e263a8dc6a28a2"
-
-lodash.bind@^4.1.4:
- version "4.2.1"
- resolved "https://registry.yarnpkg.com/lodash.bind/-/lodash.bind-4.2.1.tgz#7ae3017e939622ac31b7d7d7dcb1b34db1690d35"
-
lodash.camelcase@^4.3.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6"
@@ -4697,21 +4645,9 @@ lodash.cond@^4.3.0:
version "4.5.2"
resolved "https://registry.yarnpkg.com/lodash.cond/-/lodash.cond-4.5.2.tgz#f471a1da486be60f6ab955d17115523dd1d255d5"
-lodash.defaults@^4.0.1:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c"
-
-lodash.filter@^4.4.0, lodash.filter@^4.6.0:
- version "4.6.0"
- resolved "https://registry.yarnpkg.com/lodash.filter/-/lodash.filter-4.6.0.tgz#668b1d4981603ae1cc5a6fa760143e480b4c4ace"
-
-lodash.flatten@^4.2.0:
+lodash.flattendeep@^4.4.0:
version "4.4.0"
- resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f"
-
-lodash.foreach@^4.3.0:
- version "4.5.0"
- resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53"
+ resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2"
lodash.isarguments@^3.0.0:
version "3.1.0"
@@ -4721,14 +4657,6 @@ lodash.isarray@^3.0.0:
version "3.0.4"
resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55"
-lodash.isnil@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/lodash.isnil/-/lodash.isnil-4.0.0.tgz#49e28cd559013458c814c5479d3c663a21bfaa6c"
-
-lodash.isplainobject@^4.0.6:
- version "4.0.6"
- resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb"
-
lodash.keys@^3.1.2:
version "3.1.2"
resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a"
@@ -4737,42 +4665,10 @@ lodash.keys@^3.1.2:
lodash.isarguments "^3.0.0"
lodash.isarray "^3.0.0"
-lodash.map@^4.4.0:
- version "4.6.0"
- resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3"
-
lodash.memoize@^4.1.2:
version "4.1.2"
resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
-lodash.merge@^4.4.0:
- version "4.6.0"
- resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.0.tgz#69884ba144ac33fe699737a6086deffadd0f89c5"
-
-lodash.omitby@^4.6.0:
- version "4.6.0"
- resolved "https://registry.yarnpkg.com/lodash.omitby/-/lodash.omitby-4.6.0.tgz#5c15ff4754ad555016b53c041311e8f079204791"
-
-lodash.pick@^4.2.1:
- version "4.4.0"
- resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3"
-
-lodash.range@^3.2.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/lodash.range/-/lodash.range-3.2.0.tgz#f461e588f66683f7eadeade513e38a69a565a15d"
-
-lodash.reduce@^4.4.0:
- version "4.6.0"
- resolved "https://registry.yarnpkg.com/lodash.reduce/-/lodash.reduce-4.6.0.tgz#f1ab6b839299ad48f784abbf476596f03b914d3b"
-
-lodash.reject@^4.4.0:
- version "4.6.0"
- resolved "https://registry.yarnpkg.com/lodash.reject/-/lodash.reject-4.6.0.tgz#80d6492dc1470864bbf583533b651f42a9f52415"
-
-lodash.some@^4.4.0:
- version "4.6.0"
- resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d"
-
lodash.unescape@4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/lodash.unescape/-/lodash.unescape-4.0.1.tgz#bf2249886ce514cda112fae9218cdc065211fc9c"
@@ -4781,7 +4677,7 @@ lodash.uniq@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
-lodash@4.17.4, lodash@^4.14.0, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0:
+lodash@4.17.4, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0:
version "4.17.4"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
@@ -4860,17 +4756,23 @@ map-obj@^1.0.0, map-obj@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d"
-map-visit@^0.1.5:
- version "0.1.5"
- resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-0.1.5.tgz#dbe43927ce5525b80dfc1573a44d68c51f26816b"
+map-visit@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f"
dependencies:
- lazy-cache "^2.0.1"
- object-visit "^0.3.4"
+ object-visit "^1.0.0"
math-expression-evaluator@^1.2.14:
version "1.2.17"
resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz#de819fdbcd84dccd8fae59c6aeb79615b9d266ac"
+md5.js@^1.3.4:
+ version "1.3.4"
+ resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz#e9bdbde94a20a5ac18b04340fc5764d5b09d901d"
+ dependencies:
+ hash-base "^3.0.0"
+ inherits "^2.0.1"
+
media-typer@0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
@@ -4934,47 +4836,47 @@ micromatch@^2.1.5, micromatch@^2.3.11:
regex-cache "^0.4.2"
micromatch@^3.0.3:
- version "3.0.4"
- resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.0.4.tgz#1543f1d04813447ac852001c5f5a933401786d1d"
+ version "3.1.4"
+ resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.4.tgz#bb812e741a41f982c854e42b421a7eac458796f4"
dependencies:
arr-diff "^4.0.0"
array-unique "^0.3.2"
- braces "^2.2.2"
+ braces "^2.3.0"
define-property "^1.0.0"
extend-shallow "^2.0.1"
- extglob "^1.1.0"
+ extglob "^2.0.2"
fragment-cache "^0.2.1"
- kind-of "^4.0.0"
- nanomatch "^1.2.0"
- object.pick "^1.2.0"
+ kind-of "^6.0.0"
+ nanomatch "^1.2.5"
+ object.pick "^1.3.0"
regex-not "^1.0.0"
snapdragon "^0.8.1"
to-regex "^3.0.1"
miller-rabin@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.0.tgz#4a62fb1d42933c05583982f4c716f6fb9e6c6d3d"
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d"
dependencies:
bn.js "^4.0.0"
brorand "^1.0.1"
-"mime-db@>= 1.29.0 < 2", mime-db@~1.29.0:
- version "1.29.0"
- resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.29.0.tgz#48d26d235589651704ac5916ca06001914266878"
+"mime-db@>= 1.30.0 < 2":
+ version "1.31.0"
+ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.31.0.tgz#a49cd8f3ebf3ed1a482b60561d9105ad40ca74cb"
-mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.15, mime-types@~2.1.7:
- version "2.1.16"
- resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.16.tgz#2b858a52e5ecd516db897ac2be87487830698e23"
- dependencies:
- mime-db "~1.29.0"
+mime-db@~1.30.0:
+ version "1.30.0"
+ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01"
-mime@1.3.4:
- version "1.3.4"
- resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53"
+mime-types@^2.1.12, mime-types@~2.1.15, mime-types@~2.1.16, mime-types@~2.1.17, mime-types@~2.1.7:
+ version "2.1.17"
+ resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a"
+ dependencies:
+ mime-db "~1.30.0"
-mime@^1.3.4:
- version "1.3.6"
- resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.6.tgz#591d84d3653a6b0b4a3b9df8de5aa8108e72e5e0"
+mime@1.4.1, mime@^1.3.4:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6"
mimic-fn@^1.0.0:
version "1.1.0"
@@ -5012,7 +4914,7 @@ minimist@~0.0.1:
version "0.0.10"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf"
-mixin-deep@^1.1.3:
+mixin-deep@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.2.0.tgz#d02b8c6f8b6d4b8f5982d3fd009c4919851c3fe2"
dependencies:
@@ -5045,22 +4947,21 @@ mute-stream@0.0.7:
resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
nan@^2.3.0:
- version "2.6.2"
- resolved "https://registry.yarnpkg.com/nan/-/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45"
+ version "2.7.0"
+ resolved "https://registry.yarnpkg.com/nan/-/nan-2.7.0.tgz#d95bf721ec877e08db276ed3fc6eb78f9083ad46"
-nanomatch@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.0.tgz#76fdb3d4ae7617e37719e7a4047b840857c0cb1c"
+nanomatch@^1.2.5:
+ version "1.2.5"
+ resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.5.tgz#5c9ab02475c76676275731b0bf0a7395c624a9c4"
dependencies:
arr-diff "^4.0.0"
array-unique "^0.3.2"
define-property "^1.0.0"
extend-shallow "^2.0.1"
fragment-cache "^0.2.1"
- is-extglob "^2.1.1"
is-odd "^1.0.0"
- kind-of "^4.0.0"
- object.pick "^1.2.0"
+ kind-of "^5.0.2"
+ object.pick "^1.3.0"
regex-not "^1.0.0"
snapdragon "^0.8.1"
to-regex "^3.0.1"
@@ -5075,19 +4976,27 @@ ncname@1.0.x:
dependencies:
xml-char-classes "^1.0.0"
+nearley@^2.7.10:
+ version "2.11.0"
+ resolved "https://registry.yarnpkg.com/nearley/-/nearley-2.11.0.tgz#5e626c79a6cd2f6ab9e7e5d5805e7668967757ae"
+ dependencies:
+ nomnom "~1.6.2"
+ railroad-diagrams "^1.0.0"
+ randexp "^0.4.2"
+
negotiator@0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9"
no-case@^2.2.0:
- version "2.3.1"
- resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.1.tgz#7aeba1c73a52184265554b7dc03baf720df80081"
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac"
dependencies:
lower-case "^1.1.1"
node-fetch@^1.0.1:
- version "1.7.2"
- resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.2.tgz#c54e9aac57e432875233525f3c891c4159ffefd7"
+ version "1.7.3"
+ resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef"
dependencies:
encoding "^0.1.11"
is-stream "^1.0.1"
@@ -5138,19 +5047,27 @@ node-notifier@^5.0.2:
which "^1.2.12"
node-pre-gyp@^0.6.36:
- version "0.6.36"
- resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.36.tgz#db604112cb74e0d477554e9b505b17abddfab786"
+ version "0.6.38"
+ resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.38.tgz#e92a20f83416415bb4086f6d1fb78b3da73d113d"
dependencies:
+ hawk "3.1.3"
mkdirp "^0.5.1"
nopt "^4.0.1"
npmlog "^4.0.2"
rc "^1.1.7"
- request "^2.81.0"
+ request "2.81.0"
rimraf "^2.6.1"
semver "^5.3.0"
tar "^2.2.1"
tar-pack "^3.4.0"
+nomnom@~1.6.2:
+ version "1.6.2"
+ resolved "https://registry.yarnpkg.com/nomnom/-/nomnom-1.6.2.tgz#84a66a260174408fc5b77a18f888eccc44fb6971"
+ dependencies:
+ colors "0.5.x"
+ underscore "~1.4.4"
+
nopt@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d"
@@ -5230,10 +5147,10 @@ number-is-nan@^1.0.0:
resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
"nwmatcher@>= 1.3.9 < 2.0.0":
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/nwmatcher/-/nwmatcher-1.4.1.tgz#7ae9b07b0ea804db7e25f05cb5fe4097d4e4949f"
+ version "1.4.3"
+ resolved "https://registry.yarnpkg.com/nwmatcher/-/nwmatcher-1.4.3.tgz#64348e3b3d80f035b40ac11563d278f8b72db89c"
-oauth-sign@~0.8.1:
+oauth-sign@~0.8.1, oauth-sign@~0.8.2:
version "0.8.2"
resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"
@@ -5257,15 +5174,11 @@ object-keys@^1.0.10, object-keys@^1.0.8:
version "1.0.11"
resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d"
-object-values@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/object-values/-/object-values-1.0.0.tgz#72af839630119e5b98c3b02bb8c27e3237158105"
-
-object-visit@^0.3.4:
- version "0.3.4"
- resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-0.3.4.tgz#ae15cf86f0b2fdd551771636448452c54c3da829"
+object-visit@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb"
dependencies:
- isobject "^2.0.0"
+ isobject "^3.0.0"
object.assign@^4.0.4:
version "4.0.4"
@@ -5291,11 +5204,11 @@ object.omit@^2.0.0:
for-own "^0.1.4"
is-extendable "^0.1.1"
-object.pick@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.2.0.tgz#b5392bee9782da6d9fb7d6afaf539779f1234c2b"
+object.pick@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747"
dependencies:
- isobject "^2.1.0"
+ isobject "^3.0.1"
object.values@^1.0.4:
version "1.0.4"
@@ -5407,7 +5320,7 @@ os-locale@^2.0.0:
lcid "^1.0.0"
mem "^1.1.0"
-os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.1:
+os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
@@ -5483,9 +5396,15 @@ parse5@^1.5.1:
version "1.5.1"
resolved "https://registry.yarnpkg.com/parse5/-/parse5-1.5.1.tgz#9b7f3b0de32be78dc2401b17573ccaf0f6f59d94"
-parseurl@~1.3.1:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.1.tgz#c8ab8c9223ba34888aa64a297b28853bec18da56"
+parse5@^3.0.1:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/parse5/-/parse5-3.0.2.tgz#05eff57f0ef4577fb144a79f8b9a967a6cc44510"
+ dependencies:
+ "@types/node" "^6.0.46"
+
+parseurl@~1.3.2:
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3"
pascalcase@^0.1.1:
version "0.1.1"
@@ -5540,8 +5459,8 @@ path-type@^2.0.0:
pify "^2.0.0"
pbkdf2@^3.0.3:
- version "3.0.13"
- resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.13.tgz#c37d295531e786b1da3e3eadc840426accb0ae25"
+ version "3.0.14"
+ resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.14.tgz#a35e13c64799b06ce15320f459c230e68e73bade"
dependencies:
create-hash "^1.1.2"
create-hmac "^1.1.4"
@@ -5553,6 +5472,10 @@ performance-now@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5"
+performance-now@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
+
pify@^2.0.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
@@ -5868,15 +5791,15 @@ postcss-zindex@^2.0.1:
uniqs "^2.0.0"
postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.2, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.2.16:
- version "5.2.17"
- resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.17.tgz#cf4f597b864d65c8a492b2eabe9d706c879c388b"
+ version "5.2.18"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz#badfa1497d46244f6390f58b319830d9107853c5"
dependencies:
chalk "^1.1.3"
js-base64 "^2.1.9"
source-map "^0.5.6"
supports-color "^3.2.3"
-postcss@^6.0.0, postcss@^6.0.13:
+postcss@^6.0.0, postcss@^6.0.1, postcss@^6.0.13:
version "6.0.13"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.13.tgz#b9ecab4ee00c89db3ec931145bd9590bbf3f125f"
dependencies:
@@ -5884,14 +5807,6 @@ postcss@^6.0.0, postcss@^6.0.13:
source-map "^0.6.1"
supports-color "^4.4.0"
-postcss@^6.0.1:
- version "6.0.9"
- resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.9.tgz#54819766784a51c65b1ec4d54c2f93765438c35a"
- dependencies:
- chalk "^2.1.0"
- source-map "^0.5.6"
- supports-color "^4.2.1"
-
prelude-ls@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
@@ -5922,11 +5837,7 @@ pretty-format@^21.2.1:
ansi-regex "^3.0.0"
ansi-styles "^3.2.0"
-private@^0.1.6:
- version "0.1.7"
- resolved "https://registry.yarnpkg.com/private/-/private-0.1.7.tgz#68ce5e8a1ef0a23bb570cc28537b5332aba63ef1"
-
-private@^0.1.7:
+private@^0.1.6, private@^0.1.7:
version "0.1.8"
resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff"
@@ -5948,7 +5859,7 @@ promise@^7.1.1:
dependencies:
asap "~2.0.3"
-prop-types@15.6.0:
+prop-types@15.6.0, prop-types@15.x, prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.5.6, prop-types@^15.5.8, prop-types@^15.6.0:
version "15.6.0"
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.0.tgz#ceaf083022fc46b4a35f69e13ef75aed0d639856"
dependencies:
@@ -5956,19 +5867,12 @@ prop-types@15.6.0:
loose-envify "^1.3.1"
object-assign "^4.1.1"
-prop-types@15.x, prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.5.6, prop-types@^15.5.8:
- version "15.5.10"
- resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.10.tgz#2797dfc3126182e3a95e3dfbb2e893ddd7456154"
- dependencies:
- fbjs "^0.8.9"
- loose-envify "^1.3.1"
-
-proxy-addr@~1.1.5:
- version "1.1.5"
- resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-1.1.5.tgz#71c0ee3b102de3f202f3b64f608d173fcba1a918"
+proxy-addr@~2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.2.tgz#6571504f47bb988ec8180253f85dd7e14952bdec"
dependencies:
- forwarded "~0.1.0"
- ipaddr.js "1.4.0"
+ forwarded "~0.1.2"
+ ipaddr.js "1.5.2"
prr@~0.0.0:
version "0.0.0"
@@ -5997,12 +5901,12 @@ punycode@^1.2.4, punycode@^1.4.1:
resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
q@^1.1.2:
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/q/-/q-1.5.0.tgz#dd01bac9d06d30e6f219aecb8253ee9ebdc308f1"
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7"
-qs@6.5.0:
- version "6.5.0"
- resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.0.tgz#8d04954d364def3efc55b5a0793e1e2c8b1e6e49"
+qs@6.5.1, qs@~6.5.1:
+ version "6.5.1"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8"
qs@~6.4.0:
version "6.4.0"
@@ -6031,6 +5935,23 @@ querystringify@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-1.0.0.tgz#6286242112c5b712fa654e526652bf6a13ff05cb"
+raf@^3.3.2:
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.0.tgz#a28876881b4bc2ca9117d4138163ddb80f781575"
+ dependencies:
+ performance-now "^2.1.0"
+
+railroad-diagrams@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz#eb7e6267548ddedfb899c1b90e57374559cddb7e"
+
+randexp@^0.4.2:
+ version "0.4.6"
+ resolved "https://registry.yarnpkg.com/randexp/-/randexp-0.4.6.tgz#e986ad5e5e31dae13ddd6f7b3019aa7c87f60ca3"
+ dependencies:
+ discontinuous-range "1.0.0"
+ ret "~0.1.10"
+
randomatic@^1.1.3:
version "1.1.7"
resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c"
@@ -6048,6 +5969,15 @@ range-parser@^1.0.3, range-parser@~1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e"
+raw-body@2.3.2:
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89"
+ dependencies:
+ bytes "3.0.0"
+ http-errors "1.6.2"
+ iconv-lite "0.4.19"
+ unpipe "1.0.0"
+
rc-align@2.x:
version "2.3.4"
resolved "https://registry.yarnpkg.com/rc-align/-/rc-align-2.3.4.tgz#d83bdab7560f0142e72a3de1d495dab6ba225249"
@@ -6073,8 +6003,8 @@ rc-tooltip@3.5.0:
rc-trigger "1.x"
rc-trigger@1.x:
- version "1.11.3"
- resolved "https://registry.yarnpkg.com/rc-trigger/-/rc-trigger-1.11.3.tgz#47b8b58e0863c2277e367b86f1cfa29eb612db56"
+ version "1.11.5"
+ resolved "https://registry.yarnpkg.com/rc-trigger/-/rc-trigger-1.11.5.tgz#f88f9f84e0e79f8e0ef1c8d1bf8ac2208b715620"
dependencies:
babel-runtime "6.x"
create-react-class "15.x"
@@ -6084,16 +6014,17 @@ rc-trigger@1.x:
rc-util "4.x"
rc-util@4.x:
- version "4.0.4"
- resolved "https://registry.yarnpkg.com/rc-util/-/rc-util-4.0.4.tgz#99813dd90aee7e29b64939a70ac176ead3f4ff39"
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/rc-util/-/rc-util-4.1.1.tgz#9350e9c00368b50cd8fbd91775cc1cf9e2ca72b2"
dependencies:
add-dom-event-listener "1.x"
babel-runtime "6.x"
+ prop-types "^15.5.10"
shallowequal "^0.2.2"
rc@^1.1.7:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.1.tgz#2e03e8e42ee450b8cb3dce65be1bf8974e1dfd95"
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.2.tgz#d8ce9cb57e8d64d9c7badd9876c7c34cbe3c7077"
dependencies:
deep-extend "~0.4.0"
ini "~1.3.0"
@@ -6124,14 +6055,14 @@ react-dev-utils@^3.0.0:
strip-ansi "3.0.1"
text-table "0.2.0"
-react-dom@15.6.2:
- version "15.6.2"
- resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-15.6.2.tgz#41cfadf693b757faf2708443a1d1fd5a02bef730"
+react-dom@16.0.0:
+ version "16.0.0"
+ resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.0.0.tgz#9cc3079c3dcd70d4c6e01b84aab2a7e34c303f58"
dependencies:
- fbjs "^0.8.9"
+ fbjs "^0.8.16"
loose-envify "^1.1.0"
- object-assign "^4.1.0"
- prop-types "^15.5.10"
+ object-assign "^4.1.1"
+ prop-types "^15.6.0"
react-draggable@3.0.3:
version "3.0.3"
@@ -6194,9 +6125,9 @@ react-redux@5.0.6:
loose-envify "^1.1.0"
prop-types "^15.5.10"
-react-router@3.0.5:
- version "3.0.5"
- resolved "https://registry.yarnpkg.com/react-router/-/react-router-3.0.5.tgz#c3b7873758045a8bbc9562aef4ff4bc8cce7c136"
+react-router@3.2.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/react-router/-/react-router-3.2.0.tgz#62b6279d589b70b34e265113e4c0a9261a02ed36"
dependencies:
create-react-class "^15.5.1"
history "^3.0.0"
@@ -6221,12 +6152,12 @@ react-side-effect@^1.1.0:
exenv "^1.2.1"
shallowequal "^1.0.1"
-react-test-renderer@15.6.2:
- version "15.6.2"
- resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-15.6.2.tgz#d0333434fc2c438092696ca770da5ed48037efa8"
+react-test-renderer@16.0.0, react-test-renderer@^16.0.0-0:
+ version "16.0.0"
+ resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.0.0.tgz#9fe7b8308f2f71f29fc356d4102086f131c9cb15"
dependencies:
- fbjs "^0.8.9"
- object-assign "^4.1.0"
+ fbjs "^0.8.16"
+ object-assign "^4.1.1"
react-virtualized@9.12.0:
version "9.12.0"
@@ -6238,15 +6169,14 @@ react-virtualized@9.12.0:
loose-envify "^1.3.0"
prop-types "^15.5.4"
-react@15.6.2:
- version "15.6.2"
- resolved "https://registry.yarnpkg.com/react/-/react-15.6.2.tgz#dba0434ab439cfe82f108f0f511663908179aa72"
+react@16.0.0:
+ version "16.0.0"
+ resolved "https://registry.yarnpkg.com/react/-/react-16.0.0.tgz#ce7df8f1941b036f02b2cca9dbd0cb1f0e855e2d"
dependencies:
- create-react-class "^15.6.0"
- fbjs "^0.8.9"
+ fbjs "^0.8.16"
loose-envify "^1.1.0"
- object-assign "^4.1.0"
- prop-types "^15.5.10"
+ object-assign "^4.1.1"
+ prop-types "^15.6.0"
read-pkg-up@^1.0.1:
version "1.0.1"
@@ -6355,8 +6285,8 @@ redux@3.7.2, redux@^3.6.0:
symbol-observable "^1.0.3"
regenerate@^1.2.1:
- version "1.3.2"
- resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.2.tgz#d1941c67bad437e1be76433add5b385f95b19260"
+ version "1.3.3"
+ resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.3.tgz#0c336d3980553d755c39b586ae3b20aa49c82b7f"
regenerator-runtime@^0.10.0, regenerator-runtime@^0.10.5:
version "0.10.5"
@@ -6366,24 +6296,19 @@ regenerator-runtime@^0.11.0:
version "0.11.0"
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz#7e54fe5b5ccd5d6624ea6255c3473be090b802e1"
-regenerator-transform@0.9.11:
- version "0.9.11"
- resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.9.11.tgz#3a7d067520cb7b7176769eb5ff868691befe1283"
+regenerator-transform@^0.10.0:
+ version "0.10.1"
+ resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd"
dependencies:
babel-runtime "^6.18.0"
babel-types "^6.19.0"
private "^0.1.6"
regex-cache@^0.4.2:
- version "0.4.3"
- resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145"
+ version "0.4.4"
+ resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd"
dependencies:
is-equal-shallow "^0.1.3"
- is-primitive "^2.0.0"
-
-regex-not@^0.1.1:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-0.1.2.tgz#bc7f1c4944b1188353d07deeb912b94e0ade25db"
regex-not@^1.0.0:
version "1.0.0"
@@ -6422,8 +6347,8 @@ relateurl@0.2.x:
resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9"
remove-trailing-separator@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.0.2.tgz#69b062d978727ad14dc6b56ba4ab772fd8d70511"
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
renderkid@^2.0.1:
version "2.0.1"
@@ -6449,7 +6374,7 @@ repeating@^2.0.0:
dependencies:
is-finite "^1.0.0"
-request@^2.79.0, request@^2.81.0:
+request@2.81.0:
version "2.81.0"
resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0"
dependencies:
@@ -6476,6 +6401,33 @@ request@^2.79.0, request@^2.81.0:
tunnel-agent "^0.6.0"
uuid "^3.0.0"
+request@^2.79.0:
+ version "2.83.0"
+ resolved "https://registry.yarnpkg.com/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356"
+ dependencies:
+ aws-sign2 "~0.7.0"
+ aws4 "^1.6.0"
+ caseless "~0.12.0"
+ combined-stream "~1.0.5"
+ extend "~3.0.1"
+ forever-agent "~0.6.1"
+ form-data "~2.3.1"
+ har-validator "~5.0.3"
+ hawk "~6.0.2"
+ http-signature "~1.2.0"
+ is-typedarray "~1.0.0"
+ isstream "~0.1.2"
+ json-stringify-safe "~5.0.1"
+ mime-types "~2.1.17"
+ oauth-sign "~0.8.2"
+ performance-now "^2.1.0"
+ qs "~6.5.1"
+ safe-buffer "^5.1.1"
+ stringstream "~0.0.5"
+ tough-cookie "~2.3.3"
+ tunnel-agent "^0.6.0"
+ uuid "^3.1.0"
+
require-directory@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
@@ -6529,8 +6481,8 @@ resolve@1.1.7:
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
resolve@^1.2.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.4.0.tgz#a75be01c53da25d934a98ebd0e4c4a7312f92a86"
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.5.0.tgz#1f09acce796c9a762579f31b2c1cc4c3cddf9f36"
dependencies:
path-parse "^1.0.5"
@@ -6548,19 +6500,17 @@ restore-cursor@^2.0.0:
onetime "^2.0.0"
signal-exit "^3.0.2"
+ret@~0.1.10:
+ version "0.1.15"
+ resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
+
right-align@^0.1.1:
version "0.1.3"
resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef"
dependencies:
align-text "^0.1.1"
-rimraf@2, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.6.1:
- version "2.6.1"
- resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d"
- dependencies:
- glob "^7.0.5"
-
-rimraf@2.6.2:
+rimraf@2, rimraf@2.6.2, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.6.1:
version "2.6.2"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36"
dependencies:
@@ -6573,6 +6523,13 @@ ripemd160@^2.0.0, ripemd160@^2.0.1:
hash-base "^2.0.0"
inherits "^2.0.1"
+rst-selector-parser@^2.2.2:
+ version "2.2.3"
+ resolved "https://registry.yarnpkg.com/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz#81b230ea2fcc6066c89e3472de794285d9b03d91"
+ dependencies:
+ lodash.flattendeep "^4.4.0"
+ nearley "^2.7.10"
+
run-async@^2.2.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0"
@@ -6590,12 +6547,12 @@ rx-lite@*, rx-lite@^4.0.8:
resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444"
rxjs@^5.0.0-beta.11:
- version "5.5.1"
- resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.1.tgz#ef980a6ad7438c74e3b0f0d1e6f1493e385997fd"
+ version "5.5.2"
+ resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.2.tgz#28d403f0071121967f18ad665563255d54236ac3"
dependencies:
symbol-observable "^1.0.1"
-safe-buffer@5.1.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
+safe-buffer@5.1.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
version "5.1.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
@@ -6645,44 +6602,44 @@ selfsigned@^1.9.1:
version "5.4.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e"
-send@0.15.4:
- version "0.15.4"
- resolved "https://registry.yarnpkg.com/send/-/send-0.15.4.tgz#985faa3e284b0273c793364a35c6737bd93905b9"
+send@0.16.1:
+ version "0.16.1"
+ resolved "https://registry.yarnpkg.com/send/-/send-0.16.1.tgz#a70e1ca21d1382c11d0d9f6231deb281080d7ab3"
dependencies:
- debug "2.6.8"
+ debug "2.6.9"
depd "~1.1.1"
destroy "~1.0.4"
encodeurl "~1.0.1"
escape-html "~1.0.3"
- etag "~1.8.0"
- fresh "0.5.0"
+ etag "~1.8.1"
+ fresh "0.5.2"
http-errors "~1.6.2"
- mime "1.3.4"
+ mime "1.4.1"
ms "2.0.0"
on-finished "~2.3.0"
range-parser "~1.2.0"
statuses "~1.3.1"
serve-index@^1.7.2:
- version "1.9.0"
- resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.0.tgz#d2b280fc560d616ee81b48bf0fa82abed2485ce7"
+ version "1.9.1"
+ resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239"
dependencies:
- accepts "~1.3.3"
+ accepts "~1.3.4"
batch "0.6.1"
- debug "2.6.8"
+ debug "2.6.9"
escape-html "~1.0.3"
- http-errors "~1.6.1"
- mime-types "~2.1.15"
- parseurl "~1.3.1"
+ http-errors "~1.6.2"
+ mime-types "~2.1.17"
+ parseurl "~1.3.2"
-serve-static@1.12.4:
- version "1.12.4"
- resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.12.4.tgz#9b6aa98eeb7253c4eedc4c1f6fdbca609901a961"
+serve-static@1.13.1:
+ version "1.13.1"
+ resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.1.tgz#4c57d53404a761d8f2e7c1e8a18a47dbf278a719"
dependencies:
encodeurl "~1.0.1"
escape-html "~1.0.3"
- parseurl "~1.3.1"
- send "0.15.4"
+ parseurl "~1.3.2"
+ send "0.16.1"
set-blocking@^2.0.0, set-blocking@~2.0.0:
version "2.0.0"
@@ -6698,7 +6655,7 @@ set-immediate-shim@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61"
-set-value@^0.4.2, set-value@^0.4.3:
+set-value@^0.4.3:
version "0.4.3"
resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1"
dependencies:
@@ -6707,6 +6664,15 @@ set-value@^0.4.2, set-value@^0.4.3:
is-plain-object "^2.0.1"
to-object-path "^0.3.0"
+set-value@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274"
+ dependencies:
+ extend-shallow "^2.0.1"
+ is-extendable "^0.1.1"
+ is-plain-object "^2.0.3"
+ split-string "^3.0.1"
+
setimmediate@^1.0.4, setimmediate@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
@@ -6715,15 +6681,20 @@ setprototypeof@1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04"
+setprototypeof@1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656"
+
settle-promise@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/settle-promise/-/settle-promise-1.0.0.tgz#697adb58b821f387ce2757c06efc9de5f0ee33d8"
sha.js@^2.4.0, sha.js@^2.4.8:
- version "2.4.8"
- resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.8.tgz#37068c2c476b6baf402d14a49c67f597921f634f"
+ version "2.4.9"
+ resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.9.tgz#98f64880474b74f4a38b8da9d3c0f2d104633e7d"
dependencies:
inherits "^2.0.1"
+ safe-buffer "^5.0.1"
shallowequal@^0.2.2:
version "0.2.2"
@@ -6755,8 +6726,8 @@ shell-quote@1.6.1:
jsonify "~0.0.0"
shellwords@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.0.tgz#66afd47b6a12932d9071cbfd98a52e785cd0ba14"
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b"
signal-exit@^3.0.0, signal-exit@^3.0.2:
version "3.0.2"
@@ -6809,6 +6780,12 @@ sntp@1.x.x:
dependencies:
hoek "2.x.x"
+sntp@2.x.x:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/sntp/-/sntp-2.1.0.tgz#2c6cec14fedc2222739caf9b5c3d85d1cc5a2cc8"
+ dependencies:
+ hoek "4.x.x"
+
sockjs-client@1.1.4:
version "1.1.4"
resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.1.4.tgz#5babe386b775e4cf14e7520911452654016c8b12"
@@ -6838,17 +6815,18 @@ source-list-map@^2.0.0:
resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085"
source-map-resolve@^0.5.0:
- version "0.5.0"
- resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.0.tgz#fcad0b64b70afb27699e425950cb5ebcd410bc20"
+ version "0.5.1"
+ resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.1.tgz#7ad0f593f2281598e854df80f19aae4b92d7a11a"
dependencies:
atob "^2.0.0"
+ decode-uri-component "^0.2.0"
resolve-url "^0.2.1"
source-map-url "^0.4.0"
urix "^0.1.0"
-source-map-support@^0.4.15, source-map-support@^0.4.2:
- version "0.4.15"
- resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.15.tgz#03202df65c06d2bd8c7ec2362a193056fef8d3b1"
+source-map-support@^0.4.15:
+ version "0.4.18"
+ resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f"
dependencies:
source-map "^0.5.6"
@@ -6862,17 +6840,21 @@ source-map-url@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3"
-source-map@0.5.6, source-map@0.5.x, source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1, source-map@~0.5.3:
+source-map@0.5.6:
version "0.5.6"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412"
+source-map@0.5.x, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1, source-map@~0.5.3, source-map@~0.5.6:
+ version "0.5.7"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
+
source-map@^0.4.4:
version "0.4.4"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b"
dependencies:
amdefine ">=0.0.4"
-source-map@^0.6.0, source-map@^0.6.1:
+source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
@@ -6882,12 +6864,6 @@ source-map@~0.1.7:
dependencies:
amdefine ">=0.0.4"
-source-map@~0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.2.0.tgz#dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d"
- dependencies:
- amdefine ">=0.0.4"
-
spdx-correct@~1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40"
@@ -6925,9 +6901,9 @@ spdy@^3.4.1:
select-hose "^2.0.0"
spdy-transport "^2.0.18"
-split-string@^2.1.0:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/split-string/-/split-string-2.1.1.tgz#af4b06d821560426446c3cd931cda618940d37d0"
+split-string@^3.0.1, split-string@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.0.2.tgz#6129bc92731716e5aa1fb73c333078f0b7c114c8"
dependencies:
extend-shallow "^2.0.1"
@@ -6960,7 +6936,11 @@ static-extend@^0.1.1:
define-property "^0.2.5"
object-copy "^0.1.0"
-"statuses@>= 1.3.1 < 2", statuses@~1.3.1:
+"statuses@>= 1.3.1 < 2":
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087"
+
+statuses@~1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e"
@@ -7029,7 +7009,7 @@ stringify-object@^3.2.0:
is-obj "^1.0.1"
is-regexp "^1.0.0"
-stringstream@~0.0.4:
+stringstream@~0.0.4, stringstream@~0.0.5:
version "0.0.5"
resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878"
@@ -7086,13 +7066,7 @@ supports-color@^3.1.2, supports-color@^3.2.3:
dependencies:
has-flag "^1.0.0"
-supports-color@^4.0.0, supports-color@^4.2.1:
- version "4.2.1"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.2.1.tgz#65a4bb2631e90e02420dba5554c375a4754bb836"
- dependencies:
- has-flag "^2.0.0"
-
-supports-color@^4.4.0:
+supports-color@^4.0.0, supports-color@^4.2.1, supports-color@^4.4.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b"
dependencies:
@@ -7134,8 +7108,8 @@ tapable@^0.2.5, tapable@^0.2.7:
resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.8.tgz#99372a5c999bf2df160afc0d74bed4f47948cd22"
tar-pack@^3.4.0:
- version "3.4.0"
- resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.0.tgz#23be2d7f671a8339376cbdb0b8fe3fdebf317984"
+ version "3.4.1"
+ resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.1.tgz#e1dbc03a9b9d3ba07e896ad027317eb679a10a1f"
dependencies:
debug "^2.2.0"
fstream "^1.0.10"
@@ -7194,11 +7168,11 @@ tiny-emitter@^2.0.0:
version "2.0.2"
resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.0.2.tgz#82d27468aca5ade8e5fd1e6d22b57dd43ebdfb7c"
-tmp@^0.0.31:
- version "0.0.31"
- resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.31.tgz#8f38ab9438e17315e5dbd8b3657e8bfb277ae4a7"
+tmp@^0.0.33:
+ version "0.0.33"
+ resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
dependencies:
- os-tmpdir "~1.0.1"
+ os-tmpdir "~1.0.2"
tmpl@1.0.x:
version "1.0.4"
@@ -7208,7 +7182,7 @@ to-arraybuffer@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43"
-to-fast-properties@^1.0.1, to-fast-properties@^1.0.3:
+to-fast-properties@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47"
@@ -7225,14 +7199,6 @@ to-regex-range@^2.1.0:
is-number "^3.0.0"
repeat-string "^1.6.1"
-to-regex@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-2.1.0.tgz#e3ad3a40cfe119559a05aea43e4caefacc5e901d"
- dependencies:
- define-property "^0.2.5"
- extend-shallow "^2.0.1"
- regex-not "^0.1.1"
-
to-regex@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.1.tgz#15358bee4a2c83bd76377ba1dc049d0f18837aae"
@@ -7242,12 +7208,12 @@ to-regex@^3.0.1:
regex-not "^1.0.0"
toposort@^1.0.0:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.3.tgz#f02cd8a74bd8be2fc0e98611c3bacb95a171869c"
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.6.tgz#c31748e55d210effc00fdcdc7d6e68d7d7bb9cec"
-tough-cookie@^2.3.2, tough-cookie@~2.3.0:
- version "2.3.2"
- resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a"
+tough-cookie@^2.3.2, tough-cookie@~2.3.0, tough-cookie@~2.3.3:
+ version "2.3.3"
+ resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561"
dependencies:
punycode "^1.4.1"
@@ -7267,9 +7233,9 @@ tryit@^1.0.1:
version "1.0.3"
resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb"
-ts-jest@21.1.3:
- version "21.1.3"
- resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-21.1.3.tgz#cc3c552e7e8a67db9ededc28c00ae98223614ddc"
+ts-jest@21.1.4:
+ version "21.1.4"
+ resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-21.1.4.tgz#6b720cd4ebfacbc935468e60dd395392f817095b"
dependencies:
babel-core "^6.24.1"
babel-plugin-istanbul "^4.1.4"
@@ -7280,7 +7246,7 @@ ts-jest@21.1.3:
jest-util "^21.2.1"
pkg-dir "^2.0.0"
source-map-support "^0.5.0"
- yargs "^9.0.1"
+ yargs "^10.0.3"
tty-browserify@0.0.0:
version "0.0.0"
@@ -7325,15 +7291,15 @@ typescript@2.5.3:
resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.5.3.tgz#df3dcdc38f3beb800d4bc322646b04a3f6ca7f0d"
ua-parser-js@^0.7.9:
- version "0.7.14"
- resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.14.tgz#110d53fa4c3f326c121292bbeac904d2e03387ca"
+ version "0.7.17"
+ resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.17.tgz#e9ec5f9498b9ec910e7ae3ac626a805c4d09ecac"
-uglify-js@3.0.x:
- version "3.0.27"
- resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.0.27.tgz#a97db8c8ba6b9dba4e2f88d86aa9548fa6320034"
+uglify-js@3.1.x:
+ version "3.1.6"
+ resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.1.6.tgz#918832602036e95d2318e11f27ee8461a8592c5d"
dependencies:
commander "~2.11.0"
- source-map "~0.5.1"
+ source-map "~0.6.1"
uglify-js@^2.6, uglify-js@^2.8.29:
version "2.8.29"
@@ -7376,9 +7342,13 @@ ultron@~1.1.0:
version "1.8.3"
resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.8.3.tgz#4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022"
-union-value@^0.2.3:
- version "0.2.4"
- resolved "https://registry.yarnpkg.com/union-value/-/union-value-0.2.4.tgz#7375152786679057e7b37aa676e83468fc0274f0"
+underscore@~1.4.4:
+ version "1.4.4"
+ resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.4.4.tgz#61a6a32010622afa07963bf325203cf12239d604"
+
+union-value@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4"
dependencies:
arr-union "^3.1.0"
get-value "^2.0.6"
@@ -7403,13 +7373,13 @@ universalify@^0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.1.tgz#fa71badd4437af4c148841e3b3b165f9e9e590b7"
-unpipe@~1.0.0:
+unpipe@1.0.0, unpipe@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
-unset-value@^0.1.1:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-0.1.2.tgz#506810b867f27c2a5a6e9b04833631f6de58d310"
+unset-value@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559"
dependencies:
has-value "^0.3.1"
isobject "^3.0.0"
@@ -7469,15 +7439,15 @@ utila@~0.4:
version "0.4.0"
resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c"
-utils-merge@1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.0.tgz#0294fb922bb9375153541c4f7096231f287c8af8"
+utils-merge@1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
uuid@^2.0.2:
version "2.0.3"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a"
-uuid@^3.0.0, uuid@^3.0.1:
+uuid@^3.0.0, uuid@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04"
@@ -7488,9 +7458,9 @@ validate-npm-package-license@^3.0.1:
spdx-correct "~1.0.0"
spdx-expression-parse "~1.0.0"
-vary@~1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.1.tgz#67535ebb694c1d52257457984665323f587e8d37"
+vary@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
vendors@^1.0.0:
version "1.0.1"
@@ -7643,20 +7613,21 @@ webpack@3.8.1:
yargs "^8.0.2"
websocket-driver@>=0.5.1:
- version "0.6.5"
- resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.6.5.tgz#5cb2556ceb85f4373c6d8238aa691c8454e13a36"
+ version "0.7.0"
+ resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.0.tgz#0caf9d2d755d93aee049d4bdd0d3fe2cca2a24eb"
dependencies:
+ http-parser-js ">=0.4.0"
websocket-extensions ">=0.1.1"
websocket-extensions@>=0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.1.tgz#76899499c184b6ef754377c2dbb0cd6cb55d29e7"
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.2.tgz#0e18781de629a18308ce1481650f67ffa2693a5d"
whatwg-encoding@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.1.tgz#3c6c451a198ee7aec55b1ec61d0920c67801a5f4"
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.3.tgz#57c235bc8657e914d24e1a397d3c82daee0a6ba3"
dependencies:
- iconv-lite "0.4.13"
+ iconv-lite "0.4.19"
whatwg-fetch@2.0.3, whatwg-fetch@>=0.10.0:
version "2.0.3"
@@ -7710,8 +7681,8 @@ wordwrap@~1.0.0:
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
worker-farm@^1.3.1:
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.5.0.tgz#adfdf0cd40581465ed0a1f648f9735722afd5c8d"
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.5.1.tgz#8e9f4a7da4f3c595aa600903051b969390423fa1"
dependencies:
errno "^0.1.4"
xtend "^4.0.1"
@@ -7780,6 +7751,29 @@ yargs-parser@^7.0.0:
dependencies:
camelcase "^4.1.0"
+yargs-parser@^8.0.0:
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-8.0.0.tgz#21d476330e5a82279a4b881345bf066102e219c6"
+ dependencies:
+ camelcase "^4.1.0"
+
+yargs@^10.0.3:
+ version "10.0.3"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-10.0.3.tgz#6542debd9080ad517ec5048fb454efe9e4d4aaae"
+ dependencies:
+ cliui "^3.2.0"
+ decamelize "^1.1.1"
+ find-up "^2.1.0"
+ get-caller-file "^1.0.1"
+ os-locale "^2.0.0"
+ require-directory "^2.1.1"
+ require-main-filename "^1.0.1"
+ set-blocking "^2.0.0"
+ string-width "^2.0.0"
+ which-module "^2.0.0"
+ y18n "^3.2.1"
+ yargs-parser "^8.0.0"
+
yargs@^6.6.0:
version "6.6.0"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208"
@@ -7816,7 +7810,7 @@ yargs@^8.0.2:
y18n "^3.2.1"
yargs-parser "^7.0.0"
-yargs@^9.0.0, yargs@^9.0.1:
+yargs@^9.0.0:
version "9.0.1"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-9.0.1.tgz#52acc23feecac34042078ee78c0c007f5085db4c"
dependencies: