userpath-js 0.0.16 → 0.0.17
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/README.md +4 -4
- package/dist/index.js +1 -1
- package/dist/types/src/base/api.d.ts.map +1 -0
- package/dist/types/{client/src → src}/base/events.d.ts +9 -4
- package/dist/types/src/base/events.d.ts.map +1 -0
- package/dist/types/{client/src → src}/base/session.d.ts +8 -3
- package/dist/types/src/base/session.d.ts.map +1 -0
- package/dist/types/{core/src → src}/browser/index.d.ts +1 -1
- package/dist/types/src/browser/index.d.ts.map +1 -0
- package/dist/types/src/browser/libs/LocalStorage.d.ts.map +1 -0
- package/dist/types/src/browser/libs/cookie.d.ts.map +1 -0
- package/dist/types/src/browser/libs/storage.d.ts +4 -0
- package/dist/types/src/browser/libs/storage.d.ts.map +1 -0
- package/dist/types/src/browser/utils.d.ts +49 -0
- package/dist/types/src/browser/utils.d.ts.map +1 -0
- package/dist/types/{client/src → src}/index.d.ts +6 -4
- package/dist/types/src/index.d.ts.map +1 -0
- package/dist/types/{client/src → src}/pixel.d.ts.map +1 -1
- package/dist/types/{client/src → src}/schemas/config.d.ts +1 -1
- package/dist/types/src/schemas/config.d.ts.map +1 -0
- package/dist/types/src/schemas/identity.d.ts.map +1 -0
- package/dist/types/src/server/index.d.ts.map +1 -0
- package/dist/types/src/server/utils.d.ts.map +1 -0
- package/package.json +17 -9
- package/dist/types/client/src/base/api.d.ts.map +0 -1
- package/dist/types/client/src/base/events.d.ts.map +0 -1
- package/dist/types/client/src/base/session.d.ts.map +0 -1
- package/dist/types/client/src/index.d.ts.map +0 -1
- package/dist/types/client/src/schemas/config.d.ts.map +0 -1
- package/dist/types/client/src/schemas/events.d.ts +0 -58
- package/dist/types/client/src/schemas/events.d.ts.map +0 -1
- package/dist/types/client/src/schemas/identity.d.ts.map +0 -1
- package/dist/types/client/src/server/index.d.ts.map +0 -1
- package/dist/types/client/src/server/utils.d.ts.map +0 -1
- package/dist/types/client/src/utils.d.ts +0 -2
- package/dist/types/client/src/utils.d.ts.map +0 -1
- package/dist/types/core/src/browser/index.d.ts.map +0 -1
- package/dist/types/core/src/browser/libs/LocalStorage.d.ts.map +0 -1
- package/dist/types/core/src/browser/libs/cookie.d.ts.map +0 -1
- package/dist/types/core/src/browser/libs/memory.d.ts +0 -4
- package/dist/types/core/src/browser/libs/memory.d.ts.map +0 -1
- /package/dist/types/{client/src → src}/base/api.d.ts +0 -0
- /package/dist/types/{core/src → src}/browser/libs/LocalStorage.d.ts +0 -0
- /package/dist/types/{core/src → src}/browser/libs/cookie.d.ts +0 -0
- /package/dist/types/{client/src → src}/pixel.d.ts +0 -0
- /package/dist/types/{client/src → src}/schemas/identity.d.ts +0 -0
- /package/dist/types/{client/src → src}/server/index.d.ts +0 -0
- /package/dist/types/{client/src → src}/server/utils.d.ts +0 -0
package/README.md
CHANGED
|
@@ -53,7 +53,7 @@ Alternatively, you can include the UserPath Pixel using a script tag in your HTM
|
|
|
53
53
|
<!-- index.html -->
|
|
54
54
|
<script
|
|
55
55
|
src="https://my-userpath-domain.com/events/v1/px.js"
|
|
56
|
-
data-
|
|
56
|
+
data-app="my-app-id"
|
|
57
57
|
></script>
|
|
58
58
|
```
|
|
59
59
|
|
|
@@ -503,13 +503,13 @@ There are several ways to identify users in UserPath:
|
|
|
503
503
|
|
|
504
504
|
### Via Script Tag
|
|
505
505
|
|
|
506
|
-
You can add a `data-
|
|
506
|
+
You can add a `data-user` attribute to your script tag to identify users immediately:
|
|
507
507
|
|
|
508
508
|
```html
|
|
509
509
|
<script
|
|
510
510
|
src="https://api.userpath.co/v1/px.js"
|
|
511
|
-
data-
|
|
512
|
-
data-
|
|
511
|
+
data-app="your-app-id"
|
|
512
|
+
data-user="user123"
|
|
513
513
|
></script>
|
|
514
514
|
```
|
|
515
515
|
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var q={name:"userpath-js",version:"0.0.16",private:!1,main:"dist/index.js",types:"dist/types/client/src/index.d.ts",exports:{".":{types:"./dist/types/client/src/index.d.ts",default:"./dist/index.js"},"./server":{types:"./dist/types/client/src/server/index.d.ts",default:"./dist/server/index.js"}},files:["dist/index.js","dist/types","dist/server"],scripts:{dev:"bun build src/index.ts --outdir ./dist --watch",types:"tsc",build:"bun run build.client && bun run build.pixel && bun run build.server","build.prod":"bun run build.client.prod && bun run build.pixel.prod && bun run build.server.prod","build.client":"bun run types && bun build src/index.ts --outdir ./dist --no-cache","build.client.prod":"bun run types && bun build src/index.ts --outdir ./dist --minify","build.pixel":"bun build src/pixel.ts --outdir ./dist","build.pixel.prod":"bun build src/pixel.ts --outdir ./dist --minify","build.server":"bun run types && bun build src/server/index.ts --outdir ./dist/server","build.server.prod":"bun run types && bun build src/server/index.ts --outdir ./dist/server --minify",release:"bun run build.prod && npm publish"},devDependencies:{"bun-types":"latest",typescript:"^5.0.0"},dependencies:{"iconv-lite":"^0.6.3"}};class z{namespace;constructor({namespace:x}){this.namespace=x}getItem(x){let $=localStorage.getItem(`${this.namespace}.${x}`)||"";try{return JSON.parse($)}catch(R){return null}}setItem(x,$){localStorage.setItem(`${this.namespace}.${x}`,JSON.stringify($))}removeItem(x){localStorage.removeItem(`${this.namespace}.${x}`)}}var F=new z({namespace:"userpath"});function K(x,$,R={}){let{days:J=7,path:j="/",domain:X,secure:Q,sameSite:Z="strict"}=R,_=J?new Date(Date.now()+J*86400000).toUTCString():"",Y=`${encodeURIComponent(x)}=${encodeURIComponent($)}`;if(_)Y+=`; expires=${_}`;if(j)Y+=`; path=${j}`;if(X)Y+=`; domain=${X}`;if(Q)Y+="; secure";if(Z)Y+=`; samesite=${Z}`;document.cookie=Y}function A(x){let $=encodeURIComponent(x)+"=",R=document.cookie.split(";");for(let J=0;J<R.length;J++){let j=R[J];while(j.charAt(0)===" ")j=j.substring(1,j.length);if(j.indexOf($)===0)return decodeURIComponent(j.substring($.length,j.length))}return null}var W={appId:"",serverUrl:"https://api.userpath.co",version:1,flushIntervalMs:5000,secure:!0,autoTrack:{errors:!0,clicks:!0,scrolling:!0,forms:!0,videos:!0,pageVisibility:!0,pageInactivity:!0}};function M(x){let R=new URL(x).hostname,J=R.split(".");return`.${J.length>2?J.slice(-2).join("."):R}`}class B{serverUrl;appId;version;secure;constructor(x){this.secure=typeof x.secure==="boolean"?x.secure:W.secure,this.serverUrl=x.serverUrl||W.serverUrl,this.appId=x.appId,this.version=x.version||W.version,K("_up.app",this.appId,{days:365,sameSite:"lax",secure:this.secure,domain:M(this.serverUrl)})}buildUrl(x){return`${this.serverUrl}/v${this.version}/${x}`}}var E=typeof window==="undefined"||typeof document==="undefined"||typeof IntersectionObserver==="undefined",b={pushState:()=>{},replaceState:()=>{},go:()=>{},back:()=>{},forward:()=>{}};if(E)global.history=b;var L={location:{href:""},addEventListener:()=>{},removeEventListener:()=>{},scrollTo:()=>{},scrollBy:()=>{},setTimeout:()=>{},clearTimeout:()=>{},setInterval:()=>{},clearInterval:()=>{}};if(E)global.window=L;var V={hidden:!1,addEventListener:()=>{},removeEventListener:()=>{},querySelector:()=>null,closest:()=>null,getAttribute:()=>null,tagName:"",textContent:"",classList:{contains:()=>!1},scrollHeight:0,offsetHeight:0,clientHeight:0,pageYOffset:0,referrer:"",title:""};if(E)global.document=V;class O{#R;#x;#$;#j;#W;#X;#Y;#J;#Z;#_;#P;#b;#L;#V;#D;#K;#y;#z;#q;#M;#A;#B;#w;#E;#g;#Q;#O;#C;#I=60000;#N;#G=!1;#F;#u;#U;constructor(x,$=W){this.#R=x,this.#U=$,this.#x=new Set,this.#$=0,this.#K=null,this.#y=window.location.href,this.#z=new Map,this.#q=new WeakMap,this.#M=new WeakMap,this.#A=Date.now(),this.#B=0,this.#w=this.#A,this.#E=document.hidden,this.#g=Date.now(),this.#Q=null,this.#O=!1,this.#N=null,this.#j=this.handleClick.bind(this),this.#W=this.handleScroll.bind(this),this.#X=this.handleScroll.bind(this),this.#Y=this.handleInputFocus.bind(this),this.#J=this.handleInputBlur.bind(this),this.#Z=this.handleFormChange.bind(this),this.#_=this.handleFormSubmit.bind(this),this.#P=this.handleVideoPlay.bind(this),this.#b=this.handleVideoPause.bind(this),this.#L=this.handleVideoEnd.bind(this),this.#V=this.handleVisibilityChange.bind(this),this.#D=this.handleBeforeUnload.bind(this),this.#C=this.handleUserActivity.bind(this),this.#F=this.handleError.bind(this),this.#u=this.handleRejection.bind(this);let R=this.#U.autoTrack||W.autoTrack;if(R.clicks!==!1)this.setupClickTracking();if(R.scrolling!==!1)this.setupScrollTracking();if(R.forms!==!1)this.setupFormTracking();if(R.videos!==!1)this.setupVideoTracking();if(R.pageVisibility!==!1)this.setupPageTimeTracking();if(R.pageInactivity!==!1)this.setupInactivityTracking()}destroy(){if(document.removeEventListener("click",this.#j),window.removeEventListener("scroll",this.#W),window.removeEventListener("resize",this.#X),document.removeEventListener("focus",this.#Y,!0),document.removeEventListener("blur",this.#J,!0),document.removeEventListener("change",this.#Z,!0),document.removeEventListener("submit",this.#_,!0),document.removeEventListener("play",this.#P,!0),document.removeEventListener("pause",this.#b,!0),document.removeEventListener("ended",this.#L,!0),document.removeEventListener("visibilitychange",this.#V),window.removeEventListener("beforeunload",this.#D),this.#K)window.clearTimeout(this.#K);if(["mousemove","mousedown","keydown","touchstart","scroll"].forEach((x)=>{document.removeEventListener(x,this.#C,!0)}),this.#Q)window.clearTimeout(this.#Q);this.uninstallErrorHandler()}setupClickTracking(){document.addEventListener("click",this.#j)}handleClick(x){let $=x.target;if(!$)return;let R=this.extractClickLabel($);if(!R)return;this.trackCustomEvent("click",{label:R,element:$.tagName.toLowerCase(),id:$.id||void 0})}handleScroll(){let x=window.location.href;if(x!==this.#y)this.#y=x,this.#$=0,this.#x.clear();if(this.#K)window.clearTimeout(this.#K);this.#K=window.setTimeout(()=>{let $=this.calculateScrollDepth();if($>this.#$)this.#$=$,this.checkAndTrackScrollDepth($)},100)}setupScrollTracking(){window.addEventListener("scroll",this.#W),window.addEventListener("resize",this.#X)}calculateScrollDepth(){let x=window.innerHeight,$=Math.max(document.documentElement.scrollHeight,document.documentElement.offsetHeight,document.documentElement.clientHeight),R=window.pageYOffset||document.documentElement.scrollTop;return Math.round((R+x)/$*100)}checkAndTrackScrollDepth(x){let $=window.location.href;if(x>50&&!this.#x.has($))this.#x.add($),this.trackCustomEvent("scroll")}extractClickLabel(x){let $=x.getAttribute("aria-label");if($)return`${$}`;if(x instanceof HTMLButtonElement||x instanceof HTMLAnchorElement){let J=x.textContent?.trim();if(J)return`${J}`}if(x instanceof HTMLInputElement){if(x.type==="submit"&&x.value)return`${x.value}`;if(x.type==="checkbox"){let J=this.findInputLabel(x),j=x.checked?"Checked":"Unchecked";return J?`${j} ${J}`:null}}let R=x.closest("label");if(R){let J=R.textContent?.trim();if(J)return`${J}`}return null}findInputLabel(x){let $=x.getAttribute("aria-label");if($)return $;if(x.id){let J=document.querySelector(`label[for="${x.id}"]`);if(J&&J.textContent)return J.textContent.trim()}let R=x.closest("label");if(R&&R.textContent)return R.textContent.trim().replace(x.value,"").trim();return null}trackPageView(){let x={name:"page_view",url:window.location.href,referrer:document.referrer,title:document.title,timestamp:new Date().toISOString()};this.#R.track(x)}trackCustomEvent(x,$={},R={immediate:!1}){let J={name:x,url:window.location.href,referrer:document.referrer,title:document.title,properties:$,timestamp:new Date().toISOString()};if(R.immediate)this.#R.publish([J]);else this.#R.track(J)}trackPurchase(x){let $={name:"purchase",url:window.location.href,referrer:document.referrer,title:document.title,price:x.price,currency:x.currency,amount:x.amount,properties:{...x.properties},timestamp:new Date().toISOString()};this.#R.track($)}setupFormTracking(){document.addEventListener("focus",this.#Y,!0),document.addEventListener("blur",this.#J,!0),document.addEventListener("change",this.#Z,!0),document.addEventListener("submit",this.#_,!0)}handleInputFocus(x){let $=x.target;if(!$||!($ instanceof HTMLInputElement||$ instanceof HTMLTextAreaElement||$ instanceof HTMLSelectElement))return;if($ instanceof HTMLInputElement&&$.type==="password")return;this.#q.set($,this.getElementValue($));let R=$.closest("form");if(R&&!this.#z.has(R))this.#z.set(R,Date.now())}getElementValue(x){if(x instanceof HTMLSelectElement)return x.value;if(x instanceof HTMLInputElement||x instanceof HTMLTextAreaElement)return x.value;return""}handleInputBlur(x){let $=x.target;if(!$||!($ instanceof HTMLInputElement||$ instanceof HTMLTextAreaElement||$ instanceof HTMLSelectElement))return;if($ instanceof HTMLInputElement&&$.type==="password")return;let R=this.#q.get($)||"",J=this.getElementValue($);if(J!==R&&J.trim()!==""){let j=$ instanceof HTMLSelectElement?"select":$.type,X=this.findFormElementLabel($)||this.getInputIdentifier($);if(!X)return;this.trackCustomEvent("input_fill",{input_type:j,label:X,form_name:this.getFormName($)})}this.#q.delete($)}getFormName(x){let $=x.closest("form");if(!$)return;return $.getAttribute("name")||$.getAttribute("id")||$.getAttribute("aria-label")||void 0}getInputIdentifier(x){return x.getAttribute("name")||x.getAttribute("id")||x.getAttribute("placeholder")||null}findFormElementLabel(x){let $=x.getAttribute("aria-label");if($)return $;if(x.id){let J=document.querySelector(`label[for="${x.id}"]`);if(J&&J.textContent)return J.textContent.trim()}let R=x.closest("label");if(R&&R.textContent){let J=R.textContent.trim(),j=x instanceof HTMLSelectElement?x.selectedOptions[0]?.text:x.value;return j?J.replace(j,"").trim():J}return null}handleFormChange(x){let $=x.target;if(!$||!($ instanceof HTMLSelectElement||$ instanceof HTMLInputElement))return;if($ instanceof HTMLSelectElement)this.trackSelectChange($);else if($ instanceof HTMLInputElement){if($.type==="radio")this.trackRadioChange($);else if($.type==="checkbox")this.trackCheckboxChange($);else if($.type==="range")this.trackRangeChange($)}}trackSelectChange(x){let $=this.findFormElementLabel(x)||this.getInputIdentifier(x);if(!$)return;let R=x.selectedOptions[0];this.trackCustomEvent("input_select",{input_type:"select",label:$,option_label:R?.text||"",form_name:this.getFormName(x)})}trackRadioChange(x){let $=this.findFormElementLabel(x)||this.getInputIdentifier(x);if(!$)return;let R=x.name||$;this.trackCustomEvent("input_radio",{input_type:"radio",group:R,label:$,form_name:this.getFormName(x)})}trackCheckboxChange(x){let $=this.findFormElementLabel(x)||this.getInputIdentifier(x);if(!$)return;this.trackCustomEvent("input_checkbox",{input_type:"checkbox",label:$,checked:x.checked,form_name:this.getFormName(x)})}trackRangeChange(x){let $=this.findFormElementLabel(x)||this.getInputIdentifier(x);if(!$)return;this.trackCustomEvent("input_range",{input_type:"range",label:$,form_name:this.getFormName(x)})}handleFormSubmit(x){let $=x.target;if(!$||!($ instanceof HTMLFormElement))return;let R=this.#z.get($)||Date.now(),J=Date.now()-R,j=this.getFormName($)||"unknown";this.trackCustomEvent("form_submit",{form_name:j,time_to_complete:J}),this.#z.delete($)}setupVideoTracking(){document.addEventListener("play",this.#P,!0),document.addEventListener("pause",this.#b,!0),document.addEventListener("ended",this.#L,!0)}getVideoMetadata(x){return{duration:Math.round(x.duration),current_time:Math.round(x.currentTime),src:x.currentSrc||x.src||void 0,title:x.title||void 0,video_id:x.id||void 0}}handleVideoPlay(x){let $=x.target;if(!$||!($ instanceof HTMLVideoElement))return;this.#M.set($,Date.now()),this.trackCustomEvent("video_play",this.getVideoMetadata($))}handleVideoPause(x){let $=x.target;if(!$||!($ instanceof HTMLVideoElement))return;let R=this.#M.get($),J=this.getVideoMetadata($);if(R)J.watch_time=Math.round((Date.now()-R)/1000),this.#M.delete($);this.trackCustomEvent("video_pause",J)}handleVideoEnd(x){let $=x.target;if(!$||!($ instanceof HTMLVideoElement))return;let R=this.#M.get($),J=this.getVideoMetadata($);if(R)J.watch_time=Math.round((Date.now()-R)/1000),this.#M.delete($);this.trackCustomEvent("video_complete",J)}setupPageTimeTracking(){document.addEventListener("visibilitychange",this.#V),window.addEventListener("beforeunload",this.#D)}handleVisibilityChange(){let x=Date.now(),$=this.#E;if(this.#E=!document.hidden,$)this.#B+=x-this.#w;this.#w=x,this.trackCustomEvent("page_visibility",{visible:this.#E,total_time:Math.round((x-this.#A)/1000),visible_time:Math.round(this.#B/1000)})}handleBeforeUnload(){let x=Date.now();if(this.#E)this.#B+=x-this.#w;this.trackCustomEvent("page_exit",{total_time:Math.round((x-this.#A)/1000),visible_time:Math.round(this.#B/1000)},{immediate:!0})}setupInactivityTracking(){["mousemove","mousedown","keydown","touchstart","scroll"].forEach((x)=>{document.addEventListener(x,this.#C,!0)}),this.checkInactivity()}handleUserActivity(){if(this.#g=Date.now(),this.#O&&this.#N)this.#O=!1,this.trackCustomEvent("user_active",{inactive_duration:Math.round((Date.now()-this.#N)/1000),url:window.location.href,title:document.title}),this.#N=null;this.checkInactivity()}checkInactivity(){if(this.#Q)window.clearTimeout(this.#Q);this.#Q=window.setTimeout(()=>{let x=Date.now();if(x-this.#g>=this.#I&&!this.#O)this.#O=!0,this.#N=x,this.trackCustomEvent("user_inactive")},this.#I)}installErrorHandler(){if(this.#G||typeof window==="undefined")return;window.addEventListener("error",this.#F),window.addEventListener("unhandledrejection",this.#u),this.#G=!0}uninstallErrorHandler(){if(!this.#G||typeof window==="undefined")return;window.removeEventListener("error",this.#F),window.removeEventListener("unhandledrejection",this.#u),this.#G=!1}isErrorHandlerInstalled(){return this.#G}handleError(x){if(x instanceof ErrorEvent)this.trackError(new Error(x.message),{filename:x.filename,lineno:x.lineno,colno:x.colno,source:"window.onerror"})}handleRejection(x){let $=x.reason instanceof Error?x.reason:new Error(String(x.reason||"Unhandled Promise rejection"));this.trackError($,{source:"unhandledrejection"})}trackError(x,$={},R={immediate:!1}){let{filename:J,lineno:j,colno:X,source:Q,url:Z,referrer:_,userAgent:Y,...w}=$,G={name:"error",message:x.message,stack:x.stack,source:Q||"client",lineno:j,colno:X,filename:J,properties:w,timestamp:new Date().toISOString(),url:Z||window.location.href,referrer:_||document.referrer,title:document.title};if(R.immediate)this.#R.publish([G]);else this.#R.track(G)}}class N{#R;#x=[];#$=null;#j;#W;#X="";#Y=null;#J=null;#Z=5000;#_=!0;constructor(x,$){this.#R=x,this.#j=$?.userId,this.#W=$?.appId||"",this.#_=typeof $?.secure==="boolean"?$.secure:W.secure,this.#Z=$?.flushIntervalMs||W.flushIntervalMs||5000}init(x){this.#$=x,this.setup()}destroy(){if(this.#Y)window.clearInterval(this.#Y);if(this.#J)window.clearTimeout(this.#J);if(this.#x.length>0)this.flush()}setup(){if(typeof window==="undefined")return;this.getSessionId(),this.#X=window.location.href,this.#$.trackPageView(),this.setupHistoryChange(),this.#Y=window.setInterval(()=>this.flush(),this.#Z)}setupHistoryChange(){if(!this.#$)return;let{pushState:x,replaceState:$}=history;history.pushState=(...R)=>{x.apply(history,R),this.trackPageViewIfUrlChanged()},history.replaceState=(...R)=>{$.apply(history,R),this.trackPageViewIfUrlChanged()},window.addEventListener("popstate",()=>{this.trackPageViewIfUrlChanged()})}trackPageViewIfUrlChanged(){let x=window.location.href;if(x!==this.#X)this.#X=x,this.#$.trackPageView()}getUserId(){return this.#j}setUserId(x){this.#j=x}getAppId(){return this.#W}setAppId(x){this.#W=x}track(x){if(this.#x.push(x),this.#x.length>=20){this.flush();return}if(!this.#J)this.#J=window.setTimeout(()=>{this.flush(),this.#J=null},this.#Z)}async identify(x){this.setUserId(x.id),await fetch(this.#R.buildUrl("identify"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(x),keepalive:!0,credentials:"include"})}deduplicateEvents(x){let $=new Set;return x.filter((R)=>{let J=`${R.name}-${R.timestamp}`;if($.has(J))return!1;return $.add(J),!0})}flush(){if(this.#x.length===0)return;if(this.#J)window.clearTimeout(this.#J),this.#J=null;let x=[...this.#x];this.#x=[];let $=this.deduplicateEvents(x);this.publish($).catch((R)=>{this.#x=[...$,...this.#x].slice(0,100),console.error("Error sending analytics data:",R)})}async publish(x){return fetch(this.#R.buildUrl("log"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({userAgent:navigator.userAgent,screenWidth:window.screen.width,screenHeight:window.screen.height,language:navigator.language,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,events:x.map(($)=>{if(!$.timestamp)$.timestamp=new Date().toISOString();return{...$,name:$.name||$.type,properties:$.properties||{}}})}),credentials:"include",keepalive:!0})}getSessionId(){let x=A("_up.sid");if(!x)x=this.generateId(),K("_up.sid",x,{days:365,sameSite:"lax",secure:this.#_,domain:M(this.#R.serverUrl)});return x}generateId(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(x){let $=Math.random()*16|0;return(x==="x"?$:$&3|8).toString(16)})}}class D{#R;#x;#$;#j=W.version;constructor(x){if(this.#R=new B(x),this.#x=new N(this.#R,x),this.#$=new O(this.#x,x),this.#j=x.version||this.#j,this.#x.init(this.#$),this.#x.setAppId(x.appId),x.autoTrack?.errors!==void 0?x.autoTrack.errors:!0)this.installErrorHandler();console.debug(`UserPath v${q.version} initialized`)}getAppId(){return this.#x.getAppId()}setAppId(x){this.#x.setAppId(x)}installErrorHandler(){this.#$.installErrorHandler()}uninstallErrorHandler(){this.#$.uninstallErrorHandler()}trackError(x,$={}){if(!this.#$.isErrorHandlerInstalled()&&$.source!=="manual")return;this.#$.trackError(x,$)}setUserId(x){this.#x.setUserId(x)}getUserId(){return this.#x.getUserId()}async identify(x){await this.#x.identify(x)}track(x,$){if(x==="page_view")this.#$.trackPageView();else if(x==="event")this.#$.trackCustomEvent($.name,$.properties||{});else if(x==="purchase")this.#$.trackPurchase({price:$.price,currency:$.currency,amount:$.amount,properties:$.properties})}}export{D as UserPath,W as DEFAULT_CONFIG};
|
|
1
|
+
var V={name:"userpath-js",version:"0.0.17",private:!1,main:"dist/index.js",types:"dist/types/sdk/src/index.d.ts",exports:{".":{types:"./dist/types/sdk/src/index.d.ts",default:"./dist/index.js"},"./server":{types:"./dist/types/sdk/src/server/index.d.ts",default:"./dist/server/index.js"},"./browser":{types:"./dist/types/sdk/src/browser/index.d.ts",default:"./dist/browser/index.js"},"./utils":{types:"./dist/types/sdk/src/utils.d.ts",default:"./dist/utils.js"}},files:["dist/index.js","dist/types","dist/server"],scripts:{dev:"bun build src/index.ts --outdir ./dist --watch",types:"tsc",test:"vitest run","test:watch":"vitest","test:ui":"vitest --ui","test:coverage":"vitest --coverage",build:"bun run build.client && bun run build.pixel && bun run build.server","build.prod":"bun run test && bun run build.client.prod && bun run build.pixel.prod && bun run build.server.prod","build.client":"bun run types && bun build src/index.ts --outdir ./dist --no-cache","build.client.prod":"bun run types && bun build src/index.ts --outdir ./dist --minify","build.pixel":"bun build src/pixel.ts --outdir ./dist","build.pixel.prod":"bun build src/pixel.ts --outdir ./dist --minify","build.server":"bun run types && bun build src/server/index.ts --outdir ./dist/server","build.server.prod":"bun run types && bun build src/server/index.ts --outdir ./dist/server --minify",release:"bun run build.prod && npm publish"},dependencies:{"iconv-lite":"^0.6.3"}};var Q=()=>typeof window==="undefined"||typeof document==="undefined"||typeof IntersectionObserver==="undefined"||window.document===void 0||window.location===void 0||window.navigator===void 0||window.history===void 0;function q(x){let X=new URL(x).hostname,Y=X.split(".");return`.${Y.length>2?Y.slice(-2).join("."):X}`}function L(x,R){return Object.fromEntries(Object.entries(x).filter(([X])=>!R.includes(X)))}function $(){return Q()?{location:{href:""},addEventListener:(x,R,X)=>{return()=>{}},removeEventListener:(x,R,X)=>{return()=>{}},clearInterval:()=>{},setInterval:()=>{return 0},scrollTo:()=>{},scrollBy:()=>{},setTimeout:()=>{return 0},clearTimeout:()=>{},innerHeight:0,pageYOffset:0,documentElement:{scrollHeight:0,offsetHeight:0,clientHeight:0,scrollTop:0},screen:{width:0,height:0}}:window}function J(){return Q()?{hidden:!1,location:{href:""},referrer:"",title:"",querySelector:()=>null,closest:()=>null,clearTimeout:()=>{},setTimeout:()=>{return 0},innerHeight:0,pageYOffset:0,documentElement:{scrollHeight:0,offsetHeight:0,clientHeight:0,scrollTop:0}}:document}var C=Q()?{cookie:""}:window.document;function O(x,R,X={}){let{days:Y=7,path:Z="/",domain:M,secure:K,sameSite:B="strict"}=X,_=Y?new Date(Date.now()+Y*86400000).toUTCString():"",z=`${encodeURIComponent(x)}=${encodeURIComponent(R)}`;if(_)z+=`; expires=${_}`;if(Z)z+=`; path=${Z}`;if(M)z+=`; domain=${M}`;if(K)z+="; secure";if(B)z+=`; samesite=${B}`;C.cookie=z}function E(x){let R=encodeURIComponent(x)+"=",X=C.cookie.split(";");for(let Y=0;Y<X.length;Y++){let Z=X[Y];while(Z.charAt(0)===" ")Z=Z.substring(1,Z.length);if(Z.indexOf(R)===0)return decodeURIComponent(Z.substring(R.length,Z.length))}return null}var j={appId:"",serverUrl:"https://api.userpath.co",version:1,flushIntervalMs:5000,secure:!0,autoTrack:{errors:!0,clicks:!0,scrolling:!0,forms:!0,videos:!0,pageVisibility:!0,pageInactivity:!0}};class G{serverUrl;appId;version;secure;constructor(x){this.secure=typeof x.secure==="boolean"?x.secure:j.secure,this.serverUrl=x.serverUrl||j.serverUrl,this.appId=x.appId,this.version=x.version||j.version,O("_up.app",this.appId,{days:365,sameSite:"lax",secure:this.secure,domain:q(this.serverUrl)})}buildUrl(x){return`${this.serverUrl}/v${this.version}/${x}`}}class N{#X;#x;#R;#Z;#$;#J;#K;#Y;#M;#j;#Q;#b;#F;#U;#D;#z;#S;#q;#V;#B;#L;#O;#C;#G;#I;#_;#N;#y;#k=60000;#A;#P=!1;#H;#W;#E;constructor(x,R=j){this.#X=x,this.#E=R,this.#x=new Set,this.#R=0,this.#z=null,this.#S=$().location.href,this.#q=new Map,this.#V=new WeakMap,this.#B=new WeakMap,this.#L=Date.now(),this.#O=0,this.#C=this.#L,this.#G=J().hidden,this.#I=Date.now(),this.#_=null,this.#N=!1,this.#A=null,this.#Z=this.handleClick.bind(this),this.#$=this.handleScroll.bind(this),this.#J=this.handleScroll.bind(this),this.#K=this.handleInputFocus.bind(this),this.#Y=this.handleInputBlur.bind(this),this.#M=this.handleFormChange.bind(this),this.#j=this.handleFormSubmit.bind(this),this.#Q=this.handleVideoPlay.bind(this),this.#b=this.handleVideoPause.bind(this),this.#F=this.handleVideoEnd.bind(this),this.#U=this.handleVisibilityChange.bind(this),this.#D=this.handleBeforeUnload.bind(this),this.#y=this.handleUserActivity.bind(this),this.#H=this.handleError.bind(this),this.#W=this.handleRejection.bind(this);let X=this.#E.autoTrack??j.autoTrack;if(typeof X==="boolean"){if(X)this.setupClickTracking(),this.setupScrollTracking(),this.setupFormTracking(),this.setupVideoTracking(),this.setupPageTimeTracking(),this.setupInactivityTracking()}else{if(X.clicks!==!1)this.setupClickTracking();if(X.scrolling!==!1)this.setupScrollTracking();if(X.forms!==!1)this.setupFormTracking();if(X.videos!==!1)this.setupVideoTracking();if(X.pageVisibility!==!1)this.setupPageTimeTracking();if(X.pageInactivity!==!1)this.setupInactivityTracking()}}destroy(){if($().removeEventListener("click",this.#Z),$().removeEventListener("scroll",this.#$),$().removeEventListener("resize",this.#J),$().removeEventListener("focus",this.#K,!0),$().removeEventListener("blur",this.#Y,!0),$().removeEventListener("change",this.#M,!0),$().removeEventListener("submit",this.#j,!0),$().removeEventListener("play",this.#Q,!0),$().removeEventListener("pause",this.#b,!0),$().removeEventListener("ended",this.#F,!0),$().removeEventListener("visibilitychange",this.#U),$().removeEventListener("beforeunload",this.#D),this.#z)$().clearTimeout(this.#z);if(["mousemove","mousedown","keydown","touchstart","scroll"].forEach((x)=>{$().removeEventListener(x,this.#y,!0)}),this.#_)$().clearTimeout(this.#_);this.uninstallErrorHandler()}setupClickTracking(){$().addEventListener("click",this.#Z)}handleClick(x){let R=x.target;if(!R)return;let X=this.extractClickLabel(R);if(!X)return;this.trackCustomEvent("click",{label:X,element:R.tagName.toLowerCase(),id:R.id||void 0})}handleScroll(){let x=$().location.href;if(x!==this.#S)this.#S=x,this.#R=0,this.#x.clear();if(this.#z)$().clearTimeout(this.#z);this.#z=$().setTimeout(()=>{let R=this.calculateScrollDepth();if(R>this.#R)this.#R=R,this.checkAndTrackScrollDepth(R)},100)}setupScrollTracking(){$().addEventListener("scroll",this.#$),$().addEventListener("resize",this.#J)}calculateScrollDepth(){let x=$().innerHeight,R=Math.max(J().documentElement.scrollHeight,J().documentElement.offsetHeight,J().documentElement.clientHeight),X=$().pageYOffset||J().documentElement.scrollTop;return Math.round((X+x)/R*100)}checkAndTrackScrollDepth(x){let R=$().location.href;if(x>50&&!this.#x.has(R))this.#x.add(R),this.trackCustomEvent("scroll")}extractClickLabel(x){let R=x.getAttribute("aria-label");if(R)return`${R}`;if(x instanceof HTMLButtonElement||x instanceof HTMLAnchorElement){let Y=x.textContent?.trim();if(Y)return`${Y}`}if(x instanceof HTMLInputElement){if(x.type==="submit"&&x.value)return`${x.value}`;if(x.type==="checkbox"){let Y=this.findInputLabel(x),Z=x.checked?"Checked":"Unchecked";return Y?`${Z} ${Y}`:null}}let X=x.closest("label");if(X){let Y=X.textContent?.trim();if(Y)return`${Y}`}return null}findInputLabel(x){let R=x.getAttribute("aria-label");if(R)return R;if(x.id){let Y=J().querySelector(`label[for="${x.id}"]`);if(Y&&Y.textContent)return Y.textContent.trim()}let X=x.closest("label");if(X&&X.textContent)return X.textContent.trim().replace(x.value,"").trim();return null}trackPageView(){let x={name:"page_view",url:$().location.href,referrer:J().referrer,title:J().title,timestamp:new Date().toISOString()};return this.#X.track(x)}trackCustomEvent(x,R={},X={immediate:!1}){let Y={name:x,url:$().location.href||R.url,referrer:J().referrer,title:J().title,properties:L(R,["url"]),timestamp:new Date().toISOString()};if(X.immediate)return this.#X.publish([Y]);else return this.#X.track(Y)}trackPurchase(x){let R={name:"purchase",url:$().location.href,referrer:J().referrer,title:J().title,price:x.price,currency:x.currency,amount:x.amount,properties:{...x.properties},timestamp:new Date().toISOString()};return this.#X.track(R)}setupFormTracking(){$().addEventListener("focus",this.#K,!0),$().addEventListener("blur",this.#Y,!0),$().addEventListener("change",this.#M,!0),$().addEventListener("submit",this.#j,!0)}handleInputFocus(x){let R=x.target;if(!R||!(R instanceof HTMLInputElement||R instanceof HTMLTextAreaElement||R instanceof HTMLSelectElement))return;if(R instanceof HTMLInputElement&&R.type==="password")return;this.#V.set(R,this.getElementValue(R));let X=R.closest("form");if(X&&!this.#q.has(X))this.#q.set(X,Date.now())}getElementValue(x){if(x instanceof HTMLSelectElement)return x.value;if(x instanceof HTMLInputElement||x instanceof HTMLTextAreaElement)return x.value;return""}handleInputBlur(x){let R=x.target;if(!R||!(R instanceof HTMLInputElement||R instanceof HTMLTextAreaElement||R instanceof HTMLSelectElement))return;if(R instanceof HTMLInputElement&&R.type==="password")return;let X=this.#V.get(R)||"",Y=this.getElementValue(R);if(Y!==X&&Y.trim()!==""){let Z=R instanceof HTMLSelectElement?"select":R.type,M=this.findFormElementLabel(R)||this.getInputIdentifier(R);if(!M)return;this.trackCustomEvent("input_fill",{input_type:Z,label:M,form_name:this.getFormName(R)})}this.#V.delete(R)}getFormName(x){let R=x.closest("form");if(!R)return;return R.getAttribute("name")||R.getAttribute("id")||R.getAttribute("aria-label")||void 0}getInputIdentifier(x){return x.getAttribute("name")||x.getAttribute("id")||x.getAttribute("placeholder")||null}findFormElementLabel(x){let R=x.getAttribute("aria-label");if(R)return R;if(x.id){let Y=J().querySelector(`label[for="${x.id}"]`);if(Y&&Y.textContent)return Y.textContent.trim()}let X=x.closest("label");if(X&&X.textContent){let Y=X.textContent.trim(),Z=x instanceof HTMLSelectElement?x.selectedOptions[0]?.text:x.value;return Z?Y.replace(Z,"").trim():Y}return null}handleFormChange(x){let R=x.target;if(!R||!(R instanceof HTMLSelectElement||R instanceof HTMLInputElement))return;if(R instanceof HTMLSelectElement)this.trackSelectChange(R);else if(R instanceof HTMLInputElement){if(R.type==="radio")this.trackRadioChange(R);else if(R.type==="checkbox")this.trackCheckboxChange(R);else if(R.type==="range")this.trackRangeChange(R)}}trackSelectChange(x){let R=this.findFormElementLabel(x)||this.getInputIdentifier(x);if(!R)return;let X=x.selectedOptions[0];this.trackCustomEvent("input_select",{input_type:"select",label:R,option_label:X?.text||"",form_name:this.getFormName(x)})}trackRadioChange(x){let R=this.findFormElementLabel(x)||this.getInputIdentifier(x);if(!R)return;let X=x.name||R;this.trackCustomEvent("input_radio",{input_type:"radio",group:X,label:R,form_name:this.getFormName(x)})}trackCheckboxChange(x){let R=this.findFormElementLabel(x)||this.getInputIdentifier(x);if(!R)return;this.trackCustomEvent("input_checkbox",{input_type:"checkbox",label:R,checked:x.checked,form_name:this.getFormName(x)})}trackRangeChange(x){let R=this.findFormElementLabel(x)||this.getInputIdentifier(x);if(!R)return;this.trackCustomEvent("input_range",{input_type:"range",label:R,form_name:this.getFormName(x)})}handleFormSubmit(x){let R=x.target;if(!R||!(R instanceof HTMLFormElement))return;let X=this.#q.get(R)||Date.now(),Y=Date.now()-X,Z=this.getFormName(R)||"unknown";this.trackCustomEvent("form_submit",{form_name:Z,time_to_complete:Y}),this.#q.delete(R)}setupVideoTracking(){$().addEventListener("play",this.#Q,!0),$().addEventListener("pause",this.#b,!0),$().addEventListener("ended",this.#F,!0)}getVideoMetadata(x){let R={duration:Math.round(x.duration),current_time:Math.round(x.currentTime),src:x.currentSrc||x.src||void 0,title:x.title||void 0,video_id:x.id||void 0};for(let Z of x.attributes)if(Z.name.startsWith("data-")){let M=Z.name.replace("data-","").replace(/-/g,"_");R[M]=Z.value}if(x.getAttribute("aria-label"))R.aria_label=x.getAttribute("aria-label");if(x.getAttribute("aria-describedby"))R.aria_describedby=x.getAttribute("aria-describedby");let X=x.parentElement;if(X){if(X.id)R.parent_id=X.id;for(let K of X.attributes)if(K.name.startsWith("data-")&&K.value){let B=`parent_${K.name.replace("data-","").replace(/-/g,"_")}`;R[B]=K.value}let Z=X,M=0;while(Z&&M<3){if(Z.tagName==="SECTION"||Z.tagName==="ARTICLE"){if(Z.id)R.section_id=Z.id;if(Z.className)R.section_class=Z.className.trim();break}Z=Z.parentElement,M++}}let Y=this.getNearbyVideoDescription(x);if(Y)R.nearby_text=Y;if(R.src){let Z=new URL(R.src,window.location.href);R.video_domain=Z.hostname;let K=Z.pathname.split("/").pop();if(K&&K.includes("."))R.video_filename=K;if(Z.hostname.includes("youtube"))R.video_platform="youtube";else if(Z.hostname.includes("vimeo"))R.video_platform="vimeo";else if(Z.hostname.includes("wistia"))R.video_platform="wistia"}return Object.keys(R).forEach((Z)=>{if(R[Z]===void 0||R[Z]===null||R[Z]==="")delete R[Z]}),R}getNearbyVideoDescription(x){let R=["h1, h2, h3, h4, h5, h6",'[role="heading"]',".video-title, .title","figcaption","caption"],X=x.parentElement,Y=0;while(X&&Y<2){for(let Z of R){let M=X.querySelector(Z);if(M){let K=M.textContent?.trim();if(K&&K.length>0&&K.length<200)return K}}X=X.parentElement,Y++}return}handleVideoPlay(x){let R=x.target;if(!R||!(R instanceof HTMLVideoElement))return;this.#B.set(R,Date.now()),this.trackCustomEvent("video_play",this.getVideoMetadata(R))}handleVideoPause(x){let R=x.target;if(!R||!(R instanceof HTMLVideoElement))return;let X=this.#B.get(R),Y=this.getVideoMetadata(R);if(X)Y.watch_time=Math.round((Date.now()-X)/1000),this.#B.delete(R);this.trackCustomEvent("video_pause",Y)}handleVideoEnd(x){let R=x.target;if(!R||!(R instanceof HTMLVideoElement))return;let X=this.#B.get(R),Y=this.getVideoMetadata(R);if(X)Y.watch_time=Math.round((Date.now()-X)/1000),this.#B.delete(R);this.trackCustomEvent("video_complete",Y)}setupPageTimeTracking(){$().addEventListener("visibilitychange",this.#U),$().addEventListener("beforeunload",this.#D)}handleVisibilityChange(){let x=this.#E.autoTrack??j.autoTrack;if(!(typeof x==="boolean"?x:x.pageVisibility!==!1))return;let X=Date.now(),Y=this.#G;if(this.#G=!J().hidden,Y)this.#O+=X-this.#C;this.#C=X,this.trackCustomEvent("page_visibility",{visible:this.#G,total_time:Math.round((X-this.#L)/1000),visible_time:Math.round(this.#O/1000)})}handleBeforeUnload(){let x=this.#E.autoTrack??j.autoTrack;if(!(typeof x==="boolean"?x:x.pageVisibility!==!1))return;let X=Date.now();if(this.#G)this.#O+=X-this.#C;this.trackCustomEvent("page_exit",{total_time:Math.round((X-this.#L)/1000),visible_time:Math.round(this.#O/1000)},{immediate:!0})}setupInactivityTracking(){["mousemove","mousedown","keydown","touchstart","scroll"].forEach((x)=>{$().addEventListener(x,this.#y,!0)}),this.checkInactivity()}handleUserActivity(){if(this.#I=Date.now(),this.#N&&this.#A)this.#N=!1,this.trackCustomEvent("user_active",{inactive_duration:Math.round((Date.now()-this.#A)/1000),url:$().location.href,title:J().title}),this.#A=null;this.checkInactivity()}checkInactivity(){if(this.#_)$().clearTimeout(this.#_);this.#_=$().setTimeout(()=>{let x=Date.now();if(x-this.#I>=this.#k&&!this.#N)this.#N=!0,this.#A=x,this.trackCustomEvent("user_inactive")},this.#k)}installErrorHandler(){if(this.#P||typeof window==="undefined")return;$().addEventListener("error",this.#H),$().addEventListener("unhandledrejection",this.#W),this.#P=!0}uninstallErrorHandler(){if(!this.#P||typeof window==="undefined")return;$().removeEventListener("error",this.#H),$().removeEventListener("unhandledrejection",this.#W),this.#P=!1}isErrorHandlerInstalled(){return this.#P}handleError(x){if(x instanceof ErrorEvent)this.trackError(new Error(x.message),{filename:x.filename,lineno:x.lineno,colno:x.colno,source:"getWindow().onerror"})}handleRejection(x){let R=x.reason instanceof Error?x.reason:new Error(String(x.reason||"Unhandled Promise rejection"));this.trackError(R,{source:"unhandledrejection"})}trackError(x,R={},X={immediate:!1}){let{filename:Y,lineno:Z,colno:M,source:K,url:B,referrer:_,userAgent:z,...b}=R,P={name:"error",message:x.message,stack:x.stack,source:K||"client",lineno:Z,colno:M,filename:Y,properties:b,timestamp:new Date().toISOString(),url:B||$().location.href,referrer:_||J().referrer,title:J().title};if(X.immediate)this.#X.publish([P]);else this.#X.track(P)}}class A{#X;#x=[];#R=null;#Z;#$;#J="";#K=null;#Y=null;#M=5000;#j=!0;#Q;constructor(x,R){this.#X=x,this.#Q=R,this.#Z=R?.userId,this.#$=R?.appId||"",this.#j=typeof R?.secure==="boolean"?R.secure:j.secure,this.#M=R?.flushIntervalMs||j.flushIntervalMs||5000}init(x){this.#R=x,this.setup()}destroy(){if(this.#K)$().clearInterval(this.#K);if(this.#Y)$().clearTimeout(this.#Y);if(this.#x.length>0)this.flush()}shouldEnableAutoFlush(){if(this.#Q?.autoTrack===!1)return!1;return!0}setup(){if(typeof window==="undefined")return;if(this.getSessionId(),this.#J=$().location.href,this.#R.trackPageView(),this.setupHistoryChange(),this.shouldEnableAutoFlush())this.#K=$().setInterval(()=>this.flush(),this.#M)}setupHistoryChange(){if(!this.#R)return;let{pushState:x,replaceState:R}=history;history.pushState=(...X)=>{x.apply(history,X),this.trackPageViewIfUrlChanged()},history.replaceState=(...X)=>{R.apply(history,X),this.trackPageViewIfUrlChanged()},$().addEventListener("popstate",()=>{this.trackPageViewIfUrlChanged()})}trackPageViewIfUrlChanged(){let x=$().location.href;if(x!==this.#J)this.#J=x,this.#R.trackPageView()}getUserId(){return this.#Z}setUserId(x){this.#Z=x}getAppId(){return this.#$}setAppId(x){this.#$=x}track(x){if(Q())return this.publish([x]);if(this.#x.push(x),this.#x.length>=20)return this.flush(),Promise.resolve();if(this.shouldEnableAutoFlush()){if(!this.#Y)this.#Y=$().setTimeout(()=>{this.flush(),this.#Y=null},this.#M)}return Promise.resolve()}async identify(x){this.setUserId(x.id),await fetch(this.#X.buildUrl("identify"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(x),keepalive:!0,credentials:"include"})}deduplicateEvents(x){let R=new Set;return x.filter((X)=>{let Y=`${X.name}-${X.timestamp}`;if(R.has(Y))return!1;return R.add(Y),!0})}flush(){if(this.#x.length===0)return;if(this.#Y)$().clearTimeout(this.#Y),this.#Y=null;let x=[...this.#x];this.#x=[];let R=this.deduplicateEvents(x);this.publish(R).catch((X)=>{this.#x=[...R,...this.#x].slice(0,100),console.error("Error sending analytics data:",X)})}async publish(x){let R={userAgent:navigator.userAgent,screenWidth:$().screen.width,screenHeight:$().screen.height,language:navigator.language,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,events:x.map((Z)=>{if(!Z.timestamp)Z.timestamp=new Date().toISOString();return{...Z,name:Z.name,properties:Z.properties||{},url:Z.url}})},X={"Content-Type":"application/json"};if(Q())X.Cookie=`_up.app=${this.getAppId()};_up.sid=${this.getSessionId()}`,X["X-Userpath-Key"]=this.getAppId();let Y=await fetch(this.#X.buildUrl("log"),{method:"POST",headers:X,body:JSON.stringify(R),credentials:"include",keepalive:!0});try{let Z=await Y.json();if(!Y.ok)return Promise.reject(Z);return Z}catch(Z){return Promise.reject("There was an error sending the events")}}getSessionId(){let x=E("_up.sid");if(!x)x=this.generateId(),this.setSessionId(x);return x}setSessionId(x){O("_up.sid",x,{days:365,sameSite:"lax",secure:this.#j,domain:q(this.#X.serverUrl)})}generateId(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(x){let R=Math.random()*16|0;return(x==="x"?R:R&3|8).toString(16)})}}class U{#X;#x;#R;#Z=j.version;constructor(x){this.#X=new G(x),this.#x=new A(this.#X,x),this.#R=new N(this.#x,x),this.#Z=x.version||this.#Z,this.#x.init(this.#R),this.#x.setAppId(x.appId);let R=(()=>{if(x.autoTrack===void 0)return!0;if(typeof x.autoTrack==="boolean")return x.autoTrack;return x.autoTrack.errors!==!1})();if(!Q()&&R)this.installErrorHandler();console.debug(`UserPath v${V.version} initialized`)}getAppId(){return this.#x.getAppId()}setAppId(x){this.#x.setAppId(x)}installErrorHandler(){this.#R.installErrorHandler()}uninstallErrorHandler(){this.#R.uninstallErrorHandler()}trackError(x,R={}){if(!this.#R.isErrorHandlerInstalled()&&R.source!=="manual")return;this.#R.trackError(x,R)}setUserId(x){this.#x.setUserId(x)}getUserId(){return this.#x.getUserId()}async identify(x){await this.#x.identify(x)}track(x,R){if(x==="page_view")return this.#R.trackPageView();else if(x==="event"){let X=R.properties||{};if(R.url)X.url=R.url;if(R.sid)this.#x.setSessionId(R.sid);return this.#R.trackCustomEvent(R.name,X)}else if(x==="purchase")return this.#R.trackPurchase({price:R.price,currency:R.currency,amount:R.amount,properties:R.properties})}}export{U as UserPath,j as DEFAULT_CONFIG};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../src/base/api.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAkB,MAAM,mBAAmB,CAAC;AAE3D;;GAEG;AACH,qBAAa,SAAS;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IAEd,OAAO,EAAE,MAAM,CAAC;IAEvB,OAAO,CAAC,MAAM,CAAU;gBAEZ,MAAM,EAAE,MAAM;IAiB1B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAG9B"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { Config } from '../schemas/config';
|
|
2
2
|
import { SessionClient } from './session';
|
|
3
3
|
/**
|
|
4
|
-
* Session client for managing user sessions and automatic tracking
|
|
4
|
+
* Session client for managing user sessions and automatic tracking on client
|
|
5
|
+
* Server should have some client apis mocked so we can reuse the same code for both client and server
|
|
5
6
|
*/
|
|
6
7
|
export declare class EventsClient {
|
|
7
8
|
#private;
|
|
@@ -42,13 +43,13 @@ export declare class EventsClient {
|
|
|
42
43
|
/**
|
|
43
44
|
* Track a page view event
|
|
44
45
|
*/
|
|
45
|
-
trackPageView():
|
|
46
|
+
trackPageView(): Promise<any>;
|
|
46
47
|
/**
|
|
47
48
|
* Track a custom event
|
|
48
49
|
*/
|
|
49
50
|
trackCustomEvent(name: string, properties?: Record<string, any>, options?: {
|
|
50
51
|
immediate: boolean;
|
|
51
|
-
}):
|
|
52
|
+
}): Promise<any>;
|
|
52
53
|
/**
|
|
53
54
|
* Track a purchase event
|
|
54
55
|
*/
|
|
@@ -57,7 +58,7 @@ export declare class EventsClient {
|
|
|
57
58
|
currency: string;
|
|
58
59
|
amount: number;
|
|
59
60
|
properties?: Record<string, any>;
|
|
60
|
-
}):
|
|
61
|
+
}): Promise<any>;
|
|
61
62
|
/**
|
|
62
63
|
* Set up automatic form input tracking
|
|
63
64
|
*/
|
|
@@ -118,6 +119,10 @@ export declare class EventsClient {
|
|
|
118
119
|
* Get video metadata for tracking
|
|
119
120
|
*/
|
|
120
121
|
private getVideoMetadata;
|
|
122
|
+
/**
|
|
123
|
+
* Extract descriptive text near the video element
|
|
124
|
+
*/
|
|
125
|
+
private getNearbyVideoDescription;
|
|
121
126
|
/**
|
|
122
127
|
* Handle video play events
|
|
123
128
|
*/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../../src/base/events.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAkB,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AA6E1C;;;GAGG;AACH,qBAAa,YAAY;;gBAoCZ,OAAO,EAAE,aAAa,EAAE,MAAM,GAAE,MAAuB;IAgF5D,OAAO,IAAI,IAAI;IAiCtB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAI1B;;OAEG;IACH,OAAO,CAAC,WAAW;IAiBnB;;OAEG;IACH,OAAO,CAAC,YAAY;IAqBpB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAK3B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAa5B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAUhC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAqCzB;;OAEG;IACH,OAAO,CAAC,cAAc;IAsBtB;;OAEG;IACI,aAAa;IAYpB;;OAEG;IACI,gBAAgB,CACtB,IAAI,EAAE,MAAM,EACZ,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,EACpC,OAAO,GAAE;QACR,SAAS,EAAE,OAAO,CAAC;KAGnB;IAkBF;;OAEG;IACI,aAAa,CAAC,MAAM,EAAE;QAC5B,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KACjC;IAkBD;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAQzB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA6BxB;;OAEG;IACH,OAAO,CAAC,eAAe;IAavB;;OAEG;IACH,OAAO,CAAC,eAAe;IA0CvB;;OAEG;IACH,OAAO,CAAC,WAAW;IAYnB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAS1B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA4B5B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA2BxB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAczB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAgBxB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAa3B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAYxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAqBxB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAO1B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAmGxB;;OAEG;IACH,OAAO,CAAC,yBAAyB;IA8BjC;;OAEG;IACH,OAAO,CAAC,eAAe;IAUvB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAexB;;OAEG;IACH,OAAO,CAAC,cAAc;IAetB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAQ7B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA+B9B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAgC1B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAY/B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAoB1B;;OAEG;IACH,OAAO,CAAC,eAAe;IAoBvB;;OAEG;IACI,mBAAmB,IAAI,IAAI;IAclC;;OAEG;IACI,qBAAqB,IAAI,IAAI;IAcpC;;OAEG;IACI,uBAAuB,IAAI,OAAO;IAIzC;;OAEG;IACH,OAAO,CAAC,WAAW;IAWnB;;OAEG;IACH,OAAO,CAAC,eAAe;IASvB;;OAEG;IACI,UAAU,CAChB,KAAK,EAAE,KAAK,EACZ,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,EACpC,OAAO,GAAE;QACR,SAAS,EAAE,OAAO,CAAC;KAGnB,GACC,IAAI;CAoCP"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { EventObject } from '@userpath/core';
|
|
1
2
|
import { Config } from '../schemas/config';
|
|
2
|
-
import { Event } from '../schemas/events';
|
|
3
3
|
import { UserIdentity } from '../schemas/identity';
|
|
4
4
|
import { ApiClient } from './api';
|
|
5
5
|
import { EventsClient } from './events';
|
|
@@ -11,6 +11,10 @@ export declare class SessionClient {
|
|
|
11
11
|
constructor(api: ApiClient, config?: Config);
|
|
12
12
|
init(events: EventsClient): void;
|
|
13
13
|
destroy(): void;
|
|
14
|
+
/**
|
|
15
|
+
* Check if automatic flushing should be enabled based on autoTrack config
|
|
16
|
+
*/
|
|
17
|
+
private shouldEnableAutoFlush;
|
|
14
18
|
/**
|
|
15
19
|
* Setup session tracking
|
|
16
20
|
*/
|
|
@@ -42,7 +46,7 @@ export declare class SessionClient {
|
|
|
42
46
|
/**
|
|
43
47
|
* Add an event to the queue and schedule flush if needed
|
|
44
48
|
*/
|
|
45
|
-
track(event:
|
|
49
|
+
track(event: EventObject): Promise<any>;
|
|
46
50
|
/**
|
|
47
51
|
* Identify a user so that we can show in the User Journey
|
|
48
52
|
*/
|
|
@@ -55,11 +59,12 @@ export declare class SessionClient {
|
|
|
55
59
|
* Flush queued events to the server
|
|
56
60
|
*/
|
|
57
61
|
protected flush(): void;
|
|
58
|
-
publish(events:
|
|
62
|
+
publish(events: EventObject[]): Promise<any>;
|
|
59
63
|
/**
|
|
60
64
|
* Get or generate a session ID
|
|
61
65
|
*/
|
|
62
66
|
getSessionId(): string;
|
|
67
|
+
setSessionId(sessionId: string): void;
|
|
63
68
|
/**
|
|
64
69
|
* Generate a UUID v4
|
|
65
70
|
*/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../../src/base/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAI7C,OAAO,EAAE,MAAM,EAAkB,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC;;GAEG;AACH,qBAAa,aAAa;;gBAab,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM;IAcpC,IAAI,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAKhC,OAAO,IAAI,IAAI;IAYtB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAa7B;;OAEG;IACH,OAAO,CAAC,KAAK;IAyBb;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAqB1B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAQjC;;OAEG;IACI,SAAS,IAAI,MAAM,GAAG,SAAS;IAItC;;OAEG;IACI,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAItC;;OAEG;IACI,QAAQ,IAAI,MAAM;IAIzB;;OAEG;IACI,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIpC;;OAEG;IACI,KAAK,CAAC,KAAK,EAAE,WAAW;IA6B/B;;OAEG;IACU,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB5D;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAYzB;;OAEG;IACH,SAAS,CAAC,KAAK,IAAI,IAAI;IAsBV,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE;IAsD1C;;OAEG;IACI,YAAY,IAAI,MAAM;IAStB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAS5C;;OAEG;IACI,UAAU,IAAI,MAAM;CAU3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/browser/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LocalStorage.d.ts","sourceRoot":"","sources":["../../../../../src/browser/libs/LocalStorage.ts"],"names":[],"mappings":"AAaA,cAAM,YAAY;IACjB,SAAS,EAAE,MAAM,CAAC;gBACN,EAAE,SAAS,EAAE,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE;IAIhD,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IAajC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAIhC,UAAU,CAAC,GAAG,EAAE,MAAM;CAGtB;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cookie.d.ts","sourceRoot":"","sources":["../../../../../src/browser/libs/cookie.ts"],"names":[],"mappings":"AAWA;;GAEG;AACH,wBAAgB,SAAS,CACxB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;IACR,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;CAChC,GACJ,IAAI,CAgBN;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAerD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,SAAM,GAAG,IAAI,CAG3D;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE/C;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CASrD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../../../src/browser/libs/storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,QAAA,MAAM,OAAO,cAA8C,CAAC;AAE5D,OAAO,EAAE,OAAO,EAAE,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
export declare const isServer: () => boolean;
|
|
2
|
+
export declare function leadingDotDomain(serverUrl: string): string;
|
|
3
|
+
export declare function omit(obj: Record<string, any>, keys: string[]): Record<string, any>;
|
|
4
|
+
export declare function getWindow(): (Window & typeof globalThis) | {
|
|
5
|
+
location: {
|
|
6
|
+
href: string;
|
|
7
|
+
};
|
|
8
|
+
addEventListener: (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions | undefined) => () => void;
|
|
9
|
+
removeEventListener: (type: string, listener: EventListener, options?: boolean | EventListenerOptions | undefined) => () => void;
|
|
10
|
+
clearInterval: () => void;
|
|
11
|
+
setInterval: () => number;
|
|
12
|
+
scrollTo: () => void;
|
|
13
|
+
scrollBy: () => void;
|
|
14
|
+
setTimeout: () => number;
|
|
15
|
+
clearTimeout: () => void;
|
|
16
|
+
innerHeight: number;
|
|
17
|
+
pageYOffset: number;
|
|
18
|
+
documentElement: {
|
|
19
|
+
scrollHeight: number;
|
|
20
|
+
offsetHeight: number;
|
|
21
|
+
clientHeight: number;
|
|
22
|
+
scrollTop: number;
|
|
23
|
+
};
|
|
24
|
+
screen: {
|
|
25
|
+
width: number;
|
|
26
|
+
height: number;
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
export declare function getDocument(): Document | {
|
|
30
|
+
hidden: boolean;
|
|
31
|
+
location: {
|
|
32
|
+
href: string;
|
|
33
|
+
};
|
|
34
|
+
referrer: string;
|
|
35
|
+
title: string;
|
|
36
|
+
querySelector: () => null;
|
|
37
|
+
closest: () => null;
|
|
38
|
+
clearTimeout: () => void;
|
|
39
|
+
setTimeout: () => number;
|
|
40
|
+
innerHeight: number;
|
|
41
|
+
pageYOffset: number;
|
|
42
|
+
documentElement: {
|
|
43
|
+
scrollHeight: number;
|
|
44
|
+
offsetHeight: number;
|
|
45
|
+
clientHeight: number;
|
|
46
|
+
scrollTop: number;
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/browser/utils.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ,eAOQ,CAAC;AAE9B,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAS1D;AAED,wBAAgB,IAAI,CACnB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACxB,IAAI,EAAE,MAAM,EAAE,GACZ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAIrB;AAED,wBAAgB,SAAS;;;;6BAQd,MAAM,YAEF,kCAAkC,YAElC,OAAO,GAAG,oBAAoB,GAAG,SAAS;gCAM9C,MAAM,YAEF,aAAa,YAEb,OAAO,GAAG,oBAAoB,GAAG,SAAS;;;;;;;;;;;;;;;;;;;EA4BxD;AAED,wBAAgB,WAAW;;;;;;;;;;;;;;;;;;;EAyB1B"}
|
|
@@ -38,19 +38,21 @@ declare class UserPath {
|
|
|
38
38
|
/**
|
|
39
39
|
* Track an event
|
|
40
40
|
*/
|
|
41
|
-
track(eventType: 'page_view'): void
|
|
41
|
+
track(eventType: 'page_view'): Promise<void>;
|
|
42
42
|
track(eventType: 'event', params: {
|
|
43
43
|
name: string;
|
|
44
44
|
properties?: Record<string, any>;
|
|
45
|
-
|
|
45
|
+
sid?: string;
|
|
46
|
+
url?: string;
|
|
47
|
+
}): Promise<void>;
|
|
46
48
|
track(eventType: 'purchase', params: {
|
|
47
49
|
price: number;
|
|
48
50
|
amount: number;
|
|
49
51
|
currency: string;
|
|
50
52
|
properties?: Record<string, any>;
|
|
51
|
-
|
|
53
|
+
sid?: string;
|
|
54
|
+
}): Promise<void>;
|
|
52
55
|
}
|
|
53
|
-
export * from './schemas/events';
|
|
54
56
|
export * from './schemas/config';
|
|
55
57
|
export * from './schemas/identity';
|
|
56
58
|
export { UserPath };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAkB,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,cAAM,QAAQ;;gBAMD,MAAM,EAAE,MAAM;IA8B1B;;OAEG;IACI,QAAQ,IAAI,MAAM;IAIzB;;OAEG;IACI,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIpC;;OAEG;IACI,mBAAmB,IAAI,IAAI;IAIlC;;OAEG;IACI,qBAAqB,IAAI,IAAI;IAIpC;;OAEG;IACI,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAAG,IAAI;IAY3E;;OAEG;IACI,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAItC;;OAEG;IACI,SAAS,IAAI,MAAM,GAAG,SAAS;IAItC;;OAEG;IACU,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5D;;OAEG;IACI,KAAK,CAAC,SAAS,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAC5C,KAAK,CACX,SAAS,EAAE,OAAO,EAClB,MAAM,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACjC,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,GAAG,CAAC,EAAE,MAAM,CAAC;KACb,GACC,OAAO,CAAC,IAAI,CAAC;IACT,KAAK,CACX,SAAS,EAAE,UAAU,EACrB,MAAM,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACjC,GAAG,CAAC,EAAE,MAAM,CAAC;KACb,GACC,OAAO,CAAC,IAAI,CAAC;CAsBhB;AAGD,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AAEnC,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pixel.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"pixel.d.ts","sourceRoot":"","sources":["../../../src/pixel.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/schemas/config.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,MAAM;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EACP,OAAO,GACP;QACA,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,cAAc,CAAC,EAAE,OAAO,CAAC;KACxB,CAAC;CACL;AAED,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;CAejB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../../../src/schemas/identity.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACjC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/server/index.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,eAAO,MAAM,QAAQ;IACpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;mBAEO,OAAO,mCAMb;QACF,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;KACjB;CA4HF,CAAC;AAEF,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/server/utils.ts"],"names":[],"mappings":"AAEA,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,sBAMpE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAiBnD"}
|
package/package.json
CHANGED
|
@@ -1,17 +1,25 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "userpath-js",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.17",
|
|
4
4
|
"private": false,
|
|
5
5
|
"main": "dist/index.js",
|
|
6
|
-
"types": "dist/types/
|
|
6
|
+
"types": "dist/types/sdk/src/index.d.ts",
|
|
7
7
|
"exports": {
|
|
8
8
|
".": {
|
|
9
|
-
"types": "./dist/types/
|
|
9
|
+
"types": "./dist/types/sdk/src/index.d.ts",
|
|
10
10
|
"default": "./dist/index.js"
|
|
11
11
|
},
|
|
12
12
|
"./server": {
|
|
13
|
-
"types": "./dist/types/
|
|
13
|
+
"types": "./dist/types/sdk/src/server/index.d.ts",
|
|
14
14
|
"default": "./dist/server/index.js"
|
|
15
|
+
},
|
|
16
|
+
"./browser": {
|
|
17
|
+
"types": "./dist/types/sdk/src/browser/index.d.ts",
|
|
18
|
+
"default": "./dist/browser/index.js"
|
|
19
|
+
},
|
|
20
|
+
"./utils": {
|
|
21
|
+
"types": "./dist/types/sdk/src/utils.d.ts",
|
|
22
|
+
"default": "./dist/utils.js"
|
|
15
23
|
}
|
|
16
24
|
},
|
|
17
25
|
"files": [
|
|
@@ -22,8 +30,12 @@
|
|
|
22
30
|
"scripts": {
|
|
23
31
|
"dev": "bun build src/index.ts --outdir ./dist --watch",
|
|
24
32
|
"types": "tsc",
|
|
33
|
+
"test": "vitest run",
|
|
34
|
+
"test:watch": "vitest",
|
|
35
|
+
"test:ui": "vitest --ui",
|
|
36
|
+
"test:coverage": "vitest --coverage",
|
|
25
37
|
"build": "bun run build.client && bun run build.pixel && bun run build.server",
|
|
26
|
-
"build.prod": "bun run build.client.prod && bun run build.pixel.prod && bun run build.server.prod",
|
|
38
|
+
"build.prod": "bun run test && bun run build.client.prod && bun run build.pixel.prod && bun run build.server.prod",
|
|
27
39
|
"build.client": "bun run types && bun build src/index.ts --outdir ./dist --no-cache",
|
|
28
40
|
"build.client.prod": "bun run types && bun build src/index.ts --outdir ./dist --minify",
|
|
29
41
|
"build.pixel": "bun build src/pixel.ts --outdir ./dist",
|
|
@@ -32,10 +44,6 @@
|
|
|
32
44
|
"build.server.prod": "bun run types && bun build src/server/index.ts --outdir ./dist/server --minify",
|
|
33
45
|
"release": "bun run build.prod && npm publish"
|
|
34
46
|
},
|
|
35
|
-
"devDependencies": {
|
|
36
|
-
"bun-types": "latest",
|
|
37
|
-
"typescript": "^5.0.0"
|
|
38
|
-
},
|
|
39
47
|
"dependencies": {
|
|
40
48
|
"iconv-lite": "^0.6.3"
|
|
41
49
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../../src/base/api.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAkB,MAAM,mBAAmB,CAAC;AAG3D;;GAEG;AACH,qBAAa,SAAS;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IAEd,OAAO,EAAE,MAAM,CAAC;IAEvB,OAAO,CAAC,MAAM,CAAU;gBAEZ,MAAM,EAAE,MAAM;IAiB1B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAG9B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../../../src/base/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAkB,MAAM,mBAAmB,CAAC;AAO3D,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAgE1C;;GAEG;AAEH,qBAAa,YAAY;;gBAoCZ,OAAO,EAAE,aAAa,EAAE,MAAM,GAAE,MAAuB;IAkE5D,OAAO,IAAI,IAAI;IAiCtB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAI1B;;OAEG;IACH,OAAO,CAAC,WAAW;IAiBnB;;OAEG;IACH,OAAO,CAAC,YAAY;IAqBpB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAK3B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAY5B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAUhC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAqCzB;;OAEG;IACH,OAAO,CAAC,cAAc;IAsBtB;;OAEG;IACI,aAAa,IAAI,IAAI;IAY5B;;OAEG;IACI,gBAAgB,CACtB,IAAI,EAAE,MAAM,EACZ,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,EACpC,OAAO,GAAE;QACR,SAAS,EAAE,OAAO,CAAC;KAGnB,GACC,IAAI;IAiBP;;OAEG;IACI,aAAa,CAAC,MAAM,EAAE;QAC5B,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KACjC,GAAG,IAAI;IAkBR;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAQzB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA6BxB;;OAEG;IACH,OAAO,CAAC,eAAe;IAavB;;OAEG;IACH,OAAO,CAAC,eAAe;IA0CvB;;OAEG;IACH,OAAO,CAAC,WAAW;IAYnB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAS1B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA4B5B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA2BxB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAczB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAgBxB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAa3B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAYxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAqBxB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAO1B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAUxB;;OAEG;IACH,OAAO,CAAC,eAAe;IAUvB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAexB;;OAEG;IACH,OAAO,CAAC,cAAc;IAetB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAQ7B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAoB9B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAqB1B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAY/B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAoB1B;;OAEG;IACH,OAAO,CAAC,eAAe;IAoBvB;;OAEG;IACI,mBAAmB,IAAI,IAAI;IAclC;;OAEG;IACI,qBAAqB,IAAI,IAAI;IAWpC;;OAEG;IACI,uBAAuB,IAAI,OAAO;IAIzC;;OAEG;IACH,OAAO,CAAC,WAAW;IAWnB;;OAEG;IACH,OAAO,CAAC,eAAe;IASvB;;OAEG;IACI,UAAU,CAChB,KAAK,EAAE,KAAK,EACZ,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,EACpC,OAAO,GAAE;QACR,SAAS,EAAE,OAAO,CAAC;KAGnB,GACC,IAAI;CAoCP"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../../../src/base/session.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAkB,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC;;GAEG;AACH,qBAAa,aAAa;;gBAYb,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM;IAapC,IAAI,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAKhC,OAAO,IAAI,IAAI;IAYtB;;OAEG;IACH,OAAO,CAAC,KAAK;IAuBb;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAqB1B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAQjC;;OAEG;IACI,SAAS,IAAI,MAAM,GAAG,SAAS;IAItC;;OAEG;IACI,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAItC;;OAEG;IACI,QAAQ,IAAI,MAAM;IAIzB;;OAEG;IACI,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIpC;;OAEG;IACI,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAkBhC;;OAEG;IACU,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB5D;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAYzB;;OAEG;IACH,SAAS,CAAC,KAAK,IAAI,IAAI;IAsBV,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE;IA8BlC;;OAEG;IACI,YAAY,IAAI,MAAM;IAc7B;;OAEG;IACI,UAAU,IAAI,MAAM;CAU3B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAkB,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,cAAM,QAAQ;;gBAMD,MAAM,EAAE,MAAM;IAuB1B;;OAEG;IACI,QAAQ,IAAI,MAAM;IAIzB;;OAEG;IACI,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIpC;;OAEG;IACI,mBAAmB,IAAI,IAAI;IAIlC;;OAEG;IACI,qBAAqB,IAAI,IAAI;IAIpC;;OAEG;IACI,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAAG,IAAI;IAY3E;;OAEG;IACI,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAItC;;OAEG;IACI,SAAS,IAAI,MAAM,GAAG,SAAS;IAItC;;OAEG;IACU,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5D;;OAEG;IACI,KAAK,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI;IACnC,KAAK,CACX,SAAS,EAAE,OAAO,EAClB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAAE,GACxD,IAAI;IACA,KAAK,CACX,SAAS,EAAE,UAAU,EACrB,MAAM,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KACjC,GACC,IAAI;CAkBP;AAGD,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AAEnC,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../src/schemas/config.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,MAAM;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE;QACX,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,cAAc,CAAC,EAAE,OAAO,CAAC;KACzB,CAAC;CACF;AAED,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;CAejB,CAAC"}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
export interface PageViewEvent {
|
|
2
|
-
name: 'page_view';
|
|
3
|
-
url: string;
|
|
4
|
-
referrer: string;
|
|
5
|
-
title: string;
|
|
6
|
-
user_id?: string;
|
|
7
|
-
timestamp: string;
|
|
8
|
-
}
|
|
9
|
-
export interface CustomEvent {
|
|
10
|
-
name: string;
|
|
11
|
-
url: string;
|
|
12
|
-
referrer: string;
|
|
13
|
-
title: string;
|
|
14
|
-
properties: Record<string, any>;
|
|
15
|
-
user_id?: string;
|
|
16
|
-
timestamp: string;
|
|
17
|
-
}
|
|
18
|
-
export interface PurchaseEvent {
|
|
19
|
-
name: 'purchase';
|
|
20
|
-
price: number;
|
|
21
|
-
currency: string;
|
|
22
|
-
amount: number;
|
|
23
|
-
properties?: Record<string, any>;
|
|
24
|
-
user_id?: string;
|
|
25
|
-
timestamp: string;
|
|
26
|
-
url: string;
|
|
27
|
-
referrer: string;
|
|
28
|
-
title: string;
|
|
29
|
-
}
|
|
30
|
-
export interface IdentifyEvent {
|
|
31
|
-
name: 'identify';
|
|
32
|
-
anonymousId: string;
|
|
33
|
-
userId: string;
|
|
34
|
-
email?: string;
|
|
35
|
-
properties?: Record<string, any>;
|
|
36
|
-
user_id?: string;
|
|
37
|
-
timestamp: string;
|
|
38
|
-
url?: string;
|
|
39
|
-
referrer?: string;
|
|
40
|
-
title?: string;
|
|
41
|
-
}
|
|
42
|
-
export interface ErrorEvent {
|
|
43
|
-
name: 'error';
|
|
44
|
-
message: string;
|
|
45
|
-
stack?: string;
|
|
46
|
-
source?: string;
|
|
47
|
-
lineno?: number;
|
|
48
|
-
colno?: number;
|
|
49
|
-
filename?: string;
|
|
50
|
-
properties?: Record<string, any>;
|
|
51
|
-
user_id?: string;
|
|
52
|
-
timestamp: string;
|
|
53
|
-
url?: string;
|
|
54
|
-
referrer?: string;
|
|
55
|
-
title?: string;
|
|
56
|
-
}
|
|
57
|
-
export type Event = PageViewEvent | CustomEvent | PurchaseEvent | IdentifyEvent | ErrorEvent;
|
|
58
|
-
//# sourceMappingURL=events.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../../../src/schemas/events.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,WAAW,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,UAAU,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,UAAU;IAC1B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,KAAK,GACd,aAAa,GACb,WAAW,GACX,aAAa,GACb,aAAa,GACb,UAAU,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../../../../src/schemas/identity.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACjC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/server/index.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,eAAO,MAAM,QAAQ;IACpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;mBAEO,OAAO,mCAMb;QACF,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;KACjB;CA4HF,CAAC;AAEF,cAAc,SAAS,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/server/utils.ts"],"names":[],"mappings":"AAEA,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,sBAMpE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAiBnD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAS1D"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../core/src/browser/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LocalStorage.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/browser/libs/LocalStorage.ts"],"names":[],"mappings":"AAAA,cAAM,YAAY;IACjB,SAAS,EAAE,MAAM,CAAC;gBACN,EAAE,SAAS,EAAE,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE;IAIhD,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IAajC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAIhC,UAAU,CAAC,GAAG,EAAE,MAAM;CAGtB;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cookie.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/browser/libs/cookie.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,SAAS,CACxB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;IACR,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;CAChC,GACJ,IAAI,CAgBN;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAerD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,SAAM,GAAG,IAAI,CAG3D;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE/C;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CASrD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/browser/libs/memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,QAAA,MAAM,MAAM,cAA8C,CAAC;AAE3D,OAAO,EAAE,MAAM,EAAE,CAAC"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|