aesirx-analytics 1.1.4 → 1.1.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,5 @@
1
+ import t,{useState as e}from"react";var r=t.createContext({visitor_uuid:void 0,event_uuid_start:void 0,visitor_uuid_start:void 0,setUUID:void 0,setEventIDStart:void 0,setUUIDStart:void 0}),i=({children:i})=>{const[v,o]=e(),[s,d]=e(),[u,a]=e();return t.createElement(r.Provider,{value:{visitor_uuid:v,event_uuid_start:s,visitor_uuid_start:u,setUUID:o,setEventIDStart:d,setUUIDStart:a}},i)};export{r as AnalyticsContext,i as AnalyticsContextProvider_default};
2
+ /*
3
+ * @copyright Copyright (C) 2022 AesirX. All rights reserved.
4
+ * @license GNU General Public License version 3, see LICENSE.
5
+ */
package/dist/index.d.ts CHANGED
@@ -1,19 +1,11 @@
1
1
  import React, { ReactNode, Dispatch, SetStateAction } from 'react';
2
+ import { NextRouter } from 'next/router';
2
3
 
3
- interface AnalyticsReact$1 {
4
- router: {
5
- asPath: string;
6
- events: {
7
- on: (_: string, __: () => void) => void;
8
- off: (_: string, __: () => void) => void;
9
- };
10
- replace: any;
11
- query: any;
12
- push: any;
13
- };
4
+ interface AnalyticsNext {
5
+ router: NextRouter;
14
6
  children?: ReactNode;
15
7
  }
16
- declare const AnalyticsNext: ({ router, children }: AnalyticsReact$1) => JSX.Element;
8
+ declare const AnalyticsNext: ({ router, children }: AnalyticsNext) => JSX.Element;
17
9
 
18
10
  interface AnalyticsReact {
19
11
  location: {
package/dist/index.js CHANGED
@@ -1,5 +1 @@
1
- import x from"react";import k,{useState as I}from"react";var p=k.createContext({visitor_uuid:void 0,event_uuid_start:void 0,visitor_uuid_start:void 0,setUUID:void 0,setEventIDStart:void 0,setUUIDStart:void 0}),y=({children:i})=>{let[e,t]=I(),[r,s]=I(),[a,c]=I();return k.createElement(p.Provider,{value:{visitor_uuid:e,event_uuid_start:r,visitor_uuid_start:a,setUUID:t,setEventIDStart:s,setUUIDStart:c}},i)};import C,{useCallback as Y,useEffect as A,useState as F}from"react";var B,$=(i,e)=>(Object.keys(e).forEach(t=>{e[t]!==void 0&&(i[t]=e[t])}),i),b=async(i,e)=>{let r=await(await fetch(i,{method:"POST",body:JSON.stringify(e),headers:$({"Content-Type":"application/json"},{["x-tracker-cache"]:B})})).json();if(r.error)throw r.error;return r};import J from"bowser";var h=(i,e)=>`${i}/visitor/v1/${e}`,g=async(i,e,t,r)=>{let{document:s}=window,{pathname:a,search:c,origin:u}=location;e=`${u}${a}${c}`,t=s.referrer,r=window.navigator.userAgent;let o=J.parse(window.navigator.userAgent),n=o?.browser?.name,d=o?.browser?.version??"0",l=window.navigator.userLanguage||window.navigator.language,v=o?.platform?.model??o?.platform?.type,j=location?.host?.replace(/^www\./,""),H=window.location.search,m=new URLSearchParams(H),T=[];for(let _ of m.keys())_.startsWith("utm_")&&m.get(_)&&T.push({name:_,value:m.get(_)});if(!m.get("visitor_uuid")){let _="";try{return await b(h(i,"init"),{url:e,referer:t,user_agent:r,ip:_,domain:j,browser_name:n,browser_version:d,lang:l,device:v,event_name:"visit",event_type:"action",attributes:T})}catch{}}},f=async(i,e,t)=>{let{location:r,document:s}=window,{pathname:a,origin:c}=r;t=t?r.protocol+"//"+r.host+t:s.referrer?U("visitor_uuid",s.referrer):`${c}${a}`;let u=r.protocol+"//"+r.host+r.pathname,o=window.location.search,n=new URLSearchParams(o);return await b(h(i,"start"),{...n.get("visitor_uuid")&&{visitor_uuid:n.get("visitor_uuid")},...e&&{visitor_uuid:e},referer:t==="/"?"":t,url:u})},V=async(i,e,t,r)=>{let{location:s,document:a}=window;t=t?s.protocol+"//"+s.host+t:a.referrer.split("?")[0];let c=s.protocol+"//"+s.host+s.pathname,u=window.location.search,o=new URLSearchParams(u),n={...o.get("visitor_uuid")&&{visitor_uuid:o.get("visitor_uuid")},...e&&{visitor_uuid:e},referer:t==="/"?"":t,url:c,...r},d={type:"application/json"},l=new Blob([JSON.stringify(n)],d);return navigator.sendBeacon(h(i,"start"),l)};var Q=(i,e=window.location.href)=>{if(e)return new URL(e).searchParams.get(i)},S=i=>{let e=document.getElementsByTagName("a");for(let t=0;t<e.length;t++){let r=Q("visitor_uuid",e[t].href);if(e[t].href){let s=new URL(e[t].href);!r&&i&&s.searchParams.append("visitor_uuid",i),e[t].href=s.href}}},w=(i,e,t)=>{if(e&&t){let r={event_uuid:e,visitor_uuid:t},s={type:"application/json"},a=new Blob([JSON.stringify(r)],s);navigator.sendBeacon(h(i,"end"),a)}},P=i=>{document.addEventListener("visibilitychange",async()=>{if(document.visibilityState==="hidden"&&w(i,window.event_uuid_start,window.visitor_uuid_start),document.visibilityState==="visible"){let e=await f(i,window.visitor_uuid,window.referer);window.event_uuid_start=e?.event_uuid}}),window.addEventListener("pagehide",e=>{e.persisted&&w(i,window.event_uuid_start,window.visitor_uuid_start)},!1)};function U(i,e){let t=e.split("?")[0],r,s=[],a=e.indexOf("?")!==-1?e.split("?")[1]:"";if(a!==""){s=a.split("&");for(let c=s.length-1;c>=0;c-=1)r=s[c].split("=")[0],r===i&&s.splice(c,1);s.length&&(t=t+"?"+s.join("&"))}return t}var W=({router:i,children:e})=>{let t=C.useContext(p),r=process.env.NEXT_PUBLIC_ENDPOINT_ANALYTICS_URL,[s,a]=F(""),c=Y(async u=>{let o=u||"";window.referer=o;let n=await f(r,t.visitor_uuid,o);n.event_uuid&&t.setEventIDStart(n.event_uuid),n.visitor_uuid&&t.setUUIDStart(n.visitor_uuid)},[t,r]);return A(()=>{(async()=>{let n=new URLSearchParams(window.location.search).get("visitor_uuid");if(t.visitor_uuid)await c(U("visitor_uuid",i.asPath));else if(n)t.setUUID(n);else{let d=await g(r);d?.visitor_uuid&&t.setUUID(d?.visitor_uuid)}})()},[t.visitor_uuid]),A(()=>{let u=async()=>{let{visitor_uuid:v}=i.query;v&&a(U("visitor_uuid",i.asPath)),t.visitor_uuid_start&&!v&&(w(r,window.event_uuid_start,t.visitor_uuid_start),await c(s))};i.events.on("routeChangeComplete",u);let o=new URLSearchParams(window.location.search),n=o.get("visitor_uuid"),d=o.get("state"),l=o.get("code");return!n&&!d&&!l&&t.visitor_uuid&&(i.asPath.includes("?")?Object.keys(i.query).length&&i.replace({query:{...i.query,visitor_uuid:t.visitor_uuid}},void 0,{shallow:!0}):i.replace({query:{...i.query,visitor_uuid:t.visitor_uuid}},void 0,{shallow:!0})),n&&S(n),()=>{i.events.off("routeChangeComplete",u)}},[i.events,t.visitor_uuid,i.asPath,i.query]),A(()=>{(async()=>{P(r)})()},[]),A(()=>{(async()=>{window.visitor_uuid=t.visitor_uuid,window.event_uuid_start=t.event_uuid_start,window.visitor_uuid_start=t.visitor_uuid_start})()},[t.event_uuid_start,t.visitor_uuid_start]),C.createElement(C.Fragment,null,e)},q=W;var X=({router:i,children:e})=>x.createElement(x.Fragment,null,x.createElement(y,null,x.createElement(q,{router:i},e))),z=X;import L from"react";import R,{useEffect as N,useState as G}from"react";import D from"query-string";var K=({location:i,history:e,children:t})=>{let r=R.useContext(p),s=process.env.REACT_APP_ENDPOINT_ANALYTICS_URL,[a,c]=G(i.pathname);return N(()=>{(async()=>{if(r.visitor_uuid_start&&w(s,window.event_uuid_start,r.visitor_uuid_start),r.visitor_uuid){let n={...D.parse(i.search),visitor_uuid:r.visitor_uuid};e.replace({search:D.stringify(n)});let d=a||"";window.referer=d;let l=await f(s,r.visitor_uuid,d);l.event_uuid&&r.setEventIDStart(l.event_uuid),l.visitor_uuid&&r.setUUIDStart(l.visitor_uuid),c(i.pathname),S(r.visitor_uuid)}else{let n=new URLSearchParams(window.location.search).get("visitor_uuid");if(n)r.setUUID(n);else{let d=await g(s);d.visitor_uuid&&r.setUUID(d.visitor_uuid);let v={...D.parse(i.search),visitor_uuid:d.visitor_uuid};e.replace({search:D.stringify(v)})}}})()},[i.pathname,r.visitor_uuid,e]),N(()=>{(async()=>{P(s)})()},[]),N(()=>{(async()=>{window.visitor_uuid=r.visitor_uuid,window.event_uuid_start=r.event_uuid_start,window.visitor_uuid_start=r.visitor_uuid_start})()},[r.visitor_uuid,r.event_uuid_start,r.visitor_uuid_start]),R.createElement(R.Fragment,null,t)},E=K;var M=({location:i,history:e,children:t})=>L.createElement(y,null,L.createElement(E,{location:i,history:e},t)),Z=M;export{p as AnalyticsContext,z as AnalyticsNext,Z as AnalyticsReact,V as trackEvent};
2
- /*
3
- * @copyright Copyright (C) 2022 AesirX. All rights reserved.
4
- * @license GNU General Public License version 3, see LICENSE.
5
- */
1
+ import{AnalyticsContext as t,AnalyticsContextProvider_default as i}from"./chunk-D75AKWUD.js";import e,{Suspense as r}from"react";import o,{useCallback as s,useEffect as n,useState as a}from"react";var u=async(t,i)=>{const e=await fetch(t,{method:"POST",body:JSON.stringify(i),headers:(r={"Content-Type":"application/json"},o={"x-tracker-cache":void 0},Object.keys(o).forEach((t=>{void 0!==o[t]&&(r[t]=o[t])})),r)});var r,o;const s=await e.json();if(s.error)throw s.error;return s};import d from"bowser";var c=(t,i)=>`${t}/visitor/v1/${i}`,_=async(t,i,e,r)=>{const{document:o}=window,{pathname:s,search:n,origin:a}=location;i=`${a}${s}${n}`,e=o.referrer,r=window.navigator.userAgent;const _=d.parse(window.navigator.userAgent),v=_?.browser?.name,l=_?.browser?.version??"0",w=window.navigator.userLanguage||window.navigator.language,m=_?.platform?.model??_?.platform?.type,h=location?.host?.replace(/^www\./,""),p=window.location.search,f=new URLSearchParams(p),g=[];for(const t of f.keys())t.startsWith("utm_")&&f.get(t)&&g.push({name:t,value:f.get(t)});if(!f.get("visitor_uuid")){const o="";try{return await u(c(t,"init"),{url:i,referer:e,user_agent:r,ip:o,domain:h,browser_name:v,browser_version:l,lang:w,device:m,event_name:"visit",event_type:"action",attributes:g})}catch(t){}}},v=async(t,i,e)=>{if("0"===sessionStorage.getItem("aesirx-analytics-allow"))return null;const{location:r,document:o}=window,{pathname:s,origin:n}=r;e=e?r.protocol+"//"+r.host+e:o.referrer?f("visitor_uuid",o.referrer):`${n}${s}`;const a=r.protocol+"//"+r.host+r.pathname,d=window.location.search,_=new URLSearchParams(d);return await u(c(t,"start"),{..._.get("visitor_uuid")&&{visitor_uuid:_.get("visitor_uuid")},...i&&{visitor_uuid:i},referer:"/"===e?"":e,url:a})},l=async(t,i,e,r)=>{if("0"===sessionStorage.getItem("aesirx-analytics-allow"))return null;const{location:o,document:s}=window;e=e?o.protocol+"//"+o.host+e:s.referrer.split("?")[0];const n=o.protocol+"//"+o.host+o.pathname,a=window.location.search,u=new URLSearchParams(a),d={...u.get("visitor_uuid")&&{visitor_uuid:u.get("visitor_uuid")},...i&&{visitor_uuid:i},referer:"/"===e?"":e,url:n,...r},_=new Blob([JSON.stringify(d)],{type:"application/json"});return navigator.sendBeacon(c(t,"start"),_)},w=(t,i=window.location.href)=>{if(i){return new URL(i).searchParams.get(t)}},m=t=>{const i=document.getElementsByTagName("a");for(let e=0;e<i.length;e++){const r=w("visitor_uuid",i[e].href);if(i[e].href){const o=new URL(i[e].href);!r&&t&&o.searchParams.append("visitor_uuid",t),i[e].href=o.href}}},h=(t,i,e)=>{if(i&&e){const r={event_uuid:i,visitor_uuid:e},o={type:"application/json"},s=new Blob([JSON.stringify(r)],o);navigator.sendBeacon(c(t,"end"),s)}},p=t=>{document.addEventListener("visibilitychange",(async()=>{if("hidden"===document.visibilityState&&h(t,window.event_uuid_start,window.visitor_uuid_start),"visible"===document.visibilityState){if(new URLSearchParams(window.location.search).get("visitor_uuid")||window.visitor_uuid){const i=await v(t,window.visitor_uuid,window.referer);window.event_uuid_start=i?.event_uuid}}})),window.addEventListener("pagehide",(i=>{i.persisted&&h(t,window.event_uuid_start,window.visitor_uuid_start)}),!1)};function f(t,i){let e,r=i.split("?")[0],o=[];const s=-1!==i.indexOf("?")?i.split("?")[1]:"";if(""!==s){o=s.split("&");for(let i=o.length-1;i>=0;i-=1)e=o[i].split("=")[0],e===t&&o.splice(i,1);o.length&&(r=r+"?"+o.join("&"))}return r}var g=({router:i,children:e})=>{const r=o.useContext(t),u=process.env.NEXT_PUBLIC_ENDPOINT_ANALYTICS_URL,[d,c]=a(""),l=s((async t=>{const i=t||"";window.referer=i;const e=await v(u,r.visitor_uuid,i);e?.event_uuid&&r.setEventIDStart(e.event_uuid),e?.visitor_uuid&&r.setUUIDStart(e.visitor_uuid)}),[r,u]);return n((()=>{(async()=>{const t=new URLSearchParams(window.location.search).get("visitor_uuid");if(r.visitor_uuid)await l(f("visitor_uuid",i.asPath));else if(t)r.setUUID(t);else{const t=await _(u);t?.visitor_uuid&&r.setUUID(t?.visitor_uuid)}})()}),[r.visitor_uuid]),n((()=>{const t=async()=>{const{visitor_uuid:t}=i.query;t&&c(f("visitor_uuid",i.asPath)),r.visitor_uuid_start&&!t&&(h(u,window.event_uuid_start,r.visitor_uuid_start),await l(d))};i.events.on("routeChangeComplete",t);const e=new URLSearchParams(window.location.search),o=e.get("visitor_uuid"),s=e.get("state"),n=e.get("code");return o||s||n||r.visitor_uuid&&(i.asPath.includes("?")?Object.keys(i.query).length&&i.replace({query:{...i.query,visitor_uuid:r.visitor_uuid}},void 0,{shallow:!0}):i.replace({query:{...i.query,visitor_uuid:r.visitor_uuid}},void 0,{shallow:!0})),o&&m(o),()=>{i.events.off("routeChangeComplete",t)}}),[i.events,r.visitor_uuid,i.asPath,i.query]),n((()=>{(async()=>{p(u)})()}),[]),n((()=>{(async()=>{window.visitor_uuid=r.visitor_uuid,window.event_uuid_start=r.event_uuid_start,window.visitor_uuid_start=r.visitor_uuid_start})()}),[r.event_uuid_start,r.visitor_uuid_start]),o.createElement(o.Fragment,null,e)},y=e.lazy((()=>import("./Consent-XD4ZWBMB.js"))),E=({router:t,children:o})=>e.createElement(e.Fragment,null,e.createElement(i,null,e.createElement(g,{router:t},o,e.createElement(r,{fallback:e.createElement(e.Fragment,null)},e.createElement(y,{endpoint:process.env.NEXT_PUBLIC_ENDPOINT_ANALYTICS_URL})))));import U,{Suspense as S}from"react";import P,{useEffect as L,useState as I}from"react";import N from"query-string";var b=({location:i,history:e,children:r})=>{const o=P.useContext(t),s=process.env.REACT_APP_ENDPOINT_ANALYTICS_URL,[n,a]=I(i.pathname);return L((()=>{(async()=>{if(o.visitor_uuid_start&&h(s,window.event_uuid_start,o.visitor_uuid_start),o.visitor_uuid){const t={...N.parse(i.search),visitor_uuid:o.visitor_uuid};e.replace({search:N.stringify(t)});const r=n||"";window.referer=r;const u=await v(s,o.visitor_uuid,r);u.event_uuid&&o.setEventIDStart(u.event_uuid),u.visitor_uuid&&o.setUUIDStart(u.visitor_uuid),a(i.pathname),m(o.visitor_uuid)}else{const t=new URLSearchParams(window.location.search).get("visitor_uuid");if(t)o.setUUID(t);else{const t=await _(s);t.visitor_uuid&&o.setUUID(t.visitor_uuid);const r={...N.parse(i.search),visitor_uuid:t.visitor_uuid};e.replace({search:N.stringify(r)})}}})()}),[i.pathname,o.visitor_uuid,e]),L((()=>{(async()=>{p(s)})()}),[]),L((()=>{(async()=>{window.visitor_uuid=o.visitor_uuid,window.event_uuid_start=o.event_uuid_start,window.visitor_uuid_start=o.visitor_uuid_start})()}),[o.visitor_uuid,o.event_uuid_start,o.visitor_uuid_start]),P.createElement(P.Fragment,null,r)},A=U.lazy((()=>import("./Consent-XD4ZWBMB.js"))),C=({location:t,history:e,children:r})=>U.createElement(i,null,U.createElement(b,{location:t,history:e},r,U.createElement(S,{fallback:U.createElement(U.Fragment,null)},U.createElement(A,{endpoint:process.env.REACT_APP_ENDPOINT_ANALYTICS_URL}))));export{t as AnalyticsContext,E as AnalyticsNext,C as AnalyticsReact,l as trackEvent};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aesirx-analytics",
3
- "version": "1.1.4",
3
+ "version": "1.1.6",
4
4
  "license": "GPL-3.0-only",
5
5
  "author": "AesirX",
6
6
  "repository": "https://gitlab.redweb.dk/aesirx/analytics",
@@ -8,12 +8,22 @@
8
8
  "module": "dist/index.js",
9
9
  "type": "module",
10
10
  "dependencies": {
11
+ "@concordium/browser-wallet-api-helpers": "^2",
12
+ "@concordium/web-sdk": "^6",
13
+ "axios": "^1.4.0",
14
+ "bootstrap": "^5.3.0",
11
15
  "bowser": "^2.11.0",
16
+ "buffer": "^6.0.3",
17
+ "next": "12",
12
18
  "query-string": "^7.1.1",
13
- "react": "^18.2.0"
19
+ "react": "18",
20
+ "react-bootstrap": "^2.8.0",
21
+ "react-content-loader": "^6.2.1",
22
+ "react-dom": "18",
23
+ "react-toastify": "^9.1.3"
14
24
  },
15
25
  "scripts": {
16
- "dev": "tsup --watch --onSuccess 'yalc push --changed --no-scripts'",
26
+ "dev": "NODE_ENV=development tsup --watch --onSuccess 'yalc push --changed --no-scripts'",
17
27
  "build": "tsup",
18
28
  "lint": "eslint --fix \"src/**/\"",
19
29
  "lint:check": "eslint \"src/**/\"",
@@ -52,19 +62,20 @@
52
62
  "@typescript-eslint/eslint-plugin": "^5.57.0",
53
63
  "@typescript-eslint/parser": "^5.57.0",
54
64
  "dotenv": "^16.0.3",
65
+ "esbuild-plugin-inline-image": "^0.0.9",
66
+ "esbuild-sass-plugin": "^2.10.0",
67
+ "esbuild-scss-modules-plugin": "^1.1.1",
55
68
  "eslint": "^8.36",
56
69
  "eslint-plugin-react": "^7.31.10",
57
70
  "jest": "^29.4.3",
58
71
  "jest-environment-jsdom": "^29.4.3",
59
72
  "node-fetch": "^3.3.1",
60
73
  "prettier": "^2.8.4",
74
+ "terser": "^5.19.0",
61
75
  "ts-jest": "^29.0.5",
62
76
  "tsup": "^6.7.0",
63
77
  "typescript": "^5.0.3"
64
78
  },
65
- "overrides": {
66
- "autoprefixer": "10.4.5"
67
- },
68
79
  "files": [
69
80
  "dist"
70
81
  ]