roku-debug 0.22.5 → 0.22.7
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 +24 -0
- package/dist/CompileErrorProcessor.d.ts +6 -0
- package/dist/CompileErrorProcessor.js +41 -0
- package/dist/CompileErrorProcessor.js.map +1 -1
- package/dist/LaunchConfiguration.d.ts +23 -0
- package/dist/PerfettoManager.d.ts +108 -0
- package/dist/PerfettoManager.js +394 -0
- package/dist/PerfettoManager.js.map +1 -0
- package/dist/RendezvousTracker.d.ts +1 -1
- package/dist/RokuECP.d.ts +27 -2
- package/dist/RokuECP.js +33 -0
- package/dist/RokuECP.js.map +1 -1
- package/dist/SceneGraphDebugCommandController.js.map +1 -1
- package/dist/adapters/DebugProtocolAdapter.d.ts +1 -0
- package/dist/adapters/DebugProtocolAdapter.js +5 -0
- package/dist/adapters/DebugProtocolAdapter.js.map +1 -1
- package/dist/adapters/TelnetAdapter.d.ts +1 -0
- package/dist/adapters/TelnetAdapter.js +3 -0
- package/dist/adapters/TelnetAdapter.js.map +1 -1
- package/dist/adapters/customVariables/ifDateTime.js +1 -9
- package/dist/adapters/customVariables/ifDateTime.js.map +1 -1
- package/dist/bsc/threading/ThreadMessageHandler.d.ts +2 -2
- package/dist/debugProtocol/PluginInterface.d.ts +1 -1
- package/dist/debugProtocol/client/DebugProtocolClientPlugin.d.ts +2 -2
- package/dist/debugProtocol/events/ProtocolEvent.d.ts +3 -3
- package/dist/debugProtocol/server/DebugProtocolServerPlugin.d.ts +2 -2
- package/dist/debugSession/BrightScriptDebugSession.d.ts +26 -1
- package/dist/debugSession/BrightScriptDebugSession.js +187 -18
- package/dist/debugSession/BrightScriptDebugSession.js.map +1 -1
- package/dist/debugSession/Events.d.ts +53 -2
- package/dist/debugSession/Events.js +57 -1
- package/dist/debugSession/Events.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/interfaces.d.ts +4 -4
- package/dist/logging.d.ts +1 -1
- package/dist/managers/BreakpointManager.d.ts +2 -2
- package/dist/managers/ProjectManager.js +1 -1
- package/dist/managers/ProjectManager.js.map +1 -1
- package/dist/util.d.ts +6 -0
- package/dist/util.js +15 -2
- package/dist/util.js.map +1 -1
- package/package.json +7 -4
|
@@ -0,0 +1,394 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PerfettoManager = void 0;
|
|
4
|
+
/* eslint-disable no-template-curly-in-string */
|
|
5
|
+
const fs = require("fs");
|
|
6
|
+
const fsExtra = require("fs-extra");
|
|
7
|
+
const ws_1 = require("ws");
|
|
8
|
+
const eventemitter3_1 = require("eventemitter3");
|
|
9
|
+
const brighterscript_1 = require("brighterscript");
|
|
10
|
+
const logging_1 = require("./logging");
|
|
11
|
+
const RokuECP_1 = require("./RokuECP");
|
|
12
|
+
const util_1 = require("./util");
|
|
13
|
+
class PerfettoManager {
|
|
14
|
+
constructor(config) {
|
|
15
|
+
var _a, _b, _c;
|
|
16
|
+
var _d, _e, _f;
|
|
17
|
+
this.socket = null;
|
|
18
|
+
this.writeStream = null;
|
|
19
|
+
this.pingTimer = null;
|
|
20
|
+
this.emitter = new eventemitter3_1.EventEmitter();
|
|
21
|
+
this.logger = (0, logging_1.createLogger)('PerfettoManager');
|
|
22
|
+
this.config = config !== null && config !== void 0 ? config : {};
|
|
23
|
+
(_a = (_d = this.config).remotePort) !== null && _a !== void 0 ? _a : (_d.remotePort = 8060);
|
|
24
|
+
(_b = (_e = this.config).channelId) !== null && _b !== void 0 ? _b : (_e.channelId = 'dev');
|
|
25
|
+
// Set default traces directory if not provided
|
|
26
|
+
(_c = (_f = this.config).dir) !== null && _c !== void 0 ? _c : (_f.dir = (0, brighterscript_1.standardizePath) `${this.config.rootDir}/profiling`);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Are we actively tracing right now
|
|
30
|
+
*/
|
|
31
|
+
get isTracing() {
|
|
32
|
+
//if we have a socket, we're tracing
|
|
33
|
+
return !!this.socket && this.socket.readyState === ws_1.WebSocket.OPEN;
|
|
34
|
+
}
|
|
35
|
+
on(eventName, handler) {
|
|
36
|
+
this.emitter.on(eventName, handler);
|
|
37
|
+
return () => {
|
|
38
|
+
if (this.emitter !== undefined) {
|
|
39
|
+
this.emitter.removeListener(eventName, handler);
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
emit(eventName, data) {
|
|
44
|
+
this.emitter.emit(eventName, data);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Get app title from manifest file in cwd
|
|
48
|
+
*/
|
|
49
|
+
getAppTitle(cwd) {
|
|
50
|
+
if (cwd) {
|
|
51
|
+
try {
|
|
52
|
+
const manifestPath = (0, brighterscript_1.standardizePath) `${cwd}/manifest`;
|
|
53
|
+
if (fs.existsSync(manifestPath)) {
|
|
54
|
+
const manifestContent = fs.readFileSync(manifestPath, 'utf-8');
|
|
55
|
+
const titleMatch = /^title=(.+)$/m.exec(manifestContent);
|
|
56
|
+
if (titleMatch && titleMatch[1]) {
|
|
57
|
+
return titleMatch[1].trim();
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
this.logger.error('Error reading manifest file:', error);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return 'trace';
|
|
66
|
+
}
|
|
67
|
+
createWebSocket() {
|
|
68
|
+
const url = `ws://${this.config.host}:${this.config.remotePort}/perfetto-session`;
|
|
69
|
+
this.socket = new ws_1.WebSocket(url);
|
|
70
|
+
return this.socket;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Start Perfetto tracing
|
|
74
|
+
* @param includeResultOnStop whether to include the file path when the 'stop' event fires. This should be false if the caller is going to emit their own 'stop' event (like when heapSnapshot is the activator of tracing.
|
|
75
|
+
*/
|
|
76
|
+
async startTracing(options) {
|
|
77
|
+
var _a;
|
|
78
|
+
if (!this.config.host) {
|
|
79
|
+
throw this.emitError(new Error('No host configured for Perfetto tracing'));
|
|
80
|
+
}
|
|
81
|
+
try {
|
|
82
|
+
fsExtra.ensureDirSync(this.config.dir);
|
|
83
|
+
//async sanity check, if we're already tracing, don't start again
|
|
84
|
+
if (this.socket) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
this.createWebSocket();
|
|
88
|
+
this.filePath = (0, brighterscript_1.standardizePath) `${this.config.dir}/${this.getFilename()}`;
|
|
89
|
+
this.writeStream = await this.createWriteStream(this.filePath);
|
|
90
|
+
// Register all handlers before awaiting open
|
|
91
|
+
const connected = new Promise((resolve, reject) => {
|
|
92
|
+
const onConnectOpen = () => {
|
|
93
|
+
this.socket.off('error', onConnectError);
|
|
94
|
+
resolve();
|
|
95
|
+
};
|
|
96
|
+
const onConnectError = (error) => {
|
|
97
|
+
this.socket.off('open', onConnectOpen);
|
|
98
|
+
//remove our outer error handler since this is a connect error, not a runtime error, and we don't want to emit twice
|
|
99
|
+
this.socket.off('error', onError);
|
|
100
|
+
reject(error);
|
|
101
|
+
};
|
|
102
|
+
this.socket.once('open', onConnectOpen);
|
|
103
|
+
this.socket.once('error', onConnectError);
|
|
104
|
+
});
|
|
105
|
+
//register our general error handler next (so it'll be called second, and we can disconnect it if we get a connect error
|
|
106
|
+
const onError = (error) => {
|
|
107
|
+
var _a;
|
|
108
|
+
this.emitError(error);
|
|
109
|
+
// Force-close the socket so the 'close' handler fires cleanup + stop event
|
|
110
|
+
(_a = this.socket) === null || _a === void 0 ? void 0 : _a.close();
|
|
111
|
+
};
|
|
112
|
+
this.socket.on('error', onError);
|
|
113
|
+
let backpressured = false;
|
|
114
|
+
this.socket.on('message', (data, isBinary) => {
|
|
115
|
+
var _a;
|
|
116
|
+
if (!isBinary || !this.writeStream) {
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
// Write the binary data to the file, handling backpressure by pausing the socket if the internal buffer is full
|
|
120
|
+
//only the FIRST message that causes backpressure should subscribe to the 'drain' event, to avoid multiple listeners
|
|
121
|
+
if (!this.writeStream.write(data) && !backpressured) {
|
|
122
|
+
backpressured = true;
|
|
123
|
+
(_a = this.socket) === null || _a === void 0 ? void 0 : _a.pause();
|
|
124
|
+
this.writeStream.once('drain', () => {
|
|
125
|
+
var _a;
|
|
126
|
+
backpressured = false;
|
|
127
|
+
(_a = this.socket) === null || _a === void 0 ? void 0 : _a.resume();
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
this.socket.on('close', (code, reason) => {
|
|
132
|
+
this.logger.log(`Perfetto WebSocket closed. Code: ${code} Reason: ${reason.toString()}`);
|
|
133
|
+
const filePath = this.filePath;
|
|
134
|
+
this.cleanup().then(() => {
|
|
135
|
+
this.emit('stop', {
|
|
136
|
+
type: 'trace',
|
|
137
|
+
result: (options === null || options === void 0 ? void 0 : options.excludeResultOnStop)
|
|
138
|
+
? undefined
|
|
139
|
+
: this.getResult(filePath, { skipEmpty: true })
|
|
140
|
+
});
|
|
141
|
+
}).catch(e => this.logger.error(e));
|
|
142
|
+
});
|
|
143
|
+
await connected;
|
|
144
|
+
this.logger.log('Perfetto WebSocket connected:', this.socket.url);
|
|
145
|
+
this.emit('start', { type: 'trace' });
|
|
146
|
+
this.startPingTimer();
|
|
147
|
+
// we crashed, it's almost certainly due to a connection issue, we probably never started
|
|
148
|
+
}
|
|
149
|
+
catch (error) {
|
|
150
|
+
throw this.emitError(new Error(`Error starting Perfetto tracing: ${(_a = error === null || error === void 0 ? void 0 : error.message) !== null && _a !== void 0 ? _a : String(error)}`));
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
getFilename() {
|
|
154
|
+
var _a;
|
|
155
|
+
let filename = (_a = this.config.filename) !== null && _a !== void 0 ? _a : '${appTitle}_${timestamp}.perfetto-trace';
|
|
156
|
+
if (filename.includes('${timestamp}')) {
|
|
157
|
+
const timestamp = new Date()
|
|
158
|
+
.toLocaleString()
|
|
159
|
+
.replace(/[/:, ]/g, '-')
|
|
160
|
+
.replace(/-+/g, '-');
|
|
161
|
+
filename = filename.replaceAll('${timestamp}', timestamp);
|
|
162
|
+
// Remove sequence if the user has put timestamp
|
|
163
|
+
if (filename.includes('${sequence}')) {
|
|
164
|
+
filename = filename.replaceAll(/_?\$\{sequence\}_?/g, '');
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
const appTitle = this.getAppTitle(this.config.rootDir || '');
|
|
168
|
+
if (filename.includes('${appTitle}')) {
|
|
169
|
+
filename = filename.replace('${appTitle}', appTitle);
|
|
170
|
+
}
|
|
171
|
+
if (filename.includes('${sequence}')) {
|
|
172
|
+
const nextSequence = this.getNextSequenceNumber(filename, this.config.dir);
|
|
173
|
+
filename = filename.replace('${sequence}', String(nextSequence));
|
|
174
|
+
}
|
|
175
|
+
return filename;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Get the next sequence number by scanning existing files in the directory
|
|
179
|
+
*/
|
|
180
|
+
getNextSequenceNumber(filenameTemplate, tracesDir) {
|
|
181
|
+
try {
|
|
182
|
+
if (!fs.existsSync(tracesDir)) {
|
|
183
|
+
return 1;
|
|
184
|
+
}
|
|
185
|
+
const parts = filenameTemplate.split('${sequence}');
|
|
186
|
+
const prefix = parts[0] || '';
|
|
187
|
+
const suffix = parts[1] || '';
|
|
188
|
+
const files = fs.readdirSync(tracesDir);
|
|
189
|
+
let maxSequence = 0;
|
|
190
|
+
for (const file of files) {
|
|
191
|
+
if (file.startsWith(prefix) && file.endsWith(suffix)) {
|
|
192
|
+
const middle = file.slice(prefix.length, file.length - suffix.length);
|
|
193
|
+
const seq = parseInt(middle, 10);
|
|
194
|
+
if (!isNaN(seq) && seq > maxSequence) {
|
|
195
|
+
maxSequence = seq;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
return maxSequence + 1;
|
|
200
|
+
}
|
|
201
|
+
catch (error) {
|
|
202
|
+
this.logger.error('Error getting sequence number:', error);
|
|
203
|
+
return 1;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Stop Perfetto tracing gracefully.
|
|
208
|
+
*/
|
|
209
|
+
async stopTracing() {
|
|
210
|
+
if (!this.isTracing) {
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
await this.cleanup();
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Enable tracing on the Roku device. This returns true if we were successful, and throws if we we failed to enable
|
|
217
|
+
*/
|
|
218
|
+
async enableTracing() {
|
|
219
|
+
this.logger.log(`Enabling Perfetto tracing on channel ${this.config.channelId} at host ${this.config.host}`);
|
|
220
|
+
try {
|
|
221
|
+
const result = await RokuECP_1.rokuECP.enablePerfettoTracing({
|
|
222
|
+
host: this.config.host,
|
|
223
|
+
remotePort: this.config.remotePort,
|
|
224
|
+
channelId: this.config.channelId
|
|
225
|
+
});
|
|
226
|
+
//fail if our channel isn't in the list of enabled channels, even if the request was successful
|
|
227
|
+
const enabledChannels = result.enabledChannels.map(x => { var _a, _b; return (_b = (_a = x === null || x === void 0 ? void 0 : x.toString()) === null || _a === void 0 ? void 0 : _a.toLowerCase()) !== null && _b !== void 0 ? _b : ''; });
|
|
228
|
+
if (!enabledChannels.includes(this.config.channelId.toLowerCase())) {
|
|
229
|
+
throw new Error(`Failed to enable tracing. The request was successful but ${this.config.channelId} was not in the list of enabled channels: ${result.enabledChannels.join(', ')}`);
|
|
230
|
+
}
|
|
231
|
+
//emit that the following types of profiling are enabled available to start.
|
|
232
|
+
this.emit('enable', { types: ['trace', 'heapSnapshot'] });
|
|
233
|
+
return true;
|
|
234
|
+
}
|
|
235
|
+
catch (error) {
|
|
236
|
+
throw this.emitError(Error(`Failed to enable tracing: ${error === null || error === void 0 ? void 0 : error.message}`));
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Create a write stream for the given file path, wrapped in a promise to handle async stream readiness and errors.
|
|
241
|
+
* This ensures we don't start writing until the stream is ready, and that any errors are properly caught and emitted.
|
|
242
|
+
* @param filePath
|
|
243
|
+
* @returns
|
|
244
|
+
*/
|
|
245
|
+
async createWriteStream(filePath) {
|
|
246
|
+
const writeStream = await new Promise((resolve, reject) => {
|
|
247
|
+
const writeStream = fs.createWriteStream(filePath, { flags: 'w' });
|
|
248
|
+
const onReady = () => {
|
|
249
|
+
writeStream.off('error', onError);
|
|
250
|
+
resolve(writeStream);
|
|
251
|
+
};
|
|
252
|
+
const onError = (err) => {
|
|
253
|
+
writeStream.off('ready', onReady);
|
|
254
|
+
this.logger.error('File write error:', err);
|
|
255
|
+
reject(err);
|
|
256
|
+
};
|
|
257
|
+
writeStream.once('ready', onReady);
|
|
258
|
+
writeStream.once('error', onError);
|
|
259
|
+
});
|
|
260
|
+
return writeStream;
|
|
261
|
+
}
|
|
262
|
+
startPingTimer() {
|
|
263
|
+
//skip if we're already pinging
|
|
264
|
+
if (this.pingTimer) {
|
|
265
|
+
return;
|
|
266
|
+
}
|
|
267
|
+
this.pingTimer = setInterval(() => {
|
|
268
|
+
var _a;
|
|
269
|
+
if (((_a = this.socket) === null || _a === void 0 ? void 0 : _a.readyState) === ws_1.WebSocket.OPEN) {
|
|
270
|
+
try {
|
|
271
|
+
this.socket.ping();
|
|
272
|
+
}
|
|
273
|
+
catch (e) {
|
|
274
|
+
this.logger.error('Ping error:', e);
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
}, 30000);
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* Clean up all resources. Safe to call multiple times.
|
|
281
|
+
* When isCrash is true, destroys the write stream immediately instead of flushing it.
|
|
282
|
+
*/
|
|
283
|
+
async cleanup() {
|
|
284
|
+
if (this.pingTimer) {
|
|
285
|
+
clearInterval(this.pingTimer);
|
|
286
|
+
this.pingTimer = null;
|
|
287
|
+
}
|
|
288
|
+
if (this.socket) {
|
|
289
|
+
const socket = this.socket;
|
|
290
|
+
this.socket = null;
|
|
291
|
+
if (socket.readyState !== ws_1.WebSocket.CLOSED) {
|
|
292
|
+
await new Promise(resolve => {
|
|
293
|
+
socket.once('close', resolve);
|
|
294
|
+
socket.close();
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
socket.removeAllListeners();
|
|
298
|
+
}
|
|
299
|
+
if (this.writeStream) {
|
|
300
|
+
const writeStream = this.writeStream;
|
|
301
|
+
this.writeStream = null;
|
|
302
|
+
await new Promise(resolve => {
|
|
303
|
+
writeStream.end(() => resolve());
|
|
304
|
+
});
|
|
305
|
+
writeStream.removeAllListeners();
|
|
306
|
+
}
|
|
307
|
+
this.filePath = undefined;
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* Get a file path if it exists, optionally skipping empty files.
|
|
311
|
+
*/
|
|
312
|
+
getResult(filePath, options) {
|
|
313
|
+
if (!filePath) {
|
|
314
|
+
return undefined;
|
|
315
|
+
}
|
|
316
|
+
try {
|
|
317
|
+
const size = fs.statSync(filePath).size;
|
|
318
|
+
if ((options === null || options === void 0 ? void 0 : options.skipEmpty) && size === 0) {
|
|
319
|
+
return undefined;
|
|
320
|
+
}
|
|
321
|
+
return filePath;
|
|
322
|
+
}
|
|
323
|
+
catch (_a) {
|
|
324
|
+
return undefined;
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
/**
|
|
328
|
+
* Dispose of all resources. Safe to call multiple times.
|
|
329
|
+
* Closes all sockets, file handles, and timers.
|
|
330
|
+
*/
|
|
331
|
+
async dispose() {
|
|
332
|
+
await this.cleanup();
|
|
333
|
+
}
|
|
334
|
+
/**
|
|
335
|
+
* Capture a heap graph snapshot. Can only be called when tracing is active and WebSocket is connected.
|
|
336
|
+
*/
|
|
337
|
+
async captureHeapSnapshot() {
|
|
338
|
+
let thisFunctionStartedTracing = false;
|
|
339
|
+
try {
|
|
340
|
+
if (!this.isTracing) {
|
|
341
|
+
thisFunctionStartedTracing = true;
|
|
342
|
+
//start tracing, and exclude the result on stop
|
|
343
|
+
await this.startTracing({
|
|
344
|
+
excludeResultOnStop: true
|
|
345
|
+
});
|
|
346
|
+
}
|
|
347
|
+
let filePath = this.filePath;
|
|
348
|
+
this.emit('start', {
|
|
349
|
+
type: 'heapSnapshot'
|
|
350
|
+
});
|
|
351
|
+
await RokuECP_1.rokuECP.captureHeapSnapshot({
|
|
352
|
+
channelId: this.config.channelId,
|
|
353
|
+
host: this.config.host,
|
|
354
|
+
remotePort: this.config.remotePort
|
|
355
|
+
});
|
|
356
|
+
await util_1.util.sleep(1000);
|
|
357
|
+
this.emit('stop', {
|
|
358
|
+
type: 'heapSnapshot',
|
|
359
|
+
result: thisFunctionStartedTracing
|
|
360
|
+
? this.getResult(filePath, { skipEmpty: true })
|
|
361
|
+
: undefined
|
|
362
|
+
});
|
|
363
|
+
if (thisFunctionStartedTracing) {
|
|
364
|
+
await this.stopTracing();
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
catch (error) {
|
|
368
|
+
//regardless of success or failure, we want to emit that the snapshot process is no longer active so the UI can update accordingly
|
|
369
|
+
this.emit('stop', {
|
|
370
|
+
type: 'heapSnapshot',
|
|
371
|
+
result: undefined
|
|
372
|
+
});
|
|
373
|
+
if (thisFunctionStartedTracing) {
|
|
374
|
+
await this.stopTracing();
|
|
375
|
+
}
|
|
376
|
+
throw this.emitError(new Error(`Failed to capture snapshot: ${String(error)}`));
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
/**
|
|
380
|
+
* Helper to emit an error and also return it for throwing. This ensures all errors go through the same handling and are emitted to any listeners.
|
|
381
|
+
*/
|
|
382
|
+
emitError(error) {
|
|
383
|
+
this.logger.error(error);
|
|
384
|
+
this.emit('error', {
|
|
385
|
+
error: {
|
|
386
|
+
message: error.message,
|
|
387
|
+
stack: error.stack
|
|
388
|
+
}
|
|
389
|
+
});
|
|
390
|
+
return error;
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
exports.PerfettoManager = PerfettoManager;
|
|
394
|
+
//# sourceMappingURL=PerfettoManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PerfettoManager.js","sourceRoot":"","sources":["../src/PerfettoManager.ts"],"names":[],"mappings":"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"}
|
package/dist/RokuECP.d.ts
CHANGED
|
@@ -1,6 +1,22 @@
|
|
|
1
1
|
import type * as requestType from 'request';
|
|
2
2
|
export declare class RokuECP {
|
|
3
3
|
private doRequest;
|
|
4
|
+
/**
|
|
5
|
+
* Enables perfetto tracing for the specified channel
|
|
6
|
+
* @param channelID
|
|
7
|
+
* @returns
|
|
8
|
+
*/
|
|
9
|
+
enablePerfettoTracing(options: BaseOptions & {
|
|
10
|
+
channelId: string;
|
|
11
|
+
}): Promise<EcpPerfettoEnableData>;
|
|
12
|
+
/**
|
|
13
|
+
* capture a heap snapshot. This doesn't return it, but instead will cause it to be written to the already-connected perfetto websocket.
|
|
14
|
+
* @param channelId
|
|
15
|
+
* @returns
|
|
16
|
+
*/
|
|
17
|
+
captureHeapSnapshot(options: BaseOptions & {
|
|
18
|
+
channelId: string;
|
|
19
|
+
}): Promise<EcpHeapSnapshotData>;
|
|
4
20
|
private getEcpStatus;
|
|
5
21
|
private parseResponse;
|
|
6
22
|
getRegistry(options: BaseOptions & {
|
|
@@ -29,8 +45,8 @@ interface BaseEcpResponse {
|
|
|
29
45
|
status: EcpStatus;
|
|
30
46
|
errorMessage?: string;
|
|
31
47
|
}
|
|
32
|
-
export
|
|
33
|
-
export
|
|
48
|
+
export type RokuEcpParam<T extends keyof RokuECP> = Parameters<RokuECP[T]>[0];
|
|
49
|
+
export type ParsedEcpRoot<T1 extends string = string, T2 extends ParsedEcpBase = ParsedEcpBase> = {
|
|
34
50
|
[key in T1]: T2;
|
|
35
51
|
};
|
|
36
52
|
interface ParsedEcpBase {
|
|
@@ -59,9 +75,18 @@ export interface EcpAppStateData {
|
|
|
59
75
|
status: EcpStatus;
|
|
60
76
|
errorMessage?: string;
|
|
61
77
|
}
|
|
78
|
+
export interface EcpPerfettoEnableData extends BaseEcpResponse {
|
|
79
|
+
enabledChannels: string[];
|
|
80
|
+
timestamp?: number;
|
|
81
|
+
timestampEnd?: number;
|
|
82
|
+
}
|
|
62
83
|
export interface EcpExitAppData {
|
|
63
84
|
status: EcpStatus;
|
|
64
85
|
errorMessage?: string;
|
|
65
86
|
}
|
|
87
|
+
export interface EcpHeapSnapshotData extends BaseEcpResponse {
|
|
88
|
+
timestamp: number;
|
|
89
|
+
timestampEnd: number;
|
|
90
|
+
}
|
|
66
91
|
export declare const rokuECP: RokuECP;
|
|
67
92
|
export {};
|
package/dist/RokuECP.js
CHANGED
|
@@ -13,6 +13,39 @@ class RokuECP {
|
|
|
13
13
|
return util_1.util.httpGet(url, options.requestOptions);
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* Enables perfetto tracing for the specified channel
|
|
18
|
+
* @param channelID
|
|
19
|
+
* @returns
|
|
20
|
+
*/
|
|
21
|
+
async enablePerfettoTracing(options) {
|
|
22
|
+
const response = await this.doRequest(`/perfetto/enable/${options.channelId}`, options, 'post');
|
|
23
|
+
return this.parseResponse(response, 'perfetto-enable', (parsed, status) => {
|
|
24
|
+
var _a, _b, _c, _d, _e;
|
|
25
|
+
return {
|
|
26
|
+
enabledChannels: (_c = (_b = (_a = parsed === null || parsed === void 0 ? void 0 : parsed['enabled-channels']) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.channel) !== null && _c !== void 0 ? _c : [],
|
|
27
|
+
timestamp: Number((_d = parsed === null || parsed === void 0 ? void 0 : parsed.timestamp) === null || _d === void 0 ? void 0 : _d[0]),
|
|
28
|
+
timestampEnd: Number((_e = parsed === null || parsed === void 0 ? void 0 : parsed['timestamp-end']) === null || _e === void 0 ? void 0 : _e[0]),
|
|
29
|
+
status: status
|
|
30
|
+
};
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* capture a heap snapshot. This doesn't return it, but instead will cause it to be written to the already-connected perfetto websocket.
|
|
35
|
+
* @param channelId
|
|
36
|
+
* @returns
|
|
37
|
+
*/
|
|
38
|
+
async captureHeapSnapshot(options) {
|
|
39
|
+
const response = await this.doRequest(`/perfetto/heapgraph/trigger/${options.channelId}`, options, 'post');
|
|
40
|
+
return this.parseResponse(response, 'perfetto-heapgraph-trigger', (parsed, status) => {
|
|
41
|
+
var _a, _b;
|
|
42
|
+
return {
|
|
43
|
+
timestamp: Number((_a = parsed === null || parsed === void 0 ? void 0 : parsed.timestamp) === null || _a === void 0 ? void 0 : _a[0]),
|
|
44
|
+
timestampEnd: Number((_b = parsed === null || parsed === void 0 ? void 0 : parsed['timestamp-end']) === null || _b === void 0 ? void 0 : _b[0]),
|
|
45
|
+
status: status
|
|
46
|
+
};
|
|
47
|
+
});
|
|
48
|
+
}
|
|
16
49
|
getEcpStatus(response, rootKey) {
|
|
17
50
|
var _a, _b, _c, _d;
|
|
18
51
|
return (_d = EcpStatus[(_c = (_b = (_a = response === null || response === void 0 ? void 0 : response[rootKey]) === null || _a === void 0 ? void 0 : _a.status) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.toLowerCase()]) !== null && _d !== void 0 ? _d : EcpStatus.failed;
|
package/dist/RokuECP.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RokuECP.js","sourceRoot":"","sources":["../src/RokuECP.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"RokuECP.js","sourceRoot":"","sources":["../src/RokuECP.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SceneGraphDebugCommandController.js","sourceRoot":"","sources":["../src/SceneGraphDebugCommandController.ts"],"names":[],"mappings":";;;AAAA,uCAAmC;
|
|
1
|
+
{"version":3,"file":"SceneGraphDebugCommandController.js","sourceRoot":"","sources":["../src/SceneGraphDebugCommandController.ts"],"names":[],"mappings":"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"}
|
|
@@ -72,6 +72,7 @@ export declare class DebugProtocolAdapter {
|
|
|
72
72
|
on(eventName: 'close', handler: () => any): any;
|
|
73
73
|
on(eventName: 'app-exit', handler: () => any): any;
|
|
74
74
|
on(eventName: 'diagnostics', handler: (params: BSDebugDiagnostic[]) => any): any;
|
|
75
|
+
on(eventName: 'launch-status', handler: (message: string) => any): any;
|
|
75
76
|
on(eventName: 'connected', handler: (params: boolean) => any): any;
|
|
76
77
|
on(eventname: 'console-output', handler: (output: string) => any): any;
|
|
77
78
|
on(eventname: 'protocol-version', handler: (output: ProtocolVersionDetails) => any): any;
|
|
@@ -286,6 +286,8 @@ class DebugProtocolAdapter {
|
|
|
286
286
|
await this.client.connect();
|
|
287
287
|
this.logger.log(`Connected to device`, { host: this.options.host, connected: this.connected });
|
|
288
288
|
this.connected = true;
|
|
289
|
+
this.isAppRunning = true;
|
|
290
|
+
this.handleStartupIfReady();
|
|
289
291
|
this.emit('connected', this.connected);
|
|
290
292
|
this.emit('app-ready');
|
|
291
293
|
//the adapter is connected and running smoothly. resolve the promise
|
|
@@ -327,6 +329,9 @@ class DebugProtocolAdapter {
|
|
|
327
329
|
this.compileClient.end();
|
|
328
330
|
this.emit('diagnostics', errors);
|
|
329
331
|
});
|
|
332
|
+
this.compileErrorProcessor.on('launch-status', (message) => {
|
|
333
|
+
this.emit('launch-status', message);
|
|
334
|
+
});
|
|
330
335
|
//if the connection fails, reject the connect promise
|
|
331
336
|
this.compileClient.on('error', (err) => {
|
|
332
337
|
deferred.reject(new Error(`Error with connection to: ${this.options.host}:${this.options.brightScriptConsolePort} \n\n ${err.message} `));
|