diff --git a/.eslintrc.json b/.eslintrc.json index 5aedf1210d0..369df38ee31 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -47,7 +47,9 @@ "prettier/@typescript-eslint" ], "plugins": ["@typescript-eslint/eslint-plugin"], - "rules": {} + "rules": { + "@typescript-eslint/explicit-function-return-type": "off" + } } ] } diff --git a/e2e_tests/integration/0.index.spec.js b/e2e_tests/integration/0.index.spec.js index 9bc943d384c..01eea818439 100644 --- a/e2e_tests/integration/0.index.spec.js +++ b/e2e_tests/integration/0.index.spec.js @@ -25,7 +25,7 @@ import { isAura, isEnterpriseEdition } from '../support/utils' const Editor = '.ReactCodeMirror textarea' const Carousel = '[data-testid="carousel"]' const SubmitQueryButton = '[data-testid="editorPlay"]' -const ClearEditorButton = '[data-testid="editorClear"]' +const ClearEditorButton = '[data-testid="editor-discard"]' describe('Neo4j Browser', () => { before(function() { diff --git a/e2e_tests/integration/editor.spec.js b/e2e_tests/integration/editor.spec.js index 712c086027d..061194b35e7 100644 --- a/e2e_tests/integration/editor.spec.js +++ b/e2e_tests/integration/editor.spec.js @@ -19,6 +19,9 @@ */ /* global Cypress, cy, before */ +const fullscreenButton = '[data-testid="editor-fullscreen"]' +const cardSizeButton = '[data-testid="editor-cardSize"]' +const discardButton = '[data-testid="editor-discard"]' describe('editor', () => { before(function() { @@ -50,4 +53,29 @@ describe('editor', () => { cy.get('.CodeMirror-scroll').type(':history{control}{enter}') cy.get('.CodeMirror-linenumber').should('contain', '$') }) + + it('supports changing ui size from controls', () => { + cy.get('.CodeMirror-linenumber').should('contain', '$') + + // Toggle card view and back + cy.get(cardSizeButton).click() + cy.get('.CodeMirror-linenumber').should('contain', '1') + cy.get(cardSizeButton).click() + cy.get('.CodeMirror-linenumber').should('contain', '$') + + // toggle full screen and nback + cy.get(fullscreenButton).click() + cy.get('.CodeMirror-linenumber').should('contain', '1') + cy.get(fullscreenButton).click() + cy.get('.CodeMirror-linenumber').should('contain', '$') + + // discard resets size and clears editor + cy.get(cardSizeButton).click() + cy.get('.CodeMirror-linenumber').should('contain', '1') + cy.get('body').type('/test') + cy.get('.CodeMirror-line').contains('test') + cy.get(discardButton).click() + cy.get('.CodeMirror-linenumber').should('contain', '$') + cy.get('.CodeMirror-line').should('not.contain.text', 'test') + }) }) diff --git a/e2e_tests/integration/play-command.spec.js b/e2e_tests/integration/play-command.spec.js index a8fa29a55a3..30a1889305a 100644 --- a/e2e_tests/integration/play-command.spec.js +++ b/e2e_tests/integration/play-command.spec.js @@ -109,7 +109,7 @@ describe('Play command', () => { nextSlideBtn().click() // Click link to new guide - cy.contains('Procedures').click() + cy.contains('Procedures').trigger('click') // Assert cy.getFrames() diff --git a/e2e_tests/support/commands.js b/e2e_tests/support/commands.js index 65e175c84de..9645bd9a293 100644 --- a/e2e_tests/support/commands.js +++ b/e2e_tests/support/commands.js @@ -1,7 +1,7 @@ import { executeCommand } from '../../src/shared/modules/commands/commandsDuck' const SubmitQueryButton = '[data-testid="editorPlay"]' -const ClearEditorButton = '[data-testid="editorClear"]' +const ClearEditorButton = '[data-testid="editor-discard"]' const Editor = '.ReactCodeMirror textarea' const VisibleEditor = '[data-testid="editor-wrapper"]' diff --git a/package.json b/package.json index 1316de2a425..e6bbc5182ed 100644 --- a/package.json +++ b/package.json @@ -90,7 +90,7 @@ "copy-webpack-plugin": "^5.1.1", "cross-env": "^6.0.3", "css-loader": "^1.0.0", - "cypress": "4.11.0", + "cypress": "4.12.1", "eslint": "^6.8.0", "eslint-config-prettier": "^6.7.0", "eslint-plugin-import": "^2.18.2", diff --git a/src/browser/components/buttons/index.jsx b/src/browser/components/buttons/index.jsx index 53b5ac11d3f..9f7cf3230cd 100644 --- a/src/browser/components/buttons/index.jsx +++ b/src/browser/components/buttons/index.jsx @@ -33,11 +33,16 @@ export const CloseButton = props => { } export const EditorButton = props => { - const { icon, title, color, ...rest } = props + const { icon, title, color, width, ...rest } = props const overrideColor = { ...(color ? { color } : {}) } return ( - - + + ) } @@ -53,8 +58,8 @@ const BaseButton = styled.span` color: ${props => props.theme.secondaryButtonText}; background-color: ${props => props.theme.secondaryButtonBackground}; border-radius: 50%; - width: 28px; - height: 28px; + width: ${props => props.width + 10}px; + height: ${props => props.width + 10}px; font-size: 28px; line-height: 28px; text-decoration: none; diff --git a/src/browser/custom.d.ts b/src/browser/custom.d.ts index a97fbda7848..a917b0ebd9f 100644 --- a/src/browser/custom.d.ts +++ b/src/browser/custom.d.ts @@ -2,3 +2,37 @@ declare module '*.svg' { const content: string export default content } + +declare module 'react-suber' { + interface BusProps { + bus: Bus + } + const withBus: (comp: any) => React.ComponentType + const BusProvider: React.ComponentType + export { withBus, BusProvider, BusProps } +} + +declare module 'suber' { + type UnsubscribeFn = () => void + type FilterFn = (data: any) => boolean + type MessageHandler = (message: any) => void + + interface Bus { + take: ( + channel: string, + fn: MessageHandler, + filterFn?: FilterFn + ) => UnsubscribeFn + one: ( + channel: string, + fn: MessageHandler, + filterFn?: FilterFn + ) => UnsubscribeFn + send: (channel: string, message: any, source?: string) => void + self: (channel: string, message: any, fn: MessageHandler) => void + reset: () => void + } + + const createBus: () => Bus + export { Bus, createBus } +} diff --git a/src/browser/modules/Editor/ActionButtons.tsx b/src/browser/modules/Editor/ActionButtons.tsx index 7a7aed225ce..97a82e6ea68 100644 --- a/src/browser/modules/Editor/ActionButtons.tsx +++ b/src/browser/modules/Editor/ActionButtons.tsx @@ -23,6 +23,7 @@ import { ActionButtonSection } from './styled' import { EditorButton } from 'browser-components/buttons' interface ActionButtonProps { buttons: ActionButton[] + width?: number } interface ActionButton { @@ -33,8 +34,8 @@ interface ActionButton { iconColor?: string } -const ActionButtons: React.FC = ({ buttons }) => ( - +const ActionButtons = ({ buttons, width = 24 }: ActionButtonProps) => ( + {buttons.map((btn: ActionButton) => ( = ({ buttons }) => ( icon={btn.icon} key={`editor${btn.title}`} color={btn.iconColor} + width={width} /> ))} diff --git a/src/browser/modules/Editor/Editor.jsx b/src/browser/modules/Editor/Editor.jsx index 2ca1dd4d48e..b448f5ec77d 100644 --- a/src/browser/modules/Editor/Editor.jsx +++ b/src/browser/modules/Editor/Editor.jsx @@ -44,7 +44,6 @@ import { } from 'shared/modules/settings/settingsDuck' import { add } from 'shared/modules/stream/streamDuck' import { Bar, ActionButtonSection, EditorWrapper, Header } from './styled' -import { EditorButton, EditModeEditorButton } from 'browser-components/buttons' import { CYPHER_REQUEST } from 'shared/modules/cypher/cypherDuck' import { deepEquals, shallowEquals } from 'services/utils' import * as viewTypes from 'shared/modules/stream/frameViewTypes' @@ -80,7 +79,6 @@ export class Editor extends Component { buffer: '', mode: 'cypher', notifications: [], - expanded: false, lastPosition: { line: 0, column: 0 }, contentId: null, editorHeight: 0 @@ -95,17 +93,16 @@ export class Editor extends Component { this.setEditorValue(msg.message) }) this.props.bus.take(FOCUS, this.focusEditor.bind(this)) - this.props.bus.take(EXPAND, this.expandEditorToggle.bind(this)) } } shouldComponentUpdate(nextProps, nextState) { return !( - nextState.expanded === this.state.expanded && nextState.contentId === this.state.contentId && nextState.editorHeight === this.state.editorHeight && shallowEquals(nextState.notifications, this.state.notifications) && deepEquals(nextProps.schema, this.props.schema) && + nextProps.editorSize === this.props.editorSize && nextProps.useDb === this.props.useDb && nextProps.enableMultiStatementMode === this.props.enableMultiStatementMode ) @@ -116,17 +113,13 @@ export class Editor extends Component { this.codeMirror.setCursor(this.codeMirror.lineCount(), 0) } - expandEditorToggle() { - this.setState({ expanded: !this.state.expanded }) - } - clearEditor = () => { this.setEditorValue('') this.setContentId(null) } handleEnter(cm) { - const multiline = cm.lineCount() !== 1 || this.state.expanded + const multiline = this.props.editorSize !== 'LINE' if (multiline) { this.newlineAndIndent(cm) } else { @@ -152,9 +145,9 @@ export class Editor extends Component { this.setState({ notifications: [], historyIndex: -1, - buffer: null, - expanded: false + buffer: null }) + this.props.setSize('LINE') } } @@ -255,6 +248,9 @@ export class Editor extends Component { console.log(e) } }) + if (this.props.editorRef) { + this.props.editorRef.current = this.codeMirror + } } getEditorValue() { @@ -400,8 +396,8 @@ export class Editor extends Component { } lineNumberFormatter = line => { - const multiLine = this.codeMirror && this.codeMirror.lineCount() > 1 - if (this.state.expanded || multiLine) { + const multiline = this.props.editorSize !== 'LINE' + if (multiline) { return line } else { return `${this.props.useDb || ''}$` @@ -417,6 +413,13 @@ export class Editor extends Component { } } + goToCard(cm) { + this.newlineAndIndent(cm) + if (this.props.editorSize === 'LINE') { + this.props.setSize('CARD') + } + } + render(cm) { const options = { lineNumbers: true, @@ -431,7 +434,7 @@ export class Editor extends Component { extraKeys: { 'Ctrl-Space': 'autocomplete', Enter: this.handleEnter.bind(this), - 'Shift-Enter': this.newlineAndIndent.bind(this), + 'Shift-Enter': this.goToCard.bind(this), 'Cmd-Enter': this.execCurrent.bind(this), 'Ctrl-Enter': this.execCurrent.bind(this), 'Cmd-Up': this.historyPrev.bind(this), @@ -461,12 +464,6 @@ export class Editor extends Component { const editorIsEmpty = this.getEditorValue().length > 0 const buttons = [ - { - onClick: () => this.setEditorValue(''), - icon: eraser2, - title: 'Clear', - disabled: editorIsEmpty - }, { onClick: this.state.contentId ? () => @@ -486,18 +483,20 @@ export class Editor extends Component { onClick: this.execCurrent, icon: controlsPlay, title: 'Play', - disabled: editorIsEmpty + disabled: editorIsEmpty, + iconColor: this.props.theme.linkHover } ] - const cardView = this.codeMirror && this.codeMirror.lineCount() !== 1 + const isFullscreen = this.props.editorSize === 'FULLSCREEN' + const isCardSize = this.props.editorSize === 'CARD' return ( - -
- + +
+
- + { this.editor = ref diff --git a/src/browser/modules/Editor/Editor.test.js b/src/browser/modules/Editor/Editor.test.js index 3072f946340..2cb0cc2a94f 100644 --- a/src/browser/modules/Editor/Editor.test.js +++ b/src/browser/modules/Editor/Editor.test.js @@ -27,6 +27,7 @@ import { editContent, setContent } from 'shared/modules/editor/editorDuck' +const mockTheme = { editModeButtonText: 'red', linkHover: 'red' } describe(' ', () => { describe('Bus listener setup', () => { @@ -45,7 +46,6 @@ describe(' ', () => { it('should setup on mount', async () => { // Given bus is provided const bus = createBus() - const mockTheme = { editModeButtonText: 'red' } const { findByText } = render( ) @@ -81,7 +81,9 @@ describe(' ', () => { it('should not setup listeners if not provided a bus', async () => { // Given no bus is provided const bus = createBus() - const { queryByText } = render() + const { queryByText } = render( + + ) // The SET_CONTENT action // When diff --git a/src/browser/modules/Editor/EditorFrame.tsx b/src/browser/modules/Editor/EditorFrame.tsx new file mode 100644 index 00000000000..3ecde31176c --- /dev/null +++ b/src/browser/modules/Editor/EditorFrame.tsx @@ -0,0 +1,139 @@ +/* + * Copyright (c) 2002-2020 "Neo4j," + * Neo4j Sweden AB [http://neo4j.com] + * + * This file is part of Neo4j. + * + * Neo4j is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +import React, { useState, useEffect, useRef } from 'react' +import { withBus } from 'react-suber' +import { Bus } from 'suber' +import Editor from './Editor' +import { Frame, FrameHeader, FrameHeaderText, UIControls } from './styled' +import { EXPAND } from 'shared/modules/editor/editorDuck' +import { FrameButton } from 'browser-components/buttons' +import { + ExpandIcon, + ContractIcon, + CloseIcon, + UpIcon, + DownIcon +} from 'browser-components/icons/Icons' + +type EditorSize = 'CARD' | 'LINE' | 'FULLSCREEN' +type EditorFrameProps = { bus: Bus } +type CodeEditor = { + getValue: () => string | null + setValue: (newText: string) => void +} + +export function EditorFrame({ bus }: EditorFrameProps) { + const [sizeState, setSize] = useState('LINE') + const isFullscreen = sizeState === 'FULLSCREEN' + const isCardSize = sizeState === 'CARD' + const editorRef = useRef(null) + + function toggleFullscreen() { + const editorVal = (editorRef.current && editorRef.current.getValue()) || '' + const lineCount = editorVal.split('\n').length + if (isFullscreen) { + if (lineCount > 1) { + setSize('CARD') + } else { + setSize('LINE') + } + } else { + setSize('FULLSCREEN') + } + } + + useEffect(() => bus && bus.take(EXPAND, toggleFullscreen)) + + function toggleCardView() { + const editorVal = (editorRef.current && editorRef.current.getValue()) || '' + const lineCount = editorVal.split('\n').length + + if (isCardSize) { + if (lineCount > 1) { + editorRef.current && + editorRef.current.setValue( + editorVal + .split('\n') + .filter((nonEmpty: string) => nonEmpty) + .join(' ') + ) + } + setSize('LINE') + } else { + setSize('CARD') + } + } + + function discardEditor() { + editorRef.current && editorRef.current.setValue('') + sizeState !== 'LINE' && setSize('LINE') + } + + const buttons = [ + { + onClick: toggleFullscreen, + title: isFullscreen ? 'Close fullscreen' : 'Fullscreen', + icon: isFullscreen ? : , + testId: 'fullscreen' + }, + { + onClick: toggleCardView, + title: isCardSize ? 'Collapse' : 'Expand', + icon: isCardSize ? : , + testId: 'cardSize' + }, + { + onClick: discardEditor, + title: 'Discard', + icon: , + testId: 'discard' + } + ] + + const TypedEditor: any = Editor // delete this when editor is ts + + return ( + + + + + {buttons.map(({ onClick, icon, title, testId }) => ( + + {icon} + + ))} + + + + + ) +} + +export default withBus(EditorFrame) diff --git a/src/browser/modules/Editor/styled.tsx b/src/browser/modules/Editor/styled.tsx index 3e8145951fc..4ed6f868021 100644 --- a/src/browser/modules/Editor/styled.tsx +++ b/src/browser/modules/Editor/styled.tsx @@ -20,74 +20,38 @@ import styled from 'styled-components' +interface FullscreenProps { + fullscreen: boolean +} interface ResizeableProps { - expanded: boolean - card: boolean + fullscreen: boolean + cardSize: boolean } const editorPadding = 10 -export const BaseBar = styled.div` - background-color: ${(props): string => props.theme.editorBackground}; - border-radius: 4px; - margin: ${editorPadding}px 0px ${editorPadding}px 0; +export const Bar = styled.div` + background-color: ${(props): string => props.theme.frameSidebarBackground}; display: grid; + margin: 5px; + border-radius: 2px; // minmax(0, 1fr) prevents the editor from growing the text field grid-template-columns: minmax(0, 1fr) auto; - grid-template-areas: ${(props): string => { - if (props.expanded || props.card) { - return "'header' 'editor'" - } - return "'editor header'" - }}; + grid-template-areas: 'editor header'; ` -export const Header = styled.div` +export const Header = styled.div` grid-area: header; border-radius: 4px 4px 0 0; - ${(props): string => { - if (props.expanded) { - return `background-color: #4d4a57; - border-radius: 0; - ` - } - if (props.card) { - return `background-color: #4d4a57; - transition-duration: 0.3s;` - } - return '' - }} - display: flex; justify-content: flex-end; + padding-top: 7px + padding-right: 7px ` -export const Bar = styled(BaseBar)` - ${(props): string => { - if (props.expanded) { - return ` -position: fixed; -top: -10px; -bottom: 0; -left: 0; -right: 0; -height: 100vh; -border-radius: 0; -z-index: 1030;` - } - return '' - }}; -` - -interface ActionButtonContainerProps { - containerWidth: number -} - -export const ActionButtonSection = styled.div` +export const ActionButtonSection = styled.div` display: flex; justify-content: space-between; - width: ${(props): number => props.containerWidth}px; - margin: 7px; ` const BaseEditorWrapper = styled.div` @@ -95,17 +59,17 @@ const BaseEditorWrapper = styled.div` grid-area: editor; min-height: ${(props): string => { - if (props.expanded) { + if (props.fullscreen) { return '100vh' } - if (props.card) { + if (props.cardSize) { // 230 is 10 lines + 2*12px padding return '254px' } return '0' }}; - ${(props): string => (props.expanded ? '' : 'transition-duration: 0.1s;')} + transition-duration: 0.1s; .CodeMirror { color: ${(props): string => props.theme.editorCommandColor}; @@ -117,9 +81,49 @@ const BaseEditorWrapper = styled.div` } ` +export const Frame = styled.div` + background-color: ${props => props.theme.secondaryBackground}; + margin: ${editorPadding}px 0px ${editorPadding}px 0; + border-radius: 2px; + box-shadow: 0px 0px 2px rgba(52, 58, 67, 0.1), + 0px 1px 2px rgba(52, 58, 67, 0.08), 0px 1px 4px rgba(52, 58, 67, 0.08); + ${(props): string => { + if (props.fullscreen) { + return ` + position: fixed; + top: -10px; + bottom: 0; + left: 0; + right: 0; + height: 100vh; + border-radius: 0; + z-index: 1030;` + } + return '' + }}; +` + +export const FrameHeader = styled.div` + display: flex; + flex-direction: column; + margin-left: 7px; + height: 33px; +` + +export const UIControls = styled.div` + align-self: flex-end; +` + +export const FrameHeaderText = styled.div` + color: white; + font-family: 'Fira Code', 'Monaco', 'Lucida Console', Courier, monospace; + font-size: 1.2em; + line-height: 2.2em; +` + export const EditorWrapper = styled(BaseEditorWrapper)` ${(props): string => { - if (props.expanded) { + if (props.fullscreen) { return `height: 100%; z-index: 2; .CodeMirror { diff --git a/src/browser/modules/Frame/styled.jsx b/src/browser/modules/Frame/styled.jsx index 62d1356de23..58ca0047508 100644 --- a/src/browser/modules/Frame/styled.jsx +++ b/src/browser/modules/Frame/styled.jsx @@ -36,7 +36,6 @@ const rollDownAnimation = keyframes` export const StyledFrame = styled.article` width: auto; background-color: ${props => props.theme.secondaryBackground}; - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1); animation: ${rollDownAnimation} 0.4s ease-in; border: ${props => props.theme.frameBorder}; margin: ${props => (props.fullscreen ? '0' : '10px 0px 10px 0px')}; @@ -50,6 +49,9 @@ export const StyledFrame = styled.article` &:hover .carousel-intro-animation { opacity: 0; } + box-shadow: 0px 0px 2px rgba(52, 58, 67, 0.1), + 0px 1px 2px rgba(52, 58, 67, 0.08), 0px 1px 4px rgba(52, 58, 67, 0.08); + border-radius: 2px; ` export const StyledFrameBody = styled.div` diff --git a/src/browser/modules/Main/Main.jsx b/src/browser/modules/Main/Main.jsx index 96ae1fd768d..9c667eac5c8 100644 --- a/src/browser/modules/Main/Main.jsx +++ b/src/browser/modules/Main/Main.jsx @@ -23,7 +23,7 @@ import { PENDING_STATE, CONNECTING_STATE } from 'shared/modules/connections/connectionsDuck' -import Editor from '../Editor/Editor' +import Editor from '../Editor/EditorFrame' import Stream from '../Stream/Stream' import Render from 'browser-components/Render' import { diff --git a/src/browser/modules/Main/styled.jsx b/src/browser/modules/Main/styled.jsx index 003fd560596..a0cc8a52db6 100644 --- a/src/browser/modules/Main/styled.jsx +++ b/src/browser/modules/Main/styled.jsx @@ -50,6 +50,8 @@ export const Banner = styled.div` overflow: hidden; animation: ${grow('49px')} 0.3s ease-in; flex: 0 0 49px; + box-shadow: 0px 0px 2px rgba(52, 58, 67, 0.1), + 0px 1px 2px rgba(52, 58, 67, 0.08), 0px 1px 4px rgba(52, 58, 67, 0.08); ` export const ErrorBanner = styled(Banner)` diff --git a/src/browser/modules/Sidebar/About.tsx b/src/browser/modules/Sidebar/About.tsx index 1d29f8895f5..225311dc6a8 100644 --- a/src/browser/modules/Sidebar/About.tsx +++ b/src/browser/modules/Sidebar/About.tsx @@ -48,7 +48,7 @@ interface AboutProps { serverEdition: string } -const About: React.FC = ({ serverVersion, serverEdition }) => ( +const About = ({ serverVersion, serverEdition }: AboutProps) => ( About Neo4j diff --git a/src/browser/modules/Sidebar/Sidebar.tsx b/src/browser/modules/Sidebar/Sidebar.tsx index 70f843581bf..c17dc442295 100644 --- a/src/browser/modules/Sidebar/Sidebar.tsx +++ b/src/browser/modules/Sidebar/Sidebar.tsx @@ -55,14 +55,14 @@ interface SidebarProps { loadSync: boolean } -const Sidebar: React.FC = ({ +const Sidebar = ({ openDrawer, onNavClick, showStaticScripts, neo4jConnectionState, syncConnected, loadSync -}) => { +}: SidebarProps) => { const topNavItemsList = [ { name: 'DBMS', diff --git a/yarn.lock b/yarn.lock index 81f60b805b0..85750656bf0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1148,7 +1148,7 @@ exec-sh "^0.3.2" minimist "^1.2.0" -"@cypress/listr-verbose-renderer@0.4.1": +"@cypress/listr-verbose-renderer@^0.4.1": version "0.4.1" resolved "https://neo.jfrog.io/neo/api/npm/npm/@cypress/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz#a77492f4b11dcc7c446a34b3e28721afd33c642a" integrity sha1-p3SS9LEdzHxEajSz4ochr9M8ZCo= @@ -1158,7 +1158,7 @@ date-fns "^1.27.2" figures "^1.7.0" -"@cypress/request@2.88.5": +"@cypress/request@^2.88.5": version "2.88.5" resolved "https://neo.jfrog.io/neo/api/npm/npm/@cypress/request/-/request-2.88.5.tgz#8d7ecd17b53a849cfd5ab06d5abe7d84976375d7" integrity sha1-jX7NF7U6hJz9WrBtWr59hJdjddc= @@ -1193,7 +1193,7 @@ debug "4.1.1" lodash "4.17.19" -"@cypress/xvfb@1.2.4": +"@cypress/xvfb@^1.2.4": version "1.2.4" resolved "https://neo.jfrog.io/neo/api/npm/npm/@cypress/xvfb/-/xvfb-1.2.4.tgz#2daf42e8275b39f4aa53c14214e557bd14e7748a" integrity sha1-La9C6CdbOfSqU8FCFOVXvRTndIo= @@ -2269,12 +2269,12 @@ resolved "https://neo.jfrog.io/neo/api/npm/npm/@types/shallowequal/-/shallowequal-1.1.1.tgz#aad262bb3f2b1257d94c71d545268d592575c9b1" integrity sha1-qtJiuz8rElfZTHHVRSaNWSV1ybE= -"@types/sinonjs__fake-timers@6.0.1": +"@types/sinonjs__fake-timers@^6.0.1": version "6.0.1" resolved "https://neo.jfrog.io/neo/api/npm/npm/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.1.tgz#681df970358c82836b42f989188d133e218c458e" integrity sha1-aB35cDWMgoNrQvmJGI0TPiGMRY4= -"@types/sizzle@2.3.2": +"@types/sizzle@^2.3.2": version "2.3.2" resolved "https://neo.jfrog.io/neo/api/npm/npm/@types/sizzle/-/sizzle-2.3.2.tgz#a811b8c18e2babab7d542b3365887ae2e4d9de47" integrity sha1-qBG4wY4rq6t9VCszZYh64uTZ3kc= @@ -2830,7 +2830,7 @@ aproba@^1.1.1: resolved "https://neo.jfrog.io/neo/api/npm/npm/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" integrity sha1-aALmJk79GMeQobDVF/DyYnvyyUo= -arch@2.1.2: +arch@^2.1.2: version "2.1.2" resolved "https://neo.jfrog.io/neo/api/npm/npm/arch/-/arch-2.1.2.tgz#0c52bbe7344bb4fa260c443d2cbad9c00ff2f0bf" integrity sha1-DFK75zRLtPomDEQ9LLrZwA/y8L8= @@ -3332,7 +3332,7 @@ bluebird@3.7.1: resolved "https://neo.jfrog.io/neo/api/npm/npm/bluebird/-/bluebird-3.7.1.tgz#df70e302b471d7473489acf26a93d63b53f874de" integrity sha1-33DjArRx10c0iazyapPWO1P4dN4= -bluebird@3.7.2, bluebird@^3.5.5: +bluebird@^3.5.5, bluebird@^3.7.2: version "3.7.2" resolved "https://neo.jfrog.io/neo/api/npm/npm/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha1-nyKcFb4nJFT/qXOs4NvueaGww28= @@ -3618,7 +3618,7 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" -cachedir@2.3.0: +cachedir@^2.3.0: version "2.3.0" resolved "https://neo.jfrog.io/neo/api/npm/npm/cachedir/-/cachedir-2.3.0.tgz#0c75892a052198f0b21c7c1804d8331edfcae0e8" integrity sha1-DHWJKgUhmPCyHHwYBNgzHt/K4Og= @@ -3731,15 +3731,6 @@ ccount@^1.0.0, ccount@^1.0.3: resolved "https://neo.jfrog.io/neo/api/npm/npm/ccount/-/ccount-1.0.5.tgz#ac82a944905a65ce204eb03023157edf29425c17" integrity sha1-rIKpRJBaZc4gTrAwIxV+3ylCXBc= -chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.1, chalk@^2.4.2: - version "2.4.2" - resolved "https://neo.jfrog.io/neo/api/npm/npm/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ= - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: version "1.1.3" resolved "https://neo.jfrog.io/neo/api/npm/npm/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" @@ -3751,6 +3742,15 @@ chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" +chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.1, chalk@^2.4.2: + version "2.4.2" + resolved "https://neo.jfrog.io/neo/api/npm/npm/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ= + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + chalk@^3.0.0: version "3.0.0" resolved "https://neo.jfrog.io/neo/api/npm/npm/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" @@ -3779,7 +3779,7 @@ chardet@^0.7.0: resolved "https://neo.jfrog.io/neo/api/npm/npm/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" integrity sha1-kAlISfCTfy7twkJdDSip5fDLrZ4= -check-more-types@2.24.0: +check-more-types@^2.24.0: version "2.24.0" resolved "https://neo.jfrog.io/neo/api/npm/npm/check-more-types/-/check-more-types-2.24.0.tgz#1420ffb10fd444dcfc79b43891bbfffd32a84600" integrity sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA= @@ -3894,7 +3894,7 @@ cli-spinners@^0.1.2: resolved "https://neo.jfrog.io/neo/api/npm/npm/cli-spinners/-/cli-spinners-0.1.2.tgz#bb764d88e185fb9e1e6a2a1f19772318f605e31c" integrity sha1-u3ZNiOGF+54eaiofGXcjGPYF4xw= -cli-table3@0.5.1: +cli-table3@~0.5.1: version "0.5.1" resolved "https://neo.jfrog.io/neo/api/npm/npm/cli-table3/-/cli-table3-0.5.1.tgz#0252372d94dfc40dbd8df06005f48f31f656f202" integrity sha1-AlI3LZTfxA29jfBgBfSPMfZW8gI= @@ -4059,11 +4059,6 @@ commander@2.17.x: resolved "https://neo.jfrog.io/neo/api/npm/npm/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" integrity sha1-vXerfebelCBc6sxy8XFtKfIKd78= -commander@4.1.1: - version "4.1.1" - resolved "https://neo.jfrog.io/neo/api/npm/npm/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" - integrity sha1-n9YCvZNilOnp70aj9NaWQESxgGg= - commander@^2.11.0, commander@^2.19.0, commander@^2.9.0: version "2.20.0" resolved "https://neo.jfrog.io/neo/api/npm/npm/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" @@ -4074,12 +4069,17 @@ commander@^2.18.0, commander@^2.20.0: resolved "https://neo.jfrog.io/neo/api/npm/npm/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha1-/UhehMA+tIgcIHIrpIA16FMa6zM= +commander@^4.1.1: + version "4.1.1" + resolved "https://neo.jfrog.io/neo/api/npm/npm/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" + integrity sha1-n9YCvZNilOnp70aj9NaWQESxgGg= + commander@~2.19.0: version "2.19.0" resolved "https://neo.jfrog.io/neo/api/npm/npm/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" integrity sha1-9hmKqE5bg8RgVLlN3tv+1e6f8So= -common-tags@1.8.0, common-tags@^1.4.0, common-tags@^1.8.0: +common-tags@^1.4.0, common-tags@^1.8.0: version "1.8.0" resolved "https://neo.jfrog.io/neo/api/npm/npm/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937" integrity sha1-jjFT5ULUo56bEFVENK+q+YlWqTc= @@ -4521,48 +4521,48 @@ cypher-editor-support@1.1.6: fuzzaldrin "2.1.0" lodash "4.17.15" -cypress@4.11.0: - version "4.11.0" - resolved "https://neo.jfrog.io/neo/api/npm/npm/cypress/-/cypress-4.11.0.tgz#054b0b85fd3aea793f186249ee1216126d5f0a7e" - integrity sha1-BUsLhf066nk/GGJJ7hIWEm1fCn4= - dependencies: - "@cypress/listr-verbose-renderer" "0.4.1" - "@cypress/request" "2.88.5" - "@cypress/xvfb" "1.2.4" - "@types/sinonjs__fake-timers" "6.0.1" - "@types/sizzle" "2.3.2" - arch "2.1.2" - bluebird "3.7.2" - cachedir "2.3.0" - chalk "2.4.2" - check-more-types "2.24.0" - cli-table3 "0.5.1" - commander "4.1.1" - common-tags "1.8.0" - debug "4.1.1" - eventemitter2 "6.4.2" - execa "1.0.0" - executable "4.1.1" - extract-zip "1.7.0" - fs-extra "8.1.0" - getos "3.2.1" - is-ci "2.0.0" - is-installed-globally "0.3.2" - lazy-ass "1.6.0" - listr "0.14.3" - lodash "4.17.19" - log-symbols "3.0.0" - minimist "1.2.5" - moment "2.26.0" - ospath "1.2.2" - pretty-bytes "5.3.0" - ramda "0.26.1" - request-progress "3.0.0" - supports-color "7.1.0" - tmp "0.1.0" - untildify "4.0.0" - url "0.11.0" - yauzl "2.10.0" +cypress@4.12.1: + version "4.12.1" + resolved "https://neo.jfrog.io/neo/api/npm/npm/cypress/-/cypress-4.12.1.tgz#0ead1b9f4c0917d69d8b57f996b6e01fe693b6ec" + integrity sha1-Dq0bn0wJF9adi1f5lrbgH+aTtuw= + dependencies: + "@cypress/listr-verbose-renderer" "^0.4.1" + "@cypress/request" "^2.88.5" + "@cypress/xvfb" "^1.2.4" + "@types/sinonjs__fake-timers" "^6.0.1" + "@types/sizzle" "^2.3.2" + arch "^2.1.2" + bluebird "^3.7.2" + cachedir "^2.3.0" + chalk "^2.4.2" + check-more-types "^2.24.0" + cli-table3 "~0.5.1" + commander "^4.1.1" + common-tags "^1.8.0" + debug "^4.1.1" + eventemitter2 "^6.4.2" + execa "^1.0.0" + executable "^4.1.1" + extract-zip "^1.7.0" + fs-extra "^8.1.0" + getos "^3.2.1" + is-ci "^2.0.0" + is-installed-globally "^0.3.2" + lazy-ass "^1.6.0" + listr "^0.14.3" + lodash "^4.17.19" + log-symbols "^3.0.0" + minimist "^1.2.5" + moment "^2.27.0" + ospath "^1.2.2" + pretty-bytes "^5.3.0" + ramda "~0.26.1" + request-progress "^3.0.0" + supports-color "^7.1.0" + tmp "~0.1.0" + untildify "^4.0.0" + url "^0.11.0" + yauzl "^2.10.0" d3@3: version "3.5.17" @@ -5469,10 +5469,10 @@ etag@~1.8.1: resolved "https://neo.jfrog.io/neo/api/npm/npm/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= -eventemitter2@6.4.2: - version "6.4.2" - resolved "https://neo.jfrog.io/neo/api/npm/npm/eventemitter2/-/eventemitter2-6.4.2.tgz#f31f8b99d45245f0edbc5b00797830ff3b388970" - integrity sha1-8x+LmdRSRfDtvFsAeXgw/zs4iXA= +eventemitter2@^6.4.2: + version "6.4.3" + resolved "https://neo.jfrog.io/neo/api/npm/npm/eventemitter2/-/eventemitter2-6.4.3.tgz#35c563619b13f3681e7eb05cbdaf50f56ba58820" + integrity sha1-NcVjYZsT82gefrBcva9Q9WuliCA= eventemitter3@^4.0.0: version "4.0.4" @@ -5504,26 +5504,26 @@ exec-sh@^0.3.2: resolved "https://neo.jfrog.io/neo/api/npm/npm/exec-sh/-/exec-sh-0.3.4.tgz#3a018ceb526cc6f6df2bb504b2bfe8e3a4934ec5" integrity sha1-OgGM61JsxvbfK7UEsr/o46STTsU= -execa@1.0.0, execa@^1.0.0: - version "1.0.0" - resolved "https://neo.jfrog.io/neo/api/npm/npm/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - integrity sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg= +execa@^0.8.0: + version "0.8.0" + resolved "https://neo.jfrog.io/neo/api/npm/npm/execa/-/execa-0.8.0.tgz#d8d76bbc1b55217ed190fd6dd49d3c774ecfc8da" + integrity sha1-2NdrvBtVIX7RkP1t1J08d07PyNo= dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" + 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" -execa@^0.8.0: - version "0.8.0" - resolved "https://neo.jfrog.io/neo/api/npm/npm/execa/-/execa-0.8.0.tgz#d8d76bbc1b55217ed190fd6dd49d3c774ecfc8da" - integrity sha1-2NdrvBtVIX7RkP1t1J08d07PyNo= +execa@^1.0.0: + version "1.0.0" + resolved "https://neo.jfrog.io/neo/api/npm/npm/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg= dependencies: - cross-spawn "^5.0.1" - get-stream "^3.0.0" + cross-spawn "^6.0.0" + get-stream "^4.0.0" is-stream "^1.1.0" npm-run-path "^2.0.0" p-finally "^1.0.0" @@ -5546,7 +5546,7 @@ execa@^3.2.0: signal-exit "^3.0.2" strip-final-newline "^2.0.0" -executable@4.1.1: +executable@^4.1.1: version "4.1.1" resolved "https://neo.jfrog.io/neo/api/npm/npm/executable/-/executable-4.1.1.tgz#41532bff361d3e57af4d763b70582db18f5d133c" integrity sha1-QVMr/zYdPlevTXY7cFgtsY9dEzw= @@ -5686,7 +5686,7 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" -extract-zip@1.7.0: +extract-zip@^1.7.0: version "1.7.0" resolved "https://neo.jfrog.io/neo/api/npm/npm/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927" integrity sha1-VWzDrp339FLEk6DPtRzDAneUCSc= @@ -6010,7 +6010,7 @@ from2@^2.1.0: inherits "^2.0.1" readable-stream "^2.0.0" -fs-extra@8.1.0: +fs-extra@^8.1.0: version "8.1.0" resolved "https://neo.jfrog.io/neo/api/npm/npm/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" integrity sha1-SdQ8RaiM2Wd2aMt74bRu/bjS4cA= @@ -6111,7 +6111,7 @@ get-value@^2.0.3, get-value@^2.0.6: resolved "https://neo.jfrog.io/neo/api/npm/npm/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= -getos@3.2.1: +getos@^3.2.1: version "3.2.1" resolved "https://neo.jfrog.io/neo/api/npm/npm/getos/-/getos-3.2.1.tgz#0134d1f4e00eb46144c5a9c0ac4dc087cbb27dc5" integrity sha1-ATTR9OAOtGFExanArE3Ah8uyfcU= @@ -6986,13 +6986,6 @@ is-callable@^1.1.4, is-callable@^1.1.5: resolved "https://neo.jfrog.io/neo/api/npm/npm/is-callable/-/is-callable-1.2.0.tgz#83336560b54a38e35e3a2df7afd0454d691468bb" integrity sha1-gzNlYLVKOONeOi33r9BFTWkUaLs= -is-ci@2.0.0, is-ci@^2.0.0: - version "2.0.0" - resolved "https://neo.jfrog.io/neo/api/npm/npm/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" - integrity sha1-a8YzQYGBDgS1wis9WJ/cpVAmQEw= - dependencies: - ci-info "^2.0.0" - is-ci@^1.0.10: version "1.2.1" resolved "https://neo.jfrog.io/neo/api/npm/npm/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c" @@ -7000,6 +6993,13 @@ is-ci@^1.0.10: dependencies: ci-info "^1.5.0" +is-ci@^2.0.0: + version "2.0.0" + resolved "https://neo.jfrog.io/neo/api/npm/npm/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + integrity sha1-a8YzQYGBDgS1wis9WJ/cpVAmQEw= + dependencies: + ci-info "^2.0.0" + is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://neo.jfrog.io/neo/api/npm/npm/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -7115,7 +7115,7 @@ is-hexadecimal@^1.0.0: resolved "https://neo.jfrog.io/neo/api/npm/npm/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7" integrity sha1-zDXJdYjaS9Saju3WvECC1E3LI6c= -is-installed-globally@0.3.2: +is-installed-globally@^0.3.2: version "0.3.2" resolved "https://neo.jfrog.io/neo/api/npm/npm/is-installed-globally/-/is-installed-globally-0.3.2.tgz#fd3efa79ee670d1187233182d5b0a1dd00313141" integrity sha1-/T76ee5nDRGHIzGC1bCh3QAxMUE= @@ -7987,7 +7987,7 @@ kleur@^3.0.3: resolved "https://neo.jfrog.io/neo/api/npm/npm/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha1-p5yezIbuHOP6YgbRIWxQHxR/wH4= -lazy-ass@1.6.0: +lazy-ass@^1.6.0: version "1.6.0" resolved "https://neo.jfrog.io/neo/api/npm/npm/lazy-ass/-/lazy-ass-1.6.0.tgz#7999655e8646c17f089fdd187d150d3324d54513" integrity sha1-eZllXoZGwX8In90YfRUNMyTVRRM= @@ -8103,21 +8103,6 @@ listr-verbose-renderer@^0.5.0: date-fns "^1.27.2" figures "^2.0.0" -listr@0.14.3: - version "0.14.3" - resolved "https://neo.jfrog.io/neo/api/npm/npm/listr/-/listr-0.14.3.tgz#2fea909604e434be464c50bddba0d496928fa586" - integrity sha1-L+qQlgTkNL5GTFC926DUlpKPpYY= - dependencies: - "@samverschueren/stream-to-observable" "^0.3.0" - is-observable "^1.1.0" - is-promise "^2.1.0" - is-stream "^1.1.0" - listr-silent-renderer "^1.1.1" - listr-update-renderer "^0.5.0" - listr-verbose-renderer "^0.5.0" - p-map "^2.0.0" - rxjs "^6.3.3" - listr@^0.12.0: version "0.12.0" resolved "https://neo.jfrog.io/neo/api/npm/npm/listr/-/listr-0.12.0.tgz#6bce2c0f5603fa49580ea17cd6a00cc0e5fa451a" @@ -8140,6 +8125,21 @@ listr@^0.12.0: stream-to-observable "^0.1.0" strip-ansi "^3.0.1" +listr@^0.14.3: + version "0.14.3" + resolved "https://neo.jfrog.io/neo/api/npm/npm/listr/-/listr-0.14.3.tgz#2fea909604e434be464c50bddba0d496928fa586" + integrity sha1-L+qQlgTkNL5GTFC926DUlpKPpYY= + dependencies: + "@samverschueren/stream-to-observable" "^0.3.0" + is-observable "^1.1.0" + is-promise "^2.1.0" + is-stream "^1.1.0" + listr-silent-renderer "^1.1.1" + listr-update-renderer "^0.5.0" + listr-verbose-renderer "^0.5.0" + p-map "^2.0.0" + rxjs "^6.3.3" + load-json-file@^2.0.0: version "2.0.0" resolved "https://neo.jfrog.io/neo/api/npm/npm/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" @@ -8272,12 +8272,10 @@ lodash@4.17.19, lodash@^4.17.5: resolved "https://neo.jfrog.io/neo/api/npm/npm/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b" integrity sha1-5I3e2+MLMyF4PFtDAfvTU7weSks= -log-symbols@3.0.0: - version "3.0.0" - resolved "https://neo.jfrog.io/neo/api/npm/npm/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4" - integrity sha1-86CFFqXeqJMzan3uFNGKHP2rd8Q= - dependencies: - chalk "^2.4.2" +lodash@^4.17.19: + version "4.17.20" + resolved "https://neo.jfrog.io/neo/api/npm/npm/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" + integrity sha1-tEqbYpe8tpjxxRo1RaKzs2jVnFI= log-symbols@^1.0.2: version "1.0.2" @@ -8293,6 +8291,13 @@ log-symbols@^2.0.0, log-symbols@^2.1.0: dependencies: chalk "^2.0.1" +log-symbols@^3.0.0: + version "3.0.0" + resolved "https://neo.jfrog.io/neo/api/npm/npm/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4" + integrity sha1-86CFFqXeqJMzan3uFNGKHP2rd8Q= + dependencies: + chalk "^2.4.2" + log-update@^1.0.2: version "1.0.2" resolved "https://neo.jfrog.io/neo/api/npm/npm/log-update/-/log-update-1.0.2.tgz#19929f64c4093d2d2e7075a1dad8af59c296b8d1" @@ -8665,7 +8670,7 @@ minimatch@^3.0.0, minimatch@^3.0.4: dependencies: brace-expansion "^1.1.7" -minimist@1.2.5, minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5: +minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5: version "1.2.5" resolved "https://neo.jfrog.io/neo/api/npm/npm/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI= @@ -8706,10 +8711,10 @@ mockdate@^2.0.5: resolved "https://neo.jfrog.io/neo/api/npm/npm/mockdate/-/mockdate-2.0.5.tgz#70c6abf9ed4b2dae65c81dfc170dd1a5cec53620" integrity sha1-cMar+e1LLa5lyB38Fw3Rpc7FNiA= -moment@2.26.0: - version "2.26.0" - resolved "https://neo.jfrog.io/neo/api/npm/npm/moment/-/moment-2.26.0.tgz#5e1f82c6bafca6e83e808b30c8705eed0dcbd39a" - integrity sha1-Xh+Cxrr8pug+gIswyHBe7Q3L05o= +moment@^2.27.0: + version "2.27.0" + resolved "https://neo.jfrog.io/neo/api/npm/npm/moment/-/moment-2.27.0.tgz#8bff4e3e26a236220dfe3e36de756b6ebaa0105d" + integrity sha1-i/9OPiaiNiIN/j423nVrbrqgEF0= moo@^0.4.3: version "0.4.3" @@ -9232,7 +9237,7 @@ os-tmpdir@~1.0.2: resolved "https://neo.jfrog.io/neo/api/npm/npm/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= -ospath@1.2.2: +ospath@^1.2.2: version "1.2.2" resolved "https://neo.jfrog.io/neo/api/npm/npm/ospath/-/ospath-1.2.2.tgz#1276639774a3f8ef2572f7fe4280e0ea4550c07b" integrity sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs= @@ -10163,7 +10168,7 @@ prettier@^1.7.0: resolved "https://neo.jfrog.io/neo/api/npm/npm/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" integrity sha1-99f1/4qc2HKnvkyhQglZVqYHl8s= -pretty-bytes@5.3.0: +pretty-bytes@^5.3.0: version "5.3.0" resolved "https://neo.jfrog.io/neo/api/npm/npm/pretty-bytes/-/pretty-bytes-5.3.0.tgz#f2849e27db79fb4d6cfe24764fc4134f165989f2" integrity sha1-8oSeJ9t5+01s/iR2T8QTTxZZifI= @@ -10407,7 +10412,7 @@ railroad-diagrams@^1.0.0: resolved "https://neo.jfrog.io/neo/api/npm/npm/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz#eb7e6267548ddedfb899c1b90e57374559cddb7e" integrity sha1-635iZ1SN3t+4mcG5Dlc3RVnN234= -ramda@0.26.1: +ramda@~0.26.1: version "0.26.1" resolved "https://neo.jfrog.io/neo/api/npm/npm/ramda/-/ramda-0.26.1.tgz#8d41351eb8111c55353617fc3bbffad8e4d35d06" integrity sha1-jUE1HrgRHFU1Nhf8O7/62OTTXQY= @@ -10913,7 +10918,7 @@ replace-ext@1.0.0: resolved "https://neo.jfrog.io/neo/api/npm/npm/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" integrity sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs= -request-progress@3.0.0: +request-progress@^3.0.0: version "3.0.0" resolved "https://neo.jfrog.io/neo/api/npm/npm/request-progress/-/request-progress-3.0.0.tgz#4ca754081c7fec63f505e4faa825aa06cd669dbe" integrity sha1-TKdUCBx/7GP1BeT6qCWqBs1mnb4= @@ -12036,13 +12041,6 @@ sugarss@^2.0.0: dependencies: postcss "^7.0.2" -supports-color@7.1.0, supports-color@^7.0.0, supports-color@^7.1.0: - version "7.1.0" - resolved "https://neo.jfrog.io/neo/api/npm/npm/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" - integrity sha1-aOMlkd9z4lrRxLSRCKLsUHliv9E= - dependencies: - has-flag "^4.0.0" - supports-color@^2.0.0: version "2.0.0" resolved "https://neo.jfrog.io/neo/api/npm/npm/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" @@ -12069,6 +12067,13 @@ supports-color@^6.1.0: dependencies: has-flag "^3.0.0" +supports-color@^7.0.0, supports-color@^7.1.0: + version "7.1.0" + resolved "https://neo.jfrog.io/neo/api/npm/npm/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" + integrity sha1-aOMlkd9z4lrRxLSRCKLsUHliv9E= + dependencies: + has-flag "^4.0.0" + supports-hyperlinks@^2.0.0: version "2.1.0" resolved "https://neo.jfrog.io/neo/api/npm/npm/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz#f663df252af5f37c5d49bbd7eeefa9e0b9e59e47" @@ -12203,13 +12208,6 @@ timers-browserify@^2.0.4: dependencies: setimmediate "^1.0.4" -tmp@0.1.0: - version "0.1.0" - resolved "https://neo.jfrog.io/neo/api/npm/npm/tmp/-/tmp-0.1.0.tgz#ee434a4e22543082e294ba6201dcc6eafefa2877" - integrity sha1-7kNKTiJUMILilLpiAdzG6v76KHc= - dependencies: - rimraf "^2.6.3" - tmp@^0.0.33: version "0.0.33" resolved "https://neo.jfrog.io/neo/api/npm/npm/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -12217,6 +12215,13 @@ tmp@^0.0.33: dependencies: os-tmpdir "~1.0.2" +tmp@~0.1.0: + version "0.1.0" + resolved "https://neo.jfrog.io/neo/api/npm/npm/tmp/-/tmp-0.1.0.tgz#ee434a4e22543082e294ba6201dcc6eafefa2877" + integrity sha1-7kNKTiJUMILilLpiAdzG6v76KHc= + dependencies: + rimraf "^2.6.3" + tmpl@1.0.x: version "1.0.4" resolved "https://neo.jfrog.io/neo/api/npm/npm/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" @@ -12637,7 +12642,7 @@ unset-value@^1.0.0: has-value "^0.3.1" isobject "^3.0.0" -untildify@4.0.0: +untildify@^4.0.0: version "4.0.0" resolved "https://neo.jfrog.io/neo/api/npm/npm/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" integrity sha1-K8lHuVNlJIfkYAlJ+wkeOujNkZs= @@ -12681,7 +12686,7 @@ url-parse@^1.1.9, url-parse@^1.4.3: querystringify "^2.1.1" requires-port "^1.0.0" -url@0.11.0, url@^0.11.0: +url@^0.11.0: version "0.11.0" resolved "https://neo.jfrog.io/neo/api/npm/npm/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= @@ -13326,7 +13331,7 @@ yargs@^15.3.1: y18n "^4.0.0" yargs-parser "^18.1.1" -yauzl@2.10.0, yauzl@^2.10.0: +yauzl@^2.10.0: version "2.10.0" resolved "https://neo.jfrog.io/neo/api/npm/npm/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=