pw-sanitizer 0.1.0 → 0.1.1

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/dist/cli.d.ts CHANGED
@@ -1,3 +1,26 @@
1
1
  #!/usr/bin/env node
2
- export {};
2
+ import type { SanitizerConfig } from './config/types.js';
3
+ /**
4
+ * Exported for unit testing. Merges parsed CLI flag values into a {@link SanitizerConfig} object.
5
+ *
6
+ * CLI flags always take the highest priority — they overwrite any values
7
+ * that were loaded from a config file. Sections are created on-demand
8
+ * (e.g. `config.output` is initialised to `{}` if not already present).
9
+ *
10
+ * Flag → config field mapping:
11
+ * - `--report` → `output.reportDir`
12
+ * - `--no-traces` → `output.processTraces = false`
13
+ * - `--no-reports` → `output.processReports = false`
14
+ * - `--output` → `output.dir` + `output.mode = 'copy'`
15
+ * - `--in-place` → `output.mode = 'in-place'`
16
+ * - `--patterns` → `redact.patternFiles`
17
+ * - `--placeholder` → `redact.placeholder`
18
+ * - `--dry-run` → `remove.dryRun = true`
19
+ * - `--log-level` → `reporting.logLevel`
20
+ * - `--summary-output` → `reporting.summaryFile`
21
+ *
22
+ * @param config - The config object to mutate (loaded from file or empty).
23
+ * @param opts - Raw parsed options from Commander.js (`program.opts()`).
24
+ */
25
+ export declare function applyCliOverrides(config: SanitizerConfig, opts: Record<string, unknown>): void;
3
26
  //# sourceMappingURL=cli.d.ts.map
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAuEzD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,IAAI,CAgDN"}
package/dist/cli.js CHANGED
@@ -1,14 +1,21 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict";
3
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4
+ return (mod && mod.__esModule) ? mod : { "default": mod };
5
+ };
3
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.applyCliOverrides = applyCliOverrides;
4
8
  const commander_1 = require("commander");
5
9
  const loader_js_1 = require("./config/loader.js");
6
10
  const index_js_1 = require("./index.js");
11
+ // resolveJsonModule: true in tsconfig.json enables this JSON import.
12
+ // TypeScript will type `version` as `string` from the package.json schema.
13
+ const package_json_1 = __importDefault(require("../package.json"));
7
14
  const program = new commander_1.Command();
8
15
  program
9
16
  .name('playwright-sanitizer')
10
17
  .description('Post-process Playwright HTML reports and trace files to redact secrets and remove noisy steps')
11
- .version('0.1.0')
18
+ .version(package_json_1.default.version)
12
19
  .option('-c, --config <path>', 'Path to config file')
13
20
  .option('-r, --report <path>', 'HTML report directory', './playwright-report')
14
21
  .option('-t, --traces <path>', 'Trace directory', './test-results')
@@ -41,7 +48,7 @@ program.action(async (opts) => {
41
48
  }
42
49
  });
43
50
  /**
44
- * Merges parsed CLI flag values into a {@link SanitizerConfig} object.
51
+ * Exported for unit testing. Merges parsed CLI flag values into a {@link SanitizerConfig} object.
45
52
  *
46
53
  * CLI flags always take the highest priority — they overwrite any values
47
54
  * that were loaded from a config file. Sections are created on-demand
@@ -109,5 +116,11 @@ function applyCliOverrides(config, opts) {
109
116
  config.reporting.summaryFile = opts['summaryOutput'];
110
117
  }
111
118
  }
112
- program.parse();
119
+ // Only parse when this file is the Node.js entry-point, not when it is imported
120
+ // by a test or another module. The CJS `require.main === module` idiom is the
121
+ // standard pattern for this in CommonJS (which is what `module: Node16` compiles
122
+ // to when package.json has no `"type": "module"` field).
123
+ if (require.main === module) {
124
+ program.parse();
125
+ }
113
126
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -365,6 +365,11 @@ export interface RemovalSet {
365
365
  indices: Set<number>;
366
366
  /** Detailed list of every match (one entry per step per rule). */
367
367
  matches: StepMatch[];
368
+ /**
369
+ * Safety-guard warning messages emitted when a rule's
370
+ * `minConsecutiveOccurrences` threshold was not met.
371
+ */
372
+ safetyGuardWarnings: string[];
368
373
  }
369
374
  /**
370
375
  * Processing result for a single file (HTML report or trace `.zip`).
@@ -382,6 +387,11 @@ export interface ProcessResult {
382
387
  redactionMatches: RedactionMatch[];
383
388
  /** Detailed list of every step-removal match. */
384
389
  removalMatches: StepMatch[];
390
+ /**
391
+ * Safety-guard warning messages collected while processing this file.
392
+ * Populated when a rule's `minConsecutiveOccurrences` threshold was not met.
393
+ */
394
+ safetyGuardWarnings: string[];
385
395
  }
386
396
  /**
387
397
  * Aggregated statistics produced after processing all files.
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAexE,YAAY,EACV,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,aAAa,EACb,UAAU,EACV,aAAa,EACb,mBAAmB,EACnB,UAAU,EACV,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,UAAU,EACV,SAAS,EACT,UAAU,GACX,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,QAAQ,CAC5B,cAAc,CAAC,EAAE,eAAe,GAC/B,OAAO,CAAC,aAAa,EAAE,CAAC,CA8E1B;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,YAAY,CAChC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,aAAa,CAAC,CAiBxB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,WAAW,CAC/B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,aAAa,CAAC,CAiBxB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAexE,YAAY,EACV,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,aAAa,EACb,UAAU,EACV,aAAa,EACb,mBAAmB,EACnB,UAAU,EACV,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,UAAU,EACV,SAAS,EACT,UAAU,GACX,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,QAAQ,CAC5B,cAAc,CAAC,EAAE,eAAe,GAC/B,OAAO,CAAC,aAAa,EAAE,CAAC,CA+E1B;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,YAAY,CAChC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,aAAa,CAAC,CAiBxB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,WAAW,CAC/B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,aAAa,CAAC,CAiBxB"}
package/dist/index.js CHANGED
@@ -113,7 +113,8 @@ async function sanitize(configOverride) {
113
113
  // Summary
114
114
  const showSummary = config.reporting?.summary !== false;
115
115
  if (showSummary || config.reporting?.summaryFile) {
116
- const summary = (0, reporter_js_1.generateSummary)(results, config, patterns.length, rules.length, []);
116
+ const allSafetyWarnings = results.flatMap((r) => r.safetyGuardWarnings);
117
+ const summary = (0, reporter_js_1.generateSummary)(results, config, patterns.length, rules.length, allSafetyWarnings);
117
118
  if (showSummary) {
118
119
  (0, reporter_js_1.printSummary)(summary);
119
120
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"html-report.d.ts","sourceRoot":"","sources":["../../src/processors/html-report.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,eAAe,EACf,aAAa,EACb,UAAU,EACV,aAAa,EAEd,MAAM,oBAAoB,CAAC;AAoB5B;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,aAAa,EAAE,EACzB,KAAK,EAAE,UAAU,EAAE,GAClB,OAAO,CAAC,aAAa,CAAC,CAgGxB"}
1
+ {"version":3,"file":"html-report.d.ts","sourceRoot":"","sources":["../../src/processors/html-report.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,eAAe,EACf,aAAa,EACb,UAAU,EACV,aAAa,EAEd,MAAM,oBAAoB,CAAC;AAoB5B;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,aAAa,EAAE,EACzB,KAAK,EAAE,UAAU,EAAE,GAClB,OAAO,CAAC,aAAa,CAAC,CAwHxB"}
@@ -83,6 +83,7 @@ async function processHtmlReport(inputPath, outputPath, config, patterns, rules)
83
83
  timestampRepairs: 0,
84
84
  redactionMatches: [],
85
85
  removalMatches: [],
86
+ safetyGuardWarnings: [],
86
87
  };
87
88
  const html = fs.readFileSync(inputPath, 'utf-8');
88
89
  const match = REPORT_DATA_REGEX.exec(html);
@@ -117,6 +118,8 @@ async function processHtmlReport(inputPath, outputPath, config, patterns, rules)
117
118
  const events = extractEventsFromReport(reportData);
118
119
  if (events.length > 0) {
119
120
  const removalSet = (0, detector_js_1.findStepsToRemove)(events, rules);
121
+ // Always propagate safety warnings regardless of whether removal runs
122
+ result.safetyGuardWarnings.push(...removalSet.safetyGuardWarnings);
120
123
  if (removalSet.indices.size > 0) {
121
124
  if (config.remove.dryRun) {
122
125
  logger_js_1.logger.info(`[DRY RUN] Would remove ${removalSet.indices.size} steps from ${inputPath}`);
@@ -128,13 +131,29 @@ async function processHtmlReport(inputPath, outputPath, config, patterns, rules)
128
131
  result.stepsRemoved = removalSet.indices.size;
129
132
  }
130
133
  else {
131
- const removedEvents = Array.from(removalSet.indices).map((i) => events[i]);
132
- const cleaned = (0, remover_js_1.removeSteps)(events, removalSet);
134
+ const orphanStrategy = config.remove.orphanStrategy ?? 'remove-children';
135
+ // Remove steps orphanStrategy controls whether matched parents or only
136
+ // their children are dropped from the flat events array.
137
+ const cleaned = (0, remover_js_1.removeSteps)(events, removalSet, orphanStrategy);
133
138
  const strategy = config.remove.timestampStrategy ?? 'absorb-into-prev';
134
- const repaired = (0, timestamp_repair_js_1.repairTimestamps)(cleaned, removedEvents, strategy);
135
- replaceEventsInReport(reportData, repaired);
136
- result.stepsRemoved = removalSet.indices.size;
137
- result.timestampRepairs = removalSet.indices.size;
139
+ // Determine which events were actually removed (set-difference by identity).
140
+ // For remove-children: matched events + their descendants.
141
+ // For keep-shell: only the children (matched events are kept).
142
+ const cleanedSet = new Set(cleaned);
143
+ const actuallyRemovedEvents = events.filter((e) => !cleanedSet.has(e));
144
+ const repaired = (0, timestamp_repair_js_1.repairTimestamps)(cleaned, actuallyRemovedEvents, strategy);
145
+ // Build callId → repaired event for tree timestamp updates
146
+ const repairedByCallId = new Map();
147
+ for (const e of repaired) {
148
+ if (e.callId)
149
+ repairedByCallId.set(e.callId, e);
150
+ }
151
+ // For the tree traversal: in keep-shell mode the matched parent objects
152
+ // stay in the tree — only their children are filtered out.
153
+ const treeEventsToRemove = new Set(actuallyRemovedEvents);
154
+ replaceEventsInReport(reportData, treeEventsToRemove, repairedByCallId);
155
+ result.stepsRemoved = actuallyRemovedEvents.length;
156
+ result.timestampRepairs = actuallyRemovedEvents.length;
138
157
  result.removalMatches = removalSet.matches;
139
158
  modified = true;
140
159
  }
@@ -194,27 +213,51 @@ function extractEventsFromReport(data) {
194
213
  return events;
195
214
  }
196
215
  /**
197
- * Placeholder for post-removal tree reconstruction in HTML reports.
216
+ * Rebuilds the nested step/action arrays in the HTML report tree after removal.
198
217
  *
199
- * In the current implementation, step mutations during the redact walk phase
200
- * are applied directly to object references within the report tree, which is
201
- * sufficient for the redaction use-case.
218
+ * Because {@link extractEventsFromReport} returns object **references** that
219
+ * live inside the report tree, `eventsToRemove` can be used as an identity
220
+ * set to filter matching objects directly from the tree's `steps` / `actions`
221
+ * arrays without a separate re-serialisation step.
202
222
  *
203
- * Full step-removal support for HTML reports would require rebuilding the
204
- * nested `steps` arrays in each test result to exclude the removed events —
205
- * this is tracked as a future enhancement.
223
+ * Additionally, repaired timestamps (computed from the flat event array) are
224
+ * applied back to tree nodes that carry a `callId` field.
206
225
  *
207
- * @param _data - The parsed report data (unused — present for future implementation).
208
- * @param _repairedEvents - The repaired event array (unused present for future implementation).
226
+ * @param data - The parsed `window.__pw_report_data__` object.
227
+ * @param eventsToRemove - Set of original event objects to exclude from step arrays.
228
+ * @param repairedByCallId - Map of `callId` → repaired event used to update timestamps.
209
229
  */
210
- function replaceEventsInReport(_data, _repairedEvents) {
211
- // The events extracted from the report are object references.
212
- // removeSteps returns a new array but the original tree still contains
213
- // the old references. For a full implementation, we'd need to rebuild
214
- // the tree structure. For now, the walked-and-redacted data is sufficient
215
- // since we modify the objects in place during the walk phase.
216
- //
217
- // A more complete implementation would rebuild the steps arrays in the
218
- // report tree to match the filtered events.
230
+ function replaceEventsInReport(data, eventsToRemove, repairedByCallId) {
231
+ function traverse(node) {
232
+ if (!node || typeof node !== 'object' || Array.isArray(node))
233
+ return;
234
+ const obj = node;
235
+ // Apply repaired timestamps to this node when it has a known callId
236
+ if (typeof obj['callId'] === 'string') {
237
+ const repaired = repairedByCallId.get(obj['callId']);
238
+ if (repaired) {
239
+ obj['startTime'] = repaired.startTime;
240
+ obj['endTime'] = repaired.endTime;
241
+ }
242
+ }
243
+ // Filter removed events from step/action arrays and recurse into survivors
244
+ for (const key of ['steps', 'actions']) {
245
+ if (Array.isArray(obj[key])) {
246
+ obj[key] = obj[key].filter((item) => !(item !== null && typeof item === 'object' && eventsToRemove.has(item)));
247
+ for (const item of obj[key]) {
248
+ traverse(item);
249
+ }
250
+ }
251
+ }
252
+ // Recurse into structural containers (not filtered)
253
+ for (const key of ['suites', 'tests', 'results', 'attachments']) {
254
+ if (Array.isArray(obj[key])) {
255
+ for (const item of obj[key]) {
256
+ traverse(item);
257
+ }
258
+ }
259
+ }
260
+ }
261
+ traverse(data);
219
262
  }
220
263
  //# sourceMappingURL=html-report.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"html-report.js","sourceRoot":"","sources":["../../src/processors/html-report.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"html-report.js","sourceRoot":"","sources":["../../src/processors/html-report.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoDA,8CA8HC;AAlLD,4CAA8B;AAS9B,6DAAyD;AACzD,uDAA0D;AAC1D,qDAAmD;AACnD,uEAAiE;AACjE,4CAAsC;AACtC,0CAA0C;AAE1C;;;;;;;;GAQG;AACH,MAAM,iBAAiB,GACrB,2DAA2D,CAAC;AAE9D;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACI,KAAK,UAAU,iBAAiB,CACrC,SAAiB,EACjB,UAAkB,EAClB,MAAuB,EACvB,QAAyB,EACzB,KAAmB;IAEnB,MAAM,MAAM,GAAkB;QAC5B,IAAI,EAAE,SAAS;QACf,iBAAiB,EAAE,CAAC;QACpB,YAAY,EAAE,CAAC;QACf,gBAAgB,EAAE,CAAC;QACnB,gBAAgB,EAAE,EAAE;QACpB,cAAc,EAAE,EAAE;QAClB,mBAAmB,EAAE,EAAE;KACxB,CAAC;IAEF,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE3C,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChB,kBAAM,CAAC,IAAI,CACT,0CAA0C,SAAS,IAAI;YACvD,sDAAsD,CACvD,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,UAAmB,CAAC;IACxB,IAAI,CAAC;QACH,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,kBAAM,CAAC,IAAI,CACT,oCAAoC,SAAS,IAAI;YACjD,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CACtD,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,QAAQ,GAAG,KAAK,CAAC;IAErB,eAAe;IACf,IAAI,MAAM,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzC,MAAM,UAAU,GAAG,IAAA,8BAAa,EAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACtE,IAAI,UAAU,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;YACzB,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC;YAC/B,MAAM,CAAC,iBAAiB,GAAG,UAAU,CAAC,KAAK,CAAC;YAC5C,MAAM,CAAC,gBAAgB,GAAG,UAAU,CAAC,OAAO,CAAC;YAC7C,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;IACH,CAAC;IAED,eAAe;IACf,IAAI,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,+EAA+E;QAC/E,MAAM,MAAM,GAAG,uBAAuB,CAAC,UAAU,CAAC,CAAC;QACnD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,UAAU,GAAG,IAAA,+BAAiB,EAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAEpD,sEAAsE;YACtE,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,mBAAmB,CAAC,CAAC;YAEnE,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBAChC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;oBACzB,kBAAM,CAAC,IAAI,CACT,0BAA0B,UAAU,CAAC,OAAO,CAAC,IAAI,eAAe,SAAS,EAAE,CAC5E,CAAC;oBACF,KAAK,MAAM,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;wBACnC,kBAAM,CAAC,IAAI,CACT,aAAa,CAAC,CAAC,SAAS,oBAAoB,CAAC,CAAC,KAAK,GAAG;4BACtD,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,SAAS,IAAI,CACtD,CAAC;oBACJ,CAAC;oBACD,MAAM,CAAC,cAAc,GAAG,UAAU,CAAC,OAAO,CAAC;oBAC3C,MAAM,CAAC,YAAY,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC;gBAChD,CAAC;qBAAM,CAAC;oBACN,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,IAAI,iBAAiB,CAAC;oBAEzE,yEAAyE;oBACzE,yDAAyD;oBACzD,MAAM,OAAO,GAAG,IAAA,wBAAW,EAAC,MAAM,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;oBAChE,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,IAAI,kBAAkB,CAAC;oBAEvE,6EAA6E;oBAC7E,2DAA2D;oBAC3D,+DAA+D;oBAC/D,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;oBACpC,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oBAEvE,MAAM,QAAQ,GAAG,IAAA,sCAAgB,EAAC,OAAO,EAAE,qBAAqB,EAAE,QAAQ,CAAC,CAAC;oBAE5E,2DAA2D;oBAC3D,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAsB,CAAC;oBACvD,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;wBACzB,IAAI,CAAC,CAAC,MAAM;4BAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;oBAClD,CAAC;oBAED,wEAAwE;oBACxE,2DAA2D;oBAC3D,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAS,qBAAqB,CAAC,CAAC;oBAElE,qBAAqB,CAAC,UAAU,EAAE,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;oBACxE,MAAM,CAAC,YAAY,GAAG,qBAAqB,CAAC,MAAM,CAAC;oBACnD,MAAM,CAAC,gBAAgB,GAAG,qBAAqB,CAAC,MAAM,CAAC;oBACvD,MAAM,CAAC,cAAc,GAAG,UAAU,CAAC,OAAO,CAAC;oBAC3C,QAAQ,GAAG,IAAI,CAAC;gBAClB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QACxC,kBAAM,CAAC,IAAI,CAAC,sBAAsB,SAAS,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,gCAAgC;IAChC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAC1B,iBAAiB,EACjB,+BAA+B,OAAO,YAAY,CACnD,CAAC;QACF,IAAA,sBAAW,EAAC,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAS,uBAAuB,CAAC,IAAa;IAC5C,MAAM,MAAM,GAAiB,EAAE,CAAC;IAEhC,SAAS,QAAQ,CAAC,IAAa;QAC7B,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO;QAE9C,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;gBACxB,QAAQ,CAAC,IAAI,CAAC,CAAC;YACjB,CAAC;YACD,OAAO;QACT,CAAC;QAED,MAAM,GAAG,GAAG,IAA+B,CAAC;QAE5C,+CAA+C;QAC/C,IACE,CAAC,WAAW,IAAI,GAAG,IAAI,SAAS,IAAI,GAAG,CAAC;YACxC,OAAO,IAAI,GAAG;YACd,QAAQ,IAAI,GAAG,EACf,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,GAA4B,CAAC,CAAC;QAC5C,CAAC;QAED,iCAAiC;QACjC,KAAK,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,CAAC,EAAE,CAAC;YACpF,IAAI,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBAC1C,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,IAAI,CAAC,CAAC;IACf,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAS,qBAAqB,CAC5B,IAAa,EACb,cAA2B,EAC3B,gBAAyC;IAEzC,SAAS,QAAQ,CAAC,IAAa;QAC7B,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YAAE,OAAO;QAErE,MAAM,GAAG,GAAG,IAA+B,CAAC;QAE5C,oEAAoE;QACpE,IAAI,OAAO,GAAG,CAAC,QAAQ,CAAC,KAAK,QAAQ,EAAE,CAAC;YACtC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;YACrD,IAAI,QAAQ,EAAE,CAAC;gBACb,GAAG,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC;gBACtC,GAAG,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC;YACpC,CAAC;QACH,CAAC;QAED,2EAA2E;QAC3E,KAAK,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC;YACvC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBAC5B,GAAG,CAAC,GAAG,CAAC,GAAI,GAAG,CAAC,GAAG,CAAe,CAAC,MAAM,CACvC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CACnF,CAAC;gBACF,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,GAAG,CAAc,EAAE,CAAC;oBACzC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACjB,CAAC;YACH,CAAC;QACH,CAAC;QAED,oDAAoD;QACpD,KAAK,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,CAAC,EAAE,CAAC;YAChE,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBAC5B,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,GAAG,CAAc,EAAE,CAAC;oBACzC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACjB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,IAAI,CAAC,CAAC;AACjB,CAAC"}
@@ -6,29 +6,29 @@
6
6
  * are identified by mapping CSS selectors from redact patterns to pixel
7
7
  * coordinates recorded in the trace.
8
8
  *
9
- * **Current status**: placeholder implementation. The function signature and
10
- * `sharp` integration skeleton are in place, but the coordinate-mapping logic
11
- * and blur overlay are not yet implemented. Requires the optional `sharp`
12
- * peer dependency (`npm install sharp`).
9
+ * Requires the optional `sharp` peer dependency (`npm install sharp`).
10
+ * Falls back to a no-op (returning the original buffer) when `sharp` is absent.
13
11
  */
14
12
  /**
15
13
  * Applies pixel-level redaction to a screenshot buffer by blurring the
16
14
  * specified rectangular regions.
17
15
  *
18
- * @remarks
19
- * This is a **placeholder** — the function currently returns the original
20
- * buffer unchanged. A full implementation would use `sharp` to composite
21
- * blurred rectangles over the matching coordinates.
16
+ * For each region the function:
17
+ * 1. Extracts the pixel rectangle from the original image.
18
+ * 2. Applies a Gaussian blur (sigma = 20) to the extracted patch.
19
+ * 3. Composites the blurred patch back over the original at the same position.
22
20
  *
23
- * If `sharp` is not installed, a warning is logged and the original buffer
24
- * is returned (no-op behaviour).
21
+ * Regions that fall entirely outside the image bounds are silently skipped.
22
+ * If `regions` is empty, the original buffer is returned immediately.
25
23
  *
26
- * @param _screenshotBuffer - The raw PNG/JPEG screenshot buffer from the trace archive.
27
- * @param _regions - Pixel-coordinate rectangles to blur (x, y, width, height — all in px).
24
+ * If `sharp` is not installed, a warning is logged and the original buffer is
25
+ * returned unchanged.
26
+ *
27
+ * @param screenshotBuffer - The raw PNG/JPEG screenshot buffer from the trace archive.
28
+ * @param regions - Pixel-coordinate rectangles to blur (x, y, width, height — all in px).
28
29
  * @returns The (potentially blurred) screenshot buffer.
29
- * Currently always returns `_screenshotBuffer` unchanged.
30
30
  */
31
- export declare function redactScreenshot(_screenshotBuffer: Buffer, _regions: Array<{
31
+ export declare function redactScreenshot(screenshotBuffer: Buffer, regions: Array<{
32
32
  x: number;
33
33
  y: number;
34
34
  width: number;
@@ -1 +1 @@
1
- {"version":3,"file":"screenshot.d.ts","sourceRoot":"","sources":["../../src/processors/screenshot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,gBAAgB,CACpC,iBAAiB,EAAE,MAAM,EACzB,QAAQ,EAAE,KAAK,CAAC;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,GACvE,OAAO,CAAC,MAAM,CAAC,CAkBjB"}
1
+ {"version":3,"file":"screenshot.d.ts","sourceRoot":"","sources":["../../src/processors/screenshot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAqBH;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,gBAAgB,CACpC,gBAAgB,EAAE,MAAM,EACxB,OAAO,EAAE,KAAK,CAAC;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,GACtE,OAAO,CAAC,MAAM,CAAC,CA8DjB"}
@@ -7,10 +7,8 @@
7
7
  * are identified by mapping CSS selectors from redact patterns to pixel
8
8
  * coordinates recorded in the trace.
9
9
  *
10
- * **Current status**: placeholder implementation. The function signature and
11
- * `sharp` integration skeleton are in place, but the coordinate-mapping logic
12
- * and blur overlay are not yet implemented. Requires the optional `sharp`
13
- * peer dependency (`npm install sharp`).
10
+ * Requires the optional `sharp` peer dependency (`npm install sharp`).
11
+ * Falls back to a no-op (returning the original buffer) when `sharp` is absent.
14
12
  */
15
13
  Object.defineProperty(exports, "__esModule", { value: true });
16
14
  exports.redactScreenshot = redactScreenshot;
@@ -19,34 +17,70 @@ const logger_js_1 = require("../logger.js");
19
17
  * Applies pixel-level redaction to a screenshot buffer by blurring the
20
18
  * specified rectangular regions.
21
19
  *
22
- * @remarks
23
- * This is a **placeholder** — the function currently returns the original
24
- * buffer unchanged. A full implementation would use `sharp` to composite
25
- * blurred rectangles over the matching coordinates.
20
+ * For each region the function:
21
+ * 1. Extracts the pixel rectangle from the original image.
22
+ * 2. Applies a Gaussian blur (sigma = 20) to the extracted patch.
23
+ * 3. Composites the blurred patch back over the original at the same position.
26
24
  *
27
- * If `sharp` is not installed, a warning is logged and the original buffer
28
- * is returned (no-op behaviour).
25
+ * Regions that fall entirely outside the image bounds are silently skipped.
26
+ * If `regions` is empty, the original buffer is returned immediately.
29
27
  *
30
- * @param _screenshotBuffer - The raw PNG/JPEG screenshot buffer from the trace archive.
31
- * @param _regions - Pixel-coordinate rectangles to blur (x, y, width, height — all in px).
28
+ * If `sharp` is not installed, a warning is logged and the original buffer is
29
+ * returned unchanged.
30
+ *
31
+ * @param screenshotBuffer - The raw PNG/JPEG screenshot buffer from the trace archive.
32
+ * @param regions - Pixel-coordinate rectangles to blur (x, y, width, height — all in px).
32
33
  * @returns The (potentially blurred) screenshot buffer.
33
- * Currently always returns `_screenshotBuffer` unchanged.
34
34
  */
35
- async function redactScreenshot(_screenshotBuffer, _regions) {
35
+ async function redactScreenshot(screenshotBuffer, regions) {
36
+ if (regions.length === 0)
37
+ return screenshotBuffer;
38
+ let sharp;
36
39
  try {
37
- // Dynamic import to respect optional peer dependency
38
- // Use a variable to prevent TypeScript from resolving the module at compile time
40
+ // Dynamic import to respect optional peer dependency.
41
+ // The variable indirection prevents TypeScript from resolving the module at
42
+ // compile time and avoids a hard dependency on @types/sharp.
39
43
  const sharpModule = 'sharp';
40
- await import(sharpModule);
41
- logger_js_1.logger.verbose('Screenshot redaction: sharp module loaded');
42
- // Placeholder: actual implementation would overlay blur regions
43
- // onto the screenshot at the specified pixel coordinates.
44
- return _screenshotBuffer;
44
+ const mod = await import(sharpModule);
45
+ sharp = mod.default;
45
46
  }
46
47
  catch {
47
48
  logger_js_1.logger.warn('Screenshot redaction requires the "sharp" package. ' +
48
49
  'Install it with: npm install sharp');
49
- return _screenshotBuffer;
50
+ return screenshotBuffer;
51
+ }
52
+ try {
53
+ const image = sharp(screenshotBuffer);
54
+ const metadata = await image.metadata();
55
+ const imgWidth = metadata.width ?? 0;
56
+ const imgHeight = metadata.height ?? 0;
57
+ const composites = [];
58
+ for (const region of regions) {
59
+ const left = Math.max(0, Math.round(region.x));
60
+ const top = Math.max(0, Math.round(region.y));
61
+ const width = Math.max(1, Math.min(Math.round(region.width), imgWidth - left));
62
+ const height = Math.max(1, Math.min(Math.round(region.height), imgHeight - top));
63
+ // Skip regions that are entirely outside the image
64
+ if (left >= imgWidth || top >= imgHeight || width <= 0 || height <= 0) {
65
+ logger_js_1.logger.verbose(`Screenshot redaction: skipping out-of-bounds region ` +
66
+ `(x=${region.x}, y=${region.y}, w=${region.width}, h=${region.height})`);
67
+ continue;
68
+ }
69
+ const blurredPatch = await sharp(screenshotBuffer)
70
+ .extract({ left, top, width, height })
71
+ .blur(20)
72
+ .toBuffer();
73
+ composites.push({ input: blurredPatch, left, top });
74
+ }
75
+ if (composites.length === 0)
76
+ return screenshotBuffer;
77
+ logger_js_1.logger.verbose(`Screenshot redaction: blurring ${composites.length} region(s)`);
78
+ return image.composite(composites).toBuffer();
79
+ }
80
+ catch (err) {
81
+ logger_js_1.logger.warn(`Screenshot redaction failed: ${err instanceof Error ? err.message : String(err)}. ` +
82
+ 'Returning original screenshot.');
83
+ return screenshotBuffer;
50
84
  }
51
85
  }
52
86
  //# sourceMappingURL=screenshot.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"screenshot.js","sourceRoot":"","sources":["../../src/processors/screenshot.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;AAqBH,4CAqBC;AAxCD,4CAAsC;AAEtC;;;;;;;;;;;;;;;;GAgBG;AACI,KAAK,UAAU,gBAAgB,CACpC,iBAAyB,EACzB,QAAwE;IAExE,IAAI,CAAC;QACH,qDAAqD;QACrD,iFAAiF;QACjF,MAAM,WAAW,GAAG,OAAO,CAAC;QAC5B,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;QAC1B,kBAAM,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC;QAE5D,gEAAgE;QAChE,0DAA0D;QAC1D,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,kBAAM,CAAC,IAAI,CACT,qDAAqD;YACrD,oCAAoC,CACrC,CAAC;QACF,OAAO,iBAAiB,CAAC;IAC3B,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"screenshot.js","sourceRoot":"","sources":["../../src/processors/screenshot.ts"],"names":[],"mappings":"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"}
@@ -13,8 +13,12 @@ import type { SanitizerConfig, RedactPattern, RemoveRule, ProcessResult } from '
13
13
  * - Run {@link findStepsToRemove} on the trace events.
14
14
  * - Run {@link removeSteps} and {@link repairTimestamps}.
15
15
  * - Remove corresponding `network.json` entries by `requestId`.
16
- * 5. Write modified `trace.json` and `network.json` back into the archive.
17
- * 6. Re-generate the `.zip` buffer and write it according to `config.output.mode`.
16
+ * 5. **Screenshot redaction phase** (if `config.output.redactScreenshots` is `true`):
17
+ * - Collects element bounding boxes (`box` field) from all trace events.
18
+ * - For every PNG/JPEG in `resources/`, blurs the collected regions using {@link redactScreenshot}.
19
+ * - Requires the optional `sharp` peer dependency; falls back to a no-op with a warning.
20
+ * 6. Write modified `trace.json` and `network.json` back into the archive.
21
+ * 7. Re-generate the `.zip` buffer and write it according to `config.output.mode`.
18
22
  *
19
23
  * Unreadable files and non-JSON resources are skipped gracefully with warnings.
20
24
  *
@@ -1 +1 @@
1
- {"version":3,"file":"trace-file.d.ts","sourceRoot":"","sources":["../../src/processors/trace-file.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,eAAe,EACf,aAAa,EACb,UAAU,EACV,aAAa,EAEd,MAAM,oBAAoB,CAAC;AAQ5B;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,aAAa,EAAE,EACzB,KAAK,EAAE,UAAU,EAAE,GAClB,OAAO,CAAC,aAAa,CAAC,CA8MxB"}
1
+ {"version":3,"file":"trace-file.d.ts","sourceRoot":"","sources":["../../src/processors/trace-file.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,eAAe,EACf,aAAa,EACb,UAAU,EACV,aAAa,EAEd,MAAM,oBAAoB,CAAC;AAS5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,aAAa,EAAE,EACzB,KAAK,EAAE,UAAU,EAAE,GAClB,OAAO,CAAC,aAAa,CAAC,CA4SxB"}
@@ -43,6 +43,7 @@ const json_walker_js_1 = require("../redact/json-walker.js");
43
43
  const detector_js_1 = require("../remove/detector.js");
44
44
  const remover_js_1 = require("../remove/remover.js");
45
45
  const timestamp_repair_js_1 = require("../remove/timestamp-repair.js");
46
+ const screenshot_js_1 = require("./screenshot.js");
46
47
  const logger_js_1 = require("../logger.js");
47
48
  const utils_js_1 = require("../utils.js");
48
49
  /**
@@ -59,8 +60,12 @@ const utils_js_1 = require("../utils.js");
59
60
  * - Run {@link findStepsToRemove} on the trace events.
60
61
  * - Run {@link removeSteps} and {@link repairTimestamps}.
61
62
  * - Remove corresponding `network.json` entries by `requestId`.
62
- * 5. Write modified `trace.json` and `network.json` back into the archive.
63
- * 6. Re-generate the `.zip` buffer and write it according to `config.output.mode`.
63
+ * 5. **Screenshot redaction phase** (if `config.output.redactScreenshots` is `true`):
64
+ * - Collects element bounding boxes (`box` field) from all trace events.
65
+ * - For every PNG/JPEG in `resources/`, blurs the collected regions using {@link redactScreenshot}.
66
+ * - Requires the optional `sharp` peer dependency; falls back to a no-op with a warning.
67
+ * 6. Write modified `trace.json` and `network.json` back into the archive.
68
+ * 7. Re-generate the `.zip` buffer and write it according to `config.output.mode`.
64
69
  *
65
70
  * Unreadable files and non-JSON resources are skipped gracefully with warnings.
66
71
  *
@@ -79,6 +84,7 @@ async function processTraceFile(inputPath, outputPath, config, patterns, rules)
79
84
  timestampRepairs: 0,
80
85
  redactionMatches: [],
81
86
  removalMatches: [],
87
+ safetyGuardWarnings: [],
82
88
  };
83
89
  let zipData;
84
90
  try {
@@ -99,6 +105,11 @@ async function processTraceFile(inputPath, outputPath, config, patterns, rules)
99
105
  return result;
100
106
  }
101
107
  let modified = false;
108
+ // Collect element bounding boxes early, before any removal, so that boxes from
109
+ // steps that will later be removed are still available for screenshot blurring.
110
+ // Each entry comes from a trace event's `box` field (Playwright records the
111
+ // on-screen bounding rectangle for UI actions such as fill, click, type, etc.).
112
+ const elementBoxes = [];
102
113
  // Load trace.json
103
114
  let traceEvents = null;
104
115
  const traceFile = zip.file('trace.json');
@@ -124,6 +135,33 @@ async function processTraceFile(inputPath, outputPath, config, patterns, rules)
124
135
  // network.json might not exist in all traces
125
136
  }
126
137
  }
138
+ // Populate elementBoxes now that trace.json is loaded.
139
+ // We read boxes from the original events (before any redaction/removal) so that
140
+ // no coordinates are lost if those events are subsequently removed.
141
+ if (config.output?.redactScreenshots && traceEvents) {
142
+ for (const event of traceEvents) {
143
+ const box = event['box'];
144
+ if (box !== null && box !== undefined && typeof box === 'object') {
145
+ const b = box;
146
+ if (typeof b['x'] === 'number' &&
147
+ typeof b['y'] === 'number' &&
148
+ typeof b['width'] === 'number' &&
149
+ typeof b['height'] === 'number') {
150
+ elementBoxes.push({
151
+ x: b['x'],
152
+ y: b['y'],
153
+ width: b['width'],
154
+ height: b['height'],
155
+ });
156
+ }
157
+ }
158
+ }
159
+ if (elementBoxes.length === 0) {
160
+ logger_js_1.logger.verbose(`Screenshot redaction enabled for ${inputPath} but no element bounding boxes ` +
161
+ `were found in trace events — screenshots will not be blurred. ` +
162
+ `Bounding boxes are recorded by Playwright for UI actions (fill, click, etc.).`);
163
+ }
164
+ }
127
165
  // ── Redact phase ──
128
166
  if (config.redact && patterns.length > 0) {
129
167
  // Redact trace.json
@@ -182,6 +220,8 @@ async function processTraceFile(inputPath, outputPath, config, patterns, rules)
182
220
  // ── Remove phase ──
183
221
  if (config.remove && rules.length > 0 && traceEvents) {
184
222
  const removalSet = (0, detector_js_1.findStepsToRemove)(traceEvents, rules);
223
+ // Always propagate safety warnings regardless of whether removal runs
224
+ result.safetyGuardWarnings.push(...removalSet.safetyGuardWarnings);
185
225
  if (removalSet.indices.size > 0) {
186
226
  if (config.remove.dryRun) {
187
227
  logger_js_1.logger.info(`[DRY RUN] Would remove ${removalSet.indices.size} steps from ${inputPath}`);
@@ -202,11 +242,16 @@ async function processTraceFile(inputPath, outputPath, config, patterns, rules)
202
242
  removedRequestIds.add(event.requestId);
203
243
  }
204
244
  }
205
- // Remove steps
206
- const cleaned = (0, remover_js_1.removeSteps)(traceEvents, removalSet);
207
- // Repair timestamps
245
+ // Remove steps (pass orphan strategy so keep-shell is respected)
246
+ const orphanStrategy = config.remove.orphanStrategy ?? 'remove-children';
247
+ const cleaned = (0, remover_js_1.removeSteps)(traceEvents, removalSet, orphanStrategy);
248
+ // Determine which events were actually removed (works for both strategies:
249
+ // remove-children removes matched + children; keep-shell removes only children)
250
+ const cleanedSet = new Set(cleaned);
251
+ const actuallyRemovedEvents = traceEvents.filter((e) => !cleanedSet.has(e));
252
+ // Repair timestamps using events that were actually removed
208
253
  const strategy = config.remove.timestampStrategy ?? 'absorb-into-prev';
209
- traceEvents = (0, timestamp_repair_js_1.repairTimestamps)(cleaned, removedEvents, strategy);
254
+ traceEvents = (0, timestamp_repair_js_1.repairTimestamps)(cleaned, actuallyRemovedEvents, strategy);
210
255
  // Remove corresponding network.json entries
211
256
  if (networkData && removedRequestIds.size > 0) {
212
257
  networkData = networkData.filter((entry) => {
@@ -219,13 +264,49 @@ async function processTraceFile(inputPath, outputPath, config, patterns, rules)
219
264
  return true;
220
265
  });
221
266
  }
222
- result.stepsRemoved = removalSet.indices.size;
223
- result.timestampRepairs = removalSet.indices.size;
267
+ // stepsRemoved = events actually removed from the output
268
+ result.stepsRemoved = actuallyRemovedEvents.length;
269
+ result.timestampRepairs = actuallyRemovedEvents.length;
224
270
  result.removalMatches = removalSet.matches;
225
271
  modified = true;
226
272
  }
227
273
  }
228
274
  }
275
+ // ── Screenshot redaction phase ──
276
+ // Runs after remove so the final traceEvents state is consistent, but uses the
277
+ // bounding boxes collected from the original events (before any removal).
278
+ if (config.output?.redactScreenshots && elementBoxes.length > 0 && !config.remove?.dryRun) {
279
+ // Collect all PNG/JPEG screenshot files stored in the zip
280
+ const screenshotPaths = [];
281
+ zip.forEach((relativePath, file) => {
282
+ if (!file.dir &&
283
+ (relativePath.endsWith('.png') ||
284
+ relativePath.endsWith('.jpeg') ||
285
+ relativePath.endsWith('.jpg'))) {
286
+ screenshotPaths.push(relativePath);
287
+ }
288
+ });
289
+ logger_js_1.logger.verbose(`Screenshot redaction: processing ${screenshotPaths.length} screenshot(s) ` +
290
+ `with ${elementBoxes.length} region(s) in ${inputPath}`);
291
+ for (const screenshotPath of screenshotPaths) {
292
+ const screenshotFile = zip.file(screenshotPath);
293
+ if (!screenshotFile)
294
+ continue;
295
+ try {
296
+ const originalBuffer = await screenshotFile.async('nodebuffer');
297
+ const redactedBuffer = await (0, screenshot_js_1.redactScreenshot)(originalBuffer, elementBoxes);
298
+ if (redactedBuffer !== originalBuffer) {
299
+ zip.file(screenshotPath, redactedBuffer);
300
+ modified = true;
301
+ logger_js_1.logger.verbose(`Screenshot redacted: ${screenshotPath}`);
302
+ }
303
+ }
304
+ catch (err) {
305
+ logger_js_1.logger.warn(`Failed to redact screenshot ${screenshotPath} in ${inputPath}: ` +
306
+ `${err instanceof Error ? err.message : String(err)}`);
307
+ }
308
+ }
309
+ }
229
310
  if (!modified && !config.remove?.dryRun) {
230
311
  logger_js_1.logger.info(`No changes made to ${inputPath}`);
231
312
  }
@@ -1 +1 @@
1
- {"version":3,"file":"trace-file.js","sourceRoot":"","sources":["../../src/processors/trace-file.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trace-file.js","sourceRoot":"","sources":["../../src/processors/trace-file.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"detector.d.ts","sourceRoot":"","sources":["../../src/remove/detector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAa,MAAM,oBAAoB,CAAC;AAoGxF;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,UAAU,EAAE,EACpB,KAAK,EAAE,UAAU,EAAE,GAClB,UAAU,CA8CZ"}
1
+ {"version":3,"file":"detector.d.ts","sourceRoot":"","sources":["../../src/remove/detector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAa,MAAM,oBAAoB,CAAC;AAoGxF;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,UAAU,EAAE,EACpB,KAAK,EAAE,UAAU,EAAE,GAClB,UAAU,CAgDZ"}
@@ -108,6 +108,7 @@ function findConsecutiveRuns(events, rule) {
108
108
  function findStepsToRemove(events, rules) {
109
109
  const indices = new Set();
110
110
  const matches = [];
111
+ const safetyGuardWarnings = [];
111
112
  for (const rule of rules) {
112
113
  if (rule.minConsecutiveOccurrences !== undefined) {
113
114
  // Use consecutive-run logic
@@ -126,9 +127,11 @@ function findStepsToRemove(events, rules) {
126
127
  }
127
128
  else {
128
129
  // Threshold NOT met — warn and skip this entire run
129
- logger_js_1.logger.warn(`Rule "${rule.label}" matched ${run.length} consecutive occurrences ` +
130
+ const warningMsg = `Rule "${rule.label}" matched ${run.length} consecutive occurrences ` +
130
131
  `but minConsecutiveOccurrences is ${rule.minConsecutiveOccurrences}. ` +
131
- `Skipping removal. Review your rule.`);
132
+ `Skipping removal. Review your rule.`;
133
+ logger_js_1.logger.warn(warningMsg);
134
+ safetyGuardWarnings.push(warningMsg);
132
135
  }
133
136
  }
134
137
  }
@@ -147,6 +150,6 @@ function findStepsToRemove(events, rules) {
147
150
  }
148
151
  }
149
152
  }
150
- return { indices, matches };
153
+ return { indices, matches, safetyGuardWarnings };
151
154
  }
152
155
  //# sourceMappingURL=detector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"detector.js","sourceRoot":"","sources":["../../src/remove/detector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"detector.js","sourceRoot":"","sources":["../../src/remove/detector.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,33 @@
1
1
  import type { TraceEvent, RemovalSet } from '../config/types.js';
2
2
  /**
3
- * Removes the matched steps and all their descendants from the events array.
3
+ * Removes steps from the events array according to the configured orphan strategy.
4
4
  *
5
+ * ### `'remove-children'` (default)
6
+ * Removes every matched step **and all of its descendants**.
5
7
  * Algorithm:
6
8
  * 1. Expands the removal set to include all descendant events (via {@link collectChildIndices}).
7
9
  * 2. Sorts the combined indices in **descending** order so earlier indices remain
8
10
  * stable as elements are spliced out.
9
11
  * 3. Splices each index from a shallow copy of the events array.
10
12
  *
11
- * The input array is **never mutated** — a new array is returned.
13
+ * ### `'keep-shell'`
14
+ * Keeps each matched step as a hollow, child-free container and removes **only its
15
+ * descendants**. This is useful when you want the step to remain visible in the
16
+ * trace timeline (e.g. to preserve overall duration) but need to strip its
17
+ * sub-steps that may contain sensitive details.
12
18
  *
13
- * @param events - The ordered list of trace events.
14
- * @param removalSet - The set of matched step indices (from {@link findStepsToRemove}).
15
- * @returns A new array with all matched steps (and their descendants) removed.
19
+ * Algorithm:
20
+ * 1. For each matched index, collects all descendant indices via {@link collectChildIndices}.
21
+ * 2. The matched indices themselves are **not** added to the removal set.
22
+ * 3. Splices descendant indices in descending order from a shallow copy.
23
+ *
24
+ * The input array is **never mutated** — a new array is always returned.
25
+ *
26
+ * @param events - The ordered list of trace events.
27
+ * @param removalSet - The set of matched step indices (from {@link findStepsToRemove}).
28
+ * @param orphanStrategy - How to handle descendants of removed steps.
29
+ * `'remove-children'` *(default)* or `'keep-shell'`.
30
+ * @returns A new array with the appropriate steps removed.
16
31
  */
17
- export declare function removeSteps(events: TraceEvent[], removalSet: RemovalSet): TraceEvent[];
32
+ export declare function removeSteps(events: TraceEvent[], removalSet: RemovalSet, orphanStrategy?: 'remove-children' | 'keep-shell'): TraceEvent[];
18
33
  //# sourceMappingURL=remover.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"remover.d.ts","sourceRoot":"","sources":["../../src/remove/remover.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAyCjE;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,UAAU,EAAE,EACpB,UAAU,EAAE,UAAU,GACrB,UAAU,EAAE,CAwBd"}
1
+ {"version":3,"file":"remover.d.ts","sourceRoot":"","sources":["../../src/remove/remover.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAyCjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,UAAU,EAAE,EACpB,UAAU,EAAE,UAAU,EACtB,cAAc,GAAE,iBAAiB,GAAG,YAAgC,GACnE,UAAU,EAAE,CAmCd"}
@@ -35,31 +35,58 @@ function collectChildIndices(events, parentIndex, allEvents) {
35
35
  return children;
36
36
  }
37
37
  /**
38
- * Removes the matched steps and all their descendants from the events array.
38
+ * Removes steps from the events array according to the configured orphan strategy.
39
39
  *
40
+ * ### `'remove-children'` (default)
41
+ * Removes every matched step **and all of its descendants**.
40
42
  * Algorithm:
41
43
  * 1. Expands the removal set to include all descendant events (via {@link collectChildIndices}).
42
44
  * 2. Sorts the combined indices in **descending** order so earlier indices remain
43
45
  * stable as elements are spliced out.
44
46
  * 3. Splices each index from a shallow copy of the events array.
45
47
  *
46
- * The input array is **never mutated** — a new array is returned.
48
+ * ### `'keep-shell'`
49
+ * Keeps each matched step as a hollow, child-free container and removes **only its
50
+ * descendants**. This is useful when you want the step to remain visible in the
51
+ * trace timeline (e.g. to preserve overall duration) but need to strip its
52
+ * sub-steps that may contain sensitive details.
47
53
  *
48
- * @param events - The ordered list of trace events.
49
- * @param removalSet - The set of matched step indices (from {@link findStepsToRemove}).
50
- * @returns A new array with all matched steps (and their descendants) removed.
54
+ * Algorithm:
55
+ * 1. For each matched index, collects all descendant indices via {@link collectChildIndices}.
56
+ * 2. The matched indices themselves are **not** added to the removal set.
57
+ * 3. Splices descendant indices in descending order from a shallow copy.
58
+ *
59
+ * The input array is **never mutated** — a new array is always returned.
60
+ *
61
+ * @param events - The ordered list of trace events.
62
+ * @param removalSet - The set of matched step indices (from {@link findStepsToRemove}).
63
+ * @param orphanStrategy - How to handle descendants of removed steps.
64
+ * `'remove-children'` *(default)* or `'keep-shell'`.
65
+ * @returns A new array with the appropriate steps removed.
51
66
  */
52
- function removeSteps(events, removalSet) {
53
- // Expand removal set to include child indices
54
- const expandedIndices = new Set(removalSet.indices);
55
- for (const idx of removalSet.indices) {
56
- const children = collectChildIndices(events, idx, events);
57
- for (const childIdx of children) {
58
- expandedIndices.add(childIdx);
67
+ function removeSteps(events, removalSet, orphanStrategy = 'remove-children') {
68
+ const indicesToRemove = new Set();
69
+ if (orphanStrategy === 'keep-shell') {
70
+ // Keep matched events themselves; remove only their descendants.
71
+ for (const idx of removalSet.indices) {
72
+ const children = collectChildIndices(events, idx, events);
73
+ for (const childIdx of children) {
74
+ indicesToRemove.add(childIdx);
75
+ }
76
+ }
77
+ }
78
+ else {
79
+ // remove-children (default): remove matched events AND all descendants.
80
+ for (const idx of removalSet.indices) {
81
+ indicesToRemove.add(idx);
82
+ const children = collectChildIndices(events, idx, events);
83
+ for (const childIdx of children) {
84
+ indicesToRemove.add(childIdx);
85
+ }
59
86
  }
60
87
  }
61
88
  // Sort indices in reverse order for safe removal
62
- const sortedIndices = Array.from(expandedIndices).sort((a, b) => b - a);
89
+ const sortedIndices = Array.from(indicesToRemove).sort((a, b) => b - a);
63
90
  // Create a new array (immutability)
64
91
  const result = [...events];
65
92
  for (const idx of sortedIndices) {
@@ -1 +1 @@
1
- {"version":3,"file":"remover.js","sourceRoot":"","sources":["../../src/remove/remover.ts"],"names":[],"mappings":";;AAwDA,kCA2BC;AAjFD;;;;;;;;;;;GAWG;AACH,SAAS,mBAAmB,CAC1B,MAAoB,EACpB,WAAmB,EACnB,SAAuB;IAEvB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,MAAM,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;IAC3C,IAAI,CAAC,WAAW;QAAE,OAAO,QAAQ,CAAC;IAElC,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC;IACxC,IAAI,CAAC,YAAY;QAAE,OAAO,QAAQ,CAAC;IAEnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,KAAK,IAAI,KAAK,CAAC,QAAQ,KAAK,YAAY,IAAI,CAAC,KAAK,WAAW,EAAE,CAAC;YAClE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAChB,2CAA2C;YAC3C,MAAM,aAAa,GAAG,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;YAChE,KAAK,MAAM,EAAE,IAAI,aAAa,EAAE,CAAC;gBAC/B,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAgB,WAAW,CACzB,MAAoB,EACpB,UAAsB;IAEtB,8CAA8C;IAC9C,MAAM,eAAe,GAAG,IAAI,GAAG,CAAS,UAAU,CAAC,OAAO,CAAC,CAAC;IAE5D,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,mBAAmB,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAC1D,KAAK,MAAM,QAAQ,IAAI,QAAQ,EAAE,CAAC;YAChC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,iDAAiD;IACjD,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAExE,oCAAoC;IACpC,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;IAE3B,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;QAChC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YACpC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"remover.js","sourceRoot":"","sources":["../../src/remove/remover.ts"],"names":[],"mappings":";;AAuEA,kCAuCC;AA5GD;;;;;;;;;;;GAWG;AACH,SAAS,mBAAmB,CAC1B,MAAoB,EACpB,WAAmB,EACnB,SAAuB;IAEvB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,MAAM,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;IAC3C,IAAI,CAAC,WAAW;QAAE,OAAO,QAAQ,CAAC;IAElC,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC;IACxC,IAAI,CAAC,YAAY;QAAE,OAAO,QAAQ,CAAC;IAEnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,KAAK,IAAI,KAAK,CAAC,QAAQ,KAAK,YAAY,IAAI,CAAC,KAAK,WAAW,EAAE,CAAC;YAClE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAChB,2CAA2C;YAC3C,MAAM,aAAa,GAAG,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;YAChE,KAAK,MAAM,EAAE,IAAI,aAAa,EAAE,CAAC;gBAC/B,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,SAAgB,WAAW,CACzB,MAAoB,EACpB,UAAsB,EACtB,iBAAmD,iBAAiB;IAEpE,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;IAE1C,IAAI,cAAc,KAAK,YAAY,EAAE,CAAC;QACpC,iEAAiE;QACjE,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;YACrC,MAAM,QAAQ,GAAG,mBAAmB,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;YAC1D,KAAK,MAAM,QAAQ,IAAI,QAAQ,EAAE,CAAC;gBAChC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,wEAAwE;QACxE,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;YACrC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACzB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;YAC1D,KAAK,MAAM,QAAQ,IAAI,QAAQ,EAAE,CAAC;gBAChC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;IACH,CAAC;IAED,iDAAiD;IACjD,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAExE,oCAAoC;IACpC,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;IAE3B,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;QAChC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YACpC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -138,20 +138,56 @@ function findFollowingEvent(events, time) {
138
138
  return best;
139
139
  }
140
140
  /**
141
- * Placeholder for suite-level timestamp recomputation.
141
+ * Recomputes parent-event time spans so they correctly enclose all remaining
142
+ * children after step removal.
142
143
  *
143
- * Suite-level `startTime` / `endTime` aggregation is handled by the Playwright
144
- * report viewer from the leaf event timestamps; callers may perform their own
145
- * recomputation after this function returns.
144
+ * Algorithm:
145
+ * 1. Build a `callId event` index for O(1) parent lookup.
146
+ * 2. Iterate in passes: for each event that has a `parentId`, extend the
147
+ * parent's `startTime` / `endTime` to cover the child's range.
148
+ * 3. Repeat until no further changes occur (handles arbitrary nesting depth),
149
+ * capped at {@link MAX_RECOMPUTE_PASSES} to guard against cycles.
146
150
  *
147
- * @param events - The events array (returned as-is for empty arrays).
148
- * @returns The same events array.
151
+ * The function mutates the events **in-place** callers must pass a cloned
152
+ * array if immutability is required (the non-`gap` path in {@link repairTimestamps}
153
+ * always does this via `events.map(e => ({ ...e }))`).
154
+ *
155
+ * @param events - The events array to update (may be mutated).
156
+ * @returns The same array with corrected parent time spans.
149
157
  */
150
158
  function recomputeSuiteTimes(events) {
151
- // Nothing to recompute if empty
152
159
  if (events.length === 0)
153
160
  return events;
154
- // Suite-level times will be recomputed by callers if needed
161
+ // Index callId event for fast parent lookup
162
+ const byCallId = new Map();
163
+ for (const event of events) {
164
+ if (event.callId) {
165
+ byCallId.set(event.callId, event);
166
+ }
167
+ }
168
+ // Iteratively bubble child time ranges up to parents
169
+ const MAX_RECOMPUTE_PASSES = 16;
170
+ let changed = true;
171
+ let passes = 0;
172
+ while (changed && passes < MAX_RECOMPUTE_PASSES) {
173
+ changed = false;
174
+ passes++;
175
+ for (const event of events) {
176
+ if (!event.parentId)
177
+ continue;
178
+ const parent = byCallId.get(event.parentId);
179
+ if (!parent)
180
+ continue;
181
+ if (event.startTime < parent.startTime) {
182
+ parent.startTime = event.startTime;
183
+ changed = true;
184
+ }
185
+ if (event.endTime > parent.endTime) {
186
+ parent.endTime = event.endTime;
187
+ changed = true;
188
+ }
189
+ }
190
+ }
155
191
  return events;
156
192
  }
157
193
  //# sourceMappingURL=timestamp-repair.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"timestamp-repair.js","sourceRoot":"","sources":["../../src/remove/timestamp-repair.ts"],"names":[],"mappings":";;AA4BA,4CAmCC;AA9DD,4CAAsC;AAEtC;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,SAAgB,gBAAgB,CAC9B,MAAoB,EACpB,aAA2B,EAC3B,QAA2B;IAE3B,IAAI,QAAQ,KAAK,KAAK,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrD,0CAA0C;QAC1C,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAED,oCAAoC;IACpC,MAAM,MAAM,GAAiB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAE3D,+DAA+D;IAC/D,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC;QACrD,IAAI,QAAQ,IAAI,CAAC;YAAE,SAAS;QAE5B,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACrD,CAAC;IAED,qDAAqD;IACrD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;YACpC,kBAAM,CAAC,IAAI,CACT,sDAAsD;gBACtD,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,SAAS,KAAK;gBACjD,cAAc,KAAK,CAAC,SAAS,gBAAgB,KAAK,CAAC,OAAO,KAAK;gBAC/D,8BAA8B,CAC/B,CAAC;YACF,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC;QAClC,CAAC;IACH,CAAC;IAED,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,aAAa,CACpB,MAAoB,EACpB,OAAmB,EACnB,QAAgB,EAChB,QAA2B;IAE3B,IAAI,QAAQ,KAAK,kBAAkB,EAAE,CAAC;QACpC,wEAAwE;QACxE,MAAM,IAAI,GAAG,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAC3D,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,6BAA6B;YAC7B,MAAM,IAAI,GAAG,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YACzD,IAAI,IAAI,EAAE,CAAC;gBACT,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC;YAC7B,CAAC;QACH,CAAC;IACH,CAAC;SAAM,IAAI,QAAQ,KAAK,kBAAkB,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACzD,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,6BAA6B;YAC7B,MAAM,IAAI,GAAG,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;YAC3D,IAAI,IAAI,EAAE,CAAC;gBACT,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,kBAAkB,CACzB,MAAoB,EACpB,IAAY;IAEZ,IAAI,IAA4B,CAAC;IACjC,IAAI,QAAQ,GAAG,QAAQ,CAAC;IAExB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC;QAClC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,GAAG,QAAQ,EAAE,CAAC;YACjC,QAAQ,GAAG,IAAI,CAAC;YAChB,IAAI,GAAG,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,kBAAkB,CACzB,MAAoB,EACpB,IAAY;IAEZ,IAAI,IAA4B,CAAC;IACjC,IAAI,QAAQ,GAAG,QAAQ,CAAC;IAExB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;QACpC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,GAAG,QAAQ,EAAE,CAAC;YACjC,QAAQ,GAAG,IAAI,CAAC;YAChB,IAAI,GAAG,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,mBAAmB,CAAC,MAAoB;IAC/C,gCAAgC;IAChC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IAEvC,4DAA4D;IAC5D,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"timestamp-repair.js","sourceRoot":"","sources":["../../src/remove/timestamp-repair.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pw-sanitizer",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Post-process Playwright HTML reports and trace files to redact secrets and remove noisy steps",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",