clarity-decode 0.8.29 → 0.8.31
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 +9 -1
- package/build/clarity.decode.min.js +1 -1
- package/build/clarity.decode.module.js +9 -1
- package/package.json +3 -5
- package/src/clarity.ts +4 -1
- package/src/layout.ts +3 -0
- package/types/data.d.ts +2 -1
- package/types/layout.d.ts +2 -1
package/build/clarity.decode.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var version$1 = "0.8.
|
|
3
|
+
var version$1 = "0.8.31";
|
|
4
4
|
var version = version$1;
|
|
5
5
|
|
|
6
6
|
function decode$5(tokens) {
|
|
@@ -367,6 +367,9 @@ function decode$2(tokens) {
|
|
|
367
367
|
// Process last node
|
|
368
368
|
domData.push(process(node, tagIndex));
|
|
369
369
|
return { time: time, event: event, data: domData };
|
|
370
|
+
case 51 /* Data.Event.CustomElement */:
|
|
371
|
+
var customElement = { name: tokens[2] };
|
|
372
|
+
return { time: time, event: event, data: customElement };
|
|
370
373
|
}
|
|
371
374
|
return null;
|
|
372
375
|
}
|
|
@@ -712,6 +715,11 @@ function decode(input) {
|
|
|
712
715
|
}
|
|
713
716
|
payload.consent.push(decode$5(entry));
|
|
714
717
|
break;
|
|
718
|
+
case 51 /* Data.Event.CustomElement */:
|
|
719
|
+
if (payload.customElement === undefined) {
|
|
720
|
+
payload.customElement = [];
|
|
721
|
+
}
|
|
722
|
+
payload.customElement.push(decode$2(entry));
|
|
715
723
|
default:
|
|
716
724
|
console.error("No handler for Event: ".concat(JSON.stringify(entry)));
|
|
717
725
|
break;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(){"use strict";var e="0.8.
|
|
1
|
+
!function(){"use strict";var e="0.8.31";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,m={};p<e.length;)m[e[p++]]="string"==typeof e[p+1]?[e[p++]]:e[p++];return{time:t,event:a,data:m};case 40:for(var h=2,g={};h<e.length;)if("string"==typeof e[h+1])g[e[h++]]=e[h++];else{u=e[h++],l=e[h++];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],trust:e.length>4?e[4]:1}};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 50:return{time:t,event:a,data:{focused: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],m=typeof p;switch(m){case"number":m!==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 h=0,g=p;h<g.length;h++){var b=g[h];l.push(e.length>b?e[b]:null)}}u=m}return v.push(c(l,d)),{time:t,event:a,data:v};case 51:return{time:t,event:a,data:{name:e[2]}}}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],m=d[d.length-1];if(l===e.length-1&&"STYLE"===r.tag)c=d;else if("*T"!==r.tag&&">"===m&&-1===v);else if("*T"!==r.tag&&"#"===p&&-1===v){var h=d.substr(1).split(".");2===h.length&&(r.width=o(h[0])/100,r.height=o(h[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),m=d(e);if(p.major!==m.major||Math.abs(p.minor-m.minor)>1)throw new Error("Invalid version. Actual: ".concat(u.envelope.version," | Expected: ").concat(e," (+/- 1) | ").concat(n.substr(0,250)));for(var h=0,g=v;h<g.length;h++){var b=g[h];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: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 30:case 32: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;case 51:void 0===u.customElement&&(u.customElement=[]),u.customElement.push(s(b));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.
|
|
1
|
+
var version$1 = "0.8.31";
|
|
2
2
|
var version = version$1;
|
|
3
3
|
|
|
4
4
|
function decode$5(tokens) {
|
|
@@ -365,6 +365,9 @@ function decode$2(tokens) {
|
|
|
365
365
|
// Process last node
|
|
366
366
|
domData.push(process(node, tagIndex));
|
|
367
367
|
return { time: time, event: event, data: domData };
|
|
368
|
+
case 51 /* Data.Event.CustomElement */:
|
|
369
|
+
var customElement = { name: tokens[2] };
|
|
370
|
+
return { time: time, event: event, data: customElement };
|
|
368
371
|
}
|
|
369
372
|
return null;
|
|
370
373
|
}
|
|
@@ -710,6 +713,11 @@ function decode(input) {
|
|
|
710
713
|
}
|
|
711
714
|
payload.consent.push(decode$5(entry));
|
|
712
715
|
break;
|
|
716
|
+
case 51 /* Data.Event.CustomElement */:
|
|
717
|
+
if (payload.customElement === undefined) {
|
|
718
|
+
payload.customElement = [];
|
|
719
|
+
}
|
|
720
|
+
payload.customElement.push(decode$2(entry));
|
|
713
721
|
default:
|
|
714
722
|
console.error("No handler for Event: ".concat(JSON.stringify(entry)));
|
|
715
723
|
break;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "clarity-decode",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.31",
|
|
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.8.
|
|
29
|
+
"clarity-js": "^0.8.31"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
32
|
"@rollup/plugin-commonjs": "^24.0.0",
|
|
@@ -34,14 +34,12 @@
|
|
|
34
34
|
"@rollup/plugin-terser": "^0.4.0",
|
|
35
35
|
"@rollup/plugin-typescript": "^11.0.0",
|
|
36
36
|
"@types/chai": "^4.3.0",
|
|
37
|
-
"@types/mocha": "^10.0.0",
|
|
38
37
|
"chai": "^4.3.0",
|
|
39
38
|
"del-cli": "^5.0.0",
|
|
40
39
|
"husky": "^8.0.0",
|
|
41
40
|
"lint-staged": "^13.1.0",
|
|
42
|
-
"mocha": "^
|
|
41
|
+
"mocha": "^11.7.0",
|
|
43
42
|
"rollup": "^3.0.0",
|
|
44
|
-
"ts-mocha": "^10.0.0",
|
|
45
43
|
"ts-node": "^10.1.0",
|
|
46
44
|
"tslint": "^6.1.3",
|
|
47
45
|
"typescript": "^4.3.5"
|
package/src/clarity.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { LimitEvent, MetricEvent, PingEvent, SummaryEvent, UpgradeEvent, UploadE
|
|
|
4
4
|
import { FraudEvent, LogEvent, ScriptErrorEvent } from "../types/diagnostic";
|
|
5
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
|
-
import { DocumentEvent, DomEvent, RegionEvent } from "../types/layout";
|
|
7
|
+
import { CustomElementEvent, DocumentEvent, DomEvent, RegionEvent } from "../types/layout";
|
|
8
8
|
import { NavigationEvent } from "../types/performance";
|
|
9
9
|
|
|
10
10
|
import * as data from "./data";
|
|
@@ -197,6 +197,9 @@ export function decode(input: string): DecodedPayload {
|
|
|
197
197
|
if (payload.consent === undefined) { payload.consent = []; }
|
|
198
198
|
payload.consent.push(data.decode(entry) as ConsentEvent);
|
|
199
199
|
break;
|
|
200
|
+
case Data.Event.CustomElement:
|
|
201
|
+
if (payload.customElement === undefined) { payload.customElement = []; }
|
|
202
|
+
payload.customElement.push(layout.decode(entry) as CustomElementEvent);
|
|
200
203
|
default:
|
|
201
204
|
console.error(`No handler for Event: ${JSON.stringify(entry)}`);
|
|
202
205
|
break;
|
package/src/layout.ts
CHANGED
|
@@ -108,6 +108,9 @@ export function decode(tokens: Data.Token[]): LayoutEvent {
|
|
|
108
108
|
domData.push(process(node, tagIndex));
|
|
109
109
|
|
|
110
110
|
return { time, event, data: domData };
|
|
111
|
+
case Data.Event.CustomElement:
|
|
112
|
+
let customElement: Layout.CustomElementData = { name: tokens[2] as string };
|
|
113
|
+
return { time, event, data: customElement };
|
|
111
114
|
}
|
|
112
115
|
return null;
|
|
113
116
|
}
|
package/types/data.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { Data } from "clarity-js";
|
|
|
2
2
|
import { DiagnosticEvent, FraudEvent, LogEvent, ScriptErrorEvent } from "./diagnostic";
|
|
3
3
|
import { ChangeEvent, ClickEvent, ContextMenuEvent, ClipboardEvent, InputEvent, InteractionEvent, PointerEvent, ResizeEvent, SubmitEvent } from "./interaction";
|
|
4
4
|
import { ScrollEvent, SelectionEvent, TimelineEvent, UnloadEvent, VisibilityEvent } from "./interaction";
|
|
5
|
-
import { DocumentEvent, DomEvent, LayoutEvent, RegionEvent } from "./layout";
|
|
5
|
+
import { DocumentEvent, DomEvent, LayoutEvent, RegionEvent, CustomElementEvent } from "./layout";
|
|
6
6
|
import { NavigationEvent, PerformanceEvent } from "./performance";
|
|
7
7
|
import { PartialEvent } from "./core";
|
|
8
8
|
|
|
@@ -82,6 +82,7 @@ export interface DecodedPayload {
|
|
|
82
82
|
custom?: CustomEvent[];
|
|
83
83
|
extract?: ExtractEvent[];
|
|
84
84
|
consent?: ConsentEvent[];
|
|
85
|
+
customElement?: CustomElementEvent[];
|
|
85
86
|
}
|
|
86
87
|
|
|
87
88
|
export interface DecodedVersion {
|
package/types/layout.d.ts
CHANGED
|
@@ -6,8 +6,9 @@ export interface DocumentEvent extends PartialEvent { data: Layout.DocumentData;
|
|
|
6
6
|
export interface DomEvent extends PartialEvent { data: DomData[]; }
|
|
7
7
|
export interface StyleSheetEvent extends PartialEvent { data: Layout.StyleSheetData }
|
|
8
8
|
export interface AnimationEvent extends PartialEvent { data: Layout.AnimationData; }
|
|
9
|
+
export interface CustomElementEvent extends PartialEvent { data: Layout.CustomElementData; }
|
|
9
10
|
export interface LayoutEvent extends PartialEvent {
|
|
10
|
-
data: Layout.RegionData[] | Layout.DocumentData | DomData[] | Layout.StyleSheetData | Layout.AnimationData;
|
|
11
|
+
data: Layout.RegionData[] | Layout.DocumentData | DomData[] | Layout.StyleSheetData | Layout.AnimationData | Layout.CustomElementData;
|
|
11
12
|
}
|
|
12
13
|
|
|
13
14
|
/* Redeclare enums */
|