diff --git a/README.md b/README.md index 551a94f4..c654f288 100644 --- a/README.md +++ b/README.md @@ -172,6 +172,7 @@ computational environment for Jupyter, supporting interactive data science and s - [**Shellvault**](https://www.shellvault.io): The cloud-based SSH terminal you can access from anywhere. - [**Juno**](http://junolab.org/): A flexible Julia IDE, based on Atom. - [**webssh**](https://github.com/huashengdun/webssh): Web based ssh client. +- [**info-beamer hosted**](https://info-beamer.com): Uses Xterm.js to manage digital signage devices from the web dashboard. [And much more...](https://github.com/xtermjs/xterm.js/network/dependents) diff --git a/package.json b/package.json index ad763f0b..c84a0164 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "ts-loader": "^4.5.0", "tslint": "^5.9.1", "tslint-consistent-codestyle": "^1.13.0", - "typescript": "3.0", + "typescript": "3.1", "vinyl-buffer": "^1.0.0", "vinyl-source-stream": "^1.1.0", "webpack": "^4.17.1", diff --git a/src/AccessibilityManager.ts b/src/AccessibilityManager.ts index 1a2de1d7..fa0121ad 100644 --- a/src/AccessibilityManager.ts +++ b/src/AccessibilityManager.ts @@ -5,7 +5,7 @@ import * as Strings from './Strings'; import { ITerminal, IBuffer } from './Types'; -import { isMac } from './shared/utils/Browser'; +import { isMac } from './core/Platform'; import { RenderDebouncer } from './ui/RenderDebouncer'; import { addDisposableDomListener } from './ui/Lifecycle'; import { Disposable } from './common/Lifecycle'; diff --git a/src/Buffer.ts b/src/Buffer.ts index 0f75bdad..dd657a2a 100644 --- a/src/Buffer.ts +++ b/src/Buffer.ts @@ -7,7 +7,7 @@ import { CircularList } from './common/CircularList'; import { CharData, ITerminal, IBuffer, IBufferLine, BufferIndex, IBufferStringIterator, IBufferStringIteratorResult, IBufferLineConstructor } from './Types'; import { EventEmitter } from './common/EventEmitter'; import { IMarker } from 'xterm'; -import { BufferLine, BufferLineTypedArray } from './BufferLine'; +import { BufferLine, BufferLineJSArray } from './BufferLine'; import { DEFAULT_COLOR } from './renderer/atlas/Types'; export const DEFAULT_ATTR = (0 << 18) | (DEFAULT_COLOR << 9) | (256 << 0); @@ -57,9 +57,9 @@ export class Buffer implements IBuffer { } public setBufferLineFactory(type: string): void { - if (type === 'TypedArray') { - if (this._bufferLineConstructor !== BufferLineTypedArray) { - this._bufferLineConstructor = BufferLineTypedArray; + if (type === 'JsArray') { + if (this._bufferLineConstructor !== BufferLineJSArray) { + this._bufferLineConstructor = BufferLineJSArray; this._recreateLines(); } } else { diff --git a/src/BufferLine.ts b/src/BufferLine.ts index 7c697334..a95fe0f4 100644 --- a/src/BufferLine.ts +++ b/src/BufferLine.ts @@ -7,8 +7,10 @@ import { NULL_CELL_CODE, NULL_CELL_WIDTH, NULL_CELL_CHAR } from './Buffer'; /** * Class representing a terminal line. + * + * @deprecated to be removed with one of the next releases */ -export class BufferLine implements IBufferLine { +export class BufferLineJSArray implements IBufferLine { protected _data: CharData[]; public isWrapped = false; public length: number; @@ -94,14 +96,14 @@ export class BufferLine implements IBufferLine { } } - public copyFrom(line: BufferLine): void { + public copyFrom(line: BufferLineJSArray): void { this._data = line._data.slice(0); this.length = line.length; this.isWrapped = line.isWrapped; } public clone(): IBufferLine { - const newLine = new BufferLine(0); + const newLine = new BufferLineJSArray(0); newLine.copyFrom(this); return newLine; } @@ -119,17 +121,8 @@ const enum Cell { /** * Typed array based bufferline implementation. - * Note: Unlike the JS variant the access to the data - * via set/get is always a copy action. - * Sloppy ref style coding will not work anymore: - * line = new BufferLine(10); - * char = line.get(0); // char is a copy - * char[some_index] = 123; // will not update the line - * line.set(0, ch); // do this to update line data - * TODO: - * - provide getData/setData to directly access the data */ -export class BufferLineTypedArray implements IBufferLine { +export class BufferLine implements IBufferLine { protected _data: Uint32Array | null = null; protected _combined: {[index: number]: string} = {}; public length: number; @@ -248,7 +241,7 @@ export class BufferLineTypedArray implements IBufferLine { } /** alter to a full copy of line */ - public copyFrom(line: BufferLineTypedArray): void { + public copyFrom(line: BufferLine): void { if (this.length !== line.length) { this._data = new Uint32Array(line._data); } else { @@ -265,7 +258,7 @@ export class BufferLineTypedArray implements IBufferLine { /** create a new clone */ public clone(): IBufferLine { - const newLine = new BufferLineTypedArray(0); + const newLine = new BufferLine(0); // creation of new typed array from another is actually pretty slow :( // still faster than copying values one by one newLine._data = new Uint32Array(this._data); diff --git a/src/SelectionManager.ts b/src/SelectionManager.ts index 49e21e2c..3dc50271 100644 --- a/src/SelectionManager.ts +++ b/src/SelectionManager.ts @@ -6,7 +6,7 @@ import { ITerminal, ISelectionManager, IBuffer, CharData, IBufferLine } from './Types'; import { XtermListener } from './common/Types'; import { MouseHelper } from './utils/MouseHelper'; -import * as Browser from './shared/utils/Browser'; +import * as Browser from './core/Platform'; import { CharMeasure } from './ui/CharMeasure'; import { EventEmitter } from './common/EventEmitter'; import { SelectionModel } from './SelectionModel'; diff --git a/src/Terminal.ts b/src/Terminal.ts index 99a6e6d5..c5a406da 100644 --- a/src/Terminal.ts +++ b/src/Terminal.ts @@ -29,14 +29,14 @@ import { Buffer, MAX_BUFFER_SIZE, DEFAULT_ATTR, NULL_CELL_CODE, NULL_CELL_WIDTH, import { CompositionHelper } from './CompositionHelper'; import { EventEmitter } from './common/EventEmitter'; import { Viewport } from './Viewport'; -import { rightClickHandler, moveTextAreaUnderMouseCursor, pasteHandler, copyHandler } from './handlers/Clipboard'; +import { rightClickHandler, moveTextAreaUnderMouseCursor, pasteHandler, copyHandler } from './ui/Clipboard'; import { C0 } from './common/data/EscapeSequences'; import { InputHandler } from './InputHandler'; import { Renderer } from './renderer/Renderer'; import { Linkifier } from './Linkifier'; import { SelectionManager } from './SelectionManager'; import { CharMeasure } from './ui/CharMeasure'; -import * as Browser from './shared/utils/Browser'; +import * as Browser from './core/Platform'; import { addDisposableDomListener } from './ui/Lifecycle'; import * as Strings from './Strings'; import { MouseHelper } from './utils/MouseHelper'; @@ -107,7 +107,7 @@ const DEFAULT_OPTIONS: ITerminalOptions = { theme: null, rightClickSelectsWord: Browser.isMac, rendererType: 'canvas', - experimentalBufferLineImpl: 'JsArray' + experimentalBufferLineImpl: 'TypedArray' }; export class Terminal extends EventEmitter implements ITerminal, IDisposable, IInputHandlingTerminal { @@ -1182,7 +1182,7 @@ export class Terminal extends EventEmitter implements ITerminal, IDisposable, II */ public scroll(isWrapped: boolean = false): void { let newLine: IBufferLine; - const useRecycling = this.options.experimentalBufferLineImpl === 'TypedArray'; + const useRecycling = this.options.experimentalBufferLineImpl !== 'JsArray'; if (useRecycling) { newLine = this._blankLine; if (!newLine || newLine.length !== this.cols || newLine.get(0)[CHAR_DATA_ATTR_INDEX] !== this.eraseAttr()) { diff --git a/src/shared/utils/Browser.ts b/src/core/Platform.ts similarity index 100% rename from src/shared/utils/Browser.ts rename to src/core/Platform.ts diff --git a/src/renderer/ColorManager.ts b/src/renderer/ColorManager.ts index d169f266..8a463670 100644 --- a/src/renderer/ColorManager.ts +++ b/src/renderer/ColorManager.ts @@ -3,8 +3,7 @@ * @license MIT */ -import { IColorManager } from './Types'; -import { IColor, IColorSet } from '../shared/Types'; +import { IColorManager, IColor, IColorSet } from './Types'; import { ITheme } from 'xterm'; const DEFAULT_FOREGROUND = fromHex('#ffffff'); diff --git a/src/renderer/Types.ts b/src/renderer/Types.ts index 824304ed..f2271f95 100644 --- a/src/renderer/Types.ts +++ b/src/renderer/Types.ts @@ -5,7 +5,6 @@ import { ITerminal, CharacterJoinerHandler } from '../Types'; import { IEventEmitter, ITheme, IDisposable } from 'xterm'; -import { IColorSet } from '../shared/Types'; /** * Flags used to render terminal text properly. @@ -48,9 +47,6 @@ export interface IColorManager { colors: IColorSet; } -// TODO: We should probably rewrite the imports for IColorSet, but there's a lot of them -export { IColorSet }; - export interface IRenderDimensions { scaledCharWidth: number; scaledCharHeight: number; @@ -134,3 +130,17 @@ export interface ICharacterJoinerRegistry { deregisterCharacterJoiner(joinerId: number): boolean; getJoinedCharacters(row: number): [number, number][]; } + +export interface IColor { + css: string; + rgba: number; // 32-bit int with rgba in each byte +} + +export interface IColorSet { + foreground: IColor; + background: IColor; + cursor: IColor; + cursorAccent: IColor; + selection: IColor; + ansi: IColor[]; +} diff --git a/src/renderer/atlas/CharAtlasCache.ts b/src/renderer/atlas/CharAtlasCache.ts index 61b2ed13..5a9c1a6e 100644 --- a/src/renderer/atlas/CharAtlasCache.ts +++ b/src/renderer/atlas/CharAtlasCache.ts @@ -5,13 +5,13 @@ import { ITerminal } from '../../Types'; import { IColorSet } from '../Types'; -import { ICharAtlasConfig } from '../../shared/atlas/Types'; import { generateConfig, configEquals } from './CharAtlasUtils'; import BaseCharAtlas from './BaseCharAtlas'; import DynamicCharAtlas from './DynamicCharAtlas'; import NoneCharAtlas from './NoneCharAtlas'; import StaticCharAtlas from './StaticCharAtlas'; import WebglCharAtlas from '../webgl/WebglCharAtlas'; +import { ICharAtlasConfig } from './Types'; const charAtlasImplementations = { 'none': NoneCharAtlas, diff --git a/src/shared/atlas/CharAtlasGenerator.ts b/src/renderer/atlas/CharAtlasGenerator.ts similarity index 85% rename from src/shared/atlas/CharAtlasGenerator.ts rename to src/renderer/atlas/CharAtlasGenerator.ts index f78a6d41..e40215cf 100644 --- a/src/shared/atlas/CharAtlasGenerator.ts +++ b/src/renderer/atlas/CharAtlasGenerator.ts @@ -4,18 +4,9 @@ */ import { FontWeight } from 'xterm'; -import { CHAR_ATLAS_CELL_SPACING, ICharAtlasConfig } from './Types'; +import { isFirefox, isSafari } from '../../core/Platform'; import { IColor } from '../Types'; -import { isFirefox, isSafari } from '../utils/Browser'; - -declare const Promise: any; - -export interface IOffscreenCanvas { - width: number; - height: number; - getContext(type: '2d', config?: Canvas2DContextAttributes): CanvasRenderingContext2D; - transferToImageBitmap(): ImageBitmap; -} +import { ICharAtlasConfig, CHAR_ATLAS_CELL_SPACING } from './Types'; /** * Generates a char atlas. @@ -23,7 +14,7 @@ export interface IOffscreenCanvas { * @param canvasFactory A function to generate a canvas with a width or height. * @param config The config for the new char atlas. */ -export function generateStaticCharAtlasTexture(context: Window, canvasFactory: (width: number, height: number) => HTMLCanvasElement | IOffscreenCanvas, config: ICharAtlasConfig): HTMLCanvasElement | Promise { +export function generateStaticCharAtlasTexture(context: Window, canvasFactory: (width: number, height: number) => HTMLCanvasElement, config: ICharAtlasConfig): HTMLCanvasElement | Promise { const cellWidth = config.scaledCharWidth + CHAR_ATLAS_CELL_SPACING; const cellHeight = config.scaledCharHeight + CHAR_ATLAS_CELL_SPACING; const canvas = canvasFactory( @@ -101,12 +92,7 @@ export function generateStaticCharAtlasTexture(context: Window, canvasFactory: ( // performance (tested on v55). if (!('createImageBitmap' in context) || isFirefox || isSafari) { // Don't attempt to clear background colors if createImageBitmap is not supported - if (canvas instanceof HTMLCanvasElement) { - // Just return the HTMLCanvas if it's a HTMLCanvasElement - return canvas; - } - // Transfer to an ImageBitmap is this is an OffscreenCanvas - return new Promise((r: (bitmap: ImageBitmap) => void) => r(canvas.transferToImageBitmap())); + return canvas; } const charAtlasImageData = ctx.getImageData(0, 0, canvas.width, canvas.height); diff --git a/src/renderer/atlas/CharAtlasUtils.ts b/src/renderer/atlas/CharAtlasUtils.ts index 360786d2..52c8a9bd 100644 --- a/src/renderer/atlas/CharAtlasUtils.ts +++ b/src/renderer/atlas/CharAtlasUtils.ts @@ -5,8 +5,7 @@ import { ITerminal } from '../../Types'; import { IColorSet } from '../Types'; -import { ICharAtlasConfig } from '../../shared/atlas/Types'; -import { DEFAULT_COLOR } from './Types'; +import { DEFAULT_COLOR, ICharAtlasConfig } from './Types'; export function generateConfig(scaledCharWidth: number, scaledCharHeight: number, terminal: ITerminal, colors: IColorSet, devicePixelRatio: number = window.devicePixelRatio): ICharAtlasConfig { // null out some fields that don't matter diff --git a/src/renderer/atlas/DynamicCharAtlas.ts b/src/renderer/atlas/DynamicCharAtlas.ts index b6b323f0..72010768 100644 --- a/src/renderer/atlas/DynamicCharAtlas.ts +++ b/src/renderer/atlas/DynamicCharAtlas.ts @@ -3,14 +3,13 @@ * @license MIT */ -import { DIM_OPACITY, IGlyphIdentifier, INVERTED_DEFAULT_COLOR } from './Types'; -import { ICharAtlasConfig } from '../../shared/atlas/Types'; -import { IColor } from '../../shared/Types'; +import { DIM_OPACITY, IGlyphIdentifier, INVERTED_DEFAULT_COLOR, ICharAtlasConfig } from './Types'; import BaseCharAtlas from './BaseCharAtlas'; import { DEFAULT_ANSI_COLORS } from '../ColorManager'; -import { clearColor } from '../../shared/atlas/CharAtlasGenerator'; +import { clearColor } from './CharAtlasGenerator'; import LRUMap from './LRUMap'; -import { isFirefox, isSafari } from '../../shared/utils/Browser'; +import { isFirefox, isSafari } from '../../core/Platform'; +import { IColor } from '../Types'; // In practice we're probably never going to exhaust a texture this large. For debugging purposes, // however, it can be useful to set this to a really tiny value, to verify that LRU eviction works. diff --git a/src/renderer/atlas/NoneCharAtlas.ts b/src/renderer/atlas/NoneCharAtlas.ts index 1cbc9eea..308e3075 100644 --- a/src/renderer/atlas/NoneCharAtlas.ts +++ b/src/renderer/atlas/NoneCharAtlas.ts @@ -5,8 +5,7 @@ * A dummy CharAtlas implementation that always fails to draw characters. */ -import { IGlyphIdentifier } from './Types'; -import { ICharAtlasConfig } from '../../shared/atlas/Types'; +import { IGlyphIdentifier, ICharAtlasConfig } from './Types'; import BaseCharAtlas from './BaseCharAtlas'; export default class NoneCharAtlas extends BaseCharAtlas { diff --git a/src/renderer/atlas/StaticCharAtlas.ts b/src/renderer/atlas/StaticCharAtlas.ts index 8dc8be74..b54c833e 100644 --- a/src/renderer/atlas/StaticCharAtlas.ts +++ b/src/renderer/atlas/StaticCharAtlas.ts @@ -3,9 +3,8 @@ * @license MIT */ -import { DIM_OPACITY, IGlyphIdentifier, DEFAULT_COLOR } from './Types'; -import { CHAR_ATLAS_CELL_SPACING, ICharAtlasConfig } from '../../shared/atlas/Types'; -import { generateStaticCharAtlasTexture } from '../../shared/atlas/CharAtlasGenerator'; +import { DIM_OPACITY, IGlyphIdentifier, DEFAULT_COLOR, ICharAtlasConfig, CHAR_ATLAS_CELL_SPACING } from './Types'; +import { generateStaticCharAtlasTexture } from './CharAtlasGenerator'; import BaseCharAtlas from './BaseCharAtlas'; import { is256Color } from './CharAtlasUtils'; diff --git a/src/renderer/atlas/Types.ts b/src/renderer/atlas/Types.ts index 76cfd07d..d03aa1f7 100644 --- a/src/renderer/atlas/Types.ts +++ b/src/renderer/atlas/Types.ts @@ -3,10 +3,15 @@ * @license MIT */ +import { FontWeight } from 'xterm'; +import { IColorSet } from '../Types'; + export const DEFAULT_COLOR = 256; export const INVERTED_DEFAULT_COLOR = 257; export const DIM_OPACITY = 0.5; +export const CHAR_ATLAS_CELL_SPACING = 1; + export interface IGlyphIdentifier { chars: string; code: number; @@ -16,3 +21,16 @@ export interface IGlyphIdentifier { dim: boolean; italic: boolean; } + +export interface ICharAtlasConfig { + type: 'none' | 'static' | 'dynamic' | 'webgl'; + devicePixelRatio: number; + fontSize: number; + fontFamily: string; + fontWeight: FontWeight; + fontWeightBold: FontWeight; + scaledCharWidth: number; + scaledCharHeight: number; + allowTransparency: boolean; + colors: IColorSet; +} diff --git a/src/renderer/webgl/RectangleRenderer.ts b/src/renderer/webgl/RectangleRenderer.ts index cd368621..37732703 100644 --- a/src/renderer/webgl/RectangleRenderer.ts +++ b/src/renderer/webgl/RectangleRenderer.ts @@ -4,9 +4,8 @@ */ import { ITerminal } from '../../Types'; -import { IColorManager, IRenderDimensions } from '../Types'; +import { IColorManager, IRenderDimensions, IColor } from '../Types'; import { createProgram, expandFloat32Array, PROJECTION_MATRIX } from './WebglUtils'; -import { IColor } from '../../shared/Types'; import { IRenderModel, IWebGLVertexArrayObject, IWebGL2RenderingContext, ISelectionRenderModel } from './Types'; import { fill } from '../../common/TypedArrayUtils'; import { INVERTED_DEFAULT_COLOR, DEFAULT_COLOR } from '../atlas/Types'; diff --git a/src/renderer/webgl/WebglCharAtlas.ts b/src/renderer/webgl/WebglCharAtlas.ts index 03e9b95b..d181acbf 100644 --- a/src/renderer/webgl/WebglCharAtlas.ts +++ b/src/renderer/webgl/WebglCharAtlas.ts @@ -3,16 +3,14 @@ * @license MIT */ -import { DIM_OPACITY, IGlyphIdentifier, INVERTED_DEFAULT_COLOR, DEFAULT_COLOR } from '../atlas/Types'; -import { ICharAtlasConfig } from '../../shared/atlas/Types'; -import { IColor } from '../../shared/Types'; +import { DIM_OPACITY, IGlyphIdentifier, INVERTED_DEFAULT_COLOR, DEFAULT_COLOR, ICharAtlasConfig } from '../atlas/Types'; import BaseCharAtlas from '../atlas/BaseCharAtlas'; import { DEFAULT_ANSI_COLORS } from '../ColorManager'; -import { clearColor } from '../../shared/atlas/CharAtlasGenerator'; import { IRasterizedGlyph, IBoundingBox, IRasterizedGlyphSet } from './Types'; import { DEFAULT_ATTR } from '../../Buffer'; -import { FLAGS } from '../Types'; +import { FLAGS, IColor } from '../Types'; import { is256Color } from '../atlas/CharAtlasUtils'; +import { clearColor } from '../atlas/CharAtlasGenerator'; // In practice we're probably never going to exhaust a texture this large. For debugging purposes, // however, it can be useful to set this to a really tiny value, to verify that LRU eviction works. diff --git a/src/shared/Types.ts b/src/shared/Types.ts deleted file mode 100644 index 0cded8a8..00000000 --- a/src/shared/Types.ts +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Copyright (c) 2017 The xterm.js authors. All rights reserved. - * @license MIT - */ - -export interface IColor { - css: string; - rgba: number; // 32-bit int with rgba in each byte -} - -export interface IColorSet { - foreground: IColor; - background: IColor; - cursor: IColor; - cursorAccent: IColor; - selection: IColor; - ansi: IColor[]; -} diff --git a/src/shared/atlas/Types.ts b/src/shared/atlas/Types.ts deleted file mode 100644 index 7a69f78b..00000000 --- a/src/shared/atlas/Types.ts +++ /dev/null @@ -1,22 +0,0 @@ -/** - * Copyright (c) 2017 The xterm.js authors. All rights reserved. - * @license MIT - */ - -import { FontWeight } from 'xterm'; -import { IColorSet } from '../Types'; - -export const CHAR_ATLAS_CELL_SPACING = 1; - -export interface ICharAtlasConfig { - type: 'none' | 'static' | 'dynamic' | 'webgl'; - devicePixelRatio: number; - fontSize: number; - fontFamily: string; - fontWeight: FontWeight; - fontWeightBold: FontWeight; - scaledCharWidth: number; - scaledCharHeight: number; - allowTransparency: boolean; - colors: IColorSet; -} diff --git a/src/handlers/Clipboard.test.ts b/src/ui/Clipboard.test.ts similarity index 100% rename from src/handlers/Clipboard.test.ts rename to src/ui/Clipboard.test.ts diff --git a/src/handlers/Clipboard.ts b/src/ui/Clipboard.ts similarity index 100% rename from src/handlers/Clipboard.ts rename to src/ui/Clipboard.ts diff --git a/src/ui/ScreenDprMonitor.ts b/src/ui/ScreenDprMonitor.ts index 9247a032..d66eeb64 100644 --- a/src/ui/ScreenDprMonitor.ts +++ b/src/ui/ScreenDprMonitor.ts @@ -19,7 +19,7 @@ export type ScreenDprListener = (newDevicePixelRatio?: number, oldDevicePixelRat */ export class ScreenDprMonitor extends Disposable { private _currentDevicePixelRatio: number; - private _outerListener: MediaQueryListListener; + private _outerListener: (this: MediaQueryList, ev: MediaQueryListEvent) => any; private _listener: ScreenDprListener; private _resolutionMediaMatchList: MediaQueryList; diff --git a/src/utils/TestUtils.test.ts b/src/utils/TestUtils.test.ts index a5ef4b9f..10033a33 100644 --- a/src/utils/TestUtils.test.ts +++ b/src/utils/TestUtils.test.ts @@ -7,7 +7,7 @@ import { IColorSet, IRenderer, IRenderDimensions, IColorManager } from '../rende import { IInputHandlingTerminal, IViewport, ICompositionHelper, ITerminal, IBuffer, IBufferSet, IBrowser, ICharMeasure, ISelectionManager, ITerminalOptions, ILinkifier, IMouseHelper, ILinkMatcherOptions, CharacterJoinerHandler, IBufferLine, IBufferStringIterator } from '../Types'; import { ICircularList, XtermListener } from '../common/Types'; import { Buffer } from '../Buffer'; -import * as Browser from '../shared/utils/Browser'; +import * as Browser from '../core/Platform'; import { ITheme, IDisposable, IMarker } from 'xterm'; import { Terminal } from '../Terminal'; diff --git a/typings/xterm.d.ts b/typings/xterm.d.ts index 881ea292..97298094 100644 --- a/typings/xterm.d.ts +++ b/typings/xterm.d.ts @@ -108,7 +108,7 @@ declare module 'xterm' { * - 'TypedArray': The new experimental implementation based on TypedArrays that is expected to * significantly boost performance and memory consumption. Use at your own risk. * - * This option will be removed in the future. + * @deprecated This option will be removed in the future. */ experimentalBufferLineImpl?: 'JsArray' | 'TypedArray'; diff --git a/yarn.lock b/yarn.lock index 267c3bfc..db31bfe1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6716,10 +6716,10 @@ typedarray@^0.0.6, typedarray@~0.0.5: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript@3.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.0.3.tgz#4853b3e275ecdaa27f78fda46dc273a7eb7fc1c8" - integrity sha512-kk80vLW9iGtjMnIv11qyxLqZm20UklzuR2tL0QAnDIygIUIemcZMxlMWudl9OOt76H3ntVzcTiddQ1/pAAJMYg== +typescript@3.1: + version "3.1.6" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.1.6.tgz#b6543a83cfc8c2befb3f4c8fba6896f5b0c9be68" + integrity sha512-tDMYfVtvpb96msS1lDX9MEdHrW4yOuZ4Kdc4Him9oU796XldPYF/t2+uKoX0BBa0hXXwDlqYQbXY5Rzjzc5hBA== uglify-es@^3.3.4: version "3.3.9"