roku-debug 0.12.2 → 0.14.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 (44) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/dist/FileUtils.d.ts +8 -0
  3. package/dist/FileUtils.js +29 -3
  4. package/dist/FileUtils.js.map +1 -1
  5. package/dist/adapters/DebugProtocolAdapter.d.ts +7 -1
  6. package/dist/adapters/DebugProtocolAdapter.js +55 -3
  7. package/dist/adapters/DebugProtocolAdapter.js.map +1 -1
  8. package/dist/adapters/TelnetAdapter.d.ts +16 -0
  9. package/dist/adapters/TelnetAdapter.js +4 -0
  10. package/dist/adapters/TelnetAdapter.js.map +1 -1
  11. package/dist/debugProtocol/Constants.d.ts +29 -1
  12. package/dist/debugProtocol/Constants.js +30 -1
  13. package/dist/debugProtocol/Constants.js.map +1 -1
  14. package/dist/debugProtocol/Debugger.d.ts +11 -5
  15. package/dist/debugProtocol/Debugger.js +39 -14
  16. package/dist/debugProtocol/Debugger.js.map +1 -1
  17. package/dist/debugProtocol/responses/ListBreakpointsResponse.d.ts +2 -1
  18. package/dist/debugProtocol/responses/ListBreakpointsResponse.js +1 -1
  19. package/dist/debugProtocol/responses/ListBreakpointsResponse.js.map +1 -1
  20. package/dist/debugSession/BrightScriptDebugSession.d.ts +8 -2
  21. package/dist/debugSession/BrightScriptDebugSession.js +74 -31
  22. package/dist/debugSession/BrightScriptDebugSession.js.map +1 -1
  23. package/dist/debugSession/Events.d.ts +7 -0
  24. package/dist/debugSession/Events.js +8 -1
  25. package/dist/debugSession/Events.js.map +1 -1
  26. package/dist/interfaces.d.ts +4 -0
  27. package/dist/managers/ActionQueue.d.ts +9 -0
  28. package/dist/managers/ActionQueue.js +38 -0
  29. package/dist/managers/ActionQueue.js.map +1 -0
  30. package/dist/managers/BreakpointManager.d.ts +128 -27
  31. package/dist/managers/BreakpointManager.js +294 -89
  32. package/dist/managers/BreakpointManager.js.map +1 -1
  33. package/dist/managers/FileManager.js +3 -3
  34. package/dist/managers/FileManager.js.map +1 -1
  35. package/dist/managers/LocationManager.js +1 -1
  36. package/dist/managers/LocationManager.js.map +1 -1
  37. package/dist/managers/ProjectManager.d.ts +4 -6
  38. package/dist/managers/ProjectManager.js +22 -30
  39. package/dist/managers/ProjectManager.js.map +1 -1
  40. package/dist/util.js +1 -4
  41. package/dist/util.js.map +1 -1
  42. package/package.json +3 -3
  43. package/roku-debug-0.14.0.tgz +0 -0
  44. package/roku-debug-0.12.2.tgz +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"Constants.js","sourceRoot":"","sources":["../../src/debugProtocol/Constants.ts"],"names":[],"mappings":";;;AAAA,IAAY,oBAIX;AAJD,WAAY,oBAAoB;IAC5B,2EAAc,CAAA;IACd,yEAAa,CAAA;IACb,iFAAiB,CAAA;AACrB,CAAC,EAJW,oBAAoB,GAApB,4BAAoB,KAApB,4BAAoB,QAI/B;AAED,IAAY,QAYX;AAZD,WAAY,QAAQ;IAChB,uCAAQ,CAAA;IACR,+CAAY,CAAA;IACZ,6CAAW,CAAA;IACX,mDAAc,CAAA;IACd,iDAAa,CAAA;IACb,uCAAQ,CAAA;IACR,6DAAmB,CAAA;IACnB,+DAAoB,CAAA;IACpB,mEAAsB,CAAA;IACtB,8CAAY,CAAA;IACZ,yDAAkB,CAAA;AACtB,CAAC,EAZW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAYnB;AAED,IAAY,SAKX;AALD,WAAY,SAAS;IACjB,6DAAkB,CAAA;IAClB,6DAAkB,CAAA;IAClB,2DAAiB,CAAA;IACjB,6DAAkB,CAAA;AACtB,CAAC,EALW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAKpB;AAED,yBAAyB;AACzB,IAAY,WAOX;AAPD,WAAY,WAAW;IACnB,yCAAM,CAAA;IACN,uDAAa,CAAA;IACb,uEAAqB,CAAA;IACrB,+DAAiB,CAAA;IACjB,2DAAe,CAAA;IACf,6DAAgB,CAAA;AACpB,CAAC,EAPW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAOtB;AAED,IAAY,YAOX;AAPD,WAAY,YAAY;IACpB,yDAAa,CAAA;IACb,6DAAe,CAAA;IACf,6DAAe,CAAA;IACf,mEAAkB,CAAA;IAClB,iDAAS,CAAA;IACT,iEAAiB,CAAA;AACrB,CAAC,EAPW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAOvB;AAED,IAAY,YAKX;AALD,WAAY,YAAY;IACpB,iDAAS,CAAA;IACT,mEAAkB,CAAA;IAClB,6EAAuB,CAAA;IACvB,qEAAmB,CAAA;AACvB,CAAC,EALW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAKvB;AAED,IAAY,cAOX;AAPD,WAAY,cAAc;IACtB,+DAAiB,CAAA;IACjB,yDAAc,CAAA;IACd,iEAAkB,CAAA;IAClB,+DAAiB,CAAA;IACjB,oEAAmB,CAAA;IACnB,kEAAkB,CAAA;AACtB,CAAC,EAPW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAOzB;AAED,IAAY,cAkBX;AAlBD,WAAY,cAAc;IACtB,+CAAM,CAAA;IACN,qDAAS,CAAA;IACT,yDAAW,CAAA;IACX,uDAAU,CAAA;IACV,qDAAS,CAAA;IACT,2DAAY,CAAA;IACZ,yDAAW,CAAA;IACX,6DAAa,CAAA;IACb,yDAAW,CAAA;IACX,oDAAS,CAAA;IACT,oEAAiB,CAAA;IACjB,wDAAW,CAAA;IACX,wDAAW,CAAA;IACX,gEAAe,CAAA;IACf,0EAAoB,CAAA;IACpB,sEAAkB,CAAA;IAClB,0DAAY,CAAA;AAChB,CAAC,EAlBW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAkBzB;AACD,YAAY;AAEZ,SAAgB,aAAa,CAAC,KAAa;IACvC,QAAQ,KAAK,EAAE;QACX,KAAK,YAAY,CAAC,mBAAmB;YACjC,OAAO,YAAY,CAAC,mBAAmB,CAAC;QAC5C,KAAK,YAAY,CAAC,cAAc;YAC5B,OAAO,YAAY,CAAC,cAAc,CAAC;QACvC,KAAK,YAAY,CAAC,eAAe;YAC7B,OAAO,YAAY,CAAC,eAAe,CAAC;QACxC,KAAK,YAAY,CAAC,KAAK;YACnB,OAAO,YAAY,CAAC,KAAK,CAAC;QAC9B;YACI,OAAO,YAAY,CAAC,KAAK,CAAC;KACjC;AACL,CAAC;AAbD,sCAaC"}
1
+ {"version":3,"file":"Constants.js","sourceRoot":"","sources":["../../src/debugProtocol/Constants.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,6 @@ export declare class Debugger {
21
21
  private controllerClient;
22
22
  private ioClient;
23
23
  private unhandledData;
24
- private firstRunContinueFired;
25
24
  private stopped;
26
25
  private totalRequests;
27
26
  private activeRequests;
@@ -51,6 +50,17 @@ export declare class Debugger {
51
50
  private step;
52
51
  threads(): Promise<ThreadsResponse>;
53
52
  stackTrace(threadIndex?: number): Promise<StackTraceResponse>;
53
+ /**
54
+ * @param variablePathEntries One or more path entries to the variable to be inspected. E.g., m.top.myObj["someKey"] can be accessed with ["m","top","myobj","\"someKey\""].
55
+ *
56
+ * If no path is specified, the variables accessible from the specified stack frame are returned.
57
+ *
58
+ * Starting in protocol v3.1.0, The keys for indexed gets (i.e. obj["key"]) should be wrapped in quotes so they can be handled in a case-sensitive fashion (if applicable on device).
59
+ * All non-quoted keys (i.e. strings without leading and trailing quotes inside them) will be treated as case-insensitive).
60
+ * @param getChildKeys If set, VARIABLES response include the child keys for container types like lists and associative arrays
61
+ * @param stackFrameIndex 0 = first function called, nframes-1 = last function. This indexing does not match the order of the frames returned from the STACKTRACE command
62
+ * @param threadIndex the index (or perhaps ID?) of the thread to get variables for
63
+ */
54
64
  getVariables(variablePathEntries?: Array<string>, getChildKeys?: boolean, stackFrameIndex?: number, threadIndex?: number): Promise<VariableResponse>;
55
65
  executeCommand(sourceCode: string, stackFrameIndex?: number, threadIndex?: number): Promise<ExecuteResponseV3>;
56
66
  addBreakpoints(breakpoints: BreakpointSpec[]): Promise<AddBreakpointsResponse>;
@@ -89,10 +99,6 @@ export interface ConstructorOptions {
89
99
  * The host/ip address of the Roku
90
100
  */
91
101
  host: string;
92
- /**
93
- * If true, the application being debugged will stop on the first line of the program.
94
- */
95
- stopOnEntry?: boolean;
96
102
  /**
97
103
  * The port number used to send all debugger commands. This is static/unchanging for Roku devices,
98
104
  * but is configurable here to support unit testing or alternate runtimes (i.e. https://www.npmjs.com/package/brs)
@@ -22,14 +22,12 @@ class Debugger {
22
22
  this.connectedToIoPort = false;
23
23
  this.watchPacketLength = false;
24
24
  this.emitter = new EventEmitter();
25
- this.firstRunContinueFired = false;
26
25
  this.stopped = false;
27
26
  this.totalRequests = 0;
28
27
  this.activeRequests = {};
29
28
  this.options = {
30
29
  controllerPort: 8081,
31
30
  host: undefined,
32
- stopOnEntry: false,
33
31
  //override the defaults with the options from parameters
34
32
  ...options !== null && options !== void 0 ? options : {}
35
33
  };
@@ -179,16 +177,49 @@ class Debugger {
179
177
  return this.makeRequest(buffer, Constants_1.COMMANDS.STACKTRACE);
180
178
  }
181
179
  }
180
+ /**
181
+ * @param variablePathEntries One or more path entries to the variable to be inspected. E.g., m.top.myObj["someKey"] can be accessed with ["m","top","myobj","\"someKey\""].
182
+ *
183
+ * If no path is specified, the variables accessible from the specified stack frame are returned.
184
+ *
185
+ * Starting in protocol v3.1.0, The keys for indexed gets (i.e. obj["key"]) should be wrapped in quotes so they can be handled in a case-sensitive fashion (if applicable on device).
186
+ * All non-quoted keys (i.e. strings without leading and trailing quotes inside them) will be treated as case-insensitive).
187
+ * @param getChildKeys If set, VARIABLES response include the child keys for container types like lists and associative arrays
188
+ * @param stackFrameIndex 0 = first function called, nframes-1 = last function. This indexing does not match the order of the frames returned from the STACKTRACE command
189
+ * @param threadIndex the index (or perhaps ID?) of the thread to get variables for
190
+ */
182
191
  async getVariables(variablePathEntries = [], getChildKeys = true, stackFrameIndex = this.stackFrameIndex, threadIndex = this.primaryThread) {
183
192
  if (this.stopped && threadIndex > -1) {
193
+ //starting in protocol v3.1.0, it supports marking certain path items as case-insensitive (i.e. parts of DottedGet expressions)
194
+ const sendCaseInsensitiveData = semver.satisfies(this.protocolVersion, '>=3.1.0') && variablePathEntries.length > 0;
184
195
  let buffer = new smart_buffer_1.SmartBuffer({ size: 17 });
185
- buffer.writeUInt8(getChildKeys ? 1 : 0); // variable_request_flags
196
+ let flags = 0;
197
+ if (getChildKeys) {
198
+ // eslint-disable-next-line no-bitwise
199
+ flags |= Constants_1.VARIABLE_REQUEST_FLAGS.GET_CHILD_KEYS;
200
+ }
201
+ if (sendCaseInsensitiveData) {
202
+ // eslint-disable-next-line no-bitwise
203
+ flags |= Constants_1.VARIABLE_REQUEST_FLAGS.CASE_SENSITIVITY_OPTIONS;
204
+ }
205
+ buffer.writeUInt8(flags); // variable_request_flags
186
206
  buffer.writeUInt32LE(threadIndex); // thread_index
187
207
  buffer.writeUInt32LE(stackFrameIndex); // stack_frame_index
188
208
  buffer.writeUInt32LE(variablePathEntries.length); // variable_path_len
189
- variablePathEntries.forEach(variablePathEntry => {
190
- buffer.writeStringNT(variablePathEntry); // variable_path_entries - optional
209
+ variablePathEntries.forEach(entry => {
210
+ if (entry.startsWith('"') && entry.endsWith('"')) {
211
+ //remove leading and trailing quotes
212
+ entry = entry.substring(1, entry.length - 1);
213
+ }
214
+ buffer.writeStringNT(entry); // variable_path_entries - optional
191
215
  });
216
+ if (sendCaseInsensitiveData) {
217
+ variablePathEntries.forEach(entry => {
218
+ buffer.writeUInt8(
219
+ //0 means case SENSITIVE lookup, 1 means case INsensitive lookup
220
+ entry.startsWith('"') ? 0 : 1);
221
+ });
222
+ }
192
223
  return this.makeRequest(buffer, Constants_1.COMMANDS.VARIABLES, variablePathEntries);
193
224
  }
194
225
  }
@@ -284,8 +315,7 @@ class Debugger {
284
315
  case __1.UPDATE_TYPES.THREAD_ATTACHED:
285
316
  let debuggerUpdateThreads = new responses_1.UpdateThreadsResponse(slicedBuffer);
286
317
  if (debuggerUpdateThreads.success) {
287
- //TODO should we be awaiting this?
288
- void this.handleThreadsUpdate(debuggerUpdateThreads);
318
+ this.handleThreadsUpdate(debuggerUpdateThreads);
289
319
  this.removedProcessedBytes(debuggerUpdateThreads, slicedBuffer, packetLength);
290
320
  return true;
291
321
  }
@@ -444,17 +474,12 @@ class Debugger {
444
474
  }
445
475
  return false;
446
476
  }
447
- async handleThreadsUpdate(update) {
477
+ handleThreadsUpdate(update) {
448
478
  this.stopped = true;
449
479
  let stopReason = update.data.stopReason;
450
480
  let eventName = stopReason === Constants_1.STOP_REASONS.RUNTIME_ERROR ? 'runtime-error' : 'suspend';
451
481
  if (update.updateType === __1.UPDATE_TYPES.ALL_THREADS_STOPPED) {
452
- if (!this.firstRunContinueFired && !this.options.stopOnEntry) {
453
- this.logger.log('Sending first run continue command');
454
- await this.continue();
455
- this.firstRunContinueFired = true;
456
- }
457
- else if (stopReason === Constants_1.STOP_REASONS.RUNTIME_ERROR || stopReason === Constants_1.STOP_REASONS.BREAK || stopReason === Constants_1.STOP_REASONS.STOP_STATEMENT) {
482
+ if (stopReason === Constants_1.STOP_REASONS.RUNTIME_ERROR || stopReason === Constants_1.STOP_REASONS.BREAK || stopReason === Constants_1.STOP_REASONS.STOP_STATEMENT) {
458
483
  this.primaryThread = update.data.primaryThreadIndex;
459
484
  this.stackFrameIndex = 0;
460
485
  this.emit(eventName, update);
@@ -1 +1 @@
1
- {"version":3,"file":"Debugger.js","sourceRoot":"","sources":["../../src/debugProtocol/Debugger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Debugger.js","sourceRoot":"","sources":["../../src/debugProtocol/Debugger.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  import { SmartBuffer } from 'smart-buffer';
3
+ import { ERROR_CODES } from '../Constants';
3
4
  export declare class ListBreakpointsResponse {
4
5
  constructor(buffer: Buffer);
5
6
  success: boolean;
@@ -8,7 +9,7 @@ export declare class ListBreakpointsResponse {
8
9
  numBreakpoints: number;
9
10
  breakpoints: BreakpointInfo[];
10
11
  data: number;
11
- errorCode: string;
12
+ errorCode: ERROR_CODES;
12
13
  }
13
14
  export declare class BreakpointInfo {
14
15
  constructor(bufferReader: SmartBuffer);
@@ -18,7 +18,7 @@ class ListBreakpointsResponse {
18
18
  this.requestId = bufferReader.readUInt32LE(); // request_id
19
19
  // Any request id less then one is an update and we should not process it here
20
20
  if (this.requestId > 0) {
21
- this.errorCode = Constants_1.ERROR_CODES[bufferReader.readUInt32LE()];
21
+ this.errorCode = bufferReader.readUInt32LE();
22
22
  this.numBreakpoints = bufferReader.readUInt32LE(); // num_breakpoints - The number of breakpoints in the breakpoints array.
23
23
  // build the list of BreakpointInfo
24
24
  for (let i = 0; i < this.numBreakpoints; i++) {
@@ -1 +1 @@
1
- {"version":3,"file":"ListBreakpointsResponse.js","sourceRoot":"","sources":["../../../src/debugProtocol/responses/ListBreakpointsResponse.ts"],"names":[],"mappings":";;;AAAA,+CAA2C;AAC3C,4CAA2C;AAE3C,MAAa,uBAAuB;IAEhC,YAAY,MAAc;QA2BnB,YAAO,GAAG,KAAK,CAAC;QAChB,eAAU,GAAG,CAAC,CAAC;QAEtB,kBAAkB;QACX,cAAS,GAAG,CAAC,CAAC,CAAC;QAEf,gBAAW,GAAG,EAAsB,CAAC;QACrC,SAAI,GAAG,CAAC,CAAC,CAAC;QAjCb,gCAAgC;QAChC,IAAI,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,UAAU,KAAI,EAAE,EAAE;YAC1B,IAAI;gBACA,IAAI,YAAY,GAAG,0BAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBAClD,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,aAAa;gBAE3D,8EAA8E;gBAC9E,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;oBACpB,IAAI,CAAC,SAAS,GAAG,uBAAW,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC;oBAC1D,IAAI,CAAC,cAAc,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,wEAAwE;oBAE3H,mCAAmC;oBACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,EAAE,EAAE;wBAC1C,IAAI,cAAc,GAAG,IAAI,cAAc,CAAC,YAAY,CAAC,CAAC;wBACtD,wDAAwD;wBACxD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;qBACzC;oBAED,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC;oBAC1C,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,IAAI,CAAC,cAAc,CAAC,CAAC;iBACpE;aACJ;YAAC,OAAO,KAAK,EAAE;gBACZ,kBAAkB;aACrB;SACJ;IACL,CAAC;CAUJ;AAtCD,0DAsCC;AAED,MAAa,cAAc;IACvB,YAAY,YAAyB;QAiB9B,YAAO,GAAG,KAAK,CAAC;QAhBnB,+JAA+J;QAC/J,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC;QAChD,2EAA2E;QAC3E,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC;QAE7C,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE;YACvB,+DAA+D;YAC/D,qEAAqE;YACrE,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC;SAC/C;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACxB,CAAC;IAED,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;IACjC,CAAC;IAID;;OAEG;IACH,IAAW,SAAS;QAChB,OAAO,uBAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC;CAEJ;AA5BD,wCA4BC"}
1
+ {"version":3,"file":"ListBreakpointsResponse.js","sourceRoot":"","sources":["../../../src/debugProtocol/responses/ListBreakpointsResponse.ts"],"names":[],"mappings":";;;AAAA,+CAA2C;AAC3C,4CAA2C;AAE3C,MAAa,uBAAuB;IAEhC,YAAY,MAAc;QA2BnB,YAAO,GAAG,KAAK,CAAC;QAChB,eAAU,GAAG,CAAC,CAAC;QAEtB,kBAAkB;QACX,cAAS,GAAG,CAAC,CAAC,CAAC;QAEf,gBAAW,GAAG,EAAsB,CAAC;QACrC,SAAI,GAAG,CAAC,CAAC,CAAC;QAjCb,gCAAgC;QAChC,IAAI,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,UAAU,KAAI,EAAE,EAAE;YAC1B,IAAI;gBACA,IAAI,YAAY,GAAG,0BAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBAClD,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,aAAa;gBAE3D,8EAA8E;gBAC9E,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;oBACpB,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC;oBAC7C,IAAI,CAAC,cAAc,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,wEAAwE;oBAE3H,mCAAmC;oBACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,EAAE,EAAE;wBAC1C,IAAI,cAAc,GAAG,IAAI,cAAc,CAAC,YAAY,CAAC,CAAC;wBACtD,wDAAwD;wBACxD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;qBACzC;oBAED,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC;oBAC1C,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,IAAI,CAAC,cAAc,CAAC,CAAC;iBACpE;aACJ;YAAC,OAAO,KAAK,EAAE;gBACZ,kBAAkB;aACrB;SACJ;IACL,CAAC;CAUJ;AAtCD,0DAsCC;AAED,MAAa,cAAc;IACvB,YAAY,YAAyB;QAiB9B,YAAO,GAAG,KAAK,CAAC;QAhBnB,+JAA+J;QAC/J,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC;QAChD,2EAA2E;QAC3E,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC;QAE7C,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE;YACvB,+DAA+D;YAC/D,qEAAqE;YACrE,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC;SAC/C;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACxB,CAAC;IAED,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;IACjC,CAAC;IAID;;OAEG;IACH,IAAW,SAAS;QAChB,OAAO,uBAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC;CAEJ;AA5BD,wCA4BC"}
@@ -9,6 +9,7 @@ import { LocationManager } from '../managers/LocationManager';
9
9
  import { BreakpointManager } from '../managers/BreakpointManager';
10
10
  export declare class BrightScriptDebugSession extends BaseDebugSession {
11
11
  constructor();
12
+ private onDeviceVerifiedBreakpoints;
12
13
  logger: import("@rokucommunity/logger/dist/Logger").Logger;
13
14
  /**
14
15
  * A sequence used to help identify log statements for requests
@@ -31,7 +32,7 @@ export declare class BrightScriptDebugSession extends BaseDebugSession {
31
32
  private variables;
32
33
  private variableHandles;
33
34
  private rokuAdapter;
34
- private enableDebugProtocol;
35
+ private get enableDebugProtocol();
35
36
  private getRokuAdapter;
36
37
  private launchConfiguration;
37
38
  private initRequestArgs;
@@ -40,6 +41,7 @@ export declare class BrightScriptDebugSession extends BaseDebugSession {
40
41
  * to interrogate the features the debug adapter provides.
41
42
  */
42
43
  initializeRequest(response: DebugProtocol.InitializeResponse, args: DebugProtocol.InitializeRequestArguments): void;
44
+ private showPopupMessage;
43
45
  launchRequest(response: DebugProtocol.LaunchResponse, config: LaunchConfiguration): Promise<void>;
44
46
  /**
45
47
  * Send log output to the "client" (i.e. vscode)
@@ -65,7 +67,7 @@ export declare class BrightScriptDebugSession extends BaseDebugSession {
65
67
  /**
66
68
  * Called every time a breakpoint is created, modified, or deleted, for each file. This receives the entire list of breakpoints every time.
67
69
  */
68
- setBreakPointsRequest(response: DebugProtocol.SetBreakpointsResponse, args: DebugProtocol.SetBreakpointsArguments): void;
70
+ setBreakPointsRequest(response: DebugProtocol.SetBreakpointsResponse, args: DebugProtocol.SetBreakpointsArguments): Promise<void>;
69
71
  protected exceptionInfoRequest(response: DebugProtocol.ExceptionInfoResponse, args: DebugProtocol.ExceptionInfoArguments): void;
70
72
  protected threadsRequest(response: DebugProtocol.ThreadsResponse): Promise<void>;
71
73
  protected stackTraceRequest(response: DebugProtocol.StackTraceResponse, args: DebugProtocol.StackTraceArguments): Promise<void>;
@@ -93,6 +95,10 @@ export declare class BrightScriptDebugSession extends BaseDebugSession {
93
95
  protected disconnectRequest(response: DebugProtocol.DisconnectResponse, args: DebugProtocol.DisconnectArguments, request?: DebugProtocol.Request): Promise<void>;
94
96
  private createRokuAdapter;
95
97
  protected restartRequest(response: DebugProtocol.RestartResponse, args: DebugProtocol.RestartArguments, request?: DebugProtocol.Request): Promise<void>;
98
+ /**
99
+ * Used to track whether the entry breakpoint has already been handled
100
+ */
101
+ private entryBreakpointWasHandled;
96
102
  /**
97
103
  * Registers the main events for the RokuAdapter
98
104
  */
@@ -41,6 +41,10 @@ class BrightScriptDebugSession extends vscode_debugadapter_1.DebugSession {
41
41
  this.variables = {};
42
42
  this.variableHandles = new vscode_debugadapter_1.Handles();
43
43
  this.evaluateRequestPromise = Promise.resolve();
44
+ /**
45
+ * Used to track whether the entry breakpoint has already been handled
46
+ */
47
+ this.entryBreakpointWasHandled = false;
44
48
  // this debugger uses one-based lines and columns
45
49
  this.setDebuggerLinesStartAt1(true);
46
50
  this.setDebuggerColumnsStartAt1(true);
@@ -50,8 +54,29 @@ class BrightScriptDebugSession extends vscode_debugadapter_1.DebugSession {
50
54
  this.sourceMapManager = new SourceMapManager_1.SourceMapManager();
51
55
  this.locationManager = new LocationManager_1.LocationManager(this.sourceMapManager);
52
56
  this.breakpointManager = new BreakpointManager_1.BreakpointManager(this.sourceMapManager, this.locationManager);
57
+ //send newly-verified breakpoints to vscode
58
+ this.breakpointManager.on('breakpoints-verified', (data) => this.onDeviceVerifiedBreakpoints(data));
53
59
  this.projectManager = new ProjectManager_1.ProjectManager(this.breakpointManager, this.locationManager);
54
60
  }
61
+ onDeviceVerifiedBreakpoints(data) {
62
+ this.logger.info('Sending verified device breakpoints to client', data);
63
+ //send all verified breakpoints to the client
64
+ for (const breakpoint of data.breakpoints) {
65
+ const event = {
66
+ line: breakpoint.line,
67
+ column: breakpoint.column,
68
+ verified: true,
69
+ id: breakpoint.id,
70
+ source: {
71
+ path: breakpoint.srcPath
72
+ }
73
+ };
74
+ this.sendEvent(new vscode_debugadapter_1.BreakpointEvent('changed', event));
75
+ }
76
+ }
77
+ get enableDebugProtocol() {
78
+ return this.launchConfiguration.enableDebugProtocol;
79
+ }
55
80
  getRokuAdapter() {
56
81
  return this.rokuAdapterDeferred.promise;
57
82
  }
@@ -88,6 +113,9 @@ class BrightScriptDebugSession extends vscode_debugadapter_1.DebugSession {
88
113
  });
89
114
  this.logger.log('initializeRequest finished');
90
115
  }
116
+ showPopupMessage(message, severity) {
117
+ this.sendEvent(new Events_1.PopupMessageEvent(message, severity));
118
+ }
91
119
  async launchRequest(response, config) {
92
120
  this.logger.log('[launchRequest] begin');
93
121
  this.launchConfiguration = config;
@@ -95,9 +123,15 @@ class BrightScriptDebugSession extends vscode_debugadapter_1.DebugSession {
95
123
  if (this.launchConfiguration.logLevel) {
96
124
  logging_1.logger.logLevel = this.launchConfiguration.logLevel;
97
125
  }
98
- this.enableDebugProtocol = this.launchConfiguration.enableDebugProtocol;
99
126
  //do a DNS lookup for the host to fix issues with roku rejecting ECP
100
- this.launchConfiguration.host = await util_1.util.dnsLookup(this.launchConfiguration.host);
127
+ try {
128
+ this.launchConfiguration.host = await util_1.util.dnsLookup(this.launchConfiguration.host);
129
+ }
130
+ catch (e) {
131
+ const errorMessage = `Could not resolve ip address for "${this.launchConfiguration.host}"`;
132
+ this.showPopupMessage(errorMessage, 'error');
133
+ throw e;
134
+ }
101
135
  this.projectManager.launchConfiguration = this.launchConfiguration;
102
136
  this.breakpointManager.launchConfiguration = this.launchConfiguration;
103
137
  this.sendEvent(new Events_1.LaunchStartEvent(this.launchConfiguration));
@@ -353,10 +387,10 @@ class BrightScriptDebugSession extends vscode_debugadapter_1.DebugSession {
353
387
  await this.handleEntryBreakpoint();
354
388
  //add breakpoint lines to source files and then publish
355
389
  util_1.util.log('Adding stop statements for active breakpoints');
356
- //prevent new breakpoints from being verified
357
- this.breakpointManager.lockBreakpoints();
358
- //write all `stop` statements to the files in the staging folder
359
- await this.breakpointManager.writeBreakpointsForProject(this.projectManager.mainProject);
390
+ //write the `stop` statements to every file that has breakpoints (do for telnet, skip for debug protocol)
391
+ if (!this.enableDebugProtocol) {
392
+ await this.breakpointManager.writeBreakpointsForProject(this.projectManager.mainProject);
393
+ }
360
394
  //create zip package from staging folder
361
395
  util_1.util.log('Creating zip archive from project sources');
362
396
  await this.projectManager.mainProject.zipPackage({ retainStagingFolder: true });
@@ -402,8 +436,10 @@ class BrightScriptDebugSession extends vscode_debugadapter_1.DebugSession {
402
436
  await compLibProject.stage();
403
437
  // Add breakpoint lines to the staging files and before publishing
404
438
  util_1.util.log('Adding stop statements for active breakpoints in Component Libraries');
405
- //write the `stop` statements to every file that has breakpoints
406
- await this.breakpointManager.writeBreakpointsForProject(compLibProject);
439
+ //write the `stop` statements to every file that has breakpoints (do for telnet, skip for debug protocol)
440
+ if (!this.enableDebugProtocol) {
441
+ await this.breakpointManager.writeBreakpointsForProject(compLibProject);
442
+ }
407
443
  await compLibProject.postfixFiles();
408
444
  await compLibProject.zipPackage({ retainStagingFolder: true });
409
445
  });
@@ -436,30 +472,16 @@ class BrightScriptDebugSession extends vscode_debugadapter_1.DebugSession {
436
472
  /**
437
473
  * Called every time a breakpoint is created, modified, or deleted, for each file. This receives the entire list of breakpoints every time.
438
474
  */
439
- setBreakPointsRequest(response, args) {
475
+ async setBreakPointsRequest(response, args) {
476
+ var _a;
440
477
  let sanitizedBreakpoints = this.breakpointManager.replaceBreakpoints(args.source.path, args.breakpoints);
441
478
  //sort the breakpoints
442
- let sortedAndFilteredBreakpoints = (0, natural_orderby_1.orderBy)(sanitizedBreakpoints, [x => x.line, x => x.column])
443
- //filter out the inactive breakpoints
444
- .filter(x => x.isHidden === false);
479
+ let sortedAndFilteredBreakpoints = (0, natural_orderby_1.orderBy)(sanitizedBreakpoints, [x => x.line, x => x.column]);
445
480
  response.body = {
446
481
  breakpoints: sortedAndFilteredBreakpoints
447
482
  };
448
483
  this.sendResponse(response);
449
- //set a small timeout so the user sees the breakpoints disappear before reappearing
450
- //This is disabled because I'm not sure anyone actually wants this functionality, but I didn't want to lose it.
451
- // setTimeout(() => {
452
- // //notify the client about every other breakpoint that was not explicitly requested here
453
- // //(basically force to re-enable the `stop` breakpoints that were written into the source code by the debugger)
454
- // var otherBreakpoints = sanitizedBreakpoints.filter(x => sortedAndFilteredBreakpoints.indexOf(x) === -1);
455
- // for (var breakpoint of otherBreakpoints) {
456
- // this.sendEvent(new BreakpointEvent('new', <DebugProtocol.Breakpoint>{
457
- // line: breakpoint.line,
458
- // verified: true,
459
- // source: args.source
460
- // }));
461
- // }
462
- // }, 100);
484
+ await ((_a = this.rokuAdapter) === null || _a === void 0 ? void 0 : _a.syncBreakpoints());
463
485
  }
464
486
  exceptionInfoRequest(response, args) {
465
487
  this.logger.log('exceptionInfoRequest');
@@ -485,6 +507,7 @@ class BrightScriptDebugSession extends vscode_debugadapter_1.DebugSession {
485
507
  this.sendResponse(response);
486
508
  }
487
509
  async stackTraceRequest(response, args) {
510
+ var _a, _b;
488
511
  try {
489
512
  this.logger.log('stackTraceRequest');
490
513
  let frames = [];
@@ -495,7 +518,7 @@ class BrightScriptDebugSession extends vscode_debugadapter_1.DebugSession {
495
518
  //the stacktrace returns function identifiers in all lower case. Try to get the actual case
496
519
  //load the contents of the file and get the correct casing for the function identifier
497
520
  try {
498
- let functionName = this.fileManager.getCorrectFunctionNameCase(sourceLocation.filePath, debugFrame.functionIdentifier);
521
+ let functionName = this.fileManager.getCorrectFunctionNameCase(sourceLocation === null || sourceLocation === void 0 ? void 0 : sourceLocation.filePath, debugFrame.functionIdentifier);
499
522
  if (functionName) {
500
523
  //search for original function name if this is an anonymous function.
501
524
  //anonymous function names are prefixed with $ in the stack trace (i.e. $anon_1 or $functionname_40002)
@@ -508,7 +531,11 @@ class BrightScriptDebugSession extends vscode_debugadapter_1.DebugSession {
508
531
  catch (error) {
509
532
  this.logger.error('Error correcting function identifier case', { error, sourceLocation, debugFrame });
510
533
  }
511
- let frame = new vscode_debugadapter_1.StackFrame(debugFrame.frameId, `${debugFrame.functionIdentifier}`, new vscode_debugadapter_1.Source(path.basename(sourceLocation.filePath), sourceLocation.filePath), sourceLocation.lineNumber, 1);
534
+ const filePath = (_a = sourceLocation === null || sourceLocation === void 0 ? void 0 : sourceLocation.filePath) !== null && _a !== void 0 ? _a : debugFrame.filePath;
535
+ const frame = new vscode_debugadapter_1.StackFrame(debugFrame.frameId, `${debugFrame.functionIdentifier}`, new vscode_debugadapter_1.Source(path.basename(filePath), filePath), (_b = sourceLocation === null || sourceLocation === void 0 ? void 0 : sourceLocation.lineNumber) !== null && _b !== void 0 ? _b : debugFrame.lineNumber, 1);
536
+ if (!sourceLocation) {
537
+ frame.presentationHint = 'subtle';
538
+ }
512
539
  frames.push(frame);
513
540
  }
514
541
  }
@@ -794,7 +821,7 @@ class BrightScriptDebugSession extends vscode_debugadapter_1.DebugSession {
794
821
  }
795
822
  createRokuAdapter(host) {
796
823
  if (this.enableDebugProtocol) {
797
- this.rokuAdapter = new DebugProtocolAdapter_1.DebugProtocolAdapter(this.launchConfiguration);
824
+ this.rokuAdapter = new DebugProtocolAdapter_1.DebugProtocolAdapter(this.launchConfiguration, this.projectManager, this.breakpointManager);
798
825
  }
799
826
  else {
800
827
  this.rokuAdapter = new TelnetAdapter_1.TelnetAdapter(this.launchConfiguration);
@@ -823,6 +850,9 @@ class BrightScriptDebugSession extends vscode_debugadapter_1.DebugSession {
823
850
  //when the debugger suspends (pauses for debugger input)
824
851
  // eslint-disable-next-line @typescript-eslint/no-misused-promises
825
852
  this.rokuAdapter.on('suspend', async () => {
853
+ var _a;
854
+ //sync breakpoints
855
+ await ((_a = this.rokuAdapter) === null || _a === void 0 ? void 0 : _a.syncBreakpoints());
826
856
  this.logger.info('received "suspend" event from adapter');
827
857
  const threads = await this.rokuAdapter.getThreads();
828
858
  const activeThread = threads.find(x => x.isSelected);
@@ -837,6 +867,15 @@ class BrightScriptDebugSession extends vscode_debugadapter_1.DebugSession {
837
867
  thread.lineNumber = stackTraceLineNumber;
838
868
  }
839
869
  }));
870
+ //if !stopOnEntry, and we haven't encountered a suspend yet, THIS is the entry breakpoint. auto-continue
871
+ if (!this.entryBreakpointWasHandled && !this.launchConfiguration.stopOnEntry) {
872
+ this.entryBreakpointWasHandled = true;
873
+ //if there's a user-defined breakpoint at this exact position, it needs to be handled like a regular breakpoint (i.e. suspend). So only auto-continue if there's no breakpoint here
874
+ if (!await this.breakpointManager.lineHasBreakpoint(this.projectManager.getAllProjects(), activeThread.filePath, activeThread.lineNumber - 1)) {
875
+ this.logger.info('Encountered entry breakpoint and `stopOnEntry` is disabled. Continuing...');
876
+ return this.rokuAdapter.continue();
877
+ }
878
+ }
840
879
  this.clearState();
841
880
  const event = new vscode_debugadapter_1.StoppedEvent(Events_1.StoppedEventReason.breakpoint, activeThread.threadId, '' //exception text
842
881
  );
@@ -860,6 +899,7 @@ class BrightScriptDebugSession extends vscode_debugadapter_1.DebugSession {
860
899
  //make the connection
861
900
  await this.rokuAdapter.connect();
862
901
  this.rokuAdapterDeferred.resolve(this.rokuAdapter);
902
+ return this.rokuAdapter;
863
903
  }
864
904
  getVariableFromResult(result, frameId) {
865
905
  var _a, _b, _c, _d;
@@ -948,8 +988,11 @@ class BrightScriptDebugSession extends vscode_debugadapter_1.DebugSession {
948
988
  * If `stopOnEntry` is enabled, register the entry breakpoint.
949
989
  */
950
990
  async handleEntryBreakpoint() {
951
- if (this.launchConfiguration.stopOnEntry && !this.enableDebugProtocol) {
952
- await this.projectManager.registerEntryBreakpoint(this.projectManager.mainProject.stagingFolderPath);
991
+ if (!this.enableDebugProtocol) {
992
+ this.entryBreakpointWasHandled = true;
993
+ if (this.launchConfiguration.stopOnEntry) {
994
+ await this.projectManager.registerEntryBreakpoint(this.projectManager.mainProject.stagingFolderPath);
995
+ }
953
996
  }
954
997
  }
955
998
  /**