From 3d2035e1a068ca54e5a4c0b87a308ba53f94cfd1 Mon Sep 17 00:00:00 2001 From: gou4shi1 Date: Thu, 15 Nov 2018 11:43:38 +0800 Subject: [PATCH 01/15] getCoordsRelativeToElement: use getBoundingClientRect and clientX/Y. --- src/utils/MouseHelper.ts | 27 ++++----------------------- 1 file changed, 4 insertions(+), 23 deletions(-) diff --git a/src/utils/MouseHelper.ts b/src/utils/MouseHelper.ts index ca1bb27ed1..c3f78e84fa 100644 --- a/src/utils/MouseHelper.ts +++ b/src/utils/MouseHelper.ts @@ -13,29 +13,10 @@ export class MouseHelper { this._renderer = renderer; } - public static getCoordsRelativeToElement(event: {pageX: number, pageY: number}, element: HTMLElement): [number, number] { - // Ignore browsers that don't support MouseEvent.pageX - if (event.pageX === null || event.pageX === undefined) { - return null; - } - - const originalElement = element; - let x = event.pageX; - let y = event.pageY; - - // Converts the coordinates from being relative to the document to being - // relative to the terminal. - while (element) { - x -= element.offsetLeft; - y -= element.offsetTop; - element = element.offsetParent; - } - element = originalElement; - while (element && element !== element.ownerDocument.body) { - x += element.scrollLeft; - y += element.scrollTop; - element = element.parentElement; - } + public static getCoordsRelativeToElement(event: {target: HTMLElement, clientX: number, clientY: number}, element: HTMLElement): [number, number] { + let rect = event.target.getBoundingClientRect(); + let x = event.clientX - rect.left; + let y = event.clientY - rect.top; return [x, y]; } From 3ca0598279d5526a4e50607f2b0b6720d507030a Mon Sep 17 00:00:00 2001 From: gou4shi1 Date: Thu, 15 Nov 2018 11:56:41 +0800 Subject: [PATCH 02/15] fix EventTarget type --- src/utils/MouseHelper.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/MouseHelper.ts b/src/utils/MouseHelper.ts index c3f78e84fa..11efd647dc 100644 --- a/src/utils/MouseHelper.ts +++ b/src/utils/MouseHelper.ts @@ -13,7 +13,7 @@ export class MouseHelper { this._renderer = renderer; } - public static getCoordsRelativeToElement(event: {target: HTMLElement, clientX: number, clientY: number}, element: HTMLElement): [number, number] { + public static getCoordsRelativeToElement(event: {target: EventTarget, clientX: number, clientY: number}, element: HTMLElement): [number, number] { let rect = event.target.getBoundingClientRect(); let x = event.clientX - rect.left; let y = event.clientY - rect.top; From 7f181999854930c8fa123bcdf4dca4982d0e7c41 Mon Sep 17 00:00:00 2001 From: gou4shi1 Date: Thu, 6 Dec 2018 14:37:27 +0800 Subject: [PATCH 03/15] Fix build fail --- src/utils/MouseHelper.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/MouseHelper.ts b/src/utils/MouseHelper.ts index 11efd647dc..7870f4772d 100644 --- a/src/utils/MouseHelper.ts +++ b/src/utils/MouseHelper.ts @@ -33,7 +33,7 @@ export class MouseHelper { * apply an offset to the x value such that the left half of the cell will * select that cell and the right half will select the next cell. */ - public getCoords(event: {pageX: number, pageY: number}, element: HTMLElement, charMeasure: ICharMeasure, lineHeight: number, colCount: number, rowCount: number, isSelection?: boolean): [number, number] { + public getCoords(event: {target: EventTarget, pageX: number, pageY: number}, element: HTMLElement, charMeasure: ICharMeasure, lineHeight: number, colCount: number, rowCount: number, isSelection?: boolean): [number, number] { // Coordinates cannot be measured if charMeasure has not been initialized if (!charMeasure.width || !charMeasure.height) { return null; From b5b2bcd0c911f4261abecd106a3b0f660ace621f Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Sun, 9 Dec 2018 09:08:11 -0800 Subject: [PATCH 04/15] Allow decimal line heights in demo --- demo/client.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/demo/client.ts b/demo/client.ts index d5196d3779..6c69899e6b 100644 --- a/demo/client.ts +++ b/demo/client.ts @@ -235,7 +235,7 @@ function initOptions(term: TerminalType): void { }); html += '
'; numberOptions.forEach(o => { - html += `
`; + html += `
`; }); html += '
'; Object.keys(stringOptions).forEach(o => { @@ -265,7 +265,7 @@ function initOptions(term: TerminalType): void { if (o === 'cols' || o === 'rows') { updateTerminalSize(); } else { - term.setOption(o, parseInt(input.value, 10)); + term.setOption(o, o === 'lineHeight' ? parseFloat(input.value) : parseInt(input.value, 10)); } }); }); From 693e17a5cbbea22e6bdcfeb98c71bb300dc9681d Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Sun, 9 Dec 2018 09:13:30 -0800 Subject: [PATCH 05/15] Add missing break in options code Atlas is reset as part of onResize, this should be safe --- src/Terminal.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Terminal.ts b/src/Terminal.ts index 2cfc1ca88b..779d9bf5e3 100644 --- a/src/Terminal.ts +++ b/src/Terminal.ts @@ -464,6 +464,7 @@ export class Terminal extends EventEmitter implements ITerminal, IDisposable, II this.renderer.onResize(this.cols, this.rows); this.refresh(0, this.rows - 1); } + break; case 'rendererType': if (this.renderer) { this.unregister(this.renderer); From fe9eb7d31ebb0a5935eaf311d97dfbdeb5102477 Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Sun, 9 Dec 2018 09:19:56 -0800 Subject: [PATCH 06/15] Call dispose when atlas is no longer used in cache Only runtime change is that this clears the bitmap commit timeout in DynamicCharAtlas --- src/renderer/atlas/CharAtlasCache.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/renderer/atlas/CharAtlasCache.ts b/src/renderer/atlas/CharAtlasCache.ts index 3cb0e1cd27..388a181b57 100644 --- a/src/renderer/atlas/CharAtlasCache.ts +++ b/src/renderer/atlas/CharAtlasCache.ts @@ -42,8 +42,6 @@ export function acquireCharAtlas( ): BaseCharAtlas { const newConfig = generateConfig(scaledCharWidth, scaledCharHeight, terminal, colors); - // TODO: Currently if a terminal changes configs it will not free the entry reference (until it's disposed) - // Check to see if the terminal already owns this config for (let i = 0; i < charAtlasCache.length; i++) { const entry = charAtlasCache[i]; @@ -54,6 +52,7 @@ export function acquireCharAtlas( } // The configs differ, release the terminal from the entry if (entry.ownedBy.length === 1) { + entry.atlas.dispose(); charAtlasCache.splice(i, 1); } else { entry.ownedBy.splice(ownedByIndex, 1); @@ -94,6 +93,7 @@ export function removeTerminalFromCache(terminal: ITerminal): void { if (index !== -1) { if (charAtlasCache[i].ownedBy.length === 1) { // Remove the cache entry if it's the only terminal + charAtlasCache[i].atlas.dispose(); charAtlasCache.splice(i, 1); } else { // Remove the reference from the cache entry From 6b9fb48898eb9d3741660d88deee1af747db5929 Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Sun, 9 Dec 2018 09:59:33 -0800 Subject: [PATCH 07/15] Fix tests/lint, use element instead of event.target --- src/Types.ts | 2 +- src/utils/MouseHelper.test.ts | 20 +++++++------------- src/utils/MouseHelper.ts | 14 ++++++-------- 3 files changed, 14 insertions(+), 22 deletions(-) diff --git a/src/Types.ts b/src/Types.ts index e857842616..d0830fb139 100644 --- a/src/Types.ts +++ b/src/Types.ts @@ -246,7 +246,7 @@ export interface ILinkifierAccessor { } export interface IMouseHelper { - getCoords(event: { pageX: number, pageY: number }, element: HTMLElement, charMeasure: ICharMeasure, lineHeight: number, colCount: number, rowCount: number, isSelection?: boolean): [number, number]; + getCoords(event: { clientX: number, clientY: number }, element: HTMLElement, charMeasure: ICharMeasure, lineHeight: number, colCount: number, rowCount: number, isSelection?: boolean): [number, number]; getRawByteCoords(event: MouseEvent, element: HTMLElement, charMeasure: ICharMeasure, lineHeight: number, colCount: number, rowCount: number): { x: number, y: number }; } diff --git a/src/utils/MouseHelper.test.ts b/src/utils/MouseHelper.test.ts index ac3137f40f..23fa7a6715 100644 --- a/src/utils/MouseHelper.test.ts +++ b/src/utils/MouseHelper.test.ts @@ -37,34 +37,28 @@ describe('MouseHelper.getCoords', () => { describe('when charMeasure is not initialized', () => { it('should return null', () => { charMeasure = new MockCharMeasure(); - assert.equal(mouseHelper.getCoords({ pageX: 0, pageY: 0 }, document.createElement('div'), charMeasure, 1, 10, 10), null); - }); - }); - - describe('when pageX/pageY are not supported', () => { - it('should return null', () => { - assert.equal(mouseHelper.getCoords({ pageX: undefined, pageY: undefined }, document.createElement('div'), charMeasure, 1, 10, 10), null); + assert.equal(mouseHelper.getCoords({ clientX: 0, clientY: 0 }, document.createElement('div'), charMeasure, 1, 10, 10), null); }); }); it('should return the cell that was clicked', () => { let coords: [number, number]; - coords = mouseHelper.getCoords({ pageX: CHAR_WIDTH / 2, pageY: CHAR_HEIGHT / 2 }, document.createElement('div'), charMeasure, 1, 10, 10); + coords = mouseHelper.getCoords({ clientX: CHAR_WIDTH / 2, clientY: CHAR_HEIGHT / 2 }, document.createElement('div'), charMeasure, 1, 10, 10); assert.deepEqual(coords, [1, 1]); - coords = mouseHelper.getCoords({ pageX: CHAR_WIDTH, pageY: CHAR_HEIGHT }, document.createElement('div'), charMeasure, 1, 10, 10); + coords = mouseHelper.getCoords({ clientX: CHAR_WIDTH, clientY: CHAR_HEIGHT }, document.createElement('div'), charMeasure, 1, 10, 10); assert.deepEqual(coords, [1, 1]); - coords = mouseHelper.getCoords({ pageX: CHAR_WIDTH, pageY: CHAR_HEIGHT + 1 }, document.createElement('div'), charMeasure, 1, 10, 10); + coords = mouseHelper.getCoords({ clientX: CHAR_WIDTH, clientY: CHAR_HEIGHT + 1 }, document.createElement('div'), charMeasure, 1, 10, 10); assert.deepEqual(coords, [1, 2]); - coords = mouseHelper.getCoords({ pageX: CHAR_WIDTH + 1, pageY: CHAR_HEIGHT }, document.createElement('div'), charMeasure, 1, 10, 10); + coords = mouseHelper.getCoords({ clientX: CHAR_WIDTH + 1, clientY: CHAR_HEIGHT }, document.createElement('div'), charMeasure, 1, 10, 10); assert.deepEqual(coords, [2, 1]); }); it('should ensure the coordinates are returned within the terminal bounds', () => { let coords: [number, number]; - coords = mouseHelper.getCoords({ pageX: -1, pageY: -1 }, document.createElement('div'), charMeasure, 1, 10, 10); + coords = mouseHelper.getCoords({ clientX: -1, clientY: -1 }, document.createElement('div'), charMeasure, 1, 10, 10); assert.deepEqual(coords, [1, 1]); // Event are double the cols/rows - coords = mouseHelper.getCoords({ pageX: CHAR_WIDTH * 20, pageY: CHAR_HEIGHT * 20 }, document.createElement('div'), charMeasure, 1, 10, 10); + coords = mouseHelper.getCoords({ clientX: CHAR_WIDTH * 20, clientY: CHAR_HEIGHT * 20 }, document.createElement('div'), charMeasure, 1, 10, 10); assert.deepEqual(coords, [10, 10], 'coordinates should never come back as larger than the terminal'); }); }); diff --git a/src/utils/MouseHelper.ts b/src/utils/MouseHelper.ts index 7870f4772d..967218b658 100644 --- a/src/utils/MouseHelper.ts +++ b/src/utils/MouseHelper.ts @@ -3,21 +3,19 @@ * @license MIT */ -import { ICharMeasure } from '../Types'; +import { ICharMeasure, IMouseHelper } from '../Types'; import { IRenderer } from '../renderer/Types'; -export class MouseHelper { +export class MouseHelper implements IMouseHelper { constructor(private _renderer: IRenderer) {} public setRenderer(renderer: IRenderer): void { this._renderer = renderer; } - public static getCoordsRelativeToElement(event: {target: EventTarget, clientX: number, clientY: number}, element: HTMLElement): [number, number] { - let rect = event.target.getBoundingClientRect(); - let x = event.clientX - rect.left; - let y = event.clientY - rect.top; - return [x, y]; + public static getCoordsRelativeToElement(event: {clientX: number, clientY: number}, element: HTMLElement): [number, number] { + const rect = element.getBoundingClientRect(); + return [event.clientX - rect.left, event.clientY - rect.top]; } /** @@ -33,7 +31,7 @@ export class MouseHelper { * apply an offset to the x value such that the left half of the cell will * select that cell and the right half will select the next cell. */ - public getCoords(event: {target: EventTarget, pageX: number, pageY: number}, element: HTMLElement, charMeasure: ICharMeasure, lineHeight: number, colCount: number, rowCount: number, isSelection?: boolean): [number, number] { + public getCoords(event: {clientX: number, clientY: number}, element: HTMLElement, charMeasure: ICharMeasure, lineHeight: number, colCount: number, rowCount: number, isSelection?: boolean): [number, number] { // Coordinates cannot be measured if charMeasure has not been initialized if (!charMeasure.width || !charMeasure.height) { return null; From 1c4a71f0df478144a1ca9f1e45420bcc39e23ab4 Mon Sep 17 00:00:00 2001 From: Per Bothner Date: Sun, 9 Dec 2018 10:56:34 -0800 Subject: [PATCH 08/15] Optimize parsing of OSC_STRING to minimize string concatenation. --- src/EscapeSequenceParser.ts | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/src/EscapeSequenceParser.ts b/src/EscapeSequenceParser.ts index b38c50f543..dbb14058f1 100644 --- a/src/EscapeSequenceParser.ts +++ b/src/EscapeSequenceParser.ts @@ -391,7 +391,11 @@ export class EscapeSequenceParser extends Disposable implements IEscapeSequenceP } // normal transition & action lookup - transition = (code < 0xa0) ? (table[currentState << 8 | code]) : DEFAULT_TRANSITION; + transition = (code < 0xa0 + ? (table[currentState << 8 | code]) + : currentState === ParserState.OSC_STRING + ? (ParserAction.OSC_PUT << 4) | ParserState.OSC_STRING + : DEFAULT_TRANSITION); switch (transition >> 4) { case ParserAction.PRINT: print = (~print) ? print : i; @@ -423,10 +427,6 @@ export class EscapeSequenceParser extends Disposable implements IEscapeSequenceP case ParserState.GROUND: print = (~print) ? print : i; break; - case ParserState.OSC_STRING: - osc += String.fromCharCode(code); - transition |= ParserState.OSC_STRING; - break; case ParserState.CSI_IGNORE: transition |= ParserState.CSI_IGNORE; break; @@ -517,7 +517,16 @@ export class EscapeSequenceParser extends Disposable implements IEscapeSequenceP osc = ''; break; case ParserAction.OSC_PUT: - osc += data.charAt(i); + for (let j = i + 1; ; j++) { + if (j >= l + || ((code = data.charCodeAt(j)) <= 0x9f + && (table[ParserState.OSC_STRING << 8 | code] >> 4 + !== ParserAction.OSC_PUT))) { + osc += data.substring(i, j); + i = j - 1; + break; + } + } break; case ParserAction.OSC_END: if (osc && code !== 0x18 && code !== 0x1a) { From 2cb293ceb270823dae117d777e995408c563eda1 Mon Sep 17 00:00:00 2001 From: Per Bothner Date: Sun, 9 Dec 2018 19:03:58 -0800 Subject: [PATCH 09/15] Further tweaks to optimize parsing of OSC_STRING. --- src/EscapeSequenceParser.ts | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/src/EscapeSequenceParser.ts b/src/EscapeSequenceParser.ts index dbb14058f1..3fa3ba49e3 100644 --- a/src/EscapeSequenceParser.ts +++ b/src/EscapeSequenceParser.ts @@ -67,7 +67,8 @@ const PRINTABLES = r(0x20, 0x7f); const EXECUTABLES = r(0x00, 0x18); EXECUTABLES.push(0x19); EXECUTABLES.push.apply(EXECUTABLES, r(0x1c, 0x20)); -const DEFAULT_TRANSITION = ParserAction.ERROR << 4 | ParserState.GROUND; +// Pseudo-character placeholder for printable non-ascii characters. +const NON_ASCII_PRINTABLE = 0xA0; /** * VT500 compatible transition table. @@ -79,7 +80,7 @@ export const VT500_TRANSITION_TABLE = (function (): TransitionTable { const states: number[] = r(ParserState.GROUND, ParserState.DCS_PASSTHROUGH + 1); let state: any; - // table with default transition [any] --> DEFAULT_TRANSITION + // table with default transition for (state in states) { // NOTE: table lookup is capped at 0xa0 in parse to keep the table small for (let code = 0; code < 160; ++code) { @@ -184,6 +185,7 @@ export const VT500_TRANSITION_TABLE = (function (): TransitionTable { table.addMany(PRINTABLES, ParserState.DCS_PASSTHROUGH, ParserAction.DCS_PUT, ParserState.DCS_PASSTHROUGH); table.add(0x7f, ParserState.DCS_PASSTHROUGH, ParserAction.IGNORE, ParserState.DCS_PASSTHROUGH); table.addMany([0x1b, 0x9c], ParserState.DCS_PASSTHROUGH, ParserAction.DCS_UNHOOK, ParserState.GROUND); + table.add(NON_ASCII_PRINTABLE, ParserState.OSC_STRING, ParserAction.OSC_PUT, ParserState.OSC_STRING); return table; })(); @@ -391,11 +393,7 @@ export class EscapeSequenceParser extends Disposable implements IEscapeSequenceP } // normal transition & action lookup - transition = (code < 0xa0 - ? (table[currentState << 8 | code]) - : currentState === ParserState.OSC_STRING - ? (ParserAction.OSC_PUT << 4) | ParserState.OSC_STRING - : DEFAULT_TRANSITION); + transition = table[currentState << 8 | (code < 0xa0 ? code : NON_ASCII_PRINTABLE)]; switch (transition >> 4) { case ParserAction.PRINT: print = (~print) ? print : i; @@ -519,9 +517,8 @@ export class EscapeSequenceParser extends Disposable implements IEscapeSequenceP case ParserAction.OSC_PUT: for (let j = i + 1; ; j++) { if (j >= l - || ((code = data.charCodeAt(j)) <= 0x9f - && (table[ParserState.OSC_STRING << 8 | code] >> 4 - !== ParserAction.OSC_PUT))) { + || (code = data.charCodeAt(j)) < 0x20 + || (code > 0x7f && code <= 0x9f)) { osc += data.substring(i, j); i = j - 1; break; From 2d8f420db8db4ca1c53053da3cb385545b004e9d Mon Sep 17 00:00:00 2001 From: jerch Date: Mon, 10 Dec 2018 16:37:48 +0100 Subject: [PATCH 10/15] fix default transition for 0xa0 --- src/EscapeSequenceParser.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/EscapeSequenceParser.ts b/src/EscapeSequenceParser.ts index 3fa3ba49e3..f489884177 100644 --- a/src/EscapeSequenceParser.ts +++ b/src/EscapeSequenceParser.ts @@ -83,7 +83,7 @@ export const VT500_TRANSITION_TABLE = (function (): TransitionTable { // table with default transition for (state in states) { // NOTE: table lookup is capped at 0xa0 in parse to keep the table small - for (let code = 0; code < 160; ++code) { + for (let code = 0; code <= NON_ASCII_PRINTABLE; ++code) { table.add(code, state, ParserAction.ERROR, ParserState.GROUND); } } From 1c62980d202dc6ed14d4ad60337ea05e6a6a3638 Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Mon, 10 Dec 2018 07:51:28 -0800 Subject: [PATCH 11/15] v3.9.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index c84a0164e2..4aef95af9c 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "xterm", "description": "Full xterm terminal, in your browser", - "version": "3.8.0", + "version": "3.9.0", "main": "lib/public/Terminal.js", "types": "typings/xterm.d.ts", "repository": "https://github.com/xtermjs/xterm.js", From 3397ecf97797f159d601e28cb6c346fc0770bfa4 Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Mon, 10 Dec 2018 16:40:04 -0800 Subject: [PATCH 12/15] Remove authors Fixes #1605 --- AUTHORS | 134 ------------------------------------------- bin/generate-authors | 7 --- bin/prepare-release | 3 - 3 files changed, 144 deletions(-) delete mode 100644 AUTHORS delete mode 100755 bin/generate-authors diff --git a/AUTHORS b/AUTHORS deleted file mode 100644 index 482e0309a4..0000000000 --- a/AUTHORS +++ /dev/null @@ -1,134 +0,0 @@ -List of xterm.js contributors. Updated before every release. - -7PH -7PH -Adrian Labbé -Aleksandr Andrienko -Aleksandr Andriienko -Alessandro Nadalin -Alexander Olsson -Alexandre Petit-Pas -Alexey Kontsevoy -Andres Mejia -Anish Athalye -Anthony Lapenna -Antonin Stefanutti -Antonis Kalipetis -Anton Skshidlevsky -Anton Yurovskykh -Artem Arbatskiy -Austin Robertson -ayapi -Ben Hall -Benjamin Fischer -Benjamin Raymond -Benjamin Woodruff -Bill Church -Bob Reid -bottleofwater -Brandon Bayer -Brian Mock -Bruno Ribeiro -Bruno Ribeito -Carson Anderson -CHaBou -Christian Budde Christensen -Christof Marti -Christopher Jeffrey -coderaiser -Damien Tournoud -Dan Brown -Daniel Griffen -Daniel Griffen -Daniel Imms -Daniel Risacher -Dan Kaplun -Darin Morrison -dcylabs -Dominik Csapak -Edgar Andrés Margffoy Tuay -Elliot Saba -Exile -Felipe Gasper -Felix <30559812+felixse@users.noreply.github.com> -ficristo -Gary Ritchie -hiro-su -Ian Lewis -imoses -InDieTasten -irokas -Jakob Gillich -Jan Kuri -Jean Bruenn -Jeff Principe -Jeremy Danyow -Jianhui Zhao -Joao Moreno -Joao Moreno -Johannes Zellner -Jon Austin -Jon Kohler -Jon Masters -Jörg Breitbart -Jose Anton -jpoth -Justin Luk -Justin Mecham -Kirill Merkushev -Krasimir Tsonev -Ledion Bitincka -Linus Unnebäck -Luca -Lucian Buzzo -Lukas Drgon -Lukas Geiger -Maël Nison -Marc Dumais -Marek Libra -Markus F.X.J. Oberhumer -Martin Chloride -Martin Koppehel -Martin Wang -Matt Bierner -Matthew James -Michael Irwin -Mikko Karvonen -mofux -muji -Nicolas Ramz -npezza93 -Oleksandr Andriienko -Paris Kasidiaris -Paris Kasidiaris -Peng Xiao -Peter Baumgarten -Philip Olson -PowerHat <31401273+7PH@users.noreply.github.com> -PowerHat -pro-src <34285059+pro-src@users.noreply.github.com> -pro-src -Rick Baker -runarberg -Saad Malik -Samuel Williams -Saswat Das -Saul Costa -Segev Finer -Shuanglei Tao -sitzmar -Steven Silvester -stuicey -Sven-Hendrik Haase -t-amqi -Thanasis Daglis -thomas -Thomas Zilz -Tine Jozelj -Tyler Jewell -Vincent Woo -Viraj Sinha -yutaka -YuviPanda -ZHAO Xudong -赵雪珂 diff --git a/bin/generate-authors b/bin/generate-authors deleted file mode 100755 index 21446ad492..0000000000 --- a/bin/generate-authors +++ /dev/null @@ -1,7 +0,0 @@ -#! /usr/bin/env sh - -tail --lines=+3 AUTHORS > AUTHORS.tmp -git log --format='%aN <%aE>' >> AUTHORS.tmp -echo "List of xterm.js contributors. Updated before every release.\n" > AUTHORS -sort -u AUTHORS.tmp >> AUTHORS -rm -f AUTHORS.tmp diff --git a/bin/prepare-release b/bin/prepare-release index fed7919e74..53f0947a67 100755 --- a/bin/prepare-release +++ b/bin/prepare-release @@ -17,9 +17,6 @@ CURRENT_PACKAGE_JSON_VERSION=$(cat package.json \ export BUILD_DIR=dist npm run build -# Update AUTHORS file -sh bin/generate-authors - # Update version in package.json sed -i "s/\"version\": \"$CURRENT_PACKAGE_JSON_VERSION\"/\"version\": \"$NEW_VERSION\"/g" package.json From b9a22eb468d3645961584ea74cafd491a5776b4c Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Mon, 10 Dec 2018 16:46:57 -0800 Subject: [PATCH 13/15] Remove utils/ folder Part of #1507 --- src/Buffer.test.ts | 2 +- src/BufferSet.test.ts | 2 +- src/CharWidth.test.ts | 2 +- src/InputHandler.test.ts | 2 +- src/Linkifier.test.ts | 2 +- src/SelectionManager.test.ts | 2 +- src/SelectionManager.ts | 2 +- src/SelectionModel.test.ts | 2 +- src/Terminal.test.ts | 2 +- src/Terminal.ts | 4 ++-- src/{utils => common}/Clone.test.ts | 4 ++-- src/{utils => common}/Clone.ts | 4 ++-- src/renderer/CharacterJoinerRegistry.test.ts | 2 +- src/{utils => ui}/MouseHelper.test.ts | 0 src/{utils => ui}/MouseHelper.ts | 0 src/{utils => ui}/TestUtils.test.ts | 0 16 files changed, 16 insertions(+), 16 deletions(-) rename src/{utils => common}/Clone.test.ts (95%) rename src/{utils => common}/Clone.ts (90%) rename src/{utils => ui}/MouseHelper.test.ts (100%) rename src/{utils => ui}/MouseHelper.ts (100%) rename src/{utils => ui}/TestUtils.test.ts (100%) diff --git a/src/Buffer.test.ts b/src/Buffer.test.ts index db8a460d09..2561ce36df 100644 --- a/src/Buffer.test.ts +++ b/src/Buffer.test.ts @@ -7,7 +7,7 @@ import { assert, expect } from 'chai'; import { ITerminal } from './Types'; import { Buffer, DEFAULT_ATTR, CHAR_DATA_CHAR_INDEX } from './Buffer'; import { CircularList } from './common/CircularList'; -import { MockTerminal, TestTerminal } from './utils/TestUtils.test'; +import { MockTerminal, TestTerminal } from './ui/TestUtils.test'; import { BufferLine } from './BufferLine'; const INIT_COLS = 80; diff --git a/src/BufferSet.test.ts b/src/BufferSet.test.ts index 38f2ddab93..26f9cd42f7 100644 --- a/src/BufferSet.test.ts +++ b/src/BufferSet.test.ts @@ -7,7 +7,7 @@ import { assert } from 'chai'; import { ITerminal } from './Types'; import { BufferSet } from './BufferSet'; import { Buffer } from './Buffer'; -import { MockTerminal } from './utils/TestUtils.test'; +import { MockTerminal } from './ui/TestUtils.test'; describe('BufferSet', () => { let terminal: ITerminal; diff --git a/src/CharWidth.test.ts b/src/CharWidth.test.ts index d4ddd24c5e..0747fdf12c 100644 --- a/src/CharWidth.test.ts +++ b/src/CharWidth.test.ts @@ -3,7 +3,7 @@ * @license MIT */ -import { TestTerminal } from './utils/TestUtils.test'; +import { TestTerminal } from './ui/TestUtils.test'; import { assert } from 'chai'; import { getStringCellWidth, wcwidth } from './CharWidth'; import { IBuffer } from './Types'; diff --git a/src/InputHandler.test.ts b/src/InputHandler.test.ts index b2fea06a3c..acc18ea57a 100644 --- a/src/InputHandler.test.ts +++ b/src/InputHandler.test.ts @@ -5,7 +5,7 @@ import { assert, expect } from 'chai'; import { InputHandler } from './InputHandler'; -import { MockInputHandlingTerminal } from './utils/TestUtils.test'; +import { MockInputHandlingTerminal } from './ui/TestUtils.test'; import { NULL_CELL_CHAR, NULL_CELL_CODE, NULL_CELL_WIDTH, CHAR_DATA_CHAR_INDEX, CHAR_DATA_ATTR_INDEX, DEFAULT_ATTR } from './Buffer'; import { Terminal } from './Terminal'; import { IBufferLine } from './Types'; diff --git a/src/Linkifier.test.ts b/src/Linkifier.test.ts index 22e797aa7d..0ba1294a0e 100644 --- a/src/Linkifier.test.ts +++ b/src/Linkifier.test.ts @@ -7,7 +7,7 @@ import { assert } from 'chai'; import { IMouseZoneManager, IMouseZone } from './ui/Types'; import { ILinkMatcher, ITerminal, IBufferLine } from './Types'; import { Linkifier } from './Linkifier'; -import { MockBuffer, MockTerminal, TestTerminal } from './utils/TestUtils.test'; +import { MockBuffer, MockTerminal, TestTerminal } from './ui/TestUtils.test'; import { CircularList } from './common/CircularList'; import { BufferLine } from './BufferLine'; diff --git a/src/SelectionManager.test.ts b/src/SelectionManager.test.ts index 8735e8945d..2f74ccdab0 100644 --- a/src/SelectionManager.test.ts +++ b/src/SelectionManager.test.ts @@ -9,7 +9,7 @@ import { SelectionManager, SelectionMode } from './SelectionManager'; import { SelectionModel } from './SelectionModel'; import { BufferSet } from './BufferSet'; import { ITerminal, IBuffer, IBufferLine } from './Types'; -import { MockTerminal } from './utils/TestUtils.test'; +import { MockTerminal } from './ui/TestUtils.test'; import { BufferLine } from './BufferLine'; class TestMockTerminal extends MockTerminal { diff --git a/src/SelectionManager.ts b/src/SelectionManager.ts index 3dc50271dc..4bac040055 100644 --- a/src/SelectionManager.ts +++ b/src/SelectionManager.ts @@ -5,7 +5,7 @@ import { ITerminal, ISelectionManager, IBuffer, CharData, IBufferLine } from './Types'; import { XtermListener } from './common/Types'; -import { MouseHelper } from './utils/MouseHelper'; +import { MouseHelper } from './ui/MouseHelper'; import * as Browser from './core/Platform'; import { CharMeasure } from './ui/CharMeasure'; import { EventEmitter } from './common/EventEmitter'; diff --git a/src/SelectionModel.test.ts b/src/SelectionModel.test.ts index 59b2ce75d0..8d4b30bb58 100644 --- a/src/SelectionModel.test.ts +++ b/src/SelectionModel.test.ts @@ -7,7 +7,7 @@ import { assert } from 'chai'; import { ITerminal } from './Types'; import { SelectionModel } from './SelectionModel'; import { BufferSet } from './BufferSet'; -import { MockTerminal } from './utils/TestUtils.test'; +import { MockTerminal } from './ui/TestUtils.test'; class TestSelectionModel extends SelectionModel { constructor( diff --git a/src/Terminal.test.ts b/src/Terminal.test.ts index fd59144c60..733d2b39bb 100644 --- a/src/Terminal.test.ts +++ b/src/Terminal.test.ts @@ -5,7 +5,7 @@ import { assert, expect } from 'chai'; import { Terminal } from './Terminal'; -import { MockViewport, MockCompositionHelper, MockRenderer } from './utils/TestUtils.test'; +import { MockViewport, MockCompositionHelper, MockRenderer } from './ui/TestUtils.test'; import { CHAR_DATA_CHAR_INDEX, CHAR_DATA_WIDTH_INDEX, DEFAULT_ATTR } from './Buffer'; const INIT_COLS = 80; diff --git a/src/Terminal.ts b/src/Terminal.ts index 779d9bf5e3..bc8fb103a2 100644 --- a/src/Terminal.ts +++ b/src/Terminal.ts @@ -39,8 +39,7 @@ import { CharMeasure } from './ui/CharMeasure'; import * as Browser from './core/Platform'; import { addDisposableDomListener } from './ui/Lifecycle'; import * as Strings from './Strings'; -import { MouseHelper } from './utils/MouseHelper'; -import { clone } from './utils/Clone'; +import { MouseHelper } from './ui/MouseHelper'; import { DEFAULT_BELL_SOUND, SoundManager } from './SoundManager'; import { DEFAULT_ANSI_COLORS } from './renderer/ColorManager'; import { MouseZoneManager } from './ui/MouseZoneManager'; @@ -52,6 +51,7 @@ import { DomRenderer } from './renderer/dom/DomRenderer'; import { IKeyboardEvent } from './common/Types'; import { evaluateKeyboardEvent } from './core/input/Keyboard'; import { KeyboardResultType, ICharset } from './core/Types'; +import { clone } from './common/Clone'; // Let it work inside Node.js for automated testing purposes. const document = (typeof window !== 'undefined') ? window.document : null; diff --git a/src/utils/Clone.test.ts b/src/common/Clone.test.ts similarity index 95% rename from src/utils/Clone.test.ts rename to src/common/Clone.test.ts index b24452c89a..4b815ff36f 100644 --- a/src/utils/Clone.test.ts +++ b/src/common/Clone.test.ts @@ -101,7 +101,7 @@ describe('clone', () => { test.a.b.c.d.e.f = 'bar'; // The values at a greater depth then 5 should not be cloned - assert.equal(cloned.a.b.c.d.e.f, 'bar'); + assert.equal((cloned as any).a.b.c.d.e.f, 'bar'); }); it('should allow an optional maximum depth to be set', () => { @@ -118,7 +118,7 @@ describe('clone', () => { test.a.b.c = 'bar'; // The values at a greater depth then 2 should not be cloned - assert.equal(cloned.a.b.c, 'bar'); + assert.equal((cloned as any).a.b.c, 'bar'); }); it('should not throw when cloning a recursive reference', () => { diff --git a/src/utils/Clone.ts b/src/common/Clone.ts similarity index 90% rename from src/utils/Clone.ts rename to src/common/Clone.ts index b09c02584c..78bacbb521 100644 --- a/src/utils/Clone.ts +++ b/src/common/Clone.ts @@ -6,7 +6,7 @@ /* * A simple utility for cloning values */ -export const clone = (val: T, depth: number = 5): T => { +export function clone(val: T, depth: number = 5): T | null { if (typeof val !== 'object') { return val; } @@ -25,4 +25,4 @@ export const clone = (val: T, depth: number = 5): T => { } return clonedObject as T; -}; +} diff --git a/src/renderer/CharacterJoinerRegistry.test.ts b/src/renderer/CharacterJoinerRegistry.test.ts index 383d2a7f8b..0c29566ac3 100644 --- a/src/renderer/CharacterJoinerRegistry.test.ts +++ b/src/renderer/CharacterJoinerRegistry.test.ts @@ -1,6 +1,6 @@ import { assert } from 'chai'; -import { MockTerminal, MockBuffer } from '../utils/TestUtils.test'; +import { MockTerminal, MockBuffer } from '../ui/TestUtils.test'; import { CircularList } from '../common/CircularList'; import { ICharacterJoinerRegistry } from './Types'; diff --git a/src/utils/MouseHelper.test.ts b/src/ui/MouseHelper.test.ts similarity index 100% rename from src/utils/MouseHelper.test.ts rename to src/ui/MouseHelper.test.ts diff --git a/src/utils/MouseHelper.ts b/src/ui/MouseHelper.ts similarity index 100% rename from src/utils/MouseHelper.ts rename to src/ui/MouseHelper.ts diff --git a/src/utils/TestUtils.test.ts b/src/ui/TestUtils.test.ts similarity index 100% rename from src/utils/TestUtils.test.ts rename to src/ui/TestUtils.test.ts From 1e94fce545ee410c9954b5e1ccc7748598018043 Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Tue, 11 Dec 2018 07:19:37 -0800 Subject: [PATCH 14/15] Remove triple slash directive error in addon types Fixes #1830 --- src/addons/fit/tsconfig.json | 6 +++--- src/addons/fullscreen/tsconfig.json | 6 +++--- src/addons/search/tsconfig.json | 6 +++--- src/addons/terminado/tsconfig.json | 6 +++--- src/addons/webLinks/tsconfig.json | 6 +++--- src/addons/winptyCompat/tsconfig.json | 6 +++--- src/addons/zmodem/tsconfig.json | 6 +++--- 7 files changed, 21 insertions(+), 21 deletions(-) diff --git a/src/addons/fit/tsconfig.json b/src/addons/fit/tsconfig.json index f478e03f79..489ccdfead 100644 --- a/src/addons/fit/tsconfig.json +++ b/src/addons/fit/tsconfig.json @@ -13,11 +13,11 @@ "declaration": true, "preserveWatchOutput": true, "types": [ - "../../node_modules/@types/mocha", - "../.." + "../../node_modules/@types/mocha" ] }, "include": [ - "**/*.ts" + "**/*.ts", + "../../../typings/xterm.d.ts" ] } diff --git a/src/addons/fullscreen/tsconfig.json b/src/addons/fullscreen/tsconfig.json index 40d0ae7146..05e6df68d7 100644 --- a/src/addons/fullscreen/tsconfig.json +++ b/src/addons/fullscreen/tsconfig.json @@ -13,11 +13,11 @@ "declaration": true, "preserveWatchOutput": true, "types": [ - "../../node_modules/@types/mocha", - "../.." + "../../node_modules/@types/mocha" ] }, "include": [ - "**/*.ts" + "**/*.ts", + "../../../typings/xterm.d.ts" ] } diff --git a/src/addons/search/tsconfig.json b/src/addons/search/tsconfig.json index c34a0bc504..c42412be7e 100644 --- a/src/addons/search/tsconfig.json +++ b/src/addons/search/tsconfig.json @@ -12,11 +12,11 @@ "declaration": true, "preserveWatchOutput": true, "types": [ - "../../node_modules/@types/mocha", - "../.." + "../../node_modules/@types/mocha" ] }, "include": [ - "**/*.ts" + "**/*.ts", + "../../../typings/xterm.d.ts" ] } diff --git a/src/addons/terminado/tsconfig.json b/src/addons/terminado/tsconfig.json index 0e30963dc4..91c18314ec 100644 --- a/src/addons/terminado/tsconfig.json +++ b/src/addons/terminado/tsconfig.json @@ -12,11 +12,11 @@ "declaration": true, "preserveWatchOutput": true, "types": [ - "../../node_modules/@types/mocha", - "../.." + "../../node_modules/@types/mocha" ] }, "include": [ - "**/*.ts" + "**/*.ts", + "../../../typings/xterm.d.ts" ] } diff --git a/src/addons/webLinks/tsconfig.json b/src/addons/webLinks/tsconfig.json index 6f9db2cb96..18105aa246 100644 --- a/src/addons/webLinks/tsconfig.json +++ b/src/addons/webLinks/tsconfig.json @@ -13,11 +13,11 @@ "declaration": true, "preserveWatchOutput": true, "types": [ - "../../node_modules/@types/mocha", - "../.." + "../../node_modules/@types/mocha" ] }, "include": [ - "**/*.ts" + "**/*.ts", + "../../../typings/xterm.d.ts" ] } diff --git a/src/addons/winptyCompat/tsconfig.json b/src/addons/winptyCompat/tsconfig.json index 6056da08cd..9fc4d25e31 100644 --- a/src/addons/winptyCompat/tsconfig.json +++ b/src/addons/winptyCompat/tsconfig.json @@ -12,11 +12,11 @@ "declaration": true, "preserveWatchOutput": true, "types": [ - "../../node_modules/@types/mocha", - "../.." + "../../node_modules/@types/mocha" ] }, "include": [ - "**/*.ts" + "**/*.ts", + "../../../typings/xterm.d.ts" ] } diff --git a/src/addons/zmodem/tsconfig.json b/src/addons/zmodem/tsconfig.json index 5dd438a373..2b49f537ec 100644 --- a/src/addons/zmodem/tsconfig.json +++ b/src/addons/zmodem/tsconfig.json @@ -12,11 +12,11 @@ "declaration": true, "preserveWatchOutput": true, "types": [ - "../../node_modules/@types/mocha", - "../.." + "../../node_modules/@types/mocha" ] }, "include": [ - "**/*.ts" + "**/*.ts", + "../../../typings/xterm.d.ts" ] } From 4d3345182fc9a910c6c637dd265ce47ca09d0836 Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Tue, 11 Dec 2018 08:56:55 -0800 Subject: [PATCH 15/15] Remove jsdoc dependency --- package.json | 2 -- yarn.lock | 95 ++-------------------------------------------------- 2 files changed, 3 insertions(+), 94 deletions(-) diff --git a/package.json b/package.json index 4aef95af9c..c5918cb57c 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,6 @@ "gulp-sourcemaps": "1.9.1", "gulp-typescript": "^3.1.3", "gulp-util": "3.0.8", - "jsdoc": "3.4.3", "jsdom": "^11.11.0", "merge-stream": "^1.0.1", "node-pty": "0.7.6", @@ -57,7 +56,6 @@ "test-suite": "gulp mocha-suite --test", "test-coverage": "nyc -x gulpfile.js -x '**/*test*' npm run mocha", "mocha": "gulp test", - "build:docs": "jsdoc -c jsdoc.json", "tsc": "tsc", "prebuild": "concurrently --kill-others-on-fail --names \"lib,attach,fit,fullscreen,search,terminado,webLinks,winptyCompat,zmodem,css\" \"tsc\" \"tsc -p ./src/addons/attach\" \"tsc -p ./src/addons/fit\" \"tsc -p ./src/addons/fullscreen\" \"tsc -p ./src/addons/search\" \"tsc -p ./src/addons/terminado\" \"tsc -p ./src/addons/webLinks\" \"tsc -p ./src/addons/winptyCompat\" \"tsc -p ./src/addons/zmodem\" \"gulp css\"", "build": "gulp build", diff --git a/yarn.lock b/yarn.lock index db31bfe17a..7ebdbf3c1f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -290,13 +290,6 @@ acorn-globals@^4.1.0: dependencies: acorn "^5.0.0" -acorn-jsx@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" - integrity sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s= - dependencies: - acorn "^3.0.4" - acorn-node@^1.2.0, acorn-node@^1.3.0, acorn-node@^1.5.2: version "1.5.2" resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.5.2.tgz#2ca723df19d997b05824b69f6c7fb091fc42c322" @@ -311,11 +304,6 @@ acorn@4.X: resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" integrity sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c= -acorn@^3.0.4, acorn@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" - integrity sha1-ReN/s56No/JbruP/U2niu18iAXo= - acorn@^5.0.0, acorn@^5.2.1, acorn@^5.3.0, acorn@^5.7.1: version "5.7.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.1.tgz#f095829297706a7c9776958c0afc8930a9b9d9d8" @@ -749,11 +737,6 @@ bluebird@^3.5.1: resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" integrity sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA== -bluebird@~3.4.6: - version "3.4.7" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.4.7.tgz#f72d760be09b7f76d08ed8fae98b289a8d05fab3" - integrity sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM= - bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: version "4.11.8" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" @@ -1054,13 +1037,6 @@ caseless@~0.12.0: resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= -catharsis@~0.8.8: - version "0.8.9" - resolved "https://registry.yarnpkg.com/catharsis/-/catharsis-0.8.9.tgz#98cc890ca652dd2ef0e70b37925310ff9e90fc8b" - integrity sha1-mMyJDKZS3S7w5ws3klMQ/56Q/Is= - dependencies: - underscore-contrib "~0.3.0" - center-align@^0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" @@ -2000,7 +1976,7 @@ escape-html@~1.0.3: resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= -escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5, escape-string-regexp@~1.0.5: +escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= @@ -2025,14 +2001,6 @@ eslint-scope@^4.0.0: esrecurse "^4.1.0" estraverse "^4.1.1" -espree@~3.1.7: - version "3.1.7" - resolved "https://registry.yarnpkg.com/espree/-/espree-3.1.7.tgz#fd5deec76a97a5120a9cd3a7cb1177a0923b11d2" - integrity sha1-/V3ux2qXpRIKnNOnyxF3oJI7EdI= - dependencies: - acorn "^3.3.0" - acorn-jsx "^3.0.0" - esprima@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" @@ -3615,34 +3583,11 @@ js-yaml@^3.11.0, js-yaml@^3.7.0: argparse "^1.0.7" esprima "^4.0.0" -js2xmlparser@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/js2xmlparser/-/js2xmlparser-1.0.0.tgz#5a170f2e8d6476ce45405e04823242513782fe30" - integrity sha1-WhcPLo1kds5FQF4EgjJCUTeC/jA= - jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= -jsdoc@3.4.3: - version "3.4.3" - resolved "https://registry.yarnpkg.com/jsdoc/-/jsdoc-3.4.3.tgz#e5740d6145c681f6679e6c17783a88dbdd97ccd3" - integrity sha1-5XQNYUXGgfZnnmwXeDqI292XzNM= - dependencies: - bluebird "~3.4.6" - catharsis "~0.8.8" - escape-string-regexp "~1.0.5" - espree "~3.1.7" - js2xmlparser "~1.0.0" - klaw "~1.3.0" - marked "~0.3.6" - mkdirp "~0.5.1" - requizzle "~0.2.1" - strip-json-comments "~2.0.1" - taffydb "2.6.2" - underscore "~1.8.3" - jsdom@^11.11.0: version "11.11.0" resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-11.11.0.tgz#df486efad41aee96c59ad7a190e2449c7eb1110e" @@ -3780,7 +3725,7 @@ kind-of@^6.0.0, kind-of@^6.0.2: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== -klaw@^1.0.0, klaw@~1.3.0: +klaw@^1.0.0: version "1.3.1" resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" integrity sha1-QIhDO0azsbolnXh4XY6W9zugJDk= @@ -4193,11 +4138,6 @@ map-visit@^1.0.0: dependencies: object-visit "^1.0.0" -marked@~0.3.6: - version "0.3.19" - resolved "https://registry.yarnpkg.com/marked/-/marked-0.3.19.tgz#5d47f709c4c9fc3c216b6d46127280f40b39d790" - integrity sha512-ea2eGWOqNxPcXv8dyERdSr/6FmzvWwzjMxpfGB/sbMccXoct+xY+YukPD+QTUZwyvK7BZwcr4m21WBOW41pAkg== - matchdep@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/matchdep/-/matchdep-1.0.1.tgz#a57a33804491fbae208aba8f68380437abc2dca5" @@ -4431,7 +4371,7 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" -mkdirp@0.5.1, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: +mkdirp@0.5.1, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= @@ -5662,13 +5602,6 @@ require-main-filename@^1.0.1: resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= -requizzle@~0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/requizzle/-/requizzle-0.2.1.tgz#6943c3530c4d9a7e46f1cddd51c158fc670cdbde" - integrity sha1-aUPDUwxNmn5G8c3dUcFY/GcM294= - dependencies: - underscore "~1.6.0" - resolve-cwd@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" @@ -6424,11 +6357,6 @@ syntax-error@^1.1.1: dependencies: acorn-node "^1.2.0" -taffydb@2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/taffydb/-/taffydb-2.6.2.tgz#7cbcb64b5a141b6a2efc2c5d2c67b4e150b2a268" - integrity sha1-fLy2S1oUG2ou/CxdLGe04VCyomg= - tapable@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.0.0.tgz#cbb639d9002eed9c6b5975eb20598d7936f1f9f2" @@ -6788,23 +6716,6 @@ undefsafe@0.0.3: resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-0.0.3.tgz#ecca3a03e56b9af17385baac812ac83b994a962f" integrity sha1-7Mo6A+VrmvFzhbqsgSrIO5lKli8= -underscore-contrib@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/underscore-contrib/-/underscore-contrib-0.3.0.tgz#665b66c24783f8fa2b18c9f8cbb0e2c7d48c26c7" - integrity sha1-ZltmwkeD+PorGMn4y7Dix9SMJsc= - dependencies: - underscore "1.6.0" - -underscore@1.6.0, underscore@~1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.6.0.tgz#8b38b10cacdef63337b8b24e4ff86d45aea529a8" - integrity sha1-izixDKze9jM3uLJOT/htRa6lKag= - -underscore@~1.8.3: - version "1.8.3" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.8.3.tgz#4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022" - integrity sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI= - union-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4"