clarity-decode 0.8.19 → 0.8.21

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.
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var version$1 = "0.8.19";
3
+ var version$1 = "0.8.21";
4
4
  var version = version$1;
5
5
 
6
6
  function decode$5(tokens) {
@@ -179,6 +179,7 @@ function decode$3(tokens) {
179
179
  };
180
180
  return { time: time, event: event, data: pointerData };
181
181
  case 9 /* Data.Event.Click */:
182
+ case 48 /* Data.Event.ContextMenu */:
182
183
  var clickHashes = tokens[12].split("." /* Data.Constant.Dot */);
183
184
  var clickData = {
184
185
  target: tokens[2],
@@ -572,6 +573,13 @@ function decode(input) {
572
573
  var clickEntry = decode$3(entry);
573
574
  payload.click.push(clickEntry);
574
575
  break;
576
+ case 48 /* Data.Event.ContextMenu */:
577
+ if (payload.contextMenu === undefined) {
578
+ payload.contextMenu = [];
579
+ }
580
+ var contextMenuEntry = decode$3(entry);
581
+ payload.contextMenu.push(contextMenuEntry);
582
+ break;
575
583
  case 38 /* Data.Event.Clipboard */:
576
584
  if (payload.clipboard === undefined) {
577
585
  payload.clipboard = [];
@@ -1 +1 @@
1
- !function(){"use strict";var e="0.8.19";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++],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:var v=e.length;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],scrollTime:v>12?e[12]:null,pointerTime:v>13?e[13]:null,moveX:v>14?e[14]:null,moveY:v>15?e[15]:null,moveTime:v>16?e[16]:null,downX:v>17?e[17]:null,downY:v>18?e[18]:null,downTime:v>19?e[19]:null,upX:v>20?e[20]:null,upY:v>21?e[21]:null,upTime:v>22?e[22]:null,pointerPrevX:v>23?e[23]:null,pointerPrevY:v>24?e[24]:null,pointerPrevTime:v>25?e[25]:null}};case 34:for(var p=2,h={};p<e.length;)h[e[p++]]="string"==typeof e[p+1]?[e[p++]]:e[p++];return{time:t,event:a,data:h};case 40:for(var m=2,g={};m<e.length;)if("string"==typeof e[m+1])g[e[m++]]=e[m++];else{u=e[m++],l=e[m++];g[u]=[];for(d=0;d<l.length-1;d+=2)g[u][l[d]]=l[d+1]}return{time:t,event:a,data:g};case 47:return{time:t,event:a,data:{source:e[2],ad_Storage:e[3],analytics_Storage:e[4]}}}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],checksum: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],id:e[5]}};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,isFullText:e.length>14?e[14]: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 42:return{time:t,event:a,data:{target:e[2],type:e[3],value:e[4],checksum: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],top:e.length>5?e[5]:null,bottom:e.length>6?e[6]:null}};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],persisted:e[3]}}}return null}var n=6,i=" ";function s(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,i=2;i<e.length;i+=n){var s=void 0;if("number"==typeof e[i+2])s={id:e[i],interaction:e[i+1],visibility:e[i+2],name:e[i+3]},n=4;else{var o=e[i+1];s={id:e[i],interaction:o>=16?o:16,visibility:o<=13?o:0,name:e[i+2]},n=3}r.push(s)}return{time:t,event:a,data:r};case 45:return{time:t,event:a,data:{id:e[2],operation:e[3],newIds:e[4]}};case 46:return{time:t,event:a,data:{id:e[2],operation:e[3],cssRules:e[4]}};case 44:return{time:t,event:a,data:{id:e[2],operation:e[3],keyFrames:e[4],timing:e[5],timeline:e[6],targetId:e[7]}};case 5:case 6:case 43:var u=null,l=[],d=0,v=[];for(i=2;i<e.length;i++){var p=e[i],h=typeof p;switch(h){case"number":h!==u&&null!==u&&(v.push(c(l,d)),l=[],d=0),l.push(p),d++;break;case"string":l.push(p);break;case"object":if("number"===typeof p[0])for(var m=0,g=p;m<g.length;m++){var b=g[m];l.push(e.length>b?e[b]:null)}}u=h}return v.push(c(l,d)),{time:t,event:a,data:v}}return null}function c(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,s={},c=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)c=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=o(m[0])/100,r.height=o(m[1])/100)}else if("*T"!==r.tag&&v>0){i=!0;var g=d.substr(0,v),b=d.substr(v+1);s[g]=b}else"*T"===r.tag&&(c=n?u(d):d)}return i&&(r.attributes=s),c&&(r.value=c),r}function o(e){return e?parseInt(e,36):null}function u(e){var t=e.trim();if(t.length>0&&-1===t.indexOf(i)){var a=o(t);if(a>0){for(var r=Math.floor(a/n),s=a%n,c=Array(s+1).join("•"),u=0;u<r;u++)c+=(0===u&&0===s?"•":i)+Array(n).join("•");return c}}return e}function l(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 d(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 v=Object.freeze({__proto__:null,decode:function(n){var i,c=JSON.parse(n),o={version:(i=c.e)[0],sequence:i[1],start:i[2],duration:i[3],projectId:i[4],userId:i[5],sessionId:i[6],pageNum:i[7],upload:i[8],end:i[9],applicationPlatform:i[10],url:i[11]},u={timestamp:Date.now(),envelope:o},v=c.p?c.a.concat(c.p):c.a;v=v.sort((function(e,t){return e[0]-t[0]}));var p=d(u.envelope.version),h=d(e);if(p.major!==h.major||Math.abs(p.minor-h.minor)>1)throw new Error("Invalid version. Actual: ".concat(u.envelope.version," | Expected: ").concat(e," (+/- 1) | ").concat(n.substr(0,250)));for(var m=0,g=v;m<g.length;m++){var b=g[m];switch(b[1]){case 4:void 0===u.baseline&&(u.baseline=[]),u.baseline.push(t(b));break;case 25:void 0===u.ping&&(u.ping=[]),u.ping.push(t(b));break;case 35:void 0===u.limit&&(u.limit=[]),u.limit.push(t(b));break;case 3:void 0===u.upgrade&&(u.upgrade=[]),u.upgrade.push(t(b));break;case 0:void 0===u.metric&&(u.metric=[]);var f=t(b);f.data[2]=n.length,u.metric.push(f);break;case 1:void 0===u.dimension&&(u.dimension=[]),u.dimension.push(t(b));break;case 36:void 0===u.summary&&(u.summary=[]),u.summary.push(t(b));break;case 24:void 0===u.custom&&(u.custom=[]),u.custom.push(t(b));break;case 34:void 0===u.variable&&(u.variable=[]),u.variable.push(t(b));break;case 2:void 0===u.upload&&(u.upload=[]),u.upload.push(t(b));break;case 13:case 14:case 12:case 15:case 16:case 17:case 20:case 18:case 19:void 0===u.pointer&&(u.pointer=[]),u.pointer.push(r(b));break;case 9:void 0===u.click&&(u.click=[]);var k=r(b);u.click.push(k);break;case 38:void 0===u.clipboard&&(u.clipboard=[]);var y=r(b);u.clipboard.push(y);break;case 10:void 0===u.scroll&&(u.scroll=[]),u.scroll.push(r(b));break;case 11:void 0===u.resize&&(u.resize=[]),u.resize.push(r(b));break;case 21:void 0===u.selection&&(u.selection=[]),u.selection.push(r(b));break;case 42:void 0===u.change&&(u.change=[]);var w=r(b);u.change.push(w);break;case 39:void 0===u.submit&&(u.submit=[]);var x=r(b);u.submit.push(x);break;case 22:void 0===u.timeline&&(u.timeline=[]),u.timeline.push(r(b));break;case 27:void 0===u.input&&(u.input=[]),u.input.push(r(b));break;case 26:void 0===u.unload&&(u.unload=[]),u.unload.push(r(b));break;case 28:void 0===u.visibility&&(u.visibility=[]),u.visibility.push(r(b));break;case 37:case 30:case 32:break;case 7:void 0===u.region&&(u.region=[]),u.region.push(s(b));break;case 5:case 6:case 43:case 45:case 46:case 44:void 0===u.dom&&(u.dom=[]),u.dom.push(s(b));break;case 8:void 0===u.doc&&(u.doc=[]),u.doc.push(s(b));break;case 31:void 0===u.script&&(u.script=[]),u.script.push(a(b));break;case 33:void 0===u.log&&(u.log=[]),u.log.push(a(b));break;case 41:void 0===u.fraud&&(u.fraud=[]),u.fraud.push(a(b));break;case 29:void 0===u.navigation&&(u.navigation=[]),u.navigation.push(l(b));break;case 40:void 0===u.extract&&(u.extract=[]),u.extract.push(t(b));break;case 47:void 0===u.consent&&(u.consent=[]),u.consent.push(t(b));break;default:console.error("No handler for Event: ".concat(JSON.stringify(b)))}}return u}});"undefined"!=typeof window&&(void 0!==window.clarity&&null!==window.clarity||(window.clarity={}),window.clarity.decode=v)}();
1
+ !function(){"use strict";var e="0.8.21";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++],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:var v=e.length;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],scrollTime:v>12?e[12]:null,pointerTime:v>13?e[13]:null,moveX:v>14?e[14]:null,moveY:v>15?e[15]:null,moveTime:v>16?e[16]:null,downX:v>17?e[17]:null,downY:v>18?e[18]:null,downTime:v>19?e[19]:null,upX:v>20?e[20]:null,upY:v>21?e[21]:null,upTime:v>22?e[22]:null,pointerPrevX:v>23?e[23]:null,pointerPrevY:v>24?e[24]:null,pointerPrevTime:v>25?e[25]:null}};case 34:for(var p=2,h={};p<e.length;)h[e[p++]]="string"==typeof e[p+1]?[e[p++]]:e[p++];return{time:t,event:a,data:h};case 40:for(var m=2,g={};m<e.length;)if("string"==typeof e[m+1])g[e[m++]]=e[m++];else{u=e[m++],l=e[m++];g[u]=[];for(d=0;d<l.length-1;d+=2)g[u][l[d]]=l[d+1]}return{time:t,event:a,data:g};case 47:return{time:t,event:a,data:{source:e[2],ad_Storage:e[3],analytics_Storage:e[4]}}}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],checksum: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],id:e[5]}};case 9:case 48: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,isFullText:e.length>14?e[14]: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 42:return{time:t,event:a,data:{target:e[2],type:e[3],value:e[4],checksum: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],top:e.length>5?e[5]:null,bottom:e.length>6?e[6]:null}};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],persisted:e[3]}}}return null}var n=6,i=" ";function s(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,i=2;i<e.length;i+=n){var s=void 0;if("number"==typeof e[i+2])s={id:e[i],interaction:e[i+1],visibility:e[i+2],name:e[i+3]},n=4;else{var o=e[i+1];s={id:e[i],interaction:o>=16?o:16,visibility:o<=13?o:0,name:e[i+2]},n=3}r.push(s)}return{time:t,event:a,data:r};case 45:return{time:t,event:a,data:{id:e[2],operation:e[3],newIds:e[4]}};case 46:return{time:t,event:a,data:{id:e[2],operation:e[3],cssRules:e[4]}};case 44:return{time:t,event:a,data:{id:e[2],operation:e[3],keyFrames:e[4],timing:e[5],timeline:e[6],targetId:e[7]}};case 5:case 6:case 43:var u=null,l=[],d=0,v=[];for(i=2;i<e.length;i++){var p=e[i],h=typeof p;switch(h){case"number":h!==u&&null!==u&&(v.push(c(l,d)),l=[],d=0),l.push(p),d++;break;case"string":l.push(p);break;case"object":if("number"===typeof p[0])for(var m=0,g=p;m<g.length;m++){var b=g[m];l.push(e.length>b?e[b]:null)}}u=h}return v.push(c(l,d)),{time:t,event:a,data:v}}return null}function c(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,s={},c=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)c=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=o(m[0])/100,r.height=o(m[1])/100)}else if("*T"!==r.tag&&v>0){i=!0;var g=d.substr(0,v),b=d.substr(v+1);s[g]=b}else"*T"===r.tag&&(c=n?u(d):d)}return i&&(r.attributes=s),c&&(r.value=c),r}function o(e){return e?parseInt(e,36):null}function u(e){var t=e.trim();if(t.length>0&&-1===t.indexOf(i)){var a=o(t);if(a>0){for(var r=Math.floor(a/n),s=a%n,c=Array(s+1).join("•"),u=0;u<r;u++)c+=(0===u&&0===s?"•":i)+Array(n).join("•");return c}}return e}function l(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 d(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 v=Object.freeze({__proto__:null,decode:function(n){var i,c=JSON.parse(n),o={version:(i=c.e)[0],sequence:i[1],start:i[2],duration:i[3],projectId:i[4],userId:i[5],sessionId:i[6],pageNum:i[7],upload:i[8],end:i[9],applicationPlatform:i[10],url:i[11]},u={timestamp:Date.now(),envelope:o},v=c.p?c.a.concat(c.p):c.a;v=v.sort((function(e,t){return e[0]-t[0]}));var p=d(u.envelope.version),h=d(e);if(p.major!==h.major||Math.abs(p.minor-h.minor)>1)throw new Error("Invalid version. Actual: ".concat(u.envelope.version," | Expected: ").concat(e," (+/- 1) | ").concat(n.substr(0,250)));for(var m=0,g=v;m<g.length;m++){var b=g[m];switch(b[1]){case 4:void 0===u.baseline&&(u.baseline=[]),u.baseline.push(t(b));break;case 25:void 0===u.ping&&(u.ping=[]),u.ping.push(t(b));break;case 35:void 0===u.limit&&(u.limit=[]),u.limit.push(t(b));break;case 3:void 0===u.upgrade&&(u.upgrade=[]),u.upgrade.push(t(b));break;case 0:void 0===u.metric&&(u.metric=[]);var f=t(b);f.data[2]=n.length,u.metric.push(f);break;case 1:void 0===u.dimension&&(u.dimension=[]),u.dimension.push(t(b));break;case 36:void 0===u.summary&&(u.summary=[]),u.summary.push(t(b));break;case 24:void 0===u.custom&&(u.custom=[]),u.custom.push(t(b));break;case 34:void 0===u.variable&&(u.variable=[]),u.variable.push(t(b));break;case 2:void 0===u.upload&&(u.upload=[]),u.upload.push(t(b));break;case 13:case 14:case 12:case 15:case 16:case 17:case 20:case 18:case 19:void 0===u.pointer&&(u.pointer=[]),u.pointer.push(r(b));break;case 9:void 0===u.click&&(u.click=[]);var k=r(b);u.click.push(k);break;case 48:void 0===u.contextMenu&&(u.contextMenu=[]);var y=r(b);u.contextMenu.push(y);break;case 38:void 0===u.clipboard&&(u.clipboard=[]);var w=r(b);u.clipboard.push(w);break;case 10:void 0===u.scroll&&(u.scroll=[]),u.scroll.push(r(b));break;case 11:void 0===u.resize&&(u.resize=[]),u.resize.push(r(b));break;case 21:void 0===u.selection&&(u.selection=[]),u.selection.push(r(b));break;case 42:void 0===u.change&&(u.change=[]);var x=r(b);u.change.push(x);break;case 39:void 0===u.submit&&(u.submit=[]);var I=r(b);u.submit.push(I);break;case 22:void 0===u.timeline&&(u.timeline=[]),u.timeline.push(r(b));break;case 27:void 0===u.input&&(u.input=[]),u.input.push(r(b));break;case 26:void 0===u.unload&&(u.unload=[]),u.unload.push(r(b));break;case 28:void 0===u.visibility&&(u.visibility=[]),u.visibility.push(r(b));break;case 37:case 30:case 32:break;case 7:void 0===u.region&&(u.region=[]),u.region.push(s(b));break;case 5:case 6:case 43:case 45:case 46:case 44:void 0===u.dom&&(u.dom=[]),u.dom.push(s(b));break;case 8:void 0===u.doc&&(u.doc=[]),u.doc.push(s(b));break;case 31:void 0===u.script&&(u.script=[]),u.script.push(a(b));break;case 33:void 0===u.log&&(u.log=[]),u.log.push(a(b));break;case 41:void 0===u.fraud&&(u.fraud=[]),u.fraud.push(a(b));break;case 29:void 0===u.navigation&&(u.navigation=[]),u.navigation.push(l(b));break;case 40:void 0===u.extract&&(u.extract=[]),u.extract.push(t(b));break;case 47:void 0===u.consent&&(u.consent=[]),u.consent.push(t(b));break;default:console.error("No handler for Event: ".concat(JSON.stringify(b)))}}return u}});"undefined"!=typeof window&&(void 0!==window.clarity&&null!==window.clarity||(window.clarity={}),window.clarity.decode=v)}();
@@ -1,4 +1,4 @@
1
- var version$1 = "0.8.19";
1
+ var version$1 = "0.8.21";
2
2
  var version = version$1;
3
3
 
4
4
  function decode$5(tokens) {
@@ -177,6 +177,7 @@ function decode$3(tokens) {
177
177
  };
178
178
  return { time: time, event: event, data: pointerData };
179
179
  case 9 /* Data.Event.Click */:
180
+ case 48 /* Data.Event.ContextMenu */:
180
181
  var clickHashes = tokens[12].split("." /* Data.Constant.Dot */);
181
182
  var clickData = {
182
183
  target: tokens[2],
@@ -570,6 +571,13 @@ function decode(input) {
570
571
  var clickEntry = decode$3(entry);
571
572
  payload.click.push(clickEntry);
572
573
  break;
574
+ case 48 /* Data.Event.ContextMenu */:
575
+ if (payload.contextMenu === undefined) {
576
+ payload.contextMenu = [];
577
+ }
578
+ var contextMenuEntry = decode$3(entry);
579
+ payload.contextMenu.push(contextMenuEntry);
580
+ break;
573
581
  case 38 /* Data.Event.Clipboard */:
574
582
  if (payload.clipboard === undefined) {
575
583
  payload.clipboard = [];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clarity-decode",
3
- "version": "0.8.19",
3
+ "version": "0.8.21",
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,17 +26,22 @@
26
26
  "url": "https://github.com/Microsoft/clarity/issues"
27
27
  },
28
28
  "dependencies": {
29
- "clarity-js": "^0.8.19"
29
+ "clarity-js": "^0.8.21"
30
30
  },
31
31
  "devDependencies": {
32
32
  "@rollup/plugin-commonjs": "^24.0.0",
33
33
  "@rollup/plugin-node-resolve": "^15.0.0",
34
34
  "@rollup/plugin-terser": "^0.4.0",
35
35
  "@rollup/plugin-typescript": "^11.0.0",
36
+ "@types/chai": "^4.3.0",
37
+ "@types/mocha": "^10.0.0",
38
+ "chai": "^4.3.0",
36
39
  "del-cli": "^5.0.0",
37
40
  "husky": "^8.0.0",
38
41
  "lint-staged": "^13.1.0",
42
+ "mocha": "^10.2.0",
39
43
  "rollup": "^3.0.0",
44
+ "ts-mocha": "^10.0.0",
40
45
  "ts-node": "^10.1.0",
41
46
  "tslint": "^6.1.3",
42
47
  "typescript": "^4.3.5"
@@ -45,6 +50,8 @@
45
50
  "build": "yarn build:clean && yarn build:main",
46
51
  "build:main": "rollup -c rollup.config.ts --configPlugin @rollup/plugin-typescript",
47
52
  "build:clean": "del-cli build/*",
53
+ "pretest": "yarn build",
54
+ "test": "mocha test/decode.test.js",
48
55
  "tslint": "tslint --project ./",
49
56
  "tslint:fix": "tslint --fix --project ./ --force"
50
57
  },
package/src/clarity.ts CHANGED
@@ -2,7 +2,7 @@ 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, ConsentEvent } from "../types/data";
4
4
  import { FraudEvent, LogEvent, ScriptErrorEvent } from "../types/diagnostic";
5
- import { ChangeEvent, ClickEvent, ClipboardEvent, InputEvent, PointerEvent, ResizeEvent, ScrollEvent } from "../types/interaction";
5
+ import { ChangeEvent, ClickEvent, ContextMenuEvent, ClipboardEvent, InputEvent, PointerEvent, ResizeEvent, ScrollEvent } from "../types/interaction";
6
6
  import { SelectionEvent, SubmitEvent, TimelineEvent, UnloadEvent, VisibilityEvent } from "../types/interaction";
7
7
  import { DocumentEvent, DomEvent, RegionEvent } from "../types/layout";
8
8
  import { NavigationEvent } from "../types/performance";
@@ -101,6 +101,11 @@ export function decode(input: string): DecodedPayload {
101
101
  let clickEntry = interaction.decode(entry) as ClickEvent;
102
102
  payload.click.push(clickEntry);
103
103
  break;
104
+ case Data.Event.ContextMenu:
105
+ if (payload.contextMenu === undefined) { payload.contextMenu = []; }
106
+ let contextMenuEntry = interaction.decode(entry) as ContextMenuEvent;
107
+ payload.contextMenu.push(contextMenuEntry);
108
+ break;
104
109
  case Data.Event.Clipboard:
105
110
  if (payload.clipboard === undefined) { payload.clipboard = []; }
106
111
  let clipEntry = interaction.decode(entry) as ClipboardEvent;
@@ -22,6 +22,7 @@ export function decode(tokens: Data.Token[]): InteractionEvent {
22
22
  };
23
23
  return { time, event, data: pointerData };
24
24
  case Data.Event.Click:
25
+ case Data.Event.ContextMenu:
25
26
  let clickHashes = (tokens[12] as string).split(Data.Constant.Dot);
26
27
  let clickData: ClickData = {
27
28
  target: tokens[2] as number,
@@ -0,0 +1,36 @@
1
+ const { assert } = require('chai');
2
+
3
+ const { decode } = require('../build/clarity.decode.js');
4
+
5
+ describe('decode function', () => {
6
+ it('should decode a simple payload', () => {
7
+ // This is a very simple test that focuses on basic decoding functionality
8
+ const testPayload = {
9
+ e: ["0.8.20", 1, 0, 506, "devtools", "1mtqiaz", "1c27tix", 2, 0, 0, 0, "https://test.com/"],
10
+ a: [
11
+ [2, 8, 1982, 3098],
12
+ [29, 11, 1982, 992],
13
+ [29, 28, "visible"],
14
+ [35, 29, 63, 65, 421, 421, 551, 552, 941, 1820, 1821, 1826, 0, 23734, "navigate", "h2", 23434, 138226],
15
+ [36, 7, 116, 16, 13, "1"],
16
+ [36, 7, 120, 16, 0, "2"],
17
+ [36, 7, 203, 16, 13, "3"],
18
+ [505, 1, 0, ["Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0"], 1, ["https://test.com/"], 3, ["A little bit of this and that!"], 4, ["test.com"], 5, ["BlogPosting"], 9, ["en-US"], 15, ["1xtxvl0"], 17, ["ltr"], 18, ["Story 8", "Story 7", "Story 6"], 20, ["A title!"], 21, ["blogger"], 22, ["macOS"], 23, ["15.5.0"], 24, ["undefined~8", "undefined~138"], 26, ["1.7999999523162842"], 27, ["4g"], 28, ["1979"], 29, ["2"], 31, ["44nejbc7s.6933hhug7"], 32, ["519i394pb.53uwavtzg"], 34, ["America/Los_Angeles"], 35, ["420"], 36, ["1"], 37, ["-1"]],
19
+ [505, 0, 0, 1752816151601, 1, 1, 3, 34, 4, 35, 5, 3, 7, 4, 8, 1636, 9, 0, 10, 2, 14, 1792, 15, 1120, 16, 24, 25, 9, 26, 0, 27, 0, 31, 1, 32, 0, 33, 8, 34, 8, 35, 0],
20
+ [506, 47, 0, 1, 1],
21
+ [550, 48, 488, 493, 484, 16383, 16383, 2, 1, 0, "It's a title", null, "1ltv07afj", "4ppc0yuhe", 1, 0]
22
+ ],
23
+ };
24
+
25
+ const input = JSON.stringify(testPayload);
26
+
27
+ const result = decode(input);
28
+
29
+ assert.isObject(result);
30
+ assert.isNumber(result.timestamp);
31
+ assert.isObject(result.envelope);
32
+ assert.equal(result.envelope.version, "0.8.20");
33
+ assert.equal(result.contextMenu[0].data.target, 488);
34
+ assert.equal(result.contextMenu[0].data.button, 2);
35
+ });
36
+ });
package/types/data.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { Data } from "clarity-js";
2
2
  import { DiagnosticEvent, FraudEvent, LogEvent, ScriptErrorEvent } from "./diagnostic";
3
- import { ChangeEvent, ClickEvent, ClipboardEvent, InputEvent, InteractionEvent, PointerEvent, ResizeEvent, SubmitEvent } from "./interaction";
3
+ import { ChangeEvent, ClickEvent, ContextMenuEvent, ClipboardEvent, InputEvent, InteractionEvent, PointerEvent, ResizeEvent, SubmitEvent } from "./interaction";
4
4
  import { ScrollEvent, SelectionEvent, TimelineEvent, UnloadEvent, VisibilityEvent } from "./interaction";
5
5
  import { DocumentEvent, DomEvent, LayoutEvent, RegionEvent } from "./layout";
6
6
  import { NavigationEvent, PerformanceEvent } from "./performance";
@@ -58,6 +58,7 @@ export interface DecodedPayload {
58
58
  input?: InputEvent[];
59
59
  pointer?: PointerEvent[];
60
60
  click?: ClickEvent[];
61
+ contextMenu?: ContextMenuEvent[];
61
62
  clipboard?: ClipboardEvent[];
62
63
  resize?: ResizeEvent[];
63
64
  scroll?: ScrollEvent[];
@@ -18,6 +18,7 @@ export interface ClickVizualizationData {
18
18
  export interface InputEvent extends PartialEvent { data: Interaction.InputData; }
19
19
  export interface ChangeEvent extends PartialEvent { data: Interaction.ChangeData; }
20
20
  export interface ClickEvent extends PartialEvent { data: ClickData; }
21
+ export interface ContextMenuEvent extends PartialEvent { data: ClickData; }
21
22
  export interface ClipboardEvent extends PartialEvent { data: Interaction.ClipboardData; }
22
23
  export interface PointerEvent extends PartialEvent { data: Interaction.PointerData; }
23
24
  export interface ResizeEvent extends PartialEvent { data: Interaction.ResizeData; }