@termaxjs/web-addons 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/LICENSE +201 -0
  2. package/dist/AsciinemaAddon.d.ts +28 -0
  3. package/dist/AsciinemaAddon.d.ts.map +1 -0
  4. package/dist/AsciinemaAddon.js +77 -0
  5. package/dist/AsciinemaAddon.js.map +1 -0
  6. package/dist/CopyModeAddon.d.ts +21 -0
  7. package/dist/CopyModeAddon.d.ts.map +1 -0
  8. package/dist/CopyModeAddon.js +164 -0
  9. package/dist/CopyModeAddon.js.map +1 -0
  10. package/dist/GhostTextManager.d.ts +41 -0
  11. package/dist/GhostTextManager.d.ts.map +1 -0
  12. package/dist/GhostTextManager.js +181 -0
  13. package/dist/GhostTextManager.js.map +1 -0
  14. package/dist/ImagePreviewAddon.d.ts +14 -0
  15. package/dist/ImagePreviewAddon.d.ts.map +1 -0
  16. package/dist/ImagePreviewAddon.js +54 -0
  17. package/dist/ImagePreviewAddon.js.map +1 -0
  18. package/dist/Osc133Addon.d.ts +30 -0
  19. package/dist/Osc133Addon.d.ts.map +1 -0
  20. package/dist/Osc133Addon.js +96 -0
  21. package/dist/Osc133Addon.js.map +1 -0
  22. package/dist/PathLinkProvider.d.ts +13 -0
  23. package/dist/PathLinkProvider.d.ts.map +1 -0
  24. package/dist/PathLinkProvider.js +103 -0
  25. package/dist/PathLinkProvider.js.map +1 -0
  26. package/dist/PromptMarkerAddon.d.ts +17 -0
  27. package/dist/PromptMarkerAddon.d.ts.map +1 -0
  28. package/dist/PromptMarkerAddon.js +58 -0
  29. package/dist/PromptMarkerAddon.js.map +1 -0
  30. package/dist/SessionReplayAddon.d.ts +18 -0
  31. package/dist/SessionReplayAddon.d.ts.map +1 -0
  32. package/dist/SessionReplayAddon.js +73 -0
  33. package/dist/SessionReplayAddon.js.map +1 -0
  34. package/dist/index.d.ts +10 -0
  35. package/dist/index.d.ts.map +1 -0
  36. package/dist/index.js +10 -0
  37. package/dist/index.js.map +1 -0
  38. package/dist/xtermCompat.d.ts +126 -0
  39. package/dist/xtermCompat.d.ts.map +1 -0
  40. package/dist/xtermCompat.js +331 -0
  41. package/dist/xtermCompat.js.map +1 -0
  42. package/package.json +37 -0
@@ -0,0 +1,73 @@
1
+ export class SessionReplayAddon {
2
+ terminal;
3
+ header;
4
+ events = [];
5
+ isPlaying = false;
6
+ currentIndex = 0;
7
+ playbackSpeed = 1.0;
8
+ timerId = null;
9
+ activate(terminal) {
10
+ this.terminal = terminal;
11
+ }
12
+ loadCast(castJsonLines) {
13
+ const lines = castJsonLines.trim().split("\n");
14
+ if (lines.length === 0)
15
+ return false;
16
+ try {
17
+ this.header = JSON.parse(lines[0]);
18
+ this.events = [];
19
+ for (let i = 1; i < lines.length; i++) {
20
+ if (lines[i].trim()) {
21
+ this.events.push(JSON.parse(lines[i]));
22
+ }
23
+ }
24
+ this.currentIndex = 0;
25
+ return true;
26
+ }
27
+ catch {
28
+ return false;
29
+ }
30
+ }
31
+ play() {
32
+ if (this.isPlaying || !this.terminal || this.events.length === 0)
33
+ return;
34
+ this.isPlaying = true;
35
+ this.step();
36
+ }
37
+ pause() {
38
+ this.isPlaying = false;
39
+ if (this.timerId) {
40
+ clearTimeout(this.timerId);
41
+ this.timerId = null;
42
+ }
43
+ }
44
+ setSpeed(speed) {
45
+ this.playbackSpeed = Math.max(0.25, Math.min(10, speed));
46
+ }
47
+ step() {
48
+ if (!this.isPlaying || this.currentIndex >= this.events.length) {
49
+ this.isPlaying = false;
50
+ return;
51
+ }
52
+ const currentEvent = this.events[this.currentIndex];
53
+ if (currentEvent[1] === "o") {
54
+ this.terminal.write(currentEvent[2]);
55
+ }
56
+ this.currentIndex++;
57
+ if (this.currentIndex < this.events.length) {
58
+ const nextEvent = this.events[this.currentIndex];
59
+ const deltaSec = Math.max(0, nextEvent[0] - currentEvent[0]);
60
+ const delayMs = (deltaSec * 1000) / this.playbackSpeed;
61
+ this.timerId = setTimeout(() => this.step(), delayMs);
62
+ }
63
+ else {
64
+ this.isPlaying = false;
65
+ }
66
+ }
67
+ dispose() {
68
+ this.pause();
69
+ this.terminal = undefined;
70
+ this.events = [];
71
+ }
72
+ }
73
+ //# sourceMappingURL=SessionReplayAddon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionReplayAddon.js","sourceRoot":"","sources":["../src/SessionReplayAddon.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export * from "./Osc133Addon.js";
2
+ export * from "./AsciinemaAddon.js";
3
+ export * from "./GhostTextManager.js";
4
+ export * from "./CopyModeAddon.js";
5
+ export * from "./PathLinkProvider.js";
6
+ export * from "./xtermCompat.js";
7
+ export * from './ImagePreviewAddon.js';
8
+ export * from './PromptMarkerAddon.js';
9
+ export * from './SessionReplayAddon.js';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,10 @@
1
+ export * from "./Osc133Addon.js";
2
+ export * from "./AsciinemaAddon.js";
3
+ export * from "./GhostTextManager.js";
4
+ export * from "./CopyModeAddon.js";
5
+ export * from "./PathLinkProvider.js";
6
+ export * from "./xtermCompat.js";
7
+ export * from './ImagePreviewAddon.js';
8
+ export * from './PromptMarkerAddon.js';
9
+ export * from './SessionReplayAddon.js';
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,126 @@
1
+ import type { IBuffer, IBufferRange, IDisposable, ILinkProvider, SearchMatch, TerminalImage } from '@termaxjs/web-core';
2
+ /**
3
+ * Minimal structural surface addons need from a Terminal. The real
4
+ * `Terminal` (@termaxjs/web-ui) satisfies this; addons stay decoupled
5
+ * from the renderer implementation.
6
+ */
7
+ export interface IAddonTerminal {
8
+ readonly element?: HTMLElement;
9
+ readonly rows: number;
10
+ readonly buffer: IBuffer;
11
+ readonly renderer: {
12
+ readonly charWidth: number;
13
+ readonly charHeight: number;
14
+ setSearchMatches(matches: SearchMatch[]): void;
15
+ setImages(images: TerminalImage[]): void;
16
+ };
17
+ resize(cols: number, rows: number): void;
18
+ scrollToLine(line: number): void;
19
+ registerLinkProvider(provider: ILinkProvider): IDisposable;
20
+ }
21
+ export interface ITerminalAddon extends IDisposable {
22
+ activate(terminal: IAddonTerminal): void;
23
+ }
24
+ export declare class FitAddon implements ITerminalAddon {
25
+ private terminal?;
26
+ private resizeObserver?;
27
+ activate(terminal: IAddonTerminal): void;
28
+ fit(): void;
29
+ proposeDimensions(): {
30
+ cols: number;
31
+ rows: number;
32
+ } | undefined;
33
+ dispose(): void;
34
+ }
35
+ export interface ISearchOptions {
36
+ regex?: boolean;
37
+ wholeWord?: boolean;
38
+ caseSensitive?: boolean;
39
+ incremental?: boolean;
40
+ decorations?: {
41
+ matchBackground?: string;
42
+ matchBorder?: string;
43
+ matchOverviewRuler?: string;
44
+ activeMatchBackground?: string;
45
+ activeMatchBorder?: string;
46
+ activeMatchColorOverviewRuler?: string;
47
+ };
48
+ }
49
+ export interface ISearchResult {
50
+ resultIndex: number;
51
+ resultCount: number;
52
+ }
53
+ export declare class SearchAddon implements ITerminalAddon {
54
+ private terminal?;
55
+ private onResultsListeners;
56
+ private matches;
57
+ private currentIndex;
58
+ activate(terminal: IAddonTerminal): void;
59
+ findNext(term: string, options?: ISearchOptions): boolean;
60
+ findPrevious(term: string, options?: ISearchOptions): boolean;
61
+ private scanMatches;
62
+ private scrollToActiveMatch;
63
+ private updateRendererMatches;
64
+ private emitResults;
65
+ onDidChangeResults(callback: (result: ISearchResult) => void): IDisposable;
66
+ clearDecorations(): void;
67
+ dispose(): void;
68
+ }
69
+ export interface IWebLinksOptions {
70
+ hover?: (event: MouseEvent, text: string) => void;
71
+ leave?: (event: MouseEvent, text: string) => void;
72
+ tooltipCallback?: (event: MouseEvent, uri: string, location: IBufferRange) => boolean | undefined;
73
+ willLinkActivate?: (event: MouseEvent, uri: string) => boolean;
74
+ }
75
+ export declare class WebLinksAddon implements ITerminalAddon {
76
+ private terminal?;
77
+ private handler?;
78
+ private options?;
79
+ private linkProviderDisposable?;
80
+ constructor(handler?: (event: MouseEvent, uri: string) => void, options?: IWebLinksOptions);
81
+ activate(terminal: IAddonTerminal): void;
82
+ dispose(): void;
83
+ }
84
+ export interface ISerializeOptions {
85
+ scrollback?: number;
86
+ excludeAltBuffer?: boolean;
87
+ }
88
+ export interface ISerializeAsHTMLOptions extends ISerializeOptions {
89
+ includeGlobalBackground?: boolean;
90
+ includeAlternateBuffer?: boolean;
91
+ onlySelection?: boolean;
92
+ }
93
+ export declare class SerializeAddon implements ITerminalAddon {
94
+ private terminal?;
95
+ activate(terminal: IAddonTerminal): void;
96
+ serialize(options?: ISerializeOptions): string;
97
+ serializeAsHTML(options?: ISerializeAsHTMLOptions): string;
98
+ dispose(): void;
99
+ }
100
+ export declare class WebglAddon implements ITerminalAddon {
101
+ private terminal?;
102
+ private onContextLossListeners;
103
+ activate(terminal: IAddonTerminal): void;
104
+ onContextLoss(callback: () => void): IDisposable;
105
+ clear(): void;
106
+ dispose(): void;
107
+ }
108
+ export declare class LigaturesAddon implements ITerminalAddon {
109
+ private terminal?;
110
+ activate(terminal: IAddonTerminal): void;
111
+ dispose(): void;
112
+ }
113
+ export declare class ImageAddon implements ITerminalAddon {
114
+ private terminal?;
115
+ private images;
116
+ activate(terminal: IAddonTerminal): void;
117
+ addImage(image: TerminalImage): void;
118
+ clear(): void;
119
+ dispose(): void;
120
+ }
121
+ export declare class Unicode11Addon implements ITerminalAddon {
122
+ private terminal?;
123
+ activate(terminal: IAddonTerminal): void;
124
+ dispose(): void;
125
+ }
126
+ //# sourceMappingURL=xtermCompat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xtermCompat.d.ts","sourceRoot":"","sources":["../src/xtermCompat.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,331 @@
1
+ export class FitAddon {
2
+ terminal;
3
+ resizeObserver;
4
+ activate(terminal) {
5
+ this.terminal = terminal;
6
+ if (terminal.element && typeof ResizeObserver !== 'undefined') {
7
+ this.resizeObserver = new ResizeObserver(() => {
8
+ // biome-ignore lint/suspicious/noFocusedTests: `fit` is FitAddon's public API (propose/fit dimensions), not a focused test.
9
+ this.fit();
10
+ });
11
+ this.resizeObserver.observe(terminal.element);
12
+ }
13
+ }
14
+ fit() {
15
+ if (!this.terminal || !this.terminal.element)
16
+ return;
17
+ const container = this.terminal.element;
18
+ const width = container.clientWidth;
19
+ const height = container.clientHeight;
20
+ if (width <= 0 || height <= 0)
21
+ return;
22
+ const charWidth = this.terminal.renderer.charWidth || 9;
23
+ const charHeight = this.terminal.renderer.charHeight || 18;
24
+ const cols = Math.max(2, Math.floor(width / charWidth));
25
+ const rows = Math.max(1, Math.floor(height / charHeight));
26
+ this.terminal.resize(cols, rows);
27
+ }
28
+ proposeDimensions() {
29
+ if (!this.terminal || !this.terminal.element)
30
+ return undefined;
31
+ const container = this.terminal.element;
32
+ const charWidth = this.terminal.renderer.charWidth || 9;
33
+ const charHeight = this.terminal.renderer.charHeight || 18;
34
+ const cols = Math.max(2, Math.floor(container.clientWidth / charWidth));
35
+ const rows = Math.max(1, Math.floor(container.clientHeight / charHeight));
36
+ return { cols, rows };
37
+ }
38
+ dispose() {
39
+ this.resizeObserver?.disconnect();
40
+ this.resizeObserver = undefined;
41
+ this.terminal = undefined;
42
+ }
43
+ }
44
+ export class SearchAddon {
45
+ terminal;
46
+ onResultsListeners = [];
47
+ matches = [];
48
+ currentIndex = -1;
49
+ activate(terminal) {
50
+ this.terminal = terminal;
51
+ }
52
+ findNext(term, options) {
53
+ if (!this.terminal || !term) {
54
+ this.clearDecorations();
55
+ return false;
56
+ }
57
+ this.scanMatches(term, options);
58
+ if (this.matches.length === 0) {
59
+ this.currentIndex = -1;
60
+ this.emitResults(-1, 0);
61
+ this.updateRendererMatches();
62
+ return false;
63
+ }
64
+ this.currentIndex = (this.currentIndex + 1) % this.matches.length;
65
+ this.emitResults(this.currentIndex, this.matches.length);
66
+ this.updateRendererMatches();
67
+ this.scrollToActiveMatch();
68
+ return true;
69
+ }
70
+ findPrevious(term, options) {
71
+ if (!this.terminal || !term) {
72
+ this.clearDecorations();
73
+ return false;
74
+ }
75
+ this.scanMatches(term, options);
76
+ if (this.matches.length === 0) {
77
+ this.currentIndex = -1;
78
+ this.emitResults(-1, 0);
79
+ this.updateRendererMatches();
80
+ return false;
81
+ }
82
+ this.currentIndex = (this.currentIndex - 1 + this.matches.length) % this.matches.length;
83
+ this.emitResults(this.currentIndex, this.matches.length);
84
+ this.updateRendererMatches();
85
+ this.scrollToActiveMatch();
86
+ return true;
87
+ }
88
+ scanMatches(term, options) {
89
+ if (!this.terminal)
90
+ return;
91
+ this.matches = [];
92
+ const flags = options?.caseSensitive ? 'g' : 'gi';
93
+ let regex;
94
+ try {
95
+ if (options?.regex) {
96
+ regex = new RegExp(options.wholeWord ? `\\b(?:${term})\\b` : term, flags);
97
+ }
98
+ else {
99
+ const escaped = term.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
100
+ regex = new RegExp(options?.wholeWord ? `\\b${escaped}\\b` : escaped, flags);
101
+ }
102
+ }
103
+ catch {
104
+ return;
105
+ }
106
+ const buf = this.terminal.buffer.active;
107
+ const totalLines = buf.length;
108
+ for (let r = 0; r < totalLines; r++) {
109
+ const line = buf.getLine(r);
110
+ if (!line)
111
+ continue;
112
+ const str = line.translateToString(false);
113
+ for (;;) {
114
+ const match = regex.exec(str);
115
+ if (match === null)
116
+ break;
117
+ this.matches.push({
118
+ col: match.index,
119
+ row: r - buf.baseY,
120
+ length: match[0].length,
121
+ globalRow: r,
122
+ });
123
+ if (match.index === regex.lastIndex)
124
+ regex.lastIndex++;
125
+ }
126
+ }
127
+ }
128
+ scrollToActiveMatch() {
129
+ if (!this.terminal || this.currentIndex === -1 || !this.matches[this.currentIndex])
130
+ return;
131
+ const match = this.matches[this.currentIndex];
132
+ const targetLine = Math.max(0, match.globalRow - Math.floor(this.terminal.rows / 2));
133
+ this.terminal.scrollToLine(targetLine);
134
+ }
135
+ updateRendererMatches() {
136
+ if (!this.terminal)
137
+ return;
138
+ const renderer = this.terminal.renderer;
139
+ const searchMatches = this.matches.map((m, idx) => ({
140
+ startCol: m.col,
141
+ endCol: m.col + m.length - 1,
142
+ row: m.row,
143
+ active: idx === this.currentIndex,
144
+ }));
145
+ renderer.setSearchMatches?.(searchMatches);
146
+ }
147
+ emitResults(resultIndex, resultCount) {
148
+ for (const listener of this.onResultsListeners) {
149
+ listener({ resultIndex, resultCount });
150
+ }
151
+ }
152
+ onDidChangeResults(callback) {
153
+ this.onResultsListeners.push(callback);
154
+ return {
155
+ dispose: () => {
156
+ this.onResultsListeners = this.onResultsListeners.filter((l) => l !== callback);
157
+ },
158
+ };
159
+ }
160
+ clearDecorations() {
161
+ this.matches = [];
162
+ this.currentIndex = -1;
163
+ this.emitResults(-1, 0);
164
+ if (this.terminal) {
165
+ this.terminal.renderer.setSearchMatches([]);
166
+ }
167
+ }
168
+ dispose() {
169
+ this.clearDecorations();
170
+ this.terminal = undefined;
171
+ this.onResultsListeners = [];
172
+ }
173
+ }
174
+ const URL_REGEX = /https?:\/\/[^\s"'<>)\]]+/g;
175
+ export class WebLinksAddon {
176
+ terminal;
177
+ handler;
178
+ options;
179
+ linkProviderDisposable;
180
+ constructor(handler, options) {
181
+ this.handler = handler;
182
+ this.options = options;
183
+ }
184
+ activate(terminal) {
185
+ this.terminal = terminal;
186
+ this.linkProviderDisposable = terminal.registerLinkProvider({
187
+ provideLinks: (y, callback) => {
188
+ const line = terminal.buffer.active.getLine(y - 1);
189
+ if (!line) {
190
+ callback(undefined);
191
+ return;
192
+ }
193
+ const text = line.translateToString(true);
194
+ if (!text) {
195
+ callback(undefined);
196
+ return;
197
+ }
198
+ URL_REGEX.lastIndex = 0;
199
+ const links = [];
200
+ for (;;) {
201
+ const match = URL_REGEX.exec(text);
202
+ if (match === null)
203
+ break;
204
+ const matchText = match[0];
205
+ const startX = match.index + 1;
206
+ const endX = match.index + matchText.length;
207
+ links.push({
208
+ text: matchText,
209
+ range: {
210
+ start: { x: startX, y },
211
+ end: { x: endX, y },
212
+ },
213
+ activate: (e, uri) => {
214
+ if (this.options?.willLinkActivate && !this.options.willLinkActivate(e, uri))
215
+ return;
216
+ this.handler?.(e, uri);
217
+ },
218
+ hover: (e, uri) => {
219
+ this.options?.hover?.(e, uri);
220
+ },
221
+ leave: (e, uri) => {
222
+ this.options?.leave?.(e, uri);
223
+ },
224
+ });
225
+ }
226
+ callback(links.length > 0 ? links : undefined);
227
+ },
228
+ });
229
+ }
230
+ dispose() {
231
+ this.linkProviderDisposable?.dispose();
232
+ this.linkProviderDisposable = undefined;
233
+ this.terminal = undefined;
234
+ this.handler = undefined;
235
+ this.options = undefined;
236
+ }
237
+ }
238
+ export class SerializeAddon {
239
+ terminal;
240
+ activate(terminal) {
241
+ this.terminal = terminal;
242
+ }
243
+ serialize(options) {
244
+ if (!this.terminal)
245
+ return '';
246
+ const buf = this.terminal.buffer.active;
247
+ const lines = [];
248
+ const max = options?.scrollback ? Math.min(options.scrollback, buf.length) : buf.length;
249
+ for (let r = 0; r < max; r++) {
250
+ const line = buf.getLine(r);
251
+ if (line)
252
+ lines.push(line.translateToString(true));
253
+ }
254
+ return lines.join('\n');
255
+ }
256
+ serializeAsHTML(options) {
257
+ if (!this.terminal)
258
+ return '';
259
+ const text = this.serialize(options);
260
+ const escaped = text
261
+ .replace(/&/g, '&amp;')
262
+ .replace(/</g, '&lt;')
263
+ .replace(/>/g, '&gt;');
264
+ return `<div style="font-family: monospace; white-space: pre; background: #0e0e0f; color: #e2e2e3; padding: 12px;">${escaped}</div>`;
265
+ }
266
+ dispose() {
267
+ this.terminal = undefined;
268
+ }
269
+ }
270
+ export class WebglAddon {
271
+ terminal;
272
+ onContextLossListeners = [];
273
+ activate(terminal) {
274
+ this.terminal = terminal;
275
+ }
276
+ onContextLoss(callback) {
277
+ this.onContextLossListeners.push(callback);
278
+ return {
279
+ dispose: () => {
280
+ this.onContextLossListeners = this.onContextLossListeners.filter((l) => l !== callback);
281
+ },
282
+ };
283
+ }
284
+ clear() { }
285
+ dispose() {
286
+ this.terminal = undefined;
287
+ this.onContextLossListeners = [];
288
+ }
289
+ }
290
+ export class LigaturesAddon {
291
+ terminal;
292
+ activate(terminal) {
293
+ this.terminal = terminal;
294
+ }
295
+ dispose() {
296
+ this.terminal = undefined;
297
+ }
298
+ }
299
+ export class ImageAddon {
300
+ terminal;
301
+ images = [];
302
+ activate(terminal) {
303
+ this.terminal = terminal;
304
+ }
305
+ addImage(image) {
306
+ this.images.push(image);
307
+ if (this.terminal) {
308
+ this.terminal.renderer.setImages(this.images);
309
+ }
310
+ }
311
+ clear() {
312
+ this.images = [];
313
+ if (this.terminal) {
314
+ this.terminal.renderer.setImages([]);
315
+ }
316
+ }
317
+ dispose() {
318
+ this.clear();
319
+ this.terminal = undefined;
320
+ }
321
+ }
322
+ export class Unicode11Addon {
323
+ terminal;
324
+ activate(terminal) {
325
+ this.terminal = terminal;
326
+ }
327
+ dispose() {
328
+ this.terminal = undefined;
329
+ }
330
+ }
331
+ //# sourceMappingURL=xtermCompat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xtermCompat.js","sourceRoot":"","sources":["../src/xtermCompat.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,37 @@
1
+ {
2
+ "name": "@termaxjs/web-addons",
3
+ "version": "0.1.1",
4
+ "description": "Pluggable extensions (Fit, OSC 133, Asciinema, GhostText, CopyMode) for Termax",
5
+ "main": "./dist/index.js",
6
+ "module": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js",
12
+ "default": "./dist/index.js"
13
+ }
14
+ },
15
+ "dependencies": {
16
+ "@termaxjs/web-core": "0.1.1"
17
+ },
18
+ "type": "module",
19
+ "devDependencies": {
20
+ "typescript": "^5.7.2",
21
+ "vitest": "^3.0.5"
22
+ },
23
+ "license": "Apache-2.0",
24
+ "files": [
25
+ "dist",
26
+ "LICENSE",
27
+ "README.md"
28
+ ],
29
+ "publishConfig": {
30
+ "access": "public"
31
+ },
32
+ "scripts": {
33
+ "build": "tsc",
34
+ "check-types": "tsc --noEmit",
35
+ "test": "vitest run --passWithNoTests"
36
+ }
37
+ }