@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
|
|
7
|
-
* newline. Matches the tooling's on-disk baseline store byte-for-byte, so a
|
|
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
|
|
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"}
|
package/dist/captureBaseline.js
CHANGED
|
@@ -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
|
|
8
|
-
* newline. Matches the tooling's on-disk baseline store byte-for-byte, so a
|
|
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
|
|
1
|
+
{"version":3,"file":"captureBaseline.js","sourceRoot":"","sources":["../src/captureBaseline.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flighthq/capture",
|
|
3
|
-
"version": "0.
|
|
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.
|
|
42
|
-
"@flighthq/types": "0.
|
|
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 = {
|
|
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
|
+
};
|