roku-debug 0.9.3 → 0.10.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.
- package/CHANGELOG.md +23 -0
- package/LICENSE +21 -0
- package/README.md +6 -6
- package/dist/adapters/DebugProtocolAdapter.d.ts +18 -8
- package/dist/adapters/DebugProtocolAdapter.js +137 -94
- package/dist/adapters/DebugProtocolAdapter.js.map +1 -1
- package/dist/adapters/TelnetAdapter.d.ts +6 -1
- package/dist/adapters/TelnetAdapter.js +8 -1
- package/dist/adapters/TelnetAdapter.js.map +1 -1
- package/dist/debugProtocol/Constants.d.ts +57 -52
- package/dist/debugProtocol/Constants.js +74 -50
- package/dist/debugProtocol/Constants.js.map +1 -1
- package/dist/debugProtocol/Debugger.d.ts +11 -7
- package/dist/debugProtocol/Debugger.js +154 -114
- package/dist/debugProtocol/Debugger.js.map +1 -1
- package/dist/debugProtocol/responses/ConnectIOPortResponse.d.ts +2 -2
- package/dist/debugProtocol/responses/ConnectIOPortResponse.js +5 -3
- package/dist/debugProtocol/responses/ConnectIOPortResponse.js.map +1 -1
- package/dist/debugProtocol/responses/ExecuteResponseV3.d.ts +23 -0
- package/dist/debugProtocol/responses/ExecuteResponseV3.js +54 -0
- package/dist/debugProtocol/responses/ExecuteResponseV3.js.map +1 -0
- package/dist/debugProtocol/responses/HandshakeResponse.d.ts +2 -0
- package/dist/debugProtocol/responses/HandshakeResponse.js +8 -0
- package/dist/debugProtocol/responses/HandshakeResponse.js.map +1 -1
- package/dist/debugProtocol/responses/HandshakeResponseV3.d.ts +14 -0
- package/dist/debugProtocol/responses/HandshakeResponseV3.js +47 -0
- package/dist/debugProtocol/responses/HandshakeResponseV3.js.map +1 -0
- package/dist/debugProtocol/responses/{Response.d.ts → ProtocolEvent.d.ts} +4 -2
- package/dist/debugProtocol/responses/{Response.js → ProtocolEvent.js} +13 -7
- package/dist/debugProtocol/responses/ProtocolEvent.js.map +1 -0
- package/dist/debugProtocol/responses/ProtocolEventV3.d.ts +11 -0
- package/dist/debugProtocol/responses/ProtocolEventV3.js +42 -0
- package/dist/debugProtocol/responses/ProtocolEventV3.js.map +1 -0
- package/dist/debugProtocol/responses/StackTraceResponse.d.ts +1 -1
- package/dist/debugProtocol/responses/StackTraceResponse.js +2 -2
- package/dist/debugProtocol/responses/StackTraceResponse.js.map +1 -1
- package/dist/debugProtocol/responses/StackTraceResponseV3.d.ts +18 -0
- package/dist/debugProtocol/responses/StackTraceResponseV3.js +58 -0
- package/dist/debugProtocol/responses/StackTraceResponseV3.js.map +1 -0
- package/dist/debugProtocol/responses/ThreadsResponse.d.ts +1 -1
- package/dist/debugProtocol/responses/ThreadsResponse.js +2 -1
- package/dist/debugProtocol/responses/ThreadsResponse.js.map +1 -1
- package/dist/debugProtocol/responses/UndefinedResponse.d.ts +2 -2
- package/dist/debugProtocol/responses/UndefinedResponse.js +5 -3
- package/dist/debugProtocol/responses/UndefinedResponse.js.map +1 -1
- package/dist/debugProtocol/responses/UpdateThreadsResponse.d.ts +2 -2
- package/dist/debugProtocol/responses/UpdateThreadsResponse.js +26 -6
- package/dist/debugProtocol/responses/UpdateThreadsResponse.js.map +1 -1
- package/dist/debugProtocol/responses/VariableResponse.d.ts +1 -1
- package/dist/debugProtocol/responses/VariableResponse.js +16 -8
- package/dist/debugProtocol/responses/VariableResponse.js.map +1 -1
- package/dist/debugProtocol/responses/index.d.ts +4 -1
- package/dist/debugProtocol/responses/index.js +4 -1
- package/dist/debugProtocol/responses/index.js.map +1 -1
- package/dist/debugSession/BrightScriptDebugSession.d.ts +8 -2
- package/dist/debugSession/BrightScriptDebugSession.js +87 -62
- package/dist/debugSession/BrightScriptDebugSession.js.map +1 -1
- package/dist/interfaces.d.ts +4 -0
- package/dist/util.d.ts +10 -7
- package/dist/util.js +71 -0
- package/dist/util.js.map +1 -1
- package/package.json +6 -5
- package/roku-debug-0.10.1.tgz +0 -0
- package/dist/debugProtocol/responses/Response.js.map +0 -1
- package/roku-debug-0.9.3.tgz +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,29 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
9
|
+
## [0.10.1](https://github.com/rokucommunity/roku-debug/compare/v0.10.0...v0.10.1) - 2022-03-17
|
|
10
|
+
### Changed
|
|
11
|
+
- upgrade to [roku-deploy@3.5.3](https://github.com/rokucommunity/roku-deploy/blob/master/CHANGELOG.md#354---2022-03-17)
|
|
12
|
+
- fixes significant performance issues during globbing. ([roku-deploy#86](https://github.com/rokucommunity/roku-deploy/pull/86))
|
|
13
|
+
- upgrade to [brighterscript@0.5.6](https://github.com/rokucommunity/brighterscript/blob/master/CHANGELOG.md#0456---2022-03-17)
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
## [0.10.0](https://github.com/rokucommunity/roku-debug/compare/v0.9.4...v0.10.0) - 2022-03-08
|
|
18
|
+
### Added
|
|
19
|
+
- support for roku debug protocol v3.0.0
|
|
20
|
+
- support for eval/execute functionality over the debug protocol(v3.0.0+) from the debug console
|
|
21
|
+
### Changed
|
|
22
|
+
- running `print` statements in the debug console now runs an actual print statement. To do variable evaluation, simply type the name of the variable.
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
## [0.9.4](https://github.com/rokucommunity/roku-debug/compare/v0.9.3...v0.9.4) - 2022-02-24
|
|
27
|
+
### Changed
|
|
28
|
+
- upgrade to [brighterscript@0.5.2](https://github.com/rokucommunity/brighterscript/blob/master/CHANGELOG.md#0452---2022-02-24).
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
9
32
|
## [0.9.3](https://github.com/rokucommunity/roku-debug/compare/v0.9.2...v0.9.3) - 2022-01-28
|
|
10
33
|
### Changed
|
|
11
34
|
- upgrade to [brighterscript@0.43.0](https://github.com/rokucommunity/brighterscript/blob/master/CHANGELOG.md#0430---2022-01-28).
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2019 RokuCommunity
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# roku-debug
|
|
2
2
|
A [Debug Adapter Protocol](https://microsoft.github.io/debug-adapter-protocol/) server (for editors like VSCode) and a socket adapter for Roku's [BrightScript Debug Protocol](https://developer.roku.com/en-ca/docs/developer-program/debugging/socket-based-debugger.md)
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
[](https://github.com/rokucommunity/roku-debug/actions?query=workflow%3Abuild)
|
|
5
|
+
[](https://coveralls.io/github/rokucommunity/roku-debug?branch=master)
|
|
6
|
+
[](https://npmcharts.com/compare/roku-debug?minimal=true)
|
|
7
|
+
[](https://www.npmjs.com/package/roku-debug)
|
|
8
|
+
[](LICENSE)
|
|
9
|
+
[](https://join.slack.com/t/rokudevelopers/shared_invite/zt-4vw7rg6v-NH46oY7hTktpRIBM_zGvwA)
|
|
10
10
|
|
|
11
11
|
## Contributors
|
|
12
12
|
[](https://sourcerer.io/fame/TwitchBronBron/rokucommunity/roku-debug/links/0)[](https://sourcerer.io/fame/TwitchBronBron/rokucommunity/roku-debug/links/1)[](https://sourcerer.io/fame/TwitchBronBron/rokucommunity/roku-debug/links/2)[](https://sourcerer.io/fame/TwitchBronBron/rokucommunity/roku-debug/links/3)[](https://sourcerer.io/fame/TwitchBronBron/rokucommunity/roku-debug/links/4)[](https://sourcerer.io/fame/TwitchBronBron/rokucommunity/roku-debug/links/5)[](https://sourcerer.io/fame/TwitchBronBron/rokucommunity/roku-debug/links/6)[](https://sourcerer.io/fame/TwitchBronBron/rokucommunity/roku-debug/links/7)
|
|
@@ -2,7 +2,7 @@ import type { ProtocolVersionDetails } from '../debugProtocol/Debugger';
|
|
|
2
2
|
import type { RendezvousHistory } from '../RendezvousTracker';
|
|
3
3
|
import type { ChanperfData } from '../ChanperfTracker';
|
|
4
4
|
import type { SourceLocation } from '../managers/LocationManager';
|
|
5
|
-
import type { HighLevelType } from '../interfaces';
|
|
5
|
+
import type { HighLevelType, RokuAdapterEvaluateResponse } from '../interfaces';
|
|
6
6
|
/**
|
|
7
7
|
* A class that connects to a Roku device over telnet debugger port and provides a standardized way of interacting with it.
|
|
8
8
|
*/
|
|
@@ -12,6 +12,12 @@ export declare class DebugProtocolAdapter {
|
|
|
12
12
|
constructor(host: string, stopOnEntry?: boolean);
|
|
13
13
|
private logger;
|
|
14
14
|
connected: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Due to casing issues with the variables request on some versions of the debug protocol, we first need to try the request in the supplied case.
|
|
17
|
+
* If that fails we retry in lower case. This flag is used to drive that logic switching
|
|
18
|
+
*/
|
|
19
|
+
private enableVariablesLowerCaseRetry;
|
|
20
|
+
private supportsExecuteCommand;
|
|
15
21
|
private compileClient;
|
|
16
22
|
private compileErrorProcessor;
|
|
17
23
|
private emitter;
|
|
@@ -21,6 +27,10 @@ export declare class DebugProtocolAdapter {
|
|
|
21
27
|
private nextFrameId;
|
|
22
28
|
private stackFramesCache;
|
|
23
29
|
private cache;
|
|
30
|
+
/**
|
|
31
|
+
* Get the version of the protocol for the Roku device we're currently connected to.
|
|
32
|
+
*/
|
|
33
|
+
get activeProtocolVersion(): string;
|
|
24
34
|
readonly supportsMultipleRuns = false;
|
|
25
35
|
/**
|
|
26
36
|
* Subscribe to various events
|
|
@@ -73,9 +83,9 @@ export declare class DebugProtocolAdapter {
|
|
|
73
83
|
/**
|
|
74
84
|
* Send command to step over
|
|
75
85
|
*/
|
|
76
|
-
stepOver(threadId: number): Promise<import("..").
|
|
77
|
-
stepInto(threadId: number): Promise<import("..").
|
|
78
|
-
stepOut(threadId: number): Promise<import("..").
|
|
86
|
+
stepOver(threadId: number): Promise<import("..").ProtocolEvent>;
|
|
87
|
+
stepInto(threadId: number): Promise<import("..").ProtocolEvent>;
|
|
88
|
+
stepOut(threadId: number): Promise<import("..").ProtocolEvent>;
|
|
79
89
|
/**
|
|
80
90
|
* Tell the brightscript program to continue (i.e. resume program)
|
|
81
91
|
*/
|
|
@@ -83,7 +93,7 @@ export declare class DebugProtocolAdapter {
|
|
|
83
93
|
/**
|
|
84
94
|
* Tell the brightscript program to pause (fall into debug mode)
|
|
85
95
|
*/
|
|
86
|
-
pause(): Promise<import("..").
|
|
96
|
+
pause(): Promise<import("..").ProtocolEvent>;
|
|
87
97
|
/**
|
|
88
98
|
* Clears the state, which means that everything will be retrieved fresh next time it is requested
|
|
89
99
|
*/
|
|
@@ -91,17 +101,17 @@ export declare class DebugProtocolAdapter {
|
|
|
91
101
|
/**
|
|
92
102
|
* Execute a command directly on the roku. Returns the output of the command
|
|
93
103
|
* @param command
|
|
104
|
+
* @returns the output of the command (if possible)
|
|
94
105
|
*/
|
|
95
|
-
evaluate(command: string, frameId?: number): Promise<
|
|
106
|
+
evaluate(command: string, frameId?: number): Promise<RokuAdapterEvaluateResponse>;
|
|
96
107
|
getStackTrace(threadId?: number): Promise<StackFrame[]>;
|
|
97
|
-
private
|
|
108
|
+
private getStackFrameById;
|
|
98
109
|
private cleanUpFunctionName;
|
|
99
110
|
/**
|
|
100
111
|
* Given an expression, evaluate that statement ON the roku
|
|
101
112
|
* @param expression
|
|
102
113
|
*/
|
|
103
114
|
getVariable(expression: string, frameId: number, withChildren?: boolean): Promise<EvaluateContainer>;
|
|
104
|
-
getVariablePath(expression: string): string[];
|
|
105
115
|
/**
|
|
106
116
|
* Cache items by a unique key
|
|
107
117
|
* @param expression
|
|
@@ -7,8 +7,10 @@ const net_1 = require("net");
|
|
|
7
7
|
const CompileErrorProcessor_1 = require("../CompileErrorProcessor");
|
|
8
8
|
const RendezvousTracker_1 = require("../RendezvousTracker");
|
|
9
9
|
const ChanperfTracker_1 = require("../ChanperfTracker");
|
|
10
|
+
const Constants_1 = require("../debugProtocol/Constants");
|
|
10
11
|
const util_1 = require("../util");
|
|
11
12
|
const logging_1 = require("../logging");
|
|
13
|
+
const semver = require("semver");
|
|
12
14
|
/**
|
|
13
15
|
* A class that connects to a Roku device over telnet debugger port and provides a standardized way of interacting with it.
|
|
14
16
|
*/
|
|
@@ -17,6 +19,11 @@ class DebugProtocolAdapter {
|
|
|
17
19
|
this.host = host;
|
|
18
20
|
this.stopOnEntry = stopOnEntry;
|
|
19
21
|
this.logger = logging_1.logger.createLogger(`[${DebugProtocolAdapter.name}]`);
|
|
22
|
+
/**
|
|
23
|
+
* Due to casing issues with the variables request on some versions of the debug protocol, we first need to try the request in the supplied case.
|
|
24
|
+
* If that fails we retry in lower case. This flag is used to drive that logic switching
|
|
25
|
+
*/
|
|
26
|
+
this.enableVariablesLowerCaseRetry = true;
|
|
20
27
|
this.nextFrameId = 1;
|
|
21
28
|
this.stackFramesCache = {};
|
|
22
29
|
this.cache = {};
|
|
@@ -43,6 +50,13 @@ class DebugProtocolAdapter {
|
|
|
43
50
|
this.emit('rendezvous', output);
|
|
44
51
|
});
|
|
45
52
|
}
|
|
53
|
+
/**
|
|
54
|
+
* Get the version of the protocol for the Roku device we're currently connected to.
|
|
55
|
+
*/
|
|
56
|
+
get activeProtocolVersion() {
|
|
57
|
+
var _a;
|
|
58
|
+
return (_a = this.socketDebugger) === null || _a === void 0 ? void 0 : _a.protocolVersion;
|
|
59
|
+
}
|
|
46
60
|
on(eventName, handler) {
|
|
47
61
|
this.emitter.on(eventName, handler);
|
|
48
62
|
return () => {
|
|
@@ -124,7 +138,7 @@ class DebugProtocolAdapter {
|
|
|
124
138
|
// Emit IO from the debugger.
|
|
125
139
|
// eslint-disable-next-line @typescript-eslint/no-misused-promises
|
|
126
140
|
this.socketDebugger.on('io-output', async (responseText) => {
|
|
127
|
-
if (responseText) {
|
|
141
|
+
if (typeof responseText === 'string') {
|
|
128
142
|
responseText = this.chanperfTracker.processLog(responseText);
|
|
129
143
|
responseText = await this.rendezvousTracker.processLog(responseText);
|
|
130
144
|
this.emit('unhandled-console-output', responseText);
|
|
@@ -133,17 +147,24 @@ class DebugProtocolAdapter {
|
|
|
133
147
|
});
|
|
134
148
|
// Emit IO from the debugger.
|
|
135
149
|
this.socketDebugger.on('protocol-version', (data) => {
|
|
136
|
-
if (data.errorCode ===
|
|
150
|
+
if (data.errorCode === Constants_1.PROTOCOL_ERROR_CODES.SUPPORTED) {
|
|
137
151
|
this.emit('console-output', data.message);
|
|
138
152
|
}
|
|
139
|
-
else if (data.errorCode ===
|
|
153
|
+
else if (data.errorCode === Constants_1.PROTOCOL_ERROR_CODES.NOT_TESTED) {
|
|
140
154
|
this.emit('unhandled-console-output', data.message);
|
|
141
155
|
this.emit('console-output', data.message);
|
|
142
156
|
}
|
|
143
|
-
else if (data.errorCode ===
|
|
157
|
+
else if (data.errorCode === Constants_1.PROTOCOL_ERROR_CODES.NOT_SUPPORTED) {
|
|
144
158
|
this.emit('unhandled-console-output', data.message);
|
|
145
159
|
this.emit('console-output', data.message);
|
|
146
160
|
}
|
|
161
|
+
// TODO: Update once we know the exact version of the debug protocol this issue was fixed in.
|
|
162
|
+
// Due to casing issues with variables on protocol version <FUTURE_VERSION> and under we first need to try the request in the supplied case.
|
|
163
|
+
// If that fails we retry in lower case.
|
|
164
|
+
this.enableVariablesLowerCaseRetry = semver.satisfies(this.activeProtocolVersion, '*');
|
|
165
|
+
// While execute was added as a command in 2.1.0. It has shortcoming that prevented us for leveraging the command.
|
|
166
|
+
// This was mostly addressed in the 3.0.0 release to the point where we were comfortable adding support for the command.
|
|
167
|
+
this.supportsExecuteCommand = semver.satisfies(this.activeProtocolVersion, '>=3.0.0');
|
|
147
168
|
});
|
|
148
169
|
// Listen for the close event
|
|
149
170
|
this.socketDebugger.on('close', () => {
|
|
@@ -164,6 +185,7 @@ class DebugProtocolAdapter {
|
|
|
164
185
|
this.emit('app-exit');
|
|
165
186
|
});
|
|
166
187
|
this.socketDebugger.on('suspend', (data) => {
|
|
188
|
+
this.clearCache();
|
|
167
189
|
this.emit('suspend', data);
|
|
168
190
|
});
|
|
169
191
|
this.socketDebugger.on('runtime-error', (data) => {
|
|
@@ -278,13 +300,40 @@ class DebugProtocolAdapter {
|
|
|
278
300
|
/**
|
|
279
301
|
* Execute a command directly on the roku. Returns the output of the command
|
|
280
302
|
* @param command
|
|
303
|
+
* @returns the output of the command (if possible)
|
|
281
304
|
*/
|
|
282
305
|
async evaluate(command, frameId = this.socketDebugger.primaryThread) {
|
|
283
|
-
|
|
284
|
-
|
|
306
|
+
var _a, _b, _c;
|
|
307
|
+
if (this.supportsExecuteCommand) {
|
|
308
|
+
if (!this.isAtDebuggerPrompt) {
|
|
309
|
+
throw new Error('Cannot run evaluate: debugger is not paused');
|
|
310
|
+
}
|
|
311
|
+
let stackFrame = this.getStackFrameById(frameId);
|
|
312
|
+
if (!stackFrame) {
|
|
313
|
+
throw new Error('Cannot execute command without a corresponding frame');
|
|
314
|
+
}
|
|
315
|
+
this.logger.log('evaluate ', { command, frameId });
|
|
316
|
+
const response = await this.socketDebugger.executeCommand(command, stackFrame.frameIndex, stackFrame.threadIndex);
|
|
317
|
+
this.logger.info('evaluate response', { command, response });
|
|
318
|
+
if (response.executeSuccess) {
|
|
319
|
+
return {
|
|
320
|
+
message: undefined,
|
|
321
|
+
type: 'message'
|
|
322
|
+
};
|
|
323
|
+
}
|
|
324
|
+
else {
|
|
325
|
+
return {
|
|
326
|
+
message: (_c = (_b = (_a = response.compileErrors.messages[0]) !== null && _a !== void 0 ? _a : response.runtimeErrors.messages[0]) !== null && _b !== void 0 ? _b : response.otherErrors.messages[0]) !== null && _c !== void 0 ? _c : 'Unknown error executing command',
|
|
327
|
+
type: 'error'
|
|
328
|
+
};
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
else {
|
|
332
|
+
return {
|
|
333
|
+
message: `Execute commands are not supported on debug protocol: ${this.activeProtocolVersion}, v3.0.0 or greater is required.`,
|
|
334
|
+
type: 'error'
|
|
335
|
+
};
|
|
285
336
|
}
|
|
286
|
-
// Pipe all evaluate requests though as a variable request as evaluate is not available at the moment.
|
|
287
|
-
return this.getVariable(command, frameId);
|
|
288
337
|
}
|
|
289
338
|
async getStackTrace(threadId = this.socketDebugger.primaryThread) {
|
|
290
339
|
if (!this.isAtDebuggerPrompt) {
|
|
@@ -296,7 +345,7 @@ class DebugProtocolAdapter {
|
|
|
296
345
|
let stackTraceData = await this.socketDebugger.stackTrace(threadId);
|
|
297
346
|
for (let i = 0; i < stackTraceData.stackSize; i++) {
|
|
298
347
|
let frameData = stackTraceData.entries[i];
|
|
299
|
-
let
|
|
348
|
+
let stackFrame = {
|
|
300
349
|
frameId: this.nextFrameId++,
|
|
301
350
|
frameIndex: stackTraceData.stackSize - i - 1,
|
|
302
351
|
threadIndex: threadId,
|
|
@@ -306,13 +355,13 @@ class DebugProtocolAdapter {
|
|
|
306
355
|
// eslint-disable-next-line no-nested-ternary
|
|
307
356
|
functionIdentifier: this.cleanUpFunctionName(i === 0 ? (frameData.functionName) ? frameData.functionName : thread.functionName : frameData.functionName)
|
|
308
357
|
};
|
|
309
|
-
this.stackFramesCache[
|
|
310
|
-
frames.push(
|
|
358
|
+
this.stackFramesCache[stackFrame.frameId] = stackFrame;
|
|
359
|
+
frames.push(stackFrame);
|
|
311
360
|
}
|
|
312
361
|
return frames;
|
|
313
362
|
});
|
|
314
363
|
}
|
|
315
|
-
|
|
364
|
+
getStackFrameById(frameId) {
|
|
316
365
|
return this.stackFramesCache[frameId];
|
|
317
366
|
}
|
|
318
367
|
cleanUpFunctionName(functionName) {
|
|
@@ -328,99 +377,92 @@ class DebugProtocolAdapter {
|
|
|
328
377
|
if (!this.isAtDebuggerPrompt) {
|
|
329
378
|
throw new Error('Cannot resolve variable: debugger is not paused');
|
|
330
379
|
}
|
|
331
|
-
let frame = this.
|
|
380
|
+
let frame = this.getStackFrameById(frameId);
|
|
332
381
|
if (!frame) {
|
|
333
382
|
throw new Error('Cannot request variable without a corresponding frame');
|
|
334
383
|
}
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
384
|
+
logger.log(`Expression:`, expression);
|
|
385
|
+
let variablePath = expression === '' ? [] : util_1.util.getVariablePath(expression);
|
|
386
|
+
// Temporary workaround related to casing issues over the protocol
|
|
387
|
+
if (this.enableVariablesLowerCaseRetry && (variablePath === null || variablePath === void 0 ? void 0 : variablePath.length) > 0) {
|
|
388
|
+
variablePath[0] = variablePath[0].toLowerCase();
|
|
389
|
+
}
|
|
390
|
+
let response = await this.socketDebugger.getVariables(variablePath, withChildren, frame.frameIndex, frame.threadIndex);
|
|
391
|
+
if (this.enableVariablesLowerCaseRetry && response.errorCode !== Constants_1.ERROR_CODES.OK) {
|
|
392
|
+
// Temporary workaround related to casing issues over the protocol
|
|
393
|
+
logger.log(`Retrying expression as lower case:`, expression);
|
|
394
|
+
variablePath = expression === '' ? [] : util_1.util.getVariablePath(expression === null || expression === void 0 ? void 0 : expression.toLowerCase());
|
|
395
|
+
response = await this.socketDebugger.getVariables(variablePath, withChildren, frame.frameIndex, frame.threadIndex);
|
|
396
|
+
}
|
|
397
|
+
if (response.errorCode === Constants_1.ERROR_CODES.OK) {
|
|
398
|
+
let mainContainer;
|
|
399
|
+
let children = [];
|
|
400
|
+
let firstHandled = false;
|
|
401
|
+
for (let variable of response.variables) {
|
|
402
|
+
let value;
|
|
403
|
+
let variableType = variable.variableType;
|
|
404
|
+
if (variable.value === null) {
|
|
405
|
+
value = 'roInvalid';
|
|
406
|
+
}
|
|
407
|
+
else if (variableType === 'String') {
|
|
408
|
+
value = `\"${variable.value}\"`;
|
|
409
|
+
}
|
|
410
|
+
else {
|
|
411
|
+
value = variable.value;
|
|
412
|
+
}
|
|
413
|
+
if (variableType === 'Subtyped_Object') {
|
|
414
|
+
let parts = variable.value.split('; ');
|
|
415
|
+
variableType = `${parts[0]} (${parts[1]})`;
|
|
416
|
+
}
|
|
417
|
+
else if (variableType === 'AA') {
|
|
418
|
+
variableType = 'AssociativeArray';
|
|
419
|
+
}
|
|
420
|
+
let container = {
|
|
421
|
+
name: expression,
|
|
422
|
+
evaluateName: expression,
|
|
423
|
+
variablePath: variablePath,
|
|
424
|
+
type: variableType,
|
|
425
|
+
value: value,
|
|
426
|
+
keyType: variable.keyType,
|
|
427
|
+
elementCount: variable.elementCount
|
|
428
|
+
};
|
|
429
|
+
if (!firstHandled && variablePath.length > 0) {
|
|
430
|
+
firstHandled = true;
|
|
431
|
+
mainContainer = container;
|
|
432
|
+
}
|
|
433
|
+
else {
|
|
434
|
+
if (!firstHandled && variablePath.length === 0) {
|
|
435
|
+
// If this is a scope request there will be no entries in the variable path
|
|
436
|
+
// We will need to create a fake mainContainer
|
|
437
|
+
firstHandled = true;
|
|
438
|
+
mainContainer = {
|
|
439
|
+
name: expression,
|
|
440
|
+
evaluateName: expression,
|
|
441
|
+
variablePath: variablePath,
|
|
442
|
+
type: '',
|
|
443
|
+
value: null,
|
|
444
|
+
keyType: 'String',
|
|
445
|
+
elementCount: response.numVariables
|
|
446
|
+
};
|
|
347
447
|
}
|
|
348
|
-
|
|
349
|
-
|
|
448
|
+
let pathAddition = mainContainer.keyType === 'Integer' ? children.length : variable.name;
|
|
449
|
+
container.name = pathAddition.toString();
|
|
450
|
+
if (mainContainer.evaluateName) {
|
|
451
|
+
container.evaluateName = `${mainContainer.evaluateName}["${pathAddition}"]`;
|
|
350
452
|
}
|
|
351
453
|
else {
|
|
352
|
-
|
|
454
|
+
container.evaluateName = pathAddition.toString();
|
|
353
455
|
}
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
}
|
|
358
|
-
else if (variableType === 'AA') {
|
|
359
|
-
variableType = 'AssociativeArray';
|
|
360
|
-
}
|
|
361
|
-
let container = {
|
|
362
|
-
name: expression,
|
|
363
|
-
evaluateName: expression,
|
|
364
|
-
variablePath: variablePath,
|
|
365
|
-
type: variableType,
|
|
366
|
-
value: value,
|
|
367
|
-
keyType: variable.keyType,
|
|
368
|
-
elementCount: variable.elementCount
|
|
369
|
-
};
|
|
370
|
-
if (!firstHandled && variablePath.length > 0) {
|
|
371
|
-
firstHandled = true;
|
|
372
|
-
mainContainer = container;
|
|
373
|
-
}
|
|
374
|
-
else {
|
|
375
|
-
if (!firstHandled && variablePath.length === 0) {
|
|
376
|
-
// If this is a scope request there will be no entries in the variable path
|
|
377
|
-
// We will need to create a fake mainContainer
|
|
378
|
-
firstHandled = true;
|
|
379
|
-
mainContainer = {
|
|
380
|
-
name: expression,
|
|
381
|
-
evaluateName: expression,
|
|
382
|
-
variablePath: variablePath,
|
|
383
|
-
type: '',
|
|
384
|
-
value: null,
|
|
385
|
-
keyType: 'String',
|
|
386
|
-
elementCount: response.numVariables
|
|
387
|
-
};
|
|
388
|
-
}
|
|
389
|
-
let pathAddition = mainContainer.keyType === 'Integer' ? children.length : variable.name;
|
|
390
|
-
container.name = pathAddition.toString();
|
|
391
|
-
if (mainContainer.evaluateName) {
|
|
392
|
-
container.evaluateName = `${mainContainer.evaluateName}.${pathAddition}`;
|
|
393
|
-
}
|
|
394
|
-
else {
|
|
395
|
-
container.evaluateName = pathAddition.toString();
|
|
396
|
-
}
|
|
397
|
-
container.variablePath = [].concat(container.variablePath, [pathAddition.toString()]);
|
|
398
|
-
if (container.keyType) {
|
|
399
|
-
container.children = [];
|
|
400
|
-
}
|
|
401
|
-
children.push(container);
|
|
456
|
+
container.variablePath = [].concat(container.variablePath, [pathAddition.toString()]);
|
|
457
|
+
if (container.keyType) {
|
|
458
|
+
container.children = [];
|
|
402
459
|
}
|
|
460
|
+
children.push(container);
|
|
403
461
|
}
|
|
404
|
-
mainContainer.children = children;
|
|
405
|
-
return mainContainer;
|
|
406
462
|
}
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
getVariablePath(expression) {
|
|
410
|
-
var _a, _b, _c;
|
|
411
|
-
// Regex 101 link for match examples: https://regex101.com/r/KNKfHP/8
|
|
412
|
-
let regexp = /(?:\[\"(.*?)\"\]|([a-z_][a-z0-9_\$%!#]*)|\[([0-9]*)\]|\.([0-9]+))/gi;
|
|
413
|
-
let match;
|
|
414
|
-
let variablePath = [];
|
|
415
|
-
// eslint-disable-next-line no-cond-assign
|
|
416
|
-
while (match = regexp.exec(expression)) {
|
|
417
|
-
// match 1: strings between quotes - this["that"]
|
|
418
|
-
// match 2: any valid brightscript viable format
|
|
419
|
-
// match 3: array/list access via index - this[0]
|
|
420
|
-
// match 3: array/list access via dot notation (not valid in code but returned as part of the VS Code flow) - this.0
|
|
421
|
-
variablePath.push((_c = (_b = (_a = match[1]) !== null && _a !== void 0 ? _a : match[2]) !== null && _b !== void 0 ? _b : match[3]) !== null && _c !== void 0 ? _c : match[4]);
|
|
463
|
+
mainContainer.children = children;
|
|
464
|
+
return mainContainer;
|
|
422
465
|
}
|
|
423
|
-
return variablePath;
|
|
424
466
|
}
|
|
425
467
|
/**
|
|
426
468
|
* Cache items by a unique key
|
|
@@ -429,6 +471,7 @@ class DebugProtocolAdapter {
|
|
|
429
471
|
*/
|
|
430
472
|
resolve(key, factory) {
|
|
431
473
|
if (this.cache[key]) {
|
|
474
|
+
this.logger.log('return cashed response', key, this.cache[key]);
|
|
432
475
|
return this.cache[key];
|
|
433
476
|
}
|
|
434
477
|
this.cache[key] = Promise.resolve(factory());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DebugProtocolAdapter.js","sourceRoot":"","sources":["../../src/adapters/DebugProtocolAdapter.ts"],"names":[],"mappings":";;;AACA,wDAAqD;AACrD,uCAAuC;AACvC,6BAA6B;AAC7B,oEAAiE;AAEjE,4DAAyD;AAEzD,wDAAqD;AAGrD,kCAAgC;AAChC,wCAAoC;AAGpC;;GAEG;AACH,MAAa,oBAAoB;IAC7B,YACY,IAAY,EACZ,cAAuB,KAAK;QAD5B,SAAI,GAAJ,IAAI,CAAQ;QACZ,gBAAW,GAAX,WAAW,CAAiB;QAkBhC,WAAM,GAAG,gBAAM,CAAC,YAAY,CAAC,IAAI,oBAAoB,CAAC,IAAI,GAAG,CAAC,CAAC;QAU/D,gBAAW,GAAG,CAAC,CAAC;QAEhB,qBAAgB,GAA+B,EAAE,CAAC;QAClD,UAAK,GAAG,EAAE,CAAC;QAEH,yBAAoB,GAAG,KAAK,CAAC;QAyD7C;;WAEG;QACI,gBAAW,GAAG,KAAK,CAAC;QAE3B;;;WAGG;QACI,iBAAY,GAAG,KAAK,CAAC;QAjGxB,IAAI,CAAC,OAAO,GAAG,IAAI,YAAY,EAAE,CAAC;QAClC,IAAI,CAAC,eAAe,GAAG,IAAI,iCAAe,EAAE,CAAC;QAC7C,IAAI,CAAC,iBAAiB,GAAG,IAAI,qCAAiB,EAAE,CAAC;QACjD,IAAI,CAAC,qBAAqB,GAAG,IAAI,6CAAqB,EAAE,CAAC;QAEzD,4BAA4B;QAC5B,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE;YAC3C,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,8BAA8B;QAC9B,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE;YAC/C,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACP,CAAC;IAqCM,EAAE,CAAC,SAAiB,EAAE,OAA+B;QACxD,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACpC,OAAO,GAAG,EAAE;YACR,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE;gBAC5B,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;aACnD;QACL,CAAC,CAAC;IACN,CAAC;IAEO,IAAI;IACR,oBAAoB;IACpB,SAa8B;IAC9B,mBAAmB;IACnB,IAAK;QAEL,uGAAuG;QACvG,UAAU,CAAC,GAAG,EAAE;YACZ,+GAA+G;YAC/G,IAAI,IAAI,CAAC,OAAO,EAAE;gBACd,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;aACtC;QACL,CAAC,EAAE,CAAC,CAAC,CAAC;IACV,CAAC;IAaM,KAAK,CAAC,QAAQ;QACjB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;IACtC,CAAC;IAEM,KAAK,CAAC,UAAU;QACnB,MAAM,IAAI,CAAC,qBAAqB,CAAC,UAAU,EAAE,CAAC;IAClD,CAAC;IAEO,KAAK,CAAC,oBAAoB;QAC9B,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,YAAY,EAAE;YACvC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAEnB,0FAA0F;YAC1F,0FAA0F;YAC1F,wCAAwC;YACxC,IAAI,IAAI,CAAC,kBAAkB,KAAK,IAAI,EAAE;gBAClC,IAAI,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;gBACtC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;aAC7C;SACJ;IACL,CAAC;IAED;;;;;OAKG;IACK,MAAM,CAAC,MAAc,EAAE,IAAY,EAAE,mBAAmB,GAAG,GAAG;QAClE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3B,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC;YAEnB,SAAS,OAAO;gBACZ,SAAS,EAAE,CAAC;gBACZ,IAAI,WAAW,GAAG,SAAS,CAAC;gBAC5B,UAAU,CAAC,GAAG,EAAE;oBACZ,2FAA2F;oBAC3F,IAAI,WAAW,KAAK,SAAS,EAAE;wBAC3B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;wBACrC,OAAO,CAAC,SAAS,CAAC,CAAC;qBACtB;gBACL,CAAC,EAAE,mBAAmB,CAAC,CAAC;YAC5B,CAAC;YAED,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAClC,mDAAmD;YACnD,OAAO,EAAE,CAAC;QACd,CAAC,CAAC,CAAC;IACP,CAAC;IAED,IAAW,kBAAkB;QACzB,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;IACvE,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,OAAO;QAChB,IAAI,QAAQ,GAAG,IAAA,YAAK,GAAE,CAAC;QACvB,IAAI,CAAC,cAAc,GAAG,IAAI,mBAAQ,CAAC;YAC/B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;SAChC,CAAC,CAAC;QACH,IAAI;YACA,6BAA6B;YAC7B,kEAAkE;YAClE,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE;gBACvD,IAAI,YAAY,EAAE;oBACd,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;oBAC7D,YAAY,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;oBACrE,IAAI,CAAC,IAAI,CAAC,0BAA0B,EAAE,YAAY,CAAC,CAAC;oBACpD,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;iBAC7C;YACL,CAAC,CAAC,CAAC;YAEH,6BAA6B;YAC7B,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC,IAA4B,EAAE,EAAE;gBACxE,IAAI,IAAI,CAAC,SAAS,sBAAmC,EAAE;oBACnD,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;iBAC7C;qBAAM,IAAI,IAAI,CAAC,SAAS,uBAAoC,EAAE;oBAC3D,IAAI,CAAC,IAAI,CAAC,0BAA0B,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;oBACpD,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;iBAC7C;qBAAM,IAAI,IAAI,CAAC,SAAS,0BAAuC,EAAE;oBAC9D,IAAI,CAAC,IAAI,CAAC,0BAA0B,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;oBACpD,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;iBAC7C;YACL,CAAC,CAAC,CAAC;YAEH,6BAA6B;YAC7B,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBACjC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACnB,IAAI,CAAC,YAAY,EAAE,CAAC;YACxB,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;YAErD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;YACrE,IAAI,IAAI,CAAC,aAAa,EAAE;gBACpB,IAAI,CAAC,aAAa,CAAC,kBAAkB,EAAE,CAAC;gBACxC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;gBAC7B,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;aAClC;YAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;YACvF,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAEvC,gCAAgC;YAChC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE;gBACpC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC1B,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE;gBACvC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAC/B,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBAC7C,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;gBACzC,IAAI,CAAC,IAAI,CAAC,eAAe,EAA4B;oBACjD,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB;oBACnC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU;iBAClC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE;gBAC3C,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC;YAEH,oEAAoE;YACpE,QAAQ,CAAC,OAAO,EAAE,CAAC;SACtB;QAAC,OAAO,CAAC,EAAE;YACR,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SACtB;QACD,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC5B,CAAC;IAEO,YAAY;QAChB,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,GAAG,UAAU,CAAC,GAAG,EAAE;YAC3D,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1B,CAAC,EAAE,GAAG,CAAC,CAAC;IACZ,CAAC;IAEM,KAAK,CAAC,kBAAkB;QAC3B,IAAI,QAAQ,GAAG,IAAA,YAAK,GAAE,CAAC;QACvB,IAAI;YACA,IAAI,CAAC,aAAa,GAAG,IAAI,YAAM,EAAE,CAAC;YAClC,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,MAAM,EAAE,EAAE;gBACvD,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;gBACzB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;YACxC,CAAC,CAAC,CAAC;YAEH,qDAAqD;YACrD,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBAC5C,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,6BAA6B,IAAI,CAAC,IAAI,SAAS,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;YAC9F,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8CAA8C,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACtF,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE;gBAC7C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,6CAA6C,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACxF,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;YAC9D,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;YAC9C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAEhD,IAAI,eAAe,GAAG,EAAE,CAAC;YACzB,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;gBACrC,IAAI,YAAY,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACrC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;gBAClE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;oBAC9B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;oBACtC,0CAA0C;oBAC1C,eAAe,IAAI,YAAY,CAAC;iBACnC;qBAAM;oBACH,IAAI,eAAe,EAAE;wBACjB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qEAAqE,EAAE,EAAE,eAAe,EAAE,YAAY,EAAE,CAAC,CAAC;wBAC5H,iEAAiE;wBACjE,YAAY,GAAG,eAAe,GAAG,YAAY,CAAC;wBAC9C,eAAe,GAAG,EAAE,CAAC;qBACxB;oBACD,gCAAgC;oBAChC,IAAI,CAAC,qBAAqB,CAAC,qBAAqB,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;oBACtE,IAAI,CAAC,IAAI,CAAC,0BAA0B,EAAE,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;iBAC9D;YACL,CAAC,CAAC,CAAC;YAEH,2CAA2C;YAC3C,QAAQ,CAAC,OAAO,EAAE,CAAC;SACtB;QAAC,OAAO,CAAC,EAAE;YACR,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SACtB;QACD,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC5B,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,QAAQ,CAAC,QAAgB;QAClC,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAClD,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,QAAgB;QAClC,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAChD,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,QAAgB;QACjC,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,QAAQ;QACjB,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;IAC1C,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,KAAK;QACd,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,uDAAuD;QACvD,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;IACvC,CAAC;IAED;;OAEG;IACI,UAAU;QACb,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;IAC/B,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,QAAQ,CAAC,OAAe,EAAE,UAAkB,IAAI,CAAC,cAAc,CAAC,aAAa;QACtF,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC1B,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;SAClE;QAED,sGAAsG;QACtG,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,WAAmB,IAAI,CAAC,cAAc,CAAC,aAAa;QAC3E,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC1B,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;SACrE;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,0BAA0B,QAAQ,EAAE,EAAE,KAAK,IAAI,EAAE;YACjE,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YACtD,IAAI,MAAM,GAAiB,EAAE,CAAC;YAC9B,IAAI,cAAc,GAAQ,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACzE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;gBAC/C,IAAI,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC1C,IAAI,KAAK,GAAe;oBACpB,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE;oBAC3B,UAAU,EAAE,cAAc,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC;oBAC5C,WAAW,EAAE,QAAQ;oBACrB,6CAA6C;oBAC7C,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ;oBACpG,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU;oBAC9D,6CAA6C;oBAC7C,kBAAkB,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC;iBAC3J,CAAC;gBACF,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;gBAC7C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACtB;YAED,OAAO,MAAM,CAAC;QAClB,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,iBAAiB,CAAC,OAAe;QACrC,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAEO,mBAAmB,CAAC,YAAY;QACpC,OAAO,YAAY,CAAC,SAAS,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACrE,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,WAAW,CAAC,UAAkB,EAAE,OAAe,EAAE,YAAY,GAAG,IAAI;QAC7E,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;QACxD,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC1B,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;SACtE;QAED,IAAI,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,CAAC,KAAK,EAAE;YACR,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;SAC5E;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,UAAU,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,WAAW,GAAG,EAAE,KAAK,IAAI,EAAE;YAChG,IAAI,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;YACpD,IAAI,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,YAAY,EAAE,YAAY,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;YAEvH,IAAI,QAAQ,CAAC,SAAS,KAAK,IAAI,EAAE;gBAC7B,IAAI,aAAgC,CAAC;gBACrC,IAAI,QAAQ,GAAwB,EAAE,CAAC;gBACvC,IAAI,YAAY,GAAG,KAAK,CAAC;gBACzB,KAAK,IAAI,QAAQ,IAAI,QAAQ,CAAC,SAAS,EAAE;oBACrC,IAAI,KAAK,CAAC;oBACV,IAAI,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;oBACzC,IAAI,QAAQ,CAAC,KAAK,KAAK,IAAI,EAAE;wBACzB,KAAK,GAAG,WAAW,CAAC;qBACvB;yBAAM,IAAI,YAAY,KAAK,QAAQ,EAAE;wBAClC,KAAK,GAAG,KAAK,QAAQ,CAAC,KAAK,IAAI,CAAC;qBACnC;yBAAM;wBACH,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;qBAC1B;oBAED,IAAI,YAAY,KAAK,iBAAiB,EAAE;wBACpC,IAAI,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBACvC,YAAY,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;qBAC9C;yBAAM,IAAI,YAAY,KAAK,IAAI,EAAE;wBAC9B,YAAY,GAAG,kBAAkB,CAAC;qBACrC;oBAED,IAAI,SAAS,GAAsB;wBAC/B,IAAI,EAAE,UAAU;wBAChB,YAAY,EAAE,UAAU;wBACxB,YAAY,EAAE,YAAY;wBAC1B,IAAI,EAAE,YAAY;wBAClB,KAAK,EAAE,KAAK;wBACZ,OAAO,EAAE,QAAQ,CAAC,OAAO;wBACzB,YAAY,EAAE,QAAQ,CAAC,YAAY;qBACtC,CAAC;oBAEF,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC1C,YAAY,GAAG,IAAI,CAAC;wBACpB,aAAa,GAAG,SAAS,CAAC;qBAC7B;yBAAM;wBACH,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;4BAC5C,2EAA2E;4BAC3E,8CAA8C;4BAC9C,YAAY,GAAG,IAAI,CAAC;4BACpB,aAAa,GAAsB;gCAC/B,IAAI,EAAE,UAAU;gCAChB,YAAY,EAAE,UAAU;gCACxB,YAAY,EAAE,YAAY;gCAC1B,IAAI,EAAE,EAAE;gCACR,KAAK,EAAE,IAAI;gCACX,OAAO,EAAE,QAAQ;gCACjB,YAAY,EAAE,QAAQ,CAAC,YAAY;6BACtC,CAAC;yBACL;wBAED,IAAI,YAAY,GAAG,aAAa,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;wBACzF,SAAS,CAAC,IAAI,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;wBACzC,IAAI,aAAa,CAAC,YAAY,EAAE;4BAC5B,SAAS,CAAC,YAAY,GAAG,GAAG,aAAa,CAAC,YAAY,IAAI,YAAY,EAAE,CAAC;yBAC5E;6BAAM;4BACH,SAAS,CAAC,YAAY,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;yBACpD;wBACD,SAAS,CAAC,YAAY,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;wBACtF,IAAI,SAAS,CAAC,OAAO,EAAE;4BACnB,SAAS,CAAC,QAAQ,GAAG,EAAE,CAAC;yBAC3B;wBACD,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;qBAC5B;iBACJ;gBACD,aAAa,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBAClC,OAAO,aAAa,CAAC;aACxB;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,eAAe,CAAC,UAAkB;;QACrC,qEAAqE;QACrE,IAAI,MAAM,GAAG,qEAAqE,CAAC;QACnF,IAAI,KAAuB,CAAC;QAC5B,IAAI,YAAY,GAAG,EAAE,CAAC;QAEtB,0CAA0C;QAC1C,OAAO,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACpC,iDAAiD;YACjD,gDAAgD;YAChD,iDAAiD;YACjD,oHAAoH;YACpH,YAAY,CAAC,IAAI,CAAC,MAAA,MAAA,MAAA,KAAK,CAAC,CAAC,CAAC,mCAAI,KAAK,CAAC,CAAC,CAAC,mCAAI,KAAK,CAAC,CAAC,CAAC,mCAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;SACnE;QACD,OAAO,YAAY,CAAC;IACxB,CAAC;IAED;;;;OAIG;IACK,OAAO,CAAI,GAAW,EAAE,OAA8B;QAC1D,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YACjB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAC1B;QACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,OAAO,CAAI,OAAO,EAAE,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,UAAU;QACnB,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC1B,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;SACjE;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;YACtC,IAAI,OAAO,GAAa,EAAE,CAAC;YAC3B,IAAI,WAAW,GAAQ,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;YAE3D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE;gBAC/C,IAAI,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACxC,IAAI,MAAM,GAAW;oBACjB,8FAA8F;oBAC9F,+DAA+D;oBAC/D,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,aAAa,KAAK,CAAC;oBACnD,oCAAoC;oBACpC,QAAQ,EAAE,UAAU,CAAC,QAAQ;oBAC7B,YAAY,EAAE,UAAU,CAAC,YAAY;oBACrC,UAAU,EAAE,UAAU,CAAC,UAAU,GAAG,CAAC;oBACrC,YAAY,EAAE,UAAU,CAAC,WAAW;oBACpC,QAAQ,EAAE,CAAC;iBACd,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aACxB;YACD,6CAA6C;YAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBAClB,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC;YAEH,OAAO,OAAO,CAAC;QACnB,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,QAAgB;QAC9C,IAAI,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACtC,KAAK,IAAI,MAAM,IAAI,OAAO,EAAE;YACxB,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE;gBAC9B,OAAO,MAAM,CAAC;aACjB;SACJ;IACL,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,OAAO;QAChB,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,4FAA4F;YAC5F,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;SAC3C;QAED,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;SACrC;QACD,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,mDAAmD;IACnD;;OAEG;IACI,qBAAqB,CAAC,aAAoF;QAC7G,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC;IAChE,CAAC;IAED;;;OAGG;IACI,gBAAgB,CAAC,WAAmB;QACvC,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;QACnD,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACI,sBAAsB;QACzB,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;IAC1C,CAAC;IAED;;OAEG;IACI,oBAAoB;QACvB,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC;IACxC,CAAC;CAEJ;AA1lBD,oDA0lBC;AAWD,IAAY,SAEX;AAFD,WAAY,SAAS;IACjB,gCAAmB,CAAA;AACvB,CAAC,EAFW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAEpB;AAeD,IAAY,OAIX;AAJD,WAAY,OAAO;IACf,4BAAiB,CAAA;IACjB,8BAAmB,CAAA;IACnB,4BAAiB,CAAA;AACrB,CAAC,EAJW,OAAO,GAAP,eAAO,KAAP,eAAO,QAIlB"}
|
|
1
|
+
{"version":3,"file":"DebugProtocolAdapter.js","sourceRoot":"","sources":["../../src/adapters/DebugProtocolAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { RendezvousHistory } from '../RendezvousTracker';
|
|
2
2
|
import type { ChanperfData } from '../ChanperfTracker';
|
|
3
3
|
import type { SourceLocation } from '../managers/LocationManager';
|
|
4
|
+
import type { RokuAdapterEvaluateResponse } from '../interfaces';
|
|
4
5
|
import { HighLevelType } from '../interfaces';
|
|
5
6
|
import { TelnetRequestPipeline } from './TelnetRequestPipeline';
|
|
6
7
|
/**
|
|
@@ -23,6 +24,10 @@ export declare class TelnetAdapter {
|
|
|
23
24
|
private rendezvousTracker;
|
|
24
25
|
private cache;
|
|
25
26
|
readonly supportsMultipleRuns = true;
|
|
27
|
+
/**
|
|
28
|
+
* Does this adapter support the `execute` command (known as `eval` in telnet)
|
|
29
|
+
*/
|
|
30
|
+
supportsExecute: boolean;
|
|
26
31
|
/**
|
|
27
32
|
* Subscribe to various events
|
|
28
33
|
* @param eventName
|
|
@@ -106,7 +111,7 @@ export declare class TelnetAdapter {
|
|
|
106
111
|
* Execute a command directly on the roku. Returns the output of the command.
|
|
107
112
|
* @param command the command to execute. If the command does not start with `print` the command will be prefixed with `print ` because
|
|
108
113
|
*/
|
|
109
|
-
evaluate(command: string): Promise<
|
|
114
|
+
evaluate(command: string): Promise<RokuAdapterEvaluateResponse>;
|
|
110
115
|
getStackTrace(): Promise<StackFrame[]>;
|
|
111
116
|
/**
|
|
112
117
|
* Runs a regex to check if the target is an object and get the type if it is
|
|
@@ -24,6 +24,10 @@ class TelnetAdapter {
|
|
|
24
24
|
this.isNextBreakpointSkipped = false;
|
|
25
25
|
this.cache = {};
|
|
26
26
|
this.supportsMultipleRuns = true;
|
|
27
|
+
/**
|
|
28
|
+
* Does this adapter support the `execute` command (known as `eval` in telnet)
|
|
29
|
+
*/
|
|
30
|
+
this.supportsExecute = true;
|
|
27
31
|
/**
|
|
28
32
|
* The debugger needs to tell us when to be active (i.e. when the package was deployed)
|
|
29
33
|
*/
|
|
@@ -364,7 +368,10 @@ class TelnetAdapter {
|
|
|
364
368
|
let responseText = await this.requestPipeline.executeCommand(command, { waitForPrompt: true });
|
|
365
369
|
//we know that if we got a response, we are back at a debugger prompt
|
|
366
370
|
this.isAtDebuggerPrompt = true;
|
|
367
|
-
return
|
|
371
|
+
return {
|
|
372
|
+
message: responseText,
|
|
373
|
+
type: 'message'
|
|
374
|
+
};
|
|
368
375
|
}
|
|
369
376
|
async getStackTrace() {
|
|
370
377
|
this.logger.log(TelnetAdapter.prototype.getStackTrace.name);
|