clarity-decode 0.8.15 → 0.8.16
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 +1 -1
- package/build/clarity.decode.min.js +1 -1
- package/build/clarity.decode.module.js +1 -1
- package/package.json +2 -2
- package/rollup.config.ts +3 -1
- package/src/clarity.ts +5 -1
- package/src/data.ts +3 -1
- package/types/data.d.ts +4 -1
package/build/clarity.decode.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(){"use strict";var e="0.8.
|
|
1
|
+
!function(){"use strict";var e="0.8.16";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)}();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "clarity-decode",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.16",
|
|
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.16"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
32
|
"@rollup/plugin-commonjs": "^24.0.0",
|
package/rollup.config.ts
CHANGED
|
@@ -2,7 +2,9 @@ import commonjs from "@rollup/plugin-commonjs";
|
|
|
2
2
|
import resolve from "@rollup/plugin-node-resolve";
|
|
3
3
|
import terser from "@rollup/plugin-terser";
|
|
4
4
|
import typescript from "@rollup/plugin-typescript";
|
|
5
|
-
import
|
|
5
|
+
import { readFileSync } from "fs";
|
|
6
|
+
|
|
7
|
+
const pkg = JSON.parse(readFileSync("./package.json", "utf-8"));
|
|
6
8
|
|
|
7
9
|
export default [
|
|
8
10
|
{
|
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, ExtractEvent } from "../types/data";
|
|
3
|
+
import { LimitEvent, MetricEvent, PingEvent, SummaryEvent, UpgradeEvent, UploadEvent, VariableEvent, ExtractEvent, ConsentEvent } from "../types/data";
|
|
4
4
|
import { FraudEvent, LogEvent, ScriptErrorEvent } from "../types/diagnostic";
|
|
5
5
|
import { ChangeEvent, ClickEvent, ClipboardEvent, InputEvent, PointerEvent, ResizeEvent, ScrollEvent } from "../types/interaction";
|
|
6
6
|
import { SelectionEvent, SubmitEvent, TimelineEvent, UnloadEvent, VisibilityEvent } from "../types/interaction";
|
|
@@ -188,6 +188,10 @@ export function decode(input: string): DecodedPayload {
|
|
|
188
188
|
if (payload.extract === undefined) { payload.extract = []; }
|
|
189
189
|
payload.extract.push(data.decode(entry) as ExtractEvent);
|
|
190
190
|
break;
|
|
191
|
+
case Data.Event.Consent:
|
|
192
|
+
if (payload.consent === undefined) { payload.consent = []; }
|
|
193
|
+
payload.consent.push(data.decode(entry) as ConsentEvent);
|
|
194
|
+
break;
|
|
191
195
|
default:
|
|
192
196
|
console.error(`No handler for Event: ${JSON.stringify(entry)}`);
|
|
193
197
|
break;
|
package/src/data.ts
CHANGED
|
@@ -99,8 +99,10 @@ export function decode(tokens: Data.Token[]): DataEvent {
|
|
|
99
99
|
}
|
|
100
100
|
}
|
|
101
101
|
}
|
|
102
|
-
|
|
103
102
|
return { time, event, data: extract };
|
|
103
|
+
case Data.Event.Consent:
|
|
104
|
+
let consent: Data.ConsentData = { source: tokens[2] as number, ad_Storage: tokens[3] as number, analytics_Storage: tokens[4] as number};
|
|
105
|
+
return { time, event, data: consent };
|
|
104
106
|
}
|
|
105
107
|
return null;
|
|
106
108
|
}
|
package/types/data.d.ts
CHANGED
|
@@ -29,6 +29,7 @@ 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
31
|
export interface ExtractEvent extends PartialEvent { data: Data.ExtractData; }
|
|
32
|
+
export interface ConsentEvent extends PartialEvent { data: Data.ConsentData; }
|
|
32
33
|
export interface DataEvent extends PartialEvent {
|
|
33
34
|
data: Data.BaselineData |
|
|
34
35
|
Data.DimensionData |
|
|
@@ -40,7 +41,8 @@ export interface DataEvent extends PartialEvent {
|
|
|
40
41
|
Data.SummaryData |
|
|
41
42
|
Data.UpgradeData |
|
|
42
43
|
Data.UploadData |
|
|
43
|
-
Data.ExtractData
|
|
44
|
+
Data.ExtractData |
|
|
45
|
+
Data.ConsentData;
|
|
44
46
|
}
|
|
45
47
|
|
|
46
48
|
export type DecodedEvent = DataEvent | DiagnosticEvent | InteractionEvent | LayoutEvent | PerformanceEvent;
|
|
@@ -78,6 +80,7 @@ export interface DecodedPayload {
|
|
|
78
80
|
variable?: VariableEvent[];
|
|
79
81
|
custom?: CustomEvent[];
|
|
80
82
|
extract?: ExtractEvent[];
|
|
83
|
+
consent?: ConsentEvent[];
|
|
81
84
|
}
|
|
82
85
|
|
|
83
86
|
export interface DecodedVersion {
|