mirror of
https://github.com/responsively-org/responsively-app
synced 2024-09-20 22:31:59 +00:00
Add Page Navigator
This commit is contained in:
parent
2e80b227c7
commit
dd7103b40f
11 changed files with 601 additions and 9 deletions
|
@ -17,6 +17,7 @@ import {
|
|||
ADDRESS_CHANGE,
|
||||
STOP_LOADING,
|
||||
TOGGLE_DEVICE_DESIGN_MODE_STATE,
|
||||
PAGE_NAVIGATOR_CHANGED,
|
||||
} from '../constants/pubsubEvents';
|
||||
import {getBounds, getDefaultDevToolsWindowSize} from '../reducers/browser';
|
||||
import {DEVTOOLS_MODES} from '../constants/previewerLayouts';
|
||||
|
@ -53,6 +54,8 @@ export const SET_HEADER_VISIBILITY = 'SET_HEADER_VISIBILITY';
|
|||
export const SET_LEFT_PANE_VISIBILITY = 'SET_LEFT_PANE_VISIBILITY';
|
||||
export const SET_HOVERED_LINK = 'SET_HOVERED_LINK';
|
||||
export const SET_STARTUP_PAGE = 'SET_STARTUP_PAGE';
|
||||
export const UPDATE_PAGE_NAVIGATOR = 'UPDATE_PAGE_NAVIGATOR';
|
||||
export const TOGGLE_PAGE_NAVIGATOR = 'TOGGLE_PAGE_NAVIGATOR';
|
||||
|
||||
export function newAddress(address) {
|
||||
return {
|
||||
|
@ -942,3 +945,75 @@ export function changeStartupPage(value: 'BLANK' | 'HOME') {
|
|||
dispatch(setStartupPage(value));
|
||||
};
|
||||
}
|
||||
|
||||
export function updatePageNavigator(selector, index) {
|
||||
return {
|
||||
type: UPDATE_PAGE_NAVIGATOR,
|
||||
selector,
|
||||
index,
|
||||
};
|
||||
}
|
||||
|
||||
export function resetPageNavigator() {
|
||||
return (dispatch: Dispatch, getState: RootStateType) => {
|
||||
const {
|
||||
browser: {
|
||||
pageNavigator: {selector, index},
|
||||
},
|
||||
} = getState();
|
||||
if (selector == null && index == null) return;
|
||||
dispatch(updatePageNavigator(null, null));
|
||||
};
|
||||
}
|
||||
|
||||
export function navigateToNextSelector(selector) {
|
||||
return (dispatch: Dispatch, getState: RootStateType) => {
|
||||
if ((selector || '').length === 0) return;
|
||||
|
||||
const {
|
||||
browser: {pageNavigator},
|
||||
} = getState();
|
||||
|
||||
let index = pageNavigator.index;
|
||||
|
||||
if (pageNavigator.selector !== selector || index == null) index = -1;
|
||||
|
||||
pubsub.publish(PAGE_NAVIGATOR_CHANGED, [
|
||||
{selector, index: (index || 0) + 1},
|
||||
]);
|
||||
dispatch(updatePageNavigator(selector, (index || 0) + 1));
|
||||
};
|
||||
}
|
||||
|
||||
export function navigateToPrevSelector(selector) {
|
||||
return (dispatch: Dispatch, getState: RootStateType) => {
|
||||
if ((selector || '').length === 0) return;
|
||||
|
||||
const {
|
||||
browser: {pageNavigator},
|
||||
} = getState();
|
||||
|
||||
let index = pageNavigator.index;
|
||||
|
||||
if (pageNavigator.selector !== selector || index == null) index = 0;
|
||||
|
||||
pubsub.publish(PAGE_NAVIGATOR_CHANGED, [
|
||||
{selector, index: (index || 0) - 1},
|
||||
]);
|
||||
dispatch(updatePageNavigator(selector, (index || 0) - 1));
|
||||
};
|
||||
}
|
||||
|
||||
export function setPageNavigatorActive(active) {
|
||||
return {
|
||||
type: TOGGLE_PAGE_NAVIGATOR,
|
||||
active,
|
||||
};
|
||||
}
|
||||
|
||||
export function onChangePageNavigatorActive(active) {
|
||||
return (dispatch: Dispatch, getState: RootStateType) => {
|
||||
pubsub.publish(TOGGLE_EVENT_MIRRORING_ALL_DEVICES, [{status: !active}]);
|
||||
dispatch(setPageNavigatorActive(active));
|
||||
};
|
||||
}
|
||||
|
|
|
@ -17,6 +17,7 @@ import {getDeviceIcon} from '../../utils/iconUtils';
|
|||
import useStyes from './useStyles';
|
||||
import LiveCssEditor from '../LiveCssEditor';
|
||||
import LinkHoverDisplayContainer from '../../containers/LinkHoverDisplayContainer';
|
||||
import PageNavigatorContainer from '../../containers/PageNavigatorContainer';
|
||||
|
||||
export default function DevicesPreviewer(props) {
|
||||
const {
|
||||
|
@ -144,6 +145,7 @@ export default function DevicesPreviewer(props) {
|
|||
CSSEditor.position === CSS_EDITOR_MODES.BOTTOM) &&
|
||||
editor}
|
||||
<LinkHoverDisplayContainer />
|
||||
<PageNavigatorContainer />
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
|
229
desktop-app/app/components/PageNavigator/index.js
Normal file
229
desktop-app/app/components/PageNavigator/index.js
Normal file
|
@ -0,0 +1,229 @@
|
|||
import React, {useEffect, useState, useRef} from 'react';
|
||||
import cx from 'classnames';
|
||||
import {motion} from 'framer-motion';
|
||||
import DownIcon from '@material-ui/icons/KeyboardArrowDown';
|
||||
import UpIcon from '@material-ui/icons/KeyboardArrowUp';
|
||||
import CloseIcon from '@material-ui/icons/Close';
|
||||
import ReplayIcon from '@material-ui/icons/Replay';
|
||||
import {Tooltip} from '@material-ui/core';
|
||||
import {ipcRenderer} from 'electron';
|
||||
import {debounce} from 'lodash';
|
||||
import {JSDOM} from 'jsdom';
|
||||
import {makeStyles, useTheme} from '@material-ui/core/styles';
|
||||
|
||||
const {document} = new JSDOM('').window;
|
||||
const queryCheck = s => document.createDocumentFragment().querySelector(s);
|
||||
|
||||
const isSelectorValid = selector => {
|
||||
try {
|
||||
queryCheck(selector);
|
||||
} catch {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
};
|
||||
|
||||
const useStyles = makeStyles(theme => ({
|
||||
container: {
|
||||
height: 45,
|
||||
position: 'absolute',
|
||||
top: 50,
|
||||
right: 25,
|
||||
display: 'flex',
|
||||
backgroundColor: theme.palette.background.l2,
|
||||
borderRadius: 3,
|
||||
wordWrap: 'break-word',
|
||||
color: theme.palette.mode({light: '#000', dark: '#fff'}),
|
||||
boxShadow: `0 ${theme.palette.mode({
|
||||
light: '0px',
|
||||
dark: '3px',
|
||||
})} 5px rgba(0, 0, 0, 0.35)`,
|
||||
padding: 5,
|
||||
zIndex: theme.zIndex.tooltip,
|
||||
},
|
||||
textbox: {
|
||||
border: 'none',
|
||||
outline: 'none',
|
||||
borderColor: 'transparent',
|
||||
width: 250,
|
||||
height: '100%',
|
||||
background: 'none',
|
||||
color: theme.palette.mode({light: '#000', dark: '#fff'}),
|
||||
fontFamily: "'Consolas', 'Courier New', monospace",
|
||||
whiteSpace: 'pre',
|
||||
},
|
||||
iconsContainer: {
|
||||
display: 'flex',
|
||||
justifyContent: 'space-between',
|
||||
alignItems: 'center',
|
||||
},
|
||||
separator: {
|
||||
borderLeft: '1px solid #636363',
|
||||
margin: 3,
|
||||
},
|
||||
icon: {
|
||||
cursor: 'pointer',
|
||||
width: 30,
|
||||
padding: 5,
|
||||
color: theme.palette.mode({light: '#636363', dark: '#fffc'}),
|
||||
'&:hover': {
|
||||
'& svg': {
|
||||
backgroundColor: theme.palette.primary.light,
|
||||
color: '#fff',
|
||||
},
|
||||
},
|
||||
},
|
||||
btn: {
|
||||
cursor: 'pointer',
|
||||
color: theme.palette.mode({light: '#636363', dark: '#fffc'}),
|
||||
'&:hover': {
|
||||
'& div': {
|
||||
backgroundColor: theme.palette.primary.light,
|
||||
color: '#fff',
|
||||
},
|
||||
},
|
||||
|
||||
'& div': {
|
||||
padding: 5,
|
||||
fontFamily: "'Consolas', 'Courier New', monospace",
|
||||
fontSize: 12,
|
||||
},
|
||||
},
|
||||
btnActive: {
|
||||
'& div': {
|
||||
backgroundColor: theme.palette.primary.light,
|
||||
color: '#fff',
|
||||
},
|
||||
},
|
||||
}));
|
||||
|
||||
const PageNavigator = props => {
|
||||
const [selector, setSelector] = useState(props.selector || '');
|
||||
const inputRef = React.createRef();
|
||||
const styles = useStyles();
|
||||
|
||||
useEffect(() => {
|
||||
if (props.active === true) {
|
||||
document.addEventListener('keydown', _handleKeyDown);
|
||||
inputRef.current.focus();
|
||||
} else if (props.active === false) {
|
||||
document.removeEventListener('keydown', _handleKeyDown);
|
||||
}
|
||||
return () => document.removeEventListener('keydown', _handleKeyDown);
|
||||
}, [props.active, inputRef.current]);
|
||||
|
||||
const _handleChange = e => {
|
||||
setSelector(e.target.value);
|
||||
};
|
||||
|
||||
const _navigateNext = debounce(() => {
|
||||
if (!isSelectorValid(selector)) props.resetPageNavigator();
|
||||
else props.navigateToNextSelector(selector);
|
||||
}, 25);
|
||||
|
||||
const _navigatePrev = debounce(() => {
|
||||
if (!isSelectorValid(selector)) props.resetPageNavigator();
|
||||
else props.navigateToPrevSelector(selector);
|
||||
}, 25);
|
||||
|
||||
const resetPageNavigator = () => {
|
||||
setSelector('');
|
||||
props.resetPageNavigator();
|
||||
};
|
||||
|
||||
const _closePageNavigator = () => {
|
||||
props.onChangePageNavigatorActive(false);
|
||||
};
|
||||
|
||||
const _handleInputKeyDown = e => {
|
||||
if (e.shiftKey && e.key === 'Enter') {
|
||||
_navigatePrev();
|
||||
} else if (e.key === 'Enter') {
|
||||
_navigateNext();
|
||||
} else if (e.key === 'Escape') {
|
||||
_closePageNavigator();
|
||||
}
|
||||
};
|
||||
|
||||
const _handleKeyDown = e => {
|
||||
if (e.key === 'Escape') {
|
||||
_closePageNavigator();
|
||||
}
|
||||
};
|
||||
|
||||
if (!props.active) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return (
|
||||
<motion.div
|
||||
className={styles.container}
|
||||
initial={{y: props.active ? -70 : 0, scale: 1}}
|
||||
animate={{y: props.active ? 0 : -70, scale: 1}}
|
||||
transition={{
|
||||
type: 'spring',
|
||||
stiffness: 260,
|
||||
damping: 20,
|
||||
delay: 0,
|
||||
}}
|
||||
>
|
||||
<div className={styles.iconsContainer}>
|
||||
<span
|
||||
className={cx(styles.btn, {
|
||||
[styles.btnActive]: selector === 'section',
|
||||
})}
|
||||
onClick={() => setSelector('section')}
|
||||
>
|
||||
<div>section</div>
|
||||
</span>
|
||||
<span
|
||||
className={cx(styles.btn, {[styles.btnActive]: selector === 'h1'})}
|
||||
onClick={() => setSelector('h1')}
|
||||
>
|
||||
<div>h1</div>
|
||||
</span>
|
||||
<span
|
||||
className={cx(styles.btn, {[styles.btnActive]: selector === 'h2'})}
|
||||
onClick={() => setSelector('h2')}
|
||||
>
|
||||
<div>h2</div>
|
||||
</span>
|
||||
<span
|
||||
className={cx(styles.btn, {[styles.btnActive]: selector === 'h3'})}
|
||||
onClick={() => setSelector('h3')}
|
||||
>
|
||||
<div>h3</div>
|
||||
</span>
|
||||
</div>
|
||||
<div className={styles.separator} />
|
||||
<div className={styles.textboxContainer}>
|
||||
<input
|
||||
ref={inputRef}
|
||||
className={styles.textbox}
|
||||
type="text"
|
||||
value={selector || ''}
|
||||
onChange={_handleChange}
|
||||
onKeyDown={_handleInputKeyDown}
|
||||
placeholder="css selector"
|
||||
/>
|
||||
</div>
|
||||
<div className={styles.separator} />
|
||||
<div className={styles.iconsContainer}>
|
||||
<span className={styles.icon} onClick={_navigatePrev}>
|
||||
<UpIcon />
|
||||
</span>
|
||||
<span className={styles.icon} onClick={_navigateNext}>
|
||||
<DownIcon />
|
||||
</span>
|
||||
<span className={styles.icon} onClick={resetPageNavigator}>
|
||||
<ReplayIcon style={{height: 25, width: 25, padding: 3}} />
|
||||
</span>
|
||||
<span className={styles.icon} onClick={_closePageNavigator}>
|
||||
<CloseIcon style={{height: 25, width: 25, padding: 3}} />
|
||||
</span>
|
||||
</div>
|
||||
</motion.div>
|
||||
);
|
||||
};
|
||||
|
||||
export default PageNavigator;
|
|
@ -20,6 +20,7 @@ import ToggleTouch from '../ToggleTouch';
|
|||
import Muted from '../icons/Muted';
|
||||
import CSSEditor from '../icons/CSSEditor';
|
||||
import styles from '../WebView/style.module.css';
|
||||
import PageNavigatorIcon from '../icons/PageNavigator';
|
||||
|
||||
const useStyles = makeStyles({
|
||||
container: {
|
||||
|
@ -48,6 +49,7 @@ const ScrollControls = ({
|
|||
toggleCSSEditor,
|
||||
onAllDevicesMutedChange,
|
||||
onToggleAllDeviceDesignMode,
|
||||
onChangePageNavigatorActive,
|
||||
}) => {
|
||||
const [eventMirroring, setEventMirroring] = useState(true);
|
||||
const initialRender = useRef(true);
|
||||
|
@ -120,6 +122,22 @@ const ScrollControls = ({
|
|||
</div>
|
||||
</Tooltip>
|
||||
</Grid>
|
||||
<Grid
|
||||
item
|
||||
className={cx(commonClasses.icon, {
|
||||
[commonClasses.iconSelected]: browser.pageNavigator.active,
|
||||
})}
|
||||
>
|
||||
<Tooltip title="Page Navigator">
|
||||
<div
|
||||
onClick={() => {
|
||||
onChangePageNavigatorActive(!browser.pageNavigator.active);
|
||||
}}
|
||||
>
|
||||
<PageNavigatorIcon {...iconProps} height={22} width={22} />
|
||||
</div>
|
||||
</Tooltip>
|
||||
</Grid>
|
||||
<Grid item>
|
||||
<VerticalRuler />
|
||||
</Grid>
|
||||
|
|
|
@ -30,6 +30,7 @@ import {
|
|||
APPLY_CSS,
|
||||
TOGGLE_DEVICE_DESIGN_MODE_STATE,
|
||||
TOGGLE_EVENT_MIRRORING_ALL_DEVICES,
|
||||
PAGE_NAVIGATOR_CHANGED,
|
||||
} from '../../constants/pubsubEvents';
|
||||
import {CAPABILITIES} from '../../constants/devices';
|
||||
import {DESIGN_MODE_JS_VALUES} from '../../constants/values';
|
||||
|
@ -179,6 +180,10 @@ class WebView extends Component {
|
|||
)
|
||||
);
|
||||
|
||||
this.subscriptions.push(
|
||||
pubsub.subscribe(PAGE_NAVIGATOR_CHANGED, this.selectorNavigationChanged)
|
||||
);
|
||||
|
||||
this.webviewRef.current.addEventListener('dom-ready', () => {
|
||||
this.initEventTriggers(this.webviewRef.current);
|
||||
this.dbg = this.getWebContents().debugger;
|
||||
|
@ -347,6 +352,23 @@ class WebView extends Component {
|
|||
}
|
||||
};
|
||||
|
||||
selectorNavigationChanged = ({selector, index}) => {
|
||||
if (selector == null || index == null) return;
|
||||
this.webviewRef.current
|
||||
.executeJavaScript(
|
||||
`{
|
||||
var elements = document.querySelectorAll('${selector}');
|
||||
var len = elements.length;
|
||||
if (len !== 0) {
|
||||
var idx = ((${index} % len) + len) % len;
|
||||
var el = elements[idx];
|
||||
el.scrollIntoView(true);
|
||||
}
|
||||
}`
|
||||
)
|
||||
.catch(captureOnSentry);
|
||||
};
|
||||
|
||||
processNavigationBackEvent = () => {
|
||||
this.webviewRef.current.goBack();
|
||||
};
|
||||
|
|
21
desktop-app/app/components/icons/PageNavigator.js
Normal file
21
desktop-app/app/components/icons/PageNavigator.js
Normal file
|
@ -0,0 +1,21 @@
|
|||
import React, {Fragment} from 'react';
|
||||
|
||||
export default ({width, height, color, padding, margin, style}) => (
|
||||
<Fragment>
|
||||
<svg
|
||||
viewBox="0 0 24 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlnsXlink="http://www.w3.org/1999/xlink"
|
||||
width={width}
|
||||
height={height}
|
||||
fill={color}
|
||||
style={{padding, margin, ...style}}
|
||||
className="navigatorIcon"
|
||||
>
|
||||
<path
|
||||
d="M19.31 18.9c.44-.69.69-1.52.69-2.4c0-2.5-2-4.5-4.5-4.5S11 14 11 16.5s2 4.5 4.5 4.5c.87 0 1.69-.25 2.38-.68L21 23.39L22.39 22l-3.08-3.1m-3.81.1a2.5 2.5 0 0 1 0-5a2.5 2.5 0 0 1 0 5M21 9h-2V7h2v2m0-4h-2V3h1c.55 0 1 .45 1 1v1m-2 6.03V11h2v2h-.03A6.608 6.608 0 0 0 19 11.03M17 5h-2V3h2v2m-4 0h-2V3h2v2M3 7h2v2H3V7m4 12h2v2H7v-2m-4-8h2v2H3v-2m1-8h1v2H3V4c0-.55.45-1 1-1m5 2H7V3h2v2M3 19h2v2H4c-.55 0-1-.45-1-1v-1m0-4h2v2H3v-2z"
|
||||
fill="currentColor"
|
||||
/>
|
||||
</svg>
|
||||
</Fragment>
|
||||
);
|
|
@ -29,3 +29,5 @@ export const PERMISSION_MANAGEMENT_PREFERENCE_CHANGED =
|
|||
|
||||
export const TOGGLE_DEVICE_DESIGN_MODE_STATE =
|
||||
'TOGGLE_DEVICE_DESIGN_MODE_STATE';
|
||||
|
||||
export const PAGE_NAVIGATOR_CHANGED = 'PAGE_NAVIGATOR_CHANGED';
|
||||
|
|
20
desktop-app/app/containers/PageNavigatorContainer/index.js
Normal file
20
desktop-app/app/containers/PageNavigatorContainer/index.js
Normal file
|
@ -0,0 +1,20 @@
|
|||
// @flow
|
||||
import React from 'react';
|
||||
import {connect} from 'react-redux';
|
||||
import {bindActionCreators} from 'redux';
|
||||
|
||||
import * as BrowserActions from '../../actions/browser';
|
||||
import PageNavigator from '../../components/PageNavigator';
|
||||
|
||||
function mapStateToProps(state) {
|
||||
return {
|
||||
active: !!state.browser.pageNavigator.active,
|
||||
selector: state.browser.pageNavigator.selector,
|
||||
};
|
||||
}
|
||||
|
||||
function mapDispatchToProps(dispatch) {
|
||||
return bindActionCreators(BrowserActions, dispatch);
|
||||
}
|
||||
|
||||
export default connect(mapStateToProps, mapDispatchToProps)(PageNavigator);
|
|
@ -32,6 +32,8 @@ import {
|
|||
SET_LEFT_PANE_VISIBILITY,
|
||||
SET_HOVERED_LINK,
|
||||
SET_STARTUP_PAGE,
|
||||
UPDATE_PAGE_NAVIGATOR,
|
||||
TOGGLE_PAGE_NAVIGATOR,
|
||||
} from '../actions/browser';
|
||||
import {
|
||||
CHANGE_ACTIVE_THROTTLING_PROFILE,
|
||||
|
@ -179,6 +181,12 @@ type CSSEditorStateType = {
|
|||
content: String,
|
||||
};
|
||||
|
||||
type PageNavigator = {
|
||||
active: boolean,
|
||||
selector: string,
|
||||
index: number | null,
|
||||
};
|
||||
|
||||
export type BrowserStateType = {
|
||||
devices: Array<Device>,
|
||||
homepage: string,
|
||||
|
@ -201,6 +209,7 @@ export type BrowserStateType = {
|
|||
allDevicesInDesignMode: boolean,
|
||||
isHeaderVisible: boolean,
|
||||
isLeftPaneVisible: boolean,
|
||||
pageNavigator: PageNavigator,
|
||||
};
|
||||
|
||||
let _activeDevices = null;
|
||||
|
@ -365,6 +374,7 @@ export default function browser(
|
|||
isHeaderVisible: true,
|
||||
isLeftPaneVisible: true,
|
||||
hoveredLink: '',
|
||||
pageNavigator: {selector: null, index: null, active: false},
|
||||
},
|
||||
action: Action
|
||||
) {
|
||||
|
@ -606,6 +616,17 @@ export default function browser(
|
|||
case SET_STARTUP_PAGE:
|
||||
saveStartupPage(action.value);
|
||||
return {...state};
|
||||
case UPDATE_PAGE_NAVIGATOR:
|
||||
state.pageNavigator.selector = action.selector;
|
||||
state.pageNavigator.index = action.index;
|
||||
return {
|
||||
...state,
|
||||
};
|
||||
case TOGGLE_PAGE_NAVIGATOR:
|
||||
state.pageNavigator.active = action.active;
|
||||
return {
|
||||
...state,
|
||||
};
|
||||
default:
|
||||
return state;
|
||||
}
|
||||
|
|
|
@ -306,6 +306,7 @@
|
|||
"electron-util": "^0.14.2",
|
||||
"framer-motion": "^2.2.0",
|
||||
"jimp": "^0.12.1",
|
||||
"jsdom": "^16.5.3",
|
||||
"lodash": "^4.17.19",
|
||||
"merge-img": "^2.1.3",
|
||||
"mousetrap": "^1.6.5",
|
||||
|
|
|
@ -2359,6 +2359,11 @@ abab@^2.0.0:
|
|||
resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.3.tgz#623e2075e02eb2d3f2475e49f99c91846467907a"
|
||||
integrity sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg==
|
||||
|
||||
abab@^2.0.3, abab@^2.0.5:
|
||||
version "2.0.5"
|
||||
resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a"
|
||||
integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==
|
||||
|
||||
abbrev@1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
|
||||
|
@ -2385,6 +2390,14 @@ acorn-globals@^4.1.0:
|
|||
acorn "^6.0.1"
|
||||
acorn-walk "^6.0.1"
|
||||
|
||||
acorn-globals@^6.0.0:
|
||||
version "6.0.0"
|
||||
resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45"
|
||||
integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==
|
||||
dependencies:
|
||||
acorn "^7.1.1"
|
||||
acorn-walk "^7.1.1"
|
||||
|
||||
acorn-hammerhead@^0.3.0:
|
||||
version "0.3.0"
|
||||
resolved "https://registry.yarnpkg.com/acorn-hammerhead/-/acorn-hammerhead-0.3.0.tgz#2f83730f15e8450169c3dfd88af3ea9405ea973d"
|
||||
|
@ -2422,6 +2435,11 @@ acorn@^7.1.1:
|
|||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.3.1.tgz#85010754db53c3fbaf3b9ea3e083aa5c5d147ffd"
|
||||
integrity sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA==
|
||||
|
||||
acorn@^8.1.0:
|
||||
version "8.2.4"
|
||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.2.4.tgz#caba24b08185c3b56e3168e97d15ed17f4d31fd0"
|
||||
integrity sha512-Ibt84YwBDDA890eDiDCEqcbwvHlBvzzDkU2cGBBDDI1QWT12jTiXIOn2CIw5KK4i6N5Z2HUxwYjzriDyqaqqZg==
|
||||
|
||||
address@^1.0.1:
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6"
|
||||
|
@ -5627,11 +5645,16 @@ csso@^4.0.2:
|
|||
dependencies:
|
||||
css-tree "1.0.0-alpha.39"
|
||||
|
||||
cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0":
|
||||
cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0", cssom@~0.3.6:
|
||||
version "0.3.8"
|
||||
resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a"
|
||||
integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==
|
||||
|
||||
cssom@^0.4.4:
|
||||
version "0.4.4"
|
||||
resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10"
|
||||
integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==
|
||||
|
||||
cssstyle@^1.0.0:
|
||||
version "1.4.0"
|
||||
resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.4.0.tgz#9d31328229d3c565c61e586b02041a28fccdccf1"
|
||||
|
@ -5639,6 +5662,13 @@ cssstyle@^1.0.0:
|
|||
dependencies:
|
||||
cssom "0.3.x"
|
||||
|
||||
cssstyle@^2.3.0:
|
||||
version "2.3.0"
|
||||
resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852"
|
||||
integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==
|
||||
dependencies:
|
||||
cssom "~0.3.6"
|
||||
|
||||
csstype@^2.2.0, csstype@^2.5.2, csstype@^2.5.7, csstype@^2.6.5, csstype@^2.6.7:
|
||||
version "2.6.11"
|
||||
resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.11.tgz#452f4d024149ecf260a852b025e36562a253ffc5"
|
||||
|
@ -5680,6 +5710,15 @@ data-urls@^1.0.0:
|
|||
whatwg-mimetype "^2.2.0"
|
||||
whatwg-url "^7.0.0"
|
||||
|
||||
data-urls@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b"
|
||||
integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==
|
||||
dependencies:
|
||||
abab "^2.0.3"
|
||||
whatwg-mimetype "^2.3.0"
|
||||
whatwg-url "^8.0.0"
|
||||
|
||||
date-fns@^2.0.1:
|
||||
version "2.15.0"
|
||||
resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.15.0.tgz#424de6b3778e4e69d3ff27046ec136af58ae5d5f"
|
||||
|
@ -5726,6 +5765,11 @@ decamelize@^1.1.0, decamelize@^1.1.1, decamelize@^1.2.0:
|
|||
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
|
||||
integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
|
||||
|
||||
decimal.js@^10.2.1:
|
||||
version "10.2.1"
|
||||
resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.2.1.tgz#238ae7b0f0c793d3e3cea410108b35a2c01426a3"
|
||||
integrity sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw==
|
||||
|
||||
decode-uri-component@^0.2.0:
|
||||
version "0.2.0"
|
||||
resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
|
||||
|
@ -6108,6 +6152,13 @@ domexception@^1.0.1:
|
|||
dependencies:
|
||||
webidl-conversions "^4.0.2"
|
||||
|
||||
domexception@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304"
|
||||
integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==
|
||||
dependencies:
|
||||
webidl-conversions "^5.0.0"
|
||||
|
||||
domhandler@^2.3.0:
|
||||
version "2.4.2"
|
||||
resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803"
|
||||
|
@ -6710,6 +6761,18 @@ escodegen@^1.9.1:
|
|||
optionalDependencies:
|
||||
source-map "~0.6.1"
|
||||
|
||||
escodegen@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd"
|
||||
integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==
|
||||
dependencies:
|
||||
esprima "^4.0.1"
|
||||
estraverse "^5.2.0"
|
||||
esutils "^2.0.2"
|
||||
optionator "^0.8.1"
|
||||
optionalDependencies:
|
||||
source-map "~0.6.1"
|
||||
|
||||
eslint-config-airbnb-base@^13.2.0:
|
||||
version "13.2.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-13.2.0.tgz#f6ea81459ff4dec2dda200c35f1d8f7419d57943"
|
||||
|
@ -6991,6 +7054,11 @@ estraverse@^5.1.0:
|
|||
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.1.0.tgz#374309d39fd935ae500e7b92e8a6b4c720e59642"
|
||||
integrity sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw==
|
||||
|
||||
estraverse@^5.2.0:
|
||||
version "5.2.0"
|
||||
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880"
|
||||
integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==
|
||||
|
||||
esutils@^2.0.2:
|
||||
version "2.0.3"
|
||||
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
|
||||
|
@ -8452,6 +8520,13 @@ html-encoding-sniffer@^1.0.2:
|
|||
dependencies:
|
||||
whatwg-encoding "^1.0.1"
|
||||
|
||||
html-encoding-sniffer@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3"
|
||||
integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==
|
||||
dependencies:
|
||||
whatwg-encoding "^1.0.5"
|
||||
|
||||
html-entities@^1.3.1:
|
||||
version "1.3.1"
|
||||
resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.3.1.tgz#fb9a1a4b5b14c5daba82d3e34c6ae4fe701a0e44"
|
||||
|
@ -9270,6 +9345,11 @@ is-posix-bracket@^0.1.0:
|
|||
resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4"
|
||||
integrity sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=
|
||||
|
||||
is-potential-custom-element-name@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5"
|
||||
integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==
|
||||
|
||||
is-primitive@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575"
|
||||
|
@ -9985,6 +10065,38 @@ jsdom@^11.5.1:
|
|||
ws "^5.2.0"
|
||||
xml-name-validator "^3.0.0"
|
||||
|
||||
jsdom@^16.5.3:
|
||||
version "16.5.3"
|
||||
resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.5.3.tgz#13a755b3950eb938b4482c407238ddf16f0d2136"
|
||||
integrity sha512-Qj1H+PEvUsOtdPJ056ewXM4UJPCi4hhLA8wpiz9F2YvsRBhuFsXxtrIFAgGBDynQA9isAMGE91PfUYbdMPXuTA==
|
||||
dependencies:
|
||||
abab "^2.0.5"
|
||||
acorn "^8.1.0"
|
||||
acorn-globals "^6.0.0"
|
||||
cssom "^0.4.4"
|
||||
cssstyle "^2.3.0"
|
||||
data-urls "^2.0.0"
|
||||
decimal.js "^10.2.1"
|
||||
domexception "^2.0.1"
|
||||
escodegen "^2.0.0"
|
||||
html-encoding-sniffer "^2.0.1"
|
||||
is-potential-custom-element-name "^1.0.0"
|
||||
nwsapi "^2.2.0"
|
||||
parse5 "6.0.1"
|
||||
request "^2.88.2"
|
||||
request-promise-native "^1.0.9"
|
||||
saxes "^5.0.1"
|
||||
symbol-tree "^3.2.4"
|
||||
tough-cookie "^4.0.0"
|
||||
w3c-hr-time "^1.0.2"
|
||||
w3c-xmlserializer "^2.0.0"
|
||||
webidl-conversions "^6.1.0"
|
||||
whatwg-encoding "^1.0.5"
|
||||
whatwg-mimetype "^2.3.0"
|
||||
whatwg-url "^8.5.0"
|
||||
ws "^7.4.4"
|
||||
xml-name-validator "^3.0.0"
|
||||
|
||||
jsesc@^1.3.0:
|
||||
version "1.3.0"
|
||||
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b"
|
||||
|
@ -10525,6 +10637,11 @@ lodash.uniq@^4.5.0:
|
|||
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b"
|
||||
integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==
|
||||
|
||||
lodash@^4.7.0:
|
||||
version "4.17.21"
|
||||
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
|
||||
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
|
||||
|
||||
log-symbols@^2.0.0, log-symbols@^2.2.0:
|
||||
version "2.2.0"
|
||||
resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a"
|
||||
|
@ -11501,7 +11618,7 @@ number-is-nan@^1.0.0:
|
|||
resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
|
||||
integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=
|
||||
|
||||
nwsapi@^2.0.7:
|
||||
nwsapi@^2.0.7, nwsapi@^2.2.0:
|
||||
version "2.2.0"
|
||||
resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7"
|
||||
integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==
|
||||
|
@ -12024,6 +12141,11 @@ parse5@4.0.0:
|
|||
resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608"
|
||||
integrity sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==
|
||||
|
||||
parse5@6.0.1:
|
||||
version "6.0.1"
|
||||
resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b"
|
||||
integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==
|
||||
|
||||
parse5@^1.5.0:
|
||||
version "1.5.1"
|
||||
resolved "https://registry.yarnpkg.com/parse5/-/parse5-1.5.1.tgz#9b7f3b0de32be78dc2401b17573ccaf0f6f59d94"
|
||||
|
@ -12854,7 +12976,7 @@ pseudomap@^1.0.2:
|
|||
resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
|
||||
integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM=
|
||||
|
||||
psl@^1.1.28:
|
||||
psl@^1.1.28, psl@^1.1.33:
|
||||
version "1.8.0"
|
||||
resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24"
|
||||
integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==
|
||||
|
@ -13669,7 +13791,7 @@ request-promise-core@1.1.4:
|
|||
dependencies:
|
||||
lodash "^4.17.19"
|
||||
|
||||
request-promise-native@^1.0.5:
|
||||
request-promise-native@^1.0.5, request-promise-native@^1.0.9:
|
||||
version "1.0.9"
|
||||
resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.9.tgz#e407120526a5efdc9a39b28a5679bf47b9d9dc28"
|
||||
integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==
|
||||
|
@ -14036,6 +14158,13 @@ sax@>=0.6.0, sax@^1.2.4, sax@~1.2.4:
|
|||
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
|
||||
integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
|
||||
|
||||
saxes@^5.0.1:
|
||||
version "5.0.1"
|
||||
resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d"
|
||||
integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==
|
||||
dependencies:
|
||||
xmlchars "^2.2.0"
|
||||
|
||||
scheduler@^0.19.1:
|
||||
version "0.19.1"
|
||||
resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196"
|
||||
|
@ -15184,7 +15313,7 @@ symbol-observable@^1.2.0:
|
|||
resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804"
|
||||
integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==
|
||||
|
||||
symbol-tree@^3.2.2:
|
||||
symbol-tree@^3.2.2, symbol-tree@^3.2.4:
|
||||
version "3.2.4"
|
||||
resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2"
|
||||
integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==
|
||||
|
@ -15700,6 +15829,15 @@ tough-cookie@^2.3.3, tough-cookie@^2.3.4, tough-cookie@~2.5.0:
|
|||
psl "^1.1.28"
|
||||
punycode "^2.1.1"
|
||||
|
||||
tough-cookie@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4"
|
||||
integrity sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==
|
||||
dependencies:
|
||||
psl "^1.1.33"
|
||||
punycode "^2.1.1"
|
||||
universalify "^0.1.2"
|
||||
|
||||
tr46@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09"
|
||||
|
@ -15707,6 +15845,13 @@ tr46@^1.0.1:
|
|||
dependencies:
|
||||
punycode "^2.1.0"
|
||||
|
||||
tr46@^2.0.2:
|
||||
version "2.0.2"
|
||||
resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.0.2.tgz#03273586def1595ae08fedb38d7733cee91d2479"
|
||||
integrity sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg==
|
||||
dependencies:
|
||||
punycode "^2.1.1"
|
||||
|
||||
"traverse@>=0.3.0 <0.4":
|
||||
version "0.3.9"
|
||||
resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.3.9.tgz#717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9"
|
||||
|
@ -16043,7 +16188,7 @@ universal-user-agent@^6.0.0:
|
|||
resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.0.tgz#3381f8503b251c0d9cd21bc1de939ec9df5480ee"
|
||||
integrity sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==
|
||||
|
||||
universalify@^0.1.0:
|
||||
universalify@^0.1.0, universalify@^0.1.2:
|
||||
version "0.1.2"
|
||||
resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
|
||||
integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
|
||||
|
@ -16303,13 +16448,20 @@ vm-browserify@^1.0.1:
|
|||
resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0"
|
||||
integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==
|
||||
|
||||
w3c-hr-time@^1.0.1:
|
||||
w3c-hr-time@^1.0.1, w3c-hr-time@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd"
|
||||
integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==
|
||||
dependencies:
|
||||
browser-process-hrtime "^1.0.0"
|
||||
|
||||
w3c-xmlserializer@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a"
|
||||
integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==
|
||||
dependencies:
|
||||
xml-name-validator "^3.0.0"
|
||||
|
||||
walker@^1.0.7, walker@~1.0.5:
|
||||
version "1.0.7"
|
||||
resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb"
|
||||
|
@ -16360,6 +16512,16 @@ webidl-conversions@^4.0.2:
|
|||
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad"
|
||||
integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==
|
||||
|
||||
webidl-conversions@^5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff"
|
||||
integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==
|
||||
|
||||
webidl-conversions@^6.1.0:
|
||||
version "6.1.0"
|
||||
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514"
|
||||
integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==
|
||||
|
||||
webpack-bundle-analyzer@^3.4.1:
|
||||
version "3.8.0"
|
||||
resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.8.0.tgz#ce6b3f908daf069fd1f7266f692cbb3bded9ba16"
|
||||
|
@ -16519,14 +16681,14 @@ websocket-extensions@>=0.1.1:
|
|||
resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42"
|
||||
integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==
|
||||
|
||||
whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3:
|
||||
whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3, whatwg-encoding@^1.0.5:
|
||||
version "1.0.5"
|
||||
resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0"
|
||||
integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==
|
||||
dependencies:
|
||||
iconv-lite "0.4.24"
|
||||
|
||||
whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0:
|
||||
whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0, whatwg-mimetype@^2.3.0:
|
||||
version "2.3.0"
|
||||
resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf"
|
||||
integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==
|
||||
|
@ -16549,6 +16711,15 @@ whatwg-url@^7.0.0:
|
|||
tr46 "^1.0.1"
|
||||
webidl-conversions "^4.0.2"
|
||||
|
||||
whatwg-url@^8.0.0, whatwg-url@^8.5.0:
|
||||
version "8.5.0"
|
||||
resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.5.0.tgz#7752b8464fc0903fec89aa9846fc9efe07351fd3"
|
||||
integrity sha512-fy+R77xWv0AiqfLl4nuGUlQ3/6b5uNfQ4WAbGQVMYshCTCCPK9psC1nWh3XHuxGVCtlcDDQPQW1csmmIQo+fwg==
|
||||
dependencies:
|
||||
lodash "^4.7.0"
|
||||
tr46 "^2.0.2"
|
||||
webidl-conversions "^6.1.0"
|
||||
|
||||
which-module@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
|
||||
|
@ -16708,6 +16879,11 @@ ws@^6.0.0, ws@^6.1.0, ws@^6.2.1:
|
|||
dependencies:
|
||||
async-limiter "~1.0.0"
|
||||
|
||||
ws@^7.4.4:
|
||||
version "7.4.5"
|
||||
resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.5.tgz#a484dd851e9beb6fdb420027e3885e8ce48986c1"
|
||||
integrity sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g==
|
||||
|
||||
ws@~6.1.0:
|
||||
version "6.1.4"
|
||||
resolved "https://registry.yarnpkg.com/ws/-/ws-6.1.4.tgz#5b5c8800afab925e94ccb29d153c8d02c1776ef9"
|
||||
|
@ -16753,6 +16929,11 @@ xmlbuilder@~11.0.0:
|
|||
resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3"
|
||||
integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==
|
||||
|
||||
xmlchars@^2.2.0:
|
||||
version "2.2.0"
|
||||
resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb"
|
||||
integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==
|
||||
|
||||
xmlhttprequest-ssl@~1.5.4:
|
||||
version "1.5.5"
|
||||
resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e"
|
||||
|
|
Loading…
Reference in a new issue