@xxmachina/components 19.33.1 → 19.35.0

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.
@@ -1,5 +1,5 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { AfterViewInit, OnDestroy, ElementRef } from '@angular/core';
2
+ import { InjectionToken, AfterViewInit, OnDestroy, ElementRef } from '@angular/core';
3
3
  import { Terminal, ILinkProvider, ILink, ITerminalAddon } from '@xterm/xterm';
4
4
  import * as _ng_atomic_core from '@ng-atomic/core';
5
5
  import { InjectableComponent, NgAtomicComponent } from '@ng-atomic/core';
@@ -12,6 +12,8 @@ declare enum XtermActionId {
12
12
  FILE_LINK_CLICK = "xterm:file-link-click",
13
13
  FOCUS_INPUT_REQUEST = "xterm:focus-input-request"
14
14
  }
15
+ /** DI token for providing serverUUID getter to ProxyLinksAddon */
16
+ declare const XTERM_SERVER_UUID: InjectionToken<() => string | undefined>;
15
17
  declare class XtermOrganismStore extends InjectableComponent {
16
18
  static readonly DI: {
17
19
  provide: (typeOrComponent: Parameters<(typeOrFactory: _ng_atomic_core.TypeOrTypeFactory<any>) => {
@@ -34,7 +36,7 @@ declare class XtermOrganismStore extends InjectableComponent {
34
36
  useInteractiveTheme: boolean;
35
37
  }>;
36
38
  provideInitializer: <SI extends (store: XtermOrganismStore) => Promise<void> | void>(initializer: SI) => {
37
- provide: _angular_core.InjectionToken<(store: any) => Promise<void> | void>;
39
+ provide: InjectionToken<(store: any) => Promise<void> | void>;
38
40
  useValue: {
39
41
  key: new () => XtermOrganismStore;
40
42
  initializer: (store: XtermOrganismStore) => Promise<void> | void;
@@ -48,7 +50,7 @@ declare class XtermOrganismStore extends InjectableComponent {
48
50
  };
49
51
  Initializer: {
50
52
  provide<SI extends (store: XtermOrganismStore) => Promise<void> | void>(initializer: SI): {
51
- provide: _angular_core.InjectionToken<(store: any) => Promise<void> | void>;
53
+ provide: InjectionToken<(store: any) => Promise<void> | void>;
52
54
  useValue: {
53
55
  key: new () => XtermOrganismStore;
54
56
  initializer: (store: XtermOrganismStore) => Promise<void> | void;
@@ -82,10 +84,10 @@ declare class XtermOrganismStore extends InjectableComponent {
82
84
  readonly data: _angular_core.InputSignal<string>;
83
85
  readonly interactive: _angular_core.InputSignal<boolean>;
84
86
  readonly queryResult: _angular_core.InputSignal<string>;
85
- /** Use interactive theme even when not interactive (for display consistency) */
86
87
  readonly useInteractiveTheme: _angular_core.InputSignal<boolean>;
87
- /** Total bytes written to the buffer (for accurate diff detection when buffer overflows) */
88
88
  readonly totalWritten: _angular_core.InputSignal<number>;
89
+ /** Injected serverUUID getter for proxy links (optional) */
90
+ readonly getServerUUID: () => string | undefined;
89
91
  constructor();
90
92
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<XtermOrganismStore, never>;
91
93
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<XtermOrganismStore, "organisms-xterm", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; "interactive": { "alias": "interactive"; "required": false; "isSignal": true; }; "queryResult": { "alias": "queryResult"; "required": false; "isSignal": true; }; "useInteractiveTheme": { "alias": "useInteractiveTheme"; "required": false; "isSignal": true; }; "totalWritten": { "alias": "totalWritten"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
@@ -110,6 +112,12 @@ declare class XtermOrganism extends NgAtomicComponent implements AfterViewInit,
110
112
  private readonly terminalInitialized;
111
113
  /** Tracks if initialization was skipped due to container being too small */
112
114
  private initSkippedDueToSize;
115
+ /** IDisposable refs for explicit cleanup (prevents memory leaks on mobile) */
116
+ private readonly disposables;
117
+ /** Timer refs for cleanup in ngOnDestroy */
118
+ private stableTimer;
119
+ private resizeTimer;
120
+ private fallbackTimer;
113
121
  constructor();
114
122
  private writeDataToTerminal;
115
123
  /**
@@ -179,6 +187,7 @@ declare class GitHubLinksAddon implements ITerminalAddon {
179
187
  /**
180
188
  * Drop-in replacement for @xterm/addon-web-links that supports
181
189
  * URLs spanning wrapped terminal lines.
190
+ * localhost/127.0.0.1 URLs are skipped (handled by ProxyLinksAddon).
182
191
  */
183
192
  declare class WebLinksAddon implements ITerminalAddon {
184
193
  private readonly _handler?;
@@ -188,6 +197,34 @@ declare class WebLinksAddon implements ITerminalAddon {
188
197
  dispose(): void;
189
198
  }
190
199
 
200
+ type ServerUUIDGetter = () => string | undefined;
201
+ declare class ProxyLinkProvider implements ILinkProvider {
202
+ private readonly _terminal;
203
+ private readonly _getServerUUID;
204
+ private readonly _handler;
205
+ constructor(_terminal: Terminal, _getServerUUID: ServerUUIDGetter, _handler?: (event: MouseEvent, proxyUrl: string) => void);
206
+ provideLinks(bufferLineNumber: number, callback: (links: ILink[] | undefined) => void): void;
207
+ }
208
+ declare function toProxyUrl(serverUUID: string, localhostUrl: string): string | null;
209
+
210
+ /**
211
+ * xterm.js addon: localhost URLをmachina web proxyにリダイレクトするリンクを表示。
212
+ *
213
+ * Usage:
214
+ * ```typescript
215
+ * const addon = new ProxyLinksAddon(() => currentServerUUID);
216
+ * terminal.loadAddon(addon);
217
+ * ```
218
+ */
219
+ declare class ProxyLinksAddon implements ITerminalAddon {
220
+ private readonly _getServerUUID;
221
+ private readonly _handler?;
222
+ private _linkProvider?;
223
+ constructor(_getServerUUID: ServerUUIDGetter, _handler?: (event: MouseEvent, proxyUrl: string) => void);
224
+ activate(terminal: Terminal): void;
225
+ dispose(): void;
226
+ }
227
+
191
228
  /**
192
229
  * Utility functions for displaying images in xterm using SIXEL format
193
230
  */
@@ -218,6 +255,6 @@ declare function svgToSixel(svgString: string, options?: SvgToSixelOptions): Pro
218
255
  */
219
256
  declare function getMachinaAsciiArtSixel(options?: SvgToSixelOptions): Promise<string>;
220
257
 
221
- export { GitHubLinkProvider, GitHubLinksAddon, WebLinksAddon, XtermActionId, XtermOrganism, XtermOrganismStore, asciiArtToSvg, generateAsciiArt, getMachinaAsciiArtSixel, svgToSixel };
222
- export type { GitHubLinkActivateHandler, SvgToSixelOptions };
258
+ export { GitHubLinkProvider, GitHubLinksAddon, ProxyLinkProvider, ProxyLinksAddon, WebLinksAddon, XTERM_SERVER_UUID, XtermActionId, XtermOrganism, XtermOrganismStore, asciiArtToSvg, generateAsciiArt, getMachinaAsciiArtSixel, svgToSixel, toProxyUrl };
259
+ export type { GitHubLinkActivateHandler, ServerUUIDGetter, SvgToSixelOptions };
223
260
  //# sourceMappingURL=xxmachina-components-organisms-xterm.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"xxmachina-components-organisms-xterm.d.ts","sources":["../../../../../packages/@xxmachina/components/src/lib/organisms/xterm/xterm.organism.store.ts","../../../../../packages/@xxmachina/components/src/lib/organisms/xterm/xterm.organism.ts","../../../../../packages/@xxmachina/components/src/lib/organisms/xterm/github-link.provider.ts","../../../../../packages/@xxmachina/components/src/lib/organisms/xterm/github-links.addon.ts","../../../../../packages/@xxmachina/components/src/lib/organisms/xterm/web-links.addon.ts","../../../../../packages/@xxmachina/components/src/lib/organisms/xterm/image.utils.ts"],"sourcesContent":[null,null,null,null,null,null],"names":[],"mappings":";;;;;;;AAIA;AACE;AACA;AACA;AACA;AACA;AACD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAO4C;AAE1C;;;;;AAAuD;;;;;;;;;;;AAexD;;AC1BD;AAkDA;;AAcE;AACA;;;;;;;;;;;;AAcA;;;;AA+CA;AAsBA;;;;;;;AAOG;AACH;;AAqDA;;AAoGA;;AAmCO;AAIA;AAIA;AAIA;AAIA;AAIA;AAIA;;;;AAsBP;;;;AAIG;AACI;AACL;AACA;;;AAGD;AAuBD;;AAEG;;;;AAIJ;;;;ACnbA;AAED;;;AAEE;AAGmB;AAInB;AA0CA;AAyBD;;AC/ED;;;;AAKqB;AAGnB;AAOA;AAGD;;AClBD;;;AAGG;AACH;AAII;;;AAGF;AAMA;AAGD;;ACvBD;;AAEG;;;;;;AAOF;AAED;;;AAGG;AACH;AAmBA;;AAEG;AACH;;;AAEyD;AAgCzD;;AAEG;AACH;AA6KA;;AAEG;AACH;;;"}
1
+ {"version":3,"file":"xxmachina-components-organisms-xterm.d.ts","sources":["../../../../../packages/@xxmachina/components/src/lib/organisms/xterm/xterm.organism.store.ts","../../../../../packages/@xxmachina/components/src/lib/organisms/xterm/xterm.organism.ts","../../../../../packages/@xxmachina/components/src/lib/organisms/xterm/github-link.provider.ts","../../../../../packages/@xxmachina/components/src/lib/organisms/xterm/github-links.addon.ts","../../../../../packages/@xxmachina/components/src/lib/organisms/xterm/web-links.addon.ts","../../../../../packages/@xxmachina/components/src/lib/organisms/xterm/proxy-link.provider.ts","../../../../../packages/@xxmachina/components/src/lib/organisms/xterm/proxy-links.addon.ts","../../../../../packages/@xxmachina/components/src/lib/organisms/xterm/image.utils.ts"],"sourcesContent":[null,null,null,null,null,null,null,null],"names":[],"mappings":";;;;;;;AAIA;AACE;AACA;AACA;AACA;AACA;AACD;AAED;AACA;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAO4C;AAE1C;;;;;AAAuD;;;;;;;AAQvD;;;;AAMD;;AC3BD;AAkDA;;AAcE;AACA;;;;;;;;;;;;AAcA;;;;AAIA;;;;;;AAiDA;AAsBA;;;;;;;AAOG;AACH;;AAqDA;;AAqHA;;AAmCO;AAIA;AAIA;AAIA;AAIA;AAIA;AAIA;;;;AAsBP;;;;AAIG;AACI;AACL;AACA;;;AAGD;AAuBD;;AAEG;;;;AAIJ;;;;AC3cA;AAED;;;AAEE;AAGmB;AAInB;AA0CA;AAyBD;;AC/ED;;;;AAKqB;AAGnB;AAOA;AAGD;;AClBD;;;;AAIG;AACH;AAII;;;AAGF;AAMA;AAGD;;;ACVD;;;;AAEqB;AAOnB;AA4CD;AAED;;AClEA;;;;;;;;AAQG;AACH;;AAKI;;AADiB;AAInB;AAMA;AAGD;;AC7BD;;AAEG;;;;;;AAOF;AAED;;;AAGG;AACH;AAmBA;;AAEG;AACH;;;AAEyD;AAgCzD;;AAEG;AACH;AA6KA;;AAEG;AACH;;;"}