roku-debug 0.21.2 → 0.21.4

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 CHANGED
@@ -6,6 +6,27 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
6
6
 
7
7
 
8
8
 
9
+ ## [0.21.4](https://github.com/rokucommunity/roku-debug/compare/v0.21.3...v0.21.4) - 2024-02-29
10
+ ### Changed
11
+ - upgrade to [brighterscript@0.65.23](https://github.com/rokucommunity/brighterscript/blob/master/CHANGELOG.md#06523---2024-02-29). Notable changes since 0.65.19:
12
+ - Fix sourcemap comment and add `file` prop to map ([brighterscript#1064](https://github.com/rokucommunity/brighterscript/pull/1064))
13
+ - Move `coveralls-next` to a devDependency since it's not needed at runtime ([brighterscript#1051](https://github.com/rokucommunity/brighterscript/pull/1051))
14
+ - Fix parsing issues with multi-index IndexedSet and IndexedGet ([brighterscript#1050](https://github.com/rokucommunity/brighterscript/pull/1050))
15
+ - upgrade to [roku-deploy@3.11.3](https://github.com/rokucommunity/roku-deploy/blob/master/CHANGELOG.md#3113---2024-02-29). Notable changes since 3.11.2:
16
+ - Retry the convertToSquahsfs request given the HPE_INVALID_CONSTANT error ([roku-deploy#145](https://github.com/rokucommunity/roku-deploy/pull/145))
17
+ ### Fixed
18
+ - DebugProtocol fixes ([#186](https://github.com/rokucommunity/roku-debug/pull/186))
19
+ - Support relaunch debug protocol ([#181](https://github.com/rokucommunity/roku-debug/pull/181))
20
+
21
+
22
+
23
+ ## [0.21.3](https://github.com/rokucommunity/roku-debug/compare/v0.21.2...v0.21.3) - 2024-01-30
24
+ ### Changed
25
+ - upgrade to [brighterscript@0.65.19](https://github.com/rokucommunity/brighterscript/blob/master/CHANGELOG.md#06519---2024-01-30). Notable changes since 0.65.18:
26
+ - Backport v1 syntax changes ([brighterscript#1034](https://github.com/rokucommunity/brighterscript/pull/1034))
27
+
28
+
29
+
9
30
  ## [0.21.2](https://github.com/rokucommunity/roku-debug/compare/v0.21.1...v0.21.2) - 2024-01-25
10
31
  ### Changed
11
32
  - Use `stagingDir` instead of stagingFolderPath ([#185](https://github.com/rokucommunity/roku-debug/pull/185))
@@ -32,7 +32,7 @@ export declare class DebugProtocolAdapter {
32
32
  private compileErrorProcessor;
33
33
  private emitter;
34
34
  private chanperfTracker;
35
- private socketDebugger;
35
+ private client;
36
36
  private nextFrameId;
37
37
  private stackFramesCache;
38
38
  private cache;
@@ -40,7 +40,6 @@ export declare class DebugProtocolAdapter {
40
40
  * Get the version of the protocol for the Roku device we're currently connected to.
41
41
  */
42
42
  get activeProtocolVersion(): string;
43
- readonly supportsMultipleRuns = false;
44
43
  /**
45
44
  * Subscribe to an event exactly once
46
45
  * @param eventName
@@ -49,6 +48,7 @@ export declare class DebugProtocolAdapter {
49
48
  once(eventname: 'chanperf'): Promise<ChanperfData>;
50
49
  once(eventName: 'close'): Promise<void>;
51
50
  once(eventName: 'app-exit'): Promise<void>;
51
+ once(eventName: 'app-ready'): Promise<void>;
52
52
  once(eventName: 'diagnostics'): Promise<BSDebugDiagnostic>;
53
53
  once(eventName: 'connected'): Promise<boolean>;
54
54
  once(eventname: 'console-output'): Promise<string>;
@@ -75,6 +75,7 @@ export declare class DebugProtocolAdapter {
75
75
  on(eventName: 'runtime-error', handler: (error: BrightScriptRuntimeError) => void): any;
76
76
  on(eventName: 'suspend', handler: () => void): any;
77
77
  on(eventName: 'start', handler: () => void): any;
78
+ on(eventName: 'waiting-for-debugger', handler: () => void): any;
78
79
  on(eventname: 'unhandled-console-output', handler: (output: string) => void): any;
79
80
  private emit;
80
81
  /**
@@ -100,13 +101,16 @@ export declare class DebugProtocolAdapter {
100
101
  /**
101
102
  * Connect to the telnet session. This should be called before the channel is launched.
102
103
  */
103
- connect(): Promise<unknown>;
104
+ connect(): Promise<void>;
105
+ createDebugProtocolClient(): Promise<unknown>;
104
106
  private beginAppExit;
105
107
  /**
106
108
  * Determines if the current version of the debug protocol supports emitting compile error updates.
107
109
  */
108
110
  get supportsCompileErrorReporting(): boolean;
109
- watchCompileOutput(): Promise<unknown>;
111
+ private processingTelnetOutput;
112
+ processTelnetOutput(): Promise<unknown>;
113
+ private findWaitForDebuggerPrompt;
110
114
  /**
111
115
  * Send command to step over
112
116
  */
@@ -31,7 +31,6 @@ class DebugProtocolAdapter {
31
31
  this.nextFrameId = 1;
32
32
  this.stackFramesCache = {};
33
33
  this.cache = {};
34
- this.supportsMultipleRuns = false;
35
34
  /**
36
35
  * The debugger needs to tell us when to be active (i.e. when the package was deployed)
37
36
  */
@@ -41,6 +40,7 @@ class DebugProtocolAdapter {
41
40
  * which indicates that the app is running on the Roku
42
41
  */
43
42
  this.isAppRunning = false;
43
+ this.processingTelnetOutput = false;
44
44
  /**
45
45
  * Indicates whether this class had `.destroy()` called at least once. Mostly used for checking externally to see if
46
46
  * the whole debug session has been terminated or is in a bad state.
@@ -62,7 +62,7 @@ class DebugProtocolAdapter {
62
62
  */
63
63
  get activeProtocolVersion() {
64
64
  var _a;
65
- return (_a = this.socketDebugger) === null || _a === void 0 ? void 0 : _a.protocolVersion;
65
+ return (_a = this.client) === null || _a === void 0 ? void 0 : _a.protocolVersion;
66
66
  }
67
67
  once(eventName) {
68
68
  return new Promise((resolve) => {
@@ -134,18 +134,32 @@ class DebugProtocolAdapter {
134
134
  }
135
135
  get isAtDebuggerPrompt() {
136
136
  var _a, _b;
137
- return (_b = (_a = this.socketDebugger) === null || _a === void 0 ? void 0 : _a.isStopped) !== null && _b !== void 0 ? _b : false;
137
+ return (_b = (_a = this.client) === null || _a === void 0 ? void 0 : _a.isStopped) !== null && _b !== void 0 ? _b : false;
138
138
  }
139
139
  /**
140
140
  * Connect to the telnet session. This should be called before the channel is launched.
141
141
  */
142
142
  async connect() {
143
+ //Start processing telnet output to look for compile errors or the debugger prompt
144
+ await this.processTelnetOutput();
145
+ this.on('waiting-for-debugger', () => {
146
+ void this.createDebugProtocolClient();
147
+ });
148
+ }
149
+ async createDebugProtocolClient() {
143
150
  let deferred = (0, util_1.defer)();
144
- this.socketDebugger = new DebugProtocolClient_1.DebugProtocolClient(this.options);
151
+ if (this.client) {
152
+ await Promise.race([
153
+ util_1.util.sleep(2000),
154
+ await this.client.destroy()
155
+ ]);
156
+ this.client = undefined;
157
+ }
158
+ this.client = new DebugProtocolClient_1.DebugProtocolClient(this.options);
145
159
  try {
146
160
  // Emit IO from the debugger.
147
161
  // eslint-disable-next-line @typescript-eslint/no-misused-promises
148
- this.socketDebugger.on('io-output', async (responseText) => {
162
+ this.client.on('io-output', async (responseText) => {
149
163
  if (typeof responseText === 'string') {
150
164
  responseText = this.chanperfTracker.processLog(responseText);
151
165
  responseText = await this.rendezvousTracker.processLog(responseText);
@@ -154,7 +168,7 @@ class DebugProtocolAdapter {
154
168
  }
155
169
  });
156
170
  // Emit IO from the debugger.
157
- this.socketDebugger.on('protocol-version', (data) => {
171
+ this.client.on('protocol-version', (data) => {
158
172
  if (data.errorCode === Constants_1.PROTOCOL_ERROR_CODES.SUPPORTED) {
159
173
  this.emit('console-output', data.message);
160
174
  }
@@ -175,30 +189,36 @@ class DebugProtocolAdapter {
175
189
  this.supportsExecuteCommand = semver.satisfies(this.activeProtocolVersion, '>=3.0.0');
176
190
  });
177
191
  // Listen for the close event
178
- this.socketDebugger.on('close', () => {
192
+ this.client.on('close', () => {
193
+ var _a;
179
194
  this.emit('close');
180
195
  this.beginAppExit();
196
+ void ((_a = this.client) === null || _a === void 0 ? void 0 : _a.destroy());
197
+ this.client = undefined;
181
198
  });
182
199
  // Listen for the app exit event
183
- this.socketDebugger.on('app-exit', () => {
200
+ this.client.on('app-exit', () => {
201
+ var _a;
184
202
  this.emit('app-exit');
203
+ void ((_a = this.client) === null || _a === void 0 ? void 0 : _a.destroy());
204
+ this.client = undefined;
185
205
  });
186
- this.socketDebugger.on('suspend', (data) => {
206
+ this.client.on('suspend', (data) => {
187
207
  this.clearCache();
188
208
  this.emit('suspend');
189
209
  });
190
- this.socketDebugger.on('runtime-error', (data) => {
210
+ this.client.on('runtime-error', (data) => {
191
211
  console.debug('hasRuntimeError!!', data);
192
212
  this.emit('runtime-error', {
193
213
  message: data.data.stopReasonDetail,
194
214
  errorCode: data.data.stopReason
195
215
  });
196
216
  });
197
- this.socketDebugger.on('cannot-continue', () => {
217
+ this.client.on('cannot-continue', () => {
198
218
  this.emit('cannot-continue');
199
219
  });
200
220
  //handle when the device verifies breakpoints
201
- this.socketDebugger.on('breakpoints-verified', (event) => {
221
+ this.client.on('breakpoints-verified', (event) => {
202
222
  var _a;
203
223
  let unverifiableDeviceIds = [];
204
224
  //mark the breakpoints as verified
@@ -211,18 +231,11 @@ class DebugProtocolAdapter {
211
231
  //if there were any unsuccessful breakpoint verifications, we need to ask the device to delete those breakpoints as they've gone missing on our side
212
232
  if (unverifiableDeviceIds.length > 0) {
213
233
  this.logger.warn('Could not find breakpoints to verify. Removing from device:', { deviceBreakpointIds: unverifiableDeviceIds });
214
- void this.socketDebugger.removeBreakpoints(unverifiableDeviceIds);
234
+ void this.client.removeBreakpoints(unverifiableDeviceIds);
215
235
  }
216
236
  this.emit('breakpoints-verified', event);
217
237
  });
218
- this.connected = await this.socketDebugger.connect();
219
- this.logger.log(`Closing telnet connection used for compile errors`);
220
- if (this.compileClient) {
221
- this.compileClient.removeAllListeners();
222
- this.compileClient.destroy();
223
- this.compileClient = undefined;
224
- }
225
- this.socketDebugger.on('compile-error', (update) => {
238
+ this.client.on('compile-error', (update) => {
226
239
  let diagnostics = [];
227
240
  diagnostics.push({
228
241
  path: update.data.filePath,
@@ -233,8 +246,11 @@ class DebugProtocolAdapter {
233
246
  });
234
247
  this.emit('diagnostics', diagnostics);
235
248
  });
249
+ await this.client.connect();
236
250
  this.logger.log(`Connected to device`, { host: this.options.host, connected: this.connected });
251
+ this.connected = true;
237
252
  this.emit('connected', this.connected);
253
+ this.emit('app-ready');
238
254
  //the adapter is connected and running smoothly. resolve the promise
239
255
  deferred.resolve();
240
256
  }
@@ -255,7 +271,11 @@ class DebugProtocolAdapter {
255
271
  get supportsCompileErrorReporting() {
256
272
  return semver.satisfies(this.deviceInfo.brightscriptDebuggerVersion, '>=3.1.0');
257
273
  }
258
- async watchCompileOutput() {
274
+ async processTelnetOutput() {
275
+ if (this.processingTelnetOutput) {
276
+ return;
277
+ }
278
+ this.processingTelnetOutput = true;
259
279
  let deferred = (0, util_1.defer)();
260
280
  try {
261
281
  this.compileClient = new net_1.Socket();
@@ -291,6 +311,7 @@ class DebugProtocolAdapter {
291
311
  lastPartialLine = '';
292
312
  }
293
313
  // Emit the completed io string.
314
+ this.findWaitForDebuggerPrompt(responseText.trim());
294
315
  this.compileErrorProcessor.processUnhandledLines(responseText.trim());
295
316
  this.emit('unhandled-console-output', responseText.trim());
296
317
  }
@@ -303,27 +324,35 @@ class DebugProtocolAdapter {
303
324
  }
304
325
  return deferred.promise;
305
326
  }
327
+ findWaitForDebuggerPrompt(responseText) {
328
+ let lines = responseText.split(/\r?\n/g);
329
+ for (const line of lines) {
330
+ if (/Waiting for debugger on \d+\.\d+\.\d+\.\d+:8081/g.exec(line)) {
331
+ this.emit('waiting-for-debugger');
332
+ }
333
+ }
334
+ }
306
335
  /**
307
336
  * Send command to step over
308
337
  */
309
338
  async stepOver(threadId) {
310
339
  this.clearCache();
311
- return this.socketDebugger.stepOver(threadId);
340
+ return this.client.stepOver(threadId);
312
341
  }
313
342
  async stepInto(threadId) {
314
343
  this.clearCache();
315
- return this.socketDebugger.stepIn(threadId);
344
+ return this.client.stepIn(threadId);
316
345
  }
317
346
  async stepOut(threadId) {
318
347
  this.clearCache();
319
- return this.socketDebugger.stepOut(threadId);
348
+ return this.client.stepOut(threadId);
320
349
  }
321
350
  /**
322
351
  * Tell the brightscript program to continue (i.e. resume program)
323
352
  */
324
353
  async continue() {
325
354
  this.clearCache();
326
- return this.socketDebugger.continue();
355
+ return this.client.continue();
327
356
  }
328
357
  /**
329
358
  * Tell the brightscript program to pause (fall into debug mode)
@@ -331,7 +360,7 @@ class DebugProtocolAdapter {
331
360
  async pause() {
332
361
  this.clearCache();
333
362
  //send the kill signal, which breaks into debugger mode
334
- return this.socketDebugger.pause();
363
+ return this.client.pause();
335
364
  }
336
365
  /**
337
366
  * Clears the state, which means that everything will be retrieved fresh next time it is requested
@@ -345,7 +374,7 @@ class DebugProtocolAdapter {
345
374
  * @param command
346
375
  * @returns the output of the command (if possible)
347
376
  */
348
- async evaluate(command, frameId = this.socketDebugger.primaryThread) {
377
+ async evaluate(command, frameId = this.client.primaryThread) {
349
378
  var _a, _b, _c, _d, _e, _f, _g;
350
379
  if (this.supportsExecuteCommand) {
351
380
  if (!this.isAtDebuggerPrompt) {
@@ -356,7 +385,7 @@ class DebugProtocolAdapter {
356
385
  throw new Error('Cannot execute command without a corresponding frame');
357
386
  }
358
387
  this.logger.log('evaluate ', { command, frameId });
359
- const response = await this.socketDebugger.executeCommand(command, stackFrame.frameIndex, stackFrame.threadIndex);
388
+ const response = await this.client.executeCommand(command, stackFrame.frameIndex, stackFrame.threadIndex);
360
389
  this.logger.info('evaluate response', { command, response });
361
390
  if (response.data.executeSuccess) {
362
391
  return {
@@ -383,7 +412,7 @@ class DebugProtocolAdapter {
383
412
  };
384
413
  }
385
414
  }
386
- async getStackTrace(threadIndex = this.socketDebugger.primaryThread) {
415
+ async getStackTrace(threadIndex = this.client.primaryThread) {
387
416
  if (!this.isAtDebuggerPrompt) {
388
417
  throw new Error('Cannot get stack trace: debugger is not paused');
389
418
  }
@@ -392,7 +421,7 @@ class DebugProtocolAdapter {
392
421
  var _f, _g;
393
422
  let thread = await this.getThreadByThreadId(threadIndex);
394
423
  let frames = [];
395
- let stackTraceData = await this.socketDebugger.getStackTrace(threadIndex);
424
+ let stackTraceData = await this.client.getStackTrace(threadIndex);
396
425
  for (let i = 0; (_c = i < ((_b = (_a = stackTraceData === null || stackTraceData === void 0 ? void 0 : stackTraceData.data) === null || _a === void 0 ? void 0 : _a.entries) === null || _b === void 0 ? void 0 : _b.length)) !== null && _c !== void 0 ? _c : 0; i++) {
397
426
  let frameData = stackTraceData.data.entries[i];
398
427
  let stackFrame = {
@@ -443,12 +472,12 @@ class DebugProtocolAdapter {
443
472
  if (this.enableVariablesLowerCaseRetry && (variablePath === null || variablePath === void 0 ? void 0 : variablePath.length) > 0) {
444
473
  variablePath[0] = variablePath[0].toLowerCase();
445
474
  }
446
- let response = await this.socketDebugger.getVariables(variablePath, frame.frameIndex, frame.threadIndex);
475
+ let response = await this.client.getVariables(variablePath, frame.frameIndex, frame.threadIndex);
447
476
  if (this.enableVariablesLowerCaseRetry && response.data.errorCode !== Constants_1.ErrorCode.OK) {
448
477
  // Temporary workaround related to casing issues over the protocol
449
478
  logger.log(`Retrying expression as lower case:`, expression);
450
479
  variablePath = expression === '' ? [] : util_1.util.getVariablePath(expression === null || expression === void 0 ? void 0 : expression.toLowerCase());
451
- response = await this.socketDebugger.getVariables(variablePath, frame.frameIndex, frame.threadIndex);
480
+ response = await this.client.getVariables(variablePath, frame.frameIndex, frame.threadIndex);
452
481
  }
453
482
  return response;
454
483
  }
@@ -577,13 +606,31 @@ class DebugProtocolAdapter {
577
606
  return this.resolve('threads', async () => {
578
607
  var _a, _b, _c;
579
608
  let threads = [];
580
- let threadsResponse = await this.socketDebugger.threads();
609
+ let threadsResponse;
610
+ // sometimes roku threads are stubborn and haven't stopped yet, causing our ThreadsRequest to fail with "not stopped".
611
+ // A nice simple fix for this is to just send a "pause" request again, which seems to fix the issue.
612
+ // we'll do this a few times just to make sure we've tried our best to get the list of threads.
613
+ for (let i = 0; i < 3; i++) {
614
+ threadsResponse = await this.client.threads();
615
+ if (threadsResponse.data.errorCode === Constants_1.ErrorCode.NOT_STOPPED) {
616
+ this.logger.log(`Threads request retrying... ${i}:\n`, threadsResponse);
617
+ threadsResponse = undefined;
618
+ const pauseResponse = await this.client.pause(true);
619
+ await util_1.util.sleep(100);
620
+ }
621
+ else {
622
+ break;
623
+ }
624
+ }
625
+ if (!threadsResponse) {
626
+ return [];
627
+ }
581
628
  for (let i = 0; (_c = i < ((_b = (_a = threadsResponse.data) === null || _a === void 0 ? void 0 : _a.threads) === null || _b === void 0 ? void 0 : _b.length)) !== null && _c !== void 0 ? _c : 0; i++) {
582
629
  let threadInfo = threadsResponse.data.threads[i];
583
630
  let thread = {
584
631
  // NOTE: On THREAD_ATTACHED events the threads request is marking the wrong thread as primary.
585
632
  // NOTE: Rely on the thead index from the threads update event.
586
- isSelected: this.socketDebugger.primaryThread === i,
633
+ isSelected: this.client.primaryThread === i,
587
634
  // isSelected: threadInfo.isPrimary,
588
635
  filePath: threadInfo.filePath,
589
636
  functionName: threadInfo.functionName,
@@ -619,9 +666,9 @@ class DebugProtocolAdapter {
619
666
  async destroy() {
620
667
  this.isDestroyed = true;
621
668
  // destroy the debug client if it's defined
622
- if (this.socketDebugger) {
669
+ if (this.client) {
623
670
  try {
624
- await this.socketDebugger.destroy();
671
+ await this.client.destroy();
625
672
  }
626
673
  catch (e) {
627
674
  this.logger.error(e);
@@ -630,6 +677,11 @@ class DebugProtocolAdapter {
630
677
  this.cache = undefined;
631
678
  this.removeAllListeners();
632
679
  this.emitter = undefined;
680
+ if (this.compileClient) {
681
+ this.compileClient.removeAllListeners();
682
+ this.compileClient.destroy();
683
+ this.compileClient = undefined;
684
+ }
633
685
  }
634
686
  /**
635
687
  * Passes the log level down to the RendezvousTracker and ChanperfTracker
@@ -666,7 +718,7 @@ class DebugProtocolAdapter {
666
718
  var _a, _b, _c, _d, _e, _f, _g, _h;
667
719
  //we can't send breakpoints unless we're stopped (or in a protocol version that supports sending them while running).
668
720
  //So...if we're not stopped, quit now. (we'll get called again when the stop event happens)
669
- if (!((_a = this.socketDebugger) === null || _a === void 0 ? void 0 : _a.supportsBreakpointRegistrationWhileRunning) && !this.isAtDebuggerPrompt) {
721
+ if (!((_a = this.client) === null || _a === void 0 ? void 0 : _a.supportsBreakpointRegistrationWhileRunning) && !this.isAtDebuggerPrompt) {
670
722
  return;
671
723
  }
672
724
  //compute breakpoint changes since last sync
@@ -674,7 +726,7 @@ class DebugProtocolAdapter {
674
726
  this.logger.log('Syncing breakpoints', diff);
675
727
  // REMOVE breakpoints (delete these breakpoints from the device)
676
728
  if (diff.removed.length > 0) {
677
- const response = await this.socketDebugger.removeBreakpoints(
729
+ const response = await this.client.removeBreakpoints(
678
730
  //TODO handle retrying to remove breakpoints that don't have deviceIds yet but might get one in the future
679
731
  diff.removed.map(x => x.deviceId).filter(x => typeof x === 'number'));
680
732
  if (((_b = response.data) === null || _b === void 0 ? void 0 : _b.errorCode) === Constants_1.ErrorCode.NOT_STOPPED) {
@@ -707,7 +759,7 @@ class DebugProtocolAdapter {
707
759
  }
708
760
  }
709
761
  for (const breakpoints of [standardBreakpoints, conditionalBreakpoints]) {
710
- const response = await this.socketDebugger.addBreakpoints(breakpoints);
762
+ const response = await this.client.addBreakpoints(breakpoints);
711
763
  //if the response was successful, and we have the correct number of breakpoints in the response
712
764
  if (response.data.errorCode === Constants_1.ErrorCode.OK && ((_e = (_d = response === null || response === void 0 ? void 0 : response.data) === null || _d === void 0 ? void 0 : _d.breakpoints) === null || _e === void 0 ? void 0 : _e.length) === breakpoints.length) {
713
765
  for (let i = 0; (_h = i < ((_g = (_f = response === null || response === void 0 ? void 0 : response.data) === null || _f === void 0 ? void 0 : _f.breakpoints) === null || _g === void 0 ? void 0 : _g.length)) !== null && _h !== void 0 ? _h : 0; i++) {
@@ -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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"}
@@ -14,6 +14,8 @@ export declare class TelnetAdapter {
14
14
  constructor(options: AdapterOptions & {
15
15
  enableDebuggerAutoRecovery?: boolean;
16
16
  }, rendezvousTracker: RendezvousTracker);
17
+ private connectionDeferred;
18
+ isConnected(): Promise<void>;
17
19
  logger: import("@rokucommunity/logger/dist/Logger").Logger;
18
20
  /**
19
21
  * Indicates whether the adapter has successfully established a connection with the device
@@ -28,11 +30,11 @@ export declare class TelnetAdapter {
28
30
  private debugEndRegex;
29
31
  private chanperfTracker;
30
32
  private cache;
31
- readonly supportsMultipleRuns = true;
32
33
  /**
33
34
  * Does this adapter support the `execute` command (known as `eval` in telnet)
34
35
  */
35
36
  supportsExecute: boolean;
37
+ once(eventName: 'app-ready'): Promise<void>;
36
38
  /**
37
39
  * Subscribe to various events
38
40
  * @param eventName
@@ -21,10 +21,10 @@ class TelnetAdapter {
21
21
  var _b;
22
22
  this.options = options;
23
23
  this.rendezvousTracker = rendezvousTracker;
24
+ this.connectionDeferred = (0, util_1.defer)();
24
25
  this.logger = logging_1.logger.createLogger(`[tadapter]`);
25
26
  this.isNextBreakpointSkipped = false;
26
27
  this.cache = {};
27
- this.supportsMultipleRuns = true;
28
28
  /**
29
29
  * Does this adapter support the `execute` command (known as `eval` in telnet)
30
30
  */
@@ -61,6 +61,17 @@ class TelnetAdapter {
61
61
  this.emit('chanperf', output);
62
62
  });
63
63
  }
64
+ isConnected() {
65
+ return this.connectionDeferred.promise;
66
+ }
67
+ once(eventName) {
68
+ return new Promise((resolve) => {
69
+ const disconnect = this.on(eventName, (...args) => {
70
+ disconnect();
71
+ resolve(...args);
72
+ });
73
+ });
74
+ }
64
75
  on(eventName, handler) {
65
76
  this.emitter.on(eventName, handler);
66
77
  return () => {
@@ -175,6 +186,7 @@ class TelnetAdapter {
175
186
  client.connect(this.options.brightScriptConsolePort, this.options.host, () => {
176
187
  this.logger.log(`Telnet connection established to ${this.options.host}:${this.options.brightScriptConsolePort}`);
177
188
  this.connected = true;
189
+ this.connectionDeferred.resolve();
178
190
  this.emit('connected', this.connected);
179
191
  });
180
192
  await settlePromise;
@@ -216,6 +228,10 @@ class TelnetAdapter {
216
228
  this.isAtDebuggerPrompt = true;
217
229
  return;
218
230
  }
231
+ //emitting this signal so the BrightScriptDebugSession will successfully complete it's publish method.
232
+ if (/\[beacon.signal\] \|AppCompileComplete/i.exec(responseText.trim())) {
233
+ this.emit('app-ready');
234
+ }
219
235
  if (this.isActivated) {
220
236
  //watch for the start of the program
221
237
  if (/\[scrpt.ctx.run.enter\]/i.exec(responseText.trim())) {