@flighthq/capture 0.3.1-next.975.01aea94 → 0.4.0-edge.1908.751021c

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.
@@ -3,8 +3,9 @@ import type { CaptureBaseline, CaptureBaselineField, CaptureBaselineProvenance,
3
3
  export declare function createCaptureBaseline(): CaptureBaseline;
4
4
  /**
5
5
  * Serializes a baseline to its committed text form: JSON with columns in sorted key order, each
6
- * column's fields in canonical `fingerprint`, `sourceHash`, then `sha256` order, 2-space indent, and a trailing
7
- * newline. Matches the tooling's on-disk baseline store byte-for-byte, so a re-baseline of one column
6
+ * column's fields in canonical `fingerprint`, deprecated `sourceHash`, then `sha256` order, 2-space
7
+ * indent, and a trailing newline. Matches the tooling's on-disk baseline store byte-for-byte, so a
8
+ * re-baseline of one column
8
9
  * produces a minimal diff and the format gate stays green. Only defined fields are emitted.
9
10
  */
10
11
  export declare function formatCaptureBaseline(baseline: Readonly<CaptureBaseline>): string;
@@ -1 +1 @@
1
- {"version":3,"file":"captureBaseline.d.ts","sourceRoot":"","sources":["../src/captureBaseline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,oBAAoB,EACpB,yBAAyB,EACzB,8BAA8B,EAE/B,MAAM,0BAA0B,CAAC;AAElC,yFAAyF;AACzF,wBAAgB,qBAAqB,IAAI,eAAe,CAEvD;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,MAAM,CAejF;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,QAAQ,CAAC,eAAe,CAAC,EACnC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,oBAAoB,GAC1B,MAAM,GAAG,IAAI,CAEf;AAED;8FAC8F;AAC9F,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,QAAQ,CAAC,eAAe,CAAC,EACnC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,8BAA8B,GACpC,yBAAyB,GAAG,IAAI,CAElC;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CASzE;AAED,8FAA8F;AAC9F,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,eAAe,EACzB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,oBAAoB,EAC3B,KAAK,EAAE,MAAM,GACZ,IAAI,CAEN;AAED,0GAA0G;AAC1G,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,eAAe,EACzB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,8BAA8B,EACrC,UAAU,EAAE,QAAQ,CAAC,yBAAyB,CAAC,GAC9C,IAAI,CAEN"}
1
+ {"version":3,"file":"captureBaseline.d.ts","sourceRoot":"","sources":["../src/captureBaseline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,oBAAoB,EACpB,yBAAyB,EACzB,8BAA8B,EAE/B,MAAM,0BAA0B,CAAC;AAElC,yFAAyF;AACzF,wBAAgB,qBAAqB,IAAI,eAAe,CAEvD;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,MAAM,CAiBjF;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,QAAQ,CAAC,eAAe,CAAC,EACnC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,oBAAoB,GAC1B,MAAM,GAAG,IAAI,CAEf;AAED;8FAC8F;AAC9F,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,QAAQ,CAAC,eAAe,CAAC,EACnC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,8BAA8B,GACpC,yBAAyB,GAAG,IAAI,CAElC;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CASzE;AAED,8FAA8F;AAC9F,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,eAAe,EACzB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,oBAAoB,EAC3B,KAAK,EAAE,MAAM,GACZ,IAAI,CAEN;AAED,0GAA0G;AAC1G,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,eAAe,EACzB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,8BAA8B,EACrC,UAAU,EAAE,QAAQ,CAAC,yBAAyB,CAAC,GAC9C,IAAI,CAEN"}
@@ -4,8 +4,9 @@ export function createCaptureBaseline() {
4
4
  }
5
5
  /**
6
6
  * Serializes a baseline to its committed text form: JSON with columns in sorted key order, each
7
- * column's fields in canonical `fingerprint`, `sourceHash`, then `sha256` order, 2-space indent, and a trailing
8
- * newline. Matches the tooling's on-disk baseline store byte-for-byte, so a re-baseline of one column
7
+ * column's fields in canonical `fingerprint`, deprecated `sourceHash`, then `sha256` order, 2-space
8
+ * indent, and a trailing newline. Matches the tooling's on-disk baseline store byte-for-byte, so a
9
+ * re-baseline of one column
9
10
  * produces a minimal diff and the format gate stays green. Only defined fields are emitted.
10
11
  */
11
12
  export function formatCaptureBaseline(baseline) {
@@ -15,6 +16,8 @@ export function formatCaptureBaseline(baseline) {
15
16
  const out = {};
16
17
  if (entry.fingerprint !== undefined)
17
18
  out.fingerprint = entry.fingerprint;
19
+ // Preserve a legacy partial record on untouched columns. Writers remove it atomically when they
20
+ // install full fingerprintProvenance for this same column.
18
21
  if (entry.sourceHash !== undefined)
19
22
  out.sourceHash = entry.sourceHash;
20
23
  if (entry.sha256 !== undefined)
@@ -1 +1 @@
1
- {"version":3,"file":"captureBaseline.js","sourceRoot":"","sources":["../src/captureBaseline.ts"],"names":[],"mappings":"AAQA,yFAAyF;AACzF,MAAM,UAAU,qBAAqB;IACnC,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAAmC;IACvE,MAAM,MAAM,GAAoB,EAAE,CAAC;IACnC,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC/B,MAAM,GAAG,GAA0B,EAAE,CAAC;QACtC,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS;YAAE,GAAG,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QACzE,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS;YAAE,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;QACtE,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;YAAE,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC1D,kGAAkG;QAClG,kEAAkE;QAClE,IAAI,KAAK,CAAC,qBAAqB,KAAK,SAAS;YAAE,GAAG,CAAC,qBAAqB,GAAG,KAAK,CAAC,qBAAqB,CAAC;QACvG,IAAI,KAAK,CAAC,gBAAgB,KAAK,SAAS;YAAE,GAAG,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC;QACxF,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;IACvB,CAAC;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;AAChD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CACrC,QAAmC,EACnC,MAAc,EACd,KAA2B;IAE3B,OAAO,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;AAC3C,CAAC;AAED;8FAC8F;AAC9F,MAAM,UAAU,4BAA4B,CAC1C,QAAmC,EACnC,MAAc,EACd,KAAqC;IAErC,OAAO,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC;AAC7D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IACxF,OAAO,MAAyB,CAAC;AACnC,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,uBAAuB,CACrC,QAAyB,EACzB,MAAc,EACd,KAA2B,EAC3B,KAAa;IAEb,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;AAC3C,CAAC;AAED,0GAA0G;AAC1G,MAAM,UAAU,4BAA4B,CAC1C,QAAyB,EACzB,MAAc,EACd,KAAqC,EACrC,UAA+C;IAE/C,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,GAAG,UAAU,EAAE,CAAC;AACzE,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAqC;IAC7D,OAAO,KAAK,KAAK,aAAa,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,kBAAkB,CAAC;AAChF,CAAC"}
1
+ {"version":3,"file":"captureBaseline.js","sourceRoot":"","sources":["../src/captureBaseline.ts"],"names":[],"mappings":"AAQA,yFAAyF;AACzF,MAAM,UAAU,qBAAqB;IACnC,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAAmC;IACvE,MAAM,MAAM,GAAoB,EAAE,CAAC;IACnC,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC/B,MAAM,GAAG,GAA0B,EAAE,CAAC;QACtC,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS;YAAE,GAAG,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QACzE,gGAAgG;QAChG,2DAA2D;QAC3D,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS;YAAE,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;QACtE,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;YAAE,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC1D,kGAAkG;QAClG,kEAAkE;QAClE,IAAI,KAAK,CAAC,qBAAqB,KAAK,SAAS;YAAE,GAAG,CAAC,qBAAqB,GAAG,KAAK,CAAC,qBAAqB,CAAC;QACvG,IAAI,KAAK,CAAC,gBAAgB,KAAK,SAAS;YAAE,GAAG,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC;QACxF,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;IACvB,CAAC;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;AAChD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CACrC,QAAmC,EACnC,MAAc,EACd,KAA2B;IAE3B,OAAO,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;AAC3C,CAAC;AAED;8FAC8F;AAC9F,MAAM,UAAU,4BAA4B,CAC1C,QAAmC,EACnC,MAAc,EACd,KAAqC;IAErC,OAAO,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC;AAC7D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IACxF,OAAO,MAAyB,CAAC;AACnC,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,uBAAuB,CACrC,QAAyB,EACzB,MAAc,EACd,KAA2B,EAC3B,KAAa;IAEb,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;AAC3C,CAAC;AAED,0GAA0G;AAC1G,MAAM,UAAU,4BAA4B,CAC1C,QAAyB,EACzB,MAAc,EACd,KAAqC,EACrC,UAA+C;IAE/C,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,GAAG,UAAU,EAAE,CAAC;AACzE,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAqC;IAC7D,OAAO,KAAK,KAAK,aAAa,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,kBAAkB,CAAC;AAChF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flighthq/capture",
3
- "version": "0.3.1-next.975.01aea94",
3
+ "version": "0.4.0-edge.1908.751021c",
4
4
  "author": "Joshua Granick and other contributors",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -38,8 +38,8 @@
38
38
  "clean:dist": "tsx ../../scripts/clean-package-dist.ts"
39
39
  },
40
40
  "dependencies": {
41
- "@flighthq/bitmap": "0.3.1-next.975.01aea94",
42
- "@flighthq/types": "0.3.1-next.975.01aea94"
41
+ "@flighthq/bitmap": "0.4.0-edge.1908.751021c",
42
+ "@flighthq/types": "0.4.0-edge.1908.751021c"
43
43
  },
44
44
  "devDependencies": {
45
45
  "typescript": "^5.3.0"
@@ -29,8 +29,8 @@ describe('formatCaptureBaseline', () => {
29
29
  it('sorts columns, orders fields, indents by two spaces, and ends with a newline', () => {
30
30
  const baseline = createCaptureBaseline();
31
31
  setCaptureBaselineField(baseline, 'flight:webgl', 'sha256', 'aaa');
32
- setCaptureBaselineField(baseline, 'flight:webgl', 'sourceHash', 'source');
33
32
  setCaptureBaselineField(baseline, 'flight:webgl', 'fingerprint', '1:ffffff');
33
+ baseline['flight:webgl']!.sourceHash = 'legacy-source';
34
34
  setCaptureBaselineField(baseline, 'canvas', 'fingerprint', '1:000000');
35
35
  expect(formatCaptureBaseline(baseline)).toBe(
36
36
  '{\n' +
@@ -39,7 +39,7 @@ describe('formatCaptureBaseline', () => {
39
39
  ' },\n' +
40
40
  ' "flight:webgl": {\n' +
41
41
  ' "fingerprint": "1:ffffff",\n' +
42
- ' "sourceHash": "source",\n' +
42
+ ' "sourceHash": "legacy-source",\n' +
43
43
  ' "sha256": "aaa"\n' +
44
44
  ' }\n' +
45
45
  '}\n',
@@ -127,10 +127,8 @@ describe('setCaptureBaselineField', () => {
127
127
  it('creates the column entry on first write and merges later fields', () => {
128
128
  const baseline = createCaptureBaseline();
129
129
  setCaptureBaselineField(baseline, 'canvas', 'fingerprint', '1:000000');
130
- setCaptureBaselineField(baseline, 'canvas', 'sourceHash', 'source');
131
130
  setCaptureBaselineField(baseline, 'canvas', 'sha256', 'hash');
132
131
  expect(getCaptureBaselineField(baseline, 'canvas', 'fingerprint')).toBe('1:000000');
133
- expect(getCaptureBaselineField(baseline, 'canvas', 'sourceHash')).toBe('source');
134
132
  expect(getCaptureBaselineField(baseline, 'canvas', 'sha256')).toBe('hash');
135
133
  });
136
134
 
@@ -160,4 +158,11 @@ describe('setCaptureBaselineProvenance', () => {
160
158
  });
161
159
  });
162
160
 
163
- const PROVENANCE = { frames: 1, sourceHash: 'a1b2c3', targetKind: 'webgl', verifyPublished: true, warmupFrames: 0 };
161
+ const PROVENANCE = {
162
+ computationId: 'grid-average-rgb-v1',
163
+ frames: 1,
164
+ sourceHash: 'a1b2c3',
165
+ targetKind: 'webgl',
166
+ verifyPublished: true,
167
+ warmupFrames: 0,
168
+ };