@attributehq/web-sdk 1.0.1 → 1.0.2

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  # @attributehq/web-sdk
2
2
 
3
- Lightweight web attribution SDK for [AttributeHQ](https://attributehq.com) — track installs, events, and revenue with automatic attribution.
3
+ Lightweight web attribution SDK for [AttributeHQ](https://api.attributehq.com) — track installs, events, and revenue with automatic attribution.
4
4
 
5
5
  **~2.9 KB gzipped** | Zero dependencies | TypeScript-first
6
6
 
@@ -74,7 +74,6 @@ Initialize the SDK. Must be called before any other method. Automatically tracks
74
74
  init({
75
75
  apiKey: string; // Required — your API key (format: ak_xxx)
76
76
  appId: string; // Required — your app UUID
77
- baseUrl?: string; // API base URL (default: https://attributehq.com)
78
77
  batchSize?: number; // Events per batch before auto-flush (default: 10)
79
78
  flushInterval?: number; // Auto-flush interval in ms (default: 5000)
80
79
  maxQueueSize?: number; // Max events in offline queue (default: 100)
@@ -145,7 +144,6 @@ const result = getAttribution();
145
144
  |--------|------|---------|-------------|
146
145
  | `apiKey` | `string` | — | **Required.** API key from your dashboard |
147
146
  | `appId` | `string` | — | **Required.** App UUID from your dashboard |
148
- | `baseUrl` | `string` | `https://attributehq.com` | API base URL |
149
147
  | `batchSize` | `number` | `10` | Events per batch before auto-flush |
150
148
  | `flushInterval` | `number` | `5000` | Auto-flush interval in milliseconds |
151
149
  | `maxQueueSize` | `number` | `100` | Max events stored offline |
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const e='"1.0.1"',t=10,i=5e3,s=100,n=!0,r=!1;const a="[AttributionSDK]";let o=!1;function u(...e){o&&console.log(a,...e)}function c(...e){console.warn(a,...e)}function h(...e){console.error(a,...e)}const l="__ahq_";let d=null;function p(){return d||("undefined"!=typeof localStorage&&function(){try{const e=l+"test";return localStorage.setItem(e,"1"),localStorage.removeItem(e),!0}catch{return!1}}()?localStorage:(d=new Map,d))}const f={get(e){const t=p(),i=l+e;return t instanceof Map?t.get(i)??null:t.getItem(i)},set(e,t){const i=p(),s=l+e;i instanceof Map?i.set(s,t):i.setItem(s,t)},remove(e){const t=p(),i=l+e;t instanceof Map?t.delete(i):t.removeItem(i)}};let g=null;async function v(e,t){if(!g)return c("Network not configured"),null;const i=`${g.baseUrl}${e}`;try{const s=await fetch(i,{method:"POST",headers:{"Content-Type":"application/json","X-API-Key":g.apiKey},body:JSON.stringify(t)});return s.ok?await s.json():(c(`POST ${e} failed: ${s.status}`),null)}catch(t){return h(`POST ${e} error:`,t),null}}function y(){try{return`${screen.width}x${screen.height}`}catch{return""}}function I(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone}catch{return""}}function m(){try{return navigator.language||""}catch{return""}}function w(){try{const e=navigator;return e.userAgentData?.platform?e.userAgentData.platform:navigator.platform||""}catch{return""}}function x(){try{return crypto.randomUUID()}catch{return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{const t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)})}}const b=18e5;class S{constructor(){const e=f.get("session_id"),t=f.get("session_start");if(e&&t){if(Date.now()-Number(t)<b)return this.sessionId=e,this.lastActivity=Number(t),void(this.pageViews=Number(f.get("session_pvs")||"0"))}this.sessionId=x(),this.lastActivity=Date.now(),this.pageViews=0,this.persist(),u("New session started",this.sessionId)}getSessionId(){return Date.now()-this.lastActivity>b&&(this.sessionId=x(),this.pageViews=0,u("Session rotated (timeout)",this.sessionId)),this.lastActivity=Date.now(),this.persist(),this.sessionId}incrementPageViews(){return this.pageViews++,f.set("session_pvs",String(this.pageViews)),this.pageViews}persist(){f.set("session_id",this.sessionId),f.set("session_start",String(this.lastActivity))}}const k="queue";class _{constructor(e,t){this.queue=[],this.timer=null,this.flushing=!1,this.config=e,this.deviceId=t,this.restore(),this.startFlushTimer(),this.setupUnloadHandlers()}enqueue(e){for(this.queue.push(e);this.queue.length>this.config.maxQueueSize;)this.queue.shift();this.persist(),u("Event queued:",e.event_name,`(${this.queue.length} pending)`),this.queue.length>=this.config.batchSize&&this.flush()}async flush(){if(this.flushing||0===this.queue.length)return;this.flushing=!0;const t=this.queue.splice(0,this.config.batchSize);this.persist();const i={app_id:this.config.appId,device_id:this.deviceId,events:t,sdk_version:e};try{await v("/api/v1/events",i)?u(`Flushed ${t.length} events`):(this.queue.unshift(...t),this.persist(),c("Flush failed, events re-queued"))}catch(e){this.queue.unshift(...t),this.persist(),h("Flush error:",e)}finally{this.flushing=!1}}flushBeacon(){if(0===this.queue.length)return;!function(e,t){if(!g)return;const i=`${g.baseUrl}${e}`,s=JSON.stringify({...t,_api_key:g.apiKey});try{return void fetch(i,{method:"POST",headers:{"Content-Type":"application/json","X-API-Key":g.apiKey},body:s,keepalive:!0}).catch(()=>{})}catch{}try{navigator.sendBeacon(i,new Blob([s],{type:"application/json"}))}catch{c("Both keepalive and sendBeacon failed")}}("/api/v1/events",{app_id:this.config.appId,device_id:this.deviceId,events:this.queue,sdk_version:e}),this.queue=[],this.persist(),u("Beacon flush sent")}destroy(){this.timer&&(clearInterval(this.timer),this.timer=null)}startFlushTimer(){this.timer=setInterval(()=>{this.flush()},this.config.flushInterval)}setupUnloadHandlers(){"undefined"!=typeof document&&(document.addEventListener("visibilitychange",()=>{"hidden"===document.visibilityState&&this.flushBeacon()}),window.addEventListener("beforeunload",()=>{this.flushBeacon()}))}persist(){try{f.set(k,JSON.stringify(this.queue))}catch{}}restore(){try{const e=f.get(k);e&&(this.queue=JSON.parse(e),u(`Restored ${this.queue.length} queued events`))}catch{this.queue=[]}}}const q=new class{constructor(){this.config=null,this.session=null,this.queue=null,this.initialized=!1,this.lastUrl="",this.deviceId=""}init(a){var h,l;this.initialized?c("SDK already initialized"):(this.config=function(e){if(!e.apiKey)throw new Error("[AttributionSDK] apiKey is required");if(!e.appId)throw new Error("[AttributionSDK] appId is required");const a=e.baseUrl||"https://attributehq.com";return{apiKey:e.apiKey,appId:e.appId,baseUrl:a.replace(/\/+$/,""),batchSize:e.batchSize??t,flushInterval:e.flushInterval??i,maxQueueSize:e.maxQueueSize??s,autoTrackPageViews:e.autoTrackPageViews??n,debug:e.debug??r}}(a),h=this.config.debug,o=h,l=this.config,g=l,u("Initializing",{appId:this.config.appId,version:e}),this.deviceId=this.getOrCreateDeviceId(),this.session=new S,this.queue=new _(this.config,this.deviceId),this.trackInstallIfNew(),this.config.autoTrackPageViews&&this.setupPageViewTracking(),this.initialized=!0,u("SDK initialized"))}track(e,t={}){this.ensureInit()&&this.queue.enqueue({event_name:e,properties:t,timestamp:Date.now(),session_id:this.session.getSessionId()})}trackPageView(e={}){this.ensureInit()&&(this.session.incrementPageViews(),this.track("page_view",{url:location.href,path:location.pathname,title:document.title,referrer:document.referrer,...e}))}trackRevenue(e,t="NGN",i={}){this.ensureInit()&&this.track("revenue",{amount:e,currency:t,...i})}identify(e,t={}){this.ensureInit()&&(f.set("user_id",e),this.track("identify",{user_id:e,...t}),u("User identified:",e))}flush(){this.ensureInit()&&this.queue.flush()}getAttribution(){const e=f.get("attribution");if(!e)return null;try{return JSON.parse(e)}catch{return null}}ensureInit(){return!!this.initialized||(c("SDK not initialized. Call init() first."),!1)}getOrCreateDeviceId(){const e=f.get("device_id");if(e)return e;const t=x();return f.set("device_id",t),t}async trackInstallIfNew(){if(f.get("installed"))return void u("Install already tracked");const t={screen_resolution:y(),timezone:I(),language:m(),platform:w()},i={app_id:this.config.appId,platform:"web",sdk_version:e,device_id:this.deviceId,screen_resolution:t.screen_resolution||void 0,timezone:t.timezone||void 0,language:t.language||void 0};u("Tracking install...");const s=await v("/api/v1/installs",i);s?.data?(f.set("installed","1"),f.set("attribution",JSON.stringify(s.data)),u("Install tracked:",s.data.matchType,`(${s.data.confidence}%)`)):c("Install tracking failed, will retry")}setupPageViewTracking(){if("undefined"==typeof window)return;this.lastUrl=location.href,this.trackPageView();const e=history.pushState.bind(history),t=history.replaceState.bind(history);history.pushState=(...t)=>{e(...t),this.onUrlChange()},history.replaceState=(...e)=>{t(...e),this.onUrlChange()},window.addEventListener("popstate",()=>{this.onUrlChange()})}onUrlChange(){const e=location.href;e!==this.lastUrl&&(this.lastUrl=e,this.trackPageView())}},P=q.init.bind(q),V=q.track.bind(q),z=q.trackPageView.bind(q),D=q.trackRevenue.bind(q),U=q.identify.bind(q),A=q.flush.bind(q),T=q.getAttribution.bind(q);var K={init:P,track:V,trackPageView:z,trackRevenue:D,identify:U,flush:A,getAttribution:T};exports.default=K,exports.flush=A,exports.getAttribution=T,exports.identify=U,exports.init=P,exports.track=V,exports.trackPageView=z,exports.trackRevenue=D;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const t='"1.0.2"',e=10,i=5e3,s=100,n=!0,r=!1;const a="[AttributionSDK]";let o=!1;function u(...t){o&&console.log(a,...t)}function h(...t){console.warn(a,...t)}function c(...t){console.error(a,...t)}const l="__ahq_";let d=null;function p(){return d||("undefined"!=typeof localStorage&&function(){try{const t=l+"test";return localStorage.setItem(t,"1"),localStorage.removeItem(t),!0}catch{return!1}}()?localStorage:(d=new Map,d))}const f={get(t){const e=p(),i=l+t;return e instanceof Map?e.get(i)??null:e.getItem(i)},set(t,e){const i=p(),s=l+t;i instanceof Map?i.set(s,e):i.setItem(s,e)},remove(t){const e=p(),i=l+t;e instanceof Map?e.delete(i):e.removeItem(i)}};let g=null;async function v(t,e){if(!g)return h("Network not configured"),null;const i=`${g.baseUrl}${t}`;try{const s=await fetch(i,{method:"POST",headers:{"Content-Type":"application/json","X-API-Key":g.apiKey},body:JSON.stringify(e)});return s.ok?await s.json():(h(`POST ${t} failed: ${s.status}`),null)}catch(e){return c(`POST ${t} error:`,e),null}}function y(){try{return`${screen.width}x${screen.height}`}catch{return""}}function I(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone}catch{return""}}function m(){try{return navigator.language||""}catch{return""}}function w(){try{const t=navigator;return t.userAgentData?.platform?t.userAgentData.platform:navigator.platform||""}catch{return""}}function x(){try{return crypto.randomUUID()}catch{return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,t=>{const e=16*Math.random()|0;return("x"===t?e:3&e|8).toString(16)})}}const b=18e5;class S{constructor(){const t=f.get("session_id"),e=f.get("session_start");if(t&&e){if(Date.now()-Number(e)<b)return this.sessionId=t,this.lastActivity=Number(e),void(this.pageViews=Number(f.get("session_pvs")||"0"))}this.sessionId=x(),this.lastActivity=Date.now(),this.pageViews=0,this.persist(),u("New session started",this.sessionId)}getSessionId(){return Date.now()-this.lastActivity>b&&(this.sessionId=x(),this.pageViews=0,u("Session rotated (timeout)",this.sessionId)),this.lastActivity=Date.now(),this.persist(),this.sessionId}incrementPageViews(){return this.pageViews++,f.set("session_pvs",String(this.pageViews)),this.pageViews}persist(){f.set("session_id",this.sessionId),f.set("session_start",String(this.lastActivity))}}const k="queue";class _{constructor(t,e){this.queue=[],this.timer=null,this.flushing=!1,this.config=t,this.deviceId=e,this.restore(),this.startFlushTimer(),this.setupUnloadHandlers()}enqueue(t){for(this.queue.push(t);this.queue.length>this.config.maxQueueSize;)this.queue.shift();this.persist(),u("Event queued:",t.event_name,`(${this.queue.length} pending)`),this.queue.length>=this.config.batchSize&&this.flush()}async flush(){if(this.flushing||0===this.queue.length)return;this.flushing=!0;const e=this.queue.splice(0,this.config.batchSize);this.persist();const i={app_id:this.config.appId,device_id:this.deviceId,events:e,sdk_version:t};try{await v("/api/v1/events",i)?u(`Flushed ${e.length} events`):(this.queue.unshift(...e),this.persist(),h("Flush failed, events re-queued"))}catch(t){this.queue.unshift(...e),this.persist(),c("Flush error:",t)}finally{this.flushing=!1}}flushBeacon(){if(0===this.queue.length)return;!function(t,e){if(!g)return;const i=`${g.baseUrl}${t}`,s=JSON.stringify({...e,_api_key:g.apiKey});try{return void fetch(i,{method:"POST",headers:{"Content-Type":"application/json","X-API-Key":g.apiKey},body:s,keepalive:!0}).catch(()=>{})}catch{}try{navigator.sendBeacon(i,new Blob([s],{type:"application/json"}))}catch{h("Both keepalive and sendBeacon failed")}}("/api/v1/events",{app_id:this.config.appId,device_id:this.deviceId,events:this.queue,sdk_version:t}),this.queue=[],this.persist(),u("Beacon flush sent")}destroy(){this.timer&&(clearInterval(this.timer),this.timer=null)}startFlushTimer(){this.timer=setInterval(()=>{this.flush()},this.config.flushInterval)}setupUnloadHandlers(){"undefined"!=typeof document&&(document.addEventListener("visibilitychange",()=>{"hidden"===document.visibilityState&&this.flushBeacon()}),window.addEventListener("beforeunload",()=>{this.flushBeacon()}))}persist(){try{f.set(k,JSON.stringify(this.queue))}catch{}}restore(){try{const t=f.get(k);t&&(this.queue=JSON.parse(t),u(`Restored ${this.queue.length} queued events`))}catch{this.queue=[]}}}const q=new class{constructor(){this.config=null,this.session=null,this.queue=null,this.initialized=!1,this.lastUrl="",this.deviceId=""}init(a){var c,l;this.initialized?h("SDK already initialized"):(this.config=function(t){if(!t.apiKey)throw new Error("[AttributionSDK] apiKey is required");if(!t.appId)throw new Error("[AttributionSDK] appId is required");return{apiKey:t.apiKey,appId:t.appId,baseUrl:"https://api.attributehq.com",batchSize:t.batchSize??e,flushInterval:t.flushInterval??i,maxQueueSize:t.maxQueueSize??s,autoTrackPageViews:t.autoTrackPageViews??n,debug:t.debug??r}}(a),c=this.config.debug,o=c,l=this.config,g=l,u("Initializing",{appId:this.config.appId,version:t}),this.deviceId=this.getOrCreateDeviceId(),this.session=new S,this.queue=new _(this.config,this.deviceId),this.trackInstallIfNew(),this.config.autoTrackPageViews&&this.setupPageViewTracking(),this.initialized=!0,u("SDK initialized"))}track(t,e={}){this.ensureInit()&&this.queue.enqueue({event_name:t,properties:e,timestamp:Date.now(),session_id:this.session.getSessionId()})}trackPageView(t={}){this.ensureInit()&&(this.session.incrementPageViews(),this.track("page_view",{url:location.href,path:location.pathname,title:document.title,referrer:document.referrer,...t}))}trackRevenue(t,e="NGN",i={}){this.ensureInit()&&this.track("revenue",{amount:t,currency:e,...i})}identify(t,e={}){this.ensureInit()&&(f.set("user_id",t),this.track("identify",{user_id:t,...e}),u("User identified:",t))}flush(){this.ensureInit()&&this.queue.flush()}getAttribution(){const t=f.get("attribution");if(!t)return null;try{return JSON.parse(t)}catch{return null}}ensureInit(){return!!this.initialized||(h("SDK not initialized. Call init() first."),!1)}getOrCreateDeviceId(){const t=f.get("device_id");if(t)return t;const e=x();return f.set("device_id",e),e}async trackInstallIfNew(){if(f.get("installed"))return void u("Install already tracked");const e={screen_resolution:y(),timezone:I(),language:m(),platform:w()},i={app_id:this.config.appId,platform:"web",sdk_version:t,device_id:this.deviceId,screen_resolution:e.screen_resolution||void 0,timezone:e.timezone||void 0,language:e.language||void 0};u("Tracking install...");const s=await v("/api/v1/installs",i);s?.data?(f.set("installed","1"),f.set("attribution",JSON.stringify(s.data)),u("Install tracked:",s.data.matchType,`(${s.data.confidence}%)`)):h("Install tracking failed, will retry")}setupPageViewTracking(){if("undefined"==typeof window)return;this.lastUrl=location.href,this.trackPageView();const t=history.pushState.bind(history),e=history.replaceState.bind(history);history.pushState=(...e)=>{t(...e),this.onUrlChange()},history.replaceState=(...t)=>{e(...t),this.onUrlChange()},window.addEventListener("popstate",()=>{this.onUrlChange()})}onUrlChange(){const t=location.href;t!==this.lastUrl&&(this.lastUrl=t,this.trackPageView())}},P=q.init.bind(q),V=q.track.bind(q),z=q.trackPageView.bind(q),D=q.trackRevenue.bind(q),A=q.identify.bind(q),T=q.flush.bind(q),U=q.getAttribution.bind(q);var K={init:P,track:V,trackPageView:z,trackRevenue:D,identify:A,flush:T,getAttribution:U};exports.default=K,exports.flush=T,exports.getAttribution=U,exports.identify=A,exports.init=P,exports.track=V,exports.trackPageView=z,exports.trackRevenue=D;
2
2
  //# sourceMappingURL=attribution.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"attribution.cjs.js","sources":["../src/config.ts","../src/logger.ts","../src/storage.ts","../src/network.ts","../src/device.ts","../src/utils.ts","../src/session.ts","../src/queue.ts","../src/sdk.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null],"names":["SDK_VERSION","DEFAULT_CONFIG","PREFIX","debugEnabled","debug","args","console","log","warn","error","KEY_PREFIX","memoryFallback","getStore","localStorage","key","setItem","removeItem","isLocalStorageAvailable","Map","storage","get","store","prefixed","getItem","set","value","remove","delete","config","async","post","path","body","logger.warn","url","baseUrl","res","fetch","method","headers","apiKey","JSON","stringify","ok","json","status","err","logger.error","getScreenResolution","screen","width","height","getTimezone","Intl","DateTimeFormat","resolvedOptions","timeZone","getLanguage","navigator","language","getPlatform","nav","userAgentData","platform","generateId","crypto","randomUUID","replace","c","r","Math","random","toString","SESSION_TIMEOUT","SessionManager","constructor","stored","storedStart","Date","now","Number","this","sessionId","lastActivity","pageViews","persist","logger.debug","getSessionId","incrementPageViews","String","STORAGE_KEY","EventQueue","deviceId","queue","timer","flushing","restore","startFlushTimer","setupUnloadHandlers","enqueue","event","push","length","maxQueueSize","shift","event_name","batchSize","flush","batch","splice","app_id","appId","device_id","events","sdk_version","unshift","flushBeacon","payload","_api_key","keepalive","catch","sendBeacon","Blob","type","beacon","destroy","clearInterval","setInterval","flushInterval","document","addEventListener","visibilityState","window","raw","parse","sdkInstance","session","initialized","lastUrl","init","userConfig","enabled","cfg","Error","autoTrackPageViews","resolveConfig","version","getOrCreateDeviceId","trackInstallIfNew","setupPageViewTracking","track","eventName","properties","ensureInit","timestamp","session_id","trackPageView","location","href","pathname","title","referrer","trackRevenue","amount","currency","identify","userId","user_id","getAttribution","existing","id","device","screen_resolution","timezone","undefined","data","matchType","confidence","originalPushState","history","pushState","bind","originalReplaceState","replaceState","onUrlChange","newUrl","index"],"mappings":"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"}
1
+ {"version":3,"file":"attribution.cjs.js","sources":["../src/config.ts","../src/logger.ts","../src/storage.ts","../src/network.ts","../src/device.ts","../src/utils.ts","../src/session.ts","../src/queue.ts","../src/sdk.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null],"names":["SDK_VERSION","DEFAULT_CONFIG","PREFIX","debugEnabled","debug","args","console","log","warn","error","KEY_PREFIX","memoryFallback","getStore","localStorage","key","setItem","removeItem","isLocalStorageAvailable","Map","storage","get","store","prefixed","getItem","set","value","remove","delete","config","async","post","path","body","logger.warn","url","baseUrl","res","fetch","method","headers","apiKey","JSON","stringify","ok","json","status","err","logger.error","getScreenResolution","screen","width","height","getTimezone","Intl","DateTimeFormat","resolvedOptions","timeZone","getLanguage","navigator","language","getPlatform","nav","userAgentData","platform","generateId","crypto","randomUUID","replace","c","r","Math","random","toString","SESSION_TIMEOUT","SessionManager","constructor","stored","storedStart","Date","now","Number","this","sessionId","lastActivity","pageViews","persist","logger.debug","getSessionId","incrementPageViews","String","STORAGE_KEY","EventQueue","deviceId","queue","timer","flushing","restore","startFlushTimer","setupUnloadHandlers","enqueue","event","push","length","maxQueueSize","shift","event_name","batchSize","flush","batch","splice","app_id","appId","device_id","events","sdk_version","unshift","flushBeacon","payload","_api_key","keepalive","catch","sendBeacon","Blob","type","beacon","destroy","clearInterval","setInterval","flushInterval","document","addEventListener","visibilityState","window","raw","parse","sdkInstance","session","initialized","lastUrl","init","userConfig","enabled","cfg","Error","autoTrackPageViews","resolveConfig","version","getOrCreateDeviceId","trackInstallIfNew","setupPageViewTracking","track","eventName","properties","ensureInit","timestamp","session_id","trackPageView","location","href","pathname","title","referrer","trackRevenue","amount","currency","identify","userId","user_id","getAttribution","existing","id","device","screen_resolution","timezone","undefined","data","matchType","confidence","originalPushState","history","pushState","bind","originalReplaceState","replaceState","onUrlChange","newUrl","index"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- const t='"1.0.1"',e=10,i=5e3,s=100,n=!0,r=!1;const a="[AttributionSDK]";let o=!1;function u(...t){o&&console.log(a,...t)}function h(...t){console.warn(a,...t)}function c(...t){console.error(a,...t)}const l="__ahq_";let d=null;function g(){return d||("undefined"!=typeof localStorage&&function(){try{const t=l+"test";return localStorage.setItem(t,"1"),localStorage.removeItem(t),!0}catch{return!1}}()?localStorage:(d=new Map,d))}const f={get(t){const e=g(),i=l+t;return e instanceof Map?e.get(i)??null:e.getItem(i)},set(t,e){const i=g(),s=l+t;i instanceof Map?i.set(s,e):i.setItem(s,e)},remove(t){const e=g(),i=l+t;e instanceof Map?e.delete(i):e.removeItem(i)}};let p=null;async function v(t,e){if(!p)return h("Network not configured"),null;const i=`${p.baseUrl}${t}`;try{const s=await fetch(i,{method:"POST",headers:{"Content-Type":"application/json","X-API-Key":p.apiKey},body:JSON.stringify(e)});return s.ok?await s.json():(h(`POST ${t} failed: ${s.status}`),null)}catch(e){return c(`POST ${t} error:`,e),null}}function y(){try{return`${screen.width}x${screen.height}`}catch{return""}}function I(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone}catch{return""}}function m(){try{return navigator.language||""}catch{return""}}function w(){try{const t=navigator;return t.userAgentData?.platform?t.userAgentData.platform:navigator.platform||""}catch{return""}}function b(){try{return crypto.randomUUID()}catch{return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,t=>{const e=16*Math.random()|0;return("x"===t?e:3&e|8).toString(16)})}}const S=18e5;class x{constructor(){const t=f.get("session_id"),e=f.get("session_start");if(t&&e){if(Date.now()-Number(e)<S)return this.sessionId=t,this.lastActivity=Number(e),void(this.pageViews=Number(f.get("session_pvs")||"0"))}this.sessionId=b(),this.lastActivity=Date.now(),this.pageViews=0,this.persist(),u("New session started",this.sessionId)}getSessionId(){return Date.now()-this.lastActivity>S&&(this.sessionId=b(),this.pageViews=0,u("Session rotated (timeout)",this.sessionId)),this.lastActivity=Date.now(),this.persist(),this.sessionId}incrementPageViews(){return this.pageViews++,f.set("session_pvs",String(this.pageViews)),this.pageViews}persist(){f.set("session_id",this.sessionId),f.set("session_start",String(this.lastActivity))}}const k="queue";class q{constructor(t,e){this.queue=[],this.timer=null,this.flushing=!1,this.config=t,this.deviceId=e,this.restore(),this.startFlushTimer(),this.setupUnloadHandlers()}enqueue(t){for(this.queue.push(t);this.queue.length>this.config.maxQueueSize;)this.queue.shift();this.persist(),u("Event queued:",t.event_name,`(${this.queue.length} pending)`),this.queue.length>=this.config.batchSize&&this.flush()}async flush(){if(this.flushing||0===this.queue.length)return;this.flushing=!0;const e=this.queue.splice(0,this.config.batchSize);this.persist();const i={app_id:this.config.appId,device_id:this.deviceId,events:e,sdk_version:t};try{await v("/api/v1/events",i)?u(`Flushed ${e.length} events`):(this.queue.unshift(...e),this.persist(),h("Flush failed, events re-queued"))}catch(t){this.queue.unshift(...e),this.persist(),c("Flush error:",t)}finally{this.flushing=!1}}flushBeacon(){if(0===this.queue.length)return;!function(t,e){if(!p)return;const i=`${p.baseUrl}${t}`,s=JSON.stringify({...e,_api_key:p.apiKey});try{return void fetch(i,{method:"POST",headers:{"Content-Type":"application/json","X-API-Key":p.apiKey},body:s,keepalive:!0}).catch(()=>{})}catch{}try{navigator.sendBeacon(i,new Blob([s],{type:"application/json"}))}catch{h("Both keepalive and sendBeacon failed")}}("/api/v1/events",{app_id:this.config.appId,device_id:this.deviceId,events:this.queue,sdk_version:t}),this.queue=[],this.persist(),u("Beacon flush sent")}destroy(){this.timer&&(clearInterval(this.timer),this.timer=null)}startFlushTimer(){this.timer=setInterval(()=>{this.flush()},this.config.flushInterval)}setupUnloadHandlers(){"undefined"!=typeof document&&(document.addEventListener("visibilitychange",()=>{"hidden"===document.visibilityState&&this.flushBeacon()}),window.addEventListener("beforeunload",()=>{this.flushBeacon()}))}persist(){try{f.set(k,JSON.stringify(this.queue))}catch{}}restore(){try{const t=f.get(k);t&&(this.queue=JSON.parse(t),u(`Restored ${this.queue.length} queued events`))}catch{this.queue=[]}}}const _=new class{constructor(){this.config=null,this.session=null,this.queue=null,this.initialized=!1,this.lastUrl="",this.deviceId=""}init(a){var c,l;this.initialized?h("SDK already initialized"):(this.config=function(t){if(!t.apiKey)throw new Error("[AttributionSDK] apiKey is required");if(!t.appId)throw new Error("[AttributionSDK] appId is required");const a=t.baseUrl||"https://attributehq.com";return{apiKey:t.apiKey,appId:t.appId,baseUrl:a.replace(/\/+$/,""),batchSize:t.batchSize??e,flushInterval:t.flushInterval??i,maxQueueSize:t.maxQueueSize??s,autoTrackPageViews:t.autoTrackPageViews??n,debug:t.debug??r}}(a),c=this.config.debug,o=c,l=this.config,p=l,u("Initializing",{appId:this.config.appId,version:t}),this.deviceId=this.getOrCreateDeviceId(),this.session=new x,this.queue=new q(this.config,this.deviceId),this.trackInstallIfNew(),this.config.autoTrackPageViews&&this.setupPageViewTracking(),this.initialized=!0,u("SDK initialized"))}track(t,e={}){this.ensureInit()&&this.queue.enqueue({event_name:t,properties:e,timestamp:Date.now(),session_id:this.session.getSessionId()})}trackPageView(t={}){this.ensureInit()&&(this.session.incrementPageViews(),this.track("page_view",{url:location.href,path:location.pathname,title:document.title,referrer:document.referrer,...t}))}trackRevenue(t,e="NGN",i={}){this.ensureInit()&&this.track("revenue",{amount:t,currency:e,...i})}identify(t,e={}){this.ensureInit()&&(f.set("user_id",t),this.track("identify",{user_id:t,...e}),u("User identified:",t))}flush(){this.ensureInit()&&this.queue.flush()}getAttribution(){const t=f.get("attribution");if(!t)return null;try{return JSON.parse(t)}catch{return null}}ensureInit(){return!!this.initialized||(h("SDK not initialized. Call init() first."),!1)}getOrCreateDeviceId(){const t=f.get("device_id");if(t)return t;const e=b();return f.set("device_id",e),e}async trackInstallIfNew(){if(f.get("installed"))return void u("Install already tracked");const e={screen_resolution:y(),timezone:I(),language:m(),platform:w()},i={app_id:this.config.appId,platform:"web",sdk_version:t,device_id:this.deviceId,screen_resolution:e.screen_resolution||void 0,timezone:e.timezone||void 0,language:e.language||void 0};u("Tracking install...");const s=await v("/api/v1/installs",i);s?.data?(f.set("installed","1"),f.set("attribution",JSON.stringify(s.data)),u("Install tracked:",s.data.matchType,`(${s.data.confidence}%)`)):h("Install tracking failed, will retry")}setupPageViewTracking(){if("undefined"==typeof window)return;this.lastUrl=location.href,this.trackPageView();const t=history.pushState.bind(history),e=history.replaceState.bind(history);history.pushState=(...e)=>{t(...e),this.onUrlChange()},history.replaceState=(...t)=>{e(...t),this.onUrlChange()},window.addEventListener("popstate",()=>{this.onUrlChange()})}onUrlChange(){const t=location.href;t!==this.lastUrl&&(this.lastUrl=t,this.trackPageView())}},z=_.init.bind(_),P=_.track.bind(_),V=_.trackPageView.bind(_),D=_.trackRevenue.bind(_),U=_.identify.bind(_),T=_.flush.bind(_),A=_.getAttribution.bind(_);var K={init:z,track:P,trackPageView:V,trackRevenue:D,identify:U,flush:T,getAttribution:A};export{K as default,T as flush,A as getAttribution,U as identify,z as init,P as track,V as trackPageView,D as trackRevenue};
1
+ const t='"1.0.2"',e=10,i=5e3,s=100,n=!0,r=!1;const a="[AttributionSDK]";let o=!1;function u(...t){o&&console.log(a,...t)}function h(...t){console.warn(a,...t)}function c(...t){console.error(a,...t)}const l="__ahq_";let d=null;function g(){return d||("undefined"!=typeof localStorage&&function(){try{const t=l+"test";return localStorage.setItem(t,"1"),localStorage.removeItem(t),!0}catch{return!1}}()?localStorage:(d=new Map,d))}const f={get(t){const e=g(),i=l+t;return e instanceof Map?e.get(i)??null:e.getItem(i)},set(t,e){const i=g(),s=l+t;i instanceof Map?i.set(s,e):i.setItem(s,e)},remove(t){const e=g(),i=l+t;e instanceof Map?e.delete(i):e.removeItem(i)}};let p=null;async function v(t,e){if(!p)return h("Network not configured"),null;const i=`${p.baseUrl}${t}`;try{const s=await fetch(i,{method:"POST",headers:{"Content-Type":"application/json","X-API-Key":p.apiKey},body:JSON.stringify(e)});return s.ok?await s.json():(h(`POST ${t} failed: ${s.status}`),null)}catch(e){return c(`POST ${t} error:`,e),null}}function y(){try{return`${screen.width}x${screen.height}`}catch{return""}}function I(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone}catch{return""}}function m(){try{return navigator.language||""}catch{return""}}function w(){try{const t=navigator;return t.userAgentData?.platform?t.userAgentData.platform:navigator.platform||""}catch{return""}}function b(){try{return crypto.randomUUID()}catch{return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,t=>{const e=16*Math.random()|0;return("x"===t?e:3&e|8).toString(16)})}}const S=18e5;class x{constructor(){const t=f.get("session_id"),e=f.get("session_start");if(t&&e){if(Date.now()-Number(e)<S)return this.sessionId=t,this.lastActivity=Number(e),void(this.pageViews=Number(f.get("session_pvs")||"0"))}this.sessionId=b(),this.lastActivity=Date.now(),this.pageViews=0,this.persist(),u("New session started",this.sessionId)}getSessionId(){return Date.now()-this.lastActivity>S&&(this.sessionId=b(),this.pageViews=0,u("Session rotated (timeout)",this.sessionId)),this.lastActivity=Date.now(),this.persist(),this.sessionId}incrementPageViews(){return this.pageViews++,f.set("session_pvs",String(this.pageViews)),this.pageViews}persist(){f.set("session_id",this.sessionId),f.set("session_start",String(this.lastActivity))}}const k="queue";class q{constructor(t,e){this.queue=[],this.timer=null,this.flushing=!1,this.config=t,this.deviceId=e,this.restore(),this.startFlushTimer(),this.setupUnloadHandlers()}enqueue(t){for(this.queue.push(t);this.queue.length>this.config.maxQueueSize;)this.queue.shift();this.persist(),u("Event queued:",t.event_name,`(${this.queue.length} pending)`),this.queue.length>=this.config.batchSize&&this.flush()}async flush(){if(this.flushing||0===this.queue.length)return;this.flushing=!0;const e=this.queue.splice(0,this.config.batchSize);this.persist();const i={app_id:this.config.appId,device_id:this.deviceId,events:e,sdk_version:t};try{await v("/api/v1/events",i)?u(`Flushed ${e.length} events`):(this.queue.unshift(...e),this.persist(),h("Flush failed, events re-queued"))}catch(t){this.queue.unshift(...e),this.persist(),c("Flush error:",t)}finally{this.flushing=!1}}flushBeacon(){if(0===this.queue.length)return;!function(t,e){if(!p)return;const i=`${p.baseUrl}${t}`,s=JSON.stringify({...e,_api_key:p.apiKey});try{return void fetch(i,{method:"POST",headers:{"Content-Type":"application/json","X-API-Key":p.apiKey},body:s,keepalive:!0}).catch(()=>{})}catch{}try{navigator.sendBeacon(i,new Blob([s],{type:"application/json"}))}catch{h("Both keepalive and sendBeacon failed")}}("/api/v1/events",{app_id:this.config.appId,device_id:this.deviceId,events:this.queue,sdk_version:t}),this.queue=[],this.persist(),u("Beacon flush sent")}destroy(){this.timer&&(clearInterval(this.timer),this.timer=null)}startFlushTimer(){this.timer=setInterval(()=>{this.flush()},this.config.flushInterval)}setupUnloadHandlers(){"undefined"!=typeof document&&(document.addEventListener("visibilitychange",()=>{"hidden"===document.visibilityState&&this.flushBeacon()}),window.addEventListener("beforeunload",()=>{this.flushBeacon()}))}persist(){try{f.set(k,JSON.stringify(this.queue))}catch{}}restore(){try{const t=f.get(k);t&&(this.queue=JSON.parse(t),u(`Restored ${this.queue.length} queued events`))}catch{this.queue=[]}}}const _=new class{constructor(){this.config=null,this.session=null,this.queue=null,this.initialized=!1,this.lastUrl="",this.deviceId=""}init(a){var c,l;this.initialized?h("SDK already initialized"):(this.config=function(t){if(!t.apiKey)throw new Error("[AttributionSDK] apiKey is required");if(!t.appId)throw new Error("[AttributionSDK] appId is required");return{apiKey:t.apiKey,appId:t.appId,baseUrl:"https://api.attributehq.com",batchSize:t.batchSize??e,flushInterval:t.flushInterval??i,maxQueueSize:t.maxQueueSize??s,autoTrackPageViews:t.autoTrackPageViews??n,debug:t.debug??r}}(a),c=this.config.debug,o=c,l=this.config,p=l,u("Initializing",{appId:this.config.appId,version:t}),this.deviceId=this.getOrCreateDeviceId(),this.session=new x,this.queue=new q(this.config,this.deviceId),this.trackInstallIfNew(),this.config.autoTrackPageViews&&this.setupPageViewTracking(),this.initialized=!0,u("SDK initialized"))}track(t,e={}){this.ensureInit()&&this.queue.enqueue({event_name:t,properties:e,timestamp:Date.now(),session_id:this.session.getSessionId()})}trackPageView(t={}){this.ensureInit()&&(this.session.incrementPageViews(),this.track("page_view",{url:location.href,path:location.pathname,title:document.title,referrer:document.referrer,...t}))}trackRevenue(t,e="NGN",i={}){this.ensureInit()&&this.track("revenue",{amount:t,currency:e,...i})}identify(t,e={}){this.ensureInit()&&(f.set("user_id",t),this.track("identify",{user_id:t,...e}),u("User identified:",t))}flush(){this.ensureInit()&&this.queue.flush()}getAttribution(){const t=f.get("attribution");if(!t)return null;try{return JSON.parse(t)}catch{return null}}ensureInit(){return!!this.initialized||(h("SDK not initialized. Call init() first."),!1)}getOrCreateDeviceId(){const t=f.get("device_id");if(t)return t;const e=b();return f.set("device_id",e),e}async trackInstallIfNew(){if(f.get("installed"))return void u("Install already tracked");const e={screen_resolution:y(),timezone:I(),language:m(),platform:w()},i={app_id:this.config.appId,platform:"web",sdk_version:t,device_id:this.deviceId,screen_resolution:e.screen_resolution||void 0,timezone:e.timezone||void 0,language:e.language||void 0};u("Tracking install...");const s=await v("/api/v1/installs",i);s?.data?(f.set("installed","1"),f.set("attribution",JSON.stringify(s.data)),u("Install tracked:",s.data.matchType,`(${s.data.confidence}%)`)):h("Install tracking failed, will retry")}setupPageViewTracking(){if("undefined"==typeof window)return;this.lastUrl=location.href,this.trackPageView();const t=history.pushState.bind(history),e=history.replaceState.bind(history);history.pushState=(...e)=>{t(...e),this.onUrlChange()},history.replaceState=(...t)=>{e(...t),this.onUrlChange()},window.addEventListener("popstate",()=>{this.onUrlChange()})}onUrlChange(){const t=location.href;t!==this.lastUrl&&(this.lastUrl=t,this.trackPageView())}},z=_.init.bind(_),P=_.track.bind(_),V=_.trackPageView.bind(_),D=_.trackRevenue.bind(_),T=_.identify.bind(_),U=_.flush.bind(_),A=_.getAttribution.bind(_);var K={init:z,track:P,trackPageView:V,trackRevenue:D,identify:T,flush:U,getAttribution:A};export{K as default,U as flush,A as getAttribution,T as identify,z as init,P as track,V as trackPageView,D as trackRevenue};
2
2
  //# sourceMappingURL=attribution.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"attribution.esm.js","sources":["../src/config.ts","../src/logger.ts","../src/storage.ts","../src/network.ts","../src/device.ts","../src/utils.ts","../src/session.ts","../src/queue.ts","../src/sdk.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null],"names":["SDK_VERSION","DEFAULT_CONFIG","PREFIX","debugEnabled","debug","args","console","log","warn","error","KEY_PREFIX","memoryFallback","getStore","localStorage","key","setItem","removeItem","isLocalStorageAvailable","Map","storage","get","store","prefixed","getItem","set","value","remove","delete","config","async","post","path","body","logger.warn","url","baseUrl","res","fetch","method","headers","apiKey","JSON","stringify","ok","json","status","err","logger.error","getScreenResolution","screen","width","height","getTimezone","Intl","DateTimeFormat","resolvedOptions","timeZone","getLanguage","navigator","language","getPlatform","nav","userAgentData","platform","generateId","crypto","randomUUID","replace","c","r","Math","random","toString","SESSION_TIMEOUT","SessionManager","constructor","stored","storedStart","Date","now","Number","this","sessionId","lastActivity","pageViews","persist","logger.debug","getSessionId","incrementPageViews","String","STORAGE_KEY","EventQueue","deviceId","queue","timer","flushing","restore","startFlushTimer","setupUnloadHandlers","enqueue","event","push","length","maxQueueSize","shift","event_name","batchSize","flush","batch","splice","app_id","appId","device_id","events","sdk_version","unshift","flushBeacon","payload","_api_key","keepalive","catch","sendBeacon","Blob","type","beacon","destroy","clearInterval","setInterval","flushInterval","document","addEventListener","visibilityState","window","raw","parse","sdkInstance","session","initialized","lastUrl","init","userConfig","enabled","cfg","Error","autoTrackPageViews","resolveConfig","version","getOrCreateDeviceId","trackInstallIfNew","setupPageViewTracking","track","eventName","properties","ensureInit","timestamp","session_id","trackPageView","location","href","pathname","title","referrer","trackRevenue","amount","currency","identify","userId","user_id","getAttribution","existing","id","device","screen_resolution","timezone","undefined","data","matchType","confidence","originalPushState","history","pushState","bind","originalReplaceState","replaceState","onUrlChange","newUrl","index"],"mappings":"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"}
1
+ {"version":3,"file":"attribution.esm.js","sources":["../src/config.ts","../src/logger.ts","../src/storage.ts","../src/network.ts","../src/device.ts","../src/utils.ts","../src/session.ts","../src/queue.ts","../src/sdk.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null],"names":["SDK_VERSION","DEFAULT_CONFIG","PREFIX","debugEnabled","debug","args","console","log","warn","error","KEY_PREFIX","memoryFallback","getStore","localStorage","key","setItem","removeItem","isLocalStorageAvailable","Map","storage","get","store","prefixed","getItem","set","value","remove","delete","config","async","post","path","body","logger.warn","url","baseUrl","res","fetch","method","headers","apiKey","JSON","stringify","ok","json","status","err","logger.error","getScreenResolution","screen","width","height","getTimezone","Intl","DateTimeFormat","resolvedOptions","timeZone","getLanguage","navigator","language","getPlatform","nav","userAgentData","platform","generateId","crypto","randomUUID","replace","c","r","Math","random","toString","SESSION_TIMEOUT","SessionManager","constructor","stored","storedStart","Date","now","Number","this","sessionId","lastActivity","pageViews","persist","logger.debug","getSessionId","incrementPageViews","String","STORAGE_KEY","EventQueue","deviceId","queue","timer","flushing","restore","startFlushTimer","setupUnloadHandlers","enqueue","event","push","length","maxQueueSize","shift","event_name","batchSize","flush","batch","splice","app_id","appId","device_id","events","sdk_version","unshift","flushBeacon","payload","_api_key","keepalive","catch","sendBeacon","Blob","type","beacon","destroy","clearInterval","setInterval","flushInterval","document","addEventListener","visibilityState","window","raw","parse","sdkInstance","session","initialized","lastUrl","init","userConfig","enabled","cfg","Error","autoTrackPageViews","resolveConfig","version","getOrCreateDeviceId","trackInstallIfNew","setupPageViewTracking","track","eventName","properties","ensureInit","timestamp","session_id","trackPageView","location","href","pathname","title","referrer","trackRevenue","amount","currency","identify","userId","user_id","getAttribution","existing","id","device","screen_resolution","timezone","undefined","data","matchType","confidence","originalPushState","history","pushState","bind","originalReplaceState","replaceState","onUrlChange","newUrl","index"],"mappings":"AAEO,MAAMA,EAAc,UAGrBC,EACO,GADPA,EAEW,IAFXA,EAGU,IAHVA,GAIgB,EAJhBA,GAKG,ECVT,MAAMC,EAAS,mBAEf,IAAIC,GAAe,EAMb,SAAUC,KAASC,GACnBF,GACFG,QAAQC,IAAIL,KAAWG,EAE3B,CAEM,SAAUG,KAAQH,GACtBC,QAAQE,KAAKN,KAAWG,EAC1B,CAEM,SAAUI,KAASJ,GACvBC,QAAQG,MAAMP,KAAWG,EAC3B,CCpBA,MAAMK,EAAa,SAEnB,IAAIC,EAA6C,KAajD,SAASC,IACP,OAAID,IACwB,oBAAjBE,cAbb,WACE,IACE,MAAMC,EAAMJ,EAAa,OAGzB,OAFAG,aAAaE,QAAQD,EAAK,KAC1BD,aAAaG,WAAWF,IACjB,CACT,CAAE,MACA,OAAO,CACT,CACF,CAI6CG,GAClCJ,cAETF,EAAiB,IAAIO,IACdP,GACT,CAEO,MAAMQ,EAAU,CACrB,GAAAC,CAAIN,GACF,MAAMO,EAAQT,IACRU,EAAWZ,EAAaI,EAC9B,OAAIO,aAAiBH,IACZG,EAAMD,IAAIE,IAAa,KAEzBD,EAAME,QAAQD,EACvB,EAEA,GAAAE,CAAIV,EAAaW,GACf,MAAMJ,EAAQT,IACRU,EAAWZ,EAAaI,EAC1BO,aAAiBH,IACnBG,EAAMG,IAAIF,EAAUG,GAEpBJ,EAAMN,QAAQO,EAAUG,EAE5B,EAEA,MAAAC,CAAOZ,GACL,MAAMO,EAAQT,IACRU,EAAWZ,EAAaI,EAC1BO,aAAiBH,IACnBG,EAAMM,OAAOL,GAEbD,EAAML,WAAWM,EAErB,GCjDF,IAAIM,EAAgC,KAS7BC,eAAeC,EAAQC,EAAcC,GAC1C,IAAKJ,EAEH,OADAK,EAAY,0BACL,KAGT,MAAMC,EAAM,GAAGN,EAAOO,UAAUJ,IAChC,IACE,MAAMK,QAAYC,MAAMH,EAAK,CAC3BI,OAAQ,OACRC,QAAS,CACP,eAAgB,mBAChB,YAAaX,EAAOY,QAEtBR,KAAMS,KAAKC,UAAUV,KAGvB,OAAKI,EAAIO,SAKKP,EAAIQ,QAJhBX,EAAY,QAAQF,aAAgBK,EAAIS,UACjC,KAIX,CAAE,MAAOC,GAEP,OADAC,EAAa,QAAQhB,WAAee,GAC7B,IACT,CACF,CCxBA,SAASE,IACP,IACE,MAAO,GAAGC,OAAOC,SAASD,OAAOE,QACnC,CAAE,MACA,MAAO,EACT,CACF,CAEA,SAASC,IACP,IACE,OAAOC,KAAKC,iBAAiBC,kBAAkBC,QACjD,CAAE,MACA,MAAO,EACT,CACF,CAEA,SAASC,IACP,IACE,OAAOC,UAAUC,UAAY,EAC/B,CAAE,MACA,MAAO,EACT,CACF,CAEA,SAASC,IACP,IAEE,MAAMC,EAAMH,UACZ,OAAIG,EAAIC,eAAeC,SACdF,EAAIC,cAAcC,SAEpBL,UAAUK,UAAY,EAC/B,CAAE,MACA,MAAO,EACT,CACF,UClDgBC,IACd,IACE,OAAOC,OAAOC,YAChB,CAAE,MAEA,MAAO,uCAAuCC,QAAQ,QAAUC,IAC9D,MAAMC,EAAqB,GAAhBC,KAAKC,SAAiB,EAEjC,OADgB,MAANH,EAAYC,EAAS,EAAJA,EAAW,GAC7BG,SAAS,KAEtB,CACF,CCPA,MAAMC,EAAkB,WAEXC,EAKX,WAAAC,GACE,MAAMC,EAASzD,EAAQC,IAAI,cACrByD,EAAc1D,EAAQC,IAAI,iBAEhC,GAAIwD,GAAUC,EAAa,CAEzB,GADgBC,KAAKC,MAAQC,OAAOH,GACtBJ,EAIZ,OAHAQ,KAAKC,UAAYN,EACjBK,KAAKE,aAAeH,OAAOH,QAC3BI,KAAKG,UAAYJ,OAAO7D,EAAQC,IAAI,gBAAkB,KAG1D,CAGA6D,KAAKC,UAAYlB,IACjBiB,KAAKE,aAAeL,KAAKC,MACzBE,KAAKG,UAAY,EACjBH,KAAKI,UACLC,EAAa,sBAAuBL,KAAKC,UAC3C,CAEA,YAAAK,GAQE,OAPIT,KAAKC,MAAQE,KAAKE,aAAeV,IACnCQ,KAAKC,UAAYlB,IACjBiB,KAAKG,UAAY,EACjBE,EAAa,4BAA6BL,KAAKC,YAEjDD,KAAKE,aAAeL,KAAKC,MACzBE,KAAKI,UACEJ,KAAKC,SACd,CAEA,kBAAAM,GAGE,OAFAP,KAAKG,YACLjE,EAAQK,IAAI,cAAeiE,OAAOR,KAAKG,YAChCH,KAAKG,SACd,CAEQ,OAAAC,GACNlE,EAAQK,IAAI,aAAcyD,KAAKC,WAC/B/D,EAAQK,IAAI,gBAAiBiE,OAAOR,KAAKE,cAC3C,EC/CF,MAAMO,EAAc,cAEPC,EAOX,WAAAhB,CAAY/C,EAAwBgE,GAN5BX,KAAAY,MAAuB,GACvBZ,KAAAa,MAA+C,KAG/Cb,KAAAc,UAAW,EAGjBd,KAAKrD,OAASA,EACdqD,KAAKW,SAAWA,EAChBX,KAAKe,UACLf,KAAKgB,kBACLhB,KAAKiB,qBACP,CAEA,OAAAC,CAAQC,GAIN,IAHAnB,KAAKY,MAAMQ,KAAKD,GAGTnB,KAAKY,MAAMS,OAASrB,KAAKrD,OAAO2E,cACrCtB,KAAKY,MAAMW,QAGbvB,KAAKI,UACLC,EAAa,gBAAiBc,EAAMK,WAAY,IAAIxB,KAAKY,MAAMS,mBAE3DrB,KAAKY,MAAMS,QAAUrB,KAAKrD,OAAO8E,WACnCzB,KAAK0B,OAET,CAEA,WAAMA,GACJ,GAAI1B,KAAKc,UAAkC,IAAtBd,KAAKY,MAAMS,OAAc,OAC9CrB,KAAKc,UAAW,EAEhB,MAAMa,EAAQ3B,KAAKY,MAAMgB,OAAO,EAAG5B,KAAKrD,OAAO8E,WAC/CzB,KAAKI,UAEL,MAAMrD,EAA+B,CACnC8E,OAAQ7B,KAAKrD,OAAOmF,MACpBC,UAAW/B,KAAKW,SAChBqB,OAAQL,EACRM,YAAalH,GAGf,UACuB8B,EAAK,iBAAkBE,GAO1CsD,EAAa,WAAWsB,EAAMN,kBAJ9BrB,KAAKY,MAAMsB,WAAWP,GACtB3B,KAAKI,UACLpD,EAAY,kCAIhB,CAAE,MAAOa,GACPmC,KAAKY,MAAMsB,WAAWP,GACtB3B,KAAKI,UACLtC,EAAa,eAAgBD,EAC/B,SACEmC,KAAKc,UAAW,CAClB,CACF,CAGA,WAAAqB,GACE,GAA0B,IAAtBnC,KAAKY,MAAMS,OAAc,QJ7B3B,SAAiBvE,EAAcC,GACnC,IAAKJ,EAAQ,OAEb,MAAMM,EAAM,GAAGN,EAAOO,UAAUJ,IAC1BsF,EAAU5E,KAAKC,UAAU,IAAKV,EAAgBsF,SAAU1F,EAAOY,SAGrE,IAUE,YATAH,MAAMH,EAAK,CACTI,OAAQ,OACRC,QAAS,CACP,eAAgB,mBAChB,YAAaX,EAAOY,QAEtBR,KAAMqF,EACNE,WAAW,IACVC,MAAM,OAEX,CAAE,MAEF,CAGA,IACE9D,UAAU+D,WAAWvF,EAAK,IAAIwF,KAAK,CAACL,GAAU,CAAEM,KAAM,qBACxD,CAAE,MACA1F,EAAY,uCACd,CACF,CIUI2F,CAAO,iBAP8B,CACnCd,OAAQ7B,KAAKrD,OAAOmF,MACpBC,UAAW/B,KAAKW,SAChBqB,OAAQhC,KAAKY,MACbqB,YAAalH,IAIfiF,KAAKY,MAAQ,GACbZ,KAAKI,UACLC,EAAa,oBACf,CAEA,OAAAuC,GACM5C,KAAKa,QACPgC,cAAc7C,KAAKa,OACnBb,KAAKa,MAAQ,KAEjB,CAEQ,eAAAG,GACNhB,KAAKa,MAAQiC,YAAY,KACvB9C,KAAK0B,SACJ1B,KAAKrD,OAAOoG,cACjB,CAEQ,mBAAA9B,GACkB,oBAAb+B,WAGXA,SAASC,iBAAiB,mBAAoB,KACX,WAA7BD,SAASE,iBACXlD,KAAKmC,gBAKTgB,OAAOF,iBAAiB,eAAgB,KACtCjD,KAAKmC,gBAET,CAEQ,OAAA/B,GACN,IACElE,EAAQK,IAAIkE,EAAajD,KAAKC,UAAUuC,KAAKY,OAC/C,CAAE,MAEF,CACF,CAEQ,OAAAG,GACN,IACE,MAAMqC,EAAMlH,EAAQC,IAAIsE,GACpB2C,IACFpD,KAAKY,MAAQpD,KAAK6F,MAAMD,GACxB/C,EAAa,YAAYL,KAAKY,MAAMS,wBAExC,CAAE,MACArB,KAAKY,MAAQ,EACf,CACF,EC6FK,MAAM0C,EAAc,IArN3B,MAAA,WAAA5D,GACUM,KAAArD,OAAgC,KAChCqD,KAAAuD,QAAiC,KACjCvD,KAAAY,MAA2B,KAC3BZ,KAAAwD,aAAc,EACdxD,KAAAyD,QAAkB,GAClBzD,KAAAW,SAAmB,EA4M7B,CAtME,IAAA+C,CAAKC,GPxBD,IAAmBC,EECQC,EKwBzB7D,KAAKwD,YACPxG,EAAY,4BAIdgD,KAAKrD,ORlBH,SAAwBA,GAC5B,IAAKA,EAAOY,OACV,MAAM,IAAIuG,MAAM,uCAElB,IAAKnH,EAAOmF,MACV,MAAM,IAAIgC,MAAM,sCAElB,MAAO,CACLvG,OAAQZ,EAAOY,OACfuE,MAAOnF,EAAOmF,MACd5E,QAvB4B,8BAwB5BuE,UAAW9E,EAAO8E,WAAazG,EAC/B+H,cAAepG,EAAOoG,eAAiB/H,EACvCsG,aAAc3E,EAAO2E,cAAgBtG,EACrC+I,mBACEpH,EAAOoH,oBAAsB/I,EAC/BG,MAAOwB,EAAOxB,OAASH,EAE3B,CQAkBgJ,CAAcL,GP9BPC,EO+BZ5D,KAAKrD,OAAOxB,MP9BvBD,EAAe0I,EEAgBC,EK+BZ7D,KAAKrD,OL9BxBA,EAASkH,EKgCPxD,EAAa,eAAgB,CAAEyB,MAAO9B,KAAKrD,OAAOmF,MAAOmC,QAASlJ,IAElEiF,KAAKW,SAAWX,KAAKkE,sBACrBlE,KAAKuD,QAAU,IAAI9D,EACnBO,KAAKY,MAAQ,IAAIF,EAAWV,KAAKrD,OAAQqD,KAAKW,UAG9CX,KAAKmE,oBAGDnE,KAAKrD,OAAOoH,oBACd/D,KAAKoE,wBAGPpE,KAAKwD,aAAc,EACnBnD,EAAa,mBACf,CAKA,KAAAgE,CAAMC,EAAmBC,EAAsC,IACxDvE,KAAKwE,cAEVxE,KAAKY,MAAOM,QAAQ,CAClBM,WAAY8C,EACZC,aACAE,UAAW5E,KAAKC,MAChB4E,WAAY1E,KAAKuD,QAASjD,gBAE9B,CAKA,aAAAqE,CAAcJ,EAAsC,IAC7CvE,KAAKwE,eAEVxE,KAAKuD,QAAShD,qBAEdP,KAAKqE,MAAM,YAAa,CACtBpH,IAAK2H,SAASC,KACd/H,KAAM8H,SAASE,SACfC,MAAO/B,SAAS+B,MAChBC,SAAUhC,SAASgC,YAChBT,IAEP,CAKA,YAAAU,CACEC,EACAC,EAAmB,MACnBZ,EAAsC,CAAA,GAEjCvE,KAAKwE,cAEVxE,KAAKqE,MAAM,UAAW,CACpBa,SACAC,cACGZ,GAEP,CAKA,QAAAa,CAASC,EAAgBd,EAAsC,IACxDvE,KAAKwE,eAEVtI,EAAQK,IAAI,UAAW8I,GAEvBrF,KAAKqE,MAAM,WAAY,CACrBiB,QAASD,KACNd,IAGLlE,EAAa,mBAAoBgF,GACnC,CAKA,KAAA3D,GACO1B,KAAKwE,cACVxE,KAAKY,MAAOc,OACd,CAKA,cAAA6D,GACE,MAAMnC,EAAMlH,EAAQC,IAAI,eACxB,IAAKiH,EAAK,OAAO,KACjB,IACE,OAAO5F,KAAK6F,MAAMD,EACpB,CAAE,MACA,OAAO,IACT,CACF,CAIQ,UAAAoB,GACN,QAAKxE,KAAKwD,cACRxG,EAAY,4CACL,EAGX,CAEQ,mBAAAkH,GACN,MAAMsB,EAAWtJ,EAAQC,IAAI,aAC7B,GAAIqJ,EAAU,OAAOA,EACrB,MAAMC,EAAK1G,IAEX,OADA7C,EAAQK,IAAI,YAAakJ,GAClBA,CACT,CAEQ,uBAAMtB,GACZ,GAAIjI,EAAQC,IAAI,aAEd,YADAkE,EAAa,2BAIf,MAAMqF,EJ9JD,CACLC,kBAAmB5H,IACnB6H,SAAUzH,IACVO,SAAUF,IACVM,SAAUH,KI4JJ5B,EAA2B,CAC/B8E,OAAQ7B,KAAKrD,OAAQmF,MACrBhD,SAAU,MACVmD,YAAalH,EACbgH,UAAW/B,KAAKW,SAChBgF,kBAAmBD,EAAOC,wBAAqBE,EAC/CD,SAAUF,EAAOE,eAAYC,EAC7BnH,SAAUgH,EAAOhH,eAAYmH,GAG/BxF,EAAa,uBAEb,MAAMlD,QAAYN,EAAkC,mBAAoBE,GAEpEI,GAAK2I,MACP5J,EAAQK,IAAI,YAAa,KACzBL,EAAQK,IAAI,cAAeiB,KAAKC,UAAUN,EAAI2I,OAC9CzF,EAAa,mBAAoBlD,EAAI2I,KAAKC,UAAW,IAAI5I,EAAI2I,KAAKE,iBAGlEhJ,EAAY,sCAEhB,CAEQ,qBAAAoH,GACN,GAAsB,oBAAXjB,OAAwB,OAEnCnD,KAAKyD,QAAUmB,SAASC,KAGxB7E,KAAK2E,gBAGL,MAAMsB,EAAoBC,QAAQC,UAAUC,KAAKF,SAC3CG,EAAuBH,QAAQI,aAAaF,KAAKF,SAEvDA,QAAQC,UAAY,IAAI/K,KACtB6K,KAAqB7K,GACrB4E,KAAKuG,eAGPL,QAAQI,aAAe,IAAIlL,KACzBiL,KAAwBjL,GACxB4E,KAAKuG,eAIPpD,OAAOF,iBAAiB,WAAY,KAClCjD,KAAKuG,eAET,CAEQ,WAAAA,GACN,MAAMC,EAAS5B,SAASC,KACpB2B,IAAWxG,KAAKyD,UAClBzD,KAAKyD,QAAU+C,EACfxG,KAAK2E,gBAET,GCvNWjB,EAAOJ,EAAYI,KAAK0C,KAAK9C,GAC7Be,EAAQf,EAAYe,MAAM+B,KAAK9C,GAC/BqB,EAAgBrB,EAAYqB,cAAcyB,KAAK9C,GAC/C2B,EAAe3B,EAAY2B,aAAamB,KAAK9C,GAC7C8B,EAAW9B,EAAY8B,SAASgB,KAAK9C,GACrC5B,EAAQ4B,EAAY5B,MAAM0E,KAAK9C,GAC/BiC,EAAiBjC,EAAYiC,eAAea,KAAK9C,GAG9D,IAAAmD,EAAe,CACb/C,OACAW,QACAM,gBACAM,eACAG,WACA1D,QACA6D"}
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).AttributionSDK={})}(this,function(e){"use strict";const t='"1.0.1"',i=10,s=5e3,n=100,r=!0,a=!1;const o="[AttributionSDK]";let u=!1;function c(...e){u&&console.log(o,...e)}function h(...e){console.warn(o,...e)}function l(...e){console.error(o,...e)}const d="__ahq_";let f=null;function p(){return f||("undefined"!=typeof localStorage&&function(){try{const e=d+"test";return localStorage.setItem(e,"1"),localStorage.removeItem(e),!0}catch{return!1}}()?localStorage:(f=new Map,f))}const g={get(e){const t=p(),i=d+e;return t instanceof Map?t.get(i)??null:t.getItem(i)},set(e,t){const i=p(),s=d+e;i instanceof Map?i.set(s,t):i.setItem(s,t)},remove(e){const t=p(),i=d+e;t instanceof Map?t.delete(i):t.removeItem(i)}};let v=null;async function y(e,t){if(!v)return h("Network not configured"),null;const i=`${v.baseUrl}${e}`;try{const s=await fetch(i,{method:"POST",headers:{"Content-Type":"application/json","X-API-Key":v.apiKey},body:JSON.stringify(t)});return s.ok?await s.json():(h(`POST ${e} failed: ${s.status}`),null)}catch(t){return l(`POST ${e} error:`,t),null}}function I(){try{return`${screen.width}x${screen.height}`}catch{return""}}function m(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone}catch{return""}}function w(){try{return navigator.language||""}catch{return""}}function b(){try{const e=navigator;return e.userAgentData?.platform?e.userAgentData.platform:navigator.platform||""}catch{return""}}function x(){try{return crypto.randomUUID()}catch{return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{const t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)})}}const S=18e5;class k{constructor(){const e=g.get("session_id"),t=g.get("session_start");if(e&&t){if(Date.now()-Number(t)<S)return this.sessionId=e,this.lastActivity=Number(t),void(this.pageViews=Number(g.get("session_pvs")||"0"))}this.sessionId=x(),this.lastActivity=Date.now(),this.pageViews=0,this.persist(),c("New session started",this.sessionId)}getSessionId(){return Date.now()-this.lastActivity>S&&(this.sessionId=x(),this.pageViews=0,c("Session rotated (timeout)",this.sessionId)),this.lastActivity=Date.now(),this.persist(),this.sessionId}incrementPageViews(){return this.pageViews++,g.set("session_pvs",String(this.pageViews)),this.pageViews}persist(){g.set("session_id",this.sessionId),g.set("session_start",String(this.lastActivity))}}const _="queue";class q{constructor(e,t){this.queue=[],this.timer=null,this.flushing=!1,this.config=e,this.deviceId=t,this.restore(),this.startFlushTimer(),this.setupUnloadHandlers()}enqueue(e){for(this.queue.push(e);this.queue.length>this.config.maxQueueSize;)this.queue.shift();this.persist(),c("Event queued:",e.event_name,`(${this.queue.length} pending)`),this.queue.length>=this.config.batchSize&&this.flush()}async flush(){if(this.flushing||0===this.queue.length)return;this.flushing=!0;const e=this.queue.splice(0,this.config.batchSize);this.persist();const i={app_id:this.config.appId,device_id:this.deviceId,events:e,sdk_version:t};try{await y("/api/v1/events",i)?c(`Flushed ${e.length} events`):(this.queue.unshift(...e),this.persist(),h("Flush failed, events re-queued"))}catch(t){this.queue.unshift(...e),this.persist(),l("Flush error:",t)}finally{this.flushing=!1}}flushBeacon(){if(0===this.queue.length)return;!function(e,t){if(!v)return;const i=`${v.baseUrl}${e}`,s=JSON.stringify({...t,_api_key:v.apiKey});try{return void fetch(i,{method:"POST",headers:{"Content-Type":"application/json","X-API-Key":v.apiKey},body:s,keepalive:!0}).catch(()=>{})}catch{}try{navigator.sendBeacon(i,new Blob([s],{type:"application/json"}))}catch{h("Both keepalive and sendBeacon failed")}}("/api/v1/events",{app_id:this.config.appId,device_id:this.deviceId,events:this.queue,sdk_version:t}),this.queue=[],this.persist(),c("Beacon flush sent")}destroy(){this.timer&&(clearInterval(this.timer),this.timer=null)}startFlushTimer(){this.timer=setInterval(()=>{this.flush()},this.config.flushInterval)}setupUnloadHandlers(){"undefined"!=typeof document&&(document.addEventListener("visibilitychange",()=>{"hidden"===document.visibilityState&&this.flushBeacon()}),window.addEventListener("beforeunload",()=>{this.flushBeacon()}))}persist(){try{g.set(_,JSON.stringify(this.queue))}catch{}}restore(){try{const e=g.get(_);e&&(this.queue=JSON.parse(e),c(`Restored ${this.queue.length} queued events`))}catch{this.queue=[]}}}const P=new class{constructor(){this.config=null,this.session=null,this.queue=null,this.initialized=!1,this.lastUrl="",this.deviceId=""}init(e){var o,l;this.initialized?h("SDK already initialized"):(this.config=function(e){if(!e.apiKey)throw new Error("[AttributionSDK] apiKey is required");if(!e.appId)throw new Error("[AttributionSDK] appId is required");const t=e.baseUrl||"https://attributehq.com";return{apiKey:e.apiKey,appId:e.appId,baseUrl:t.replace(/\/+$/,""),batchSize:e.batchSize??i,flushInterval:e.flushInterval??s,maxQueueSize:e.maxQueueSize??n,autoTrackPageViews:e.autoTrackPageViews??r,debug:e.debug??a}}(e),o=this.config.debug,u=o,l=this.config,v=l,c("Initializing",{appId:this.config.appId,version:t}),this.deviceId=this.getOrCreateDeviceId(),this.session=new k,this.queue=new q(this.config,this.deviceId),this.trackInstallIfNew(),this.config.autoTrackPageViews&&this.setupPageViewTracking(),this.initialized=!0,c("SDK initialized"))}track(e,t={}){this.ensureInit()&&this.queue.enqueue({event_name:e,properties:t,timestamp:Date.now(),session_id:this.session.getSessionId()})}trackPageView(e={}){this.ensureInit()&&(this.session.incrementPageViews(),this.track("page_view",{url:location.href,path:location.pathname,title:document.title,referrer:document.referrer,...e}))}trackRevenue(e,t="NGN",i={}){this.ensureInit()&&this.track("revenue",{amount:e,currency:t,...i})}identify(e,t={}){this.ensureInit()&&(g.set("user_id",e),this.track("identify",{user_id:e,...t}),c("User identified:",e))}flush(){this.ensureInit()&&this.queue.flush()}getAttribution(){const e=g.get("attribution");if(!e)return null;try{return JSON.parse(e)}catch{return null}}ensureInit(){return!!this.initialized||(h("SDK not initialized. Call init() first."),!1)}getOrCreateDeviceId(){const e=g.get("device_id");if(e)return e;const t=x();return g.set("device_id",t),t}async trackInstallIfNew(){if(g.get("installed"))return void c("Install already tracked");const e={screen_resolution:I(),timezone:m(),language:w(),platform:b()},i={app_id:this.config.appId,platform:"web",sdk_version:t,device_id:this.deviceId,screen_resolution:e.screen_resolution||void 0,timezone:e.timezone||void 0,language:e.language||void 0};c("Tracking install...");const s=await y("/api/v1/installs",i);s?.data?(g.set("installed","1"),g.set("attribution",JSON.stringify(s.data)),c("Install tracked:",s.data.matchType,`(${s.data.confidence}%)`)):h("Install tracking failed, will retry")}setupPageViewTracking(){if("undefined"==typeof window)return;this.lastUrl=location.href,this.trackPageView();const e=history.pushState.bind(history),t=history.replaceState.bind(history);history.pushState=(...t)=>{e(...t),this.onUrlChange()},history.replaceState=(...e)=>{t(...e),this.onUrlChange()},window.addEventListener("popstate",()=>{this.onUrlChange()})}onUrlChange(){const e=location.href;e!==this.lastUrl&&(this.lastUrl=e,this.trackPageView())}},V=P.init.bind(P),z=P.track.bind(P),D=P.trackPageView.bind(P),T=P.trackRevenue.bind(P),A=P.identify.bind(P),U=P.flush.bind(P),K=P.getAttribution.bind(P);var N={init:V,track:z,trackPageView:D,trackRevenue:T,identify:A,flush:U,getAttribution:K};e.default=N,e.flush=U,e.getAttribution=K,e.identify=A,e.init=V,e.track=z,e.trackPageView=D,e.trackRevenue=T,Object.defineProperty(e,"__esModule",{value:!0})});
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).AttributionSDK={})}(this,function(e){"use strict";const t='"1.0.2"',i=10,s=5e3,n=100,r=!0,a=!1;const o="[AttributionSDK]";let u=!1;function h(...e){u&&console.log(o,...e)}function c(...e){console.warn(o,...e)}function l(...e){console.error(o,...e)}const d="__ahq_";let f=null;function p(){return f||("undefined"!=typeof localStorage&&function(){try{const e=d+"test";return localStorage.setItem(e,"1"),localStorage.removeItem(e),!0}catch{return!1}}()?localStorage:(f=new Map,f))}const g={get(e){const t=p(),i=d+e;return t instanceof Map?t.get(i)??null:t.getItem(i)},set(e,t){const i=p(),s=d+e;i instanceof Map?i.set(s,t):i.setItem(s,t)},remove(e){const t=p(),i=d+e;t instanceof Map?t.delete(i):t.removeItem(i)}};let v=null;async function y(e,t){if(!v)return c("Network not configured"),null;const i=`${v.baseUrl}${e}`;try{const s=await fetch(i,{method:"POST",headers:{"Content-Type":"application/json","X-API-Key":v.apiKey},body:JSON.stringify(t)});return s.ok?await s.json():(c(`POST ${e} failed: ${s.status}`),null)}catch(t){return l(`POST ${e} error:`,t),null}}function I(){try{return`${screen.width}x${screen.height}`}catch{return""}}function m(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone}catch{return""}}function w(){try{return navigator.language||""}catch{return""}}function b(){try{const e=navigator;return e.userAgentData?.platform?e.userAgentData.platform:navigator.platform||""}catch{return""}}function x(){try{return crypto.randomUUID()}catch{return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{const t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)})}}const S=18e5;class k{constructor(){const e=g.get("session_id"),t=g.get("session_start");if(e&&t){if(Date.now()-Number(t)<S)return this.sessionId=e,this.lastActivity=Number(t),void(this.pageViews=Number(g.get("session_pvs")||"0"))}this.sessionId=x(),this.lastActivity=Date.now(),this.pageViews=0,this.persist(),h("New session started",this.sessionId)}getSessionId(){return Date.now()-this.lastActivity>S&&(this.sessionId=x(),this.pageViews=0,h("Session rotated (timeout)",this.sessionId)),this.lastActivity=Date.now(),this.persist(),this.sessionId}incrementPageViews(){return this.pageViews++,g.set("session_pvs",String(this.pageViews)),this.pageViews}persist(){g.set("session_id",this.sessionId),g.set("session_start",String(this.lastActivity))}}const _="queue";class q{constructor(e,t){this.queue=[],this.timer=null,this.flushing=!1,this.config=e,this.deviceId=t,this.restore(),this.startFlushTimer(),this.setupUnloadHandlers()}enqueue(e){for(this.queue.push(e);this.queue.length>this.config.maxQueueSize;)this.queue.shift();this.persist(),h("Event queued:",e.event_name,`(${this.queue.length} pending)`),this.queue.length>=this.config.batchSize&&this.flush()}async flush(){if(this.flushing||0===this.queue.length)return;this.flushing=!0;const e=this.queue.splice(0,this.config.batchSize);this.persist();const i={app_id:this.config.appId,device_id:this.deviceId,events:e,sdk_version:t};try{await y("/api/v1/events",i)?h(`Flushed ${e.length} events`):(this.queue.unshift(...e),this.persist(),c("Flush failed, events re-queued"))}catch(t){this.queue.unshift(...e),this.persist(),l("Flush error:",t)}finally{this.flushing=!1}}flushBeacon(){if(0===this.queue.length)return;!function(e,t){if(!v)return;const i=`${v.baseUrl}${e}`,s=JSON.stringify({...t,_api_key:v.apiKey});try{return void fetch(i,{method:"POST",headers:{"Content-Type":"application/json","X-API-Key":v.apiKey},body:s,keepalive:!0}).catch(()=>{})}catch{}try{navigator.sendBeacon(i,new Blob([s],{type:"application/json"}))}catch{c("Both keepalive and sendBeacon failed")}}("/api/v1/events",{app_id:this.config.appId,device_id:this.deviceId,events:this.queue,sdk_version:t}),this.queue=[],this.persist(),h("Beacon flush sent")}destroy(){this.timer&&(clearInterval(this.timer),this.timer=null)}startFlushTimer(){this.timer=setInterval(()=>{this.flush()},this.config.flushInterval)}setupUnloadHandlers(){"undefined"!=typeof document&&(document.addEventListener("visibilitychange",()=>{"hidden"===document.visibilityState&&this.flushBeacon()}),window.addEventListener("beforeunload",()=>{this.flushBeacon()}))}persist(){try{g.set(_,JSON.stringify(this.queue))}catch{}}restore(){try{const e=g.get(_);e&&(this.queue=JSON.parse(e),h(`Restored ${this.queue.length} queued events`))}catch{this.queue=[]}}}const P=new class{constructor(){this.config=null,this.session=null,this.queue=null,this.initialized=!1,this.lastUrl="",this.deviceId=""}init(e){var o,l;this.initialized?c("SDK already initialized"):(this.config=function(e){if(!e.apiKey)throw new Error("[AttributionSDK] apiKey is required");if(!e.appId)throw new Error("[AttributionSDK] appId is required");return{apiKey:e.apiKey,appId:e.appId,baseUrl:"https://api.attributehq.com",batchSize:e.batchSize??i,flushInterval:e.flushInterval??s,maxQueueSize:e.maxQueueSize??n,autoTrackPageViews:e.autoTrackPageViews??r,debug:e.debug??a}}(e),o=this.config.debug,u=o,l=this.config,v=l,h("Initializing",{appId:this.config.appId,version:t}),this.deviceId=this.getOrCreateDeviceId(),this.session=new k,this.queue=new q(this.config,this.deviceId),this.trackInstallIfNew(),this.config.autoTrackPageViews&&this.setupPageViewTracking(),this.initialized=!0,h("SDK initialized"))}track(e,t={}){this.ensureInit()&&this.queue.enqueue({event_name:e,properties:t,timestamp:Date.now(),session_id:this.session.getSessionId()})}trackPageView(e={}){this.ensureInit()&&(this.session.incrementPageViews(),this.track("page_view",{url:location.href,path:location.pathname,title:document.title,referrer:document.referrer,...e}))}trackRevenue(e,t="NGN",i={}){this.ensureInit()&&this.track("revenue",{amount:e,currency:t,...i})}identify(e,t={}){this.ensureInit()&&(g.set("user_id",e),this.track("identify",{user_id:e,...t}),h("User identified:",e))}flush(){this.ensureInit()&&this.queue.flush()}getAttribution(){const e=g.get("attribution");if(!e)return null;try{return JSON.parse(e)}catch{return null}}ensureInit(){return!!this.initialized||(c("SDK not initialized. Call init() first."),!1)}getOrCreateDeviceId(){const e=g.get("device_id");if(e)return e;const t=x();return g.set("device_id",t),t}async trackInstallIfNew(){if(g.get("installed"))return void h("Install already tracked");const e={screen_resolution:I(),timezone:m(),language:w(),platform:b()},i={app_id:this.config.appId,platform:"web",sdk_version:t,device_id:this.deviceId,screen_resolution:e.screen_resolution||void 0,timezone:e.timezone||void 0,language:e.language||void 0};h("Tracking install...");const s=await y("/api/v1/installs",i);s?.data?(g.set("installed","1"),g.set("attribution",JSON.stringify(s.data)),h("Install tracked:",s.data.matchType,`(${s.data.confidence}%)`)):c("Install tracking failed, will retry")}setupPageViewTracking(){if("undefined"==typeof window)return;this.lastUrl=location.href,this.trackPageView();const e=history.pushState.bind(history),t=history.replaceState.bind(history);history.pushState=(...t)=>{e(...t),this.onUrlChange()},history.replaceState=(...e)=>{t(...e),this.onUrlChange()},window.addEventListener("popstate",()=>{this.onUrlChange()})}onUrlChange(){const e=location.href;e!==this.lastUrl&&(this.lastUrl=e,this.trackPageView())}},V=P.init.bind(P),z=P.track.bind(P),D=P.trackPageView.bind(P),T=P.trackRevenue.bind(P),A=P.identify.bind(P),K=P.flush.bind(P),U=P.getAttribution.bind(P);var N={init:V,track:z,trackPageView:D,trackRevenue:T,identify:A,flush:K,getAttribution:U};e.default=N,e.flush=K,e.getAttribution=U,e.identify=A,e.init=V,e.track=z,e.trackPageView=D,e.trackRevenue=T,Object.defineProperty(e,"__esModule",{value:!0})});
2
2
  //# sourceMappingURL=attribution.umd.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"attribution.umd.js","sources":["../src/config.ts","../src/logger.ts","../src/storage.ts","../src/network.ts","../src/device.ts","../src/utils.ts","../src/session.ts","../src/queue.ts","../src/sdk.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null],"names":["SDK_VERSION","DEFAULT_CONFIG","PREFIX","debugEnabled","debug","args","console","log","warn","error","KEY_PREFIX","memoryFallback","getStore","localStorage","key","setItem","removeItem","isLocalStorageAvailable","Map","storage","get","store","prefixed","getItem","set","value","remove","delete","config","async","post","path","body","logger.warn","url","baseUrl","res","fetch","method","headers","apiKey","JSON","stringify","ok","json","status","err","logger.error","getScreenResolution","screen","width","height","getTimezone","Intl","DateTimeFormat","resolvedOptions","timeZone","getLanguage","navigator","language","getPlatform","nav","userAgentData","platform","generateId","crypto","randomUUID","replace","c","r","Math","random","toString","SESSION_TIMEOUT","SessionManager","constructor","stored","storedStart","Date","now","Number","this","sessionId","lastActivity","pageViews","persist","logger.debug","getSessionId","incrementPageViews","String","STORAGE_KEY","EventQueue","deviceId","queue","timer","flushing","restore","startFlushTimer","setupUnloadHandlers","enqueue","event","push","length","maxQueueSize","shift","event_name","batchSize","flush","batch","splice","app_id","appId","device_id","events","sdk_version","unshift","flushBeacon","payload","_api_key","keepalive","catch","sendBeacon","Blob","type","beacon","destroy","clearInterval","setInterval","flushInterval","document","addEventListener","visibilityState","window","raw","parse","sdkInstance","session","initialized","lastUrl","init","userConfig","enabled","cfg","Error","autoTrackPageViews","resolveConfig","version","getOrCreateDeviceId","trackInstallIfNew","setupPageViewTracking","track","eventName","properties","ensureInit","timestamp","session_id","trackPageView","location","href","pathname","title","referrer","trackRevenue","amount","currency","identify","userId","user_id","getAttribution","existing","id","device","screen_resolution","timezone","undefined","data","matchType","confidence","originalPushState","history","pushState","bind","originalReplaceState","replaceState","onUrlChange","newUrl","index"],"mappings":"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"}
1
+ {"version":3,"file":"attribution.umd.js","sources":["../src/config.ts","../src/logger.ts","../src/storage.ts","../src/network.ts","../src/device.ts","../src/utils.ts","../src/session.ts","../src/queue.ts","../src/sdk.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null],"names":["SDK_VERSION","DEFAULT_CONFIG","PREFIX","debugEnabled","debug","args","console","log","warn","error","KEY_PREFIX","memoryFallback","getStore","localStorage","key","setItem","removeItem","isLocalStorageAvailable","Map","storage","get","store","prefixed","getItem","set","value","remove","delete","config","async","post","path","body","logger.warn","url","baseUrl","res","fetch","method","headers","apiKey","JSON","stringify","ok","json","status","err","logger.error","getScreenResolution","screen","width","height","getTimezone","Intl","DateTimeFormat","resolvedOptions","timeZone","getLanguage","navigator","language","getPlatform","nav","userAgentData","platform","generateId","crypto","randomUUID","replace","c","r","Math","random","toString","SESSION_TIMEOUT","SessionManager","constructor","stored","storedStart","Date","now","Number","this","sessionId","lastActivity","pageViews","persist","logger.debug","getSessionId","incrementPageViews","String","STORAGE_KEY","EventQueue","deviceId","queue","timer","flushing","restore","startFlushTimer","setupUnloadHandlers","enqueue","event","push","length","maxQueueSize","shift","event_name","batchSize","flush","batch","splice","app_id","appId","device_id","events","sdk_version","unshift","flushBeacon","payload","_api_key","keepalive","catch","sendBeacon","Blob","type","beacon","destroy","clearInterval","setInterval","flushInterval","document","addEventListener","visibilityState","window","raw","parse","sdkInstance","session","initialized","lastUrl","init","userConfig","enabled","cfg","Error","autoTrackPageViews","resolveConfig","version","getOrCreateDeviceId","trackInstallIfNew","setupPageViewTracking","track","eventName","properties","ensureInit","timestamp","session_id","trackPageView","location","href","pathname","title","referrer","trackRevenue","amount","currency","identify","userId","user_id","getAttribution","existing","id","device","screen_resolution","timezone","undefined","data","matchType","confidence","originalPushState","history","pushState","bind","originalReplaceState","replaceState","onUrlChange","newUrl","index"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -6,8 +6,6 @@ interface SDKConfig {
6
6
  apiKey: string;
7
7
  /** App UUID */
8
8
  appId: string;
9
- /** Override API base URL (default: https://attributehq.com) */
10
- baseUrl?: string;
11
9
  /** Events per batch before auto-flush (default: 10) */
12
10
  batchSize?: number;
13
11
  /** Auto-flush interval in ms (default: 5000) */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@attributehq/web-sdk",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "description": "Lightweight web attribution SDK for AttributeHQ — track installs, events, and revenue",
5
5
  "author": "AttributeHQ <dev@attributehq.com>",
6
6
  "license": "MIT",