clarity-js 0.6.23
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/README.md +26 -0
- package/build/clarity.js +4479 -0
- package/build/clarity.min.js +1 -0
- package/build/clarity.module.js +4473 -0
- package/package.json +66 -0
- package/rollup.config.ts +38 -0
- package/src/clarity.ts +54 -0
- package/src/core/config.ts +21 -0
- package/src/core/copy.ts +3 -0
- package/src/core/event.ts +25 -0
- package/src/core/hash.ts +19 -0
- package/src/core/history.ts +69 -0
- package/src/core/index.ts +79 -0
- package/src/core/measure.ts +17 -0
- package/src/core/report.ts +27 -0
- package/src/core/scrub.ts +102 -0
- package/src/core/task.ts +180 -0
- package/src/core/time.ts +14 -0
- package/src/core/timeout.ts +10 -0
- package/src/core/version.ts +2 -0
- package/src/data/baseline.ts +89 -0
- package/src/data/compress.ts +31 -0
- package/src/data/custom.ts +18 -0
- package/src/data/dimension.ts +42 -0
- package/src/data/encode.ts +109 -0
- package/src/data/envelope.ts +46 -0
- package/src/data/index.ts +43 -0
- package/src/data/limit.ts +42 -0
- package/src/data/metadata.ts +232 -0
- package/src/data/metric.ts +51 -0
- package/src/data/ping.ts +36 -0
- package/src/data/summary.ts +34 -0
- package/src/data/token.ts +39 -0
- package/src/data/upgrade.ts +36 -0
- package/src/data/upload.ts +250 -0
- package/src/data/variable.ts +46 -0
- package/src/diagnostic/encode.ts +40 -0
- package/src/diagnostic/image.ts +23 -0
- package/src/diagnostic/index.ts +14 -0
- package/src/diagnostic/internal.ts +41 -0
- package/src/diagnostic/script.ts +45 -0
- package/src/global.ts +22 -0
- package/src/index.ts +8 -0
- package/src/interaction/click.ts +140 -0
- package/src/interaction/encode.ts +140 -0
- package/src/interaction/index.ts +45 -0
- package/src/interaction/input.ts +64 -0
- package/src/interaction/pointer.ts +108 -0
- package/src/interaction/resize.ts +30 -0
- package/src/interaction/scroll.ts +73 -0
- package/src/interaction/selection.ts +66 -0
- package/src/interaction/timeline.ts +65 -0
- package/src/interaction/unload.ts +25 -0
- package/src/interaction/visibility.ts +24 -0
- package/src/layout/box.ts +83 -0
- package/src/layout/discover.ts +27 -0
- package/src/layout/document.ts +46 -0
- package/src/layout/dom.ts +442 -0
- package/src/layout/encode.ts +111 -0
- package/src/layout/extract.ts +75 -0
- package/src/layout/index.ts +25 -0
- package/src/layout/mutation.ts +232 -0
- package/src/layout/node.ts +211 -0
- package/src/layout/offset.ts +19 -0
- package/src/layout/region.ts +143 -0
- package/src/layout/schema.ts +66 -0
- package/src/layout/selector.ts +24 -0
- package/src/layout/target.ts +44 -0
- package/src/layout/traverse.ts +28 -0
- package/src/performance/connection.ts +37 -0
- package/src/performance/encode.ts +40 -0
- package/src/performance/index.ts +15 -0
- package/src/performance/navigation.ts +31 -0
- package/src/performance/observer.ts +87 -0
- package/test/core.test.ts +82 -0
- package/test/helper.ts +104 -0
- package/test/html/core.html +17 -0
- package/test/tsconfig.test.json +6 -0
- package/tsconfig.json +21 -0
- package/tslint.json +33 -0
- package/types/core.d.ts +127 -0
- package/types/data.d.ts +344 -0
- package/types/diagnostic.d.ts +24 -0
- package/types/index.d.ts +30 -0
- package/types/interaction.d.ts +110 -0
- package/types/layout.d.ts +200 -0
- package/types/performance.d.ts +40 -0
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
import { Privacy } from "@clarity-types/core";
|
|
2
|
+
import { BooleanFlag } from "@clarity-types/data";
|
|
3
|
+
|
|
4
|
+
/* Enum */
|
|
5
|
+
|
|
6
|
+
export const enum Source {
|
|
7
|
+
Discover,
|
|
8
|
+
ChildListAdd,
|
|
9
|
+
ChildListRemove,
|
|
10
|
+
Attributes,
|
|
11
|
+
CharacterData
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export const enum InteractionState {
|
|
15
|
+
Rendered = 0,
|
|
16
|
+
Visible = 10,
|
|
17
|
+
Clicked = 20,
|
|
18
|
+
Input = 30
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export const enum Constant {
|
|
22
|
+
Empty = "",
|
|
23
|
+
SvgPrefix = "svg:",
|
|
24
|
+
DataPrefix = "data:",
|
|
25
|
+
IFramePrefix = "iframe:",
|
|
26
|
+
SvgNamespace = "http://www.w3.org/2000/svg",
|
|
27
|
+
DevHook = "__CLARITY_DEVTOOLS_HOOK__",
|
|
28
|
+
Id = "id",
|
|
29
|
+
Class = "class",
|
|
30
|
+
Href = "href",
|
|
31
|
+
Src = "src",
|
|
32
|
+
Srcset = "srcset",
|
|
33
|
+
Box = "#",
|
|
34
|
+
Period = ".",
|
|
35
|
+
MaskData = "data-clarity-mask",
|
|
36
|
+
UnmaskData = "data-clarity-unmask",
|
|
37
|
+
RegionData = "data-clarity-region",
|
|
38
|
+
Type = "type",
|
|
39
|
+
Submit = "submit",
|
|
40
|
+
Name = "name",
|
|
41
|
+
Base = "*B",
|
|
42
|
+
SameOrigin = "*O",
|
|
43
|
+
Object = "object",
|
|
44
|
+
Function = "function",
|
|
45
|
+
StyleTag = "STYLE",
|
|
46
|
+
InputTag = "INPUT",
|
|
47
|
+
IFrameTag = "IFRAME",
|
|
48
|
+
ImageTag = "IMG",
|
|
49
|
+
TitleTag = "TITLE",
|
|
50
|
+
SvgTag = "svg:svg",
|
|
51
|
+
BaseTag = "BASE",
|
|
52
|
+
NativeCode = "[native code]",
|
|
53
|
+
DocumentTag = "*D",
|
|
54
|
+
ShadowDomTag = "*S",
|
|
55
|
+
PolyfillShadowDomTag = "*P",
|
|
56
|
+
TextTag = "*T",
|
|
57
|
+
SuspendMutationTag = "*M",
|
|
58
|
+
ChildList = "childList",
|
|
59
|
+
Attributes = "attributes",
|
|
60
|
+
CharacterData = "characterData",
|
|
61
|
+
Suspend = "suspend",
|
|
62
|
+
LoadEvent = "load",
|
|
63
|
+
Pixel = "px",
|
|
64
|
+
BorderBox = "border-box",
|
|
65
|
+
Value = "value",
|
|
66
|
+
MutationObserver = "MutationObserver",
|
|
67
|
+
Zone = "Zone",
|
|
68
|
+
Symbol = "__symbol__",
|
|
69
|
+
JsonLD = "application/ld+json",
|
|
70
|
+
String = "string",
|
|
71
|
+
Number = "number",
|
|
72
|
+
Disable = "disable",
|
|
73
|
+
HTML = "HTML",
|
|
74
|
+
Property = "property",
|
|
75
|
+
Content = "content",
|
|
76
|
+
Generator = "generator",
|
|
77
|
+
ogType = "og:type",
|
|
78
|
+
ogTitle = "og:title"
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export const enum JsonLD {
|
|
82
|
+
Type = "@type",
|
|
83
|
+
Recipe = "recipe",
|
|
84
|
+
Product = "product",
|
|
85
|
+
AggregateRating = "aggregaterating",
|
|
86
|
+
Author = "person",
|
|
87
|
+
Offer = "offer",
|
|
88
|
+
Brand = "brand",
|
|
89
|
+
RatingValue = "ratingValue",
|
|
90
|
+
BestRating = "bestRating",
|
|
91
|
+
WorstRating = "worstRating",
|
|
92
|
+
RatingCount = "ratingCount",
|
|
93
|
+
ReviewCount = "reviewCount",
|
|
94
|
+
Availability = "availability",
|
|
95
|
+
Price = "price",
|
|
96
|
+
PriceCurrency = "priceCurrency",
|
|
97
|
+
ItemCondition = "itemCondition",
|
|
98
|
+
Category = "category",
|
|
99
|
+
Sku = "sku",
|
|
100
|
+
Name = "name",
|
|
101
|
+
Article = "article",
|
|
102
|
+
Posting = "posting",
|
|
103
|
+
Headline = "headline",
|
|
104
|
+
Creator = "creator"
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
export const enum Setting {
|
|
108
|
+
LookAhead = 33, // 33ms
|
|
109
|
+
MutationSuspendThreshold = 10, // Stop listening for mutations after hitting a threshold count
|
|
110
|
+
MutationActivePeriod = 3000 // Unit: milliseconds. Let mutations continue as normal during active periods of user interactions
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/* Helper Interfaces */
|
|
114
|
+
export interface Box {
|
|
115
|
+
x: number; // Left
|
|
116
|
+
y: number; // Top
|
|
117
|
+
w: number; // Width
|
|
118
|
+
h: number; // Height
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
export interface Attributes {
|
|
122
|
+
[key: string]: string;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
export interface NodeInfo {
|
|
126
|
+
tag: string;
|
|
127
|
+
path?: string;
|
|
128
|
+
attributes?: Attributes;
|
|
129
|
+
value?: string;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
export interface NodeValue {
|
|
133
|
+
id: number;
|
|
134
|
+
parent: number;
|
|
135
|
+
previous: number;
|
|
136
|
+
position: number;
|
|
137
|
+
children: number[];
|
|
138
|
+
data: NodeInfo;
|
|
139
|
+
selector: string;
|
|
140
|
+
region: number;
|
|
141
|
+
metadata: NodeMeta;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
export interface NodeMeta {
|
|
145
|
+
active: boolean;
|
|
146
|
+
privacy: Privacy;
|
|
147
|
+
size: number[];
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
export interface NodeChange {
|
|
151
|
+
time: number;
|
|
152
|
+
source: Source;
|
|
153
|
+
value: NodeValue;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
export interface MutationQueue {
|
|
157
|
+
time: number;
|
|
158
|
+
mutations: MutationRecord[];
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
export interface MutationHistory {
|
|
162
|
+
[key: string]: [/* Count */ number, /* Remove Nodes Buffer */ NodeList?];
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
export interface RegionQueue {
|
|
166
|
+
node: Node;
|
|
167
|
+
data: RegionData;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
export interface RegionState {
|
|
171
|
+
time: number;
|
|
172
|
+
data: RegionData;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
/* Event Data */
|
|
176
|
+
|
|
177
|
+
export interface DocumentData {
|
|
178
|
+
width: number;
|
|
179
|
+
height: number;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
export interface RegionData {
|
|
183
|
+
id: number;
|
|
184
|
+
state: InteractionState;
|
|
185
|
+
name: string;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
export interface BoxData {
|
|
189
|
+
id: number;
|
|
190
|
+
width: number;
|
|
191
|
+
height: number;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
export interface TargetMetadata {
|
|
195
|
+
id: number;
|
|
196
|
+
hash: string;
|
|
197
|
+
privacy: Privacy;
|
|
198
|
+
selector: string;
|
|
199
|
+
node: Node;
|
|
200
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { BooleanFlag, Target } from "./data";
|
|
2
|
+
|
|
3
|
+
/* Helper Interface */
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
// Reference: https://wicg.github.io/netinfo/#networkinformation-interface
|
|
7
|
+
export interface NavigatorConnection extends EventTarget {
|
|
8
|
+
effectiveType: string;
|
|
9
|
+
downlinkMax: number;
|
|
10
|
+
downlink: number;
|
|
11
|
+
rtt: number;
|
|
12
|
+
saveData: boolean;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/* Event Data */
|
|
16
|
+
export interface NavigationData {
|
|
17
|
+
fetchStart: number;
|
|
18
|
+
connectStart: number;
|
|
19
|
+
connectEnd: number;
|
|
20
|
+
requestStart: number;
|
|
21
|
+
responseStart: number;
|
|
22
|
+
responseEnd: number;
|
|
23
|
+
domInteractive: number;
|
|
24
|
+
domComplete: number;
|
|
25
|
+
loadEventStart: number;
|
|
26
|
+
loadEventEnd: number;
|
|
27
|
+
redirectCount: number;
|
|
28
|
+
size: number;
|
|
29
|
+
type: string;
|
|
30
|
+
protocol: string;
|
|
31
|
+
encodedSize: number;
|
|
32
|
+
decodedSize: number;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export interface ConnectionData {
|
|
36
|
+
downlink: number;
|
|
37
|
+
rtt: number;
|
|
38
|
+
saveData: BooleanFlag;
|
|
39
|
+
type: string;
|
|
40
|
+
}
|