roku-debug 0.9.4 → 0.10.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.
Files changed (65) hide show
  1. package/CHANGELOG.md +10 -1
  2. package/LICENSE +21 -0
  3. package/README.md +6 -6
  4. package/dist/adapters/DebugProtocolAdapter.d.ts +18 -8
  5. package/dist/adapters/DebugProtocolAdapter.js +137 -94
  6. package/dist/adapters/DebugProtocolAdapter.js.map +1 -1
  7. package/dist/adapters/TelnetAdapter.d.ts +6 -1
  8. package/dist/adapters/TelnetAdapter.js +8 -1
  9. package/dist/adapters/TelnetAdapter.js.map +1 -1
  10. package/dist/debugProtocol/Constants.d.ts +57 -52
  11. package/dist/debugProtocol/Constants.js +74 -50
  12. package/dist/debugProtocol/Constants.js.map +1 -1
  13. package/dist/debugProtocol/Debugger.d.ts +11 -7
  14. package/dist/debugProtocol/Debugger.js +154 -114
  15. package/dist/debugProtocol/Debugger.js.map +1 -1
  16. package/dist/debugProtocol/responses/ConnectIOPortResponse.d.ts +2 -2
  17. package/dist/debugProtocol/responses/ConnectIOPortResponse.js +5 -3
  18. package/dist/debugProtocol/responses/ConnectIOPortResponse.js.map +1 -1
  19. package/dist/debugProtocol/responses/ExecuteResponseV3.d.ts +23 -0
  20. package/dist/debugProtocol/responses/ExecuteResponseV3.js +54 -0
  21. package/dist/debugProtocol/responses/ExecuteResponseV3.js.map +1 -0
  22. package/dist/debugProtocol/responses/HandshakeResponse.d.ts +2 -0
  23. package/dist/debugProtocol/responses/HandshakeResponse.js +8 -0
  24. package/dist/debugProtocol/responses/HandshakeResponse.js.map +1 -1
  25. package/dist/debugProtocol/responses/HandshakeResponseV3.d.ts +14 -0
  26. package/dist/debugProtocol/responses/HandshakeResponseV3.js +47 -0
  27. package/dist/debugProtocol/responses/HandshakeResponseV3.js.map +1 -0
  28. package/dist/debugProtocol/responses/{Response.d.ts → ProtocolEvent.d.ts} +4 -2
  29. package/dist/debugProtocol/responses/{Response.js → ProtocolEvent.js} +13 -7
  30. package/dist/debugProtocol/responses/ProtocolEvent.js.map +1 -0
  31. package/dist/debugProtocol/responses/ProtocolEventV3.d.ts +11 -0
  32. package/dist/debugProtocol/responses/ProtocolEventV3.js +42 -0
  33. package/dist/debugProtocol/responses/ProtocolEventV3.js.map +1 -0
  34. package/dist/debugProtocol/responses/StackTraceResponse.d.ts +1 -1
  35. package/dist/debugProtocol/responses/StackTraceResponse.js +2 -2
  36. package/dist/debugProtocol/responses/StackTraceResponse.js.map +1 -1
  37. package/dist/debugProtocol/responses/StackTraceResponseV3.d.ts +18 -0
  38. package/dist/debugProtocol/responses/StackTraceResponseV3.js +58 -0
  39. package/dist/debugProtocol/responses/StackTraceResponseV3.js.map +1 -0
  40. package/dist/debugProtocol/responses/ThreadsResponse.d.ts +1 -1
  41. package/dist/debugProtocol/responses/ThreadsResponse.js +2 -1
  42. package/dist/debugProtocol/responses/ThreadsResponse.js.map +1 -1
  43. package/dist/debugProtocol/responses/UndefinedResponse.d.ts +2 -2
  44. package/dist/debugProtocol/responses/UndefinedResponse.js +5 -3
  45. package/dist/debugProtocol/responses/UndefinedResponse.js.map +1 -1
  46. package/dist/debugProtocol/responses/UpdateThreadsResponse.d.ts +2 -2
  47. package/dist/debugProtocol/responses/UpdateThreadsResponse.js +26 -6
  48. package/dist/debugProtocol/responses/UpdateThreadsResponse.js.map +1 -1
  49. package/dist/debugProtocol/responses/VariableResponse.d.ts +1 -1
  50. package/dist/debugProtocol/responses/VariableResponse.js +16 -8
  51. package/dist/debugProtocol/responses/VariableResponse.js.map +1 -1
  52. package/dist/debugProtocol/responses/index.d.ts +4 -1
  53. package/dist/debugProtocol/responses/index.js +4 -1
  54. package/dist/debugProtocol/responses/index.js.map +1 -1
  55. package/dist/debugSession/BrightScriptDebugSession.d.ts +8 -2
  56. package/dist/debugSession/BrightScriptDebugSession.js +87 -62
  57. package/dist/debugSession/BrightScriptDebugSession.js.map +1 -1
  58. package/dist/interfaces.d.ts +4 -0
  59. package/dist/util.d.ts +10 -7
  60. package/dist/util.js +71 -0
  61. package/dist/util.js.map +1 -1
  62. package/package.json +4 -3
  63. package/roku-debug-0.10.0.tgz +0 -0
  64. package/dist/debugProtocol/responses/Response.js.map +0 -1
  65. package/roku-debug-0.9.4.tgz +0 -0
package/CHANGELOG.md CHANGED
@@ -6,9 +6,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
6
6
 
7
7
 
8
8
 
9
+ ## [0.10.0](https://github.com/rokucommunity/roku-debug/compare/v0.9.4...v0.10.0) - 2022-03-08
10
+ ### Added
11
+ - support for roku debug protocol v3.0.0
12
+ - support for eval/execute functionality over the debug protocol(v3.0.0+) from the debug console
13
+ ### Changed
14
+ - running `print` statements in the debug console now runs an actual print statement. To do variable evaluation, simply type the name of the variable.
15
+
16
+
17
+
9
18
  ## [0.9.4](https://github.com/rokucommunity/roku-debug/compare/v0.9.3...v0.9.4) - 2022-02-24
10
19
  ### Changed
11
- - upgrade to [brighterscript@0.43.0](https://github.com/rokucommunity/brighterscript/blob/master/CHANGELOG.md#0452---2022-02-24).
20
+ - upgrade to [brighterscript@0.5.2](https://github.com/rokucommunity/brighterscript/blob/master/CHANGELOG.md#0452---2022-02-24).
12
21
 
13
22
 
14
23
 
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
- [![build](https://img.shields.io/github/workflow/status/rokucommunity/roku-debug/build.svg?logo=github)](https://github.com/rokucommunity/roku-debug/actions?query=workflow%3Abuild)
6
- ![main](https://github.com/rokucommunity/roku-debug/workflows/main/badge.svg?branch=master)
7
- [![Coverage Status](https://coveralls.io/repos/github/rokucommunity/roku-debug/badge.svg?branch=master)](https://coveralls.io/github/rokucommunity/roku-debug?branch=master)
8
- [![NPM Version](https://badge.fury.io/js/roku-debug.svg?style=flat)](https://npmjs.org/package/roku-debug)
9
-
4
+ [![build status](https://img.shields.io/github/workflow/status/rokucommunity/roku-debug/build.svg?logo=github)](https://github.com/rokucommunity/roku-debug/actions?query=workflow%3Abuild)
5
+ [![coverage status](https://img.shields.io/coveralls/github/rokucommunity/roku-debug?logo=coveralls)](https://coveralls.io/github/rokucommunity/roku-debug?branch=master)
6
+ [![monthly downloads](https://img.shields.io/npm/dm/roku-debug.svg?sanitize=true&logo=npm&logoColor=)](https://npmcharts.com/compare/roku-debug?minimal=true)
7
+ [![npm version](https://img.shields.io/npm/v/roku-debug.svg?logo=npm)](https://www.npmjs.com/package/roku-debug)
8
+ [![license](https://img.shields.io/github/license/rokucommunity/roku-debug.svg)](LICENSE)
9
+ [![Slack](https://img.shields.io/badge/Slack-RokuCommunity-4A154B?logo=slack)](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/images/0)](https://sourcerer.io/fame/TwitchBronBron/rokucommunity/roku-debug/links/0)[![](https://sourcerer.io/fame/TwitchBronBron/rokucommunity/roku-debug/images/1)](https://sourcerer.io/fame/TwitchBronBron/rokucommunity/roku-debug/links/1)[![](https://sourcerer.io/fame/TwitchBronBron/rokucommunity/roku-debug/images/2)](https://sourcerer.io/fame/TwitchBronBron/rokucommunity/roku-debug/links/2)[![](https://sourcerer.io/fame/TwitchBronBron/rokucommunity/roku-debug/images/3)](https://sourcerer.io/fame/TwitchBronBron/rokucommunity/roku-debug/links/3)[![](https://sourcerer.io/fame/TwitchBronBron/rokucommunity/roku-debug/images/4)](https://sourcerer.io/fame/TwitchBronBron/rokucommunity/roku-debug/links/4)[![](https://sourcerer.io/fame/TwitchBronBron/rokucommunity/roku-debug/images/5)](https://sourcerer.io/fame/TwitchBronBron/rokucommunity/roku-debug/links/5)[![](https://sourcerer.io/fame/TwitchBronBron/rokucommunity/roku-debug/images/6)](https://sourcerer.io/fame/TwitchBronBron/rokucommunity/roku-debug/links/6)[![](https://sourcerer.io/fame/TwitchBronBron/rokucommunity/roku-debug/images/7)](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("..").Response>;
77
- stepInto(threadId: number): Promise<import("..").Response>;
78
- stepOut(threadId: number): Promise<import("..").Response>;
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("..").Response>;
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<EvaluateContainer>;
106
+ evaluate(command: string, frameId?: number): Promise<RokuAdapterEvaluateResponse>;
96
107
  getStackTrace(threadId?: number): Promise<StackFrame[]>;
97
- private getStackTraceById;
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 === 1 /* SUPPORTED */) {
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 === 0 /* NOT_TESTED */) {
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 === 2 /* NOT_SUPPORTED */) {
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
- if (!this.isAtDebuggerPrompt) {
284
- throw new Error('Cannot run evaluate: debugger is not paused');
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 frame = {
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[frame.frameId] = frame;
310
- frames.push(frame);
358
+ this.stackFramesCache[stackFrame.frameId] = stackFrame;
359
+ frames.push(stackFrame);
311
360
  }
312
361
  return frames;
313
362
  });
314
363
  }
315
- getStackTraceById(frameId) {
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.getStackTraceById(frameId);
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
- return this.resolve(`variable: ${expression} ${frame.frameIndex} ${frame.threadIndex} `, async () => {
336
- let variablePath = this.getVariablePath(expression);
337
- let response = await this.socketDebugger.getVariables(variablePath, withChildren, frame.frameIndex, frame.threadIndex);
338
- if (response.errorCode === 'OK') {
339
- let mainContainer;
340
- let children = [];
341
- let firstHandled = false;
342
- for (let variable of response.variables) {
343
- let value;
344
- let variableType = variable.variableType;
345
- if (variable.value === null) {
346
- value = 'roInvalid';
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
- else if (variableType === 'String') {
349
- value = `\"${variable.value}\"`;
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
- value = variable.value;
454
+ container.evaluateName = pathAddition.toString();
353
455
  }
354
- if (variableType === 'Subtyped_Object') {
355
- let parts = variable.value.split('; ');
356
- variableType = `${parts[0]} (${parts[1]})`;
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":"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"}
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<string>;
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 responseText;
371
+ return {
372
+ message: responseText,
373
+ type: 'message'
374
+ };
368
375
  }
369
376
  async getStackTrace() {
370
377
  this.logger.log(TelnetAdapter.prototype.getStackTrace.name);