roku-debug 0.23.10 → 0.23.11
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 +10 -0
- package/dist/debugSession/BrightScriptDebugSession.js +7 -9
- package/dist/debugSession/BrightScriptDebugSession.js.map +1 -1
- package/dist/managers/BreakpointManager.d.ts +98 -3
- package/dist/managers/BreakpointManager.js +239 -13
- package/dist/managers/BreakpointManager.js.map +1 -1
- package/dist/managers/ProjectManager.d.ts +15 -0
- package/dist/managers/ProjectManager.js +68 -16
- package/dist/managers/ProjectManager.js.map +1 -1
- package/package.json +3 -3
|
@@ -6,12 +6,32 @@ import type { LocationManager } from './LocationManager';
|
|
|
6
6
|
export declare class BreakpointManager {
|
|
7
7
|
private sourceMapManager;
|
|
8
8
|
private locationManager;
|
|
9
|
-
|
|
9
|
+
/**
|
|
10
|
+
* @deprecated temporary flag. AST-based breakpoint validation is disabled in production because Roku
|
|
11
|
+
* silently relocates a breakpoint on a non-runnable line to the next runnable line, so rejecting it
|
|
12
|
+
* would take away behavior the user has. Enabled in tests. Remove once we can relocate breakpoints
|
|
13
|
+
* ourselves instead of dropping them.
|
|
14
|
+
*/
|
|
15
|
+
private enableAstBreakpointValidation;
|
|
16
|
+
constructor(sourceMapManager: SourceMapManager, locationManager: LocationManager,
|
|
17
|
+
/**
|
|
18
|
+
* @deprecated temporary flag. AST-based breakpoint validation is disabled in production because Roku
|
|
19
|
+
* silently relocates a breakpoint on a non-runnable line to the next runnable line, so rejecting it
|
|
20
|
+
* would take away behavior the user has. Enabled in tests. Remove once we can relocate breakpoints
|
|
21
|
+
* ourselves instead of dropping them.
|
|
22
|
+
*/
|
|
23
|
+
enableAstBreakpointValidation?: boolean);
|
|
10
24
|
private logger;
|
|
11
25
|
launchConfiguration: {
|
|
12
26
|
sourceDirs: string[];
|
|
13
27
|
rootDir: string;
|
|
14
28
|
enableSourceMaps?: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* When true the session uses the DebugProtocol (on-device) debugger, which sets breakpoints by
|
|
31
|
+
* line number. When false/undefined it's a telnet session, where breakpoints are only possible by
|
|
32
|
+
* writing literal `STOP` statements into the staged files.
|
|
33
|
+
*/
|
|
34
|
+
enableDebugProtocol?: boolean;
|
|
15
35
|
};
|
|
16
36
|
private emitter;
|
|
17
37
|
private emit;
|
|
@@ -111,6 +131,9 @@ export declare class BreakpointManager {
|
|
|
111
131
|
/**
|
|
112
132
|
* Get a list of all breakpoint tasks that should be performed.
|
|
113
133
|
* This will also exclude files with breakpoints that are not in scope.
|
|
134
|
+
* @param willInjectStop true for telnet (a literal `STOP` is baked in at each breakpoint). Only used by
|
|
135
|
+
* the AST line check (see {@link isValidBreakpointLine}), which is gated behind enableAstBreakpointValidation
|
|
136
|
+
* and off by default; when on, it lets telnet exclude lines where injecting a `STOP` would be invalid.
|
|
114
137
|
*/
|
|
115
138
|
private getBreakpointWork;
|
|
116
139
|
sortAndRemoveDuplicateBreakpoints<T extends {
|
|
@@ -118,14 +141,74 @@ export declare class BreakpointManager {
|
|
|
118
141
|
column?: number;
|
|
119
142
|
}>(breakpoints: Array<T>): T[];
|
|
120
143
|
/**
|
|
121
|
-
*
|
|
144
|
+
* Reconcile every breakpoint against the project's staged files, marking any that can't be placed
|
|
145
|
+
* (unsupported file type, or a file not in the project) as failed. Returns the placeable breakpoints
|
|
146
|
+
* keyed by staging file path.
|
|
147
|
+
*
|
|
148
|
+
* For telnet there is no on-device breakpoint API, so this also bakes a literal `STOP` into the staged
|
|
149
|
+
* files for each breakpoint and registers them as permanent/verified. DebugProtocol writes nothing
|
|
150
|
+
* (the device breaks by line number). The choice is made here from `launchConfiguration.enableDebugProtocol`.
|
|
151
|
+
*/
|
|
152
|
+
validateAndWriteBreakpointsForProject(project: Project): Promise<Record<string, BreakpointWorkItem[]>>;
|
|
153
|
+
/**
|
|
154
|
+
* Write STOP statements into the project's staging files for each breakpoint location and update the
|
|
155
|
+
* sourcemaps to match. Marks the written breakpoints as verified and registers them as permanent.
|
|
156
|
+
* Telnet only — `validateAndWriteBreakpointsForProject` calls this when no on-device breakpoint API
|
|
157
|
+
* is available.
|
|
122
158
|
*/
|
|
123
|
-
writeBreakpointsForProject
|
|
159
|
+
private writeBreakpointsForProject;
|
|
124
160
|
private registerPermanentBreakpoint;
|
|
125
161
|
/**
|
|
126
162
|
* The list of breakpoints that were permanently written to a file at the start of a debug session. Used for line offset calculations.
|
|
127
163
|
*/
|
|
128
164
|
private permanentBreakpointsBySrcPath;
|
|
165
|
+
/**
|
|
166
|
+
* Cache of parsed ASTs keyed by staging file path.
|
|
167
|
+
* Populated lazily in isValidBreakpointLine. Clear on new debug session.
|
|
168
|
+
*/
|
|
169
|
+
private stagingFileAstCache;
|
|
170
|
+
/**
|
|
171
|
+
* Clear the staging file AST cache. Should be called at the start of each debug session
|
|
172
|
+
* so stale parsed ASTs don't carry over after files are re-staged.
|
|
173
|
+
*/
|
|
174
|
+
clearStagingFileAstCache(): void;
|
|
175
|
+
/**
|
|
176
|
+
* Reset all per-session state so a relaunch/restart starts clean. A restart re-stages the project,
|
|
177
|
+
* so cached parsed ASTs from the previous run are stale, and the diff baseline must be cleared so the
|
|
178
|
+
* next client sees every breakpoint as a fresh add. (The `<script>`-reference set lives on the
|
|
179
|
+
* freshly-created Project, so it doesn't need resetting here.)
|
|
180
|
+
*/
|
|
181
|
+
reset(): void;
|
|
182
|
+
/**
|
|
183
|
+
* Returns whether a 1-based line number in a staging file is a valid breakpoint location.
|
|
184
|
+
*
|
|
185
|
+
* Guiding principle: a breakpoint is ALWAYS allowed unless we can point to specific, real
|
|
186
|
+
* code proving it is invalid. We never drop a breakpoint just because we are unsure.
|
|
187
|
+
*
|
|
188
|
+
* The only thing we are always certain about is the blacklist: the innermost statement at the
|
|
189
|
+
* line is a positively-identified non-executable construct (comment, import/library, namespace/
|
|
190
|
+
* class/enum/interface/const/field/type declaration). Those are invalid for every debugger type.
|
|
191
|
+
*
|
|
192
|
+
* Everything else depends on `willInjectStop`:
|
|
193
|
+
* - DebugProtocol (`willInjectStop === false`): the device breaks by line number and we inject
|
|
194
|
+
* nothing, so we cannot prove any non-blacklisted line is unbreakable. We KEEP it — including
|
|
195
|
+
* continuation lines of a multi-line literal and structural keyword lines (`end if`, `else`,
|
|
196
|
+
* `end sub`, ...).
|
|
197
|
+
* - Telnet (`willInjectStop === true`): we inject a literal `STOP` statement *before* the line.
|
|
198
|
+
* Injecting a `STOP` into the middle of a multi-line literal, or before a structural keyword,
|
|
199
|
+
* produces invalid BrightScript. We can identify those lines precisely: they are *covered* by
|
|
200
|
+
* some statement's range but no statement *starts* on them. Those are excluded for telnet only.
|
|
201
|
+
*
|
|
202
|
+
* A truly empty (whitespace-only) line that no node covers is genuinely non-executable in both
|
|
203
|
+
* modes. A non-empty line that no node covers means the AST is incomplete/broken (partial or
|
|
204
|
+
* failed parse) — we fail open and KEEP it. A read/parse error also fails open.
|
|
205
|
+
*
|
|
206
|
+
* The returned object is designed to support future breakpoint-correction: callers can check
|
|
207
|
+
* `correctedLine` to suggest moving the breakpoint to a nearby valid line rather than dropping it.
|
|
208
|
+
*
|
|
209
|
+
* @param willInjectStop true when a literal `STOP` will be injected at this location (telnet)
|
|
210
|
+
*/
|
|
211
|
+
private isValidBreakpointLine;
|
|
129
212
|
/**
|
|
130
213
|
* Write breakpoints to the specified file, and update the sourcemaps to match
|
|
131
214
|
*/
|
|
@@ -300,3 +383,15 @@ export type BreakpointRef = string | AugmentedSourceBreakpoint | {
|
|
|
300
383
|
} | (Breakpoint & {
|
|
301
384
|
srcPath: string;
|
|
302
385
|
});
|
|
386
|
+
/**
|
|
387
|
+
* Result of validating whether a staging-file line is executable.
|
|
388
|
+
* `correctedLine` is reserved for future breakpoint-correction support: when a
|
|
389
|
+
* breakpoint is placed on a non-executable line the debugger can suggest a nearby
|
|
390
|
+
* executable line (like VS Code does for other languages) rather than silently
|
|
391
|
+
* dropping the breakpoint.
|
|
392
|
+
*/
|
|
393
|
+
export interface LineValidationResult {
|
|
394
|
+
isValid: boolean;
|
|
395
|
+
/** Future: 1-based line to move the breakpoint to, if different from the requested line. */
|
|
396
|
+
correctedLine?: number;
|
|
397
|
+
}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.BreakpointManager = void 0;
|
|
4
|
+
const path = require("path");
|
|
4
5
|
const fsExtra = require("fs-extra");
|
|
6
|
+
const brighterscript_1 = require("brighterscript");
|
|
5
7
|
const natural_orderby_1 = require("natural-orderby");
|
|
6
8
|
const source_map_1 = require("source-map");
|
|
7
9
|
const FileUtils_1 = require("../FileUtils");
|
|
@@ -10,9 +12,17 @@ const util_1 = require("../util");
|
|
|
10
12
|
const eventemitter3_1 = require("eventemitter3");
|
|
11
13
|
const logging_1 = require("../logging");
|
|
12
14
|
class BreakpointManager {
|
|
13
|
-
constructor(sourceMapManager, locationManager
|
|
15
|
+
constructor(sourceMapManager, locationManager,
|
|
16
|
+
/**
|
|
17
|
+
* @deprecated temporary flag. AST-based breakpoint validation is disabled in production because Roku
|
|
18
|
+
* silently relocates a breakpoint on a non-runnable line to the next runnable line, so rejecting it
|
|
19
|
+
* would take away behavior the user has. Enabled in tests. Remove once we can relocate breakpoints
|
|
20
|
+
* ourselves instead of dropping them.
|
|
21
|
+
*/
|
|
22
|
+
enableAstBreakpointValidation = false) {
|
|
14
23
|
this.sourceMapManager = sourceMapManager;
|
|
15
24
|
this.locationManager = locationManager;
|
|
25
|
+
this.enableAstBreakpointValidation = enableAstBreakpointValidation;
|
|
16
26
|
this.logger = logging_1.logger.createLogger('[bpManager]');
|
|
17
27
|
this.emitter = new eventemitter3_1.EventEmitter();
|
|
18
28
|
/**
|
|
@@ -36,6 +46,11 @@ class BreakpointManager {
|
|
|
36
46
|
* The list of breakpoints that were permanently written to a file at the start of a debug session. Used for line offset calculations.
|
|
37
47
|
*/
|
|
38
48
|
this.permanentBreakpointsBySrcPath = new Map();
|
|
49
|
+
/**
|
|
50
|
+
* Cache of parsed ASTs keyed by staging file path.
|
|
51
|
+
* Populated lazily in isValidBreakpointLine. Clear on new debug session.
|
|
52
|
+
*/
|
|
53
|
+
this.stagingFileAstCache = new Map();
|
|
39
54
|
this.bpIndex = 1;
|
|
40
55
|
/**
|
|
41
56
|
* A map of breakpoint hashes, and whether that breakpoint is currently pending or not.
|
|
@@ -111,14 +126,16 @@ class BreakpointManager {
|
|
|
111
126
|
(_c = bp.id) !== null && _c !== void 0 ? _c : (bp.id = this.breakpointIdSequence++);
|
|
112
127
|
//all breakpoints default to false if not already set to true
|
|
113
128
|
(_d = bp.verified) !== null && _d !== void 0 ? _d : (bp.verified = false);
|
|
129
|
+
//if the breakpoint hash changed, mark the breakpoint as unverified and clear any previous failure reason
|
|
130
|
+
//this must run before the inline-breakpoint check so that the 'failed' reason set below is not cleared
|
|
131
|
+
if ((existingBreakpoint === null || existingBreakpoint === void 0 ? void 0 : existingBreakpoint.srcHash) !== bp.srcHash) {
|
|
132
|
+
bp.verified = false;
|
|
133
|
+
bp.reason = undefined;
|
|
134
|
+
}
|
|
114
135
|
if (bp.column > 0) {
|
|
115
136
|
bp.message = `Error: inline break points are not supported`;
|
|
116
137
|
bp.reason = 'failed';
|
|
117
138
|
}
|
|
118
|
-
//if the breakpoint hash changed, mark the breakpoint as unverified
|
|
119
|
-
if ((existingBreakpoint === null || existingBreakpoint === void 0 ? void 0 : existingBreakpoint.srcHash) !== bp.srcHash) {
|
|
120
|
-
bp.verified = false;
|
|
121
|
-
}
|
|
122
139
|
//if this is a new breakpoint, add it to the list. (otherwise, the existing breakpoint is edited in-place)
|
|
123
140
|
if (!existingBreakpoint) {
|
|
124
141
|
breakpointsArray.push(bp);
|
|
@@ -304,8 +321,11 @@ class BreakpointManager {
|
|
|
304
321
|
/**
|
|
305
322
|
* Get a list of all breakpoint tasks that should be performed.
|
|
306
323
|
* This will also exclude files with breakpoints that are not in scope.
|
|
324
|
+
* @param willInjectStop true for telnet (a literal `STOP` is baked in at each breakpoint). Only used by
|
|
325
|
+
* the AST line check (see {@link isValidBreakpointLine}), which is gated behind enableAstBreakpointValidation
|
|
326
|
+
* and off by default; when on, it lets telnet exclude lines where injecting a `STOP` would be invalid.
|
|
307
327
|
*/
|
|
308
|
-
async getBreakpointWork(project) {
|
|
328
|
+
async getBreakpointWork(project, willInjectStop = false) {
|
|
309
329
|
var _a, _b;
|
|
310
330
|
let result = {};
|
|
311
331
|
//iterate over every file that contains breakpoints
|
|
@@ -323,6 +343,23 @@ class BreakpointManager {
|
|
|
323
343
|
project.rootDir
|
|
324
344
|
], project.stagingDir, project.fileMappings);
|
|
325
345
|
for (let stagingLocation of stagingLocationsResult.locations) {
|
|
346
|
+
//skip files we can't inject breakpoints into (e.g. JSON, etc.)
|
|
347
|
+
//if the extension isn't natively supported, check if the file is referenced
|
|
348
|
+
//by a <script> tag in an XML component — Roku loads those as BrightScript
|
|
349
|
+
//regardless of extension. The set is collected once during Project.stage().
|
|
350
|
+
const ext = path.extname(stagingLocation.filePath).toLowerCase();
|
|
351
|
+
if (!['.brs', '.xml'].includes(ext)) {
|
|
352
|
+
if (!project.scriptReferencedFiles.has((0, roku_deploy_1.standardizePath) `${stagingLocation.filePath}`)) {
|
|
353
|
+
continue;
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
//skip breakpoints on lines that are not valid breakpoint locations.
|
|
357
|
+
//disabled by default: Roku silently relocates a breakpoint on a non-runnable line to
|
|
358
|
+
//the next runnable line, so rejecting it here would remove behavior the user had. The
|
|
359
|
+
//AST check is retained behind a flag (on in tests) until we can relocate rather than drop.
|
|
360
|
+
if (this.enableAstBreakpointValidation && !this.isValidBreakpointLine(stagingLocation.filePath, stagingLocation.lineNumber, willInjectStop).isValid) {
|
|
361
|
+
continue;
|
|
362
|
+
}
|
|
326
363
|
let relativeStagingPath = FileUtils_1.fileUtils.replaceCaseInsensitive(stagingLocation.filePath, FileUtils_1.fileUtils.standardizePath(FileUtils_1.fileUtils.removeTrailingSlash(project.stagingDir) + '/'), '');
|
|
327
364
|
const pkgPath = 'pkg:/' + FileUtils_1.fileUtils
|
|
328
365
|
//replace staging folder path with nothing (so we can build a pkg path)
|
|
@@ -375,19 +412,62 @@ class BreakpointManager {
|
|
|
375
412
|
return breakpoints;
|
|
376
413
|
}
|
|
377
414
|
/**
|
|
378
|
-
*
|
|
415
|
+
* Reconcile every breakpoint against the project's staged files, marking any that can't be placed
|
|
416
|
+
* (unsupported file type, or a file not in the project) as failed. Returns the placeable breakpoints
|
|
417
|
+
* keyed by staging file path.
|
|
418
|
+
*
|
|
419
|
+
* For telnet there is no on-device breakpoint API, so this also bakes a literal `STOP` into the staged
|
|
420
|
+
* files for each breakpoint and registers them as permanent/verified. DebugProtocol writes nothing
|
|
421
|
+
* (the device breaks by line number). The choice is made here from `launchConfiguration.enableDebugProtocol`.
|
|
422
|
+
*/
|
|
423
|
+
async validateAndWriteBreakpointsForProject(project) {
|
|
424
|
+
var _a;
|
|
425
|
+
//telnet bakes in a literal STOP per breakpoint; DebugProtocol breaks by line number and writes nothing
|
|
426
|
+
const willInjectStop = !((_a = this.launchConfiguration) === null || _a === void 0 ? void 0 : _a.enableDebugProtocol);
|
|
427
|
+
const breakpointsByStagingFilePath = await this.getBreakpointWork(project, willInjectStop);
|
|
428
|
+
//track which breakpoints were successfully mapped to a staging location
|
|
429
|
+
const stagedSrcHashes = new Set();
|
|
430
|
+
for (const stagingFilePath in breakpointsByStagingFilePath) {
|
|
431
|
+
for (const breakpoint of breakpointsByStagingFilePath[stagingFilePath]) {
|
|
432
|
+
stagedSrcHashes.add(breakpoint.srcHash);
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
//fail any breakpoints that had no staging location
|
|
436
|
+
for (const [, breakpoints] of this.breakpointsByFilePath) {
|
|
437
|
+
for (const bp of breakpoints) {
|
|
438
|
+
if (!stagedSrcHashes.has(bp.srcHash) && bp.reason !== 'failed') {
|
|
439
|
+
bp.verified = false;
|
|
440
|
+
bp.reason = 'failed';
|
|
441
|
+
//only message for BrightScript file types; leave others blank (not necessarily a real
|
|
442
|
+
//failure — just not a file we know how to place a breakpoint in)
|
|
443
|
+
const srcExt = path.extname(bp.srcPath).toLowerCase();
|
|
444
|
+
bp.message = ['.brs', '.bs', '.xml'].includes(srcExt)
|
|
445
|
+
? 'No executable code at this line'
|
|
446
|
+
: undefined;
|
|
447
|
+
this.queueEvent('breakpoints-verified', bp.srcHash);
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
}
|
|
451
|
+
if (willInjectStop) {
|
|
452
|
+
await this.writeBreakpointsForProject(breakpointsByStagingFilePath);
|
|
453
|
+
}
|
|
454
|
+
return breakpointsByStagingFilePath;
|
|
455
|
+
}
|
|
456
|
+
/**
|
|
457
|
+
* Write STOP statements into the project's staging files for each breakpoint location and update the
|
|
458
|
+
* sourcemaps to match. Marks the written breakpoints as verified and registers them as permanent.
|
|
459
|
+
* Telnet only — `validateAndWriteBreakpointsForProject` calls this when no on-device breakpoint API
|
|
460
|
+
* is available.
|
|
379
461
|
*/
|
|
380
|
-
async writeBreakpointsForProject(
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
for (let stagingFilePath in breakpointsByStagingFilePath) {
|
|
462
|
+
async writeBreakpointsForProject(breakpointsByStagingFilePath) {
|
|
463
|
+
const promises = [];
|
|
464
|
+
for (const stagingFilePath in breakpointsByStagingFilePath) {
|
|
384
465
|
const breakpoints = breakpointsByStagingFilePath[stagingFilePath];
|
|
385
466
|
promises.push(this.writeBreakpointsToFile(stagingFilePath, breakpoints));
|
|
386
467
|
for (const breakpoint of breakpoints) {
|
|
387
|
-
//mark this breakpoint as verified
|
|
468
|
+
//mark this breakpoint as verified and register as permanent
|
|
388
469
|
this.setBreakpointDeviceId(breakpoint.srcHash, breakpoint.destHash, breakpoint.id);
|
|
389
470
|
this.verifyBreakpoint(breakpoint.id, true);
|
|
390
|
-
//add this breakpoint to the list of "permanent" breakpoints
|
|
391
471
|
this.registerPermanentBreakpoint(breakpoint);
|
|
392
472
|
}
|
|
393
473
|
}
|
|
@@ -404,6 +484,121 @@ class BreakpointManager {
|
|
|
404
484
|
collection.push({ ...breakpoint });
|
|
405
485
|
this.permanentBreakpointsBySrcPath.set(breakpoint.srcPath, collection);
|
|
406
486
|
}
|
|
487
|
+
/**
|
|
488
|
+
* Clear the staging file AST cache. Should be called at the start of each debug session
|
|
489
|
+
* so stale parsed ASTs don't carry over after files are re-staged.
|
|
490
|
+
*/
|
|
491
|
+
clearStagingFileAstCache() {
|
|
492
|
+
this.stagingFileAstCache.clear();
|
|
493
|
+
}
|
|
494
|
+
/**
|
|
495
|
+
* Reset all per-session state so a relaunch/restart starts clean. A restart re-stages the project,
|
|
496
|
+
* so cached parsed ASTs from the previous run are stale, and the diff baseline must be cleared so the
|
|
497
|
+
* next client sees every breakpoint as a fresh add. (The `<script>`-reference set lives on the
|
|
498
|
+
* freshly-created Project, so it doesn't need resetting here.)
|
|
499
|
+
*/
|
|
500
|
+
reset() {
|
|
501
|
+
this.clearStagingFileAstCache();
|
|
502
|
+
this.clearBreakpointLastState();
|
|
503
|
+
}
|
|
504
|
+
/**
|
|
505
|
+
* Returns whether a 1-based line number in a staging file is a valid breakpoint location.
|
|
506
|
+
*
|
|
507
|
+
* Guiding principle: a breakpoint is ALWAYS allowed unless we can point to specific, real
|
|
508
|
+
* code proving it is invalid. We never drop a breakpoint just because we are unsure.
|
|
509
|
+
*
|
|
510
|
+
* The only thing we are always certain about is the blacklist: the innermost statement at the
|
|
511
|
+
* line is a positively-identified non-executable construct (comment, import/library, namespace/
|
|
512
|
+
* class/enum/interface/const/field/type declaration). Those are invalid for every debugger type.
|
|
513
|
+
*
|
|
514
|
+
* Everything else depends on `willInjectStop`:
|
|
515
|
+
* - DebugProtocol (`willInjectStop === false`): the device breaks by line number and we inject
|
|
516
|
+
* nothing, so we cannot prove any non-blacklisted line is unbreakable. We KEEP it — including
|
|
517
|
+
* continuation lines of a multi-line literal and structural keyword lines (`end if`, `else`,
|
|
518
|
+
* `end sub`, ...).
|
|
519
|
+
* - Telnet (`willInjectStop === true`): we inject a literal `STOP` statement *before* the line.
|
|
520
|
+
* Injecting a `STOP` into the middle of a multi-line literal, or before a structural keyword,
|
|
521
|
+
* produces invalid BrightScript. We can identify those lines precisely: they are *covered* by
|
|
522
|
+
* some statement's range but no statement *starts* on them. Those are excluded for telnet only.
|
|
523
|
+
*
|
|
524
|
+
* A truly empty (whitespace-only) line that no node covers is genuinely non-executable in both
|
|
525
|
+
* modes. A non-empty line that no node covers means the AST is incomplete/broken (partial or
|
|
526
|
+
* failed parse) — we fail open and KEEP it. A read/parse error also fails open.
|
|
527
|
+
*
|
|
528
|
+
* The returned object is designed to support future breakpoint-correction: callers can check
|
|
529
|
+
* `correctedLine` to suggest moving the breakpoint to a nearby valid line rather than dropping it.
|
|
530
|
+
*
|
|
531
|
+
* @param willInjectStop true when a literal `STOP` will be injected at this location (telnet)
|
|
532
|
+
*/
|
|
533
|
+
isValidBreakpointLine(stagingFilePath, lineNumber, willInjectStop = false) {
|
|
534
|
+
var _a;
|
|
535
|
+
try {
|
|
536
|
+
const cacheKey = (0, roku_deploy_1.standardizePath) `${stagingFilePath}`;
|
|
537
|
+
if (!this.stagingFileAstCache.has(cacheKey)) {
|
|
538
|
+
const contents = fsExtra.readFileSync(stagingFilePath, 'utf-8');
|
|
539
|
+
this.stagingFileAstCache.set(cacheKey, brighterscript_1.Parser.parse(contents));
|
|
540
|
+
}
|
|
541
|
+
const parsed = this.stagingFileAstCache.get(cacheKey);
|
|
542
|
+
// BrightScript AST uses 0-based lines; breakpoint line numbers are 1-based
|
|
543
|
+
const targetLine = lineNumber - 1;
|
|
544
|
+
// Walk depth-first (parent before children).
|
|
545
|
+
// - Track the innermost statement whose start line equals targetLine.
|
|
546
|
+
// - Track whether *any* node's range covers targetLine (start <= line <= end).
|
|
547
|
+
// - Cancel as soon as a node starts past targetLine.
|
|
548
|
+
const handle = new brighterscript_1.CancellationTokenSource();
|
|
549
|
+
let deepestStatement;
|
|
550
|
+
let lineIsCovered = false;
|
|
551
|
+
parsed.ast.walk((node) => {
|
|
552
|
+
if (!node.range) {
|
|
553
|
+
return;
|
|
554
|
+
}
|
|
555
|
+
if (node.range.start.line > targetLine) {
|
|
556
|
+
handle.cancel();
|
|
557
|
+
return;
|
|
558
|
+
}
|
|
559
|
+
//the target line falls within this node's span (even if no statement starts on it)
|
|
560
|
+
if (node.range.end.line >= targetLine) {
|
|
561
|
+
lineIsCovered = true;
|
|
562
|
+
}
|
|
563
|
+
if ((0, brighterscript_1.isStatement)(node) && node.range.start.line === targetLine) {
|
|
564
|
+
deepestStatement = node;
|
|
565
|
+
}
|
|
566
|
+
}, {
|
|
567
|
+
walkMode: brighterscript_1.WalkMode.visitAllRecursive,
|
|
568
|
+
cancel: handle.token
|
|
569
|
+
});
|
|
570
|
+
if (!deepestStatement) {
|
|
571
|
+
//No statement starts here. There are two very different reasons this can happen:
|
|
572
|
+
// 1. The line sits *inside* some statement's range ("covered") but isn't itself a statement
|
|
573
|
+
// start — e.g. a structural keyword (`else`, `end if/for/while/sub/function`) or a
|
|
574
|
+
// continuation line of a multi-line literal/call. Injecting a `STOP` before such a line
|
|
575
|
+
// produces invalid BrightScript, so it is invalid *for telnet only*. For DebugProtocol
|
|
576
|
+
// (no injection) we cannot prove the device won't break there, so we KEEP it.
|
|
577
|
+
// 2. The line is *not* covered by any node. Either the line is genuinely empty (whitespace
|
|
578
|
+
// only) — non-executable in both modes — or the AST is incomplete/broken (partial/failed
|
|
579
|
+
// parse) and is simply missing the code that the file actually contains, in which case we
|
|
580
|
+
// fail open and KEEP it.
|
|
581
|
+
if (lineIsCovered) {
|
|
582
|
+
//only telnet's STOP injection makes a covered-but-statement-less line invalid
|
|
583
|
+
return { isValid: !willInjectStop };
|
|
584
|
+
}
|
|
585
|
+
//the line is not covered by any node. If the source line is empty/whitespace it is genuinely
|
|
586
|
+
//non-executable; otherwise the AST is missing code that the file actually contains, so keep it.
|
|
587
|
+
const sourceLine = (_a = fsExtra.readFileSync(stagingFilePath, 'utf-8').split(/\r?\n/)[targetLine]) !== null && _a !== void 0 ? _a : '';
|
|
588
|
+
return { isValid: sourceLine.trim().length > 0 };
|
|
589
|
+
}
|
|
590
|
+
//the only thing we are always certain is invalid: a positively-identified non-executable statement
|
|
591
|
+
if (isInvalidBreakpointLine(deepestStatement)) {
|
|
592
|
+
return { isValid: false };
|
|
593
|
+
}
|
|
594
|
+
return { isValid: true };
|
|
595
|
+
}
|
|
596
|
+
catch (e) {
|
|
597
|
+
// never block a breakpoint due to a parse error — fail open
|
|
598
|
+
this.logger.debug('Error checking if staging line is executable, allowing through', { stagingFilePath, lineNumber, error: e });
|
|
599
|
+
return { isValid: true };
|
|
600
|
+
}
|
|
601
|
+
}
|
|
407
602
|
/**
|
|
408
603
|
* Write breakpoints to the specified file, and update the sourcemaps to match
|
|
409
604
|
*/
|
|
@@ -728,4 +923,35 @@ class BreakpointManager {
|
|
|
728
923
|
}
|
|
729
924
|
}
|
|
730
925
|
exports.BreakpointManager = BreakpointManager;
|
|
926
|
+
/**
|
|
927
|
+
* Returns true when `node` is known to be an invalid breakpoint location.
|
|
928
|
+
*
|
|
929
|
+
* Blacklisted categories:
|
|
930
|
+
* - Pure-declaration or structural statements: comments, imports, namespace/class/
|
|
931
|
+
* enum/interface/type declarations, constants, class fields.
|
|
932
|
+
*
|
|
933
|
+
* Notably NOT blacklisted (all are valid breakpoint locations):
|
|
934
|
+
* - Function/method headers (`sub`/`function` line)
|
|
935
|
+
* - `dim` statements
|
|
936
|
+
* - Label statements
|
|
937
|
+
* - The standalone `end` program-terminator
|
|
938
|
+
*
|
|
939
|
+
* Lines where no statement starts (blank lines, `else`, `end if/for/while/sub/function`)
|
|
940
|
+
* are handled before this function is called and always return invalid.
|
|
941
|
+
*/
|
|
942
|
+
function isInvalidBreakpointLine(node) {
|
|
943
|
+
return ((0, brighterscript_1.isCommentStatement)(node) ||
|
|
944
|
+
(0, brighterscript_1.isImportStatement)(node) ||
|
|
945
|
+
(0, brighterscript_1.isLibraryStatement)(node) ||
|
|
946
|
+
(0, brighterscript_1.isNamespaceStatement)(node) ||
|
|
947
|
+
(0, brighterscript_1.isClassStatement)(node) ||
|
|
948
|
+
(0, brighterscript_1.isEnumStatement)(node) ||
|
|
949
|
+
(0, brighterscript_1.isEnumMemberStatement)(node) ||
|
|
950
|
+
(0, brighterscript_1.isInterfaceStatement)(node) ||
|
|
951
|
+
(0, brighterscript_1.isInterfaceFieldStatement)(node) ||
|
|
952
|
+
(0, brighterscript_1.isInterfaceMethodStatement)(node) ||
|
|
953
|
+
(0, brighterscript_1.isConstStatement)(node) ||
|
|
954
|
+
(0, brighterscript_1.isFieldStatement)(node) ||
|
|
955
|
+
(0, brighterscript_1.isTypeStatement)(node));
|
|
956
|
+
}
|
|
731
957
|
//# sourceMappingURL=BreakpointManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BreakpointManager.js","sourceRoot":"","sources":["../../src/managers/BreakpointManager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BreakpointManager.js","sourceRoot":"","sources":["../../src/managers/BreakpointManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -113,6 +113,13 @@ export declare class Project {
|
|
|
113
113
|
src: string;
|
|
114
114
|
dest: string;
|
|
115
115
|
}>;
|
|
116
|
+
/**
|
|
117
|
+
* Absolute staging paths of every file referenced by a `<script uri="...">` tag in any staged XML
|
|
118
|
+
* component. Roku loads these as BrightScript regardless of file extension, so they are valid
|
|
119
|
+
* breakpoint targets even when they don't end in `.brs`. Populated during `stage()` (the single
|
|
120
|
+
* staging-file walk in `preprocessStagingFiles`) so consumers don't have to re-scan the staging dir.
|
|
121
|
+
*/
|
|
122
|
+
scriptReferencedFiles: Set<string>;
|
|
116
123
|
bsConst: Record<string, boolean>;
|
|
117
124
|
injectRaleTrackerTask: boolean;
|
|
118
125
|
raleTrackerTaskFileLocation: string;
|
|
@@ -149,6 +156,14 @@ export declare class Project {
|
|
|
149
156
|
* - .brs/.xml files: rewrite the sourceMappingURL comment path to point to the staged map
|
|
150
157
|
*/
|
|
151
158
|
private preprocessStagingFiles;
|
|
159
|
+
/**
|
|
160
|
+
* Parse a staged XML file's contents for `<script uri="...">` tags and add each referenced file's
|
|
161
|
+
* absolute staging path to {@link scriptReferencedFiles}. `pkg:/`/`libpkg:/` uris resolve from the
|
|
162
|
+
* staging root; bare relative uris resolve from the XML file's own directory. Roku loads these as
|
|
163
|
+
* BrightScript regardless of extension, so they are valid breakpoint targets.
|
|
164
|
+
* @param contents the already-loaded file contents (read once by the staging walk)
|
|
165
|
+
*/
|
|
166
|
+
private collectScriptReferencedFiles;
|
|
152
167
|
/**
|
|
153
168
|
* Per-path write locks. Async file ops interleave (e.g. `preprocessStagingFiles` fans out
|
|
154
169
|
* tasks that can target the same staging `.map`), so we queue all writes to a given path
|