roku-debug 0.9.2 → 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 +50 -52
  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 +5 -4
  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.2.tgz +0 -0
@@ -5,14 +5,19 @@ const Net = require("net");
5
5
  const EventEmitter = require("events");
6
6
  const semver = require("semver");
7
7
  const responses_1 = require("./responses");
8
+ const Constants_1 = require("./Constants");
8
9
  const smart_buffer_1 = require("smart-buffer");
9
10
  const logging_1 = require("../logging");
11
+ const __1 = require("..");
12
+ const ExecuteResponseV3_1 = require("./responses/ExecuteResponseV3");
10
13
  class Debugger {
11
14
  constructor(options) {
12
15
  this.logger = logging_1.logger.createLogger(`[debugProtocol/${Debugger.name}]`);
13
- this.supportedVersionRange = '=2.0.0';
16
+ // The highest tested version of the protocol we support.
17
+ this.supportedVersionRange = '<=3.0.0';
14
18
  this.handshakeComplete = false;
15
19
  this.connectedToIoPort = false;
20
+ this.watchPacketLength = false;
16
21
  this.emitter = new EventEmitter();
17
22
  this.firstRunContinueFired = false;
18
23
  this.stopped = false;
@@ -116,26 +121,26 @@ class Debugger {
116
121
  let result;
117
122
  if (this.stopped) {
118
123
  this.stopped = false;
119
- result = this.makeRequest(new smart_buffer_1.SmartBuffer({ size: 12 }), 2 /* CONTINUE */);
124
+ result = this.makeRequest(new smart_buffer_1.SmartBuffer({ size: 12 }), Constants_1.COMMANDS.CONTINUE);
120
125
  }
121
126
  return result;
122
127
  }
123
- async pause() {
124
- if (!this.stopped) {
125
- return this.makeRequest(new smart_buffer_1.SmartBuffer({ size: 12 }), 1 /* STOP */);
128
+ async pause(force = false) {
129
+ if (!this.stopped || force) {
130
+ return this.makeRequest(new smart_buffer_1.SmartBuffer({ size: 12 }), Constants_1.COMMANDS.STOP);
126
131
  }
127
132
  }
128
133
  async exitChannel() {
129
- return this.makeRequest(new smart_buffer_1.SmartBuffer({ size: 12 }), 122 /* EXIT_CHANNEL */);
134
+ return this.makeRequest(new smart_buffer_1.SmartBuffer({ size: 12 }), Constants_1.COMMANDS.EXIT_CHANNEL);
130
135
  }
131
136
  async stepIn(threadId = this.primaryThread) {
132
- return this.step(1 /* STEP_TYPE_LINE */, threadId);
137
+ return this.step(Constants_1.STEP_TYPE.STEP_TYPE_LINE, threadId);
133
138
  }
134
139
  async stepOver(threadId = this.primaryThread) {
135
- return this.step(3 /* STEP_TYPE_OVER */, threadId);
140
+ return this.step(Constants_1.STEP_TYPE.STEP_TYPE_OVER, threadId);
136
141
  }
137
142
  async stepOut(threadId = this.primaryThread) {
138
- return this.step(2 /* STEP_TYPE_OUT */, threadId);
143
+ return this.step(Constants_1.STEP_TYPE.STEP_TYPE_OUT, threadId);
139
144
  }
140
145
  async step(stepType, threadId) {
141
146
  let buffer = new smart_buffer_1.SmartBuffer({ size: 17 });
@@ -143,7 +148,7 @@ class Debugger {
143
148
  buffer.writeUInt8(stepType); // step_type
144
149
  if (this.stopped) {
145
150
  this.stopped = false;
146
- let stepResult = await this.makeRequest(buffer, 6 /* STEP */);
151
+ let stepResult = await this.makeRequest(buffer, Constants_1.COMMANDS.STEP);
147
152
  if (stepResult.errorCode === 'OK') {
148
153
  // this.stopped = true;
149
154
  // this.emit('suspend');
@@ -156,11 +161,10 @@ class Debugger {
156
161
  }
157
162
  }
158
163
  async threads() {
159
- let result;
160
164
  if (this.stopped) {
161
- result = this.makeRequest(new smart_buffer_1.SmartBuffer({ size: 12 }), 3 /* THREADS */);
162
- if (result.errorCode === 'OK') {
163
- for (let i = 0; i < result.threadCount; i++) {
165
+ let result = await this.makeRequest(new smart_buffer_1.SmartBuffer({ size: 12 }), Constants_1.COMMANDS.THREADS);
166
+ if (result.errorCode === __1.ERROR_CODES.OK) {
167
+ for (let i = 0; i < result.threadsCount; i++) {
164
168
  let thread = result.threads[i];
165
169
  if (thread.isPrimary) {
166
170
  this.primaryThread = i;
@@ -175,7 +179,7 @@ class Debugger {
175
179
  let buffer = new smart_buffer_1.SmartBuffer({ size: 16 });
176
180
  buffer.writeUInt32LE(threadIndex); // thread_index
177
181
  if (this.stopped && threadIndex > -1) {
178
- return this.makeRequest(buffer, 4 /* STACKTRACE */);
182
+ return this.makeRequest(buffer, Constants_1.COMMANDS.STACKTRACE);
179
183
  }
180
184
  }
181
185
  async getVariables(variablePathEntries = [], getChildKeys = true, stackFrameIndex = this.stackFrameIndex, threadIndex = this.primaryThread) {
@@ -188,7 +192,17 @@ class Debugger {
188
192
  variablePathEntries.forEach(variablePathEntry => {
189
193
  buffer.writeStringNT(variablePathEntry); // variable_path_entries - optional
190
194
  });
191
- return this.makeRequest(buffer, 5 /* VARIABLES */, variablePathEntries);
195
+ return this.makeRequest(buffer, Constants_1.COMMANDS.VARIABLES, variablePathEntries);
196
+ }
197
+ }
198
+ async executeCommand(sourceCode, stackFrameIndex = this.stackFrameIndex, threadIndex = this.primaryThread) {
199
+ if (this.stopped && threadIndex > -1) {
200
+ console.log(sourceCode);
201
+ let buffer = new smart_buffer_1.SmartBuffer({ size: 8 });
202
+ buffer.writeUInt32LE(threadIndex); // thread_index
203
+ buffer.writeUInt32LE(stackFrameIndex); // stack_frame_index
204
+ buffer.writeStringNT(sourceCode); // source_code
205
+ return this.makeRequest(buffer, Constants_1.COMMANDS.EXECUTE, sourceCode);
192
206
  }
193
207
  }
194
208
  async makeRequest(buffer, command, extraData) {
@@ -202,92 +216,112 @@ class Debugger {
202
216
  extraData: extraData
203
217
  };
204
218
  return new Promise((resolve, reject) => {
205
- let disconnect = this.on('data', (data) => {
219
+ let unsubscribe = this.on('data', (data) => {
206
220
  if (data.requestId === requestId) {
207
- disconnect();
221
+ unsubscribe();
208
222
  resolve(data);
209
223
  }
210
224
  });
211
- this.controllerClient.write(buffer.toBuffer());
225
+ if (this.controllerClient) {
226
+ this.controllerClient.write(buffer.toBuffer());
227
+ }
228
+ else {
229
+ throw new Error(`Controller connection was closed - Command: ${Constants_1.COMMANDS[command]}`);
230
+ }
212
231
  });
213
232
  }
214
- parseUnhandledData(unhandledData) {
233
+ parseUnhandledData(buffer) {
234
+ if (buffer.length < 1) {
235
+ // short circuit if the buffer is empty
236
+ return false;
237
+ }
215
238
  if (this.handshakeComplete) {
216
- let debuggerRequestResponse = new responses_1.Response(unhandledData);
239
+ let debuggerRequestResponse = this.watchPacketLength ? new responses_1.ProtocolEventV3(buffer) : new responses_1.ProtocolEvent(buffer);
240
+ let packetLength = debuggerRequestResponse.packetLength;
241
+ let slicedBuffer = packetLength ? buffer.slice(4) : buffer;
242
+ this.logger.log('incoming data - ', `bytes: ${buffer.length}`, debuggerRequestResponse);
217
243
  if (debuggerRequestResponse.success) {
218
244
  if (debuggerRequestResponse.requestId > this.totalRequests) {
219
- return false;
220
- }
221
- if (debuggerRequestResponse.errorCode !== 'OK') {
222
- console.error(debuggerRequestResponse.errorCode, debuggerRequestResponse);
223
- this.removedProcessedBytes(debuggerRequestResponse, unhandledData);
245
+ this.removedProcessedBytes(debuggerRequestResponse, slicedBuffer, packetLength);
224
246
  return true;
225
247
  }
226
- let commandType = this.activeRequests[debuggerRequestResponse.requestId].commandType;
227
- if (commandType === 1 /* STOP */ || commandType === 2 /* CONTINUE */ || commandType === 6 /* STEP */ || commandType === 122 /* EXIT_CHANNEL */) {
228
- this.removedProcessedBytes(debuggerRequestResponse, unhandledData);
248
+ if (debuggerRequestResponse.errorCode !== __1.ERROR_CODES.OK) {
249
+ this.logger.error(debuggerRequestResponse.errorCode, debuggerRequestResponse);
250
+ this.removedProcessedBytes(debuggerRequestResponse, buffer, packetLength);
229
251
  return true;
230
252
  }
231
- if (commandType === 5 /* VARIABLES */) {
232
- let debuggerVariableRequestResponse = new responses_1.VariableResponse(unhandledData);
233
- if (debuggerVariableRequestResponse.success) {
234
- this.removedProcessedBytes(debuggerVariableRequestResponse, unhandledData);
235
- return true;
253
+ if (debuggerRequestResponse.updateType > 0) {
254
+ this.logger.log('Update Type:', __1.UPDATE_TYPES[debuggerRequestResponse.updateType]);
255
+ switch (debuggerRequestResponse.updateType) {
256
+ case __1.UPDATE_TYPES.IO_PORT_OPENED:
257
+ return this.connectToIoPort(new responses_1.ConnectIOPortResponse(slicedBuffer), buffer, packetLength);
258
+ case __1.UPDATE_TYPES.ALL_THREADS_STOPPED:
259
+ case __1.UPDATE_TYPES.THREAD_ATTACHED:
260
+ let debuggerUpdateThreads = new responses_1.UpdateThreadsResponse(slicedBuffer);
261
+ if (debuggerUpdateThreads.success) {
262
+ this.handleThreadsUpdate(debuggerUpdateThreads);
263
+ this.removedProcessedBytes(debuggerUpdateThreads, slicedBuffer, packetLength);
264
+ return true;
265
+ }
266
+ return false;
267
+ case __1.UPDATE_TYPES.UNDEF:
268
+ return this.checkResponse(new responses_1.UndefinedResponse(slicedBuffer), buffer, packetLength);
269
+ default:
270
+ return this.checkResponse(new responses_1.UndefinedResponse(slicedBuffer), buffer, packetLength);
236
271
  }
237
272
  }
238
- if (commandType === 4 /* STACKTRACE */) {
239
- let debuggerStacktraceRequestResponse = new responses_1.StackTraceResponse(unhandledData);
240
- if (debuggerStacktraceRequestResponse.success) {
241
- this.removedProcessedBytes(debuggerStacktraceRequestResponse, unhandledData);
242
- return true;
243
- }
244
- }
245
- if (commandType === 3 /* THREADS */) {
246
- let debuggerThreadsRequestResponse = new responses_1.ThreadsResponse(unhandledData);
247
- if (debuggerThreadsRequestResponse.success) {
248
- this.removedProcessedBytes(debuggerThreadsRequestResponse, unhandledData);
249
- return true;
273
+ else {
274
+ this.logger.log('Command Type:', Constants_1.COMMANDS[this.activeRequests[debuggerRequestResponse.requestId].commandType]);
275
+ switch (this.activeRequests[debuggerRequestResponse.requestId].commandType) {
276
+ case Constants_1.COMMANDS.STOP:
277
+ case Constants_1.COMMANDS.CONTINUE:
278
+ case Constants_1.COMMANDS.STEP:
279
+ case Constants_1.COMMANDS.EXIT_CHANNEL:
280
+ this.removedProcessedBytes(debuggerRequestResponse, buffer, packetLength);
281
+ return true;
282
+ case Constants_1.COMMANDS.EXECUTE:
283
+ return this.checkResponse(new ExecuteResponseV3_1.ExecuteResponseV3(slicedBuffer), buffer, packetLength);
284
+ case Constants_1.COMMANDS.VARIABLES:
285
+ return this.checkResponse(new responses_1.VariableResponse(slicedBuffer), buffer, packetLength);
286
+ case Constants_1.COMMANDS.STACKTRACE:
287
+ return this.checkResponse(packetLength ? new responses_1.StackTraceResponseV3(slicedBuffer) : new responses_1.StackTraceResponse(slicedBuffer), buffer, packetLength);
288
+ case Constants_1.COMMANDS.THREADS:
289
+ return this.checkResponse(new responses_1.ThreadsResponse(slicedBuffer), buffer, packetLength);
290
+ default:
291
+ return this.checkResponse(debuggerRequestResponse, buffer, packetLength);
250
292
  }
251
293
  }
252
294
  }
253
- let debuggerUpdateThreads = new responses_1.UpdateThreadsResponse(unhandledData);
254
- if (debuggerUpdateThreads.success) {
255
- this.handleThreadsUpdate(debuggerUpdateThreads);
256
- this.removedProcessedBytes(debuggerUpdateThreads, unhandledData);
257
- return true;
258
- }
259
- let debuggerUpdateUndefined = new responses_1.UndefinedResponse(unhandledData);
260
- if (debuggerUpdateUndefined.success) {
261
- this.removedProcessedBytes(debuggerUpdateUndefined, unhandledData);
262
- return true;
263
- }
264
- if (!this.connectedToIoPort) {
265
- let debuggerUpdateConnectIoPort = new responses_1.ConnectIOPortResponse(unhandledData);
266
- if (debuggerUpdateConnectIoPort.success) {
267
- this.connectToIoPort(debuggerUpdateConnectIoPort);
268
- this.removedProcessedBytes(debuggerUpdateConnectIoPort, unhandledData);
269
- return true;
270
- }
271
- }
272
295
  }
273
296
  else {
274
- let debuggerHandshake = new responses_1.HandshakeResponse(unhandledData);
297
+ let debuggerHandshake;
298
+ debuggerHandshake = new responses_1.HandshakeResponseV3(buffer);
299
+ if (!debuggerHandshake.success) {
300
+ debuggerHandshake = new responses_1.HandshakeResponse(buffer);
301
+ }
275
302
  if (debuggerHandshake.success) {
276
303
  this.handshakeComplete = true;
277
304
  this.verifyHandshake(debuggerHandshake);
278
- this.removedProcessedBytes(debuggerHandshake, unhandledData);
305
+ this.removedProcessedBytes(debuggerHandshake, buffer);
279
306
  return true;
280
307
  }
281
308
  }
282
309
  return false;
283
310
  }
284
- removedProcessedBytes(responseHandler, unhandledData) {
285
- console.log(responseHandler);
286
- if (this.activeRequests[responseHandler.requestId]) {
311
+ checkResponse(responseClass, unhandledData, packetLength = 0) {
312
+ if (responseClass.success) {
313
+ this.removedProcessedBytes(responseClass, unhandledData, packetLength);
314
+ return true;
315
+ }
316
+ return false;
317
+ }
318
+ removedProcessedBytes(responseHandler, unhandledData, packetLength = 0) {
319
+ if (responseHandler.requestId > 0 && this.activeRequests[responseHandler.requestId]) {
287
320
  delete this.activeRequests[responseHandler.requestId];
288
321
  }
289
322
  this.emit('data', responseHandler);
290
- this.unhandledData = unhandledData.slice(responseHandler.readOffset);
323
+ this.unhandledData = unhandledData.slice(packetLength ? packetLength : responseHandler.readOffset);
324
+ console.log(this.unhandledData.length, responseHandler);
291
325
  this.parseUnhandledData(this.unhandledData);
292
326
  }
293
327
  verifyHandshake(debuggerHandshake) {
@@ -296,26 +330,27 @@ class Debugger {
296
330
  this.logger.log('Magic is valid.');
297
331
  this.protocolVersion = [debuggerHandshake.majorVersion, debuggerHandshake.minorVersion, debuggerHandshake.patchVersion].join('.');
298
332
  this.logger.log('Protocol Version:', this.protocolVersion);
333
+ this.watchPacketLength = debuggerHandshake.watchPacketLength;
299
334
  let handshakeVerified = true;
300
335
  if (semver.satisfies(this.protocolVersion, this.supportedVersionRange)) {
301
336
  this.logger.log('supported');
302
337
  this.emit('protocol-version', {
303
338
  message: `Protocol Version ${this.protocolVersion} is supported!`,
304
- errorCode: 1 /* SUPPORTED */
339
+ errorCode: Constants_1.PROTOCOL_ERROR_CODES.SUPPORTED
305
340
  });
306
341
  }
307
342
  else if (semver.gtr(this.protocolVersion, this.supportedVersionRange)) {
308
343
  this.logger.log('not tested');
309
344
  this.emit('protocol-version', {
310
345
  message: `Protocol Version ${this.protocolVersion} has not been tested and my not work as intended.\nPlease open any issues you have with this version to https://github.com/rokucommunity/roku-debug/issues`,
311
- errorCode: 0 /* NOT_TESTED */
346
+ errorCode: Constants_1.PROTOCOL_ERROR_CODES.NOT_TESTED
312
347
  });
313
348
  }
314
349
  else {
315
350
  this.logger.log('not supported');
316
351
  this.emit('protocol-version', {
317
- message: `Protocol Version ${this.protocolVersion} is not supported.\nIf you believe this is an error please open an issues at https://github.com/rokucommunity/roku-debug/issues`,
318
- errorCode: 2 /* NOT_SUPPORTED */
352
+ message: `Protocol Version ${this.protocolVersion} is not supported.\nIf you believe this is an error please open an issue at https://github.com/rokucommunity/roku-debug/issues`,
353
+ errorCode: Constants_1.PROTOCOL_ERROR_CODES.NOT_SUPPORTED
319
354
  });
320
355
  this.shutdown('close');
321
356
  handshakeVerified = false;
@@ -330,61 +365,66 @@ class Debugger {
330
365
  return false;
331
366
  }
332
367
  }
333
- connectToIoPort(connectIoPortResponse) {
334
- // Create a new TCP client.
335
- this.ioClient = new Net.Socket();
336
- // Send a connection request to the server.
337
- this.logger.log('Connect to IO Port: port', connectIoPortResponse.data, 'host', this.options.host);
338
- this.ioClient.connect({ port: connectIoPortResponse.data, host: this.options.host }, () => {
339
- // If there is no error, the server has accepted the request
340
- this.logger.log('TCP connection established with the IO Port.');
341
- this.connectedToIoPort = true;
342
- let lastPartialLine = '';
343
- this.ioClient.on('data', (buffer) => {
344
- let responseText = buffer.toString();
345
- if (!responseText.endsWith('\n')) {
346
- // buffer was split, save the partial line
347
- lastPartialLine += responseText;
348
- }
349
- else {
350
- if (lastPartialLine) {
351
- // there was leftover lines, join the partial lines back together
352
- responseText = lastPartialLine + responseText;
353
- lastPartialLine = '';
368
+ connectToIoPort(connectIoPortResponse, unhandledData, packetLength = 0) {
369
+ if (connectIoPortResponse.success) {
370
+ // Create a new TCP client.
371
+ this.ioClient = new Net.Socket();
372
+ // Send a connection request to the server.
373
+ this.logger.log('Connect to IO Port: port', connectIoPortResponse.data, 'host', this.options.host);
374
+ this.ioClient.connect({ port: connectIoPortResponse.data, host: this.options.host }, () => {
375
+ // If there is no error, the server has accepted the request
376
+ this.logger.log('TCP connection established with the IO Port.');
377
+ this.connectedToIoPort = true;
378
+ let lastPartialLine = '';
379
+ this.ioClient.on('data', (buffer) => {
380
+ let responseText = buffer.toString();
381
+ if (!responseText.endsWith('\n')) {
382
+ // buffer was split, save the partial line
383
+ lastPartialLine += responseText;
354
384
  }
355
- // Emit the completed io string.
356
- this.emit('io-output', responseText.trim());
357
- }
358
- });
359
- this.ioClient.on('end', () => {
360
- this.ioClient.end();
361
- this.logger.log('Requested an end to the IO connection');
362
- });
363
- // Don't forget to catch error, for your own sake.
364
- this.ioClient.once('error', (err) => {
365
- this.ioClient.end();
366
- this.logger.log(`Error: ${err}`);
385
+ else {
386
+ if (lastPartialLine) {
387
+ // there was leftover lines, join the partial lines back together
388
+ responseText = lastPartialLine + responseText;
389
+ lastPartialLine = '';
390
+ }
391
+ // Emit the completed io string.
392
+ this.emit('io-output', responseText.trim());
393
+ }
394
+ });
395
+ this.ioClient.on('end', () => {
396
+ this.ioClient.end();
397
+ this.logger.log('Requested an end to the IO connection');
398
+ });
399
+ // Don't forget to catch error, for your own sake.
400
+ this.ioClient.once('error', (err) => {
401
+ this.ioClient.end();
402
+ this.logger.log(`Error: ${err}`);
403
+ });
404
+ this.emit('connected', true);
367
405
  });
368
- this.emit('connected', true);
369
- });
406
+ this.removedProcessedBytes(connectIoPortResponse, unhandledData, packetLength);
407
+ return true;
408
+ }
409
+ return false;
370
410
  }
371
411
  async handleThreadsUpdate(update) {
372
412
  this.stopped = true;
373
413
  let stopReason = update.data.stopReason;
374
- let eventName = stopReason === 'RUNTIME_ERROR' ? 'runtime-error' : 'suspend';
375
- if (update.updateType === 'ALL_THREADS_STOPPED') {
414
+ let eventName = stopReason === Constants_1.STOP_REASONS.RUNTIME_ERROR ? 'runtime-error' : 'suspend';
415
+ if (update.updateType === __1.UPDATE_TYPES.ALL_THREADS_STOPPED) {
376
416
  if (!this.firstRunContinueFired && !this.options.stopOnEntry) {
377
417
  this.logger.log('Sending first run continue command');
378
418
  await this.continue();
379
419
  this.firstRunContinueFired = true;
380
420
  }
381
- else if (stopReason === 'RUNTIME_ERROR' || stopReason === 'BREAK' || stopReason === 'STOP_STATEMENT') {
421
+ else if (stopReason === Constants_1.STOP_REASONS.RUNTIME_ERROR || stopReason === Constants_1.STOP_REASONS.BREAK || stopReason === Constants_1.STOP_REASONS.STOP_STATEMENT) {
382
422
  this.primaryThread = update.data.primaryThreadIndex;
383
423
  this.stackFrameIndex = 0;
384
424
  this.emit(eventName, update);
385
425
  }
386
426
  }
387
- else if (stopReason === 'RUNTIME_ERROR' || stopReason === 'BREAK' || stopReason === 'STOP_STATEMENT') {
427
+ else if (stopReason === Constants_1.STOP_REASONS.RUNTIME_ERROR || stopReason === Constants_1.STOP_REASONS.BREAK || stopReason === Constants_1.STOP_REASONS.STOP_STATEMENT) {
388
428
  this.primaryThread = update.data.threadIndex;
389
429
  this.emit(eventName, update);
390
430
  }
@@ -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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"}
@@ -4,7 +4,7 @@ export declare class ConnectIOPortResponse {
4
4
  success: boolean;
5
5
  readOffset: number;
6
6
  requestId: number;
7
- errorCode: string;
8
- updateType: string;
7
+ errorCode: number;
8
+ updateType: number;
9
9
  data: number;
10
10
  }
@@ -9,6 +9,8 @@ class ConnectIOPortResponse {
9
9
  this.readOffset = 0;
10
10
  // response fields
11
11
  this.requestId = -1;
12
+ this.errorCode = -1;
13
+ this.updateType = -1;
12
14
  this.data = -1;
13
15
  // The minimum size of a connect to IO port request
14
16
  if (buffer.byteLength >= 16) {
@@ -17,10 +19,10 @@ class ConnectIOPortResponse {
17
19
  this.requestId = bufferReader.readUInt32LE(); // request_id
18
20
  // Updates will always have an id of zero because we didn't ask for this information
19
21
  if (this.requestId === 0) {
20
- this.errorCode = Constants_1.ERROR_CODES[bufferReader.readUInt32LE()]; // error_code
21
- this.updateType = Constants_1.UPDATE_TYPES[bufferReader.readUInt32LE()]; // update_type
22
+ this.errorCode = bufferReader.readUInt32LE(); // error_code
23
+ this.updateType = bufferReader.readUInt32LE(); // update_type
22
24
  // Only handle IO port events in this class
23
- if (this.updateType === 'IO_PORT_OPENED') {
25
+ if (this.updateType === Constants_1.UPDATE_TYPES.IO_PORT_OPENED) {
24
26
  this.data = bufferReader.readUInt32LE(); // data
25
27
  this.readOffset = bufferReader.readOffset;
26
28
  this.success = true;
@@ -1 +1 @@
1
- {"version":3,"file":"ConnectIOPortResponse.js","sourceRoot":"","sources":["../../../src/debugProtocol/responses/ConnectIOPortResponse.ts"],"names":[],"mappings":";;;AAAA,+CAA2C;AAC3C,4CAAyD;AAEzD,MAAa,qBAAqB;IAE9B,YAAY,MAAc;QAwBnB,YAAO,GAAG,KAAK,CAAC;QAChB,eAAU,GAAG,CAAC,CAAC;QAEtB,kBAAkB;QACX,cAAS,GAAG,CAAC,CAAC,CAAC;QAGf,SAAI,GAAG,CAAC,CAAC,CAAC;QA9Bb,mDAAmD;QACnD,IAAI,MAAM,CAAC,UAAU,IAAI,EAAE,EAAE;YACzB,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,oFAAoF;gBACpF,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;oBACtB,IAAI,CAAC,SAAS,GAAG,uBAAW,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,aAAa;oBACxE,IAAI,CAAC,UAAU,GAAG,wBAAY,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,cAAc;oBAE3E,2CAA2C;oBAC3C,IAAI,IAAI,CAAC,UAAU,KAAK,gBAAgB,EAAE;wBACtC,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,OAAO;wBAChD,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC;wBAC1C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;qBACvB;iBACJ;aACJ;YAAC,OAAO,KAAK,EAAE;gBACZ,kBAAkB;aACrB;SACJ;IACL,CAAC;CASJ;AAlCD,sDAkCC"}
1
+ {"version":3,"file":"ConnectIOPortResponse.js","sourceRoot":"","sources":["../../../src/debugProtocol/responses/ConnectIOPortResponse.ts"],"names":[],"mappings":";;;AAAA,+CAA2C;AAC3C,4CAAyD;AAEzD,MAAa,qBAAqB;IAE9B,YAAY,MAAc;QAwBnB,YAAO,GAAG,KAAK,CAAC;QAChB,eAAU,GAAG,CAAC,CAAC;QAEtB,kBAAkB;QACX,cAAS,GAAG,CAAC,CAAC,CAAC;QACf,cAAS,GAAG,CAAC,CAAC,CAAC;QACf,eAAU,GAAG,CAAC,CAAC,CAAC;QAChB,SAAI,GAAG,CAAC,CAAC,CAAC;QA9Bb,mDAAmD;QACnD,IAAI,MAAM,CAAC,UAAU,IAAI,EAAE,EAAE;YACzB,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,oFAAoF;gBACpF,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;oBACtB,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,aAAa;oBAC3D,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,cAAc;oBAE7D,2CAA2C;oBAC3C,IAAI,IAAI,CAAC,UAAU,KAAK,wBAAY,CAAC,cAAc,EAAE;wBACjD,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,OAAO;wBAChD,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC;wBAC1C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;qBACvB;iBACJ;aACJ;YAAC,OAAO,KAAK,EAAE;gBACZ,kBAAkB;aACrB;SACJ;IACL,CAAC;CASJ;AAlCD,sDAkCC"}
@@ -0,0 +1,23 @@
1
+ /// <reference types="node" />
2
+ import { SmartBuffer } from 'smart-buffer';
3
+ export declare class ExecuteResponseV3 {
4
+ constructor(buffer: Buffer);
5
+ success: boolean;
6
+ readOffset: number;
7
+ /**
8
+ * true if code ran and completed without errors, false otherwise
9
+ */
10
+ executeSuccess: boolean;
11
+ runtimeStopCode: number;
12
+ compileErrors: ExecuteErrors;
13
+ runtimeErrors: ExecuteErrors;
14
+ otherErrors: ExecuteErrors;
15
+ requestId: number;
16
+ errorCode: number;
17
+ }
18
+ declare class ExecuteErrors {
19
+ constructor(bufferReader: SmartBuffer);
20
+ success: boolean;
21
+ messages: string[];
22
+ }
23
+ export {};
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExecuteResponseV3 = void 0;
4
+ const smart_buffer_1 = require("smart-buffer");
5
+ const util_1 = require("../../util");
6
+ class ExecuteResponseV3 {
7
+ constructor(buffer) {
8
+ this.success = false;
9
+ this.readOffset = 0;
10
+ /**
11
+ * true if code ran and completed without errors, false otherwise
12
+ */
13
+ this.executeSuccess = false;
14
+ // response fields
15
+ this.requestId = -1;
16
+ this.errorCode = -1;
17
+ // The smallest a request response can be
18
+ if (buffer.byteLength >= 12) {
19
+ try {
20
+ let bufferReader = smart_buffer_1.SmartBuffer.fromBuffer(buffer);
21
+ this.requestId = bufferReader.readUInt32LE(); // request_id
22
+ this.errorCode = bufferReader.readUInt32LE(); // error_code
23
+ this.executeSuccess = bufferReader.readUInt8() !== 0; //execute_success
24
+ this.runtimeStopCode = bufferReader.readUInt8(); //runtime_stop_code
25
+ this.compileErrors = new ExecuteErrors(bufferReader);
26
+ this.runtimeErrors = new ExecuteErrors(bufferReader);
27
+ this.otherErrors = new ExecuteErrors(bufferReader);
28
+ this.success = this.compileErrors.success && this.runtimeErrors.success && this.otherErrors.success;
29
+ this.readOffset = bufferReader.readOffset;
30
+ }
31
+ catch (error) {
32
+ // Could not parse
33
+ }
34
+ }
35
+ }
36
+ }
37
+ exports.ExecuteResponseV3 = ExecuteResponseV3;
38
+ class ExecuteErrors {
39
+ constructor(bufferReader) {
40
+ this.success = false;
41
+ this.messages = [];
42
+ if (bufferReader.length >= 4) {
43
+ const errorCount = bufferReader.readUInt32LE();
44
+ for (let i = 0; i < errorCount; i++) {
45
+ const message = util_1.util.readStringNT(bufferReader);
46
+ if (message) {
47
+ this.messages.push(message);
48
+ }
49
+ }
50
+ this.success = this.messages.length === errorCount;
51
+ }
52
+ }
53
+ }
54
+ //# sourceMappingURL=ExecuteResponseV3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExecuteResponseV3.js","sourceRoot":"","sources":["../../../src/debugProtocol/responses/ExecuteResponseV3.ts"],"names":[],"mappings":";;;AAAA,+CAA2C;AAC3C,qCAAkC;AAElC,MAAa,iBAAiB;IAC1B,YAAY,MAAc;QAqBnB,YAAO,GAAG,KAAK,CAAC;QAChB,eAAU,GAAG,CAAC,CAAC;QACtB;;WAEG;QACI,mBAAc,GAAG,KAAK,CAAC;QAO9B,kBAAkB;QACX,cAAS,GAAG,CAAC,CAAC,CAAC;QACf,cAAS,GAAG,CAAC,CAAC,CAAC;QAlClB,yCAAyC;QACzC,IAAI,MAAM,CAAC,UAAU,IAAI,EAAE,EAAE;YACzB,IAAI;gBACA,IAAI,YAAY,GAAG,0BAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBAClD,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,aAAa;gBAC3D,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,aAAa;gBAC3D,IAAI,CAAC,cAAc,GAAG,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,iBAAiB;gBACvE,IAAI,CAAC,eAAe,GAAG,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC,mBAAmB;gBAEpE,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC,YAAY,CAAC,CAAC;gBACrD,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC,YAAY,CAAC,CAAC;gBACrD,IAAI,CAAC,WAAW,GAAG,IAAI,aAAa,CAAC,YAAY,CAAC,CAAC;gBAEnD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;gBACpG,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC;aAC7C;YAAC,OAAO,KAAK,EAAE;gBACZ,kBAAkB;aACrB;SACJ;IACL,CAAC;CAgBJ;AArCD,8CAqCC;AAED,MAAM,aAAa;IACf,YAAmB,YAAyB;QAarC,YAAO,GAAG,KAAK,CAAC;QAEhB,aAAQ,GAAa,EAAE,CAAC;QAd3B,IAAI,YAAY,CAAC,MAAM,IAAI,CAAC,EAAE;YAC1B,MAAM,UAAU,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC;YAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE;gBACjC,MAAM,OAAO,GAAG,WAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;gBAChD,IAAI,OAAO,EAAE;oBACT,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;iBAC/B;aACJ;YACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,UAAU,CAAC;SACtD;IACL,CAAC;CAKJ"}
@@ -1,8 +1,10 @@
1
1
  /// <reference types="node" />
2
2
  export declare class HandshakeResponse {
3
3
  constructor(buffer: Buffer);
4
+ watchPacketLength: boolean;
4
5
  success: boolean;
5
6
  readOffset: number;
7
+ requestId: number;
6
8
  magic: string;
7
9
  majorVersion: number;
8
10
  minorVersion: number;