mirror of
https://github.com/quine-global/hyper.git
synced 2026-01-13 04:28:41 -09:00
Xterm v3 integration (#2573)
This commit is contained in:
parent
5700690e0b
commit
dd780e6fe7
9 changed files with 310 additions and 2365 deletions
|
|
@ -17,6 +17,9 @@ module.exports = {
|
||||||
// terminal cursor background color and opacity (hex, rgb, hsl, hsv, hwb or cmyk)
|
// terminal cursor background color and opacity (hex, rgb, hsl, hsv, hwb or cmyk)
|
||||||
cursorColor: 'rgba(248,28,229,0.8)',
|
cursorColor: 'rgba(248,28,229,0.8)',
|
||||||
|
|
||||||
|
// terminal text color under BLOCK cursor
|
||||||
|
cursorAccentColor: '#000',
|
||||||
|
|
||||||
// `'BEAM'` for |, `'UNDERLINE'` for _, `'BLOCK'` for █
|
// `'BEAM'` for |, `'UNDERLINE'` for _, `'BLOCK'` for █
|
||||||
cursorShape: 'BLOCK',
|
cursorShape: 'BLOCK',
|
||||||
|
|
||||||
|
|
@ -30,6 +33,9 @@ module.exports = {
|
||||||
// opacity is only supported on macOS
|
// opacity is only supported on macOS
|
||||||
backgroundColor: '#000',
|
backgroundColor: '#000',
|
||||||
|
|
||||||
|
// terminal selection color
|
||||||
|
selectionColor: 'rgba(248,28,229,0.3)',
|
||||||
|
|
||||||
// border color (window, tabs)
|
// border color (window, tabs)
|
||||||
borderColor: '#333',
|
borderColor: '#333',
|
||||||
|
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load diff
|
|
@ -59,8 +59,13 @@ class TermGroup_ extends PureComponent {
|
||||||
const props = getTermProps(uid, this.props, {
|
const props = getTermProps(uid, this.props, {
|
||||||
isTermActive: uid === this.props.activeSession,
|
isTermActive: uid === this.props.activeSession,
|
||||||
term: termRef ? termRef.term : null,
|
term: termRef ? termRef.term : null,
|
||||||
|
backgroundColor: this.props.backgroundColor,
|
||||||
|
foregroundColor: this.props.foregroundColor,
|
||||||
|
colors: this.props.colors,
|
||||||
cursorBlink: this.props.cursorBlink,
|
cursorBlink: this.props.cursorBlink,
|
||||||
cursorShape: this.props.cursorShape,
|
cursorShape: this.props.cursorShape,
|
||||||
|
cursorColor: this.props.cursorColor,
|
||||||
|
cursorAccentColor: this.props.cursorAccentColor,
|
||||||
fontSize: this.props.fontSize,
|
fontSize: this.props.fontSize,
|
||||||
fontFamily: this.props.fontFamily,
|
fontFamily: this.props.fontFamily,
|
||||||
uiFontFamily: this.props.uiFontFamily,
|
uiFontFamily: this.props.uiFontFamily,
|
||||||
|
|
@ -81,6 +86,7 @@ class TermGroup_ extends PureComponent {
|
||||||
onURLAbort: this.bind(this.props.onURLAbort, null, uid),
|
onURLAbort: this.bind(this.props.onURLAbort, null, uid),
|
||||||
onContextMenu: this.bind(this.props.onContextMenu, null, uid),
|
onContextMenu: this.bind(this.props.onContextMenu, null, uid),
|
||||||
borderColor: this.props.borderColor,
|
borderColor: this.props.borderColor,
|
||||||
|
selectionColor: this.props.selectionColor,
|
||||||
quickEdit: this.props.quickEdit,
|
quickEdit: this.props.quickEdit,
|
||||||
uid
|
uid
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
/* global Blob,URL,requestAnimationFrame */
|
/* global Blob,URL,requestAnimationFrame */
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import Terminal from 'xterm';
|
import {Terminal} from 'xterm';
|
||||||
import {clipboard} from 'electron';
|
import {clipboard} from 'electron';
|
||||||
|
import * as Color from 'color';
|
||||||
import {PureComponent} from '../base-components';
|
import {PureComponent} from '../base-components';
|
||||||
import terms from '../terms';
|
import terms from '../terms';
|
||||||
import processClipboard from '../utils/paste';
|
import processClipboard from '../utils/paste';
|
||||||
|
|
@ -13,6 +14,41 @@ const CURSOR_STYLES = {
|
||||||
BLOCK: 'block'
|
BLOCK: 'block'
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const getTermOptions = props => {
|
||||||
|
// Set a background color only if it is opaque
|
||||||
|
const backgroundColor = Color(props.backgroundColor).alpha() < 1 ? 'transparent' : props.backgroundColor;
|
||||||
|
return {
|
||||||
|
cursorStyle: CURSOR_STYLES[props.cursorShape],
|
||||||
|
cursorBlink: props.cursorBlink,
|
||||||
|
fontFamily: props.fontFamily,
|
||||||
|
fontSize: props.fontSize,
|
||||||
|
allowTransparency: true,
|
||||||
|
theme: {
|
||||||
|
foreground: props.foregroundColor,
|
||||||
|
background: backgroundColor,
|
||||||
|
cursor: props.cursorColor,
|
||||||
|
cursorAccent: props.cursorAccentColor,
|
||||||
|
selection: props.selectionColor,
|
||||||
|
black: props.colors.black,
|
||||||
|
red: props.colors.red,
|
||||||
|
green: props.colors.green,
|
||||||
|
yellow: props.colors.yellow,
|
||||||
|
blue: props.colors.blue,
|
||||||
|
magenta: props.colors.magenta,
|
||||||
|
cyan: props.colors.cyan,
|
||||||
|
white: props.colors.white,
|
||||||
|
brightBlack: props.colors.lightBlack,
|
||||||
|
brightRed: props.colors.lightRed,
|
||||||
|
brightGreen: props.colors.lightGreen,
|
||||||
|
brightYellow: props.colors.lightYellow,
|
||||||
|
brightBlue: props.colors.lightBlue,
|
||||||
|
brightMagenta: props.colors.lightMagenta,
|
||||||
|
brightCyan: props.colors.lightCyan,
|
||||||
|
brightWhite: props.colors.lightWhite
|
||||||
|
}
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
export default class Term extends PureComponent {
|
export default class Term extends PureComponent {
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
super(props);
|
super(props);
|
||||||
|
|
@ -26,30 +62,23 @@ export default class Term extends PureComponent {
|
||||||
this.onTermRef = this.onTermRef.bind(this);
|
this.onTermRef = this.onTermRef.bind(this);
|
||||||
this.onTermWrapperRef = this.onTermWrapperRef.bind(this);
|
this.onTermWrapperRef = this.onTermWrapperRef.bind(this);
|
||||||
this.onMouseUp = this.onMouseUp.bind(this);
|
this.onMouseUp = this.onMouseUp.bind(this);
|
||||||
|
this.termOptions = {};
|
||||||
}
|
}
|
||||||
|
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
const {props} = this;
|
const {props} = this;
|
||||||
|
|
||||||
// we need to use this hack to retain the term reference
|
this.termOptions = getTermOptions(props);
|
||||||
// as we move the term around splits, until xterm adds
|
this.term = props.term || new Terminal(this.termOptions);
|
||||||
// support for getState / setState
|
this.term.attachCustomKeyEventHandler(this.keyboardHandler);
|
||||||
|
this.term.open(this.termRef);
|
||||||
if (props.term) {
|
if (props.term) {
|
||||||
this.term = props.term;
|
//We need to set options again after reattaching an existing term
|
||||||
this.termRef.appendChild(this.term.element);
|
Object.keys(this.termOptions).forEach(option => this.term.setOption(option, this.termOptions[option]));
|
||||||
this.onOpen();
|
|
||||||
} else {
|
|
||||||
this.term =
|
|
||||||
props.term ||
|
|
||||||
new Terminal({
|
|
||||||
cursorStyle: CURSOR_STYLES[props.cursorShape],
|
|
||||||
cursorBlink: props.cursorBlink
|
|
||||||
});
|
|
||||||
this.term.attachCustomKeyEventHandler(this.keyboardHandler);
|
|
||||||
this.term.open(this.termRef);
|
|
||||||
this.onOpen();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.onOpen(this.termOptions);
|
||||||
|
|
||||||
if (props.onTitle) {
|
if (props.onTitle) {
|
||||||
this.term.on('title', props.onTitle);
|
this.term.on('title', props.onTitle);
|
||||||
}
|
}
|
||||||
|
|
@ -84,7 +113,7 @@ export default class Term extends PureComponent {
|
||||||
terms[this.props.uid] = this;
|
terms[this.props.uid] = this;
|
||||||
}
|
}
|
||||||
|
|
||||||
onOpen() {
|
onOpen(termOptions) {
|
||||||
// we need to delay one frame so that aphrodite styles
|
// we need to delay one frame so that aphrodite styles
|
||||||
// get applied and we can make an accurate measurement
|
// get applied and we can make an accurate measurement
|
||||||
// of the container width and height
|
// of the container width and height
|
||||||
|
|
@ -93,7 +122,9 @@ export default class Term extends PureComponent {
|
||||||
// measurement to have taken place but it seems that
|
// measurement to have taken place but it seems that
|
||||||
// xterm.js might be doing this asynchronously, so
|
// xterm.js might be doing this asynchronously, so
|
||||||
// we force it instead
|
// we force it instead
|
||||||
this.term.charMeasure.measure();
|
// eslint-disable-next-line no-debugger
|
||||||
|
//debugger;
|
||||||
|
this.term.charMeasure.measure(termOptions);
|
||||||
this.fitResize();
|
this.fitResize();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -179,10 +210,28 @@ export default class Term extends PureComponent {
|
||||||
if (!this.props.cleared && nextProps.cleared) {
|
if (!this.props.cleared && nextProps.cleared) {
|
||||||
this.clear();
|
this.clear();
|
||||||
}
|
}
|
||||||
|
const nextTermOptions = getTermOptions(nextProps);
|
||||||
|
|
||||||
|
// Update only options that have changed.
|
||||||
|
Object.keys(nextTermOptions)
|
||||||
|
.filter(option => option !== 'theme' && nextTermOptions[option] !== this.termOptions[option])
|
||||||
|
.forEach(option => this.term.setOption(option, nextTermOptions[option]));
|
||||||
|
|
||||||
|
// Do we need to update theme?
|
||||||
|
const shouldUpdateTheme =
|
||||||
|
!this.termOptions.theme ||
|
||||||
|
Object.keys(nextTermOptions.theme).some(option => {
|
||||||
|
nextTermOptions.theme[option] !== this.termOptions.theme[option];
|
||||||
|
});
|
||||||
|
if (shouldUpdateTheme) {
|
||||||
|
this.term.setOption('theme', nextTermOptions.theme);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.termOptions = nextTermOptions;
|
||||||
|
|
||||||
if (!this.props.isTermActive && nextProps.isTermActive) {
|
if (!this.props.isTermActive && nextProps.isTermActive) {
|
||||||
requestAnimationFrame(() => {
|
requestAnimationFrame(() => {
|
||||||
this.term.charMeasure.measure();
|
this.term.charMeasure.measure(this.termOptions);
|
||||||
this.fitResize();
|
this.fitResize();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -190,7 +239,7 @@ export default class Term extends PureComponent {
|
||||||
if (this.props.fontSize !== nextProps.fontSize || this.props.fontFamily !== nextProps.fontFamily) {
|
if (this.props.fontSize !== nextProps.fontSize || this.props.fontFamily !== nextProps.fontFamily) {
|
||||||
// invalidate xterm cache about how wide each
|
// invalidate xterm cache about how wide each
|
||||||
// character is
|
// character is
|
||||||
this.term.charMeasure.measure();
|
this.term.charMeasure.measure(this.termOptions);
|
||||||
|
|
||||||
// resize to fit the container
|
// resize to fit the container
|
||||||
this.fitResize();
|
this.fitResize();
|
||||||
|
|
|
||||||
|
|
@ -90,9 +90,13 @@ export default class Terms extends Component {
|
||||||
activeSession: this.props.activeSession,
|
activeSession: this.props.activeSession,
|
||||||
sessions: this.props.sessions,
|
sessions: this.props.sessions,
|
||||||
backgroundColor: this.props.backgroundColor,
|
backgroundColor: this.props.backgroundColor,
|
||||||
|
foregroundColor: this.props.foregroundColor,
|
||||||
borderColor: this.props.borderColor,
|
borderColor: this.props.borderColor,
|
||||||
|
selectionColor: this.props.selectionColor,
|
||||||
|
colors: this.props.colors,
|
||||||
cursorShape: this.props.cursorShape,
|
cursorShape: this.props.cursorShape,
|
||||||
cursorBlink: this.props.cursorBlink,
|
cursorBlink: this.props.cursorBlink,
|
||||||
|
cursorColor: this.props.cursorColor,
|
||||||
fontSize: this.props.fontSize,
|
fontSize: this.props.fontSize,
|
||||||
fontFamily: this.props.fontFamily,
|
fontFamily: this.props.fontFamily,
|
||||||
uiFontFamily: this.props.uiFontFamily,
|
uiFontFamily: this.props.uiFontFamily,
|
||||||
|
|
@ -119,13 +123,9 @@ export default class Terms extends Component {
|
||||||
})}
|
})}
|
||||||
{this.props.customChildren}
|
{this.props.customChildren}
|
||||||
<StyleSheet
|
<StyleSheet
|
||||||
colors={this.props.colors}
|
|
||||||
backgroundColor={this.props.backgroundColor}
|
backgroundColor={this.props.backgroundColor}
|
||||||
customCSS={this.props.customCSS}
|
customCSS={this.props.customCSS}
|
||||||
cursorColor={this.props.cursorColor}
|
|
||||||
fontSize={this.props.fontSize}
|
|
||||||
fontFamily={this.props.fontFamily}
|
fontFamily={this.props.fontFamily}
|
||||||
fontSmoothing={this.props.fontSmoothing}
|
|
||||||
foregroundColor={this.props.foregroundColor}
|
foregroundColor={this.props.foregroundColor}
|
||||||
borderColor={this.props.borderColor}
|
borderColor={this.props.borderColor}
|
||||||
/>
|
/>
|
||||||
|
|
|
||||||
|
|
@ -28,9 +28,11 @@ const TermsContainer = connect(
|
||||||
fontSmoothing: state.ui.fontSmoothingOverride,
|
fontSmoothing: state.ui.fontSmoothingOverride,
|
||||||
padding: state.ui.padding,
|
padding: state.ui.padding,
|
||||||
cursorColor: state.ui.cursorColor,
|
cursorColor: state.ui.cursorColor,
|
||||||
|
cursorAccentColor: state.ui.cursorAccentColor,
|
||||||
cursorShape: state.ui.cursorShape,
|
cursorShape: state.ui.cursorShape,
|
||||||
cursorBlink: state.ui.cursorBlink,
|
cursorBlink: state.ui.cursorBlink,
|
||||||
borderColor: state.ui.borderColor,
|
borderColor: state.ui.borderColor,
|
||||||
|
selectionColor: state.ui.selectionColor,
|
||||||
colors: state.ui.colors,
|
colors: state.ui.colors,
|
||||||
foregroundColor: state.ui.foregroundColor,
|
foregroundColor: state.ui.foregroundColor,
|
||||||
backgroundColor: state.ui.backgroundColor,
|
backgroundColor: state.ui.backgroundColor,
|
||||||
|
|
|
||||||
|
|
@ -34,9 +34,11 @@ const initial = Immutable({
|
||||||
rows: null,
|
rows: null,
|
||||||
activeUid: null,
|
activeUid: null,
|
||||||
cursorColor: '#F81CE5',
|
cursorColor: '#F81CE5',
|
||||||
|
cursorAccentColor: '#000',
|
||||||
cursorShape: 'BLOCK',
|
cursorShape: 'BLOCK',
|
||||||
cursorBlink: false,
|
cursorBlink: false,
|
||||||
borderColor: '#333',
|
borderColor: '#333',
|
||||||
|
selectionColor: 'rgba(248,28,229,0.3)',
|
||||||
fontSize: 12,
|
fontSize: 12,
|
||||||
padding: '12px 14px',
|
padding: '12px 14px',
|
||||||
fontFamily: 'Menlo, "DejaVu Sans Mono", "Lucida Console", monospace',
|
fontFamily: 'Menlo, "DejaVu Sans Mono", "Lucida Console", monospace',
|
||||||
|
|
@ -131,6 +133,10 @@ const reducer = (state = initial, action) => {
|
||||||
ret.cursorColor = config.cursorColor;
|
ret.cursorColor = config.cursorColor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (config.cursorAccentColor) {
|
||||||
|
ret.cursorAccentColor = config.cursorAccentColor;
|
||||||
|
}
|
||||||
|
|
||||||
if (allowedCursorShapes.has(config.cursorShape)) {
|
if (allowedCursorShapes.has(config.cursorShape)) {
|
||||||
ret.cursorShape = config.cursorShape;
|
ret.cursorShape = config.cursorShape;
|
||||||
}
|
}
|
||||||
|
|
@ -143,6 +149,10 @@ const reducer = (state = initial, action) => {
|
||||||
ret.borderColor = config.borderColor;
|
ret.borderColor = config.borderColor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (config.selectionColor) {
|
||||||
|
ret.selectionColor = config.selectionColor;
|
||||||
|
}
|
||||||
|
|
||||||
if (typeof config.padding !== 'undefined' && config.padding !== null) {
|
if (typeof config.padding !== 'undefined' && config.padding !== null) {
|
||||||
ret.padding = config.padding;
|
ret.padding = config.padding;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
53
package.json
53
package.json
|
|
@ -1,7 +1,8 @@
|
||||||
{
|
{
|
||||||
"repository": "zeit/hyper",
|
"repository": "zeit/hyper",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "echo 'please run `yarn run dev` in one tab and then `yarn run app` in another one'",
|
"start":
|
||||||
|
"echo 'please run `yarn run dev` in one tab and then `yarn run app` in another one'",
|
||||||
"app": "electron app",
|
"app": "electron app",
|
||||||
"dev": "webpack -w",
|
"dev": "webpack -w",
|
||||||
"build": "cross-env NODE_ENV=production webpack",
|
"build": "cross-env NODE_ENV=production webpack",
|
||||||
|
|
@ -10,21 +11,18 @@
|
||||||
"test:unit": "ava test/unit",
|
"test:unit": "ava test/unit",
|
||||||
"test:unit:watch": "yarn run test:unit -- --watch",
|
"test:unit:watch": "yarn run test:unit -- --watch",
|
||||||
"prepush": "yarn test",
|
"prepush": "yarn test",
|
||||||
"postinstall": "electron-builder install-app-deps && yarn run rebuild-node-pty",
|
"postinstall":
|
||||||
"rebuild-node-pty": "electron-rebuild -f -w app/node_modules/node-pty -m app",
|
"electron-builder install-app-deps && yarn run rebuild-node-pty && yarn --cwd node_modules/xterm",
|
||||||
"dist": "yarn run build && cross-env BABEL_ENV=production babel --out-file app/renderer/bundle.js --no-comments --minified app/renderer/bundle.js && build",
|
"rebuild-node-pty":
|
||||||
"clean": "node ./bin/rimraf-standalone.js node_modules && node ./bin/rimraf-standalone.js ./app/node_modules && node ./bin/rimraf-standalone.js ./app/renderer"
|
"electron-rebuild -f -w app/node_modules/node-pty -m app",
|
||||||
|
"dist":
|
||||||
|
"yarn run build && cross-env BABEL_ENV=production babel --out-file app/renderer/bundle.js --no-comments --minified app/renderer/bundle.js && build",
|
||||||
|
"clean":
|
||||||
|
"node ./bin/rimraf-standalone.js node_modules && node ./bin/rimraf-standalone.js ./app/node_modules && node ./bin/rimraf-standalone.js ./app/renderer"
|
||||||
},
|
},
|
||||||
"eslintConfig": {
|
"eslintConfig": {
|
||||||
"plugins": [
|
"plugins": ["react", "prettier"],
|
||||||
"react",
|
"extends": ["eslint:recommended", "plugin:react/recommended", "prettier"],
|
||||||
"prettier"
|
|
||||||
],
|
|
||||||
"extends": [
|
|
||||||
"eslint:recommended",
|
|
||||||
"plugin:react/recommended",
|
|
||||||
"prettier"
|
|
||||||
],
|
|
||||||
"parserOptions": {
|
"parserOptions": {
|
||||||
"ecmaVersion": 8,
|
"ecmaVersion": 8,
|
||||||
"sourceType": "module",
|
"sourceType": "module",
|
||||||
|
|
@ -41,10 +39,7 @@
|
||||||
"node": true
|
"node": true
|
||||||
},
|
},
|
||||||
"rules": {
|
"rules": {
|
||||||
"func-names": [
|
"func-names": ["error", "as-needed"],
|
||||||
"error",
|
|
||||||
"as-needed"
|
|
||||||
],
|
|
||||||
"no-shadow": "error",
|
"no-shadow": "error",
|
||||||
"no-extra-semi": 0,
|
"no-extra-semi": 0,
|
||||||
"react/prop-types": 0,
|
"react/prop-types": 0,
|
||||||
|
|
@ -90,9 +85,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"babel": {
|
"babel": {
|
||||||
"presets": [
|
"presets": ["react"],
|
||||||
"react"
|
|
||||||
],
|
|
||||||
"env": {
|
"env": {
|
||||||
"production": {
|
"production": {
|
||||||
"plugins": [
|
"plugins": [
|
||||||
|
|
@ -137,28 +130,20 @@
|
||||||
"target": [
|
"target": [
|
||||||
{
|
{
|
||||||
"target": "deb",
|
"target": "deb",
|
||||||
"arch": [
|
"arch": ["x64"]
|
||||||
"x64"
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"target": "AppImage",
|
"target": "AppImage",
|
||||||
"arch": [
|
"arch": ["x64"]
|
||||||
"x64"
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"target": "rpm",
|
"target": "rpm",
|
||||||
"arch": [
|
"arch": ["x64"]
|
||||||
"x64"
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"win": {
|
"win": {
|
||||||
"target": [
|
"target": ["squirrel"]
|
||||||
"squirrel"
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
"mac": {
|
"mac": {
|
||||||
"category": "public.app-category.developer-tools",
|
"category": "public.app-category.developer-tools",
|
||||||
|
|
@ -204,7 +189,7 @@
|
||||||
"semver": "5.4.1",
|
"semver": "5.4.1",
|
||||||
"shebang-loader": "false0.0.1",
|
"shebang-loader": "false0.0.1",
|
||||||
"uuid": "3.1.0",
|
"uuid": "3.1.0",
|
||||||
"xterm": "2.9.2"
|
"xterm": "chabou/xterm.js#hyper"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"ava": "0.24.0",
|
"ava": "0.24.0",
|
||||||
|
|
|
||||||
140
yarn.lock
140
yarn.lock
|
|
@ -14,15 +14,7 @@
|
||||||
version "2.1.1"
|
version "2.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/7zip-bin-win/-/7zip-bin-win-2.1.1.tgz#8acfc28bb34e53a9476b46ae85a97418e6035c20"
|
resolved "https://registry.yarnpkg.com/7zip-bin-win/-/7zip-bin-win-2.1.1.tgz#8acfc28bb34e53a9476b46ae85a97418e6035c20"
|
||||||
|
|
||||||
"7zip-bin@^2.2.7":
|
"7zip-bin@^2.2.7", "7zip-bin@^2.3.4":
|
||||||
version "2.3.3"
|
|
||||||
resolved "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-2.3.3.tgz#20fef9e4b7500ebfa13df2742782cdfd1151e628"
|
|
||||||
optionalDependencies:
|
|
||||||
"7zip-bin-linux" "^1.1.0"
|
|
||||||
"7zip-bin-mac" "^1.0.1"
|
|
||||||
"7zip-bin-win" "^2.1.1"
|
|
||||||
|
|
||||||
"7zip-bin@^2.3.4":
|
|
||||||
version "2.3.4"
|
version "2.3.4"
|
||||||
resolved "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-2.3.4.tgz#0861a3c99793dd794f4dd6175ec4ddfa6af8bc9d"
|
resolved "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-2.3.4.tgz#0861a3c99793dd794f4dd6175ec4ddfa6af8bc9d"
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
|
|
@ -85,8 +77,8 @@
|
||||||
arrify "^1.0.1"
|
arrify "^1.0.1"
|
||||||
|
|
||||||
"@types/node@^7.0.18":
|
"@types/node@^7.0.18":
|
||||||
version "7.0.48"
|
version "7.0.49"
|
||||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.48.tgz#24bfdc0aa82e8f6dbd017159c58094a2e06d0abb"
|
resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.49.tgz#f43777edd31822d6bcb50735a76c7f301d7b3121"
|
||||||
|
|
||||||
abbrev@1:
|
abbrev@1:
|
||||||
version "1.1.1"
|
version "1.1.1"
|
||||||
|
|
@ -1252,7 +1244,7 @@ buffer@^4.3.0:
|
||||||
ieee754 "^1.1.4"
|
ieee754 "^1.1.4"
|
||||||
isarray "^1.0.0"
|
isarray "^1.0.0"
|
||||||
|
|
||||||
builder-util-runtime@3.3.0, builder-util-runtime@^3.3.0:
|
builder-util-runtime@3.3.0:
|
||||||
version "3.3.0"
|
version "3.3.0"
|
||||||
resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-3.3.0.tgz#6374029211544f1a380fc7275658b0616b0e9ae1"
|
resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-3.3.0.tgz#6374029211544f1a380fc7275658b0616b0e9ae1"
|
||||||
dependencies:
|
dependencies:
|
||||||
|
|
@ -1261,7 +1253,16 @@ builder-util-runtime@3.3.0, builder-util-runtime@^3.3.0:
|
||||||
fs-extra-p "^4.4.4"
|
fs-extra-p "^4.4.4"
|
||||||
sax "^1.2.4"
|
sax "^1.2.4"
|
||||||
|
|
||||||
builder-util@3.4.3, builder-util@^3.4.2, builder-util@^3.4.3:
|
builder-util-runtime@^3.3.0, builder-util-runtime@^3.3.1:
|
||||||
|
version "3.4.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-3.4.0.tgz#34883f50a3bbf6502abc40902926a1a8dfef5d43"
|
||||||
|
dependencies:
|
||||||
|
bluebird-lst "^1.0.5"
|
||||||
|
debug "^3.1.0"
|
||||||
|
fs-extra-p "^4.5.0"
|
||||||
|
sax "^1.2.4"
|
||||||
|
|
||||||
|
builder-util@3.4.3:
|
||||||
version "3.4.3"
|
version "3.4.3"
|
||||||
resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-3.4.3.tgz#c7d6908ffc56fa3c4de0ec804dbcb9bbf6aa2ab4"
|
resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-3.4.3.tgz#c7d6908ffc56fa3c4de0ec804dbcb9bbf6aa2ab4"
|
||||||
dependencies:
|
dependencies:
|
||||||
|
|
@ -1282,6 +1283,27 @@ builder-util@3.4.3, builder-util@^3.4.2, builder-util@^3.4.3:
|
||||||
temp-file "^3.0.0"
|
temp-file "^3.0.0"
|
||||||
tunnel-agent "^0.6.0"
|
tunnel-agent "^0.6.0"
|
||||||
|
|
||||||
|
builder-util@^3.4.2, builder-util@^3.4.3:
|
||||||
|
version "3.4.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-3.4.4.tgz#cab30f37c1ee4fb23d33b20ac71e76e3c8451d28"
|
||||||
|
dependencies:
|
||||||
|
"7zip-bin" "^2.3.4"
|
||||||
|
bluebird-lst "^1.0.5"
|
||||||
|
builder-util-runtime "^3.3.1"
|
||||||
|
chalk "^2.3.0"
|
||||||
|
debug "^3.1.0"
|
||||||
|
fs-extra-p "^4.4.5"
|
||||||
|
ini "^1.3.5"
|
||||||
|
is-ci "^1.0.10"
|
||||||
|
js-yaml "^3.10.0"
|
||||||
|
lazy-val "^1.0.3"
|
||||||
|
node-emoji "^1.8.1"
|
||||||
|
semver "^5.4.1"
|
||||||
|
source-map-support "^0.5.0"
|
||||||
|
stat-mode "^0.2.2"
|
||||||
|
temp-file "^3.0.0"
|
||||||
|
tunnel-agent "^0.6.0"
|
||||||
|
|
||||||
builtin-modules@^1.0.0:
|
builtin-modules@^1.0.0:
|
||||||
version "1.1.1"
|
version "1.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
|
resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
|
||||||
|
|
@ -1354,8 +1376,8 @@ caniuse-api@^1.5.2:
|
||||||
lodash.uniq "^4.5.0"
|
lodash.uniq "^4.5.0"
|
||||||
|
|
||||||
caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639:
|
caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639:
|
||||||
version "1.0.30000778"
|
version "1.0.30000782"
|
||||||
resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000778.tgz#167c60e9542a2aa60537c446fb3881d853a3072a"
|
resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000782.tgz#d8815bce1578c350aced1132507301205e0fab53"
|
||||||
|
|
||||||
capture-stack-trace@^1.0.0:
|
capture-stack-trace@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
|
|
@ -2255,8 +2277,8 @@ electron-rebuild@1.6.0:
|
||||||
yargs "^7.0.2"
|
yargs "^7.0.2"
|
||||||
|
|
||||||
electron-to-chromium@^1.2.7:
|
electron-to-chromium@^1.2.7:
|
||||||
version "1.3.27"
|
version "1.3.28"
|
||||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.27.tgz#78ecb8a399066187bb374eede35d9c70565a803d"
|
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.28.tgz#8dd4e6458086644e9f9f0a1cf32e2a1f9dffd9ee"
|
||||||
|
|
||||||
electron@1.7.9:
|
electron@1.7.9:
|
||||||
version "1.7.9"
|
version "1.7.9"
|
||||||
|
|
@ -2319,10 +2341,10 @@ equal-length@^1.0.0:
|
||||||
resolved "https://registry.yarnpkg.com/equal-length/-/equal-length-1.0.1.tgz#21ca112d48ab24b4e1e7ffc0e5339d31fdfc274c"
|
resolved "https://registry.yarnpkg.com/equal-length/-/equal-length-1.0.1.tgz#21ca112d48ab24b4e1e7ffc0e5339d31fdfc274c"
|
||||||
|
|
||||||
errno@^0.1.3:
|
errno@^0.1.3:
|
||||||
version "0.1.4"
|
version "0.1.6"
|
||||||
resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.4.tgz#b896e23a9e5e8ba33871fc996abd3635fc9a1c7d"
|
resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.6.tgz#c386ce8a6283f14fc09563b71560908c9bf53026"
|
||||||
dependencies:
|
dependencies:
|
||||||
prr "~0.0.0"
|
prr "~1.0.1"
|
||||||
|
|
||||||
error-ex@^1.2.0:
|
error-ex@^1.2.0:
|
||||||
version "1.3.1"
|
version "1.3.1"
|
||||||
|
|
@ -2451,8 +2473,8 @@ eslint-scope@^3.7.1:
|
||||||
estraverse "^4.1.1"
|
estraverse "^4.1.1"
|
||||||
|
|
||||||
eslint@^4.7.2:
|
eslint@^4.7.2:
|
||||||
version "4.12.1"
|
version "4.13.1"
|
||||||
resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.12.1.tgz#5ec1973822b4a066b353770c3c6d69a2a188e880"
|
resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.13.1.tgz#0055e0014464c7eb7878caf549ef2941992b444f"
|
||||||
dependencies:
|
dependencies:
|
||||||
ajv "^5.3.0"
|
ajv "^5.3.0"
|
||||||
babel-code-frame "^6.22.0"
|
babel-code-frame "^6.22.0"
|
||||||
|
|
@ -2761,12 +2783,12 @@ form-data@~2.3.1:
|
||||||
combined-stream "^1.0.5"
|
combined-stream "^1.0.5"
|
||||||
mime-types "^2.1.12"
|
mime-types "^2.1.12"
|
||||||
|
|
||||||
fs-extra-p@^4.4.4:
|
fs-extra-p@^4.4.4, fs-extra-p@^4.4.5, fs-extra-p@^4.5.0:
|
||||||
version "4.4.4"
|
version "4.5.0"
|
||||||
resolved "https://registry.yarnpkg.com/fs-extra-p/-/fs-extra-p-4.4.4.tgz#396ad6f914eb2954e1700fd0e18288301ed45f04"
|
resolved "https://registry.yarnpkg.com/fs-extra-p/-/fs-extra-p-4.5.0.tgz#b79f3f3fcc0b5e57b7e7caeb06159f958ef15fe8"
|
||||||
dependencies:
|
dependencies:
|
||||||
bluebird-lst "^1.0.4"
|
bluebird-lst "^1.0.5"
|
||||||
fs-extra "^4.0.2"
|
fs-extra "^5.0.0"
|
||||||
|
|
||||||
fs-extra@^0.30.0:
|
fs-extra@^0.30.0:
|
||||||
version "0.30.0"
|
version "0.30.0"
|
||||||
|
|
@ -2793,9 +2815,17 @@ fs-extra@^3.0.1:
|
||||||
jsonfile "^3.0.0"
|
jsonfile "^3.0.0"
|
||||||
universalify "^0.1.0"
|
universalify "^0.1.0"
|
||||||
|
|
||||||
fs-extra@^4.0.1, fs-extra@^4.0.2:
|
fs-extra@^4.0.1:
|
||||||
version "4.0.2"
|
version "4.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.2.tgz#f91704c53d1b461f893452b0c307d9997647ab6b"
|
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94"
|
||||||
|
dependencies:
|
||||||
|
graceful-fs "^4.1.2"
|
||||||
|
jsonfile "^4.0.0"
|
||||||
|
universalify "^0.1.0"
|
||||||
|
|
||||||
|
fs-extra@^5.0.0:
|
||||||
|
version "5.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-5.0.0.tgz#414d0110cdd06705734d055652c5411260c31abd"
|
||||||
dependencies:
|
dependencies:
|
||||||
graceful-fs "^4.1.2"
|
graceful-fs "^4.1.2"
|
||||||
jsonfile "^4.0.0"
|
jsonfile "^4.0.0"
|
||||||
|
|
@ -2925,8 +2955,8 @@ global-dirs@^0.1.0:
|
||||||
ini "^1.3.4"
|
ini "^1.3.4"
|
||||||
|
|
||||||
globals@^11.0.1:
|
globals@^11.0.1:
|
||||||
version "11.0.1"
|
version "11.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/globals/-/globals-11.0.1.tgz#12a87bb010e5154396acc535e1e43fc753b0e5e8"
|
resolved "https://registry.yarnpkg.com/globals/-/globals-11.1.0.tgz#632644457f5f0e3ae711807183700ebf2e4633e4"
|
||||||
|
|
||||||
globals@^9.18.0:
|
globals@^9.18.0:
|
||||||
version "9.18.0"
|
version "9.18.0"
|
||||||
|
|
@ -3730,9 +3760,9 @@ lazy-cache@^1.0.3:
|
||||||
version "1.0.4"
|
version "1.0.4"
|
||||||
resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e"
|
resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e"
|
||||||
|
|
||||||
lazy-val@^1.0.2:
|
lazy-val@^1.0.2, lazy-val@^1.0.3:
|
||||||
version "1.0.2"
|
version "1.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/lazy-val/-/lazy-val-1.0.2.tgz#d9b07fb1fce54cbc99b3c611de431b83249369b6"
|
resolved "https://registry.yarnpkg.com/lazy-val/-/lazy-val-1.0.3.tgz#bb97b200ef00801d94c317e29dc6ed39e31c5edc"
|
||||||
|
|
||||||
lazystream@^1.0.0:
|
lazystream@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
|
|
@ -4867,8 +4897,8 @@ postcss@^6.0.1:
|
||||||
supports-color "^4.4.0"
|
supports-color "^4.4.0"
|
||||||
|
|
||||||
prebuild-install@^2.3.0:
|
prebuild-install@^2.3.0:
|
||||||
version "2.3.0"
|
version "2.4.1"
|
||||||
resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-2.3.0.tgz#19481247df728b854ab57b187ce234211311b485"
|
resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-2.4.1.tgz#c28ba1d1eedc17fbd6b3229a657ffc0fba479b49"
|
||||||
dependencies:
|
dependencies:
|
||||||
expand-template "^1.0.2"
|
expand-template "^1.0.2"
|
||||||
github-from-package "0.0.0"
|
github-from-package "0.0.0"
|
||||||
|
|
@ -4962,9 +4992,9 @@ prop-types@^15.5.10, prop-types@^15.6.0:
|
||||||
loose-envify "^1.3.1"
|
loose-envify "^1.3.1"
|
||||||
object-assign "^4.1.1"
|
object-assign "^4.1.1"
|
||||||
|
|
||||||
prr@~0.0.0:
|
prr@~1.0.1:
|
||||||
version "0.0.0"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a"
|
resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476"
|
||||||
|
|
||||||
pseudomap@^1.0.2:
|
pseudomap@^1.0.2:
|
||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
|
|
@ -5219,8 +5249,8 @@ regenerator-runtime@^0.10.5:
|
||||||
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658"
|
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658"
|
||||||
|
|
||||||
regenerator-runtime@^0.11.0:
|
regenerator-runtime@^0.11.0:
|
||||||
version "0.11.0"
|
version "0.11.1"
|
||||||
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz#7e54fe5b5ccd5d6624ea6255c3473be090b802e1"
|
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9"
|
||||||
|
|
||||||
regex-cache@^0.4.2:
|
regex-cache@^0.4.2:
|
||||||
version "0.4.4"
|
version "0.4.4"
|
||||||
|
|
@ -5433,10 +5463,10 @@ rx-lite@*, rx-lite@^4.0.8:
|
||||||
resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444"
|
resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444"
|
||||||
|
|
||||||
rxjs@^5.1.1:
|
rxjs@^5.1.1:
|
||||||
version "5.5.3"
|
version "5.5.5"
|
||||||
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.3.tgz#b62227e74b84f4e77bdf440e50b5ee01a1bc7dcd"
|
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.5.tgz#e164f11d38eaf29f56f08c3447f74ff02dd84e97"
|
||||||
dependencies:
|
dependencies:
|
||||||
symbol-observable "^1.0.1"
|
symbol-observable "1.0.1"
|
||||||
|
|
||||||
safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
|
safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
|
||||||
version "5.1.1"
|
version "5.1.1"
|
||||||
|
|
@ -5824,7 +5854,13 @@ supports-color@^4.0.0, supports-color@^4.2.1, supports-color@^4.4.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
has-flag "^2.0.0"
|
has-flag "^2.0.0"
|
||||||
|
|
||||||
supports-color@^5.0.0, supports-color@~5.0.0:
|
supports-color@^5.0.0:
|
||||||
|
version "5.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.1.0.tgz#058a021d1b619f7ddf3980d712ea3590ce7de3d5"
|
||||||
|
dependencies:
|
||||||
|
has-flag "^2.0.0"
|
||||||
|
|
||||||
|
supports-color@~5.0.0:
|
||||||
version "5.0.1"
|
version "5.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.0.1.tgz#1c5331f22250c84202805b2f17adf16699f3a39a"
|
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.0.1.tgz#1c5331f22250c84202805b2f17adf16699f3a39a"
|
||||||
dependencies:
|
dependencies:
|
||||||
|
|
@ -5842,11 +5878,15 @@ svgo@^0.7.0:
|
||||||
sax "~1.2.1"
|
sax "~1.2.1"
|
||||||
whet.extend "~0.9.9"
|
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"
|
||||||
|
|
||||||
symbol-observable@^0.2.2:
|
symbol-observable@^0.2.2:
|
||||||
version "0.2.4"
|
version "0.2.4"
|
||||||
resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-0.2.4.tgz#95a83db26186d6af7e7a18dbd9760a2f86d08f40"
|
resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-0.2.4.tgz#95a83db26186d6af7e7a18dbd9760a2f86d08f40"
|
||||||
|
|
||||||
symbol-observable@^1.0.1, symbol-observable@^1.0.3, symbol-observable@^1.0.4, symbol-observable@^1.1.0:
|
symbol-observable@^1.0.3, symbol-observable@^1.0.4, symbol-observable@^1.1.0:
|
||||||
version "1.1.0"
|
version "1.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.1.0.tgz#5c68fd8d54115d9dfb72a84720549222e8db9b32"
|
resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.1.0.tgz#5c68fd8d54115d9dfb72a84720549222e8db9b32"
|
||||||
|
|
||||||
|
|
@ -6409,9 +6449,9 @@ xtend@~2.1.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
object-keys "~0.4.0"
|
object-keys "~0.4.0"
|
||||||
|
|
||||||
xterm@2.9.2:
|
xterm@chabou/xterm.js#hyper:
|
||||||
version "2.9.2"
|
version "3.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/xterm/-/xterm-2.9.2.tgz#ec3e7c636ba67af4a7026be2cff7bdf08e56400a"
|
resolved "https://codeload.github.com/chabou/xterm.js/tar.gz/87b1d5276bb72298210021217165ab847a0886ec"
|
||||||
|
|
||||||
y18n@^3.2.1:
|
y18n@^3.2.1:
|
||||||
version "3.2.1"
|
version "3.2.1"
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue