From 36fb2461c5902708dcf8168e6bb16633135231ae Mon Sep 17 00:00:00 2001 From: Talita Gregory Nunes Freire Date: Fri, 22 Apr 2022 13:35:13 +0200 Subject: [PATCH 01/21] feat: Adding github-pull-requests-board plugin Signed-off-by: Talita Gregory Nunes Freire --- .../github-pull-requests-board/.eslintrc.js | 3 + plugins/github-pull-requests-board/README.md | 15 +++ .../github-pull-requests-board/package.json | 56 +++++++++ .../src/api/useGetPullRequestDetails.ts | 71 +++++++++++ .../api/useGetPullRequestsFromRepository.ts | 33 +++++ .../src/api/useOctokitGraphQl.ts | 21 ++++ .../src/components/Card/Card.tsx | 48 ++++++++ .../src/components/Card/CardHeader.tsx | 53 ++++++++ .../src/components/Card/index.ts | 1 + .../InfoCardHeader/InfoCardHeader.tsx | 25 ++++ .../src/components/InfoCardHeader/index.ts | 1 + .../PullRequestBoardOptions.tsx | 43 +++++++ .../PullRequestBoardOptions/index.ts | 1 + .../PullRequestCard/PullRequestCard.tsx | 62 ++++++++++ .../src/components/PullRequestCard/index.ts | 1 + .../SmallPullRequestCard.tsx | 74 +++++++++++ .../components/SmallPullRequestCard/index.ts | 1 + .../TeamPullRequestsPage.tsx | 109 ++++++++++++++++ .../components/TeamPullRequestsPage/index.ts | 1 + .../TeamPullRequestsTable.tsx | 116 ++++++++++++++++++ .../components/TeamPullRequestsTable/index.ts | 1 + .../src/components/UserHeader/UserHeader.tsx | 36 ++++++ .../src/components/UserHeader/index.ts | 1 + .../UserHeaderList/UserHeaderList.tsx | 24 ++++ .../src/components/UserHeaderList/index.ts | 1 + .../src/components/Wrapper/Wrapper.tsx | 20 +++ .../src/components/Wrapper/index.ts | 1 + .../src/components/icons/DraftPr/DraftPr.tsx | 10 ++ .../src/components/icons/DraftPr/index.ts | 1 + .../src/hooks/usePullRequestsByTeam.tsx | 70 +++++++++++ .../src/hooks/useUserRepositories.tsx | 34 +++++ .../github-pull-requests-board/src/index.ts | 1 + .../src/plugin.test.ts | 7 ++ .../github-pull-requests-board/src/plugin.ts | 34 +++++ .../github-pull-requests-board/src/routes.ts | 5 + .../src/setupTests.ts | 2 + .../src/utils/constants.ts | 5 + .../src/utils/functions.ts | 77 ++++++++++++ .../src/utils/types.tsx | 69 +++++++++++ 39 files changed, 1134 insertions(+) create mode 100644 plugins/github-pull-requests-board/.eslintrc.js create mode 100644 plugins/github-pull-requests-board/README.md create mode 100644 plugins/github-pull-requests-board/package.json create mode 100644 plugins/github-pull-requests-board/src/api/useGetPullRequestDetails.ts create mode 100644 plugins/github-pull-requests-board/src/api/useGetPullRequestsFromRepository.ts create mode 100644 plugins/github-pull-requests-board/src/api/useOctokitGraphQl.ts create mode 100644 plugins/github-pull-requests-board/src/components/Card/Card.tsx create mode 100644 plugins/github-pull-requests-board/src/components/Card/CardHeader.tsx create mode 100644 plugins/github-pull-requests-board/src/components/Card/index.ts create mode 100644 plugins/github-pull-requests-board/src/components/InfoCardHeader/InfoCardHeader.tsx create mode 100644 plugins/github-pull-requests-board/src/components/InfoCardHeader/index.ts create mode 100644 plugins/github-pull-requests-board/src/components/PullRequestBoardOptions/PullRequestBoardOptions.tsx create mode 100644 plugins/github-pull-requests-board/src/components/PullRequestBoardOptions/index.ts create mode 100644 plugins/github-pull-requests-board/src/components/PullRequestCard/PullRequestCard.tsx create mode 100644 plugins/github-pull-requests-board/src/components/PullRequestCard/index.ts create mode 100644 plugins/github-pull-requests-board/src/components/SmallPullRequestCard/SmallPullRequestCard.tsx create mode 100644 plugins/github-pull-requests-board/src/components/SmallPullRequestCard/index.ts create mode 100644 plugins/github-pull-requests-board/src/components/TeamPullRequestsPage/TeamPullRequestsPage.tsx create mode 100644 plugins/github-pull-requests-board/src/components/TeamPullRequestsPage/index.ts create mode 100644 plugins/github-pull-requests-board/src/components/TeamPullRequestsTable/TeamPullRequestsTable.tsx create mode 100644 plugins/github-pull-requests-board/src/components/TeamPullRequestsTable/index.ts create mode 100644 plugins/github-pull-requests-board/src/components/UserHeader/UserHeader.tsx create mode 100644 plugins/github-pull-requests-board/src/components/UserHeader/index.ts create mode 100644 plugins/github-pull-requests-board/src/components/UserHeaderList/UserHeaderList.tsx create mode 100644 plugins/github-pull-requests-board/src/components/UserHeaderList/index.ts create mode 100644 plugins/github-pull-requests-board/src/components/Wrapper/Wrapper.tsx create mode 100644 plugins/github-pull-requests-board/src/components/Wrapper/index.ts create mode 100644 plugins/github-pull-requests-board/src/components/icons/DraftPr/DraftPr.tsx create mode 100644 plugins/github-pull-requests-board/src/components/icons/DraftPr/index.ts create mode 100644 plugins/github-pull-requests-board/src/hooks/usePullRequestsByTeam.tsx create mode 100644 plugins/github-pull-requests-board/src/hooks/useUserRepositories.tsx create mode 100644 plugins/github-pull-requests-board/src/index.ts create mode 100644 plugins/github-pull-requests-board/src/plugin.test.ts create mode 100644 plugins/github-pull-requests-board/src/plugin.ts create mode 100644 plugins/github-pull-requests-board/src/routes.ts create mode 100644 plugins/github-pull-requests-board/src/setupTests.ts create mode 100644 plugins/github-pull-requests-board/src/utils/constants.ts create mode 100644 plugins/github-pull-requests-board/src/utils/functions.ts create mode 100644 plugins/github-pull-requests-board/src/utils/types.tsx diff --git a/plugins/github-pull-requests-board/.eslintrc.js b/plugins/github-pull-requests-board/.eslintrc.js new file mode 100644 index 0000000000..13573efa9c --- /dev/null +++ b/plugins/github-pull-requests-board/.eslintrc.js @@ -0,0 +1,3 @@ +module.exports = { + extends: [require.resolve('@backstage/cli/config/eslint')], +}; diff --git a/plugins/github-pull-requests-board/README.md b/plugins/github-pull-requests-board/README.md new file mode 100644 index 0000000000..2beff349a8 --- /dev/null +++ b/plugins/github-pull-requests-board/README.md @@ -0,0 +1,15 @@ +# github-pull-requests-board + +Welcome to the github-pull-requests-board plugin! + +This plugin will help you and your team stay on top of open pull requests, hopefully reducing the time from open to merged. It's particularly useful when your team deals with many repositories. + +## Getting started + +The plugin exports the **TeamPullRequestsTable** component which should be added into the Team page level, so it can consume the backstage **"team"** entity. + +```javascript +import { TeamPullRequestsTable } from '@backstage/plugin-github-pull-requests-board'; + +; +``` diff --git a/plugins/github-pull-requests-board/package.json b/plugins/github-pull-requests-board/package.json new file mode 100644 index 0000000000..dc61fc7cde --- /dev/null +++ b/plugins/github-pull-requests-board/package.json @@ -0,0 +1,56 @@ +{ + "name": "@backstage/plugin-github-pull-requests-board", + "version": "0.1.0", + "main": "src/index.ts", + "types": "src/index.ts", + "license": "Apache-2.0", + "publishConfig": { + "access": "public", + "main": "dist/index.esm.js", + "types": "dist/index.d.ts" + }, + "scripts": { + "build": "backstage-cli plugin:build", + "start": "backstage-cli plugin:serve", + "lint": "backstage-cli lint", + "test": "backstage-cli test", + "diff": "backstage-cli plugin:diff", + "prepack": "backstage-cli prepack", + "postpack": "backstage-cli postpack", + "clean": "backstage-cli clean" + }, + "dependencies": { + "@backstage/catalog-model": "^1.0.0", + "@backstage/core-components": "^0.9.2", + "@backstage/core-plugin-api": "^1.0.0", + "@backstage/plugin-catalog-react": "^1.0.0", + "@backstage/theme": "^0.2.15", + "@material-ui/core": "^4.12.2", + "@material-ui/icons": "^4.9.1", + "@material-ui/lab": "4.0.0-alpha.45", + "@octokit/rest": "^18.6.7", + "moment": "^2.29.1", + "react-use": "^17.2.4" + }, + "devDependencies": { + "@backstage/cli": "^0.14.1", + "@backstage/core-app-api": "^0.5.2", + "@backstage/dev-utils": "^0.2.5", + "@backstage/test-utils": "^0.2.0", + "@testing-library/jest-dom": "^5.10.1", + "@testing-library/react": "^11.2.5", + "@testing-library/user-event": "^13.1.8", + "@types/jest": "^26.0.7", + "@types/node": "^14.14.32", + "cross-fetch": "^3.0.6", + "msw": "^0.29.0" + }, + "peerDependencies": { + "@types/react": "^16.13.1 || ^17.0.0", + "react": "^16.13.1 || ^17.0.0", + "react-dom": "^16.13.1 || ^17.0.0" + }, + "files": [ + "dist" + ] +} diff --git a/plugins/github-pull-requests-board/src/api/useGetPullRequestDetails.ts b/plugins/github-pull-requests-board/src/api/useGetPullRequestDetails.ts new file mode 100644 index 0000000000..0732f86683 --- /dev/null +++ b/plugins/github-pull-requests-board/src/api/useGetPullRequestDetails.ts @@ -0,0 +1,71 @@ +import React from 'react'; + +import { GraphQlPullRequest, PullRequest } from '../utils/types'; +import { useOctokitGraphQl } from './useOctokitGraphQl'; + +export const useGetPullRequestDetails = () => { + const graphql = useOctokitGraphQl>(); + + const fn = React.useRef(async (repo: string, number: number): Promise => { + const [ organisation, repositoryName ] = repo.split('/'); + + const { repository } = await graphql(` + query($name: String!, $owner: String!, $pull_number: Int!) { + repository(name: $name, owner: $owner) { + pullRequest(number: $pull_number) { + id + repository { + name + } + title + url + createdAt + lastEditedAt + latestReviews(first: 10) { + nodes { + author { + login + avatarUrl + ... on User { + id + email + name + login + } + } + state + } + } + mergeable + state + reviewDecision + isDraft + createdAt + author { + ... on User { + id + email + avatarUrl + name + login + } + ... on Bot { + id + avatarUrl + login + } + } + } + } + } + `, { + 'name': repositoryName, + 'owner': organisation, + 'pull_number': number + }); + + return repository.pullRequest + }); + + return fn.current; +}; diff --git a/plugins/github-pull-requests-board/src/api/useGetPullRequestsFromRepository.ts b/plugins/github-pull-requests-board/src/api/useGetPullRequestsFromRepository.ts new file mode 100644 index 0000000000..d03cca43d3 --- /dev/null +++ b/plugins/github-pull-requests-board/src/api/useGetPullRequestsFromRepository.ts @@ -0,0 +1,33 @@ +import React from 'react'; + +import { GraphQlPullRequests, PullRequestsNumber } from '../utils/types'; +import { useOctokitGraphQl } from './useOctokitGraphQl'; + +export const useGetPullRequestsFromRepository = () => { + const graphql = useOctokitGraphQl>(); + + const fn = React.useRef(async (repo: string): Promise => { + const [ organisation, repositoryName ] = repo.split('/'); + + const { repository } = await graphql(` + query($name: String!, $owner: String!) { + repository(name: $name, owner: $owner) { + pullRequests(states: OPEN, first: 10) { + edges { + node { + number + } + } + } + } + } + `, { + 'name': repositoryName, + 'owner': organisation, + }); + + return repository.pullRequests.edges + }); + + return fn.current; +}; diff --git a/plugins/github-pull-requests-board/src/api/useOctokitGraphQl.ts b/plugins/github-pull-requests-board/src/api/useOctokitGraphQl.ts new file mode 100644 index 0000000000..36e53bcfb9 --- /dev/null +++ b/plugins/github-pull-requests-board/src/api/useOctokitGraphQl.ts @@ -0,0 +1,21 @@ +import { Octokit } from '@octokit/rest'; +import { useApi, githubAuthApiRef } from '@backstage/core-plugin-api'; + +let octokit: any; + +export const useOctokitGraphQl = () => { + const auth = useApi(githubAuthApiRef); + + return (path: string, options?: any): Promise => + auth.getAccessToken(['repo']) + .then((token: string) => { + if(!octokit) { + octokit = new Octokit({ auth: token }) + } + + return octokit + }) + .then(octokitInstance => { + return octokitInstance.graphql(path, options) + }); +}; diff --git a/plugins/github-pull-requests-board/src/components/Card/Card.tsx b/plugins/github-pull-requests-board/src/components/Card/Card.tsx new file mode 100644 index 0000000000..8e1067aa1d --- /dev/null +++ b/plugins/github-pull-requests-board/src/components/Card/Card.tsx @@ -0,0 +1,48 @@ +import React, { PropsWithChildren, FunctionComponent } from 'react'; +import { Box, Paper, CardActionArea } from '@material-ui/core'; +import CardHeader from './CardHeader'; + +type Props = { + title: string; + createdAt: string; + updatedAt?: string; + prUrl: string; + authorName: string; + authorAvatar?: string; + repositoryName: string; +} + +const Card: FunctionComponent = (props: PropsWithChildren) => { + const { + title, + createdAt, + updatedAt, + prUrl, + authorName, + authorAvatar, + repositoryName, + children + } = props; + + return ( + + + + + + { children } + + + + + ); +}; + +export default Card; diff --git a/plugins/github-pull-requests-board/src/components/Card/CardHeader.tsx b/plugins/github-pull-requests-board/src/components/Card/CardHeader.tsx new file mode 100644 index 0000000000..79e936f37d --- /dev/null +++ b/plugins/github-pull-requests-board/src/components/Card/CardHeader.tsx @@ -0,0 +1,53 @@ +import React from 'react'; +import { Typography, Box } from '@material-ui/core'; +import { getElapsedTime } from '../../utils/functions'; +import { UserHeader } from '../UserHeader'; + +type Props = { + title: string; + createdAt: string; + updatedAt?: string; + authorName: string; + authorAvatar?: string; + repositoryName: string; +} + +const CardHeader = (props: Props) => { + const { + title, + createdAt, + updatedAt, + authorName, + authorAvatar, + repositoryName, + } = props; + + return ( + <> + + + {repositoryName} + + + + + {title} + + + + Created at: {getElapsedTime(createdAt)} + + { + updatedAt && ( + + Last update: {getElapsedTime(updatedAt)} + + ) + } + + + + ); +}; + +export default CardHeader; diff --git a/plugins/github-pull-requests-board/src/components/Card/index.ts b/plugins/github-pull-requests-board/src/components/Card/index.ts new file mode 100644 index 0000000000..06c3388d6c --- /dev/null +++ b/plugins/github-pull-requests-board/src/components/Card/index.ts @@ -0,0 +1 @@ +export { default as Card } from './Card'; diff --git a/plugins/github-pull-requests-board/src/components/InfoCardHeader/InfoCardHeader.tsx b/plugins/github-pull-requests-board/src/components/InfoCardHeader/InfoCardHeader.tsx new file mode 100644 index 0000000000..24c1393dd2 --- /dev/null +++ b/plugins/github-pull-requests-board/src/components/InfoCardHeader/InfoCardHeader.tsx @@ -0,0 +1,25 @@ +import React, { PropsWithChildren } from 'react'; +import { Typography, Box, IconButton } from '@material-ui/core'; +import RefreshIcon from '@material-ui/icons/Refresh'; + +type Props = { + onRefresh: () => void; +} + +const InfoCardHeader = (props: PropsWithChildren) => { + const { children, onRefresh } = props; + + return ( + + + Open pull requests + + + + + {children} + + ); +}; + +export default InfoCardHeader; diff --git a/plugins/github-pull-requests-board/src/components/InfoCardHeader/index.ts b/plugins/github-pull-requests-board/src/components/InfoCardHeader/index.ts new file mode 100644 index 0000000000..ad044f42a8 --- /dev/null +++ b/plugins/github-pull-requests-board/src/components/InfoCardHeader/index.ts @@ -0,0 +1 @@ +export { default as InfoCardHeader } from './InfoCardHeader'; diff --git a/plugins/github-pull-requests-board/src/components/PullRequestBoardOptions/PullRequestBoardOptions.tsx b/plugins/github-pull-requests-board/src/components/PullRequestBoardOptions/PullRequestBoardOptions.tsx new file mode 100644 index 0000000000..98f52c4970 --- /dev/null +++ b/plugins/github-pull-requests-board/src/components/PullRequestBoardOptions/PullRequestBoardOptions.tsx @@ -0,0 +1,43 @@ +import React, { ReactNode } from 'react'; +import { ToggleButton, ToggleButtonGroup } from '@material-ui/lab'; +import { Tooltip, Box } from '@material-ui/core'; +import { PRCardFormating } from '../../utils/types'; + +type Option = { + icon: ReactNode; + value: string; + ariaLabel: string; +} + +type Props = { + value: string[]; + onClickOption: (selectedOptions: PRCardFormating[]) => void; + options: Option[]; +} + +const PullRequestBoardOptions = (props: Props) => { + const { value, onClickOption, options } = props; + return ( + onClickOption(selectedOptions)} + aria-label="Pull Request board settings" + > + { + options.map(({ icon, value: toggleValue, ariaLabel }, index) => ( + + + + {icon} + + + + )) + } + + + ); +}; + +export default PullRequestBoardOptions; diff --git a/plugins/github-pull-requests-board/src/components/PullRequestBoardOptions/index.ts b/plugins/github-pull-requests-board/src/components/PullRequestBoardOptions/index.ts new file mode 100644 index 0000000000..31b4198239 --- /dev/null +++ b/plugins/github-pull-requests-board/src/components/PullRequestBoardOptions/index.ts @@ -0,0 +1 @@ +export { default as PullRequestBoardOptions } from './PullRequestBoardOptions'; diff --git a/plugins/github-pull-requests-board/src/components/PullRequestCard/PullRequestCard.tsx b/plugins/github-pull-requests-board/src/components/PullRequestCard/PullRequestCard.tsx new file mode 100644 index 0000000000..66d4fbcf29 --- /dev/null +++ b/plugins/github-pull-requests-board/src/components/PullRequestCard/PullRequestCard.tsx @@ -0,0 +1,62 @@ +import React, { FunctionComponent } from 'react'; +import { getApprovedReviews, getChangeRequests, getCommentedReviews } from '../../utils/functions'; +import { Reviews, Author } from '../../utils/types'; +import { Card } from '../Card'; +import { UserHeaderList } from '../UserHeaderList'; + +type Props = { + title: string; + createdAt: string; + updatedAt?: string; + author: Author; + url: string; + reviews: Reviews; + repositoryName: string; + isDraft: boolean; +} + +const PullRequestCard: FunctionComponent = (props: Props) => { + const { + title, + createdAt, + updatedAt, + author, + url, + reviews, + repositoryName, + isDraft, + } = props; + + const approvedReviews = getApprovedReviews(reviews); + const commentsReviews = getCommentedReviews(reviews); + const changeRequests = getChangeRequests(reviews); + + const cardTitle = isDraft ? `🔧 DRAFT - ${title}` : title; + + return ( + + {!!approvedReviews.length && ( + reviewAuthor)}/> + )} + {!!commentsReviews.length && ( + reviewAuthor)} + /> + )} + {!!changeRequests.length && ( + reviewAuthor)}/> + )} + + ); +}; + +export default PullRequestCard; diff --git a/plugins/github-pull-requests-board/src/components/PullRequestCard/index.ts b/plugins/github-pull-requests-board/src/components/PullRequestCard/index.ts new file mode 100644 index 0000000000..ed77163680 --- /dev/null +++ b/plugins/github-pull-requests-board/src/components/PullRequestCard/index.ts @@ -0,0 +1 @@ +export { default as PullRequestCard } from './PullRequestCard'; diff --git a/plugins/github-pull-requests-board/src/components/SmallPullRequestCard/SmallPullRequestCard.tsx b/plugins/github-pull-requests-board/src/components/SmallPullRequestCard/SmallPullRequestCard.tsx new file mode 100644 index 0000000000..3bf53b4487 --- /dev/null +++ b/plugins/github-pull-requests-board/src/components/SmallPullRequestCard/SmallPullRequestCard.tsx @@ -0,0 +1,74 @@ +import React, { FunctionComponent } from 'react'; +import { Box, Chip } from '@material-ui/core'; +import { getApprovedReviews, getCommentedReviews } from '../../utils/functions'; +import { Card } from '../Card'; +import { Reviews, Author } from '../../utils/types'; + +type Props = { + title: string; + createdAt: string; + updatedAt?: string; + author: Author; + url: string; + reviews: Reviews; + repositoryName: string; + isDraft: boolean; +} + +const SmallPullRequestCard: FunctionComponent = (props: Props) => { + const { + title, + createdAt, + updatedAt, + author, + url, + reviews, + repositoryName, + isDraft, + } = props; + + const approvedReviews = getApprovedReviews(reviews); + const commentsReviews = getCommentedReviews(reviews); + + const containReviews = !!approvedReviews.length || !!commentsReviews.length; + const cardTitle = isDraft ? `🔧 DRAFT - ${title}` : title; + + return ( + + { + containReviews && ( + + {!!approvedReviews.length && ( + + + + )} + {!!commentsReviews.length && ( + + )} + + ) + } + + ); +}; + +export default SmallPullRequestCard; diff --git a/plugins/github-pull-requests-board/src/components/SmallPullRequestCard/index.ts b/plugins/github-pull-requests-board/src/components/SmallPullRequestCard/index.ts new file mode 100644 index 0000000000..eeffd436d8 --- /dev/null +++ b/plugins/github-pull-requests-board/src/components/SmallPullRequestCard/index.ts @@ -0,0 +1 @@ +export { default as SmallPullRequestCard } from './SmallPullRequestCard'; diff --git a/plugins/github-pull-requests-board/src/components/TeamPullRequestsPage/TeamPullRequestsPage.tsx b/plugins/github-pull-requests-board/src/components/TeamPullRequestsPage/TeamPullRequestsPage.tsx new file mode 100644 index 0000000000..eccb0b29b3 --- /dev/null +++ b/plugins/github-pull-requests-board/src/components/TeamPullRequestsPage/TeamPullRequestsPage.tsx @@ -0,0 +1,109 @@ +import React, { FunctionComponent, useState } from 'react'; +import { Grid, Typography } from '@material-ui/core'; +import ViewModuleIcon from '@material-ui/icons/ViewModule'; +import { Progress, InfoCard } from '@backstage/core-components'; + +import { InfoCardHeader } from '../../components/InfoCardHeader'; +import { PullRequestBoardOptions } from '../../components/PullRequestBoardOptions'; +import { Wrapper } from '../../components/Wrapper'; +import { SmallPullRequestCard } from '../../components/SmallPullRequestCard'; +import { PullRequestCard } from '../../components/PullRequestCard'; +import { usePullRequestsByTeam } from '../../hooks/usePullRequestsByTeam'; +import { PRCardFormating } from '../../utils/types'; +import { DraftPrIcon } from '../../components/icons/DraftPr' +import { useUserRepositories } from '../../hooks/useUserRepositories'; + +const TeamPullRequestsPage: FunctionComponent = () => { + const [infoCardFormat, setInfoCardFormat] = useState([]); + const { repositories } = useUserRepositories(); + const { loading, pullRequests, refreshPullRequests } = usePullRequestsByTeam(repositories); + + const CardComponent = infoCardFormat.includes('compacted') + ? SmallPullRequestCard + : PullRequestCard; + + const header = ( + + setInfoCardFormat(newFormats)} + value={infoCardFormat} + options={[ + { + icon: , + value: 'compacted', + ariaLabel: 'Cards compacted' + }, + { + icon: , + value: 'draft', + ariaLabel: 'Show draft PRs' + }, + ]} + /> + + ); + + const getContent = () => { + if (loading) { + return ; + } + + return ( + + {pullRequests.length ? ( + pullRequests.map(({ title: columnTitle, content }) => ( + + + {columnTitle} + + {content.map(({ + id, + title, + createdAt, + lastEditedAt, + author, + url, + latestReviews, + repository, + isDraft + }, index) => ( + isDraft ? (infoCardFormat.includes('draft') === isDraft) && + + : + ))} + + )) + ) : ( + No pull requests found + )} + + ); + }; + + return {getContent()}; +}; + +export default TeamPullRequestsPage; diff --git a/plugins/github-pull-requests-board/src/components/TeamPullRequestsPage/index.ts b/plugins/github-pull-requests-board/src/components/TeamPullRequestsPage/index.ts new file mode 100644 index 0000000000..b58aed2482 --- /dev/null +++ b/plugins/github-pull-requests-board/src/components/TeamPullRequestsPage/index.ts @@ -0,0 +1 @@ +export { default as TeamPullRequestsPage } from './TeamPullRequestsPage'; diff --git a/plugins/github-pull-requests-board/src/components/TeamPullRequestsTable/TeamPullRequestsTable.tsx b/plugins/github-pull-requests-board/src/components/TeamPullRequestsTable/TeamPullRequestsTable.tsx new file mode 100644 index 0000000000..e80bab7837 --- /dev/null +++ b/plugins/github-pull-requests-board/src/components/TeamPullRequestsTable/TeamPullRequestsTable.tsx @@ -0,0 +1,116 @@ +import React, { FunctionComponent, useState } from 'react'; +import { Grid, Typography } from '@material-ui/core'; +import ViewModuleIcon from '@material-ui/icons/ViewModule'; +import FullscreenIcon from '@material-ui/icons/Fullscreen'; + +import { Progress, InfoCard } from '@backstage/core-components'; + +import { InfoCardHeader } from '../../components/InfoCardHeader'; +import { PullRequestBoardOptions } from '../../components/PullRequestBoardOptions'; +import { Wrapper } from '../../components/Wrapper'; +import { SmallPullRequestCard } from '../../components/SmallPullRequestCard'; +import { PullRequestCard } from '../../components/PullRequestCard'; +import { usePullRequestsByTeam } from '../../hooks/usePullRequestsByTeam'; +import { PRCardFormating } from '../../utils/types'; +import { DraftPrIcon } from '../../components/icons/DraftPr' +import { useUserRepositories } from '../../hooks/useUserRepositories'; + +const TeamPullRequestsTable: FunctionComponent = () => { + const [infoCardFormat, setInfoCardFormat] = useState([]); + const { repositories } = useUserRepositories(); + const { loading, pullRequests, refreshPullRequests } = usePullRequestsByTeam(repositories); + + const CardComponent = infoCardFormat.includes('compacted') + ? SmallPullRequestCard + : PullRequestCard; + + const header = ( + + setInfoCardFormat(newFormats)} + value={infoCardFormat} + options={[ + { + icon: , + value: 'draft', + ariaLabel: 'Show draft PRs' + }, + { + icon: , + value: 'compacted', + ariaLabel: 'Cards compacted' + }, + { + icon: , + value: 'fullscreen', + ariaLabel: 'Info card is set to fullscreen' + } + ]} + /> + + ); + + const getContent = () => { + if (loading) { + return ; + } + + return ( + + {pullRequests.length ? ( + pullRequests.map(({ title: columnTitle, content }) => ( + + + {columnTitle} + + {content.map(({ + id, + title, + createdAt, + lastEditedAt, + author, + url, + latestReviews, + repository, + isDraft + }, index) => ( + isDraft ? (infoCardFormat.includes('draft') === isDraft) && + + : + ))} + + )) + ) : ( + No pull requests found + )} + + ); + }; + + return {getContent()}; +}; + +export default TeamPullRequestsTable; diff --git a/plugins/github-pull-requests-board/src/components/TeamPullRequestsTable/index.ts b/plugins/github-pull-requests-board/src/components/TeamPullRequestsTable/index.ts new file mode 100644 index 0000000000..0da871526a --- /dev/null +++ b/plugins/github-pull-requests-board/src/components/TeamPullRequestsTable/index.ts @@ -0,0 +1 @@ +export { default as TeamPullRequestsTable } from './TeamPullRequestsTable'; diff --git a/plugins/github-pull-requests-board/src/components/UserHeader/UserHeader.tsx b/plugins/github-pull-requests-board/src/components/UserHeader/UserHeader.tsx new file mode 100644 index 0000000000..e7f4c1604d --- /dev/null +++ b/plugins/github-pull-requests-board/src/components/UserHeader/UserHeader.tsx @@ -0,0 +1,36 @@ +import React from 'react'; +import { + Typography, + Box, + Avatar, + makeStyles +} from '@material-ui/core'; + +type Props = { + name: string; + avatar?: string; +} + +const useStyles = makeStyles((theme) => ({ + small: { + width: theme.spacing(4), + height: theme.spacing(4), + marginLeft: theme.spacing(1) + } +})); + +const UserHeader = (props: Props) => { + const { name, avatar } = props; + const classes = useStyles(); + + return ( + + + {name} + + + + ); +}; + +export default UserHeader; diff --git a/plugins/github-pull-requests-board/src/components/UserHeader/index.ts b/plugins/github-pull-requests-board/src/components/UserHeader/index.ts new file mode 100644 index 0000000000..7229897183 --- /dev/null +++ b/plugins/github-pull-requests-board/src/components/UserHeader/index.ts @@ -0,0 +1 @@ +export { default as UserHeader } from './UserHeader'; diff --git a/plugins/github-pull-requests-board/src/components/UserHeaderList/UserHeaderList.tsx b/plugins/github-pull-requests-board/src/components/UserHeaderList/UserHeaderList.tsx new file mode 100644 index 0000000000..0f93fbfbc2 --- /dev/null +++ b/plugins/github-pull-requests-board/src/components/UserHeaderList/UserHeaderList.tsx @@ -0,0 +1,24 @@ +import React from 'react'; +import { Typography, Box } from '@material-ui/core'; +import { filterSameUser } from '../../utils/functions'; + +import { UserHeader } from '../UserHeader'; +import { Author } from '../../utils/types'; + +type Props = { + label?: string; + users: Author[]; +} + +const UserHeaderList = (props: Props) => { + const { users, label } = props; + + return ( + + {label && {label}} + {filterSameUser(users).map(({ login, avatarUrl }) => )} + + ); +}; + +export default UserHeaderList; diff --git a/plugins/github-pull-requests-board/src/components/UserHeaderList/index.ts b/plugins/github-pull-requests-board/src/components/UserHeaderList/index.ts new file mode 100644 index 0000000000..88fdb2c4e8 --- /dev/null +++ b/plugins/github-pull-requests-board/src/components/UserHeaderList/index.ts @@ -0,0 +1 @@ +export { default as UserHeaderList } from './UserHeaderList'; diff --git a/plugins/github-pull-requests-board/src/components/Wrapper/Wrapper.tsx b/plugins/github-pull-requests-board/src/components/Wrapper/Wrapper.tsx new file mode 100644 index 0000000000..2197e15a06 --- /dev/null +++ b/plugins/github-pull-requests-board/src/components/Wrapper/Wrapper.tsx @@ -0,0 +1,20 @@ +import React, { PropsWithChildren } from 'react'; +import { Grid, Box } from '@material-ui/core'; + +type Props = { + fullscreen: boolean; +} + +const Wrapper = (props: PropsWithChildren) => { + const { children, fullscreen } = props; + + return ( + + + {children} + + + ) +}; + +export default Wrapper; diff --git a/plugins/github-pull-requests-board/src/components/Wrapper/index.ts b/plugins/github-pull-requests-board/src/components/Wrapper/index.ts new file mode 100644 index 0000000000..50472e028e --- /dev/null +++ b/plugins/github-pull-requests-board/src/components/Wrapper/index.ts @@ -0,0 +1 @@ +export { default as Wrapper } from './Wrapper'; diff --git a/plugins/github-pull-requests-board/src/components/icons/DraftPr/DraftPr.tsx b/plugins/github-pull-requests-board/src/components/icons/DraftPr/DraftPr.tsx new file mode 100644 index 0000000000..22e96f71f3 --- /dev/null +++ b/plugins/github-pull-requests-board/src/components/icons/DraftPr/DraftPr.tsx @@ -0,0 +1,10 @@ +import React from 'react'; + +const DraftPr = () => ( + +); + +export default DraftPr; diff --git a/plugins/github-pull-requests-board/src/components/icons/DraftPr/index.ts b/plugins/github-pull-requests-board/src/components/icons/DraftPr/index.ts new file mode 100644 index 0000000000..a91e0d1cb7 --- /dev/null +++ b/plugins/github-pull-requests-board/src/components/icons/DraftPr/index.ts @@ -0,0 +1 @@ +export { default as DraftPrIcon } from './DraftPr'; diff --git a/plugins/github-pull-requests-board/src/hooks/usePullRequestsByTeam.tsx b/plugins/github-pull-requests-board/src/hooks/usePullRequestsByTeam.tsx new file mode 100644 index 0000000000..42135379b2 --- /dev/null +++ b/plugins/github-pull-requests-board/src/hooks/usePullRequestsByTeam.tsx @@ -0,0 +1,70 @@ +import { useCallback, useEffect, useState } from 'react'; +import { formatPRsByReviewDecision } from '../utils/functions'; +import { PullRequests, PullRequestsColumn } from '../utils/types'; +import { useGetPullRequestsFromRepository } from '../api/useGetPullRequestsFromRepository'; +import { useGetPullRequestDetails } from '../api/useGetPullRequestDetails'; + +export function usePullRequestsByTeam(repositories: string[]) { + const [pullRequests, setPullRequests] = useState([]); + const [loading, setLoading] = useState(true); + const getPullRequests = useGetPullRequestsFromRepository(); + const getPullRequestDetails = useGetPullRequestDetails(); + + const getPRsPerRepository = useCallback(async (repository: string): Promise => { + + const pullRequestsNumbers = await getPullRequests(repository) + + const pullRequestsWithDetails = await Promise.all( + pullRequestsNumbers.map(async ({ node }) => { + const pullRequest = await getPullRequestDetails( + repository, + node.number, + ); + + return pullRequest; + }), + ); + + return pullRequestsWithDetails; + }, [getPullRequests, getPullRequestDetails]); + + const getPRsFromTeam = useCallback( + async (teamRepositories: string[]): Promise => { + + const teamRepositoriesPromises = teamRepositories.map(repository => + getPRsPerRepository(repository), + ); + + const teamPullRequests = await Promise.allSettled(teamRepositoriesPromises) + .then(promises => promises.reduce((acc, curr) => { + if (curr.status === 'fulfilled') { + return [...acc, ...curr.value]; + } + return acc; + },[] as PullRequests) + ); + + return teamPullRequests; + }, + [getPRsPerRepository], + ); + + const getAllPullRequests = useCallback(async () => { + setLoading(true); + + const teamPullRequests = await getPRsFromTeam(repositories); + setPullRequests(formatPRsByReviewDecision(teamPullRequests)); + setLoading(false); + + }, [getPRsFromTeam, repositories]); + + useEffect(() => { + getAllPullRequests() + }, [getAllPullRequests]); + + return { + pullRequests, + loading, + refreshPullRequests: getAllPullRequests, + }; +} diff --git a/plugins/github-pull-requests-board/src/hooks/useUserRepositories.tsx b/plugins/github-pull-requests-board/src/hooks/useUserRepositories.tsx new file mode 100644 index 0000000000..a463734a60 --- /dev/null +++ b/plugins/github-pull-requests-board/src/hooks/useUserRepositories.tsx @@ -0,0 +1,34 @@ +import { useApi } from '@backstage/core-plugin-api'; +import { useEntity, catalogApiRef } from '@backstage/plugin-catalog-react'; +import { useCallback, useEffect, useState } from 'react'; +import { getProjectNameFromEntity } from '../utils/functions'; + +export function useUserRepositories() { + const { entity: teamEntity } = useEntity(); + const catalogApi = useApi(catalogApiRef); + const [repositories, setRepositories] = useState([]); + + const getRepositoriesNames = useCallback(async () => { + const entitiesList = await catalogApi.getEntities({ + filter: { + kind: 'Component', + 'spec.type': 'service', + 'spec.owner': teamEntity?.metadata?.name, + }, + }); + + const entitiesNames: string[] = entitiesList.items.map(componentEntity => + getProjectNameFromEntity(componentEntity) + ); + + setRepositories([...new Set(entitiesNames)]); + }, [catalogApi, teamEntity?.metadata?.name]); + + useEffect(() => { + getRepositoriesNames() + }, [getRepositoriesNames]); + + return { + repositories, + }; +} diff --git a/plugins/github-pull-requests-board/src/index.ts b/plugins/github-pull-requests-board/src/index.ts new file mode 100644 index 0000000000..4c22dc54be --- /dev/null +++ b/plugins/github-pull-requests-board/src/index.ts @@ -0,0 +1 @@ +export { TeamPullRequestsTable, TeamPullRequestsPage } from './plugin'; diff --git a/plugins/github-pull-requests-board/src/plugin.test.ts b/plugins/github-pull-requests-board/src/plugin.test.ts new file mode 100644 index 0000000000..4bef78d8ee --- /dev/null +++ b/plugins/github-pull-requests-board/src/plugin.test.ts @@ -0,0 +1,7 @@ +import { TeamPullRequestsTable } from './plugin'; + +describe('github-pull-requests-board', () => { + it('should export TeamPullRequestsTable', () => { + expect(TeamPullRequestsTable).toBeDefined(); + }); +}); diff --git a/plugins/github-pull-requests-board/src/plugin.ts b/plugins/github-pull-requests-board/src/plugin.ts new file mode 100644 index 0000000000..aef2782579 --- /dev/null +++ b/plugins/github-pull-requests-board/src/plugin.ts @@ -0,0 +1,34 @@ +import { + createPlugin, + createComponentExtension, + createRoutableExtension, +} from '@backstage/core-plugin-api'; +import { rootRouteRef } from './routes'; + +const githubPullRequestsBoardPlugin = createPlugin({ + id: 'github-pull-requests-board', + routes: { + root: rootRouteRef, + }, +}); + +export const TeamPullRequestsTable = githubPullRequestsBoardPlugin.provide( + createComponentExtension({ + name: 'TeamPullRequestsTable', + component: { + lazy: () => + import('./components/TeamPullRequestsTable').then( + m => m.TeamPullRequestsTable, + ), + }, + }), +); + +export const TeamPullRequestsPage = githubPullRequestsBoardPlugin.provide( + createRoutableExtension({ + name: 'PullRequestPage', + component: () => + import('./components/TeamPullRequestsPage').then(m => m.TeamPullRequestsPage), + mountPoint: rootRouteRef, + }), +); diff --git a/plugins/github-pull-requests-board/src/routes.ts b/plugins/github-pull-requests-board/src/routes.ts new file mode 100644 index 0000000000..170bb9fbfe --- /dev/null +++ b/plugins/github-pull-requests-board/src/routes.ts @@ -0,0 +1,5 @@ +import { createRouteRef } from '@backstage/core-plugin-api'; + +export const rootRouteRef = createRouteRef({ + id: 'github-pull-requests-board', +}); diff --git a/plugins/github-pull-requests-board/src/setupTests.ts b/plugins/github-pull-requests-board/src/setupTests.ts new file mode 100644 index 0000000000..48c09b5346 --- /dev/null +++ b/plugins/github-pull-requests-board/src/setupTests.ts @@ -0,0 +1,2 @@ +import '@testing-library/jest-dom'; +import 'cross-fetch/polyfill'; diff --git a/plugins/github-pull-requests-board/src/utils/constants.ts b/plugins/github-pull-requests-board/src/utils/constants.ts new file mode 100644 index 0000000000..05cef50634 --- /dev/null +++ b/plugins/github-pull-requests-board/src/utils/constants.ts @@ -0,0 +1,5 @@ +export const COLUMNS = Object.freeze({ + REVIEW_REQUIRED: '🔍 Review required', + REVIEW_IN_PROGRESS: '📝 Review in progress', + APPROVED: '👍 Approved' +}) diff --git a/plugins/github-pull-requests-board/src/utils/functions.ts b/plugins/github-pull-requests-board/src/utils/functions.ts new file mode 100644 index 0000000000..c005d0ba8e --- /dev/null +++ b/plugins/github-pull-requests-board/src/utils/functions.ts @@ -0,0 +1,77 @@ +import { Entity } from '@backstage/catalog-model'; +import moment from 'moment'; +import { Reviews, PullRequests, ReviewDecision, PullRequestsColumn, Author } from './types'; +import { COLUMNS } from './constants'; + +const GITHUB_PULL_REQUESTS_ANNOTATION = 'github.com/project-slug'; + + +export const getProjectNameFromEntity = (entity: Entity): string => { + return entity?.metadata.annotations?.[GITHUB_PULL_REQUESTS_ANNOTATION] ?? ''; +}; + +export const getApprovedReviews = (reviews: Reviews = []): Reviews => { + return reviews.filter(({ state }) => state === 'APPROVED'); +}; + +export const getCommentedReviews = (reviews: Reviews = []): Reviews => { + return reviews.filter(({ state }) => state === 'COMMENTED'); +}; +export const getChangeRequests = (reviews: Reviews = []): Reviews => { + return reviews.filter(({ state }) => state === 'CHANGES_REQUESTED'); +}; + +export const filterSameUser = (users: Author[]): Author[] => { + return users.reduce((acc, curr) => { + const contaisUser = acc.find(({ login }) => login === curr.login); + + if(!contaisUser) { + return [ ...acc, curr ]; + } + + return acc; + }, [] as Author[]); +} + +export const getElapsedTime = (start: string): string => { + return moment(start).fromNow(); +}; + +export const formatPRsByReviewDecision = (prs: PullRequests): PullRequestsColumn[] => { + const reviewDecisions = prs.reduce((acc, curr) => { + const decision = curr.reviewDecision || 'REVIEW_REQUIRED'; + + if(decision !== 'APPROVED' && curr.latestReviews.nodes.length === 0) { + return { + ...acc, + REVIEW_REQUIRED: [...acc.REVIEW_REQUIRED, curr] + } + } + + if(decision !== 'APPROVED' && curr.latestReviews.nodes.length > 0) { + return { + ...acc, + IN_PROGRESS: [...acc.IN_PROGRESS, curr] + } + } + + if(decision === 'APPROVED') { + return { + ...acc, + APPROVED: [...acc.APPROVED, curr] + } + } + + return acc; + }, { + REVIEW_REQUIRED: [], + IN_PROGRESS: [], + APPROVED: [] + } as Record); + + return [ + { title: COLUMNS.REVIEW_REQUIRED, content: reviewDecisions.REVIEW_REQUIRED }, + { title: COLUMNS.REVIEW_IN_PROGRESS, content: reviewDecisions.IN_PROGRESS }, + { title: COLUMNS.APPROVED, content: reviewDecisions.APPROVED }, + ]; +}; \ No newline at end of file diff --git a/plugins/github-pull-requests-board/src/utils/types.tsx b/plugins/github-pull-requests-board/src/utils/types.tsx new file mode 100644 index 0000000000..789aa8a704 --- /dev/null +++ b/plugins/github-pull-requests-board/src/utils/types.tsx @@ -0,0 +1,69 @@ +export type GraphQlPullRequest = { + repository: { + pullRequest: T + } +} + +export type GraphQlPullRequests = { + repository: { + pullRequests: { + edges: T + } + } +} + +export type PullRequestsNumber = { + node: { + number: number; + } +} + +export type Review = { + state: + | 'PENDING' + | 'COMMENTED' + | 'APPROVED' + | 'CHANGES_REQUESTED' + | 'DISMISSED'; + author: Author; +}; + +export type Reviews = Review[]; + +export type Author = { + login: string; + avatarUrl: string; + id: string; + email: string; + name: string; +}; + +export type PullRequest = { + id: string; + repository: { + name: string; + }; + title: string; + url: string; + lastEditedAt: string; + latestReviews: { + nodes: Reviews; + }; + mergeable: boolean; + state: string; + reviewDecision: ReviewDecision | null; + isDraft: boolean; + createdAt: string; + author: Author +}; + +export type PullRequests = PullRequest[]; + +export type PullRequestsColumn = { + title: string; + content: PullRequests; +}; + +export type PRCardFormating = 'compacted' | 'fullscreen' | 'draft'; + +export type ReviewDecision = 'IN_PROGRESS' | 'APPROVED' | 'REVIEW_REQUIRED' \ No newline at end of file From ed77c0af0d8ee4fa99dc1a9f700ab4c3e33efef7 Mon Sep 17 00:00:00 2001 From: Talita Gregory Nunes Freire Date: Fri, 22 Apr 2022 16:29:03 +0200 Subject: [PATCH 02/21] feat: copyright added in all files Signed-off-by: Talita Gregory Nunes Freire --- .../github-pull-requests-board/package.json | 15 + .../src/api/useGetPullRequestDetails.ts | 15 + .../api/useGetPullRequestsFromRepository.ts | 15 + .../src/api/useOctokitGraphQl.ts | 15 + .../src/components/Card/Card.tsx | 17 +- .../src/components/Card/CardHeader.tsx | 15 + .../src/components/Card/index.ts | 15 + .../InfoCardHeader/InfoCardHeader.tsx | 15 + .../src/components/InfoCardHeader/index.ts | 15 + .../PullRequestBoardOptions.tsx | 15 + .../PullRequestBoardOptions/index.ts | 15 + .../PullRequestCard/PullRequestCard.tsx | 19 +- .../src/components/PullRequestCard/index.ts | 15 + .../SmallPullRequestCard.tsx | 74 -- .../components/SmallPullRequestCard/index.ts | 1 - .../TeamPullRequestsPage.tsx | 30 +- .../TeamPullRequestsTable.tsx | 30 +- .../src/components/UserHeader/UserHeader.tsx | 15 + .../src/components/UserHeader/index.ts | 15 + .../UserHeaderList/UserHeaderList.tsx | 15 + .../src/components/UserHeaderList/index.ts | 15 + .../src/components/Wrapper/Wrapper.tsx | 15 + .../src/components/Wrapper/index.ts | 15 + .../src/components/icons/DraftPr/DraftPr.tsx | 15 + .../src/components/icons/DraftPr/index.ts | 15 + .../src/hooks/usePullRequestsByTeam.tsx | 21 +- .../src/hooks/useUserRepositories.tsx | 15 + .../github-pull-requests-board/src/index.ts | 15 + .../src/plugin.test.ts | 20 +- .../github-pull-requests-board/src/plugin.ts | 15 + .../github-pull-requests-board/src/routes.ts | 15 + .../src/setupTests.ts | 15 + .../src/utils/constants.ts | 15 + .../src/utils/functions.ts | 15 + .../src/utils/types.tsx | 15 + yarn.lock | 942 +++++++++++++++++- 36 files changed, 1419 insertions(+), 140 deletions(-) delete mode 100644 plugins/github-pull-requests-board/src/components/SmallPullRequestCard/SmallPullRequestCard.tsx delete mode 100644 plugins/github-pull-requests-board/src/components/SmallPullRequestCard/index.ts diff --git a/plugins/github-pull-requests-board/package.json b/plugins/github-pull-requests-board/package.json index dc61fc7cde..2ffcd90bd1 100644 --- a/plugins/github-pull-requests-board/package.json +++ b/plugins/github-pull-requests-board/package.json @@ -1,5 +1,6 @@ { "name": "@backstage/plugin-github-pull-requests-board", + "description": "A Backstage plugin that allows you to see all open Pull Requests for all the repositories owned by your team", "version": "0.1.0", "main": "src/index.ts", "types": "src/index.ts", @@ -9,6 +10,20 @@ "main": "dist/index.esm.js", "types": "dist/index.d.ts" }, + "backstage": { + "role": "frontend-plugin" + }, + "homepage": "https://backstage.io", + "repository": { + "type": "git", + "url": "https://github.com/backstage/backstage", + "directory": "plugins/github-pull-requests-board" + }, + "keywords": [ + "backstage", + "github", + "pull requests" + ], "scripts": { "build": "backstage-cli plugin:build", "start": "backstage-cli plugin:serve", diff --git a/plugins/github-pull-requests-board/src/api/useGetPullRequestDetails.ts b/plugins/github-pull-requests-board/src/api/useGetPullRequestDetails.ts index 0732f86683..05bbdc1e75 100644 --- a/plugins/github-pull-requests-board/src/api/useGetPullRequestDetails.ts +++ b/plugins/github-pull-requests-board/src/api/useGetPullRequestDetails.ts @@ -1,3 +1,18 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import React from 'react'; import { GraphQlPullRequest, PullRequest } from '../utils/types'; diff --git a/plugins/github-pull-requests-board/src/api/useGetPullRequestsFromRepository.ts b/plugins/github-pull-requests-board/src/api/useGetPullRequestsFromRepository.ts index d03cca43d3..2dd19d8087 100644 --- a/plugins/github-pull-requests-board/src/api/useGetPullRequestsFromRepository.ts +++ b/plugins/github-pull-requests-board/src/api/useGetPullRequestsFromRepository.ts @@ -1,3 +1,18 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import React from 'react'; import { GraphQlPullRequests, PullRequestsNumber } from '../utils/types'; diff --git a/plugins/github-pull-requests-board/src/api/useOctokitGraphQl.ts b/plugins/github-pull-requests-board/src/api/useOctokitGraphQl.ts index 36e53bcfb9..2460588987 100644 --- a/plugins/github-pull-requests-board/src/api/useOctokitGraphQl.ts +++ b/plugins/github-pull-requests-board/src/api/useOctokitGraphQl.ts @@ -1,3 +1,18 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import { Octokit } from '@octokit/rest'; import { useApi, githubAuthApiRef } from '@backstage/core-plugin-api'; diff --git a/plugins/github-pull-requests-board/src/components/Card/Card.tsx b/plugins/github-pull-requests-board/src/components/Card/Card.tsx index 8e1067aa1d..661416edbe 100644 --- a/plugins/github-pull-requests-board/src/components/Card/Card.tsx +++ b/plugins/github-pull-requests-board/src/components/Card/Card.tsx @@ -1,3 +1,18 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import React, { PropsWithChildren, FunctionComponent } from 'react'; import { Box, Paper, CardActionArea } from '@material-ui/core'; import CardHeader from './CardHeader'; @@ -37,7 +52,7 @@ const Card: FunctionComponent = (props: PropsWithChildren) => { authorAvatar={authorAvatar} repositoryName={repositoryName} /> - { children } + {children} diff --git a/plugins/github-pull-requests-board/src/components/Card/CardHeader.tsx b/plugins/github-pull-requests-board/src/components/Card/CardHeader.tsx index 79e936f37d..99eb0f63bf 100644 --- a/plugins/github-pull-requests-board/src/components/Card/CardHeader.tsx +++ b/plugins/github-pull-requests-board/src/components/Card/CardHeader.tsx @@ -1,3 +1,18 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import React from 'react'; import { Typography, Box } from '@material-ui/core'; import { getElapsedTime } from '../../utils/functions'; diff --git a/plugins/github-pull-requests-board/src/components/Card/index.ts b/plugins/github-pull-requests-board/src/components/Card/index.ts index 06c3388d6c..527bd23115 100644 --- a/plugins/github-pull-requests-board/src/components/Card/index.ts +++ b/plugins/github-pull-requests-board/src/components/Card/index.ts @@ -1 +1,16 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export { default as Card } from './Card'; diff --git a/plugins/github-pull-requests-board/src/components/InfoCardHeader/InfoCardHeader.tsx b/plugins/github-pull-requests-board/src/components/InfoCardHeader/InfoCardHeader.tsx index 24c1393dd2..47bab88693 100644 --- a/plugins/github-pull-requests-board/src/components/InfoCardHeader/InfoCardHeader.tsx +++ b/plugins/github-pull-requests-board/src/components/InfoCardHeader/InfoCardHeader.tsx @@ -1,3 +1,18 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import React, { PropsWithChildren } from 'react'; import { Typography, Box, IconButton } from '@material-ui/core'; import RefreshIcon from '@material-ui/icons/Refresh'; diff --git a/plugins/github-pull-requests-board/src/components/InfoCardHeader/index.ts b/plugins/github-pull-requests-board/src/components/InfoCardHeader/index.ts index ad044f42a8..393a04af55 100644 --- a/plugins/github-pull-requests-board/src/components/InfoCardHeader/index.ts +++ b/plugins/github-pull-requests-board/src/components/InfoCardHeader/index.ts @@ -1 +1,16 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export { default as InfoCardHeader } from './InfoCardHeader'; diff --git a/plugins/github-pull-requests-board/src/components/PullRequestBoardOptions/PullRequestBoardOptions.tsx b/plugins/github-pull-requests-board/src/components/PullRequestBoardOptions/PullRequestBoardOptions.tsx index 98f52c4970..e914b774b3 100644 --- a/plugins/github-pull-requests-board/src/components/PullRequestBoardOptions/PullRequestBoardOptions.tsx +++ b/plugins/github-pull-requests-board/src/components/PullRequestBoardOptions/PullRequestBoardOptions.tsx @@ -1,3 +1,18 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import React, { ReactNode } from 'react'; import { ToggleButton, ToggleButtonGroup } from '@material-ui/lab'; import { Tooltip, Box } from '@material-ui/core'; diff --git a/plugins/github-pull-requests-board/src/components/PullRequestBoardOptions/index.ts b/plugins/github-pull-requests-board/src/components/PullRequestBoardOptions/index.ts index 31b4198239..793ae8d0b7 100644 --- a/plugins/github-pull-requests-board/src/components/PullRequestBoardOptions/index.ts +++ b/plugins/github-pull-requests-board/src/components/PullRequestBoardOptions/index.ts @@ -1 +1,16 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export { default as PullRequestBoardOptions } from './PullRequestBoardOptions'; diff --git a/plugins/github-pull-requests-board/src/components/PullRequestCard/PullRequestCard.tsx b/plugins/github-pull-requests-board/src/components/PullRequestCard/PullRequestCard.tsx index 66d4fbcf29..2884f728d3 100644 --- a/plugins/github-pull-requests-board/src/components/PullRequestCard/PullRequestCard.tsx +++ b/plugins/github-pull-requests-board/src/components/PullRequestCard/PullRequestCard.tsx @@ -1,3 +1,18 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import React, { FunctionComponent } from 'react'; import { getApprovedReviews, getChangeRequests, getCommentedReviews } from '../../utils/functions'; import { Reviews, Author } from '../../utils/types'; @@ -44,7 +59,7 @@ const PullRequestCard: FunctionComponent = (props: Props) => { prUrl={url} > {!!approvedReviews.length && ( - reviewAuthor)}/> + reviewAuthor)} /> )} {!!commentsReviews.length && ( = (props: Props) => { /> )} {!!changeRequests.length && ( - reviewAuthor)}/> + reviewAuthor)} /> )} ); diff --git a/plugins/github-pull-requests-board/src/components/PullRequestCard/index.ts b/plugins/github-pull-requests-board/src/components/PullRequestCard/index.ts index ed77163680..86da8f79af 100644 --- a/plugins/github-pull-requests-board/src/components/PullRequestCard/index.ts +++ b/plugins/github-pull-requests-board/src/components/PullRequestCard/index.ts @@ -1 +1,16 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export { default as PullRequestCard } from './PullRequestCard'; diff --git a/plugins/github-pull-requests-board/src/components/SmallPullRequestCard/SmallPullRequestCard.tsx b/plugins/github-pull-requests-board/src/components/SmallPullRequestCard/SmallPullRequestCard.tsx deleted file mode 100644 index 3bf53b4487..0000000000 --- a/plugins/github-pull-requests-board/src/components/SmallPullRequestCard/SmallPullRequestCard.tsx +++ /dev/null @@ -1,74 +0,0 @@ -import React, { FunctionComponent } from 'react'; -import { Box, Chip } from '@material-ui/core'; -import { getApprovedReviews, getCommentedReviews } from '../../utils/functions'; -import { Card } from '../Card'; -import { Reviews, Author } from '../../utils/types'; - -type Props = { - title: string; - createdAt: string; - updatedAt?: string; - author: Author; - url: string; - reviews: Reviews; - repositoryName: string; - isDraft: boolean; -} - -const SmallPullRequestCard: FunctionComponent = (props: Props) => { - const { - title, - createdAt, - updatedAt, - author, - url, - reviews, - repositoryName, - isDraft, - } = props; - - const approvedReviews = getApprovedReviews(reviews); - const commentsReviews = getCommentedReviews(reviews); - - const containReviews = !!approvedReviews.length || !!commentsReviews.length; - const cardTitle = isDraft ? `🔧 DRAFT - ${title}` : title; - - return ( - - { - containReviews && ( - - {!!approvedReviews.length && ( - - - - )} - {!!commentsReviews.length && ( - - )} - - ) - } - - ); -}; - -export default SmallPullRequestCard; diff --git a/plugins/github-pull-requests-board/src/components/SmallPullRequestCard/index.ts b/plugins/github-pull-requests-board/src/components/SmallPullRequestCard/index.ts deleted file mode 100644 index eeffd436d8..0000000000 --- a/plugins/github-pull-requests-board/src/components/SmallPullRequestCard/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as SmallPullRequestCard } from './SmallPullRequestCard'; diff --git a/plugins/github-pull-requests-board/src/components/TeamPullRequestsPage/TeamPullRequestsPage.tsx b/plugins/github-pull-requests-board/src/components/TeamPullRequestsPage/TeamPullRequestsPage.tsx index eccb0b29b3..be388e24e9 100644 --- a/plugins/github-pull-requests-board/src/components/TeamPullRequestsPage/TeamPullRequestsPage.tsx +++ b/plugins/github-pull-requests-board/src/components/TeamPullRequestsPage/TeamPullRequestsPage.tsx @@ -1,12 +1,25 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import React, { FunctionComponent, useState } from 'react'; import { Grid, Typography } from '@material-ui/core'; -import ViewModuleIcon from '@material-ui/icons/ViewModule'; import { Progress, InfoCard } from '@backstage/core-components'; import { InfoCardHeader } from '../../components/InfoCardHeader'; import { PullRequestBoardOptions } from '../../components/PullRequestBoardOptions'; import { Wrapper } from '../../components/Wrapper'; -import { SmallPullRequestCard } from '../../components/SmallPullRequestCard'; import { PullRequestCard } from '../../components/PullRequestCard'; import { usePullRequestsByTeam } from '../../hooks/usePullRequestsByTeam'; import { PRCardFormating } from '../../utils/types'; @@ -18,21 +31,12 @@ const TeamPullRequestsPage: FunctionComponent = () => { const { repositories } = useUserRepositories(); const { loading, pullRequests, refreshPullRequests } = usePullRequestsByTeam(repositories); - const CardComponent = infoCardFormat.includes('compacted') - ? SmallPullRequestCard - : PullRequestCard; - const header = ( setInfoCardFormat(newFormats)} value={infoCardFormat} options={[ - { - icon: , - value: 'compacted', - ariaLabel: 'Cards compacted' - }, { icon: , value: 'draft', @@ -71,7 +75,7 @@ const TeamPullRequestsPage: FunctionComponent = () => { isDraft }, index) => ( isDraft ? (infoCardFormat.includes('draft') === isDraft) && - { repositoryName={repository.name} isDraft={isDraft} /> - : { const { repositories } = useUserRepositories(); const { loading, pullRequests, refreshPullRequests } = usePullRequestsByTeam(repositories); - const CardComponent = infoCardFormat.includes('compacted') - ? SmallPullRequestCard - : PullRequestCard; - const header = ( { value: 'draft', ariaLabel: 'Show draft PRs' }, - { - icon: , - value: 'compacted', - ariaLabel: 'Cards compacted' - }, { icon: , value: 'fullscreen', @@ -78,7 +82,7 @@ const TeamPullRequestsTable: FunctionComponent = () => { isDraft }, index) => ( isDraft ? (infoCardFormat.includes('draft') === isDraft) && - { repositoryName={repository.name} isDraft={isDraft} /> - : ( diff --git a/plugins/github-pull-requests-board/src/components/icons/DraftPr/index.ts b/plugins/github-pull-requests-board/src/components/icons/DraftPr/index.ts index a91e0d1cb7..f2ef0a43c1 100644 --- a/plugins/github-pull-requests-board/src/components/icons/DraftPr/index.ts +++ b/plugins/github-pull-requests-board/src/components/icons/DraftPr/index.ts @@ -1 +1,16 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export { default as DraftPrIcon } from './DraftPr'; diff --git a/plugins/github-pull-requests-board/src/hooks/usePullRequestsByTeam.tsx b/plugins/github-pull-requests-board/src/hooks/usePullRequestsByTeam.tsx index 42135379b2..ce2636d5a2 100644 --- a/plugins/github-pull-requests-board/src/hooks/usePullRequestsByTeam.tsx +++ b/plugins/github-pull-requests-board/src/hooks/usePullRequestsByTeam.tsx @@ -1,3 +1,18 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import { useCallback, useEffect, useState } from 'react'; import { formatPRsByReviewDecision } from '../utils/functions'; import { PullRequests, PullRequestsColumn } from '../utils/types'; @@ -36,13 +51,13 @@ export function usePullRequestsByTeam(repositories: string[]) { ); const teamPullRequests = await Promise.allSettled(teamRepositoriesPromises) - .then(promises => promises.reduce((acc, curr) => { + .then(promises => promises.reduce((acc, curr) => { if (curr.status === 'fulfilled') { return [...acc, ...curr.value]; } return acc; - },[] as PullRequests) - ); + }, [] as PullRequests) + ); return teamPullRequests; }, diff --git a/plugins/github-pull-requests-board/src/hooks/useUserRepositories.tsx b/plugins/github-pull-requests-board/src/hooks/useUserRepositories.tsx index a463734a60..f974e7e457 100644 --- a/plugins/github-pull-requests-board/src/hooks/useUserRepositories.tsx +++ b/plugins/github-pull-requests-board/src/hooks/useUserRepositories.tsx @@ -1,3 +1,18 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import { useApi } from '@backstage/core-plugin-api'; import { useEntity, catalogApiRef } from '@backstage/plugin-catalog-react'; import { useCallback, useEffect, useState } from 'react'; diff --git a/plugins/github-pull-requests-board/src/index.ts b/plugins/github-pull-requests-board/src/index.ts index 4c22dc54be..684b62f8cd 100644 --- a/plugins/github-pull-requests-board/src/index.ts +++ b/plugins/github-pull-requests-board/src/index.ts @@ -1 +1,16 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export { TeamPullRequestsTable, TeamPullRequestsPage } from './plugin'; diff --git a/plugins/github-pull-requests-board/src/plugin.test.ts b/plugins/github-pull-requests-board/src/plugin.test.ts index 4bef78d8ee..c12c8b1f06 100644 --- a/plugins/github-pull-requests-board/src/plugin.test.ts +++ b/plugins/github-pull-requests-board/src/plugin.test.ts @@ -1,7 +1,25 @@ -import { TeamPullRequestsTable } from './plugin'; +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { TeamPullRequestsTable, TeamPullRequestsPage } from './plugin'; describe('github-pull-requests-board', () => { it('should export TeamPullRequestsTable', () => { expect(TeamPullRequestsTable).toBeDefined(); }); + it('should export TeamPullRequestsPage', () => { + expect(TeamPullRequestsPage).toBeDefined(); + }); }); diff --git a/plugins/github-pull-requests-board/src/plugin.ts b/plugins/github-pull-requests-board/src/plugin.ts index aef2782579..38edd7562e 100644 --- a/plugins/github-pull-requests-board/src/plugin.ts +++ b/plugins/github-pull-requests-board/src/plugin.ts @@ -1,3 +1,18 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import { createPlugin, createComponentExtension, diff --git a/plugins/github-pull-requests-board/src/routes.ts b/plugins/github-pull-requests-board/src/routes.ts index 170bb9fbfe..13e21ecacf 100644 --- a/plugins/github-pull-requests-board/src/routes.ts +++ b/plugins/github-pull-requests-board/src/routes.ts @@ -1,3 +1,18 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import { createRouteRef } from '@backstage/core-plugin-api'; export const rootRouteRef = createRouteRef({ diff --git a/plugins/github-pull-requests-board/src/setupTests.ts b/plugins/github-pull-requests-board/src/setupTests.ts index 48c09b5346..9bb3e72355 100644 --- a/plugins/github-pull-requests-board/src/setupTests.ts +++ b/plugins/github-pull-requests-board/src/setupTests.ts @@ -1,2 +1,17 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import '@testing-library/jest-dom'; import 'cross-fetch/polyfill'; diff --git a/plugins/github-pull-requests-board/src/utils/constants.ts b/plugins/github-pull-requests-board/src/utils/constants.ts index 05cef50634..22b23b259d 100644 --- a/plugins/github-pull-requests-board/src/utils/constants.ts +++ b/plugins/github-pull-requests-board/src/utils/constants.ts @@ -1,3 +1,18 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export const COLUMNS = Object.freeze({ REVIEW_REQUIRED: '🔍 Review required', REVIEW_IN_PROGRESS: '📝 Review in progress', diff --git a/plugins/github-pull-requests-board/src/utils/functions.ts b/plugins/github-pull-requests-board/src/utils/functions.ts index c005d0ba8e..55915bdbc2 100644 --- a/plugins/github-pull-requests-board/src/utils/functions.ts +++ b/plugins/github-pull-requests-board/src/utils/functions.ts @@ -1,3 +1,18 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import { Entity } from '@backstage/catalog-model'; import moment from 'moment'; import { Reviews, PullRequests, ReviewDecision, PullRequestsColumn, Author } from './types'; diff --git a/plugins/github-pull-requests-board/src/utils/types.tsx b/plugins/github-pull-requests-board/src/utils/types.tsx index 789aa8a704..b8ae1058f0 100644 --- a/plugins/github-pull-requests-board/src/utils/types.tsx +++ b/plugins/github-pull-requests-board/src/utils/types.tsx @@ -1,3 +1,18 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export type GraphQlPullRequest = { repository: { pullRequest: T diff --git a/yarn.lock b/yarn.lock index 79492064a9..d456b5e8e4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -354,6 +354,27 @@ json5 "^2.1.2" semver "^6.3.0" +"@babel/core@^7.7.5": + version "7.17.9" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.17.9.tgz#6bae81a06d95f4d0dec5bb9d74bbc1f58babdcfe" + integrity sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw== + dependencies: + "@ampproject/remapping" "^2.1.0" + "@babel/code-frame" "^7.16.7" + "@babel/generator" "^7.17.9" + "@babel/helper-compilation-targets" "^7.17.7" + "@babel/helper-module-transforms" "^7.17.7" + "@babel/helpers" "^7.17.9" + "@babel/parser" "^7.17.9" + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.17.9" + "@babel/types" "^7.17.0" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.1" + semver "^6.3.0" + "@babel/generator@^7.14.0", "@babel/generator@^7.16.8", "@babel/generator@^7.7.2": version "7.16.8" resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.16.8.tgz#359d44d966b8cd059d543250ce79596f792f2ebe" @@ -372,6 +393,15 @@ jsesc "^2.5.1" source-map "^0.5.0" +"@babel/generator@^7.17.9": + version "7.17.9" + resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.17.9.tgz#f4af9fd38fa8de143c29fce3f71852406fc1e2fc" + integrity sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ== + dependencies: + "@babel/types" "^7.17.0" + jsesc "^2.5.1" + source-map "^0.5.0" + "@babel/helper-annotate-as-pure@^7.16.7": version "7.16.7" resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz#bb2339a7534a9c128e3102024c60760a3a7f3862" @@ -465,6 +495,14 @@ "@babel/template" "^7.16.7" "@babel/types" "^7.16.7" +"@babel/helper-function-name@^7.17.9": + version "7.17.9" + resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz#136fcd54bc1da82fcb47565cf16fd8e444b1ff12" + integrity sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg== + dependencies: + "@babel/template" "^7.16.7" + "@babel/types" "^7.17.0" + "@babel/helper-get-function-arity@^7.16.7": version "7.16.7" resolved "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz#ea08ac753117a669f1508ba06ebcc49156387419" @@ -619,6 +657,15 @@ "@babel/traverse" "^7.17.3" "@babel/types" "^7.17.0" +"@babel/helpers@^7.17.9": + version "7.17.9" + resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.9.tgz#b2af120821bfbe44f9907b1826e168e819375a1a" + integrity sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q== + dependencies: + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.17.9" + "@babel/types" "^7.17.0" + "@babel/highlight@^7.0.0", "@babel/highlight@^7.16.7": version "7.16.10" resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz#744f2eb81579d6eea753c227b0f570ad785aba88" @@ -628,7 +675,7 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.13.16", "@babel/parser@^7.14.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.10", "@babel/parser@^7.16.12", "@babel/parser@^7.16.7", "@babel/parser@^7.16.8", "@babel/parser@^7.17.3", "@babel/parser@^7.17.8": +"@babel/parser@^7.1.0", "@babel/parser@^7.13.16", "@babel/parser@^7.14.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.10", "@babel/parser@^7.16.12", "@babel/parser@^7.16.7", "@babel/parser@^7.16.8", "@babel/parser@^7.17.3", "@babel/parser@^7.17.8", "@babel/parser@^7.17.9": version "7.17.9" resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.17.9.tgz#9c94189a6062f0291418ca021077983058e171ef" integrity sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg== @@ -1380,6 +1427,22 @@ "@babel/parser" "^7.16.7" "@babel/types" "^7.16.7" +"@babel/traverse@^7.1.0", "@babel/traverse@^7.17.9": + version "7.17.9" + resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.9.tgz#1f9b207435d9ae4a8ed6998b2b82300d83c37a0d" + integrity sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw== + dependencies: + "@babel/code-frame" "^7.16.7" + "@babel/generator" "^7.17.9" + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-function-name" "^7.17.9" + "@babel/helper-hoist-variables" "^7.16.7" + "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/parser" "^7.17.9" + "@babel/types" "^7.17.0" + debug "^4.1.0" + globals "^11.1.0" + "@babel/traverse@^7.13.0", "@babel/traverse@^7.14.0", "@babel/traverse@^7.16.10", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.4.5", "@babel/traverse@^7.7.2": version "7.16.10" resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.10.tgz#448f940defbe95b5a8029975b051f75993e8239f" @@ -2600,7 +2663,7 @@ prop-types "^15.6.2" scheduler "^0.19.1" -"@hot-loader/react-dom-v17@npm:@hot-loader/react-dom@^17.0.2": +"@hot-loader/react-dom-v17@npm:@hot-loader/react-dom@^17.0.2", "@hot-loader/react-dom@^17.0.2": version "17.0.2" resolved "https://registry.npmjs.org/@hot-loader/react-dom/-/react-dom-17.0.2.tgz#0b24e484093e8f97eb5c72bebdda44fc20bc8400" integrity sha512-G2RZrFhsQClS+bdDh/Ojpk3SgocLPUGnvnJDTQYnmKSSwXtU+Yh+8QMs+Ia3zaAvBiOSpIIDSUxuN69cvKqrWg== @@ -2658,6 +2721,18 @@ resolved "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd" integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw== +"@jest/console@^26.6.2": + version "26.6.2" + resolved "https://registry.npmjs.org/@jest/console/-/console-26.6.2.tgz#4e04bc464014358b03ab4937805ee36a0aeb98f2" + integrity sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g== + dependencies: + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + jest-message-util "^26.6.2" + jest-util "^26.6.2" + slash "^3.0.0" + "@jest/console@^27.5.1": version "27.5.1" resolved "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz#260fe7239602fe5130a94f1aa386eff54b014bba" @@ -2670,6 +2745,40 @@ jest-util "^27.5.1" slash "^3.0.0" +"@jest/core@^26.6.3": + version "26.6.3" + resolved "https://registry.npmjs.org/@jest/core/-/core-26.6.3.tgz#7639fcb3833d748a4656ada54bde193051e45fad" + integrity sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw== + dependencies: + "@jest/console" "^26.6.2" + "@jest/reporters" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.4" + jest-changed-files "^26.6.2" + jest-config "^26.6.3" + jest-haste-map "^26.6.2" + jest-message-util "^26.6.2" + jest-regex-util "^26.0.0" + jest-resolve "^26.6.2" + jest-resolve-dependencies "^26.6.3" + jest-runner "^26.6.3" + jest-runtime "^26.6.3" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" + jest-watcher "^26.6.2" + micromatch "^4.0.2" + p-each-series "^2.1.0" + rimraf "^3.0.0" + slash "^3.0.0" + strip-ansi "^6.0.0" + "@jest/core@^27.5.1": version "27.5.1" resolved "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz#267ac5f704e09dc52de2922cbf3af9edcd64b626" @@ -2704,6 +2813,16 @@ slash "^3.0.0" strip-ansi "^6.0.0" +"@jest/environment@^26.6.2": + version "26.6.2" + resolved "https://registry.npmjs.org/@jest/environment/-/environment-26.6.2.tgz#ba364cc72e221e79cc8f0a99555bf5d7577cf92c" + integrity sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA== + dependencies: + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + jest-mock "^26.6.2" + "@jest/environment@^27.5.1": version "27.5.1" resolved "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz#d7425820511fe7158abbecc010140c3fd3be9c74" @@ -2714,6 +2833,18 @@ "@types/node" "*" jest-mock "^27.5.1" +"@jest/fake-timers@^26.6.2": + version "26.6.2" + resolved "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.6.2.tgz#459c329bcf70cee4af4d7e3f3e67848123535aad" + integrity sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA== + dependencies: + "@jest/types" "^26.6.2" + "@sinonjs/fake-timers" "^6.0.1" + "@types/node" "*" + jest-message-util "^26.6.2" + jest-mock "^26.6.2" + jest-util "^26.6.2" + "@jest/fake-timers@^27.5.1": version "27.5.1" resolved "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz#76979745ce0579c8a94a4678af7a748eda8ada74" @@ -2726,6 +2857,15 @@ jest-mock "^27.5.1" jest-util "^27.5.1" +"@jest/globals@^26.6.2": + version "26.6.2" + resolved "https://registry.npmjs.org/@jest/globals/-/globals-26.6.2.tgz#5b613b78a1aa2655ae908eba638cc96a20df720a" + integrity sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA== + dependencies: + "@jest/environment" "^26.6.2" + "@jest/types" "^26.6.2" + expect "^26.6.2" + "@jest/globals@^27.5.1": version "27.5.1" resolved "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz#7ac06ce57ab966566c7963431cef458434601b2b" @@ -2735,6 +2875,38 @@ "@jest/types" "^27.5.1" expect "^27.5.1" +"@jest/reporters@^26.6.2": + version "26.6.2" + resolved "https://registry.npmjs.org/@jest/reporters/-/reporters-26.6.2.tgz#1f518b99637a5f18307bd3ecf9275f6882a667f6" + integrity sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@jest/console" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + chalk "^4.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.2" + graceful-fs "^4.2.4" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-instrument "^4.0.3" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^4.0.0" + istanbul-reports "^3.0.2" + jest-haste-map "^26.6.2" + jest-resolve "^26.6.2" + jest-util "^26.6.2" + jest-worker "^26.6.2" + slash "^3.0.0" + source-map "^0.6.0" + string-length "^4.0.1" + terminal-link "^2.0.0" + v8-to-istanbul "^7.0.0" + optionalDependencies: + node-notifier "^8.0.0" + "@jest/reporters@^27.5.1": version "27.5.1" resolved "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz#ceda7be96170b03c923c37987b64015812ffec04" @@ -2766,6 +2938,15 @@ terminal-link "^2.0.0" v8-to-istanbul "^8.1.0" +"@jest/source-map@^26.6.2": + version "26.6.2" + resolved "https://registry.npmjs.org/@jest/source-map/-/source-map-26.6.2.tgz#29af5e1e2e324cafccc936f218309f54ab69d535" + integrity sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA== + dependencies: + callsites "^3.0.0" + graceful-fs "^4.2.4" + source-map "^0.6.0" + "@jest/source-map@^27.5.1": version "27.5.1" resolved "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz#6608391e465add4205eae073b55e7f279e04e8cf" @@ -2775,6 +2956,16 @@ graceful-fs "^4.2.9" source-map "^0.6.0" +"@jest/test-result@^26.6.2": + version "26.6.2" + resolved "https://registry.npmjs.org/@jest/test-result/-/test-result-26.6.2.tgz#55da58b62df134576cc95476efa5f7949e3f5f18" + integrity sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ== + dependencies: + "@jest/console" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" + "@jest/test-result@^27.5.1": version "27.5.1" resolved "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz#56a6585fa80f7cdab72b8c5fc2e871d03832f5bb" @@ -2785,6 +2976,17 @@ "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" +"@jest/test-sequencer@^26.6.3": + version "26.6.3" + resolved "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz#98e8a45100863886d074205e8ffdc5a7eb582b17" + integrity sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw== + dependencies: + "@jest/test-result" "^26.6.2" + graceful-fs "^4.2.4" + jest-haste-map "^26.6.2" + jest-runner "^26.6.3" + jest-runtime "^26.6.3" + "@jest/test-sequencer@^27.5.1": version "27.5.1" resolved "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz#4057e0e9cea4439e544c6353c6affe58d095745b" @@ -2795,6 +2997,27 @@ jest-haste-map "^27.5.1" jest-runtime "^27.5.1" +"@jest/transform@^26.6.2": + version "26.6.2" + resolved "https://registry.npmjs.org/@jest/transform/-/transform-26.6.2.tgz#5ac57c5fa1ad17b2aae83e73e45813894dcf2e4b" + integrity sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA== + dependencies: + "@babel/core" "^7.1.0" + "@jest/types" "^26.6.2" + babel-plugin-istanbul "^6.0.0" + chalk "^4.0.0" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.2.4" + jest-haste-map "^26.6.2" + jest-regex-util "^26.0.0" + jest-util "^26.6.2" + micromatch "^4.0.2" + pirates "^4.0.1" + slash "^3.0.0" + source-map "^0.6.1" + write-file-atomic "^3.0.0" + "@jest/transform@^27.5.1": version "27.5.1" resolved "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz#6c3501dcc00c4c08915f292a600ece5ecfe1f409" @@ -4174,7 +4397,7 @@ resolved "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.14.1.tgz#155ef21065427901994e765da8a0ba0eaae8b8bd" integrity sha512-6Wci+Tp3CgPt/B9B0a3J4s3yMgLNSku6w5TV6mN+61C71UqsRBv2FUibBf3tPGlNxebgPHMEUzKpb1ggE8KCKw== -"@mswjs/cookies@^0.1.6", "@mswjs/cookies@^0.1.7": +"@mswjs/cookies@^0.1.5", "@mswjs/cookies@^0.1.6", "@mswjs/cookies@^0.1.7": version "0.1.7" resolved "https://registry.npmjs.org/@mswjs/cookies/-/cookies-0.1.7.tgz#d334081b2c51057a61c1dd7b76ca3cac02251651" integrity sha512-bDg1ReMBx+PYDB4Pk7y1Q07Zz1iKIEUWQpkEXiA2lEWg9gvOZ8UBmGXilCEUvyYoRFlmr/9iXTRR69TrgSwX/Q== @@ -4190,6 +4413,17 @@ "@types/set-cookie-parser" "^2.4.0" set-cookie-parser "^2.4.6" +"@mswjs/interceptors@^0.10.0": + version "0.10.0" + resolved "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.10.0.tgz#f5aad03c2c0591d164e3ed178b21942f1c2f8061" + integrity sha512-/M0GGpid5q2EDI+Keas1sLYF3VZFXHDE5gCmX/jHdp+OJFruVNca3PUk7A8KnGdPpuycZogdPsmRBSOXwjyA7A== + dependencies: + "@open-draft/until" "^1.0.3" + debug "^4.3.0" + headers-utils "^3.0.2" + strict-event-emitter "^0.2.0" + xmldom "^0.6.0" + "@mswjs/interceptors@^0.12.6", "@mswjs/interceptors@^0.12.7": version "0.12.7" resolved "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.12.7.tgz#0d1cd4cd31a0f663e0455993951201faa09d0909" @@ -4682,7 +4916,7 @@ "@octokit/plugin-request-log" "^1.0.2" "@octokit/plugin-rest-endpoint-methods" "5.3.1" -"@octokit/rest@^18.12.0": +"@octokit/rest@^18.12.0", "@octokit/rest@^18.6.7": version "18.12.0" resolved "https://registry.npmjs.org/@octokit/rest/-/rest-18.12.0.tgz#f06bc4952fc87130308d810ca9d00e79f6988881" integrity sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q== @@ -5101,16 +5335,31 @@ resolved "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz#8da5c6530915653f3a1f38fd5f101d8c3f8079c5" integrity sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ== +"@spotify/eslint-config-base@^12.0.0": + version "12.0.0" + resolved "https://registry.npmjs.org/@spotify/eslint-config-base/-/eslint-config-base-12.0.0.tgz#0b1e41bb436d5c1c20714703629514d64c3c0f06" + integrity sha512-5Uud/TmzakqmdUNCZpD8JFQRa2VG3dVd3DanSMpU/nVdu6K5LyX8EMU3Tz1vGP18Wih8iAu/sBSJhntNzw7e6w== + "@spotify/eslint-config-base@^13.0.0": version "13.0.0" resolved "https://registry.npmjs.org/@spotify/eslint-config-base/-/eslint-config-base-13.0.0.tgz#bb748bb2b705ffb5085f873aa0daf94dfad59985" integrity sha512-BrnexUcUQkp6XUw8HWSmE4LpWtJGgEC6A7vrSkgpgKJtZaYkpw8O+Xnk60DA266ecbFHYbQD6ngqKHlvjNB+pA== +"@spotify/eslint-config-react@^12.0.0": + version "12.0.0" + resolved "https://registry.npmjs.org/@spotify/eslint-config-react/-/eslint-config-react-12.0.0.tgz#5b8d4bc3b81a8ec2824648f482f1f6c3cf711893" + integrity sha512-lNHZRtJesNA273OJHBVUGAg2JYyVDZ+bsT7h3OwnX1HYgejJ3YcKPSziPM8TGFAN8DruH3tHFfaM63uAIA1+uw== + "@spotify/eslint-config-react@^13.0.0": version "13.0.1" resolved "https://registry.npmjs.org/@spotify/eslint-config-react/-/eslint-config-react-13.0.1.tgz#f309f5d3c53ef1e2c7c6ce05f76ee681970112c3" integrity sha512-gyC0CtJ2H9K57HyQG5/RcMsJiB6qmVbBHOHWukZcPLfYtwkK201kgMjHrVfJXoSN+mJxcWhDVPxqe+eA7LHshQ== +"@spotify/eslint-config-typescript@^12.0.0": + version "12.0.0" + resolved "https://registry.npmjs.org/@spotify/eslint-config-typescript/-/eslint-config-typescript-12.0.0.tgz#4c7af3f74a47668bec0c860b72e2a0103e78a138" + integrity sha512-nMVll8ZkN/W8+IHn6Iz3YzCKW0qhrn3TVfyxkAr3qmXm5cex+GzyUdZEuxb8rdN2inZL6A1Il2NFfO5p/UKxog== + "@spotify/eslint-config-typescript@^13.0.0": version "13.0.1" resolved "https://registry.npmjs.org/@spotify/eslint-config-typescript/-/eslint-config-typescript-13.0.1.tgz#47801a66d5569074a110f4422eba60aafc6bd7f8" @@ -5276,6 +5525,20 @@ "@babel/runtime" "^7.14.6" "@testing-library/dom" "^8.1.0" +"@testing-library/dom@^7.28.1": + version "7.31.2" + resolved "https://registry.npmjs.org/@testing-library/dom/-/dom-7.31.2.tgz#df361db38f5212b88555068ab8119f5d841a8c4a" + integrity sha512-3UqjCpey6HiTZT92vODYLPxTBWlM8ZOOjr3LX5F37/VRipW2M1kX6I/Cm4VXzteZqfGfagg8yXywpcOgQBlNsQ== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/runtime" "^7.12.5" + "@types/aria-query" "^4.2.0" + aria-query "^4.2.2" + chalk "^4.1.0" + dom-accessibility-api "^0.5.6" + lz-string "^1.4.4" + pretty-format "^26.6.2" + "@testing-library/dom@^8.0.0", "@testing-library/dom@^8.1.0": version "8.11.3" resolved "https://registry.npmjs.org/@testing-library/dom/-/dom-8.11.3.tgz#38fd63cbfe14557021e88982d931e33fb7c1a808" @@ -5313,6 +5576,14 @@ "@babel/runtime" "^7.12.5" react-error-boundary "^3.1.0" +"@testing-library/react@^11.2.5": + version "11.2.7" + resolved "https://registry.npmjs.org/@testing-library/react/-/react-11.2.7.tgz#b29e2e95c6765c815786c0bc1d5aed9cb2bf7818" + integrity sha512-tzRNp7pzd5QmbtXNG/mhdcl7Awfu/Iz1RaVHY75zTdOkmHCuzMhRL83gWHSgOAcjS3CCbyfwUHMZgRJb4kAfpA== + dependencies: + "@babel/runtime" "^7.12.5" + "@testing-library/dom" "^7.28.1" + "@testing-library/react@^12.1.3": version "12.1.5" resolved "https://registry.npmjs.org/@testing-library/react/-/react-12.1.5.tgz#bb248f72f02a5ac9d949dea07279095fa577963b" @@ -5442,6 +5713,17 @@ "@types/babel__template" "*" "@types/babel__traverse" "*" +"@types/babel__core@^7.1.7": + version "7.1.19" + resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz#7b497495b7d1b4812bdb9d02804d0576f43ee460" + integrity sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + "@types/babel__generator@*": version "7.6.1" resolved "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.1.tgz#4901767b397e8711aeb99df8d396d7ba7b7f0e04" @@ -5587,7 +5869,7 @@ dependencies: "@types/express" "*" -"@types/cookie@^0.4.1": +"@types/cookie@^0.4.0", "@types/cookie@^0.4.1": version "0.4.1" resolved "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz#bfd02c1f2224567676c1545199f87c3a861d878d" integrity sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q== @@ -5910,7 +6192,7 @@ resolved "https://registry.npmjs.org/@types/humanize-duration/-/humanize-duration-3.27.1.tgz#f14740d1f585a0a8e3f46359b62fda8b0eaa31e7" integrity sha512-K3e+NZlpCKd6Bd/EIdqjFJRFHbrq5TzPPLwREk5Iv/YoIjQrs6ljdAUCo+Lb2xFlGNOjGSE0dqsVD19cZL137w== -"@types/inquirer@^7.3.3": +"@types/inquirer@^7.3.1", "@types/inquirer@^7.3.3": version "7.3.3" resolved "https://registry.npmjs.org/@types/inquirer/-/inquirer-7.3.3.tgz#92e6676efb67fa6925c69a2ee638f67a822952ac" integrity sha512-HhxyLejTHMfohAuhRun4csWigAMjXTmRyiJTU1Y/I1xmggikFMkOUoMQRlFm+zQcPEGHSs3io/0FAmNZf8EymQ== @@ -6297,6 +6579,11 @@ resolved "https://registry.npmjs.org/@types/pluralize/-/pluralize-0.0.29.tgz#6ffa33ed1fc8813c469b859681d09707eb40d03c" integrity sha512-BYOID+l2Aco2nBik+iYS4SZX0Lf20KPILP5RGmM1IgzdwNdTs0eebiFriOPcej1sX9mLnSoiNte5zcFxssgpGA== +"@types/prettier@^2.0.0": + version "2.6.0" + resolved "https://registry.npmjs.org/@types/prettier/-/prettier-2.6.0.tgz#efcbd41937f9ae7434c714ab698604822d890759" + integrity sha512-G/AdOadiZhnJp0jXCaBQU449W2h716OW/EoXeYkCytxKL06X1WCXB4DZpp8TpZ8eyIJVS1cw4lrlkkSYU21cDw== + "@types/prettier@^2.1.5": version "2.4.3" resolved "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.3.tgz#a3c65525b91fca7da00ab1a3ac2b5a2a4afbffbf" @@ -7298,6 +7585,16 @@ ajv@^6.10.0, ajv@^6.10.1, ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5, ajv@^6.5.5, ajv json-schema-traverse "^0.4.1" uri-js "^4.2.2" +ajv@^7.0.3: + version "7.2.4" + resolved "https://registry.npmjs.org/ajv/-/ajv-7.2.4.tgz#8e239d4d56cf884bccca8cca362f508446dc160f" + integrity sha512-nBeQgg/ZZA3u3SYxyaDvpvDtgZ/EZPF547ARgZBrG9Bhu1vKDwAIjtIf+sDtJUKa2zOcEbmRLBRSyMraS/Oy1A== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + ajv@^8.0.0, ajv@^8.10.0, ajv@^8.8.0: version "8.11.0" resolved "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz#977e91dd96ca669f54a11e23e378e33b884a565f" @@ -7423,6 +7720,14 @@ any-promise@^1.0.0: resolved "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + anymatch@^3.0.3, anymatch@~3.1.2: version "3.1.2" resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" @@ -7937,6 +8242,20 @@ babel-core@^7.0.0-bridge.0: resolved "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz#95a492ddd90f9b4e9a4a1da14eb335b87b634ece" integrity sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg== +babel-jest@^26.6.3: + version "26.6.3" + resolved "https://registry.npmjs.org/babel-jest/-/babel-jest-26.6.3.tgz#d87d25cb0037577a0c89f82e5755c5d293c01056" + integrity sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA== + dependencies: + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/babel__core" "^7.1.7" + babel-plugin-istanbul "^6.0.0" + babel-preset-jest "^26.6.2" + chalk "^4.0.0" + graceful-fs "^4.2.4" + slash "^3.0.0" + babel-jest@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz#a1bf8d61928edfefd21da27eb86a695bfd691444" @@ -7958,7 +8277,7 @@ babel-plugin-dynamic-import-node@^2.3.3: dependencies: object.assign "^4.1.0" -babel-plugin-istanbul@^6.1.1: +babel-plugin-istanbul@^6.0.0, babel-plugin-istanbul@^6.1.1: version "6.1.1" resolved "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== @@ -7969,6 +8288,16 @@ babel-plugin-istanbul@^6.1.1: istanbul-lib-instrument "^5.0.4" test-exclude "^6.0.0" +babel-plugin-jest-hoist@^26.6.2: + version "26.6.2" + resolved "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz#8185bd030348d254c6d7dd974355e6a28b21e62d" + integrity sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw== + dependencies: + "@babel/template" "^7.3.3" + "@babel/types" "^7.3.3" + "@types/babel__core" "^7.0.0" + "@types/babel__traverse" "^7.0.6" + babel-plugin-jest-hoist@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz#9be98ecf28c331eb9f5df9c72d6f89deb8181c2e" @@ -8068,6 +8397,14 @@ babel-preset-fbjs@^3.4.0: "@babel/plugin-transform-template-literals" "^7.0.0" babel-plugin-syntax-trailing-function-commas "^7.0.0-beta.0" +babel-preset-jest@^26.6.2: + version "26.6.2" + resolved "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz#747872b1171df032252426586881d62d31798fee" + integrity sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ== + dependencies: + babel-plugin-jest-hoist "^26.6.2" + babel-preset-current-node-syntax "^1.0.0" + babel-preset-jest@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz#91f10f58034cb7989cb4f962b69fa6eef6a6bc81" @@ -8766,7 +9103,7 @@ camelcase@^5.0.0, camelcase@^5.3.1: resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -camelcase@^6.2.0, camelcase@^6.3.0: +camelcase@^6.0.0, camelcase@^6.2.0, camelcase@^6.3.0: version "6.3.0" resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== @@ -8804,6 +9141,13 @@ capital-case@^1.0.4: tslib "^2.0.3" upper-case-first "^2.0.2" +capture-exit@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" + integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g== + dependencies: + rsvp "^4.8.4" + caseless@~0.12.0: version "0.12.0" resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" @@ -9013,6 +9357,11 @@ circleci-api@^4.0.0: dependencies: axios "^0.21.1" +cjs-module-lexer@^0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz#4186fcca0eae175970aee870b9fe2d6cf8d5655f" + integrity sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw== + cjs-module-lexer@^1.0.0: version "1.2.2" resolved "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40" @@ -9404,6 +9753,11 @@ commander@^5.1.0: resolved "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== +commander@^6.1.0: + version "6.2.1" + resolved "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" + integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== + commander@^7.2.0: version "7.2.0" resolved "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" @@ -10569,7 +10923,7 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.9: dependencies: ms "2.0.0" -debug@4, debug@4.3.4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4: +debug@4, debug@4.3.4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.0, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4: version "4.3.4" resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -11213,6 +11567,11 @@ elliptic@^6.0.0: minimalistic-assert "^1.0.1" minimalistic-crypto-utils "^1.0.1" +emittery@^0.7.1: + version "0.7.2" + resolved "https://registry.npmjs.org/emittery/-/emittery-0.7.2.tgz#25595908e13af0f5674ab419396e2fb394cdfa82" + integrity sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ== + emittery@^0.8.1: version "0.8.1" resolved "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz#bb23cc86d03b30aa75a7f734819dee2e1ba70860" @@ -11668,6 +12027,13 @@ eslint-plugin-import@^2.25.4: resolve "^1.22.0" tsconfig-paths "^3.14.1" +eslint-plugin-jest@^25.3.4: + version "25.7.0" + resolved "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz#ff4ac97520b53a96187bad9c9814e7d00de09a6a" + integrity sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ== + dependencies: + "@typescript-eslint/experimental-utils" "^5.0.0" + eslint-plugin-jest@^26.1.2: version "26.2.2" resolved "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-26.2.2.tgz#74e000544259f1ef0462a609a3fc9e5da3768f6c" @@ -11773,6 +12139,18 @@ eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.3.0: resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== +eslint-webpack-plugin@^2.6.0: + version "2.6.0" + resolved "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-2.6.0.tgz#3bd4ada4e539cb1f6687d2f619073dbb509361cd" + integrity sha512-V+LPY/T3kur5QO3u+1s34VDTcRxjXWPUGM4hlmTb5DwVD0OQz631yGTxJZf4SpAqAjdbBVe978S8BJeHpAdOhQ== + dependencies: + "@types/eslint" "^7.28.2" + arrify "^2.0.1" + jest-worker "^27.3.1" + micromatch "^4.0.4" + normalize-path "^3.0.0" + schema-utils "^3.1.1" + eslint-webpack-plugin@^3.1.1: version "3.1.1" resolved "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.1.1.tgz#83dad2395e5f572d6f4d919eedaa9cf902890fcb" @@ -12019,7 +12397,12 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: react-use "^17.2.4" zen-observable "^0.8.15" -execa@4.1.0: +exec-sh@^0.3.2: + version "0.3.6" + resolved "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.6.tgz#ff264f9e325519a60cb5e273692943483cca63bc" + integrity sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w== + +execa@4.1.0, execa@^4.0.0: version "4.1.0" resolved "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== @@ -12117,6 +12500,18 @@ expand-template@^2.0.3: resolved "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== +expect@^26.6.2: + version "26.6.2" + resolved "https://registry.npmjs.org/expect/-/expect-26.6.2.tgz#c6b996bf26bf3fe18b67b2d0f51fc981ba934417" + integrity sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA== + dependencies: + "@jest/types" "^26.6.2" + ansi-styles "^4.0.0" + jest-get-type "^26.3.0" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-regex-util "^26.0.0" + expect@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz#83ce59f1e5bdf5f9d2b94b61d2050db48f3fef74" @@ -12803,6 +13198,16 @@ fs-extra@10.1.0, fs-extra@^10.0.0, fs-extra@^10.0.1: jsonfile "^6.0.1" universalify "^2.0.0" +fs-extra@9.1.0, fs-extra@^9.0.0, fs-extra@^9.1.0: + version "9.1.0" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + fs-extra@^7.0.1, fs-extra@~7.0.1: version "7.0.1" resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" @@ -12821,16 +13226,6 @@ fs-extra@^8.1.0: jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@^9.0.0, fs-extra@^9.1.0: - version "9.1.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" - integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== - dependencies: - at-least-node "^1.0.0" - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - fs-minipass@^1.2.7: version "1.2.7" resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" @@ -12855,7 +13250,7 @@ fs.realpath@^1.0.0: resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= -fsevents@^2.3.2, fsevents@~2.3.2: +fsevents@^2.1.2, fsevents@^2.3.2, fsevents@~2.3.2: version "2.3.2" resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== @@ -13438,7 +13833,7 @@ graphql-ws@^5.4.1: resolved "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.5.5.tgz#f375486d3f196e2a2527b503644693ae3a8670a9" integrity sha512-hvyIS71vs4Tu/yUYHPvGXsTgo0t3arU820+lT5VjZS2go0ewp2LqyCgxEN56CzOG7Iys52eRhHBiD1gGRdiQtw== -graphql@^15.5.1: +graphql@^15.4.0, graphql@^15.5.1: version "15.8.0" resolved "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz#33410e96b012fa3bdb1091cc99a94769db212b38" integrity sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw== @@ -13453,6 +13848,11 @@ grouped-queue@^2.0.0: resolved "https://registry.npmjs.org/grouped-queue/-/grouped-queue-2.0.0.tgz#a2c6713f2171e45db2c300a3a9d7c119d694dac8" integrity sha512-/PiFUa7WIsl48dUeCvhIHnwNmAAzlI/eHoJl0vu3nsFA366JleY7Ff8EVTplZu5kO0MIdZjKTTnzItL61ahbnw== +growly@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" + integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= + gtoken@^5.0.4: version "5.1.0" resolved "https://registry.npmjs.org/gtoken/-/gtoken-5.1.0.tgz#4ba8d2fc9a8459098f76e7e8fd7beaa39fda9fe4" @@ -15025,6 +15425,16 @@ istanbul-lib-coverage@^3.2.0: resolved "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== +istanbul-lib-instrument@^4.0.3: + version "4.0.3" + resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" + integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== + dependencies: + "@babel/core" "^7.7.5" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.0.0" + semver "^6.3.0" + istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: version "5.1.0" resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz#7b49198b657b27a730b8e9cb601f1e1bff24c59a" @@ -15054,7 +15464,7 @@ istanbul-lib-source-maps@^4.0.0: istanbul-lib-coverage "^3.0.0" source-map "^0.6.1" -istanbul-reports@^3.1.3: +istanbul-reports@^3.0.2, istanbul-reports@^3.1.3: version "3.1.4" resolved "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz#1b6f068ecbc6c331040aab5741991273e609e40c" integrity sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw== @@ -15079,6 +15489,15 @@ jenkins@^0.28.1: dependencies: papi "^0.29.0" +jest-changed-files@^26.6.2: + version "26.6.2" + resolved "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.6.2.tgz#f6198479e1cc66f22f9ae1e22acaa0b429c042d0" + integrity sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ== + dependencies: + "@jest/types" "^26.6.2" + execa "^4.0.0" + throat "^5.0.0" + jest-changed-files@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz#a348aed00ec9bf671cc58a66fcbe7c3dfd6a68f5" @@ -15113,6 +15532,25 @@ jest-circus@^27.5.1: stack-utils "^2.0.3" throat "^6.0.1" +jest-cli@^26.6.3: + version "26.6.3" + resolved "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz#43117cfef24bc4cd691a174a8796a532e135e92a" + integrity sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg== + dependencies: + "@jest/core" "^26.6.3" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.4" + import-local "^3.0.2" + is-ci "^2.0.0" + jest-config "^26.6.3" + jest-util "^26.6.2" + jest-validate "^26.6.2" + prompts "^2.0.1" + yargs "^15.4.1" + jest-cli@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz#278794a6e6458ea8029547e6c6cbf673bd30b145" @@ -15131,6 +15569,30 @@ jest-cli@^27.5.1: prompts "^2.0.1" yargs "^16.2.0" +jest-config@^26.6.3: + version "26.6.3" + resolved "https://registry.npmjs.org/jest-config/-/jest-config-26.6.3.tgz#64f41444eef9eb03dc51d5c53b75c8c71f645349" + integrity sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg== + dependencies: + "@babel/core" "^7.1.0" + "@jest/test-sequencer" "^26.6.3" + "@jest/types" "^26.6.2" + babel-jest "^26.6.3" + chalk "^4.0.0" + deepmerge "^4.2.2" + glob "^7.1.1" + graceful-fs "^4.2.4" + jest-environment-jsdom "^26.6.2" + jest-environment-node "^26.6.2" + jest-get-type "^26.3.0" + jest-jasmine2 "^26.6.3" + jest-regex-util "^26.0.0" + jest-resolve "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" + micromatch "^4.0.2" + pretty-format "^26.6.2" + jest-config@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz#5c387de33dca3f99ad6357ddeccd91bf3a0e4a41" @@ -15168,7 +15630,7 @@ jest-css-modules@^2.1.0: dependencies: identity-obj-proxy "3.0.0" -jest-diff@^26.0.0: +jest-diff@^26.0.0, jest-diff@^26.6.2: version "26.6.2" resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394" integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA== @@ -15188,6 +15650,13 @@ jest-diff@^27.5.1: jest-get-type "^27.5.1" pretty-format "^27.5.1" +jest-docblock@^26.0.0: + version "26.0.0" + resolved "https://registry.npmjs.org/jest-docblock/-/jest-docblock-26.0.0.tgz#3e2fa20899fc928cb13bd0ff68bd3711a36889b5" + integrity sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w== + dependencies: + detect-newline "^3.0.0" + jest-docblock@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz#14092f364a42c6108d42c33c8cf30e058e25f6c0" @@ -15195,6 +15664,17 @@ jest-docblock@^27.5.1: dependencies: detect-newline "^3.0.0" +jest-each@^26.6.2: + version "26.6.2" + resolved "https://registry.npmjs.org/jest-each/-/jest-each-26.6.2.tgz#02526438a77a67401c8a6382dfe5999952c167cb" + integrity sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A== + dependencies: + "@jest/types" "^26.6.2" + chalk "^4.0.0" + jest-get-type "^26.3.0" + jest-util "^26.6.2" + pretty-format "^26.6.2" + jest-each@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz#5bc87016f45ed9507fed6e4702a5b468a5b2c44e" @@ -15206,6 +15686,19 @@ jest-each@^27.5.1: jest-util "^27.5.1" pretty-format "^27.5.1" +jest-environment-jsdom@^26.6.2: + version "26.6.2" + resolved "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz#78d09fe9cf019a357009b9b7e1f101d23bd1da3e" + integrity sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q== + dependencies: + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + jest-mock "^26.6.2" + jest-util "^26.6.2" + jsdom "^16.4.0" + jest-environment-jsdom@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz#ea9ccd1fc610209655a77898f86b2b559516a546" @@ -15219,6 +15712,18 @@ jest-environment-jsdom@^27.5.1: jest-util "^27.5.1" jsdom "^16.6.0" +jest-environment-node@^26.6.2: + version "26.6.2" + resolved "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.6.2.tgz#824e4c7fb4944646356f11ac75b229b0035f2b0c" + integrity sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag== + dependencies: + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + jest-mock "^26.6.2" + jest-util "^26.6.2" + jest-environment-node@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz#dedc2cfe52fab6b8f5714b4808aefa85357a365e" @@ -15241,6 +15746,27 @@ jest-get-type@^27.5.1: resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz#3cd613c507b0f7ace013df407a1c1cd578bcb4f1" integrity sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw== +jest-haste-map@^26.6.2: + version "26.6.2" + resolved "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.2.tgz#dd7e60fe7dc0e9f911a23d79c5ff7fb5c2cafeaa" + integrity sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w== + dependencies: + "@jest/types" "^26.6.2" + "@types/graceful-fs" "^4.1.2" + "@types/node" "*" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.4" + jest-regex-util "^26.0.0" + jest-serializer "^26.6.2" + jest-util "^26.6.2" + jest-worker "^26.6.2" + micromatch "^4.0.2" + sane "^4.0.3" + walker "^1.0.7" + optionalDependencies: + fsevents "^2.1.2" + jest-haste-map@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz#9fd8bd7e7b4fa502d9c6164c5640512b4e811e7f" @@ -15261,6 +15787,30 @@ jest-haste-map@^27.5.1: optionalDependencies: fsevents "^2.3.2" +jest-jasmine2@^26.6.3: + version "26.6.3" + resolved "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz#adc3cf915deacb5212c93b9f3547cd12958f2edd" + integrity sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg== + dependencies: + "@babel/traverse" "^7.1.0" + "@jest/environment" "^26.6.2" + "@jest/source-map" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + expect "^26.6.2" + is-generator-fn "^2.0.0" + jest-each "^26.6.2" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-runtime "^26.6.3" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + pretty-format "^26.6.2" + throat "^5.0.0" + jest-jasmine2@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz#a037b0034ef49a9f3d71c4375a796f3b230d1ac4" @@ -15284,6 +15834,14 @@ jest-jasmine2@^27.5.1: pretty-format "^27.5.1" throat "^6.0.1" +jest-leak-detector@^26.6.2: + version "26.6.2" + resolved "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz#7717cf118b92238f2eba65054c8a0c9c653a91af" + integrity sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg== + dependencies: + jest-get-type "^26.3.0" + pretty-format "^26.6.2" + jest-leak-detector@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz#6ec9d54c3579dd6e3e66d70e3498adf80fde3fb8" @@ -15302,6 +15860,21 @@ jest-matcher-utils@^27.0.0, jest-matcher-utils@^27.5.1: jest-get-type "^27.5.1" pretty-format "^27.5.1" +jest-message-util@^26.6.2: + version "26.6.2" + resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.6.2.tgz#58173744ad6fc0506b5d21150b9be56ef001ca07" + integrity sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA== + dependencies: + "@babel/code-frame" "^7.0.0" + "@jest/types" "^26.6.2" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.4" + micromatch "^4.0.2" + pretty-format "^26.6.2" + slash "^3.0.0" + stack-utils "^2.0.2" + jest-message-util@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz#bdda72806da10d9ed6425e12afff38cd1458b6cf" @@ -15317,6 +15890,14 @@ jest-message-util@^27.5.1: slash "^3.0.0" stack-utils "^2.0.3" +jest-mock@^26.6.2: + version "26.6.2" + resolved "https://registry.npmjs.org/jest-mock/-/jest-mock-26.6.2.tgz#d6cb712b041ed47fe0d9b6fc3474bc6543feb302" + integrity sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew== + dependencies: + "@jest/types" "^26.6.2" + "@types/node" "*" + jest-mock@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz#19948336d49ef4d9c52021d34ac7b5f36ff967d6" @@ -15330,11 +15911,25 @@ jest-pnp-resolver@^1.2.2: resolved "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== +jest-regex-util@^26.0.0: + version "26.0.0" + resolved "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28" + integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A== + jest-regex-util@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz#4da143f7e9fd1e542d4aa69617b38e4a78365b95" integrity sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg== +jest-resolve-dependencies@^26.6.3: + version "26.6.3" + resolved "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz#6680859ee5d22ee5dcd961fe4871f59f4c784fb6" + integrity sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg== + dependencies: + "@jest/types" "^26.6.2" + jest-regex-util "^26.0.0" + jest-snapshot "^26.6.2" + jest-resolve-dependencies@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz#d811ecc8305e731cc86dd79741ee98fed06f1da8" @@ -15344,6 +15939,20 @@ jest-resolve-dependencies@^27.5.1: jest-regex-util "^27.5.1" jest-snapshot "^27.5.1" +jest-resolve@^26.6.2: + version "26.6.2" + resolved "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz#a3ab1517217f469b504f1b56603c5bb541fbb507" + integrity sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ== + dependencies: + "@jest/types" "^26.6.2" + chalk "^4.0.0" + graceful-fs "^4.2.4" + jest-pnp-resolver "^1.2.2" + jest-util "^26.6.2" + read-pkg-up "^7.0.1" + resolve "^1.18.1" + slash "^3.0.0" + jest-resolve@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz#a2f1c5a0796ec18fe9eb1536ac3814c23617b384" @@ -15360,6 +15969,32 @@ jest-resolve@^27.5.1: resolve.exports "^1.1.0" slash "^3.0.0" +jest-runner@^26.6.3: + version "26.6.3" + resolved "https://registry.npmjs.org/jest-runner/-/jest-runner-26.6.3.tgz#2d1fed3d46e10f233fd1dbd3bfaa3fe8924be159" + integrity sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ== + dependencies: + "@jest/console" "^26.6.2" + "@jest/environment" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + emittery "^0.7.1" + exit "^0.1.2" + graceful-fs "^4.2.4" + jest-config "^26.6.3" + jest-docblock "^26.0.0" + jest-haste-map "^26.6.2" + jest-leak-detector "^26.6.2" + jest-message-util "^26.6.2" + jest-resolve "^26.6.2" + jest-runtime "^26.6.3" + jest-util "^26.6.2" + jest-worker "^26.6.2" + source-map-support "^0.5.6" + throat "^5.0.0" + jest-runner@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz#071b27c1fa30d90540805c5645a0ec167c7b62e5" @@ -15387,6 +16022,39 @@ jest-runner@^27.5.1: source-map-support "^0.5.6" throat "^6.0.1" +jest-runtime@^26.6.3: + version "26.6.3" + resolved "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.6.3.tgz#4f64efbcfac398331b74b4b3c82d27d401b8fa2b" + integrity sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw== + dependencies: + "@jest/console" "^26.6.2" + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/globals" "^26.6.2" + "@jest/source-map" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/yargs" "^15.0.0" + chalk "^4.0.0" + cjs-module-lexer "^0.6.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.3" + graceful-fs "^4.2.4" + jest-config "^26.6.3" + jest-haste-map "^26.6.2" + jest-message-util "^26.6.2" + jest-mock "^26.6.2" + jest-regex-util "^26.0.0" + jest-resolve "^26.6.2" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" + slash "^3.0.0" + strip-bom "^4.0.0" + yargs "^15.4.1" + jest-runtime@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz#4896003d7a334f7e8e4a53ba93fb9bcd3db0a1af" @@ -15415,6 +16083,14 @@ jest-runtime@^27.5.1: slash "^3.0.0" strip-bom "^4.0.0" +jest-serializer@^26.6.2: + version "26.6.2" + resolved "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.6.2.tgz#d139aafd46957d3a448f3a6cdabe2919ba0742d1" + integrity sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g== + dependencies: + "@types/node" "*" + graceful-fs "^4.2.4" + jest-serializer@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz#81438410a30ea66fd57ff730835123dea1fb1f64" @@ -15423,6 +16099,28 @@ jest-serializer@^27.5.1: "@types/node" "*" graceful-fs "^4.2.9" +jest-snapshot@^26.6.2: + version "26.6.2" + resolved "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.6.2.tgz#f3b0af1acb223316850bd14e1beea9837fb39c84" + integrity sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og== + dependencies: + "@babel/types" "^7.0.0" + "@jest/types" "^26.6.2" + "@types/babel__traverse" "^7.0.4" + "@types/prettier" "^2.0.0" + chalk "^4.0.0" + expect "^26.6.2" + graceful-fs "^4.2.4" + jest-diff "^26.6.2" + jest-get-type "^26.3.0" + jest-haste-map "^26.6.2" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-resolve "^26.6.2" + natural-compare "^1.4.0" + pretty-format "^26.6.2" + semver "^7.3.2" + jest-snapshot@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz#b668d50d23d38054a51b42c4039cab59ae6eb6a1" @@ -15458,6 +16156,18 @@ jest-transform-yaml@^1.0.0: dependencies: js-yaml "4.1.0" +jest-util@^26.6.2: + version "26.6.2" + resolved "https://registry.npmjs.org/jest-util/-/jest-util-26.6.2.tgz#907535dbe4d5a6cb4c47ac9b926f6af29576cbc1" + integrity sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q== + dependencies: + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + graceful-fs "^4.2.4" + is-ci "^2.0.0" + micromatch "^4.0.2" + jest-util@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz#3ba9771e8e31a0b85da48fe0b0891fb86c01c2f9" @@ -15470,6 +16180,18 @@ jest-util@^27.5.1: graceful-fs "^4.2.9" picomatch "^2.2.3" +jest-validate@^26.6.2: + version "26.6.2" + resolved "https://registry.npmjs.org/jest-validate/-/jest-validate-26.6.2.tgz#23d380971587150467342911c3d7b4ac57ab20ec" + integrity sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ== + dependencies: + "@jest/types" "^26.6.2" + camelcase "^6.0.0" + chalk "^4.0.0" + jest-get-type "^26.3.0" + leven "^3.1.0" + pretty-format "^26.6.2" + jest-validate@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz#9197d54dc0bdb52260b8db40b46ae668e04df067" @@ -15482,6 +16204,19 @@ jest-validate@^27.5.1: leven "^3.1.0" pretty-format "^27.5.1" +jest-watcher@^26.6.2: + version "26.6.2" + resolved "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.6.2.tgz#a5b683b8f9d68dbcb1d7dae32172d2cca0592975" + integrity sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ== + dependencies: + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + jest-util "^26.6.2" + string-length "^4.0.1" + jest-watcher@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz#71bd85fb9bde3a2c2ec4dc353437971c43c642a2" @@ -15500,6 +16235,15 @@ jest-when@^3.1.0: resolved "https://registry.npmjs.org/jest-when/-/jest-when-3.5.1.tgz#33ab6f923661cf878cd08fe9df64b507934603db" integrity sha512-o+HiaIVCg1IC95sMDKHU9G5v5N5l3UHqXvJpf0PgAMThZeQo4Hf5Sgoj+wpCBRGg4/KtzSAZZZEKNiLqE0i4eQ== +jest-worker@^26.6.2: + version "26.6.2" + resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" + integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^7.0.0" + jest-worker@^27.3.1, jest-worker@^27.4.5, jest-worker@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" @@ -15509,6 +16253,15 @@ jest-worker@^27.3.1, jest-worker@^27.4.5, jest-worker@^27.5.1: merge-stream "^2.0.0" supports-color "^8.0.0" +jest@^26.0.1: + version "26.6.3" + resolved "https://registry.npmjs.org/jest/-/jest-26.6.3.tgz#40e8fdbe48f00dfa1f0ce8121ca74b88ac9148ef" + integrity sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q== + dependencies: + "@jest/core" "^26.6.3" + import-local "^3.0.2" + jest-cli "^26.6.3" + jest@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz#dadf33ba70a779be7a6fc33015843b51494f63fc" @@ -15684,7 +16437,7 @@ jscodeshift@^0.13.0: temp "^0.8.4" write-file-atomic "^2.3.0" -jsdom@^16.5.2, jsdom@^16.6.0: +jsdom@^16.4.0, jsdom@^16.5.2, jsdom@^16.6.0: version "16.7.0" resolved "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" integrity sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw== @@ -15862,7 +16615,7 @@ json5@^1.0.1: dependencies: minimist "^1.2.0" -json5@^2.1.2, json5@^2.1.3, json5@^2.2.0: +json5@^2.1.2, json5@^2.1.3, json5@^2.2.0, json5@^2.2.1: version "2.2.1" resolved "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== @@ -17021,6 +17774,13 @@ make-fetch-happen@^9.1.0: socks-proxy-agent "^6.0.0" ssri "^8.0.0" +makeerror@1.0.12: + version "1.0.12" + resolved "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" + integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== + dependencies: + tmpl "1.0.5" + makeerror@1.0.x: version "1.0.11" resolved "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" @@ -17644,7 +18404,7 @@ micromark@^3.0.0: micromark-util-types "^1.0.1" parse-entities "^3.0.0" -micromatch@^3.1.10: +micromatch@^3.1.10, micromatch@^3.1.4: version "3.1.10" resolved "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== @@ -17784,6 +18544,13 @@ minimatch@3.0.4: dependencies: brace-expansion "^1.1.7" +minimatch@5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.0.0.tgz#281d8402aaaeed18a9e8406ad99c46a19206c6ef" + integrity sha512-EU+GCVjXD00yOUf1TwAHVP7v3fBD3A8RkkPYsWWKGWesxM/572sL53wJQnHxquHlRhYUV36wHkqrN8cdikKc2g== + dependencies: + brace-expansion "^2.0.1" + minimatch@5.0.1, minimatch@^5.0.0, minimatch@^5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b" @@ -17814,7 +18581,7 @@ minimist-options@4.1.0, minimist-options@^4.0.2: is-plain-obj "^1.1.0" kind-of "^6.0.3" -minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5, minimist@^1.2.6: +minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5, minimist@^1.2.6: version "1.2.6" resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== @@ -18010,6 +18777,31 @@ ms@2.1.3, ms@^2.0.0, ms@^2.1.1, ms@^2.1.3: resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== +msw@^0.29.0: + version "0.29.0" + resolved "https://registry.npmjs.org/msw/-/msw-0.29.0.tgz#7242d575cb01db0c925241587df1fc2b79230d78" + integrity sha512-C/wz1d5uAEZRvAPAYrXG1rwLxXl0+BOs+JPrCzasoABZW3ATwS6ifSze+/DAgA93e9M86RXwvy6yDtZeZWmCFQ== + dependencies: + "@mswjs/cookies" "^0.1.5" + "@mswjs/interceptors" "^0.10.0" + "@open-draft/until" "^1.0.3" + "@types/cookie" "^0.4.0" + "@types/inquirer" "^7.3.1" + "@types/js-levenshtein" "^1.1.0" + chalk "^4.1.1" + chokidar "^3.4.2" + cookie "^0.4.1" + graphql "^15.4.0" + headers-utils "^3.0.2" + inquirer "^8.1.0" + js-levenshtein "^1.1.6" + node-fetch "^2.6.1" + node-match-path "^0.6.3" + statuses "^2.0.0" + strict-event-emitter "^0.2.0" + type-fest "^1.1.3" + yargs "^17.0.1" + msw@^0.35.0: version "0.35.0" resolved "https://registry.npmjs.org/msw/-/msw-0.35.0.tgz#18a4ceb6c822ef226a30421d434413bc45030d38" @@ -18379,6 +19171,18 @@ node-modules-regexp@^1.0.0: resolved "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= +node-notifier@^8.0.0: + version "8.0.2" + resolved "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.2.tgz#f3167a38ef0d2c8a866a83e318c1ba0efeb702c5" + integrity sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg== + dependencies: + growly "^1.3.0" + is-wsl "^2.2.0" + semver "^7.3.2" + shellwords "^0.1.1" + uuid "^8.3.0" + which "^2.0.2" + node-releases@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz#3d1d395f204f1f2f29a54358b9fb678765ad2fc5" @@ -18998,6 +19802,11 @@ p-cancelable@^2.0.0: resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.0.0.tgz#4a3740f5bdaf5ed5d7c3e34882c6fb5d6b266a6e" integrity sha512-wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg== +p-each-series@^2.1.0: + version "2.2.0" + resolved "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a" + integrity sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA== + p-filter@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/p-filter/-/p-filter-2.1.0.tgz#1b1472562ae7a0f742f0f3d3d3718ea66ff9c09c" @@ -21935,6 +22744,11 @@ rollup-plugin-esbuild@^4.7.2: joycon "^3.0.1" jsonc-parser "^3.0.0" +rollup-plugin-peer-deps-external@^2.2.2: + version "2.2.4" + resolved "https://registry.npmjs.org/rollup-plugin-peer-deps-external/-/rollup-plugin-peer-deps-external-2.2.4.tgz#8a420bbfd6dccc30aeb68c9bf57011f2f109570d" + integrity sha512-AWdukIM1+k5JDdAqV/Cxd+nejvno2FVLVeZ74NKggm3Q5s9cbbcOgUPGdbxPi4BXu7xGaZ8HG12F+thImYu/0g== + rollup-plugin-postcss@*, rollup-plugin-postcss@^4.0.0: version "4.0.2" resolved "https://registry.npmjs.org/rollup-plugin-postcss/-/rollup-plugin-postcss-4.0.2.tgz#15e9462f39475059b368ce0e49c800fa4b1f7050" @@ -21976,6 +22790,11 @@ rollup@^2.60.2: optionalDependencies: fsevents "~2.3.2" +rsvp@^4.8.4: + version "4.8.5" + resolved "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" + integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== + rtl-css-js@^1.14.0: version "1.14.0" resolved "https://registry.npmjs.org/rtl-css-js/-/rtl-css-js-1.14.0.tgz#daa4f192a92509e292a0519f4b255e6e3c076b7d" @@ -22060,6 +22879,21 @@ safe-stable-stringify@^2.2.0, safe-stable-stringify@^2.3.1: resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== +sane@^4.0.3: + version "4.1.0" + resolved "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded" + integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA== + dependencies: + "@cnakazawa/watch" "^1.0.3" + anymatch "^2.0.0" + capture-exit "^2.0.0" + exec-sh "^0.3.2" + execa "^1.0.0" + fb-watchman "^2.0.0" + micromatch "^3.1.4" + minimist "^1.1.1" + walker "~1.0.5" + sanitize-filename@^1.6.1: version "1.6.3" resolved "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz#755ebd752045931977e30b2025d340d7c9090378" @@ -22396,6 +23230,11 @@ shelljs@^0.8.5: interpret "^1.0.0" rechoir "^0.6.2" +shellwords@^0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" + integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== + shx@^0.3.2: version "0.3.4" resolved "https://registry.npmjs.org/shx/-/shx-0.3.4.tgz#74289230b4b663979167f94e1935901406e40f02" @@ -22936,7 +23775,7 @@ stack-trace@0.0.x: resolved "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA= -stack-utils@^2.0.3: +stack-utils@^2.0.2, stack-utils@^2.0.3: version "2.0.5" resolved "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz#d25265fca995154659dbbfba3b49254778d2fdd5" integrity sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA== @@ -23754,6 +24593,11 @@ thenify-all@^1.0.0: dependencies: any-promise "^1.0.0" +throat@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" + integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== + throat@^6.0.1: version "6.0.1" resolved "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz#d514fedad95740c12c2d7fc70ea863eb51ade375" @@ -23869,7 +24713,7 @@ tmp@^0.2.0, tmp@~0.2.1: dependencies: rimraf "^3.0.0" -tmpl@1.0.x: +tmpl@1.0.5, tmpl@1.0.x: version "1.0.5" resolved "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== @@ -24208,7 +25052,7 @@ type-fest@^0.8.1: resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== -type-fest@^1.2.1, type-fest@^1.2.2: +type-fest@^1.1.3, type-fest@^1.2.1, type-fest@^1.2.2: version "1.4.0" resolved "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== @@ -24242,6 +25086,19 @@ typedarray@^0.0.6: resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= +typescript-json-schema@^0.52.0: + version "0.52.0" + resolved "https://registry.npmjs.org/typescript-json-schema/-/typescript-json-schema-0.52.0.tgz#954560ec90e5486e8f7a5b7706ec59286a708e29" + integrity sha512-3ZdHzx116gZ+D9LmMl5/+d1G3Rpt8baWngKzepYWHnXbAa8Winv64CmFRqLlMKneE1c40yugYDFcWdyX1FjGzQ== + dependencies: + "@types/json-schema" "^7.0.9" + "@types/node" "^16.9.2" + glob "^7.1.7" + safe-stable-stringify "^2.2.0" + ts-node "^10.2.1" + typescript "~4.4.4" + yargs "^17.1.1" + typescript-json-schema@^0.53.0: version "0.53.0" resolved "https://registry.npmjs.org/typescript-json-schema/-/typescript-json-schema-0.53.0.tgz#ac5b89e4b0af55be422f475a041360e0556f88ea" @@ -24765,6 +25622,15 @@ v8-compile-cache@^2.0.3: resolved "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e" integrity sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g== +v8-to-istanbul@^7.0.0: + version "7.1.2" + resolved "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz#30898d1a7fa0c84d225a2c1434fb958f290883c1" + integrity sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.1" + convert-source-map "^1.6.0" + source-map "^0.7.3" + v8-to-istanbul@^8.1.0: version "8.1.1" resolved "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz#77b752fd3975e31bbcef938f85e9bd1c7a8d60ed" @@ -24961,6 +25827,13 @@ walker@^1.0.7: dependencies: makeerror "1.0.x" +walker@~1.0.5: + version "1.0.8" + resolved "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" + integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== + dependencies: + makeerror "1.0.12" + watchpack@^2.3.1: version "2.3.1" resolved "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz#4200d9447b401156eeca7767ee610f8809bc9d25" @@ -25485,6 +26358,11 @@ xmlchars@^2.2.0: resolved "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== +xmldom@^0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/xmldom/-/xmldom-0.6.0.tgz#43a96ecb8beece991cef382c08397d82d4d0c46f" + integrity sha512-iAcin401y58LckRZ0TkI4k0VSM1Qg0KGSc3i8rU+xrxe19A/BN1zHyVSJY7uoutVlaTSzYyk/v5AmkewAP7jtg== + xmlhttprequest-ssl@~1.6.2: version "1.6.3" resolved "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.6.3.tgz#03b713873b01659dfa2c1c5d056065b27ddc2de6" @@ -25579,7 +26457,7 @@ yargs-parser@^3.2.0: camelcase "^3.0.0" lodash.assign "^4.1.0" -yargs@^15.1.0, yargs@^15.3.1: +yargs@^15.1.0, yargs@^15.3.1, yargs@^15.4.1: version "15.4.1" resolved "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== From 4f3848e4c0cd37fc3079fcbd8389ff8fc9bd17a5 Mon Sep 17 00:00:00 2001 From: Talita Gregory Nunes Freire Date: Fri, 22 Apr 2022 17:59:54 +0200 Subject: [PATCH 03/21] feat: README update with how to implement plugin Signed-off-by: Talita Gregory Nunes Freire --- .../app/src/components/catalog/EntityPage.tsx | 4 + plugins/github-pull-requests-board/README.md | 72 +- .../docs/pull-requests-board.png | Bin 0 -> 411335 bytes .../github-pull-requests-board/package.json | 28 +- .../TeamPullRequestsBoard.tsx} | 14 +- .../components/TeamPullRequestsBoard/index.ts | 16 + .../components/TeamPullRequestsTable/index.ts | 1 - .../github-pull-requests-board/src/index.ts | 2 +- .../src/plugin.test.ts | 6 +- .../github-pull-requests-board/src/plugin.ts | 8 +- yarn.lock | 947 +----------------- 11 files changed, 146 insertions(+), 952 deletions(-) create mode 100644 plugins/github-pull-requests-board/docs/pull-requests-board.png rename plugins/github-pull-requests-board/src/components/{TeamPullRequestsTable/TeamPullRequestsTable.tsx => TeamPullRequestsBoard/TeamPullRequestsBoard.tsx} (89%) create mode 100644 plugins/github-pull-requests-board/src/components/TeamPullRequestsBoard/index.ts delete mode 100644 plugins/github-pull-requests-board/src/components/TeamPullRequestsTable/index.ts diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx index 799fe3e4d9..94713b66d8 100644 --- a/packages/app/src/components/catalog/EntityPage.tsx +++ b/packages/app/src/components/catalog/EntityPage.tsx @@ -137,6 +137,7 @@ import { EntityNewRelicDashboardCard, } from '@backstage/plugin-newrelic-dashboard'; import { EntityGoCdContent, isGoCdAvailable } from '@backstage/plugin-gocd'; +import { TeamPullRequestsPage } from '@backstage/plugin-github-pull-requests-board'; import React, { ReactNode, useMemo, useState } from 'react'; @@ -623,6 +624,9 @@ const groupPage = ( + + + ); diff --git a/plugins/github-pull-requests-board/README.md b/plugins/github-pull-requests-board/README.md index 2beff349a8..6205a34d95 100644 --- a/plugins/github-pull-requests-board/README.md +++ b/plugins/github-pull-requests-board/README.md @@ -1,15 +1,75 @@ -# github-pull-requests-board +# GitHub Pull Requests Board Plugin -Welcome to the github-pull-requests-board plugin! +The GitHub Pull Requests Board Plugin helps to visualise all **Open Pull Requests** related to the owned team repository. -This plugin will help you and your team stay on top of open pull requests, hopefully reducing the time from open to merged. It's particularly useful when your team deals with many repositories. +![github-pull-requests-board](./docs/pull-requests-board.png) + +It will help you and your team stay on top of open pull requests, hopefully reducing the time from open to merged. It's particularly useful when your team deals with many repositories. + +## Prerequisites + +- [GitHub Authentication Provider](https://backstage.io/docs/auth/github/provider) ## Getting started -The plugin exports the **TeamPullRequestsTable** component which should be added into the Team page level, so it can consume the backstage **"team"** entity. +The plugin exports the **TeamPullRequestsBoard** component which can be added to the Overview page ot the team at `backstage/packages/app/src/components/catalog/EntityPage.tsx` ```javascript -import { TeamPullRequestsTable } from '@backstage/plugin-github-pull-requests-board'; +import { TeamPullRequestsBoard } from '@backstage/plugin-github-pull-requests-board'; -; +const groupPage = ( + + + + {entityWarningContent} + + + + + + + + + + + + + + + +); +``` + +Or you can also import the **TeamPullRequestsPage** component which can be used to add a new page on the group page at `backstage/packages/app/src/components/catalog/EntityPage.tsx` + +```javascript +import { TeamPullRequestsPage } from '@backstage/plugin-github-pull-requests-board'; + +const groupPage = ( + + + + {entityWarningContent} + + + + + + + + + + + + + + + ; +) ``` diff --git a/plugins/github-pull-requests-board/docs/pull-requests-board.png b/plugins/github-pull-requests-board/docs/pull-requests-board.png new file mode 100644 index 0000000000000000000000000000000000000000..9b7daa981a32e4d26b4f5ddaba0aa724b229a404 GIT binary patch literal 411335 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 nDO`T6*c3v(1`@I+zi>BB>9+8 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 z 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�N7&?b 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 XZv6UFR?6L&0SG)@{an^LB{Ts5=LAY@ literal 0 HcmV?d00001 diff --git a/plugins/github-pull-requests-board/package.json b/plugins/github-pull-requests-board/package.json index 2ffcd90bd1..7497bff479 100644 --- a/plugins/github-pull-requests-board/package.json +++ b/plugins/github-pull-requests-board/package.json @@ -35,30 +35,30 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/catalog-model": "^1.0.0", - "@backstage/core-components": "^0.9.2", - "@backstage/core-plugin-api": "^1.0.0", - "@backstage/plugin-catalog-react": "^1.0.0", + "@backstage/catalog-model": "^1.0.1", + "@backstage/core-components": "^0.9.3", + "@backstage/core-plugin-api": "^1.0.1", + "@backstage/plugin-catalog-react": "^1.0.1", "@backstage/theme": "^0.2.15", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", - "@material-ui/lab": "4.0.0-alpha.45", + "@material-ui/lab": "4.0.0-alpha.57", "@octokit/rest": "^18.6.7", "moment": "^2.29.1", "react-use": "^17.2.4" }, "devDependencies": { - "@backstage/cli": "^0.14.1", - "@backstage/core-app-api": "^0.5.2", - "@backstage/dev-utils": "^0.2.5", - "@backstage/test-utils": "^0.2.0", + "@backstage/cli": "^0.17.0", + "@backstage/core-app-api": "^1.0.1", + "@backstage/dev-utils": "^1.0.1", + "@backstage/test-utils": "^1.0.1", "@testing-library/jest-dom": "^5.10.1", - "@testing-library/react": "^11.2.5", - "@testing-library/user-event": "^13.1.8", + "@testing-library/react": "^12.1.3", + "@testing-library/user-event": "^14.0.0", "@types/jest": "^26.0.7", - "@types/node": "^14.14.32", - "cross-fetch": "^3.0.6", - "msw": "^0.29.0" + "@types/node": "^16.11.26", + "cross-fetch": "^3.1.5", + "msw": "^0.35.0" }, "peerDependencies": { "@types/react": "^16.13.1 || ^17.0.0", diff --git a/plugins/github-pull-requests-board/src/components/TeamPullRequestsTable/TeamPullRequestsTable.tsx b/plugins/github-pull-requests-board/src/components/TeamPullRequestsBoard/TeamPullRequestsBoard.tsx similarity index 89% rename from plugins/github-pull-requests-board/src/components/TeamPullRequestsTable/TeamPullRequestsTable.tsx rename to plugins/github-pull-requests-board/src/components/TeamPullRequestsBoard/TeamPullRequestsBoard.tsx index f96cf6a5dd..f0f47c6a16 100644 --- a/plugins/github-pull-requests-board/src/components/TeamPullRequestsTable/TeamPullRequestsTable.tsx +++ b/plugins/github-pull-requests-board/src/components/TeamPullRequestsBoard/TeamPullRequestsBoard.tsx @@ -19,16 +19,16 @@ import FullscreenIcon from '@material-ui/icons/Fullscreen'; import { Progress, InfoCard } from '@backstage/core-components'; -import { InfoCardHeader } from '../../components/InfoCardHeader'; -import { PullRequestBoardOptions } from '../../components/PullRequestBoardOptions'; -import { Wrapper } from '../../components/Wrapper'; -import { PullRequestCard } from '../../components/PullRequestCard'; +import { InfoCardHeader } from '../InfoCardHeader'; +import { PullRequestBoardOptions } from '../PullRequestBoardOptions'; +import { Wrapper } from '../Wrapper'; +import { PullRequestCard } from '../PullRequestCard'; import { usePullRequestsByTeam } from '../../hooks/usePullRequestsByTeam'; import { PRCardFormating } from '../../utils/types'; -import { DraftPrIcon } from '../../components/icons/DraftPr' +import { DraftPrIcon } from '../icons/DraftPr' import { useUserRepositories } from '../../hooks/useUserRepositories'; -const TeamPullRequestsTable: FunctionComponent = () => { +const TeamPullRequestsBoard: FunctionComponent = () => { const [infoCardFormat, setInfoCardFormat] = useState([]); const { repositories } = useUserRepositories(); const { loading, pullRequests, refreshPullRequests } = usePullRequestsByTeam(repositories); @@ -117,4 +117,4 @@ const TeamPullRequestsTable: FunctionComponent = () => { return {getContent()}; }; -export default TeamPullRequestsTable; +export default TeamPullRequestsBoard; diff --git a/plugins/github-pull-requests-board/src/components/TeamPullRequestsBoard/index.ts b/plugins/github-pull-requests-board/src/components/TeamPullRequestsBoard/index.ts new file mode 100644 index 0000000000..c8e25cfff8 --- /dev/null +++ b/plugins/github-pull-requests-board/src/components/TeamPullRequestsBoard/index.ts @@ -0,0 +1,16 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export { default as TeamPullRequestsBoard } from './TeamPullRequestsBoard'; diff --git a/plugins/github-pull-requests-board/src/components/TeamPullRequestsTable/index.ts b/plugins/github-pull-requests-board/src/components/TeamPullRequestsTable/index.ts deleted file mode 100644 index 0da871526a..0000000000 --- a/plugins/github-pull-requests-board/src/components/TeamPullRequestsTable/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as TeamPullRequestsTable } from './TeamPullRequestsTable'; diff --git a/plugins/github-pull-requests-board/src/index.ts b/plugins/github-pull-requests-board/src/index.ts index 684b62f8cd..579b19b315 100644 --- a/plugins/github-pull-requests-board/src/index.ts +++ b/plugins/github-pull-requests-board/src/index.ts @@ -13,4 +13,4 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -export { TeamPullRequestsTable, TeamPullRequestsPage } from './plugin'; +export { TeamPullRequestsBoard, TeamPullRequestsPage } from './plugin'; diff --git a/plugins/github-pull-requests-board/src/plugin.test.ts b/plugins/github-pull-requests-board/src/plugin.test.ts index c12c8b1f06..0204620ba5 100644 --- a/plugins/github-pull-requests-board/src/plugin.test.ts +++ b/plugins/github-pull-requests-board/src/plugin.test.ts @@ -13,11 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { TeamPullRequestsTable, TeamPullRequestsPage } from './plugin'; +import { TeamPullRequestsBoard, TeamPullRequestsPage } from './plugin'; describe('github-pull-requests-board', () => { - it('should export TeamPullRequestsTable', () => { - expect(TeamPullRequestsTable).toBeDefined(); + it('should export TeamPullRequestsBoard', () => { + expect(TeamPullRequestsBoard).toBeDefined(); }); it('should export TeamPullRequestsPage', () => { expect(TeamPullRequestsPage).toBeDefined(); diff --git a/plugins/github-pull-requests-board/src/plugin.ts b/plugins/github-pull-requests-board/src/plugin.ts index 38edd7562e..8d45761def 100644 --- a/plugins/github-pull-requests-board/src/plugin.ts +++ b/plugins/github-pull-requests-board/src/plugin.ts @@ -27,13 +27,13 @@ const githubPullRequestsBoardPlugin = createPlugin({ }, }); -export const TeamPullRequestsTable = githubPullRequestsBoardPlugin.provide( +export const TeamPullRequestsBoard = githubPullRequestsBoardPlugin.provide( createComponentExtension({ - name: 'TeamPullRequestsTable', + name: 'TeamPullRequestsBoard', component: { lazy: () => - import('./components/TeamPullRequestsTable').then( - m => m.TeamPullRequestsTable, + import('./components/TeamPullRequestsBoard').then( + m => m.TeamPullRequestsBoard, ), }, }), diff --git a/yarn.lock b/yarn.lock index d456b5e8e4..58d2e2f803 100644 --- a/yarn.lock +++ b/yarn.lock @@ -354,27 +354,6 @@ json5 "^2.1.2" semver "^6.3.0" -"@babel/core@^7.7.5": - version "7.17.9" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.17.9.tgz#6bae81a06d95f4d0dec5bb9d74bbc1f58babdcfe" - integrity sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw== - dependencies: - "@ampproject/remapping" "^2.1.0" - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.9" - "@babel/helper-compilation-targets" "^7.17.7" - "@babel/helper-module-transforms" "^7.17.7" - "@babel/helpers" "^7.17.9" - "@babel/parser" "^7.17.9" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.9" - "@babel/types" "^7.17.0" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.1" - semver "^6.3.0" - "@babel/generator@^7.14.0", "@babel/generator@^7.16.8", "@babel/generator@^7.7.2": version "7.16.8" resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.16.8.tgz#359d44d966b8cd059d543250ce79596f792f2ebe" @@ -393,15 +372,6 @@ jsesc "^2.5.1" source-map "^0.5.0" -"@babel/generator@^7.17.9": - version "7.17.9" - resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.17.9.tgz#f4af9fd38fa8de143c29fce3f71852406fc1e2fc" - integrity sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ== - dependencies: - "@babel/types" "^7.17.0" - jsesc "^2.5.1" - source-map "^0.5.0" - "@babel/helper-annotate-as-pure@^7.16.7": version "7.16.7" resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz#bb2339a7534a9c128e3102024c60760a3a7f3862" @@ -495,14 +465,6 @@ "@babel/template" "^7.16.7" "@babel/types" "^7.16.7" -"@babel/helper-function-name@^7.17.9": - version "7.17.9" - resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz#136fcd54bc1da82fcb47565cf16fd8e444b1ff12" - integrity sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg== - dependencies: - "@babel/template" "^7.16.7" - "@babel/types" "^7.17.0" - "@babel/helper-get-function-arity@^7.16.7": version "7.16.7" resolved "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz#ea08ac753117a669f1508ba06ebcc49156387419" @@ -657,15 +619,6 @@ "@babel/traverse" "^7.17.3" "@babel/types" "^7.17.0" -"@babel/helpers@^7.17.9": - version "7.17.9" - resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.9.tgz#b2af120821bfbe44f9907b1826e168e819375a1a" - integrity sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q== - dependencies: - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.9" - "@babel/types" "^7.17.0" - "@babel/highlight@^7.0.0", "@babel/highlight@^7.16.7": version "7.16.10" resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz#744f2eb81579d6eea753c227b0f570ad785aba88" @@ -675,7 +628,7 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.13.16", "@babel/parser@^7.14.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.10", "@babel/parser@^7.16.12", "@babel/parser@^7.16.7", "@babel/parser@^7.16.8", "@babel/parser@^7.17.3", "@babel/parser@^7.17.8", "@babel/parser@^7.17.9": +"@babel/parser@^7.1.0", "@babel/parser@^7.13.16", "@babel/parser@^7.14.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.10", "@babel/parser@^7.16.12", "@babel/parser@^7.16.7", "@babel/parser@^7.16.8", "@babel/parser@^7.17.3", "@babel/parser@^7.17.8": version "7.17.9" resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.17.9.tgz#9c94189a6062f0291418ca021077983058e171ef" integrity sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg== @@ -1427,22 +1380,6 @@ "@babel/parser" "^7.16.7" "@babel/types" "^7.16.7" -"@babel/traverse@^7.1.0", "@babel/traverse@^7.17.9": - version "7.17.9" - resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.9.tgz#1f9b207435d9ae4a8ed6998b2b82300d83c37a0d" - integrity sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw== - dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.9" - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.17.9" - "@babel/helper-hoist-variables" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/parser" "^7.17.9" - "@babel/types" "^7.17.0" - debug "^4.1.0" - globals "^11.1.0" - "@babel/traverse@^7.13.0", "@babel/traverse@^7.14.0", "@babel/traverse@^7.16.10", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.4.5", "@babel/traverse@^7.7.2": version "7.16.10" resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.10.tgz#448f940defbe95b5a8029975b051f75993e8239f" @@ -2663,7 +2600,7 @@ prop-types "^15.6.2" scheduler "^0.19.1" -"@hot-loader/react-dom-v17@npm:@hot-loader/react-dom@^17.0.2", "@hot-loader/react-dom@^17.0.2": +"@hot-loader/react-dom-v17@npm:@hot-loader/react-dom@^17.0.2": version "17.0.2" resolved "https://registry.npmjs.org/@hot-loader/react-dom/-/react-dom-17.0.2.tgz#0b24e484093e8f97eb5c72bebdda44fc20bc8400" integrity sha512-G2RZrFhsQClS+bdDh/Ojpk3SgocLPUGnvnJDTQYnmKSSwXtU+Yh+8QMs+Ia3zaAvBiOSpIIDSUxuN69cvKqrWg== @@ -2721,18 +2658,6 @@ resolved "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd" integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw== -"@jest/console@^26.6.2": - version "26.6.2" - resolved "https://registry.npmjs.org/@jest/console/-/console-26.6.2.tgz#4e04bc464014358b03ab4937805ee36a0aeb98f2" - integrity sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g== - dependencies: - "@jest/types" "^26.6.2" - "@types/node" "*" - chalk "^4.0.0" - jest-message-util "^26.6.2" - jest-util "^26.6.2" - slash "^3.0.0" - "@jest/console@^27.5.1": version "27.5.1" resolved "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz#260fe7239602fe5130a94f1aa386eff54b014bba" @@ -2745,40 +2670,6 @@ jest-util "^27.5.1" slash "^3.0.0" -"@jest/core@^26.6.3": - version "26.6.3" - resolved "https://registry.npmjs.org/@jest/core/-/core-26.6.3.tgz#7639fcb3833d748a4656ada54bde193051e45fad" - integrity sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw== - dependencies: - "@jest/console" "^26.6.2" - "@jest/reporters" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/transform" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - exit "^0.1.2" - graceful-fs "^4.2.4" - jest-changed-files "^26.6.2" - jest-config "^26.6.3" - jest-haste-map "^26.6.2" - jest-message-util "^26.6.2" - jest-regex-util "^26.0.0" - jest-resolve "^26.6.2" - jest-resolve-dependencies "^26.6.3" - jest-runner "^26.6.3" - jest-runtime "^26.6.3" - jest-snapshot "^26.6.2" - jest-util "^26.6.2" - jest-validate "^26.6.2" - jest-watcher "^26.6.2" - micromatch "^4.0.2" - p-each-series "^2.1.0" - rimraf "^3.0.0" - slash "^3.0.0" - strip-ansi "^6.0.0" - "@jest/core@^27.5.1": version "27.5.1" resolved "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz#267ac5f704e09dc52de2922cbf3af9edcd64b626" @@ -2813,16 +2704,6 @@ slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^26.6.2": - version "26.6.2" - resolved "https://registry.npmjs.org/@jest/environment/-/environment-26.6.2.tgz#ba364cc72e221e79cc8f0a99555bf5d7577cf92c" - integrity sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA== - dependencies: - "@jest/fake-timers" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/node" "*" - jest-mock "^26.6.2" - "@jest/environment@^27.5.1": version "27.5.1" resolved "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz#d7425820511fe7158abbecc010140c3fd3be9c74" @@ -2833,18 +2714,6 @@ "@types/node" "*" jest-mock "^27.5.1" -"@jest/fake-timers@^26.6.2": - version "26.6.2" - resolved "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.6.2.tgz#459c329bcf70cee4af4d7e3f3e67848123535aad" - integrity sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA== - dependencies: - "@jest/types" "^26.6.2" - "@sinonjs/fake-timers" "^6.0.1" - "@types/node" "*" - jest-message-util "^26.6.2" - jest-mock "^26.6.2" - jest-util "^26.6.2" - "@jest/fake-timers@^27.5.1": version "27.5.1" resolved "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz#76979745ce0579c8a94a4678af7a748eda8ada74" @@ -2857,15 +2726,6 @@ jest-mock "^27.5.1" jest-util "^27.5.1" -"@jest/globals@^26.6.2": - version "26.6.2" - resolved "https://registry.npmjs.org/@jest/globals/-/globals-26.6.2.tgz#5b613b78a1aa2655ae908eba638cc96a20df720a" - integrity sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA== - dependencies: - "@jest/environment" "^26.6.2" - "@jest/types" "^26.6.2" - expect "^26.6.2" - "@jest/globals@^27.5.1": version "27.5.1" resolved "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz#7ac06ce57ab966566c7963431cef458434601b2b" @@ -2875,38 +2735,6 @@ "@jest/types" "^27.5.1" expect "^27.5.1" -"@jest/reporters@^26.6.2": - version "26.6.2" - resolved "https://registry.npmjs.org/@jest/reporters/-/reporters-26.6.2.tgz#1f518b99637a5f18307bd3ecf9275f6882a667f6" - integrity sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw== - dependencies: - "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/transform" "^26.6.2" - "@jest/types" "^26.6.2" - chalk "^4.0.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.2" - graceful-fs "^4.2.4" - istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^4.0.3" - istanbul-lib-report "^3.0.0" - istanbul-lib-source-maps "^4.0.0" - istanbul-reports "^3.0.2" - jest-haste-map "^26.6.2" - jest-resolve "^26.6.2" - jest-util "^26.6.2" - jest-worker "^26.6.2" - slash "^3.0.0" - source-map "^0.6.0" - string-length "^4.0.1" - terminal-link "^2.0.0" - v8-to-istanbul "^7.0.0" - optionalDependencies: - node-notifier "^8.0.0" - "@jest/reporters@^27.5.1": version "27.5.1" resolved "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz#ceda7be96170b03c923c37987b64015812ffec04" @@ -2938,15 +2766,6 @@ terminal-link "^2.0.0" v8-to-istanbul "^8.1.0" -"@jest/source-map@^26.6.2": - version "26.6.2" - resolved "https://registry.npmjs.org/@jest/source-map/-/source-map-26.6.2.tgz#29af5e1e2e324cafccc936f218309f54ab69d535" - integrity sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA== - dependencies: - callsites "^3.0.0" - graceful-fs "^4.2.4" - source-map "^0.6.0" - "@jest/source-map@^27.5.1": version "27.5.1" resolved "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz#6608391e465add4205eae073b55e7f279e04e8cf" @@ -2956,16 +2775,6 @@ graceful-fs "^4.2.9" source-map "^0.6.0" -"@jest/test-result@^26.6.2": - version "26.6.2" - resolved "https://registry.npmjs.org/@jest/test-result/-/test-result-26.6.2.tgz#55da58b62df134576cc95476efa5f7949e3f5f18" - integrity sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ== - dependencies: - "@jest/console" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/istanbul-lib-coverage" "^2.0.0" - collect-v8-coverage "^1.0.0" - "@jest/test-result@^27.5.1": version "27.5.1" resolved "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz#56a6585fa80f7cdab72b8c5fc2e871d03832f5bb" @@ -2976,17 +2785,6 @@ "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^26.6.3": - version "26.6.3" - resolved "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz#98e8a45100863886d074205e8ffdc5a7eb582b17" - integrity sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw== - dependencies: - "@jest/test-result" "^26.6.2" - graceful-fs "^4.2.4" - jest-haste-map "^26.6.2" - jest-runner "^26.6.3" - jest-runtime "^26.6.3" - "@jest/test-sequencer@^27.5.1": version "27.5.1" resolved "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz#4057e0e9cea4439e544c6353c6affe58d095745b" @@ -2997,27 +2795,6 @@ jest-haste-map "^27.5.1" jest-runtime "^27.5.1" -"@jest/transform@^26.6.2": - version "26.6.2" - resolved "https://registry.npmjs.org/@jest/transform/-/transform-26.6.2.tgz#5ac57c5fa1ad17b2aae83e73e45813894dcf2e4b" - integrity sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA== - dependencies: - "@babel/core" "^7.1.0" - "@jest/types" "^26.6.2" - babel-plugin-istanbul "^6.0.0" - chalk "^4.0.0" - convert-source-map "^1.4.0" - fast-json-stable-stringify "^2.0.0" - graceful-fs "^4.2.4" - jest-haste-map "^26.6.2" - jest-regex-util "^26.0.0" - jest-util "^26.6.2" - micromatch "^4.0.2" - pirates "^4.0.1" - slash "^3.0.0" - source-map "^0.6.1" - write-file-atomic "^3.0.0" - "@jest/transform@^27.5.1": version "27.5.1" resolved "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz#6c3501dcc00c4c08915f292a600ece5ecfe1f409" @@ -4397,7 +4174,7 @@ resolved "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.14.1.tgz#155ef21065427901994e765da8a0ba0eaae8b8bd" integrity sha512-6Wci+Tp3CgPt/B9B0a3J4s3yMgLNSku6w5TV6mN+61C71UqsRBv2FUibBf3tPGlNxebgPHMEUzKpb1ggE8KCKw== -"@mswjs/cookies@^0.1.5", "@mswjs/cookies@^0.1.6", "@mswjs/cookies@^0.1.7": +"@mswjs/cookies@^0.1.6", "@mswjs/cookies@^0.1.7": version "0.1.7" resolved "https://registry.npmjs.org/@mswjs/cookies/-/cookies-0.1.7.tgz#d334081b2c51057a61c1dd7b76ca3cac02251651" integrity sha512-bDg1ReMBx+PYDB4Pk7y1Q07Zz1iKIEUWQpkEXiA2lEWg9gvOZ8UBmGXilCEUvyYoRFlmr/9iXTRR69TrgSwX/Q== @@ -4413,17 +4190,6 @@ "@types/set-cookie-parser" "^2.4.0" set-cookie-parser "^2.4.6" -"@mswjs/interceptors@^0.10.0": - version "0.10.0" - resolved "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.10.0.tgz#f5aad03c2c0591d164e3ed178b21942f1c2f8061" - integrity sha512-/M0GGpid5q2EDI+Keas1sLYF3VZFXHDE5gCmX/jHdp+OJFruVNca3PUk7A8KnGdPpuycZogdPsmRBSOXwjyA7A== - dependencies: - "@open-draft/until" "^1.0.3" - debug "^4.3.0" - headers-utils "^3.0.2" - strict-event-emitter "^0.2.0" - xmldom "^0.6.0" - "@mswjs/interceptors@^0.12.6", "@mswjs/interceptors@^0.12.7": version "0.12.7" resolved "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.12.7.tgz#0d1cd4cd31a0f663e0455993951201faa09d0909" @@ -5335,31 +5101,16 @@ resolved "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz#8da5c6530915653f3a1f38fd5f101d8c3f8079c5" integrity sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ== -"@spotify/eslint-config-base@^12.0.0": - version "12.0.0" - resolved "https://registry.npmjs.org/@spotify/eslint-config-base/-/eslint-config-base-12.0.0.tgz#0b1e41bb436d5c1c20714703629514d64c3c0f06" - integrity sha512-5Uud/TmzakqmdUNCZpD8JFQRa2VG3dVd3DanSMpU/nVdu6K5LyX8EMU3Tz1vGP18Wih8iAu/sBSJhntNzw7e6w== - "@spotify/eslint-config-base@^13.0.0": version "13.0.0" resolved "https://registry.npmjs.org/@spotify/eslint-config-base/-/eslint-config-base-13.0.0.tgz#bb748bb2b705ffb5085f873aa0daf94dfad59985" integrity sha512-BrnexUcUQkp6XUw8HWSmE4LpWtJGgEC6A7vrSkgpgKJtZaYkpw8O+Xnk60DA266ecbFHYbQD6ngqKHlvjNB+pA== -"@spotify/eslint-config-react@^12.0.0": - version "12.0.0" - resolved "https://registry.npmjs.org/@spotify/eslint-config-react/-/eslint-config-react-12.0.0.tgz#5b8d4bc3b81a8ec2824648f482f1f6c3cf711893" - integrity sha512-lNHZRtJesNA273OJHBVUGAg2JYyVDZ+bsT7h3OwnX1HYgejJ3YcKPSziPM8TGFAN8DruH3tHFfaM63uAIA1+uw== - "@spotify/eslint-config-react@^13.0.0": version "13.0.1" resolved "https://registry.npmjs.org/@spotify/eslint-config-react/-/eslint-config-react-13.0.1.tgz#f309f5d3c53ef1e2c7c6ce05f76ee681970112c3" integrity sha512-gyC0CtJ2H9K57HyQG5/RcMsJiB6qmVbBHOHWukZcPLfYtwkK201kgMjHrVfJXoSN+mJxcWhDVPxqe+eA7LHshQ== -"@spotify/eslint-config-typescript@^12.0.0": - version "12.0.0" - resolved "https://registry.npmjs.org/@spotify/eslint-config-typescript/-/eslint-config-typescript-12.0.0.tgz#4c7af3f74a47668bec0c860b72e2a0103e78a138" - integrity sha512-nMVll8ZkN/W8+IHn6Iz3YzCKW0qhrn3TVfyxkAr3qmXm5cex+GzyUdZEuxb8rdN2inZL6A1Il2NFfO5p/UKxog== - "@spotify/eslint-config-typescript@^13.0.0": version "13.0.1" resolved "https://registry.npmjs.org/@spotify/eslint-config-typescript/-/eslint-config-typescript-13.0.1.tgz#47801a66d5569074a110f4422eba60aafc6bd7f8" @@ -5525,20 +5276,6 @@ "@babel/runtime" "^7.14.6" "@testing-library/dom" "^8.1.0" -"@testing-library/dom@^7.28.1": - version "7.31.2" - resolved "https://registry.npmjs.org/@testing-library/dom/-/dom-7.31.2.tgz#df361db38f5212b88555068ab8119f5d841a8c4a" - integrity sha512-3UqjCpey6HiTZT92vODYLPxTBWlM8ZOOjr3LX5F37/VRipW2M1kX6I/Cm4VXzteZqfGfagg8yXywpcOgQBlNsQ== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/runtime" "^7.12.5" - "@types/aria-query" "^4.2.0" - aria-query "^4.2.2" - chalk "^4.1.0" - dom-accessibility-api "^0.5.6" - lz-string "^1.4.4" - pretty-format "^26.6.2" - "@testing-library/dom@^8.0.0", "@testing-library/dom@^8.1.0": version "8.11.3" resolved "https://registry.npmjs.org/@testing-library/dom/-/dom-8.11.3.tgz#38fd63cbfe14557021e88982d931e33fb7c1a808" @@ -5576,14 +5313,6 @@ "@babel/runtime" "^7.12.5" react-error-boundary "^3.1.0" -"@testing-library/react@^11.2.5": - version "11.2.7" - resolved "https://registry.npmjs.org/@testing-library/react/-/react-11.2.7.tgz#b29e2e95c6765c815786c0bc1d5aed9cb2bf7818" - integrity sha512-tzRNp7pzd5QmbtXNG/mhdcl7Awfu/Iz1RaVHY75zTdOkmHCuzMhRL83gWHSgOAcjS3CCbyfwUHMZgRJb4kAfpA== - dependencies: - "@babel/runtime" "^7.12.5" - "@testing-library/dom" "^7.28.1" - "@testing-library/react@^12.1.3": version "12.1.5" resolved "https://registry.npmjs.org/@testing-library/react/-/react-12.1.5.tgz#bb248f72f02a5ac9d949dea07279095fa577963b" @@ -5713,17 +5442,6 @@ "@types/babel__template" "*" "@types/babel__traverse" "*" -"@types/babel__core@^7.1.7": - version "7.1.19" - resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz#7b497495b7d1b4812bdb9d02804d0576f43ee460" - integrity sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - "@types/babel__generator" "*" - "@types/babel__template" "*" - "@types/babel__traverse" "*" - "@types/babel__generator@*": version "7.6.1" resolved "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.1.tgz#4901767b397e8711aeb99df8d396d7ba7b7f0e04" @@ -5869,7 +5587,7 @@ dependencies: "@types/express" "*" -"@types/cookie@^0.4.0", "@types/cookie@^0.4.1": +"@types/cookie@^0.4.1": version "0.4.1" resolved "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz#bfd02c1f2224567676c1545199f87c3a861d878d" integrity sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q== @@ -6192,7 +5910,7 @@ resolved "https://registry.npmjs.org/@types/humanize-duration/-/humanize-duration-3.27.1.tgz#f14740d1f585a0a8e3f46359b62fda8b0eaa31e7" integrity sha512-K3e+NZlpCKd6Bd/EIdqjFJRFHbrq5TzPPLwREk5Iv/YoIjQrs6ljdAUCo+Lb2xFlGNOjGSE0dqsVD19cZL137w== -"@types/inquirer@^7.3.1", "@types/inquirer@^7.3.3": +"@types/inquirer@^7.3.3": version "7.3.3" resolved "https://registry.npmjs.org/@types/inquirer/-/inquirer-7.3.3.tgz#92e6676efb67fa6925c69a2ee638f67a822952ac" integrity sha512-HhxyLejTHMfohAuhRun4csWigAMjXTmRyiJTU1Y/I1xmggikFMkOUoMQRlFm+zQcPEGHSs3io/0FAmNZf8EymQ== @@ -6579,11 +6297,6 @@ resolved "https://registry.npmjs.org/@types/pluralize/-/pluralize-0.0.29.tgz#6ffa33ed1fc8813c469b859681d09707eb40d03c" integrity sha512-BYOID+l2Aco2nBik+iYS4SZX0Lf20KPILP5RGmM1IgzdwNdTs0eebiFriOPcej1sX9mLnSoiNte5zcFxssgpGA== -"@types/prettier@^2.0.0": - version "2.6.0" - resolved "https://registry.npmjs.org/@types/prettier/-/prettier-2.6.0.tgz#efcbd41937f9ae7434c714ab698604822d890759" - integrity sha512-G/AdOadiZhnJp0jXCaBQU449W2h716OW/EoXeYkCytxKL06X1WCXB4DZpp8TpZ8eyIJVS1cw4lrlkkSYU21cDw== - "@types/prettier@^2.1.5": version "2.4.3" resolved "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.3.tgz#a3c65525b91fca7da00ab1a3ac2b5a2a4afbffbf" @@ -7585,16 +7298,6 @@ ajv@^6.10.0, ajv@^6.10.1, ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5, ajv@^6.5.5, ajv json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^7.0.3: - version "7.2.4" - resolved "https://registry.npmjs.org/ajv/-/ajv-7.2.4.tgz#8e239d4d56cf884bccca8cca362f508446dc160f" - integrity sha512-nBeQgg/ZZA3u3SYxyaDvpvDtgZ/EZPF547ARgZBrG9Bhu1vKDwAIjtIf+sDtJUKa2zOcEbmRLBRSyMraS/Oy1A== - dependencies: - fast-deep-equal "^3.1.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - uri-js "^4.2.2" - ajv@^8.0.0, ajv@^8.10.0, ajv@^8.8.0: version "8.11.0" resolved "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz#977e91dd96ca669f54a11e23e378e33b884a565f" @@ -7720,14 +7423,6 @@ any-promise@^1.0.0: resolved "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== - dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" - anymatch@^3.0.3, anymatch@~3.1.2: version "3.1.2" resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" @@ -8242,20 +7937,6 @@ babel-core@^7.0.0-bridge.0: resolved "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz#95a492ddd90f9b4e9a4a1da14eb335b87b634ece" integrity sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg== -babel-jest@^26.6.3: - version "26.6.3" - resolved "https://registry.npmjs.org/babel-jest/-/babel-jest-26.6.3.tgz#d87d25cb0037577a0c89f82e5755c5d293c01056" - integrity sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA== - dependencies: - "@jest/transform" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/babel__core" "^7.1.7" - babel-plugin-istanbul "^6.0.0" - babel-preset-jest "^26.6.2" - chalk "^4.0.0" - graceful-fs "^4.2.4" - slash "^3.0.0" - babel-jest@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz#a1bf8d61928edfefd21da27eb86a695bfd691444" @@ -8277,7 +7958,7 @@ babel-plugin-dynamic-import-node@^2.3.3: dependencies: object.assign "^4.1.0" -babel-plugin-istanbul@^6.0.0, babel-plugin-istanbul@^6.1.1: +babel-plugin-istanbul@^6.1.1: version "6.1.1" resolved "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== @@ -8288,16 +7969,6 @@ babel-plugin-istanbul@^6.0.0, babel-plugin-istanbul@^6.1.1: istanbul-lib-instrument "^5.0.4" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz#8185bd030348d254c6d7dd974355e6a28b21e62d" - integrity sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw== - dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.0.0" - "@types/babel__traverse" "^7.0.6" - babel-plugin-jest-hoist@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz#9be98ecf28c331eb9f5df9c72d6f89deb8181c2e" @@ -8397,14 +8068,6 @@ babel-preset-fbjs@^3.4.0: "@babel/plugin-transform-template-literals" "^7.0.0" babel-plugin-syntax-trailing-function-commas "^7.0.0-beta.0" -babel-preset-jest@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz#747872b1171df032252426586881d62d31798fee" - integrity sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ== - dependencies: - babel-plugin-jest-hoist "^26.6.2" - babel-preset-current-node-syntax "^1.0.0" - babel-preset-jest@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz#91f10f58034cb7989cb4f962b69fa6eef6a6bc81" @@ -9103,7 +8766,7 @@ camelcase@^5.0.0, camelcase@^5.3.1: resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -camelcase@^6.0.0, camelcase@^6.2.0, camelcase@^6.3.0: +camelcase@^6.2.0, camelcase@^6.3.0: version "6.3.0" resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== @@ -9141,13 +8804,6 @@ capital-case@^1.0.4: tslib "^2.0.3" upper-case-first "^2.0.2" -capture-exit@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" - integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g== - dependencies: - rsvp "^4.8.4" - caseless@~0.12.0: version "0.12.0" resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" @@ -9357,11 +9013,6 @@ circleci-api@^4.0.0: dependencies: axios "^0.21.1" -cjs-module-lexer@^0.6.0: - version "0.6.0" - resolved "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz#4186fcca0eae175970aee870b9fe2d6cf8d5655f" - integrity sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw== - cjs-module-lexer@^1.0.0: version "1.2.2" resolved "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40" @@ -9753,11 +9404,6 @@ commander@^5.1.0: resolved "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== -commander@^6.1.0: - version "6.2.1" - resolved "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" - integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== - commander@^7.2.0: version "7.2.0" resolved "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" @@ -10923,7 +10569,7 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.9: dependencies: ms "2.0.0" -debug@4, debug@4.3.4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.0, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4: +debug@4, debug@4.3.4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4: version "4.3.4" resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -11567,11 +11213,6 @@ elliptic@^6.0.0: minimalistic-assert "^1.0.1" minimalistic-crypto-utils "^1.0.1" -emittery@^0.7.1: - version "0.7.2" - resolved "https://registry.npmjs.org/emittery/-/emittery-0.7.2.tgz#25595908e13af0f5674ab419396e2fb394cdfa82" - integrity sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ== - emittery@^0.8.1: version "0.8.1" resolved "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz#bb23cc86d03b30aa75a7f734819dee2e1ba70860" @@ -12027,13 +11668,6 @@ eslint-plugin-import@^2.25.4: resolve "^1.22.0" tsconfig-paths "^3.14.1" -eslint-plugin-jest@^25.3.4: - version "25.7.0" - resolved "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz#ff4ac97520b53a96187bad9c9814e7d00de09a6a" - integrity sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ== - dependencies: - "@typescript-eslint/experimental-utils" "^5.0.0" - eslint-plugin-jest@^26.1.2: version "26.2.2" resolved "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-26.2.2.tgz#74e000544259f1ef0462a609a3fc9e5da3768f6c" @@ -12139,18 +11773,6 @@ eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.3.0: resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== -eslint-webpack-plugin@^2.6.0: - version "2.6.0" - resolved "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-2.6.0.tgz#3bd4ada4e539cb1f6687d2f619073dbb509361cd" - integrity sha512-V+LPY/T3kur5QO3u+1s34VDTcRxjXWPUGM4hlmTb5DwVD0OQz631yGTxJZf4SpAqAjdbBVe978S8BJeHpAdOhQ== - dependencies: - "@types/eslint" "^7.28.2" - arrify "^2.0.1" - jest-worker "^27.3.1" - micromatch "^4.0.4" - normalize-path "^3.0.0" - schema-utils "^3.1.1" - eslint-webpack-plugin@^3.1.1: version "3.1.1" resolved "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.1.1.tgz#83dad2395e5f572d6f4d919eedaa9cf902890fcb" @@ -12397,12 +12019,7 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: react-use "^17.2.4" zen-observable "^0.8.15" -exec-sh@^0.3.2: - version "0.3.6" - resolved "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.6.tgz#ff264f9e325519a60cb5e273692943483cca63bc" - integrity sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w== - -execa@4.1.0, execa@^4.0.0: +execa@4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== @@ -12500,18 +12117,6 @@ expand-template@^2.0.3: resolved "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== -expect@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/expect/-/expect-26.6.2.tgz#c6b996bf26bf3fe18b67b2d0f51fc981ba934417" - integrity sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA== - dependencies: - "@jest/types" "^26.6.2" - ansi-styles "^4.0.0" - jest-get-type "^26.3.0" - jest-matcher-utils "^26.6.2" - jest-message-util "^26.6.2" - jest-regex-util "^26.0.0" - expect@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz#83ce59f1e5bdf5f9d2b94b61d2050db48f3fef74" @@ -13198,16 +12803,6 @@ fs-extra@10.1.0, fs-extra@^10.0.0, fs-extra@^10.0.1: jsonfile "^6.0.1" universalify "^2.0.0" -fs-extra@9.1.0, fs-extra@^9.0.0, fs-extra@^9.1.0: - version "9.1.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" - integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== - dependencies: - at-least-node "^1.0.0" - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - fs-extra@^7.0.1, fs-extra@~7.0.1: version "7.0.1" resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" @@ -13226,6 +12821,16 @@ fs-extra@^8.1.0: jsonfile "^4.0.0" universalify "^0.1.0" +fs-extra@^9.0.0, fs-extra@^9.1.0: + version "9.1.0" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + fs-minipass@^1.2.7: version "1.2.7" resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" @@ -13250,7 +12855,7 @@ fs.realpath@^1.0.0: resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= -fsevents@^2.1.2, fsevents@^2.3.2, fsevents@~2.3.2: +fsevents@^2.3.2, fsevents@~2.3.2: version "2.3.2" resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== @@ -13833,7 +13438,7 @@ graphql-ws@^5.4.1: resolved "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.5.5.tgz#f375486d3f196e2a2527b503644693ae3a8670a9" integrity sha512-hvyIS71vs4Tu/yUYHPvGXsTgo0t3arU820+lT5VjZS2go0ewp2LqyCgxEN56CzOG7Iys52eRhHBiD1gGRdiQtw== -graphql@^15.4.0, graphql@^15.5.1: +graphql@^15.5.1: version "15.8.0" resolved "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz#33410e96b012fa3bdb1091cc99a94769db212b38" integrity sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw== @@ -13848,11 +13453,6 @@ grouped-queue@^2.0.0: resolved "https://registry.npmjs.org/grouped-queue/-/grouped-queue-2.0.0.tgz#a2c6713f2171e45db2c300a3a9d7c119d694dac8" integrity sha512-/PiFUa7WIsl48dUeCvhIHnwNmAAzlI/eHoJl0vu3nsFA366JleY7Ff8EVTplZu5kO0MIdZjKTTnzItL61ahbnw== -growly@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" - integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= - gtoken@^5.0.4: version "5.1.0" resolved "https://registry.npmjs.org/gtoken/-/gtoken-5.1.0.tgz#4ba8d2fc9a8459098f76e7e8fd7beaa39fda9fe4" @@ -14858,13 +14458,6 @@ is-core-module@^2.1.0, is-core-module@^2.2.0, is-core-module@^2.8.0: dependencies: has "^1.0.3" -is-core-module@^2.8.1: - version "2.9.0" - resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69" - integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== - dependencies: - has "^1.0.3" - is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -15425,16 +15018,6 @@ istanbul-lib-coverage@^3.2.0: resolved "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== -istanbul-lib-instrument@^4.0.3: - version "4.0.3" - resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" - integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== - dependencies: - "@babel/core" "^7.7.5" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.0.0" - semver "^6.3.0" - istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: version "5.1.0" resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz#7b49198b657b27a730b8e9cb601f1e1bff24c59a" @@ -15464,7 +15047,7 @@ istanbul-lib-source-maps@^4.0.0: istanbul-lib-coverage "^3.0.0" source-map "^0.6.1" -istanbul-reports@^3.0.2, istanbul-reports@^3.1.3: +istanbul-reports@^3.1.3: version "3.1.4" resolved "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz#1b6f068ecbc6c331040aab5741991273e609e40c" integrity sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw== @@ -15489,15 +15072,6 @@ jenkins@^0.28.1: dependencies: papi "^0.29.0" -jest-changed-files@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.6.2.tgz#f6198479e1cc66f22f9ae1e22acaa0b429c042d0" - integrity sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ== - dependencies: - "@jest/types" "^26.6.2" - execa "^4.0.0" - throat "^5.0.0" - jest-changed-files@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz#a348aed00ec9bf671cc58a66fcbe7c3dfd6a68f5" @@ -15532,25 +15106,6 @@ jest-circus@^27.5.1: stack-utils "^2.0.3" throat "^6.0.1" -jest-cli@^26.6.3: - version "26.6.3" - resolved "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz#43117cfef24bc4cd691a174a8796a532e135e92a" - integrity sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg== - dependencies: - "@jest/core" "^26.6.3" - "@jest/test-result" "^26.6.2" - "@jest/types" "^26.6.2" - chalk "^4.0.0" - exit "^0.1.2" - graceful-fs "^4.2.4" - import-local "^3.0.2" - is-ci "^2.0.0" - jest-config "^26.6.3" - jest-util "^26.6.2" - jest-validate "^26.6.2" - prompts "^2.0.1" - yargs "^15.4.1" - jest-cli@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz#278794a6e6458ea8029547e6c6cbf673bd30b145" @@ -15569,30 +15124,6 @@ jest-cli@^27.5.1: prompts "^2.0.1" yargs "^16.2.0" -jest-config@^26.6.3: - version "26.6.3" - resolved "https://registry.npmjs.org/jest-config/-/jest-config-26.6.3.tgz#64f41444eef9eb03dc51d5c53b75c8c71f645349" - integrity sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg== - dependencies: - "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^26.6.3" - "@jest/types" "^26.6.2" - babel-jest "^26.6.3" - chalk "^4.0.0" - deepmerge "^4.2.2" - glob "^7.1.1" - graceful-fs "^4.2.4" - jest-environment-jsdom "^26.6.2" - jest-environment-node "^26.6.2" - jest-get-type "^26.3.0" - jest-jasmine2 "^26.6.3" - jest-regex-util "^26.0.0" - jest-resolve "^26.6.2" - jest-util "^26.6.2" - jest-validate "^26.6.2" - micromatch "^4.0.2" - pretty-format "^26.6.2" - jest-config@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz#5c387de33dca3f99ad6357ddeccd91bf3a0e4a41" @@ -15630,7 +15161,7 @@ jest-css-modules@^2.1.0: dependencies: identity-obj-proxy "3.0.0" -jest-diff@^26.0.0, jest-diff@^26.6.2: +jest-diff@^26.0.0: version "26.6.2" resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394" integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA== @@ -15650,13 +15181,6 @@ jest-diff@^27.5.1: jest-get-type "^27.5.1" pretty-format "^27.5.1" -jest-docblock@^26.0.0: - version "26.0.0" - resolved "https://registry.npmjs.org/jest-docblock/-/jest-docblock-26.0.0.tgz#3e2fa20899fc928cb13bd0ff68bd3711a36889b5" - integrity sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w== - dependencies: - detect-newline "^3.0.0" - jest-docblock@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz#14092f364a42c6108d42c33c8cf30e058e25f6c0" @@ -15664,17 +15188,6 @@ jest-docblock@^27.5.1: dependencies: detect-newline "^3.0.0" -jest-each@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/jest-each/-/jest-each-26.6.2.tgz#02526438a77a67401c8a6382dfe5999952c167cb" - integrity sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A== - dependencies: - "@jest/types" "^26.6.2" - chalk "^4.0.0" - jest-get-type "^26.3.0" - jest-util "^26.6.2" - pretty-format "^26.6.2" - jest-each@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz#5bc87016f45ed9507fed6e4702a5b468a5b2c44e" @@ -15686,19 +15199,6 @@ jest-each@^27.5.1: jest-util "^27.5.1" pretty-format "^27.5.1" -jest-environment-jsdom@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz#78d09fe9cf019a357009b9b7e1f101d23bd1da3e" - integrity sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q== - dependencies: - "@jest/environment" "^26.6.2" - "@jest/fake-timers" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/node" "*" - jest-mock "^26.6.2" - jest-util "^26.6.2" - jsdom "^16.4.0" - jest-environment-jsdom@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz#ea9ccd1fc610209655a77898f86b2b559516a546" @@ -15712,18 +15212,6 @@ jest-environment-jsdom@^27.5.1: jest-util "^27.5.1" jsdom "^16.6.0" -jest-environment-node@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.6.2.tgz#824e4c7fb4944646356f11ac75b229b0035f2b0c" - integrity sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag== - dependencies: - "@jest/environment" "^26.6.2" - "@jest/fake-timers" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/node" "*" - jest-mock "^26.6.2" - jest-util "^26.6.2" - jest-environment-node@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz#dedc2cfe52fab6b8f5714b4808aefa85357a365e" @@ -15746,27 +15234,6 @@ jest-get-type@^27.5.1: resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz#3cd613c507b0f7ace013df407a1c1cd578bcb4f1" integrity sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw== -jest-haste-map@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.2.tgz#dd7e60fe7dc0e9f911a23d79c5ff7fb5c2cafeaa" - integrity sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w== - dependencies: - "@jest/types" "^26.6.2" - "@types/graceful-fs" "^4.1.2" - "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.4" - jest-regex-util "^26.0.0" - jest-serializer "^26.6.2" - jest-util "^26.6.2" - jest-worker "^26.6.2" - micromatch "^4.0.2" - sane "^4.0.3" - walker "^1.0.7" - optionalDependencies: - fsevents "^2.1.2" - jest-haste-map@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz#9fd8bd7e7b4fa502d9c6164c5640512b4e811e7f" @@ -15787,30 +15254,6 @@ jest-haste-map@^27.5.1: optionalDependencies: fsevents "^2.3.2" -jest-jasmine2@^26.6.3: - version "26.6.3" - resolved "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz#adc3cf915deacb5212c93b9f3547cd12958f2edd" - integrity sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg== - dependencies: - "@babel/traverse" "^7.1.0" - "@jest/environment" "^26.6.2" - "@jest/source-map" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - expect "^26.6.2" - is-generator-fn "^2.0.0" - jest-each "^26.6.2" - jest-matcher-utils "^26.6.2" - jest-message-util "^26.6.2" - jest-runtime "^26.6.3" - jest-snapshot "^26.6.2" - jest-util "^26.6.2" - pretty-format "^26.6.2" - throat "^5.0.0" - jest-jasmine2@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz#a037b0034ef49a9f3d71c4375a796f3b230d1ac4" @@ -15834,14 +15277,6 @@ jest-jasmine2@^27.5.1: pretty-format "^27.5.1" throat "^6.0.1" -jest-leak-detector@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz#7717cf118b92238f2eba65054c8a0c9c653a91af" - integrity sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg== - dependencies: - jest-get-type "^26.3.0" - pretty-format "^26.6.2" - jest-leak-detector@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz#6ec9d54c3579dd6e3e66d70e3498adf80fde3fb8" @@ -15860,21 +15295,6 @@ jest-matcher-utils@^27.0.0, jest-matcher-utils@^27.5.1: jest-get-type "^27.5.1" pretty-format "^27.5.1" -jest-message-util@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.6.2.tgz#58173744ad6fc0506b5d21150b9be56ef001ca07" - integrity sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA== - dependencies: - "@babel/code-frame" "^7.0.0" - "@jest/types" "^26.6.2" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.4" - micromatch "^4.0.2" - pretty-format "^26.6.2" - slash "^3.0.0" - stack-utils "^2.0.2" - jest-message-util@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz#bdda72806da10d9ed6425e12afff38cd1458b6cf" @@ -15890,14 +15310,6 @@ jest-message-util@^27.5.1: slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/jest-mock/-/jest-mock-26.6.2.tgz#d6cb712b041ed47fe0d9b6fc3474bc6543feb302" - integrity sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew== - dependencies: - "@jest/types" "^26.6.2" - "@types/node" "*" - jest-mock@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz#19948336d49ef4d9c52021d34ac7b5f36ff967d6" @@ -15911,25 +15323,11 @@ jest-pnp-resolver@^1.2.2: resolved "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== -jest-regex-util@^26.0.0: - version "26.0.0" - resolved "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28" - integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A== - jest-regex-util@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz#4da143f7e9fd1e542d4aa69617b38e4a78365b95" integrity sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg== -jest-resolve-dependencies@^26.6.3: - version "26.6.3" - resolved "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz#6680859ee5d22ee5dcd961fe4871f59f4c784fb6" - integrity sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg== - dependencies: - "@jest/types" "^26.6.2" - jest-regex-util "^26.0.0" - jest-snapshot "^26.6.2" - jest-resolve-dependencies@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz#d811ecc8305e731cc86dd79741ee98fed06f1da8" @@ -15939,20 +15337,6 @@ jest-resolve-dependencies@^27.5.1: jest-regex-util "^27.5.1" jest-snapshot "^27.5.1" -jest-resolve@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz#a3ab1517217f469b504f1b56603c5bb541fbb507" - integrity sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ== - dependencies: - "@jest/types" "^26.6.2" - chalk "^4.0.0" - graceful-fs "^4.2.4" - jest-pnp-resolver "^1.2.2" - jest-util "^26.6.2" - read-pkg-up "^7.0.1" - resolve "^1.18.1" - slash "^3.0.0" - jest-resolve@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz#a2f1c5a0796ec18fe9eb1536ac3814c23617b384" @@ -15969,32 +15353,6 @@ jest-resolve@^27.5.1: resolve.exports "^1.1.0" slash "^3.0.0" -jest-runner@^26.6.3: - version "26.6.3" - resolved "https://registry.npmjs.org/jest-runner/-/jest-runner-26.6.3.tgz#2d1fed3d46e10f233fd1dbd3bfaa3fe8924be159" - integrity sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ== - dependencies: - "@jest/console" "^26.6.2" - "@jest/environment" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/node" "*" - chalk "^4.0.0" - emittery "^0.7.1" - exit "^0.1.2" - graceful-fs "^4.2.4" - jest-config "^26.6.3" - jest-docblock "^26.0.0" - jest-haste-map "^26.6.2" - jest-leak-detector "^26.6.2" - jest-message-util "^26.6.2" - jest-resolve "^26.6.2" - jest-runtime "^26.6.3" - jest-util "^26.6.2" - jest-worker "^26.6.2" - source-map-support "^0.5.6" - throat "^5.0.0" - jest-runner@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz#071b27c1fa30d90540805c5645a0ec167c7b62e5" @@ -16022,39 +15380,6 @@ jest-runner@^27.5.1: source-map-support "^0.5.6" throat "^6.0.1" -jest-runtime@^26.6.3: - version "26.6.3" - resolved "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.6.3.tgz#4f64efbcfac398331b74b4b3c82d27d401b8fa2b" - integrity sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw== - dependencies: - "@jest/console" "^26.6.2" - "@jest/environment" "^26.6.2" - "@jest/fake-timers" "^26.6.2" - "@jest/globals" "^26.6.2" - "@jest/source-map" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/transform" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/yargs" "^15.0.0" - chalk "^4.0.0" - cjs-module-lexer "^0.6.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.3" - graceful-fs "^4.2.4" - jest-config "^26.6.3" - jest-haste-map "^26.6.2" - jest-message-util "^26.6.2" - jest-mock "^26.6.2" - jest-regex-util "^26.0.0" - jest-resolve "^26.6.2" - jest-snapshot "^26.6.2" - jest-util "^26.6.2" - jest-validate "^26.6.2" - slash "^3.0.0" - strip-bom "^4.0.0" - yargs "^15.4.1" - jest-runtime@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz#4896003d7a334f7e8e4a53ba93fb9bcd3db0a1af" @@ -16083,14 +15408,6 @@ jest-runtime@^27.5.1: slash "^3.0.0" strip-bom "^4.0.0" -jest-serializer@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.6.2.tgz#d139aafd46957d3a448f3a6cdabe2919ba0742d1" - integrity sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g== - dependencies: - "@types/node" "*" - graceful-fs "^4.2.4" - jest-serializer@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz#81438410a30ea66fd57ff730835123dea1fb1f64" @@ -16099,28 +15416,6 @@ jest-serializer@^27.5.1: "@types/node" "*" graceful-fs "^4.2.9" -jest-snapshot@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.6.2.tgz#f3b0af1acb223316850bd14e1beea9837fb39c84" - integrity sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og== - dependencies: - "@babel/types" "^7.0.0" - "@jest/types" "^26.6.2" - "@types/babel__traverse" "^7.0.4" - "@types/prettier" "^2.0.0" - chalk "^4.0.0" - expect "^26.6.2" - graceful-fs "^4.2.4" - jest-diff "^26.6.2" - jest-get-type "^26.3.0" - jest-haste-map "^26.6.2" - jest-matcher-utils "^26.6.2" - jest-message-util "^26.6.2" - jest-resolve "^26.6.2" - natural-compare "^1.4.0" - pretty-format "^26.6.2" - semver "^7.3.2" - jest-snapshot@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz#b668d50d23d38054a51b42c4039cab59ae6eb6a1" @@ -16156,18 +15451,6 @@ jest-transform-yaml@^1.0.0: dependencies: js-yaml "4.1.0" -jest-util@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/jest-util/-/jest-util-26.6.2.tgz#907535dbe4d5a6cb4c47ac9b926f6af29576cbc1" - integrity sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q== - dependencies: - "@jest/types" "^26.6.2" - "@types/node" "*" - chalk "^4.0.0" - graceful-fs "^4.2.4" - is-ci "^2.0.0" - micromatch "^4.0.2" - jest-util@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz#3ba9771e8e31a0b85da48fe0b0891fb86c01c2f9" @@ -16180,18 +15463,6 @@ jest-util@^27.5.1: graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/jest-validate/-/jest-validate-26.6.2.tgz#23d380971587150467342911c3d7b4ac57ab20ec" - integrity sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ== - dependencies: - "@jest/types" "^26.6.2" - camelcase "^6.0.0" - chalk "^4.0.0" - jest-get-type "^26.3.0" - leven "^3.1.0" - pretty-format "^26.6.2" - jest-validate@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz#9197d54dc0bdb52260b8db40b46ae668e04df067" @@ -16204,19 +15475,6 @@ jest-validate@^27.5.1: leven "^3.1.0" pretty-format "^27.5.1" -jest-watcher@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.6.2.tgz#a5b683b8f9d68dbcb1d7dae32172d2cca0592975" - integrity sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ== - dependencies: - "@jest/test-result" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - jest-util "^26.6.2" - string-length "^4.0.1" - jest-watcher@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz#71bd85fb9bde3a2c2ec4dc353437971c43c642a2" @@ -16235,15 +15493,6 @@ jest-when@^3.1.0: resolved "https://registry.npmjs.org/jest-when/-/jest-when-3.5.1.tgz#33ab6f923661cf878cd08fe9df64b507934603db" integrity sha512-o+HiaIVCg1IC95sMDKHU9G5v5N5l3UHqXvJpf0PgAMThZeQo4Hf5Sgoj+wpCBRGg4/KtzSAZZZEKNiLqE0i4eQ== -jest-worker@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" - integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^7.0.0" - jest-worker@^27.3.1, jest-worker@^27.4.5, jest-worker@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" @@ -16253,15 +15502,6 @@ jest-worker@^27.3.1, jest-worker@^27.4.5, jest-worker@^27.5.1: merge-stream "^2.0.0" supports-color "^8.0.0" -jest@^26.0.1: - version "26.6.3" - resolved "https://registry.npmjs.org/jest/-/jest-26.6.3.tgz#40e8fdbe48f00dfa1f0ce8121ca74b88ac9148ef" - integrity sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q== - dependencies: - "@jest/core" "^26.6.3" - import-local "^3.0.2" - jest-cli "^26.6.3" - jest@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz#dadf33ba70a779be7a6fc33015843b51494f63fc" @@ -16437,7 +15677,7 @@ jscodeshift@^0.13.0: temp "^0.8.4" write-file-atomic "^2.3.0" -jsdom@^16.4.0, jsdom@^16.5.2, jsdom@^16.6.0: +jsdom@^16.5.2, jsdom@^16.6.0: version "16.7.0" resolved "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" integrity sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw== @@ -16615,7 +15855,7 @@ json5@^1.0.1: dependencies: minimist "^1.2.0" -json5@^2.1.2, json5@^2.1.3, json5@^2.2.0, json5@^2.2.1: +json5@^2.1.2, json5@^2.1.3, json5@^2.2.0: version "2.2.1" resolved "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== @@ -17774,13 +17014,6 @@ make-fetch-happen@^9.1.0: socks-proxy-agent "^6.0.0" ssri "^8.0.0" -makeerror@1.0.12: - version "1.0.12" - resolved "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" - integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== - dependencies: - tmpl "1.0.5" - makeerror@1.0.x: version "1.0.11" resolved "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" @@ -18404,7 +17637,7 @@ micromark@^3.0.0: micromark-util-types "^1.0.1" parse-entities "^3.0.0" -micromatch@^3.1.10, micromatch@^3.1.4: +micromatch@^3.1.10: version "3.1.10" resolved "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== @@ -18544,13 +17777,6 @@ minimatch@3.0.4: dependencies: brace-expansion "^1.1.7" -minimatch@5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.0.0.tgz#281d8402aaaeed18a9e8406ad99c46a19206c6ef" - integrity sha512-EU+GCVjXD00yOUf1TwAHVP7v3fBD3A8RkkPYsWWKGWesxM/572sL53wJQnHxquHlRhYUV36wHkqrN8cdikKc2g== - dependencies: - brace-expansion "^2.0.1" - minimatch@5.0.1, minimatch@^5.0.0, minimatch@^5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b" @@ -18581,7 +17807,7 @@ minimist-options@4.1.0, minimist-options@^4.0.2: is-plain-obj "^1.1.0" kind-of "^6.0.3" -minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5, minimist@^1.2.6: +minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5, minimist@^1.2.6: version "1.2.6" resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== @@ -18777,31 +18003,6 @@ ms@2.1.3, ms@^2.0.0, ms@^2.1.1, ms@^2.1.3: resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -msw@^0.29.0: - version "0.29.0" - resolved "https://registry.npmjs.org/msw/-/msw-0.29.0.tgz#7242d575cb01db0c925241587df1fc2b79230d78" - integrity sha512-C/wz1d5uAEZRvAPAYrXG1rwLxXl0+BOs+JPrCzasoABZW3ATwS6ifSze+/DAgA93e9M86RXwvy6yDtZeZWmCFQ== - dependencies: - "@mswjs/cookies" "^0.1.5" - "@mswjs/interceptors" "^0.10.0" - "@open-draft/until" "^1.0.3" - "@types/cookie" "^0.4.0" - "@types/inquirer" "^7.3.1" - "@types/js-levenshtein" "^1.1.0" - chalk "^4.1.1" - chokidar "^3.4.2" - cookie "^0.4.1" - graphql "^15.4.0" - headers-utils "^3.0.2" - inquirer "^8.1.0" - js-levenshtein "^1.1.6" - node-fetch "^2.6.1" - node-match-path "^0.6.3" - statuses "^2.0.0" - strict-event-emitter "^0.2.0" - type-fest "^1.1.3" - yargs "^17.0.1" - msw@^0.35.0: version "0.35.0" resolved "https://registry.npmjs.org/msw/-/msw-0.35.0.tgz#18a4ceb6c822ef226a30421d434413bc45030d38" @@ -19171,18 +18372,6 @@ node-modules-regexp@^1.0.0: resolved "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= -node-notifier@^8.0.0: - version "8.0.2" - resolved "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.2.tgz#f3167a38ef0d2c8a866a83e318c1ba0efeb702c5" - integrity sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg== - dependencies: - growly "^1.3.0" - is-wsl "^2.2.0" - semver "^7.3.2" - shellwords "^0.1.1" - uuid "^8.3.0" - which "^2.0.2" - node-releases@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz#3d1d395f204f1f2f29a54358b9fb678765ad2fc5" @@ -19802,11 +18991,6 @@ p-cancelable@^2.0.0: resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.0.0.tgz#4a3740f5bdaf5ed5d7c3e34882c6fb5d6b266a6e" integrity sha512-wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg== -p-each-series@^2.1.0: - version "2.2.0" - resolved "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a" - integrity sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA== - p-filter@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/p-filter/-/p-filter-2.1.0.tgz#1b1472562ae7a0f742f0f3d3d3718ea66ff9c09c" @@ -22744,11 +21928,6 @@ rollup-plugin-esbuild@^4.7.2: joycon "^3.0.1" jsonc-parser "^3.0.0" -rollup-plugin-peer-deps-external@^2.2.2: - version "2.2.4" - resolved "https://registry.npmjs.org/rollup-plugin-peer-deps-external/-/rollup-plugin-peer-deps-external-2.2.4.tgz#8a420bbfd6dccc30aeb68c9bf57011f2f109570d" - integrity sha512-AWdukIM1+k5JDdAqV/Cxd+nejvno2FVLVeZ74NKggm3Q5s9cbbcOgUPGdbxPi4BXu7xGaZ8HG12F+thImYu/0g== - rollup-plugin-postcss@*, rollup-plugin-postcss@^4.0.0: version "4.0.2" resolved "https://registry.npmjs.org/rollup-plugin-postcss/-/rollup-plugin-postcss-4.0.2.tgz#15e9462f39475059b368ce0e49c800fa4b1f7050" @@ -22790,11 +21969,6 @@ rollup@^2.60.2: optionalDependencies: fsevents "~2.3.2" -rsvp@^4.8.4: - version "4.8.5" - resolved "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" - integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== - rtl-css-js@^1.14.0: version "1.14.0" resolved "https://registry.npmjs.org/rtl-css-js/-/rtl-css-js-1.14.0.tgz#daa4f192a92509e292a0519f4b255e6e3c076b7d" @@ -22879,21 +22053,6 @@ safe-stable-stringify@^2.2.0, safe-stable-stringify@^2.3.1: resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sane@^4.0.3: - version "4.1.0" - resolved "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded" - integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA== - dependencies: - "@cnakazawa/watch" "^1.0.3" - anymatch "^2.0.0" - capture-exit "^2.0.0" - exec-sh "^0.3.2" - execa "^1.0.0" - fb-watchman "^2.0.0" - micromatch "^3.1.4" - minimist "^1.1.1" - walker "~1.0.5" - sanitize-filename@^1.6.1: version "1.6.3" resolved "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz#755ebd752045931977e30b2025d340d7c9090378" @@ -23230,11 +22389,6 @@ shelljs@^0.8.5: interpret "^1.0.0" rechoir "^0.6.2" -shellwords@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" - integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== - shx@^0.3.2: version "0.3.4" resolved "https://registry.npmjs.org/shx/-/shx-0.3.4.tgz#74289230b4b663979167f94e1935901406e40f02" @@ -23775,7 +22929,7 @@ stack-trace@0.0.x: resolved "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA= -stack-utils@^2.0.2, stack-utils@^2.0.3: +stack-utils@^2.0.3: version "2.0.5" resolved "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz#d25265fca995154659dbbfba3b49254778d2fdd5" integrity sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA== @@ -24593,11 +23747,6 @@ thenify-all@^1.0.0: dependencies: any-promise "^1.0.0" -throat@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" - integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== - throat@^6.0.1: version "6.0.1" resolved "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz#d514fedad95740c12c2d7fc70ea863eb51ade375" @@ -24713,7 +23862,7 @@ tmp@^0.2.0, tmp@~0.2.1: dependencies: rimraf "^3.0.0" -tmpl@1.0.5, tmpl@1.0.x: +tmpl@1.0.x: version "1.0.5" resolved "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== @@ -25052,7 +24201,7 @@ type-fest@^0.8.1: resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== -type-fest@^1.1.3, type-fest@^1.2.1, type-fest@^1.2.2: +type-fest@^1.2.1, type-fest@^1.2.2: version "1.4.0" resolved "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== @@ -25086,19 +24235,6 @@ typedarray@^0.0.6: resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript-json-schema@^0.52.0: - version "0.52.0" - resolved "https://registry.npmjs.org/typescript-json-schema/-/typescript-json-schema-0.52.0.tgz#954560ec90e5486e8f7a5b7706ec59286a708e29" - integrity sha512-3ZdHzx116gZ+D9LmMl5/+d1G3Rpt8baWngKzepYWHnXbAa8Winv64CmFRqLlMKneE1c40yugYDFcWdyX1FjGzQ== - dependencies: - "@types/json-schema" "^7.0.9" - "@types/node" "^16.9.2" - glob "^7.1.7" - safe-stable-stringify "^2.2.0" - ts-node "^10.2.1" - typescript "~4.4.4" - yargs "^17.1.1" - typescript-json-schema@^0.53.0: version "0.53.0" resolved "https://registry.npmjs.org/typescript-json-schema/-/typescript-json-schema-0.53.0.tgz#ac5b89e4b0af55be422f475a041360e0556f88ea" @@ -25622,15 +24758,6 @@ v8-compile-cache@^2.0.3: resolved "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e" integrity sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g== -v8-to-istanbul@^7.0.0: - version "7.1.2" - resolved "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz#30898d1a7fa0c84d225a2c1434fb958f290883c1" - integrity sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.1" - convert-source-map "^1.6.0" - source-map "^0.7.3" - v8-to-istanbul@^8.1.0: version "8.1.1" resolved "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz#77b752fd3975e31bbcef938f85e9bd1c7a8d60ed" @@ -25827,13 +24954,6 @@ walker@^1.0.7: dependencies: makeerror "1.0.x" -walker@~1.0.5: - version "1.0.8" - resolved "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" - integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== - dependencies: - makeerror "1.0.12" - watchpack@^2.3.1: version "2.3.1" resolved "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz#4200d9447b401156eeca7767ee610f8809bc9d25" @@ -26358,11 +25478,6 @@ xmlchars@^2.2.0: resolved "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== -xmldom@^0.6.0: - version "0.6.0" - resolved "https://registry.npmjs.org/xmldom/-/xmldom-0.6.0.tgz#43a96ecb8beece991cef382c08397d82d4d0c46f" - integrity sha512-iAcin401y58LckRZ0TkI4k0VSM1Qg0KGSc3i8rU+xrxe19A/BN1zHyVSJY7uoutVlaTSzYyk/v5AmkewAP7jtg== - xmlhttprequest-ssl@~1.6.2: version "1.6.3" resolved "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.6.3.tgz#03b713873b01659dfa2c1c5d056065b27ddc2de6" @@ -26457,7 +25572,7 @@ yargs-parser@^3.2.0: camelcase "^3.0.0" lodash.assign "^4.1.0" -yargs@^15.1.0, yargs@^15.3.1, yargs@^15.4.1: +yargs@^15.1.0, yargs@^15.3.1: version "15.4.1" resolved "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== From 37f2d5be527d06fd730b902e872b7e7ef4b1f66a Mon Sep 17 00:00:00 2001 From: Talita Gregory Nunes Freire Date: Fri, 22 Apr 2022 18:06:03 +0200 Subject: [PATCH 04/21] chore: remove changes on example app Signed-off-by: Talita Gregory Nunes Freire --- packages/app/src/components/catalog/EntityPage.tsx | 4 ---- 1 file changed, 4 deletions(-) diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx index 94713b66d8..799fe3e4d9 100644 --- a/packages/app/src/components/catalog/EntityPage.tsx +++ b/packages/app/src/components/catalog/EntityPage.tsx @@ -137,7 +137,6 @@ import { EntityNewRelicDashboardCard, } from '@backstage/plugin-newrelic-dashboard'; import { EntityGoCdContent, isGoCdAvailable } from '@backstage/plugin-gocd'; -import { TeamPullRequestsPage } from '@backstage/plugin-github-pull-requests-board'; import React, { ReactNode, useMemo, useState } from 'react'; @@ -624,9 +623,6 @@ const groupPage = ( - - - ); From 09286fefa77a971fc44f6f42db7b01696b41ddb4 Mon Sep 17 00:00:00 2001 From: Talita Gregory Nunes Freire Date: Fri, 22 Apr 2022 20:24:42 +0200 Subject: [PATCH 05/21] feat: logo and plugin information added Signed-off-by: Talita Gregory Nunes Freire --- .../plugins/github-pull-requests-board.yaml | 9 ++++++ .../img/github-pull-requests-board-logo.svg | 30 +++++++++++++++++++ plugins/github-pull-requests-board/README.md | 4 +-- 3 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 microsite/data/plugins/github-pull-requests-board.yaml create mode 100644 microsite/static/img/github-pull-requests-board-logo.svg diff --git a/microsite/data/plugins/github-pull-requests-board.yaml b/microsite/data/plugins/github-pull-requests-board.yaml new file mode 100644 index 0000000000..90feb84010 --- /dev/null +++ b/microsite/data/plugins/github-pull-requests-board.yaml @@ -0,0 +1,9 @@ +--- +title: Github Pull Requests Board +author: DAZN +authorUrl: https://engineering.dazn.com/ +category: Source Control Mgmt +description: View All open GitHub pull requests owned by your team in Backstage. +documentation: https://github.com/backstage/backstage/tree/master/plugins/github-pull-requests-board +iconUrl: img/github-pull-requests-board-logo.svg +npmPackageName: '@backstage/plugin-github-pull-requests-board' \ No newline at end of file diff --git a/microsite/static/img/github-pull-requests-board-logo.svg b/microsite/static/img/github-pull-requests-board-logo.svg new file mode 100644 index 0000000000..0114b50d08 --- /dev/null +++ b/microsite/static/img/github-pull-requests-board-logo.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/github-pull-requests-board/README.md b/plugins/github-pull-requests-board/README.md index 6205a34d95..26691e838d 100644 --- a/plugins/github-pull-requests-board/README.md +++ b/plugins/github-pull-requests-board/README.md @@ -12,7 +12,7 @@ It will help you and your team stay on top of open pull requests, hopefully redu ## Getting started -The plugin exports the **TeamPullRequestsBoard** component which can be added to the Overview page ot the team at `backstage/packages/app/src/components/catalog/EntityPage.tsx` +The plugin exports the **TeamPullRequestsBoard** component which can be added to the Overview page of the team at `backstage/packages/app/src/components/catalog/EntityPage.tsx` ```javascript import { TeamPullRequestsBoard } from '@backstage/plugin-github-pull-requests-board'; @@ -43,7 +43,7 @@ const groupPage = ( ); ``` -Or you can also import the **TeamPullRequestsPage** component which can be used to add a new page on the group page at `backstage/packages/app/src/components/catalog/EntityPage.tsx` +Or you can also import the **TeamPullRequestsPage** component which can be used to add a new tab under the group page at `backstage/packages/app/src/components/catalog/EntityPage.tsx` ```javascript import { TeamPullRequestsPage } from '@backstage/plugin-github-pull-requests-board'; From 4a6ffbf3adc3629f141b702952b9ddbf816687b7 Mon Sep 17 00:00:00 2001 From: Talita Gregory Nunes Freire Date: Wed, 27 Apr 2022 11:15:26 +0200 Subject: [PATCH 06/21] feat: add support for custom github apiBaseUrl Signed-off-by: Talita Gregory Nunes Freire --- .../src/api/useOctokitGraphQl.ts | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/plugins/github-pull-requests-board/src/api/useOctokitGraphQl.ts b/plugins/github-pull-requests-board/src/api/useOctokitGraphQl.ts index 2460588987..91ce559ed2 100644 --- a/plugins/github-pull-requests-board/src/api/useOctokitGraphQl.ts +++ b/plugins/github-pull-requests-board/src/api/useOctokitGraphQl.ts @@ -14,23 +14,34 @@ * limitations under the License. */ import { Octokit } from '@octokit/rest'; -import { useApi, githubAuthApiRef } from '@backstage/core-plugin-api'; +import { + useApi, + githubAuthApiRef, + configApiRef, +} from '@backstage/core-plugin-api'; +import { readGitHubIntegrationConfigs } from '@backstage/integration'; let octokit: any; export const useOctokitGraphQl = () => { const auth = useApi(githubAuthApiRef); + const config = useApi(configApiRef); + + const baseUrl = readGitHubIntegrationConfigs( + config.getOptionalConfigArray('providers.github') ?? [], + )[0].apiBaseUrl; return (path: string, options?: any): Promise => - auth.getAccessToken(['repo']) + auth + .getAccessToken(['repo']) .then((token: string) => { - if(!octokit) { - octokit = new Octokit({ auth: token }) + if (!octokit) { + octokit = new Octokit({ auth: token, ...(baseUrl && { baseUrl }) }); } - return octokit + return octokit; }) .then(octokitInstance => { - return octokitInstance.graphql(path, options) + return octokitInstance.graphql(path, options); }); }; From 18664eaa525024285e4298d40f4286301298873e Mon Sep 17 00:00:00 2001 From: Talita Gregory Nunes Freire Date: Wed, 27 Apr 2022 11:20:43 +0200 Subject: [PATCH 07/21] fix: variable name typo, dependencies and pr card rendering Signed-off-by: Talita Gregory Nunes Freire --- .../github-pull-requests-board/package.json | 3 +- .../TeamPullRequestsBoard.tsx | 81 +++++++++--------- .../TeamPullRequestsPage.tsx | 82 ++++++++----------- .../src/components/icons/DraftPr/DraftPr.tsx | 11 ++- .../src/utils/functions.ts | 77 +++++++++-------- 5 files changed, 129 insertions(+), 125 deletions(-) diff --git a/plugins/github-pull-requests-board/package.json b/plugins/github-pull-requests-board/package.json index 7497bff479..5e76257d5d 100644 --- a/plugins/github-pull-requests-board/package.json +++ b/plugins/github-pull-requests-board/package.json @@ -38,12 +38,13 @@ "@backstage/catalog-model": "^1.0.1", "@backstage/core-components": "^0.9.3", "@backstage/core-plugin-api": "^1.0.1", + "@backstage/integration": "^1.1.0", "@backstage/plugin-catalog-react": "^1.0.1", "@backstage/theme": "^0.2.15", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", - "@octokit/rest": "^18.6.7", + "@octokit/rest": "^18.12.0", "moment": "^2.29.1", "react-use": "^17.2.4" }, diff --git a/plugins/github-pull-requests-board/src/components/TeamPullRequestsBoard/TeamPullRequestsBoard.tsx b/plugins/github-pull-requests-board/src/components/TeamPullRequestsBoard/TeamPullRequestsBoard.tsx index f0f47c6a16..8aee285d36 100644 --- a/plugins/github-pull-requests-board/src/components/TeamPullRequestsBoard/TeamPullRequestsBoard.tsx +++ b/plugins/github-pull-requests-board/src/components/TeamPullRequestsBoard/TeamPullRequestsBoard.tsx @@ -25,30 +25,31 @@ import { Wrapper } from '../Wrapper'; import { PullRequestCard } from '../PullRequestCard'; import { usePullRequestsByTeam } from '../../hooks/usePullRequestsByTeam'; import { PRCardFormating } from '../../utils/types'; -import { DraftPrIcon } from '../icons/DraftPr' +import { DraftPrIcon } from '../icons/DraftPr'; import { useUserRepositories } from '../../hooks/useUserRepositories'; const TeamPullRequestsBoard: FunctionComponent = () => { const [infoCardFormat, setInfoCardFormat] = useState([]); const { repositories } = useUserRepositories(); - const { loading, pullRequests, refreshPullRequests } = usePullRequestsByTeam(repositories); + const { loading, pullRequests, refreshPullRequests } = + usePullRequestsByTeam(repositories); const header = ( setInfoCardFormat(newFormats)} + onClickOption={newFormats => setInfoCardFormat(newFormats)} value={infoCardFormat} options={[ { icon: , value: 'draft', - ariaLabel: 'Show draft PRs' + ariaLabel: 'Show draft PRs', }, { icon: , value: 'fullscreen', - ariaLabel: 'Info card is set to fullscreen' - } + ariaLabel: 'Info card is set to fullscreen', + }, ]} /> @@ -67,44 +68,36 @@ const TeamPullRequestsBoard: FunctionComponent = () => { key={columnTitle} fullscreen={infoCardFormat.includes('fullscreen')} > - - {columnTitle} - - {content.map(({ - id, - title, - createdAt, - lastEditedAt, - author, - url, - latestReviews, - repository, - isDraft - }, index) => ( - isDraft ? (infoCardFormat.includes('draft') === isDraft) && - - : - ))} + {columnTitle} + {content.map( + ( + { + id, + title, + createdAt, + lastEditedAt, + author, + url, + latestReviews, + repository, + isDraft, + }, + index, + ) => + infoCardFormat.includes('draft') === isDraft && ( + + ), + )} )) ) : ( diff --git a/plugins/github-pull-requests-board/src/components/TeamPullRequestsPage/TeamPullRequestsPage.tsx b/plugins/github-pull-requests-board/src/components/TeamPullRequestsPage/TeamPullRequestsPage.tsx index be388e24e9..8761c55682 100644 --- a/plugins/github-pull-requests-board/src/components/TeamPullRequestsPage/TeamPullRequestsPage.tsx +++ b/plugins/github-pull-requests-board/src/components/TeamPullRequestsPage/TeamPullRequestsPage.tsx @@ -23,24 +23,25 @@ import { Wrapper } from '../../components/Wrapper'; import { PullRequestCard } from '../../components/PullRequestCard'; import { usePullRequestsByTeam } from '../../hooks/usePullRequestsByTeam'; import { PRCardFormating } from '../../utils/types'; -import { DraftPrIcon } from '../../components/icons/DraftPr' +import { DraftPrIcon } from '../../components/icons/DraftPr'; import { useUserRepositories } from '../../hooks/useUserRepositories'; const TeamPullRequestsPage: FunctionComponent = () => { const [infoCardFormat, setInfoCardFormat] = useState([]); const { repositories } = useUserRepositories(); - const { loading, pullRequests, refreshPullRequests } = usePullRequestsByTeam(repositories); + const { loading, pullRequests, refreshPullRequests } = + usePullRequestsByTeam(repositories); const header = ( setInfoCardFormat(newFormats)} + onClickOption={newFormats => setInfoCardFormat(newFormats)} value={infoCardFormat} options={[ { icon: , value: 'draft', - ariaLabel: 'Show draft PRs' + ariaLabel: 'Show draft PRs', }, ]} /> @@ -56,48 +57,37 @@ const TeamPullRequestsPage: FunctionComponent = () => { {pullRequests.length ? ( pullRequests.map(({ title: columnTitle, content }) => ( - - - {columnTitle} - - {content.map(({ - id, - title, - createdAt, - lastEditedAt, - author, - url, - latestReviews, - repository, - isDraft - }, index) => ( - isDraft ? (infoCardFormat.includes('draft') === isDraft) && - - : - ))} + + {columnTitle} + {content.map( + ( + { + id, + title, + createdAt, + lastEditedAt, + author, + url, + latestReviews, + repository, + isDraft, + }, + index, + ) => + infoCardFormat.includes('draft') === isDraft && ( + + ), + )} )) ) : ( diff --git a/plugins/github-pull-requests-board/src/components/icons/DraftPr/DraftPr.tsx b/plugins/github-pull-requests-board/src/components/icons/DraftPr/DraftPr.tsx index eca407dee8..6dc5e306c1 100644 --- a/plugins/github-pull-requests-board/src/components/icons/DraftPr/DraftPr.tsx +++ b/plugins/github-pull-requests-board/src/components/icons/DraftPr/DraftPr.tsx @@ -16,8 +16,15 @@ import React from 'react'; const DraftPr = () => ( - {title} - - + + Created at: {getElapsedTime(createdAt)} - { - updatedAt && ( - - Last update: {getElapsedTime(updatedAt)} - - ) - } + {updatedAt && ( + + Last update: {getElapsedTime(updatedAt)} + + )} - ); }; diff --git a/plugins/github-pull-requests-board/src/components/InfoCardHeader/InfoCardHeader.tsx b/plugins/github-pull-requests-board/src/components/InfoCardHeader/InfoCardHeader.tsx index 47bab88693..9ba94dfa75 100644 --- a/plugins/github-pull-requests-board/src/components/InfoCardHeader/InfoCardHeader.tsx +++ b/plugins/github-pull-requests-board/src/components/InfoCardHeader/InfoCardHeader.tsx @@ -18,23 +18,23 @@ import { Typography, Box, IconButton } from '@material-ui/core'; import RefreshIcon from '@material-ui/icons/Refresh'; type Props = { - onRefresh: () => void; -} + onRefresh: () => void; +}; const InfoCardHeader = (props: PropsWithChildren) => { - const { children, onRefresh } = props; + const { children, onRefresh } = props; - return ( - - - Open pull requests - - - - - {children} - - ); + return ( + + + Open pull requests + + + + + {children} + + ); }; export default InfoCardHeader; diff --git a/plugins/github-pull-requests-board/src/components/PullRequestBoardOptions/PullRequestBoardOptions.tsx b/plugins/github-pull-requests-board/src/components/PullRequestBoardOptions/PullRequestBoardOptions.tsx index e914b774b3..6390b36aae 100644 --- a/plugins/github-pull-requests-board/src/components/PullRequestBoardOptions/PullRequestBoardOptions.tsx +++ b/plugins/github-pull-requests-board/src/components/PullRequestBoardOptions/PullRequestBoardOptions.tsx @@ -22,13 +22,13 @@ type Option = { icon: ReactNode; value: string; ariaLabel: string; -} +}; type Props = { value: string[]; onClickOption: (selectedOptions: PRCardFormating[]) => void; options: Option[]; -} +}; const PullRequestBoardOptions = (props: Props) => { const { value, onClickOption, options } = props; @@ -39,19 +39,20 @@ const PullRequestBoardOptions = (props: Props) => { onChange={(_event, selectedOptions) => onClickOption(selectedOptions)} aria-label="Pull Request board settings" > - { - options.map(({ icon, value: toggleValue, ariaLabel }, index) => ( - - - - {icon} - - - - )) - } + {options.map(({ icon, value: toggleValue, ariaLabel }, index) => ( + + + + {icon} + + + + ))} - ); }; diff --git a/plugins/github-pull-requests-board/src/components/PullRequestCard/PullRequestCard.tsx b/plugins/github-pull-requests-board/src/components/PullRequestCard/PullRequestCard.tsx index 2884f728d3..7e1596f5c2 100644 --- a/plugins/github-pull-requests-board/src/components/PullRequestCard/PullRequestCard.tsx +++ b/plugins/github-pull-requests-board/src/components/PullRequestCard/PullRequestCard.tsx @@ -14,7 +14,11 @@ * limitations under the License. */ import React, { FunctionComponent } from 'react'; -import { getApprovedReviews, getChangeRequests, getCommentedReviews } from '../../utils/functions'; +import { + getApprovedReviews, + getChangeRequests, + getCommentedReviews, +} from '../../utils/functions'; import { Reviews, Author } from '../../utils/types'; import { Card } from '../Card'; import { UserHeaderList } from '../UserHeaderList'; @@ -28,7 +32,7 @@ type Props = { reviews: Reviews; repositoryName: string; isDraft: boolean; -} +}; const PullRequestCard: FunctionComponent = (props: Props) => { const { @@ -59,16 +63,26 @@ const PullRequestCard: FunctionComponent = (props: Props) => { prUrl={url} > {!!approvedReviews.length && ( - reviewAuthor)} /> + reviewAuthor, + )} + /> )} {!!commentsReviews.length && ( reviewAuthor)} + label="💬" + users={commentsReviews.map( + ({ author: reviewAuthor }) => reviewAuthor, + )} /> )} {!!changeRequests.length && ( - reviewAuthor)} /> + reviewAuthor)} + /> )} ); diff --git a/plugins/github-pull-requests-board/src/components/TeamPullRequestsPage/index.ts b/plugins/github-pull-requests-board/src/components/TeamPullRequestsPage/index.ts index b58aed2482..b2f3619eaf 100644 --- a/plugins/github-pull-requests-board/src/components/TeamPullRequestsPage/index.ts +++ b/plugins/github-pull-requests-board/src/components/TeamPullRequestsPage/index.ts @@ -1 +1,16 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export { default as TeamPullRequestsPage } from './TeamPullRequestsPage'; diff --git a/plugins/github-pull-requests-board/src/components/UserHeader/UserHeader.tsx b/plugins/github-pull-requests-board/src/components/UserHeader/UserHeader.tsx index 7860994e31..f78ca44f66 100644 --- a/plugins/github-pull-requests-board/src/components/UserHeader/UserHeader.tsx +++ b/plugins/github-pull-requests-board/src/components/UserHeader/UserHeader.tsx @@ -14,24 +14,19 @@ * limitations under the License. */ import React from 'react'; -import { - Typography, - Box, - Avatar, - makeStyles -} from '@material-ui/core'; +import { Typography, Box, Avatar, makeStyles } from '@material-ui/core'; type Props = { name: string; avatar?: string; -} +}; -const useStyles = makeStyles((theme) => ({ +const useStyles = makeStyles(theme => ({ small: { width: theme.spacing(4), height: theme.spacing(4), - marginLeft: theme.spacing(1) - } + marginLeft: theme.spacing(1), + }, })); const UserHeader = (props: Props) => { @@ -39,8 +34,8 @@ const UserHeader = (props: Props) => { const classes = useStyles(); return ( - - + + {name} diff --git a/plugins/github-pull-requests-board/src/components/UserHeaderList/UserHeaderList.tsx b/plugins/github-pull-requests-board/src/components/UserHeaderList/UserHeaderList.tsx index 3faf2c519c..8bddeb7433 100644 --- a/plugins/github-pull-requests-board/src/components/UserHeaderList/UserHeaderList.tsx +++ b/plugins/github-pull-requests-board/src/components/UserHeaderList/UserHeaderList.tsx @@ -23,15 +23,23 @@ import { Author } from '../../utils/types'; type Props = { label?: string; users: Author[]; -} +}; const UserHeaderList = (props: Props) => { const { users, label } = props; return ( - - {label && {label}} - {filterSameUser(users).map(({ login, avatarUrl }) => )} + + {label && {label}} + {filterSameUser(users).map(({ login, avatarUrl }) => ( + + ))} ); }; diff --git a/plugins/github-pull-requests-board/src/components/Wrapper/Wrapper.tsx b/plugins/github-pull-requests-board/src/components/Wrapper/Wrapper.tsx index cb6e66fab8..18b47eafbf 100644 --- a/plugins/github-pull-requests-board/src/components/Wrapper/Wrapper.tsx +++ b/plugins/github-pull-requests-board/src/components/Wrapper/Wrapper.tsx @@ -18,18 +18,18 @@ import { Grid, Box } from '@material-ui/core'; type Props = { fullscreen: boolean; -} +}; const Wrapper = (props: PropsWithChildren) => { const { children, fullscreen } = props; return ( - + {children} - ) + ); }; export default Wrapper; diff --git a/plugins/github-pull-requests-board/src/hooks/usePullRequestsByTeam.tsx b/plugins/github-pull-requests-board/src/hooks/usePullRequestsByTeam.tsx index ce2636d5a2..57542d096d 100644 --- a/plugins/github-pull-requests-board/src/hooks/usePullRequestsByTeam.tsx +++ b/plugins/github-pull-requests-board/src/hooks/usePullRequestsByTeam.tsx @@ -25,39 +25,42 @@ export function usePullRequestsByTeam(repositories: string[]) { const getPullRequests = useGetPullRequestsFromRepository(); const getPullRequestDetails = useGetPullRequestDetails(); - const getPRsPerRepository = useCallback(async (repository: string): Promise => { + const getPRsPerRepository = useCallback( + async (repository: string): Promise => { + const pullRequestsNumbers = await getPullRequests(repository); - const pullRequestsNumbers = await getPullRequests(repository) + const pullRequestsWithDetails = await Promise.all( + pullRequestsNumbers.map(async ({ node }) => { + const pullRequest = await getPullRequestDetails( + repository, + node.number, + ); - const pullRequestsWithDetails = await Promise.all( - pullRequestsNumbers.map(async ({ node }) => { - const pullRequest = await getPullRequestDetails( - repository, - node.number, - ); + return pullRequest; + }), + ); - return pullRequest; - }), - ); - - return pullRequestsWithDetails; - }, [getPullRequests, getPullRequestDetails]); + return pullRequestsWithDetails; + }, + [getPullRequests, getPullRequestDetails], + ); const getPRsFromTeam = useCallback( async (teamRepositories: string[]): Promise => { - const teamRepositoriesPromises = teamRepositories.map(repository => getPRsPerRepository(repository), ); - const teamPullRequests = await Promise.allSettled(teamRepositoriesPromises) - .then(promises => promises.reduce((acc, curr) => { + const teamPullRequests = await Promise.allSettled( + teamRepositoriesPromises, + ).then(promises => + promises.reduce((acc, curr) => { if (curr.status === 'fulfilled') { return [...acc, ...curr.value]; } return acc; - }, [] as PullRequests) - ); + }, [] as PullRequests), + ); return teamPullRequests; }, @@ -70,11 +73,10 @@ export function usePullRequestsByTeam(repositories: string[]) { const teamPullRequests = await getPRsFromTeam(repositories); setPullRequests(formatPRsByReviewDecision(teamPullRequests)); setLoading(false); - }, [getPRsFromTeam, repositories]); useEffect(() => { - getAllPullRequests() + getAllPullRequests(); }, [getAllPullRequests]); return { diff --git a/plugins/github-pull-requests-board/src/hooks/useUserRepositories.tsx b/plugins/github-pull-requests-board/src/hooks/useUserRepositories.tsx index f974e7e457..68c4af96e4 100644 --- a/plugins/github-pull-requests-board/src/hooks/useUserRepositories.tsx +++ b/plugins/github-pull-requests-board/src/hooks/useUserRepositories.tsx @@ -33,14 +33,14 @@ export function useUserRepositories() { }); const entitiesNames: string[] = entitiesList.items.map(componentEntity => - getProjectNameFromEntity(componentEntity) + getProjectNameFromEntity(componentEntity), ); setRepositories([...new Set(entitiesNames)]); }, [catalogApi, teamEntity?.metadata?.name]); useEffect(() => { - getRepositoriesNames() + getRepositoriesNames(); }, [getRepositoriesNames]); return { diff --git a/plugins/github-pull-requests-board/src/plugin.ts b/plugins/github-pull-requests-board/src/plugin.ts index 8d45761def..e302d138fb 100644 --- a/plugins/github-pull-requests-board/src/plugin.ts +++ b/plugins/github-pull-requests-board/src/plugin.ts @@ -43,7 +43,9 @@ export const TeamPullRequestsPage = githubPullRequestsBoardPlugin.provide( createRoutableExtension({ name: 'PullRequestPage', component: () => - import('./components/TeamPullRequestsPage').then(m => m.TeamPullRequestsPage), + import('./components/TeamPullRequestsPage').then( + m => m.TeamPullRequestsPage, + ), mountPoint: rootRouteRef, }), ); diff --git a/plugins/github-pull-requests-board/src/utils/constants.ts b/plugins/github-pull-requests-board/src/utils/constants.ts index 22b23b259d..525fd9e1ce 100644 --- a/plugins/github-pull-requests-board/src/utils/constants.ts +++ b/plugins/github-pull-requests-board/src/utils/constants.ts @@ -14,7 +14,7 @@ * limitations under the License. */ export const COLUMNS = Object.freeze({ - REVIEW_REQUIRED: '🔍 Review required', - REVIEW_IN_PROGRESS: '📝 Review in progress', - APPROVED: '👍 Approved' -}) + REVIEW_REQUIRED: '🔍 Review required', + REVIEW_IN_PROGRESS: '📝 Review in progress', + APPROVED: '👍 Approved', +}); diff --git a/plugins/github-pull-requests-board/src/utils/types.tsx b/plugins/github-pull-requests-board/src/utils/types.tsx index b8ae1058f0..a2b121a1b8 100644 --- a/plugins/github-pull-requests-board/src/utils/types.tsx +++ b/plugins/github-pull-requests-board/src/utils/types.tsx @@ -15,31 +15,31 @@ */ export type GraphQlPullRequest = { repository: { - pullRequest: T - } -} + pullRequest: T; + }; +}; export type GraphQlPullRequests = { repository: { pullRequests: { - edges: T - } - } -} + edges: T; + }; + }; +}; export type PullRequestsNumber = { node: { number: number; - } -} + }; +}; export type Review = { state: - | 'PENDING' - | 'COMMENTED' - | 'APPROVED' - | 'CHANGES_REQUESTED' - | 'DISMISSED'; + | 'PENDING' + | 'COMMENTED' + | 'APPROVED' + | 'CHANGES_REQUESTED' + | 'DISMISSED'; author: Author; }; @@ -69,7 +69,7 @@ export type PullRequest = { reviewDecision: ReviewDecision | null; isDraft: boolean; createdAt: string; - author: Author + author: Author; }; export type PullRequests = PullRequest[]; @@ -81,4 +81,4 @@ export type PullRequestsColumn = { export type PRCardFormating = 'compacted' | 'fullscreen' | 'draft'; -export type ReviewDecision = 'IN_PROGRESS' | 'APPROVED' | 'REVIEW_REQUIRED' \ No newline at end of file +export type ReviewDecision = 'IN_PROGRESS' | 'APPROVED' | 'REVIEW_REQUIRED'; From 4a9fc4329887798ce2bb3c0f5051808e186c91a9 Mon Sep 17 00:00:00 2001 From: Talita Gregory Nunes Freire Date: Sat, 7 May 2022 11:15:41 +0200 Subject: [PATCH 11/21] fix: added missing FunctionComponent types Signed-off-by: Talita Gregory Nunes Freire --- .../src/components/Card/CardHeader.tsx | 4 ++-- .../src/components/InfoCardHeader/InfoCardHeader.tsx | 6 ++++-- .../PullRequestBoardOptions/PullRequestBoardOptions.tsx | 4 ++-- .../src/components/UserHeader/UserHeader.tsx | 4 ++-- .../src/components/UserHeaderList/UserHeaderList.tsx | 4 ++-- .../src/components/Wrapper/Wrapper.tsx | 4 ++-- .../src/components/icons/DraftPr/DraftPr.tsx | 4 ++-- 7 files changed, 16 insertions(+), 14 deletions(-) diff --git a/plugins/github-pull-requests-board/src/components/Card/CardHeader.tsx b/plugins/github-pull-requests-board/src/components/Card/CardHeader.tsx index b1259ec993..831423a464 100644 --- a/plugins/github-pull-requests-board/src/components/Card/CardHeader.tsx +++ b/plugins/github-pull-requests-board/src/components/Card/CardHeader.tsx @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import React from 'react'; +import React, { FunctionComponent } from 'react'; import { Typography, Box } from '@material-ui/core'; import { getElapsedTime } from '../../utils/functions'; import { UserHeader } from '../UserHeader'; @@ -27,7 +27,7 @@ type Props = { repositoryName: string; }; -const CardHeader = (props: Props) => { +const CardHeader: FunctionComponent = (props: Props) => { const { title, createdAt, diff --git a/plugins/github-pull-requests-board/src/components/InfoCardHeader/InfoCardHeader.tsx b/plugins/github-pull-requests-board/src/components/InfoCardHeader/InfoCardHeader.tsx index 9ba94dfa75..8c126bcaa4 100644 --- a/plugins/github-pull-requests-board/src/components/InfoCardHeader/InfoCardHeader.tsx +++ b/plugins/github-pull-requests-board/src/components/InfoCardHeader/InfoCardHeader.tsx @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import React, { PropsWithChildren } from 'react'; +import React, { PropsWithChildren, FunctionComponent } from 'react'; import { Typography, Box, IconButton } from '@material-ui/core'; import RefreshIcon from '@material-ui/icons/Refresh'; @@ -21,7 +21,9 @@ type Props = { onRefresh: () => void; }; -const InfoCardHeader = (props: PropsWithChildren) => { +const InfoCardHeader: FunctionComponent = ( + props: PropsWithChildren, +) => { const { children, onRefresh } = props; return ( diff --git a/plugins/github-pull-requests-board/src/components/PullRequestBoardOptions/PullRequestBoardOptions.tsx b/plugins/github-pull-requests-board/src/components/PullRequestBoardOptions/PullRequestBoardOptions.tsx index 6390b36aae..6938210e68 100644 --- a/plugins/github-pull-requests-board/src/components/PullRequestBoardOptions/PullRequestBoardOptions.tsx +++ b/plugins/github-pull-requests-board/src/components/PullRequestBoardOptions/PullRequestBoardOptions.tsx @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import React, { ReactNode } from 'react'; +import React, { ReactNode, FunctionComponent } from 'react'; import { ToggleButton, ToggleButtonGroup } from '@material-ui/lab'; import { Tooltip, Box } from '@material-ui/core'; import { PRCardFormating } from '../../utils/types'; @@ -30,7 +30,7 @@ type Props = { options: Option[]; }; -const PullRequestBoardOptions = (props: Props) => { +const PullRequestBoardOptions: FunctionComponent = (props: Props) => { const { value, onClickOption, options } = props; return ( ({ }, })); -const UserHeader = (props: Props) => { +const UserHeader: FunctionComponent = (props: Props) => { const { name, avatar } = props; const classes = useStyles(); diff --git a/plugins/github-pull-requests-board/src/components/UserHeaderList/UserHeaderList.tsx b/plugins/github-pull-requests-board/src/components/UserHeaderList/UserHeaderList.tsx index 8bddeb7433..a2c52a6d5e 100644 --- a/plugins/github-pull-requests-board/src/components/UserHeaderList/UserHeaderList.tsx +++ b/plugins/github-pull-requests-board/src/components/UserHeaderList/UserHeaderList.tsx @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import React from 'react'; +import React, { FunctionComponent } from 'react'; import { Typography, Box } from '@material-ui/core'; import { filterSameUser } from '../../utils/functions'; @@ -25,7 +25,7 @@ type Props = { users: Author[]; }; -const UserHeaderList = (props: Props) => { +const UserHeaderList: FunctionComponent = (props: Props) => { const { users, label } = props; return ( diff --git a/plugins/github-pull-requests-board/src/components/Wrapper/Wrapper.tsx b/plugins/github-pull-requests-board/src/components/Wrapper/Wrapper.tsx index 18b47eafbf..6d8f17cb72 100644 --- a/plugins/github-pull-requests-board/src/components/Wrapper/Wrapper.tsx +++ b/plugins/github-pull-requests-board/src/components/Wrapper/Wrapper.tsx @@ -13,14 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import React, { PropsWithChildren } from 'react'; +import React, { PropsWithChildren, FunctionComponent } from 'react'; import { Grid, Box } from '@material-ui/core'; type Props = { fullscreen: boolean; }; -const Wrapper = (props: PropsWithChildren) => { +const Wrapper: FunctionComponent = (props: PropsWithChildren) => { const { children, fullscreen } = props; return ( diff --git a/plugins/github-pull-requests-board/src/components/icons/DraftPr/DraftPr.tsx b/plugins/github-pull-requests-board/src/components/icons/DraftPr/DraftPr.tsx index 6dc5e306c1..05d21b21b9 100644 --- a/plugins/github-pull-requests-board/src/components/icons/DraftPr/DraftPr.tsx +++ b/plugins/github-pull-requests-board/src/components/icons/DraftPr/DraftPr.tsx @@ -13,9 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import React from 'react'; +import React, { FunctionComponent } from 'react'; -const DraftPr = () => ( +const DraftPr: FunctionComponent = () => ( - + @@ -47,10 +47,10 @@ const groupPage = ( ); ``` -Or you can also import the **TeamPullRequestsPage** component which can be used to add a new tab under the group page at `backstage/packages/app/src/components/catalog/EntityPage.tsx` +Or you can also import the **EntityTeamPullRequestsContent** component which can be used to add a new tab under the group page at `backstage/packages/app/src/components/catalog/EntityPage.tsx` ```javascript -import { TeamPullRequestsPage } from '@backstage/plugin-github-pull-requests-board'; +import { EntityTeamPullRequestsContent } from '@backstage/plugin-github-pull-requests-board'; const groupPage = ( @@ -72,7 +72,7 @@ const groupPage = ( - + ; ) diff --git a/plugins/github-pull-requests-board/api-report.md b/plugins/github-pull-requests-board/api-report.md index 8bded2d581..33814c76b4 100644 --- a/plugins/github-pull-requests-board/api-report.md +++ b/plugins/github-pull-requests-board/api-report.md @@ -7,15 +7,15 @@ import { FunctionComponent } from 'react'; -// Warning: (ae-missing-release-tag) "TeamPullRequestsBoard" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// Warning: (ae-missing-release-tag) "EntityTeamPullRequestsCard" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) -export const TeamPullRequestsBoard: FunctionComponent<{}>; +export const EntityTeamPullRequestsCard: FunctionComponent<{}>; -// Warning: (ae-missing-release-tag) "TeamPullRequestsPage" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// Warning: (ae-missing-release-tag) "EntityTeamPullRequestsContent" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) -export const TeamPullRequestsPage: FunctionComponent<{}>; +export const EntityTeamPullRequestsContent: FunctionComponent<{}>; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/github-pull-requests-board/src/components/TeamPullRequestsBoard/TeamPullRequestsBoard.tsx b/plugins/github-pull-requests-board/src/components/EntityTeamPullRequestsCard/EntityTeamPullRequestsCard.tsx similarity index 97% rename from plugins/github-pull-requests-board/src/components/TeamPullRequestsBoard/TeamPullRequestsBoard.tsx rename to plugins/github-pull-requests-board/src/components/EntityTeamPullRequestsCard/EntityTeamPullRequestsCard.tsx index 8aee285d36..b19651536a 100644 --- a/plugins/github-pull-requests-board/src/components/TeamPullRequestsBoard/TeamPullRequestsBoard.tsx +++ b/plugins/github-pull-requests-board/src/components/EntityTeamPullRequestsCard/EntityTeamPullRequestsCard.tsx @@ -28,7 +28,7 @@ import { PRCardFormating } from '../../utils/types'; import { DraftPrIcon } from '../icons/DraftPr'; import { useUserRepositories } from '../../hooks/useUserRepositories'; -const TeamPullRequestsBoard: FunctionComponent = () => { +const EntityTeamPullRequestsCard: FunctionComponent = () => { const [infoCardFormat, setInfoCardFormat] = useState([]); const { repositories } = useUserRepositories(); const { loading, pullRequests, refreshPullRequests } = @@ -110,4 +110,4 @@ const TeamPullRequestsBoard: FunctionComponent = () => { return {getContent()}; }; -export default TeamPullRequestsBoard; +export default EntityTeamPullRequestsCard; diff --git a/plugins/github-pull-requests-board/src/components/TeamPullRequestsBoard/index.ts b/plugins/github-pull-requests-board/src/components/EntityTeamPullRequestsCard/index.ts similarity index 87% rename from plugins/github-pull-requests-board/src/components/TeamPullRequestsBoard/index.ts rename to plugins/github-pull-requests-board/src/components/EntityTeamPullRequestsCard/index.ts index c8e25cfff8..bac16f1424 100644 --- a/plugins/github-pull-requests-board/src/components/TeamPullRequestsBoard/index.ts +++ b/plugins/github-pull-requests-board/src/components/EntityTeamPullRequestsCard/index.ts @@ -13,4 +13,4 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -export { default as TeamPullRequestsBoard } from './TeamPullRequestsBoard'; +export { default as EntityTeamPullRequestsCard } from './EntityTeamPullRequestsCard'; diff --git a/plugins/github-pull-requests-board/src/components/TeamPullRequestsPage/TeamPullRequestsPage.tsx b/plugins/github-pull-requests-board/src/components/EntityTeamPullRequestsContent/EntityTeamPullRequestsContent.tsx similarity index 88% rename from plugins/github-pull-requests-board/src/components/TeamPullRequestsPage/TeamPullRequestsPage.tsx rename to plugins/github-pull-requests-board/src/components/EntityTeamPullRequestsContent/EntityTeamPullRequestsContent.tsx index 8761c55682..33980e2364 100644 --- a/plugins/github-pull-requests-board/src/components/TeamPullRequestsPage/TeamPullRequestsPage.tsx +++ b/plugins/github-pull-requests-board/src/components/EntityTeamPullRequestsContent/EntityTeamPullRequestsContent.tsx @@ -17,16 +17,16 @@ import React, { FunctionComponent, useState } from 'react'; import { Grid, Typography } from '@material-ui/core'; import { Progress, InfoCard } from '@backstage/core-components'; -import { InfoCardHeader } from '../../components/InfoCardHeader'; -import { PullRequestBoardOptions } from '../../components/PullRequestBoardOptions'; -import { Wrapper } from '../../components/Wrapper'; -import { PullRequestCard } from '../../components/PullRequestCard'; +import { InfoCardHeader } from '../InfoCardHeader'; +import { PullRequestBoardOptions } from '../PullRequestBoardOptions'; +import { Wrapper } from '../Wrapper'; +import { PullRequestCard } from '../PullRequestCard'; import { usePullRequestsByTeam } from '../../hooks/usePullRequestsByTeam'; import { PRCardFormating } from '../../utils/types'; -import { DraftPrIcon } from '../../components/icons/DraftPr'; +import { DraftPrIcon } from '../icons/DraftPr'; import { useUserRepositories } from '../../hooks/useUserRepositories'; -const TeamPullRequestsPage: FunctionComponent = () => { +const EntityTeamPullRequestsContent: FunctionComponent = () => { const [infoCardFormat, setInfoCardFormat] = useState([]); const { repositories } = useUserRepositories(); const { loading, pullRequests, refreshPullRequests } = @@ -100,4 +100,4 @@ const TeamPullRequestsPage: FunctionComponent = () => { return {getContent()}; }; -export default TeamPullRequestsPage; +export default EntityTeamPullRequestsContent; diff --git a/plugins/github-pull-requests-board/src/components/TeamPullRequestsPage/index.ts b/plugins/github-pull-requests-board/src/components/EntityTeamPullRequestsContent/index.ts similarity index 86% rename from plugins/github-pull-requests-board/src/components/TeamPullRequestsPage/index.ts rename to plugins/github-pull-requests-board/src/components/EntityTeamPullRequestsContent/index.ts index b2f3619eaf..c2be57464c 100644 --- a/plugins/github-pull-requests-board/src/components/TeamPullRequestsPage/index.ts +++ b/plugins/github-pull-requests-board/src/components/EntityTeamPullRequestsContent/index.ts @@ -13,4 +13,4 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -export { default as TeamPullRequestsPage } from './TeamPullRequestsPage'; +export { default as EntityTeamPullRequestsContent } from './EntityTeamPullRequestsContent'; diff --git a/plugins/github-pull-requests-board/src/index.ts b/plugins/github-pull-requests-board/src/index.ts index 579b19b315..d9cffaa468 100644 --- a/plugins/github-pull-requests-board/src/index.ts +++ b/plugins/github-pull-requests-board/src/index.ts @@ -13,4 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -export { TeamPullRequestsBoard, TeamPullRequestsPage } from './plugin'; +export { + EntityTeamPullRequestsCard, + EntityTeamPullRequestsContent, +} from './plugin'; diff --git a/plugins/github-pull-requests-board/src/plugin.test.ts b/plugins/github-pull-requests-board/src/plugin.test.ts index 0204620ba5..84f5d801e6 100644 --- a/plugins/github-pull-requests-board/src/plugin.test.ts +++ b/plugins/github-pull-requests-board/src/plugin.test.ts @@ -13,13 +13,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { TeamPullRequestsBoard, TeamPullRequestsPage } from './plugin'; +import { + EntityTeamPullRequestsCard, + EntityTeamPullRequestsContent, +} from './plugin'; describe('github-pull-requests-board', () => { - it('should export TeamPullRequestsBoard', () => { - expect(TeamPullRequestsBoard).toBeDefined(); + it('should export EntityTeamPullRequestsCard', () => { + expect(EntityTeamPullRequestsCard).toBeDefined(); }); - it('should export TeamPullRequestsPage', () => { - expect(TeamPullRequestsPage).toBeDefined(); + it('should export EntityTeamPullRequestsContent', () => { + expect(EntityTeamPullRequestsContent).toBeDefined(); }); }); diff --git a/plugins/github-pull-requests-board/src/plugin.ts b/plugins/github-pull-requests-board/src/plugin.ts index e302d138fb..c3ed426dec 100644 --- a/plugins/github-pull-requests-board/src/plugin.ts +++ b/plugins/github-pull-requests-board/src/plugin.ts @@ -27,25 +27,26 @@ const githubPullRequestsBoardPlugin = createPlugin({ }, }); -export const TeamPullRequestsBoard = githubPullRequestsBoardPlugin.provide( +export const EntityTeamPullRequestsCard = githubPullRequestsBoardPlugin.provide( createComponentExtension({ - name: 'TeamPullRequestsBoard', + name: 'EntityTeamPullRequestsCard', component: { lazy: () => - import('./components/TeamPullRequestsBoard').then( - m => m.TeamPullRequestsBoard, + import('./components/EntityTeamPullRequestsCard').then( + m => m.EntityTeamPullRequestsCard, ), }, }), ); -export const TeamPullRequestsPage = githubPullRequestsBoardPlugin.provide( - createRoutableExtension({ - name: 'PullRequestPage', - component: () => - import('./components/TeamPullRequestsPage').then( - m => m.TeamPullRequestsPage, - ), - mountPoint: rootRouteRef, - }), -); +export const EntityTeamPullRequestsContent = + githubPullRequestsBoardPlugin.provide( + createRoutableExtension({ + name: 'PullRequestPage', + component: () => + import('./components/EntityTeamPullRequestsContent').then( + m => m.EntityTeamPullRequestsContent, + ), + mountPoint: rootRouteRef, + }), + ); From c25df958cb05d5f63188bbf45cb11375146d71ce Mon Sep 17 00:00:00 2001 From: Talita Gregory Nunes Freire Date: Fri, 27 May 2022 12:23:26 +0200 Subject: [PATCH 21/21] fix: updated dependencies Signed-off-by: Talita Gregory Nunes Freire --- plugins/github-pull-requests-board/package.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/plugins/github-pull-requests-board/package.json b/plugins/github-pull-requests-board/package.json index d8cd97bab0..402e21f94e 100644 --- a/plugins/github-pull-requests-board/package.json +++ b/plugins/github-pull-requests-board/package.json @@ -36,10 +36,10 @@ }, "dependencies": { "@backstage/catalog-model": "^1.0.2-next.0", - "@backstage/core-components": "^0.9.4", + "@backstage/core-components": "^0.9.5-next.0", "@backstage/core-plugin-api": "^1.0.2", - "@backstage/integration": "^1.2.0-next.0", - "@backstage/plugin-catalog-react": "^1.1.0-next.1", + "@backstage/integration": "^1.2.1-next.0", + "@backstage/plugin-catalog-react": "^1.1.1-next.0", "@backstage/theme": "^0.2.15", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -49,8 +49,8 @@ "react-use": "^17.2.4" }, "devDependencies": { - "@backstage/cli": "^0.17.1", - "@backstage/dev-utils": "^1.0.2", + "@backstage/cli": "^0.17.2-next.0", + "@backstage/dev-utils": "^1.0.3-next.0", "@backstage/test-utils": "^1.1.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3",