@gemx-dev/clarity-js 0.8.39

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.
Files changed (118) hide show
  1. package/README.md +1 -0
  2. package/build/clarity.extended.js +1 -0
  3. package/build/clarity.insight.js +1 -0
  4. package/build/clarity.js +6433 -0
  5. package/build/clarity.livechat.js +1 -0
  6. package/build/clarity.min.js +1 -0
  7. package/build/clarity.module.js +6429 -0
  8. package/build/clarity.performance.js +1 -0
  9. package/build/dynamic/clarity.crisp.js +1 -0
  10. package/build/dynamic/clarity.tidio.js +1 -0
  11. package/package.json +55 -0
  12. package/rollup.config.ts +161 -0
  13. package/src/clarity.ts +71 -0
  14. package/src/core/api.ts +8 -0
  15. package/src/core/config.ts +29 -0
  16. package/src/core/copy.ts +3 -0
  17. package/src/core/dynamic.ts +57 -0
  18. package/src/core/event.ts +53 -0
  19. package/src/core/hash.ts +19 -0
  20. package/src/core/history.ts +71 -0
  21. package/src/core/index.ts +81 -0
  22. package/src/core/measure.ts +19 -0
  23. package/src/core/report.ts +35 -0
  24. package/src/core/scrub.ts +202 -0
  25. package/src/core/task.ts +181 -0
  26. package/src/core/throttle.ts +46 -0
  27. package/src/core/time.ts +26 -0
  28. package/src/core/timeout.ts +10 -0
  29. package/src/core/version.ts +2 -0
  30. package/src/data/baseline.ts +162 -0
  31. package/src/data/compress.ts +31 -0
  32. package/src/data/consent.ts +75 -0
  33. package/src/data/custom.ts +23 -0
  34. package/src/data/dimension.ts +53 -0
  35. package/src/data/encode.ts +155 -0
  36. package/src/data/envelope.ts +53 -0
  37. package/src/data/extract.ts +211 -0
  38. package/src/data/index.ts +50 -0
  39. package/src/data/limit.ts +44 -0
  40. package/src/data/metadata.ts +408 -0
  41. package/src/data/metric.ts +51 -0
  42. package/src/data/ping.ts +36 -0
  43. package/src/data/signal.ts +30 -0
  44. package/src/data/summary.ts +34 -0
  45. package/src/data/token.ts +39 -0
  46. package/src/data/upgrade.ts +44 -0
  47. package/src/data/upload.ts +333 -0
  48. package/src/data/variable.ts +84 -0
  49. package/src/diagnostic/encode.ts +40 -0
  50. package/src/diagnostic/fraud.ts +37 -0
  51. package/src/diagnostic/index.ts +13 -0
  52. package/src/diagnostic/internal.ts +28 -0
  53. package/src/diagnostic/script.ts +35 -0
  54. package/src/dynamic/agent/blank.ts +2 -0
  55. package/src/dynamic/agent/crisp.ts +40 -0
  56. package/src/dynamic/agent/encode.ts +25 -0
  57. package/src/dynamic/agent/index.ts +8 -0
  58. package/src/dynamic/agent/livechat.ts +58 -0
  59. package/src/dynamic/agent/tidio.ts +44 -0
  60. package/src/global.ts +6 -0
  61. package/src/index.ts +9 -0
  62. package/src/insight/blank.ts +14 -0
  63. package/src/insight/encode.ts +61 -0
  64. package/src/insight/snapshot.ts +115 -0
  65. package/src/interaction/change.ts +38 -0
  66. package/src/interaction/click.ts +163 -0
  67. package/src/interaction/clipboard.ts +32 -0
  68. package/src/interaction/encode.ts +207 -0
  69. package/src/interaction/focus.ts +25 -0
  70. package/src/interaction/index.ts +60 -0
  71. package/src/interaction/input.ts +58 -0
  72. package/src/interaction/pointer.ts +137 -0
  73. package/src/interaction/resize.ts +50 -0
  74. package/src/interaction/scroll.ts +129 -0
  75. package/src/interaction/selection.ts +66 -0
  76. package/src/interaction/submit.ts +30 -0
  77. package/src/interaction/timeline.ts +69 -0
  78. package/src/interaction/unload.ts +26 -0
  79. package/src/interaction/visibility.ts +28 -0
  80. package/src/layout/animation.ts +133 -0
  81. package/src/layout/custom.ts +43 -0
  82. package/src/layout/discover.ts +31 -0
  83. package/src/layout/document.ts +46 -0
  84. package/src/layout/dom.ts +439 -0
  85. package/src/layout/encode.ts +154 -0
  86. package/src/layout/index.ts +42 -0
  87. package/src/layout/mutation.ts +412 -0
  88. package/src/layout/node.ts +294 -0
  89. package/src/layout/offset.ts +19 -0
  90. package/src/layout/region.ts +151 -0
  91. package/src/layout/schema.ts +63 -0
  92. package/src/layout/selector.ts +82 -0
  93. package/src/layout/style.ts +160 -0
  94. package/src/layout/target.ts +32 -0
  95. package/src/layout/traverse.ts +28 -0
  96. package/src/performance/blank.ts +10 -0
  97. package/src/performance/encode.ts +31 -0
  98. package/src/performance/index.ts +12 -0
  99. package/src/performance/interaction.ts +125 -0
  100. package/src/performance/navigation.ts +31 -0
  101. package/src/performance/observer.ts +112 -0
  102. package/src/queue.ts +33 -0
  103. package/test/core.test.ts +139 -0
  104. package/test/helper.ts +167 -0
  105. package/test/html/core.html +34 -0
  106. package/test/stub.test.ts +7 -0
  107. package/test/tsconfig.test.json +6 -0
  108. package/tsconfig.json +21 -0
  109. package/tslint.json +33 -0
  110. package/types/agent.d.ts +39 -0
  111. package/types/core.d.ts +150 -0
  112. package/types/data.d.ts +568 -0
  113. package/types/diagnostic.d.ts +24 -0
  114. package/types/global.d.ts +30 -0
  115. package/types/index.d.ts +40 -0
  116. package/types/interaction.d.ts +174 -0
  117. package/types/layout.d.ts +277 -0
  118. package/types/performance.d.ts +31 -0
@@ -0,0 +1,568 @@
1
+ import { Time } from "@clarity-types/core";
2
+ export type Target = number | Node;
3
+ export type Token = string | number | number[] | string[] | (string | number)[];
4
+ export type DecodedToken = any | any[];
5
+
6
+ export type MetadataCallback = (data: Metadata, playback: boolean, consentStatus?: ConsentState) => void;
7
+ export interface MetadataCallbackOptions {
8
+ callback: MetadataCallback;
9
+ wait: boolean;
10
+ recall: boolean;
11
+ called: boolean;
12
+ consentInfo: boolean;
13
+ }
14
+ export type SignalCallback = (data: ClaritySignal) => void;
15
+
16
+ /* Enum */
17
+ export const enum Event {
18
+ /* Data */
19
+ Metric = 0,
20
+ Dimension = 1,
21
+ Upload = 2,
22
+ Upgrade = 3,
23
+ Baseline = 4,
24
+ Discover = 5,
25
+ Mutation = 6,
26
+ Region = 7,
27
+ Document = 8,
28
+ Click = 9,
29
+ Scroll = 10,
30
+ Resize = 11,
31
+ MouseMove = 12,
32
+ MouseDown = 13,
33
+ MouseUp = 14,
34
+ MouseWheel = 15,
35
+ DoubleClick = 16,
36
+ TouchStart = 17,
37
+ TouchEnd = 18,
38
+ TouchMove = 19,
39
+ TouchCancel = 20,
40
+ Selection = 21,
41
+ Timeline = 22,
42
+ Page = 23,
43
+ Custom = 24,
44
+ Ping = 25,
45
+ Unload = 26,
46
+ Input = 27,
47
+ Visibility = 28,
48
+ Navigation = 29,
49
+ /**
50
+ * @deprecated No longer support Network Connection
51
+ */
52
+ Connection = 30,
53
+ ScriptError = 31,
54
+ /**
55
+ * @deprecated No longer support Image Error
56
+ */
57
+ ImageError = 32,
58
+ Log = 33,
59
+ Variable = 34,
60
+ Limit = 35,
61
+ Summary = 36,
62
+ /**
63
+ * @deprecated No longer support Box event
64
+ */
65
+ Box = 37,
66
+ Clipboard = 38,
67
+ Submit = 39,
68
+ Extract = 40,
69
+ Fraud = 41,
70
+ Change = 42,
71
+ Snapshot = 43,
72
+ Animation = 44,
73
+ StyleSheetAdoption = 45,
74
+ StyleSheetUpdate = 46,
75
+ Consent = 47,
76
+ ContextMenu = 48,
77
+ // 49 is reserved for internal use
78
+ Focus = 50,
79
+ CustomElement = 51,
80
+ Chat = 52,
81
+
82
+ // Apps specific events
83
+ WebViewDiscover = 100,
84
+ WebViewMutation = 101,
85
+ MutationError = 102,
86
+ FragmentVisibility = 103,
87
+ Keystrokes = 104,
88
+ BackGesture = 105,
89
+ WebViewStatus = 106,
90
+ AppInstallReferrer = 107,
91
+ // 200-300 reserved for internal use
92
+ }
93
+
94
+ export const enum Metric {
95
+ ClientTimestamp = 0,
96
+ Playback = 1,
97
+ TotalBytes = 2,
98
+ LayoutCost = 3,
99
+ TotalCost = 4,
100
+ InvokeCount = 5,
101
+ ThreadBlockedTime = 6,
102
+ LongTaskCount = 7,
103
+ LargestPaint = 8,
104
+ CumulativeLayoutShift = 9,
105
+ FirstInputDelay = 10,
106
+ RatingValue = 11,
107
+ RatingCount = 12,
108
+ ProductPrice = 13,
109
+ ScreenWidth = 14,
110
+ ScreenHeight = 15,
111
+ ColorDepth = 16,
112
+ ReviewCount = 17,
113
+ BestRating = 18,
114
+ WorstRating = 19,
115
+ CartPrice = 20,
116
+ CartShipping = 21,
117
+ CartDiscount = 22,
118
+ CartTax = 23,
119
+ CartTotal = 24,
120
+ EventCount = 25,
121
+ Automation = 26,
122
+ Mobile = 27,
123
+ UploadTime = 28,
124
+ SinglePage = 29,
125
+ /**
126
+ * @deprecated Browser API is deprecated. Reference: https://developer.mozilla.org/en-US/docs/Web/API/Performance/memory
127
+ */
128
+ UsedMemory = 30,
129
+ Iframed = 31,
130
+ MaxTouchPoints = 32,
131
+ HardwareConcurrency = 33,
132
+ DeviceMemory = 34,
133
+ Electron = 35,
134
+ /**
135
+ * @deprecated No longer tracking
136
+ */
137
+ ConstructedStyles = 36,
138
+ /**
139
+ * @deprecated Move it to dimension as it'll report only last value
140
+ */
141
+ InteractionNextPaint = 37,
142
+ HistoryClear = 38,
143
+ AngularZone = 39,
144
+ // 200-300 reserved for internal use
145
+ }
146
+
147
+ export const enum Dimension {
148
+ UserAgent = 0,
149
+ Url = 1,
150
+ Referrer = 2,
151
+ PageTitle = 3,
152
+ NetworkHosts = 4,
153
+ SchemaType = 5,
154
+ ProductBrand = 6,
155
+ ProductAvailability = 7,
156
+ AuthorName = 8,
157
+ Language = 9,
158
+ ProductName = 10,
159
+ ProductCategory = 11,
160
+ ProductSku = 12,
161
+ ProductCurrency = 13,
162
+ ProductCondition = 14,
163
+ TabId = 15,
164
+ PageLanguage = 16,
165
+ DocumentDirection = 17,
166
+ Headline = 18,
167
+ MetaType = 19,
168
+ MetaTitle = 20,
169
+ Generator = 21,
170
+ Platform = 22,
171
+ PlatformVersion = 23,
172
+ Brand = 24,
173
+ Model = 25,
174
+ DevicePixelRatio = 26,
175
+ ConnectionType = 27,
176
+ Dob = 28,
177
+ CookieVersion = 29,
178
+ DeviceFamily = 30, // Allows iOS SDK to override the DeviceFamily value parsed from UserAgent.
179
+ InitialScrollTop = 31,
180
+ InitialScrollBottom = 32,
181
+ AncestorOrigins = 33,
182
+ Timezone = 34,
183
+ TimezoneOffset = 35,
184
+ Consent = 36,
185
+ InteractionNextPaint = 37,
186
+ // 200-300 reserved for internal use
187
+ }
188
+
189
+ export const enum Check {
190
+ None = 0,
191
+ Payload = 1,
192
+ Shutdown = 2,
193
+ Retry = 3,
194
+ Bytes = 4,
195
+ Collection = 5,
196
+ Server = 6,
197
+ Page = 7,
198
+ }
199
+
200
+ export const enum Code {
201
+ RunTask = 0,
202
+ CssRules = 1,
203
+ MutationObserver = 2,
204
+ PerformanceObserver = 3,
205
+ CallStackDepth = 4,
206
+ Selector = 5,
207
+ Metric = 6,
208
+ /**
209
+ * @deprecated No longer support ContentSecurityPolicy
210
+ */
211
+ ContentSecurityPolicy = 7,
212
+ Config = 8,
213
+ FunctionExecutionTime = 9,
214
+ LeanLimit = 10,
215
+ }
216
+
217
+ export const enum Severity {
218
+ Info = 0,
219
+ Warning = 1,
220
+ Error = 2,
221
+ Fatal = 3,
222
+ }
223
+
224
+ export const enum Upload {
225
+ Async = 0,
226
+ Beacon = 1,
227
+ }
228
+
229
+ export const enum BooleanFlag {
230
+ False = 0,
231
+ True = 1,
232
+ }
233
+
234
+ export const enum GCMConsent {
235
+ Unknown = 0,
236
+ Granted = 1,
237
+ Denied = 2,
238
+ }
239
+
240
+ export const enum IframeStatus {
241
+ Unknown = 0,
242
+ TopFrame = 1,
243
+ Iframe = 2,
244
+ }
245
+
246
+ export const enum Setting {
247
+ Expire = 365, // 1 Year
248
+ SessionExpire = 1, // 1 Day
249
+ CookieVersion = 2, // Increment this version every time there's a cookie schema change
250
+ SessionTimeout = 30 * Time.Minute, // 30 minutes
251
+ CookieInterval = 1, // 1 Day
252
+ PingInterval = 1 * Time.Minute, // 1 Minute
253
+ PingTimeout = 5 * Time.Minute, // 5 Minutes
254
+ SummaryInterval = 100, // Same events within 100ms will be collapsed into single summary
255
+ ClickText = 25, // Maximum number of characters to send as part of Click event's text field
256
+ PayloadLimit = 128, // Do not allow more than specified payloads per page
257
+ PageLimit = 128, // Do not allow more than 128 pages in a session
258
+ ShutdownLimit = 2 * Time.Hour, // Shutdown instrumentation after specified time
259
+ RetryLimit = 1, // Maximum number of attempts to upload a payload before giving up
260
+ PlaybackBytesLimit = 10 * 1024 * 1024, // 10MB
261
+ CollectionLimit = 128, // Number of unique entries for dimensions
262
+ ClickPrecision = 32767, // 2^15 - 1
263
+ BoxPrecision = 100, // Up to 2 decimal points (e.g. 34.56)
264
+ ScriptErrorLimit = 5, // Do not send the same script error more than 5 times per page
265
+ DimensionLimit = 256, // Do not extract dimensions which are over 256 characters
266
+ WordLength = 5, // Estimated average size of a word,
267
+ RestartDelay = 250, // Wait for 250ms before starting to wire up again
268
+ CallStackDepth = 20, // Maximum call stack depth before bailing out
269
+ RatingScale = 100, // Scale rating to specified scale
270
+ ViewportIntersectionRatio = 0.05, // Ratio of intersection area in comparison to viewport area before it's marked visible
271
+ IntersectionRatio = 0.8, // Ratio of intersection area in comparison to element's area before it's marked visible
272
+ MaxFirstPayloadBytes = 1 * 1024 * 1024, // 1MB: Cap the very first payload to a maximum of 1MB
273
+ MegaByte = 1024 * 1024, // 1MB
274
+ UploadFactor = 3, // Slow down sequence by specified factor
275
+ MinUploadDelay = 100, // Minimum time before we are ready to flush events to the server
276
+ MaxUploadDelay = 30 * Time.Second, // Do flush out payload once every 30s,
277
+ ExtractLimit = 10000, // Do not extract more than 10000 characters
278
+ ChecksumPrecision = 28, // n-bit integer to represent token hash
279
+ UploadTimeout = 15000, // Timeout in ms for XHR requests
280
+ LongTask = 30, // Long Task threshold in ms
281
+ MaxBeaconPayloadBytes = 64 * 1024, // 64KB: Cap the beacon payload to a maximum of 64KB
282
+ }
283
+
284
+ export const enum Character {
285
+ Zero = 48,
286
+ Nine = 57,
287
+ At = 64,
288
+ Blank = 32,
289
+ Tab = 9,
290
+ NewLine = 10,
291
+ Return = 13,
292
+ }
293
+
294
+ export const enum ApplicationPlatform {
295
+ WebApp = 0,
296
+ }
297
+
298
+ export const enum Constant {
299
+ Auto = "Auto",
300
+ Config = "Config",
301
+ Clarity = "clarity",
302
+ Restart = "restart",
303
+ Suspend = "suspend",
304
+ Pause = "pause",
305
+ Resume = "resume",
306
+ Report = "report",
307
+ Memory = "memory",
308
+ Empty = "",
309
+ Space = " ",
310
+ Expires = "expires=",
311
+ Domain = "domain=",
312
+ Dropped = "*na*",
313
+ Comma = ",",
314
+ Dot = ".",
315
+ At = "@",
316
+ Asterix = "*",
317
+ Semicolon = ";",
318
+ Equals = "=",
319
+ Path = ";path=/",
320
+ Target = "target",
321
+ Blank = "_blank",
322
+ Parent = "_parent",
323
+ Top = "_top",
324
+ String = "string",
325
+ Number = "number",
326
+ Email = "email",
327
+ CookieKey = "_clck", // Clarity Cookie Key
328
+ SessionKey = "_clsk", // Clarity Session Key
329
+ TabKey = "_cltk", // Clarity Tab Key
330
+ Pipe = "|",
331
+ End = "END",
332
+ Upgrade = "UPGRADE",
333
+ Action = "ACTION",
334
+ Signal = "SIGNAL",
335
+ Extract = "EXTRACT",
336
+ Snapshot = "SNAPSHOT",
337
+ Module = "MODULE",
338
+ UserHint = "userHint",
339
+ UserType = "userType",
340
+ UserId = "userId",
341
+ SessionId = "sessionId",
342
+ PageId = "pageId",
343
+ Mask = "•", // Placeholder character for explicitly masked content
344
+ Digit = "▫", // Placeholder character for digits
345
+ Letter = "▪", // Placeholder character for letters
346
+ SessionStorage = "sessionStorage",
347
+ Cookie = "cookie",
348
+ Navigation = "navigation",
349
+ Resource = "resource",
350
+ LongTask = "longtask",
351
+ FID = "first-input",
352
+ CLS = "layout-shift",
353
+ LCP = "largest-contentful-paint",
354
+ PerformanceEventTiming = "event",
355
+ HTTPS = "https://",
356
+ CompressionStream = "CompressionStream",
357
+ Accept = "Accept",
358
+ ClarityGzip = "application/x-clarity-gzip",
359
+ Tilde = "~",
360
+ ArrayStart = "[",
361
+ ConditionStart = "{",
362
+ ConditionEnd = "}",
363
+ Seperator = "<SEP>",
364
+ Timeout = "Timeout",
365
+ Bang = "!",
366
+ SHA256 = "SHA-256",
367
+ Electron = "Electron",
368
+ Caret = "^",
369
+ Granted = "granted",
370
+ Denied = "denied",
371
+ AdStorage = "ad_storage",
372
+ AnalyticsStorage = "analytics_storage",
373
+ }
374
+
375
+ export const enum XMLReadyState {
376
+ Unsent = 0,
377
+ Opened = 1,
378
+ Headers_Recieved = 2,
379
+ Loading = 3,
380
+ Done = 4,
381
+ }
382
+
383
+ export const enum ConsentSource {
384
+ Implicit = 0,
385
+ API = 1,
386
+ GCM = 2,
387
+ }
388
+
389
+ /* Helper Interfaces */
390
+
391
+ export interface Payload {
392
+ e: Token[] /* Envelope */;
393
+ a: Token[][] /* Events that are used for data analysis */;
394
+ p: Token[][] /* Events that are primarily used for session playback */;
395
+ }
396
+
397
+ export interface EncodedPayload {
398
+ e: string /* Envelope */;
399
+ a: string /* Analytics Payload */;
400
+ p: string /* Playback Payload */;
401
+ }
402
+
403
+ export interface Metadata {
404
+ projectId: string;
405
+ userId: string;
406
+ sessionId: string;
407
+ pageNum: number;
408
+ }
409
+
410
+ export interface Session {
411
+ session: string;
412
+ ts: number;
413
+ count: number;
414
+ upgrade: BooleanFlag;
415
+ upload: string;
416
+ }
417
+
418
+ export interface User {
419
+ id: string;
420
+ version: number;
421
+ expiry: number;
422
+ consent: BooleanFlag;
423
+ dob: number;
424
+ }
425
+
426
+ export interface Envelope extends Metadata {
427
+ sequence: number;
428
+ start: number;
429
+ duration: number;
430
+ version: string;
431
+ upload: Upload;
432
+ end: BooleanFlag;
433
+ applicationPlatform: number;
434
+ url: string;
435
+ }
436
+
437
+ export interface Transit {
438
+ [key: number]: {
439
+ data: string;
440
+ attempts: number;
441
+ };
442
+ }
443
+
444
+ export interface BaselineState {
445
+ time: number;
446
+ event: number;
447
+ data: BaselineData;
448
+ }
449
+
450
+ /* Event Data */
451
+ export interface BaselineData {
452
+ visible: BooleanFlag;
453
+ docWidth: number;
454
+ docHeight: number;
455
+ screenWidth: number;
456
+ screenHeight: number;
457
+ scrollX: number;
458
+ scrollY: number;
459
+ pointerX: number;
460
+ pointerY: number;
461
+ activityTime: number;
462
+ scrollTime: number;
463
+ pointerTime?: number;
464
+ moveX?: number;
465
+ moveY?: number;
466
+ moveTime?: number;
467
+ downX?: number;
468
+ downY?: number;
469
+ downTime?: number;
470
+ upX?: number;
471
+ upY?: number;
472
+ upTime?: number;
473
+ pointerPrevX?: number;
474
+ pointerPrevY?: number;
475
+ pointerPrevTime?: number;
476
+ modules: number[];
477
+ }
478
+
479
+ export interface IdentityData {
480
+ userId: string;
481
+ userHint: string;
482
+ sessionId?: string;
483
+ pageId?: string;
484
+ }
485
+
486
+ export interface DimensionData {
487
+ [key: number]: string[];
488
+ }
489
+
490
+ export interface VariableData {
491
+ [name: string]: string[];
492
+ }
493
+
494
+ // Eventually custom event can be expanded to contain more properties
495
+ // For now, restricting to key value pair where both key & value are strings
496
+ // The way it's different from variable is that Custom Event has a notion of time
497
+ // Whereas variables have no timing element and eventually will turn into custom dimensions
498
+ export interface CustomData {
499
+ key?: string;
500
+ value: string;
501
+ }
502
+
503
+ export interface MetricData {
504
+ [key: number]: number;
505
+ }
506
+
507
+ export interface PingData {
508
+ gap: number;
509
+ }
510
+
511
+ export interface LimitData {
512
+ check: number;
513
+ }
514
+
515
+ export interface SummaryData {
516
+ [event: number]: [number, number][]; // Array of [start, duration] for every event type
517
+ }
518
+
519
+ export interface UpgradeData {
520
+ key: string;
521
+ }
522
+
523
+ export interface ExtractData {
524
+ [key: number]: { [subkey: number]: string }; // Array of { subkey: number } representing the extracted data
525
+ }
526
+
527
+ export interface UploadData {
528
+ sequence: number;
529
+ attempts: number;
530
+ status: number;
531
+ }
532
+
533
+ export interface ClaritySignal {
534
+ type: string;
535
+ value?: number;
536
+ }
537
+
538
+ export interface PerformanceEventTiming extends PerformanceEntry {
539
+ duration: DOMHighResTimeStamp;
540
+ interactionId: number;
541
+ }
542
+
543
+ export interface Interaction {
544
+ id: number;
545
+ latency: number;
546
+ }
547
+
548
+ export interface ConsentState {
549
+ ad_Storage?: string;
550
+ analytics_Storage?: string;
551
+ }
552
+
553
+ export const enum ConsentType {
554
+ None = 0,
555
+ Implicit = 1,
556
+ General = 2,
557
+ }
558
+
559
+ export interface ConsentData {
560
+ source: ConsentSource;
561
+ ad_Storage: BooleanFlag;
562
+ analytics_Storage: BooleanFlag;
563
+ }
564
+
565
+ export interface GCMConsentState {
566
+ ad_Storage: GCMConsent;
567
+ analytics_Storage: GCMConsent;
568
+ }
@@ -0,0 +1,24 @@
1
+ import { Code, Severity, Target } from "./data";
2
+
3
+ /* Event Data */
4
+ export interface ScriptErrorData {
5
+ source: string;
6
+ message: string;
7
+ line: number;
8
+ column: number;
9
+ stack: string;
10
+ }
11
+
12
+ export interface LogData {
13
+ code: Code;
14
+ name: string;
15
+ message: string;
16
+ stack: string;
17
+ severity: Severity;
18
+ }
19
+
20
+ export interface FraudData {
21
+ id: number;
22
+ target: number;
23
+ checksum: string;
24
+ }
@@ -0,0 +1,30 @@
1
+ declare global {
2
+ interface Window {
3
+ clarityOverrides?: { [key: string]: ((...args: any[]) => any) | undefined };
4
+ google_tag_data?: {
5
+ ics: {
6
+ addListener: (keys: string[], callback: () => void) => void;
7
+ getConsentState: (key: string) => any;
8
+ usedUpdate: boolean;
9
+ };
10
+ };
11
+ LiveChatWidget?: {
12
+ off(eventName: string, callback: (data: any) => void): unknown;
13
+ on: (eventName: string, callback: (data: any) => void) => void;
14
+ };
15
+ tidioChatApi?: {
16
+ on: (eventName: string, callback: (data: any) => void) => void;
17
+ };
18
+ $crisp?: {
19
+ push: (
20
+ args: [action: string, eventName: string, callback: (data: any) => void]
21
+ ) => void;
22
+ };
23
+ }
24
+
25
+ interface Function {
26
+ dn?: number;
27
+ }
28
+ }
29
+
30
+ export {};
@@ -0,0 +1,40 @@
1
+ import * as Core from "./core";
2
+ import * as Data from "./data";
3
+ import * as Diagnostic from "./diagnostic";
4
+ import * as Layout from "./layout";
5
+ import * as Interaction from "./interaction";
6
+ import * as Performance from "./performance";
7
+
8
+ interface Clarity {
9
+ start: (config?: Core.Config) => void;
10
+ stop: () => void;
11
+ pause: () => void;
12
+ resume: () => void;
13
+ upgrade: (key: string) => void;
14
+ consent: () => void;
15
+ consentv2: () => void;
16
+ event: (name: string, value: string) => void;
17
+ set: (variable: string, value: string | string[]) => void;
18
+ identify: (userId: string, sessionId?: string, pageId?: string, userHint?: string) => void;
19
+ metadata: (callback: Data.MetadataCallback, wait?: boolean) => void;
20
+ signal: (callback: Data.SignalCallback) => void;
21
+ }
22
+
23
+ interface Selector {
24
+ get: (input: Layout.SelectorInput, type: Layout.Selector) => string;
25
+ reset: () => void;
26
+ }
27
+
28
+ interface Helper {
29
+ get: (node: Node) => Layout.NodeValue;
30
+ getNode: (id: number) => Node;
31
+ hash: (input: string) => string;
32
+ lookup: (hash: string) => number;
33
+ selector: Selector;
34
+ }
35
+
36
+ declare const clarity: Clarity;
37
+ declare const helper: Helper;
38
+ declare const version: string;
39
+
40
+ export { clarity, version, helper, Core, Data, Diagnostic, Layout, Interaction, Performance };