diff --git a/addons/addon-attach/src/AttachAddon.ts b/addons/addon-attach/src/AttachAddon.ts index 756e03d9d4..37a10d170b 100644 --- a/addons/addon-attach/src/AttachAddon.ts +++ b/addons/addon-attach/src/AttachAddon.ts @@ -5,13 +5,14 @@ * Implements the attach method, that attaches the terminal to a WebSocket stream. */ -import { Terminal, IDisposable, ITerminalAddon } from '@xterm/xterm'; +import type { Terminal, IDisposable, ITerminalAddon } from '@xterm/xterm'; +import type { AttachAddon as IAttachApi } from '@xterm/addon-attach'; interface IAttachOptions { bidirectional?: boolean; } -export class AttachAddon implements ITerminalAddon { +export class AttachAddon implements ITerminalAddon , IAttachApi { private _socket: WebSocket; private _bidirectional: boolean; private _disposables: IDisposable[] = []; diff --git a/addons/addon-attach/src/tsconfig.json b/addons/addon-attach/src/tsconfig.json index 7e68574d95..9838a3c50f 100644 --- a/addons/addon-attach/src/tsconfig.json +++ b/addons/addon-attach/src/tsconfig.json @@ -13,7 +13,12 @@ "strict": true, "types": [ "../../../node_modules/@types/mocha" - ] + ], + "paths": { + "@xterm/addon-attach": [ + "../typings/addon-attach.d.ts" + ] + } }, "include": [ "./**/*", diff --git a/addons/addon-canvas/src/CanvasAddon.ts b/addons/addon-canvas/src/CanvasAddon.ts index 6cfa2d46d1..7f7f679bc1 100644 --- a/addons/addon-canvas/src/CanvasAddon.ts +++ b/addons/addon-canvas/src/CanvasAddon.ts @@ -3,16 +3,17 @@ * @license MIT */ +import type { ITerminalAddon, Terminal } from '@xterm/xterm'; +import type { CanvasAddon as ICanvasApi } from '@xterm/addon-canvas'; import { ICharacterJoinerService, ICharSizeService, ICoreBrowserService, IRenderService, IThemeService } from 'browser/services/Services'; import { ITerminal } from 'browser/Types'; import { EventEmitter, forwardEvent } from 'common/EventEmitter'; import { Disposable, toDisposable } from 'common/Lifecycle'; import { setTraceLogger } from 'common/services/LogService'; import { IBufferService, IDecorationService, ILogService } from 'common/services/Services'; -import { ITerminalAddon, Terminal } from '@xterm/xterm'; import { CanvasRenderer } from './CanvasRenderer'; -export class CanvasAddon extends Disposable implements ITerminalAddon { +export class CanvasAddon extends Disposable implements ITerminalAddon , ICanvasApi { private _terminal?: Terminal; private _renderer?: CanvasRenderer; @@ -65,4 +66,8 @@ export class CanvasAddon extends Disposable implements ITerminalAddon { this._renderer = undefined; })); } + + public clearTextureAtlas(): void { + this._renderer?.clearTextureAtlas(); + } } diff --git a/addons/addon-canvas/src/tsconfig.json b/addons/addon-canvas/src/tsconfig.json index f6fb08a7a0..1ed8c2ac68 100644 --- a/addons/addon-canvas/src/tsconfig.json +++ b/addons/addon-canvas/src/tsconfig.json @@ -17,6 +17,9 @@ ], "browser/*": [ "../../../src/browser/*" + ], + "@xterm/addon-canvas": [ + "../typings/addon-canvas.d.ts" ] }, "strict": true, diff --git a/addons/addon-fit/src/FitAddon.ts b/addons/addon-fit/src/FitAddon.ts index c634ea8f19..2087e6146a 100644 --- a/addons/addon-fit/src/FitAddon.ts +++ b/addons/addon-fit/src/FitAddon.ts @@ -3,7 +3,8 @@ * @license MIT */ -import { Terminal, ITerminalAddon } from '@xterm/xterm'; +import type { Terminal, ITerminalAddon } from '@xterm/xterm'; +import type { FitAddon as IFitApi } from '@xterm/addon-fit'; import { IRenderDimensions } from 'browser/renderer/shared/Types'; interface ITerminalDimensions { @@ -21,7 +22,7 @@ interface ITerminalDimensions { const MINIMUM_COLS = 2; const MINIMUM_ROWS = 1; -export class FitAddon implements ITerminalAddon { +export class FitAddon implements ITerminalAddon , IFitApi { private _terminal: Terminal | undefined; public activate(terminal: Terminal): void { diff --git a/addons/addon-fit/src/tsconfig.json b/addons/addon-fit/src/tsconfig.json index 668f910be7..068b43370b 100644 --- a/addons/addon-fit/src/tsconfig.json +++ b/addons/addon-fit/src/tsconfig.json @@ -17,6 +17,9 @@ "paths": { "browser/*": [ "../../../src/browser/*" + ], + "@xterm/addon-fit": [ + "../typings/addon-fit.d.ts" ] } }, diff --git a/addons/addon-image/src/ImageAddon.ts b/addons/addon-image/src/ImageAddon.ts index f02ec31170..167e93a791 100644 --- a/addons/addon-image/src/ImageAddon.ts +++ b/addons/addon-image/src/ImageAddon.ts @@ -3,14 +3,14 @@ * @license MIT */ +import type { ITerminalAddon, IDisposable } from '@xterm/xterm'; +import type { ImageAddon as IImageApi } from '@xterm/addon-image'; import { IIPHandler } from './IIPHandler'; -import { ITerminalAddon, IDisposable } from '@xterm/xterm'; import { ImageRenderer } from './ImageRenderer'; import { ImageStorage, CELL_SIZE_DEFAULT } from './ImageStorage'; import { SixelHandler } from './SixelHandler'; import { ITerminalExt, IImageAddonOptions, IResetHandler } from './Types'; - // default values of addon ctor options const DEFAULT_OPTIONS: IImageAddonOptions = { enableSizeReports: true, @@ -48,7 +48,7 @@ const enum GaStatus { } -export class ImageAddon implements ITerminalAddon { +export class ImageAddon implements ITerminalAddon , IImageApi { private _opts: IImageAddonOptions; private _defaultOpts: IImageAddonOptions; private _storage: ImageStorage | undefined; diff --git a/addons/addon-image/src/tsconfig.json b/addons/addon-image/src/tsconfig.json index da519e17d9..a18b47c9ce 100644 --- a/addons/addon-image/src/tsconfig.json +++ b/addons/addon-image/src/tsconfig.json @@ -14,7 +14,8 @@ "baseUrl": ".", "paths": { "browser/*": [ "../../../src/browser/*" ], - "common/*": [ "../../../src/common/*" ] + "common/*": [ "../../../src/common/*" ], + "@xterm/addon-image": [ "../typings/addon-image.d.ts" ] } }, "include": [ diff --git a/addons/addon-ligatures/src/LigaturesAddon.ts b/addons/addon-ligatures/src/LigaturesAddon.ts index 27e8fcf365..cb58930359 100644 --- a/addons/addon-ligatures/src/LigaturesAddon.ts +++ b/addons/addon-ligatures/src/LigaturesAddon.ts @@ -3,7 +3,8 @@ * @license MIT */ -import { Terminal } from '@xterm/xterm'; +import type { Terminal } from '@xterm/xterm'; +import type { LigaturesAddon as ILigaturesApi } from '@xterm/addon-ligatures'; import { enableLigatures } from '.'; import { ILigatureOptions } from './Types'; @@ -12,7 +13,7 @@ export interface ITerminalAddon { dispose(): void; } -export class LigaturesAddon implements ITerminalAddon { +export class LigaturesAddon implements ITerminalAddon , ILigaturesApi { private readonly _fallbackLigatures: string[]; private _terminal: Terminal | undefined; diff --git a/addons/addon-ligatures/src/tsconfig.json b/addons/addon-ligatures/src/tsconfig.json index 28969f977e..cc9a9befa9 100644 --- a/addons/addon-ligatures/src/tsconfig.json +++ b/addons/addon-ligatures/src/tsconfig.json @@ -10,7 +10,12 @@ "preserveWatchOutput": true, "types": [ "../../../node_modules/@types/mocha" - ] + ], + "paths": { + "@xterm/addon-ligatures" : [ + "../typings/addon-ligatures.d.ts" + ] + } }, "include": [ "./**/*", diff --git a/addons/addon-search/package.json b/addons/addon-search/package.json index ae4fb5d9a9..369d11c34c 100644 --- a/addons/addon-search/package.json +++ b/addons/addon-search/package.json @@ -15,8 +15,7 @@ "xterm.js" ], "scripts": { - "build": "../../node_modules/.bin/tsc -p .", - "prepackage": "npm run build", + "prepackage": "../../node_modules/.bin/tsc -p .", "package": "../../node_modules/.bin/webpack", "prepublishOnly": "npm run package" }, diff --git a/addons/addon-search/src/SearchAddon.ts b/addons/addon-search/src/SearchAddon.ts index 2e83b0ad97..3fae737399 100644 --- a/addons/addon-search/src/SearchAddon.ts +++ b/addons/addon-search/src/SearchAddon.ts @@ -3,7 +3,8 @@ * @license MIT */ -import { Terminal, IDisposable, ITerminalAddon, IDecoration } from '@xterm/xterm'; +import type { Terminal, IDisposable, ITerminalAddon, IDecoration } from '@xterm/xterm'; +import type { SearchAddon as ISearchApi } from '@xterm/addon-search'; import { EventEmitter } from 'common/EventEmitter'; import { Disposable, toDisposable, disposeArray, MutableDisposable } from 'common/Lifecycle'; @@ -61,7 +62,7 @@ const NON_WORD_CHARACTERS = ' ~!@#$%^&*()+`-=[]{}|\\;:"\',./<>?'; const LINES_CACHE_TIME_TO_LIVE = 15 * 1000; // 15 secs const DEFAULT_HIGHLIGHT_LIMIT = 1000; -export class SearchAddon extends Disposable implements ITerminalAddon { +export class SearchAddon extends Disposable implements ITerminalAddon , ISearchApi { private _terminal: Terminal | undefined; private _cachedSearchTerm: string | undefined; private _highlightedLines: Set = new Set(); diff --git a/addons/addon-search/src/tsconfig.json b/addons/addon-search/src/tsconfig.json index 1f08b12dcc..bd3e48adfe 100644 --- a/addons/addon-search/src/tsconfig.json +++ b/addons/addon-search/src/tsconfig.json @@ -17,6 +17,9 @@ "paths": { "common/*": [ "../../../src/common/*" + ], + "@xterm/addon-search" : [ + "../typings/addon-search.d.ts" ] } }, diff --git a/addons/addon-serialize/benchmark/tsconfig.json b/addons/addon-serialize/benchmark/tsconfig.json index 6bbb2a4b78..1f6429f6e9 100644 --- a/addons/addon-serialize/benchmark/tsconfig.json +++ b/addons/addon-serialize/benchmark/tsconfig.json @@ -14,7 +14,10 @@ "paths": { "common/*": ["../../../src/common/*"], "browser/*": ["../../../src/browser/*"], - "SerializeAddon": ["../src/SerializeAddon"] + "SerializeAddon": ["../src/SerializeAddon"], + "@xterm/addon-serialize": [ + "../typings/addon-serialize.d.ts" + ] } }, "include": ["../**/*", "../../../typings/xterm.d.ts"], diff --git a/addons/addon-serialize/src/SerializeAddon.ts b/addons/addon-serialize/src/SerializeAddon.ts index bb62779bb1..090aebf0a0 100644 --- a/addons/addon-serialize/src/SerializeAddon.ts +++ b/addons/addon-serialize/src/SerializeAddon.ts @@ -5,9 +5,10 @@ * (EXPERIMENTAL) This Addon is still under development */ +import type { IBuffer, IBufferCell, IBufferRange, ITerminalAddon, Terminal } from '@xterm/xterm'; +import type { SerializeAddon as ISerializeApi } from '@xterm/addon-serialize'; import { DEFAULT_ANSI_COLORS } from 'browser/services/ThemeService'; import { IAttributeData, IColor } from 'common/Types'; -import { IBuffer, IBufferCell, IBufferRange, ITerminalAddon, Terminal } from '@xterm/xterm'; function constrain(value: number, low: number, high: number): number { return Math.max(low, Math.min(value, high)); @@ -411,7 +412,7 @@ class StringSerializeHandler extends BaseSerializeHandler { } } -export class SerializeAddon implements ITerminalAddon { +export class SerializeAddon implements ITerminalAddon , ISerializeApi { private _terminal: Terminal | undefined; public activate(terminal: Terminal): void { diff --git a/addons/addon-serialize/src/tsconfig.json b/addons/addon-serialize/src/tsconfig.json index 22ffe53e0f..6fb641ef40 100644 --- a/addons/addon-serialize/src/tsconfig.json +++ b/addons/addon-serialize/src/tsconfig.json @@ -17,6 +17,9 @@ ], "browser/*": [ "../../../src/browser/*" + ], + "@xterm/addon-serialize": [ + "../typings/addon-serialize.d.ts" ] }, "strict": true, diff --git a/addons/addon-unicode-graphemes/benchmark/tsconfig.json b/addons/addon-unicode-graphemes/benchmark/tsconfig.json index 9bc532d3fe..c6f37a6ce3 100644 --- a/addons/addon-unicode-graphemes/benchmark/tsconfig.json +++ b/addons/addon-unicode-graphemes/benchmark/tsconfig.json @@ -11,7 +11,10 @@ "paths": { "common/*": ["../../../src/common/*"], "browser/*": ["../../../src/browser/*"], - "UnicodeGraphemeProvider": ["../src/UnicodeGraphemeProvider"] + "UnicodeGraphemeProvider": ["../src/UnicodeGraphemeProvider"], + "@xterm/addon-unicode-graphemes": [ + "../typings/addon-unicode-graphemes.d.ts" + ] } }, "include": ["../**/*", "../../../typings/xterm.d.ts"], diff --git a/addons/addon-unicode-graphemes/src/UnicodeGraphemesAddon.ts b/addons/addon-unicode-graphemes/src/UnicodeGraphemesAddon.ts index 714f223b23..6e4d226604 100644 --- a/addons/addon-unicode-graphemes/src/UnicodeGraphemesAddon.ts +++ b/addons/addon-unicode-graphemes/src/UnicodeGraphemesAddon.ts @@ -5,11 +5,11 @@ * UnicodeVersionProvider for V15 with grapeme cluster handleing. */ -import { Terminal, ITerminalAddon, IUnicodeHandling } from '@xterm/xterm'; +import type { Terminal, ITerminalAddon, IUnicodeHandling } from '@xterm/xterm'; +import type { UnicodeGraphemesAddon as IUnicodeGraphemesApi } from '@xterm/addon-unicode-graphemes'; import { UnicodeGraphemeProvider } from './UnicodeGraphemeProvider'; - -export class UnicodeGraphemesAddon implements ITerminalAddon { +export class UnicodeGraphemesAddon implements ITerminalAddon , IUnicodeGraphemesApi { private _provider15Graphemes?: UnicodeGraphemeProvider; private _provider15?: UnicodeGraphemeProvider; private _unicode?: IUnicodeHandling; diff --git a/addons/addon-unicode-graphemes/src/tsconfig.json b/addons/addon-unicode-graphemes/src/tsconfig.json index 60824fee94..e9967bbe2e 100644 --- a/addons/addon-unicode-graphemes/src/tsconfig.json +++ b/addons/addon-unicode-graphemes/src/tsconfig.json @@ -15,6 +15,9 @@ "paths": { "common/*": [ "../../../src/common/*" + ], + "@xterm/addon-unicode-graphemes": [ + "../typings/addon-unicode-graphemes.d.ts" ] }, "types": [ diff --git a/addons/addon-unicode11/src/Unicode11Addon.ts b/addons/addon-unicode11/src/Unicode11Addon.ts index 03672fbff1..301145eed4 100644 --- a/addons/addon-unicode11/src/Unicode11Addon.ts +++ b/addons/addon-unicode11/src/Unicode11Addon.ts @@ -5,11 +5,11 @@ * UnicodeVersionProvider for V11. */ -import { Terminal, ITerminalAddon } from '@xterm/xterm'; +import type { Terminal, ITerminalAddon } from '@xterm/xterm'; +import type { Unicode11Addon as IUnicode11Api } from '@xterm/addon-unicode11'; import { UnicodeV11 } from './UnicodeV11'; - -export class Unicode11Addon implements ITerminalAddon { +export class Unicode11Addon implements ITerminalAddon , IUnicode11Api { public activate(terminal: Terminal): void { terminal.unicode.register(new UnicodeV11()); } diff --git a/addons/addon-unicode11/src/tsconfig.json b/addons/addon-unicode11/src/tsconfig.json index e2c1464e6e..8eb7752bd0 100644 --- a/addons/addon-unicode11/src/tsconfig.json +++ b/addons/addon-unicode11/src/tsconfig.json @@ -15,6 +15,9 @@ "paths": { "common/*": [ "../../../src/common/*" + ], + "@xterm/addon-unicode11": [ + "../typings/addon-unicode11.d.ts" ] }, "types": [ diff --git a/addons/addon-web-links/src/WebLinksAddon.ts b/addons/addon-web-links/src/WebLinksAddon.ts index 701a658e93..8902d8e0ad 100644 --- a/addons/addon-web-links/src/WebLinksAddon.ts +++ b/addons/addon-web-links/src/WebLinksAddon.ts @@ -3,7 +3,8 @@ * @license MIT */ -import { Terminal, ITerminalAddon, IDisposable } from '@xterm/xterm'; +import type { Terminal, ITerminalAddon, IDisposable } from '@xterm/xterm'; +import type { WebLinksAddon as IWebLinksApi } from '@xterm/addon-web-links'; import { ILinkProviderOptions, WebLinkProvider } from './WebLinkProvider'; // consider everthing starting with http:// or https:// @@ -34,7 +35,7 @@ function handleLink(event: MouseEvent, uri: string): void { } } -export class WebLinksAddon implements ITerminalAddon { +export class WebLinksAddon implements ITerminalAddon , IWebLinksApi { private _terminal: Terminal | undefined; private _linkProvider: IDisposable | undefined; diff --git a/addons/addon-web-links/src/tsconfig.json b/addons/addon-web-links/src/tsconfig.json index 7e68574d95..217402de12 100644 --- a/addons/addon-web-links/src/tsconfig.json +++ b/addons/addon-web-links/src/tsconfig.json @@ -13,7 +13,12 @@ "strict": true, "types": [ "../../../node_modules/@types/mocha" - ] + ], + "paths": { + "@xterm/addon-web-links": [ + "../typings/addon-web-links.d.ts" + ] + } }, "include": [ "./**/*", diff --git a/addons/addon-webgl/src/WebglAddon.ts b/addons/addon-webgl/src/WebglAddon.ts index 3e2925c569..16b1e4443d 100644 --- a/addons/addon-webgl/src/WebglAddon.ts +++ b/addons/addon-webgl/src/WebglAddon.ts @@ -3,17 +3,18 @@ * @license MIT */ +import type { ITerminalAddon, Terminal } from '@xterm/xterm'; +import type { WebglAddon as IWebglApi } from '@xterm/addon-webgl'; import { ICharacterJoinerService, ICharSizeService, ICoreBrowserService, IRenderService, IThemeService } from 'browser/services/Services'; import { ITerminal } from 'browser/Types'; import { EventEmitter, forwardEvent } from 'common/EventEmitter'; import { Disposable, toDisposable } from 'common/Lifecycle'; import { getSafariVersion, isSafari } from 'common/Platform'; import { ICoreService, IDecorationService, ILogService, IOptionsService } from 'common/services/Services'; -import { ITerminalAddon, Terminal } from '@xterm/xterm'; import { WebglRenderer } from './WebglRenderer'; import { setTraceLogger } from 'common/services/LogService'; -export class WebglAddon extends Disposable implements ITerminalAddon { +export class WebglAddon extends Disposable implements ITerminalAddon , IWebglApi { private _terminal?: Terminal; private _renderer?: WebglRenderer; diff --git a/addons/addon-webgl/src/tsconfig.json b/addons/addon-webgl/src/tsconfig.json index 4d4194db45..924d3762d5 100644 --- a/addons/addon-webgl/src/tsconfig.json +++ b/addons/addon-webgl/src/tsconfig.json @@ -17,6 +17,9 @@ ], "browser/*": [ "../../../src/browser/*" + ], + "@xterm/addon-webgl": [ + "../typings/addon-webgl.d.ts" ] }, "strict": true,