doc-detective 4.29.1 → 4.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/bin/doc-detective-lsp.js +6 -0
  2. package/dist/cli.js +2 -0
  3. package/dist/cli.js.map +1 -1
  4. package/dist/common/src/validate.d.ts +16 -1
  5. package/dist/common/src/validate.d.ts.map +1 -1
  6. package/dist/common/src/validate.js +18 -1
  7. package/dist/common/src/validate.js.map +1 -1
  8. package/dist/core/tests/saveScreenshot.d.ts.map +1 -1
  9. package/dist/core/tests/saveScreenshot.js +101 -59
  10. package/dist/core/tests/saveScreenshot.js.map +1 -1
  11. package/dist/index.cjs +55 -36
  12. package/dist/lsp/command.d.ts +12 -0
  13. package/dist/lsp/command.d.ts.map +1 -0
  14. package/dist/lsp/command.js +24 -0
  15. package/dist/lsp/command.js.map +1 -0
  16. package/dist/lsp/completion.d.ts +27 -0
  17. package/dist/lsp/completion.d.ts.map +1 -0
  18. package/dist/lsp/completion.js +114 -0
  19. package/dist/lsp/completion.js.map +1 -0
  20. package/dist/lsp/diagnostics.d.ts +21 -0
  21. package/dist/lsp/diagnostics.d.ts.map +1 -0
  22. package/dist/lsp/diagnostics.js +137 -0
  23. package/dist/lsp/diagnostics.js.map +1 -0
  24. package/dist/lsp/gate.d.ts +30 -0
  25. package/dist/lsp/gate.d.ts.map +1 -0
  26. package/dist/lsp/gate.js +80 -0
  27. package/dist/lsp/gate.js.map +1 -0
  28. package/dist/lsp/hover.d.ts +9 -0
  29. package/dist/lsp/hover.d.ts.map +1 -0
  30. package/dist/lsp/hover.js +56 -0
  31. package/dist/lsp/hover.js.map +1 -0
  32. package/dist/lsp/inline.d.ts +25 -0
  33. package/dist/lsp/inline.d.ts.map +1 -0
  34. package/dist/lsp/inline.js +208 -0
  35. package/dist/lsp/inline.js.map +1 -0
  36. package/dist/lsp/json/positions.d.ts +51 -0
  37. package/dist/lsp/json/positions.d.ts.map +1 -0
  38. package/dist/lsp/json/positions.js +101 -0
  39. package/dist/lsp/json/positions.js.map +1 -0
  40. package/dist/lsp/messages.d.ts +27 -0
  41. package/dist/lsp/messages.d.ts.map +1 -0
  42. package/dist/lsp/messages.js +33 -0
  43. package/dist/lsp/messages.js.map +1 -0
  44. package/dist/lsp/model.d.ts +27 -0
  45. package/dist/lsp/model.d.ts.map +1 -0
  46. package/dist/lsp/model.js +49 -0
  47. package/dist/lsp/model.js.map +1 -0
  48. package/dist/lsp/registry.d.ts +61 -0
  49. package/dist/lsp/registry.d.ts.map +1 -0
  50. package/dist/lsp/registry.js +124 -0
  51. package/dist/lsp/registry.js.map +1 -0
  52. package/dist/lsp/server.d.ts +40 -0
  53. package/dist/lsp/server.d.ts.map +1 -0
  54. package/dist/lsp/server.js +64 -0
  55. package/dist/lsp/server.js.map +1 -0
  56. package/dist/lsp/yaml/positions.d.ts +32 -0
  57. package/dist/lsp/yaml/positions.d.ts.map +1 -0
  58. package/dist/lsp/yaml/positions.js +92 -0
  59. package/dist/lsp/yaml/positions.js.map +1 -0
  60. package/package.json +6 -2
  61. package/scripts/postinstall.js +144 -1
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env node
2
+ // Bare entry point for editor LSP configs (VS Code, Neovim, Zed, …) that want a
3
+ // single command instead of `doc-detective lsp --stdio`. Starts the same stdio
4
+ // language server the `doc-detective lsp` subcommand does.
5
+ import { startServer } from "../dist/lsp/server.js";
6
+ startServer();
package/dist/cli.js CHANGED
@@ -3,6 +3,7 @@ import { buildYargs, setConfig, outputResults, setMeta, getVersionData, log, log
3
3
  import { installAgentsCommand } from "./agents/command.js";
4
4
  import { maybeShowHint } from "./hints/index.js";
5
5
  import { installCommand } from "./runtime/installCommand.js";
6
+ import { lspCommand } from "./lsp/command.js";
6
7
  import { printDebug, defaultDebugDir } from "./debug/index.js";
7
8
  import { debugCommand } from "./debug/command.js";
8
9
  import { argv as processArgv } from "node:process";
@@ -43,6 +44,7 @@ async function main(argv) {
43
44
  // to the same implementation as `doc-detective install agents`.
44
45
  .command({ ...installAgentsCommand, describe: false })
45
46
  .command(installCommand)
47
+ .command(lspCommand)
46
48
  .command(debugCommand)
47
49
  .strict()
48
50
  .demandCommand(0)
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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"}
@@ -1,12 +1,27 @@
1
+ import { ErrorObject } from "ajv";
1
2
  export interface ValidateOptions {
2
3
  schemaKey: string;
3
4
  object: any;
4
5
  addDefaults?: boolean;
6
+ /**
7
+ * When true, `ValidateResult.errorObjects` is populated with the raw AJV
8
+ * `ErrorObject`s from the target-schema validation (empty array when valid or
9
+ * when the schema key is unknown). Off by default so the hot runner path pays
10
+ * nothing; the LSP opts in to map `instancePath`/`keyword`/`params` to source
11
+ * ranges. The string `errors` field is always produced regardless.
12
+ */
13
+ structuredErrors?: boolean;
5
14
  }
6
15
  export interface ValidateResult {
7
16
  valid: boolean;
8
17
  errors: string;
9
18
  object: any;
19
+ /**
20
+ * Raw AJV errors from the target-schema validation. Present only when
21
+ * `structuredErrors: true` was passed. Snapshotted (shallow-cloned) so the
22
+ * shared AJV instance's error array can't mutate them out from under a caller.
23
+ */
24
+ errorObjects?: ErrorObject[];
10
25
  }
11
26
  export interface TransformOptions {
12
27
  currentSchema: string;
@@ -26,7 +41,7 @@ export interface TransformOptions {
26
41
  *
27
42
  * @throws {Error} If {@link schemaKey} or {@link object} is missing.
28
43
  */
29
- export declare function validate({ schemaKey, object, addDefaults, }: ValidateOptions): ValidateResult;
44
+ export declare function validate({ schemaKey, object, addDefaults, structuredErrors, }: ValidateOptions): ValidateResult;
30
45
  /**
31
46
  * Transform an object from one schema key to another and return a validated instance of the target schema.
32
47
  *
@@ -1 +1 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/common/src/validate.ts"],"names":[],"mappings":"AAkIA,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,GAAG,CAAC;IACZ,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,GAAG,CAAC;CACb;AAED,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,GAAG,CAAC;CACb;AAYD;;;;;;;;;;;;GAYG;AACH,wBAAgB,QAAQ,CAAC,EACvB,SAAS,EACT,MAAM,EACN,WAAkB,GACnB,EAAE,eAAe,GAAG,cAAc,CA6HlC;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,aAAkB,EAClB,YAAiB,EACjB,MAAW,GACZ,EAAE,gBAAgB,GAAG,GAAG,CA4YxB"}
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/common/src/validate.ts"],"names":[],"mappings":"AACA,OAAY,EAAoB,WAAW,EAAE,MAAM,KAAK,CAAC;AAiIzD,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,GAAG,CAAC;IACZ,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,GAAG,CAAC;IACZ;;;;OAIG;IACH,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;CAC9B;AAWD,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,GAAG,CAAC;CACb;AAYD;;;;;;;;;;;;GAYG;AACH,wBAAgB,QAAQ,CAAC,EACvB,SAAS,EACT,MAAM,EACN,WAAkB,EAClB,gBAAwB,GACzB,EAAE,eAAe,GAAG,cAAc,CAsIlC;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,aAAkB,EAClB,YAAiB,EACjB,MAAW,GACZ,EAAE,gBAAgB,GAAG,GAAG,CA4YxB"}
@@ -117,6 +117,14 @@ const compatibleSchemas = {
117
117
  ],
118
118
  test_v3: ["test_v2"],
119
119
  };
120
+ /**
121
+ * Shallow-clone AJV errors so a later validation on the shared instance can't
122
+ * mutate the snapshot handed back to the caller. Only ever called inside an
123
+ * `if (check.errors)` guard, so the input is always a non-null error array.
124
+ */
125
+ function snapshotErrors(errors) {
126
+ return errors.map((error) => ({ ...error }));
127
+ }
120
128
  /**
121
129
  * Escapes special characters in a string for safe use in a regular expression pattern.
122
130
  *
@@ -139,7 +147,7 @@ function escapeRegExp(string) {
139
147
  *
140
148
  * @throws {Error} If {@link schemaKey} or {@link object} is missing.
141
149
  */
142
- export function validate({ schemaKey, object, addDefaults = true, }) {
150
+ export function validate({ schemaKey, object, addDefaults = true, structuredErrors = false, }) {
143
151
  if (!schemaKey) {
144
152
  throw new Error("Schema key is required.");
145
153
  }
@@ -151,6 +159,9 @@ export function validate({ schemaKey, object, addDefaults = true, }) {
151
159
  errors: "",
152
160
  object: object,
153
161
  };
162
+ if (structuredErrors) {
163
+ result.errorObjects = [];
164
+ }
154
165
  let validationObject;
155
166
  let check = ajv.getSchema(schemaKey);
156
167
  if (!check) {
@@ -176,6 +187,9 @@ export function validate({ schemaKey, object, addDefaults = true, }) {
176
187
  result.errors = targetErrors
177
188
  .map((error) => `${error.instancePath} ${error.message} (${JSON.stringify(error.params)})`)
178
189
  .join(", ");
190
+ if (structuredErrors) {
191
+ result.errorObjects = snapshotErrors(targetErrors);
192
+ }
179
193
  result.object = object;
180
194
  result.valid = false;
181
195
  return result;
@@ -209,6 +223,9 @@ export function validate({ schemaKey, object, addDefaults = true, }) {
209
223
  result.errors = targetErrors
210
224
  .map((error) => `${error.instancePath} ${error.message} (${JSON.stringify(error.params)})`)
211
225
  .join(", ");
226
+ if (structuredErrors) {
227
+ result.errorObjects = snapshotErrors(targetErrors);
228
+ }
212
229
  result.object = object;
213
230
  result.valid = false;
214
231
  return result;
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/common/src/validate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/common/src/validate.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"saveScreenshot.d.ts","sourceRoot":"","sources":["../../../src/core/tests/saveScreenshot.ts"],"names":[],"mappings":"AA8DA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,iBAAiB,EAAE,CAAC;AAE5D,KAAK,IAAI,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAOpE,iBAAS,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAiBnE;AAED,iBAAS,iBAAiB,CACxB,CAAC,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EACpC,CAAC,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACnC,OAAO,CAIT;AAED,iBAAe,cAAc,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE;IAAE,MAAM,EAAE,GAAG,CAAC;IAAC,IAAI,EAAE,GAAG,CAAC;IAAC,MAAM,EAAE,GAAG,CAAC;IAAC,UAAU,CAAC,EAAE,GAAG,CAAA;CAAE,gBA0tB5H"}
1
+ {"version":3,"file":"saveScreenshot.d.ts","sourceRoot":"","sources":["../../../src/core/tests/saveScreenshot.ts"],"names":[],"mappings":"AA8DA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,iBAAiB,EAAE,CAAC;AAE5D,KAAK,IAAI,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAOpE,iBAAS,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAiBnE;AAED,iBAAS,iBAAiB,CACxB,CAAC,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EACpC,CAAC,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACnC,OAAO,CAIT;AAED,iBAAe,cAAc,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE;IAAE,MAAM,EAAE,GAAG,CAAC;IAAC,IAAI,EAAE,GAAG,CAAC;IAAC,MAAM,EAAE,GAAG,CAAC;IAAC,UAAU,CAAC,EAAE,GAAG,CAAA;CAAE,gBA8vB5H"}
@@ -334,9 +334,10 @@ async function saveScreenshot({ config, step, driver, appSession }) {
334
334
  return result;
335
335
  }
336
336
  else {
337
- // Set temp file path
337
+ // Compare against (and possibly overwrite) the existing file in place.
338
+ // No temp capture file is created — the capture stays in memory until
339
+ // the single final write, so `filePath` remains the real target.
338
340
  existFilePath = filePath;
339
- filePath = path.join(dir, `${step.stepId}_${Date.now()}.png`);
340
341
  }
341
342
  }
342
343
  }
@@ -446,6 +447,18 @@ async function saveScreenshot({ config, step, driver, appSession }) {
446
447
  // which isn't in a native window's pixels (and `driver` may not even exist
447
448
  // in an app-only context).
448
449
  const recordingActive = !isAppCapture && isRecordingActive(driver);
450
+ // Capture straight into an in-memory PNG buffer instead of round-tripping
451
+ // through disk. Browser captures use WebDriver's `takeScreenshot()` (base64
452
+ // PNG) — the exact command `saveScreenshot(path)` runs internally before it
453
+ // writes the file, so the decoded bytes are IDENTICAL to what the old
454
+ // `saveScreenshot(filePath)` would have persisted (byte-equivalence for the
455
+ // no-crop path). App captures keep the file-based window-strategy capture
456
+ // (its driver API is file-based here): we stage it in a short-lived scratch
457
+ // file, read it back, and delete it so the rest of the pipeline is uniformly
458
+ // buffer-based. Nothing is written to `filePath`/`existFilePath` yet — the
459
+ // final PNG lands on disk exactly once, at the end.
460
+ let captureBuffer;
461
+ let appScratchPath;
449
462
  try {
450
463
  if (recordingActive) {
451
464
  await driver.execute(() => {
@@ -454,27 +467,37 @@ async function saveScreenshot({ config, step, driver, appSession }) {
454
467
  pointer.style.display = "none";
455
468
  });
456
469
  }
457
- // Save screenshot: app captures go through the window strategy (window
458
- // element on macOS, current-root driver capture on Windows); browser
459
- // captures use the session driver.
470
+ // Capture: app captures go through the window strategy (window element on
471
+ // macOS, current-root driver capture on Windows) into a scratch file we
472
+ // immediately read into the buffer flow; browser captures use the session
473
+ // driver's in-memory `takeScreenshot()`.
460
474
  if (isAppCapture) {
461
- await appWindowScreenshot(appEntry, appWindowTarget, filePath);
475
+ appScratchPath = path.join(dir, `.appcapture_${step.stepId || "screenshot"}_${Date.now()}.png`);
476
+ await appWindowScreenshot(appEntry, appWindowTarget, appScratchPath);
477
+ captureBuffer = fs.readFileSync(appScratchPath);
462
478
  }
463
479
  else {
464
- await captureDriver.saveScreenshot(filePath);
480
+ const base64 = await captureDriver.takeScreenshot();
481
+ captureBuffer = Buffer.from(base64, "base64");
465
482
  }
466
483
  }
467
484
  catch (error) {
468
- // Couldn't save screenshot
485
+ // Couldn't capture screenshot
469
486
  result.status = "FAIL";
470
487
  result.description = `Couldn't save screenshot. ${error}`;
471
- // Clean up temp file if it exists
472
- if (existFilePath && filePath !== existFilePath && fs.existsSync(filePath)) {
473
- fs.unlinkSync(filePath);
474
- }
475
488
  return result;
476
489
  }
477
490
  finally {
491
+ // Best-effort scratch cleanup (app captures only); a throw here must not
492
+ // mask the result.
493
+ if (appScratchPath && fs.existsSync(appScratchPath)) {
494
+ try {
495
+ fs.unlinkSync(appScratchPath);
496
+ }
497
+ catch {
498
+ /* scratch cleanup is non-essential */
499
+ }
500
+ }
478
501
  if (recordingActive) {
479
502
  // Best-effort: a throw here (e.g. an unstable session) must not override a
480
503
  // successful screenshot result or mask the caught error above — exceptions
@@ -491,7 +514,10 @@ async function saveScreenshot({ config, step, driver, appSession }) {
491
514
  }
492
515
  }
493
516
  }
494
- // If crop is set, found bounds of element and crop image
517
+ // If crop is set, compute element bounds and crop the captured buffer in
518
+ // memory (no temp file, no re-read, no rename). `finalBuffer` carries the
519
+ // bytes we ultimately write.
520
+ let finalBuffer = captureBuffer;
495
521
  if (step.screenshot.crop) {
496
522
  let padding = { top: 0, right: 0, bottom: 0, left: 0 };
497
523
  if (typeof step.screenshot.crop.padding === "number") {
@@ -531,48 +557,70 @@ async function saveScreenshot({ config, step, driver, appSession }) {
531
557
  rect.y = Math.round(rect.y);
532
558
  rect.width = Math.round(rect.width);
533
559
  rect.height = Math.round(rect.height);
534
- // Clamp values to stay within image bounds
535
- const imgMeta = await sharp(filePath).metadata();
560
+ // Clamp values to stay within image bounds (metadata read from the buffer)
561
+ const imgMeta = await sharp(captureBuffer).metadata();
536
562
  const clamped = clampCropRect(rect, imgMeta.width, imgMeta.height);
537
563
  rect.x = clamped.x;
538
564
  rect.y = clamped.y;
539
565
  rect.width = clamped.width;
540
566
  rect.height = clamped.height;
541
567
  log(config, "debug", { padded_rect: rect });
542
- // Create a new PNG object with the dimensions of the cropped area
543
- const croppedPath = path.join(dir, `cropped_${step.stepId || Date.now()}.png`);
568
+ // Extract the cropped region straight to a PNG buffer. This matches the
569
+ // prior sharp(...).extract(...).toFile("….png") encoding (PNG output),
570
+ // just without the temp file + rename.
544
571
  try {
545
- await sharp(filePath)
572
+ finalBuffer = await sharp(captureBuffer)
546
573
  .extract({
547
574
  left: rect.x,
548
575
  top: rect.y,
549
576
  width: rect.width,
550
577
  height: rect.height,
551
578
  })
552
- .toFile(croppedPath);
553
- // Replace the original file with the cropped file
554
- fs.renameSync(croppedPath, filePath);
579
+ .png()
580
+ .toBuffer();
555
581
  }
556
582
  catch (error) {
557
583
  result.status = "FAIL";
558
584
  result.description = `Couldn't crop image. ${error}`;
559
- if (existFilePath && filePath !== existFilePath && fs.existsSync(filePath)) {
560
- fs.unlinkSync(filePath);
561
- }
562
585
  return result;
563
586
  }
564
587
  }
565
- // If file already exists
566
- // If overwrite is true, replace old file with new file
567
- // If overwrite is aboveVariation, compare files and replace if variance is greater than threshold
588
+ // Write the final (captured or cropped) PNG buffer to disk exactly once. On
589
+ // failure, stamp a step-level FAIL (mirrors the prior capture-write failure)
590
+ // and signal the caller to return.
591
+ const writeFinalPng = (destination) => {
592
+ try {
593
+ fs.writeFileSync(destination, finalBuffer);
594
+ return true;
595
+ }
596
+ catch (error) {
597
+ result.status = "FAIL";
598
+ result.description = `Couldn't save screenshot. ${error}`;
599
+ return false;
600
+ }
601
+ };
602
+ // URL references always keep the local capture in the run folder for
603
+ // inspection — even on a comparison FAIL — matching the prior behavior where
604
+ // the capture was written before comparison and never deleted on the URL
605
+ // path. Persist it now, before the read-only comparison against the fetched
606
+ // reference. This is the single write of the final PNG on the URL path.
607
+ if (isUrlPath) {
608
+ if (!writeFinalPng(filePath))
609
+ return result;
610
+ }
611
+ // If a reference already exists (local target or fetched URL temp):
612
+ // - overwrite "true": replace it with the new capture.
613
+ // - overwrite "aboveVariation": compare, replace only if variance exceeds
614
+ // the threshold.
568
615
  if (existFilePath) {
569
616
  // URL paths never take the "overwrite=true" fast path: existFilePath is a
570
617
  // temp download, not a user-owned reference, and the local capture is
571
618
  // kept in the run folder for inspection.
572
619
  if (step.screenshot.overwrite == "true" && !isUrlPath) {
573
- // Replace old file with new file
620
+ // Replace old file with the new capture (single write to the target).
621
+ if (!writeFinalPng(existFilePath))
622
+ return result;
574
623
  result.description += ` Overwrote existing file.`;
575
- fs.renameSync(filePath, existFilePath);
576
624
  result.outputs.screenshotPath = existFilePath;
577
625
  result.outputs.changed = true;
578
626
  // Preserve sourceIntegration metadata
@@ -590,19 +638,17 @@ async function saveScreenshot({ config, step, driver, appSession }) {
590
638
  let img1;
591
639
  let img2;
592
640
  try {
641
+ // Decode the existing reference from disk and the freshly captured
642
+ // (optionally cropped) buffer directly — no read-back of a file we
643
+ // just wrote.
593
644
  img1 = PNG.sync.read(fs.readFileSync(existFilePath));
594
- img2 = PNG.sync.read(fs.readFileSync(filePath));
645
+ img2 = PNG.sync.read(finalBuffer);
595
646
  }
596
647
  catch (error) {
597
648
  result.status = "FAIL";
598
649
  result.description = isUrlPath
599
650
  ? `Couldn't decode PNG for comparison. The URL reference (${redactedUrl}) may not be a valid PNG. ${error}`
600
651
  : `Couldn't decode PNG for comparison. ${error}`;
601
- if (!isUrlPath &&
602
- filePath !== existFilePath &&
603
- fs.existsSync(filePath)) {
604
- fs.unlinkSync(filePath);
605
- }
606
652
  return result;
607
653
  }
608
654
  // (3) Aspect ratios match is a VERIFICATION ASSERTION. Compute the boolean
@@ -618,14 +664,12 @@ async function saveScreenshot({ config, step, driver, appSession }) {
618
664
  });
619
665
  if (!aspectRatioMatch) {
620
666
  result.description = `Couldn't compare images. Images have different aspect ratios.`;
621
- if (!isUrlPath &&
622
- filePath !== existFilePath &&
623
- fs.existsSync(filePath)) {
624
- fs.unlinkSync(filePath);
625
- }
626
667
  return await evaluateApplicable();
627
668
  }
628
- // Resize images to same size
669
+ // Resize images to a common size. Stay in sharp's raw pipeline (RGBA in →
670
+ // RGBA out) instead of round-tripping PNG→buffer→PNG: PNG is lossless, so
671
+ // the resized pixels are identical to the prior encode/decode path, and
672
+ // pixelmatch consumes raw RGBA directly.
629
673
  if (img1.width !== img2.width || img1.height !== img2.height) {
630
674
  const width = Math.min(img1.width, img2.width);
631
675
  const height = Math.min(img1.height, img2.height);
@@ -633,19 +677,16 @@ async function saveScreenshot({ config, step, driver, appSession }) {
633
677
  raw: { width: img1.width, height: img1.height, channels: 4 },
634
678
  })
635
679
  .resize(width, height)
636
- .png()
680
+ .raw()
637
681
  .toBuffer();
638
682
  const img2ResizedBuffer = await sharp(img2.data, {
639
683
  raw: { width: img2.width, height: img2.height, channels: 4 },
640
684
  })
641
685
  .resize(width, height)
642
- .png()
686
+ .raw()
643
687
  .toBuffer();
644
- // Convert resized buffers to PNG objects
645
- const resizedImg1 = PNG.sync.read(img1ResizedBuffer);
646
- const resizedImg2 = PNG.sync.read(img2ResizedBuffer);
647
- img1.data = resizedImg1.data;
648
- img2.data = resizedImg2.data;
688
+ img1.data = img1ResizedBuffer;
689
+ img2.data = img2ResizedBuffer;
649
690
  img1.width = width;
650
691
  img1.height = height;
651
692
  }
@@ -660,9 +701,6 @@ async function saveScreenshot({ config, step, driver, appSession }) {
660
701
  // guard at saveScreenshot entry.
661
702
  result.status = "FAIL";
662
703
  result.description = `Couldn't load screenshot comparison dependency (pixelmatch). ${error?.message ?? error}`;
663
- if (!isUrlPath && filePath !== existFilePath && fs.existsSync(filePath)) {
664
- fs.unlinkSync(filePath);
665
- }
666
704
  return result;
667
705
  }
668
706
  const numDiffPixels = pixelmatchFn(img1.data, img2.data, null, width, height, { threshold: 0.0005 });
@@ -676,7 +714,7 @@ async function saveScreenshot({ config, step, driver, appSession }) {
676
714
  // WARNING severity. Expose the computed fractional diff as
677
715
  // `outputs.variation` and push the spec; the shared engine records WARNING
678
716
  // (not FAIL) when it evaluates false, matching the prior `WARNING` status.
679
- // The file-write/rename side effects below are preserved exactly.
717
+ // The file-write side effects below are preserved exactly.
680
718
  result.outputs.variation = fractionalDiff;
681
719
  specs.push({
682
720
  statement: `$$outputs.variation <= ${step.screenshot.maxVariation}`,
@@ -684,8 +722,9 @@ async function saveScreenshot({ config, step, driver, appSession }) {
684
722
  });
685
723
  if (fractionalDiff > step.screenshot.maxVariation) {
686
724
  if (step.screenshot.overwrite == "aboveVariation" && !isUrlPath) {
687
- // Replace old file with new file
688
- fs.renameSync(filePath, existFilePath);
725
+ // Replace old file with the new capture (single write to the target).
726
+ if (!writeFinalPng(existFilePath))
727
+ return result;
689
728
  }
690
729
  result.description += ` The difference between the existing screenshot and new screenshot (${fractionalDiff.toFixed(2)}) is greater than the max accepted variation (${step.screenshot.maxVariation}).`;
691
730
  if (isUrlPath) {
@@ -694,7 +733,7 @@ async function saveScreenshot({ config, step, driver, appSession }) {
694
733
  // like collectChangedFiles()/Heretto don't treat this as something
695
734
  // to push, and omit sourceIntegration for the same reason. The
696
735
  // drift signal lives in `result.status === "WARNING"` + the local
697
- // capture path + referenceUrl.
736
+ // capture path (already written above) + referenceUrl.
698
737
  result.outputs.screenshotPath = filePath;
699
738
  result.outputs.referenceUrl = redactedUrl;
700
739
  }
@@ -716,19 +755,22 @@ async function saveScreenshot({ config, step, driver, appSession }) {
716
755
  result.outputs.referenceUrl = redactedUrl;
717
756
  }
718
757
  else {
758
+ // Within variation: keep the existing reference unchanged. The new
759
+ // capture stayed in memory, so there is no temp file to delete.
719
760
  result.outputs.screenshotPath = existFilePath;
720
761
  if (step.screenshot.sourceIntegration) {
721
762
  result.outputs.sourceIntegration = step.screenshot.sourceIntegration;
722
763
  }
723
- if (step.screenshot.overwrite != "true") {
724
- fs.unlinkSync(filePath);
725
- }
726
764
  }
727
765
  }
728
766
  }
729
767
  }
730
- // Set output path for new screenshots
768
+ // New screenshot with no reference kept: write the final PNG once and record
769
+ // it. (URL paths already wrote and set screenshotPath above, so they never
770
+ // reach this branch.)
731
771
  if (!result.outputs.screenshotPath) {
772
+ if (!writeFinalPng(filePath))
773
+ return result;
732
774
  result.outputs.screenshotPath = filePath;
733
775
  // Mark new screenshots as changed so they can be uploaded
734
776
  result.outputs.changed = true;