From 701c0affd5de99e321cef04c54b2c61f2773cf17 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Sat, 6 Jun 2026 18:21:03 +0000 Subject: [PATCH 1/6] Move common primitives to src/common/primitives/ Phase 1 of #5963: reorganize building blocks (buffer, parser, input, data, and shared utilities) under common/primitives/. Runtime code (services, public API, CoreTerminal, InputHandler) stays in place. Update import paths across browser, headless, addons, and tests. Add TypeScript path mappings so common/* aliases resolve primitives first, then the common root. Co-authored-by: Daniel Imms --- addons/addon-attach/test/tsconfig.json | 1 + addons/addon-clipboard/test/tsconfig.json | 1 + addons/addon-fit/test/tsconfig.json | 1 + addons/addon-image/src/ImageAddon.ts | 2 +- addons/addon-image/src/ImageRenderer.ts | 2 +- addons/addon-image/src/Types.ts | 8 ++--- addons/addon-image/src/tsconfig.json | 3 +- addons/addon-image/test/tsconfig.json | 1 + addons/addon-progress/src/ProgressAddon.ts | 2 +- addons/addon-progress/src/tsconfig.json | 1 + addons/addon-progress/test/tsconfig.json | 1 + .../src/DecorationManager.test.ts | 2 +- addons/addon-search/src/DecorationManager.ts | 2 +- addons/addon-search/src/SearchAddon.ts | 6 ++-- addons/addon-search/src/SearchEngine.test.ts | 2 +- .../addon-search/src/SearchLineCache.test.ts | 2 +- addons/addon-search/src/SearchLineCache.ts | 4 +-- .../addon-search/src/SearchResultTracker.ts | 4 +-- addons/addon-search/src/tsconfig.json | 1 + addons/addon-search/test/tsconfig.json | 1 + .../benchmark/SerializeAddon.benchmark.ts | 2 +- .../addon-serialize/benchmark/tsconfig.json | 3 +- addons/addon-serialize/src/SerializeAddon.ts | 4 +-- addons/addon-serialize/src/tsconfig.json | 1 + addons/addon-serialize/test/tsconfig.json | 1 + .../UnicodeGraphemeAddon.benchmark.ts | 2 +- .../benchmark/tsconfig.json | 3 +- .../addon-unicode-graphemes/src/tsconfig.json | 1 + .../test/tsconfig.json | 1 + addons/addon-unicode11/src/tsconfig.json | 1 + addons/addon-unicode11/test/tsconfig.json | 1 + addons/addon-web-fonts/test/tsconfig.json | 1 + addons/addon-web-links/test/tsconfig.json | 1 + addons/addon-webgl/src/CellColorResolver.ts | 6 ++-- addons/addon-webgl/src/CharAtlasUtils.test.ts | 2 +- addons/addon-webgl/src/CharAtlasUtils.ts | 4 +-- addons/addon-webgl/src/Constants.ts | 2 +- addons/addon-webgl/src/DevicePixelObserver.ts | 2 +- addons/addon-webgl/src/GlyphRenderer.ts | 4 +-- addons/addon-webgl/src/RectangleRenderer.ts | 4 +-- addons/addon-webgl/src/TextureAtlas.ts | 12 +++---- addons/addon-webgl/src/Types.ts | 2 +- addons/addon-webgl/src/WebglAddon.ts | 6 ++-- addons/addon-webgl/src/WebglRenderer.ts | 12 +++---- .../src/renderLayer/BaseRenderLayer.ts | 4 +-- addons/addon-webgl/src/tsconfig.json | 1 + addons/addon-webgl/test/tsconfig.json | 1 + bin/esbuild.mjs | 5 ++- .../components/window/cellInspectorWindow.ts | 2 +- src/browser/AccessibilityManager.ts | 4 +-- src/browser/ColorContrastCache.ts | 2 +- src/browser/CoreBrowserTerminal.ts | 16 ++++----- src/browser/Dom.ts | 4 +-- src/browser/Linkifier.ts | 4 +-- src/browser/OscLinkProvider.test.ts | 2 +- src/browser/OscLinkProvider.ts | 4 +-- src/browser/Terminal.test.ts | 6 ++-- src/browser/TestUtils.test.ts | 16 ++++----- src/browser/Types.ts | 6 ++-- src/browser/Viewport.ts | 4 +-- .../decorations/BufferDecorationRenderer.ts | 2 +- .../decorations/OverviewRulerRenderer.ts | 2 +- src/browser/input/CompositionHelper.ts | 2 +- src/browser/input/MoveToCell.ts | 2 +- src/browser/public/Terminal.ts | 4 +-- src/browser/renderer/dom/DomRenderer.ts | 6 ++-- .../dom/DomRendererRowFactory.test.ts | 10 +++--- .../renderer/dom/DomRendererRowFactory.ts | 10 +++--- .../shared/TextBlinkStateManager.test.ts | 2 +- .../renderer/shared/TextBlinkStateManager.ts | 2 +- src/browser/renderer/shared/Types.ts | 2 +- src/browser/scrollable/abstractScrollbar.ts | 2 +- .../scrollable/globalPointerMoveMonitor.ts | 2 +- src/browser/scrollable/mouseEvent.ts | 2 +- src/browser/scrollable/scrollable.ts | 4 +-- src/browser/scrollable/scrollableElement.ts | 8 ++--- src/browser/scrollable/scrollbarArrow.ts | 2 +- .../scrollbarVisibilityController.ts | 4 +-- src/browser/scrollable/touch.ts | 2 +- src/browser/scrollable/widget.ts | 2 +- src/browser/services/CharSizeService.ts | 4 +-- .../services/CharacterJoinerService.test.ts | 8 ++--- .../services/CharacterJoinerService.ts | 8 ++--- src/browser/services/CoreBrowserService.ts | 4 +-- src/browser/services/KeyboardService.ts | 8 ++--- src/browser/services/LinkProviderService.ts | 2 +- src/browser/services/MouseService.ts | 4 +-- src/browser/services/RenderService.ts | 6 ++-- src/browser/services/SelectionService.test.ts | 8 ++--- src/browser/services/SelectionService.ts | 12 +++---- src/browser/services/Services.ts | 2 +- src/browser/services/ThemeService.ts | 6 ++-- src/common/CoreTerminal.ts | 12 +++---- src/common/InputHandler.test.ts | 14 ++++---- src/common/InputHandler.ts | 34 +++++++++---------- src/common/TestUtils.test.ts | 12 +++---- src/common/Types.ts | 2 +- src/common/WindowsMode.test.ts | 2 +- src/common/WindowsMode.ts | 2 +- src/common/{ => primitives}/Async.ts | 0 .../{ => primitives}/CircularList.test.ts | 0 src/common/{ => primitives}/CircularList.ts | 0 src/common/{ => primitives}/Color.test.ts | 0 src/common/{ => primitives}/Color.ts | 2 +- src/common/{ => primitives}/Event.test.ts | 0 src/common/{ => primitives}/Event.ts | 0 src/common/{ => primitives}/Lifecycle.ts | 0 .../{ => primitives}/MultiKeyMap.test.ts | 0 src/common/{ => primitives}/MultiKeyMap.ts | 0 src/common/{ => primitives}/Platform.ts | 0 .../{ => primitives}/SortedList.test.ts | 2 +- src/common/{ => primitives}/SortedList.ts | 2 +- .../{ => primitives}/StringBuilder.test.ts | 0 src/common/{ => primitives}/StringBuilder.ts | 0 src/common/{ => primitives}/TaskQueue.ts | 2 +- src/common/{ => primitives}/Version.ts | 0 .../{ => primitives}/buffer/AttributeData.ts | 2 +- .../{ => primitives}/buffer/Buffer.test.ts | 2 +- src/common/{ => primitives}/buffer/Buffer.ts | 4 +-- .../buffer/BufferLine.test.ts | 2 +- .../{ => primitives}/buffer/BufferLine.ts | 0 .../buffer/BufferLineStringCache.ts | 0 .../buffer/BufferRange.test.ts | 0 .../{ => primitives}/buffer/BufferRange.ts | 0 .../buffer/BufferReflow.test.ts | 0 .../{ => primitives}/buffer/BufferReflow.ts | 0 .../{ => primitives}/buffer/BufferSet.test.ts | 2 +- .../{ => primitives}/buffer/BufferSet.ts | 2 +- .../{ => primitives}/buffer/CellData.test.ts | 0 .../{ => primitives}/buffer/CellData.ts | 0 .../{ => primitives}/buffer/Constants.ts | 0 src/common/{ => primitives}/buffer/Marker.ts | 0 src/common/{ => primitives}/buffer/Types.ts | 2 +- src/common/{ => primitives}/data/Charsets.ts | 2 +- .../{ => primitives}/data/EscapeSequences.ts | 0 .../{ => primitives}/input/Keyboard.test.ts | 2 +- src/common/{ => primitives}/input/Keyboard.ts | 2 +- .../input/KittyKeyboard.test.ts | 2 +- .../{ => primitives}/input/KittyKeyboard.ts | 2 +- .../input/TextDecoder.test.ts | 0 .../{ => primitives}/input/TextDecoder.ts | 0 .../{ => primitives}/input/UnicodeV6.test.ts | 0 .../{ => primitives}/input/UnicodeV6.ts | 4 +-- .../input/Win32InputMode.test.ts | 2 +- .../{ => primitives}/input/Win32InputMode.ts | 2 +- .../input/WriteBuffer.test.ts | 0 .../{ => primitives}/input/WriteBuffer.ts | 0 .../input/XParseColor.test.ts | 0 .../{ => primitives}/input/XParseColor.ts | 0 .../{ => primitives}/parser/ApcParser.test.ts | 0 .../{ => primitives}/parser/ApcParser.ts | 2 +- .../{ => primitives}/parser/Constants.ts | 0 .../{ => primitives}/parser/DcsParser.test.ts | 0 .../{ => primitives}/parser/DcsParser.ts | 2 +- .../parser/EscapeSequenceParser.test.ts | 2 +- .../parser/EscapeSequenceParser.ts | 2 +- .../{ => primitives}/parser/OscParser.test.ts | 0 .../{ => primitives}/parser/OscParser.ts | 2 +- .../{ => primitives}/parser/Params.test.ts | 0 src/common/{ => primitives}/parser/Params.ts | 0 src/common/{ => primitives}/parser/Types.ts | 2 +- src/common/public/BufferApiView.ts | 4 +-- src/common/public/BufferLineApiView.ts | 4 +-- src/common/public/BufferNamespaceApi.ts | 4 +-- src/common/public/ParserApi.ts | 2 +- src/common/services/BufferService.test.ts | 2 +- src/common/services/BufferService.ts | 8 ++--- src/common/services/CharsetService.test.ts | 2 +- src/common/services/CoreService.ts | 4 +-- src/common/services/DecorationService.test.ts | 10 +++--- src/common/services/DecorationService.ts | 12 +++---- src/common/services/LogService.ts | 2 +- src/common/services/MouseStateService.ts | 4 +-- src/common/services/OptionsService.ts | 6 ++-- src/common/services/OscLinkService.test.ts | 2 +- src/common/services/OscLinkService.ts | 2 +- src/common/services/Services.ts | 4 +-- src/common/services/UnicodeService.test.ts | 2 +- src/common/services/UnicodeService.ts | 2 +- src/common/tsconfig.json | 13 +++++-- src/headless/Terminal.ts | 6 ++-- src/headless/public/Terminal.ts | 4 +-- .../EscapeSequenceParser.benchmark.ts | 12 +++---- test/benchmark/Event.benchmark.ts | 2 +- test/benchmark/Terminal.benchmark.ts | 2 +- test/benchmark/tsconfig.json | 5 ++- test/playwright/TestUtils.ts | 2 +- 187 files changed, 320 insertions(+), 284 deletions(-) rename src/common/{ => primitives}/Async.ts (100%) rename src/common/{ => primitives}/CircularList.test.ts (100%) rename src/common/{ => primitives}/CircularList.ts (100%) rename src/common/{ => primitives}/Color.test.ts (100%) rename src/common/{ => primitives}/Color.ts (99%) rename src/common/{ => primitives}/Event.test.ts (100%) rename src/common/{ => primitives}/Event.ts (100%) rename src/common/{ => primitives}/Lifecycle.ts (100%) rename src/common/{ => primitives}/MultiKeyMap.test.ts (100%) rename src/common/{ => primitives}/MultiKeyMap.ts (100%) rename src/common/{ => primitives}/Platform.ts (100%) rename src/common/{ => primitives}/SortedList.test.ts (98%) rename src/common/{ => primitives}/SortedList.ts (99%) rename src/common/{ => primitives}/StringBuilder.test.ts (100%) rename src/common/{ => primitives}/StringBuilder.ts (100%) rename src/common/{ => primitives}/TaskQueue.ts (98%) rename src/common/{ => primitives}/Version.ts (100%) rename src/common/{ => primitives}/buffer/AttributeData.ts (99%) rename src/common/{ => primitives}/buffer/Buffer.test.ts (99%) rename src/common/{ => primitives}/buffer/Buffer.ts (99%) rename src/common/{ => primitives}/buffer/BufferLine.test.ts (99%) rename src/common/{ => primitives}/buffer/BufferLine.ts (100%) rename src/common/{ => primitives}/buffer/BufferLineStringCache.ts (100%) rename src/common/{ => primitives}/buffer/BufferRange.test.ts (100%) rename src/common/{ => primitives}/buffer/BufferRange.ts (100%) rename src/common/{ => primitives}/buffer/BufferReflow.test.ts (100%) rename src/common/{ => primitives}/buffer/BufferReflow.ts (100%) rename src/common/{ => primitives}/buffer/BufferSet.test.ts (98%) rename src/common/{ => primitives}/buffer/BufferSet.ts (99%) rename src/common/{ => primitives}/buffer/CellData.test.ts (100%) rename src/common/{ => primitives}/buffer/CellData.ts (100%) rename src/common/{ => primitives}/buffer/Constants.ts (100%) rename src/common/{ => primitives}/buffer/Marker.ts (100%) rename src/common/{ => primitives}/buffer/Types.ts (99%) rename src/common/{ => primitives}/data/Charsets.ts (99%) rename src/common/{ => primitives}/data/EscapeSequences.ts (100%) rename src/common/{ => primitives}/input/Keyboard.test.ts (99%) rename src/common/{ => primitives}/input/Keyboard.ts (99%) rename src/common/{ => primitives}/input/KittyKeyboard.test.ts (99%) rename src/common/{ => primitives}/input/KittyKeyboard.ts (99%) rename src/common/{ => primitives}/input/TextDecoder.test.ts (100%) rename src/common/{ => primitives}/input/TextDecoder.ts (100%) rename src/common/{ => primitives}/input/UnicodeV6.test.ts (100%) rename src/common/{ => primitives}/input/UnicodeV6.ts (98%) rename src/common/{ => primitives}/input/Win32InputMode.test.ts (99%) rename src/common/{ => primitives}/input/Win32InputMode.ts (99%) rename src/common/{ => primitives}/input/WriteBuffer.test.ts (100%) rename src/common/{ => primitives}/input/WriteBuffer.ts (100%) rename src/common/{ => primitives}/input/XParseColor.test.ts (100%) rename src/common/{ => primitives}/input/XParseColor.ts (100%) rename src/common/{ => primitives}/parser/ApcParser.test.ts (100%) rename src/common/{ => primitives}/parser/ApcParser.ts (99%) rename src/common/{ => primitives}/parser/Constants.ts (100%) rename src/common/{ => primitives}/parser/DcsParser.test.ts (100%) rename src/common/{ => primitives}/parser/DcsParser.ts (99%) rename src/common/{ => primitives}/parser/EscapeSequenceParser.test.ts (99%) rename src/common/{ => primitives}/parser/EscapeSequenceParser.ts (99%) rename src/common/{ => primitives}/parser/OscParser.test.ts (100%) rename src/common/{ => primitives}/parser/OscParser.ts (99%) rename src/common/{ => primitives}/parser/Params.test.ts (100%) rename src/common/{ => primitives}/parser/Params.ts (100%) rename src/common/{ => primitives}/parser/Types.ts (99%) diff --git a/addons/addon-attach/test/tsconfig.json b/addons/addon-attach/test/tsconfig.json index 900a727ed3..ed2744ad16 100644 --- a/addons/addon-attach/test/tsconfig.json +++ b/addons/addon-attach/test/tsconfig.json @@ -11,6 +11,7 @@ "removeComments": true, "paths": { "common/*": [ + "../../../src/common/primitives/*", "../../../src/common/*" ], "browser/*": [ diff --git a/addons/addon-clipboard/test/tsconfig.json b/addons/addon-clipboard/test/tsconfig.json index 900a727ed3..ed2744ad16 100644 --- a/addons/addon-clipboard/test/tsconfig.json +++ b/addons/addon-clipboard/test/tsconfig.json @@ -11,6 +11,7 @@ "removeComments": true, "paths": { "common/*": [ + "../../../src/common/primitives/*", "../../../src/common/*" ], "browser/*": [ diff --git a/addons/addon-fit/test/tsconfig.json b/addons/addon-fit/test/tsconfig.json index 900a727ed3..ed2744ad16 100644 --- a/addons/addon-fit/test/tsconfig.json +++ b/addons/addon-fit/test/tsconfig.json @@ -11,6 +11,7 @@ "removeComments": true, "paths": { "common/*": [ + "../../../src/common/primitives/*", "../../../src/common/*" ], "browser/*": [ diff --git a/addons/addon-image/src/ImageAddon.ts b/addons/addon-image/src/ImageAddon.ts index 8fd3954311..db27175b3f 100644 --- a/addons/addon-image/src/ImageAddon.ts +++ b/addons/addon-image/src/ImageAddon.ts @@ -5,7 +5,7 @@ import type { ITerminalAddon, IDisposable } from '@xterm/xterm'; import type { ImageAddon as IImageApi } from '@xterm/addon-image'; -import { Emitter, type IEvent } from 'common/Event'; +import { Emitter, type IEvent } from 'common/primitives/Event'; import { IIPHandler } from './IIPHandler'; import { ImageRenderer } from './ImageRenderer'; import { ImageStorage, CELL_SIZE_DEFAULT } from './ImageStorage'; diff --git a/addons/addon-image/src/ImageRenderer.ts b/addons/addon-image/src/ImageRenderer.ts index 5854efaec1..674db7f033 100644 --- a/addons/addon-image/src/ImageRenderer.ts +++ b/addons/addon-image/src/ImageRenderer.ts @@ -6,7 +6,7 @@ import { toRGBA8888 } from 'sixel/lib/Colors'; import { IDisposable } from '@xterm/xterm'; import { ICellSize, ImageLayer, ITerminalExt, IImageSpec, IRenderDimensions, IRenderService } from './Types'; -import { Disposable, MutableDisposable, toDisposable } from 'common/Lifecycle'; +import { Disposable, MutableDisposable, toDisposable } from 'common/primitives/Lifecycle'; const enum Constants { PLACEHOLDER_LENGTH = 4096, diff --git a/addons/addon-image/src/Types.ts b/addons/addon-image/src/Types.ts index 53d357a973..915f73065b 100644 --- a/addons/addon-image/src/Types.ts +++ b/addons/addon-image/src/Types.ts @@ -6,11 +6,11 @@ import { IDisposable, IMarker, Terminal } from '@xterm/xterm'; // private imports from base repo we build against -import { Attributes, BgFlags, Content, ExtFlags, UnderlineStyle } from 'common/buffer/Constants'; -import type { AttributeData } from 'common/buffer/AttributeData'; -import type { IParams, IDcsHandler, IOscHandler, IApcHandler, IEscapeSequenceParser } from 'common/parser/Types'; +import { Attributes, BgFlags, Content, ExtFlags, UnderlineStyle } from 'common/primitives/buffer/Constants'; +import type { AttributeData } from 'common/primitives/buffer/AttributeData'; +import type { IParams, IDcsHandler, IOscHandler, IApcHandler, IEscapeSequenceParser } from 'common/primitives/parser/Types'; import type { IInputHandler } from 'common/Types'; -import type { IBufferLine, IExtendedAttrs } from 'common/buffer/Types'; +import type { IBufferLine, IExtendedAttrs } from 'common/primitives/buffer/Types'; import type { ITerminal, ReadonlyColorSet } from 'browser/Types'; import type { IRenderDimensions } from 'browser/renderer/shared/Types'; import type { ICoreBrowserService, IRenderService, IThemeService } from 'browser/services/Services'; diff --git a/addons/addon-image/src/tsconfig.json b/addons/addon-image/src/tsconfig.json index 9a5d24c1fc..f3b414cf59 100644 --- a/addons/addon-image/src/tsconfig.json +++ b/addons/addon-image/src/tsconfig.json @@ -13,7 +13,8 @@ ], "paths": { "browser/*": [ "../../../src/browser/*" ], - "common/*": [ "../../../src/common/*" ], + "common/*": [ "../../../src/common/primitives/*", + "../../../src/common/*" ], "@xterm/addon-image": [ "../typings/addon-image.d.ts" ], "*": [ "./*" ] } diff --git a/addons/addon-image/test/tsconfig.json b/addons/addon-image/test/tsconfig.json index 900a727ed3..ed2744ad16 100644 --- a/addons/addon-image/test/tsconfig.json +++ b/addons/addon-image/test/tsconfig.json @@ -11,6 +11,7 @@ "removeComments": true, "paths": { "common/*": [ + "../../../src/common/primitives/*", "../../../src/common/*" ], "browser/*": [ diff --git a/addons/addon-progress/src/ProgressAddon.ts b/addons/addon-progress/src/ProgressAddon.ts index 9d71179e19..192347af40 100644 --- a/addons/addon-progress/src/ProgressAddon.ts +++ b/addons/addon-progress/src/ProgressAddon.ts @@ -5,7 +5,7 @@ import type { Terminal, ITerminalAddon, IDisposable } from '@xterm/xterm'; import type { ProgressAddon as IProgressApi, IProgressState } from '@xterm/addon-progress'; -import type { Emitter, IEvent } from 'common/Event'; +import type { Emitter, IEvent } from 'common/primitives/Event'; const enum ProgressType { diff --git a/addons/addon-progress/src/tsconfig.json b/addons/addon-progress/src/tsconfig.json index bd437f5b64..c518251977 100644 --- a/addons/addon-progress/src/tsconfig.json +++ b/addons/addon-progress/src/tsconfig.json @@ -16,6 +16,7 @@ ], "paths": { "common/*": [ + "../../../src/common/primitives/*", "../../../src/common/*" ], "browser/*": [ diff --git a/addons/addon-progress/test/tsconfig.json b/addons/addon-progress/test/tsconfig.json index 900a727ed3..ed2744ad16 100644 --- a/addons/addon-progress/test/tsconfig.json +++ b/addons/addon-progress/test/tsconfig.json @@ -11,6 +11,7 @@ "removeComments": true, "paths": { "common/*": [ + "../../../src/common/primitives/*", "../../../src/common/*" ], "browser/*": [ diff --git a/addons/addon-search/src/DecorationManager.test.ts b/addons/addon-search/src/DecorationManager.test.ts index 26e40dbc20..8da58cf79b 100644 --- a/addons/addon-search/src/DecorationManager.test.ts +++ b/addons/addon-search/src/DecorationManager.test.ts @@ -10,7 +10,7 @@ import { SearchLineCache } from './SearchLineCache'; import { Terminal } from 'browser/public/Terminal'; import type { ISearchDecorationOptions } from '@xterm/addon-search'; import type { IDecorationOptions } from '@xterm/xterm'; -import { DisposableStore } from 'common/Lifecycle'; +import { DisposableStore } from 'common/primitives/Lifecycle'; function writeP(terminal: Terminal, data: string): Promise { return new Promise(r => terminal.write(data, r)); diff --git a/addons/addon-search/src/DecorationManager.ts b/addons/addon-search/src/DecorationManager.ts index a8ec12017a..c280b71379 100644 --- a/addons/addon-search/src/DecorationManager.ts +++ b/addons/addon-search/src/DecorationManager.ts @@ -5,7 +5,7 @@ import type { Terminal, IDisposable, IDecoration } from '@xterm/xterm'; import type { ISearchDecorationOptions } from '@xterm/addon-search'; -import { dispose, Disposable, toDisposable } from 'common/Lifecycle'; +import { dispose, Disposable, toDisposable } from 'common/primitives/Lifecycle'; import type { ISearchResult } from './SearchEngine'; /** diff --git a/addons/addon-search/src/SearchAddon.ts b/addons/addon-search/src/SearchAddon.ts index e5fd31cfb0..753a2eeced 100644 --- a/addons/addon-search/src/SearchAddon.ts +++ b/addons/addon-search/src/SearchAddon.ts @@ -5,9 +5,9 @@ import type { Terminal, IDisposable, ITerminalAddon } from '@xterm/xterm'; import type { SearchAddon as ISearchApi, ISearchOptions, ISearchAddonOptions, ISearchResultChangeEvent, ISearchDecorationOptions } from '@xterm/addon-search'; -import { Emitter, type IEvent } from 'common/Event'; -import { Disposable, MutableDisposable, toDisposable } from 'common/Lifecycle'; -import { disposableTimeout } from 'common/Async'; +import { Emitter, type IEvent } from 'common/primitives/Event'; +import { Disposable, MutableDisposable, toDisposable } from 'common/primitives/Lifecycle'; +import { disposableTimeout } from 'common/primitives/Async'; import { SearchLineCache } from './SearchLineCache'; import { SearchState } from './SearchState'; import { SearchEngine, type ISearchResult } from './SearchEngine'; diff --git a/addons/addon-search/src/SearchEngine.test.ts b/addons/addon-search/src/SearchEngine.test.ts index b3cea8f54f..c6d4c5528b 100644 --- a/addons/addon-search/src/SearchEngine.test.ts +++ b/addons/addon-search/src/SearchEngine.test.ts @@ -7,7 +7,7 @@ import { SearchEngine } from './SearchEngine'; import { SearchLineCache } from './SearchLineCache'; import { Terminal } from 'browser/public/Terminal'; import type { ISearchOptions } from '@xterm/addon-search'; -import { DisposableStore } from 'common/Lifecycle'; +import { DisposableStore } from 'common/primitives/Lifecycle'; function writeP(terminal: Terminal, data: string): Promise { return new Promise(r => terminal.write(data, r)); diff --git a/addons/addon-search/src/SearchLineCache.test.ts b/addons/addon-search/src/SearchLineCache.test.ts index 77f64c81ec..703f1c423a 100644 --- a/addons/addon-search/src/SearchLineCache.test.ts +++ b/addons/addon-search/src/SearchLineCache.test.ts @@ -5,7 +5,7 @@ import { assert } from 'chai'; import { SearchLineCache, LineCacheEntry } from './SearchLineCache'; import { Terminal } from 'browser/public/Terminal'; -import { timeout } from 'common/Async'; +import { timeout } from 'common/primitives/Async'; function writeP(terminal: Terminal, data: string): Promise { return new Promise(r => terminal.write(data, r)); diff --git a/addons/addon-search/src/SearchLineCache.ts b/addons/addon-search/src/SearchLineCache.ts index 526f4bfcc7..32e3b90a5f 100644 --- a/addons/addon-search/src/SearchLineCache.ts +++ b/addons/addon-search/src/SearchLineCache.ts @@ -4,8 +4,8 @@ */ import type { Terminal } from '@xterm/xterm'; -import { combinedDisposable, Disposable, MutableDisposable, toDisposable } from 'common/Lifecycle'; -import { disposableTimeout } from 'common/Async'; +import { combinedDisposable, Disposable, MutableDisposable, toDisposable } from 'common/primitives/Lifecycle'; +import { disposableTimeout } from 'common/primitives/Async'; export type LineCacheEntry = [ /** diff --git a/addons/addon-search/src/SearchResultTracker.ts b/addons/addon-search/src/SearchResultTracker.ts index 285345b7a4..ba1e3003e1 100644 --- a/addons/addon-search/src/SearchResultTracker.ts +++ b/addons/addon-search/src/SearchResultTracker.ts @@ -5,8 +5,8 @@ import type { ISearchResultChangeEvent } from '@xterm/addon-search'; import type { IDisposable } from '@xterm/xterm'; -import { Emitter, type IEvent } from 'common/Event'; -import { Disposable } from 'common/Lifecycle'; +import { Emitter, type IEvent } from 'common/primitives/Event'; +import { Disposable } from 'common/primitives/Lifecycle'; import type { ISearchResult } from './SearchEngine'; /** diff --git a/addons/addon-search/src/tsconfig.json b/addons/addon-search/src/tsconfig.json index 9817710faf..ec2092ab21 100644 --- a/addons/addon-search/src/tsconfig.json +++ b/addons/addon-search/src/tsconfig.json @@ -16,6 +16,7 @@ ], "paths": { "common/*": [ + "../../../src/common/primitives/*", "../../../src/common/*" ], "browser/*": [ diff --git a/addons/addon-search/test/tsconfig.json b/addons/addon-search/test/tsconfig.json index 900a727ed3..ed2744ad16 100644 --- a/addons/addon-search/test/tsconfig.json +++ b/addons/addon-search/test/tsconfig.json @@ -11,6 +11,7 @@ "removeComments": true, "paths": { "common/*": [ + "../../../src/common/primitives/*", "../../../src/common/*" ], "browser/*": [ diff --git a/addons/addon-serialize/benchmark/SerializeAddon.benchmark.ts b/addons/addon-serialize/benchmark/SerializeAddon.benchmark.ts index b60dba1ddc..93a08d7b4e 100644 --- a/addons/addon-serialize/benchmark/SerializeAddon.benchmark.ts +++ b/addons/addon-serialize/benchmark/SerializeAddon.benchmark.ts @@ -6,7 +6,7 @@ import { perfContext, before, ThroughputRuntimeCase } from 'xterm-benchmark'; import { spawn } from 'node-pty'; -import { Utf8ToUtf32, stringFromCodePoint } from 'common/input/TextDecoder'; +import { Utf8ToUtf32, stringFromCodePoint } from 'common/primitives/input/TextDecoder'; import { Terminal } from 'browser/public/Terminal'; import { SerializeAddon } from 'SerializeAddon'; diff --git a/addons/addon-serialize/benchmark/tsconfig.json b/addons/addon-serialize/benchmark/tsconfig.json index ad7ee6d040..aaf7d2b895 100644 --- a/addons/addon-serialize/benchmark/tsconfig.json +++ b/addons/addon-serialize/benchmark/tsconfig.json @@ -12,7 +12,8 @@ "target": "es2021", "module": "nodenext", "paths": { - "common/*": ["../../../src/common/*"], + "common/*": ["../../../src/common/primitives/*", + "../../../src/common/*"], "browser/*": ["../../../src/browser/*"], "SerializeAddon": ["../src/SerializeAddon"], "@xterm/addon-serialize": [ diff --git a/addons/addon-serialize/src/SerializeAddon.ts b/addons/addon-serialize/src/SerializeAddon.ts index e1728feb21..3c64158fa5 100644 --- a/addons/addon-serialize/src/SerializeAddon.ts +++ b/addons/addon-serialize/src/SerializeAddon.ts @@ -8,9 +8,9 @@ import type { IBuffer, IBufferCell, IBufferRange, ITerminalAddon, Terminal } from '@xterm/xterm'; import type { IHTMLSerializeOptions, SerializeAddon as ISerializeApi, ISerializeOptions, ISerializeRange } from '@xterm/addon-serialize'; import { IColor } from 'common/Types'; -import { IAttributeData } from 'common/buffer/Types'; +import { IAttributeData } from 'common/primitives/buffer/Types'; import { DEFAULT_ANSI_COLORS } from 'browser/Types'; -import { UnderlineStyle } from 'common/buffer/Constants'; +import { UnderlineStyle } from 'common/primitives/buffer/Constants'; function constrain(value: number, low: number, high: number): number { return Math.max(low, Math.min(value, high)); diff --git a/addons/addon-serialize/src/tsconfig.json b/addons/addon-serialize/src/tsconfig.json index 725647366d..3c12df8b13 100644 --- a/addons/addon-serialize/src/tsconfig.json +++ b/addons/addon-serialize/src/tsconfig.json @@ -12,6 +12,7 @@ "removeComments": true, "paths": { "common/*": [ + "../../../src/common/primitives/*", "../../../src/common/*" ], "browser/*": [ diff --git a/addons/addon-serialize/test/tsconfig.json b/addons/addon-serialize/test/tsconfig.json index 769909b199..7eea710056 100644 --- a/addons/addon-serialize/test/tsconfig.json +++ b/addons/addon-serialize/test/tsconfig.json @@ -11,6 +11,7 @@ "removeComments": true, "paths": { "common/*": [ + "../../../src/common/primitives/*", "../../../src/common/*" ], "browser/*": [ diff --git a/addons/addon-unicode-graphemes/benchmark/UnicodeGraphemeAddon.benchmark.ts b/addons/addon-unicode-graphemes/benchmark/UnicodeGraphemeAddon.benchmark.ts index 7538b93440..bfb9976b27 100644 --- a/addons/addon-unicode-graphemes/benchmark/UnicodeGraphemeAddon.benchmark.ts +++ b/addons/addon-unicode-graphemes/benchmark/UnicodeGraphemeAddon.benchmark.ts @@ -6,7 +6,7 @@ import { perfContext, before, ThroughputRuntimeCase } from 'xterm-benchmark'; import { spawn } from 'node-pty'; -import { Utf8ToUtf32, stringFromCodePoint } from 'common/input/TextDecoder'; +import { Utf8ToUtf32, stringFromCodePoint } from 'common/primitives/input/TextDecoder'; import { CoreBrowserTerminal } from 'browser/CoreBrowserTerminal'; import { UnicodeGraphemeProvider } from 'UnicodeGraphemeProvider'; diff --git a/addons/addon-unicode-graphemes/benchmark/tsconfig.json b/addons/addon-unicode-graphemes/benchmark/tsconfig.json index 1781ca3182..c6c9cbc2a4 100644 --- a/addons/addon-unicode-graphemes/benchmark/tsconfig.json +++ b/addons/addon-unicode-graphemes/benchmark/tsconfig.json @@ -9,7 +9,8 @@ "target": "es2015", "module": "nodenext", "paths": { - "common/*": ["../../../src/common/*"], + "common/*": ["../../../src/common/primitives/*", + "../../../src/common/*"], "browser/*": ["../../../src/browser/*"], "UnicodeGraphemeProvider": ["../src/UnicodeGraphemeProvider"], "@xterm/addon-unicode-graphemes": [ diff --git a/addons/addon-unicode-graphemes/src/tsconfig.json b/addons/addon-unicode-graphemes/src/tsconfig.json index 824909dbd2..3fb909b60d 100644 --- a/addons/addon-unicode-graphemes/src/tsconfig.json +++ b/addons/addon-unicode-graphemes/src/tsconfig.json @@ -13,6 +13,7 @@ "strict": true, "paths": { "common/*": [ + "../../../src/common/primitives/*", "../../../src/common/*" ], "@xterm/addon-unicode-graphemes": [ diff --git a/addons/addon-unicode-graphemes/test/tsconfig.json b/addons/addon-unicode-graphemes/test/tsconfig.json index 769909b199..7eea710056 100644 --- a/addons/addon-unicode-graphemes/test/tsconfig.json +++ b/addons/addon-unicode-graphemes/test/tsconfig.json @@ -11,6 +11,7 @@ "removeComments": true, "paths": { "common/*": [ + "../../../src/common/primitives/*", "../../../src/common/*" ], "browser/*": [ diff --git a/addons/addon-unicode11/src/tsconfig.json b/addons/addon-unicode11/src/tsconfig.json index 31286fb0fc..995fcabcf8 100644 --- a/addons/addon-unicode11/src/tsconfig.json +++ b/addons/addon-unicode11/src/tsconfig.json @@ -13,6 +13,7 @@ "strict": true, "paths": { "common/*": [ + "../../../src/common/primitives/*", "../../../src/common/*" ], "@xterm/addon-unicode11": [ diff --git a/addons/addon-unicode11/test/tsconfig.json b/addons/addon-unicode11/test/tsconfig.json index 900a727ed3..ed2744ad16 100644 --- a/addons/addon-unicode11/test/tsconfig.json +++ b/addons/addon-unicode11/test/tsconfig.json @@ -11,6 +11,7 @@ "removeComments": true, "paths": { "common/*": [ + "../../../src/common/primitives/*", "../../../src/common/*" ], "browser/*": [ diff --git a/addons/addon-web-fonts/test/tsconfig.json b/addons/addon-web-fonts/test/tsconfig.json index 59664e32b2..a64ff92630 100644 --- a/addons/addon-web-fonts/test/tsconfig.json +++ b/addons/addon-web-fonts/test/tsconfig.json @@ -11,6 +11,7 @@ "removeComments": true, "paths": { "common/*": [ + "../../../src/common/primitives/*", "../../../src/common/*" ], "browser/*": [ diff --git a/addons/addon-web-links/test/tsconfig.json b/addons/addon-web-links/test/tsconfig.json index 59664e32b2..a64ff92630 100644 --- a/addons/addon-web-links/test/tsconfig.json +++ b/addons/addon-web-links/test/tsconfig.json @@ -11,6 +11,7 @@ "removeComments": true, "paths": { "common/*": [ + "../../../src/common/primitives/*", "../../../src/common/*" ], "browser/*": [ diff --git a/addons/addon-webgl/src/CellColorResolver.ts b/addons/addon-webgl/src/CellColorResolver.ts index 49fdf5b1bb..3e0e3e9a51 100644 --- a/addons/addon-webgl/src/CellColorResolver.ts +++ b/addons/addon-webgl/src/CellColorResolver.ts @@ -1,11 +1,11 @@ import { ISelectionRenderModel } from 'browser/renderer/shared/Types'; import { ICoreBrowserService, IThemeService } from 'browser/services/Services'; import { ReadonlyColorSet } from 'browser/Types'; -import { Attributes, BgFlags, ExtFlags, FgFlags, NULL_CELL_CODE, UnderlineStyle } from 'common/buffer/Constants'; +import { Attributes, BgFlags, ExtFlags, FgFlags, NULL_CELL_CODE, UnderlineStyle } from 'common/primitives/buffer/Constants'; import { IDecorationService, IOptionsService } from 'common/services/Services'; -import { ICellData } from 'common/buffer/Types'; +import { ICellData } from 'common/primitives/buffer/Types'; import { Terminal } from '@xterm/xterm'; -import { rgba } from 'common/Color'; +import { rgba } from 'common/primitives/Color'; import { treatGlyphAsBackgroundColor } from 'browser/renderer/shared/RendererUtils'; import { blockPatternCodepoints } from './customGlyphs/CustomGlyphDefinitions'; diff --git a/addons/addon-webgl/src/CharAtlasUtils.test.ts b/addons/addon-webgl/src/CharAtlasUtils.test.ts index 0a135746e8..35c928b861 100644 --- a/addons/addon-webgl/src/CharAtlasUtils.test.ts +++ b/addons/addon-webgl/src/CharAtlasUtils.test.ts @@ -6,7 +6,7 @@ import { assert } from 'chai'; import { configEquals } from './CharAtlasUtils'; import { ICharAtlasConfig } from './Types'; -import { NULL_COLOR } from 'common/Color'; +import { NULL_COLOR } from 'common/primitives/Color'; import { IColor } from 'common/Types'; function createTestConfig(overrides: Partial = {}): ICharAtlasConfig { diff --git a/addons/addon-webgl/src/CharAtlasUtils.ts b/addons/addon-webgl/src/CharAtlasUtils.ts index d9ca69b39d..810c0991d0 100644 --- a/addons/addon-webgl/src/CharAtlasUtils.ts +++ b/addons/addon-webgl/src/CharAtlasUtils.ts @@ -4,10 +4,10 @@ */ import { ICharAtlasConfig } from './Types'; -import { Attributes } from 'common/buffer/Constants'; +import { Attributes } from 'common/primitives/buffer/Constants'; import { ITerminalOptions } from '@xterm/xterm'; import { IColorSet, ReadonlyColorSet } from 'browser/Types'; -import { NULL_COLOR } from 'common/Color'; +import { NULL_COLOR } from 'common/primitives/Color'; export function generateConfig(deviceCellWidth: number, deviceCellHeight: number, deviceCharWidth: number, deviceCharHeight: number, options: Required, colors: ReadonlyColorSet, devicePixelRatio: number, deviceMaxTextureSize: number, customGlyphs: boolean = true): ICharAtlasConfig { // null out some fields that don't matter diff --git a/addons/addon-webgl/src/Constants.ts b/addons/addon-webgl/src/Constants.ts index a00434d619..5d3c1c0858 100644 --- a/addons/addon-webgl/src/Constants.ts +++ b/addons/addon-webgl/src/Constants.ts @@ -3,7 +3,7 @@ * @license MIT */ -import { isFirefox, isLegacyEdge } from 'common/Platform'; +import { isFirefox, isLegacyEdge } from 'common/primitives/Platform'; export const DIM_OPACITY = 0.5; // The text baseline is set conditionally by browser. Using 'ideographic' for Firefox or Legacy Edge diff --git a/addons/addon-webgl/src/DevicePixelObserver.ts b/addons/addon-webgl/src/DevicePixelObserver.ts index dcd8de0a6d..96b682f2c8 100644 --- a/addons/addon-webgl/src/DevicePixelObserver.ts +++ b/addons/addon-webgl/src/DevicePixelObserver.ts @@ -3,7 +3,7 @@ * @license MIT */ -import { toDisposable, IDisposable } from 'common/Lifecycle'; +import { toDisposable, IDisposable } from 'common/primitives/Lifecycle'; export function observeDevicePixelDimensions(element: HTMLElement, parentWindow: Window & typeof globalThis, callback: (deviceWidth: number, deviceHeight: number) => void): IDisposable { // Observe any resizes to the element and extract the actual pixel size of the element if the diff --git a/addons/addon-webgl/src/GlyphRenderer.ts b/addons/addon-webgl/src/GlyphRenderer.ts index be1990c2a6..e88776a2fb 100644 --- a/addons/addon-webgl/src/GlyphRenderer.ts +++ b/addons/addon-webgl/src/GlyphRenderer.ts @@ -4,8 +4,8 @@ */ import { TextureAtlas } from './TextureAtlas'; import { IRenderDimensions } from 'browser/renderer/shared/Types'; -import { NULL_CELL_CODE } from 'common/buffer/Constants'; -import { Disposable, toDisposable } from 'common/Lifecycle'; +import { NULL_CELL_CODE } from 'common/primitives/buffer/Constants'; +import { Disposable, toDisposable } from 'common/primitives/Lifecycle'; import { Terminal } from '@xterm/xterm'; import { IRenderModel, IWebGL2RenderingContext, IWebGLVertexArrayObject, type IRasterizedGlyph, type ITextureAtlas } from './Types'; import { createProgram, GLTexture, PROJECTION_MATRIX } from './WebglUtils'; diff --git a/addons/addon-webgl/src/RectangleRenderer.ts b/addons/addon-webgl/src/RectangleRenderer.ts index eebfda3b3d..bd934cfc87 100644 --- a/addons/addon-webgl/src/RectangleRenderer.ts +++ b/addons/addon-webgl/src/RectangleRenderer.ts @@ -6,8 +6,8 @@ import { IRenderDimensions } from 'browser/renderer/shared/Types'; import { IThemeService } from 'browser/services/Services'; import { ReadonlyColorSet } from 'browser/Types'; -import { Attributes, FgFlags } from 'common/buffer/Constants'; -import { Disposable, toDisposable } from 'common/Lifecycle'; +import { Attributes, FgFlags } from 'common/primitives/buffer/Constants'; +import { Disposable, toDisposable } from 'common/primitives/Lifecycle'; import { IColor } from 'common/Types'; import { Terminal } from '@xterm/xterm'; import { RenderModelConstants } from './RenderModel'; diff --git a/addons/addon-webgl/src/TextureAtlas.ts b/addons/addon-webgl/src/TextureAtlas.ts index 1c3e08a1cb..1f1eb73f0b 100644 --- a/addons/addon-webgl/src/TextureAtlas.ts +++ b/addons/addon-webgl/src/TextureAtlas.ts @@ -8,14 +8,14 @@ import { DIM_OPACITY, TEXT_BASELINE } from './Constants'; import { tryDrawCustomGlyph } from './customGlyphs/CustomGlyphRasterizer'; import { computeNextVariantOffset, treatGlyphAsBackgroundColor, isPowerlineGlyph, isRestrictedPowerlineGlyph, throwIfFalsy } from 'browser/renderer/shared/RendererUtils'; import { IBoundingBox, ICharAtlasConfig, IRasterizedGlyph, ITextureAtlas } from './Types'; -import { NULL_COLOR, channels, color, rgba } from 'common/Color'; -import { FourKeyMap } from 'common/MultiKeyMap'; -import { IdleTaskQueue } from 'common/TaskQueue'; +import { NULL_COLOR, channels, color, rgba } from 'common/primitives/Color'; +import { FourKeyMap } from 'common/primitives/MultiKeyMap'; +import { IdleTaskQueue } from 'common/primitives/TaskQueue'; import { IColor } from 'common/Types'; -import { AttributeData } from 'common/buffer/AttributeData'; -import { Attributes, DEFAULT_COLOR, DEFAULT_EXT, UnderlineStyle } from 'common/buffer/Constants'; +import { AttributeData } from 'common/primitives/buffer/AttributeData'; +import { Attributes, DEFAULT_COLOR, DEFAULT_EXT, UnderlineStyle } from 'common/primitives/buffer/Constants'; import { ILogService, IUnicodeService } from 'common/services/Services'; -import { Emitter } from 'common/Event'; +import { Emitter } from 'common/primitives/Event'; /** * A shared object which is used to draw nothing for a particular cell. diff --git a/addons/addon-webgl/src/Types.ts b/addons/addon-webgl/src/Types.ts index 294582e372..2a59935362 100644 --- a/addons/addon-webgl/src/Types.ts +++ b/addons/addon-webgl/src/Types.ts @@ -7,7 +7,7 @@ import { FontWeight } from '@xterm/xterm'; import { IColorSet } from 'browser/Types'; import { ISelectionRenderModel } from 'browser/renderer/shared/Types'; import { CursorInactiveStyle, CursorStyle, type IDisposable } from 'common/Types'; -import type { IEvent } from 'common/Event'; +import type { IEvent } from 'common/primitives/Event'; export interface IRenderModel { cells: Uint32Array; diff --git a/addons/addon-webgl/src/WebglAddon.ts b/addons/addon-webgl/src/WebglAddon.ts index f61206b138..2e9a492ac7 100644 --- a/addons/addon-webgl/src/WebglAddon.ts +++ b/addons/addon-webgl/src/WebglAddon.ts @@ -7,12 +7,12 @@ import type { ITerminalAddon, Terminal } from '@xterm/xterm'; import type { IWebglAddonOptions, WebglAddon as IWebglApi } from '@xterm/addon-webgl'; import { ICharacterJoinerService, ICharSizeService, ICoreBrowserService, IRenderService, IThemeService } from 'browser/services/Services'; import { ITerminal } from 'browser/Types'; -import { Disposable, toDisposable } from 'common/Lifecycle'; -import { getSafariVersion, isSafari } from 'common/Platform'; +import { Disposable, toDisposable } from 'common/primitives/Lifecycle'; +import { getSafariVersion, isSafari } from 'common/primitives/Platform'; import { ICoreService, IDecorationService, ILogService, IOptionsService } from 'common/services/Services'; import { IWebGL2RenderingContext } from './Types'; import { WebglRenderer } from './WebglRenderer'; -import { Emitter, EventUtils } from 'common/Event'; +import { Emitter, EventUtils } from 'common/primitives/Event'; export class WebglAddon extends Disposable implements ITerminalAddon, IWebglApi { private _terminal?: Terminal; diff --git a/addons/addon-webgl/src/WebglRenderer.ts b/addons/addon-webgl/src/WebglRenderer.ts index a951efba5c..87047d7db4 100644 --- a/addons/addon-webgl/src/WebglRenderer.ts +++ b/addons/addon-webgl/src/WebglRenderer.ts @@ -10,10 +10,10 @@ import { CursorBlinkStateManager } from './CursorBlinkStateManager'; import { observeDevicePixelDimensions } from './DevicePixelObserver'; import { IRenderDimensions, IRenderer, IRequestRedrawEvent } from 'browser/renderer/shared/Types'; import { ICharSizeService, ICharacterJoinerService, ICoreBrowserService, IThemeService } from 'browser/services/Services'; -import { CharData, IBufferLine, ICellData } from 'common/buffer/Types'; -import { AttributeData } from 'common/buffer/AttributeData'; -import { CellData } from 'common/buffer/CellData'; -import { Attributes, Content, FgFlags, NULL_CELL_CHAR, NULL_CELL_CODE } from 'common/buffer/Constants'; +import { CharData, IBufferLine, ICellData } from 'common/primitives/buffer/Types'; +import { AttributeData } from 'common/primitives/buffer/AttributeData'; +import { CellData } from 'common/primitives/buffer/CellData'; +import { Attributes, Content, FgFlags, NULL_CELL_CHAR, NULL_CELL_CODE } from 'common/primitives/buffer/Constants'; import { TextBlinkStateManager } from 'browser/renderer/shared/TextBlinkStateManager'; import { ICoreService, IDecorationService, ILogService, IOptionsService } from 'common/services/Services'; import { Terminal } from '@xterm/xterm'; @@ -23,9 +23,9 @@ import { COMBINED_CHAR_BIT_MASK, RenderModel, RenderModelConstants } from './Ren import { IWebGL2RenderingContext, type ITextureAtlas } from './Types'; import { LinkRenderLayer } from './renderLayer/LinkRenderLayer'; import { IRenderLayer } from './renderLayer/Types'; -import { Emitter, EventUtils } from 'common/Event'; +import { Emitter, EventUtils } from 'common/primitives/Event'; import { addDisposableListener } from 'browser/Dom'; -import { combinedDisposable, Disposable, MutableDisposable, toDisposable } from 'common/Lifecycle'; +import { combinedDisposable, Disposable, MutableDisposable, toDisposable } from 'common/primitives/Lifecycle'; import { createRenderDimensions } from 'browser/renderer/shared/RendererUtils'; const enum Constants { diff --git a/addons/addon-webgl/src/renderLayer/BaseRenderLayer.ts b/addons/addon-webgl/src/renderLayer/BaseRenderLayer.ts index 5b11615328..cf3ec589df 100644 --- a/addons/addon-webgl/src/renderLayer/BaseRenderLayer.ts +++ b/addons/addon-webgl/src/renderLayer/BaseRenderLayer.ts @@ -7,8 +7,8 @@ import { ReadonlyColorSet } from 'browser/Types'; import { acquireTextureAtlas } from '../CharAtlasCache'; import { IRenderDimensions } from 'browser/renderer/shared/Types'; import { ICoreBrowserService, IThemeService } from 'browser/services/Services'; -import { Disposable, toDisposable } from 'common/Lifecycle'; -import { CellData } from 'common/buffer/CellData'; +import { Disposable, toDisposable } from 'common/primitives/Lifecycle'; +import { CellData } from 'common/primitives/buffer/CellData'; import { IOptionsService } from 'common/services/Services'; import { Terminal } from '@xterm/xterm'; import { IRenderLayer } from './Types'; diff --git a/addons/addon-webgl/src/tsconfig.json b/addons/addon-webgl/src/tsconfig.json index 7035daa865..429cc75c34 100644 --- a/addons/addon-webgl/src/tsconfig.json +++ b/addons/addon-webgl/src/tsconfig.json @@ -12,6 +12,7 @@ "removeComments": true, "paths": { "common/*": [ + "../../../src/common/primitives/*", "../../../src/common/*" ], "browser/*": [ diff --git a/addons/addon-webgl/test/tsconfig.json b/addons/addon-webgl/test/tsconfig.json index 73439ddc1b..eb1085d1da 100644 --- a/addons/addon-webgl/test/tsconfig.json +++ b/addons/addon-webgl/test/tsconfig.json @@ -11,6 +11,7 @@ "removeComments": true, "paths": { "common/*": [ + "../../../src/common/primitives/*", "../../../src/common/*" ], "browser/*": [ diff --git a/bin/esbuild.mjs b/bin/esbuild.mjs index 9e5f2d2329..3e67fd147a 100644 --- a/bin/esbuild.mjs +++ b/bin/esbuild.mjs @@ -190,7 +190,10 @@ if (config.addon) { ...outConfig, entryPoints: [ 'src/browser/**/*.ts', - 'src/common/**/*.ts', + 'src/common/primitives/**/*.ts', + 'src/common/services/**/*.ts', + 'src/common/public/**/*.ts', + 'src/common/*.ts', 'src/headless/**/*.ts' ], outdir: 'out-esbuild/' diff --git a/demo/client/components/window/cellInspectorWindow.ts b/demo/client/components/window/cellInspectorWindow.ts index 8bc28a974e..ff81405100 100644 --- a/demo/client/components/window/cellInspectorWindow.ts +++ b/demo/client/components/window/cellInspectorWindow.ts @@ -7,7 +7,7 @@ import { BaseWindow } from './baseWindow'; import type { IControlWindow } from '../controlBar'; import type { IBufferCell } from '@xterm/xterm'; -// Underline style values from common/buffer/Constants.ts +// Underline style values from common/primitives/buffer/Constants.ts const enum UnderlineStyle { NONE = 0, SINGLE = 1, diff --git a/src/browser/AccessibilityManager.ts b/src/browser/AccessibilityManager.ts index 04b969afe7..61b68a0833 100644 --- a/src/browser/AccessibilityManager.ts +++ b/src/browser/AccessibilityManager.ts @@ -6,9 +6,9 @@ import * as Strings from './LocalizableStrings'; import { ITerminal, IRenderDebouncer } from './Types'; import { TimeBasedDebouncer } from './TimeBasedDebouncer'; -import { Disposable, toDisposable } from '../common/Lifecycle'; +import { Disposable, toDisposable } from '../common/primitives/Lifecycle'; import { ICoreBrowserService, IRenderService } from './services/Services'; -import { IBuffer } from '../common/buffer/Types'; +import { IBuffer } from '../common/primitives/buffer/Types'; import { IInstantiationService } from '../common/services/Services'; import { addDisposableListener } from './Dom'; diff --git a/src/browser/ColorContrastCache.ts b/src/browser/ColorContrastCache.ts index fdcd9d1331..38a7df383e 100644 --- a/src/browser/ColorContrastCache.ts +++ b/src/browser/ColorContrastCache.ts @@ -5,7 +5,7 @@ import { IColorContrastCache } from './Types'; import { IColor } from '../common/Types'; -import { TwoKeyMap } from '../common/MultiKeyMap'; +import { TwoKeyMap } from '../common/primitives/MultiKeyMap'; export class ColorContrastCache implements IColorContrastCache { private _color: TwoKeyMap = new TwoKeyMap(); diff --git a/src/browser/CoreBrowserTerminal.ts b/src/browser/CoreBrowserTerminal.ts index 4557e1652c..6d4d2123c2 100644 --- a/src/browser/CoreBrowserTerminal.ts +++ b/src/browser/CoreBrowserTerminal.ts @@ -43,22 +43,22 @@ import { SelectionService } from './services/SelectionService'; import { ICharSizeService, ICharacterJoinerService, ICoreBrowserService, IKeyboardService, ILinkProviderService, IMouseCoordsService, IMouseService, IRenderService, ISelectionService, IThemeService } from './services/Services'; import { ThemeService } from './services/ThemeService'; import { KeyboardService } from './services/KeyboardService'; -import { channels, color, rgb } from '../common/Color'; +import { channels, color, rgb } from '../common/primitives/Color'; import { CoreTerminal } from '../common/CoreTerminal'; -import * as Browser from '../common/Platform'; +import * as Browser from '../common/primitives/Platform'; import { ColorRequestType, IColorEvent, ITerminalOptions, KeyboardResultType, SpecialColorIndex } from '../common/Types'; -import { DEFAULT_ATTR_DATA } from '../common/buffer/BufferLine'; -import { IBuffer } from '../common/buffer/Types'; -import { C0, C1ESCAPED } from '../common/data/EscapeSequences'; -import { toRgbString } from '../common/input/XParseColor'; +import { DEFAULT_ATTR_DATA } from '../common/primitives/buffer/BufferLine'; +import { IBuffer } from '../common/primitives/buffer/Types'; +import { C0, C1ESCAPED } from '../common/primitives/data/EscapeSequences'; +import { toRgbString } from '../common/primitives/input/XParseColor'; import { DecorationService } from '../common/services/DecorationService'; import { IDecorationService } from '../common/services/Services'; import { WindowsOptionsReportType } from '../common/InputHandler'; import { AccessibilityManager } from './AccessibilityManager'; import { Linkifier } from './Linkifier'; -import { Emitter, EventUtils, type IEvent } from '../common/Event'; +import { Emitter, EventUtils, type IEvent } from '../common/primitives/Event'; import { addDisposableListener } from './Dom'; -import { MutableDisposable, toDisposable } from '../common/Lifecycle'; +import { MutableDisposable, toDisposable } from '../common/primitives/Lifecycle'; export class CoreBrowserTerminal extends CoreTerminal implements ITerminal { public textarea: HTMLTextAreaElement | undefined; diff --git a/src/browser/Dom.ts b/src/browser/Dom.ts index 4d174270be..780214540a 100644 --- a/src/browser/Dom.ts +++ b/src/browser/Dom.ts @@ -5,8 +5,8 @@ * Minimal DOM helpers for xterm.js browser code. */ -import { IntervalTimer } from '../common/Async'; -import { IDisposable } from '../common/Lifecycle'; +import { IntervalTimer } from '../common/primitives/Async'; +import { IDisposable } from '../common/primitives/Lifecycle'; export function getWindow(e: Node | UIEvent | undefined | null): Window { const candidateNode = e as Node | undefined | null; diff --git a/src/browser/Linkifier.ts b/src/browser/Linkifier.ts index 9581fb2992..3daa7a95e8 100644 --- a/src/browser/Linkifier.ts +++ b/src/browser/Linkifier.ts @@ -4,11 +4,11 @@ */ import { IBufferCellPosition, ILink, ILinkDecorations, ILinkWithState, ILinkifier2, ILinkifierEvent } from './Types'; -import { Disposable, dispose, toDisposable } from '../common/Lifecycle'; +import { Disposable, dispose, toDisposable } from '../common/primitives/Lifecycle'; import { IDisposable } from '../common/Types'; import { IBufferService } from '../common/services/Services'; import { ILinkProviderService, IMouseCoordsService, IRenderService } from './services/Services'; -import { Emitter } from '../common/Event'; +import { Emitter } from '../common/primitives/Event'; import { addDisposableListener } from './Dom'; export class Linkifier extends Disposable implements ILinkifier2 { diff --git a/src/browser/OscLinkProvider.test.ts b/src/browser/OscLinkProvider.test.ts index 0356bcfdc0..2aa461f98a 100644 --- a/src/browser/OscLinkProvider.test.ts +++ b/src/browser/OscLinkProvider.test.ts @@ -9,7 +9,7 @@ import { ILink } from './Types'; import { createCellData, MockBufferService, MockOptionsService } from '../common/TestUtils.test'; import { IBufferService, IOscLinkService } from '../common/services/Services'; import { IOscLinkData } from '../common/Types'; -import { IBufferLine } from '../common/buffer/Types'; +import { IBufferLine } from '../common/primitives/buffer/Types'; class TestOscLinkService implements IOscLinkService { public serviceBrand: any; diff --git a/src/browser/OscLinkProvider.ts b/src/browser/OscLinkProvider.ts index 9fdef15616..5272a339a4 100644 --- a/src/browser/OscLinkProvider.ts +++ b/src/browser/OscLinkProvider.ts @@ -5,8 +5,8 @@ import { IBufferRange, ILink } from './Types'; import { ILinkProvider } from './services/Services'; -import { CellData } from '../common/buffer/CellData'; -import { IBufferLine } from '../common/buffer/Types'; +import { CellData } from '../common/primitives/buffer/CellData'; +import { IBufferLine } from '../common/primitives/buffer/Types'; import { IBufferService, IOptionsService, IOscLinkService } from '../common/services/Services'; export class OscLinkProvider implements ILinkProvider { diff --git a/src/browser/Terminal.test.ts b/src/browser/Terminal.test.ts index a98ddf8659..dc9edac435 100644 --- a/src/browser/Terminal.test.ts +++ b/src/browser/Terminal.test.ts @@ -6,10 +6,10 @@ import { MockCompositionHelper, MockRenderer, MockViewport, TestTerminal } from './TestUtils.test'; import type { IBrowser } from './Types'; import { assert } from 'chai'; -import { DEFAULT_ATTR_DATA } from '../common/buffer/BufferLine'; -import { CellData } from '../common/buffer/CellData'; +import { DEFAULT_ATTR_DATA } from '../common/primitives/buffer/BufferLine'; +import { CellData } from '../common/primitives/buffer/CellData'; import { MockUnicodeService, createCellData } from '../common/TestUtils.test'; -import { IMarker } from '../common/buffer/Types'; +import { IMarker } from '../common/primitives/buffer/Types'; const INIT_COLS = 80; const INIT_ROWS = 24; diff --git a/src/browser/TestUtils.test.ts b/src/browser/TestUtils.test.ts index 7b34645952..d8dfce6a54 100644 --- a/src/browser/TestUtils.test.ts +++ b/src/browser/TestUtils.test.ts @@ -7,19 +7,19 @@ import { IDisposable, IMarker, ILinkProvider, IDecorationOptions, IDecoration, I import { ICharacterJoinerService, ICharSizeService, ICoreBrowserService, IMouseService, IRenderService, ISelectionService, IThemeService } from './services/Services'; import { IRenderDimensions, IRenderer, IRequestRedrawEvent } from './renderer/shared/Types'; import { IColorSet, ITerminal, ILinkifier2, IBrowser, IViewport, ICompositionHelper, CharacterJoinerHandler, IBufferRange, ReadonlyColorSet, IBufferElementProvider } from './Types'; -import { IAttributeData, IBuffer, IBufferLine, IBufferSet, ICellData } from '../common/buffer/Types'; -import { ICircularList } from '../common/CircularList'; +import { IAttributeData, IBuffer, IBufferLine, IBufferSet, ICellData } from '../common/primitives/buffer/Types'; +import { ICircularList } from '../common/primitives/CircularList'; import { XtermListener, ICharset, ITerminalOptions, ColorIndex } from '../common/Types'; -import { Buffer } from '../common/buffer/Buffer'; -import * as Browser from '../common/Platform'; +import { Buffer } from '../common/primitives/buffer/Buffer'; +import * as Browser from '../common/primitives/Platform'; import { CoreBrowserTerminal } from './CoreBrowserTerminal'; import { IUnicodeService, IOptionsService, ICoreService, IMouseStateService } from '../common/services/Services'; -import { IFunctionIdentifier, IParams } from '../common/parser/Types'; -import { AttributeData } from '../common/buffer/AttributeData'; +import { IFunctionIdentifier, IParams } from '../common/primitives/parser/Types'; +import { AttributeData } from '../common/primitives/buffer/AttributeData'; import { ISelectionRedrawRequestEvent, ISelectionRequestScrollLinesEvent } from './selection/Types'; -import { css } from '../common/Color'; +import { css } from '../common/primitives/Color'; import { createRenderDimensions } from './renderer/shared/RendererUtils'; -import { Emitter, type IEvent } from '../common/Event'; +import { Emitter, type IEvent } from '../common/primitives/Event'; export class TestTerminal extends CoreBrowserTerminal { public get curAttrData(): IAttributeData { return (this as any)._inputHandler._curAttrData; } diff --git a/src/browser/Types.ts b/src/browser/Types.ts index 497afcf535..cfad968d9a 100644 --- a/src/browser/Types.ts +++ b/src/browser/Types.ts @@ -4,11 +4,11 @@ */ import { IColor, ITerminalOptions } from '../common/Types'; -import { CharData, IBuffer } from '../common/buffer/Types'; +import { CharData, IBuffer } from '../common/primitives/buffer/Types'; import { ICoreTerminal } from '../common/CoreTerminal'; import { IDisposable, IRenderDimensions as IRenderDimensionsApi, Terminal as ITerminalApi } from '@xterm/xterm'; -import { channels, css } from '../common/Color'; -import type { IEvent } from '../common/Event'; +import { channels, css } from '../common/primitives/Color'; +import type { IEvent } from '../common/primitives/Event'; /** * A portion of the public API that are implemented identially internally and simply passed through. diff --git a/src/browser/Viewport.ts b/src/browser/Viewport.ts index 18c275ccbe..8028ec2eb7 100644 --- a/src/browser/Viewport.ts +++ b/src/browser/Viewport.ts @@ -5,13 +5,13 @@ import { ICoreBrowserService, IRenderService, IThemeService } from './services/Services'; import { ViewportConstants } from './shared/Constants'; -import { Disposable, toDisposable } from '../common/Lifecycle'; +import { Disposable, toDisposable } from '../common/primitives/Lifecycle'; import { IBufferService, ICoreService, IMouseStateService, IOptionsService } from '../common/services/Services'; import { CoreMouseEventType } from '../common/Types'; import { scheduleAtNextAnimationFrame } from './Dom'; import { SmoothScrollableElement } from './scrollable/scrollableElement'; import type { IScrollableElementChangeOptions } from './scrollable/scrollableElementOptions'; -import { Emitter, EventUtils } from '../common/Event'; +import { Emitter, EventUtils } from '../common/primitives/Event'; import { Scrollable, ScrollbarVisibility, type IScrollEvent } from './scrollable/scrollable'; export class Viewport extends Disposable { diff --git a/src/browser/decorations/BufferDecorationRenderer.ts b/src/browser/decorations/BufferDecorationRenderer.ts index fd356808ea..ebf54a18e8 100644 --- a/src/browser/decorations/BufferDecorationRenderer.ts +++ b/src/browser/decorations/BufferDecorationRenderer.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import { ICoreBrowserService, IRenderService } from '../services/Services'; -import { Disposable, toDisposable } from '../../common/Lifecycle'; +import { Disposable, toDisposable } from '../../common/primitives/Lifecycle'; import { IBufferService, IDecorationService, IInternalDecoration } from '../../common/services/Services'; export class BufferDecorationRenderer extends Disposable { diff --git a/src/browser/decorations/OverviewRulerRenderer.ts b/src/browser/decorations/OverviewRulerRenderer.ts index 2ec441badd..d139514b2f 100644 --- a/src/browser/decorations/OverviewRulerRenderer.ts +++ b/src/browser/decorations/OverviewRulerRenderer.ts @@ -5,7 +5,7 @@ import { ColorZoneStore, IColorZone, IColorZoneStore } from './ColorZoneStore'; import { ICoreBrowserService, IRenderService, IThemeService } from '../services/Services'; -import { Disposable, toDisposable } from '../../common/Lifecycle'; +import { Disposable, toDisposable } from '../../common/primitives/Lifecycle'; import { IBufferService, IDecorationService, IOptionsService } from '../../common/services/Services'; const enum Constants { diff --git a/src/browser/input/CompositionHelper.ts b/src/browser/input/CompositionHelper.ts index c9ec396ab6..622643a570 100644 --- a/src/browser/input/CompositionHelper.ts +++ b/src/browser/input/CompositionHelper.ts @@ -5,7 +5,7 @@ import { IRenderService } from '../services/Services'; import { IBufferService, ICoreService, IOptionsService } from '../../common/services/Services'; -import { C0 } from '../../common/data/EscapeSequences'; +import { C0 } from '../../common/primitives/data/EscapeSequences'; interface IPosition { start: number; diff --git a/src/browser/input/MoveToCell.ts b/src/browser/input/MoveToCell.ts index 9cc27088dd..275f4893cb 100644 --- a/src/browser/input/MoveToCell.ts +++ b/src/browser/input/MoveToCell.ts @@ -3,7 +3,7 @@ * @license MIT */ -import { C0 } from '../../common/data/EscapeSequences'; +import { C0 } from '../../common/primitives/data/EscapeSequences'; import { IBufferService } from '../../common/services/Services'; const enum Direction { diff --git a/src/browser/public/Terminal.ts b/src/browser/public/Terminal.ts index 69ab09bf1e..7212350681 100644 --- a/src/browser/public/Terminal.ts +++ b/src/browser/public/Terminal.ts @@ -6,14 +6,14 @@ import * as Strings from '../LocalizableStrings'; import { CoreBrowserTerminal as TerminalCore } from '../CoreBrowserTerminal'; import { IBufferRange, ITerminal } from '../Types'; -import { Disposable } from '../../common/Lifecycle'; +import { Disposable } from '../../common/primitives/Lifecycle'; import { ITerminalOptions } from '../../common/Types'; import { AddonManager } from '../../common/public/AddonManager'; import { BufferNamespaceApi } from '../../common/public/BufferNamespaceApi'; import { ParserApi } from '../../common/public/ParserApi'; import { UnicodeApi } from '../../common/public/UnicodeApi'; import { IBufferNamespace as IBufferNamespaceApi, IDecoration, IDecorationOptions, IDisposable, ILinkProvider, ILocalizableStrings, IMarker, IModes, IParser, IRenderDimensions, ITerminalAddon, Terminal as ITerminalApi, ITerminalInitOnlyOptions, IUnicodeHandling } from '@xterm/xterm'; -import type { IEvent } from '../../common/Event'; +import type { IEvent } from '../../common/primitives/Event'; /** * The set of options that only have an effect when set in the Terminal constructor. diff --git a/src/browser/renderer/dom/DomRenderer.ts b/src/browser/renderer/dom/DomRenderer.ts index 657217f710..318600f789 100644 --- a/src/browser/renderer/dom/DomRenderer.ts +++ b/src/browser/renderer/dom/DomRenderer.ts @@ -12,10 +12,10 @@ import { TextBlinkStateManager } from '../shared/TextBlinkStateManager'; import { IRenderDimensions, IRenderer, IRequestRedrawEvent, ISelectionRenderModel } from '../shared/Types'; import { ICharSizeService, ICoreBrowserService, IThemeService } from '../../services/Services'; import { ILinkifier2, ILinkifierEvent, ITerminal, ReadonlyColorSet } from '../../Types'; -import { color } from '../../../common/Color'; -import { Disposable, toDisposable } from '../../../common/Lifecycle'; +import { color } from '../../../common/primitives/Color'; +import { Disposable, toDisposable } from '../../../common/primitives/Lifecycle'; import { IBufferService, ICoreService, IInstantiationService, IOptionsService } from '../../../common/services/Services'; -import { Emitter } from '../../../common/Event'; +import { Emitter } from '../../../common/primitives/Event'; import { addDisposableListener } from '../../Dom'; diff --git a/src/browser/renderer/dom/DomRendererRowFactory.test.ts b/src/browser/renderer/dom/DomRendererRowFactory.test.ts index ade53f4615..e0f0fcd30d 100644 --- a/src/browser/renderer/dom/DomRendererRowFactory.test.ts +++ b/src/browser/renderer/dom/DomRendererRowFactory.test.ts @@ -6,11 +6,11 @@ import jsdom = require('jsdom'); import { assert } from 'chai'; import { DomRendererRowFactory } from './DomRendererRowFactory'; -import { NULL_CELL_CODE, NULL_CELL_WIDTH, NULL_CELL_CHAR, DEFAULT_ATTR, FgFlags, BgFlags, Attributes, UnderlineStyle } from '../../../common/buffer/Constants'; -import { BufferLine, DEFAULT_ATTR_DATA } from '../../../common/buffer/BufferLine'; -import { BufferLineStringCache } from '../../../common/buffer/BufferLineStringCache'; -import { IBufferLine } from '../../../common/buffer/Types'; -import { CellData } from '../../../common/buffer/CellData'; +import { NULL_CELL_CODE, NULL_CELL_WIDTH, NULL_CELL_CHAR, DEFAULT_ATTR, FgFlags, BgFlags, Attributes, UnderlineStyle } from '../../../common/primitives/buffer/Constants'; +import { BufferLine, DEFAULT_ATTR_DATA } from '../../../common/primitives/buffer/BufferLine'; +import { BufferLineStringCache } from '../../../common/primitives/buffer/BufferLineStringCache'; +import { IBufferLine } from '../../../common/primitives/buffer/Types'; +import { CellData } from '../../../common/primitives/buffer/CellData'; import { MockCoreService, MockDecorationService, MockOptionsService, createCellData, NULL_CELL_DATA } from '../../../common/TestUtils.test'; import { MockCharacterJoinerService, MockCoreBrowserService, MockThemeService } from '../../TestUtils.test'; import { TestWidthCache } from './WidthCache.test'; diff --git a/src/browser/renderer/dom/DomRendererRowFactory.ts b/src/browser/renderer/dom/DomRendererRowFactory.ts index 6ae089a438..d869d1724d 100644 --- a/src/browser/renderer/dom/DomRendererRowFactory.ts +++ b/src/browser/renderer/dom/DomRendererRowFactory.ts @@ -4,16 +4,16 @@ */ import { IColor } from '../../../common/Types'; -import { IBufferLine, ICellData } from '../../../common/buffer/Types'; +import { IBufferLine, ICellData } from '../../../common/primitives/buffer/Types'; import { INVERTED_DEFAULT_COLOR } from '../shared/Constants'; -import { WHITESPACE_CELL_CHAR, Attributes } from '../../../common/buffer/Constants'; -import { CellData } from '../../../common/buffer/CellData'; +import { WHITESPACE_CELL_CHAR, Attributes } from '../../../common/primitives/buffer/Constants'; +import { CellData } from '../../../common/primitives/buffer/CellData'; import { ICoreService, IDecorationService, IOptionsService } from '../../../common/services/Services'; -import { channels, color } from '../../../common/Color'; +import { channels, color } from '../../../common/primitives/Color'; import { ICharacterJoinerService, ICoreBrowserService, IThemeService } from '../../services/Services'; import { JoinedCellData } from '../../services/CharacterJoinerService'; import { treatGlyphAsBackgroundColor } from '../shared/RendererUtils'; -import { AttributeData } from '../../../common/buffer/AttributeData'; +import { AttributeData } from '../../../common/primitives/buffer/AttributeData'; import { WidthCache } from './WidthCache'; import { IColorContrastCache } from '../../Types'; diff --git a/src/browser/renderer/shared/TextBlinkStateManager.test.ts b/src/browser/renderer/shared/TextBlinkStateManager.test.ts index 3af39cac8e..5a6a83ee00 100644 --- a/src/browser/renderer/shared/TextBlinkStateManager.test.ts +++ b/src/browser/renderer/shared/TextBlinkStateManager.test.ts @@ -7,7 +7,7 @@ import { assert } from 'chai'; import { TextBlinkStateManager } from './TextBlinkStateManager'; import { MockOptionsService } from '../../../common/TestUtils.test'; import type { ICoreBrowserService } from '../../services/Services'; -import { Emitter } from '../../../common/Event'; +import { Emitter } from '../../../common/primitives/Event'; class FakeWindow { public nextId = 1; diff --git a/src/browser/renderer/shared/TextBlinkStateManager.ts b/src/browser/renderer/shared/TextBlinkStateManager.ts index 058abf73bc..b6c0057e9d 100644 --- a/src/browser/renderer/shared/TextBlinkStateManager.ts +++ b/src/browser/renderer/shared/TextBlinkStateManager.ts @@ -4,7 +4,7 @@ */ import { ICoreBrowserService } from '../../services/Services'; -import { Disposable, toDisposable } from '../../../common/Lifecycle'; +import { Disposable, toDisposable } from '../../../common/primitives/Lifecycle'; import { IOptionsService } from '../../../common/services/Services'; export class TextBlinkStateManager extends Disposable { diff --git a/src/browser/renderer/shared/Types.ts b/src/browser/renderer/shared/Types.ts index d664d1611b..00342c18b3 100644 --- a/src/browser/renderer/shared/Types.ts +++ b/src/browser/renderer/shared/Types.ts @@ -6,7 +6,7 @@ import { Terminal } from '@xterm/xterm'; import { ITerminal } from '../../Types'; import { IDisposable } from '../../../common/Types'; -import type { IEvent } from '../../../common/Event'; +import type { IEvent } from '../../../common/primitives/Event'; export interface IDimensions { width: number; diff --git a/src/browser/scrollable/abstractScrollbar.ts b/src/browser/scrollable/abstractScrollbar.ts index 906190f763..6d38494409 100644 --- a/src/browser/scrollable/abstractScrollbar.ts +++ b/src/browser/scrollable/abstractScrollbar.ts @@ -11,7 +11,7 @@ import { ScrollbarArrow, IScrollbarArrowOptions } from './scrollbarArrow'; import { ScrollbarState } from './scrollbarState'; import { ScrollbarVisibilityController } from './scrollbarVisibilityController'; import { Widget } from './widget'; -import * as platform from '../../common/Platform'; +import * as platform from '../../common/primitives/Platform'; import { INewScrollPosition, Scrollable, ScrollbarVisibility } from './scrollable'; /** diff --git a/src/browser/scrollable/globalPointerMoveMonitor.ts b/src/browser/scrollable/globalPointerMoveMonitor.ts index 56ad16699a..33f36faeeb 100644 --- a/src/browser/scrollable/globalPointerMoveMonitor.ts +++ b/src/browser/scrollable/globalPointerMoveMonitor.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import * as dom from '../Dom'; -import { DisposableStore, IDisposable, toDisposable } from '../../common/Lifecycle'; +import { DisposableStore, IDisposable, toDisposable } from '../../common/primitives/Lifecycle'; type PointerMoveCallback = (event: PointerEvent) => void; type OnStopCallback = () => void; diff --git a/src/browser/scrollable/mouseEvent.ts b/src/browser/scrollable/mouseEvent.ts index f6fca88f17..1bf3e381a0 100644 --- a/src/browser/scrollable/mouseEvent.ts +++ b/src/browser/scrollable/mouseEvent.ts @@ -3,7 +3,7 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import * as platform from '../../common/Platform'; +import * as platform from '../../common/primitives/Platform'; interface IWindowChainElement { readonly window: WeakRef; diff --git a/src/browser/scrollable/scrollable.ts b/src/browser/scrollable/scrollable.ts index 29435ad8f7..4c924ace32 100644 --- a/src/browser/scrollable/scrollable.ts +++ b/src/browser/scrollable/scrollable.ts @@ -3,8 +3,8 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { Emitter, IEvent } from '../../common/Event'; -import { Disposable, IDisposable } from '../../common/Lifecycle'; +import { Emitter, IEvent } from '../../common/primitives/Event'; +import { Disposable, IDisposable } from '../../common/primitives/Lifecycle'; export const enum ScrollbarVisibility { AUTO = 1, diff --git a/src/browser/scrollable/scrollableElement.ts b/src/browser/scrollable/scrollableElement.ts index df3628e10e..b97e8637f6 100644 --- a/src/browser/scrollable/scrollableElement.ts +++ b/src/browser/scrollable/scrollableElement.ts @@ -11,10 +11,10 @@ import { HorizontalScrollbar } from './horizontalScrollbar'; import { IScrollableElementChangeOptions, IScrollableElementCreationOptions, IScrollableElementResolvedOptions } from './scrollableElementOptions'; import { VerticalScrollbar } from './verticalScrollbar'; import { Widget } from './widget'; -import { TimeoutTimer } from '../../common/Async'; -import { Emitter, IEvent } from '../../common/Event'; -import { IDisposable, dispose } from '../../common/Lifecycle'; -import * as platform from '../../common/Platform'; +import { TimeoutTimer } from '../../common/primitives/Async'; +import { Emitter, IEvent } from '../../common/primitives/Event'; +import { IDisposable, dispose } from '../../common/primitives/Lifecycle'; +import * as platform from '../../common/primitives/Platform'; import { INewScrollDimensions, INewScrollPosition, IScrollDimensions, IScrollPosition, IScrollEvent, Scrollable, ScrollbarVisibility } from './scrollable'; // import 'vs/css!./media/scrollbars'; diff --git a/src/browser/scrollable/scrollbarArrow.ts b/src/browser/scrollable/scrollbarArrow.ts index 2f1f9e9fe7..3b35d0d09f 100644 --- a/src/browser/scrollable/scrollbarArrow.ts +++ b/src/browser/scrollable/scrollbarArrow.ts @@ -5,7 +5,7 @@ import { GlobalPointerMoveMonitor } from './globalPointerMoveMonitor'; import { Widget } from './widget'; -import { TimeoutTimer } from '../../common/Async'; +import { TimeoutTimer } from '../../common/primitives/Async'; import * as dom from '../Dom'; export interface IScrollbarArrowOptions { diff --git a/src/browser/scrollable/scrollbarVisibilityController.ts b/src/browser/scrollable/scrollbarVisibilityController.ts index 84a8b460fa..c1ed6cf4d3 100644 --- a/src/browser/scrollable/scrollbarVisibilityController.ts +++ b/src/browser/scrollable/scrollbarVisibilityController.ts @@ -4,8 +4,8 @@ *--------------------------------------------------------------------------------------------*/ import { FastDomNode } from './fastDomNode'; -import { TimeoutTimer } from '../../common/Async'; -import { Disposable } from '../../common/Lifecycle'; +import { TimeoutTimer } from '../../common/primitives/Async'; +import { Disposable } from '../../common/primitives/Lifecycle'; import { ScrollbarVisibility } from './scrollable'; export class ScrollbarVisibilityController extends Disposable { diff --git a/src/browser/scrollable/touch.ts b/src/browser/scrollable/touch.ts index 5c58eac3b3..18b0348b06 100644 --- a/src/browser/scrollable/touch.ts +++ b/src/browser/scrollable/touch.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import * as DomUtils from '../Dom'; -import { Disposable, IDisposable, toDisposable } from '../../common/Lifecycle'; +import { Disposable, IDisposable, toDisposable } from '../../common/primitives/Lifecycle'; const mainWindow = (typeof window === 'object' ? window : globalThis) as Window & typeof globalThis; diff --git a/src/browser/scrollable/widget.ts b/src/browser/scrollable/widget.ts index 578492853c..3ce7e56c7c 100644 --- a/src/browser/scrollable/widget.ts +++ b/src/browser/scrollable/widget.ts @@ -5,7 +5,7 @@ import * as dom from '../Dom'; import { IMouseEvent, StandardMouseEvent } from './mouseEvent'; -import { Disposable } from '../../common/Lifecycle'; +import { Disposable } from '../../common/primitives/Lifecycle'; export abstract class Widget extends Disposable { diff --git a/src/browser/services/CharSizeService.ts b/src/browser/services/CharSizeService.ts index 002ca5c183..69336bb518 100644 --- a/src/browser/services/CharSizeService.ts +++ b/src/browser/services/CharSizeService.ts @@ -5,8 +5,8 @@ import { IOptionsService } from '../../common/services/Services'; import { ICharSizeService } from './Services'; -import { Disposable } from '../../common/Lifecycle'; -import { Emitter } from '../../common/Event'; +import { Disposable } from '../../common/primitives/Lifecycle'; +import { Emitter } from '../../common/primitives/Event'; export class CharSizeService extends Disposable implements ICharSizeService { public serviceBrand: undefined; diff --git a/src/browser/services/CharacterJoinerService.test.ts b/src/browser/services/CharacterJoinerService.test.ts index 2e73f035b9..2fd44a7c12 100644 --- a/src/browser/services/CharacterJoinerService.test.ts +++ b/src/browser/services/CharacterJoinerService.test.ts @@ -6,10 +6,10 @@ import { assert } from 'chai'; import { ICharacterJoinerService } from './Services'; import { CharacterJoinerService } from './CharacterJoinerService'; -import { BufferLine } from '../../common/buffer/BufferLine'; -import { BufferLineStringCache } from '../../common/buffer/BufferLineStringCache'; -import { IBufferLine } from '../../common/buffer/Types'; -import { CellData } from '../../common/buffer/CellData'; +import { BufferLine } from '../../common/primitives/buffer/BufferLine'; +import { BufferLineStringCache } from '../../common/primitives/buffer/BufferLineStringCache'; +import { IBufferLine } from '../../common/primitives/buffer/Types'; +import { CellData } from '../../common/primitives/buffer/CellData'; import { MockBufferService, createCellData } from '../../common/TestUtils.test'; const TEST_STRING_CACHE = new BufferLineStringCache(); diff --git a/src/browser/services/CharacterJoinerService.ts b/src/browser/services/CharacterJoinerService.ts index 2cf3bd506b..646d50e00e 100644 --- a/src/browser/services/CharacterJoinerService.ts +++ b/src/browser/services/CharacterJoinerService.ts @@ -3,11 +3,11 @@ * @license MIT */ -import { CharData, IBufferLine, ICellData } from '../../common/buffer/Types'; +import { CharData, IBufferLine, ICellData } from '../../common/primitives/buffer/Types'; import { ICharacterJoiner } from '../Types'; -import { AttributeData } from '../../common/buffer/AttributeData'; -import { WHITESPACE_CELL_CHAR, Content } from '../../common/buffer/Constants'; -import { CellData } from '../../common/buffer/CellData'; +import { AttributeData } from '../../common/primitives/buffer/AttributeData'; +import { WHITESPACE_CELL_CHAR, Content } from '../../common/primitives/buffer/Constants'; +import { CellData } from '../../common/primitives/buffer/CellData'; import { IBufferService } from '../../common/services/Services'; import { ICharacterJoinerService } from './Services'; diff --git a/src/browser/services/CoreBrowserService.ts b/src/browser/services/CoreBrowserService.ts index bcc39544ea..0c5894f606 100644 --- a/src/browser/services/CoreBrowserService.ts +++ b/src/browser/services/CoreBrowserService.ts @@ -4,9 +4,9 @@ */ import { ICoreBrowserService } from './Services'; -import { Emitter, EventUtils } from '../../common/Event'; +import { Emitter, EventUtils } from '../../common/primitives/Event'; import { addDisposableListener } from '../Dom'; -import { Disposable, MutableDisposable, toDisposable } from '../../common/Lifecycle'; +import { Disposable, MutableDisposable, toDisposable } from '../../common/primitives/Lifecycle'; export class CoreBrowserService extends Disposable implements ICoreBrowserService { public serviceBrand: undefined; diff --git a/src/browser/services/KeyboardService.ts b/src/browser/services/KeyboardService.ts index a85eb23390..c8ac3e3925 100644 --- a/src/browser/services/KeyboardService.ts +++ b/src/browser/services/KeyboardService.ts @@ -4,10 +4,10 @@ */ import { IKeyboardService } from './Services'; -import { evaluateKeyboardEvent } from '../../common/input/Keyboard'; -import { KittyKeyboard, KittyKeyboardEventType, KittyKeyboardFlags } from '../../common/input/KittyKeyboard'; -import { Win32InputMode } from '../../common/input/Win32InputMode'; -import { isMac } from '../../common/Platform'; +import { evaluateKeyboardEvent } from '../../common/primitives/input/Keyboard'; +import { KittyKeyboard, KittyKeyboardEventType, KittyKeyboardFlags } from '../../common/primitives/input/KittyKeyboard'; +import { Win32InputMode } from '../../common/primitives/input/Win32InputMode'; +import { isMac } from '../../common/primitives/Platform'; import { ICoreService, IOptionsService } from '../../common/services/Services'; import { IKeyboardResult } from '../../common/Types'; diff --git a/src/browser/services/LinkProviderService.ts b/src/browser/services/LinkProviderService.ts index fe4b564a2e..049b9ae34f 100644 --- a/src/browser/services/LinkProviderService.ts +++ b/src/browser/services/LinkProviderService.ts @@ -1,5 +1,5 @@ import { ILinkProvider, ILinkProviderService } from './Services'; -import { Disposable, toDisposable } from '../../common/Lifecycle'; +import { Disposable, toDisposable } from '../../common/primitives/Lifecycle'; import { IDisposable } from '../../common/Types'; export class LinkProviderService extends Disposable implements ILinkProviderService { diff --git a/src/browser/services/MouseService.ts b/src/browser/services/MouseService.ts index 61cbfa86c1..6ec71e4d4b 100644 --- a/src/browser/services/MouseService.ts +++ b/src/browser/services/MouseService.ts @@ -6,8 +6,8 @@ import { addDisposableListener } from '../Dom'; import { IBufferService, IMouseStateService, ICoreService, ILogService, IOptionsService } from '../../common/services/Services'; import { CoreMouseAction, CoreMouseButton, CoreMouseEventType, ICoreMouseEvent, IDisposable } from '../../common/Types'; -import { C0 } from '../../common/data/EscapeSequences'; -import { DisposableStore, MutableDisposable, toDisposable } from '../../common/Lifecycle'; +import { C0 } from '../../common/primitives/data/EscapeSequences'; +import { DisposableStore, MutableDisposable, toDisposable } from '../../common/primitives/Lifecycle'; import { ICoreBrowserService, IMouseCoordsService, IMouseService, IMouseServiceTarget, IRenderService, ISelectionService } from './Services'; import { Gesture, EventType as GestureEventType, IGestureEvent } from '../scrollable/touch'; diff --git a/src/browser/services/RenderService.ts b/src/browser/services/RenderService.ts index 75cd55418b..e7ed92b42c 100644 --- a/src/browser/services/RenderService.ts +++ b/src/browser/services/RenderService.ts @@ -7,10 +7,10 @@ import { RenderDebouncer } from '../RenderDebouncer'; import { IRenderDebouncerWithCallback } from '../Types'; import { IRenderDimensions, IRenderer } from '../renderer/shared/Types'; import { ICharSizeService, ICoreBrowserService, IRenderService, IThemeService } from './Services'; -import { Disposable, MutableDisposable, toDisposable } from '../../common/Lifecycle'; -import { DebouncedIdleTask } from '../../common/TaskQueue'; +import { Disposable, MutableDisposable, toDisposable } from '../../common/primitives/Lifecycle'; +import { DebouncedIdleTask } from '../../common/primitives/TaskQueue'; import { IBufferService, ICoreService, IDecorationService, ILogService, IOptionsService } from '../../common/services/Services'; -import { Emitter } from '../../common/Event'; +import { Emitter } from '../../common/primitives/Event'; interface ISelectionState { start: [number, number] | undefined; diff --git a/src/browser/services/SelectionService.test.ts b/src/browser/services/SelectionService.test.ts index 1f65e909ed..9de56f425e 100644 --- a/src/browser/services/SelectionService.test.ts +++ b/src/browser/services/SelectionService.test.ts @@ -6,13 +6,13 @@ import { assert } from 'chai'; import { SelectionService, SelectionMode } from './SelectionService'; import { SelectionModel } from '../selection/SelectionModel'; -import { IBuffer, IBufferLine } from '../../common/buffer/Types'; +import { IBuffer, IBufferLine } from '../../common/primitives/buffer/Types'; import { MockBufferService, MockOptionsService, MockCoreService, MockMouseStateService, createCellData } from '../../common/TestUtils.test'; -import { BufferLine } from '../../common/buffer/BufferLine'; -import { BufferLineStringCache } from '../../common/buffer/BufferLineStringCache'; +import { BufferLine } from '../../common/primitives/buffer/BufferLine'; +import { BufferLineStringCache } from '../../common/primitives/buffer/BufferLineStringCache'; import { IBufferService, IOptionsService } from '../../common/services/Services'; import { MockCoreBrowserService, MockMouseService, MockRenderService } from '../TestUtils.test'; -import { CellData } from '../../common/buffer/CellData'; +import { CellData } from '../../common/primitives/buffer/CellData'; import { IRenderService } from './Services'; const TEST_STRING_CACHE = new BufferLineStringCache(); diff --git a/src/browser/services/SelectionService.ts b/src/browser/services/SelectionService.ts index 39d8dd76b6..f6b45fe508 100644 --- a/src/browser/services/SelectionService.ts +++ b/src/browser/services/SelectionService.ts @@ -9,14 +9,14 @@ import { moveToCellSequence } from '../input/MoveToCell'; import { SelectionModel } from '../selection/SelectionModel'; import { ISelectionRedrawRequestEvent, ISelectionRequestScrollLinesEvent } from '../selection/Types'; import { ICoreBrowserService, IMouseCoordsService, IRenderService, ISelectionService } from './Services'; -import { Disposable, MutableDisposable, toDisposable } from '../../common/Lifecycle'; -import * as Browser from '../../common/Platform'; +import { Disposable, MutableDisposable, toDisposable } from '../../common/primitives/Lifecycle'; +import * as Browser from '../../common/primitives/Platform'; import { IDisposable } from '../../common/Types'; -import { IBuffer, IBufferLine, ICellData } from '../../common/buffer/Types'; -import { getRangeLength } from '../../common/buffer/BufferRange'; -import { CellData } from '../../common/buffer/CellData'; +import { IBuffer, IBufferLine, ICellData } from '../../common/primitives/buffer/Types'; +import { getRangeLength } from '../../common/primitives/buffer/BufferRange'; +import { CellData } from '../../common/primitives/buffer/CellData'; import { IBufferService, ICoreService, IMouseStateService, IOptionsService } from '../../common/services/Services'; -import { Emitter } from '../../common/Event'; +import { Emitter } from '../../common/primitives/Event'; const enum Constants { /** diff --git a/src/browser/services/Services.ts b/src/browser/services/Services.ts index 2b8e06b7d7..941edb67b9 100644 --- a/src/browser/services/Services.ts +++ b/src/browser/services/Services.ts @@ -8,7 +8,7 @@ import { IColorSet, ILink, ReadonlyColorSet } from '../Types'; import { ISelectionRedrawRequestEvent as ISelectionRequestRedrawEvent, ISelectionRequestScrollLinesEvent } from '../selection/Types'; import { createDecorator } from '../../common/services/ServiceRegistry'; import { AllColorIndex, IDisposable, IKeyboardResult } from '../../common/Types'; -import type { IEvent } from '../../common/Event'; +import type { IEvent } from '../../common/primitives/Event'; export const ICharSizeService = createDecorator('CharSizeService'); export interface ICharSizeService { diff --git a/src/browser/services/ThemeService.ts b/src/browser/services/ThemeService.ts index e12e5e2b32..a6f8d0752e 100644 --- a/src/browser/services/ThemeService.ts +++ b/src/browser/services/ThemeService.ts @@ -6,11 +6,11 @@ import { ColorContrastCache } from '../ColorContrastCache'; import { IThemeService } from './Services'; import { DEFAULT_ANSI_COLORS, IColorContrastCache, IColorSet, ReadonlyColorSet } from '../Types'; -import { color, css, NULL_COLOR } from '../../common/Color'; -import { Disposable } from '../../common/Lifecycle'; +import { color, css, NULL_COLOR } from '../../common/primitives/Color'; +import { Disposable } from '../../common/primitives/Lifecycle'; import { IOptionsService, ITheme } from '../../common/services/Services'; import { AllColorIndex, IColor, SpecialColorIndex } from '../../common/Types'; -import { Emitter } from '../../common/Event'; +import { Emitter } from '../../common/primitives/Event'; interface IRestoreColorSet { foreground: IColor; diff --git a/src/common/CoreTerminal.ts b/src/common/CoreTerminal.ts index cf16c1e14f..65fbc7bed2 100644 --- a/src/common/CoreTerminal.ts +++ b/src/common/CoreTerminal.ts @@ -27,19 +27,19 @@ import { LogService } from './services/LogService'; import { BufferService, BufferServiceConstants } from './services/BufferService'; import { OptionsService } from './services/OptionsService'; import { IDisposable, IScrollEvent, ITerminalOptions, IParams } from './Types'; -import { IAttributeData, IBufferSet } from './buffer/Types'; +import { IAttributeData, IBufferSet } from './primitives/buffer/Types'; import { CoreService } from './services/CoreService'; import { MouseStateService } from './services/MouseStateService'; -import { UnicodeV6 } from './input/UnicodeV6'; +import { UnicodeV6 } from './primitives/input/UnicodeV6'; import { UnicodeService } from './services/UnicodeService'; import { CharsetService } from './services/CharsetService'; import { updateWindowsModeWrappedState } from './WindowsMode'; -import { IFunctionIdentifier } from './parser/Types'; +import { IFunctionIdentifier } from './primitives/parser/Types'; import { InputHandler } from './InputHandler'; -import { WriteBuffer } from './input/WriteBuffer'; +import { WriteBuffer } from './primitives/input/WriteBuffer'; import { OscLinkService } from './services/OscLinkService'; -import { Emitter, EventUtils, type IEvent } from './Event'; -import { Disposable, MutableDisposable, toDisposable } from './Lifecycle'; +import { Emitter, EventUtils, type IEvent } from './primitives/Event'; +import { Disposable, MutableDisposable, toDisposable } from './primitives/Lifecycle'; // Only trigger this warning a single time per session let hasWriteSyncWarnHappened = false; diff --git a/src/common/InputHandler.test.ts b/src/common/InputHandler.test.ts index 9eab8cfa23..7e6ac3fe65 100644 --- a/src/common/InputHandler.test.ts +++ b/src/common/InputHandler.test.ts @@ -6,12 +6,12 @@ import { assert } from 'chai'; import { InputHandler } from './InputHandler'; import { IColorEvent, ColorRequestType, SpecialColorIndex } from './Types'; -import { IAttributeData, IBufferLine } from './buffer/Types'; -import { DEFAULT_ATTR_DATA } from './buffer/BufferLine'; -import { CellData } from './buffer/CellData'; -import { Attributes, BgFlags, UnderlineStyle } from './buffer/Constants'; -import { AttributeData, ExtendedAttrs } from './buffer/AttributeData'; -import { Params } from './parser/Params'; +import { IAttributeData, IBufferLine } from './primitives/buffer/Types'; +import { DEFAULT_ATTR_DATA } from './primitives/buffer/BufferLine'; +import { CellData } from './primitives/buffer/CellData'; +import { Attributes, BgFlags, UnderlineStyle } from './primitives/buffer/Constants'; +import { AttributeData, ExtendedAttrs } from './primitives/buffer/AttributeData'; +import { Params } from './primitives/parser/Params'; import { MockCoreService, MockBufferService, MockOptionsService, MockLogService, MockMouseStateService, MockCharsetService, MockUnicodeService, MockOscLinkService, extendedAttributes } from './TestUtils.test'; import { IBufferService, ICoreService, type IOscLinkService } from './services/Services'; import { DEFAULT_OPTIONS } from './services/OptionsService'; @@ -19,7 +19,7 @@ import { BufferService } from './services/BufferService'; import { CharsetService } from './services/CharsetService'; import { CoreService } from './services/CoreService'; import { OscLinkService } from './services/OscLinkService'; -import { CHARSETS } from './data/Charsets'; +import { CHARSETS } from './primitives/data/Charsets'; function getCursor(bufferService: IBufferService): number[] { diff --git a/src/common/InputHandler.ts b/src/common/InputHandler.ts index 0b12dd8e1d..078446bc91 100644 --- a/src/common/InputHandler.ts +++ b/src/common/InputHandler.ts @@ -5,25 +5,25 @@ */ import { IInputHandler, IDisposable, IWindowOptions, IColorEvent, IParseStack, ColorIndex, ColorRequestType, SpecialColorIndex } from './Types'; -import { IAttributeData, IBuffer } from './buffer/Types'; -import { C0, C1 } from './data/EscapeSequences'; -import { CHARSETS, DEFAULT_CHARSET } from './data/Charsets'; -import { EscapeSequenceParser } from './parser/EscapeSequenceParser'; -import { Disposable } from './Lifecycle'; -import { StringToUtf32, stringFromCodePoint, Utf8ToUtf32 } from './input/TextDecoder'; -import { BufferLine, DEFAULT_ATTR_DATA } from './buffer/BufferLine'; -import { IParsingState, IEscapeSequenceParser, IParams, IFunctionIdentifier } from './parser/Types'; -import { NULL_CELL_CODE, NULL_CELL_WIDTH, Attributes, FgFlags, BgFlags, Content, UnderlineStyle } from './buffer/Constants'; -import { CellData } from './buffer/CellData'; -import { AttributeData } from './buffer/AttributeData'; +import { IAttributeData, IBuffer } from './primitives/buffer/Types'; +import { C0, C1 } from './primitives/data/EscapeSequences'; +import { CHARSETS, DEFAULT_CHARSET } from './primitives/data/Charsets'; +import { EscapeSequenceParser } from './primitives/parser/EscapeSequenceParser'; +import { Disposable } from './primitives/Lifecycle'; +import { StringToUtf32, stringFromCodePoint, Utf8ToUtf32 } from './primitives/input/TextDecoder'; +import { BufferLine, DEFAULT_ATTR_DATA } from './primitives/buffer/BufferLine'; +import { IParsingState, IEscapeSequenceParser, IParams, IFunctionIdentifier } from './primitives/parser/Types'; +import { NULL_CELL_CODE, NULL_CELL_WIDTH, Attributes, FgFlags, BgFlags, Content, UnderlineStyle } from './primitives/buffer/Constants'; +import { CellData } from './primitives/buffer/CellData'; +import { AttributeData } from './primitives/buffer/AttributeData'; import { ICoreService, IBufferService, IOptionsService, ILogService, IMouseStateService, ICharsetService, IUnicodeService, LogLevelEnum, IOscLinkService } from './services/Services'; import { UnicodeService } from './services/UnicodeService'; -import { OscHandler } from './parser/OscParser'; -import { DcsHandler } from './parser/DcsParser'; -import { ApcHandler } from './parser/ApcParser'; -import { parseColor } from './input/XParseColor'; -import { Emitter } from './Event'; -import { XTERM_VERSION } from './Version'; +import { OscHandler } from './primitives/parser/OscParser'; +import { DcsHandler } from './primitives/parser/DcsParser'; +import { ApcHandler } from './primitives/parser/ApcParser'; +import { parseColor } from './primitives/input/XParseColor'; +import { Emitter } from './primitives/Event'; +import { XTERM_VERSION } from './primitives/Version'; /** * Map collect to glevel. Used in `selectCharset`. diff --git a/src/common/TestUtils.test.ts b/src/common/TestUtils.test.ts index bedfa6ba1f..8b97b6c035 100644 --- a/src/common/TestUtils.test.ts +++ b/src/common/TestUtils.test.ts @@ -6,14 +6,14 @@ import { IBufferService, ICoreService, ILogService, IOptionsService, ITerminalOptions, IMouseStateService, ICharsetService, UnicodeCharProperties, UnicodeCharWidth, IUnicodeService, IUnicodeVersionProvider, LogLevelEnum, IDecorationService, IInternalDecoration, IOscLinkService, type IBufferResizeEvent } from './services/Services'; import { UnicodeService } from './services/UnicodeService'; import { DEFAULT_OPTIONS } from './services/OptionsService'; -import { IAttributeData, IBuffer, IBufferLine, IBufferSet, IExtendedAttrs } from './buffer/Types'; -import { BufferSet } from './buffer/BufferSet'; +import { IAttributeData, IBuffer, IBufferLine, IBufferSet, IExtendedAttrs } from './primitives/buffer/Types'; +import { BufferSet } from './primitives/buffer/BufferSet'; import { IDecPrivateModes, ICoreMouseEvent, CoreMouseEventType, ICharset, IModes, IOscLinkData, IDisposable } from './Types'; -import { UnicodeV6 } from './input/UnicodeV6'; +import { UnicodeV6 } from './primitives/input/UnicodeV6'; import { IDecorationOptions, IDecoration } from '@xterm/xterm'; -import { Emitter, type IEvent } from './Event'; -import { CellData } from './buffer/CellData'; -import { DEFAULT_ATTR, NULL_CELL_CHAR, NULL_CELL_WIDTH } from './buffer/Constants'; +import { Emitter, type IEvent } from './primitives/Event'; +import { CellData } from './primitives/buffer/CellData'; +import { DEFAULT_ATTR, NULL_CELL_CHAR, NULL_CELL_WIDTH } from './primitives/buffer/Constants'; export function createCellData(attr: number, char: string, width: number): CellData { return CellData.fromCharData([attr, char, width, char.length === 0 ? 0 : char.charCodeAt(0)]); diff --git a/src/common/Types.ts b/src/common/Types.ts index b73fc8413b..8d4fa71610 100644 --- a/src/common/Types.ts +++ b/src/common/Types.ts @@ -4,7 +4,7 @@ */ import { IFunctionIdentifier, ITerminalOptions as IPublicTerminalOptions } from '@xterm/xterm'; -import type { IEvent } from './Event'; +import type { IEvent } from './primitives/Event'; /** sequence params serialized to js arrays */ export type ParamsArray = (number | number[])[]; diff --git a/src/common/WindowsMode.test.ts b/src/common/WindowsMode.test.ts index 38daa52b72..9844a5aa84 100644 --- a/src/common/WindowsMode.test.ts +++ b/src/common/WindowsMode.test.ts @@ -4,7 +4,7 @@ */ import { assert } from 'chai'; -import { DEFAULT_ATTR_DATA } from './buffer/BufferLine'; +import { DEFAULT_ATTR_DATA } from './primitives/buffer/BufferLine'; import { updateWindowsModeWrappedState } from './WindowsMode'; import { BufferService } from './services/BufferService'; import { OptionsService } from './services/OptionsService'; diff --git a/src/common/WindowsMode.ts b/src/common/WindowsMode.ts index d4862e00e7..bc8bae4e56 100644 --- a/src/common/WindowsMode.ts +++ b/src/common/WindowsMode.ts @@ -3,7 +3,7 @@ * @license MIT */ -import { CHAR_DATA_CODE_INDEX, NULL_CELL_CODE, WHITESPACE_CELL_CODE } from './buffer/Constants'; +import { CHAR_DATA_CODE_INDEX, NULL_CELL_CODE, WHITESPACE_CELL_CODE } from './primitives/buffer/Constants'; import { IBufferService } from './services/Services'; export function updateWindowsModeWrappedState(bufferService: IBufferService): void { diff --git a/src/common/Async.ts b/src/common/primitives/Async.ts similarity index 100% rename from src/common/Async.ts rename to src/common/primitives/Async.ts diff --git a/src/common/CircularList.test.ts b/src/common/primitives/CircularList.test.ts similarity index 100% rename from src/common/CircularList.test.ts rename to src/common/primitives/CircularList.test.ts diff --git a/src/common/CircularList.ts b/src/common/primitives/CircularList.ts similarity index 100% rename from src/common/CircularList.ts rename to src/common/primitives/CircularList.ts diff --git a/src/common/Color.test.ts b/src/common/primitives/Color.test.ts similarity index 100% rename from src/common/Color.test.ts rename to src/common/primitives/Color.test.ts diff --git a/src/common/Color.ts b/src/common/primitives/Color.ts similarity index 99% rename from src/common/Color.ts rename to src/common/primitives/Color.ts index b8a9d8d60e..71c4849944 100644 --- a/src/common/Color.ts +++ b/src/common/primitives/Color.ts @@ -3,7 +3,7 @@ * @license MIT */ -import { IColor, IColorRGB } from './Types'; +import { IColor, IColorRGB } from '../Types'; let $r = 0; let $g = 0; diff --git a/src/common/Event.test.ts b/src/common/primitives/Event.test.ts similarity index 100% rename from src/common/Event.test.ts rename to src/common/primitives/Event.test.ts diff --git a/src/common/Event.ts b/src/common/primitives/Event.ts similarity index 100% rename from src/common/Event.ts rename to src/common/primitives/Event.ts diff --git a/src/common/Lifecycle.ts b/src/common/primitives/Lifecycle.ts similarity index 100% rename from src/common/Lifecycle.ts rename to src/common/primitives/Lifecycle.ts diff --git a/src/common/MultiKeyMap.test.ts b/src/common/primitives/MultiKeyMap.test.ts similarity index 100% rename from src/common/MultiKeyMap.test.ts rename to src/common/primitives/MultiKeyMap.test.ts diff --git a/src/common/MultiKeyMap.ts b/src/common/primitives/MultiKeyMap.ts similarity index 100% rename from src/common/MultiKeyMap.ts rename to src/common/primitives/MultiKeyMap.ts diff --git a/src/common/Platform.ts b/src/common/primitives/Platform.ts similarity index 100% rename from src/common/Platform.ts rename to src/common/primitives/Platform.ts diff --git a/src/common/SortedList.test.ts b/src/common/primitives/SortedList.test.ts similarity index 98% rename from src/common/SortedList.test.ts rename to src/common/primitives/SortedList.test.ts index a446b78747..1c75e3d03b 100644 --- a/src/common/SortedList.test.ts +++ b/src/common/primitives/SortedList.test.ts @@ -5,7 +5,7 @@ import { assert } from 'chai'; import { SortedList } from './SortedList'; -import { MockLogService } from './TestUtils.test'; +import { MockLogService } from '../TestUtils.test'; const deepStrictEqual = assert.deepStrictEqual; diff --git a/src/common/SortedList.ts b/src/common/primitives/SortedList.ts similarity index 99% rename from src/common/SortedList.ts rename to src/common/primitives/SortedList.ts index 8a10076e39..bbfa4fd98e 100644 --- a/src/common/SortedList.ts +++ b/src/common/primitives/SortedList.ts @@ -4,7 +4,7 @@ */ import { IdleTaskQueue } from './TaskQueue'; -import type { ILogService } from './services/Services'; +import type { ILogService } from '../services/Services'; // Work variables to avoid garbage collection. let i = 0; diff --git a/src/common/StringBuilder.test.ts b/src/common/primitives/StringBuilder.test.ts similarity index 100% rename from src/common/StringBuilder.test.ts rename to src/common/primitives/StringBuilder.test.ts diff --git a/src/common/StringBuilder.ts b/src/common/primitives/StringBuilder.ts similarity index 100% rename from src/common/StringBuilder.ts rename to src/common/primitives/StringBuilder.ts diff --git a/src/common/TaskQueue.ts b/src/common/primitives/TaskQueue.ts similarity index 98% rename from src/common/TaskQueue.ts rename to src/common/primitives/TaskQueue.ts index b1bcf023a5..c836030ad2 100644 --- a/src/common/TaskQueue.ts +++ b/src/common/primitives/TaskQueue.ts @@ -3,7 +3,7 @@ * @license MIT */ -import type { ILogService } from './services/Services'; +import type { ILogService } from '../services/Services'; interface ITaskQueue { /** diff --git a/src/common/Version.ts b/src/common/primitives/Version.ts similarity index 100% rename from src/common/Version.ts rename to src/common/primitives/Version.ts diff --git a/src/common/buffer/AttributeData.ts b/src/common/primitives/buffer/AttributeData.ts similarity index 99% rename from src/common/buffer/AttributeData.ts rename to src/common/primitives/buffer/AttributeData.ts index 3bcb22a006..70fd602fc6 100644 --- a/src/common/buffer/AttributeData.ts +++ b/src/common/primitives/buffer/AttributeData.ts @@ -3,7 +3,7 @@ * @license MIT */ -import { IColorRGB } from '../Types'; +import { IColorRGB } from '../../Types'; import { IAttributeData, IExtendedAttrs } from './Types'; import { Attributes, FgFlags, BgFlags, UnderlineStyle, ExtFlags } from './Constants'; diff --git a/src/common/buffer/Buffer.test.ts b/src/common/primitives/buffer/Buffer.test.ts similarity index 99% rename from src/common/buffer/Buffer.test.ts rename to src/common/primitives/buffer/Buffer.test.ts index cbb8cf9ed4..e93426c547 100644 --- a/src/common/buffer/Buffer.test.ts +++ b/src/common/primitives/buffer/Buffer.test.ts @@ -6,7 +6,7 @@ import { assert } from 'chai'; import { Buffer } from './Buffer'; import { CircularList } from '../CircularList'; -import { MockOptionsService, MockBufferService, MockLogService, createCellData } from '../TestUtils.test'; +import { MockOptionsService, MockBufferService, MockLogService, createCellData } from '../../TestUtils.test'; import { BufferLine, DEFAULT_ATTR_DATA } from './BufferLine'; import { BufferLineStringCache } from './BufferLineStringCache'; import { CellData } from './CellData'; diff --git a/src/common/buffer/Buffer.ts b/src/common/primitives/buffer/Buffer.ts similarity index 99% rename from src/common/buffer/Buffer.ts rename to src/common/primitives/buffer/Buffer.ts index c7d094a43c..4283ed6d1a 100644 --- a/src/common/buffer/Buffer.ts +++ b/src/common/primitives/buffer/Buffer.ts @@ -6,7 +6,7 @@ import { CircularList, IInsertEvent } from '../CircularList'; import { Disposable, toDisposable } from '../Lifecycle'; import { IdleTaskQueue } from '../TaskQueue'; -import { ICharset } from '../Types'; +import { ICharset } from '../../Types'; import { IAttributeData, IBuffer, IBufferLine, ICellData } from './Types'; import { ExtendedAttrs } from './AttributeData'; import { BufferLine, DEFAULT_ATTR_DATA } from './BufferLine'; @@ -16,7 +16,7 @@ import { CellData } from './CellData'; import { NULL_CELL_CHAR, NULL_CELL_CODE, NULL_CELL_WIDTH, WHITESPACE_CELL_CHAR, WHITESPACE_CELL_CODE, WHITESPACE_CELL_WIDTH } from './Constants'; import { Marker } from './Marker'; import { DEFAULT_CHARSET } from '../data/Charsets'; -import { IBufferService, ILogService, IOptionsService } from '../services/Services'; +import { IBufferService, ILogService, IOptionsService } from '../../services/Services'; export const MAX_BUFFER_SIZE = 4294967295; // 2^32 - 1 diff --git a/src/common/buffer/BufferLine.test.ts b/src/common/primitives/buffer/BufferLine.test.ts similarity index 99% rename from src/common/buffer/BufferLine.test.ts rename to src/common/primitives/buffer/BufferLine.test.ts index 7fc12ad76a..e9f40837e7 100644 --- a/src/common/buffer/BufferLine.test.ts +++ b/src/common/primitives/buffer/BufferLine.test.ts @@ -9,7 +9,7 @@ import { CellData } from './CellData'; import { CharData, IBufferLine, ICellData } from './Types'; import { assert } from 'chai'; import { AttributeData } from './AttributeData'; -import { createCellData, NULL_CELL_DATA, extendedAttributes } from '../TestUtils.test'; +import { createCellData, NULL_CELL_DATA, extendedAttributes } from '../../TestUtils.test'; const TEST_STRING_CACHE = new BufferLineStringCache(); diff --git a/src/common/buffer/BufferLine.ts b/src/common/primitives/buffer/BufferLine.ts similarity index 100% rename from src/common/buffer/BufferLine.ts rename to src/common/primitives/buffer/BufferLine.ts diff --git a/src/common/buffer/BufferLineStringCache.ts b/src/common/primitives/buffer/BufferLineStringCache.ts similarity index 100% rename from src/common/buffer/BufferLineStringCache.ts rename to src/common/primitives/buffer/BufferLineStringCache.ts diff --git a/src/common/buffer/BufferRange.test.ts b/src/common/primitives/buffer/BufferRange.test.ts similarity index 100% rename from src/common/buffer/BufferRange.test.ts rename to src/common/primitives/buffer/BufferRange.test.ts diff --git a/src/common/buffer/BufferRange.ts b/src/common/primitives/buffer/BufferRange.ts similarity index 100% rename from src/common/buffer/BufferRange.ts rename to src/common/primitives/buffer/BufferRange.ts diff --git a/src/common/buffer/BufferReflow.test.ts b/src/common/primitives/buffer/BufferReflow.test.ts similarity index 100% rename from src/common/buffer/BufferReflow.test.ts rename to src/common/primitives/buffer/BufferReflow.test.ts diff --git a/src/common/buffer/BufferReflow.ts b/src/common/primitives/buffer/BufferReflow.ts similarity index 100% rename from src/common/buffer/BufferReflow.ts rename to src/common/primitives/buffer/BufferReflow.ts diff --git a/src/common/buffer/BufferSet.test.ts b/src/common/primitives/buffer/BufferSet.test.ts similarity index 98% rename from src/common/buffer/BufferSet.test.ts rename to src/common/primitives/buffer/BufferSet.test.ts index 71a1026dc4..f1c333786e 100644 --- a/src/common/buffer/BufferSet.test.ts +++ b/src/common/primitives/buffer/BufferSet.test.ts @@ -6,7 +6,7 @@ import { assert } from 'chai'; import { BufferSet } from './BufferSet'; import { Buffer } from './Buffer'; -import { MockOptionsService, MockBufferService, MockLogService, createCellData } from '../TestUtils.test'; +import { MockOptionsService, MockBufferService, MockLogService, createCellData } from '../../TestUtils.test'; describe('BufferSet', () => { let bufferSet: BufferSet; diff --git a/src/common/buffer/BufferSet.ts b/src/common/primitives/buffer/BufferSet.ts similarity index 99% rename from src/common/buffer/BufferSet.ts rename to src/common/primitives/buffer/BufferSet.ts index 4ea2cee8dc..e37235dacd 100644 --- a/src/common/buffer/BufferSet.ts +++ b/src/common/primitives/buffer/BufferSet.ts @@ -6,7 +6,7 @@ import { Disposable, MutableDisposable } from '../Lifecycle'; import { Buffer } from './Buffer'; import { IAttributeData, IBuffer, IBufferSet } from './Types'; -import { IBufferService, ILogService, IOptionsService } from '../services/Services'; +import { IBufferService, ILogService, IOptionsService } from '../../services/Services'; import { Emitter } from '../Event'; /** diff --git a/src/common/buffer/CellData.test.ts b/src/common/primitives/buffer/CellData.test.ts similarity index 100% rename from src/common/buffer/CellData.test.ts rename to src/common/primitives/buffer/CellData.test.ts diff --git a/src/common/buffer/CellData.ts b/src/common/primitives/buffer/CellData.ts similarity index 100% rename from src/common/buffer/CellData.ts rename to src/common/primitives/buffer/CellData.ts diff --git a/src/common/buffer/Constants.ts b/src/common/primitives/buffer/Constants.ts similarity index 100% rename from src/common/buffer/Constants.ts rename to src/common/primitives/buffer/Constants.ts diff --git a/src/common/buffer/Marker.ts b/src/common/primitives/buffer/Marker.ts similarity index 100% rename from src/common/buffer/Marker.ts rename to src/common/primitives/buffer/Marker.ts diff --git a/src/common/buffer/Types.ts b/src/common/primitives/buffer/Types.ts similarity index 99% rename from src/common/buffer/Types.ts rename to src/common/primitives/buffer/Types.ts index 994ca0f436..257a7c8709 100644 --- a/src/common/buffer/Types.ts +++ b/src/common/primitives/buffer/Types.ts @@ -5,7 +5,7 @@ import type { IEvent } from '../Event'; import type { ICircularList } from '../CircularList'; -import type { ICharset } from '../Types'; +import type { ICharset } from '../../Types'; import type { IDisposable } from '../Lifecycle'; import type { UnderlineStyle } from './Constants'; diff --git a/src/common/data/Charsets.ts b/src/common/primitives/data/Charsets.ts similarity index 99% rename from src/common/data/Charsets.ts rename to src/common/primitives/data/Charsets.ts index 9680f4c05b..0785eb43b2 100644 --- a/src/common/data/Charsets.ts +++ b/src/common/primitives/data/Charsets.ts @@ -3,7 +3,7 @@ * @license MIT */ -import { ICharset } from '../Types'; +import { ICharset } from '../../Types'; /** * The character sets supported by the terminal. These enable several languages diff --git a/src/common/data/EscapeSequences.ts b/src/common/primitives/data/EscapeSequences.ts similarity index 100% rename from src/common/data/EscapeSequences.ts rename to src/common/primitives/data/EscapeSequences.ts diff --git a/src/common/input/Keyboard.test.ts b/src/common/primitives/input/Keyboard.test.ts similarity index 99% rename from src/common/input/Keyboard.test.ts rename to src/common/primitives/input/Keyboard.test.ts index 02c2c4380e..419b181fa7 100644 --- a/src/common/input/Keyboard.test.ts +++ b/src/common/primitives/input/Keyboard.test.ts @@ -1,7 +1,7 @@ import { assert } from 'chai'; import { evaluateKeyboardEvent } from './Keyboard'; -import { IKeyboardResult, IKeyboardEvent } from '../Types'; +import { IKeyboardResult, IKeyboardEvent } from '../../Types'; /** * A helper function for testing which allows passing in a partial event and defaults will be filled diff --git a/src/common/input/Keyboard.ts b/src/common/primitives/input/Keyboard.ts similarity index 99% rename from src/common/input/Keyboard.ts rename to src/common/primitives/input/Keyboard.ts index 2f8de1963c..e765b29958 100644 --- a/src/common/input/Keyboard.ts +++ b/src/common/primitives/input/Keyboard.ts @@ -4,7 +4,7 @@ * @license MIT */ -import { IKeyboardEvent, IKeyboardResult, KeyboardResultType } from '../Types'; +import { IKeyboardEvent, IKeyboardResult, KeyboardResultType } from '../../Types'; import { C0 } from '../data/EscapeSequences'; // reg + shift key mappings for digits and special chars diff --git a/src/common/input/KittyKeyboard.test.ts b/src/common/primitives/input/KittyKeyboard.test.ts similarity index 99% rename from src/common/input/KittyKeyboard.test.ts rename to src/common/primitives/input/KittyKeyboard.test.ts index fe1bc30e20..5da5810e48 100644 --- a/src/common/input/KittyKeyboard.test.ts +++ b/src/common/primitives/input/KittyKeyboard.test.ts @@ -1,7 +1,7 @@ import { assert } from 'chai'; import { KittyKeyboard, KittyKeyboardEventType, KittyKeyboardFlags } from './KittyKeyboard'; -import { IKeyboardEvent } from '../Types'; +import { IKeyboardEvent } from '../../Types'; function createEvent(partialEvent: Partial = {}): IKeyboardEvent { return { diff --git a/src/common/input/KittyKeyboard.ts b/src/common/primitives/input/KittyKeyboard.ts similarity index 99% rename from src/common/input/KittyKeyboard.ts rename to src/common/primitives/input/KittyKeyboard.ts index ec813e5b25..d3202491a2 100644 --- a/src/common/input/KittyKeyboard.ts +++ b/src/common/primitives/input/KittyKeyboard.ts @@ -6,7 +6,7 @@ * @see https://sw.kovidgoyal.net/kitty/keyboard-protocol/ */ -import { IKeyboardEvent, IKeyboardResult, KeyboardResultType } from '../Types'; +import { IKeyboardEvent, IKeyboardResult, KeyboardResultType } from '../../Types'; import { C0 } from '../data/EscapeSequences'; /** diff --git a/src/common/input/TextDecoder.test.ts b/src/common/primitives/input/TextDecoder.test.ts similarity index 100% rename from src/common/input/TextDecoder.test.ts rename to src/common/primitives/input/TextDecoder.test.ts diff --git a/src/common/input/TextDecoder.ts b/src/common/primitives/input/TextDecoder.ts similarity index 100% rename from src/common/input/TextDecoder.ts rename to src/common/primitives/input/TextDecoder.ts diff --git a/src/common/input/UnicodeV6.test.ts b/src/common/primitives/input/UnicodeV6.test.ts similarity index 100% rename from src/common/input/UnicodeV6.test.ts rename to src/common/primitives/input/UnicodeV6.test.ts diff --git a/src/common/input/UnicodeV6.ts b/src/common/primitives/input/UnicodeV6.ts similarity index 98% rename from src/common/input/UnicodeV6.ts rename to src/common/primitives/input/UnicodeV6.ts index 617b49006a..66f1004265 100644 --- a/src/common/input/UnicodeV6.ts +++ b/src/common/primitives/input/UnicodeV6.ts @@ -2,8 +2,8 @@ * Copyright (c) 2019 The xterm.js authors. All rights reserved. * @license MIT */ -import { IUnicodeVersionProvider, UnicodeCharProperties, UnicodeCharWidth } from '../services/Services'; -import { UnicodeService } from '../services/UnicodeService'; +import { IUnicodeVersionProvider, UnicodeCharProperties, UnicodeCharWidth } from '../../services/Services'; +import { UnicodeService } from '../../services/UnicodeService'; const BMP_COMBINING = [ [0x0300, 0x036F], [0x0483, 0x0486], [0x0488, 0x0489], diff --git a/src/common/input/Win32InputMode.test.ts b/src/common/primitives/input/Win32InputMode.test.ts similarity index 99% rename from src/common/input/Win32InputMode.test.ts rename to src/common/primitives/input/Win32InputMode.test.ts index fdcc7459d3..03f152bd53 100644 --- a/src/common/input/Win32InputMode.test.ts +++ b/src/common/primitives/input/Win32InputMode.test.ts @@ -5,7 +5,7 @@ import { assert } from 'chai'; import { Win32InputMode, Win32ControlKeyState } from './Win32InputMode'; -import { IKeyboardEvent, KeyboardResultType } from '../Types'; +import { IKeyboardEvent, KeyboardResultType } from '../../Types'; type EventOpts = Partial; const ev = (opts: EventOpts): IKeyboardEvent => ({ diff --git a/src/common/input/Win32InputMode.ts b/src/common/primitives/input/Win32InputMode.ts similarity index 99% rename from src/common/input/Win32InputMode.ts rename to src/common/primitives/input/Win32InputMode.ts index 9f73440d56..a0830b16a8 100644 --- a/src/common/input/Win32InputMode.ts +++ b/src/common/primitives/input/Win32InputMode.ts @@ -14,7 +14,7 @@ * Rc: Repeat count (usually 1) */ -import { IKeyboardEvent, IKeyboardResult, KeyboardResultType } from '../Types'; +import { IKeyboardEvent, IKeyboardResult, KeyboardResultType } from '../../Types'; import { C0 } from '../data/EscapeSequences'; /** diff --git a/src/common/input/WriteBuffer.test.ts b/src/common/primitives/input/WriteBuffer.test.ts similarity index 100% rename from src/common/input/WriteBuffer.test.ts rename to src/common/primitives/input/WriteBuffer.test.ts diff --git a/src/common/input/WriteBuffer.ts b/src/common/primitives/input/WriteBuffer.ts similarity index 100% rename from src/common/input/WriteBuffer.ts rename to src/common/primitives/input/WriteBuffer.ts diff --git a/src/common/input/XParseColor.test.ts b/src/common/primitives/input/XParseColor.test.ts similarity index 100% rename from src/common/input/XParseColor.test.ts rename to src/common/primitives/input/XParseColor.test.ts diff --git a/src/common/input/XParseColor.ts b/src/common/primitives/input/XParseColor.ts similarity index 100% rename from src/common/input/XParseColor.ts rename to src/common/primitives/input/XParseColor.ts diff --git a/src/common/parser/ApcParser.test.ts b/src/common/primitives/parser/ApcParser.test.ts similarity index 100% rename from src/common/parser/ApcParser.test.ts rename to src/common/primitives/parser/ApcParser.test.ts diff --git a/src/common/parser/ApcParser.ts b/src/common/primitives/parser/ApcParser.ts similarity index 99% rename from src/common/parser/ApcParser.ts rename to src/common/primitives/parser/ApcParser.ts index f0d465efc4..9bc9aebf3d 100644 --- a/src/common/parser/ApcParser.ts +++ b/src/common/primitives/parser/ApcParser.ts @@ -6,7 +6,7 @@ import { IApcHandler, IHandlerCollection, ApcFallbackHandlerType, IApcParser, ISubParserStackState } from './Types'; import { ParserConstants } from './Constants'; import { utf32ToString } from '../input/TextDecoder'; -import { IDisposable } from '../Types'; +import { IDisposable } from '../../Types'; import { LimitedStringBuilder } from '../StringBuilder'; const EMPTY_HANDLERS: IApcHandler[] = []; diff --git a/src/common/parser/Constants.ts b/src/common/primitives/parser/Constants.ts similarity index 100% rename from src/common/parser/Constants.ts rename to src/common/primitives/parser/Constants.ts diff --git a/src/common/parser/DcsParser.test.ts b/src/common/primitives/parser/DcsParser.test.ts similarity index 100% rename from src/common/parser/DcsParser.test.ts rename to src/common/primitives/parser/DcsParser.test.ts diff --git a/src/common/parser/DcsParser.ts b/src/common/primitives/parser/DcsParser.ts similarity index 99% rename from src/common/parser/DcsParser.ts rename to src/common/primitives/parser/DcsParser.ts index 1b2d34835c..e48d4961e1 100644 --- a/src/common/parser/DcsParser.ts +++ b/src/common/primitives/parser/DcsParser.ts @@ -3,7 +3,7 @@ * @license MIT */ -import { IDisposable } from '../Types'; +import { IDisposable } from '../../Types'; import { IDcsHandler, IParams, IHandlerCollection, IDcsParser, DcsFallbackHandlerType, ISubParserStackState } from './Types'; import { utf32ToString } from '../input/TextDecoder'; import { Params } from './Params'; diff --git a/src/common/parser/EscapeSequenceParser.test.ts b/src/common/primitives/parser/EscapeSequenceParser.test.ts similarity index 99% rename from src/common/parser/EscapeSequenceParser.test.ts rename to src/common/primitives/parser/EscapeSequenceParser.test.ts index 5f12137df4..87e045f70a 100644 --- a/src/common/parser/EscapeSequenceParser.test.ts +++ b/src/common/primitives/parser/EscapeSequenceParser.test.ts @@ -10,7 +10,7 @@ import { StringToUtf32, stringFromCodePoint, utf32ToString } from '../input/Text import { ParserState } from './Constants'; import { Params } from './Params'; import { OscHandler } from './OscParser'; -import { IDisposable } from '../Types'; +import { IDisposable } from '../../Types'; import { DcsHandler } from './DcsParser'; import { ApcHandler } from './ApcParser'; diff --git a/src/common/parser/EscapeSequenceParser.ts b/src/common/primitives/parser/EscapeSequenceParser.ts similarity index 99% rename from src/common/parser/EscapeSequenceParser.ts rename to src/common/primitives/parser/EscapeSequenceParser.ts index 009ed6ccbd..1ad91f3e13 100644 --- a/src/common/parser/EscapeSequenceParser.ts +++ b/src/common/primitives/parser/EscapeSequenceParser.ts @@ -6,7 +6,7 @@ import { IParsingState, IDcsHandler, IEscapeSequenceParser, IParams, IOscHandler, IHandlerCollection, CsiHandlerType, OscFallbackHandlerType, IOscParser, EscHandlerType, IDcsParser, DcsFallbackHandlerType, IFunctionIdentifier, ExecuteFallbackHandlerType, CsiFallbackHandlerType, EscFallbackHandlerType, PrintHandlerType, PrintFallbackHandlerType, ExecuteHandlerType, IParserStackState, ParserStackType, ResumableHandlersType, IApcHandler, IApcParser, ApcFallbackHandlerType } from './Types'; import { ParserState, ParserAction } from './Constants'; import { Disposable, toDisposable } from '../Lifecycle'; -import { IDisposable } from '../Types'; +import { IDisposable } from '../../Types'; import { Params } from './Params'; import { OscParser } from './OscParser'; import { DcsParser } from './DcsParser'; diff --git a/src/common/parser/OscParser.test.ts b/src/common/primitives/parser/OscParser.test.ts similarity index 100% rename from src/common/parser/OscParser.test.ts rename to src/common/primitives/parser/OscParser.test.ts diff --git a/src/common/parser/OscParser.ts b/src/common/primitives/parser/OscParser.ts similarity index 99% rename from src/common/parser/OscParser.ts rename to src/common/primitives/parser/OscParser.ts index 0d2a06534b..8a1021717c 100644 --- a/src/common/parser/OscParser.ts +++ b/src/common/primitives/parser/OscParser.ts @@ -6,7 +6,7 @@ import { IOscHandler, IHandlerCollection, OscFallbackHandlerType, IOscParser, ISubParserStackState } from './Types'; import { OscState, ParserConstants } from './Constants'; import { utf32ToString } from '../input/TextDecoder'; -import { IDisposable } from '../Types'; +import { IDisposable } from '../../Types'; import { LimitedStringBuilder } from '../StringBuilder'; const EMPTY_HANDLERS: IOscHandler[] = []; diff --git a/src/common/parser/Params.test.ts b/src/common/primitives/parser/Params.test.ts similarity index 100% rename from src/common/parser/Params.test.ts rename to src/common/primitives/parser/Params.test.ts diff --git a/src/common/parser/Params.ts b/src/common/primitives/parser/Params.ts similarity index 100% rename from src/common/parser/Params.ts rename to src/common/primitives/parser/Params.ts diff --git a/src/common/parser/Types.ts b/src/common/primitives/parser/Types.ts similarity index 99% rename from src/common/parser/Types.ts rename to src/common/primitives/parser/Types.ts index f7c8ae2d4b..a6341624f5 100644 --- a/src/common/parser/Types.ts +++ b/src/common/primitives/parser/Types.ts @@ -3,7 +3,7 @@ * @license MIT */ -import { IDisposable, IParams, ParamsArray } from '../Types'; +import { IDisposable, IParams, ParamsArray } from '../../Types'; import { ParserState } from './Constants'; export type { IParams, ParamsArray }; diff --git a/src/common/public/BufferApiView.ts b/src/common/public/BufferApiView.ts index a2f838ccb0..fa81858b9f 100644 --- a/src/common/public/BufferApiView.ts +++ b/src/common/public/BufferApiView.ts @@ -4,9 +4,9 @@ */ import { IBuffer as IBufferApi, IBufferLine as IBufferLineApi, IBufferCell as IBufferCellApi } from '@xterm/xterm'; -import { IBuffer } from '../buffer/Types'; +import { IBuffer } from '../primitives/buffer/Types'; import { BufferLineApiView } from './BufferLineApiView'; -import { CellData } from '../buffer/CellData'; +import { CellData } from '../primitives/buffer/CellData'; export class BufferApiView implements IBufferApi { constructor( diff --git a/src/common/public/BufferLineApiView.ts b/src/common/public/BufferLineApiView.ts index bd822bfb5c..f55c9e5c8f 100644 --- a/src/common/public/BufferLineApiView.ts +++ b/src/common/public/BufferLineApiView.ts @@ -3,8 +3,8 @@ * @license MIT */ -import { CellData } from '../buffer/CellData'; -import { IBufferLine, ICellData } from '../buffer/Types'; +import { CellData } from '../primitives/buffer/CellData'; +import { IBufferLine, ICellData } from '../primitives/buffer/Types'; import { IBufferCell as IBufferCellApi, IBufferLine as IBufferLineApi } from '@xterm/xterm'; export class BufferLineApiView implements IBufferLineApi { diff --git a/src/common/public/BufferNamespaceApi.ts b/src/common/public/BufferNamespaceApi.ts index 8a914cfccb..34c491ea82 100644 --- a/src/common/public/BufferNamespaceApi.ts +++ b/src/common/public/BufferNamespaceApi.ts @@ -6,8 +6,8 @@ import { IBuffer as IBufferApi, IBufferNamespace as IBufferNamespaceApi } from '@xterm/xterm'; import { BufferApiView } from './BufferApiView'; import { ICoreTerminal } from '../CoreTerminal'; -import { Disposable } from '../Lifecycle'; -import { Emitter } from '../Event'; +import { Disposable } from '../primitives/Lifecycle'; +import { Emitter } from '../primitives/Event'; export class BufferNamespaceApi extends Disposable implements IBufferNamespaceApi { private _normal: BufferApiView; diff --git a/src/common/public/ParserApi.ts b/src/common/public/ParserApi.ts index 0b886c0580..6d9f997695 100644 --- a/src/common/public/ParserApi.ts +++ b/src/common/public/ParserApi.ts @@ -3,7 +3,7 @@ * @license MIT */ -import { IParams } from '../parser/Types'; +import { IParams } from '../primitives/parser/Types'; import { IDisposable, IFunctionIdentifier, IParser } from '@xterm/xterm'; import { ICoreTerminal } from '../CoreTerminal'; diff --git a/src/common/services/BufferService.test.ts b/src/common/services/BufferService.test.ts index 90716cdb41..4e026b1340 100644 --- a/src/common/services/BufferService.test.ts +++ b/src/common/services/BufferService.test.ts @@ -4,7 +4,7 @@ */ import { assert } from 'chai'; -import { AttributeData } from '../buffer/AttributeData'; +import { AttributeData } from '../primitives/buffer/AttributeData'; import { BufferService } from './BufferService'; import { OptionsService } from './OptionsService'; import { MockLogService } from '../TestUtils.test'; diff --git a/src/common/services/BufferService.ts b/src/common/services/BufferService.ts index 21b0a163a4..12c9a830b7 100644 --- a/src/common/services/BufferService.ts +++ b/src/common/services/BufferService.ts @@ -3,11 +3,11 @@ * @license MIT */ -import { Disposable } from '../Lifecycle'; -import { IAttributeData, IBuffer, IBufferLine, IBufferSet } from '../buffer/Types'; -import { BufferSet } from '../buffer/BufferSet'; +import { Disposable } from '../primitives/Lifecycle'; +import { IAttributeData, IBuffer, IBufferLine, IBufferSet } from '../primitives/buffer/Types'; +import { BufferSet } from '../primitives/buffer/BufferSet'; import { IBufferService, ILogService, IOptionsService, type IBufferResizeEvent } from './Services'; -import { Emitter } from '../Event'; +import { Emitter } from '../primitives/Event'; export const enum BufferServiceConstants { MINIMUM_COLS = 2, // Less than 2 can mess with wide chars diff --git a/src/common/services/CharsetService.test.ts b/src/common/services/CharsetService.test.ts index a4c3646b77..3552d89dcf 100644 --- a/src/common/services/CharsetService.test.ts +++ b/src/common/services/CharsetService.test.ts @@ -4,7 +4,7 @@ */ import { assert } from 'chai'; -import { CHARSETS } from '../data/Charsets'; +import { CHARSETS } from '../primitives/data/Charsets'; import { CharsetService } from './CharsetService'; describe('CharsetService', () => { diff --git a/src/common/services/CoreService.ts b/src/common/services/CoreService.ts index b3e04ebe6f..2b1bb0ec6b 100644 --- a/src/common/services/CoreService.ts +++ b/src/common/services/CoreService.ts @@ -3,10 +3,10 @@ * @license MIT */ -import { Disposable } from '../Lifecycle'; +import { Disposable } from '../primitives/Lifecycle'; import { IDecPrivateModes, IKittyKeyboardState, IModes } from '../Types'; import { IBufferService, ICoreService, ILogService, IOptionsService } from './Services'; -import { Emitter } from '../Event'; +import { Emitter } from '../primitives/Event'; const DEFAULT_MODES: IModes = Object.freeze({ insertMode: false diff --git a/src/common/services/DecorationService.test.ts b/src/common/services/DecorationService.test.ts index c40913ca7d..68ad88dab3 100644 --- a/src/common/services/DecorationService.test.ts +++ b/src/common/services/DecorationService.test.ts @@ -5,12 +5,12 @@ import { assert } from 'chai'; import { DecorationLineCache, DecorationService } from './DecorationService'; -import { IMarker } from '../buffer/Types'; -import { Disposable } from '../Lifecycle'; -import { Emitter } from '../Event'; +import { IMarker } from '../primitives/buffer/Types'; +import { Disposable } from '../primitives/Lifecycle'; +import { Emitter } from '../primitives/Event'; import { MockLogService, MockBufferService, MockOptionsService } from '../TestUtils.test'; -import { Buffer } from '../buffer/Buffer'; -import { DEFAULT_ATTR_DATA } from '../buffer/BufferLine'; +import { Buffer } from '../primitives/buffer/Buffer'; +import { DEFAULT_ATTR_DATA } from '../primitives/buffer/BufferLine'; describe('DecorationService', () => { let bufferService: MockBufferService; diff --git a/src/common/services/DecorationService.ts b/src/common/services/DecorationService.ts index ea9b7fb14c..06fbb7ae40 100644 --- a/src/common/services/DecorationService.ts +++ b/src/common/services/DecorationService.ts @@ -3,15 +3,15 @@ * @license MIT */ -import type { ICircularList, IDeleteEvent, IInsertEvent } from '../CircularList'; -import { MicrotaskTimer } from '../Async'; -import { css } from '../Color'; -import { Disposable, DisposableStore, MutableDisposable, toDisposable } from '../Lifecycle'; +import type { ICircularList, IDeleteEvent, IInsertEvent } from '../primitives/CircularList'; +import { MicrotaskTimer } from '../primitives/Async'; +import { css } from '../primitives/Color'; +import { Disposable, DisposableStore, MutableDisposable, toDisposable } from '../primitives/Lifecycle'; import { IBufferService, IDecorationService, IInternalDecoration, ILogService } from './Services'; -import { SortedList } from '../SortedList'; +import { SortedList } from '../primitives/SortedList'; import { IColor } from '../Types'; import { IDecoration, IDecorationOptions, IMarker } from '@xterm/xterm'; -import { Emitter } from '../Event'; +import { Emitter } from '../primitives/Event'; // Work variables to avoid garbage collection let $xmin = 0; diff --git a/src/common/services/LogService.ts b/src/common/services/LogService.ts index 75ff68e296..da6b863303 100644 --- a/src/common/services/LogService.ts +++ b/src/common/services/LogService.ts @@ -3,7 +3,7 @@ * @license MIT */ -import { Disposable } from '../Lifecycle'; +import { Disposable } from '../primitives/Lifecycle'; import { ILogService, IOptionsService, LogLevelEnum } from './Services'; type LogType = (message?: any, ...optionalParams: any[]) => void; diff --git a/src/common/services/MouseStateService.ts b/src/common/services/MouseStateService.ts index 40a448f575..70b58740e9 100644 --- a/src/common/services/MouseStateService.ts +++ b/src/common/services/MouseStateService.ts @@ -4,8 +4,8 @@ */ import { IMouseStateService } from './Services'; import { ICoreMouseProtocol, ICoreMouseEvent, CoreMouseEncoding, CoreMouseEventType, CoreMouseButton, CoreMouseAction } from '../Types'; -import { Disposable } from '../Lifecycle'; -import { Emitter } from '../Event'; +import { Disposable } from '../primitives/Lifecycle'; +import { Emitter } from '../primitives/Event'; /** * Supported default protocols. diff --git a/src/common/services/OptionsService.ts b/src/common/services/OptionsService.ts index d14982e3ff..a4995e9aaa 100644 --- a/src/common/services/OptionsService.ts +++ b/src/common/services/OptionsService.ts @@ -3,11 +3,11 @@ * @license MIT */ -import { Disposable, toDisposable } from '../Lifecycle'; -import { isMac } from '../Platform'; +import { Disposable, toDisposable } from '../primitives/Lifecycle'; +import { isMac } from '../primitives/Platform'; import { CursorStyle, IDisposable } from '../Types'; import { FontWeight, IOptionsService, ITerminalOptions } from './Services'; -import { Emitter } from '../Event'; +import { Emitter } from '../primitives/Event'; export const DEFAULT_OPTIONS: Readonly> = { cols: 80, diff --git a/src/common/services/OscLinkService.test.ts b/src/common/services/OscLinkService.test.ts index c49928b519..0189a65c11 100644 --- a/src/common/services/OscLinkService.test.ts +++ b/src/common/services/OscLinkService.test.ts @@ -4,7 +4,7 @@ */ import { assert } from 'chai'; -import { AttributeData } from '../buffer/AttributeData'; +import { AttributeData } from '../primitives/buffer/AttributeData'; import { BufferService } from './BufferService'; import { OptionsService } from './OptionsService'; import { OscLinkService } from './OscLinkService'; diff --git a/src/common/services/OscLinkService.ts b/src/common/services/OscLinkService.ts index 605e850022..e38ba26c0f 100644 --- a/src/common/services/OscLinkService.ts +++ b/src/common/services/OscLinkService.ts @@ -4,7 +4,7 @@ */ import { IBufferService, IOscLinkService } from './Services'; import { IOscLinkData } from '../Types'; -import { IMarker } from '../buffer/Types'; +import { IMarker } from '../primitives/buffer/Types'; export class OscLinkService implements IOscLinkService { public serviceBrand: any; diff --git a/src/common/services/Services.ts b/src/common/services/Services.ts index 8f0aeeed15..ed6e156107 100644 --- a/src/common/services/Services.ts +++ b/src/common/services/Services.ts @@ -5,9 +5,9 @@ import type { IDecoration, IDecorationOptions, ILinkHandler, ILogger, IWindowsPty, IOverviewRulerOptions } from '@xterm/xterm'; import { CoreMouseEncoding, CoreMouseEventType, CursorInactiveStyle, CursorStyle, ICharset, IColor, ICoreMouseEvent, ICoreMouseProtocol, IDecPrivateModes, IDisposable, IKittyKeyboardState, IModes, IOscLinkData, IWindowOptions } from '../Types'; -import { IAttributeData, IBuffer, IBufferSet } from '../buffer/Types'; +import { IAttributeData, IBuffer, IBufferSet } from '../primitives/buffer/Types'; import { createDecorator, IServiceIdentifier } from './ServiceRegistry'; -import type { Emitter, IEvent } from '../Event'; +import type { Emitter, IEvent } from '../primitives/Event'; export const IBufferService = createDecorator('BufferService'); export interface IBufferService { diff --git a/src/common/services/UnicodeService.test.ts b/src/common/services/UnicodeService.test.ts index 6d5903fb01..01e6f58700 100644 --- a/src/common/services/UnicodeService.test.ts +++ b/src/common/services/UnicodeService.test.ts @@ -4,7 +4,7 @@ */ import { assert } from 'chai'; -import { UnicodeV6 } from '../input/UnicodeV6'; +import { UnicodeV6 } from '../primitives/input/UnicodeV6'; import { UnicodeService } from './UnicodeService'; import { IUnicodeVersionProvider } from './Services'; diff --git a/src/common/services/UnicodeService.ts b/src/common/services/UnicodeService.ts index 61283c4667..96bb97e837 100644 --- a/src/common/services/UnicodeService.ts +++ b/src/common/services/UnicodeService.ts @@ -4,7 +4,7 @@ */ import { IUnicodeService, IUnicodeVersionProvider, UnicodeCharProperties, UnicodeCharWidth } from './Services'; -import { Emitter } from '../Event'; +import { Emitter } from '../primitives/Event'; export class UnicodeService implements IUnicodeService { public serviceBrand: any; diff --git a/src/common/tsconfig.json b/src/common/tsconfig.json index c7488a89e2..0debb2efc3 100644 --- a/src/common/tsconfig.json +++ b/src/common/tsconfig.json @@ -10,10 +10,19 @@ "outDir": "../../out", "types": [ "../../node_modules/@types/mocha" - ] + ], + "paths": { + "common/*": [ + "./primitives/*", + "./*" + ] + } }, "include": [ - "./**/*", + "./primitives/**/*", + "./services/**/*", + "./public/**/*", + "./*.ts", "../../typings/xterm.d.ts" ] } diff --git a/src/headless/Terminal.ts b/src/headless/Terminal.ts index 16dc932be9..fd7300e3a7 100644 --- a/src/headless/Terminal.ts +++ b/src/headless/Terminal.ts @@ -21,11 +21,11 @@ * http://linux.die.net/man/7/urxvt */ -import { DEFAULT_ATTR_DATA } from '../common/buffer/BufferLine'; -import { IBuffer, IMarker } from '../common/buffer/Types'; +import { DEFAULT_ATTR_DATA } from '../common/primitives/buffer/BufferLine'; +import { IBuffer, IMarker } from '../common/primitives/buffer/Types'; import { CoreTerminal } from '../common/CoreTerminal'; import { ITerminalOptions } from '../common/Types'; -import { Emitter, EventUtils } from '../common/Event'; +import { Emitter, EventUtils } from '../common/primitives/Event'; export class Terminal extends CoreTerminal { private readonly _onBell = this._register(new Emitter()); diff --git a/src/headless/public/Terminal.ts b/src/headless/public/Terminal.ts index 22dabb02a4..30107ca7aa 100644 --- a/src/headless/public/Terminal.ts +++ b/src/headless/public/Terminal.ts @@ -10,8 +10,8 @@ import { IBufferNamespace as IBufferNamespaceApi, IMarker, IModes, IParser, ITer import { Terminal as TerminalCore } from '../Terminal'; import { AddonManager } from '../../common/public/AddonManager'; import { ITerminalOptions } from '../../common/Types'; -import { Disposable } from '../../common/Lifecycle'; -import type { IEvent } from '../../common/Event'; +import { Disposable } from '../../common/primitives/Lifecycle'; +import type { IEvent } from '../../common/primitives/Event'; /** * The set of options that only have an effect when set in the Terminal constructor. */ diff --git a/test/benchmark/EscapeSequenceParser.benchmark.ts b/test/benchmark/EscapeSequenceParser.benchmark.ts index 5c9f372fb5..4766ae0ba2 100644 --- a/test/benchmark/EscapeSequenceParser.benchmark.ts +++ b/test/benchmark/EscapeSequenceParser.benchmark.ts @@ -4,12 +4,12 @@ */ import { perfContext, before, beforeEach, ThroughputRuntimeCase } from 'xterm-benchmark'; -import { EscapeSequenceParser } from 'common/parser/EscapeSequenceParser'; -import { C0, C1 } from 'common/data/EscapeSequences'; -import { IDcsHandler, IOscHandler, IApcHandler, IParams } from 'common/parser/Types'; -import { OscHandler } from 'common/parser/OscParser'; -import { DcsHandler } from 'common/parser/DcsParser'; -import { ApcHandler } from 'common/parser/ApcParser'; +import { EscapeSequenceParser } from 'common/primitives/parser/EscapeSequenceParser'; +import { C0, C1 } from 'common/primitives/data/EscapeSequences'; +import { IDcsHandler, IOscHandler, IApcHandler, IParams } from 'common/primitives/parser/Types'; +import { OscHandler } from 'common/primitives/parser/OscParser'; +import { DcsHandler } from 'common/primitives/parser/DcsParser'; +import { ApcHandler } from 'common/primitives/parser/ApcParser'; const SIZE = 5000000; diff --git a/test/benchmark/Event.benchmark.ts b/test/benchmark/Event.benchmark.ts index 9cd8216dc1..39941b3761 100644 --- a/test/benchmark/Event.benchmark.ts +++ b/test/benchmark/Event.benchmark.ts @@ -4,7 +4,7 @@ */ import { perfContext, before, RuntimeCase } from 'xterm-benchmark'; -import { Emitter } from 'common/Event'; +import { Emitter } from 'common/primitives/Event'; const ITERATIONS = 1_000_000; diff --git a/test/benchmark/Terminal.benchmark.ts b/test/benchmark/Terminal.benchmark.ts index fb06b429e3..74b03f804f 100644 --- a/test/benchmark/Terminal.benchmark.ts +++ b/test/benchmark/Terminal.benchmark.ts @@ -6,7 +6,7 @@ import { perfContext, before, ThroughputRuntimeCase } from 'xterm-benchmark'; import { spawn } from 'node-pty'; -import { Utf8ToUtf32, stringFromCodePoint } from 'common/input/TextDecoder'; +import { Utf8ToUtf32, stringFromCodePoint } from 'common/primitives/input/TextDecoder'; import { CoreBrowserTerminal } from 'browser/CoreBrowserTerminal'; perfContext('Terminal: ls -lR /usr/lib', () => { diff --git a/test/benchmark/tsconfig.json b/test/benchmark/tsconfig.json index c8e17ee617..c8025f6eb9 100644 --- a/test/benchmark/tsconfig.json +++ b/test/benchmark/tsconfig.json @@ -13,7 +13,10 @@ "target": "es2021", "module": "nodenext", "paths": { - "common/*": ["../../src/common/*"], + "common/*": [ + "../../src/common/primitives/*", + "../../src/common/*" + ], "browser/*": ["../../src/browser/*"] } }, diff --git a/test/playwright/TestUtils.ts b/test/playwright/TestUtils.ts index 2a44c35922..2b22130838 100644 --- a/test/playwright/TestUtils.ts +++ b/test/playwright/TestUtils.ts @@ -8,7 +8,7 @@ import { deepStrictEqual, strictEqual } from 'assert'; import type { IRenderDimensions as IRenderDimensionsInternal } from '../../src/browser/renderer/shared/Types'; import type { IRenderService } from '../../src/browser/services/Services'; import type { IDisposable } from '../../src/common/Types'; -import type { IMarker } from '../../src/common/buffer/Types'; +import type { IMarker } from '../../src/common/primitives/buffer/Types'; import type { ICoreTerminal } from '../../src/common/CoreTerminal'; import * as playwright from '@playwright/test'; import { IBuffer, IBufferCell, IBufferLine, IBufferNamespace, IBufferRange, IDecoration, IDecorationOptions, IModes, IRenderDimensions, ITerminalInitOnlyOptions, ITerminalOptions, Terminal } from '@xterm/xterm'; From b7d45bfefa8e360bffd06495b225f0f3ed38b7ac Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Sat, 6 Jun 2026 18:24:02 +0000 Subject: [PATCH 2/6] Revert tsconfig path mapping changes for primitives folder Primitives remain under src/common/, so common/* aliases do not need a separate primitives entry. Restore original tsconfig paths. Co-authored-by: Daniel Imms --- addons/addon-attach/test/tsconfig.json | 3 +-- addons/addon-clipboard/test/tsconfig.json | 3 +-- addons/addon-fit/test/tsconfig.json | 3 +-- addons/addon-image/src/tsconfig.json | 3 +-- addons/addon-image/test/tsconfig.json | 3 +-- addons/addon-progress/src/tsconfig.json | 3 +-- addons/addon-progress/test/tsconfig.json | 3 +-- addons/addon-search/src/tsconfig.json | 3 +-- addons/addon-search/test/tsconfig.json | 3 +-- addons/addon-serialize/benchmark/tsconfig.json | 3 +-- addons/addon-serialize/src/tsconfig.json | 3 +-- addons/addon-serialize/test/tsconfig.json | 3 +-- .../addon-unicode-graphemes/benchmark/tsconfig.json | 3 +-- addons/addon-unicode-graphemes/src/tsconfig.json | 3 +-- addons/addon-unicode-graphemes/test/tsconfig.json | 3 +-- addons/addon-unicode11/src/tsconfig.json | 3 +-- addons/addon-unicode11/test/tsconfig.json | 3 +-- addons/addon-web-fonts/test/tsconfig.json | 3 +-- addons/addon-web-links/test/tsconfig.json | 3 +-- addons/addon-webgl/src/tsconfig.json | 3 +-- addons/addon-webgl/test/tsconfig.json | 3 +-- src/common/tsconfig.json | 13 ++----------- test/benchmark/tsconfig.json | 3 +-- 23 files changed, 24 insertions(+), 55 deletions(-) diff --git a/addons/addon-attach/test/tsconfig.json b/addons/addon-attach/test/tsconfig.json index ed2744ad16..ded3933bdf 100644 --- a/addons/addon-attach/test/tsconfig.json +++ b/addons/addon-attach/test/tsconfig.json @@ -11,7 +11,6 @@ "removeComments": true, "paths": { "common/*": [ - "../../../src/common/primitives/*", "../../../src/common/*" ], "browser/*": [ @@ -41,4 +40,4 @@ "path": "../../../test/playwright" } ] -} +} \ No newline at end of file diff --git a/addons/addon-clipboard/test/tsconfig.json b/addons/addon-clipboard/test/tsconfig.json index ed2744ad16..ded3933bdf 100644 --- a/addons/addon-clipboard/test/tsconfig.json +++ b/addons/addon-clipboard/test/tsconfig.json @@ -11,7 +11,6 @@ "removeComments": true, "paths": { "common/*": [ - "../../../src/common/primitives/*", "../../../src/common/*" ], "browser/*": [ @@ -41,4 +40,4 @@ "path": "../../../test/playwright" } ] -} +} \ No newline at end of file diff --git a/addons/addon-fit/test/tsconfig.json b/addons/addon-fit/test/tsconfig.json index ed2744ad16..ded3933bdf 100644 --- a/addons/addon-fit/test/tsconfig.json +++ b/addons/addon-fit/test/tsconfig.json @@ -11,7 +11,6 @@ "removeComments": true, "paths": { "common/*": [ - "../../../src/common/primitives/*", "../../../src/common/*" ], "browser/*": [ @@ -41,4 +40,4 @@ "path": "../../../test/playwright" } ] -} +} \ No newline at end of file diff --git a/addons/addon-image/src/tsconfig.json b/addons/addon-image/src/tsconfig.json index f3b414cf59..9a5d24c1fc 100644 --- a/addons/addon-image/src/tsconfig.json +++ b/addons/addon-image/src/tsconfig.json @@ -13,8 +13,7 @@ ], "paths": { "browser/*": [ "../../../src/browser/*" ], - "common/*": [ "../../../src/common/primitives/*", - "../../../src/common/*" ], + "common/*": [ "../../../src/common/*" ], "@xterm/addon-image": [ "../typings/addon-image.d.ts" ], "*": [ "./*" ] } diff --git a/addons/addon-image/test/tsconfig.json b/addons/addon-image/test/tsconfig.json index ed2744ad16..ded3933bdf 100644 --- a/addons/addon-image/test/tsconfig.json +++ b/addons/addon-image/test/tsconfig.json @@ -11,7 +11,6 @@ "removeComments": true, "paths": { "common/*": [ - "../../../src/common/primitives/*", "../../../src/common/*" ], "browser/*": [ @@ -41,4 +40,4 @@ "path": "../../../test/playwright" } ] -} +} \ No newline at end of file diff --git a/addons/addon-progress/src/tsconfig.json b/addons/addon-progress/src/tsconfig.json index c518251977..953888e27e 100644 --- a/addons/addon-progress/src/tsconfig.json +++ b/addons/addon-progress/src/tsconfig.json @@ -16,7 +16,6 @@ ], "paths": { "common/*": [ - "../../../src/common/primitives/*", "../../../src/common/*" ], "browser/*": [ @@ -39,4 +38,4 @@ "path": "../../../src/common" } ] -} +} \ No newline at end of file diff --git a/addons/addon-progress/test/tsconfig.json b/addons/addon-progress/test/tsconfig.json index ed2744ad16..ded3933bdf 100644 --- a/addons/addon-progress/test/tsconfig.json +++ b/addons/addon-progress/test/tsconfig.json @@ -11,7 +11,6 @@ "removeComments": true, "paths": { "common/*": [ - "../../../src/common/primitives/*", "../../../src/common/*" ], "browser/*": [ @@ -41,4 +40,4 @@ "path": "../../../test/playwright" } ] -} +} \ No newline at end of file diff --git a/addons/addon-search/src/tsconfig.json b/addons/addon-search/src/tsconfig.json index ec2092ab21..e23ef0d3e6 100644 --- a/addons/addon-search/src/tsconfig.json +++ b/addons/addon-search/src/tsconfig.json @@ -16,7 +16,6 @@ ], "paths": { "common/*": [ - "../../../src/common/primitives/*", "../../../src/common/*" ], "browser/*": [ @@ -39,4 +38,4 @@ "path": "../../../src/browser" } ] -} +} \ No newline at end of file diff --git a/addons/addon-search/test/tsconfig.json b/addons/addon-search/test/tsconfig.json index ed2744ad16..ded3933bdf 100644 --- a/addons/addon-search/test/tsconfig.json +++ b/addons/addon-search/test/tsconfig.json @@ -11,7 +11,6 @@ "removeComments": true, "paths": { "common/*": [ - "../../../src/common/primitives/*", "../../../src/common/*" ], "browser/*": [ @@ -41,4 +40,4 @@ "path": "../../../test/playwright" } ] -} +} \ No newline at end of file diff --git a/addons/addon-serialize/benchmark/tsconfig.json b/addons/addon-serialize/benchmark/tsconfig.json index aaf7d2b895..ad7ee6d040 100644 --- a/addons/addon-serialize/benchmark/tsconfig.json +++ b/addons/addon-serialize/benchmark/tsconfig.json @@ -12,8 +12,7 @@ "target": "es2021", "module": "nodenext", "paths": { - "common/*": ["../../../src/common/primitives/*", - "../../../src/common/*"], + "common/*": ["../../../src/common/*"], "browser/*": ["../../../src/browser/*"], "SerializeAddon": ["../src/SerializeAddon"], "@xterm/addon-serialize": [ diff --git a/addons/addon-serialize/src/tsconfig.json b/addons/addon-serialize/src/tsconfig.json index 3c12df8b13..7cbb5c2350 100644 --- a/addons/addon-serialize/src/tsconfig.json +++ b/addons/addon-serialize/src/tsconfig.json @@ -12,7 +12,6 @@ "removeComments": true, "paths": { "common/*": [ - "../../../src/common/primitives/*", "../../../src/common/*" ], "browser/*": [ @@ -40,4 +39,4 @@ "path": "../../../src/browser" } ] -} +} \ No newline at end of file diff --git a/addons/addon-serialize/test/tsconfig.json b/addons/addon-serialize/test/tsconfig.json index 7eea710056..d381887de9 100644 --- a/addons/addon-serialize/test/tsconfig.json +++ b/addons/addon-serialize/test/tsconfig.json @@ -11,7 +11,6 @@ "removeComments": true, "paths": { "common/*": [ - "../../../src/common/primitives/*", "../../../src/common/*" ], "browser/*": [ @@ -38,4 +37,4 @@ "path": "../../../test/playwright" } ] -} +} \ No newline at end of file diff --git a/addons/addon-unicode-graphemes/benchmark/tsconfig.json b/addons/addon-unicode-graphemes/benchmark/tsconfig.json index c6c9cbc2a4..1781ca3182 100644 --- a/addons/addon-unicode-graphemes/benchmark/tsconfig.json +++ b/addons/addon-unicode-graphemes/benchmark/tsconfig.json @@ -9,8 +9,7 @@ "target": "es2015", "module": "nodenext", "paths": { - "common/*": ["../../../src/common/primitives/*", - "../../../src/common/*"], + "common/*": ["../../../src/common/*"], "browser/*": ["../../../src/browser/*"], "UnicodeGraphemeProvider": ["../src/UnicodeGraphemeProvider"], "@xterm/addon-unicode-graphemes": [ diff --git a/addons/addon-unicode-graphemes/src/tsconfig.json b/addons/addon-unicode-graphemes/src/tsconfig.json index 3fb909b60d..6f654e4e1f 100644 --- a/addons/addon-unicode-graphemes/src/tsconfig.json +++ b/addons/addon-unicode-graphemes/src/tsconfig.json @@ -13,7 +13,6 @@ "strict": true, "paths": { "common/*": [ - "../../../src/common/primitives/*", "../../../src/common/*" ], "@xterm/addon-unicode-graphemes": [ @@ -33,4 +32,4 @@ "path": "../../../src/common" } ] -} +} \ No newline at end of file diff --git a/addons/addon-unicode-graphemes/test/tsconfig.json b/addons/addon-unicode-graphemes/test/tsconfig.json index 7eea710056..d381887de9 100644 --- a/addons/addon-unicode-graphemes/test/tsconfig.json +++ b/addons/addon-unicode-graphemes/test/tsconfig.json @@ -11,7 +11,6 @@ "removeComments": true, "paths": { "common/*": [ - "../../../src/common/primitives/*", "../../../src/common/*" ], "browser/*": [ @@ -38,4 +37,4 @@ "path": "../../../test/playwright" } ] -} +} \ No newline at end of file diff --git a/addons/addon-unicode11/src/tsconfig.json b/addons/addon-unicode11/src/tsconfig.json index 995fcabcf8..f95158058c 100644 --- a/addons/addon-unicode11/src/tsconfig.json +++ b/addons/addon-unicode11/src/tsconfig.json @@ -13,7 +13,6 @@ "strict": true, "paths": { "common/*": [ - "../../../src/common/primitives/*", "../../../src/common/*" ], "@xterm/addon-unicode11": [ @@ -36,4 +35,4 @@ "path": "../../../src/common" } ] -} +} \ No newline at end of file diff --git a/addons/addon-unicode11/test/tsconfig.json b/addons/addon-unicode11/test/tsconfig.json index ed2744ad16..ded3933bdf 100644 --- a/addons/addon-unicode11/test/tsconfig.json +++ b/addons/addon-unicode11/test/tsconfig.json @@ -11,7 +11,6 @@ "removeComments": true, "paths": { "common/*": [ - "../../../src/common/primitives/*", "../../../src/common/*" ], "browser/*": [ @@ -41,4 +40,4 @@ "path": "../../../test/playwright" } ] -} +} \ No newline at end of file diff --git a/addons/addon-web-fonts/test/tsconfig.json b/addons/addon-web-fonts/test/tsconfig.json index a64ff92630..36380f47f9 100644 --- a/addons/addon-web-fonts/test/tsconfig.json +++ b/addons/addon-web-fonts/test/tsconfig.json @@ -11,7 +11,6 @@ "removeComments": true, "paths": { "common/*": [ - "../../../src/common/primitives/*", "../../../src/common/*" ], "browser/*": [ @@ -41,4 +40,4 @@ "path": "../../../test/playwright" } ] -} +} \ No newline at end of file diff --git a/addons/addon-web-links/test/tsconfig.json b/addons/addon-web-links/test/tsconfig.json index a64ff92630..36380f47f9 100644 --- a/addons/addon-web-links/test/tsconfig.json +++ b/addons/addon-web-links/test/tsconfig.json @@ -11,7 +11,6 @@ "removeComments": true, "paths": { "common/*": [ - "../../../src/common/primitives/*", "../../../src/common/*" ], "browser/*": [ @@ -41,4 +40,4 @@ "path": "../../../test/playwright" } ] -} +} \ No newline at end of file diff --git a/addons/addon-webgl/src/tsconfig.json b/addons/addon-webgl/src/tsconfig.json index 429cc75c34..61aa336abc 100644 --- a/addons/addon-webgl/src/tsconfig.json +++ b/addons/addon-webgl/src/tsconfig.json @@ -12,7 +12,6 @@ "removeComments": true, "paths": { "common/*": [ - "../../../src/common/primitives/*", "../../../src/common/*" ], "browser/*": [ @@ -43,4 +42,4 @@ "path": "../../../src/browser" } ] -} +} \ No newline at end of file diff --git a/addons/addon-webgl/test/tsconfig.json b/addons/addon-webgl/test/tsconfig.json index eb1085d1da..53f85af627 100644 --- a/addons/addon-webgl/test/tsconfig.json +++ b/addons/addon-webgl/test/tsconfig.json @@ -11,7 +11,6 @@ "removeComments": true, "paths": { "common/*": [ - "../../../src/common/primitives/*", "../../../src/common/*" ], "browser/*": [ @@ -42,4 +41,4 @@ "path": "../../../test/playwright" } ] -} +} \ No newline at end of file diff --git a/src/common/tsconfig.json b/src/common/tsconfig.json index 0debb2efc3..c7488a89e2 100644 --- a/src/common/tsconfig.json +++ b/src/common/tsconfig.json @@ -10,19 +10,10 @@ "outDir": "../../out", "types": [ "../../node_modules/@types/mocha" - ], - "paths": { - "common/*": [ - "./primitives/*", - "./*" - ] - } + ] }, "include": [ - "./primitives/**/*", - "./services/**/*", - "./public/**/*", - "./*.ts", + "./**/*", "../../typings/xterm.d.ts" ] } diff --git a/test/benchmark/tsconfig.json b/test/benchmark/tsconfig.json index c8025f6eb9..a45db910e5 100644 --- a/test/benchmark/tsconfig.json +++ b/test/benchmark/tsconfig.json @@ -14,7 +14,6 @@ "module": "nodenext", "paths": { "common/*": [ - "../../src/common/primitives/*", "../../src/common/*" ], "browser/*": ["../../src/browser/*"] @@ -31,4 +30,4 @@ { "path": "../../src/common" }, { "path": "../../src/browser" }, ] -} +} \ No newline at end of file From f6c1b21258cee3af6780803fb1551aee684b595d Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Sat, 6 Jun 2026 18:29:16 +0000 Subject: [PATCH 3/6] Revert esbuild.mjs entry point split for primitives folder src/common/**/*.ts already covers primitives since they remain under common/. No build configuration changes are needed for this move. Co-authored-by: Daniel Imms --- bin/esbuild.mjs | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/bin/esbuild.mjs b/bin/esbuild.mjs index 3e67fd147a..9e5f2d2329 100644 --- a/bin/esbuild.mjs +++ b/bin/esbuild.mjs @@ -190,10 +190,7 @@ if (config.addon) { ...outConfig, entryPoints: [ 'src/browser/**/*.ts', - 'src/common/primitives/**/*.ts', - 'src/common/services/**/*.ts', - 'src/common/public/**/*.ts', - 'src/common/*.ts', + 'src/common/**/*.ts', 'src/headless/**/*.ts' ], outdir: 'out-esbuild/' From bd8510e3ab3d93d58e29cd9415cc77c503510ccf Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Sat, 6 Jun 2026 18:32:25 +0000 Subject: [PATCH 4/6] Move primitive types from common/Types.ts to common/primitives/Types.ts Extract low-level types (IParams, ParamsArray, IDisposable, color, keyboard, mouse, charset, etc.) into primitives/Types.ts. Keep runtime/integration types (ITerminalOptions, IInputHandler, terminal modes) in common/Types.ts. Lifecycle re-exports IDisposable from primitives/Types.ts. Co-authored-by: Daniel Imms --- addons/addon-serialize/src/SerializeAddon.ts | 2 +- addons/addon-webgl/src/CharAtlasUtils.test.ts | 2 +- addons/addon-webgl/src/RectangleRenderer.ts | 2 +- addons/addon-webgl/src/TextureAtlas.ts | 2 +- addons/addon-webgl/src/Types.ts | 2 +- src/browser/ColorContrastCache.ts | 2 +- src/browser/CoreBrowserTerminal.ts | 3 +- src/browser/Linkifier.ts | 2 +- src/browser/OscLinkProvider.test.ts | 2 +- src/browser/TestUtils.test.ts | 3 +- src/browser/Types.ts | 3 +- src/browser/Viewport.ts | 2 +- .../renderer/dom/DomRendererRowFactory.ts | 2 +- src/browser/renderer/dom/WidthCache.ts | 2 +- src/browser/renderer/shared/Types.ts | 2 +- src/browser/services/KeyboardService.ts | 2 +- src/browser/services/LinkProviderService.ts | 2 +- src/browser/services/MouseService.test.ts | 2 +- src/browser/services/MouseService.ts | 2 +- src/browser/services/SelectionService.ts | 2 +- src/browser/services/Services.ts | 2 +- src/browser/services/ThemeService.ts | 2 +- src/common/CoreTerminal.ts | 3 +- src/common/InputHandler.test.ts | 2 +- src/common/InputHandler.ts | 3 +- src/common/TestUtils.test.ts | 3 +- src/common/Types.ts | 226 +---------------- src/common/primitives/Color.ts | 2 +- src/common/primitives/Lifecycle.ts | 6 +- src/common/primitives/Types.ts | 228 ++++++++++++++++++ src/common/primitives/buffer/AttributeData.ts | 2 +- src/common/primitives/buffer/Buffer.ts | 2 +- src/common/primitives/buffer/Types.ts | 2 +- src/common/primitives/data/Charsets.ts | 2 +- src/common/primitives/input/Keyboard.test.ts | 2 +- src/common/primitives/input/Keyboard.ts | 2 +- .../primitives/input/KittyKeyboard.test.ts | 2 +- src/common/primitives/input/KittyKeyboard.ts | 2 +- .../primitives/input/Win32InputMode.test.ts | 2 +- src/common/primitives/input/Win32InputMode.ts | 2 +- src/common/primitives/parser/ApcParser.ts | 2 +- src/common/primitives/parser/DcsParser.ts | 2 +- .../parser/EscapeSequenceParser.test.ts | 2 +- .../primitives/parser/EscapeSequenceParser.ts | 2 +- src/common/primitives/parser/OscParser.ts | 2 +- src/common/primitives/parser/Types.ts | 2 +- src/common/services/CharsetService.ts | 2 +- src/common/services/DecorationService.ts | 2 +- src/common/services/MouseStateService.test.ts | 2 +- src/common/services/MouseStateService.ts | 2 +- src/common/services/OptionsService.test.ts | 2 +- src/common/services/OptionsService.ts | 2 +- src/common/services/OscLinkService.ts | 2 +- src/common/services/Services.ts | 3 +- test/playwright/TestUtils.ts | 2 +- 55 files changed, 291 insertions(+), 280 deletions(-) create mode 100644 src/common/primitives/Types.ts diff --git a/addons/addon-serialize/src/SerializeAddon.ts b/addons/addon-serialize/src/SerializeAddon.ts index 3c64158fa5..26a6b37149 100644 --- a/addons/addon-serialize/src/SerializeAddon.ts +++ b/addons/addon-serialize/src/SerializeAddon.ts @@ -7,7 +7,7 @@ import type { IBuffer, IBufferCell, IBufferRange, ITerminalAddon, Terminal } from '@xterm/xterm'; import type { IHTMLSerializeOptions, SerializeAddon as ISerializeApi, ISerializeOptions, ISerializeRange } from '@xterm/addon-serialize'; -import { IColor } from 'common/Types'; +import { IColor } from 'common/primitives/Types'; import { IAttributeData } from 'common/primitives/buffer/Types'; import { DEFAULT_ANSI_COLORS } from 'browser/Types'; import { UnderlineStyle } from 'common/primitives/buffer/Constants'; diff --git a/addons/addon-webgl/src/CharAtlasUtils.test.ts b/addons/addon-webgl/src/CharAtlasUtils.test.ts index 35c928b861..a2975c1e0a 100644 --- a/addons/addon-webgl/src/CharAtlasUtils.test.ts +++ b/addons/addon-webgl/src/CharAtlasUtils.test.ts @@ -7,7 +7,7 @@ import { assert } from 'chai'; import { configEquals } from './CharAtlasUtils'; import { ICharAtlasConfig } from './Types'; import { NULL_COLOR } from 'common/primitives/Color'; -import { IColor } from 'common/Types'; +import { IColor } from 'common/primitives/Types'; function createTestConfig(overrides: Partial = {}): ICharAtlasConfig { const color: IColor = { css: '#ffffff', rgba: 0xffffffff }; diff --git a/addons/addon-webgl/src/RectangleRenderer.ts b/addons/addon-webgl/src/RectangleRenderer.ts index bd934cfc87..bcd749187a 100644 --- a/addons/addon-webgl/src/RectangleRenderer.ts +++ b/addons/addon-webgl/src/RectangleRenderer.ts @@ -8,7 +8,7 @@ import { IThemeService } from 'browser/services/Services'; import { ReadonlyColorSet } from 'browser/Types'; import { Attributes, FgFlags } from 'common/primitives/buffer/Constants'; import { Disposable, toDisposable } from 'common/primitives/Lifecycle'; -import { IColor } from 'common/Types'; +import { IColor } from 'common/primitives/Types'; import { Terminal } from '@xterm/xterm'; import { RenderModelConstants } from './RenderModel'; import { IRenderModel, IWebGL2RenderingContext, IWebGLVertexArrayObject } from './Types'; diff --git a/addons/addon-webgl/src/TextureAtlas.ts b/addons/addon-webgl/src/TextureAtlas.ts index 1f1eb73f0b..c6e617be81 100644 --- a/addons/addon-webgl/src/TextureAtlas.ts +++ b/addons/addon-webgl/src/TextureAtlas.ts @@ -11,7 +11,7 @@ import { IBoundingBox, ICharAtlasConfig, IRasterizedGlyph, ITextureAtlas } from import { NULL_COLOR, channels, color, rgba } from 'common/primitives/Color'; import { FourKeyMap } from 'common/primitives/MultiKeyMap'; import { IdleTaskQueue } from 'common/primitives/TaskQueue'; -import { IColor } from 'common/Types'; +import { IColor } from 'common/primitives/Types'; import { AttributeData } from 'common/primitives/buffer/AttributeData'; import { Attributes, DEFAULT_COLOR, DEFAULT_EXT, UnderlineStyle } from 'common/primitives/buffer/Constants'; import { ILogService, IUnicodeService } from 'common/services/Services'; diff --git a/addons/addon-webgl/src/Types.ts b/addons/addon-webgl/src/Types.ts index 2a59935362..93e8ecf54c 100644 --- a/addons/addon-webgl/src/Types.ts +++ b/addons/addon-webgl/src/Types.ts @@ -6,7 +6,7 @@ import { FontWeight } from '@xterm/xterm'; import { IColorSet } from 'browser/Types'; import { ISelectionRenderModel } from 'browser/renderer/shared/Types'; -import { CursorInactiveStyle, CursorStyle, type IDisposable } from 'common/Types'; +import { CursorInactiveStyle, CursorStyle, type IDisposable } from 'common/primitives/Types'; import type { IEvent } from 'common/primitives/Event'; export interface IRenderModel { diff --git a/src/browser/ColorContrastCache.ts b/src/browser/ColorContrastCache.ts index 38a7df383e..cde4a177e6 100644 --- a/src/browser/ColorContrastCache.ts +++ b/src/browser/ColorContrastCache.ts @@ -4,7 +4,7 @@ */ import { IColorContrastCache } from './Types'; -import { IColor } from '../common/Types'; +import { IColor } from '../common/primitives/Types'; import { TwoKeyMap } from '../common/primitives/MultiKeyMap'; export class ColorContrastCache implements IColorContrastCache { diff --git a/src/browser/CoreBrowserTerminal.ts b/src/browser/CoreBrowserTerminal.ts index 6d4d2123c2..85a4b13e36 100644 --- a/src/browser/CoreBrowserTerminal.ts +++ b/src/browser/CoreBrowserTerminal.ts @@ -46,7 +46,8 @@ import { KeyboardService } from './services/KeyboardService'; import { channels, color, rgb } from '../common/primitives/Color'; import { CoreTerminal } from '../common/CoreTerminal'; import * as Browser from '../common/primitives/Platform'; -import { ColorRequestType, IColorEvent, ITerminalOptions, KeyboardResultType, SpecialColorIndex } from '../common/Types'; +import { ColorRequestType, IColorEvent, KeyboardResultType, SpecialColorIndex } from '../common/primitives/Types'; +import { ITerminalOptions } from '../common/Types'; import { DEFAULT_ATTR_DATA } from '../common/primitives/buffer/BufferLine'; import { IBuffer } from '../common/primitives/buffer/Types'; import { C0, C1ESCAPED } from '../common/primitives/data/EscapeSequences'; diff --git a/src/browser/Linkifier.ts b/src/browser/Linkifier.ts index 3daa7a95e8..eab28611ee 100644 --- a/src/browser/Linkifier.ts +++ b/src/browser/Linkifier.ts @@ -5,7 +5,7 @@ import { IBufferCellPosition, ILink, ILinkDecorations, ILinkWithState, ILinkifier2, ILinkifierEvent } from './Types'; import { Disposable, dispose, toDisposable } from '../common/primitives/Lifecycle'; -import { IDisposable } from '../common/Types'; +import { IDisposable } from '../common/primitives/Types'; import { IBufferService } from '../common/services/Services'; import { ILinkProviderService, IMouseCoordsService, IRenderService } from './services/Services'; import { Emitter } from '../common/primitives/Event'; diff --git a/src/browser/OscLinkProvider.test.ts b/src/browser/OscLinkProvider.test.ts index 2aa461f98a..be3d8a2e94 100644 --- a/src/browser/OscLinkProvider.test.ts +++ b/src/browser/OscLinkProvider.test.ts @@ -8,7 +8,7 @@ import { OscLinkProvider } from './OscLinkProvider'; import { ILink } from './Types'; import { createCellData, MockBufferService, MockOptionsService } from '../common/TestUtils.test'; import { IBufferService, IOscLinkService } from '../common/services/Services'; -import { IOscLinkData } from '../common/Types'; +import { IOscLinkData } from '../common/primitives/Types'; import { IBufferLine } from '../common/primitives/buffer/Types'; class TestOscLinkService implements IOscLinkService { diff --git a/src/browser/TestUtils.test.ts b/src/browser/TestUtils.test.ts index d8dfce6a54..84b9c3eeea 100644 --- a/src/browser/TestUtils.test.ts +++ b/src/browser/TestUtils.test.ts @@ -9,7 +9,8 @@ import { IRenderDimensions, IRenderer, IRequestRedrawEvent } from './renderer/sh import { IColorSet, ITerminal, ILinkifier2, IBrowser, IViewport, ICompositionHelper, CharacterJoinerHandler, IBufferRange, ReadonlyColorSet, IBufferElementProvider } from './Types'; import { IAttributeData, IBuffer, IBufferLine, IBufferSet, ICellData } from '../common/primitives/buffer/Types'; import { ICircularList } from '../common/primitives/CircularList'; -import { XtermListener, ICharset, ITerminalOptions, ColorIndex } from '../common/Types'; +import { XtermListener, ICharset, ColorIndex } from '../common/primitives/Types'; +import { ITerminalOptions } from '../common/Types'; import { Buffer } from '../common/primitives/buffer/Buffer'; import * as Browser from '../common/primitives/Platform'; import { CoreBrowserTerminal } from './CoreBrowserTerminal'; diff --git a/src/browser/Types.ts b/src/browser/Types.ts index cfad968d9a..cb22be2234 100644 --- a/src/browser/Types.ts +++ b/src/browser/Types.ts @@ -3,7 +3,8 @@ * @license MIT */ -import { IColor, ITerminalOptions } from '../common/Types'; +import { IColor } from '../common/primitives/Types'; +import { ITerminalOptions } from '../common/Types'; import { CharData, IBuffer } from '../common/primitives/buffer/Types'; import { ICoreTerminal } from '../common/CoreTerminal'; import { IDisposable, IRenderDimensions as IRenderDimensionsApi, Terminal as ITerminalApi } from '@xterm/xterm'; diff --git a/src/browser/Viewport.ts b/src/browser/Viewport.ts index 8028ec2eb7..cc98a15e3b 100644 --- a/src/browser/Viewport.ts +++ b/src/browser/Viewport.ts @@ -7,7 +7,7 @@ import { ICoreBrowserService, IRenderService, IThemeService } from './services/S import { ViewportConstants } from './shared/Constants'; import { Disposable, toDisposable } from '../common/primitives/Lifecycle'; import { IBufferService, ICoreService, IMouseStateService, IOptionsService } from '../common/services/Services'; -import { CoreMouseEventType } from '../common/Types'; +import { CoreMouseEventType } from '../common/primitives/Types'; import { scheduleAtNextAnimationFrame } from './Dom'; import { SmoothScrollableElement } from './scrollable/scrollableElement'; import type { IScrollableElementChangeOptions } from './scrollable/scrollableElementOptions'; diff --git a/src/browser/renderer/dom/DomRendererRowFactory.ts b/src/browser/renderer/dom/DomRendererRowFactory.ts index d869d1724d..08f51c6567 100644 --- a/src/browser/renderer/dom/DomRendererRowFactory.ts +++ b/src/browser/renderer/dom/DomRendererRowFactory.ts @@ -3,7 +3,7 @@ * @license MIT */ -import { IColor } from '../../../common/Types'; +import { IColor } from '../../../common/primitives/Types'; import { IBufferLine, ICellData } from '../../../common/primitives/buffer/Types'; import { INVERTED_DEFAULT_COLOR } from '../shared/Constants'; import { WHITESPACE_CELL_CHAR, Attributes } from '../../../common/primitives/buffer/Constants'; diff --git a/src/browser/renderer/dom/WidthCache.ts b/src/browser/renderer/dom/WidthCache.ts index d45938515e..5d1b4df1b0 100644 --- a/src/browser/renderer/dom/WidthCache.ts +++ b/src/browser/renderer/dom/WidthCache.ts @@ -4,7 +4,7 @@ */ import { throwIfFalsy } from '../shared/RendererUtils'; -import { IDisposable } from '../../../common/Types'; +import { IDisposable } from '../../../common/primitives/Types'; import { FontWeight } from '../../../common/services/Services'; diff --git a/src/browser/renderer/shared/Types.ts b/src/browser/renderer/shared/Types.ts index 00342c18b3..42b546c3d1 100644 --- a/src/browser/renderer/shared/Types.ts +++ b/src/browser/renderer/shared/Types.ts @@ -5,7 +5,7 @@ import { Terminal } from '@xterm/xterm'; import { ITerminal } from '../../Types'; -import { IDisposable } from '../../../common/Types'; +import { IDisposable } from '../../../common/primitives/Types'; import type { IEvent } from '../../../common/primitives/Event'; export interface IDimensions { diff --git a/src/browser/services/KeyboardService.ts b/src/browser/services/KeyboardService.ts index c8ac3e3925..c949bcf0a1 100644 --- a/src/browser/services/KeyboardService.ts +++ b/src/browser/services/KeyboardService.ts @@ -9,7 +9,7 @@ import { KittyKeyboard, KittyKeyboardEventType, KittyKeyboardFlags } from '../.. import { Win32InputMode } from '../../common/primitives/input/Win32InputMode'; import { isMac } from '../../common/primitives/Platform'; import { ICoreService, IOptionsService } from '../../common/services/Services'; -import { IKeyboardResult } from '../../common/Types'; +import { IKeyboardResult } from '../../common/primitives/Types'; export class KeyboardService implements IKeyboardService { public serviceBrand: undefined; diff --git a/src/browser/services/LinkProviderService.ts b/src/browser/services/LinkProviderService.ts index 049b9ae34f..80a5d255a4 100644 --- a/src/browser/services/LinkProviderService.ts +++ b/src/browser/services/LinkProviderService.ts @@ -1,6 +1,6 @@ import { ILinkProvider, ILinkProviderService } from './Services'; import { Disposable, toDisposable } from '../../common/primitives/Lifecycle'; -import { IDisposable } from '../../common/Types'; +import { IDisposable } from '../../common/primitives/Types'; export class LinkProviderService extends Disposable implements ILinkProviderService { declare public serviceBrand: undefined; diff --git a/src/browser/services/MouseService.test.ts b/src/browser/services/MouseService.test.ts index b4655a1a1d..f12d1d5640 100644 --- a/src/browser/services/MouseService.test.ts +++ b/src/browser/services/MouseService.test.ts @@ -5,7 +5,7 @@ import { assert } from 'chai'; import { AltMouseCursorController, MouseEventCssClasses, MouseService } from './MouseService'; import { MouseStateService } from '../../common/services/MouseStateService'; -import { CoreMouseAction, CoreMouseButton } from '../../common/Types'; +import { CoreMouseAction, CoreMouseButton } from '../../common/primitives/Types'; import { IBufferService, ICoreService, ILogService, IOptionsService } from '../../common/services/Services'; import { OptionsService } from '../../common/services/OptionsService'; import { MockCoreBrowserService, MockRenderService, MockSelectionService } from '../TestUtils.test'; diff --git a/src/browser/services/MouseService.ts b/src/browser/services/MouseService.ts index 6ec71e4d4b..d571a41db6 100644 --- a/src/browser/services/MouseService.ts +++ b/src/browser/services/MouseService.ts @@ -5,7 +5,7 @@ import { addDisposableListener } from '../Dom'; import { IBufferService, IMouseStateService, ICoreService, ILogService, IOptionsService } from '../../common/services/Services'; -import { CoreMouseAction, CoreMouseButton, CoreMouseEventType, ICoreMouseEvent, IDisposable } from '../../common/Types'; +import { CoreMouseAction, CoreMouseButton, CoreMouseEventType, ICoreMouseEvent, IDisposable } from '../../common/primitives/Types'; import { C0 } from '../../common/primitives/data/EscapeSequences'; import { DisposableStore, MutableDisposable, toDisposable } from '../../common/primitives/Lifecycle'; import { ICoreBrowserService, IMouseCoordsService, IMouseService, IMouseServiceTarget, IRenderService, ISelectionService } from './Services'; diff --git a/src/browser/services/SelectionService.ts b/src/browser/services/SelectionService.ts index f6b45fe508..050f82f27e 100644 --- a/src/browser/services/SelectionService.ts +++ b/src/browser/services/SelectionService.ts @@ -11,7 +11,7 @@ import { ISelectionRedrawRequestEvent, ISelectionRequestScrollLinesEvent } from import { ICoreBrowserService, IMouseCoordsService, IRenderService, ISelectionService } from './Services'; import { Disposable, MutableDisposable, toDisposable } from '../../common/primitives/Lifecycle'; import * as Browser from '../../common/primitives/Platform'; -import { IDisposable } from '../../common/Types'; +import { IDisposable } from '../../common/primitives/Types'; import { IBuffer, IBufferLine, ICellData } from '../../common/primitives/buffer/Types'; import { getRangeLength } from '../../common/primitives/buffer/BufferRange'; import { CellData } from '../../common/primitives/buffer/CellData'; diff --git a/src/browser/services/Services.ts b/src/browser/services/Services.ts index 941edb67b9..bf2c65319f 100644 --- a/src/browser/services/Services.ts +++ b/src/browser/services/Services.ts @@ -7,7 +7,7 @@ import { IRenderDimensions, IRenderer } from '../renderer/shared/Types'; import { IColorSet, ILink, ReadonlyColorSet } from '../Types'; import { ISelectionRedrawRequestEvent as ISelectionRequestRedrawEvent, ISelectionRequestScrollLinesEvent } from '../selection/Types'; import { createDecorator } from '../../common/services/ServiceRegistry'; -import { AllColorIndex, IDisposable, IKeyboardResult } from '../../common/Types'; +import { AllColorIndex, IDisposable, IKeyboardResult } from '../../common/primitives/Types'; import type { IEvent } from '../../common/primitives/Event'; export const ICharSizeService = createDecorator('CharSizeService'); diff --git a/src/browser/services/ThemeService.ts b/src/browser/services/ThemeService.ts index a6f8d0752e..c993acbadd 100644 --- a/src/browser/services/ThemeService.ts +++ b/src/browser/services/ThemeService.ts @@ -9,7 +9,7 @@ import { DEFAULT_ANSI_COLORS, IColorContrastCache, IColorSet, ReadonlyColorSet } import { color, css, NULL_COLOR } from '../../common/primitives/Color'; import { Disposable } from '../../common/primitives/Lifecycle'; import { IOptionsService, ITheme } from '../../common/services/Services'; -import { AllColorIndex, IColor, SpecialColorIndex } from '../../common/Types'; +import { AllColorIndex, IColor, SpecialColorIndex } from '../../common/primitives/Types'; import { Emitter } from '../../common/primitives/Event'; interface IRestoreColorSet { diff --git a/src/common/CoreTerminal.ts b/src/common/CoreTerminal.ts index 65fbc7bed2..836b9e44dd 100644 --- a/src/common/CoreTerminal.ts +++ b/src/common/CoreTerminal.ts @@ -26,7 +26,8 @@ import { InstantiationService } from './services/InstantiationService'; import { LogService } from './services/LogService'; import { BufferService, BufferServiceConstants } from './services/BufferService'; import { OptionsService } from './services/OptionsService'; -import { IDisposable, IScrollEvent, ITerminalOptions, IParams } from './Types'; +import { IDisposable, IParams } from './primitives/Types'; +import { IScrollEvent, ITerminalOptions } from './Types'; import { IAttributeData, IBufferSet } from './primitives/buffer/Types'; import { CoreService } from './services/CoreService'; import { MouseStateService } from './services/MouseStateService'; diff --git a/src/common/InputHandler.test.ts b/src/common/InputHandler.test.ts index 7e6ac3fe65..497bd6a98b 100644 --- a/src/common/InputHandler.test.ts +++ b/src/common/InputHandler.test.ts @@ -5,7 +5,7 @@ import { assert } from 'chai'; import { InputHandler } from './InputHandler'; -import { IColorEvent, ColorRequestType, SpecialColorIndex } from './Types'; +import { IColorEvent, ColorRequestType, SpecialColorIndex } from './primitives/Types'; import { IAttributeData, IBufferLine } from './primitives/buffer/Types'; import { DEFAULT_ATTR_DATA } from './primitives/buffer/BufferLine'; import { CellData } from './primitives/buffer/CellData'; diff --git a/src/common/InputHandler.ts b/src/common/InputHandler.ts index 078446bc91..1deaf28814 100644 --- a/src/common/InputHandler.ts +++ b/src/common/InputHandler.ts @@ -4,7 +4,8 @@ * @license MIT */ -import { IInputHandler, IDisposable, IWindowOptions, IColorEvent, IParseStack, ColorIndex, ColorRequestType, SpecialColorIndex } from './Types'; +import { IDisposable, IColorEvent, ColorIndex, ColorRequestType, SpecialColorIndex } from './primitives/Types'; +import { IInputHandler, IWindowOptions, IParseStack } from './Types'; import { IAttributeData, IBuffer } from './primitives/buffer/Types'; import { C0, C1 } from './primitives/data/EscapeSequences'; import { CHARSETS, DEFAULT_CHARSET } from './primitives/data/Charsets'; diff --git a/src/common/TestUtils.test.ts b/src/common/TestUtils.test.ts index 8b97b6c035..07b80fb765 100644 --- a/src/common/TestUtils.test.ts +++ b/src/common/TestUtils.test.ts @@ -8,7 +8,8 @@ import { UnicodeService } from './services/UnicodeService'; import { DEFAULT_OPTIONS } from './services/OptionsService'; import { IAttributeData, IBuffer, IBufferLine, IBufferSet, IExtendedAttrs } from './primitives/buffer/Types'; import { BufferSet } from './primitives/buffer/BufferSet'; -import { IDecPrivateModes, ICoreMouseEvent, CoreMouseEventType, ICharset, IModes, IOscLinkData, IDisposable } from './Types'; +import { ICoreMouseEvent, CoreMouseEventType, ICharset, IOscLinkData, IDisposable } from './primitives/Types'; +import { IDecPrivateModes, IModes } from './Types'; import { UnicodeV6 } from './primitives/input/UnicodeV6'; import { IDecorationOptions, IDecoration } from '@xterm/xterm'; import { Emitter, type IEvent } from './primitives/Event'; diff --git a/src/common/Types.ts b/src/common/Types.ts index 8d4fa71610..96320aff0f 100644 --- a/src/common/Types.ts +++ b/src/common/Types.ts @@ -5,35 +5,7 @@ import { IFunctionIdentifier, ITerminalOptions as IPublicTerminalOptions } from '@xterm/xterm'; import type { IEvent } from './primitives/Event'; - -/** sequence params serialized to js arrays */ -export type ParamsArray = (number | number[])[]; - -/** Interface of Params storage class. */ -export interface IParams { - /** from ctor */ - maxLength: number; - maxSubParamsLength: number; - - /** param values and its length */ - params: Int32Array; - length: number; - - /** methods */ - clone(): IParams; - toArray(): ParamsArray; - reset(): void; - resetZdm(): void; - addParam(value: number): void; - addSubParam(value: number): void; - hasSubParams(idx: number): boolean; - getSubParams(idx: number): Int32Array | null; - getSubParamsAll(): {[idx: number]: Int32Array}; -} - -export interface IDisposable { - dispose(): void; -} +import type { CursorStyle, IColorEvent, ColorIndex, ColorRequestType, IDisposable, IParams, SpecialColorIndex } from './primitives/Types'; // TODO: The options that are not in the public API should be reviewed export interface ITerminalOptions extends IPublicTerminalOptions { @@ -42,66 +14,10 @@ export interface ITerminalOptions extends IPublicTerminalOptions { termName?: string; } -export type CursorStyle = 'block' | 'underline' | 'bar'; - -export type CursorInactiveStyle = 'outline' | 'block' | 'bar' | 'underline' | 'none'; - -export type XtermListener = (...args: any[]) => void; - -/** - * A keyboard event interface which does not depend on the DOM, KeyboardEvent implicitly extends - * this event. - */ -export interface IKeyboardEvent { - altKey: boolean; - ctrlKey: boolean; - shiftKey: boolean; - metaKey: boolean; - /** @deprecated See KeyboardEvent.keyCode */ - keyCode: number; - key: string; - type: string; - code: string; -} - export interface IScrollEvent { position: number; } -export const enum KeyboardResultType { - SEND_KEY, - SELECT_ALL, - PAGE_UP, - PAGE_DOWN -} - -export interface IKeyboardResult { - type: KeyboardResultType; - cancel: boolean; - key: string | undefined; -} - -export interface ICharset { - [key: string]: string | undefined; -} - -export interface IColor { - readonly css: string; - readonly rgba: number; // 32-bit int with rgba in each byte -} -export type IColorRGB = [red: number, green: number, blue: number]; - -/** - * Tracks the current hyperlink. Since these are treated as extended attirbutes, these get passed on - * to the linkifier when anything is printed. Doing it this way ensures that even when the cursor - * moves around unexpectedly the link is tracked, as opposed to using a start position and - * finalizing it at the end. - */ -export interface IOscLinkData { - id?: string; - uri: string; -} - export interface IModes { insertMode: boolean; } @@ -138,110 +54,6 @@ export interface IKittyKeyboardState { altStack: number[]; } -export interface IRowRange { - start: number; - end: number; -} - -/** - * Interface for mouse events in the core. - */ -export const enum CoreMouseButton { - LEFT = 0, - MIDDLE = 1, - RIGHT = 2, - NONE = 3, - WHEEL = 4, - // additional buttons 1..8 - // untested! - AUX1 = 8, - AUX2 = 9, - AUX3 = 10, - AUX4 = 11, - AUX5 = 12, - AUX6 = 13, - AUX7 = 14, - AUX8 = 15 -} - -export const enum CoreMouseAction { - UP = 0, // buttons, wheel - DOWN = 1, // buttons, wheel - LEFT = 2, // wheel only - RIGHT = 3, // wheel only - MOVE = 32 // buttons only -} - -export interface ICoreMouseEvent { - /** column (zero based). */ - col: number; - /** row (zero based). */ - row: number; - /** xy pixel positions. */ - x: number; - y: number; - /** - * Button the action occurred. Due to restrictions of the tracking protocols - * it is not possible to report multiple buttons at once. - * Wheel is treated as a button. - * There are invalid combinations of buttons and actions possible - * (like move + wheel), those are silently ignored by the MouseStateService. - */ - button: CoreMouseButton; - action: CoreMouseAction; - /** - * Modifier states. - * Protocols will add/ignore those based on specific restrictions. - */ - ctrl?: boolean; - alt?: boolean; - shift?: boolean; -} - -/** - * CoreMouseEventType - * To be reported to the browser component which events a mouse - * protocol wants to be catched and forwarded as an ICoreMouseEvent - * to MouseStateService. - */ -export const enum CoreMouseEventType { - NONE = 0, - /** any mousedown event */ - DOWN = 1, - /** any mouseup event */ - UP = 2, - /** any mousemove event while a button is held */ - DRAG = 4, - /** any mousemove event without a button */ - MOVE = 8, - /** any wheel event */ - WHEEL = 16 -} - -/** - * Mouse protocol interface. - * A mouse protocol can be registered and activated at the MouseStateService. - * `events` should contain a list of needed events as a hint for the browser component - * to install/remove the appropriate event handlers. - * `restrict` applies further protocol specific restrictions like not allowed - * modifiers or filtering invalid event types. - */ -export interface ICoreMouseProtocol { - events: CoreMouseEventType; - restrict: (e: ICoreMouseEvent) => boolean; -} - -/** - * CoreMouseEncoding - * The tracking encoding can be registered and activated at the MouseStateService. - * If a ICoreMouseEvent passes all procotol restrictions it will be encoded - * with the active encoding and sent out. - * Note: Returning an empty string will supress sending a mouse report, - * which can be used to skip creating falsey reports in limited encodings - * (DEFAULT only supports up to 223 1-based as coord value). - */ -export type CoreMouseEncoding = (event: ICoreMouseEvent) => string; - /** * windowOptions */ @@ -270,42 +82,6 @@ export interface IWindowOptions { setWinLines?: boolean; } -// color events from common, used for OSC 4/10/11/12 and 104/110/111/112 -export const enum ColorRequestType { - REPORT = 0, - SET = 1, - RESTORE = 2 -} - -// IntRange from https://stackoverflow.com/a/39495173 -type Enumerate = Acc['length'] extends N - ? Acc[number] - : Enumerate; -type IntRange = Exclude, Enumerate>; - -export type ColorIndex = IntRange<0, 256>; // number from 0 to 255 -export type AllColorIndex = ColorIndex | SpecialColorIndex; -export const enum SpecialColorIndex { - FOREGROUND = 256, - BACKGROUND = 257, - CURSOR = 258 -} -export interface IColorReportRequest { - type: ColorRequestType.REPORT; - index: AllColorIndex; -} -export interface IColorSetRequest { - type: ColorRequestType.SET; - index: AllColorIndex; - color: IColorRGB; -} -export interface IColorRestoreRequest { - type: ColorRequestType.RESTORE; - index?: AllColorIndex; -} -export type IColorEvent = (IColorReportRequest | IColorSetRequest | IColorRestoreRequest)[]; - - /** * Calls the parser and handles actions generated by the parser. */ diff --git a/src/common/primitives/Color.ts b/src/common/primitives/Color.ts index 71c4849944..b8a9d8d60e 100644 --- a/src/common/primitives/Color.ts +++ b/src/common/primitives/Color.ts @@ -3,7 +3,7 @@ * @license MIT */ -import { IColor, IColorRGB } from '../Types'; +import { IColor, IColorRGB } from './Types'; let $r = 0; let $g = 0; diff --git a/src/common/primitives/Lifecycle.ts b/src/common/primitives/Lifecycle.ts index 7046e46639..d1ebaf37e6 100644 --- a/src/common/primitives/Lifecycle.ts +++ b/src/common/primitives/Lifecycle.ts @@ -6,9 +6,9 @@ * Simplified from VS Code's lifecycle.ts - no tracking/leak detection. */ -export interface IDisposable { - dispose(): void; -} +import type { IDisposable } from './Types'; + +export type { IDisposable }; export function toDisposable(fn: () => void): IDisposable { return { dispose: fn }; diff --git a/src/common/primitives/Types.ts b/src/common/primitives/Types.ts new file mode 100644 index 0000000000..e3b23cbbb5 --- /dev/null +++ b/src/common/primitives/Types.ts @@ -0,0 +1,228 @@ +/** + * Copyright (c) 2018 The xterm.js authors. All rights reserved. + * @license MIT + */ + +/** sequence params serialized to js arrays */ +export type ParamsArray = (number | number[])[]; + +/** Interface of Params storage class. */ +export interface IParams { + /** from ctor */ + maxLength: number; + maxSubParamsLength: number; + + /** param values and its length */ + params: Int32Array; + length: number; + + /** methods */ + clone(): IParams; + toArray(): ParamsArray; + reset(): void; + resetZdm(): void; + addParam(value: number): void; + addSubParam(value: number): void; + hasSubParams(idx: number): boolean; + getSubParams(idx: number): Int32Array | null; + getSubParamsAll(): {[idx: number]: Int32Array}; +} + +export interface IDisposable { + dispose(): void; +} + +export type CursorStyle = 'block' | 'underline' | 'bar'; + +export type CursorInactiveStyle = 'outline' | 'block' | 'bar' | 'underline' | 'none'; + +export type XtermListener = (...args: any[]) => void; + +/** + * A keyboard event interface which does not depend on the DOM, KeyboardEvent implicitly extends + * this event. + */ +export interface IKeyboardEvent { + altKey: boolean; + ctrlKey: boolean; + shiftKey: boolean; + metaKey: boolean; + /** @deprecated See KeyboardEvent.keyCode */ + keyCode: number; + key: string; + type: string; + code: string; +} + +export const enum KeyboardResultType { + SEND_KEY, + SELECT_ALL, + PAGE_UP, + PAGE_DOWN +} + +export interface IKeyboardResult { + type: KeyboardResultType; + cancel: boolean; + key: string | undefined; +} + +export interface ICharset { + [key: string]: string | undefined; +} + +export interface IColor { + readonly css: string; + readonly rgba: number; // 32-bit int with rgba in each byte +} +export type IColorRGB = [red: number, green: number, blue: number]; + +/** + * Tracks the current hyperlink. Since these are treated as extended attirbutes, these get passed on + * to the linkifier when anything is printed. Doing it this way ensures that even when the cursor + * moves around unexpectedly the link is tracked, as opposed to using a start position and + * finalizing it at the end. + */ +export interface IOscLinkData { + id?: string; + uri: string; +} + +export interface IRowRange { + start: number; + end: number; +} + +/** + * Interface for mouse events in the core. + */ +export const enum CoreMouseButton { + LEFT = 0, + MIDDLE = 1, + RIGHT = 2, + NONE = 3, + WHEEL = 4, + // additional buttons 1..8 + // untested! + AUX1 = 8, + AUX2 = 9, + AUX3 = 10, + AUX4 = 11, + AUX5 = 12, + AUX6 = 13, + AUX7 = 14, + AUX8 = 15 +} + +export const enum CoreMouseAction { + UP = 0, // buttons, wheel + DOWN = 1, // buttons, wheel + LEFT = 2, // wheel only + RIGHT = 3, // wheel only + MOVE = 32 // buttons only +} + +export interface ICoreMouseEvent { + /** column (zero based). */ + col: number; + /** row (zero based). */ + row: number; + /** xy pixel positions. */ + x: number; + y: number; + /** + * Button the action occurred. Due to restrictions of the tracking protocols + * it is not possible to report multiple buttons at once. + * Wheel is treated as a button. + * There are invalid combinations of buttons and actions possible + * (like move + wheel), those are silently ignored by the MouseStateService. + */ + button: CoreMouseButton; + action: CoreMouseAction; + /** + * Modifier states. + * Protocols will add/ignore those based on specific restrictions. + */ + ctrl?: boolean; + alt?: boolean; + shift?: boolean; +} + +/** + * CoreMouseEventType + * To be reported to the browser component which events a mouse + * protocol wants to be catched and forwarded as an ICoreMouseEvent + * to MouseStateService. + */ +export const enum CoreMouseEventType { + NONE = 0, + /** any mousedown event */ + DOWN = 1, + /** any mouseup event */ + UP = 2, + /** any mousemove event while a button is held */ + DRAG = 4, + /** any mousemove event without a button */ + MOVE = 8, + /** any wheel event */ + WHEEL = 16 +} + +/** + * Mouse protocol interface. + * A mouse protocol can be registered and activated at the MouseStateService. + * `events` should contain a list of needed events as a hint for the browser component + * to install/remove the appropriate event handlers. + * `restrict` applies further protocol specific restrictions like not allowed + * modifiers or filtering invalid event types. + */ +export interface ICoreMouseProtocol { + events: CoreMouseEventType; + restrict: (e: ICoreMouseEvent) => boolean; +} + +/** + * CoreMouseEncoding + * The tracking encoding can be registered and activated at the MouseStateService. + * If a ICoreMouseEvent passes all procotol restrictions it will be encoded + * with the active encoding and sent out. + * Note: Returning an empty string will supress sending a mouse report, + * which can be used to skip creating falsey reports in limited encodings + * (DEFAULT only supports up to 223 1-based as coord value). + */ +export type CoreMouseEncoding = (event: ICoreMouseEvent) => string; + +// color events from common, used for OSC 4/10/11/12 and 104/110/111/112 +export const enum ColorRequestType { + REPORT = 0, + SET = 1, + RESTORE = 2 +} + +// IntRange from https://stackoverflow.com/a/39495173 +type Enumerate = Acc['length'] extends N + ? Acc[number] + : Enumerate; +type IntRange = Exclude, Enumerate>; + +export type ColorIndex = IntRange<0, 256>; // number from 0 to 255 +export type AllColorIndex = ColorIndex | SpecialColorIndex; +export const enum SpecialColorIndex { + FOREGROUND = 256, + BACKGROUND = 257, + CURSOR = 258 +} +export interface IColorReportRequest { + type: ColorRequestType.REPORT; + index: AllColorIndex; +} +export interface IColorSetRequest { + type: ColorRequestType.SET; + index: AllColorIndex; + color: IColorRGB; +} +export interface IColorRestoreRequest { + type: ColorRequestType.RESTORE; + index?: AllColorIndex; +} +export type IColorEvent = (IColorReportRequest | IColorSetRequest | IColorRestoreRequest)[]; diff --git a/src/common/primitives/buffer/AttributeData.ts b/src/common/primitives/buffer/AttributeData.ts index 70fd602fc6..3bcb22a006 100644 --- a/src/common/primitives/buffer/AttributeData.ts +++ b/src/common/primitives/buffer/AttributeData.ts @@ -3,7 +3,7 @@ * @license MIT */ -import { IColorRGB } from '../../Types'; +import { IColorRGB } from '../Types'; import { IAttributeData, IExtendedAttrs } from './Types'; import { Attributes, FgFlags, BgFlags, UnderlineStyle, ExtFlags } from './Constants'; diff --git a/src/common/primitives/buffer/Buffer.ts b/src/common/primitives/buffer/Buffer.ts index 4283ed6d1a..2f247b4026 100644 --- a/src/common/primitives/buffer/Buffer.ts +++ b/src/common/primitives/buffer/Buffer.ts @@ -6,7 +6,7 @@ import { CircularList, IInsertEvent } from '../CircularList'; import { Disposable, toDisposable } from '../Lifecycle'; import { IdleTaskQueue } from '../TaskQueue'; -import { ICharset } from '../../Types'; +import { ICharset } from '../Types'; import { IAttributeData, IBuffer, IBufferLine, ICellData } from './Types'; import { ExtendedAttrs } from './AttributeData'; import { BufferLine, DEFAULT_ATTR_DATA } from './BufferLine'; diff --git a/src/common/primitives/buffer/Types.ts b/src/common/primitives/buffer/Types.ts index 257a7c8709..994ca0f436 100644 --- a/src/common/primitives/buffer/Types.ts +++ b/src/common/primitives/buffer/Types.ts @@ -5,7 +5,7 @@ import type { IEvent } from '../Event'; import type { ICircularList } from '../CircularList'; -import type { ICharset } from '../../Types'; +import type { ICharset } from '../Types'; import type { IDisposable } from '../Lifecycle'; import type { UnderlineStyle } from './Constants'; diff --git a/src/common/primitives/data/Charsets.ts b/src/common/primitives/data/Charsets.ts index 0785eb43b2..9680f4c05b 100644 --- a/src/common/primitives/data/Charsets.ts +++ b/src/common/primitives/data/Charsets.ts @@ -3,7 +3,7 @@ * @license MIT */ -import { ICharset } from '../../Types'; +import { ICharset } from '../Types'; /** * The character sets supported by the terminal. These enable several languages diff --git a/src/common/primitives/input/Keyboard.test.ts b/src/common/primitives/input/Keyboard.test.ts index 419b181fa7..02c2c4380e 100644 --- a/src/common/primitives/input/Keyboard.test.ts +++ b/src/common/primitives/input/Keyboard.test.ts @@ -1,7 +1,7 @@ import { assert } from 'chai'; import { evaluateKeyboardEvent } from './Keyboard'; -import { IKeyboardResult, IKeyboardEvent } from '../../Types'; +import { IKeyboardResult, IKeyboardEvent } from '../Types'; /** * A helper function for testing which allows passing in a partial event and defaults will be filled diff --git a/src/common/primitives/input/Keyboard.ts b/src/common/primitives/input/Keyboard.ts index e765b29958..2f8de1963c 100644 --- a/src/common/primitives/input/Keyboard.ts +++ b/src/common/primitives/input/Keyboard.ts @@ -4,7 +4,7 @@ * @license MIT */ -import { IKeyboardEvent, IKeyboardResult, KeyboardResultType } from '../../Types'; +import { IKeyboardEvent, IKeyboardResult, KeyboardResultType } from '../Types'; import { C0 } from '../data/EscapeSequences'; // reg + shift key mappings for digits and special chars diff --git a/src/common/primitives/input/KittyKeyboard.test.ts b/src/common/primitives/input/KittyKeyboard.test.ts index 5da5810e48..fe1bc30e20 100644 --- a/src/common/primitives/input/KittyKeyboard.test.ts +++ b/src/common/primitives/input/KittyKeyboard.test.ts @@ -1,7 +1,7 @@ import { assert } from 'chai'; import { KittyKeyboard, KittyKeyboardEventType, KittyKeyboardFlags } from './KittyKeyboard'; -import { IKeyboardEvent } from '../../Types'; +import { IKeyboardEvent } from '../Types'; function createEvent(partialEvent: Partial = {}): IKeyboardEvent { return { diff --git a/src/common/primitives/input/KittyKeyboard.ts b/src/common/primitives/input/KittyKeyboard.ts index d3202491a2..ec813e5b25 100644 --- a/src/common/primitives/input/KittyKeyboard.ts +++ b/src/common/primitives/input/KittyKeyboard.ts @@ -6,7 +6,7 @@ * @see https://sw.kovidgoyal.net/kitty/keyboard-protocol/ */ -import { IKeyboardEvent, IKeyboardResult, KeyboardResultType } from '../../Types'; +import { IKeyboardEvent, IKeyboardResult, KeyboardResultType } from '../Types'; import { C0 } from '../data/EscapeSequences'; /** diff --git a/src/common/primitives/input/Win32InputMode.test.ts b/src/common/primitives/input/Win32InputMode.test.ts index 03f152bd53..fdcc7459d3 100644 --- a/src/common/primitives/input/Win32InputMode.test.ts +++ b/src/common/primitives/input/Win32InputMode.test.ts @@ -5,7 +5,7 @@ import { assert } from 'chai'; import { Win32InputMode, Win32ControlKeyState } from './Win32InputMode'; -import { IKeyboardEvent, KeyboardResultType } from '../../Types'; +import { IKeyboardEvent, KeyboardResultType } from '../Types'; type EventOpts = Partial; const ev = (opts: EventOpts): IKeyboardEvent => ({ diff --git a/src/common/primitives/input/Win32InputMode.ts b/src/common/primitives/input/Win32InputMode.ts index a0830b16a8..9f73440d56 100644 --- a/src/common/primitives/input/Win32InputMode.ts +++ b/src/common/primitives/input/Win32InputMode.ts @@ -14,7 +14,7 @@ * Rc: Repeat count (usually 1) */ -import { IKeyboardEvent, IKeyboardResult, KeyboardResultType } from '../../Types'; +import { IKeyboardEvent, IKeyboardResult, KeyboardResultType } from '../Types'; import { C0 } from '../data/EscapeSequences'; /** diff --git a/src/common/primitives/parser/ApcParser.ts b/src/common/primitives/parser/ApcParser.ts index 9bc9aebf3d..f0d465efc4 100644 --- a/src/common/primitives/parser/ApcParser.ts +++ b/src/common/primitives/parser/ApcParser.ts @@ -6,7 +6,7 @@ import { IApcHandler, IHandlerCollection, ApcFallbackHandlerType, IApcParser, ISubParserStackState } from './Types'; import { ParserConstants } from './Constants'; import { utf32ToString } from '../input/TextDecoder'; -import { IDisposable } from '../../Types'; +import { IDisposable } from '../Types'; import { LimitedStringBuilder } from '../StringBuilder'; const EMPTY_HANDLERS: IApcHandler[] = []; diff --git a/src/common/primitives/parser/DcsParser.ts b/src/common/primitives/parser/DcsParser.ts index e48d4961e1..1b2d34835c 100644 --- a/src/common/primitives/parser/DcsParser.ts +++ b/src/common/primitives/parser/DcsParser.ts @@ -3,7 +3,7 @@ * @license MIT */ -import { IDisposable } from '../../Types'; +import { IDisposable } from '../Types'; import { IDcsHandler, IParams, IHandlerCollection, IDcsParser, DcsFallbackHandlerType, ISubParserStackState } from './Types'; import { utf32ToString } from '../input/TextDecoder'; import { Params } from './Params'; diff --git a/src/common/primitives/parser/EscapeSequenceParser.test.ts b/src/common/primitives/parser/EscapeSequenceParser.test.ts index 87e045f70a..5f12137df4 100644 --- a/src/common/primitives/parser/EscapeSequenceParser.test.ts +++ b/src/common/primitives/parser/EscapeSequenceParser.test.ts @@ -10,7 +10,7 @@ import { StringToUtf32, stringFromCodePoint, utf32ToString } from '../input/Text import { ParserState } from './Constants'; import { Params } from './Params'; import { OscHandler } from './OscParser'; -import { IDisposable } from '../../Types'; +import { IDisposable } from '../Types'; import { DcsHandler } from './DcsParser'; import { ApcHandler } from './ApcParser'; diff --git a/src/common/primitives/parser/EscapeSequenceParser.ts b/src/common/primitives/parser/EscapeSequenceParser.ts index 1ad91f3e13..009ed6ccbd 100644 --- a/src/common/primitives/parser/EscapeSequenceParser.ts +++ b/src/common/primitives/parser/EscapeSequenceParser.ts @@ -6,7 +6,7 @@ import { IParsingState, IDcsHandler, IEscapeSequenceParser, IParams, IOscHandler, IHandlerCollection, CsiHandlerType, OscFallbackHandlerType, IOscParser, EscHandlerType, IDcsParser, DcsFallbackHandlerType, IFunctionIdentifier, ExecuteFallbackHandlerType, CsiFallbackHandlerType, EscFallbackHandlerType, PrintHandlerType, PrintFallbackHandlerType, ExecuteHandlerType, IParserStackState, ParserStackType, ResumableHandlersType, IApcHandler, IApcParser, ApcFallbackHandlerType } from './Types'; import { ParserState, ParserAction } from './Constants'; import { Disposable, toDisposable } from '../Lifecycle'; -import { IDisposable } from '../../Types'; +import { IDisposable } from '../Types'; import { Params } from './Params'; import { OscParser } from './OscParser'; import { DcsParser } from './DcsParser'; diff --git a/src/common/primitives/parser/OscParser.ts b/src/common/primitives/parser/OscParser.ts index 8a1021717c..0d2a06534b 100644 --- a/src/common/primitives/parser/OscParser.ts +++ b/src/common/primitives/parser/OscParser.ts @@ -6,7 +6,7 @@ import { IOscHandler, IHandlerCollection, OscFallbackHandlerType, IOscParser, ISubParserStackState } from './Types'; import { OscState, ParserConstants } from './Constants'; import { utf32ToString } from '../input/TextDecoder'; -import { IDisposable } from '../../Types'; +import { IDisposable } from '../Types'; import { LimitedStringBuilder } from '../StringBuilder'; const EMPTY_HANDLERS: IOscHandler[] = []; diff --git a/src/common/primitives/parser/Types.ts b/src/common/primitives/parser/Types.ts index a6341624f5..f7c8ae2d4b 100644 --- a/src/common/primitives/parser/Types.ts +++ b/src/common/primitives/parser/Types.ts @@ -3,7 +3,7 @@ * @license MIT */ -import { IDisposable, IParams, ParamsArray } from '../../Types'; +import { IDisposable, IParams, ParamsArray } from '../Types'; import { ParserState } from './Constants'; export type { IParams, ParamsArray }; diff --git a/src/common/services/CharsetService.ts b/src/common/services/CharsetService.ts index ffc68514e5..d4d0a65461 100644 --- a/src/common/services/CharsetService.ts +++ b/src/common/services/CharsetService.ts @@ -4,7 +4,7 @@ */ import { ICharsetService } from './Services'; -import { ICharset } from '../Types'; +import { ICharset } from '../primitives/Types'; export class CharsetService implements ICharsetService { public serviceBrand: any; diff --git a/src/common/services/DecorationService.ts b/src/common/services/DecorationService.ts index 06fbb7ae40..45a6b09813 100644 --- a/src/common/services/DecorationService.ts +++ b/src/common/services/DecorationService.ts @@ -9,7 +9,7 @@ import { css } from '../primitives/Color'; import { Disposable, DisposableStore, MutableDisposable, toDisposable } from '../primitives/Lifecycle'; import { IBufferService, IDecorationService, IInternalDecoration, ILogService } from './Services'; import { SortedList } from '../primitives/SortedList'; -import { IColor } from '../Types'; +import { IColor } from '../primitives/Types'; import { IDecoration, IDecorationOptions, IMarker } from '@xterm/xterm'; import { Emitter } from '../primitives/Event'; diff --git a/src/common/services/MouseStateService.test.ts b/src/common/services/MouseStateService.test.ts index 7daf7d1e8a..0f195063a3 100644 --- a/src/common/services/MouseStateService.test.ts +++ b/src/common/services/MouseStateService.test.ts @@ -4,7 +4,7 @@ */ import { MouseStateService } from './MouseStateService'; import { assert } from 'chai'; -import { ICoreMouseEvent, CoreMouseEventType } from '../Types'; +import { ICoreMouseEvent, CoreMouseEventType } from '../primitives/Types'; function toBytes(s: string | undefined): number[] { if (!s) { diff --git a/src/common/services/MouseStateService.ts b/src/common/services/MouseStateService.ts index 70b58740e9..43ec6fd147 100644 --- a/src/common/services/MouseStateService.ts +++ b/src/common/services/MouseStateService.ts @@ -3,7 +3,7 @@ * @license MIT */ import { IMouseStateService } from './Services'; -import { ICoreMouseProtocol, ICoreMouseEvent, CoreMouseEncoding, CoreMouseEventType, CoreMouseButton, CoreMouseAction } from '../Types'; +import { ICoreMouseProtocol, ICoreMouseEvent, CoreMouseEncoding, CoreMouseEventType, CoreMouseButton, CoreMouseAction } from '../primitives/Types'; import { Disposable } from '../primitives/Lifecycle'; import { Emitter } from '../primitives/Event'; diff --git a/src/common/services/OptionsService.test.ts b/src/common/services/OptionsService.test.ts index 95e2058e9e..ba602b2712 100644 --- a/src/common/services/OptionsService.test.ts +++ b/src/common/services/OptionsService.test.ts @@ -5,7 +5,7 @@ import { assert } from 'chai'; import { OptionsService, DEFAULT_OPTIONS } from './OptionsService'; -import { IDisposable } from '../Types'; +import { IDisposable } from '../primitives/Types'; describe('OptionsService', () => { describe('constructor', () => { diff --git a/src/common/services/OptionsService.ts b/src/common/services/OptionsService.ts index a4995e9aaa..a9026b99a6 100644 --- a/src/common/services/OptionsService.ts +++ b/src/common/services/OptionsService.ts @@ -5,7 +5,7 @@ import { Disposable, toDisposable } from '../primitives/Lifecycle'; import { isMac } from '../primitives/Platform'; -import { CursorStyle, IDisposable } from '../Types'; +import { CursorStyle, IDisposable } from '../primitives/Types'; import { FontWeight, IOptionsService, ITerminalOptions } from './Services'; import { Emitter } from '../primitives/Event'; diff --git a/src/common/services/OscLinkService.ts b/src/common/services/OscLinkService.ts index e38ba26c0f..cee9588da7 100644 --- a/src/common/services/OscLinkService.ts +++ b/src/common/services/OscLinkService.ts @@ -3,7 +3,7 @@ * @license MIT */ import { IBufferService, IOscLinkService } from './Services'; -import { IOscLinkData } from '../Types'; +import { IOscLinkData } from '../primitives/Types'; import { IMarker } from '../primitives/buffer/Types'; export class OscLinkService implements IOscLinkService { diff --git a/src/common/services/Services.ts b/src/common/services/Services.ts index ed6e156107..9ef3a05b26 100644 --- a/src/common/services/Services.ts +++ b/src/common/services/Services.ts @@ -4,7 +4,8 @@ */ import type { IDecoration, IDecorationOptions, ILinkHandler, ILogger, IWindowsPty, IOverviewRulerOptions } from '@xterm/xterm'; -import { CoreMouseEncoding, CoreMouseEventType, CursorInactiveStyle, CursorStyle, ICharset, IColor, ICoreMouseEvent, ICoreMouseProtocol, IDecPrivateModes, IDisposable, IKittyKeyboardState, IModes, IOscLinkData, IWindowOptions } from '../Types'; +import { CoreMouseEncoding, CoreMouseEventType, CursorInactiveStyle, CursorStyle, ICharset, IColor, ICoreMouseEvent, ICoreMouseProtocol, IDisposable, IOscLinkData } from '../primitives/Types'; +import { IDecPrivateModes, IKittyKeyboardState, IModes, IWindowOptions } from '../Types'; import { IAttributeData, IBuffer, IBufferSet } from '../primitives/buffer/Types'; import { createDecorator, IServiceIdentifier } from './ServiceRegistry'; import type { Emitter, IEvent } from '../primitives/Event'; diff --git a/test/playwright/TestUtils.ts b/test/playwright/TestUtils.ts index 2b22130838..848d4d843b 100644 --- a/test/playwright/TestUtils.ts +++ b/test/playwright/TestUtils.ts @@ -7,7 +7,7 @@ import { Browser, JSHandle, Page } from '@playwright/test'; import { deepStrictEqual, strictEqual } from 'assert'; import type { IRenderDimensions as IRenderDimensionsInternal } from '../../src/browser/renderer/shared/Types'; import type { IRenderService } from '../../src/browser/services/Services'; -import type { IDisposable } from '../../src/common/Types'; +import type { IDisposable } from '../../src/common/primitives/Types'; import type { IMarker } from '../../src/common/primitives/buffer/Types'; import type { ICoreTerminal } from '../../src/common/CoreTerminal'; import * as playwright from '@playwright/test'; From cf68f0b514128eb8ab79b938f55e22578fd5e130 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Sat, 6 Jun 2026 18:39:14 +0000 Subject: [PATCH 5/6] Restore tsconfig files to match master (undo whitespace-only changes) Co-authored-by: Daniel Imms --- addons/addon-attach/test/tsconfig.json | 2 +- addons/addon-clipboard/test/tsconfig.json | 2 +- addons/addon-fit/test/tsconfig.json | 2 +- addons/addon-image/test/tsconfig.json | 2 +- addons/addon-progress/src/tsconfig.json | 2 +- addons/addon-progress/test/tsconfig.json | 2 +- addons/addon-search/src/tsconfig.json | 2 +- addons/addon-search/test/tsconfig.json | 2 +- addons/addon-serialize/src/tsconfig.json | 2 +- addons/addon-serialize/test/tsconfig.json | 2 +- addons/addon-unicode-graphemes/src/tsconfig.json | 2 +- addons/addon-unicode-graphemes/test/tsconfig.json | 2 +- addons/addon-unicode11/src/tsconfig.json | 2 +- addons/addon-unicode11/test/tsconfig.json | 2 +- addons/addon-web-fonts/test/tsconfig.json | 2 +- addons/addon-web-links/test/tsconfig.json | 2 +- addons/addon-webgl/src/tsconfig.json | 2 +- addons/addon-webgl/test/tsconfig.json | 2 +- test/benchmark/tsconfig.json | 6 ++---- 19 files changed, 20 insertions(+), 22 deletions(-) diff --git a/addons/addon-attach/test/tsconfig.json b/addons/addon-attach/test/tsconfig.json index ded3933bdf..900a727ed3 100644 --- a/addons/addon-attach/test/tsconfig.json +++ b/addons/addon-attach/test/tsconfig.json @@ -40,4 +40,4 @@ "path": "../../../test/playwright" } ] -} \ No newline at end of file +} diff --git a/addons/addon-clipboard/test/tsconfig.json b/addons/addon-clipboard/test/tsconfig.json index ded3933bdf..900a727ed3 100644 --- a/addons/addon-clipboard/test/tsconfig.json +++ b/addons/addon-clipboard/test/tsconfig.json @@ -40,4 +40,4 @@ "path": "../../../test/playwright" } ] -} \ No newline at end of file +} diff --git a/addons/addon-fit/test/tsconfig.json b/addons/addon-fit/test/tsconfig.json index ded3933bdf..900a727ed3 100644 --- a/addons/addon-fit/test/tsconfig.json +++ b/addons/addon-fit/test/tsconfig.json @@ -40,4 +40,4 @@ "path": "../../../test/playwright" } ] -} \ No newline at end of file +} diff --git a/addons/addon-image/test/tsconfig.json b/addons/addon-image/test/tsconfig.json index ded3933bdf..900a727ed3 100644 --- a/addons/addon-image/test/tsconfig.json +++ b/addons/addon-image/test/tsconfig.json @@ -40,4 +40,4 @@ "path": "../../../test/playwright" } ] -} \ No newline at end of file +} diff --git a/addons/addon-progress/src/tsconfig.json b/addons/addon-progress/src/tsconfig.json index 953888e27e..bd437f5b64 100644 --- a/addons/addon-progress/src/tsconfig.json +++ b/addons/addon-progress/src/tsconfig.json @@ -38,4 +38,4 @@ "path": "../../../src/common" } ] -} \ No newline at end of file +} diff --git a/addons/addon-progress/test/tsconfig.json b/addons/addon-progress/test/tsconfig.json index ded3933bdf..900a727ed3 100644 --- a/addons/addon-progress/test/tsconfig.json +++ b/addons/addon-progress/test/tsconfig.json @@ -40,4 +40,4 @@ "path": "../../../test/playwright" } ] -} \ No newline at end of file +} diff --git a/addons/addon-search/src/tsconfig.json b/addons/addon-search/src/tsconfig.json index e23ef0d3e6..9817710faf 100644 --- a/addons/addon-search/src/tsconfig.json +++ b/addons/addon-search/src/tsconfig.json @@ -38,4 +38,4 @@ "path": "../../../src/browser" } ] -} \ No newline at end of file +} diff --git a/addons/addon-search/test/tsconfig.json b/addons/addon-search/test/tsconfig.json index ded3933bdf..900a727ed3 100644 --- a/addons/addon-search/test/tsconfig.json +++ b/addons/addon-search/test/tsconfig.json @@ -40,4 +40,4 @@ "path": "../../../test/playwright" } ] -} \ No newline at end of file +} diff --git a/addons/addon-serialize/src/tsconfig.json b/addons/addon-serialize/src/tsconfig.json index 7cbb5c2350..725647366d 100644 --- a/addons/addon-serialize/src/tsconfig.json +++ b/addons/addon-serialize/src/tsconfig.json @@ -39,4 +39,4 @@ "path": "../../../src/browser" } ] -} \ No newline at end of file +} diff --git a/addons/addon-serialize/test/tsconfig.json b/addons/addon-serialize/test/tsconfig.json index d381887de9..769909b199 100644 --- a/addons/addon-serialize/test/tsconfig.json +++ b/addons/addon-serialize/test/tsconfig.json @@ -37,4 +37,4 @@ "path": "../../../test/playwright" } ] -} \ No newline at end of file +} diff --git a/addons/addon-unicode-graphemes/src/tsconfig.json b/addons/addon-unicode-graphemes/src/tsconfig.json index 6f654e4e1f..824909dbd2 100644 --- a/addons/addon-unicode-graphemes/src/tsconfig.json +++ b/addons/addon-unicode-graphemes/src/tsconfig.json @@ -32,4 +32,4 @@ "path": "../../../src/common" } ] -} \ No newline at end of file +} diff --git a/addons/addon-unicode-graphemes/test/tsconfig.json b/addons/addon-unicode-graphemes/test/tsconfig.json index d381887de9..769909b199 100644 --- a/addons/addon-unicode-graphemes/test/tsconfig.json +++ b/addons/addon-unicode-graphemes/test/tsconfig.json @@ -37,4 +37,4 @@ "path": "../../../test/playwright" } ] -} \ No newline at end of file +} diff --git a/addons/addon-unicode11/src/tsconfig.json b/addons/addon-unicode11/src/tsconfig.json index f95158058c..31286fb0fc 100644 --- a/addons/addon-unicode11/src/tsconfig.json +++ b/addons/addon-unicode11/src/tsconfig.json @@ -35,4 +35,4 @@ "path": "../../../src/common" } ] -} \ No newline at end of file +} diff --git a/addons/addon-unicode11/test/tsconfig.json b/addons/addon-unicode11/test/tsconfig.json index ded3933bdf..900a727ed3 100644 --- a/addons/addon-unicode11/test/tsconfig.json +++ b/addons/addon-unicode11/test/tsconfig.json @@ -40,4 +40,4 @@ "path": "../../../test/playwright" } ] -} \ No newline at end of file +} diff --git a/addons/addon-web-fonts/test/tsconfig.json b/addons/addon-web-fonts/test/tsconfig.json index 36380f47f9..59664e32b2 100644 --- a/addons/addon-web-fonts/test/tsconfig.json +++ b/addons/addon-web-fonts/test/tsconfig.json @@ -40,4 +40,4 @@ "path": "../../../test/playwright" } ] -} \ No newline at end of file +} diff --git a/addons/addon-web-links/test/tsconfig.json b/addons/addon-web-links/test/tsconfig.json index 36380f47f9..59664e32b2 100644 --- a/addons/addon-web-links/test/tsconfig.json +++ b/addons/addon-web-links/test/tsconfig.json @@ -40,4 +40,4 @@ "path": "../../../test/playwright" } ] -} \ No newline at end of file +} diff --git a/addons/addon-webgl/src/tsconfig.json b/addons/addon-webgl/src/tsconfig.json index 61aa336abc..7035daa865 100644 --- a/addons/addon-webgl/src/tsconfig.json +++ b/addons/addon-webgl/src/tsconfig.json @@ -42,4 +42,4 @@ "path": "../../../src/browser" } ] -} \ No newline at end of file +} diff --git a/addons/addon-webgl/test/tsconfig.json b/addons/addon-webgl/test/tsconfig.json index 53f85af627..73439ddc1b 100644 --- a/addons/addon-webgl/test/tsconfig.json +++ b/addons/addon-webgl/test/tsconfig.json @@ -41,4 +41,4 @@ "path": "../../../test/playwright" } ] -} \ No newline at end of file +} diff --git a/test/benchmark/tsconfig.json b/test/benchmark/tsconfig.json index a45db910e5..c8e17ee617 100644 --- a/test/benchmark/tsconfig.json +++ b/test/benchmark/tsconfig.json @@ -13,9 +13,7 @@ "target": "es2021", "module": "nodenext", "paths": { - "common/*": [ - "../../src/common/*" - ], + "common/*": ["../../src/common/*"], "browser/*": ["../../src/browser/*"] } }, @@ -30,4 +28,4 @@ { "path": "../../src/common" }, { "path": "../../src/browser" }, ] -} \ No newline at end of file +} From 511ce3f5d31110a0a2759c0e5a5ac33c4e36fcd3 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Sat, 6 Jun 2026 18:43:00 +0000 Subject: [PATCH 6/6] Remove unused type imports from common/Types.ts Co-authored-by: Daniel Imms --- src/common/Types.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/common/Types.ts b/src/common/Types.ts index 96320aff0f..b3f8d17770 100644 --- a/src/common/Types.ts +++ b/src/common/Types.ts @@ -5,7 +5,7 @@ import { IFunctionIdentifier, ITerminalOptions as IPublicTerminalOptions } from '@xterm/xterm'; import type { IEvent } from './primitives/Event'; -import type { CursorStyle, IColorEvent, ColorIndex, ColorRequestType, IDisposable, IParams, SpecialColorIndex } from './primitives/Types'; +import type { CursorStyle, IDisposable, IParams } from './primitives/Types'; // TODO: The options that are not in the public API should be reviewed export interface ITerminalOptions extends IPublicTerminalOptions {