@veltdev/sdk-staging 4.5.6-beta.18 → 4.5.6-beta.2
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/app/client/snippyly.model.d.ts +1 -4
- package/app/models/data/live-state-data.data.model.d.ts +0 -6
- package/app/models/data/resolver.data.model.d.ts +0 -1
- package/app/models/data/target-element.data.model.d.ts +0 -5
- package/app/models/data/target-text-range.data.model.d.ts +0 -5
- package/app/models/data/user.data.model.d.ts +0 -22
- package/app/models/element/live-state-sync-element.model.d.ts +1 -11
- package/models.d.ts +0 -1
- package/package.json +1 -1
- package/velt.js +92 -92
- package/app/models/data/anchor-record.data.model.d.ts +0 -109
|
@@ -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
|
-
}
|