mirror of
https://github.com/quine-global/hyper.git
synced 2026-01-12 20:18: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)
|
||||
cursorColor: 'rgba(248,28,229,0.8)',
|
||||
|
||||
// terminal text color under BLOCK cursor
|
||||
cursorAccentColor: '#000',
|
||||
|
||||
// `'BEAM'` for |, `'UNDERLINE'` for _, `'BLOCK'` for █
|
||||
cursorShape: 'BLOCK',
|
||||
|
||||
|
|
@ -30,6 +33,9 @@ module.exports = {
|
|||
// opacity is only supported on macOS
|
||||
backgroundColor: '#000',
|
||||
|
||||
// terminal selection color
|
||||
selectionColor: 'rgba(248,28,229,0.3)',
|
||||
|
||||
// border color (window, tabs)
|
||||
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, {
|
||||
isTermActive: uid === this.props.activeSession,
|
||||
term: termRef ? termRef.term : null,
|
||||
backgroundColor: this.props.backgroundColor,
|
||||
foregroundColor: this.props.foregroundColor,
|
||||
colors: this.props.colors,
|
||||
cursorBlink: this.props.cursorBlink,
|
||||
cursorShape: this.props.cursorShape,
|
||||
cursorColor: this.props.cursorColor,
|
||||
cursorAccentColor: this.props.cursorAccentColor,
|
||||
fontSize: this.props.fontSize,
|
||||
fontFamily: this.props.fontFamily,
|
||||
uiFontFamily: this.props.uiFontFamily,
|
||||
|
|
@ -81,6 +86,7 @@ class TermGroup_ extends PureComponent {
|
|||
onURLAbort: this.bind(this.props.onURLAbort, null, uid),
|
||||
onContextMenu: this.bind(this.props.onContextMenu, null, uid),
|
||||
borderColor: this.props.borderColor,
|
||||
selectionColor: this.props.selectionColor,
|
||||
quickEdit: this.props.quickEdit,
|
||||
uid
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,7 +1,8 @@
|
|||
/* global Blob,URL,requestAnimationFrame */
|
||||
import React from 'react';
|
||||
import Terminal from 'xterm';
|
||||
import {Terminal} from 'xterm';
|
||||
import {clipboard} from 'electron';
|
||||
import * as Color from 'color';
|
||||
import {PureComponent} from '../base-components';
|
||||
import terms from '../terms';
|
||||
import processClipboard from '../utils/paste';
|
||||
|
|
@ -13,6 +14,41 @@ const CURSOR_STYLES = {
|
|||
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 {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
|
|
@ -26,30 +62,23 @@ export default class Term extends PureComponent {
|
|||
this.onTermRef = this.onTermRef.bind(this);
|
||||
this.onTermWrapperRef = this.onTermWrapperRef.bind(this);
|
||||
this.onMouseUp = this.onMouseUp.bind(this);
|
||||
this.termOptions = {};
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
const {props} = this;
|
||||
|
||||
// we need to use this hack to retain the term reference
|
||||
// as we move the term around splits, until xterm adds
|
||||
// support for getState / setState
|
||||
if (props.term) {
|
||||
this.term = props.term;
|
||||
this.termRef.appendChild(this.term.element);
|
||||
this.onOpen();
|
||||
} else {
|
||||
this.term =
|
||||
props.term ||
|
||||
new Terminal({
|
||||
cursorStyle: CURSOR_STYLES[props.cursorShape],
|
||||
cursorBlink: props.cursorBlink
|
||||
});
|
||||
this.termOptions = getTermOptions(props);
|
||||
this.term = props.term || new Terminal(this.termOptions);
|
||||
this.term.attachCustomKeyEventHandler(this.keyboardHandler);
|
||||
this.term.open(this.termRef);
|
||||
this.onOpen();
|
||||
if (props.term) {
|
||||
//We need to set options again after reattaching an existing term
|
||||
Object.keys(this.termOptions).forEach(option => this.term.setOption(option, this.termOptions[option]));
|
||||
}
|
||||
|
||||
this.onOpen(this.termOptions);
|
||||
|
||||
if (props.onTitle) {
|
||||
this.term.on('title', props.onTitle);
|
||||
}
|
||||
|
|
@ -84,7 +113,7 @@ export default class Term extends PureComponent {
|
|||
terms[this.props.uid] = this;
|
||||
}
|
||||
|
||||
onOpen() {
|
||||
onOpen(termOptions) {
|
||||
// we need to delay one frame so that aphrodite styles
|
||||
// get applied and we can make an accurate measurement
|
||||
// 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
|
||||
// xterm.js might be doing this asynchronously, so
|
||||
// we force it instead
|
||||
this.term.charMeasure.measure();
|
||||
// eslint-disable-next-line no-debugger
|
||||
//debugger;
|
||||
this.term.charMeasure.measure(termOptions);
|
||||
this.fitResize();
|
||||
});
|
||||
}
|
||||
|
|
@ -179,10 +210,28 @@ export default class Term extends PureComponent {
|
|||
if (!this.props.cleared && nextProps.cleared) {
|
||||
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) {
|
||||
requestAnimationFrame(() => {
|
||||
this.term.charMeasure.measure();
|
||||
this.term.charMeasure.measure(this.termOptions);
|
||||
this.fitResize();
|
||||
});
|
||||
}
|
||||
|
|
@ -190,7 +239,7 @@ export default class Term extends PureComponent {
|
|||
if (this.props.fontSize !== nextProps.fontSize || this.props.fontFamily !== nextProps.fontFamily) {
|
||||
// invalidate xterm cache about how wide each
|
||||
// character is
|
||||
this.term.charMeasure.measure();
|
||||
this.term.charMeasure.measure(this.termOptions);
|
||||
|
||||
// resize to fit the container
|
||||
this.fitResize();
|
||||
|
|
|
|||
|
|
@ -90,9 +90,13 @@ export default class Terms extends Component {
|
|||
activeSession: this.props.activeSession,
|
||||
sessions: this.props.sessions,
|
||||
backgroundColor: this.props.backgroundColor,
|
||||
foregroundColor: this.props.foregroundColor,
|
||||
borderColor: this.props.borderColor,
|
||||
selectionColor: this.props.selectionColor,
|
||||
colors: this.props.colors,
|
||||
cursorShape: this.props.cursorShape,
|
||||
cursorBlink: this.props.cursorBlink,
|
||||
cursorColor: this.props.cursorColor,
|
||||
fontSize: this.props.fontSize,
|
||||
fontFamily: this.props.fontFamily,
|
||||
uiFontFamily: this.props.uiFontFamily,
|
||||
|
|
@ -119,13 +123,9 @@ export default class Terms extends Component {
|
|||
})}
|
||||
{this.props.customChildren}
|
||||
<StyleSheet
|
||||
colors={this.props.colors}
|
||||
backgroundColor={this.props.backgroundColor}
|
||||
customCSS={this.props.customCSS}
|
||||
cursorColor={this.props.cursorColor}
|
||||
fontSize={this.props.fontSize}
|
||||
fontFamily={this.props.fontFamily}
|
||||
fontSmoothing={this.props.fontSmoothing}
|
||||
foregroundColor={this.props.foregroundColor}
|
||||
borderColor={this.props.borderColor}
|
||||
/>
|
||||
|
|
|
|||
|
|
@ -28,9 +28,11 @@ const TermsContainer = connect(
|
|||
fontSmoothing: state.ui.fontSmoothingOverride,
|
||||
padding: state.ui.padding,
|
||||
cursorColor: state.ui.cursorColor,
|
||||
cursorAccentColor: state.ui.cursorAccentColor,
|
||||
cursorShape: state.ui.cursorShape,
|
||||
cursorBlink: state.ui.cursorBlink,
|
||||
borderColor: state.ui.borderColor,
|
||||
selectionColor: state.ui.selectionColor,
|
||||
colors: state.ui.colors,
|
||||
foregroundColor: state.ui.foregroundColor,
|
||||
backgroundColor: state.ui.backgroundColor,
|
||||
|
|
|
|||
|
|
@ -34,9 +34,11 @@ const initial = Immutable({
|
|||
rows: null,
|
||||
activeUid: null,
|
||||
cursorColor: '#F81CE5',
|
||||
cursorAccentColor: '#000',
|
||||
cursorShape: 'BLOCK',
|
||||
cursorBlink: false,
|
||||
borderColor: '#333',
|
||||
selectionColor: 'rgba(248,28,229,0.3)',
|
||||
fontSize: 12,
|
||||
padding: '12px 14px',
|
||||
fontFamily: 'Menlo, "DejaVu Sans Mono", "Lucida Console", monospace',
|
||||
|
|
@ -131,6 +133,10 @@ const reducer = (state = initial, action) => {
|
|||
ret.cursorColor = config.cursorColor;
|
||||
}
|
||||
|
||||
if (config.cursorAccentColor) {
|
||||
ret.cursorAccentColor = config.cursorAccentColor;
|
||||
}
|
||||
|
||||
if (allowedCursorShapes.has(config.cursorShape)) {
|
||||
ret.cursorShape = config.cursorShape;
|
||||
}
|
||||
|
|
@ -143,6 +149,10 @@ const reducer = (state = initial, action) => {
|
|||
ret.borderColor = config.borderColor;
|
||||
}
|
||||
|
||||
if (config.selectionColor) {
|
||||
ret.selectionColor = config.selectionColor;
|
||||
}
|
||||
|
||||
if (typeof config.padding !== 'undefined' && config.padding !== null) {
|
||||
ret.padding = config.padding;
|
||||
}
|
||||
|
|
|
|||
53
package.json
53
package.json
|
|
@ -1,7 +1,8 @@
|
|||
{
|
||||
"repository": "zeit/hyper",
|
||||
"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",
|
||||
"dev": "webpack -w",
|
||||
"build": "cross-env NODE_ENV=production webpack",
|
||||
|
|
@ -10,21 +11,18 @@
|
|||
"test:unit": "ava test/unit",
|
||||
"test:unit:watch": "yarn run test:unit -- --watch",
|
||||
"prepush": "yarn test",
|
||||
"postinstall": "electron-builder install-app-deps && yarn run rebuild-node-pty",
|
||||
"rebuild-node-pty": "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"
|
||||
"postinstall":
|
||||
"electron-builder install-app-deps && yarn run rebuild-node-pty && yarn --cwd node_modules/xterm",
|
||||
"rebuild-node-pty":
|
||||
"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": {
|
||||
"plugins": [
|
||||
"react",
|
||||
"prettier"
|
||||
],
|
||||
"extends": [
|
||||
"eslint:recommended",
|
||||
"plugin:react/recommended",
|
||||
"prettier"
|
||||
],
|
||||
"plugins": ["react", "prettier"],
|
||||
"extends": ["eslint:recommended", "plugin:react/recommended", "prettier"],
|
||||
"parserOptions": {
|
||||
"ecmaVersion": 8,
|
||||
"sourceType": "module",
|
||||
|
|
@ -41,10 +39,7 @@
|
|||
"node": true
|
||||
},
|
||||
"rules": {
|
||||
"func-names": [
|
||||
"error",
|
||||
"as-needed"
|
||||
],
|
||||
"func-names": ["error", "as-needed"],
|
||||
"no-shadow": "error",
|
||||
"no-extra-semi": 0,
|
||||
"react/prop-types": 0,
|
||||
|
|
@ -90,9 +85,7 @@
|
|||
]
|
||||
},
|
||||
"babel": {
|
||||
"presets": [
|
||||
"react"
|
||||
],
|
||||
"presets": ["react"],
|
||||
"env": {
|
||||
"production": {
|
||||
"plugins": [
|
||||
|
|
@ -137,28 +130,20 @@
|
|||
"target": [
|
||||
{
|
||||
"target": "deb",
|
||||
"arch": [
|
||||
"x64"
|
||||
]
|
||||
"arch": ["x64"]
|
||||
},
|
||||
{
|
||||
"target": "AppImage",
|
||||
"arch": [
|
||||
"x64"
|
||||
]
|
||||
"arch": ["x64"]
|
||||
},
|
||||
{
|
||||
"target": "rpm",
|
||||
"arch": [
|
||||
"x64"
|
||||
]
|
||||
"arch": ["x64"]
|
||||
}
|
||||
]
|
||||
},
|
||||
"win": {
|
||||
"target": [
|
||||
"squirrel"
|
||||
]
|
||||
"target": ["squirrel"]
|
||||
},
|
||||
"mac": {
|
||||
"category": "public.app-category.developer-tools",
|
||||
|
|
@ -204,7 +189,7 @@
|
|||
"semver": "5.4.1",
|
||||
"shebang-loader": "false0.0.1",
|
||||
"uuid": "3.1.0",
|
||||
"xterm": "2.9.2"
|
||||
"xterm": "chabou/xterm.js#hyper"
|
||||
},
|
||||
"devDependencies": {
|
||||
"ava": "0.24.0",
|
||||
|
|
|
|||
140
yarn.lock
140
yarn.lock
|
|
@ -14,15 +14,7 @@
|
|||
version "2.1.1"
|
||||
resolved "https://registry.yarnpkg.com/7zip-bin-win/-/7zip-bin-win-2.1.1.tgz#8acfc28bb34e53a9476b46ae85a97418e6035c20"
|
||||
|
||||
"7zip-bin@^2.2.7":
|
||||
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":
|
||||
"7zip-bin@^2.2.7", "7zip-bin@^2.3.4":
|
||||
version "2.3.4"
|
||||
resolved "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-2.3.4.tgz#0861a3c99793dd794f4dd6175ec4ddfa6af8bc9d"
|
||||
optionalDependencies:
|
||||
|
|
@ -85,8 +77,8 @@
|
|||
arrify "^1.0.1"
|
||||
|
||||
"@types/node@^7.0.18":
|
||||
version "7.0.48"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.48.tgz#24bfdc0aa82e8f6dbd017159c58094a2e06d0abb"
|
||||
version "7.0.49"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.49.tgz#f43777edd31822d6bcb50735a76c7f301d7b3121"
|
||||
|
||||
abbrev@1:
|
||||
version "1.1.1"
|
||||
|
|
@ -1252,7 +1244,7 @@ buffer@^4.3.0:
|
|||
ieee754 "^1.1.4"
|
||||
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"
|
||||
resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-3.3.0.tgz#6374029211544f1a380fc7275658b0616b0e9ae1"
|
||||
dependencies:
|
||||
|
|
@ -1261,7 +1253,16 @@ builder-util-runtime@3.3.0, builder-util-runtime@^3.3.0:
|
|||
fs-extra-p "^4.4.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"
|
||||
resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-3.4.3.tgz#c7d6908ffc56fa3c4de0ec804dbcb9bbf6aa2ab4"
|
||||
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"
|
||||
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:
|
||||
version "1.1.1"
|
||||
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"
|
||||
|
||||
caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639:
|
||||
version "1.0.30000778"
|
||||
resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000778.tgz#167c60e9542a2aa60537c446fb3881d853a3072a"
|
||||
version "1.0.30000782"
|
||||
resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000782.tgz#d8815bce1578c350aced1132507301205e0fab53"
|
||||
|
||||
capture-stack-trace@^1.0.0:
|
||||
version "1.0.0"
|
||||
|
|
@ -2255,8 +2277,8 @@ electron-rebuild@1.6.0:
|
|||
yargs "^7.0.2"
|
||||
|
||||
electron-to-chromium@^1.2.7:
|
||||
version "1.3.27"
|
||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.27.tgz#78ecb8a399066187bb374eede35d9c70565a803d"
|
||||
version "1.3.28"
|
||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.28.tgz#8dd4e6458086644e9f9f0a1cf32e2a1f9dffd9ee"
|
||||
|
||||
electron@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"
|
||||
|
||||
errno@^0.1.3:
|
||||
version "0.1.4"
|
||||
resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.4.tgz#b896e23a9e5e8ba33871fc996abd3635fc9a1c7d"
|
||||
version "0.1.6"
|
||||
resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.6.tgz#c386ce8a6283f14fc09563b71560908c9bf53026"
|
||||
dependencies:
|
||||
prr "~0.0.0"
|
||||
prr "~1.0.1"
|
||||
|
||||
error-ex@^1.2.0:
|
||||
version "1.3.1"
|
||||
|
|
@ -2451,8 +2473,8 @@ eslint-scope@^3.7.1:
|
|||
estraverse "^4.1.1"
|
||||
|
||||
eslint@^4.7.2:
|
||||
version "4.12.1"
|
||||
resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.12.1.tgz#5ec1973822b4a066b353770c3c6d69a2a188e880"
|
||||
version "4.13.1"
|
||||
resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.13.1.tgz#0055e0014464c7eb7878caf549ef2941992b444f"
|
||||
dependencies:
|
||||
ajv "^5.3.0"
|
||||
babel-code-frame "^6.22.0"
|
||||
|
|
@ -2761,12 +2783,12 @@ form-data@~2.3.1:
|
|||
combined-stream "^1.0.5"
|
||||
mime-types "^2.1.12"
|
||||
|
||||
fs-extra-p@^4.4.4:
|
||||
version "4.4.4"
|
||||
resolved "https://registry.yarnpkg.com/fs-extra-p/-/fs-extra-p-4.4.4.tgz#396ad6f914eb2954e1700fd0e18288301ed45f04"
|
||||
fs-extra-p@^4.4.4, fs-extra-p@^4.4.5, fs-extra-p@^4.5.0:
|
||||
version "4.5.0"
|
||||
resolved "https://registry.yarnpkg.com/fs-extra-p/-/fs-extra-p-4.5.0.tgz#b79f3f3fcc0b5e57b7e7caeb06159f958ef15fe8"
|
||||
dependencies:
|
||||
bluebird-lst "^1.0.4"
|
||||
fs-extra "^4.0.2"
|
||||
bluebird-lst "^1.0.5"
|
||||
fs-extra "^5.0.0"
|
||||
|
||||
fs-extra@^0.30.0:
|
||||
version "0.30.0"
|
||||
|
|
@ -2793,9 +2815,17 @@ fs-extra@^3.0.1:
|
|||
jsonfile "^3.0.0"
|
||||
universalify "^0.1.0"
|
||||
|
||||
fs-extra@^4.0.1, fs-extra@^4.0.2:
|
||||
version "4.0.2"
|
||||
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.2.tgz#f91704c53d1b461f893452b0c307d9997647ab6b"
|
||||
fs-extra@^4.0.1:
|
||||
version "4.0.3"
|
||||
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:
|
||||
graceful-fs "^4.1.2"
|
||||
jsonfile "^4.0.0"
|
||||
|
|
@ -2925,8 +2955,8 @@ global-dirs@^0.1.0:
|
|||
ini "^1.3.4"
|
||||
|
||||
globals@^11.0.1:
|
||||
version "11.0.1"
|
||||
resolved "https://registry.yarnpkg.com/globals/-/globals-11.0.1.tgz#12a87bb010e5154396acc535e1e43fc753b0e5e8"
|
||||
version "11.1.0"
|
||||
resolved "https://registry.yarnpkg.com/globals/-/globals-11.1.0.tgz#632644457f5f0e3ae711807183700ebf2e4633e4"
|
||||
|
||||
globals@^9.18.0:
|
||||
version "9.18.0"
|
||||
|
|
@ -3730,9 +3760,9 @@ lazy-cache@^1.0.3:
|
|||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e"
|
||||
|
||||
lazy-val@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/lazy-val/-/lazy-val-1.0.2.tgz#d9b07fb1fce54cbc99b3c611de431b83249369b6"
|
||||
lazy-val@^1.0.2, lazy-val@^1.0.3:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/lazy-val/-/lazy-val-1.0.3.tgz#bb97b200ef00801d94c317e29dc6ed39e31c5edc"
|
||||
|
||||
lazystream@^1.0.0:
|
||||
version "1.0.0"
|
||||
|
|
@ -4867,8 +4897,8 @@ postcss@^6.0.1:
|
|||
supports-color "^4.4.0"
|
||||
|
||||
prebuild-install@^2.3.0:
|
||||
version "2.3.0"
|
||||
resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-2.3.0.tgz#19481247df728b854ab57b187ce234211311b485"
|
||||
version "2.4.1"
|
||||
resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-2.4.1.tgz#c28ba1d1eedc17fbd6b3229a657ffc0fba479b49"
|
||||
dependencies:
|
||||
expand-template "^1.0.2"
|
||||
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"
|
||||
object-assign "^4.1.1"
|
||||
|
||||
prr@~0.0.0:
|
||||
version "0.0.0"
|
||||
resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a"
|
||||
prr@~1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476"
|
||||
|
||||
pseudomap@^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"
|
||||
|
||||
regenerator-runtime@^0.11.0:
|
||||
version "0.11.0"
|
||||
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz#7e54fe5b5ccd5d6624ea6255c3473be090b802e1"
|
||||
version "0.11.1"
|
||||
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9"
|
||||
|
||||
regex-cache@^0.4.2:
|
||||
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"
|
||||
|
||||
rxjs@^5.1.1:
|
||||
version "5.5.3"
|
||||
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.3.tgz#b62227e74b84f4e77bdf440e50b5ee01a1bc7dcd"
|
||||
version "5.5.5"
|
||||
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.5.tgz#e164f11d38eaf29f56f08c3447f74ff02dd84e97"
|
||||
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:
|
||||
version "5.1.1"
|
||||
|
|
@ -5824,7 +5854,13 @@ supports-color@^4.0.0, supports-color@^4.2.1, supports-color@^4.4.0:
|
|||
dependencies:
|
||||
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"
|
||||
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.0.1.tgz#1c5331f22250c84202805b2f17adf16699f3a39a"
|
||||
dependencies:
|
||||
|
|
@ -5842,11 +5878,15 @@ svgo@^0.7.0:
|
|||
sax "~1.2.1"
|
||||
whet.extend "~0.9.9"
|
||||
|
||||
symbol-observable@1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.1.tgz#8340fc4702c3122df5d22288f88283f513d3fdd4"
|
||||
|
||||
symbol-observable@^0.2.2:
|
||||
version "0.2.4"
|
||||
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"
|
||||
resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.1.0.tgz#5c68fd8d54115d9dfb72a84720549222e8db9b32"
|
||||
|
||||
|
|
@ -6409,9 +6449,9 @@ xtend@~2.1.1:
|
|||
dependencies:
|
||||
object-keys "~0.4.0"
|
||||
|
||||
xterm@2.9.2:
|
||||
version "2.9.2"
|
||||
resolved "https://registry.yarnpkg.com/xterm/-/xterm-2.9.2.tgz#ec3e7c636ba67af4a7026be2cff7bdf08e56400a"
|
||||
xterm@chabou/xterm.js#hyper:
|
||||
version "3.0.0"
|
||||
resolved "https://codeload.github.com/chabou/xterm.js/tar.gz/87b1d5276bb72298210021217165ab847a0886ec"
|
||||
|
||||
y18n@^3.2.1:
|
||||
version "3.2.1"
|
||||
|
|
|
|||
Loading…
Reference in a new issue