@testivai/witness 2.4.0 → 2.5.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 (60) hide show
  1. package/dist/baselines/store.d.ts +17 -0
  2. package/dist/baselines/store.d.ts.map +1 -1
  3. package/dist/baselines/store.js +30 -1
  4. package/dist/baselines/store.js.map +1 -1
  5. package/dist/bin/testivai.js +2 -0
  6. package/dist/bin/testivai.js.map +1 -1
  7. package/dist/capture/environment.d.ts +217 -0
  8. package/dist/capture/environment.d.ts.map +1 -0
  9. package/dist/capture/environment.js +399 -0
  10. package/dist/capture/environment.js.map +1 -0
  11. package/dist/commands/env.d.ts +37 -0
  12. package/dist/commands/env.d.ts.map +1 -0
  13. package/dist/commands/env.js +113 -0
  14. package/dist/commands/env.js.map +1 -0
  15. package/dist/config/local-config.d.ts +14 -0
  16. package/dist/config/local-config.d.ts.map +1 -1
  17. package/dist/config/local-config.js +1 -0
  18. package/dist/config/local-config.js.map +1 -1
  19. package/dist/config/validate-config.d.ts.map +1 -1
  20. package/dist/config/validate-config.js +12 -0
  21. package/dist/config/validate-config.js.map +1 -1
  22. package/dist/index.d.ts +3 -1
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +20 -1
  25. package/dist/index.js.map +1 -1
  26. package/dist/report/anchor.d.ts +18 -0
  27. package/dist/report/anchor.d.ts.map +1 -0
  28. package/dist/report/anchor.js +51 -0
  29. package/dist/report/anchor.js.map +1 -0
  30. package/dist/report/compare.d.ts +7 -0
  31. package/dist/report/compare.d.ts.map +1 -1
  32. package/dist/report/compare.js +22 -2
  33. package/dist/report/compare.js.map +1 -1
  34. package/dist/report/environment.d.ts +101 -0
  35. package/dist/report/environment.d.ts.map +1 -0
  36. package/dist/report/environment.js +331 -0
  37. package/dist/report/environment.js.map +1 -0
  38. package/dist/report/generator.d.ts +7 -2
  39. package/dist/report/generator.d.ts.map +1 -1
  40. package/dist/report/generator.js +33 -6
  41. package/dist/report/generator.js.map +1 -1
  42. package/dist/report/index.d.ts +5 -2
  43. package/dist/report/index.d.ts.map +1 -1
  44. package/dist/report/index.js +11 -1
  45. package/dist/report/index.js.map +1 -1
  46. package/dist/report/results.d.ts +33 -0
  47. package/dist/report/results.d.ts.map +1 -1
  48. package/dist/report/template.d.ts +28 -1
  49. package/dist/report/template.d.ts.map +1 -1
  50. package/dist/report/template.js +127 -15
  51. package/dist/report/template.js.map +1 -1
  52. package/dist/report/validate.d.ts +50 -0
  53. package/dist/report/validate.d.ts.map +1 -0
  54. package/dist/report/validate.js +343 -0
  55. package/dist/report/validate.js.map +1 -0
  56. package/dist/standalone/run.d.ts +12 -0
  57. package/dist/standalone/run.d.ts.map +1 -1
  58. package/dist/standalone/run.js +37 -1
  59. package/dist/standalone/run.js.map +1 -1
  60. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"validate-config.d.ts","sourceRoot":"","sources":["../../src/config/validate-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAmCH,mDAAmD;AACnD,MAAM,WAAW,gBAAgB;IAC/B,gFAAgF;IAChF,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB;;;;OAIG;IACH,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAQD,sFAAsF;AACtF,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAexD;AAoBD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,GAAG,gBAAgB,CAqCrE"}
1
+ {"version":3,"file":"validate-config.d.ts","sourceRoot":"","sources":["../../src/config/validate-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AA2CH,mDAAmD;AACnD,MAAM,WAAW,gBAAgB;IAC/B,gFAAgF;IAChF,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB;;;;OAIG;IACH,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAQD,sFAAsF;AACtF,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAexD;AAoBD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,GAAG,gBAAgB,CA8CrE"}
@@ -14,6 +14,7 @@
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.levenshtein = levenshtein;
16
16
  exports.validateLocalConfig = validateLocalConfig;
17
+ const environment_1 = require("../capture/environment");
17
18
  /** Expected JSON type for every known LocalConfig field. */
18
19
  const KNOWN_FIELDS = {
19
20
  threshold: 'number',
@@ -37,6 +38,11 @@ const KNOWN_FIELDS = {
37
38
  maxPages: 'number',
38
39
  viewport: 'object',
39
40
  mcpApprovalPrompt: 'boolean',
41
+ environmentPolicy: 'string',
42
+ };
43
+ /** String fields that only take one of a fixed set of values; the first is the default. */
44
+ const ENUM_FIELDS = {
45
+ environmentPolicy: environment_1.ENVIRONMENT_POLICIES,
40
46
  };
41
47
  /**
42
48
  * Keys earlier versions understood. They get a targeted retirement notice
@@ -115,6 +121,12 @@ function validateLocalConfig(parsed) {
115
121
  : `unknown config key "${key}" — it is being ignored. Known keys: ${Object.keys(KNOWN_FIELDS).join(', ')}.`);
116
122
  continue;
117
123
  }
124
+ const allowed = ENUM_FIELDS[key];
125
+ if (allowed && !allowed.includes(value)) {
126
+ warnings.push(`config key "${key}" should be one of ${allowed.map((v) => `"${v}"`).join(', ')}, got ${JSON.stringify(value)} — using the default ("${allowed[0]}") instead.`);
127
+ invalidKeys.push(key);
128
+ continue;
129
+ }
118
130
  const actual = jsonType(value);
119
131
  if (actual !== expected) {
120
132
  warnings.push(`config key "${key}" should be a ${expected}, got ${actual} (${JSON.stringify(value)}) — using the default instead.`);
@@ -1 +1 @@
1
- {"version":3,"file":"validate-config.js","sourceRoot":"","sources":["../../src/config/validate-config.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;AAsDH,kCAeC;AA0BD,kDAqCC;AAlID,4DAA4D;AAC5D,MAAM,YAAY,GAAyE;IACzF,SAAS,EAAE,QAAQ;IACnB,QAAQ,EAAE,SAAS;IACnB,UAAU,EAAE,SAAS;IACrB,aAAa,EAAE,SAAS;IACxB,cAAc,EAAE,QAAQ;IACxB,kBAAkB,EAAE,OAAO;IAC3B,kBAAkB,EAAE,QAAQ;IAC5B,YAAY,EAAE,QAAQ;IACtB,SAAS,EAAE,QAAQ;IACnB,eAAe,EAAE,OAAO;IACxB,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,QAAQ;IACrB,cAAc,EAAE,QAAQ;IACxB,aAAa,EAAE,QAAQ;IACvB,aAAa,EAAE,SAAS;IACxB,mBAAmB,EAAE,QAAQ;IAC7B,SAAS,EAAE,SAAS;IACpB,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,QAAQ;IAClB,QAAQ,EAAE,QAAQ;IAClB,iBAAiB,EAAE,SAAS;CAC7B,CAAC;AAEF;;;GAGG;AACH,MAAM,cAAc,GAA2B;IAC7C,IAAI,EAAE,+GAA+G;CACtH,CAAC;AAcF,SAAS,QAAQ,CAAC,KAAc;IAC9B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC;IACzC,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IAClC,OAAO,OAAO,KAAK,CAAC;AACtB,CAAC;AAED,sFAAsF;AACtF,SAAgB,WAAW,CAAC,CAAS,EAAE,CAAS;IAC9C,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;IACnB,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;IACnB,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IACtB,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IACtB,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;QACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3C,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QACvE,CAAC;QACD,IAAI,GAAG,IAAI,CAAC;IACd,CAAC;IACD,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CAAC,GAAW;IAClC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,IAAI,IAAI,GAAkB,IAAI,CAAC;IAC/B,IAAI,YAAY,GAAG,MAAM,GAAG,CAAC,CAAC;IAC9B,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;QAClD,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;QACzE,IAAI,QAAQ,GAAG,YAAY,EAAE,CAAC;YAC5B,YAAY,GAAG,QAAQ,CAAC;YACxB,IAAI,GAAG,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,YAAY,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9C,CAAC;AAED;;;;;GAKG;AACH,SAAgB,mBAAmB,CAAC,MAAe;IACjD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,WAAW,GAAa,EAAE,CAAC;IAEjC,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3E,QAAQ,CAAC,IAAI,CAAC,sDAAsD,QAAQ,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAC1G,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;IACnC,CAAC;IAED,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAiC,CAAC,EAAE,CAAC;QAC7E,MAAM,UAAU,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,UAAU,EAAE,CAAC;YACf,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC1B,SAAS;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;YACxC,QAAQ,CAAC,IAAI,CACX,UAAU;gBACR,CAAC,CAAC,uBAAuB,GAAG,qBAAqB,UAAU,yBAAyB;gBACpF,CAAC,CAAC,uBAAuB,GAAG,wCAAwC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAC9G,CAAC;YACF,SAAS;QACX,CAAC;QAED,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,QAAQ,CAAC,IAAI,CACX,eAAe,GAAG,iBAAiB,QAAQ,SAAS,MAAM,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,gCAAgC,CACrH,CAAC;YACF,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;AACnC,CAAC"}
1
+ {"version":3,"file":"validate-config.js","sourceRoot":"","sources":["../../src/config/validate-config.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -18,13 +18,15 @@ export { parseShardEnv, resolveCaptureOnly, writeShardManifest, SHARD_MANIFEST }
18
18
  export type { ShardInfo, ShardManifest } from './capture/shard';
19
19
  export { settleProbe, buildSettleProbeExpression, SETTLE_STOP_EXPRESSION, SETTLE_STATE_KEY, DEFAULT_QUIET_MS, DEFAULT_SETTLE_TIMEOUT_MS, } from './capture/settle';
20
20
  export type { SettleState } from './capture/settle';
21
+ export { applyEnvironmentPolicyToName, browserFromCapabilities, browserFromUserAgent, buildCaptureEnvironment, CAPTURE_METHODS, collectHostEnvironment, detectCi, distroFromOsRelease, ENVIRONMENT_POLICIES, installedPackageVersion, parseEnvironmentVariant, parseRenderProbe, readEnvironment, RENDER_PROBE_EXPRESSION, webDriverEnvironment, } from './capture/environment';
22
+ export type { CaptureEnvironment, CaptureEnvironmentParts, EnvironmentPolicy, HostEnvironment, HostSources, RenderEnvironment, WebDriverEnvironmentInput, } from './capture/environment';
21
23
  export { FRESH_FRAME_EXPRESSION, FRESH_FRAME_TIMEOUT_MS, MAX_STABLE_CAPTURES, settleFreshFrame, captureUntilStable, } from './capture/stable-capture';
22
24
  export type { CaptureLog, CaptureUntilStableOptions } from './capture/stable-capture';
23
25
  export { BaselineStore } from './baselines';
24
26
  export type { BaselineMetadata } from './baselines';
25
27
  export { loadLocalConfig, createDefaultConfig, localConfigExists, getConfigPath, getDefaultConfig, } from './config';
26
28
  export type { LocalConfig } from './config';
27
- export { generateReport, compareAll, renderHtml } from './report';
29
+ export { generateReport, compareAll, renderHtml, snapshotAnchorId } from './report';
28
30
  export type { GenerateReportOptions, CompareOptions, ReportData, ReportSummary, SnapshotResult, SnapshotStatus } from './report';
29
31
  export { initCommand } from './commands/init';
30
32
  export { runCommand } from './commands/run';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,cAAc,SAAS,CAAC;AAGxB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAG9E,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACnI,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACnG,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAG7D,cAAc,QAAQ,CAAC;AAIvB,OAAO,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC3G,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAG9D,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACxG,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhE,OAAO,EACL,WAAW,EACX,0BAA0B,EAC1B,sBAAsB,EACtB,gBAAgB,EAChB,gBAAgB,EAChB,yBAAyB,GAC1B,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAIpD,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,UAAU,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAEtF,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGpD,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,gBAAgB,GACjB,MAAM,UAAU,CAAC;AAClB,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAG5C,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAClE,YAAY,EAAE,qBAAqB,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAGjI,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAIpD,eAAO,MAAM,OAAO,KAAqC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,cAAc,SAAS,CAAC;AAGxB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAG9E,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACnI,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACnG,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAG7D,cAAc,QAAQ,CAAC;AAIvB,OAAO,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC3G,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAG9D,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACxG,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhE,OAAO,EACL,WAAW,EACX,0BAA0B,EAC1B,sBAAsB,EACtB,gBAAgB,EAChB,gBAAgB,EAChB,yBAAyB,GAC1B,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAGpD,OAAO,EACL,4BAA4B,EAC5B,uBAAuB,EACvB,oBAAoB,EACpB,uBAAuB,EACvB,eAAe,EACf,sBAAsB,EACtB,QAAQ,EACR,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,EACvB,gBAAgB,EAChB,eAAe,EACf,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EACjB,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,UAAU,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAEtF,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGpD,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,gBAAgB,GACjB,MAAM,UAAU,CAAC;AAClB,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAG5C,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACpF,YAAY,EAAE,qBAAqB,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAGjI,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAIpD,eAAO,MAAM,OAAO,KAAqC,CAAC"}
package/dist/index.js CHANGED
@@ -18,7 +18,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
18
18
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
19
19
  };
20
20
  Object.defineProperty(exports, "__esModule", { value: true });
21
- exports.VERSION = exports.approveCommand = exports.witnessCommand = exports.runCommand = exports.initCommand = exports.renderHtml = exports.compareAll = exports.generateReport = exports.getDefaultConfig = exports.getConfigPath = exports.localConfigExists = exports.createDefaultConfig = exports.loadLocalConfig = exports.BaselineStore = exports.captureUntilStable = exports.settleFreshFrame = exports.MAX_STABLE_CAPTURES = exports.FRESH_FRAME_TIMEOUT_MS = exports.FRESH_FRAME_EXPRESSION = exports.DEFAULT_SETTLE_TIMEOUT_MS = exports.DEFAULT_QUIET_MS = exports.SETTLE_STATE_KEY = exports.SETTLE_STOP_EXPRESSION = exports.buildSettleProbeExpression = exports.settleProbe = exports.SHARD_MANIFEST = exports.writeShardManifest = exports.resolveCaptureOnly = exports.parseShardEnv = exports.DEFAULT_MAX_ELEMENTS = exports.buildElementMapExpression = exports.collectElementMap = exports.FrameworkDetector = exports.commandExists = exports.setupSignalHandlers = exports.spawnProcess = exports.ProcessManager = exports.isSafeFilename = exports.sanitizeTestName = exports.extractNameFromUrl = exports.generateUniqueFilename = exports.toSafeFilename = exports.createLogger = exports.logger = exports.BrowserDiscoveryError = exports.BrowserDiscovery = exports.BrowserBinding = exports.BrowserCapture = exports.BrowserClient = void 0;
21
+ exports.captureUntilStable = exports.settleFreshFrame = exports.MAX_STABLE_CAPTURES = exports.FRESH_FRAME_TIMEOUT_MS = exports.FRESH_FRAME_EXPRESSION = exports.webDriverEnvironment = exports.RENDER_PROBE_EXPRESSION = exports.readEnvironment = exports.parseRenderProbe = exports.parseEnvironmentVariant = exports.installedPackageVersion = exports.ENVIRONMENT_POLICIES = exports.distroFromOsRelease = exports.detectCi = exports.collectHostEnvironment = exports.CAPTURE_METHODS = exports.buildCaptureEnvironment = exports.browserFromUserAgent = exports.browserFromCapabilities = exports.applyEnvironmentPolicyToName = exports.DEFAULT_SETTLE_TIMEOUT_MS = exports.DEFAULT_QUIET_MS = exports.SETTLE_STATE_KEY = exports.SETTLE_STOP_EXPRESSION = exports.buildSettleProbeExpression = exports.settleProbe = exports.SHARD_MANIFEST = exports.writeShardManifest = exports.resolveCaptureOnly = exports.parseShardEnv = exports.DEFAULT_MAX_ELEMENTS = exports.buildElementMapExpression = exports.collectElementMap = exports.FrameworkDetector = exports.commandExists = exports.setupSignalHandlers = exports.spawnProcess = exports.ProcessManager = exports.isSafeFilename = exports.sanitizeTestName = exports.extractNameFromUrl = exports.generateUniqueFilename = exports.toSafeFilename = exports.createLogger = exports.logger = exports.BrowserDiscoveryError = exports.BrowserDiscovery = exports.BrowserBinding = exports.BrowserCapture = exports.BrowserClient = void 0;
22
+ exports.VERSION = exports.approveCommand = exports.witnessCommand = exports.runCommand = exports.initCommand = exports.snapshotAnchorId = exports.renderHtml = exports.compareAll = exports.generateReport = exports.getDefaultConfig = exports.getConfigPath = exports.localConfigExists = exports.createDefaultConfig = exports.loadLocalConfig = exports.BaselineStore = void 0;
22
23
  // Export types
23
24
  __exportStar(require("./types"), exports);
24
25
  // Export browser modules
@@ -70,6 +71,23 @@ Object.defineProperty(exports, "SETTLE_STOP_EXPRESSION", { enumerable: true, get
70
71
  Object.defineProperty(exports, "SETTLE_STATE_KEY", { enumerable: true, get: function () { return settle_1.SETTLE_STATE_KEY; } });
71
72
  Object.defineProperty(exports, "DEFAULT_QUIET_MS", { enumerable: true, get: function () { return settle_1.DEFAULT_QUIET_MS; } });
72
73
  Object.defineProperty(exports, "DEFAULT_SETTLE_TIMEOUT_MS", { enumerable: true, get: function () { return settle_1.DEFAULT_SETTLE_TIMEOUT_MS; } });
74
+ // Capture provenance — the environment block every adapter records.
75
+ var environment_1 = require("./capture/environment");
76
+ Object.defineProperty(exports, "applyEnvironmentPolicyToName", { enumerable: true, get: function () { return environment_1.applyEnvironmentPolicyToName; } });
77
+ Object.defineProperty(exports, "browserFromCapabilities", { enumerable: true, get: function () { return environment_1.browserFromCapabilities; } });
78
+ Object.defineProperty(exports, "browserFromUserAgent", { enumerable: true, get: function () { return environment_1.browserFromUserAgent; } });
79
+ Object.defineProperty(exports, "buildCaptureEnvironment", { enumerable: true, get: function () { return environment_1.buildCaptureEnvironment; } });
80
+ Object.defineProperty(exports, "CAPTURE_METHODS", { enumerable: true, get: function () { return environment_1.CAPTURE_METHODS; } });
81
+ Object.defineProperty(exports, "collectHostEnvironment", { enumerable: true, get: function () { return environment_1.collectHostEnvironment; } });
82
+ Object.defineProperty(exports, "detectCi", { enumerable: true, get: function () { return environment_1.detectCi; } });
83
+ Object.defineProperty(exports, "distroFromOsRelease", { enumerable: true, get: function () { return environment_1.distroFromOsRelease; } });
84
+ Object.defineProperty(exports, "ENVIRONMENT_POLICIES", { enumerable: true, get: function () { return environment_1.ENVIRONMENT_POLICIES; } });
85
+ Object.defineProperty(exports, "installedPackageVersion", { enumerable: true, get: function () { return environment_1.installedPackageVersion; } });
86
+ Object.defineProperty(exports, "parseEnvironmentVariant", { enumerable: true, get: function () { return environment_1.parseEnvironmentVariant; } });
87
+ Object.defineProperty(exports, "parseRenderProbe", { enumerable: true, get: function () { return environment_1.parseRenderProbe; } });
88
+ Object.defineProperty(exports, "readEnvironment", { enumerable: true, get: function () { return environment_1.readEnvironment; } });
89
+ Object.defineProperty(exports, "RENDER_PROBE_EXPRESSION", { enumerable: true, get: function () { return environment_1.RENDER_PROBE_EXPRESSION; } });
90
+ Object.defineProperty(exports, "webDriverEnvironment", { enumerable: true, get: function () { return environment_1.webDriverEnvironment; } });
73
91
  // Stable full-page capture (fresh frame + capture until two in a row match) —
74
92
  // shared by every adapter that captures through CDP captureBeyondViewport.
75
93
  var stable_capture_1 = require("./capture/stable-capture");
@@ -92,6 +110,7 @@ var report_1 = require("./report");
92
110
  Object.defineProperty(exports, "generateReport", { enumerable: true, get: function () { return report_1.generateReport; } });
93
111
  Object.defineProperty(exports, "compareAll", { enumerable: true, get: function () { return report_1.compareAll; } });
94
112
  Object.defineProperty(exports, "renderHtml", { enumerable: true, get: function () { return report_1.renderHtml; } });
113
+ Object.defineProperty(exports, "snapshotAnchorId", { enumerable: true, get: function () { return report_1.snapshotAnchorId; } });
95
114
  // Export commands (for programmatic use)
96
115
  var init_1 = require("./commands/init");
97
116
  Object.defineProperty(exports, "initCommand", { enumerable: true, get: function () { return init_1.initCommand; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;AAEH,eAAe;AACf,0CAAwB;AAExB,yBAAyB;AACzB,2CAAiD;AAAxC,uGAAA,aAAa,OAAA;AACtB,6CAAmD;AAA1C,yGAAA,cAAc,OAAA;AACvB,6CAAmD;AAA1C,yGAAA,cAAc,OAAA;AACvB,iDAA8E;AAArE,6GAAA,gBAAgB,OAAA;AAAE,kHAAA,qBAAqB,OAAA;AAEhD,mBAAmB;AACnB,yCAAsD;AAA7C,gGAAA,MAAM,OAAA;AAAE,sGAAA,YAAY,OAAA;AAC7B,mDAAmI;AAA1H,6GAAA,cAAc,OAAA;AAAE,qHAAA,sBAAsB,OAAA;AAAE,iHAAA,kBAAkB,OAAA;AAAE,+GAAA,gBAAgB,OAAA;AAAE,6GAAA,cAAc,OAAA;AACrG,2CAAmG;AAA1F,yGAAA,cAAc,OAAA;AAAE,uGAAA,YAAY,OAAA;AAAE,8GAAA,mBAAmB,OAAA;AAAE,wGAAA,aAAa,OAAA;AACzE,6DAA6D;AAApD,qHAAA,iBAAiB,OAAA;AAE1B,qBAAqB;AACrB,yCAAuB;AAEvB,mBAAmB;AACnB,yEAAyE;AACzE,qDAA2G;AAAlG,gHAAA,iBAAiB,OAAA;AAAE,wHAAA,yBAAyB,OAAA;AAAE,mHAAA,oBAAoB,OAAA;AAG3E,oEAAoE;AACpE,yCAAwG;AAA/F,sGAAA,aAAa,OAAA;AAAE,2GAAA,kBAAkB,OAAA;AAAE,2GAAA,kBAAkB,OAAA;AAAE,uGAAA,cAAc,OAAA;AAG9E,gDAAgD;AAChD,2CAO0B;AANxB,qGAAA,WAAW,OAAA;AACX,oHAAA,0BAA0B,OAAA;AAC1B,gHAAA,sBAAsB,OAAA;AACtB,0GAAA,gBAAgB,OAAA;AAChB,0GAAA,gBAAgB,OAAA;AAChB,mHAAA,yBAAyB,OAAA;AAI3B,8EAA8E;AAC9E,2EAA2E;AAC3E,2DAMkC;AALhC,wHAAA,sBAAsB,OAAA;AACtB,wHAAA,sBAAsB,OAAA;AACtB,qHAAA,mBAAmB,OAAA;AACnB,kHAAA,gBAAgB,OAAA;AAChB,oHAAA,kBAAkB,OAAA;AAIpB,yCAA4C;AAAnC,0GAAA,aAAa,OAAA;AAGtB,sBAAsB;AACtB,mCAMkB;AALhB,yGAAA,eAAe,OAAA;AACf,6GAAA,mBAAmB,OAAA;AACnB,2GAAA,iBAAiB,OAAA;AACjB,uGAAA,aAAa,OAAA;AACb,0GAAA,gBAAgB,OAAA;AAIlB,0BAA0B;AAC1B,mCAAkE;AAAzD,wGAAA,cAAc,OAAA;AAAE,oGAAA,UAAU,OAAA;AAAE,oGAAA,UAAU,OAAA;AAG/C,yCAAyC;AACzC,wCAA8C;AAArC,mGAAA,WAAW,OAAA;AACpB,sCAA4C;AAAnC,iGAAA,UAAU,OAAA;AACnB,8CAAoD;AAA3C,yGAAA,cAAc,OAAA;AACvB,8CAAoD;AAA3C,yGAAA,cAAc,OAAA;AAEvB,UAAU;AACV,8DAA8D;AACjD,QAAA,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Link targets for snapshots in the HTML report.
3
+ *
4
+ * Its own module (no template code) so the GitHub Action can bundle it for
5
+ * the PR comment's per-snapshot links without the whole report template.
6
+ */
7
+ /**
8
+ * The id of a snapshot's card in the report, for links straight to it
9
+ * (`index.html#snap-home`). Exported so the PR comment builds the same id.
10
+ *
11
+ * A plain name (letters, digits, `_`, `-`) is kept as is. Any other name is
12
+ * reduced to those characters and suffixed with a hash of the full name, so
13
+ * names that differ only in other characters (`home page`, `home/page`)
14
+ * still get different ids. Always matches `snap-[A-Za-z0-9_-]+`, at most 74
15
+ * characters.
16
+ */
17
+ export declare function snapshotAnchorId(name: string): string;
18
+ //# sourceMappingURL=anchor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anchor.d.ts","sourceRoot":"","sources":["../../src/report/anchor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIrD"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ /**
3
+ * Link targets for snapshots in the HTML report.
4
+ *
5
+ * Its own module (no template code) so the GitHub Action can bundle it for
6
+ * the PR comment's per-snapshot links without the whole report template.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.snapshotAnchorId = snapshotAnchorId;
10
+ /** A name that is already a readable, safe id (and short enough to keep). */
11
+ const PLAIN_SNAPSHOT_NAME = /^[A-Za-z0-9_-]{1,60}$/;
12
+ /**
13
+ * The id of a snapshot's card in the report, for links straight to it
14
+ * (`index.html#snap-home`). Exported so the PR comment builds the same id.
15
+ *
16
+ * A plain name (letters, digits, `_`, `-`) is kept as is. Any other name is
17
+ * reduced to those characters and suffixed with a hash of the full name, so
18
+ * names that differ only in other characters (`home page`, `home/page`)
19
+ * still get different ids. Always matches `snap-[A-Za-z0-9_-]+`, at most 74
20
+ * characters.
21
+ */
22
+ function snapshotAnchorId(name) {
23
+ if (PLAIN_SNAPSHOT_NAME.test(name))
24
+ return `snap-${name}`;
25
+ const readable = trimDashes(name.replace(/[^A-Za-z0-9_-]+/g, '-')).slice(0, 60);
26
+ return `snap-${readable ? `${readable}-` : ''}${fnv1a(name)}`;
27
+ }
28
+ /**
29
+ * Drop leading and trailing dashes. A loop, not /^-+|-+$/: that regex is
30
+ * quadratic on a run of dashes between two other characters, and a snapshot
31
+ * name can come from a results.json someone else wrote.
32
+ */
33
+ function trimDashes(value) {
34
+ let start = 0;
35
+ let end = value.length;
36
+ while (start < end && value[start] === '-')
37
+ start++;
38
+ while (end > start && value[end - 1] === '-')
39
+ end--;
40
+ return value.slice(start, end);
41
+ }
42
+ /** 32-bit FNV-1a of a string's UTF-16 code units, as 8 hex digits. */
43
+ function fnv1a(value) {
44
+ let hash = 0x811c9dc5;
45
+ for (let i = 0; i < value.length; i++) {
46
+ hash ^= value.charCodeAt(i);
47
+ hash = Math.imul(hash, 0x01000193) >>> 0;
48
+ }
49
+ return hash.toString(16).padStart(8, '0');
50
+ }
51
+ //# sourceMappingURL=anchor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anchor.js","sourceRoot":"","sources":["../../src/report/anchor.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAeH,4CAIC;AAjBD,6EAA6E;AAC7E,MAAM,mBAAmB,GAAG,uBAAuB,CAAC;AAEpD;;;;;;;;;GASG;AACH,SAAgB,gBAAgB,CAAC,IAAY;IAC3C,IAAI,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,QAAQ,IAAI,EAAE,CAAC;IAC1D,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAChF,OAAO,QAAQ,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;AAChE,CAAC;AAED;;;;GAIG;AACH,SAAS,UAAU,CAAC,KAAa;IAC/B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC;IACvB,OAAO,KAAK,GAAG,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG;QAAE,KAAK,EAAE,CAAC;IACpD,OAAO,GAAG,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,GAAG;QAAE,GAAG,EAAE,CAAC;IACpD,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACjC,CAAC;AAED,sEAAsE;AACtE,SAAS,KAAK,CAAC,KAAa;IAC1B,IAAI,IAAI,GAAG,UAAU,CAAC;IACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,IAAI,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC5C,CAAC"}
@@ -6,6 +6,7 @@
6
6
  import type { SnapshotResult } from './results';
7
7
  import { type MaskSpec } from '../diff/mask';
8
8
  import type { RegionOptions } from '../diff/types';
9
+ import { type EnvironmentPolicy } from '../capture/environment';
9
10
  export interface CompareOptions {
10
11
  threshold?: number;
11
12
  projectRoot: string;
@@ -29,6 +30,12 @@ export interface CompareOptions {
29
30
  * that would otherwise poison the noise hint.
30
31
  */
31
32
  volatileAttributes?: string[];
33
+ /**
34
+ * config `environmentPolicy`. 'strict' makes a snapshot whose rendering
35
+ * environment changed since the baseline changed, whatever its pixels
36
+ * say; 'warn' (default) and 'separate' never change a status here.
37
+ */
38
+ environmentPolicy?: EnvironmentPolicy;
32
39
  }
33
40
  export interface PassCriteria {
34
41
  /** Pass when diff percentage (0-100) is at or below this. Default 0. */
@@ -1 +1 @@
1
- {"version":3,"file":"compare.d.ts","sourceRoot":"","sources":["../../src/report/compare.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,OAAO,KAAK,EAAqB,cAAc,EAAkB,MAAM,WAAW,CAAC;AAEnF,OAAO,EAEL,KAAK,QAAQ,EAEd,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AASnD,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B;;;OAGG;IACH,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;IAClB,yDAAyD;IACzD,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B;AAkCD,MAAM,WAAW,YAAY;IAC3B,wEAAwE;IACxE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0EAA0E;IAC1E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;;;OAQG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gEAAgE;IAChE,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,cAAc,EAAE,CAqHpE;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,GAAG,IAAI,CAoEtF"}
1
+ {"version":3,"file":"compare.d.ts","sourceRoot":"","sources":["../../src/report/compare.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,OAAO,KAAK,EAAqB,cAAc,EAAkB,MAAM,WAAW,CAAC;AAEnF,OAAO,EAEL,KAAK,QAAQ,EAEd,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,KAAK,iBAAiB,EAAmB,MAAM,wBAAwB,CAAC;AAUjF,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B;;;OAGG;IACH,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;IAClB,yDAAyD;IACzD,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC;AAkCD,MAAM,WAAW,YAAY;IAC3B,wEAAwE;IACxE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0EAA0E;IAC1E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;;;OAQG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gEAAgE;IAChE,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,cAAc,EAAE,CAsIpE;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,GAAG,IAAI,CAsEtF"}
@@ -48,6 +48,8 @@ const dom_diff_1 = require("../diff/dom-diff");
48
48
  const store_1 = require("../baselines/store");
49
49
  const diff_shape_1 = require("./diff-shape");
50
50
  const mask_1 = require("../diff/mask");
51
+ const environment_1 = require("../capture/environment");
52
+ const environment_2 = require("./environment");
51
53
  const attribution_1 = require("../diff/attribution");
52
54
  function readElementMap(projectRoot, kind, name) {
53
55
  const p = kind === 'baselines'
@@ -127,6 +129,22 @@ function compareAll(options) {
127
129
  if (baselineMeta) {
128
130
  result.baselineApprovedAt = baselineMeta.updatedAt ?? baselineMeta.createdAt;
129
131
  }
132
+ // Capture provenance: the environment each side was captured in. Only
133
+ // when both recorded one: an unrecorded side is unknown, not a change.
134
+ const baselineEnv = (0, environment_1.readEnvironment)(baselineMeta?.environment);
135
+ const candidateEnv = (0, environment_1.readEnvironment)(store.readTempMetadata(name)?.environment);
136
+ if (baselineEnv && candidateEnv) {
137
+ const { delta, renderingDelta } = (0, environment_2.diffEnvironments)(baselineEnv, candidateEnv);
138
+ result.environment = delta.length > 0
139
+ ? { delta, renderingDelta, baseline: baselineEnv, candidate: candidateEnv }
140
+ : { delta, renderingDelta };
141
+ // strict: the environment changed, so the baseline no longer gates
142
+ // this capture, even when the pixels happen to match.
143
+ if (options.environmentPolicy === 'strict' && renderingDelta.length > 0) {
144
+ result.status = 'changed';
145
+ result.environment.policy = 'strict';
146
+ }
147
+ }
130
148
  // DOM-level signal. Only meaningful when both sides captured DOM.
131
149
  // Computed whenever the two files differ at all (pixels, dimensions, or
132
150
  // a re-encode with identical pixels), so a passed snapshot whose DOM
@@ -187,8 +205,10 @@ function applyPassCriteria(result, criteria) {
187
205
  // zero-count path below used to pass a grown page whose candidate had been
188
206
  // truncated to the baseline's height. A DOM change on its own never
189
207
  // decides the status: visible output is the contract, so the pixels do,
190
- // and the report says when a passed snapshot's DOM differs.
191
- if (result.sizeMismatch)
208
+ // and the report says when a passed snapshot's DOM differs. Under
209
+ // environmentPolicy "strict", a changed rendering environment is never
210
+ // passed either.
211
+ if (result.sizeMismatch || result.environment?.policy === 'strict')
192
212
  return;
193
213
  // Nothing above the per-pixel threshold: visually identical. Guard on
194
214
  // totalPixels — the PNG-decode-failure path reports diffCount 0 with
@@ -1 +1 @@
1
- {"version":3,"file":"compare.js","sourceRoot":"","sources":["../../src/report/compare.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmHH,gCAqHC;AASD,8CAoEC;AAnTD,uCAAyB;AACzB,2CAA6B;AAC7B,iCAA4B;AAC5B,kCAA6C;AAC7C,+CAA2C;AAC3C,8CAAwE;AAExE,6CAAyC;AACzC,uCAIsB;AAEtB,qDAM6B;AAqC7B,SAAS,cAAc,CAAC,WAAmB,EAAE,IAA0B,EAAE,IAAY;IACnF,MAAM,CAAC,GACL,IAAI,KAAK,WAAW;QAClB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAA,2BAAmB,EAAC,WAAW,CAAC,EAAE,IAAI,EAAE,eAAe,CAAC;QACpE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC;IACzE,IAAI,CAAC;QACH,OAAO,IAAA,6BAAe,EAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC,CAAC,mDAAmD;IAChE,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,WAAmB,EAAE,IAAY;IAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC;IACpF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;QAC9D,OAAO,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAE,MAA8B,CAAC,CAAC,CAAC,EAAE,CAAC;IACrF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC,CAAC,wDAAwD;IACrE,CAAC;AACH,CAAC;AA+BD;;;;GAIG;AACH,SAAgB,UAAU,CAAC,OAAuB;IAChD,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,GAAG,GAAG,EAAE,YAAY,GAAG,EAAE,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAC5F,MAAM,KAAK,GAAG,IAAI,qBAAa,CAAC,WAAW,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;IACnC,MAAM,OAAO,GAAqB,EAAE,CAAC;IAErC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAEjD,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACrD,EAAE,CAAC,SAAS,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAErD,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,UAAU;YAAE,SAAS;QAE1B,gCAAgC;QAChC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC;QAChE,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAE1C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,gDAAgD;YAChD,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI;gBACJ,MAAM,EAAE,KAAK;gBACb,WAAW,EAAE,CAAC;gBACd,SAAS,EAAE,CAAC;gBACZ,WAAW,EAAE,CAAC;gBACd,WAAW,EAAE,UAAU,IAAI,cAAc;aAC1C,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,gBAAgB;QAChB,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAE,CAAC;QACzC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAC;QAClE,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;QAE/C,kCAAkC;QAClC,qEAAqE;QACrE,mEAAmE;QACnE,oEAAoE;QACpE,oEAAoE;QACpE,uDAAuD;QACvD,MAAM,WAAW,GAAG,oBAAoB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,cAAc,CAC3B,cAAc,EACd,UAAU,EACV,IAAI,EACJ,iBAAiB,EACjB,SAAS,EACT;YACE,WAAW,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE;YAC/B,SAAS,EAAE;gBACT,GAAG,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC5B,GAAG,CAAC,WAAW,CAAC,aAAa,IAAI,EAAE,CAAC;aACrC;YACD,aAAa,EAAE,WAAW,CAAC,SAAS;YACpC,aAAa,EAAE,WAAW;SAC3B,CACF,CAAC;QAEF,mEAAmE;QACnE,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,CAAC,kBAAkB,GAAG,YAAY,CAAC,SAAS,IAAI,YAAY,CAAC,SAAS,CAAC;QAC/E,CAAC;QAED,kEAAkE;QAClE,wEAAwE;QACxE,qEAAqE;QACrE,+DAA+D;QAC/D,6DAA6D;QAC7D,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACxC,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC7C,MAAM,SAAS,GAAG,gBAAgB,CAAC,WAAW,EAAE,YAAY,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;YAE1F,+DAA+D;YAC/D,0DAA0D;YAC1D,MAAM,gBAAgB,GAAG,cAAc,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;YACxE,MAAM,iBAAiB,GAAG,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YAEpE,mEAAmE;YACnE,iEAAiE;YACjE,+DAA+D;YAC/D,6DAA6D;YAC7D,iEAAiE;YACjE,uDAAuD;YACvD,kEAAkE;YAClE,gEAAgE;YAChE,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,eAAe,GAAG,IAAA,gCAAkB,EAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;gBAChF,SAAS,CAAC,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC;gBAC9C,IAAI,eAAe,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;oBAC1C,SAAS,CAAC,YAAY,GAAG;wBACvB,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,MAAM;wBACrC,QAAQ,EAAE,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;qBAC/C,CAAC;oBACF,SAAS,CAAC,SAAS,GAAG,KAAK,CAAC;gBAC9B,CAAC;gBACD,MAAM,CAAC,GAAG,GAAG,SAAS,CAAC;YACzB,CAAC;YACD,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChD,MAAM,CAAC,OAAO,GAAG,IAAA,8BAAgB,EAAC,MAAM,CAAC,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;YACzF,CAAC;YACD,MAAM,SAAS,GAAG,IAAA,6BAAe,EAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;YACvE,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;YAC/B,CAAC;YAED,iBAAiB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAC1C,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,iBAAiB,CAAC,MAAsB,EAAE,QAAsB;IAC9E,MAAM,EACJ,cAAc,GAAG,CAAC,EAClB,aAAa,EACb,aAAa,GAAG,KAAK,EACrB,mBAAmB,GAAG,CAAC,EACvB,cAAc,GAAG,CAAC,GACnB,GAAG,QAAQ,CAAC;IAEb,sEAAsE;IACtE,yEAAyE;IACzE,2EAA2E;IAC3E,oEAAoE;IACpE,wEAAwE;IACxE,4DAA4D;IAC5D,IAAI,MAAM,CAAC,YAAY;QAAE,OAAO;IAEhC,sEAAsE;IACtE,qEAAqE;IACrE,kEAAkE;IAClE,IAAI,MAAM,CAAC,SAAS,KAAK,CAAC,IAAI,MAAM,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;QACrD,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC;QACzB,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC;QACvB,OAAO;IACT,CAAC;IAED,MAAM,aAAa,GAAG,MAAM,CAAC,WAAW,IAAI,cAAc,CAAC;IAC3D,MAAM,YAAY,GAAG,aAAa,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,IAAI,aAAa,CAAC;IACtF,IAAI,aAAa,IAAI,YAAY,EAAE,CAAC;QAClC,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC;QACzB,MAAM,CAAC,UAAU,GAAG,WAAW,CAAC;QAChC,OAAO;IACT,CAAC;IAED,sEAAsE;IACtE,0EAA0E;IAC1E,sEAAsE;IACtE,yEAAyE;IACzE,uEAAuE;IACvE,kEAAkE;IAClE,IACE,aAAa;QACb,MAAM,CAAC,GAAG,EAAE,SAAS,KAAK,IAAI;QAC9B,MAAM,CAAC,GAAG,CAAC,UAAU,KAAK,OAAO;QACjC,MAAM,CAAC,WAAW,IAAI,mBAAmB;QACzC,IAAA,sBAAS,EAAC,MAAM,CAAC,CAAC,IAAI,KAAK,cAAc,EACzC,CAAC;QACD,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC;QACzB,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC;QAC5B,OAAO;IACT,CAAC;IAED,sEAAsE;IACtE,oEAAoE;IACpE,gEAAgE;IAChE,IAAI,cAAc,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtE,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CACzC,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,cAAc,KAAK,OAAO;YAC5B,CAAC,CAAC,KAAK,KAAK,SAAS;YACrB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,cAAc;YACtC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,cAAc,CACzC,CAAC;QACF,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC;YACzB,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC;QAC9B,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAS,gBAAgB,CACvB,WAA0B,EAC1B,YAA2B,EAC3B,kBAA6B;IAE7B,IAAI,CAAC,WAAW,IAAI,CAAC,YAAY;QAAE,OAAO,IAAI,CAAC;IAC/C,MAAM,MAAM,GAAG,IAAA,kBAAO,EAAC,WAAW,EAAE,YAAY,EAAE,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAC1E,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,UAAU;QAC1B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,wEAAwE;QACxE,oEAAoE;QACpE,qEAAqE;QACrE,SAAS,EAAE,CAAC,MAAM,CAAC,UAAU;KAC9B,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,WAAW,CAAC,MAAc;IACjC,6EAA6E;IAC7E,IAAI,MAAM,CAAC,MAAM,GAAG,EAAE,IAAI,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,UAAU,CAAC,YAAY,EAAE,CAAC;QAC9E,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC;AAC7E,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAAC,MAAc;IAC/B,MAAM,GAAG,GAAG,WAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAClC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;AAClE,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAAC,IAAY,EAAE,KAAa,EAAE,MAAc;IAC5D,MAAM,GAAG,GAAG,IAAI,WAAG,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACvC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;IAChB,OAAO,WAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC;AAeD,SAAS,cAAc,CACrB,cAAsB,EACtB,eAAuB,EACvB,IAAY,EACZ,iBAAyB,EACzB,SAAiB,EACjB,cAAkC,EAAE,WAAW,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;IAEpE,iEAAiE;IACjE,IAAI,cAAc,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAmB;YAC7B,IAAI;YACJ,MAAM,EAAE,QAAQ;YAChB,WAAW,EAAE,CAAC;YACd,SAAS,EAAE,CAAC;YACZ,WAAW,EAAE,CAAC;YACd,YAAY,EAAE,UAAU,IAAI,eAAe;YAC3C,WAAW,EAAE,UAAU,IAAI,cAAc;SAC1C,CAAC;QACF,mEAAmE;QACnE,uEAAuE;QACvE,MAAM,SAAS,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC;QAChF,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;YAClB,MAAM,IAAI,GAAG,WAAW,CAAC,cAAc,CAAC,CAAC;YACzC,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM,UAAU,GAAG,IAAA,mBAAY,EAC7B,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;gBACzF,MAAM,QAAQ,GAAG,IAAA,mBAAY,EAC3B,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;gBACrF,MAAM,KAAK,GAAG,CAAC,GAAG,UAAU,CAAC,KAAK,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACvD,MAAM,QAAQ,GAAG,CAAC,GAAG,UAAU,CAAC,QAAQ,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAChE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;oBAAE,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;gBAC3C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;oBAAE,MAAM,CAAC,YAAY,GAAG,QAAQ,CAAC;YAC1D,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,CAAC;QACH,gEAAgE;QAChE,MAAM,QAAQ,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC;QAC3C,MAAM,SAAS,GAAG,SAAS,CAAC,eAAe,CAAC,CAAC;QAE7C,yEAAyE;QACzE,yEAAyE;QACzE,wEAAwE;QACxE,sEAAsE;QACtE,gCAAgC;QAChC,MAAM,YAAY,GAChB,QAAQ,CAAC,KAAK,KAAK,SAAS,CAAC,KAAK,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM;YACxE,CAAC,CAAC;gBACE,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE;gBAC5D,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE;aAChE;YACH,CAAC,CAAC,SAAS,CAAC;QAChB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;QAE3D,wEAAwE;QACxE,+DAA+D;QAC/D,MAAM,SAAS,GAAG,IAAI,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9D,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC7B,MAAM,UAAU,GAAG,IAAI,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChE,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAE/B,MAAM,UAAU,GAAG,IAAI,iBAAiB,CAAC,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC;QAE7D,qEAAqE;QACrE,uEAAuE;QACvE,MAAM,UAAU,GAAG,IAAA,mBAAY,EAC7B,WAAW,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QAC/E,MAAM,QAAQ,GAAG,IAAA,mBAAY,EAC3B,WAAW,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAC3E,MAAM,SAAS,GAAG,CAAC,GAAG,UAAU,CAAC,KAAK,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC3D,MAAM,YAAY,GAAG,CAAC,GAAG,UAAU,CAAC,QAAQ,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAEpE,MAAM,UAAU,GAAG,IAAA,WAAU,EAAC,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE;YAChG,SAAS;YACT,KAAK,EAAE,SAAS;YAChB,aAAa,EAAE,IAAI;YACnB,aAAa,EAAE,WAAW,CAAC,aAAa;YACxC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,KAAc,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1F,CAAC,CAAC;QAEH,wDAAwD;QACxD,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC/E,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;QAC1D,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QAE1C,oEAAoE;QACpE,0DAA0D;QAC1D,MAAM,MAAM,GAAmB,SAAS,CAAC;QAEzC,MAAM,MAAM,GAAmB;YAC7B,IAAI;YACJ,MAAM;YACN,WAAW,EAAE,UAAU,CAAC,WAAW;YACnC,SAAS,EAAE,UAAU,CAAC,SAAS;YAC/B,WAAW,EAAE,UAAU,CAAC,WAAW;YACnC,YAAY,EAAE,UAAU,IAAI,eAAe;YAC3C,WAAW,EAAE,UAAU,IAAI,cAAc;YACzC,QAAQ,EAAE,UAAU,IAAI,WAAW;SACpC,CAAC;QACF,IAAI,YAAY;YAAE,MAAM,CAAC,YAAY,GAAG,YAAY,CAAC;QACrD,IAAI,UAAU,CAAC,OAAO;YAAE,MAAM,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;QAC5D,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC;QACnD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,CAAC,YAAY,GAAG,YAAY,CAAC;QAChE,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,IAAI,EAAE,CAAC;QACd,0EAA0E;QAC1E,4DAA4D;QAC5D,OAAO;YACL,IAAI;YACJ,MAAM,EAAE,SAAS;YACjB,WAAW,EAAE,GAAG;YAChB,SAAS,EAAE,CAAC;YACZ,WAAW,EAAE,CAAC;YACd,YAAY,EAAE,UAAU,IAAI,eAAe;YAC3C,WAAW,EAAE,UAAU,IAAI,cAAc;SAC1C,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"compare.js","sourceRoot":"","sources":["../../src/report/compare.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * TestivAI Report — what changed in the capture environment
3
+ *
4
+ * The compare reads the environment the baseline was captured in next to the
5
+ * current capture's (capture/environment.ts) and lists every field that
6
+ * differs. Only some of those can change how a page renders. A new browser
7
+ * build, another OS, distro or architecture, another device scale, viewport,
8
+ * color scheme, locale or time zone, another capture method, a container or a
9
+ * relabelled environment can; a newer test framework, adapter or driver, a
10
+ * new CI runner image or another project name cannot on its own (a browser
11
+ * that came with a framework upgrade shows up as the browser change).
12
+ *
13
+ * When pixels differ, the DOM and the computed styles are identical and the
14
+ * rendering environment changed, the diff is RENDERING DRIFT: the machine
15
+ * changed, not the page. The report, @testivai/mcp and the GitHub Action
16
+ * word it that way instead of "likely render noise", and say it once at the
17
+ * top when several snapshots share the same change.
18
+ *
19
+ * Read from results.json fields only, so every surface agrees.
20
+ */
21
+ import type { CaptureEnvironment } from '../capture/environment';
22
+ import { type DiffShapeInput } from './diff-shape';
23
+ /**
24
+ * The fields of a snapshot result these rules read: results.json's own, so
25
+ * @testivai/mcp and the GitHub Action pass their snapshot types as they are.
26
+ */
27
+ export interface EnvironmentSnapshotInput extends DiffShapeInput {
28
+ name: string;
29
+ status: string;
30
+ autoPassed?: string;
31
+ dom?: {
32
+ changed: boolean;
33
+ styleCheck?: string;
34
+ } | null;
35
+ sizeMismatch?: unknown;
36
+ environment?: {
37
+ delta: string[];
38
+ renderingDelta: string[];
39
+ baseline?: CaptureEnvironment;
40
+ candidate?: CaptureEnvironment;
41
+ policy?: string;
42
+ } | null;
43
+ }
44
+ /**
45
+ * Every field that differs between two recorded environments, and the subset
46
+ * that can change rendering, both sorted. A field recorded on one side only
47
+ * is unknown (an older adapter did not record it), not a change; the
48
+ * container, the label and the CI provider are always decided by the
49
+ * collector, so their absence means "no".
50
+ */
51
+ export declare function diffEnvironments(baseline: CaptureEnvironment, candidate: CaptureEnvironment): {
52
+ delta: string[];
53
+ renderingDelta: string[];
54
+ };
55
+ /** "full-page:cdp" → "full page (CDP)"; an unknown method passes through. */
56
+ export declare function describeCaptureMethod(method: string): string;
57
+ /**
58
+ * The listed fields as one readable clause, each with its values, in a fixed
59
+ * order: "chromium 130.0.6723.58 → 141.0.7390.37, ubuntu 22.04 → ubuntu
60
+ * 24.04, capture method full page (CDP) → viewport (WebDriver)".
61
+ */
62
+ export declare function describeEnvironmentChange(baseline: CaptureEnvironment, candidate: CaptureEnvironment, fields: string[]): string;
63
+ /**
64
+ * Rendering drift: pixels differ (the snapshot is changed, or was auto-passed
65
+ * by a tolerance), the DOM is identical, the computed styles were compared and
66
+ * match, and the rendering environment changed since the baseline. Never for
67
+ * a diff concentrated in one area (a new browser or OS redraws text
68
+ * everywhere; one area is a bad capture or a change the style check does not
69
+ * cover). A size change counts only when the environment explains it (the
70
+ * viewport, the device scale or the capture method changed).
71
+ */
72
+ export declare function isRenderingDrift(snapshot: EnvironmentSnapshotInput): boolean;
73
+ /** The rendering change of one snapshot, worded, or null when there is none. */
74
+ export declare function snapshotEnvironmentChange(snapshot: EnvironmentSnapshotInput): string | null;
75
+ /**
76
+ * The fields every listed environment agrees on: the run-level block in
77
+ * results.json. One environment is its own; none is null.
78
+ */
79
+ export declare function commonEnvironment(envs: CaptureEnvironment[]): Partial<CaptureEnvironment> | null;
80
+ /** Snapshots sharing one rendering environment change. */
81
+ export interface EnvironmentChangeGroup {
82
+ /** The change, worded (describeEnvironmentChange). */
83
+ change: string;
84
+ /** Changed or auto-passed snapshots with this change, in results order. */
85
+ snapshots: string[];
86
+ /** The subset that is rendering drift (isRenderingDrift). */
87
+ drift: string[];
88
+ }
89
+ /**
90
+ * Changed (and auto-passed) snapshots grouped by the same rendering
91
+ * environment change, largest group first. A passed snapshot with no pixel
92
+ * diff is not counted: nothing to explain.
93
+ */
94
+ export declare function environmentChangeGroups(snapshots: EnvironmentSnapshotInput[]): EnvironmentChangeGroup[];
95
+ /**
96
+ * The line said once at the top of the report, the PR comment and
97
+ * get_visual_results for a group of two or more snapshots, with an honest
98
+ * count of how many are drift alone.
99
+ */
100
+ export declare function environmentChangeLine(group: EnvironmentChangeGroup): string;
101
+ //# sourceMappingURL=environment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../src/report/environment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,KAAK,cAAc,EAAa,MAAM,cAAc,CAAC;AAE9D;;;GAGG;AACH,MAAM,WAAW,wBAAyB,SAAQ,cAAc;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACvD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE;QACZ,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,cAAc,EAAE,MAAM,EAAE,CAAC;QACzB,QAAQ,CAAC,EAAE,kBAAkB,CAAC;QAC9B,SAAS,CAAC,EAAE,kBAAkB,CAAC;QAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,IAAI,CAAC;CACV;AA8DD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,kBAAkB,EAC5B,SAAS,EAAE,kBAAkB,GAC5B;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,cAAc,EAAE,MAAM,EAAE,CAAA;CAAE,CAc/C;AAUD,6EAA6E;AAC7E,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAI5D;AAyCD;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,kBAAkB,EAC5B,SAAS,EAAE,kBAAkB,EAC7B,MAAM,EAAE,MAAM,EAAE,GACf,MAAM,CAyCR;AAKD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,wBAAwB,GAAG,OAAO,CAQ5E;AAED,gFAAgF;AAChF,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,wBAAwB,GAAG,MAAM,GAAG,IAAI,CAI3F;AAeD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAqBhG;AAED,0DAA0D;AAC1D,MAAM,WAAW,sBAAsB;IACrC,sDAAsD;IACtD,MAAM,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,6DAA6D;IAC7D,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,wBAAwB,EAAE,GAAG,sBAAsB,EAAE,CAYvG;AAID;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,sBAAsB,GAAG,MAAM,CAkB3E"}