@theia/terminal 1.67.0-next.56 → 1.67.0-next.86

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 (157) hide show
  1. package/lib/browser/base/terminal-service.d.ts +35 -0
  2. package/lib/browser/base/terminal-service.d.ts.map +1 -0
  3. package/lib/browser/base/terminal-service.js +8 -0
  4. package/lib/browser/base/terminal-service.js.map +1 -0
  5. package/lib/browser/base/terminal-widget.d.ts +219 -0
  6. package/lib/browser/base/terminal-widget.d.ts.map +1 -0
  7. package/lib/browser/base/terminal-widget.js +35 -0
  8. package/lib/browser/base/terminal-widget.js.map +1 -0
  9. package/lib/browser/index.d.ts +2 -0
  10. package/lib/browser/index.d.ts.map +1 -0
  11. package/lib/browser/index.js +20 -0
  12. package/lib/browser/index.js.map +1 -0
  13. package/lib/browser/search/terminal-search-container.d.ts +4 -0
  14. package/lib/browser/search/terminal-search-container.d.ts.map +1 -0
  15. package/lib/browser/search/terminal-search-container.js +29 -0
  16. package/lib/browser/search/terminal-search-container.js.map +1 -0
  17. package/lib/browser/search/terminal-search-widget.d.ts +31 -0
  18. package/lib/browser/search/terminal-search-widget.d.ts.map +1 -0
  19. package/lib/browser/search/terminal-search-widget.js +141 -0
  20. package/lib/browser/search/terminal-search-widget.js.map +1 -0
  21. package/lib/browser/shell-terminal-profile.d.ts +21 -0
  22. package/lib/browser/shell-terminal-profile.d.ts.map +1 -0
  23. package/lib/browser/shell-terminal-profile.js +43 -0
  24. package/lib/browser/shell-terminal-profile.js.map +1 -0
  25. package/lib/browser/terminal-contribution.d.ts +4 -0
  26. package/lib/browser/terminal-contribution.d.ts.map +1 -0
  27. package/lib/browser/terminal-contribution.js +21 -0
  28. package/lib/browser/terminal-contribution.js.map +1 -0
  29. package/lib/browser/terminal-copy-on-selection-handler.d.ts +11 -0
  30. package/lib/browser/terminal-copy-on-selection-handler.d.ts.map +1 -0
  31. package/lib/browser/terminal-copy-on-selection-handler.js +96 -0
  32. package/lib/browser/terminal-copy-on-selection-handler.js.map +1 -0
  33. package/lib/browser/terminal-file-link-provider.d.ts +40 -0
  34. package/lib/browser/terminal-file-link-provider.d.ts.map +1 -0
  35. package/lib/browser/terminal-file-link-provider.js +288 -0
  36. package/lib/browser/terminal-file-link-provider.js.map +1 -0
  37. package/lib/browser/terminal-frontend-contribution.d.ts +120 -0
  38. package/lib/browser/terminal-frontend-contribution.d.ts.map +1 -0
  39. package/lib/browser/terminal-frontend-contribution.js +1087 -0
  40. package/lib/browser/terminal-frontend-contribution.js.map +1 -0
  41. package/lib/browser/terminal-frontend-module.d.ts +6 -0
  42. package/lib/browser/terminal-frontend-module.d.ts.map +1 -0
  43. package/lib/browser/terminal-frontend-module.js +118 -0
  44. package/lib/browser/terminal-frontend-module.js.map +1 -0
  45. package/lib/browser/terminal-link-helpers.d.ts +28 -0
  46. package/lib/browser/terminal-link-helpers.d.ts.map +1 -0
  47. package/lib/browser/terminal-link-helpers.js +156 -0
  48. package/lib/browser/terminal-link-helpers.js.map +1 -0
  49. package/lib/browser/terminal-link-provider.d.ts +52 -0
  50. package/lib/browser/terminal-link-provider.d.ts.map +1 -0
  51. package/lib/browser/terminal-link-provider.js +190 -0
  52. package/lib/browser/terminal-link-provider.js.map +1 -0
  53. package/lib/browser/terminal-profile-service.d.ts +59 -0
  54. package/lib/browser/terminal-profile-service.d.ts.map +1 -0
  55. package/lib/browser/terminal-profile-service.js +152 -0
  56. package/lib/browser/terminal-profile-service.js.map +1 -0
  57. package/lib/browser/terminal-quick-open-service.d.ts +37 -0
  58. package/lib/browser/terminal-quick-open-service.d.ts.map +1 -0
  59. package/lib/browser/terminal-quick-open-service.js +130 -0
  60. package/lib/browser/terminal-quick-open-service.js.map +1 -0
  61. package/lib/browser/terminal-theme-service.d.ts +12 -0
  62. package/lib/browser/terminal-theme-service.d.ts.map +1 -0
  63. package/lib/browser/terminal-theme-service.js +67 -0
  64. package/lib/browser/terminal-theme-service.js.map +1 -0
  65. package/lib/browser/terminal-url-link-provider.d.ts +12 -0
  66. package/lib/browser/terminal-url-link-provider.d.ts.map +1 -0
  67. package/lib/browser/terminal-url-link-provider.js +69 -0
  68. package/lib/browser/terminal-url-link-provider.js.map +1 -0
  69. package/lib/browser/terminal-widget-impl.d.ts +193 -0
  70. package/lib/browser/terminal-widget-impl.d.ts.map +1 -0
  71. package/lib/browser/terminal-widget-impl.js +918 -0
  72. package/lib/browser/terminal-widget-impl.js.map +1 -0
  73. package/lib/common/base-terminal-protocol.d.ts +56 -0
  74. package/lib/common/base-terminal-protocol.d.ts.map +1 -0
  75. package/lib/common/base-terminal-protocol.js +85 -0
  76. package/lib/common/base-terminal-protocol.js.map +1 -0
  77. package/lib/common/shell-terminal-protocol.d.ts +67 -0
  78. package/lib/common/shell-terminal-protocol.d.ts.map +1 -0
  79. package/lib/common/shell-terminal-protocol.js +36 -0
  80. package/lib/common/shell-terminal-protocol.js.map +1 -0
  81. package/lib/common/shell-type.d.ts +23 -0
  82. package/lib/common/shell-type.d.ts.map +1 -0
  83. package/lib/common/shell-type.js +66 -0
  84. package/lib/common/shell-type.js.map +1 -0
  85. package/lib/common/shell-type.spec.d.ts +2 -0
  86. package/lib/common/shell-type.spec.d.ts.map +1 -0
  87. package/lib/common/shell-type.spec.js +159 -0
  88. package/lib/common/shell-type.spec.js.map +1 -0
  89. package/lib/common/terminal-preferences.d.ts +74 -0
  90. package/lib/common/terminal-preferences.d.ts.map +1 -0
  91. package/lib/common/terminal-preferences.js +516 -0
  92. package/lib/common/terminal-preferences.js.map +1 -0
  93. package/lib/common/terminal-protocol.d.ts +13 -0
  94. package/lib/common/terminal-protocol.d.ts.map +1 -0
  95. package/lib/common/terminal-protocol.js +22 -0
  96. package/lib/common/terminal-protocol.js.map +1 -0
  97. package/lib/common/terminal-watcher.d.ts +14 -0
  98. package/lib/common/terminal-watcher.d.ts.map +1 -0
  99. package/lib/common/terminal-watcher.js +66 -0
  100. package/lib/common/terminal-watcher.js.map +1 -0
  101. package/lib/node/base-terminal-server.d.ts +25 -0
  102. package/lib/node/base-terminal-server.d.ts.map +1 -0
  103. package/lib/node/base-terminal-server.js +158 -0
  104. package/lib/node/base-terminal-server.js.map +1 -0
  105. package/lib/node/buffering-stream.d.ts +42 -0
  106. package/lib/node/buffering-stream.d.ts.map +1 -0
  107. package/lib/node/buffering-stream.js +76 -0
  108. package/lib/node/buffering-stream.js.map +1 -0
  109. package/lib/node/buffering-stream.spec.d.ts +2 -0
  110. package/lib/node/buffering-stream.spec.d.ts.map +1 -0
  111. package/lib/node/buffering-stream.spec.js +44 -0
  112. package/lib/node/buffering-stream.spec.js.map +1 -0
  113. package/lib/node/index.d.ts +2 -0
  114. package/lib/node/index.d.ts.map +1 -0
  115. package/lib/node/index.js +20 -0
  116. package/lib/node/index.js.map +1 -0
  117. package/lib/node/shell-process.d.ts +28 -0
  118. package/lib/node/shell-process.d.ts.map +1 -0
  119. package/lib/node/shell-process.js +97 -0
  120. package/lib/node/shell-process.js.map +1 -0
  121. package/lib/node/shell-terminal-server.d.ts +31 -0
  122. package/lib/node/shell-terminal-server.d.ts.map +1 -0
  123. package/lib/node/shell-terminal-server.js +218 -0
  124. package/lib/node/shell-terminal-server.js.map +1 -0
  125. package/lib/node/shell-terminal-server.spec.d.ts +2 -0
  126. package/lib/node/shell-terminal-server.spec.d.ts.map +1 -0
  127. package/lib/node/shell-terminal-server.spec.js +36 -0
  128. package/lib/node/shell-terminal-server.spec.js.map +1 -0
  129. package/lib/node/terminal-backend-contribution.d.ts +10 -0
  130. package/lib/node/terminal-backend-contribution.d.ts.map +1 -0
  131. package/lib/node/terminal-backend-contribution.js +68 -0
  132. package/lib/node/terminal-backend-contribution.js.map +1 -0
  133. package/lib/node/terminal-backend-contribution.slow-spec.d.ts +2 -0
  134. package/lib/node/terminal-backend-contribution.slow-spec.d.ts.map +1 -0
  135. package/lib/node/terminal-backend-contribution.slow-spec.js +55 -0
  136. package/lib/node/terminal-backend-contribution.slow-spec.js.map +1 -0
  137. package/lib/node/terminal-backend-module.d.ts +12 -0
  138. package/lib/node/terminal-backend-module.d.ts.map +1 -0
  139. package/lib/node/terminal-backend-module.js +70 -0
  140. package/lib/node/terminal-backend-module.js.map +1 -0
  141. package/lib/node/terminal-server.d.ts +10 -0
  142. package/lib/node/terminal-server.d.ts.map +1 -0
  143. package/lib/node/terminal-server.js +54 -0
  144. package/lib/node/terminal-server.js.map +1 -0
  145. package/lib/node/terminal-server.spec.d.ts +2 -0
  146. package/lib/node/terminal-server.spec.d.ts.map +1 -0
  147. package/lib/node/terminal-server.spec.js +38 -0
  148. package/lib/node/terminal-server.spec.js.map +1 -0
  149. package/lib/node/test/terminal-test-container.d.ts +3 -0
  150. package/lib/node/test/terminal-test-container.d.ts.map +1 -0
  151. package/lib/node/test/terminal-test-container.js +41 -0
  152. package/lib/node/test/terminal-test-container.js.map +1 -0
  153. package/lib/package.spec.d.ts +1 -0
  154. package/lib/package.spec.d.ts.map +1 -0
  155. package/lib/package.spec.js +26 -0
  156. package/lib/package.spec.js.map +1 -0
  157. package/package.json +9 -9
@@ -0,0 +1,35 @@
1
+ import { Event } from '@theia/core/lib/common/event';
2
+ import { WidgetOpenerOptions } from '@theia/core/lib/browser';
3
+ import { TerminalWidgetOptions, TerminalWidget } from './terminal-widget';
4
+ /**
5
+ * Service manipulating terminal widgets.
6
+ */
7
+ export declare const TerminalService: unique symbol;
8
+ export interface TerminalService {
9
+ /**
10
+ * Create new terminal with predefined options.
11
+ * @param options - terminal options.
12
+ */
13
+ newTerminal(options: TerminalWidgetOptions): Promise<TerminalWidget>;
14
+ open(terminal: TerminalWidget, options?: WidgetOpenerOptions): void;
15
+ readonly all: TerminalWidget[];
16
+ /**
17
+ * @param id - the widget id (NOT the terminal id!)
18
+ * @return the widget
19
+ */
20
+ getById(id: string): TerminalWidget | undefined;
21
+ /**
22
+ * @param id - the terminal id (NOT the terminal widget id!)
23
+ * @return the widget
24
+ */
25
+ getByTerminalId(terminalId: number): TerminalWidget | undefined;
26
+ /**
27
+ * Returns detected default shell.
28
+ */
29
+ getDefaultShell(): Promise<string>;
30
+ readonly onDidCreateTerminal: Event<TerminalWidget>;
31
+ readonly currentTerminal: TerminalWidget | undefined;
32
+ readonly onDidChangeCurrentTerminal: Event<TerminalWidget | undefined>;
33
+ readonly lastUsedTerminal: TerminalWidget | undefined;
34
+ }
35
+ //# sourceMappingURL=terminal-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-service.d.ts","sourceRoot":"","sources":["../../../src/browser/base/terminal-service.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAE1E;;GAEG;AACH,eAAO,MAAM,eAAe,eAA4B,CAAC;AACzD,MAAM,WAAW,eAAe;IAE5B;;;OAGG;IACH,WAAW,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAErE,IAAI,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAEpE,QAAQ,CAAC,GAAG,EAAE,cAAc,EAAE,CAAC;IAE/B;;;OAGG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAAC;IAEhD;;;OAGG;IACH,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAAC;IAEhE;;OAEG;IACH,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnC,QAAQ,CAAC,mBAAmB,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;IAEpD,QAAQ,CAAC,eAAe,EAAE,cAAc,GAAG,SAAS,CAAC;IAErD,QAAQ,CAAC,0BAA0B,EAAE,KAAK,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;IAEvE,QAAQ,CAAC,gBAAgB,EAAE,cAAc,GAAG,SAAS,CAAC;CACzD"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TerminalService = void 0;
4
+ /**
5
+ * Service manipulating terminal widgets.
6
+ */
7
+ exports.TerminalService = Symbol('TerminalService');
8
+ //# sourceMappingURL=terminal-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-service.js","sourceRoot":"","sources":["../../../src/browser/base/terminal-service.ts"],"names":[],"mappings":";;;AAmBA;;GAEG;AACU,QAAA,eAAe,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC"}
@@ -0,0 +1,219 @@
1
+ import { Event, ViewColumn } from '@theia/core';
2
+ import { BaseWidget } from '@theia/core/lib/browser';
3
+ import { MarkdownString } from '@theia/core/lib/common/markdown-rendering/markdown-string';
4
+ import { ThemeIcon } from '@theia/core/lib/common/theme';
5
+ import { CommandLineOptions } from '@theia/process/lib/common/shell-command-builder';
6
+ import { TerminalSearchWidget } from '../search/terminal-search-widget';
7
+ import { TerminalProcessInfo, TerminalExitReason } from '../../common/base-terminal-protocol';
8
+ import URI from '@theia/core/lib/common/uri';
9
+ export interface TerminalDimensions {
10
+ cols: number;
11
+ rows: number;
12
+ }
13
+ export interface TerminalExitStatus {
14
+ readonly code: number | undefined;
15
+ readonly reason: TerminalExitReason;
16
+ }
17
+ export type TerminalLocationOptions = TerminalLocation | TerminalEditorLocation | TerminalSplitLocation;
18
+ export declare enum TerminalLocation {
19
+ Panel = 1,
20
+ Editor = 2
21
+ }
22
+ export interface TerminalEditorLocation {
23
+ readonly viewColumn: ViewColumn;
24
+ readonly preserveFocus?: boolean;
25
+ }
26
+ export interface TerminalSplitLocation {
27
+ readonly parentTerminal: string;
28
+ }
29
+ export interface TerminalBuffer {
30
+ readonly length: number;
31
+ /**
32
+ * @param start zero based index of the first line to return
33
+ * @param length the max number or lines to return
34
+ */
35
+ getLines(start: number, length: number): string[];
36
+ }
37
+ /**
38
+ * Terminal UI widget.
39
+ */
40
+ export declare abstract class TerminalWidget extends BaseWidget {
41
+ abstract processId: Promise<number>;
42
+ /**
43
+ * Get the current executable and arguments.
44
+ */
45
+ abstract processInfo: Promise<TerminalProcessInfo>;
46
+ /** The ids of extensions contributing to the environment of this terminal mapped to the provided description for their changes. */
47
+ abstract envVarCollectionDescriptionsByExtension: Promise<Map<string, (string | MarkdownString | undefined)[]>>;
48
+ /** Terminal kind that indicates whether a terminal is created by a user or by some extension for a user */
49
+ abstract readonly kind: 'user' | string;
50
+ abstract readonly terminalId: number;
51
+ abstract readonly dimensions: TerminalDimensions;
52
+ abstract readonly exitStatus: TerminalExitStatus | undefined;
53
+ /** Terminal widget can be hidden from users until explicitly shown once. */
54
+ abstract readonly hiddenFromUser: boolean;
55
+ /** The position of the terminal widget. */
56
+ abstract readonly location: TerminalLocationOptions;
57
+ /** The last CWD assigned to the terminal, useful when attempting getCwdURI on a task terminal fails */
58
+ lastCwd: URI;
59
+ /**
60
+ * Start terminal and return terminal id.
61
+ * @param id - terminal id.
62
+ */
63
+ abstract start(id?: number): Promise<number>;
64
+ /**
65
+ * Send text to the terminal server.
66
+ * @param text - text content.
67
+ */
68
+ abstract sendText(text: string): void;
69
+ /**
70
+ * Resolves when the command is successfully sent, this doesn't mean that it
71
+ * was evaluated. Might reject if terminal wasn't properly started yet.
72
+ *
73
+ * Note that this method will try to escape your arguments as if it was
74
+ * someone inputting everything in a shell.
75
+ *
76
+ * Supported shells: `bash`, `cmd.exe`, `wsl.exe`, `pwsh/powershell.exe`
77
+ */
78
+ abstract executeCommand(commandOptions: CommandLineOptions): Promise<void>;
79
+ /** Event that fires when the terminal is connected or reconnected */
80
+ abstract onDidOpen: Event<void>;
81
+ /** Event that fires when the terminal fails to connect or reconnect */
82
+ abstract onDidOpenFailure: Event<void>;
83
+ /** Event that fires when the terminal size changed */
84
+ abstract onSizeChanged: Event<{
85
+ cols: number;
86
+ rows: number;
87
+ }>;
88
+ /** Event that fires when the terminal receives a key event. */
89
+ abstract onKey: Event<{
90
+ key: string;
91
+ domEvent: KeyboardEvent;
92
+ }>;
93
+ /** Event that fires when the terminal input data */
94
+ abstract onData: Event<string>;
95
+ /** Event that fires when the terminal shell type is changed */
96
+ abstract onShellTypeChanged: Event<string>;
97
+ abstract onOutput: Event<string>;
98
+ abstract buffer: TerminalBuffer;
99
+ abstract scrollLineUp(): void;
100
+ abstract scrollLineDown(): void;
101
+ abstract scrollToTop(): void;
102
+ abstract scrollToBottom(): void;
103
+ abstract scrollPageUp(): void;
104
+ abstract scrollPageDown(): void;
105
+ abstract resetTerminal(): void;
106
+ /**
107
+ * Event which fires when terminal did closed. Event value contains closed terminal widget definition.
108
+ */
109
+ abstract onTerminalDidClose: Event<TerminalWidget>;
110
+ /**
111
+ * Cleat terminal output.
112
+ */
113
+ abstract clearOutput(): void;
114
+ /**
115
+ * Select entire content in the terminal.
116
+ */
117
+ abstract selectAll(): void;
118
+ abstract writeLine(line: string): void;
119
+ abstract write(data: string): void;
120
+ abstract resize(cols: number, rows: number): void;
121
+ /**
122
+ * Return Terminal search box widget.
123
+ */
124
+ abstract getSearchBox(): TerminalSearchWidget;
125
+ /**
126
+ * Whether the terminal process has child processes.
127
+ */
128
+ abstract hasChildProcesses(): Promise<boolean>;
129
+ abstract setTitle(title: string): void;
130
+ abstract waitOnExit(waitOnExit?: boolean | string): void;
131
+ }
132
+ /**
133
+ * Terminal widget options.
134
+ */
135
+ export declare const TerminalWidgetOptions: unique symbol;
136
+ export interface TerminalWidgetOptions {
137
+ /**
138
+ * Human readable terminal representation on the UI.
139
+ */
140
+ readonly title?: string;
141
+ /**
142
+ * icon class with or without color modifier
143
+ */
144
+ readonly iconClass?: string | ThemeIcon;
145
+ /**
146
+ * Path to the executable shell. For example: `/bin/bash`, `bash`, `sh`.
147
+ */
148
+ readonly shellPath?: string;
149
+ /**
150
+ * Args for the custom shell executable. A string can be used on Windows only which allows
151
+ * specifying shell args in [command-line format](https://msdn.microsoft.com/en-au/08dfcab2-eb6e-49a4-80eb-87d4076c98c6).
152
+ */
153
+ readonly shellArgs?: string[] | string;
154
+ /**
155
+ * Current working directory.
156
+ */
157
+ readonly cwd?: string | URI;
158
+ /**
159
+ * Environment variables for terminal.
160
+ */
161
+ readonly env?: {
162
+ [key: string]: string | null;
163
+ };
164
+ /**
165
+ * Whether the terminal process environment should be exactly as provided in `env`.
166
+ */
167
+ readonly strictEnv?: boolean;
168
+ /**
169
+ * In case `destroyTermOnClose` is true - terminal process will be destroyed on close terminal widget, otherwise will be kept
170
+ * alive.
171
+ */
172
+ readonly destroyTermOnClose?: boolean;
173
+ /**
174
+ * Terminal server side can send to the client `terminal title` to display this value on the UI. If
175
+ * useServerTitle = true then display this title, otherwise display title defined by 'title' argument.
176
+ */
177
+ readonly useServerTitle?: boolean;
178
+ /**
179
+ * Whether it is a pseudo terminal where an extension controls its input and output.
180
+ */
181
+ readonly isPseudoTerminal?: boolean;
182
+ /**
183
+ * Terminal id. Should be unique for all DOM.
184
+ */
185
+ readonly id?: string;
186
+ /**
187
+ * Terminal attributes. Can be useful to apply some implementation specific information.
188
+ */
189
+ readonly attributes?: {
190
+ [key: string]: string | null;
191
+ };
192
+ /**
193
+ * Terminal kind that indicates whether a terminal is created by a user or by some extension for a user
194
+ */
195
+ readonly kind?: 'user' | string;
196
+ /**
197
+ * When enabled the terminal will run the process as normal but not be surfaced to the user until `Terminal.show` is called.
198
+ */
199
+ readonly hideFromUser?: boolean;
200
+ readonly location?: TerminalLocationOptions;
201
+ /**
202
+ * When enabled, the terminal will not be persisted across window reloads.
203
+ */
204
+ readonly isTransient?: boolean;
205
+ /**
206
+ * The nonce to use to verify shell integration sequences are coming from a trusted source.
207
+ * An example impact of UX of this is if the command line is reported with a nonce, it will
208
+ * not need to verify with the user that the command line is correct before rerunning it
209
+ * via the [shell integration command decoration](https://code.visualstudio.com/docs/terminal/shell-integration#_command-decorations-and-the-overview-ruler).
210
+ *
211
+ * This should be used if the terminal includes [custom shell integration support](https://code.visualstudio.com/docs/terminal/shell-integration#_supported-escape-sequences).
212
+ * It should be set to a random GUID which will then set the `VSCODE_NONCE` environment
213
+ * variable. Inside the shell, this should then be removed from the environment so as to
214
+ * protect it from general access. Once that is done it can be passed through in the
215
+ * relevant sequences to make them trusted.
216
+ */
217
+ readonly shellIntegrationNonce?: string;
218
+ }
219
+ //# sourceMappingURL=terminal-widget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-widget.d.ts","sourceRoot":"","sources":["../../../src/browser/base/terminal-widget.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2018 Red Hat, Inc. and others.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.TerminalWidgetOptions = exports.TerminalWidget = exports.TerminalLocation = void 0;
19
+ const browser_1 = require("@theia/core/lib/browser");
20
+ var TerminalLocation;
21
+ (function (TerminalLocation) {
22
+ TerminalLocation[TerminalLocation["Panel"] = 1] = "Panel";
23
+ TerminalLocation[TerminalLocation["Editor"] = 2] = "Editor";
24
+ })(TerminalLocation || (exports.TerminalLocation = TerminalLocation = {}));
25
+ /**
26
+ * Terminal UI widget.
27
+ */
28
+ class TerminalWidget extends browser_1.BaseWidget {
29
+ }
30
+ exports.TerminalWidget = TerminalWidget;
31
+ /**
32
+ * Terminal widget options.
33
+ */
34
+ exports.TerminalWidgetOptions = Symbol('TerminalWidgetOptions');
35
+ //# sourceMappingURL=terminal-widget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-widget.js","sourceRoot":"","sources":["../../../src/browser/base/terminal-widget.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,+CAA+C;AAC/C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAGhF,qDAAqD;AAoBrD,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IACxB,yDAAS,CAAA;IACT,2DAAU,CAAA;AACd,CAAC,EAHW,gBAAgB,gCAAhB,gBAAgB,QAG3B;AAoBD;;GAEG;AACH,MAAsB,cAAe,SAAQ,oBAAU;CAwHtD;AAxHD,wCAwHC;AAED;;GAEG;AACU,QAAA,qBAAqB,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './terminal-frontend-module';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":"AAgBA,cAAc,4BAA4B,CAAC"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2017 TypeFox and others.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const tslib_1 = require("tslib");
19
+ tslib_1.__exportStar(require("./terminal-frontend-module"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAEhF,qEAA2C"}
@@ -0,0 +1,4 @@
1
+ import { interfaces } from '@theia/core/shared/inversify';
2
+ import { TerminalSearchWidgetFactory } from './terminal-search-widget';
3
+ export declare function createTerminalSearchFactory(container: interfaces.Container): TerminalSearchWidgetFactory;
4
+ //# sourceMappingURL=terminal-search-container.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-search-container.d.ts","sourceRoot":"","sources":["../../../src/browser/search/terminal-search-container.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAwB,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAG7F,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,UAAU,CAAC,SAAS,GAAG,2BAA2B,CAOxG"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2019 Red Hat, Inc. and others.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.createTerminalSearchFactory = void 0;
19
+ const terminal_search_widget_1 = require("./terminal-search-widget");
20
+ const xterm_1 = require("xterm");
21
+ function createTerminalSearchFactory(container) {
22
+ container.bind(terminal_search_widget_1.TerminalSearchWidget).toSelf().inSingletonScope();
23
+ return (terminal) => {
24
+ container.bind(xterm_1.Terminal).toConstantValue(terminal);
25
+ return container.get(terminal_search_widget_1.TerminalSearchWidget);
26
+ };
27
+ }
28
+ exports.createTerminalSearchFactory = createTerminalSearchFactory;
29
+ //# sourceMappingURL=terminal-search-container.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-search-container.js","sourceRoot":"","sources":["../../../src/browser/search/terminal-search-container.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,+CAA+C;AAC/C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAGhF,qEAA6F;AAC7F,iCAAiC;AAEjC,SAAgB,2BAA2B,CAAC,SAA+B;IACvE,SAAS,CAAC,IAAI,CAAC,6CAAoB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAEjE,OAAO,CAAC,QAAkB,EAAE,EAAE;QAC1B,SAAS,CAAC,IAAI,CAAC,gBAAQ,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QACnD,OAAO,SAAS,CAAC,GAAG,CAAC,6CAAoB,CAAC,CAAC;IAC/C,CAAC,CAAC;AACN,CAAC;AAPD,kEAOC"}
@@ -0,0 +1,31 @@
1
+ /// <reference types="react" />
2
+ import { ReactWidget } from '@theia/core/lib/browser/widgets/react-widget';
3
+ import * as React from '@theia/core/shared/react';
4
+ import '../../../src/browser/style/terminal-search.css';
5
+ import { Terminal } from 'xterm';
6
+ export declare const TERMINAL_SEARCH_WIDGET_FACTORY_ID = "terminal-search";
7
+ export declare const TerminalSearchWidgetFactory: unique symbol;
8
+ export type TerminalSearchWidgetFactory = (terminal: Terminal) => TerminalSearchWidget;
9
+ export declare class TerminalSearchWidget extends ReactWidget {
10
+ private searchInput;
11
+ private searchBox;
12
+ private searchOptions;
13
+ private searchAddon;
14
+ protected terminal: Terminal;
15
+ protected init(): void;
16
+ protected render(): React.ReactNode;
17
+ onSearchInputFocus: () => void;
18
+ onSearchInputBlur: () => void;
19
+ private handleHide;
20
+ private handleCaseSensitiveOptionClicked;
21
+ private handleWholeWordOptionClicked;
22
+ private handleRegexOptionClicked;
23
+ private updateSearchInputBox;
24
+ private onInputChanged;
25
+ search(incremental: boolean, searchDirection: 'next' | 'previous'): void;
26
+ private handleNextButtonClicked;
27
+ private handlePreviousButtonClicked;
28
+ onAfterHide(): void;
29
+ onAfterShow(): void;
30
+ }
31
+ //# sourceMappingURL=terminal-search-widget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-search-widget.d.ts","sourceRoot":"","sources":["../../../src/browser/search/terminal-search-widget.tsx"],"names":[],"mappings":";AAiBA,OAAO,EAAE,WAAW,EAAE,MAAM,8CAA8C,CAAC;AAC3E,OAAO,KAAK,KAAK,MAAM,0BAA0B,CAAC;AAClD,OAAO,gDAAgD,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAKjC,eAAO,MAAM,iCAAiC,oBAAoB,CAAC;AACnE,eAAO,MAAM,2BAA2B,eAAwC,CAAC;AACjF,MAAM,MAAM,2BAA2B,GAAG,CAAC,QAAQ,EAAE,QAAQ,KAAK,oBAAoB,CAAC;AAEvF,qBACa,oBAAqB,SAAQ,WAAW;IAEjD,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,SAAS,CAAwB;IACzC,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,WAAW,CAAc;IAGjC,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAG7B,SAAS,CAAC,IAAI,IAAI,IAAI;IAUtB,SAAS,CAAC,MAAM,IAAI,KAAK,CAAC,SAAS;IAsCnC,kBAAkB,QAAO,IAAI,CAI3B;IAEF,iBAAiB,QAAO,IAAI,CAI1B;IAEF,OAAO,CAAC,UAAU,CAEhB;IAEF,OAAO,CAAC,gCAAgC,CAGtC;IAEF,OAAO,CAAC,4BAA4B,CAGlC;IAEF,OAAO,CAAC,wBAAwB,CAG9B;IAEF,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,cAAc,CAapB;IAEF,MAAM,CAAC,WAAW,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAexE,OAAO,CAAC,uBAAuB,CAE7B;IAEF,OAAO,CAAC,2BAA2B,CAEjC;IAEO,WAAW,IAAI,IAAI;IAInB,WAAW,IAAI,IAAI;CAK/B"}
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2019 Red Hat, Inc. and others.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.TerminalSearchWidget = exports.TerminalSearchWidgetFactory = exports.TERMINAL_SEARCH_WIDGET_FACTORY_ID = void 0;
19
+ const tslib_1 = require("tslib");
20
+ const inversify_1 = require("@theia/core/shared/inversify");
21
+ const react_widget_1 = require("@theia/core/lib/browser/widgets/react-widget");
22
+ const React = require("@theia/core/shared/react");
23
+ require("../../../src/browser/style/terminal-search.css");
24
+ const xterm_1 = require("xterm");
25
+ const xterm_addon_search_1 = require("xterm-addon-search");
26
+ const browser_1 = require("@theia/core/lib/browser");
27
+ const core_1 = require("@theia/core");
28
+ exports.TERMINAL_SEARCH_WIDGET_FACTORY_ID = 'terminal-search';
29
+ exports.TerminalSearchWidgetFactory = Symbol('TerminalSearchWidgetFactory');
30
+ let TerminalSearchWidget = class TerminalSearchWidget extends react_widget_1.ReactWidget {
31
+ constructor() {
32
+ super(...arguments);
33
+ this.searchOptions = {};
34
+ this.onSearchInputFocus = () => {
35
+ if (this.searchBox) {
36
+ this.searchBox.classList.add('focused');
37
+ }
38
+ };
39
+ this.onSearchInputBlur = () => {
40
+ if (this.searchBox) {
41
+ this.searchBox.classList.remove('focused');
42
+ }
43
+ };
44
+ this.handleHide = () => {
45
+ this.hide();
46
+ };
47
+ this.handleCaseSensitiveOptionClicked = (event) => {
48
+ this.searchOptions.caseSensitive = !this.searchOptions.caseSensitive;
49
+ this.updateSearchInputBox(this.searchOptions.caseSensitive, event.currentTarget);
50
+ };
51
+ this.handleWholeWordOptionClicked = (event) => {
52
+ this.searchOptions.wholeWord = !this.searchOptions.wholeWord;
53
+ this.updateSearchInputBox(this.searchOptions.wholeWord, event.currentTarget);
54
+ };
55
+ this.handleRegexOptionClicked = (event) => {
56
+ this.searchOptions.regex = !this.searchOptions.regex;
57
+ this.updateSearchInputBox(this.searchOptions.regex, event.currentTarget);
58
+ };
59
+ this.onInputChanged = (event) => {
60
+ // move to previous search result on `Shift + Enter`
61
+ if (event && event.shiftKey && event.keyCode === browser_1.Key.ENTER.keyCode) {
62
+ this.search(false, 'previous');
63
+ return;
64
+ }
65
+ // move to next search result on `Enter`
66
+ if (event && event.keyCode === browser_1.Key.ENTER.keyCode) {
67
+ this.search(false, 'next');
68
+ return;
69
+ }
70
+ this.search(true, 'next');
71
+ };
72
+ this.handleNextButtonClicked = () => {
73
+ this.search(false, 'next');
74
+ };
75
+ this.handlePreviousButtonClicked = () => {
76
+ this.search(false, 'previous');
77
+ };
78
+ }
79
+ init() {
80
+ this.node.classList.add('theia-search-terminal-widget-parent');
81
+ this.searchAddon = new xterm_addon_search_1.SearchAddon();
82
+ this.terminal.loadAddon(this.searchAddon);
83
+ this.hide();
84
+ this.update();
85
+ }
86
+ render() {
87
+ return React.createElement("div", { className: 'theia-search-terminal-widget' },
88
+ React.createElement("div", { className: 'theia-search-elem-box', ref: searchBox => this.searchBox = searchBox },
89
+ React.createElement("input", { title: core_1.nls.localizeByDefault('Find'), type: 'text', spellCheck: 'false', placeholder: core_1.nls.localizeByDefault('Find'), ref: ip => this.searchInput = ip, onKeyUp: this.onInputChanged, onFocus: this.onSearchInputFocus, onBlur: this.onSearchInputBlur }),
90
+ React.createElement("div", { title: core_1.nls.localizeByDefault('Match Case'), tabIndex: 0, className: 'search-elem ' + (0, browser_1.codicon)('case-sensitive'), onClick: this.handleCaseSensitiveOptionClicked }),
91
+ React.createElement("div", { title: core_1.nls.localizeByDefault('Match Whole Word'), tabIndex: 0, className: 'search-elem ' + (0, browser_1.codicon)('whole-word'), onClick: this.handleWholeWordOptionClicked }),
92
+ React.createElement("div", { title: core_1.nls.localizeByDefault('Use Regular Expression'), tabIndex: 0, className: 'search-elem ' + (0, browser_1.codicon)('regex'), onClick: this.handleRegexOptionClicked })),
93
+ React.createElement("button", { title: core_1.nls.localizeByDefault('Previous Match'), className: 'search-elem ' + (0, browser_1.codicon)('arrow-up'), onClick: this.handlePreviousButtonClicked }),
94
+ React.createElement("button", { title: core_1.nls.localizeByDefault('Next Match'), className: 'search-elem ' + (0, browser_1.codicon)('arrow-down'), onClick: this.handleNextButtonClicked }),
95
+ React.createElement("button", { title: core_1.nls.localizeByDefault('Close'), className: 'search-elem ' + (0, browser_1.codicon)('close'), onClick: this.handleHide }));
96
+ }
97
+ updateSearchInputBox(enable, optionElement) {
98
+ if (enable) {
99
+ optionElement.classList.add('option-enabled');
100
+ }
101
+ else {
102
+ optionElement.classList.remove('option-enabled');
103
+ }
104
+ this.searchInput.focus();
105
+ }
106
+ search(incremental, searchDirection) {
107
+ if (this.searchInput) {
108
+ this.searchOptions.incremental = incremental;
109
+ const searchText = this.searchInput.value;
110
+ if (searchDirection === 'next') {
111
+ this.searchAddon.findNext(searchText, this.searchOptions);
112
+ }
113
+ if (searchDirection === 'previous') {
114
+ this.searchAddon.findPrevious(searchText, this.searchOptions);
115
+ }
116
+ }
117
+ }
118
+ onAfterHide() {
119
+ this.terminal.focus();
120
+ }
121
+ onAfterShow() {
122
+ if (this.searchInput) {
123
+ this.searchInput.select();
124
+ }
125
+ }
126
+ };
127
+ exports.TerminalSearchWidget = TerminalSearchWidget;
128
+ tslib_1.__decorate([
129
+ (0, inversify_1.inject)(xterm_1.Terminal),
130
+ tslib_1.__metadata("design:type", xterm_1.Terminal)
131
+ ], TerminalSearchWidget.prototype, "terminal", void 0);
132
+ tslib_1.__decorate([
133
+ (0, inversify_1.postConstruct)(),
134
+ tslib_1.__metadata("design:type", Function),
135
+ tslib_1.__metadata("design:paramtypes", []),
136
+ tslib_1.__metadata("design:returntype", void 0)
137
+ ], TerminalSearchWidget.prototype, "init", null);
138
+ exports.TerminalSearchWidget = TerminalSearchWidget = tslib_1.__decorate([
139
+ (0, inversify_1.injectable)()
140
+ ], TerminalSearchWidget);
141
+ //# sourceMappingURL=terminal-search-widget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-search-widget.js","sourceRoot":"","sources":["../../../src/browser/search/terminal-search-widget.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { URI } from '@theia/core';
2
+ import { TerminalService } from './base/terminal-service';
3
+ import { TerminalWidget, TerminalWidgetOptions } from './base/terminal-widget';
4
+ import { TerminalProfile } from './terminal-profile-service';
5
+ export declare class ShellTerminalProfile implements TerminalProfile {
6
+ protected readonly terminalService: TerminalService;
7
+ protected readonly options: TerminalWidgetOptions;
8
+ get shellPath(): string | undefined;
9
+ constructor(terminalService: TerminalService, options: TerminalWidgetOptions);
10
+ start(): Promise<TerminalWidget>;
11
+ /**
12
+ * Makes a copy of this profile modified with the options given
13
+ * as an argument.
14
+ * @param options the options to override
15
+ * @returns a modified copy of this profile
16
+ */
17
+ modify(options: {
18
+ cwd?: string | URI;
19
+ }): TerminalProfile;
20
+ }
21
+ //# sourceMappingURL=shell-terminal-profile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell-terminal-profile.d.ts","sourceRoot":"","sources":["../../src/browser/shell-terminal-profile.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,qBAAa,oBAAqB,YAAW,eAAe;IAM5C,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe;IAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,qBAAqB;IAJlH,IAAI,SAAS,IAAI,MAAM,GAAG,SAAS,CAElC;gBAE8B,eAAe,EAAE,eAAe,EAAqB,OAAO,EAAE,qBAAqB;IAE5G,KAAK,IAAI,OAAO,CAAC,cAAc,CAAC;IAMtC;;;;;OAKG;IACH,MAAM,CAAC,OAAO,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,GAAG,eAAe;CAG3D"}