clarity-decode 0.6.34 → 0.6.35
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/build/clarity.decode.js +19 -19
- package/build/clarity.decode.min.js +1 -1
- package/build/clarity.decode.module.js +19 -19
- package/package.json +2 -2
- package/src/clarity.ts +7 -4
- package/src/diagnostic.ts +7 -0
- package/src/interaction.ts +2 -1
- package/src/layout.ts +0 -11
- package/types/data.d.ts +3 -3
- package/types/diagnostic.d.ts +3 -1
- package/types/layout.d.ts +1 -2
package/build/clarity.decode.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var version$1 = "0.6.
|
|
5
|
+
var version$1 = "0.6.35";
|
|
6
6
|
var version = version$1;
|
|
7
7
|
|
|
8
8
|
function decode$5(tokens) {
|
|
@@ -118,6 +118,13 @@ function decode$4(tokens) {
|
|
|
118
118
|
severity: tokens[6]
|
|
119
119
|
};
|
|
120
120
|
return { time: time, event: event, data: log };
|
|
121
|
+
case 41 /* Fraud */:
|
|
122
|
+
var fraud = {
|
|
123
|
+
id: tokens[2],
|
|
124
|
+
target: tokens[3],
|
|
125
|
+
hash: tokens[4]
|
|
126
|
+
};
|
|
127
|
+
return { time: time, event: event, data: fraud };
|
|
121
128
|
}
|
|
122
129
|
return null;
|
|
123
130
|
}
|
|
@@ -155,7 +162,8 @@ function decode$3(tokens) {
|
|
|
155
162
|
text: tokens[10],
|
|
156
163
|
link: tokens[11],
|
|
157
164
|
hash: clickHashes[0],
|
|
158
|
-
hashBeta: clickHashes.length > 0 ? clickHashes[1] : null
|
|
165
|
+
hashBeta: clickHashes.length > 0 ? clickHashes[1] : null,
|
|
166
|
+
trust: tokens.length > 13 ? tokens[13] : 1 /* True */
|
|
159
167
|
};
|
|
160
168
|
return { time: time, event: event, data: clickData };
|
|
161
169
|
case 38 /* Clipboard */:
|
|
@@ -253,17 +261,6 @@ function decode$2(tokens) {
|
|
|
253
261
|
regionData.push(region);
|
|
254
262
|
}
|
|
255
263
|
return { time: time, event: event, data: regionData };
|
|
256
|
-
case 37 /* Box */:
|
|
257
|
-
var boxData = [];
|
|
258
|
-
for (var i = 2; i < tokens.length; i += 3) {
|
|
259
|
-
var box = {
|
|
260
|
-
id: tokens[i],
|
|
261
|
-
width: tokens[i + 1] / 100 /* BoxPrecision */,
|
|
262
|
-
height: tokens[i + 2] / 100 /* BoxPrecision */
|
|
263
|
-
};
|
|
264
|
-
boxData.push(box);
|
|
265
|
-
}
|
|
266
|
-
return { time: time, event: event, data: boxData };
|
|
267
264
|
case 5 /* Discover */:
|
|
268
265
|
case 6 /* Mutation */:
|
|
269
266
|
var lastType = null;
|
|
@@ -421,7 +418,7 @@ function decode(input) {
|
|
|
421
418
|
var codeVersion = parseVersion(version);
|
|
422
419
|
if (jsonVersion.major !== codeVersion.major ||
|
|
423
420
|
Math.abs(jsonVersion.minor - codeVersion.minor) > 1) {
|
|
424
|
-
throw new Error("Invalid version. Actual: "
|
|
421
|
+
throw new Error("Invalid version. Actual: ".concat(payload.envelope.version, " | Expected: ").concat(version, " (+/- 1) | ").concat(input.substr(0, 250)));
|
|
425
422
|
}
|
|
426
423
|
for (var _i = 0, encoded_1 = encoded; _i < encoded_1.length; _i++) {
|
|
427
424
|
var entry = encoded_1[_i];
|
|
@@ -569,10 +566,7 @@ function decode(input) {
|
|
|
569
566
|
payload.visibility.push(decode$3(entry));
|
|
570
567
|
break;
|
|
571
568
|
case 37 /* Box */:
|
|
572
|
-
|
|
573
|
-
payload.box = [];
|
|
574
|
-
}
|
|
575
|
-
payload.box.push(decode$2(entry));
|
|
569
|
+
/* Deprecated - Intentionally, no-op. For backward compatibility. */
|
|
576
570
|
break;
|
|
577
571
|
case 7 /* Region */:
|
|
578
572
|
if (payload.region === undefined) {
|
|
@@ -605,6 +599,12 @@ function decode(input) {
|
|
|
605
599
|
}
|
|
606
600
|
payload.log.push(decode$4(entry));
|
|
607
601
|
break;
|
|
602
|
+
case 41 /* Fraud */:
|
|
603
|
+
if (payload.fraud === undefined) {
|
|
604
|
+
payload.fraud = [];
|
|
605
|
+
}
|
|
606
|
+
payload.fraud.push(decode$4(entry));
|
|
607
|
+
break;
|
|
608
608
|
case 29 /* Navigation */:
|
|
609
609
|
if (payload.navigation === undefined) {
|
|
610
610
|
payload.navigation = [];
|
|
@@ -622,7 +622,7 @@ function decode(input) {
|
|
|
622
622
|
payload.extract.push(decode$5(entry));
|
|
623
623
|
break;
|
|
624
624
|
default:
|
|
625
|
-
console.error("No handler for Event: "
|
|
625
|
+
console.error("No handler for Event: ".concat(JSON.stringify(entry)));
|
|
626
626
|
break;
|
|
627
627
|
}
|
|
628
628
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(){"use strict";var e="0.6.
|
|
1
|
+
!function(){"use strict";var e="0.6.35";function t(e){var t=e[0],a=e[1];switch(a){case 25:return{time:t,event:a,data:{gap:e[2]}};case 35:return{time:t,event:a,data:{check:e[2]}};case 24:return{time:t,event:a,data:{key:e[2],value:e[3]}};case 3:return{time:t,event:a,data:{key:e[2]}};case 2:return{time:t,event:a,data:{sequence:e[2],attempts:e[3],status:e[4]}};case 0:for(var r=2,n={};r<e.length;)n[e[r++]]=e[r++];return{time:t,event:a,data:n};case 1:for(var i=2,s={};i<e.length;)s[e[i++]]=e[i++];return{time:t,event:a,data:s};case 36:for(var c=2,o={};c<e.length;){var u=e[c++],d=e[c++];o[u]=[];for(var l=0;l<d.length-1;l+=2)o[u].push([d[l],d[l+1]])}return{time:t,event:a,data:o};case 4:return{time:t,event:a,data:{visible:e[2],docWidth:e[3],docHeight:e[4],screenWidth:e[5],screenHeight:e[6],scrollX:e[7],scrollY:e[8],pointerX:e[9],pointerY:e[10],activityTime:e[11]}};case 34:for(var v=2,p={};v<e.length;)p[e[v++]]="string"==typeof e[v+1]?[e[v++]]:e[v++];return{time:t,event:a,data:p};case 40:for(var h=2,m={};h<e.length;)m[e[h++]]=e[h++];return{time:t,event:a,data:m}}return null}function a(e){var t=e[0],a=e[1];switch(a){case 31:return{time:t,event:a,data:{message:e[2],line:e[3],column:e[4],stack:e[5],source:e[6]}};case 33:return{time:t,event:a,data:{code:e[2],name:e[3],message:e[4],stack:e[5],severity:e[6]}};case 41:return{time:t,event:a,data:{id:e[2],target:e[3],hash:e[4]}}}return null}function r(e){var t=e[0],a=e[1];switch(a){case 13:case 14:case 12:case 15:case 16:case 17:case 20:case 18:case 19:return{time:t,event:a,data:{target:e[2],x:e[3],y:e[4]}};case 9:var r=e[12].split(".");return{time:t,event:a,data:{target:e[2],x:e[3],y:e[4],eX:e[5],eY:e[6],button:e[7],reaction:e[8],context:e[9],text:e[10],link:e[11],hash:r[0],hashBeta:r.length>0?r[1]:null,trust:e.length>13?e[13]:1}};case 38:return{time:t,event:a,data:{target:e[2],action:e[3]}};case 11:return{time:t,event:a,data:{width:e[2],height:e[3]}};case 27:return{time:t,event:a,data:{target:e[2],value:e[3]}};case 21:return{time:t,event:a,data:{start:e[2],startOffset:e[3],end:e[4],endOffset:e[5]}};case 39:return{time:t,event:a,data:{target:e[2]}};case 10:return{time:t,event:a,data:{target:e[2],x:e[3],y:e[4]}};case 22:var n=e[3].split(".");return{time:t,event:a,data:{type:e[2],hash:n[0],x:e[4],y:e[5],reaction:e[6],context:e[7],hashBeta:n.length>0?n[1]:null}};case 28:return{time:t,event:a,data:{visible:e[2]}};case 26:return{time:t,event:a,data:{name:e[2]}}}return null}function n(e){var t=e[0],a=e[1];switch(a){case 8:return{time:t,event:a,data:{width:e[2],height:e[3]}};case 7:for(var r=[],n=void 0,s=2;s<e.length;s+=n){var c=void 0;if("number"==typeof e[s+2])c={id:e[s],interaction:e[s+1],visibility:e[s+2],name:e[s+3]},n=4;else{var o=e[s+1];c={id:e[s],interaction:o>=16?o:16,visibility:o<=13?o:0,name:e[s+2]},n=3}r.push(c)}return{time:t,event:a,data:r};case 5:case 6:var u=null,d=[],l=0,v=[];for(s=2;s<e.length;s++){var p=e[s],h=typeof p;switch(h){case"number":h!==u&&null!==u&&(v.push(i(d,l)),d=[],l=0),d.push(p),l++;break;case"string":d.push(p);break;case"object":if("number"===typeof p[0])for(var m=0,b=p;m<b.length;m++){var g=b[m];d.push(e.length>g?e[g]:null)}}u=h}return v.push(i(d,l)),{time:t,event:a,data:v}}return null}function i(e,t){for(var a=e[t]?e[t].split("~")[0]:e[t],r={id:Math.abs(e[0]),parent:t>1?e[1]:null,previous:t>2?e[2]:null,tag:a},n=e[0]<0,i=!1,o={},u=null,d=t+1;d<e.length;d++){var l=e[d].toString(),v=l.indexOf("="),p=l[0],h=l[l.length-1];if(d===e.length-1&&"STYLE"===r.tag)u=l;else if("*T"!==r.tag&&">"===h&&-1===v);else if("*T"!==r.tag&&"#"===p&&-1===v){var m=l.substr(1).split(".");2===m.length&&(r.width=s(m[0])/100,r.height=s(m[1])/100)}else if("*T"!==r.tag&&v>0){i=!0;var b=l.substr(0,v),g=l.substr(v+1);o[b]=g}else"*T"===r.tag&&(u=n?c(l):l)}return i&&(r.attributes=o),u&&(r.value=u),r}function s(e){return e?parseInt(e,36):null}function c(e){var t=e.trim();if(t.length>0&&-1===t.indexOf(" ")){var a=s(t);if(a>0){for(var r=Math.floor(a/6),n=a%6,i=Array(n+1).join("•"),c=0;c<r;c++)i+=(0===c&&0===n?"•":" ")+Array(6).join("•");return i}}return e}function o(e){var t=e[0],a=e[1];return 29===a?{time:t,event:a,data:{fetchStart:e[2],connectStart:e[3],connectEnd:e[4],requestStart:e[5],responseStart:e[6],responseEnd:e[7],domInteractive:e[8],domComplete:e[9],loadEventStart:e[10],loadEventEnd:e[11],redirectCount:e[12],size:e[13],type:e[14],protocol:e[15],encodedSize:e[16],decodedSize:e[17]}}:null}function u(e){var t={major:0,minor:0,patch:0,beta:0},a=e.split(".");if(3===a.length){var r=a[2].split("-b");t.major=parseInt(a[0],10),t.minor=parseInt(a[1],10),2===r.length?(t.patch=parseInt(r[0],10),t.beta=parseInt(r[1],10)):t.patch=parseInt(a[2],10)}return t}var d=Object.freeze({__proto__:null,decode:function(i){var s,c=JSON.parse(i),d={version:(s=c.e)[0],sequence:s[1],start:s[2],duration:s[3],projectId:s[4],userId:s[5],sessionId:s[6],pageNum:s[7],upload:s[8],end:s[9]},l={timestamp:Date.now(),envelope:d},v=c.p?c.a.concat(c.p):c.a;v=v.sort((function(e,t){return e[0]-t[0]}));var p=u(l.envelope.version),h=u(e);if(p.major!==h.major||Math.abs(p.minor-h.minor)>1)throw new Error("Invalid version. Actual: ".concat(l.envelope.version," | Expected: ").concat(e," (+/- 1) | ").concat(i.substr(0,250)));for(var m=0,b=v;m<b.length;m++){var g=b[m];switch(g[1]){case 4:void 0===l.baseline&&(l.baseline=[]),l.baseline.push(t(g));break;case 25:void 0===l.ping&&(l.ping=[]),l.ping.push(t(g));break;case 35:void 0===l.limit&&(l.limit=[]),l.limit.push(t(g));break;case 3:void 0===l.upgrade&&(l.upgrade=[]),l.upgrade.push(t(g));break;case 0:void 0===l.metric&&(l.metric=[]);var f=t(g);f.data[2]=i.length,l.metric.push(f);break;case 1:void 0===l.dimension&&(l.dimension=[]),l.dimension.push(t(g));break;case 36:void 0===l.summary&&(l.summary=[]),l.summary.push(t(g));break;case 24:void 0===l.custom&&(l.custom=[]),l.custom.push(t(g));break;case 34:void 0===l.variable&&(l.variable=[]),l.variable.push(t(g));break;case 2:void 0===l.upload&&(l.upload=[]),l.upload.push(t(g));break;case 13:case 14:case 12:case 15:case 16:case 17:case 20:case 18:case 19:void 0===l.pointer&&(l.pointer=[]),l.pointer.push(r(g));break;case 9:void 0===l.click&&(l.click=[]);var k=r(g);l.click.push(k);break;case 38:void 0===l.clipboard&&(l.clipboard=[]);var y=r(g);l.clipboard.push(y);break;case 10:void 0===l.scroll&&(l.scroll=[]),l.scroll.push(r(g));break;case 11:void 0===l.resize&&(l.resize=[]),l.resize.push(r(g));break;case 21:void 0===l.selection&&(l.selection=[]),l.selection.push(r(g));break;case 39:void 0===l.submit&&(l.submit=[]);var w=r(g);l.submit.push(w);break;case 22:void 0===l.timeline&&(l.timeline=[]),l.timeline.push(r(g));break;case 27:void 0===l.input&&(l.input=[]),l.input.push(r(g));break;case 26:void 0===l.unload&&(l.unload=[]),l.unload.push(r(g));break;case 28:void 0===l.visibility&&(l.visibility=[]),l.visibility.push(r(g));break;case 37:case 30:case 32:break;case 7:void 0===l.region&&(l.region=[]),l.region.push(n(g));break;case 5:case 6:void 0===l.dom&&(l.dom=[]),l.dom.push(n(g));break;case 8:void 0===l.doc&&(l.doc=[]),l.doc.push(n(g));break;case 31:void 0===l.script&&(l.script=[]),l.script.push(a(g));break;case 33:void 0===l.log&&(l.log=[]),l.log.push(a(g));break;case 41:void 0===l.fraud&&(l.fraud=[]),l.fraud.push(a(g));break;case 29:void 0===l.navigation&&(l.navigation=[]),l.navigation.push(o(g));break;case 40:void 0===l.extract&&(l.extract=[]),l.extract.push(t(g));break;default:console.error("No handler for Event: ".concat(JSON.stringify(g)))}}return l}});"undefined"!=typeof window&&(void 0!==window.clarity&&null!==window.clarity||(window.clarity={}),window.clarity.decode=d)}();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var version$1 = "0.6.
|
|
1
|
+
var version$1 = "0.6.35";
|
|
2
2
|
var version = version$1;
|
|
3
3
|
|
|
4
4
|
function decode$5(tokens) {
|
|
@@ -114,6 +114,13 @@ function decode$4(tokens) {
|
|
|
114
114
|
severity: tokens[6]
|
|
115
115
|
};
|
|
116
116
|
return { time: time, event: event, data: log };
|
|
117
|
+
case 41 /* Fraud */:
|
|
118
|
+
var fraud = {
|
|
119
|
+
id: tokens[2],
|
|
120
|
+
target: tokens[3],
|
|
121
|
+
hash: tokens[4]
|
|
122
|
+
};
|
|
123
|
+
return { time: time, event: event, data: fraud };
|
|
117
124
|
}
|
|
118
125
|
return null;
|
|
119
126
|
}
|
|
@@ -151,7 +158,8 @@ function decode$3(tokens) {
|
|
|
151
158
|
text: tokens[10],
|
|
152
159
|
link: tokens[11],
|
|
153
160
|
hash: clickHashes[0],
|
|
154
|
-
hashBeta: clickHashes.length > 0 ? clickHashes[1] : null
|
|
161
|
+
hashBeta: clickHashes.length > 0 ? clickHashes[1] : null,
|
|
162
|
+
trust: tokens.length > 13 ? tokens[13] : 1 /* True */
|
|
155
163
|
};
|
|
156
164
|
return { time: time, event: event, data: clickData };
|
|
157
165
|
case 38 /* Clipboard */:
|
|
@@ -249,17 +257,6 @@ function decode$2(tokens) {
|
|
|
249
257
|
regionData.push(region);
|
|
250
258
|
}
|
|
251
259
|
return { time: time, event: event, data: regionData };
|
|
252
|
-
case 37 /* Box */:
|
|
253
|
-
var boxData = [];
|
|
254
|
-
for (var i = 2; i < tokens.length; i += 3) {
|
|
255
|
-
var box = {
|
|
256
|
-
id: tokens[i],
|
|
257
|
-
width: tokens[i + 1] / 100 /* BoxPrecision */,
|
|
258
|
-
height: tokens[i + 2] / 100 /* BoxPrecision */
|
|
259
|
-
};
|
|
260
|
-
boxData.push(box);
|
|
261
|
-
}
|
|
262
|
-
return { time: time, event: event, data: boxData };
|
|
263
260
|
case 5 /* Discover */:
|
|
264
261
|
case 6 /* Mutation */:
|
|
265
262
|
var lastType = null;
|
|
@@ -417,7 +414,7 @@ function decode(input) {
|
|
|
417
414
|
var codeVersion = parseVersion(version);
|
|
418
415
|
if (jsonVersion.major !== codeVersion.major ||
|
|
419
416
|
Math.abs(jsonVersion.minor - codeVersion.minor) > 1) {
|
|
420
|
-
throw new Error("Invalid version. Actual: "
|
|
417
|
+
throw new Error("Invalid version. Actual: ".concat(payload.envelope.version, " | Expected: ").concat(version, " (+/- 1) | ").concat(input.substr(0, 250)));
|
|
421
418
|
}
|
|
422
419
|
for (var _i = 0, encoded_1 = encoded; _i < encoded_1.length; _i++) {
|
|
423
420
|
var entry = encoded_1[_i];
|
|
@@ -565,10 +562,7 @@ function decode(input) {
|
|
|
565
562
|
payload.visibility.push(decode$3(entry));
|
|
566
563
|
break;
|
|
567
564
|
case 37 /* Box */:
|
|
568
|
-
|
|
569
|
-
payload.box = [];
|
|
570
|
-
}
|
|
571
|
-
payload.box.push(decode$2(entry));
|
|
565
|
+
/* Deprecated - Intentionally, no-op. For backward compatibility. */
|
|
572
566
|
break;
|
|
573
567
|
case 7 /* Region */:
|
|
574
568
|
if (payload.region === undefined) {
|
|
@@ -601,6 +595,12 @@ function decode(input) {
|
|
|
601
595
|
}
|
|
602
596
|
payload.log.push(decode$4(entry));
|
|
603
597
|
break;
|
|
598
|
+
case 41 /* Fraud */:
|
|
599
|
+
if (payload.fraud === undefined) {
|
|
600
|
+
payload.fraud = [];
|
|
601
|
+
}
|
|
602
|
+
payload.fraud.push(decode$4(entry));
|
|
603
|
+
break;
|
|
604
604
|
case 29 /* Navigation */:
|
|
605
605
|
if (payload.navigation === undefined) {
|
|
606
606
|
payload.navigation = [];
|
|
@@ -618,7 +618,7 @@ function decode(input) {
|
|
|
618
618
|
payload.extract.push(decode$5(entry));
|
|
619
619
|
break;
|
|
620
620
|
default:
|
|
621
|
-
console.error("No handler for Event: "
|
|
621
|
+
console.error("No handler for Event: ".concat(JSON.stringify(entry)));
|
|
622
622
|
break;
|
|
623
623
|
}
|
|
624
624
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "clarity-decode",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.35",
|
|
4
4
|
"description": "An analytics library that uses web page interactions to generate aggregated insights",
|
|
5
5
|
"author": "Microsoft Corp.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"url": "https://github.com/Microsoft/clarity/issues"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"clarity-js": "^0.6.
|
|
29
|
+
"clarity-js": "^0.6.35"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
32
|
"@rollup/plugin-commonjs": "^19.0.1",
|
package/src/clarity.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Data, version } from "clarity-js";
|
|
2
2
|
import { BaselineEvent, CustomEvent, DecodedPayload, DecodedVersion, DimensionEvent } from "../types/data";
|
|
3
3
|
import { LimitEvent, MetricEvent, PingEvent, SummaryEvent, UpgradeEvent, UploadEvent, VariableEvent, ExtractEvent } from "../types/data";
|
|
4
|
-
import { LogEvent, ScriptErrorEvent } from "../types/diagnostic";
|
|
4
|
+
import { FraudEvent, LogEvent, ScriptErrorEvent } from "../types/diagnostic";
|
|
5
5
|
import { ClickEvent, ClipboardEvent, InputEvent, PointerEvent, ResizeEvent, ScrollEvent, SubmitEvent, TimelineEvent } from "../types/interaction";
|
|
6
6
|
import { SelectionEvent, UnloadEvent, VisibilityEvent } from "../types/interaction";
|
|
7
|
-
import {
|
|
7
|
+
import { DocumentEvent, DomEvent, RegionEvent } from "../types/layout";
|
|
8
8
|
import { NavigationEvent } from "../types/performance";
|
|
9
9
|
|
|
10
10
|
import * as data from "./data";
|
|
@@ -140,8 +140,7 @@ export function decode(input: string): DecodedPayload {
|
|
|
140
140
|
payload.visibility.push(interaction.decode(entry) as VisibilityEvent);
|
|
141
141
|
break;
|
|
142
142
|
case Data.Event.Box:
|
|
143
|
-
|
|
144
|
-
payload.box.push(layout.decode(entry) as BoxEvent);
|
|
143
|
+
/* Deprecated - Intentionally, no-op. For backward compatibility. */
|
|
145
144
|
break;
|
|
146
145
|
case Data.Event.Region:
|
|
147
146
|
if (payload.region === undefined) { payload.region = []; }
|
|
@@ -164,6 +163,10 @@ export function decode(input: string): DecodedPayload {
|
|
|
164
163
|
if (payload.log === undefined) { payload.log = []; }
|
|
165
164
|
payload.log.push(diagnostic.decode(entry) as LogEvent);
|
|
166
165
|
break;
|
|
166
|
+
case Data.Event.Fraud:
|
|
167
|
+
if (payload.fraud === undefined) { payload.fraud = []; }
|
|
168
|
+
payload.fraud.push(diagnostic.decode(entry) as FraudEvent);
|
|
169
|
+
break;
|
|
167
170
|
case Data.Event.Navigation:
|
|
168
171
|
if (payload.navigation === undefined) { payload.navigation = []; }
|
|
169
172
|
payload.navigation.push(performance.decode(entry) as NavigationEvent);
|
package/src/diagnostic.ts
CHANGED
|
@@ -23,6 +23,13 @@ export function decode(tokens: Data.Token[]): DiagnosticEvent {
|
|
|
23
23
|
severity: tokens[6] as number
|
|
24
24
|
};
|
|
25
25
|
return { time, event, data: log };
|
|
26
|
+
case Data.Event.Fraud:
|
|
27
|
+
let fraud: Diagnostic.FraudData = {
|
|
28
|
+
id: tokens[2] as number,
|
|
29
|
+
target: tokens[3] as number,
|
|
30
|
+
hash: tokens[4] as string
|
|
31
|
+
};
|
|
32
|
+
return { time, event, data: fraud };
|
|
26
33
|
}
|
|
27
34
|
return null;
|
|
28
35
|
}
|
package/src/interaction.ts
CHANGED
|
@@ -34,7 +34,8 @@ export function decode(tokens: Data.Token[]): InteractionEvent {
|
|
|
34
34
|
text: tokens[10] as string,
|
|
35
35
|
link: tokens[11] as string,
|
|
36
36
|
hash: clickHashes[0],
|
|
37
|
-
hashBeta: clickHashes.length > 0 ? clickHashes[1] : null
|
|
37
|
+
hashBeta: clickHashes.length > 0 ? clickHashes[1] : null,
|
|
38
|
+
trust: tokens.length > 13 ? tokens[13] as number : Data.BooleanFlag.True
|
|
38
39
|
};
|
|
39
40
|
return { time, event, data: clickData };
|
|
40
41
|
case Data.Event.Clipboard:
|
package/src/layout.ts
CHANGED
|
@@ -44,17 +44,6 @@ export function decode(tokens: Data.Token[]): LayoutEvent {
|
|
|
44
44
|
regionData.push(region);
|
|
45
45
|
}
|
|
46
46
|
return { time, event, data: regionData };
|
|
47
|
-
case Data.Event.Box:
|
|
48
|
-
let boxData: Layout.BoxData[] = [];
|
|
49
|
-
for (let i = 2; i < tokens.length; i += 3) {
|
|
50
|
-
let box: Layout.BoxData = {
|
|
51
|
-
id: tokens[i] as number,
|
|
52
|
-
width: tokens[i + 1] as number / Data.Setting.BoxPrecision,
|
|
53
|
-
height: tokens[i + 2] as number / Data.Setting.BoxPrecision
|
|
54
|
-
};
|
|
55
|
-
boxData.push(box);
|
|
56
|
-
}
|
|
57
|
-
return { time, event, data: boxData };
|
|
58
47
|
case Data.Event.Discover:
|
|
59
48
|
case Data.Event.Mutation:
|
|
60
49
|
let lastType = null;
|
package/types/data.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Data } from "clarity-js";
|
|
2
|
-
import { DiagnosticEvent, LogEvent, ScriptErrorEvent } from "./diagnostic";
|
|
2
|
+
import { DiagnosticEvent, FraudEvent, LogEvent, ScriptErrorEvent } from "./diagnostic";
|
|
3
3
|
import { ClickEvent, ClipboardEvent, InputEvent, InteractionEvent, PointerEvent, ResizeEvent, SubmitEvent } from "./interaction";
|
|
4
4
|
import { ScrollEvent, SelectionEvent, TimelineEvent, UnloadEvent, VisibilityEvent } from "./interaction";
|
|
5
|
-
import {
|
|
5
|
+
import { DocumentEvent, DomEvent, LayoutEvent, RegionEvent } from "./layout";
|
|
6
6
|
import { NavigationEvent, PerformanceEvent } from "./performance";
|
|
7
7
|
import { PartialEvent } from "./core";
|
|
8
8
|
|
|
@@ -67,12 +67,12 @@ export interface DecodedPayload {
|
|
|
67
67
|
upgrade?: UpgradeEvent[];
|
|
68
68
|
upload?: UploadEvent[];
|
|
69
69
|
visibility?: VisibilityEvent[];
|
|
70
|
-
box?: BoxEvent[];
|
|
71
70
|
region?: RegionEvent[];
|
|
72
71
|
dom?: DomEvent[];
|
|
73
72
|
doc?: DocumentEvent[];
|
|
74
73
|
navigation?: NavigationEvent[];
|
|
75
74
|
log?: LogEvent[];
|
|
75
|
+
fraud?: FraudEvent[];
|
|
76
76
|
baseline?: BaselineEvent[];
|
|
77
77
|
variable?: VariableEvent[];
|
|
78
78
|
custom?: CustomEvent[];
|
package/types/diagnostic.d.ts
CHANGED
|
@@ -3,6 +3,8 @@ import { PartialEvent } from "./core";
|
|
|
3
3
|
|
|
4
4
|
export interface ScriptErrorEvent extends PartialEvent { data: Diagnostic.ScriptErrorData; }
|
|
5
5
|
export interface LogEvent extends PartialEvent { data: Diagnostic.LogData; }
|
|
6
|
+
export interface FraudEvent extends PartialEvent { data: Diagnostic.FraudData; }
|
|
7
|
+
|
|
6
8
|
export interface DiagnosticEvent extends PartialEvent {
|
|
7
|
-
data: Diagnostic.LogData | Diagnostic.ScriptErrorData;
|
|
9
|
+
data: Diagnostic.FraudData | Diagnostic.LogData | Diagnostic.ScriptErrorData;
|
|
8
10
|
}
|
package/types/layout.d.ts
CHANGED
|
@@ -4,9 +4,8 @@ import { PartialEvent } from "./core";
|
|
|
4
4
|
export interface RegionEvent extends PartialEvent { data: Layout.RegionData[]; }
|
|
5
5
|
export interface DocumentEvent extends PartialEvent { data: Layout.DocumentData; }
|
|
6
6
|
export interface DomEvent extends PartialEvent { data: DomData[]; }
|
|
7
|
-
export interface BoxEvent extends PartialEvent { data: Layout.BoxData[]; }
|
|
8
7
|
export interface LayoutEvent extends PartialEvent {
|
|
9
|
-
data: Layout.RegionData[] | Layout.DocumentData | DomData[]
|
|
8
|
+
data: Layout.RegionData[] | Layout.DocumentData | DomData[];
|
|
10
9
|
}
|
|
11
10
|
|
|
12
11
|
/* Redeclare enums */
|