@veltdev/sdk-staging 4.5.6-beta.20 → 4.5.6-beta.3

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.
@@ -1,109 +0,0 @@
1
- /**
2
- * Content hash for secure, privacy-preserving element validation.
3
- */
4
- export interface ContentHash {
5
- /** MD5 hash value (base36 encoded, ~12 characters) */
6
- value: string;
7
- /** Hashing algorithm (always 'md5') */
8
- algorithm: 'md5';
9
- /** Source of hash (always 'textContent') */
10
- source: 'textContent';
11
- }
12
- /**
13
- * Robust anchor record for reliable DOM element re-location.
14
- *
15
- * Survives:
16
- * - Page reloads
17
- * - Framework re-renders (React, Vue, Angular)
18
- * - Dynamic ID changes
19
- * - Minor DOM restructuring
20
- *
21
- * Does not survive:
22
- * - Major redesigns
23
- * - Content reordering (sort, filter)
24
- * - Element removal
25
- *
26
- * **Resolution Strategy (priority order):**
27
- * 1. id (90) - Stable, non-dynamic ID
28
- * 2. css (80/60) - Attribute selector
29
- * 3. robustXPath (50) - Attribute-based path
30
- * 4. containerHints (40) - Scoped search
31
- * 5. xPath variants (32-28) - Structural fallback
32
- * 6. contentHash (15) - Hash-based scan
33
- *
34
- * **Validation boosts:** tagName (+10), contentHash (+30)
35
- *
36
- * **Security:** No plaintext storage, MD5 hash only.
37
- */
38
- export interface AnchorRecord {
39
- /** Schema version (current: "1.0") */
40
- version: '1.0';
41
- /**
42
- * Stable element ID (non-dynamic only).
43
- *
44
- * Excluded patterns:
45
- * - yui_* (YUI framework)
46
- */
47
- id?: string;
48
- /** Tag name (uppercase, e.g., 'DIV', 'BUTTON') */
49
- tagName: string;
50
- /**
51
- * CSS selector from stable attributes.
52
- *
53
- * Example: `[data-testid='submit-btn'][role='button']`
54
- */
55
- elementSelector?: string;
56
- /**
57
- * XPath variants (in order of stability):
58
- *
59
- * 1. robustXPath - Attribute-based (MOST STABLE)
60
- * - Prioritizes: data-* > role > stable ID > aria-* > position
61
- * - Example: `//div[@role='main']/.../li[5]/span`
62
- * - Ignores dynamic IDs
63
- * - Stops at landmarks (main, nav, etc.)
64
- *
65
- * 2. xPath - Basic XPath (uses IDs when available)
66
- * 3. cfXPath - Positional with class hints
67
- * 4. fXPath - Pure positional (most fragile)
68
- */
69
- robustXPath?: string;
70
- xPath?: string;
71
- fXPath?: string;
72
- cfXPath?: string;
73
- /**
74
- * Content hash for secure validation.
75
- */
76
- contentHash?: ContentHash;
77
- /** Creation timestamp (milliseconds since epoch) */
78
- createdAt?: number;
79
- /** Parent element anchor record */
80
- parent?: AnchorRecord;
81
- }
82
- /**
83
- * Result of anchor resolution.
84
- */
85
- export interface AnchorResolution {
86
- /** Resolved element (null if not found) */
87
- element: Element | null;
88
- /**
89
- * Resolution method used.
90
- * Values: 'id', 'css', 'robustXPath', 'xPath', 'cfXPath', 'fXPath', 'contentHash', 'ancestor+tag'
91
- */
92
- matchedBy?: string;
93
- /**
94
- * Confidence score (0-120+).
95
- *
96
- * - 90+: High (unique ID)
97
- * - 80-89: Good (unique CSS, stable attributes)
98
- * - 40-79: Moderate (scoped search, multiple candidates)
99
- * - 15-39: Low (XPath, hash-based fallback)
100
- */
101
- score?: number;
102
- /**
103
- * Score breakdown.
104
- */
105
- scoreBreakdown?: {
106
- method: string;
107
- score: number;
108
- }[];
109
- }