From: Wouter Admiraal Date: Thu, 19 Aug 2021 06:58:22 +0000 (+0200) Subject: SONAR-15297 Remove dependency on sonar-ui-common for sonar-docs X-Git-Tag: 9.1.0.47736~113 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=fefc18a32d64f089d13ea52c5bc7bf45a0d2902e;p=sonarqube.git SONAR-15297 Remove dependency on sonar-ui-common for sonar-docs --- diff --git a/server/sonar-docs/build.gradle b/server/sonar-docs/build.gradle index b620475a4c3..d0fc7a471b9 100644 --- a/server/sonar-docs/build.gradle +++ b/server/sonar-docs/build.gradle @@ -55,10 +55,6 @@ task extractAnalyzerDocFiles { } } -yarn.configure { - dependsOn tasks.getByPath(':server:sonar-ui-common:yarn_run') -} - yarn_run { def docsVersion = version.split("[.-]").take(2).join('.') environment = [ GATSBY_DOCS_VERSION: docsVersion ] diff --git a/server/sonar-docs/package.json b/server/sonar-docs/package.json index 64eb7a6a417..2c1afc4adca 100644 --- a/server/sonar-docs/package.json +++ b/server/sonar-docs/package.json @@ -23,7 +23,6 @@ "react-helmet": "5.2.1", "react-typography": "0.16.19", "rehype-react": "6.1.0", - "sonar-ui-common": "../sonar-ui-common/build/dist", "typography": "0.16.19" }, "devDependencies": { @@ -120,4 +119,4 @@ "classNameTemplate": "{classname}", "titleTemplate": "{title}" } -} +} \ No newline at end of file diff --git a/server/sonar-docs/src/components/MetaData.css b/server/sonar-docs/src/components/MetaData.css new file mode 100644 index 00000000000..6bc5a632fb1 --- /dev/null +++ b/server/sonar-docs/src/components/MetaData.css @@ -0,0 +1,101 @@ +/* + * SonarQube + * Copyright (C) 2009-2021 SonarSource SA + * mailto:info 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. + */ +.update-center-meta-data { + margin: 16px 0; + padding: 16px 16px 8px 16px; + background: #f9f9fb; + border: 1px solid #e6e6e6; + border-radius: 3px; +} + +.update-center-meta-data a svg { + margin-right: 8px; +} + +.update-center-meta-data-header { + border-bottom: 1px solid #cfd3d7; + padding-bottom: 16px; +} + +.update-center-meta-data-header, +.update-center-meta-data-version-release-info, +.update-center-meta-data-version-links { + display: flex; +} + +.update-center-meta-data-header > * + *, +.update-center-meta-data-version-release-info > * + * { + margin-left: 16px; +} + +.update-center-meta-data-header > * + * { + padding-left: 16px; + border-left: 1px solid #cfd3d7; +} + +.update-center-meta-data-versions { + margin-top: 16px; +} + +.update-center-meta-data-versions-show-more { + font-size: 14px; + float: right; + color: #51575a; + border-color: #7b8184; + border-width: 0 0 1px 0; + padding-left: 0; + padding-right: 0; + background: transparent; + cursor: pointer; +} + +.update-center-meta-data-versions-show-more:hover { + color: #2d3032; + border-color: #2d3032; +} + +.update-center-meta-data-version { + margin-bottom: 16px; +} + +.update-center-meta-data-version + .update-center-meta-data-version { + padding-top: 8px; + border-top: 1px dashed #cfd3d7; +} + +.update-center-meta-data-version-version { + font-weight: bold; + font-size: 18px; +} + +.update-center-meta-data-version-release-info { + margin-top: 8px; + font-style: italic; +} + +.update-center-meta-data-version-release-description { + margin-top: 8px; +} + +.update-center-meta-data-version-download > a, +.update-center-meta-data-version-release-notes > a { + display: inline-block; + margin: 8px 16px 0 0; +} diff --git a/server/sonar-docs/src/components/MetaData.tsx b/server/sonar-docs/src/components/MetaData.tsx new file mode 100644 index 00000000000..1b187657e35 --- /dev/null +++ b/server/sonar-docs/src/components/MetaData.tsx @@ -0,0 +1,124 @@ +/* + * SonarQube + * Copyright (C) 2009-2021 SonarSource SA + * mailto:info 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 * as React from 'react'; +import './MetaData.css'; +import MetaDataVersions from './MetaDataVersions'; +import { MetaDataInformation } from './update-center-metadata'; + +interface Props { + updateCenterKey?: string; +} + +interface State { + data?: MetaDataInformation; +} + +export default class MetaData extends React.Component { + mounted = false; + state: State = {}; + + componentDidMount() { + this.mounted = true; + this.fetchData(); + } + + componentDidUpdate(prevProps: Props) { + if (prevProps.updateCenterKey !== this.props.updateCenterKey) { + this.fetchData(); + } + } + + componentWillUnmount() { + this.mounted = false; + } + + isSuccessStatus = (status: number) => { + return status >= 200 && status < 300; + }; + + fetchData() { + const { updateCenterKey } = this.props; + + if (updateCenterKey) { + window + .fetch(`https://update.sonarsource.org/${updateCenterKey}.json`) + .then((response: Response) => { + if (this.isSuccessStatus(response.status)) { + return response.json(); + } + return Promise.reject(response); + }) + .then(data => { + if (this.mounted) { + this.setState({ data }); + } + }) + .catch(() => { + if (this.mounted) { + this.setState({ data: undefined }); + } + }); + } else { + this.setState({ data: undefined }); + } + } + + render() { + const { data } = this.state; + + if (!data) { + return null; + } + + const { isSonarSourceCommercial, issueTrackerURL, license, organization, versions } = data; + + let vendor; + if (organization) { + vendor = organization.name; + if (organization.url) { + vendor = ( + + {vendor} + + ); + } + } + + return ( +
+
+ {vendor && By {vendor}} + {license && {license}} + {issueTrackerURL && ( + + + Issue Tracker + + + )} + {isSonarSourceCommercial && ( + Supported by SonarSource + )} +
+ {versions && versions.length > 0 && } +
+ ); + } +} diff --git a/server/sonar-docs/src/components/MetaDataVersion.tsx b/server/sonar-docs/src/components/MetaDataVersion.tsx new file mode 100644 index 00000000000..b8c3bbe37e6 --- /dev/null +++ b/server/sonar-docs/src/components/MetaDataVersion.tsx @@ -0,0 +1,98 @@ +/* + * SonarQube + * Copyright (C) 2009-2021 SonarSource SA + * mailto:info 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 classNames from 'classnames'; +import * as React from 'react'; +import { AdvancedDownloadUrl, MetaDataVersionInformation } from './update-center-metadata'; + +export interface MetaDataVersionProps { + versionInformation: MetaDataVersionInformation; +} + +export default function MetaDataVersion(props: MetaDataVersionProps) { + const { + versionInformation: { + archived, + changeLogUrl, + compatibility, + date, + description, + downloadURL, + version + } + } = props; + + const fallbackLabel = 'Download'; + + const advancedDownloadUrls = isAdvancedDownloadUrlArray(downloadURL) + ? downloadURL.map(url => ({ ...url, label: url.label || fallbackLabel })) + : [{ label: fallbackLabel, url: downloadURL }]; + + return ( +
+
{version}
+ +
+ {date && } + + {compatibility && ( + {compatibility} + )} +
+ + {description && ( +
{description}
+ )} + + {(advancedDownloadUrls.length > 0 || changeLogUrl) && ( +
+ {advancedDownloadUrls.length > 0 && + advancedDownloadUrls.map( + (advancedDownloadUrl, i) => + advancedDownloadUrl.url && ( + // eslint-disable-next-line react/no-array-index-key + + + {advancedDownloadUrl.label} + + + ) + )} + + {changeLogUrl && ( + + + Release notes + + + )} +
+ )} +
+ ); +} + +function isAdvancedDownloadUrlArray( + downloadUrl: string | AdvancedDownloadUrl[] | undefined +): downloadUrl is AdvancedDownloadUrl[] { + return !!downloadUrl && typeof downloadUrl !== 'string'; +} diff --git a/server/sonar-docs/src/components/MetaDataVersions.tsx b/server/sonar-docs/src/components/MetaDataVersions.tsx new file mode 100644 index 00000000000..b92f9efac03 --- /dev/null +++ b/server/sonar-docs/src/components/MetaDataVersions.tsx @@ -0,0 +1,84 @@ +/* + * SonarQube + * Copyright (C) 2009-2021 SonarSource SA + * mailto:info 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 * as React from 'react'; +import MetaDataVersion from './MetaDataVersion'; +import { MetaDataVersionInformation } from './update-center-metadata'; + +interface Props { + versions: MetaDataVersionInformation[]; +} + +interface State { + collapsed: boolean; +} + +export default class MetaDataVersions extends React.Component { + state: State = { + collapsed: true + }; + + componentDidUpdate(prevProps: Props) { + if (prevProps.versions !== this.props.versions) { + this.setState({ collapsed: true }); + } + } + + handleClick = (event: React.SyntheticEvent) => { + event.preventDefault(); + event.currentTarget.blur(); + this.setState(({ collapsed }) => ({ collapsed: !collapsed })); + }; + + render() { + const { versions } = this.props; + const { collapsed } = this.state; + + const archivedVersions = versions.filter(version => version.archived); + const currentVersions = versions.filter(version => !version.archived); + + return ( +
+ {archivedVersions.length > 0 && ( + + )} + + {currentVersions.map(versionInformation => ( + + ))} + + {!collapsed && + archivedVersions.map(archivedVersionInformation => ( + + ))} +
+ ); + } +} diff --git a/server/sonar-docs/src/components/__tests__/MetaData-test.tsx b/server/sonar-docs/src/components/__tests__/MetaData-test.tsx new file mode 100644 index 00000000000..4048d26e308 --- /dev/null +++ b/server/sonar-docs/src/components/__tests__/MetaData-test.tsx @@ -0,0 +1,85 @@ +/* + * SonarQube + * Copyright (C) 2009-2021 SonarSource SA + * mailto:info 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 { shallow } from 'enzyme'; +import * as React from 'react'; +import { waitAndUpdate } from '../../utils/testUtils'; +import MetaData from '../MetaData'; +import { mockMetaDataInformation } from '../mocks/update-center-metadata'; +import { MetaDataInformation } from '../update-center-metadata'; + +beforeAll(() => { + window.fetch = jest.fn(); +}); + +beforeEach(() => { + jest.resetAllMocks(); +}); + +it('should render correctly', async () => { + const metaDataInfo = mockMetaDataInformation(); + mockFetchReturnValue(metaDataInfo); + + const wrapper = shallowRender(); + await waitAndUpdate(wrapper); + expect(wrapper).toMatchSnapshot(); +}); + +it('should render correctly with organization', async () => { + const metaDataInfo = mockMetaDataInformation({ + organization: { name: 'test-org', url: 'test-org-url' } + }); + mockFetchReturnValue(metaDataInfo); + + const wrapper = shallowRender(); + await waitAndUpdate(wrapper); + expect(wrapper).toMatchSnapshot(); +}); + +it('should not render anything if call for metadata fails', async () => { + const metaDataInfo = mockMetaDataInformation(); + mockFetchReturnValue(metaDataInfo, '404'); + + const wrapper = shallowRender(); + await waitAndUpdate(wrapper); + expect(wrapper.type()).toBeNull(); +}); + +it('should fetch metadata again if the update center key if modified', async () => { + const metaDataInfo = mockMetaDataInformation(); + mockFetchReturnValue(metaDataInfo); + + const wrapper = shallowRender(); + await waitAndUpdate(wrapper); + + expect(window.fetch).toHaveBeenCalledTimes(1); + + mockFetchReturnValue(metaDataInfo); + wrapper.setProps({ updateCenterKey: 'abap' }); + + expect(window.fetch).toHaveBeenCalledTimes(2); +}); + +function shallowRender(props?: Partial) { + return shallow(); +} + +function mockFetchReturnValue(metaDataInfo: MetaDataInformation, status = '200') { + (window.fetch as jest.Mock).mockResolvedValueOnce({ status, json: () => metaDataInfo }); +} diff --git a/server/sonar-docs/src/components/__tests__/MetaDataVersion-test.tsx b/server/sonar-docs/src/components/__tests__/MetaDataVersion-test.tsx new file mode 100644 index 00000000000..285a0f8e346 --- /dev/null +++ b/server/sonar-docs/src/components/__tests__/MetaDataVersion-test.tsx @@ -0,0 +1,45 @@ +/* + * SonarQube + * Copyright (C) 2009-2021 SonarSource SA + * mailto:info 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 { shallow } from 'enzyme'; +import * as React from 'react'; +import MetaDataVersion, { MetaDataVersionProps } from '../MetaDataVersion'; +import { mockMetaDataVersionInformation } from '../mocks/update-center-metadata'; + +it('should render correctly', () => { + expect(shallowRender()).toMatchSnapshot(); + expect( + shallowRender({ + versionInformation: mockMetaDataVersionInformation({ + downloadURL: [{ label: 'macos 64 bits', url: '' }] + }) + }) + ).toMatchSnapshot('with advanced downloadUrl'); + expect( + shallowRender({ + versionInformation: { version: '2.0' } + }) + ).toMatchSnapshot('with very few info'); +}); + +function shallowRender(props?: Partial) { + return shallow( + + ); +} diff --git a/server/sonar-docs/src/components/__tests__/MetaDataVersions-test.tsx b/server/sonar-docs/src/components/__tests__/MetaDataVersions-test.tsx new file mode 100644 index 00000000000..9fdd2ea3e3c --- /dev/null +++ b/server/sonar-docs/src/components/__tests__/MetaDataVersions-test.tsx @@ -0,0 +1,51 @@ +/* + * SonarQube + * Copyright (C) 2009-2021 SonarSource SA + * mailto:info 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 { shallow } from 'enzyme'; +import * as React from 'react'; +import { click } from '../../utils/testUtils'; +import MetaDataVersion from '../MetaDataVersion'; +import MetaDataVersions from '../MetaDataVersions'; +import { mockMetaDataVersionInformation } from '../mocks/update-center-metadata'; + +it('should render correctly', () => { + const wrapper = shallowRender(); + expect(wrapper).toMatchSnapshot(); +}); + +it('should properly handle show more / show less', () => { + const wrapper = shallowRender(); + expect(wrapper.find(MetaDataVersion).length).toBe(1); + + click(wrapper.find('.update-center-meta-data-versions-show-more')); + expect(wrapper.find(MetaDataVersion).length).toBe(3); +}); + +function shallowRender(props?: Partial) { + return shallow( + + ); +} diff --git a/server/sonar-docs/src/components/__tests__/VersionSelect-test.tsx b/server/sonar-docs/src/components/__tests__/VersionSelect-test.tsx index aae6aa408c4..31902607bc6 100644 --- a/server/sonar-docs/src/components/__tests__/VersionSelect-test.tsx +++ b/server/sonar-docs/src/components/__tests__/VersionSelect-test.tsx @@ -19,7 +19,7 @@ */ import { shallow } from 'enzyme'; import * as React from 'react'; -import { click } from 'sonar-ui-common/helpers/testUtils'; +import { click } from '../../utils/testUtils'; import OutsideClickHandler from '../OutsideClickHandler'; import VersionSelect from '../VersionSelect'; diff --git a/server/sonar-docs/src/components/__tests__/__snapshots__/MetaData-test.tsx.snap b/server/sonar-docs/src/components/__tests__/__snapshots__/MetaData-test.tsx.snap new file mode 100644 index 00000000000..89e8d74a6d1 --- /dev/null +++ b/server/sonar-docs/src/components/__tests__/__snapshots__/MetaData-test.tsx.snap @@ -0,0 +1,133 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`should render correctly 1`] = ` +
+
+ + By + + SonarSource + + + + SonarSource + + + + Issue Tracker + + + + Supported by SonarSource + +
+ +
+`; + +exports[`should render correctly with organization 1`] = ` +
+
+ + By + + test-org + + + + SonarSource + + + + Issue Tracker + + + + Supported by SonarSource + +
+ +
+`; diff --git a/server/sonar-docs/src/components/__tests__/__snapshots__/MetaDataVersion-test.tsx.snap b/server/sonar-docs/src/components/__tests__/__snapshots__/MetaDataVersion-test.tsx.snap new file mode 100644 index 00000000000..7fd964fe2ab --- /dev/null +++ b/server/sonar-docs/src/components/__tests__/__snapshots__/MetaDataVersion-test.tsx.snap @@ -0,0 +1,113 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`should render correctly 1`] = ` +
+
+ 5.13 +
+
+ + + 6.7 + +
+ +
+`; + +exports[`should render correctly: with advanced downloadUrl 1`] = ` +
+
+ 5.13 +
+
+ + + 6.7 + +
+ +
+`; + +exports[`should render correctly: with very few info 1`] = ` +
+
+ 2.0 +
+
+
+
+`; diff --git a/server/sonar-docs/src/components/__tests__/__snapshots__/MetaDataVersions-test.tsx.snap b/server/sonar-docs/src/components/__tests__/__snapshots__/MetaDataVersions-test.tsx.snap new file mode 100644 index 00000000000..109fe964473 --- /dev/null +++ b/server/sonar-docs/src/components/__tests__/__snapshots__/MetaDataVersions-test.tsx.snap @@ -0,0 +1,28 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`should render correctly 1`] = ` +
+ + +
+`; diff --git a/server/sonar-docs/src/components/mocks/update-center-metadata.ts b/server/sonar-docs/src/components/mocks/update-center-metadata.ts new file mode 100644 index 00000000000..e4d389546e6 --- /dev/null +++ b/server/sonar-docs/src/components/mocks/update-center-metadata.ts @@ -0,0 +1,57 @@ +/* + * SonarQube + * Copyright (C) 2009-2021 SonarSource SA + * mailto:info 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 { MetaDataInformation, MetaDataVersionInformation } from '../update-center-metadata'; + +export function mockMetaDataVersionInformation( + overrides?: Partial +): MetaDataVersionInformation { + return { + version: '5.13', + date: '2019-05-31', + compatibility: '6.7', + archived: false, + downloadURL: 'https://example.com/sonar-java-plugin-5.13.0.18197.jar', + changeLogUrl: 'https://example.com/sonar-java-plugin/release', + ...overrides + }; +} + +export function mockMetaDataInformation( + overrides?: Partial +): MetaDataInformation { + return { + name: 'SonarJava', + key: 'java', + isSonarSourceCommercial: true, + organization: { + name: 'SonarSource', + url: 'http://www.sonarsource.com/' + }, + category: 'Languages', + license: 'SonarSource', + issueTrackerURL: 'https://jira.sonarsource.com/browse/SONARJAVA', + sourcesURL: 'https://github.com/SonarSource/sonar-java', + versions: [ + mockMetaDataVersionInformation({ version: '2.0' }), + mockMetaDataVersionInformation({ version: '1.0', archived: true }) + ], + ...overrides + }; +} diff --git a/server/sonar-docs/src/components/update-center-metadata.ts b/server/sonar-docs/src/components/update-center-metadata.ts new file mode 100644 index 00000000000..a88b385c3b6 --- /dev/null +++ b/server/sonar-docs/src/components/update-center-metadata.ts @@ -0,0 +1,48 @@ +/* + * SonarQube + * Copyright (C) 2009-2021 SonarSource SA + * mailto:info 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. + */ +export interface MetaDataInformation { + category?: string; + isSonarSourceCommercial?: boolean; + issueTrackerURL?: string; + key?: string; + license?: string; + name: string; + organization?: { + name: string; + url?: string; + }; + sourcesURL?: string; + versions?: MetaDataVersionInformation[]; +} + +export interface MetaDataVersionInformation { + archived?: boolean; + changeLogUrl?: string; + compatibility?: string; + date?: string; + description?: string; + downloadURL?: string | AdvancedDownloadUrl[]; + version: string; +} + +export interface AdvancedDownloadUrl { + label?: string; + url: string; +} diff --git a/server/sonar-docs/src/templates/page.tsx b/server/sonar-docs/src/templates/page.tsx index 375e3e3a405..3e4739163a2 100644 --- a/server/sonar-docs/src/templates/page.tsx +++ b/server/sonar-docs/src/templates/page.tsx @@ -22,9 +22,9 @@ import { selectAll } from 'hast-util-select'; import * as React from 'react'; import Helmet from 'react-helmet'; import rehypeReact from 'rehype-react'; -import MetaData from 'sonar-ui-common/components/ui/update-center/MetaData'; import { MarkdownHeading, MarkdownRemark, MarkdownRemarkConnection } from '../@types/graphql-types'; import HeaderList from '../components/HeaderList'; +import MetaData from '../components/MetaData'; import { HtmlAST, HtmlASTNode } from '../types/hast'; interface Props { diff --git a/server/sonar-docs/src/utils/testUtils.ts b/server/sonar-docs/src/utils/testUtils.ts new file mode 100644 index 00000000000..2f1ab920583 --- /dev/null +++ b/server/sonar-docs/src/utils/testUtils.ts @@ -0,0 +1,47 @@ +/* + * SonarQube + * Copyright (C) 2009-2021 SonarSource SA + * mailto:info 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 { ReactWrapper, ShallowWrapper } from 'enzyme'; + +export function click(element: ShallowWrapper | ReactWrapper, event = {}): void { + // `type()` returns a component constructor for a composite element and string for DOM nodes + if (typeof element.type() === 'function') { + element.prop('onClick')(); + // TODO find out if `root` is a public api + // https://github.com/airbnb/enzyme/blob/master/packages/enzyme/src/ReactWrapper.js#L109 + (element as any).root().update(); + } else { + element.simulate('click', mockEvent(event)); + } +} + +export function mockEvent(overrides = {}) { + return { + target: { blur() {} }, + currentTarget: { blur() {} }, + preventDefault() {}, + stopPropagation() {}, + ...overrides + } as any; +} + +export async function waitAndUpdate(wrapper: ShallowWrapper | ReactWrapper) { + await new Promise(setImmediate); + wrapper.update(); +} diff --git a/server/sonar-docs/yarn.lock b/server/sonar-docs/yarn.lock index 5d71ab30bab..cda10669f5f 100644 --- a/server/sonar-docs/yarn.lock +++ b/server/sonar-docs/yarn.lock @@ -1850,13 +1850,6 @@ dependencies: "@types/react" "*" -"@types/react-select@1.2.6": - version "1.2.6" - resolved "https://repox.jfrog.io/repox/api/npm/npm/@types/react-select/-/react-select-1.2.6.tgz#8a9579705e04b2c15ce529379402980d80e9d243" - integrity sha1-ipV5cF4EssFc5Sk3lAKYDYDp0kM= - dependencies: - "@types/react" "*" - "@types/react@*", "@types/react@16.8.23": version "16.8.23" resolved "https://repox.jfrog.io/repox/api/npm/npm/@types/react/-/react-16.8.23.tgz#ec6be3ceed6353a20948169b6cb4c97b65b97ad2" @@ -2646,11 +2639,6 @@ arrify@^2.0.1: resolved "https://repox.jfrog.io/repox/api/npm/npm/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" integrity sha1-yWVekzHgq81YjSp8rX6ZVvZnAfo= -asap@~2.0.3: - version "2.0.6" - resolved "https://repox.jfrog.io/repox/api/npm/npm/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" - integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= - asn1.js@^4.0.0: version "4.10.1" resolved "https://repox.jfrog.io/repox/api/npm/npm/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" @@ -3679,7 +3667,7 @@ class-utils@^0.3.5: isobject "^3.0.0" static-extend "^0.1.1" -classnames@2.2.6, classnames@^2.2.3, classnames@^2.2.4, classnames@^2.2.5: +classnames@2.2.6: version "2.2.6" resolved "https://repox.jfrog.io/repox/api/npm/npm/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce" integrity sha1-Q5Nb/90pHzJtrQogUwmzjQD2UM4= @@ -3736,15 +3724,6 @@ cli-width@^2.0.0: resolved "https://repox.jfrog.io/repox/api/npm/npm/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk= -clipboard@2.0.6: - version "2.0.6" - resolved "https://repox.jfrog.io/repox/api/npm/npm/clipboard/-/clipboard-2.0.6.tgz#52921296eec0fdf77ead1749421b21c968647376" - integrity sha1-UpISlu7A/fd+rRdJQhshyWhkc3Y= - dependencies: - good-listener "^1.2.2" - select "^1.1.2" - tiny-emitter "^2.0.0" - clipboardy@^2.2.0: version "2.3.0" resolved "https://repox.jfrog.io/repox/api/npm/npm/clipboardy/-/clipboardy-2.3.0.tgz#3c2903650c68e46a91b388985bc2774287dba290" @@ -4140,11 +4119,6 @@ core-js-pure@^3.0.0: resolved "https://repox.jfrog.io/repox/api/npm/npm/core-js-pure/-/core-js-pure-3.6.4.tgz#4bf1ba866e25814f149d4e9aaa08c36173506e3a" integrity sha1-S/G6hm4lgU8UnU6aqgjDYXNQbjo= -core-js@^1.0.0: - version "1.2.7" - resolved "https://repox.jfrog.io/repox/api/npm/npm/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" - integrity sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY= - core-js@^2.4.0, core-js@^2.6.5: version "2.6.9" resolved "https://repox.jfrog.io/repox/api/npm/npm/core-js/-/core-js-2.6.9.tgz#6b4b214620c834152e179323727fc19741b084f2" @@ -4220,15 +4194,6 @@ 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.5.1: - version "15.6.3" - resolved "https://repox.jfrog.io/repox/api/npm/npm/create-react-class/-/create-react-class-15.6.3.tgz#2d73237fb3f970ae6ebe011a9e66f46dbca80036" - integrity sha1-LXMjf7P5cK5uvgEanmb0bbyoADY= - dependencies: - fbjs "^0.8.9" - loose-envify "^1.3.1" - object-assign "^4.1.1" - create-react-context@0.3.0: version "0.3.0" resolved "https://repox.jfrog.io/repox/api/npm/npm/create-react-context/-/create-react-context-0.3.0.tgz#546dede9dc422def0d3fc2fe03afe0bc0f4f7d8c" @@ -4237,14 +4202,6 @@ create-react-context@0.3.0: gud "^1.0.0" warning "^4.0.3" -create-react-context@^0.2.2: - version "0.2.3" - resolved "https://repox.jfrog.io/repox/api/npm/npm/create-react-context/-/create-react-context-0.2.3.tgz#9ec140a6914a22ef04b8b09b7771de89567cb6f3" - integrity sha1-nsFAppFKIu8EuLCbd3HeiVZ8tvM= - dependencies: - fbjs "^0.8.0" - gud "^1.0.0" - cross-fetch@2.2.2: version "2.2.2" resolved "https://repox.jfrog.io/repox/api/npm/npm/cross-fetch/-/cross-fetch-2.2.2.tgz#a47ff4f7fc712daba8f6a695a11c948440d45723" @@ -4556,131 +4513,6 @@ cyclist@~0.2.2: resolved "https://repox.jfrog.io/repox/api/npm/npm/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" integrity sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA= -"d3-array@1.2.0 - 2", d3-array@2.4.0: - version "2.4.0" - resolved "https://repox.jfrog.io/repox/api/npm/npm/d3-array/-/d3-array-2.4.0.tgz#87f8b9ad11088769c82b5ea846bcb1cc9393f242" - integrity sha1-h/i5rREIh2nIK16oRryxzJOT8kI= - -d3-color@1: - version "1.4.0" - resolved "https://repox.jfrog.io/repox/api/npm/npm/d3-color/-/d3-color-1.4.0.tgz#89c45a995ed773b13314f06460df26d60ba0ecaf" - integrity sha1-icRamV7Xc7EzFPBkYN8m1gug7K8= - -d3-dispatch@1: - version "1.0.5" - resolved "https://repox.jfrog.io/repox/api/npm/npm/d3-dispatch/-/d3-dispatch-1.0.5.tgz#e25c10a186517cd6c82dd19ea018f07e01e39015" - integrity sha1-4lwQoYZRfNbILdGeoBjwfgHjkBU= - -d3-drag@1: - version "1.2.4" - resolved "https://repox.jfrog.io/repox/api/npm/npm/d3-drag/-/d3-drag-1.2.4.tgz#ba9331d68158ad14cf0b4b28a8afa9e78c7d99ad" - integrity sha1-upMx1oFYrRTPC0soqK+p54x9ma0= - dependencies: - d3-dispatch "1" - d3-selection "1" - -d3-ease@1: - version "1.0.5" - resolved "https://repox.jfrog.io/repox/api/npm/npm/d3-ease/-/d3-ease-1.0.5.tgz#8ce59276d81241b1b72042d6af2d40e76d936ffb" - integrity sha1-jOWSdtgSQbG3IELWry1A522Tb/s= - -d3-format@1: - version "1.4.1" - resolved "https://repox.jfrog.io/repox/api/npm/npm/d3-format/-/d3-format-1.4.1.tgz#c45f74b17c5a290c072a4ba7039dd19662cd5ce6" - integrity sha1-xF90sXxaKQwHKkunA53RlmLNXOY= - -d3-hierarchy@1.1.9: - version "1.1.9" - resolved "https://repox.jfrog.io/repox/api/npm/npm/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz#2f6bee24caaea43f8dc37545fa01628559647a83" - integrity sha1-L2vuJMqupD+Nw3VF+gFihVlkeoM= - -d3-interpolate@1: - version "1.3.2" - resolved "https://repox.jfrog.io/repox/api/npm/npm/d3-interpolate/-/d3-interpolate-1.3.2.tgz#417d3ebdeb4bc4efcc8fd4361c55e4040211fd68" - integrity sha1-QX0+vetLxO/Mj9Q2HFXkBAIR/Wg= - dependencies: - d3-color "1" - -d3-interpolate@^1.2.0: - version "1.4.0" - resolved "https://repox.jfrog.io/repox/api/npm/npm/d3-interpolate/-/d3-interpolate-1.4.0.tgz#526e79e2d80daa383f9e0c1c1c7dcc0f0583e987" - integrity sha1-Um554tgNqjg/ngwcHH3MDwWD6Yc= - dependencies: - d3-color "1" - -d3-path@1: - version "1.0.8" - resolved "https://repox.jfrog.io/repox/api/npm/npm/d3-path/-/d3-path-1.0.8.tgz#4a0606a794d104513ec4a8af43525f374b278719" - integrity sha1-SgYGp5TRBFE+xKivQ1JfN0snhxk= - -d3-scale@3.2.1: - version "3.2.1" - resolved "https://repox.jfrog.io/repox/api/npm/npm/d3-scale/-/d3-scale-3.2.1.tgz#da1684adce7261b4bc7a76fe193d887f0e909e69" - integrity sha1-2haErc5yYbS8enb+GT2Ifw6Qnmk= - dependencies: - d3-array "1.2.0 - 2" - d3-format "1" - d3-interpolate "^1.2.0" - d3-time "1" - d3-time-format "2" - -d3-selection@1, d3-selection@^1.1.0: - version "1.4.0" - resolved "https://repox.jfrog.io/repox/api/npm/npm/d3-selection/-/d3-selection-1.4.0.tgz#ab9ac1e664cf967ebf1b479cc07e28ce9908c474" - integrity sha1-q5rB5mTPln6/G0ecwH4ozpkIxHQ= - -d3-selection@1.4.1: - version "1.4.1" - resolved "https://repox.jfrog.io/repox/api/npm/npm/d3-selection/-/d3-selection-1.4.1.tgz#98eedbbe085fbda5bafa2f9e3f3a2f4d7d622a98" - integrity sha1-mO7bvghfvaW6+i+ePzovTX1iKpg= - -d3-shape@1.3.7: - version "1.3.7" - resolved "https://repox.jfrog.io/repox/api/npm/npm/d3-shape/-/d3-shape-1.3.7.tgz#df63801be07bc986bc54f63789b4fe502992b5d7" - integrity sha1-32OAG+B7yYa8VPY3ibT+UCmStdc= - dependencies: - d3-path "1" - -d3-time-format@2: - version "2.1.3" - resolved "https://repox.jfrog.io/repox/api/npm/npm/d3-time-format/-/d3-time-format-2.1.3.tgz#ae06f8e0126a9d60d6364eac5b1533ae1bac826b" - integrity sha1-rgb44BJqnWDWNk6sWxUzrhusgms= - dependencies: - d3-time "1" - -d3-time@1: - version "1.1.0" - resolved "https://repox.jfrog.io/repox/api/npm/npm/d3-time/-/d3-time-1.1.0.tgz#b1e19d307dae9c900b7e5b25ffc5dcc249a8a0f1" - integrity sha1-seGdMH2unJALflsl/8XcwkmooPE= - -d3-timer@1: - version "1.0.9" - resolved "https://repox.jfrog.io/repox/api/npm/npm/d3-timer/-/d3-timer-1.0.9.tgz#f7bb8c0d597d792ff7131e1c24a36dd471a471ba" - integrity sha1-97uMDVl9eS/3Ex4cJKNt1HGkcbo= - -d3-transition@1: - version "1.2.0" - resolved "https://repox.jfrog.io/repox/api/npm/npm/d3-transition/-/d3-transition-1.2.0.tgz#f538c0e21b2aa1f05f3e965f8567e81284b3b2b8" - integrity sha1-9TjA4hsqofBfPpZfhWfoEoSzsrg= - dependencies: - d3-color "1" - d3-dispatch "1" - d3-ease "1" - d3-interpolate "1" - d3-selection "^1.1.0" - d3-timer "1" - -d3-zoom@1.8.3: - version "1.8.3" - resolved "https://repox.jfrog.io/repox/api/npm/npm/d3-zoom/-/d3-zoom-1.8.3.tgz#b6a3dbe738c7763121cd05b8a7795ffe17f4fc0a" - integrity sha1-tqPb5zjHdjEhzQW4p3lf/hf0/Ao= - dependencies: - d3-dispatch "1" - d3-drag "1" - d3-interpolate "1" - d3-selection "1" - d3-transition "1" - damerau-levenshtein@^1.0.4: version "1.0.5" resolved "https://repox.jfrog.io/repox/api/npm/npm/damerau-levenshtein/-/damerau-levenshtein-1.0.5.tgz#780cf7144eb2e8dbd1c3bb83ae31100ccc31a414" @@ -4707,11 +4539,6 @@ data-urls@^1.1.0: whatwg-mimetype "^2.2.0" whatwg-url "^7.0.0" -date-fns@1.30.1: - version "1.30.1" - resolved "https://repox.jfrog.io/repox/api/npm/npm/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c" - integrity sha1-LnG/CxGRU9u0zE6I2epaz7UNwFw= - date-fns@^2.11.0: version "2.11.0" resolved "https://repox.jfrog.io/repox/api/npm/npm/date-fns/-/date-fns-2.11.0.tgz#ec2b44977465b9dcb370021d5e6c019b19f36d06" @@ -4794,11 +4621,6 @@ deep-is@^0.1.3, deep-is@~0.1.3: resolved "https://repox.jfrog.io/repox/api/npm/npm/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= -deepmerge@^2.1.1: - version "2.2.1" - resolved "https://repox.jfrog.io/repox/api/npm/npm/deepmerge/-/deepmerge-2.2.1.tgz#5d3ff22a01c00f645405a2fbc17d0778a1801170" - integrity sha1-XT/yKgHAD2RUBaL7wX0HeKGAEXA= - default-gateway@^4.2.0: version "4.2.0" resolved "https://repox.jfrog.io/repox/api/npm/npm/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" @@ -4873,11 +4695,6 @@ delayed-stream@~1.0.0: resolved "https://repox.jfrog.io/repox/api/npm/npm/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= -delegate@^3.1.2: - version "3.2.0" - resolved "https://repox.jfrog.io/repox/api/npm/npm/delegate/-/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166" - integrity sha1-tmtxwxWFIuirV0T3INjKDCr1kWY= - delegates@^1.0.0: version "1.0.0" resolved "https://repox.jfrog.io/repox/api/npm/npm/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" @@ -5069,7 +4886,7 @@ dom-converter@^0.2: dependencies: utila "~0.4" -"dom-helpers@^2.4.0 || ^3.0.0", dom-helpers@^3.4.0: +dom-helpers@^3.4.0: version "3.4.0" resolved "https://repox.jfrog.io/repox/api/npm/npm/dom-helpers/-/dom-helpers-3.4.0.tgz#e9b369700f959f62ecde5a6babde4bccd9169af8" integrity sha1-6bNpcA+Vn2Ls3lprq95LzNkWmvg= @@ -5273,13 +5090,6 @@ encodeurl@~1.0.2: resolved "https://repox.jfrog.io/repox/api/npm/npm/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= -encoding@^0.1.11: - version "0.1.12" - resolved "https://repox.jfrog.io/repox/api/npm/npm/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" - integrity sha1-U4tm8+5izRq1HsMjgp0flIDHS+s= - dependencies: - iconv-lite "~0.4.13" - end-of-stream@^1.0.0, end-of-stream@^1.1.0: version "1.4.1" resolved "https://repox.jfrog.io/repox/api/npm/npm/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" @@ -6059,7 +5869,7 @@ execa@^3.2.0, execa@^3.4.0: signal-exit "^3.0.2" strip-final-newline "^2.0.0" -exenv@^1.2.0, exenv@^1.2.1: +exenv@^1.2.1: version "1.2.2" resolved "https://repox.jfrog.io/repox/api/npm/npm/exenv/-/exenv-1.2.2.tgz#2ae78e85d9894158670b03d47bec1f03bd91bb9d" integrity sha1-KueOhdmJQVhnCwPUe+wfA72Ru50= @@ -6298,19 +6108,6 @@ fb-watchman@^2.0.0: dependencies: bser "^2.0.0" -fbjs@^0.8.0, fbjs@^0.8.9: - version "0.8.17" - resolved "https://repox.jfrog.io/repox/api/npm/npm/fbjs/-/fbjs-0.8.17.tgz#c4d598ead6949112653d6588b01a5cdcd9f90fdd" - integrity sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90= - 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.18" - figgy-pudding@^3.5.1: version "3.5.1" resolved "https://repox.jfrog.io/repox/api/npm/npm/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" @@ -6534,21 +6331,6 @@ form-data@~2.3.2: combined-stream "^1.0.6" mime-types "^2.1.12" -formik@1.2.0: - version "1.2.0" - resolved "https://repox.jfrog.io/repox/api/npm/npm/formik/-/formik-1.2.0.tgz#a0daf8512ce2ec18d88ff59a5bb172b0167e85d1" - integrity sha1-oNr4USzi7BjYj/WaW7FysBZ+hdE= - dependencies: - create-react-context "^0.2.2" - deepmerge "^2.1.1" - hoist-non-react-statics "^2.5.5" - lodash.clonedeep "^4.5.0" - lodash.topath "4.5.2" - prop-types "^15.6.1" - react-fast-compare "^1.0.0" - tslib "^1.9.3" - warning "^3.0.0" - forwarded@~0.1.2: version "0.1.2" resolved "https://repox.jfrog.io/repox/api/npm/npm/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" @@ -7280,13 +7062,6 @@ globby@^6.1.0: pify "^2.0.0" pinkie-promise "^2.0.0" -good-listener@^1.2.2: - version "1.2.2" - resolved "https://repox.jfrog.io/repox/api/npm/npm/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50" - integrity sha1-1TswzfkxPf+33JoNR3CWqm0UXFA= - dependencies: - delegate "^3.1.2" - got@8.3.2, got@^8.3.2: version "8.3.2" resolved "https://repox.jfrog.io/repox/api/npm/npm/got/-/got-8.3.2.tgz#1d23f64390e97f776cac52e5b936e5f514d2e937" @@ -7753,16 +7528,6 @@ hex-color-regex@^1.1.0: resolved "https://repox.jfrog.io/repox/api/npm/npm/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" integrity sha1-TAb8y0YC/iYCs8k9+C1+fb8aio4= -history@3.3.0, history@^3.0.0: - version "3.3.0" - resolved "https://repox.jfrog.io/repox/api/npm/npm/history/-/history-3.3.0.tgz#fcedcce8f12975371545d735461033579a6dae9c" - integrity sha1-/O3M6PEpdTcVRdc1RhAzV5ptrpw= - dependencies: - invariant "^2.2.1" - loose-envify "^1.2.0" - query-string "^4.2.2" - warning "^3.0.0" - hmac-drbg@^1.0.0: version "1.0.1" resolved "https://repox.jfrog.io/repox/api/npm/npm/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" @@ -7772,11 +7537,6 @@ hmac-drbg@^1.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" -hoist-non-react-statics@^2.3.1, hoist-non-react-statics@^2.5.5: - version "2.5.5" - resolved "https://repox.jfrog.io/repox/api/npm/npm/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz#c5903cf409c0dfd908f388e619d86b9c1174cb47" - integrity sha1-xZA89AnA39kI84jmGdhrnBF0y0c= - hoist-non-react-statics@^3.3.0: version "3.3.0" resolved "https://repox.jfrog.io/repox/api/npm/npm/hoist-non-react-statics/-/hoist-non-react-statics-3.3.0.tgz#b09178f0122184fb95acf525daaecb4d8f45958b" @@ -7969,7 +7729,7 @@ human-signals@^1.1.1: resolved "https://repox.jfrog.io/repox/api/npm/npm/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" integrity sha1-xbHNFPUK6uCatsWf5jujOV/k36M= -iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.24, iconv-lite@^0.4.4, iconv-lite@~0.4.13: +iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.24, iconv-lite@^0.4.4: version "0.4.24" resolved "https://repox.jfrog.io/repox/api/npm/npm/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha1-ICK0sl+93CHS9SSXSkdKr+czkIs= @@ -8262,30 +8022,6 @@ internal-slot@^1.0.2: has "^1.0.3" side-channel "^1.0.2" -intl-format-cache@^2.0.5: - version "2.2.9" - resolved "https://repox.jfrog.io/repox/api/npm/npm/intl-format-cache/-/intl-format-cache-2.2.9.tgz#fb560de20c549cda20b569cf1ffb6dc62b5b93b4" - integrity sha1-+1YN4gxUnNogtWnPH/ttxitbk7Q= - -intl-messageformat-parser@1.4.0: - version "1.4.0" - resolved "https://repox.jfrog.io/repox/api/npm/npm/intl-messageformat-parser/-/intl-messageformat-parser-1.4.0.tgz#b43d45a97468cadbe44331d74bb1e8dea44fc075" - integrity sha1-tD1FqXRoytvkQzHXS7Ho3qRPwHU= - -intl-messageformat@^2.0.0, intl-messageformat@^2.1.0: - version "2.2.0" - resolved "https://repox.jfrog.io/repox/api/npm/npm/intl-messageformat/-/intl-messageformat-2.2.0.tgz#345bcd46de630b7683330c2e52177ff5eab484fc" - integrity sha1-NFvNRt5jC3aDMwwuUhd/9eq0hPw= - dependencies: - intl-messageformat-parser "1.4.0" - -intl-relativeformat@^2.1.0: - version "2.2.0" - resolved "https://repox.jfrog.io/repox/api/npm/npm/intl-relativeformat/-/intl-relativeformat-2.2.0.tgz#6aca95d019ec8d30b6c5653b6629f9983ea5b6c5" - integrity sha1-asqV0BnsjTC2xWU7Zin5mD6ltsU= - dependencies: - intl-messageformat "^2.0.0" - into-stream@^3.1.0: version "3.1.0" resolved "https://repox.jfrog.io/repox/api/npm/npm/into-stream/-/into-stream-3.1.0.tgz#96fb0a936c12babd6ff1752a17d05616abd094c6" @@ -8294,7 +8030,7 @@ into-stream@^3.1.0: from2 "^2.1.1" p-is-promise "^1.1.0" -invariant@^2.1.1, invariant@^2.2.0, invariant@^2.2.1, invariant@^2.2.2, invariant@^2.2.3, invariant@^2.2.4: +invariant@^2.2.0, invariant@^2.2.2, invariant@^2.2.3, invariant@^2.2.4: version "2.2.4" resolved "https://repox.jfrog.io/repox/api/npm/npm/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" integrity sha1-YQ88ksk1nOHbYW5TgAjSP/NRWOY= @@ -8759,7 +8495,7 @@ is-ssh@^1.3.0: dependencies: protocols "^1.1.0" -is-stream@^1.0.1, is-stream@^1.1.0: +is-stream@^1.1.0: version "1.1.0" resolved "https://repox.jfrog.io/repox/api/npm/npm/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= @@ -8874,14 +8610,6 @@ isobject@^3.0.0, isobject@^3.0.1: resolved "https://repox.jfrog.io/repox/api/npm/npm/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= -isomorphic-fetch@^2.1.1: - version "2.2.1" - resolved "https://repox.jfrog.io/repox/api/npm/npm/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" - integrity sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk= - dependencies: - node-fetch "^1.0.1" - whatwg-fetch ">=0.10.0" - isstream@~0.1.2: version "0.1.2" resolved "https://repox.jfrog.io/repox/api/npm/npm/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" @@ -9760,11 +9488,6 @@ lodash.toarray@^4.4.0: resolved "https://repox.jfrog.io/repox/api/npm/npm/lodash.toarray/-/lodash.toarray-4.4.0.tgz#24c4bfcd6b2fba38bfd0594db1179d8e9b656561" integrity sha1-JMS/zWsvuji/0FlNsRedjptlZWE= -lodash.topath@4.5.2: - version "4.5.2" - resolved "https://repox.jfrog.io/repox/api/npm/npm/lodash.topath/-/lodash.topath-4.5.2.tgz#3616351f3bba61994a0931989660bd03254fd009" - integrity sha1-NhY1Hzu6YZlKCTGYlmC9AyVP0Ak= - lodash.uniq@^4.5.0: version "4.5.0" resolved "https://repox.jfrog.io/repox/api/npm/npm/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" @@ -9806,7 +9529,7 @@ longest-streak@^2.0.1: resolved "https://repox.jfrog.io/repox/api/npm/npm/longest-streak/-/longest-streak-2.0.3.tgz#3de7a3f47ee18e9074ded8575b5c091f5d0a4105" integrity sha1-Peej9H7hjpB03thXW1wJH10KQQU= -loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.0, loose-envify@^1.3.1, loose-envify@^1.4.0: +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: version "1.4.0" resolved "https://repox.jfrog.io/repox/api/npm/npm/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" integrity sha1-ce5R+nvkyuwaY4OffmgtgTLTDK8= @@ -10452,14 +10175,6 @@ node-fetch@2.6.0, node-fetch@^2.6.0: resolved "https://repox.jfrog.io/repox/api/npm/npm/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" integrity sha1-5jNFY4bUqlWGP2dqerDaqP3ssP0= -node-fetch@^1.0.1: - version "1.7.3" - resolved "https://repox.jfrog.io/repox/api/npm/npm/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" - integrity sha1-mA9vcthSEaU0fGsrwYxbhMPrR+8= - dependencies: - encoding "^0.1.11" - is-stream "^1.0.1" - node-forge@0.9.0: version "0.9.0" resolved "https://repox.jfrog.io/repox/api/npm/npm/node-forge/-/node-forge-0.9.0.tgz#d624050edbb44874adca12bb9a52ec63cb782579" @@ -11963,13 +11678,6 @@ promise-polyfill@^7.1.1: resolved "https://repox.jfrog.io/repox/api/npm/npm/promise-polyfill/-/promise-polyfill-7.1.2.tgz#ab05301d8c28536301622d69227632269a70ca3b" integrity sha1-qwUwHYwoU2MBYi1pInYyJppwyjs= -promise@^7.1.1: - version "7.3.1" - resolved "https://repox.jfrog.io/repox/api/npm/npm/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" - integrity sha1-BktyYCsY+Q8pGSuLG8QY/9Hr078= - dependencies: - asap "~2.0.3" - prompts@^2.0.1: version "2.1.0" resolved "https://repox.jfrog.io/repox/api/npm/npm/prompts/-/prompts-2.1.0.tgz#bf90bc71f6065d255ea2bdc0fe6520485c1b45db" @@ -11995,7 +11703,7 @@ prop-types-exact@^1.2.0: object.assign "^4.1.0" reflect.ownkeys "^0.2.0" -prop-types@15.7.2, 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, prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2: +prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2: version "15.7.2" resolved "https://repox.jfrog.io/repox/api/npm/npm/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" integrity sha1-UsQedbjIfnK52TYOAga5ncv/psU= @@ -12113,7 +11821,7 @@ qs@~6.5.2: resolved "https://repox.jfrog.io/repox/api/npm/npm/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" integrity sha1-yzroBuh0BERYTvFUzo7pjUA/PjY= -query-string@^4.1.0, query-string@^4.2.2: +query-string@^4.1.0: version "4.3.4" resolved "https://repox.jfrog.io/repox/api/npm/npm/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" integrity sha1-u7aTucqRXCMlFbIosaArYJBD2+s= @@ -12285,14 +11993,6 @@ react-dom@16.13.0: prop-types "^15.6.2" scheduler "^0.19.0" -react-draggable@4.2.0: - version "4.2.0" - resolved "https://repox.jfrog.io/repox/api/npm/npm/react-draggable/-/react-draggable-4.2.0.tgz#40cc5209082ca7d613104bf6daf31372cc0e1114" - integrity sha1-QMxSCQgsp9YTEEv22vMTcswOERQ= - dependencies: - classnames "^2.2.5" - prop-types "^15.6.0" - react-error-overlay@^3.0.0: version "3.0.0" resolved "https://repox.jfrog.io/repox/api/npm/npm/react-error-overlay/-/react-error-overlay-3.0.0.tgz#c2bc8f4d91f1375b3dad6d75265d51cd5eeaf655" @@ -12303,11 +12003,6 @@ react-error-overlay@^6.0.3: resolved "https://repox.jfrog.io/repox/api/npm/npm/react-error-overlay/-/react-error-overlay-6.0.6.tgz#ac4d9dc4c1b5c536c2c312bf66aa2b09bfa384e2" integrity sha1-rE2dxMG1xTbCwxK/ZqorCb+jhOI= -react-fast-compare@^1.0.0: - version "1.0.0" - resolved "https://repox.jfrog.io/repox/api/npm/npm/react-fast-compare/-/react-fast-compare-1.0.0.tgz#813a039155e49b43ceffe99528fe5e9d97a6c938" - integrity sha1-gToDkVXkm0PO/+mVKP5enZemyTg= - react-fast-compare@^2.0.2: version "2.0.4" resolved "https://repox.jfrog.io/repox/api/npm/npm/react-fast-compare/-/react-fast-compare-2.0.4.tgz#e84b4d455b0fec113e0402c329352715196f81f9" @@ -12337,24 +12032,6 @@ react-hot-loader@^4.12.20: shallowequal "^1.1.0" source-map "^0.7.3" -react-input-autosize@^2.1.2: - version "2.2.2" - resolved "https://repox.jfrog.io/repox/api/npm/npm/react-input-autosize/-/react-input-autosize-2.2.2.tgz#fcaa7020568ec206bc04be36f4eb68e647c4d8c2" - integrity sha1-/KpwIFaOwga8BL429Oto5kfE2MI= - dependencies: - prop-types "^15.5.8" - -react-intl@2.8.0: - version "2.8.0" - resolved "https://repox.jfrog.io/repox/api/npm/npm/react-intl/-/react-intl-2.8.0.tgz#20b0c1f01d1292427768aa8ec9e51ab7e36503ba" - integrity sha1-ILDB8B0SkkJ3aKqOyeUat+NlA7o= - dependencies: - hoist-non-react-statics "^2.5.5" - intl-format-cache "^2.0.5" - intl-messageformat "^2.1.0" - intl-relativeformat "^2.1.0" - invariant "^2.1.1" - react-is@^16.12.0, react-is@^16.9.0: version "16.13.0" resolved "https://repox.jfrog.io/repox/api/npm/npm/react-is/-/react-is-16.13.0.tgz#0f37c3613c34fe6b37cd7f763a0d6293ab15c527" @@ -12365,21 +12042,11 @@ react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.5, react-is@^16.8.6: resolved "https://repox.jfrog.io/repox/api/npm/npm/react-is/-/react-is-16.8.6.tgz#5bbc1e2d29141c9fbdfed456343fe2bc430a6a16" integrity sha1-W7weLSkUHJ+9/tRWND/ivEMKahY= -react-lifecycles-compat@^3.0.0, react-lifecycles-compat@^3.0.4: +react-lifecycles-compat@^3.0.4: version "3.0.4" resolved "https://repox.jfrog.io/repox/api/npm/npm/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" integrity sha1-TxonOv38jzSIqMUWv9p4+HI1I2I= -react-modal@3.8.2: - version "3.8.2" - resolved "https://repox.jfrog.io/repox/api/npm/npm/react-modal/-/react-modal-3.8.2.tgz#c47397a8602beb7aae0059a3b404f20416241d03" - integrity sha1-xHOXqGAr63quAFmjtATyBBYkHQM= - dependencies: - exenv "^1.2.0" - prop-types "^15.5.10" - react-lifecycles-compat "^3.0.0" - warning "^4.0.3" - react-reconciler@^0.24.0: version "0.24.0" resolved "https://repox.jfrog.io/repox/api/npm/npm/react-reconciler/-/react-reconciler-0.24.0.tgz#5a396b2c2f5efe8554134a5935f49f546723f2dd" @@ -12395,28 +12062,6 @@ react-refresh@^0.7.0: resolved "https://repox.jfrog.io/repox/api/npm/npm/react-refresh/-/react-refresh-0.7.2.tgz#f30978d21eb8cac6e2f2fde056a7d04f6844dd50" integrity sha1-8wl40h64ysbi8v3gVqfQT2hE3VA= -react-router@3.2.1: - version "3.2.1" - resolved "https://repox.jfrog.io/repox/api/npm/npm/react-router/-/react-router-3.2.1.tgz#b9a3279962bdfbe684c8bd0482b81ef288f0f244" - integrity sha1-uaMnmWK9++aEyL0Egrge8ojw8kQ= - dependencies: - create-react-class "^15.5.1" - history "^3.0.0" - hoist-non-react-statics "^2.3.1" - invariant "^2.2.1" - loose-envify "^1.2.0" - prop-types "^15.5.6" - warning "^3.0.0" - -react-select@1.2.1: - version "1.2.1" - resolved "https://repox.jfrog.io/repox/api/npm/npm/react-select/-/react-select-1.2.1.tgz#a2fe58a569eb14dcaa6543816260b97e538120d1" - integrity sha1-ov5YpWnrFNyqZUOBYmC5flOBINE= - dependencies: - classnames "^2.2.4" - prop-types "^15.5.8" - react-input-autosize "^2.1.2" - react-side-effect@^1.1.0: version "1.1.5" resolved "https://repox.jfrog.io/repox/api/npm/npm/react-side-effect/-/react-side-effect-1.1.5.tgz#f26059e50ed9c626d91d661b9f3c8bb38cd0ff2d" @@ -12450,18 +12095,6 @@ react-typography@0.16.19: resolved "https://repox.jfrog.io/repox/api/npm/npm/react-typography/-/react-typography-0.16.19.tgz#5736b47961dcf6b9605b6fa38d41980db2588e28" integrity sha1-Vza0eWHc9rlgW2+jjUGYDbJYjig= -react-virtualized@9.21.0: - version "9.21.0" - resolved "https://repox.jfrog.io/repox/api/npm/npm/react-virtualized/-/react-virtualized-9.21.0.tgz#8267c40ffb48db35b242a36dea85edcf280a6506" - integrity sha1-gmfED/tI2zWyQqNt6oXtzygKZQY= - dependencies: - babel-runtime "^6.26.0" - classnames "^2.2.3" - dom-helpers "^2.4.0 || ^3.0.0" - loose-envify "^1.3.0" - prop-types "^15.6.0" - react-lifecycles-compat "^3.0.4" - react@16.13.0, react@^16.8.0: version "16.13.0" resolved "https://repox.jfrog.io/repox/api/npm/npm/react/-/react-16.13.0.tgz#d046eabcdf64e457bbeed1e792e235e1b9934cf7" @@ -13302,11 +12935,6 @@ select-hose@^2.0.0: resolved "https://repox.jfrog.io/repox/api/npm/npm/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= -select@^1.1.2: - version "1.1.2" - resolved "https://repox.jfrog.io/repox/api/npm/npm/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d" - integrity sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0= - selfsigned@^1.10.7: version "1.10.7" resolved "https://repox.jfrog.io/repox/api/npm/npm/selfsigned/-/selfsigned-1.10.7.tgz#da5819fd049d5574f28e88a9bcc6dbc6e6f3906b" @@ -13420,7 +13048,7 @@ set-value@^2.0.0, set-value@^2.0.1: is-plain-object "^2.0.3" split-string "^3.0.1" -setimmediate@^1.0.4, setimmediate@^1.0.5: +setimmediate@^1.0.4: version "1.0.5" resolved "https://repox.jfrog.io/repox/api/npm/npm/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= @@ -13691,29 +13319,6 @@ sockjs@0.3.19: faye-websocket "^0.10.0" uuid "^3.0.1" -sonar-ui-common@../sonar-ui-common/build/dist: - version "1.0.33" - dependencies: - "@types/react-select" "1.2.6" - classnames "2.2.6" - clipboard "2.0.6" - d3-array "2.4.0" - d3-hierarchy "1.1.9" - d3-scale "3.2.1" - d3-selection "1.4.1" - d3-shape "1.3.7" - d3-zoom "1.8.3" - date-fns "1.30.1" - formik "1.2.0" - history "3.3.0" - prop-types "15.7.2" - react-draggable "4.2.0" - react-intl "2.8.0" - react-modal "3.8.2" - react-router "3.2.1" - react-select "1.2.1" - react-virtualized "9.21.0" - sort-keys@^1.0.0: version "1.1.2" resolved "https://repox.jfrog.io/repox/api/npm/npm/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" @@ -14419,11 +14024,6 @@ timsort@^0.3.0: resolved "https://repox.jfrog.io/repox/api/npm/npm/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= -tiny-emitter@^2.0.0: - version "2.1.0" - resolved "https://repox.jfrog.io/repox/api/npm/npm/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" - integrity sha1-HRpW7fxRxD6GPLtTgqcjMONVVCM= - tmp@^0.0.33: version "0.0.33" resolved "https://repox.jfrog.io/repox/api/npm/npm/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -14591,7 +14191,7 @@ tslib@^1.10.0, tslib@^1.8.1: resolved "https://repox.jfrog.io/repox/api/npm/npm/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35" integrity sha1-6xXRKIJ/vuKEFUnhcfRe0zisfjU= -tslib@^1.9.0, tslib@^1.9.3: +tslib@^1.9.0: version "1.10.0" resolved "https://repox.jfrog.io/repox/api/npm/npm/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" integrity sha1-w8GflZc/sKYpc/sJ2Q2WHuQ+XIo= @@ -14702,11 +14302,6 @@ typography@0.16.19: object-assign "^4.1.0" typography-normalize "^0.16.19" -ua-parser-js@^0.7.18: - version "0.7.28" - resolved "https://repox.jfrog.io/repox/api/npm/npm/ua-parser-js/-/ua-parser-js-0.7.28.tgz#8ba04e653f35ce210239c64661685bf9121dec31" - integrity sha1-i6BOZT81ziECOcZGYWhb+RId7DE= - uglify-js@^3.1.4: version "3.6.0" resolved "https://repox.jfrog.io/repox/api/npm/npm/uglify-js/-/uglify-js-3.6.0.tgz#704681345c53a8b2079fb6cec294b05ead242ff5" @@ -15444,11 +15039,6 @@ whatwg-fetch@2.0.4: resolved "https://repox.jfrog.io/repox/api/npm/npm/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz#dde6a5df315f9d39991aa17621853d720b85566f" integrity sha1-3eal3zFfnTmZGqF2IYU9cguFVm8= -whatwg-fetch@>=0.10.0: - version "3.0.0" - resolved "https://repox.jfrog.io/repox/api/npm/npm/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz#fc804e458cc460009b1a2b966bc8817d2578aefb" - integrity sha1-/IBORYzEYACbGiuWa8iBfSV4rvs= - whatwg-mimetype@^2.2.0, whatwg-mimetype@^2.3.0: version "2.3.0" resolved "https://repox.jfrog.io/repox/api/npm/npm/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf"