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
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,29 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
9
|
+
## [0.22.7](https://github.com/rokucommunity/roku-debug/compare/0.22.6...v0.22.7) - 2026-03-24
|
|
10
|
+
### Added
|
|
11
|
+
- Support for ProgressStart ProgressUpdate and ProgressEnd DAP events ([#300](https://github.com/rokucommunity/roku-debug/pull/300))
|
|
12
|
+
### Changed
|
|
13
|
+
- Support `bs_libs_provided` when computing complib out file name ([#298](https://github.com/rokucommunity/roku-debug/pull/298))
|
|
14
|
+
- upgrade to [brighterscript@0.70.4](https://github.com/rokucommunity/brighterscript/blob/master/CHANGELOG.md#0704---2026-03-24). Notable changes since 0.70.3:
|
|
15
|
+
### Fixed
|
|
16
|
+
- default profiling enablement flow ([#302](https://github.com/rokucommunity/roku-debug/pull/302))
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
## [0.22.6](https://github.com/rokucommunity/roku-debug/compare/0.22.5...v0.22.6) - 2026-03-09
|
|
21
|
+
### Added
|
|
22
|
+
- Perfetto tracing ([#286](https://github.com/rokucommunity/roku-debug/pull/286))
|
|
23
|
+
### Changed
|
|
24
|
+
- combined the `ifDateTime` `dateLocalized` and `timeLocalized` virtual variable into one time variable ([#295](https://github.com/rokucommunity/roku-debug/pull/295))
|
|
25
|
+
- Better messages when `limited` or `disabled` are detected for ecp-setting-mode ([#283](https://github.com/rokucommunity/roku-debug/pull/283))
|
|
26
|
+
- upgrade to [roku-deploy@3.16.2](https://github.com/rokucommunity/roku-deploy/blob/master/CHANGELOG.md#3162---2026-03-09). Notable changes since 3.15.0:
|
|
27
|
+
- Add `ecpSettingMode` to device-info interface ([#225](https://github.com/rokucommunity/roku-deploy/pull/225))
|
|
28
|
+
- Add support for detecting `ecpNetworkAccessMode` ([#223](https://github.com/rokucommunity/roku-deploy/pull/223))
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
9
32
|
## [0.22.5](https://github.com/rokucommunity/roku-debug/compare/0.22.4...v0.22.5) - 2025-12-01
|
|
10
33
|
### Added
|
|
11
34
|
- Support packageTask, packagePath, packageUploadOverrides for complibs ([#282](https://github.com/rokucommunity/roku-debug/pull/282))
|
|
@@ -1092,3 +1115,4 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
1092
1115
|
|
|
1093
1116
|
|
|
1094
1117
|
|
|
1118
|
+
|
|
@@ -11,8 +11,14 @@ export declare class CompileErrorProcessor {
|
|
|
11
11
|
private emitter;
|
|
12
12
|
compileErrorTimer: NodeJS.Timeout;
|
|
13
13
|
on(eventName: 'diagnostics', handler: (params: BSDebugDiagnostic[]) => void): any;
|
|
14
|
+
on(eventName: 'launch-status', handler: (message: string) => void): any;
|
|
14
15
|
private emit;
|
|
15
16
|
processUnhandledLines(responseText: string): void;
|
|
17
|
+
/**
|
|
18
|
+
* Checks a single log line for known launch phase signals and emits a `launch-status`
|
|
19
|
+
* event with a human-readable progress message when one is found.
|
|
20
|
+
*/
|
|
21
|
+
private checkForLaunchStatus;
|
|
16
22
|
sendErrors(): Promise<void>;
|
|
17
23
|
getErrors(lines: string[]): BSDebugDiagnostic[];
|
|
18
24
|
/**
|
|
@@ -33,6 +33,7 @@ class CompileErrorProcessor {
|
|
|
33
33
|
processUnhandledLines(responseText) {
|
|
34
34
|
let lines = responseText.split(/\r?\n/g);
|
|
35
35
|
for (const line of lines) {
|
|
36
|
+
this.checkForLaunchStatus(line);
|
|
36
37
|
switch (this.status) {
|
|
37
38
|
case CompileStatus.compiling:
|
|
38
39
|
case CompileStatus.compileError:
|
|
@@ -68,6 +69,46 @@ class CompileErrorProcessor {
|
|
|
68
69
|
}
|
|
69
70
|
}
|
|
70
71
|
}
|
|
72
|
+
/**
|
|
73
|
+
* Checks a single log line for known launch phase signals and emits a `launch-status`
|
|
74
|
+
* event with a human-readable progress message when one is found.
|
|
75
|
+
*/
|
|
76
|
+
checkForLaunchStatus(line) {
|
|
77
|
+
let message;
|
|
78
|
+
if (/\[beacon\.signal\]\s+\|AppLaunchInitiate/i.test(line)) {
|
|
79
|
+
message = 'Starting';
|
|
80
|
+
}
|
|
81
|
+
else if (/\[beacon\.signal\]\s+\|AppCompileInitiate/i.test(line)) {
|
|
82
|
+
message = 'Compiling';
|
|
83
|
+
}
|
|
84
|
+
else if (/\[scrpt\.load\.mkup\]/i.test(line)) {
|
|
85
|
+
message = 'Loading markup';
|
|
86
|
+
}
|
|
87
|
+
else if (/\[scrpt\.ctx\.cmpl\.time\]\s+Compiled\b/i.test(line)) {
|
|
88
|
+
message = 'Scripts compiled';
|
|
89
|
+
}
|
|
90
|
+
else if (/\[beacon\.signal\]\s+\|AppCompileComplete/i.test(line)) {
|
|
91
|
+
message = 'Compile complete';
|
|
92
|
+
}
|
|
93
|
+
else if (/\[beacon\.signal\]\s+\|AppSplashInitiate/i.test(line)) {
|
|
94
|
+
message = 'Showing splash screen';
|
|
95
|
+
}
|
|
96
|
+
else if (/\[beacon\.signal\]\s+\|AppSplashComplete/i.test(line)) {
|
|
97
|
+
message = 'Splash screen complete';
|
|
98
|
+
}
|
|
99
|
+
else if (/------\s+Running.*------/i.test(line)) {
|
|
100
|
+
message = 'Running';
|
|
101
|
+
}
|
|
102
|
+
else if (/\[plg\.dbg\.conn\.wait\]\s+Waiting for debug(?:ging)? connection/i.test(line)) {
|
|
103
|
+
message = 'Waiting for debugger';
|
|
104
|
+
}
|
|
105
|
+
else if (/\[plg\.dbg\.conn\.ok\]\s+remote debugger connected/i.test(line)) {
|
|
106
|
+
message = 'Debugger connected';
|
|
107
|
+
}
|
|
108
|
+
if (message) {
|
|
109
|
+
this.emit('launch-status', message);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
71
112
|
sendErrors() {
|
|
72
113
|
//session is shutting down, process logs immediately
|
|
73
114
|
//HACK: leave time for events and errors resolvers to run,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CompileErrorProcessor.js","sourceRoot":"","sources":["../src/CompileErrorProcessor.ts"],"names":[],"mappings":";;;AAAA,mCAAsC;AACtC,uCAAmC;AAEnC,mDAAqE;AAErE,MAAa,qBAAqB;IAAlC;QAEY,WAAM,GAAG,gBAAM,CAAC,YAAY,CAAC,IAAI,qBAAqB,CAAC,IAAI,GAAG,CAAC,CAAC;QACjE,WAAM,GAAkB,aAAa,CAAC,IAAI,CAAC;QAC3C,uBAAkB,GAAG,CAAC,CAAC,CAAC;QACxB,qBAAgB,GAAG,CAAC,CAAC,CAAC;QACtB,mBAAc,GAAG,EAAc,CAAC;QAChC,0BAAqB,GAAG,IAAI,CAAC;QAC5B,YAAO,GAAG,IAAI,qBAAY,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"CompileErrorProcessor.js","sourceRoot":"","sources":["../src/CompileErrorProcessor.ts"],"names":[],"mappings":";;;AAAA,mCAAsC;AACtC,uCAAmC;AAEnC,mDAAqE;AAErE,MAAa,qBAAqB;IAAlC;QAEY,WAAM,GAAG,gBAAM,CAAC,YAAY,CAAC,IAAI,qBAAqB,CAAC,IAAI,GAAG,CAAC,CAAC;QACjE,WAAM,GAAkB,aAAa,CAAC,IAAI,CAAC;QAC3C,uBAAkB,GAAG,CAAC,CAAC,CAAC;QACxB,qBAAgB,GAAG,CAAC,CAAC,CAAC;QACtB,mBAAc,GAAG,EAAc,CAAC;QAChC,0BAAqB,GAAG,IAAI,CAAC;QAC5B,YAAO,GAAG,IAAI,qBAAY,EAAE,CAAC;IA8XzC,CAAC;IAzXU,EAAE,CAAC,SAAiB,EAAE,OAA+B;QACxD,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACpC,OAAO,GAAG,EAAE;YACR,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE;gBAC5B,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;aACnD;QACL,CAAC,CAAC;IACN,CAAC;IAIO,IAAI,CAAC,SAAiB,EAAE,IAAc;QAC1C,uGAAuG;QACvG,UAAU,CAAC,GAAG,EAAE;;YACZ,+GAA+G;YAC/G,MAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,mDAAG,SAAS,EAAE,IAAI,CAAC,CAAC;QAC1C,CAAC,EAAE,CAAC,CAAC,CAAC;IACV,CAAC;IAEM,qBAAqB,CAAC,YAAoB;QAC7C,IAAI,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACzC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACtB,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;YAChC,QAAQ,IAAI,CAAC,MAAM,EAAE;gBACjB,KAAK,aAAa,CAAC,SAAS,CAAC;gBAC7B,KAAK,aAAa,CAAC,YAAY;oBAC3B,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE;wBAC/B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAC;wBAClF,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC;wBACpC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;qBACtC;yBAAM;wBACH,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBAC/B,IAAI,IAAI,CAAC,MAAM,KAAK,aAAa,CAAC,SAAS,EAAE;4BACzC,iDAAiD;4BACjD,IAAI,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;4BACxC,IAAI,QAAQ,EAAE;gCACV,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mEAAmE,CAAC,CAAC;gCACvF,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,YAAY,CAAC;6BAC5C;yBACJ;wBACD,IAAI,IAAI,CAAC,MAAM,KAAK,aAAa,CAAC,YAAY,EAAE;4BAC5C,+GAA+G;4BAC/G,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;yBACrC;qBACJ;oBACD,MAAM;gBACV,KAAK,aAAa,CAAC,IAAI,CAAC;gBACxB,KAAK,aAAa,CAAC,OAAO;oBACtB,IAAI,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAE;wBACpC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC;wBACpF,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC;wBACtC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;qBACrC;oBACD,MAAM;aACb;SACJ;IACL,CAAC;IAED;;;OAGG;IACK,oBAAoB,CAAC,IAAY;QACrC,IAAI,OAA2B,CAAC;QAChC,IAAI,2CAA2C,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACxD,OAAO,GAAG,UAAU,CAAC;SACxB;aAAM,IAAI,4CAA4C,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAChE,OAAO,GAAG,WAAW,CAAC;SACzB;aAAM,IAAI,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC5C,OAAO,GAAG,gBAAgB,CAAC;SAC9B;aAAM,IAAI,0CAA0C,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC9D,OAAO,GAAG,kBAAkB,CAAC;SAChC;aAAM,IAAI,4CAA4C,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAChE,OAAO,GAAG,kBAAkB,CAAC;SAChC;aAAM,IAAI,2CAA2C,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC/D,OAAO,GAAG,uBAAuB,CAAC;SACrC;aAAM,IAAI,2CAA2C,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC/D,OAAO,GAAG,wBAAwB,CAAC;SACtC;aAAM,IAAI,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC/C,OAAO,GAAG,SAAS,CAAC;SACvB;aAAM,IAAI,mEAAmE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACvF,OAAO,GAAG,sBAAsB,CAAC;SACpC;aAAM,IAAI,qDAAqD,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACzE,OAAO,GAAG,oBAAoB,CAAC;SAClC;QACD,IAAI,OAAO,EAAE;YACT,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;SACvC;IACL,CAAC;IAEM,UAAU;QACb,oDAAoD;QACpD,0DAA0D;QAC1D,qDAAqD;QACrD,OAAO,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;YAC/B,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,SAAS,CAAC,KAAe;QAC5B,IAAI,WAAW,GAAwB,EAAE,CAAC;QAC1C,oDAAoD;QACpD,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;QACnB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;YACjC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAEtB,IAAI,IAAI,EAAE;gBACN,WAAW,CAAC,IAAI,CACZ,GAAG;oBACC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC;oBAClC,IAAI,CAAC,gCAAgC,CAAC,KAAK,CAAC;oBAC5C,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;oBAC/B,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC;oBACtC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC;iBACvC,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAC5B,CAAC;aACL;YACD,+DAA+D;YAC/D,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,EAAE;gBAC9B,KAAK,CAAC,KAAK,EAAE,CAAC;aACjB;SACJ;QACD,uEAAuE;QACvE,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YAClC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YAEhE,sDAAsD;QAC1D,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;;YACjB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,MAAA,CAAC,CAAC,KAAK,0CAAE,KAAK,CAAC,IAAI,IAAI,MAAA,CAAC,CAAC,KAAK,0CAAE,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;YAClH,OAAO,GAAG,CAAC;QACf,CAAC,EAAE,IAAI,GAAG,EAA6B,CAAC,CAAC;QAEzC,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACI,oBAAoB,CAAC,IAAY;;QACpC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,MAAA,IAAI,CAAC,WAAW;QACrC,kCAAkC;QAClC,sFAAsF,EACtF,IAAI,CACP,mCAAI,EAAE,CAAC;QACR,IAAI,OAAO,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YACtC,4GAA4G;YAC5G,IAAI,OAAO,CAAC,WAAW,EAAE,KAAK,uCAAuC,EAAE;gBACnE,OAAO,GAAG,6BAA6B,CAAC;aAC3C;YACD,yEAAyE;YACzE,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;iBAClB,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBACd,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC;gBACxC,KAAK,EAAE,qBAAO,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;gBACxC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;gBACnC,IAAI,EAAE,SAAS;gBACf,QAAQ,EAAE,mCAAkB,CAAC,KAAK;aACrC,CAAC,CAAC;iBACF,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACzB;IACL,CAAC;IAED;;OAEG;IACK,2BAA2B,CAAC,IAAY;;QAC5C,IAAI,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,CAAC,GAAG,MAAA,IAAI,CAAC,WAAW;QAC7D,kCAAkC;QAClC,6EAA6E,EAC7E,IAAI,CACP,mCAAI,EAAE,CAAC;QAER,IAAI,OAAO,EAAE;YACT,sEAAsE;YACtE,IAAI,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,MAAA,IAAI,CAAC,WAAW,CACpD,sBAAsB,EACtB,YAAY;YACZ,+DAA+D;aAClE,mCAAI,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAEtC,OAAO,CAAC;oBACJ,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC;oBACxC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC;oBAC5C,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;oBAChC,IAAI,EAAE,IAAI;oBACV,QAAQ,EAAE,mCAAkB,CAAC,KAAK;iBACrC,CAAC,CAAC;SACN;IACL,CAAC;IAED;;;;;;;;OAQG;IACK,sBAAsB,CAAC,KAAe;;QAC1C,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,MAAA,IAAI,CAAC,WAAW;QACtC,kCAAkC;QAClC,yCAAyC,EACzC,KAAK,CAAC,CAAC,CAAC,CACX,mCAAI,EAAE,CAAC;QACR,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,QAAQ,EAAE;YACV,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,gDAAgD;YAChD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC/B,wGAAwG;gBACxG,MAAM,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,MAAA,IAAI,CAAC,WAAW,CAC5C,6BAA6B,EAC7B,KAAK,CAAC,CAAC,CAAC,CACX,mCAAI,EAAE,CAAC;gBACR,IAAI,UAAU,IAAI,OAAO,EAAE;oBACvB,MAAM,CAAC,IAAI,CAAC;wBACR,IAAI,EAAE,QAAQ;wBACd,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;wBAChC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;wBACnC,IAAI,EAAE,SAAS;wBACf,QAAQ,EAAE,mCAAkB,CAAC,KAAK;qBACrC,CAAC,CAAC;iBACN;qBAAM;oBACH,+CAA+C;oBAC/C,MAAM;iBACT;aACJ;YACD,8BAA8B;YAC9B,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SACtB;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;;;OAKG;IACK,gCAAgC,CAAC,KAAe;;QACpD,IAAI,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,GAAG,MAAA,IAAI,CAAC,WAAW,CACxC,4DAA4D,EAC5D,KAAK,CAAC,CAAC,CAAC,CACX,mCAAI,EAAE,CAAC;QACR,IAAI,QAAQ,EAAE;YACV,KAAK,CAAC,KAAK,EAAE,CAAC;YACd,wDAAwD;YACxD,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;gBACV,OAAO,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;aAC3B;YACD,OAAO,CAAC;oBACJ,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;oBACnC,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC;oBACxC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE;oBACtB,IAAI,EAAE,SAAS;oBACf,QAAQ,EAAE,mCAAkB,CAAC,KAAK;iBACrC,CAAC,CAAC;SACN;IACL,CAAC;IAED;;;;;OAKG;IACK,yBAAyB,CAAC,IAAY;;QAC1C,IAAI,CAAC,EAAE,OAAO,CAAC,GAAG,MAAA,IAAI,CAAC,WAAW;QAC9B,kCAAkC;QAClC,4CAA4C,EAE5C,IAAI,CACP,mCAAI,EAAE,CAAC;QACR,IAAI,OAAO,EAAE;YACT,OAAO,CAAC;oBACJ,IAAI,EAAE,eAAe;oBACrB,KAAK,EAAE,qBAAO,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;oBACxC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;oBACnC,IAAI,EAAE,SAAS;oBACf,QAAQ,EAAE,mCAAkB,CAAC,KAAK;iBACrC,CAAC,CAAC;SACN;IACL,CAAC;IAED;;OAEG;IACK,WAAW,CAAC,OAAe,EAAE,IAAY;;QAC7C,OAAO,MAAA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,0CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IAEO,YAAY,CAAC,OAAe,EAAE,OAAgB;QAClD,yCAAyC;QACzC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QAE5C,iDAAiD;QACjD,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,IAAG,CAAC,EAAE;YACrB,OAAO,IAAI,GAAG,GAAG,OAAO,CAAC;SAC5B;QACD,qCAAqC;QACrC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAEzC,OAAO,OAAO,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACK,QAAQ,CAAC,cAAuB;QACpC,uDAAuD;QACvD,IAAI,UAAU,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS;QACpD,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;QAChD,OAAO,qBAAO,CAAC,WAAW,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IACvE,CAAC;IAED;;OAEG;IACI,mBAAmB,CAAC,YAAoB;;QAC3C,OAAO,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,0CAAE,IAAI,EAAE,CAAC;IAC9D,CAAC;IAEM,sBAAsB,CAAC,SAAS;QACnC,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACrC,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;SACtC;QAED,IAAI,SAAS,EAAE;YACX,IAAI,IAAI,CAAC,MAAM,KAAK,aAAa,CAAC,YAAY,EAAE;gBAC5C,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAAC,GAAG,EAAE;oBACrC,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC/B,CAAC,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;aAClC;SACJ;IACL,CAAC;IAEM,mBAAmB;QACtB,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,YAAY,CAAC;QACzC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAEO,uBAAuB,CAAC,IAAY;QACxC,iCAAiC;QACjC,+HAA+H;QAC/H,oFAAoF;QACpF,OAAO,oFAAoF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3G,CAAC;IAEO,kBAAkB,CAAC,IAAY;QACnC,6CAA6C;QAC7C,OAAO,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;IAED;;;OAGG;IACK,YAAY;QAChB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACnD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACnB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;SACpC;IACL,CAAC;IAEM,OAAO;QACV,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;SACrC;IACL,CAAC;CACJ;AAtYD,sDAsYC;AAiFD,IAAY,aAKX;AALD,WAAY,aAAa;IACrB,8BAAa,CAAA;IACb,wCAAuB,CAAA;IACvB,8CAA6B,CAAA;IAC7B,oCAAmB,CAAA;AACvB,CAAC,EALW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAKxB"}
|
|
@@ -189,6 +189,29 @@ export interface LaunchConfiguration extends DebugProtocol.LaunchRequestArgument
|
|
|
189
189
|
* Will inject the OnDeviceComponent used by RDB for RALE like functionality inside of vscode.
|
|
190
190
|
*/
|
|
191
191
|
injectRdbOnDeviceComponent: boolean;
|
|
192
|
+
/**
|
|
193
|
+
* Configuration for profiling functionality
|
|
194
|
+
*/
|
|
195
|
+
profiling?: {
|
|
196
|
+
tracing?: {
|
|
197
|
+
/**
|
|
198
|
+
* Whether perfetto event profiling is enabled
|
|
199
|
+
*/
|
|
200
|
+
enable?: boolean;
|
|
201
|
+
/**
|
|
202
|
+
* Directory where perfetto profile files should be stored
|
|
203
|
+
*/
|
|
204
|
+
dir?: string;
|
|
205
|
+
/**
|
|
206
|
+
* The name of the perfetto profile file. Can include variables like ${appTitle} and ${timestamp}
|
|
207
|
+
*/
|
|
208
|
+
filename?: string;
|
|
209
|
+
/**
|
|
210
|
+
* Whether to connect to perfetto on debug session start
|
|
211
|
+
*/
|
|
212
|
+
connectOnStart?: boolean;
|
|
213
|
+
};
|
|
214
|
+
};
|
|
192
215
|
/**
|
|
193
216
|
* Base path to the folder containing RDB files for OnDeviceComponent
|
|
194
217
|
*/
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import type { ProfileType } from './debugSession/Events';
|
|
2
|
+
/**
|
|
3
|
+
* Configuration interface for Perfetto tracing
|
|
4
|
+
*/
|
|
5
|
+
interface PerfettoConfig {
|
|
6
|
+
host: string;
|
|
7
|
+
enabled?: boolean;
|
|
8
|
+
dir?: string;
|
|
9
|
+
filename?: string;
|
|
10
|
+
rootDir?: string;
|
|
11
|
+
remotePort?: number;
|
|
12
|
+
/** Channel ID to trace. Defaults to 'dev'. */
|
|
13
|
+
channelId?: string;
|
|
14
|
+
}
|
|
15
|
+
export declare class PerfettoManager {
|
|
16
|
+
constructor(config?: PerfettoConfig);
|
|
17
|
+
private config;
|
|
18
|
+
private socket;
|
|
19
|
+
private writeStream;
|
|
20
|
+
private pingTimer;
|
|
21
|
+
private emitter;
|
|
22
|
+
/**
|
|
23
|
+
* When tracing is active, this is the file we're currently writing to. Cleaned up whenever tracing stops or errors.
|
|
24
|
+
*/
|
|
25
|
+
private filePath?;
|
|
26
|
+
private logger;
|
|
27
|
+
/**
|
|
28
|
+
* Are we actively tracing right now
|
|
29
|
+
*/
|
|
30
|
+
private get isTracing();
|
|
31
|
+
/**
|
|
32
|
+
* Subscribe to PerfettoManager events
|
|
33
|
+
*/
|
|
34
|
+
on(eventName: 'enable', handler: (data: {
|
|
35
|
+
types: ProfileType[];
|
|
36
|
+
}) => void): () => void;
|
|
37
|
+
on(eventName: 'start', handler: (data: {
|
|
38
|
+
type: ProfileType;
|
|
39
|
+
}) => void): () => void;
|
|
40
|
+
on(eventName: 'stop', handler: (data: {
|
|
41
|
+
type: ProfileType;
|
|
42
|
+
result?: string;
|
|
43
|
+
}) => void): () => void;
|
|
44
|
+
on(eventName: 'error', handler: (data: {
|
|
45
|
+
type: ProfileType;
|
|
46
|
+
error: {
|
|
47
|
+
message: string;
|
|
48
|
+
stack?: string;
|
|
49
|
+
};
|
|
50
|
+
}) => void): () => void;
|
|
51
|
+
private emit;
|
|
52
|
+
/**
|
|
53
|
+
* Get app title from manifest file in cwd
|
|
54
|
+
*/
|
|
55
|
+
private getAppTitle;
|
|
56
|
+
private createWebSocket;
|
|
57
|
+
/**
|
|
58
|
+
* Start Perfetto tracing
|
|
59
|
+
* @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.
|
|
60
|
+
*/
|
|
61
|
+
startTracing(options?: {
|
|
62
|
+
excludeResultOnStop: boolean;
|
|
63
|
+
}): Promise<void>;
|
|
64
|
+
private getFilename;
|
|
65
|
+
/**
|
|
66
|
+
* Get the next sequence number by scanning existing files in the directory
|
|
67
|
+
*/
|
|
68
|
+
private getNextSequenceNumber;
|
|
69
|
+
/**
|
|
70
|
+
* Stop Perfetto tracing gracefully.
|
|
71
|
+
*/
|
|
72
|
+
stopTracing(): Promise<void>;
|
|
73
|
+
/**
|
|
74
|
+
* Enable tracing on the Roku device. This returns true if we were successful, and throws if we we failed to enable
|
|
75
|
+
*/
|
|
76
|
+
enableTracing(): Promise<boolean>;
|
|
77
|
+
/**
|
|
78
|
+
* Create a write stream for the given file path, wrapped in a promise to handle async stream readiness and errors.
|
|
79
|
+
* This ensures we don't start writing until the stream is ready, and that any errors are properly caught and emitted.
|
|
80
|
+
* @param filePath
|
|
81
|
+
* @returns
|
|
82
|
+
*/
|
|
83
|
+
private createWriteStream;
|
|
84
|
+
private startPingTimer;
|
|
85
|
+
/**
|
|
86
|
+
* Clean up all resources. Safe to call multiple times.
|
|
87
|
+
* When isCrash is true, destroys the write stream immediately instead of flushing it.
|
|
88
|
+
*/
|
|
89
|
+
private cleanup;
|
|
90
|
+
/**
|
|
91
|
+
* Get a file path if it exists, optionally skipping empty files.
|
|
92
|
+
*/
|
|
93
|
+
private getResult;
|
|
94
|
+
/**
|
|
95
|
+
* Dispose of all resources. Safe to call multiple times.
|
|
96
|
+
* Closes all sockets, file handles, and timers.
|
|
97
|
+
*/
|
|
98
|
+
dispose(): Promise<void>;
|
|
99
|
+
/**
|
|
100
|
+
* Capture a heap graph snapshot. Can only be called when tracing is active and WebSocket is connected.
|
|
101
|
+
*/
|
|
102
|
+
captureHeapSnapshot(): Promise<void>;
|
|
103
|
+
/**
|
|
104
|
+
* 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.
|
|
105
|
+
*/
|
|
106
|
+
private emitError;
|
|
107
|
+
}
|
|
108
|
+
export {};
|