@onramp-sdk/web 0.5.0 → 0.5.1
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/dist/onramp.min.js +1 -1
- package/package.json +2 -2
package/dist/onramp.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var Y=Object.create;var C=Object.defineProperty;var G=Object.getOwnPropertyDescriptor;var Q=Object.getOwnPropertyNames;var z=Object.getPrototypeOf,Z=Object.prototype.hasOwnProperty;var h=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var ee=(t,e,n,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of Q(e))!Z.call(t,s)&&s!==n&&C(t,s,{get:()=>e[s],enumerable:!(i=G(e,s))||i.enumerable});return t};var te=(t,e,n)=>(n=t!=null?Y(z(t)):{},ee(e||!t||!t.__esModule?C(n,"default",{value:t,enumerable:!0}):n,t));var V=h(N=>{"use strict";Object.defineProperty(N,"__esModule",{value:!0})});var D=h(q=>{"use strict";Object.defineProperty(q,"__esModule",{value:!0})});var j=h(a=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0});a.API_KEY_HEADER=a.INGEST_ROUTE=a.MAX_EVENTS_PER_BATCH=a.SCHEMA_VERSION=void 0;a.SCHEMA_VERSION="1.0";a.MAX_EVENTS_PER_BATCH=50;a.INGEST_ROUTE="/v1/events";a.API_KEY_HEADER="x-onramp-key"});var S=h(l=>{"use strict";var ne=l&&l.__createBinding||(Object.create?(function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}):(function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]})),v=l&&l.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&ne(e,t,n)};Object.defineProperty(l,"__esModule",{value:!0});v(V(),l);v(D(),l);v(j(),l)});var O=h(y=>{"use strict";Object.defineProperty(y,"__esModule",{value:!0});y.BatchQueue=void 0;var E=S(),ie=3,se=1e3,b=class{queue=[];timer=null;retryTimer=null;retryCount=0;sending=!1;flushIntervalMs;flushFn;constructor(e,n=5e3){this.flushFn=e,this.flushIntervalMs=n}push(e){this.queue.push(e),this.queue.length>=E.MAX_EVENTS_PER_BATCH?this.sendWhenReady():!this.timer&&!this.retryTimer&&(this.timer=setTimeout(()=>this.sendWhenReady(),this.flushIntervalMs))}async flushNow(){for(this.cancelTimers();this.queue.length>0;){let e=this.queue.splice(0,E.MAX_EVENTS_PER_BATCH);await this.flushFn(e).catch(()=>{})}}destroy(){this.cancelTimers()}sendWhenReady(){this.sending||(this.cancelTimers(),this.trySend())}async trySend(){if(this.sending||this.queue.length===0)return;this.sending=!0;let e=this.queue.splice(0,E.MAX_EVENTS_PER_BATCH);try{await this.flushFn(e),this.retryCount=0,this.queue.length>0&&!this.timer&&(this.timer=setTimeout(()=>this.sendWhenReady(),this.flushIntervalMs))}catch{if(this.queue.unshift(...e),this.retryCount<ie){let n=se*2**this.retryCount;this.retryCount++,this.retryTimer=setTimeout(()=>this.sendWhenReady(),n)}else this.queue.splice(0,e.length),this.retryCount=0}finally{this.sending=!1}}cancelTimers(){this.timer&&(clearTimeout(this.timer),this.timer=null),this.retryTimer&&(clearTimeout(this.retryTimer),this.retryTimer=null)}};y.BatchQueue=b});var H=h(g=>{"use strict";Object.defineProperty(g,"__esModule",{value:!0});g.OnRampClient=void 0;var re=O(),f=S(),w=class{config;queue;constructor(e){this.config={host:"https://ingest.
|
|
1
|
+
"use strict";(()=>{var Y=Object.create;var C=Object.defineProperty;var G=Object.getOwnPropertyDescriptor;var Q=Object.getOwnPropertyNames;var z=Object.getPrototypeOf,Z=Object.prototype.hasOwnProperty;var h=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var ee=(t,e,n,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of Q(e))!Z.call(t,s)&&s!==n&&C(t,s,{get:()=>e[s],enumerable:!(i=G(e,s))||i.enumerable});return t};var te=(t,e,n)=>(n=t!=null?Y(z(t)):{},ee(e||!t||!t.__esModule?C(n,"default",{value:t,enumerable:!0}):n,t));var V=h(N=>{"use strict";Object.defineProperty(N,"__esModule",{value:!0})});var D=h(q=>{"use strict";Object.defineProperty(q,"__esModule",{value:!0})});var j=h(a=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0});a.API_KEY_HEADER=a.INGEST_ROUTE=a.MAX_EVENTS_PER_BATCH=a.SCHEMA_VERSION=void 0;a.SCHEMA_VERSION="1.0";a.MAX_EVENTS_PER_BATCH=50;a.INGEST_ROUTE="/v1/events";a.API_KEY_HEADER="x-onramp-key"});var S=h(l=>{"use strict";var ne=l&&l.__createBinding||(Object.create?(function(t,e,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(e,n);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,s)}):(function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]})),v=l&&l.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&ne(e,t,n)};Object.defineProperty(l,"__esModule",{value:!0});v(V(),l);v(D(),l);v(j(),l)});var O=h(y=>{"use strict";Object.defineProperty(y,"__esModule",{value:!0});y.BatchQueue=void 0;var E=S(),ie=3,se=1e3,b=class{queue=[];timer=null;retryTimer=null;retryCount=0;sending=!1;flushIntervalMs;flushFn;constructor(e,n=5e3){this.flushFn=e,this.flushIntervalMs=n}push(e){this.queue.push(e),this.queue.length>=E.MAX_EVENTS_PER_BATCH?this.sendWhenReady():!this.timer&&!this.retryTimer&&(this.timer=setTimeout(()=>this.sendWhenReady(),this.flushIntervalMs))}async flushNow(){for(this.cancelTimers();this.queue.length>0;){let e=this.queue.splice(0,E.MAX_EVENTS_PER_BATCH);await this.flushFn(e).catch(()=>{})}}destroy(){this.cancelTimers()}sendWhenReady(){this.sending||(this.cancelTimers(),this.trySend())}async trySend(){if(this.sending||this.queue.length===0)return;this.sending=!0;let e=this.queue.splice(0,E.MAX_EVENTS_PER_BATCH);try{await this.flushFn(e),this.retryCount=0,this.queue.length>0&&!this.timer&&(this.timer=setTimeout(()=>this.sendWhenReady(),this.flushIntervalMs))}catch{if(this.queue.unshift(...e),this.retryCount<ie){let n=se*2**this.retryCount;this.retryCount++,this.retryTimer=setTimeout(()=>this.sendWhenReady(),n)}else this.queue.splice(0,e.length),this.retryCount=0}finally{this.sending=!1}}cancelTimers(){this.timer&&(clearTimeout(this.timer),this.timer=null),this.retryTimer&&(clearTimeout(this.retryTimer),this.retryTimer=null)}};y.BatchQueue=b});var H=h(g=>{"use strict";Object.defineProperty(g,"__esModule",{value:!0});g.OnRampClient=void 0;var re=O(),f=S(),w=class{config;queue;constructor(e){this.config={host:"https://ingest.getonramp.dev",platform:"other",framework:null,appVersion:null,flushIntervalMs:5e3,...e},this.queue=new re.BatchQueue(this.sendBatch.bind(this),this.config.flushIntervalMs)}track(e){let n={schema_version:f.SCHEMA_VERSION,event_id:this.config.uuidFn(),event_type:e.eventType??"step_entered",app_key:this.config.apiKey,session_id:e.sessionId,anonymous_id:e.anonymousId,step_name:e.stepName,step_index:e.stepIndex,client_timestamp_ms:Date.now(),platform:this.config.platform,os_version:e.osVersion??null,app_version:this.config.appVersion,device_model:e.deviceModel??null,device_type:e.deviceType??null,properties:this.config.framework?{_framework:this.config.framework,...e.properties}:e.properties??null};this.queue.push(n)}identify(e){let n={schema_version:f.SCHEMA_VERSION,event_id:this.config.uuidFn(),event_type:"identify",app_key:this.config.apiKey,session_id:e.sessionId,anonymous_id:e.anonymousId,step_name:"_identify",step_index:0,client_timestamp_ms:Date.now(),platform:this.config.platform,os_version:null,app_version:this.config.appVersion,device_model:null,device_type:null,properties:e.traits};this.queue.push(n)}flush(){return this.queue.flushNow()}beacon(e){if(typeof fetch>"u")return;let n={schema_version:f.SCHEMA_VERSION,event_id:this.config.uuidFn(),event_type:"heartbeat",app_key:this.config.apiKey,session_id:e.sessionId,anonymous_id:e.anonymousId,step_name:"_heartbeat",step_index:0,client_timestamp_ms:Date.now(),platform:this.config.platform,os_version:null,app_version:this.config.appVersion,device_model:null,device_type:null,properties:null};fetch(`${this.config.host}${f.INGEST_ROUTE}`,{method:"POST",headers:{"Content-Type":"application/json",[f.API_KEY_HEADER]:this.config.apiKey},body:JSON.stringify({events:[n]}),keepalive:!0}).catch(()=>{})}destroy(){this.queue.destroy()}async sendBatch(e){let n=`${this.config.host}${f.INGEST_ROUTE}`,i=await fetch(n,{method:"POST",headers:{"Content-Type":"application/json",[f.API_KEY_HEADER]:this.config.apiKey},body:JSON.stringify({events:e})});if(!i.ok)throw new Error(`Ingest failed: ${i.status}`)}};g.OnRampClient=w});var B=h(p=>{"use strict";Object.defineProperty(p,"__esModule",{value:!0});p.BatchQueue=p.OnRampClient=void 0;var oe=H();Object.defineProperty(p,"OnRampClient",{enumerable:!0,get:function(){return oe.OnRampClient}});var ae=O();Object.defineProperty(p,"BatchQueue",{enumerable:!0,get:function(){return ae.BatchQueue}})});var k=te(B()),I="@onramp/anonymous_id",$="@onramp/session",W=1800*1e3,ue=365*24*60*60*1e3;function M(){return typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,t=>{let e=Math.random()*16|0;return(t==="x"?e:e&3|8).toString(16)})}function X(t){try{return localStorage.getItem(t)}catch{return null}}function A(t,e){try{localStorage.setItem(t,e)}catch{}}function de(t){let e=X(I);if(e)try{let i=JSON.parse(e);if(Date.now()-i.createdAt<t)return i.id}catch{let i={id:e,createdAt:Date.now()};return A(I,JSON.stringify(i)),i.id}let n={id:M(),createdAt:Date.now()};return A(I,JSON.stringify(n)),n.id}function le(){let t=X($);if(!t)return null;try{return JSON.parse(t)}catch{return null}}function _(){r&&A($,JSON.stringify({id:r,lastActive:c,stepCounter:m}))}function x(){r=M(),m=0,c=Date.now(),_()}function T(){(!r||Date.now()-c>R)&&x()}function F(){if(typeof navigator>"u")return{osVersion:"web",browser:""};let t=navigator.userAgent,e="web",n="";if(/iPad/.test(t))e="ipados",n=(t.match(/OS (\d+[_.]\d+)/)??[])[1]?.replace("_",".")??"";else if(/iPhone|iPod/.test(t))e="ios",n=(t.match(/OS (\d+[_.]\d+)/)??[])[1]?.replace("_",".")??"";else if(/Android (\d+\.?\d*)/.test(t))e="android",n=(t.match(/Android (\d+\.?\d*)/)??[])[1]??"";else if(/Windows NT (\d+\.\d+)/.test(t)){e="windows";let s=(t.match(/Windows NT (\d+\.\d+)/)??[])[1]??"";n={"10.0":"10","6.3":"8.1","6.2":"8","6.1":"7"}[s]??s}else/Mac OS X (\d+[_.]\d+)/.test(t)?(e="macos",n=(t.match(/Mac OS X (\d+[_.]\d+)/)??[])[1]?.replace("_",".")??""):/Linux/.test(t)&&(e="linux");let i="";return/Edg\/(\d+)/.test(t)?i=`Edge ${(t.match(/Edg\/(\d+)/)??[])[1]??""}`:/OPR\/(\d+)/.test(t)?i=`Opera ${(t.match(/OPR\/(\d+)/)??[])[1]??""}`:/Firefox\/(\d+)/.test(t)?i=`Firefox ${(t.match(/Firefox\/(\d+)/)??[])[1]??""}`:/Chrome\/(\d+)/.test(t)?i=`Chrome ${(t.match(/Chrome\/(\d+)/)??[])[1]??""}`:/Version\/(\d+).*Safari/.test(t)?i=`Safari ${(t.match(/Version\/(\d+)/)??[])[1]??""}`:/Safari\//.test(t)&&(i="Safari"),{osVersion:n?`${e} ${n}`:e,browser:i}}function K(){if(typeof navigator>"u")return"desktop";let t=navigator.userAgent;return/iPad|Tablet|(Android(?!.*Mobile))/i.test(t)?"tablet":/Mobi|Android|iPhone|iPod/i.test(t)?"phone":"desktop"}var o=null,r=null,u=null,m=0,c=0,U=0,R=W,J={init(t){if(typeof window>"u")return;R=t.sessionTimeoutMs??W,u=de(t.anonymousIdMaxAgeMs??ue);let e=le();e&&Date.now()-e.lastActive<R?(r=e.id,m=e.stepCounter,c=e.lastActive):x(),o=new k.OnRampClient({apiKey:t.apiKey,host:t.host,platform:"web",appVersion:t.appVersion??null,uuidFn:M});function n(){if(!o||!r||!u)return;let i=Date.now();i-U<500||(U=i,o.beacon({sessionId:r,anonymousId:u}))}window.addEventListener("pagehide",()=>{c=Date.now(),_(),n(),o?.flush()}),document.addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"?(c=Date.now(),_(),n(),o?.flush()):T()}),setInterval(()=>{document.visibilityState!=="hidden"&&n()},5e3),document.addEventListener("click",i=>{let s=i.target?.closest?.("a");if(!s)return;let d=s.getAttribute("href")??"";if(!(!d||d.startsWith("#")||d.startsWith("mailto:")||d.startsWith("tel:")))try{let P=new URL(d,window.location.href);if(P.hostname===window.location.hostname||!o||!r||!u)return;T();let L=m++;c=Date.now(),_(),o.track({sessionId:r,anonymousId:u,eventType:"nav_entered",stepName:P.href.slice(0,128),stepIndex:L,osVersion:F().osVersion,deviceType:K(),properties:null})}catch{}},{capture:!0,passive:!0})},step(t,e){if(!o||!r||!u){console.warn("[OnRamp] call OnRamp.init() before tracking steps");return}T();let n=m++;c=Date.now(),_();let{osVersion:i,browser:s}=F(),d={};s&&(d._browser=s),o.track({sessionId:r,anonymousId:u,stepName:t,stepIndex:n,osVersion:i,deviceType:K(),properties:Object.keys(d).length||e?.properties?{...d,...e?.properties}:null})},identify(t){if(!o||!r||!u){console.warn("[OnRamp] call OnRamp.init() before calling identify()");return}o.identify({sessionId:r,anonymousId:u,traits:t})},newSession(){x()},flush(){return o?.flush()??Promise.resolve()},getIds(){return{anonymousId:u,sessionId:r}},get isInitialized(){return o!==null}};globalThis.OnRamp=J;})();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@onramp-sdk/web",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.1",
|
|
4
4
|
"description": "OnRamp onboarding funnel analytics for web apps - track steps, see where users drop off.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
}
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@onramp-sdk/core": "0.6.
|
|
33
|
+
"@onramp-sdk/core": "0.6.1",
|
|
34
34
|
"@onramp-sdk/shared": "0.4.0"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|