From ddf280eed632121df748e54d960939abf531fb41 Mon Sep 17 00:00:00 2001 From: Jure Triglav <juretriglav@gmail.com> Date: Sat, 25 Jul 2020 22:44:18 +0200 Subject: [PATCH] style: fix linting issues --- app/Root.jsx | 28 +- .../src/MentionsInput/MentionsInput.jsx | 10 +- .../src/Messages/MessageRenderer.jsx | 116 +---- .../component-chat/src/Messages/Messages.jsx | 10 +- .../src/SuperChatInput/SuperChatInput.jsx | 47 +- .../src/components/ComponentProperties.jsx | 1 + .../src/components/FormBuilder.jsx | 31 -- .../src/redux/FormBuilder.js | 270 +++++----- app/components/component-login/src/Login.jsx | 37 +- .../component-profile/src/FormGrid.jsx | 1 - .../component-profile/src/PageWithHeader.jsx | 4 +- .../component-profile/src/Profile.jsx | 4 +- .../component-profile/src/ProfileImage.jsx | 1 - .../src/components/ReviewersPage.js | 2 +- .../src/components/NewSubmissionPage.jsx | 35 +- app/components/component-submit/src/upload.js | 4 - .../src/components/Team.jsx | 3 +- .../src/UsersManager.jsx | 1 - app/components/shared/Pagination.jsx | 1 - package.json | 4 +- yarn.lock | 462 ++++++++++-------- 21 files changed, 459 insertions(+), 613 deletions(-) diff --git a/app/Root.jsx b/app/Root.jsx index 3d73ac54e5..339ec005f0 100644 --- a/app/Root.jsx +++ b/app/Root.jsx @@ -1,33 +1,9 @@ /* eslint-disable no-param-reassign */ import React from 'react' -// import { BrowserRouter } from 'react-router-dom' -// import PropTypes from 'prop-types' -// import { ThemeProvider } from 'styled-components' -// import { ApolloProvider } from '@apollo/react-components' -// import { ApolloClient } from 'apollo-client' -// import { WebSocketLink } from 'apollo-link-ws' -// import { split, ApolloLink } from 'apollo-link' -// import { getMainDefinition } from 'apollo-utilities' -// import { setContext } from 'apollo-link-context' -// import { -// InMemoryCache, -// IntrospectionFragmentMatcher, -// } from 'apollo-cache-inmemory' -// import { createUploadLink } from 'apollo-upload-client' -import GlobalStyle from './theme/elements/GlobalStyle' - -// import introspectionQueryResultData from './fragmentTypes.json' - import { BrowserRouter } from 'react-router-dom' import PropTypes from 'prop-types' import { ThemeProvider } from 'styled-components' -import { - ApolloProvider, - ApolloClient, - ApolloLink, - split, - gql, -} from '@apollo/client' +import { ApolloProvider, ApolloClient, ApolloLink, split } from '@apollo/client' // import { ApolloClient } from 'apollo-client' import { WebSocketLink } from '@apollo/client/link/ws' // import { split, ApolloLink } from 'apollo-link' @@ -36,7 +12,7 @@ import { setContext } from '@apollo/client/link/context' import { InMemoryCache } from '@apollo/client/cache' import { createUploadLink } from 'apollo-upload-client' -import { GET_CURRENT_USER } from './queries' +import GlobalStyle from './theme/elements/GlobalStyle' import currentRolesVar from './shared/currentRolesVar' // See https://github.com/apollographql/apollo-feature-requests/issues/6#issuecomment-465305186 diff --git a/app/components/component-chat/src/MentionsInput/MentionsInput.jsx b/app/components/component-chat/src/MentionsInput/MentionsInput.jsx index 3334f25748..b7a0113fa1 100644 --- a/app/components/component-chat/src/MentionsInput/MentionsInput.jsx +++ b/app/components/component-chat/src/MentionsInput/MentionsInput.jsx @@ -29,7 +29,8 @@ const cleanSuggestionUserObject = user => { ...user, id: user.username, display: user.username, - filterName: (user.name && user.name.toLowerCase()) || user.username.toLowerCase(), + filterName: + (user.name && user.name.toLowerCase()) || user.username.toLowerCase(), } } @@ -82,8 +83,9 @@ const CustomMentionsInput = props => { return } - const cleanSearchUsers = rawSearchUsers.map(user => cleanSuggestionUserObject(user)) - + const cleanSearchUsers = rawSearchUsers.map(user => + cleanSuggestionUserObject(user), + ) // Prepend the filtered participants in case a user is tabbing down right now const fullResults = [...staticSuggestions, ...cleanSearchUsers] @@ -116,9 +118,9 @@ const CustomMentionsInput = props => { > <Mention appendSpaceOnAdd + data={searchUsers} displayTransform={username => `@${username}`} markup="@[__id__]" - data={searchUsers} renderSuggestion={( entry, search, diff --git a/app/components/component-chat/src/Messages/MessageRenderer.jsx b/app/components/component-chat/src/Messages/MessageRenderer.jsx index 03c2f6624f..4e801f4ecc 100644 --- a/app/components/component-chat/src/Messages/MessageRenderer.jsx +++ b/app/components/component-chat/src/Messages/MessageRenderer.jsx @@ -1,118 +1,8 @@ import React from 'react' import ReactMarkdown from 'react-markdown' -import htmlParser from 'react-markdown/plugins/html-parser' -import { useQuery } from '@apollo/client' -import gql from 'graphql-tag' -import styled from 'styled-components' -import { th } from '@pubsweet/ui-toolkit' -import PaperEmbed from './PaperEmbed' - -import { AspectRatio, EmbedContainer, EmbedComponent } from './style' - -const ExternalEmbed = props => { - let { aspectratio, url, src, width = '100%', height = 200 } = props - - if (!src && url) src = url - if (typeof src !== 'string') return null - - // if an aspect ratio is passed in, we need to use the EmbedComponent which does some trickery with padding to force an aspect ratio. Otherwise we should just use a regular iFrame - if (aspectratio && aspectratio !== undefined) { - return ( - <AspectRatio ratio={aspectratio} style={{ height }}> - <EmbedComponent - allowFullScreen - frameBorder="0" - height={height} - src={src} - title={`iframe-${src}`} - width={width} - /> - </AspectRatio> - ) - } - return ( - <EmbedContainer style={{ height }}> - <iframe - allowFullScreen - frameBorder="0" - height={height} - src={src} - title={`iframe-${src}`} - width={width} - /> - </EmbedContainer> - ) -} - -const InternalEmbed = props => { - if (props.entity !== 'thread') return null - return 'INTERNAL' - // return <ThreadAttachment id={props.id} /> -} - -const Embed = props => { - // if (props.type === 'internal') { - // return <InternalEmbed {...props} /> - // } - - // if (props.type === 'paper') { - // return <PaperEmbed {...props} /> - // } - return <></> - // return <ExternalEmbed {...props} /> -} - -// var preprocessingInstructions = [ -// { -// shouldPreprocessNode: function (node) { -// return node.attribs && node.attribs['data-process'] === 'shared'; -// }, -// preprocessNode: function (node) { -// node.attribs = {id: `preprocessed-${node.attribs.id}`,}; -// }, -// } -// ]; -const processingInstructions = [ - { - shouldProcessNode(node) { - return node.name === 'embed' - }, - processNode(node, children, index) { - return <Embed {...node.attribs} id={node.attribs.id} key={index} /> - }, - }, - { - shouldProcessNode(node) { - return node.name === 'p' - }, - processNode(node, children, index) { - return ( - <div {...node.attribs} id={node.attribs.id} key={index}> - {children} - </div> - ) - }, - }, -] - -const parseHtml = htmlParser({ - processingInstructions, -}) - -const MessageRenderer = React.memo(({ message }) => { - const p = props => <div>{props.children}</div> - - return message.enhanced ? ( - <ReactMarkdown - astPlugins={[parseHtml]} - escapeHtml={false} - renderers={{ paragraph: p }} - source={message.enhanced} - /> - ) : ( - <ReactMarkdown source={message.content} /> - ) -}) +const MessageRenderer = React.memo(({ message }) => ( + <ReactMarkdown source={message.content} /> +)) export default MessageRenderer diff --git a/app/components/component-chat/src/Messages/Messages.jsx b/app/components/component-chat/src/Messages/Messages.jsx index 380869ac63..89a2fa0bbe 100644 --- a/app/components/component-chat/src/Messages/Messages.jsx +++ b/app/components/component-chat/src/Messages/Messages.jsx @@ -77,7 +77,6 @@ const MESSAGES_SUBSCRIPTION = gql` } ` - const subscribeToNewMessages = (subscribeToMore, channelId) => subscribeToMore({ document: MESSAGES_SUBSCRIPTION, @@ -175,7 +174,10 @@ const Messages = ({ channelId }) => { </NextPageButton> )} {messages && !messages.length && ( - <Placeholder>No discussion for this manuscript yet. Start by typing a message below.</Placeholder> + <Placeholder> + No discussion for this manuscript yet. Start by typing a message + below. + </Placeholder> )} {messages.map(group => { const initialMessage = group[0] @@ -202,7 +204,9 @@ const Messages = ({ channelId }) => { {index === 0 && <UserAvatar user={message.user} />} </GutterContainer> <InnerMessageContainer> - {index === 0 && <Byline>{message.user.defaultIdentity.name}</Byline>} + {index === 0 && ( + <Byline>{message.user.defaultIdentity.name}</Byline> + )} <Bubble> <MessageRenderer message={message} /> </Bubble> diff --git a/app/components/component-chat/src/SuperChatInput/SuperChatInput.jsx b/app/components/component-chat/src/SuperChatInput/SuperChatInput.jsx index eff4db7973..f84d21a878 100644 --- a/app/components/component-chat/src/SuperChatInput/SuperChatInput.jsx +++ b/app/components/component-chat/src/SuperChatInput/SuperChatInput.jsx @@ -23,7 +23,7 @@ import { RemovePreviewButton, } from './style' -import { CREATE_MESSAGE, GET_MESSAGE_BY_ID } from '../../../../queries' +import { CREATE_MESSAGE } from '../../../../queries' // import sendDirectMessage from 'shared/graphql/mutations/message/sendDirectMessage' // import { getMessageById } from 'shared/graphql/queries/message/getMessage' @@ -101,7 +101,7 @@ export const cleanSuggestionUserObject = user => { const SuperChatInput = props => { const currentUser = useCurrentUser() const [sendChannelMessage] = useMutation(CREATE_MESSAGE) - const [sendDirectMessage] = useMutation(CREATE_MESSAGE) + // const [sendDirectMessage] = useMutation(CREATE_MESSAGE) const cacheKey = `last-content-${props.channelId}` const [text, changeText] = React.useState('') @@ -155,6 +155,7 @@ const SuperChatInput = props => { // If backspace is pressed on the empty case 'Backspace': { if (text.length === 0) removeAttachments() + break } default: } @@ -239,9 +240,9 @@ const SuperChatInput = props => { setMediaPreview(null) setAttachedMediaFile(null) }) - .catch(err => { + .catch(_ => { setIsSendingMediaMessage(false) - props.dispatch(addToastWithTimeout('error', err.message)) + // props.dispatch(addToastWithTimeout('error', err.message)) }) } @@ -271,36 +272,38 @@ const SuperChatInput = props => { } // $FlowFixMe + // eslint-disable-next-line no-unused-vars const [isSendingMediaMessage, setIsSendingMediaMessage] = React.useState( false, ) + // $FlowFixMe const [mediaPreview, setMediaPreview] = React.useState(null) // $FlowFixMe const [mediaFile, setAttachedMediaFile] = React.useState(null) - const previewMedia = blob => { - if (isSendingMediaMessage) return - setIsSendingMediaMessage(true) - setAttachedMediaFile(blob) - inputRef && inputRef.focus() + // const previewMedia = blob => { + // if (isSendingMediaMessage) return + // setIsSendingMediaMessage(true) + // setAttachedMediaFile(blob) + // inputRef && inputRef.focus() - const reader = new FileReader() - reader.onload = () => { - setMediaPreview(reader.result.toString()) - setIsSendingMediaMessage(false) - } + // const reader = new FileReader() + // reader.onload = () => { + // setMediaPreview(reader.result.toString()) + // setIsSendingMediaMessage(false) + // } - if (blob) { - reader.readAsDataURL(blob) - } - } + // if (blob) { + // reader.readAsDataURL(blob) + // } + // } const removeQuotedMessage = () => { - if (props.quotedMessage) - props.dispatch( - replyToMessage({ threadId: props.threadId, messageId: null }), - ) + // if (props.quotedMessage) + // props.dispatch( + // replyToMessage({ threadId: props.threadId, messageId: null }), + // ) } const networkDisabled = diff --git a/app/components/component-formbuilder/src/components/ComponentProperties.jsx b/app/components/component-formbuilder/src/components/ComponentProperties.jsx index 88e837b92b..ff375d341d 100644 --- a/app/components/component-formbuilder/src/components/ComponentProperties.jsx +++ b/app/components/component-formbuilder/src/components/ComponentProperties.jsx @@ -59,6 +59,7 @@ const ComponentProperties = ({ onChange={event => { let value = {} if (event.target) { + // eslint-disable-next-line prefer-destructuring value = event.target.value } else { value = event diff --git a/app/components/component-formbuilder/src/components/FormBuilder.jsx b/app/components/component-formbuilder/src/components/FormBuilder.jsx index 81eb4d088c..b8b6d20202 100644 --- a/app/components/component-formbuilder/src/components/FormBuilder.jsx +++ b/app/components/component-formbuilder/src/components/FormBuilder.jsx @@ -1,11 +1,4 @@ import React, { useState } from 'react' -import { - compose, - withState, - withHandlers, - lifecycle, - // setDisplayName, -} from 'recompose' import styled, { withTheme } from 'styled-components' import { unescape } from 'lodash' import { th } from '@pubsweet/ui-toolkit' @@ -141,27 +134,3 @@ const FormBuilder = ({ } export default FormBuilder -// FormBuilder.displayName = 'FormBuilder' - -// export default compose( -// withState('elements', 'onAddElements', ({ form }) => form.children || []), -// withHandlers({ -// addElements: ({ onAddElements, form }) => addElement => -// onAddElements(() => { -// const addEl = { children: form.children || [] } -// addEl.children = [...addEl.children, addElement] -// return addEl.children -// }), -// }), -// lifecycle({ -// componentWillReceiveProps(nextProps) { -// if (this.props.form.children !== nextProps.form.children) { -// this.setState({ elements: nextProps.form.children }) -// } - -// if (this.props.elements !== nextProps.elements) { -// this.setState({ elements: nextProps.elements }) -// } -// }, -// }), -// )(FormBuilder) diff --git a/app/components/component-formbuilder/src/redux/FormBuilder.js b/app/components/component-formbuilder/src/redux/FormBuilder.js index edf54a138b..26325d6da7 100644 --- a/app/components/component-formbuilder/src/redux/FormBuilder.js +++ b/app/components/component-formbuilder/src/redux/FormBuilder.js @@ -1,135 +1,135 @@ -import * as api from 'pubsweet-client/src/helpers/api' - -export const GET_FORM_REQUEST = 'GET_FORM_REQUEST' -export const GET_FORM_SUCCESS = 'GET_FORM_SUCCESS' -export const GET_FORM_FAILURE = 'GET_FORM_FAILURE' - -function getFormRequest(project, version) { - return { - type: GET_FORM_REQUEST, - } -} - -function getFormSuccess(forms) { - return { - type: GET_FORM_SUCCESS, - forms, - } -} - -function getFormFailure(error) { - return { - type: GET_FORM_FAILURE, - error, - } -} - -export function getForms() { - return dispatch => { - dispatch(getFormRequest()) - - return api - .get('/get-forms', {}) - .then(result => { - dispatch(getFormSuccess(result)) - }) - .catch(error => dispatch(getFormFailure(error))) - } -} - -export function getForm(formId) { - return dispatch => { - dispatch(getFormRequest()) - - return api - .get(`/get-form/${formId}`, {}) - .then(result => { - dispatch(getFormSuccess(result)) - }) - .catch(error => dispatch(getFormFailure(error))) - } -} - -export function updateForms(form, properties) { - return dispatch => { - dispatch(getFormRequest()) - - return api - .update(`/update-forms/${form.id}`, properties) - .then(result => { - dispatch(getFormSuccess(result)) - }) - .catch(error => dispatch(getFormFailure(error))) - } -} - -export function updateElements(form, properties) { - return dispatch => { - dispatch(getFormRequest()) - - return api - .update( - `/update-forms/${form.id}/element/${properties.children.id}`, - properties, - ) - .then(result => { - dispatch(getFormSuccess(result)) - }) - .catch(error => dispatch(getFormFailure(error))) - } -} - -export function deleteForms(form) { - return dispatch => { - dispatch(getFormRequest()) - - return api - .remove(`/delete-forms/${form.id}`) - .then(result => { - dispatch(getFormSuccess(result)) - }) - .catch(error => dispatch(getFormFailure(error))) - } -} - -export function deleteElements(form, element) { - return dispatch => { - dispatch(getFormRequest()) - - return api - .remove(`/delete-forms/${form.id}/elements/${element.id}`) - .then(result => { - dispatch(getFormSuccess(result)) - }) - .catch(error => dispatch(getFormFailure(error))) - } -} - -export function createForms(properties) { - return dispatch => { - dispatch(getFormRequest()) - - return api - .create('/create-forms', properties) - .then(result => { - dispatch(getFormSuccess(result)) - }) - .catch(error => dispatch(getFormFailure(error))) - } -} - -const initialState = {} -export default (state = initialState, action) => { - switch (action.type) { - case GET_FORM_SUCCESS: - return { - forms: action.forms.forms, - } - - case GET_FORM_FAILURE: - return { error: action.error } - - default: - return state - } -} +// import * as api from 'pubsweet-client/src/helpers/api' + +// export const GET_FORM_REQUEST = 'GET_FORM_REQUEST' +// export const GET_FORM_SUCCESS = 'GET_FORM_SUCCESS' +// export const GET_FORM_FAILURE = 'GET_FORM_FAILURE' + +// function getFormRequest(project, version) { +// return { +// type: GET_FORM_REQUEST, +// } +// } + +// function getFormSuccess(forms) { +// return { +// type: GET_FORM_SUCCESS, +// forms, +// } +// } + +// function getFormFailure(error) { +// return { +// type: GET_FORM_FAILURE, +// error, +// } +// } + +// export function getForms() { +// return dispatch => { +// dispatch(getFormRequest()) + +// return api +// .get('/get-forms', {}) +// .then(result => { +// dispatch(getFormSuccess(result)) +// }) +// .catch(error => dispatch(getFormFailure(error))) +// } +// } + +// export function getForm(formId) { +// return dispatch => { +// dispatch(getFormRequest()) + +// return api +// .get(`/get-form/${formId}`, {}) +// .then(result => { +// dispatch(getFormSuccess(result)) +// }) +// .catch(error => dispatch(getFormFailure(error))) +// } +// } + +// export function updateForms(form, properties) { +// return dispatch => { +// dispatch(getFormRequest()) + +// return api +// .update(`/update-forms/${form.id}`, properties) +// .then(result => { +// dispatch(getFormSuccess(result)) +// }) +// .catch(error => dispatch(getFormFailure(error))) +// } +// } + +// export function updateElements(form, properties) { +// return dispatch => { +// dispatch(getFormRequest()) + +// return api +// .update( +// `/update-forms/${form.id}/element/${properties.children.id}`, +// properties, +// ) +// .then(result => { +// dispatch(getFormSuccess(result)) +// }) +// .catch(error => dispatch(getFormFailure(error))) +// } +// } + +// export function deleteForms(form) { +// return dispatch => { +// dispatch(getFormRequest()) + +// return api +// .remove(`/delete-forms/${form.id}`) +// .then(result => { +// dispatch(getFormSuccess(result)) +// }) +// .catch(error => dispatch(getFormFailure(error))) +// } +// } + +// export function deleteElements(form, element) { +// return dispatch => { +// dispatch(getFormRequest()) + +// return api +// .remove(`/delete-forms/${form.id}/elements/${element.id}`) +// .then(result => { +// dispatch(getFormSuccess(result)) +// }) +// .catch(error => dispatch(getFormFailure(error))) +// } +// } + +// export function createForms(properties) { +// return dispatch => { +// dispatch(getFormRequest()) + +// return api +// .create('/create-forms', properties) +// .then(result => { +// dispatch(getFormSuccess(result)) +// }) +// .catch(error => dispatch(getFormFailure(error))) +// } +// } + +// const initialState = {} +// export default (state = initialState, action) => { +// switch (action.type) { +// case GET_FORM_SUCCESS: +// return { +// forms: action.forms.forms, +// } + +// case GET_FORM_FAILURE: +// return { error: action.error } + +// default: +// return state +// } +// } diff --git a/app/components/component-login/src/Login.jsx b/app/components/component-login/src/Login.jsx index 9fd99f091f..d04d53a279 100644 --- a/app/components/component-login/src/Login.jsx +++ b/app/components/component-login/src/Login.jsx @@ -1,13 +1,9 @@ import React, { useState } from 'react' import { Redirect } from 'react-router-dom' -import PropTypes from 'prop-types' -import { withFormik } from 'formik' import config from 'config' import { th, grid, lighten } from '@pubsweet/ui-toolkit' -import { CenteredColumn, H1, Button } from '@pubsweet/ui' +import { H1, Button } from '@pubsweet/ui' import styled from 'styled-components' -import { Section } from '../../shared' -import { Placeholder } from '../../component-chat/src/Messages/style' const getNextUrl = () => { const url = new URL(window.location.href) @@ -21,26 +17,6 @@ const getNextUrl = () => { return `${url.searchParams.get('next') || redirectLink}` } -const localStorage = window.localStorage || undefined - -const handleSubmit = (values, { props, setSubmitting, setErrors }) => - props - .loginUser({ variables: { input: values } }) - .then(({ data, errors }) => { - if (!errors) { - localStorage.setItem('token', data.loginUser.token) - setTimeout(() => { - props.onLoggedIn(getNextUrl()) - }, 100) - } - }) - .catch(e => { - if (e.graphQLErrors && e.graphQLErrors.length > 0) { - setSubmitting(false) - setErrors(e.graphQLErrors[0].message) - } - }) - const getToken = props => { const { location } = props if (location && location.search && location.search.match(/^\?token=/)) { @@ -114,18 +90,11 @@ const StyledORCIDIcon = styled(ORCIDIcon)` ` const Login = ({ logo = null, ...props }) => { - // Is ORCID authentication enabled? - const orcid = - config['pubsweet-component-login'] && - config['pubsweet-component-login'].orcid - const token = getToken(props) // If a JWT token is supplied as a query param (e.g. from OAuth) // go ahead and fetch the redirect URL const initialRedirectLink = token ? getNextUrl() : null - const [redirectLink, setRedirectLink] = useState(initialRedirectLink) - // Also set the redirect link upon successful login (via handleSubmit) - const onLoggedIn = () => setRedirectLink(getNextUrl()) + const [redirectLink] = useState(initialRedirectLink) if (token) { window.localStorage.setItem('token', token) @@ -140,7 +109,7 @@ const Login = ({ logo = null, ...props }) => { <Centered> <Content> {journalName === 'Aperture' && ( - <img src="/public/logo-aperture.png" /> + <img alt="Aperture" src="/public/logo-aperture.png" /> )} <H1>Login to {journalName}</H1> {journalName} uses ORCID <StyledORCIDIcon /> to identify authors and diff --git a/app/components/component-profile/src/FormGrid.jsx b/app/components/component-profile/src/FormGrid.jsx index e9144c8135..6c027ed888 100644 --- a/app/components/component-profile/src/FormGrid.jsx +++ b/app/components/component-profile/src/FormGrid.jsx @@ -38,4 +38,3 @@ export const FormRow = styled.div` margin-left: calc(${th('gridUnit')} * 2); } ` - diff --git a/app/components/component-profile/src/PageWithHeader.jsx b/app/components/component-profile/src/PageWithHeader.jsx index 28929e72dc..0570a64ea6 100644 --- a/app/components/component-profile/src/PageWithHeader.jsx +++ b/app/components/component-profile/src/PageWithHeader.jsx @@ -50,8 +50,8 @@ const PageWithHeader = ({ children, header }) => ( <Heading>{header}</Heading> </HeaderText> </StyledHeader> - { children } + {children} </Settings> ) -export default PageWithHeader \ No newline at end of file +export default PageWithHeader diff --git a/app/components/component-profile/src/Profile.jsx b/app/components/component-profile/src/Profile.jsx index 5ed55f5b30..a3ee135b84 100644 --- a/app/components/component-profile/src/Profile.jsx +++ b/app/components/component-profile/src/Profile.jsx @@ -1,5 +1,5 @@ import React, { useCallback } from 'react' -import { Button, Action } from '@pubsweet/ui' +import { Button } from '@pubsweet/ui' // import { th } from '@pubsweet/ui-toolkit' // import styled from 'styled-components' import gql from 'graphql-tag' @@ -108,7 +108,7 @@ const Profile = () => { <ChangeUsername user={data.currentUser} /> </div> </FormRow> - <Button onClick={() => logoutUser()}>Logout</Button> + <Button onClick={() => logoutUser()}>Logout</Button> </FormGrid> </PageWithHeader> </> diff --git a/app/components/component-profile/src/ProfileImage.jsx b/app/components/component-profile/src/ProfileImage.jsx index fbaa86fdcc..162c43614f 100644 --- a/app/components/component-profile/src/ProfileImage.jsx +++ b/app/components/component-profile/src/ProfileImage.jsx @@ -14,4 +14,3 @@ export const SmallProfileImage = styled.img` object-fit: cover; border-radius: 50%; ` - diff --git a/app/components/component-review/src/components/ReviewersPage.js b/app/components/component-review/src/components/ReviewersPage.js index c88a873aab..266792ad75 100644 --- a/app/components/component-review/src/components/ReviewersPage.js +++ b/app/components/component-review/src/components/ReviewersPage.js @@ -145,12 +145,12 @@ const ReviewersPage = ({ match, history }) => { {props => ( <Reviewers {...props} + history={history} manuscript={manuscript} removeReviewer={removeReviewer} Reviewer={ReviewerContainer} reviewers={reviewers} reviewerUsers={users} - history={history} /> )} </Formik> diff --git a/app/components/component-submit/src/components/NewSubmissionPage.jsx b/app/components/component-submit/src/components/NewSubmissionPage.jsx index 2ce2b53f61..922ad7fd02 100644 --- a/app/components/component-submit/src/components/NewSubmissionPage.jsx +++ b/app/components/component-submit/src/components/NewSubmissionPage.jsx @@ -1,13 +1,10 @@ import React from 'react' -import { useQuery, useMutation, ApolloConsumer } from '@apollo/client' -// import Authorize from 'pubsweet-client/src/helpers/Authorize' - +import { ApolloConsumer } from '@apollo/client' import config from 'config' -import { Container, Content, Section, Heading, UploadContainer, PageHeading } from '../style' +import { Container, Content, UploadContainer, PageHeading } from '../style' import UploadManuscript from './UploadManuscript' -import { Spinner } from '../../../shared' -import { Action } from '@pubsweet/ui' import useCurrentUser from '../../../../hooks/useCurrentUser' + const { acceptUploadFiles } = config['pubsweet-component-xpub-dashboard'] || {} const acceptFiles = @@ -15,7 +12,6 @@ const acceptFiles = ? acceptUploadFiles.join() : 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' - const Dashboard = props => { const currentUser = useCurrentUser() @@ -23,19 +19,18 @@ const Dashboard = props => { <Container> <PageHeading level={1}>New submission</PageHeading> <Content> - <UploadContainer> - <ApolloConsumer> - {client => ( - <UploadManuscript - acceptFiles={acceptFiles} - client={client} - currentUser={currentUser} - history={props.history} - /> - )} - </ApolloConsumer> - </UploadContainer> - + <UploadContainer> + <ApolloConsumer> + {client => ( + <UploadManuscript + acceptFiles={acceptFiles} + client={client} + currentUser={currentUser} + history={props.history} + /> + )} + </ApolloConsumer> + </UploadContainer> </Content> </Container> ) diff --git a/app/components/component-submit/src/upload.js b/app/components/component-submit/src/upload.js index 99338907f8..2f06bf098e 100644 --- a/app/components/component-submit/src/upload.js +++ b/app/components/component-submit/src/upload.js @@ -1,10 +1,6 @@ import config from 'config' import request from 'pubsweet-client/src/helpers/api' import gql from 'graphql-tag' -// TOOD: These queries come from the dashboard component, -// making this a tricky dependency. Should we extract them into -// a shared component? -import queries from '../../component-dashboard/src/graphql/queries' const generateTitle = name => name diff --git a/app/components/component-teams-manager/src/components/Team.jsx b/app/components/component-teams-manager/src/components/Team.jsx index 9a04a9065b..66535822df 100644 --- a/app/components/component-teams-manager/src/components/Team.jsx +++ b/app/components/component-teams-manager/src/components/Team.jsx @@ -14,7 +14,8 @@ const Team = ({ team, number, userOptions, deleteTeam, updateTeam }) => ( {team.name} {team.role} </TeamTableCell> <TeamTableCell> - {team.object && team.object.objectType} {team.object && team.object.objectId} + {team.object && team.object.objectType}{' '} + {team.object && team.object.objectId} </TeamTableCell> <TeamTableCell width={40}> <StyledMenu diff --git a/app/components/component-users-manager/src/UsersManager.jsx b/app/components/component-users-manager/src/UsersManager.jsx index 5a09925c79..72869f557d 100644 --- a/app/components/component-users-manager/src/UsersManager.jsx +++ b/app/components/component-users-manager/src/UsersManager.jsx @@ -44,7 +44,6 @@ const GET_USERS = gql` } ` - const UsersManager = () => { const SortHeader = ({ thisSortName, children }) => { const changeSort = () => { diff --git a/app/components/shared/Pagination.jsx b/app/components/shared/Pagination.jsx index 8a395f37f8..e5b5aa3b83 100644 --- a/app/components/shared/Pagination.jsx +++ b/app/components/shared/Pagination.jsx @@ -144,4 +144,3 @@ export const Pagination = ({ setPage, limit, page, totalCount }) => { </PaginationContainer> ) } - diff --git a/package.json b/package.json index 09e45ace09..deb61c584b 100644 --- a/package.json +++ b/package.json @@ -113,7 +113,7 @@ "husky": "^0.14.3", "jest-cli": "^22.1.4", "joi-browser": "^10.0.6", - "lint-staged": "^4.1.3", + "lint-staged": "^10.2.11", "mini-css-extract-plugin": "^0.8.0", "node-dev": "^4.0.0", "prettier": "^1.8.2", @@ -137,7 +137,7 @@ }, "scripts": { "lint": "npm run lint:js && npm run lint:style", - "lint:js": "eslint app/ scripts/ server/ config/", + "lint:js": "eslint app/ scripts/ server/ config/ --ext js,jsx", "lint:style": "stylelint app/**/*.scss app/**/*.css", "precommit": "lint-staged", "reset": "pubsweet setupdb --clobber", diff --git a/yarn.lock b/yarn.lock index 7f7ed6a8d6..7e8a7f476b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1945,6 +1945,11 @@ "@types/connect" "*" "@types/node" "*" +"@types/color-name@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" + integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== + "@types/connect@*": version "3.4.33" resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.33.tgz#31610c901eca573b8713c3330abc6e6b9f588546" @@ -2496,16 +2501,23 @@ ansi-colors@^3.0.0: resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== -ansi-escapes@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" - integrity sha1-06ioOzGapneTZisT52HHkRQiMG4= +ansi-colors@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== ansi-escapes@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== +ansi-escapes@^4.3.0: + version "4.3.1" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" + integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA== + dependencies: + type-fest "^0.11.0" + ansi-html@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" @@ -2526,6 +2538,11 @@ ansi-regex@^4.1.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" @@ -2538,6 +2555,14 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" + integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== + dependencies: + "@types/color-name" "^1.1.1" + color-convert "^2.0.1" + any-base@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/any-base/-/any-base-1.1.0.tgz#ae101a62bc08a597b4c9ab5b7089d456630549fe" @@ -2827,11 +2852,6 @@ apollo-utilities@1.3.4, apollo-utilities@^1.0.1, apollo-utilities@^1.2.1, apollo ts-invariant "^0.4.0" tslib "^1.10.0" -app-root-path@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-2.2.1.tgz#d0df4a682ee408273583d43f6f79e9892624bc9a" - integrity sha512-91IFKeKk7FjfmezPKkwtaRvSpnUc4gDwPAjA1YZ9Gn0q0PPeW+vbeUsZuyDwjI7+QTHhcLen2v25fi/AmhvbJA== - append-field@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/append-field/-/append-field-1.0.0.tgz#1e3440e915f0b1203d23748e78edd7b9b5b43e56" @@ -3044,6 +3064,11 @@ astral-regex@^1.0.0: resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + async-each@^1.0.0, async-each@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" @@ -3858,7 +3883,7 @@ braces@^2.3.1, braces@^2.3.2: split-string "^3.0.2" to-regex "^3.0.1" -braces@~3.0.2: +braces@^3.0.1, braces@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== @@ -4258,7 +4283,7 @@ chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.4. escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: +chalk@^1.0.0, chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= @@ -4269,6 +4294,14 @@ chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" +chalk@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" + integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + change-emitter@^0.1.2: version "0.1.6" resolved "https://registry.yarnpkg.com/change-emitter/-/change-emitter-0.1.6.tgz#e8b2fe3d7f1ab7d69a32199aff91ea6931409515" @@ -4466,10 +4499,12 @@ cli-cursor@^2.0.0, cli-cursor@^2.1.0: dependencies: restore-cursor "^2.0.0" -cli-spinners@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-0.1.2.tgz#bb764d88e185fb9e1e6a2a1f19772318f605e31c" - integrity sha1-u3ZNiOGF+54eaiofGXcjGPYF4xw= +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" cli-table3@0.5.1: version "0.5.1" @@ -4481,6 +4516,14 @@ cli-table3@0.5.1: optionalDependencies: colors "^1.1.2" +cli-truncate@2.1.0, cli-truncate@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" + integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== + dependencies: + slice-ansi "^3.0.0" + string-width "^4.2.0" + cli-truncate@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574" @@ -4587,12 +4630,19 @@ color-convert@^1.3.0, color-convert@^1.9.0, color-convert@^1.9.1: dependencies: color-name "1.1.3" +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= -color-name@^1.0.0: +color-name@^1.0.0, color-name@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== @@ -4685,7 +4735,7 @@ commander@4.1.1: resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== -commander@^2.11.0, commander@^2.18.0, commander@^2.19.0, commander@^2.20.0, commander@^2.20.3, commander@^2.9.0, commander@~2.20.3: +commander@^2.18.0, commander@^2.19.0, commander@^2.20.0, commander@^2.20.3, commander@~2.20.3: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== @@ -4918,20 +4968,6 @@ cors@^2.8.4: object-assign "^4" vary "^1" -cosmiconfig@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-1.1.0.tgz#0dea0f9804efdfb929fbb1b188e25553ea053d37" - integrity sha1-DeoPmATv37kp+7GxiOJVU+oFPTc= - dependencies: - graceful-fs "^4.1.2" - js-yaml "^3.4.3" - minimist "^1.2.0" - object-assign "^4.0.1" - os-homedir "^1.0.1" - parse-json "^2.2.0" - pinkie-promise "^2.0.0" - require-from-string "^1.1.0" - cosmiconfig@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-3.1.0.tgz#640a94bf9847f321800403cd273af60665c73397" @@ -5365,6 +5401,11 @@ decode-uri-component@^0.2.0: resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= +dedent@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" + integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= + deep-equal@*: version "2.0.3" resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.0.3.tgz#cad1c15277ad78a5c01c49c2dee0f54de8a6a7b0" @@ -5832,6 +5873,11 @@ emoji-regex@^7.0.1: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + emoji-regex@^9.0.0: version "9.0.0" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.0.0.tgz#48a2309cc8a1d2e9d23bc6a67c39b63032e76ea4" @@ -5893,6 +5939,13 @@ enhanced-resolve@^4.1.0, enhanced-resolve@^4.1.1: memory-fs "^0.5.0" tapable "^1.0.0" +enquirer@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + dependencies: + ansi-colors "^4.1.1" + entities@^1.1.1, entities@~1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" @@ -6437,18 +6490,20 @@ execa@^0.7.0: signal-exit "^3.0.0" strip-eof "^1.0.0" -execa@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-0.8.0.tgz#d8d76bbc1b55217ed190fd6dd49d3c774ecfc8da" - integrity sha1-2NdrvBtVIX7RkP1t1J08d07PyNo= +execa@^4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/execa/-/execa-4.0.3.tgz#0a34dabbad6d66100bd6f2c576c8669403f317f2" + integrity sha512-WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A== dependencies: - cross-spawn "^5.0.1" - get-stream "^3.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" execall@^1.0.0: version "1.0.0" @@ -6766,6 +6821,13 @@ figures@^2.0.0: dependencies: escape-string-regexp "^1.0.5" +figures@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" + integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== + dependencies: + escape-string-regexp "^1.0.5" + file-entry-cache@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" @@ -8094,13 +8156,6 @@ imurmurhash@^0.1.4: resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= -indent-string@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" - integrity sha1-ji1INIdCEhtKghi3oTfppSBJ3IA= - dependencies: - repeating "^2.0.0" - indent-string@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" @@ -8449,6 +8504,11 @@ is-fullwidth-code-point@^2.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + is-function@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08" @@ -8970,11 +9030,6 @@ jest-environment-node@^22.4.1: jest-mock "^22.4.3" jest-util "^22.4.3" -jest-get-type@^21.2.0: - version "21.2.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-21.2.0.tgz#f6376ab9db4b60d81e39f30749c6c466f40d4a23" - integrity sha512-y2fFw3C+D0yjNSDp7ab1kcd6NUYfy3waPTlD8yWkAtiocJdBRQqNoRqVfMNxgj+IjT0V5cBIHJO0z9vuSSZ43Q== - jest-get-type@^22.1.0, jest-get-type@^22.4.3: version "22.4.3" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-22.4.3.tgz#e3a8504d8479342dd4420236b322869f18900ce4" @@ -9135,16 +9190,6 @@ jest-util@^22.4.1, jest-util@^22.4.3: mkdirp "^0.5.1" source-map "^0.6.0" -jest-validate@^21.1.0: - version "21.2.1" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-21.2.1.tgz#cc0cbca653cd54937ba4f2a111796774530dd3c7" - integrity sha512-k4HLI1rZQjlU+EC682RlQ6oZvLrE5SCh3brseQc24vbZTxzT/k/3urar5QMCVgjadmSO7lECeGdc6YxnM3yEGg== - dependencies: - chalk "^2.0.1" - jest-get-type "^21.2.0" - leven "^2.1.0" - pretty-format "^21.2.1" - jest-validate@^22.4.4: version "22.4.4" resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-22.4.4.tgz#1dd0b616ef46c995de61810d85f57119dbbcec4d" @@ -9209,7 +9254,7 @@ js-tokens@^3.0.2: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= -js-yaml@^3.4.3, js-yaml@^3.7.0, js-yaml@^3.9.0, js-yaml@^3.9.1: +js-yaml@^3.7.0, js-yaml@^3.9.0, js-yaml@^3.9.1: version "3.14.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== @@ -9656,46 +9701,32 @@ lines-and-columns@^1.1.6: resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= -lint-staged@^4.1.3: - version "4.3.0" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-4.3.0.tgz#ed0779ad9a42c0dc62bb3244e522870b41125879" - integrity sha512-C/Zxslg0VRbsxwmCu977iIs+QyrmW2cyRCPUV5NDFYOH/jtRFHH8ch7ua2fH0voI/nVC3Tpg7DykfgMZySliKw== +lint-staged@^10.2.11: + version "10.2.11" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-10.2.11.tgz#713c80877f2dc8b609b05bc59020234e766c9720" + integrity sha512-LRRrSogzbixYaZItE2APaS4l2eJMjjf5MbclRZpLJtcQJShcvUzKXsNeZgsLIZ0H0+fg2tL4B59fU9wHIHtFIA== dependencies: - app-root-path "^2.0.0" - chalk "^2.1.0" - commander "^2.11.0" - cosmiconfig "^1.1.0" - execa "^0.8.0" - is-glob "^4.0.0" - jest-validate "^21.1.0" - listr "^0.12.0" - lodash "^4.17.4" - log-symbols "^2.0.0" - minimatch "^3.0.0" - npm-which "^3.0.1" - p-map "^1.1.1" - staged-git-files "0.0.4" - stringify-object "^3.2.0" + chalk "^4.0.0" + cli-truncate "2.1.0" + commander "^5.1.0" + cosmiconfig "^6.0.0" + debug "^4.1.1" + dedent "^0.7.0" + enquirer "^2.3.5" + execa "^4.0.1" + listr2 "^2.1.0" + log-symbols "^4.0.0" + micromatch "^4.0.2" + normalize-path "^3.0.0" + please-upgrade-node "^3.2.0" + string-argv "0.3.1" + stringify-object "^3.3.0" listr-silent-renderer@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e" integrity sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4= -listr-update-renderer@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.2.0.tgz#ca80e1779b4e70266807e8eed1ad6abe398550f9" - integrity sha1-yoDhd5tOcCZoB+ju0a1qvjmFUPk= - dependencies: - chalk "^1.1.3" - cli-truncate "^0.2.1" - elegant-spinner "^1.0.1" - figures "^1.7.0" - indent-string "^3.0.0" - log-symbols "^1.0.2" - log-update "^1.0.2" - strip-ansi "^3.0.1" - listr-update-renderer@^0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz#4ea8368548a7b8aecb7e06d8c95cb45ae2ede6a2" @@ -9710,16 +9741,6 @@ listr-update-renderer@^0.5.0: log-update "^2.3.0" strip-ansi "^3.0.1" -listr-verbose-renderer@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz#8206f4cf6d52ddc5827e5fd14989e0e965933a35" - integrity sha1-ggb0z21S3cWCfl/RSYng6WWTOjU= - dependencies: - chalk "^1.1.3" - cli-cursor "^1.0.2" - date-fns "^1.27.2" - figures "^1.7.0" - listr-verbose-renderer@^0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz#f1132167535ea4c1261102b9f28dac7cba1e03db" @@ -9730,6 +9751,20 @@ listr-verbose-renderer@^0.5.0: date-fns "^1.27.2" figures "^2.0.0" +listr2@^2.1.0: + version "2.3.3" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-2.3.3.tgz#ee9f4d95dd325ad1ae89fe7327f2a4f4498224b5" + integrity sha512-vU2eiFEzUEaDjgwRJ/n8RB79K2cBcaTw1DigIGHnXGp/BEeQqxGwiM8R17Itit5l2ykrrST11kw2l9vSpCbqUQ== + dependencies: + chalk "^4.0.0" + cli-truncate "^2.1.0" + figures "^3.2.0" + indent-string "^4.0.0" + log-update "^4.0.0" + p-map "^4.0.0" + rxjs "^6.5.5" + through "^2.3.8" + listr@0.14.3: version "0.14.3" resolved "https://registry.yarnpkg.com/listr/-/listr-0.14.3.tgz#2fea909604e434be464c50bddba0d496928fa586" @@ -9745,28 +9780,6 @@ listr@0.14.3: p-map "^2.0.0" rxjs "^6.3.3" -listr@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/listr/-/listr-0.12.0.tgz#6bce2c0f5603fa49580ea17cd6a00cc0e5fa451a" - integrity sha1-a84sD1YD+klYDqF81qAMwOX6RRo= - dependencies: - chalk "^1.1.3" - cli-truncate "^0.2.1" - figures "^1.7.0" - indent-string "^2.1.0" - is-promise "^2.1.0" - is-stream "^1.1.0" - listr-silent-renderer "^1.1.1" - listr-update-renderer "^0.2.0" - listr-verbose-renderer "^0.4.0" - log-symbols "^1.0.2" - log-update "^1.0.2" - ora "^0.2.3" - p-map "^1.1.1" - rxjs "^5.0.0-beta.11" - stream-to-observable "^0.1.0" - strip-ansi "^3.0.1" - load-bmfont@^1.3.1, load-bmfont@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/load-bmfont/-/load-bmfont-1.4.0.tgz#75f17070b14a8c785fe7f5bee2e6fd4f98093b6b" @@ -9997,13 +10010,12 @@ log-symbols@^2.0.0: dependencies: chalk "^2.0.1" -log-update@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/log-update/-/log-update-1.0.2.tgz#19929f64c4093d2d2e7075a1dad8af59c296b8d1" - integrity sha1-GZKfZMQJPS0ucHWh2tivWcKWuNE= +log-symbols@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920" + integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA== dependencies: - ansi-escapes "^1.0.0" - cli-cursor "^1.0.2" + chalk "^4.0.0" log-update@^2.3.0: version "2.3.0" @@ -10014,6 +10026,16 @@ log-update@^2.3.0: cli-cursor "^2.0.0" wrap-ansi "^3.0.1" +log-update@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" + integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== + dependencies: + ansi-escapes "^4.3.0" + cli-cursor "^3.1.0" + slice-ansi "^4.0.0" + wrap-ansi "^6.2.0" + loglevel@^1.6.7, loglevel@^1.6.8: version "1.6.8" resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.8.tgz#8a25fb75d092230ecd4457270d80b54e28011171" @@ -10309,6 +10331,14 @@ micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" +micromatch@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" + integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== + dependencies: + braces "^3.0.1" + picomatch "^2.0.5" + miller-rabin@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" @@ -10384,7 +10414,7 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= -minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4, minimatch@~3.0.2: +minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4, minimatch@~3.0.2: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== @@ -10904,13 +10934,6 @@ npm-packlist@^1.1.6: npm-bundled "^1.0.1" npm-normalize-package-bin "^1.0.1" -npm-path@^2.0.2: - version "2.0.4" - resolved "https://registry.yarnpkg.com/npm-path/-/npm-path-2.0.4.tgz#c641347a5ff9d6a09e4d9bce5580c4f505278e64" - integrity sha512-IFsj0R9C7ZdR5cP+ET342q77uSRdtWOlWpih5eC+lu29tIDbNEgDbzgVJ5UFvYHWhxDZ5TFkJafFioO0pPQjCw== - dependencies: - which "^1.2.10" - npm-run-path@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" @@ -10925,15 +10948,6 @@ npm-run-path@^4.0.0: dependencies: path-key "^3.0.0" -npm-which@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/npm-which/-/npm-which-3.0.1.tgz#9225f26ec3a285c209cae67c3b11a6b4ab7140aa" - integrity sha1-kiXybsOihcIJyuZ8OxGmtKtxQKo= - dependencies: - commander "^2.9.0" - npm-path "^2.0.2" - which "^1.2.10" - npmlog@^4.0.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" @@ -11223,16 +11237,6 @@ optionator@^0.8.1, optionator@^0.8.2: type-check "~0.3.2" word-wrap "~1.2.3" -ora@^0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/ora/-/ora-0.2.3.tgz#37527d220adcd53c39b73571d754156d5db657a4" - integrity sha1-N1J9Igrc1Tw5tzVx11QVbV22V6Q= - dependencies: - chalk "^1.1.1" - cli-cursor "^1.0.2" - cli-spinners "^0.1.2" - object-assign "^4.0.1" - orderedmap@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/orderedmap/-/orderedmap-1.1.1.tgz#c618e77611b3b21d0fe3edc92586265e0059c789" @@ -11250,7 +11254,7 @@ os-browserify@^0.3.0: resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= -os-homedir@^1.0.0, os-homedir@^1.0.1: +os-homedir@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= @@ -11327,11 +11331,6 @@ p-locate@^4.1.0: dependencies: p-limit "^2.2.0" -p-map@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" - integrity sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA== - p-map@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" @@ -11344,6 +11343,13 @@ p-map@^3.0.0: dependencies: aggregate-error "^3.0.0" +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + p-retry@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" @@ -11789,7 +11795,7 @@ phin@^2.9.1: resolved "https://registry.yarnpkg.com/phin/-/phin-2.9.3.tgz#f9b6ac10a035636fb65dfc576aaaa17b8743125c" integrity sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA== -picomatch@^2.0.4, picomatch@^2.2.1: +picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1: version "2.2.2" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== @@ -11854,6 +11860,13 @@ pkginfo@0.3.x: resolved "https://registry.yarnpkg.com/pkginfo/-/pkginfo-0.3.1.tgz#5b29f6a81f70717142e09e765bbeab97b4f81e21" integrity sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE= +please-upgrade-node@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" + integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== + dependencies: + semver-compare "^1.0.0" + pluralize@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" @@ -12292,14 +12305,6 @@ pretty-error@^2.0.2: renderkid "^2.0.1" utila "~0.4" -pretty-format@^21.2.1: - version "21.2.1" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-21.2.1.tgz#ae5407f3cf21066cd011aa1ba5fce7b6a2eddb36" - integrity sha512-ZdWPGYAnYfcVP8yKA3zFjCn8s4/17TeYH28MXuC8vTp0o21eXjbFGcOAXZEaDaOFJjc3h2qa7HQNHNshhvoh2A== - dependencies: - ansi-regex "^3.0.0" - ansi-styles "^3.2.0" - pretty-format@^22.4.0, pretty-format@^22.4.3: version "22.4.3" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-22.4.3.tgz#f873d780839a9c02e9664c8a082e9ee79eaac16f" @@ -13566,11 +13571,6 @@ require-directory@^2.1.1: resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= -require-from-string@^1.1.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-1.2.1.tgz#529c9ccef27380adfec9a2f965b649bbee636418" - integrity sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg= - require-from-string@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" @@ -13667,6 +13667,14 @@ restore-cursor@^2.0.0: onetime "^2.0.0" signal-exit "^3.0.2" +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + ret@~0.1.10: version "0.1.15" resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" @@ -13746,13 +13754,6 @@ rx-lite@*, rx-lite@^4.0.8: resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" integrity sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ= -rxjs@^5.0.0-beta.11: - version "5.5.12" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.12.tgz#6fa61b8a77c3d793dbaf270bee2f43f652d741cc" - integrity sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw== - dependencies: - symbol-observable "1.0.1" - rxjs@^6.3.3: version "6.5.5" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.5.tgz#c5c884e3094c8cfee31bf27eb87e54ccfc87f9ec" @@ -13882,6 +13883,11 @@ selfsigned@^1.10.7: dependencies: node-forge "0.9.0" +semver-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" + integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= + "semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" @@ -14089,6 +14095,24 @@ slice-ansi@1.0.0: dependencies: is-fullwidth-code-point "^2.0.0" +slice-ansi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" + integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" @@ -14332,11 +14356,6 @@ stack-utils@^1.0.1: resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.2.tgz#33eba3897788558bebfc2db059dc158ec36cebb8" integrity sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA== -staged-git-files@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/staged-git-files/-/staged-git-files-0.0.4.tgz#d797e1b551ca7a639dec0237dc6eb4bb9be17d35" - integrity sha1-15fhtVHKemOd7AI33G60u5vhfTU= - start-server-and-test@^1.10.6: version "1.11.2" resolved "https://registry.yarnpkg.com/start-server-and-test/-/start-server-and-test-1.11.2.tgz#9144b7b6f25197148f159f261ae80119afbb17d5" @@ -14412,11 +14431,6 @@ stream-shift@^1.0.0: resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== -stream-to-observable@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/stream-to-observable/-/stream-to-observable-0.1.0.tgz#45bf1d9f2d7dc09bed81f1c307c430e68b84cffe" - integrity sha1-Rb8dny19wJvtgfHDB8Qw5ouEz/4= - streamifier@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/streamifier/-/streamifier-0.1.1.tgz#97e98d8fa4d105d62a2691d1dc07e820db8dfc4f" @@ -14432,6 +14446,11 @@ strict-uri-encode@^1.0.0: resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= +string-argv@0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" + integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== + string-length@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/string-length/-/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed" @@ -14474,6 +14493,15 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" +string-width@^4.1.0, string-width@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" + integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" + string.prototype.matchall@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.2.tgz#48bb510326fb9fdeb6a33ceaa81a6ea04ef7648e" @@ -14540,7 +14568,7 @@ stringify-entities@^1.0.1: is-alphanumerical "^1.0.0" is-hexadecimal "^1.0.0" -stringify-object@^3.2.0: +stringify-object@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== @@ -14570,6 +14598,13 @@ strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: dependencies: ansi-regex "^4.1.0" +strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + strip-bom@3.0.0, strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" @@ -14781,7 +14816,7 @@ supertest@^3.0.0: methods "^1.1.2" superagent "^3.8.3" -supports-color@7.1.0: +supports-color@7.1.0, supports-color@^7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== @@ -14832,11 +14867,6 @@ svgo@^0.7.0: sax "~1.2.1" whet.extend "~0.9.9" -symbol-observable@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.1.tgz#8340fc4702c3122df5d22288f88283f513d3fdd4" - integrity sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ= - symbol-observable@^1.0.2, symbol-observable@^1.0.4, symbol-observable@^1.1.0, symbol-observable@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" @@ -14962,7 +14992,7 @@ through2@^2.0.0: readable-stream "~2.3.6" xtend "~4.0.1" -through@2, through@^2.3.6, through@~2.3, through@~2.3.1: +through@2, through@^2.3.6, through@^2.3.8, through@~2.3, through@~2.3.1: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= @@ -15204,6 +15234,11 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" +type-fest@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" + integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== + type-is@^1.6.16, type-is@^1.6.4, type-is@~1.6.17, type-is@~1.6.18: version "1.6.18" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" @@ -16083,7 +16118,7 @@ which-typed-array@^1.1.2: has-symbols "^1.0.1" is-typed-array "^1.1.3" -which@^1.2.10, which@^1.2.12, which@^1.2.14, which@^1.2.9, which@^1.3.0, which@^1.3.1: +which@^1.2.12, which@^1.2.14, which@^1.2.9, which@^1.3.0, which@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== @@ -16188,6 +16223,15 @@ wrap-ansi@^5.1.0: string-width "^3.0.0" strip-ansi "^5.0.0" +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" -- GitLab