my-frontend-observer 0.2.0 → 0.4.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.
- package/CHANGELOG.md +102 -0
- package/README.md +51 -13
- package/dist/application/comparisonService.d.ts +56 -0
- package/dist/application/comparisonService.js +77 -0
- package/dist/application/comparisonService.js.map +1 -0
- package/dist/application/observationPersistence.js +1 -0
- package/dist/application/observationPersistence.js.map +1 -1
- package/dist/artifacts/artifactReader.d.ts +19 -0
- package/dist/artifacts/artifactReader.js +36 -0
- package/dist/artifacts/artifactReader.js.map +1 -0
- package/dist/artifacts/comparisonArtifactWriter.d.ts +41 -0
- package/dist/artifacts/comparisonArtifactWriter.js +67 -0
- package/dist/artifacts/comparisonArtifactWriter.js.map +1 -0
- package/dist/browser/chromiumAdapter.js +58 -4
- package/dist/browser/chromiumAdapter.js.map +1 -1
- package/dist/browser/evidenceCapture.d.ts +29 -2
- package/dist/browser/evidenceCapture.js +43 -19
- package/dist/browser/evidenceCapture.js.map +1 -1
- package/dist/browser/scrollCapture.d.ts +32 -0
- package/dist/browser/scrollCapture.js +163 -0
- package/dist/browser/scrollCapture.js.map +1 -0
- package/dist/browser/types.d.ts +3 -1
- package/dist/cli.js +299 -2
- package/dist/cli.js.map +1 -1
- package/dist/domain/comparison.d.ts +198 -0
- package/dist/domain/comparison.js +324 -0
- package/dist/domain/comparison.js.map +1 -0
- package/dist/domain/comparisonEngine.d.ts +48 -0
- package/dist/domain/comparisonEngine.js +694 -0
- package/dist/domain/comparisonEngine.js.map +1 -0
- package/dist/domain/comparisonIdentity.d.ts +13 -0
- package/dist/domain/comparisonIdentity.js +46 -0
- package/dist/domain/comparisonIdentity.js.map +1 -0
- package/dist/domain/evidence.d.ts +2 -0
- package/dist/domain/evidence.js +4 -0
- package/dist/domain/evidence.js.map +1 -1
- package/dist/domain/identity.d.ts +8 -3
- package/dist/domain/identity.js +9 -3
- package/dist/domain/identity.js.map +1 -1
- package/dist/domain/relationships.d.ts +168 -0
- package/dist/domain/relationships.js +343 -0
- package/dist/domain/relationships.js.map +1 -0
- package/dist/domain/schema.d.ts +116 -2
- package/dist/domain/schema.js +186 -2
- package/dist/domain/schema.js.map +1 -1
- package/dist/domain/scrollEvidence.d.ts +51 -0
- package/dist/domain/scrollEvidence.js +134 -0
- package/dist/domain/scrollEvidence.js.map +1 -0
- package/dist/index.d.ts +17 -4
- package/dist/index.js +9 -2
- package/dist/index.js.map +1 -1
- package/dist/request/request.d.ts +29 -0
- package/dist/request/request.js +108 -0
- package/dist/request/request.js.map +1 -1
- package/docs/ARCHITECTURE.md +110 -4
- package/docs/CI_CD.md +62 -6
- package/docs/COMMANDS.md +247 -6
- package/docs/CONTRACTS.md +172 -7
- package/docs/CURRENT_STATE.md +148 -10
- package/docs/DEVELOPMENT.md +52 -12
- package/docs/PROJECT_OVERVIEW.md +18 -11
- package/docs/QUICKSTART.md +7 -1
- package/docs/RELEASE.md +14 -7
- package/docs/ROADMAP.md +9 -0
- package/docs/SECURITY.md +14 -1
- package/docs/WORKFLOWS.md +90 -22
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comparisonEngine.js","sourceRoot":"","sources":["../../src/domain/comparisonEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ComparisonConfig } from './comparison.js';
|
|
2
|
+
/**
|
|
3
|
+
* Pure function of {beforeObservationId, afterObservationId, normalized
|
|
4
|
+
* config} only. Direction matters: swapping before/after produces a
|
|
5
|
+
* different identity. Never includes a filesystem path, output location, the
|
|
6
|
+
* comparison result itself, or a captured timestamp.
|
|
7
|
+
*/
|
|
8
|
+
export declare function buildComparisonRequestIdentity(beforeObservationId: string, afterObservationId: string, config: ComparisonConfig): string;
|
|
9
|
+
/**
|
|
10
|
+
* Fresh, opaque per-execution identity - never derived from a timestamp
|
|
11
|
+
* alone, never collides even when called twice within the same millisecond.
|
|
12
|
+
*/
|
|
13
|
+
export declare function buildComparisonIdentity(comparisonRequestId: string): string;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { createHash, randomBytes } from 'node:crypto';
|
|
2
|
+
/**
|
|
3
|
+
* Deliberately duplicated from domain/identity.ts#canonicalize rather than
|
|
4
|
+
* imported: that module's canonicalize is a private helper for the frozen
|
|
5
|
+
* v0.1 request-identity contract, and this batch does not touch that file.
|
|
6
|
+
* Same algorithm (sorted object keys, order-preserving arrays) so the two
|
|
7
|
+
* identity families stay consistent without coupling their ownership.
|
|
8
|
+
*/
|
|
9
|
+
function canonicalize(value) {
|
|
10
|
+
if (Array.isArray(value))
|
|
11
|
+
return value.map(canonicalize);
|
|
12
|
+
if (value !== null && typeof value === 'object') {
|
|
13
|
+
const entries = Object.entries(value)
|
|
14
|
+
.sort(([a], [b]) => (a < b ? -1 : a > b ? 1 : 0))
|
|
15
|
+
.map(([key, entryValue]) => [key, canonicalize(entryValue)]);
|
|
16
|
+
return Object.fromEntries(entries);
|
|
17
|
+
}
|
|
18
|
+
return value;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Pure function of {beforeObservationId, afterObservationId, normalized
|
|
22
|
+
* config} only. Direction matters: swapping before/after produces a
|
|
23
|
+
* different identity. Never includes a filesystem path, output location, the
|
|
24
|
+
* comparison result itself, or a captured timestamp.
|
|
25
|
+
*/
|
|
26
|
+
export function buildComparisonRequestIdentity(beforeObservationId, afterObservationId, config) {
|
|
27
|
+
const semanticView = {
|
|
28
|
+
beforeObservationId,
|
|
29
|
+
afterObservationId,
|
|
30
|
+
config: {
|
|
31
|
+
geometryTolerancePx: config.geometryTolerancePx,
|
|
32
|
+
expectedDependencies: config.expectedDependencies ?? [],
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
const serialized = JSON.stringify(canonicalize(semanticView));
|
|
36
|
+
return createHash('sha256').update(serialized).digest('hex');
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Fresh, opaque per-execution identity - never derived from a timestamp
|
|
40
|
+
* alone, never collides even when called twice within the same millisecond.
|
|
41
|
+
*/
|
|
42
|
+
export function buildComparisonIdentity(comparisonRequestId) {
|
|
43
|
+
const nonce = randomBytes(16).toString('hex');
|
|
44
|
+
return `${comparisonRequestId}-${nonce}`;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=comparisonIdentity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comparisonIdentity.js","sourceRoot":"","sources":["../../src/domain/comparisonIdentity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAGtD;;;;;;GAMG;AACH,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACzD,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC;aAC7D,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAChD,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,YAAY,CAAC,UAAU,CAAC,CAAU,CAAC,CAAC;QACxE,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,8BAA8B,CAAC,mBAA2B,EAAE,kBAA0B,EAAE,MAAwB;IAC9H,MAAM,YAAY,GAAG;QACnB,mBAAmB;QACnB,kBAAkB;QAClB,MAAM,EAAE;YACN,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;YAC/C,oBAAoB,EAAE,MAAM,CAAC,oBAAoB,IAAI,EAAE;SACxD;KACF,CAAC;IACF,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC;IAC9D,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC/D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,mBAA2B;IACjE,MAAM,KAAK,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,OAAO,GAAG,mBAAmB,IAAI,KAAK,EAAE,CAAC;AAC3C,CAAC"}
|
|
@@ -25,3 +25,5 @@ export type EvidenceField<T> = {
|
|
|
25
25
|
* derivedFrom-iff-derived-source invariant.
|
|
26
26
|
*/
|
|
27
27
|
export declare function isValidEvidenceField<T = unknown>(field: unknown): field is EvidenceField<T>;
|
|
28
|
+
/** Extracts an `EvidenceField<T>`'s value when meaningfully present (`available`/`partial`), `undefined` otherwise - never a fabricated default for `unavailable`/`not-applicable`. */
|
|
29
|
+
export declare function evidenceValue<T>(field: EvidenceField<T>): T | undefined;
|
package/dist/domain/evidence.js
CHANGED
|
@@ -52,4 +52,8 @@ export function isValidEvidenceField(field) {
|
|
|
52
52
|
}
|
|
53
53
|
return false;
|
|
54
54
|
}
|
|
55
|
+
/** Extracts an `EvidenceField<T>`'s value when meaningfully present (`available`/`partial`), `undefined` otherwise - never a fabricated default for `unavailable`/`not-applicable`. */
|
|
56
|
+
export function evidenceValue(field) {
|
|
57
|
+
return field.state === 'available' || field.state === 'partial' ? field.value : undefined;
|
|
58
|
+
}
|
|
55
59
|
//# sourceMappingURL=evidence.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evidence.js","sourceRoot":"","sources":["../../src/domain/evidence.ts"],"names":[],"mappings":"AAUA,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,gBAAgB,GAAG,CAAC,SAAS,EAAE,kBAAkB,EAAE,SAAS,CAAU,CAAC;AAE7E,SAAS,gBAAgB,CAAC,KAAc;IACtC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAK,gBAAsC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC9F,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC;AACvG,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAc,KAAc;IAC9D,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACxC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAE1B,IAAI,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACjD,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC;YAAE,OAAO,KAAK,CAAC;QAClD,IAAI,CAAC,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QACnE,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QACzG,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC/B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC;gBAAE,OAAO,KAAK,CAAC;QACtD,CAAC;aAAM,IAAI,aAAa,IAAI,KAAK,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACrE,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,KAAK,KAAK,aAAa,EAAE,CAAC;QAC5B,IAAI,OAAO,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QAChE,IAAI,QAAQ,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QAClE,OAAO,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IACrE,CAAC;IAED,IAAI,KAAK,KAAK,gBAAgB,EAAE,CAAC;QAC/B,IAAI,OAAO,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QAChE,IAAI,QAAQ,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QAClE,IAAI,QAAQ,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QACtG,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
1
|
+
{"version":3,"file":"evidence.js","sourceRoot":"","sources":["../../src/domain/evidence.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
import type { NormalizedObservationRequest } from '../request/request.js';
|
|
2
2
|
/**
|
|
3
3
|
* Pure function of {targetUrl, viewport, targets (order preserved -
|
|
4
|
-
* semantic), readiness.condition} only. timeoutMs,
|
|
5
|
-
* outputLocation never affect the result - this is
|
|
6
|
-
* "same configuration" for this batch.
|
|
4
|
+
* semantic), readiness.condition, scrollScenario} only. timeoutMs,
|
|
5
|
+
* readiness.timeoutMs, and outputLocation never affect the result - this is
|
|
6
|
+
* the frozen definition of "same configuration" for this batch. A request
|
|
7
|
+
* with no `scrollScenario` omits the key entirely (rather than setting it to
|
|
8
|
+
* `undefined`) so the v0.2 identity for scenario-less requests is unchanged
|
|
9
|
+
* by this v0.3 extension. Only the requested action configuration
|
|
10
|
+
* participates - never runtime scroll results, movement success/failure, or
|
|
11
|
+
* scroll-owner interpretation, which are runtime evidence, not identity.
|
|
7
12
|
*/
|
|
8
13
|
export declare function buildRequestIdentity(request: NormalizedObservationRequest): string;
|
|
9
14
|
/**
|
package/dist/domain/identity.js
CHANGED
|
@@ -12,9 +12,14 @@ function canonicalize(value) {
|
|
|
12
12
|
}
|
|
13
13
|
/**
|
|
14
14
|
* Pure function of {targetUrl, viewport, targets (order preserved -
|
|
15
|
-
* semantic), readiness.condition} only. timeoutMs,
|
|
16
|
-
* outputLocation never affect the result - this is
|
|
17
|
-
* "same configuration" for this batch.
|
|
15
|
+
* semantic), readiness.condition, scrollScenario} only. timeoutMs,
|
|
16
|
+
* readiness.timeoutMs, and outputLocation never affect the result - this is
|
|
17
|
+
* the frozen definition of "same configuration" for this batch. A request
|
|
18
|
+
* with no `scrollScenario` omits the key entirely (rather than setting it to
|
|
19
|
+
* `undefined`) so the v0.2 identity for scenario-less requests is unchanged
|
|
20
|
+
* by this v0.3 extension. Only the requested action configuration
|
|
21
|
+
* participates - never runtime scroll results, movement success/failure, or
|
|
22
|
+
* scroll-owner interpretation, which are runtime evidence, not identity.
|
|
18
23
|
*/
|
|
19
24
|
export function buildRequestIdentity(request) {
|
|
20
25
|
const semanticView = {
|
|
@@ -22,6 +27,7 @@ export function buildRequestIdentity(request) {
|
|
|
22
27
|
viewport: { width: request.viewport.width, height: request.viewport.height },
|
|
23
28
|
targets: request.targets.map((target) => ({ name: target.name.toLowerCase(), locators: target.locators })),
|
|
24
29
|
readinessCondition: request.readiness.condition,
|
|
30
|
+
...(request.scrollScenario ? { scrollScenario: request.scrollScenario } : {}),
|
|
25
31
|
};
|
|
26
32
|
const serialized = JSON.stringify(canonicalize(semanticView));
|
|
27
33
|
return createHash('sha256').update(serialized).digest('hex');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/domain/identity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAGtD,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACzD,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC;aAC7D,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAChD,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,YAAY,CAAC,UAAU,CAAC,CAAU,CAAC,CAAC;QACxE,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/domain/identity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAGtD,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACzD,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC;aAC7D,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAChD,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,YAAY,CAAC,UAAU,CAAC,CAAU,CAAC,CAAC;QACxE,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAqC;IACxE,MAAM,YAAY,GAAG;QACnB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,QAAQ,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE;QAC5E,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC1G,kBAAkB,EAAE,OAAO,CAAC,SAAS,CAAC,SAAS;QAC/C,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9E,CAAC;IACF,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC;IAC9D,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC/D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,eAAuB;IAC9D,MAAM,KAAK,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,OAAO,GAAG,eAAe,IAAI,KAAK,EAAE,CAAC;AACvC,CAAC"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v0.4 Batch 1 layout-relationship contract, plus the Batch 2 pure
|
|
3
|
+
* derivation engine (`deriveLayoutRelationships`) that consumes it. This
|
|
4
|
+
* module owns geometry tolerance (needed directly by the engine below, so it
|
|
5
|
+
* cannot be imported from domain/comparison.ts without a cycle - see the
|
|
6
|
+
* re-export there) and never imports domain/comparison.ts.
|
|
7
|
+
*/
|
|
8
|
+
import type { ObservationArtifact, TargetEvidenceRecord } from './schema.js';
|
|
9
|
+
/** Suppresses insignificant geometry noise only - never a design contract, never permission for changes. */
|
|
10
|
+
export declare const GEOMETRY_TOLERANCE_DEFAULT_PX = 0.5;
|
|
11
|
+
export declare const GEOMETRY_TOLERANCE_MIN_PX = 0;
|
|
12
|
+
export declare const GEOMETRY_TOLERANCE_MAX_PX = 10;
|
|
13
|
+
export declare function isValidGeometryTolerancePx(value: unknown): value is number;
|
|
14
|
+
export declare const HORIZONTAL_ORDER_RELATIONSHIPS: readonly ["left-of", "right-of", "horizontally-overlapping"];
|
|
15
|
+
export type HorizontalOrderRelationship = (typeof HORIZONTAL_ORDER_RELATIONSHIPS)[number];
|
|
16
|
+
export declare const VERTICAL_ORDER_RELATIONSHIPS: readonly ["above", "below", "vertically-overlapping"];
|
|
17
|
+
export type VerticalOrderRelationship = (typeof VERTICAL_ORDER_RELATIONSHIPS)[number];
|
|
18
|
+
export declare const AREA_OVERLAP_RELATIONSHIPS: readonly ["overlaps", "does-not-overlap"];
|
|
19
|
+
export type AreaOverlapRelationship = (typeof AREA_OVERLAP_RELATIONSHIPS)[number];
|
|
20
|
+
export declare const RELATIVE_WIDTH_RELATIONSHIPS: readonly ["wider-than", "narrower-than", "equal-width-within-tolerance"];
|
|
21
|
+
export type RelativeWidthRelationship = (typeof RELATIVE_WIDTH_RELATIONSHIPS)[number];
|
|
22
|
+
export declare const GEOMETRIC_FIT_RELATIONSHIPS: readonly ["fits-inside", "does-not-fit-inside"];
|
|
23
|
+
export type GeometricFitRelationship = (typeof GEOMETRIC_FIT_RELATIONSHIPS)[number];
|
|
24
|
+
/** Rendered-geometry sequencing only - never source DOM order (see docs/CONTRACTS.md target containment discussion). */
|
|
25
|
+
export declare const VERTICAL_SEQUENCE_RELATIONSHIPS: readonly ["follows-vertically"];
|
|
26
|
+
export type VerticalSequenceRelationship = (typeof VERTICAL_SEQUENCE_RELATIONSHIPS)[number];
|
|
27
|
+
export declare const PAGE_WIDTH_RELATIONSHIPS: readonly ["document-width-fits-viewport", "document-width-exceeds-viewport"];
|
|
28
|
+
export type PageWidthRelationship = (typeof PAGE_WIDTH_RELATIONSHIPS)[number];
|
|
29
|
+
/** Every pairwise (two-target) relationship kind this batch freezes. Deliberately bounded - not a general-purpose spatial language. */
|
|
30
|
+
export declare const PAIRWISE_RELATIONSHIP_KINDS: readonly ["left-of", "right-of", "horizontally-overlapping", "above", "below", "vertically-overlapping", "overlaps", "does-not-overlap", "wider-than", "narrower-than", "equal-width-within-tolerance", "fits-inside", "does-not-fit-inside", "follows-vertically"];
|
|
31
|
+
export type PairwiseRelationshipKind = (typeof PAIRWISE_RELATIONSHIP_KINDS)[number];
|
|
32
|
+
/** Every page-level (no target pair) relationship kind this batch freezes. */
|
|
33
|
+
export declare const PAGE_LEVEL_RELATIONSHIP_KINDS: readonly ["document-width-fits-viewport", "document-width-exceeds-viewport"];
|
|
34
|
+
export type PageLevelRelationshipKind = (typeof PAGE_LEVEL_RELATIONSHIP_KINDS)[number];
|
|
35
|
+
/** Points at the supporting observation evidence a derived relationship/difference was computed from (e.g. `targetEvidence.workspace.geometry`, `pageEvidence.documentSize`) - never a duplicated copy of the measurement itself. */
|
|
36
|
+
export interface EvidenceReference {
|
|
37
|
+
path: string;
|
|
38
|
+
}
|
|
39
|
+
export declare function isValidEvidenceReference(value: unknown): value is EvidenceReference;
|
|
40
|
+
/** One derived spatial relationship between two configured targets, with explicit supporting evidence provenance. */
|
|
41
|
+
export interface PairwiseLayoutRelationship {
|
|
42
|
+
kind: PairwiseRelationshipKind;
|
|
43
|
+
subjectTarget: string;
|
|
44
|
+
relatedTarget: string;
|
|
45
|
+
evidence: EvidenceReference[];
|
|
46
|
+
}
|
|
47
|
+
export declare function isValidPairwiseLayoutRelationship(value: unknown): value is PairwiseLayoutRelationship;
|
|
48
|
+
/** One derived page-level (no target pair) relationship. */
|
|
49
|
+
export interface PageLevelLayoutRelationship {
|
|
50
|
+
kind: PageLevelRelationshipKind;
|
|
51
|
+
evidence: EvidenceReference[];
|
|
52
|
+
}
|
|
53
|
+
export declare function isValidPageLevelLayoutRelationship(value: unknown): value is PageLevelLayoutRelationship;
|
|
54
|
+
/** A configured target excluded from relationship derivation because it lacks usable geometry - never a fabricated zero-sized rectangle. */
|
|
55
|
+
export declare const UNRESOLVED_TARGET_REASONS: readonly ["not-found", "ambiguous", "unavailable", "hidden"];
|
|
56
|
+
export type UnresolvedTargetReason = (typeof UNRESOLVED_TARGET_REASONS)[number];
|
|
57
|
+
export interface UnresolvedRelationshipTarget {
|
|
58
|
+
target: string;
|
|
59
|
+
reason: UnresolvedTargetReason;
|
|
60
|
+
}
|
|
61
|
+
export declare function isValidUnresolvedRelationshipTarget(value: unknown): value is UnresolvedRelationshipTarget;
|
|
62
|
+
/**
|
|
63
|
+
* Bounded structured relationship graph for one observation. Existing
|
|
64
|
+
* requests allow at most 20 configured targets, so the pairwise layer is
|
|
65
|
+
* bounded at 20*19/2 = 190 unordered pairs; this contract never traverses
|
|
66
|
+
* arbitrary DOM nodes or derives relationships for unconfigured elements.
|
|
67
|
+
*/
|
|
68
|
+
export interface LayoutRelationshipGraph {
|
|
69
|
+
observationId: string;
|
|
70
|
+
requestId: string;
|
|
71
|
+
geometryTolerancePx: number;
|
|
72
|
+
targets: string[];
|
|
73
|
+
unresolvedTargets: UnresolvedRelationshipTarget[];
|
|
74
|
+
pairwiseRelationships: PairwiseLayoutRelationship[];
|
|
75
|
+
pageRelationships: PageLevelLayoutRelationship[];
|
|
76
|
+
}
|
|
77
|
+
export declare const MAX_CONFIGURED_TARGETS_FOR_RELATIONSHIPS = 20;
|
|
78
|
+
export declare const MAX_PAIRWISE_RELATIONSHIP_PAIRS: number;
|
|
79
|
+
/**
|
|
80
|
+
* A single unordered pair can carry up to one record per independent
|
|
81
|
+
* pairwise relationship family (horizontal-order, vertical-order,
|
|
82
|
+
* area-overlap, relative-width, geometric-fit, vertical-sequence - see
|
|
83
|
+
* `deriveLayoutRelationships` below), never more than one per family per
|
|
84
|
+
* pair. This is the resulting bound on `pairwiseRelationships.length`, not a
|
|
85
|
+
* second target-count configuration.
|
|
86
|
+
*/
|
|
87
|
+
export declare const PAIRWISE_RELATIONSHIP_FAMILY_COUNT = 6;
|
|
88
|
+
export declare const MAX_PAIRWISE_RELATIONSHIP_RECORDS: number;
|
|
89
|
+
export declare function isValidLayoutRelationshipGraph(value: unknown): value is LayoutRelationshipGraph;
|
|
90
|
+
/**
|
|
91
|
+
* Bounded derived clipping concept (docs/PROJECT_MILESTONES.md Milestone 4).
|
|
92
|
+
* `clipped` requires both actual dimensional overflow on that axis AND a
|
|
93
|
+
* computed `overflow` value of `hidden`/`clip` on that axis - `auto`,
|
|
94
|
+
* `scroll`, and `visible` never classify as clipped solely from dimensional
|
|
95
|
+
* overflow. `unavailable` when the underlying overflow/geometry evidence
|
|
96
|
+
* cannot support a conclusion - never guessed.
|
|
97
|
+
*/
|
|
98
|
+
export declare const CLIPPING_STATES: readonly ["clipped", "not-clipped", "unavailable"];
|
|
99
|
+
export type ClippingState = (typeof CLIPPING_STATES)[number];
|
|
100
|
+
export declare const CLIPPING_OVERFLOW_STYLES: readonly ["hidden", "clip"];
|
|
101
|
+
export type ClippingOverflowStyle = (typeof CLIPPING_OVERFLOW_STYLES)[number];
|
|
102
|
+
export interface TargetClippingEvidence {
|
|
103
|
+
horizontal: ClippingState;
|
|
104
|
+
vertical: ClippingState;
|
|
105
|
+
}
|
|
106
|
+
export declare function isValidTargetClippingEvidence(value: unknown): value is TargetClippingEvidence;
|
|
107
|
+
/**
|
|
108
|
+
* Pure per-target clipping derivation from one target's own existing
|
|
109
|
+
* `layout`/`style` evidence (never a scroll scenario - normal target
|
|
110
|
+
* evidence already carries `scrollWidth`/`scrollHeight`/`clientWidth`/
|
|
111
|
+
* `clientHeight`/`overflowX`/`overflowY`). `TargetClippingEvidence` has no
|
|
112
|
+
* slot in `LayoutRelationshipGraph` (that graph is spatial/page-level only,
|
|
113
|
+
* per the frozen Batch 1 vocabulary) - this is a standalone per-target
|
|
114
|
+
* derivation for callers (e.g. a later comparison engine) that need it
|
|
115
|
+
* directly from an `ObservationArtifact`'s `targetEvidence`, one target at a
|
|
116
|
+
* time. `unavailable` (never guessed) when the underlying layout/style
|
|
117
|
+
* evidence is not itself available - this naturally covers an unresolved
|
|
118
|
+
* target without any special-casing. A resolved-but-`display:none` target
|
|
119
|
+
* naturally computes `not-clipped` too: its `scrollWidth`/`clientWidth` are
|
|
120
|
+
* both `0`, so `scrollWidth > clientWidth` is false - clipping is never
|
|
121
|
+
* inferred from hidden-ness itself.
|
|
122
|
+
*/
|
|
123
|
+
export declare function deriveTargetClipping(record: TargetEvidenceRecord): TargetClippingEvidence;
|
|
124
|
+
export type DeriveLayoutRelationshipsOptions = {
|
|
125
|
+
geometryTolerancePx?: number;
|
|
126
|
+
};
|
|
127
|
+
export type DeriveLayoutRelationshipsResult = {
|
|
128
|
+
ok: true;
|
|
129
|
+
graph: LayoutRelationshipGraph;
|
|
130
|
+
} | {
|
|
131
|
+
ok: false;
|
|
132
|
+
reason: string;
|
|
133
|
+
};
|
|
134
|
+
/**
|
|
135
|
+
* The one canonical pure derivation from an already-captured
|
|
136
|
+
* `ObservationArtifact` to a `LayoutRelationshipGraph` (real Chromium ->
|
|
137
|
+
* ObservationArtifact -> **relationship derivation** -> comparability ->
|
|
138
|
+
* comparison -> ComparisonArtifact, see docs/ARCHITECTURE.md). Deterministic
|
|
139
|
+
* and synchronous: same `observation`/`geometryTolerancePx` in, same graph
|
|
140
|
+
* out, every time - no Chromium, target re-resolution, DOM access, randomness,
|
|
141
|
+
* clock, filesystem, or network involved, and `observation` is never
|
|
142
|
+
* mutated.
|
|
143
|
+
*
|
|
144
|
+
* Scope, by construction:
|
|
145
|
+
* - only targets present in `observation.requestConfig.targets` are ever
|
|
146
|
+
* considered (bounded at the existing 20-target/190-pair request limit -
|
|
147
|
+
* never arbitrary DOM/accessibility-tree traversal);
|
|
148
|
+
* - a configured target missing usable geometry (never resolved, or
|
|
149
|
+
* resolved but reported not-visible) becomes an `unresolvedTargets` entry
|
|
150
|
+
* with an honest reason, never a fabricated zero-sized relation;
|
|
151
|
+
* - for each unordered pair of geometry-eligible targets, exactly one
|
|
152
|
+
* record per relationship family is derived, with `subjectTarget`/
|
|
153
|
+
* `relatedTarget` fixed to that pair's configured order (earlier
|
|
154
|
+
* configured target is always `subjectTarget`) for every family except
|
|
155
|
+
* `follows-vertically` (see `verticalSequenceOf`) - so
|
|
156
|
+
* `pairwiseRelationships.length` never exceeds
|
|
157
|
+
* `MAX_PAIRWISE_RELATIONSHIP_RECORDS`;
|
|
158
|
+
* - DOM containment is deliberately not re-derived here: it already exists
|
|
159
|
+
* as `targetEvidence.<name>.containment` on the observation itself (see
|
|
160
|
+
* `TargetContainment` in domain/schema.ts, explicitly documented there as
|
|
161
|
+
* "never a layout/relationship graph") and stays separate from
|
|
162
|
+
* `fits-inside`/`does-not-fit-inside`, which is geometry-only;
|
|
163
|
+
* - the page-width relationship is derived only when both
|
|
164
|
+
* `pageEvidence.documentWidth` and `pageEvidence.viewportWidth` are
|
|
165
|
+
* themselves available - never defaulted to "fits" when evidence is
|
|
166
|
+
* missing.
|
|
167
|
+
*/
|
|
168
|
+
export declare function deriveLayoutRelationships(observation: ObservationArtifact, options?: DeriveLayoutRelationshipsOptions): DeriveLayoutRelationshipsResult;
|