clarity-decode 0.6.32 → 0.6.33
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 +16 -3
- package/build/clarity.decode.min.js +1 -1
- package/build/clarity.decode.module.js +16 -3
- package/package.json +2 -2
- package/src/clarity.ts +5 -1
- package/src/data.ts +7 -0
- package/types/data.d.ts +4 -1
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.33";
|
|
6
6
|
var version = version$1;
|
|
7
7
|
|
|
8
8
|
function decode$5(tokens) {
|
|
@@ -71,6 +71,13 @@ function decode$5(tokens) {
|
|
|
71
71
|
variables[tokens[v++]] = typeof tokens[v + 1] == "string" /* String */ ? [tokens[v++]] : tokens[v++];
|
|
72
72
|
}
|
|
73
73
|
return { time: time, event: event, data: variables };
|
|
74
|
+
case 40 /* Extract */:
|
|
75
|
+
var e = 2; // Start from 3rd index since first two are used for time & event
|
|
76
|
+
var extract = {};
|
|
77
|
+
while (e < tokens.length) {
|
|
78
|
+
extract[tokens[e++]] = tokens[e++];
|
|
79
|
+
}
|
|
80
|
+
return { time: time, event: event, data: extract };
|
|
74
81
|
}
|
|
75
82
|
return null;
|
|
76
83
|
}
|
|
@@ -414,7 +421,7 @@ function decode(input) {
|
|
|
414
421
|
var codeVersion = parseVersion(version);
|
|
415
422
|
if (jsonVersion.major !== codeVersion.major ||
|
|
416
423
|
Math.abs(jsonVersion.minor - codeVersion.minor) > 1) {
|
|
417
|
-
throw new Error("Invalid version. Actual: "
|
|
424
|
+
throw new Error("Invalid version. Actual: " + payload.envelope.version + " | Expected: " + version + " (+/- 1) | " + input.substr(0, 250));
|
|
418
425
|
}
|
|
419
426
|
for (var _i = 0, encoded_1 = encoded; _i < encoded_1.length; _i++) {
|
|
420
427
|
var entry = encoded_1[_i];
|
|
@@ -608,8 +615,14 @@ function decode(input) {
|
|
|
608
615
|
case 32 /* ImageError */:
|
|
609
616
|
/* Deprecated - Intentionally, no-op. For backward compatibility. */
|
|
610
617
|
break;
|
|
618
|
+
case 40 /* Extract */:
|
|
619
|
+
if (payload.extract === undefined) {
|
|
620
|
+
payload.extract = [];
|
|
621
|
+
}
|
|
622
|
+
payload.extract.push(decode$5(entry));
|
|
623
|
+
break;
|
|
611
624
|
default:
|
|
612
|
-
console.error("No handler for Event: "
|
|
625
|
+
console.error("No handler for Event: " + JSON.stringify(entry));
|
|
613
626
|
break;
|
|
614
627
|
}
|
|
615
628
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(){"use strict";var e="0.6.
|
|
1
|
+
!function(){"use strict";var e="0.6.33";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,i={};r<e.length;)i[e[r++]]=e[r++];return{time:t,event:a,data:i};case 1:for(var n=2,s={};n<e.length;)s[e[n++]]=e[n++];return{time:t,event:a,data:s};case 36:for(var c=2,o={};c<e.length;){var u=e[c++],l=e[c++];o[u]=[];for(var d=0;d<l.length-1;d+=2)o[u].push([l[d],l[d+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]}}}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}};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 i=e[3].split(".");return{time:t,event:a,data:{type:e[2],hash:i[0],x:e[4],y:e[5],reaction:e[6],context:e[7],hashBeta:i.length>0?i[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 i(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=[],i=void 0,s=2;s<e.length;s+=i){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]},i=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]},i=3}r.push(c)}return{time:t,event:a,data:r};case 37:var u=[];for(s=2;s<e.length;s+=3){var l={id:e[s],width:e[s+1]/100,height:e[s+2]/100};u.push(l)}return{time:t,event:a,data:u};case 5:case 6:var d=null,v=[],p=0,h=[];for(s=2;s<e.length;s++){var m=e[s],b=typeof m;switch(b){case"number":b!==d&&null!==d&&(h.push(n(v,p)),v=[],p=0),v.push(m),p++;break;case"string":v.push(m);break;case"object":switch(typeof m[0]){case"number":for(var g=0,f=m;g<f.length;g++){var k=f[g];v.push(e.length>k?e[k]:null)}}}d=b}return h.push(n(v,p)),{time:t,event:a,data:h}}return null}function n(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},i=e[0]<0,n=!1,o={},u=null,l=t+1;l<e.length;l++){var d=e[l].toString(),v=d.indexOf("="),p=d[0],h=d[d.length-1];if(l===e.length-1&&"STYLE"===r.tag)u=d;else if("*T"!==r.tag&&">"===h&&-1===v);else if("*T"!==r.tag&&"#"===p&&-1===v){var m=d.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){n=!0;var b=d.substr(0,v),g=d.substr(v+1);o[b]=g}else"*T"===r.tag&&(u=i?c(d):d)}return n&&(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),i=a%6,n=Array(i+1).join("•"),c=0;c<r;c++)n+=(0===c&&0===i?"•":" ")+Array(6).join("•");return n}}return e}function o(e){var t=e[0],a=e[1];switch(a){case 29:return{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]}}}return 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 l=Object.freeze({__proto__:null,decode:function(n){var s,c=JSON.parse(n),l={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]},d={timestamp:Date.now(),envelope:l},v=c.p?c.a.concat(c.p):c.a;v=v.sort((function(e,t){return e[0]-t[0]}));var p=u(d.envelope.version),h=u(e);if(p.major!==h.major||Math.abs(p.minor-h.minor)>1)throw new Error("Invalid version. Actual: "+d.envelope.version+" | Expected: "+"0.6.33 (+/- 1) | "+n.substr(0,250));for(var m=0,b=v;m<b.length;m++){var g=b[m];switch(g[1]){case 4:void 0===d.baseline&&(d.baseline=[]),d.baseline.push(t(g));break;case 25:void 0===d.ping&&(d.ping=[]),d.ping.push(t(g));break;case 35:void 0===d.limit&&(d.limit=[]),d.limit.push(t(g));break;case 3:void 0===d.upgrade&&(d.upgrade=[]),d.upgrade.push(t(g));break;case 0:void 0===d.metric&&(d.metric=[]);var f=t(g);f.data[2]=n.length,d.metric.push(f);break;case 1:void 0===d.dimension&&(d.dimension=[]),d.dimension.push(t(g));break;case 36:void 0===d.summary&&(d.summary=[]),d.summary.push(t(g));break;case 24:void 0===d.custom&&(d.custom=[]),d.custom.push(t(g));break;case 34:void 0===d.variable&&(d.variable=[]),d.variable.push(t(g));break;case 2:void 0===d.upload&&(d.upload=[]),d.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===d.pointer&&(d.pointer=[]),d.pointer.push(r(g));break;case 9:void 0===d.click&&(d.click=[]);var k=r(g);d.click.push(k);break;case 38:void 0===d.clipboard&&(d.clipboard=[]);var y=r(g);d.clipboard.push(y);break;case 10:void 0===d.scroll&&(d.scroll=[]),d.scroll.push(r(g));break;case 11:void 0===d.resize&&(d.resize=[]),d.resize.push(r(g));break;case 21:void 0===d.selection&&(d.selection=[]),d.selection.push(r(g));break;case 39:void 0===d.submit&&(d.submit=[]);var w=r(g);d.submit.push(w);break;case 22:void 0===d.timeline&&(d.timeline=[]),d.timeline.push(r(g));break;case 27:void 0===d.input&&(d.input=[]),d.input.push(r(g));break;case 26:void 0===d.unload&&(d.unload=[]),d.unload.push(r(g));break;case 28:void 0===d.visibility&&(d.visibility=[]),d.visibility.push(r(g));break;case 37:void 0===d.box&&(d.box=[]),d.box.push(i(g));break;case 7:void 0===d.region&&(d.region=[]),d.region.push(i(g));break;case 5:case 6:void 0===d.dom&&(d.dom=[]),d.dom.push(i(g));break;case 8:void 0===d.doc&&(d.doc=[]),d.doc.push(i(g));break;case 31:void 0===d.script&&(d.script=[]),d.script.push(a(g));break;case 33:void 0===d.log&&(d.log=[]),d.log.push(a(g));break;case 29:void 0===d.navigation&&(d.navigation=[]),d.navigation.push(o(g));break;case 30:case 32:break;case 40:void 0===d.extract&&(d.extract=[]),d.extract.push(t(g));break;default:console.error("No handler for Event: "+JSON.stringify(g))}}return d}});"undefined"!=typeof window&&(void 0!==window.clarity&&null!==window.clarity||(window.clarity={}),window.clarity.decode=l)}();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var version$1 = "0.6.
|
|
1
|
+
var version$1 = "0.6.33";
|
|
2
2
|
var version = version$1;
|
|
3
3
|
|
|
4
4
|
function decode$5(tokens) {
|
|
@@ -67,6 +67,13 @@ function decode$5(tokens) {
|
|
|
67
67
|
variables[tokens[v++]] = typeof tokens[v + 1] == "string" /* String */ ? [tokens[v++]] : tokens[v++];
|
|
68
68
|
}
|
|
69
69
|
return { time: time, event: event, data: variables };
|
|
70
|
+
case 40 /* Extract */:
|
|
71
|
+
var e = 2; // Start from 3rd index since first two are used for time & event
|
|
72
|
+
var extract = {};
|
|
73
|
+
while (e < tokens.length) {
|
|
74
|
+
extract[tokens[e++]] = tokens[e++];
|
|
75
|
+
}
|
|
76
|
+
return { time: time, event: event, data: extract };
|
|
70
77
|
}
|
|
71
78
|
return null;
|
|
72
79
|
}
|
|
@@ -410,7 +417,7 @@ function decode(input) {
|
|
|
410
417
|
var codeVersion = parseVersion(version);
|
|
411
418
|
if (jsonVersion.major !== codeVersion.major ||
|
|
412
419
|
Math.abs(jsonVersion.minor - codeVersion.minor) > 1) {
|
|
413
|
-
throw new Error("Invalid version. Actual: "
|
|
420
|
+
throw new Error("Invalid version. Actual: " + payload.envelope.version + " | Expected: " + version + " (+/- 1) | " + input.substr(0, 250));
|
|
414
421
|
}
|
|
415
422
|
for (var _i = 0, encoded_1 = encoded; _i < encoded_1.length; _i++) {
|
|
416
423
|
var entry = encoded_1[_i];
|
|
@@ -604,8 +611,14 @@ function decode(input) {
|
|
|
604
611
|
case 32 /* ImageError */:
|
|
605
612
|
/* Deprecated - Intentionally, no-op. For backward compatibility. */
|
|
606
613
|
break;
|
|
614
|
+
case 40 /* Extract */:
|
|
615
|
+
if (payload.extract === undefined) {
|
|
616
|
+
payload.extract = [];
|
|
617
|
+
}
|
|
618
|
+
payload.extract.push(decode$5(entry));
|
|
619
|
+
break;
|
|
607
620
|
default:
|
|
608
|
-
console.error("No handler for Event: "
|
|
621
|
+
console.error("No handler for Event: " + JSON.stringify(entry));
|
|
609
622
|
break;
|
|
610
623
|
}
|
|
611
624
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "clarity-decode",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.33",
|
|
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.33"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
32
|
"@rollup/plugin-commonjs": "^19.0.1",
|
package/src/clarity.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Data, version } from "clarity-js";
|
|
2
2
|
import { BaselineEvent, CustomEvent, DecodedPayload, DecodedVersion, DimensionEvent } from "../types/data";
|
|
3
|
-
import { LimitEvent, MetricEvent, PingEvent, SummaryEvent, UpgradeEvent, UploadEvent, VariableEvent } from "../types/data";
|
|
3
|
+
import { LimitEvent, MetricEvent, PingEvent, SummaryEvent, UpgradeEvent, UploadEvent, VariableEvent, ExtractEvent } from "../types/data";
|
|
4
4
|
import { 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";
|
|
@@ -172,6 +172,10 @@ export function decode(input: string): DecodedPayload {
|
|
|
172
172
|
case Data.Event.ImageError:
|
|
173
173
|
/* Deprecated - Intentionally, no-op. For backward compatibility. */
|
|
174
174
|
break;
|
|
175
|
+
case Data.Event.Extract:
|
|
176
|
+
if (payload.extract === undefined) { payload.extract = []; }
|
|
177
|
+
payload.extract.push(data.decode(entry) as ExtractEvent);
|
|
178
|
+
break;
|
|
175
179
|
default:
|
|
176
180
|
console.error(`No handler for Event: ${JSON.stringify(entry)}`);
|
|
177
181
|
break;
|
package/src/data.ts
CHANGED
|
@@ -67,6 +67,13 @@ export function decode(tokens: Data.Token[]): DataEvent {
|
|
|
67
67
|
variables[tokens[v++] as string] = typeof tokens[v + 1] == Constant.String ? [tokens[v++] as string] : tokens[v++] as string[];
|
|
68
68
|
}
|
|
69
69
|
return { time, event, data: variables };
|
|
70
|
+
case Data.Event.Extract:
|
|
71
|
+
let e = 2; // Start from 3rd index since first two are used for time & event
|
|
72
|
+
let extract: Data.ExtractData = {};
|
|
73
|
+
while (e < tokens.length) {
|
|
74
|
+
extract[tokens[e++] as string | number] = tokens[e++] as string;
|
|
75
|
+
}
|
|
76
|
+
return { time, event, data: extract };
|
|
70
77
|
}
|
|
71
78
|
return null;
|
|
72
79
|
}
|
package/types/data.d.ts
CHANGED
|
@@ -28,6 +28,7 @@ export interface LimitEvent extends PartialEvent { data: Data.LimitData; }
|
|
|
28
28
|
export interface SummaryEvent extends PartialEvent { data: Data.SummaryData; }
|
|
29
29
|
export interface UpgradeEvent extends PartialEvent { data: Data.UpgradeData; }
|
|
30
30
|
export interface UploadEvent extends PartialEvent { data: Data.UploadData; }
|
|
31
|
+
export interface ExtractEvent extends PartialEvent { data: Data.ExtractData; }
|
|
31
32
|
export interface DataEvent extends PartialEvent {
|
|
32
33
|
data: Data.BaselineData |
|
|
33
34
|
Data.DimensionData |
|
|
@@ -38,7 +39,8 @@ export interface DataEvent extends PartialEvent {
|
|
|
38
39
|
Data.LimitData |
|
|
39
40
|
Data.SummaryData |
|
|
40
41
|
Data.UpgradeData |
|
|
41
|
-
Data.UploadData
|
|
42
|
+
Data.UploadData |
|
|
43
|
+
Data.ExtractData;
|
|
42
44
|
}
|
|
43
45
|
|
|
44
46
|
export type DecodedEvent = DataEvent | DiagnosticEvent | InteractionEvent | LayoutEvent | PerformanceEvent;
|
|
@@ -74,6 +76,7 @@ export interface DecodedPayload {
|
|
|
74
76
|
baseline?: BaselineEvent[];
|
|
75
77
|
variable?: VariableEvent[];
|
|
76
78
|
custom?: CustomEvent[];
|
|
79
|
+
extract?: ExtractEvent[];
|
|
77
80
|
}
|
|
78
81
|
|
|
79
82
|
export interface DecodedVersion {
|