@blossu/ui 0.13.0 → 0.15.0
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 +3 -3
- package/dist/blossu.d.ts +1 -0
- package/dist/blossu.d.ts.map +1 -1
- package/dist/blossu.esm.js +1 -1
- package/dist/blossu.esm.js.map +1 -1
- package/dist/blossu.js +1 -1
- package/dist/blossu.js.map +1 -1
- package/dist/blossu.min.js +1 -1
- package/dist/blossu.min.js.map +1 -1
- package/dist/cdn/blossu.d.ts +1 -0
- package/dist/cdn/blossu.d.ts.map +1 -1
- package/dist/cdn/blossu.js +1 -1
- package/dist/cdn/blossu.js.map +1 -1
- package/dist/cdn/react.d.ts +3 -3
- package/dist/cdn/react.d.ts.map +1 -1
- package/dist/react.d.ts +3 -3
- package/dist/react.d.ts.map +1 -1
- package/dist/react.esm.js +1 -1
- package/dist/react.esm.js.map +1 -1
- package/dist/react.js +1 -1
- package/dist/react.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -227,18 +227,18 @@ function CustomReferralUI() {
|
|
|
227
227
|
}
|
|
228
228
|
```
|
|
229
229
|
|
|
230
|
-
### Option 4:
|
|
230
|
+
### Option 4: ReferralTracker Wrapper
|
|
231
231
|
|
|
232
232
|
For tracking only (no UI):
|
|
233
233
|
|
|
234
234
|
```tsx
|
|
235
|
-
import {
|
|
235
|
+
import { ReferralTracker } from '@blossu/ui/react';
|
|
236
236
|
|
|
237
237
|
export default function RootLayout({ children }) {
|
|
238
238
|
return (
|
|
239
239
|
<html>
|
|
240
240
|
<body>
|
|
241
|
-
<
|
|
241
|
+
<ReferralTracker publishableKey={process.env.NEXT_PUBLIC_BLOSSU_KEY!}>{children}</ReferralTracker>
|
|
242
242
|
</body>
|
|
243
243
|
</html>
|
|
244
244
|
);
|
package/dist/blossu.d.ts
CHANGED
package/dist/blossu.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blossu.d.ts","sourceRoot":"","sources":["../src/blossu.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,QAAQ,EACT,MAAM,SAAS,CAAC;AAMjB,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,MAAM,EAAE,YAAY,CAAC;QACrB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB;CACF;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,OAAO,CAAmC;gBAEtC,MAAM,EAAE,YAAY;IAkChC,OAAO,CAAC,GAAG;IAMX,OAAO,CAAC,cAAc;
|
|
1
|
+
{"version":3,"file":"blossu.d.ts","sourceRoot":"","sources":["../src/blossu.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,QAAQ,EACT,MAAM,SAAS,CAAC;AAMjB,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,MAAM,EAAE,YAAY,CAAC;QACrB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB;CACF;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,OAAO,CAAmC;gBAEtC,MAAM,EAAE,YAAY;IAkChC,OAAO,CAAC,GAAG;IAMX,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,uBAAuB;IA0B/B,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,iBAAiB;IAazB,QAAQ,IAAI,MAAM,GAAG,IAAI;IAIzB,OAAO,IAAI,MAAM,GAAG,IAAI;IAIxB,eAAe,IAAI,YAAY,GAAG,IAAI;IAItC,WAAW,IAAI,OAAO;IAItB,aAAa,IAAI,IAAI;IASf,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAuB1C,MAAM,CAAC,IAAI,GAAE,eAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;IAiBpD,IAAI,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAmB3C,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;IAWlC,0BAA0B,IAAI,MAAM,GAAG,IAAI;IAI3C,iBAAiB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAWrC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IA8BtE,cAAc,IAAI,MAAM;IAIxB,WAAW,IAAI,QAAQ;IAIvB,wBAAwB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAKlD,4BAA4B,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAKhD,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC;CAKjD;AAID,wBAAgB,IAAI,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,CAGvD;AAED,wBAAgB,SAAS,IAAI,YAAY,GAAG,IAAI,CAE/C"}
|
package/dist/blossu.esm.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e="0.1.0",t="https://api.blossu.com",r="blossu_ref",i=30,n="ref";function s(){return`bls_${Date.now().toString(36)}_${Math.random().toString(36).substring(2,10)}`}function o(e,t,r){if("undefined"==typeof document)return;const i=new Date;i.setTime(i.getTime()+24*r*60*60*1e3);const n="https:"===window.location.protocol?"; Secure":"";document.cookie=`${e}=${encodeURIComponent(t)}; expires=${i.toUTCString()}; path=/; SameSite=Lax${n}`}function a(e){if("undefined"==typeof document)return null;const t=`${e}=`,r=document.cookie.split(";");for(let e=0;e<r.length;e++){let i=r[e];for(;" "===i.charAt(0);)i=i.substring(1,i.length);if(0===i.indexOf(t))return decodeURIComponent(i.substring(t.length,i.length))}return null}function u(e){"undefined"!=typeof document&&(document.cookie=`${e}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;`)}function l(e){if("undefined"==typeof window)return null;return new URLSearchParams(window.location.search).get(e)}function c(e,t=r,i=30){const n=s(),a={code:e.toLowerCase(),refId:n,timestamp:Date.now()};return o(t,JSON.stringify(a),i),a}function f(e=r){const t=a(e);if(!t)return null;try{return JSON.parse(t)}catch{return null}}function d(e=r){u(e)}function h(){return"undefined"==typeof navigator?{userAgent:"",language:"",timezone:""}:{userAgent:navigator.userAgent||"",language:navigator.language||"",timezone:Intl?.DateTimeFormat?.()?.resolvedOptions?.()?.timeZone||""}}function g(){return"undefined"==typeof window||"undefined"==typeof document?{url:"",referrer:"",title:""}:{url:window.location.href,referrer:document.referrer||"",title:document.title||""}}class p{constructor(e){this.processing=!1,this.timer=null,this.name=`blossu_queue_${e.name||"default"}`,this.maxAttempts=e.maxAttempts||10,this.baseDelay=e.baseDelay||1e3,this.maxDelay=e.maxDelay||3e4,this.debug=e.debug||!1,this.startProcessing(),"undefined"!=typeof window&&(window.addEventListener("online",(()=>this.startProcessing())),document.addEventListener("visibilitychange",(()=>{"visible"===document.visibilityState&&this.startProcessing()})))}log(...e){this.debug&&console.log("[Blossu:Queue]",...e)}getStorageKey(){return this.name}generateId(){return`${Date.now()}_${Math.random().toString(36).substring(2,9)}`}getQueue(){if("undefined"==typeof localStorage)return[];try{const e=localStorage.getItem(this.getStorageKey());return e?JSON.parse(e):[]}catch(e){return this.log("Error reading queue:",e),[]}}saveQueue(e){if("undefined"!=typeof localStorage)try{0===e.length?localStorage.removeItem(this.getStorageKey()):localStorage.setItem(this.getStorageKey(),JSON.stringify(e))}catch(e){this.log("Error saving queue:",e)}}calculateBackoff(e){const t=this.baseDelay*Math.pow(2,e-1),r=.3*Math.random()*t,i=Math.min(t+r,this.maxDelay);return Math.round(i)}push(e,t,r){const i=this.getQueue(),n={id:this.generateId(),event:e,endpoint:t,payload:r,attemptNumber:0,maxAttempts:this.maxAttempts,createdAt:Date.now(),nextRetryAt:Date.now()};i.push(n),this.saveQueue(i),this.log("Added to queue:",n.id,e),this.startProcessing()}async processItem(e){this.log("Processing item:",e.id,"attempt:",e.attemptNumber+1);try{const t=await fetch(e.endpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:e.payload,keepalive:!0});return t.ok?(this.log("Successfully sent:",e.id),!0):t.status>=400&&t.status<500&&408!==t.status&&429!==t.status?(this.log("Client error, not retrying:",e.id,t.status),!0):(this.log("Server error, will retry:",e.id,t.status),!1)}catch(t){return this.log("Network error, will retry:",e.id,t),!1}}async processQueue(){if(!this.processing)if("undefined"==typeof navigator||navigator.onLine){this.processing=!0;try{const e=this.getQueue();if(0===e.length)return void(this.processing=!1);const t=Date.now(),r=e.filter((e=>e.nextRetryAt<=t));if(0===r.length){const r=e.reduce(((e,t)=>t.nextRetryAt<e.nextRetryAt?t:e)),i=Math.max(0,r.nextRetryAt-t);return this.scheduleProcessing(i),void(this.processing=!1)}for(const e of r){e.attemptNumber++;const t=await this.processItem(e),r=this.getQueue(),i=r.findIndex((t=>t.id===e.id));if(-1!==i)if(t)r.splice(i,1),this.saveQueue(r);else if(e.attemptNumber>=e.maxAttempts)this.log("Max attempts reached, dropping:",e.id),r.splice(i,1),this.saveQueue(r);else{const t=this.calculateBackoff(e.attemptNumber);r[i].attemptNumber=e.attemptNumber,r[i].nextRetryAt=Date.now()+t,this.saveQueue(r),this.log("Scheduled retry in",t,"ms for:",e.id)}}const i=this.getQueue();if(i.length>0){const e=i.reduce(((e,t)=>t.nextRetryAt<e.nextRetryAt?t:e)),t=Math.max(0,e.nextRetryAt-Date.now());this.scheduleProcessing(t)}}finally{this.processing=!1}}else this.log("Offline, skipping processing")}scheduleProcessing(e){this.timer&&clearTimeout(this.timer),this.timer=setTimeout((()=>this.processQueue()),e)}startProcessing(){this.scheduleProcessing(0)}getQueueLength(){return this.getQueue().length}clear(){this.saveQueue([]),this.timer&&(clearTimeout(this.timer),this.timer=null)}}class m{constructor(e){this.config={apiUrl:e.apiUrl||t,publishableKey:e.publishableKey,programSlug:e.programSlug,debug:e.debug||!1,maxRetries:e.maxRetries},this.retryQueue=new p({name:e.programSlug,maxAttempts:e.maxRetries||10,debug:e.debug||!1})}log(...e){this.config.debug&&console.log("[Blossu]",...e)}getEndpoint(e){return`${this.config.apiUrl}/v1/track/${e}`}getUtmParams(){if("undefined"==typeof window)return{utmSource:"",utmMedium:"",utmCampaign:"",utmTerm:"",utmContent:""};try{const e=new URLSearchParams(window.location.search);return{utmSource:e.get("utm_source")||"",utmMedium:e.get("utm_medium")||"",utmCampaign:e.get("utm_campaign")||"",utmTerm:e.get("utm_term")||"",utmContent:e.get("utm_content")||""}}catch{return{utmSource:"",utmMedium:"",utmCampaign:"",utmTerm:"",utmContent:""}}}getMeta(){const t="undefined"!=typeof window,r=this.getUtmParams();return{url:t?window.location.href:"",referrer:t?document.referrer:"",userAgent:t?navigator.userAgent:"",language:t?navigator.language:"",timezone:t&&Intl?.DateTimeFormat?.()?.resolvedOptions?.()?.timeZone||"",timestamp:Date.now(),sdkVersion:e,utmSource:r.utmSource,utmMedium:r.utmMedium,utmCampaign:r.utmCampaign,utmTerm:r.utmTerm,utmContent:r.utmContent,windowWidth:t?window.innerWidth:0,windowHeight:t?window.innerHeight:0,screenWidth:t&&window.screen?.width||0,screenHeight:t&&window.screen?.height||0}}queueForRetry(e,t,r){this.log("Queueing for retry:",e),this.retryQueue.push(e,t,r)}async send(e,t){const r={event:e,data:t,meta:this.getMeta(),publishableKey:this.config.publishableKey};this.log("Sending event:",e,r);const i=this.getEndpoint(e),n=JSON.stringify(r);if("undefined"!=typeof navigator&&navigator.sendBeacon){const e=new Blob([n],{type:"application/json"});try{if(navigator.sendBeacon(i,e))return this.log("sendBeacon success"),!0;this.log("sendBeacon returned false (queue full), falling back to fetch")}catch(e){this.log("sendBeacon threw error, falling back to fetch:",e)}}try{const t=await fetch(i,{method:"POST",headers:{"Content-Type":"application/json"},body:n,keepalive:!0});return t.ok?(this.log("fetch success:",t.status),!0):t.status>=500||408===t.status||429===t.status?(this.log("Server error, queueing for retry:",t.status),this.queueForRetry(e,i,n),!1):(this.log("Client error, not retrying:",t.status),!1)}catch(t){return this.log("fetch error, queueing for retry:",t),this.queueForRetry(e,i,n),!1}}trackClick(e){return this.send("click",e)}trackSignup(e){return this.send("signup",e)}trackSale(e){return this.send("sale",e)}trackPageview(e){return this.send("pageview",e)}getQueueLength(){return this.retryQueue.getQueueLength()}clearQueue(){this.retryQueue.clear()}}class y{constructor(e=!1){this.refId=null,this.initialized=!1,this.debug=e}log(...e){this.debug&&console.log("[Blossu:Shopify]",...e)}setRefId(e){this.refId=e,this.updateCartAttributes(),this.initialized||(this.interceptAddToCart(),this.initialized=!0)}async updateCartAttributes(){if(this.refId)try{const e=await fetch("/cart/update.js",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({attributes:{blossu_ref_id:this.refId}})});e.ok?this.log("Updated cart attributes with refId:",this.refId):this.log("Failed to update cart attributes:",e.status)}catch(e){this.log("Failed to update cart attributes:",e)}}interceptAddToCart(){this.interceptFetch(),this.interceptFormSubmissions(),this.interceptXHR(),this.log("Interceptors initialized")}interceptFetch(){const e=window.fetch,t=()=>this.refId,r=(...e)=>this.log(...e);window.fetch=function(i,n){const s="string"==typeof i?i:i instanceof URL?i.href:i.url,o=t();if(s.includes("/cart/add")&&o&&n?.body)try{const e="string"==typeof n.body?n.body:null;if(e){const t=JSON.parse(e);t.items&&Array.isArray(t.items)?t.items=t.items.map((e=>({...e,properties:{...e.properties||{},blossu_ref_id:o}}))):t.id&&(t.properties={...t.properties||{},blossu_ref_id:o}),n.body=JSON.stringify(t),r("Injected refId into add-to-cart fetch request")}}catch{r("Could not parse add-to-cart body, skipping injection")}return e.call(window,i,n)}}interceptFormSubmissions(){const e=()=>this.refId,t=(...e)=>this.log(...e);document.addEventListener("submit",(r=>{const i=r.target,n=e();if(!i.action?.includes("/cart/add")||!n)return;let s=i.querySelector('input[name="properties[blossu_ref_id]"]');s||(s=document.createElement("input"),s.type="hidden",s.name="properties[blossu_ref_id]",i.appendChild(s)),s.value=n,t("Injected refId into form submission")}),!0)}interceptXHR(){const e=()=>this.refId,t=(...e)=>this.log(...e),r=XMLHttpRequest.prototype.open,i=XMLHttpRequest.prototype.send;XMLHttpRequest.prototype.open=function(e,t,i,n,s){return this._blossu_url="string"==typeof t?t:t.href,r.call(this,e,t,i??!0,n??null,s??null)},XMLHttpRequest.prototype.send=function(r){const n=e();if(this._blossu_url?.includes("/cart/add")&&n&&"string"==typeof r)try{const e=JSON.parse(r);e.items&&Array.isArray(e.items)?e.items=e.items.map((e=>({...e,properties:{...e.properties||{},blossu_ref_id:n}}))):e.id&&(e.properties={...e.properties||{},blossu_ref_id:n}),r=JSON.stringify(e),t("Injected refId into XHR add-to-cart request")}catch{t("Could not parse XHR body, skipping injection")}return i.call(this,r)}}async ensureCartHasRefId(){if(this.refId)try{const e=await fetch("/cart.js"),t=await e.json();t.attributes?.blossu_ref_id!==this.refId&&await this.updateCartAttributes()}catch(e){this.log("Failed to check cart:",e)}}getCartAttributes(){return this.refId?{blossu_ref_id:this.refId}:{}}getLineItemProperties(){return this.refId?{blossu_ref_id:this.refId}:{}}}class I{constructor(e){this.initialized=!1,this.referralInfo=null,this.shopify=null,this.config={publishableKey:e.publishableKey,programSlug:e.programSlug||"",apiUrl:e.apiUrl||t,trackingParam:e.trackingParam||"ref",cookieName:e.cookieName||r,cookieExpiryDays:e.cookieExpiryDays||30,debug:e.debug||!1,autoTrack:!1!==e.autoTrack,platform:e.platform||"default"},this.tracker=new m({apiUrl:this.config.apiUrl,publishableKey:this.config.publishableKey,programSlug:this.config.programSlug,debug:this.config.debug}),"shopify"===this.config.platform&&(this.shopify=new y(this.config.debug),this.log("Shopify platform integration enabled")),this.loadReferralInfo(),this.config.autoTrack&&this.autoTrackReferral(),this.exposeToWindow()}log(...e){this.config.debug&&console.log("[Blossu]",...e)}exposeToWindow(){"undefined"!=typeof window&&(window.blossu=this,this.referralInfo&&(window.blossu_ref_id=this.referralInfo.refId))}loadReferralInfo(){this.referralInfo=f(this.config.cookieName),this.referralInfo&&(this.log("Loaded referral info from cookie:",this.referralInfo),this.shopify&&this.shopify.setRefId(this.referralInfo.refId))}autoTrackReferral(){if("undefined"==typeof window)return;const e=l(this.config.trackingParam);e&&e!==this.referralInfo?.code?(this.log("Detected referral code in URL:",e),this.trackClick(e)):this.referralInfo&&(this.log("Tracking page view for existing referral:",this.referralInfo.code),this.pageview())}getRefId(){return this.referralInfo?.refId||null}getCode(){return this.referralInfo?.code||null}getReferralInfo(){return this.referralInfo}hasReferral(){return null!==this.referralInfo}clearReferral(){d(this.config.cookieName),this.referralInfo=null,"undefined"!=typeof window&&delete window.blossu_ref_id,this.log("Cleared referral info")}async trackClick(e){return this.referralInfo=c(e,this.config.cookieName,this.config.cookieExpiryDays),"undefined"!=typeof window&&(window.blossu_ref_id=this.referralInfo.refId),this.shopify&&this.shopify.setRefId(this.referralInfo.refId),this.log("Tracking click for code:",e,"refId:",this.referralInfo.refId),this.tracker.trackClick({code:this.referralInfo.code,refId:this.referralInfo.refId})}async signup(e={}){return this.referralInfo?(this.log("Tracking signup:",e),this.tracker.trackSignup({code:this.referralInfo.code,refId:this.referralInfo.refId,email:e.email,customerExternalId:e.customerExternalId,metadata:e.metadata})):(this.log("No referral info, skipping signup tracking"),!1)}async sale(e){return this.referralInfo?(this.log("Tracking sale:",e),this.tracker.trackSale({code:this.referralInfo.code,refId:this.referralInfo.refId,customerExternalId:e.customerExternalId,amount:e.amount,currency:e.currency,provider:e.provider||"custom",metadata:e.metadata})):(this.log("No referral info, skipping sale tracking"),!1)}async pageview(){return!!this.referralInfo&&this.tracker.trackPageview({code:this.referralInfo.code,refId:this.referralInfo.refId})}getStripeClientReferenceId(){return this.referralInfo?.refId||null}getStripeMetadata(){return this.referralInfo?{blossu_ref_id:this.referralInfo.refId,blossu_code:this.referralInfo.code}:{}}async getPartnerInfo(e){const t=this.config.programSlug?`/v1/public/programs/${this.config.programSlug}/referral/${encodeURIComponent(e)}`:`/v1/public/referral/${encodeURIComponent(e)}`,r=`${this.config.apiUrl}${t}`;try{const t=await fetch(r,{headers:{Authorization:`Bearer ${this.config.publishableKey}`}});if(!t.ok){if(404===t.status)return this.log("Partner info not found for code:",e),null;throw new Error(`HTTP error! status: ${t.status}`)}const i=await t.json();return this.log("Fetched partner info:",i),i}catch(e){return this.log("Error fetching partner info:",e),null}}getProgramSlug(){return this.config.programSlug}getPlatform(){return this.config.platform}getShopifyCartAttributes(){return this.referralInfo?{blossu_ref_id:this.referralInfo.refId}:{}}getShopifyLineItemProperties(){return this.referralInfo?{blossu_ref_id:this.referralInfo.refId}:{}}async ensureShopifyCartHasRefId(){this.shopify&&this.referralInfo&&await this.shopify.ensureCartHasRefId()}}let b=null;function w(e){return b=new I(e),b}function S(){return b}export{I as BlossuClient,i as COOKIE_EXPIRY_DAYS,r as COOKIE_NAME,t as DEFAULT_API_URL,y as ShopifyIntegration,n as TRACKING_PARAM,m as Tracker,e as VERSION,d as clearReferralInfo,I as default,u as deleteCookie,s as generateRefId,h as getBrowserInfo,S as getClient,a as getCookie,g as getPageInfo,f as getReferralInfo,l as getUrlParam,w as init,c as saveReferralInfo,o as setCookie};
|
|
1
|
+
const e="0.1.0",t="https://api.blossu.com",r="blossu_ref",i=30,n="ref";function s(){return`bls_${Date.now().toString(36)}_${Math.random().toString(36).substring(2,10)}`}function o(e,t,r){if("undefined"==typeof document)return;const i=new Date;i.setTime(i.getTime()+24*r*60*60*1e3);const n="https:"===window.location.protocol?"; Secure":"";document.cookie=`${e}=${encodeURIComponent(t)}; expires=${i.toUTCString()}; path=/; SameSite=Lax${n}`}function a(e){if("undefined"==typeof document)return null;const t=`${e}=`,r=document.cookie.split(";");for(let e=0;e<r.length;e++){let i=r[e];for(;" "===i.charAt(0);)i=i.substring(1,i.length);if(0===i.indexOf(t))return decodeURIComponent(i.substring(t.length,i.length))}return null}function u(e){"undefined"!=typeof document&&(document.cookie=`${e}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;`)}function l(e){if("undefined"==typeof window)return null;return new URLSearchParams(window.location.search).get(e)}function c(e,t=r,i=30){const n=s(),a={code:e.toLowerCase(),refId:n,timestamp:Date.now()};return o(t,JSON.stringify(a),i),a}function f(e=r){const t=a(e);if(!t)return null;try{return JSON.parse(t)}catch{return null}}function d(e=r){u(e)}function h(){return"undefined"==typeof navigator?{userAgent:"",language:"",timezone:""}:{userAgent:navigator.userAgent||"",language:navigator.language||"",timezone:Intl?.DateTimeFormat?.()?.resolvedOptions?.()?.timeZone||""}}function g(){return"undefined"==typeof window||"undefined"==typeof document?{url:"",referrer:"",title:""}:{url:window.location.href,referrer:document.referrer||"",title:document.title||""}}class p{constructor(e){this.processing=!1,this.timer=null,this.name=`blossu_queue_${e.name||"default"}`,this.maxAttempts=e.maxAttempts||10,this.baseDelay=e.baseDelay||1e3,this.maxDelay=e.maxDelay||3e4,this.debug=e.debug||!1,this.startProcessing(),"undefined"!=typeof window&&(window.addEventListener("online",(()=>this.startProcessing())),document.addEventListener("visibilitychange",(()=>{"visible"===document.visibilityState&&this.startProcessing()})))}log(...e){this.debug&&console.log("[Blossu:Queue]",...e)}getStorageKey(){return this.name}generateId(){return`${Date.now()}_${Math.random().toString(36).substring(2,9)}`}getQueue(){if("undefined"==typeof localStorage)return[];try{const e=localStorage.getItem(this.getStorageKey());return e?JSON.parse(e):[]}catch(e){return this.log("Error reading queue:",e),[]}}saveQueue(e){if("undefined"!=typeof localStorage)try{0===e.length?localStorage.removeItem(this.getStorageKey()):localStorage.setItem(this.getStorageKey(),JSON.stringify(e))}catch(e){this.log("Error saving queue:",e)}}calculateBackoff(e){const t=this.baseDelay*Math.pow(2,e-1),r=.3*Math.random()*t,i=Math.min(t+r,this.maxDelay);return Math.round(i)}push(e,t,r){const i=this.getQueue(),n={id:this.generateId(),event:e,endpoint:t,payload:r,attemptNumber:0,maxAttempts:this.maxAttempts,createdAt:Date.now(),nextRetryAt:Date.now()};i.push(n),this.saveQueue(i),this.log("Added to queue:",n.id,e),this.startProcessing()}async processItem(e){this.log("Processing item:",e.id,"attempt:",e.attemptNumber+1);try{const t=await fetch(e.endpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:e.payload,keepalive:!0});return t.ok?(this.log("Successfully sent:",e.id),!0):t.status>=400&&t.status<500&&408!==t.status&&429!==t.status?(this.log("Client error, not retrying:",e.id,t.status),!0):(this.log("Server error, will retry:",e.id,t.status),!1)}catch(t){return this.log("Network error, will retry:",e.id,t),!1}}async processQueue(){if(!this.processing)if("undefined"==typeof navigator||navigator.onLine){this.processing=!0;try{const e=this.getQueue();if(0===e.length)return void(this.processing=!1);const t=Date.now(),r=e.filter((e=>e.nextRetryAt<=t));if(0===r.length){const r=e.reduce(((e,t)=>t.nextRetryAt<e.nextRetryAt?t:e)),i=Math.max(0,r.nextRetryAt-t);return this.scheduleProcessing(i),void(this.processing=!1)}for(const e of r){e.attemptNumber++;const t=await this.processItem(e),r=this.getQueue(),i=r.findIndex((t=>t.id===e.id));if(-1!==i)if(t)r.splice(i,1),this.saveQueue(r);else if(e.attemptNumber>=e.maxAttempts)this.log("Max attempts reached, dropping:",e.id),r.splice(i,1),this.saveQueue(r);else{const t=this.calculateBackoff(e.attemptNumber);r[i].attemptNumber=e.attemptNumber,r[i].nextRetryAt=Date.now()+t,this.saveQueue(r),this.log("Scheduled retry in",t,"ms for:",e.id)}}const i=this.getQueue();if(i.length>0){const e=i.reduce(((e,t)=>t.nextRetryAt<e.nextRetryAt?t:e)),t=Math.max(0,e.nextRetryAt-Date.now());this.scheduleProcessing(t)}}finally{this.processing=!1}}else this.log("Offline, skipping processing")}scheduleProcessing(e){this.timer&&clearTimeout(this.timer),this.timer=setTimeout((()=>this.processQueue()),e)}startProcessing(){this.scheduleProcessing(0)}getQueueLength(){return this.getQueue().length}clear(){this.saveQueue([]),this.timer&&(clearTimeout(this.timer),this.timer=null)}}class m{constructor(e){this.config={apiUrl:e.apiUrl||t,publishableKey:e.publishableKey,programSlug:e.programSlug,debug:e.debug||!1,maxRetries:e.maxRetries},this.retryQueue=new p({name:e.programSlug,maxAttempts:e.maxRetries||10,debug:e.debug||!1})}log(...e){this.config.debug&&console.log("[Blossu]",...e)}getEndpoint(e){return`${this.config.apiUrl}/v1/track/${e}`}getUtmParams(){if("undefined"==typeof window)return{utmSource:"",utmMedium:"",utmCampaign:"",utmTerm:"",utmContent:""};try{const e=new URLSearchParams(window.location.search);return{utmSource:e.get("utm_source")||"",utmMedium:e.get("utm_medium")||"",utmCampaign:e.get("utm_campaign")||"",utmTerm:e.get("utm_term")||"",utmContent:e.get("utm_content")||""}}catch{return{utmSource:"",utmMedium:"",utmCampaign:"",utmTerm:"",utmContent:""}}}getMeta(){const t="undefined"!=typeof window,r=this.getUtmParams();return{url:t?window.location.href:"",referrer:t?document.referrer:"",userAgent:t?navigator.userAgent:"",language:t?navigator.language:"",timezone:t&&Intl?.DateTimeFormat?.()?.resolvedOptions?.()?.timeZone||"",timestamp:Date.now(),sdkVersion:e,utmSource:r.utmSource,utmMedium:r.utmMedium,utmCampaign:r.utmCampaign,utmTerm:r.utmTerm,utmContent:r.utmContent,windowWidth:t?window.innerWidth:0,windowHeight:t?window.innerHeight:0,screenWidth:t&&window.screen?.width||0,screenHeight:t&&window.screen?.height||0}}queueForRetry(e,t,r){this.log("Queueing for retry:",e),this.retryQueue.push(e,t,r)}async send(e,t){const r={event:e,data:t,meta:this.getMeta(),publishableKey:this.config.publishableKey};this.log("Sending event:",e,r);const i=this.getEndpoint(e),n=JSON.stringify(r);if("undefined"!=typeof navigator&&navigator.sendBeacon){const e=new Blob([n],{type:"application/json"});try{if(navigator.sendBeacon(i,e))return this.log("sendBeacon success"),!0;this.log("sendBeacon returned false (queue full), falling back to fetch")}catch(e){this.log("sendBeacon threw error, falling back to fetch:",e)}}try{const t=await fetch(i,{method:"POST",headers:{"Content-Type":"application/json"},body:n,keepalive:!0});return t.ok?(this.log("fetch success:",t.status),!0):t.status>=500||408===t.status||429===t.status?(this.log("Server error, queueing for retry:",t.status),this.queueForRetry(e,i,n),!1):(this.log("Client error, not retrying:",t.status),!1)}catch(t){return this.log("fetch error, queueing for retry:",t),this.queueForRetry(e,i,n),!1}}trackClick(e){return this.send("click",e)}trackSignup(e){return this.send("signup",e)}trackSale(e){return this.send("sale",e)}trackPageview(e){return this.send("pageview",e)}getQueueLength(){return this.retryQueue.getQueueLength()}clearQueue(){this.retryQueue.clear()}}class y{constructor(e=!1){this.refId=null,this.initialized=!1,this.debug=e}log(...e){this.debug&&console.log("[Blossu:Shopify]",...e)}setRefId(e){this.refId=e,this.updateCartAttributes(),this.initialized||(this.interceptAddToCart(),this.initialized=!0)}async updateCartAttributes(){if(this.refId)try{const e=await fetch("/cart/update.js",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({attributes:{blossu_ref_id:this.refId}})});e.ok?this.log("Updated cart attributes with refId:",this.refId):this.log("Failed to update cart attributes:",e.status)}catch(e){this.log("Failed to update cart attributes:",e)}}interceptAddToCart(){this.interceptFetch(),this.interceptFormSubmissions(),this.interceptXHR(),this.log("Interceptors initialized")}interceptFetch(){const e=window.fetch,t=()=>this.refId,r=(...e)=>this.log(...e);window.fetch=function(i,n){const s="string"==typeof i?i:i instanceof URL?i.href:i.url,o=t();if(s.includes("/cart/add")&&o&&n?.body)try{const e="string"==typeof n.body?n.body:null;if(e){const t=JSON.parse(e);t.items&&Array.isArray(t.items)?t.items=t.items.map((e=>({...e,properties:{...e.properties||{},blossu_ref_id:o}}))):t.id&&(t.properties={...t.properties||{},blossu_ref_id:o}),n.body=JSON.stringify(t),r("Injected refId into add-to-cart fetch request")}}catch{r("Could not parse add-to-cart body, skipping injection")}return e.call(window,i,n)}}interceptFormSubmissions(){const e=()=>this.refId,t=(...e)=>this.log(...e);document.addEventListener("submit",(r=>{const i=r.target,n=e();if(!i.action?.includes("/cart/add")||!n)return;let s=i.querySelector('input[name="properties[blossu_ref_id]"]');s||(s=document.createElement("input"),s.type="hidden",s.name="properties[blossu_ref_id]",i.appendChild(s)),s.value=n,t("Injected refId into form submission")}),!0)}interceptXHR(){const e=()=>this.refId,t=(...e)=>this.log(...e),r=XMLHttpRequest.prototype.open,i=XMLHttpRequest.prototype.send;XMLHttpRequest.prototype.open=function(e,t,i,n,s){return this._blossu_url="string"==typeof t?t:t.href,r.call(this,e,t,i??!0,n??null,s??null)},XMLHttpRequest.prototype.send=function(r){const n=e();if(this._blossu_url?.includes("/cart/add")&&n&&"string"==typeof r)try{const e=JSON.parse(r);e.items&&Array.isArray(e.items)?e.items=e.items.map((e=>({...e,properties:{...e.properties||{},blossu_ref_id:n}}))):e.id&&(e.properties={...e.properties||{},blossu_ref_id:n}),r=JSON.stringify(e),t("Injected refId into XHR add-to-cart request")}catch{t("Could not parse XHR body, skipping injection")}return i.call(this,r)}}async ensureCartHasRefId(){if(this.refId)try{const e=await fetch("/cart.js"),t=await e.json();t.attributes?.blossu_ref_id!==this.refId&&await this.updateCartAttributes()}catch(e){this.log("Failed to check cart:",e)}}getCartAttributes(){return this.refId?{blossu_ref_id:this.refId}:{}}getLineItemProperties(){return this.refId?{blossu_ref_id:this.refId}:{}}}class I{constructor(e){this.initialized=!1,this.referralInfo=null,this.shopify=null,this.config={publishableKey:e.publishableKey,programSlug:e.programSlug||"",apiUrl:e.apiUrl||t,trackingParam:e.trackingParam||"ref",cookieName:e.cookieName||r,cookieExpiryDays:e.cookieExpiryDays||30,debug:e.debug||!1,autoTrack:!1!==e.autoTrack,platform:e.platform||"default"},this.tracker=new m({apiUrl:this.config.apiUrl,publishableKey:this.config.publishableKey,programSlug:this.config.programSlug,debug:this.config.debug}),"shopify"===this.config.platform&&(this.shopify=new y(this.config.debug),this.log("Shopify platform integration enabled")),this.loadReferralInfo(),this.config.autoTrack&&this.autoTrackReferral(),this.exposeToWindow()}log(...e){this.config.debug&&console.log("[Blossu]",...e)}exposeToWindow(){"undefined"!=typeof window&&(window.blossu=this,this.referralInfo&&(window.blossu_ref_id=this.referralInfo.refId),this.sendVerificationMessage())}sendVerificationMessage(){if("undefined"!=typeof window)try{const t=new URLSearchParams(window.location.search);"1"===t.get("blossu_verify")&&window.opener&&(this.log("Sending verification message to opener"),window.opener.postMessage({type:"BLOSSU_SCRIPT_LOADED",programId:this.config.programSlug,publishableKey:this.config.publishableKey,version:e,timestamp:Date.now()},"*"))}catch(e){this.log("Error sending verification message:",e)}}loadReferralInfo(){this.referralInfo=f(this.config.cookieName),this.referralInfo&&(this.log("Loaded referral info from cookie:",this.referralInfo),this.shopify&&this.shopify.setRefId(this.referralInfo.refId))}autoTrackReferral(){if("undefined"==typeof window)return;const e=l(this.config.trackingParam);e&&e!==this.referralInfo?.code?(this.log("Detected referral code in URL:",e),this.trackClick(e)):this.referralInfo&&(this.log("Tracking page view for existing referral:",this.referralInfo.code),this.pageview())}getRefId(){return this.referralInfo?.refId||null}getCode(){return this.referralInfo?.code||null}getReferralInfo(){return this.referralInfo}hasReferral(){return null!==this.referralInfo}clearReferral(){d(this.config.cookieName),this.referralInfo=null,"undefined"!=typeof window&&delete window.blossu_ref_id,this.log("Cleared referral info")}async trackClick(e){return this.referralInfo=c(e,this.config.cookieName,this.config.cookieExpiryDays),"undefined"!=typeof window&&(window.blossu_ref_id=this.referralInfo.refId),this.shopify&&this.shopify.setRefId(this.referralInfo.refId),this.log("Tracking click for code:",e,"refId:",this.referralInfo.refId),this.tracker.trackClick({code:this.referralInfo.code,refId:this.referralInfo.refId})}async signup(e={}){return this.referralInfo?(this.log("Tracking signup:",e),this.tracker.trackSignup({code:this.referralInfo.code,refId:this.referralInfo.refId,email:e.email,customerExternalId:e.customerExternalId,metadata:e.metadata})):(this.log("No referral info, skipping signup tracking"),!1)}async sale(e){return this.referralInfo?(this.log("Tracking sale:",e),this.tracker.trackSale({code:this.referralInfo.code,refId:this.referralInfo.refId,customerExternalId:e.customerExternalId,amount:e.amount,currency:e.currency,provider:e.provider||"custom",metadata:e.metadata})):(this.log("No referral info, skipping sale tracking"),!1)}async pageview(){return!!this.referralInfo&&this.tracker.trackPageview({code:this.referralInfo.code,refId:this.referralInfo.refId})}getStripeClientReferenceId(){return this.referralInfo?.refId||null}getStripeMetadata(){return this.referralInfo?{blossu_ref_id:this.referralInfo.refId,blossu_code:this.referralInfo.code}:{}}async getPartnerInfo(e){const t=this.config.programSlug?`/v1/public/programs/${this.config.programSlug}/referral/${encodeURIComponent(e)}`:`/v1/public/referral/${encodeURIComponent(e)}`,r=`${this.config.apiUrl}${t}`;try{const t=await fetch(r,{headers:{Authorization:`Bearer ${this.config.publishableKey}`}});if(!t.ok){if(404===t.status)return this.log("Partner info not found for code:",e),null;throw new Error(`HTTP error! status: ${t.status}`)}const i=await t.json();return this.log("Fetched partner info:",i),i}catch(e){return this.log("Error fetching partner info:",e),null}}getProgramSlug(){return this.config.programSlug}getPlatform(){return this.config.platform}getShopifyCartAttributes(){return this.referralInfo?{blossu_ref_id:this.referralInfo.refId}:{}}getShopifyLineItemProperties(){return this.referralInfo?{blossu_ref_id:this.referralInfo.refId}:{}}async ensureShopifyCartHasRefId(){this.shopify&&this.referralInfo&&await this.shopify.ensureCartHasRefId()}}let w=null;function b(e){return w=new I(e),w}function S(){return w}export{I as BlossuClient,i as COOKIE_EXPIRY_DAYS,r as COOKIE_NAME,t as DEFAULT_API_URL,y as ShopifyIntegration,n as TRACKING_PARAM,m as Tracker,e as VERSION,d as clearReferralInfo,I as default,u as deleteCookie,s as generateRefId,h as getBrowserInfo,S as getClient,a as getCookie,g as getPageInfo,f as getReferralInfo,l as getUrlParam,b as init,c as saveReferralInfo,o as setCookie};
|
|
2
2
|
//# sourceMappingURL=blossu.esm.js.map
|
package/dist/blossu.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blossu.esm.js","sources":["../src/constants.ts","../src/utils.ts","../src/retry-queue.ts","../src/tracker.ts","../src/shopify.ts","../src/blossu.ts"],"sourcesContent":[null,null,null,null,null,null],"names":["VERSION","DEFAULT_API_URL","COOKIE_NAME","COOKIE_EXPIRY_DAYS","TRACKING_PARAM","generateRefId","Date","now","toString","Math","random","substring","setCookie","name","value","days","document","expires","setTime","getTime","secure","window","location","protocol","cookie","encodeURIComponent","toUTCString","getCookie","nameEQ","cookies","split","i","length","charAt","indexOf","decodeURIComponent","deleteCookie","getUrlParam","param","URLSearchParams","search","get","saveReferralInfo","code","cookieName","expiryDays","refId","info","toLowerCase","timestamp","JSON","stringify","getReferralInfo","parse","clearReferralInfo","getBrowserInfo","navigator","userAgent","language","timezone","Intl","DateTimeFormat","resolvedOptions","timeZone","getPageInfo","url","referrer","title","href","RetryQueue","constructor","config","this","processing","timer","maxAttempts","baseDelay","maxDelay","debug","startProcessing","addEventListener","visibilityState","log","args","console","getStorageKey","generateId","getQueue","localStorage","data","getItem","error","saveQueue","queue","removeItem","setItem","calculateBackoff","attemptNumber","exponentialDelay","pow","jitter","delay","min","round","push","event","endpoint","payload","item","id","createdAt","nextRetryAt","processItem","response","fetch","method","headers","body","keepalive","ok","status","processQueue","onLine","readyItems","filter","nextItem","reduce","max","scheduleProcessing","success","currentQueue","index","findIndex","q","splice","backoff","remainingQueue","clearTimeout","setTimeout","getQueueLength","clear","Tracker","apiUrl","publishableKey","programSlug","maxRetries","retryQueue","getEndpoint","getUtmParams","utmSource","utmMedium","utmCampaign","utmTerm","utmContent","params","getMeta","isBrowser","utmParams","sdkVersion","windowWidth","innerWidth","windowHeight","innerHeight","screenWidth","screen","width","screenHeight","height","queueForRetry","send","meta","sendBeacon","blob","Blob","type","trackClick","trackSignup","trackSale","trackPageview","clearQueue","ShopifyIntegration","initialized","setRefId","updateCartAttributes","interceptAddToCart","attributes","blossu_ref_id","interceptFetch","interceptFormSubmissions","interceptXHR","originalFetch","getRefId","logMessage","input","init","URL","currentRefId","includes","bodyString","items","Array","isArray","map","properties","call","e","form","target","action","querySelector","createElement","appendChild","originalOpen","XMLHttpRequest","prototype","open","originalSend","async","username","password","_blossu_url","parsed","ensureCartHasRefId","cart","json","getCartAttributes","getLineItemProperties","BlossuClient","referralInfo","shopify","trackingParam","cookieExpiryDays","autoTrack","platform","tracker","loadReferralInfo","autoTrackReferral","exposeToWindow","blossu","pageview","getCode","hasReferral","clearReferral","signup","email","customerExternalId","metadata","sale","amount","currency","provider","getStripeClientReferenceId","getStripeMetadata","blossu_code","getPartnerInfo","programPath","Authorization","Error","getProgramSlug","getPlatform","getShopifyCartAttributes","getShopifyLineItemProperties","ensureShopifyCartHasRefId","defaultClient","getClient"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"blossu.esm.js","sources":["../src/constants.ts","../src/utils.ts","../src/retry-queue.ts","../src/tracker.ts","../src/shopify.ts","../src/blossu.ts"],"sourcesContent":[null,null,null,null,null,null],"names":["VERSION","DEFAULT_API_URL","COOKIE_NAME","COOKIE_EXPIRY_DAYS","TRACKING_PARAM","generateRefId","Date","now","toString","Math","random","substring","setCookie","name","value","days","document","expires","setTime","getTime","secure","window","location","protocol","cookie","encodeURIComponent","toUTCString","getCookie","nameEQ","cookies","split","i","length","charAt","indexOf","decodeURIComponent","deleteCookie","getUrlParam","param","URLSearchParams","search","get","saveReferralInfo","code","cookieName","expiryDays","refId","info","toLowerCase","timestamp","JSON","stringify","getReferralInfo","parse","clearReferralInfo","getBrowserInfo","navigator","userAgent","language","timezone","Intl","DateTimeFormat","resolvedOptions","timeZone","getPageInfo","url","referrer","title","href","RetryQueue","constructor","config","this","processing","timer","maxAttempts","baseDelay","maxDelay","debug","startProcessing","addEventListener","visibilityState","log","args","console","getStorageKey","generateId","getQueue","localStorage","data","getItem","error","saveQueue","queue","removeItem","setItem","calculateBackoff","attemptNumber","exponentialDelay","pow","jitter","delay","min","round","push","event","endpoint","payload","item","id","createdAt","nextRetryAt","processItem","response","fetch","method","headers","body","keepalive","ok","status","processQueue","onLine","readyItems","filter","nextItem","reduce","max","scheduleProcessing","success","currentQueue","index","findIndex","q","splice","backoff","remainingQueue","clearTimeout","setTimeout","getQueueLength","clear","Tracker","apiUrl","publishableKey","programSlug","maxRetries","retryQueue","getEndpoint","getUtmParams","utmSource","utmMedium","utmCampaign","utmTerm","utmContent","params","getMeta","isBrowser","utmParams","sdkVersion","windowWidth","innerWidth","windowHeight","innerHeight","screenWidth","screen","width","screenHeight","height","queueForRetry","send","meta","sendBeacon","blob","Blob","type","trackClick","trackSignup","trackSale","trackPageview","clearQueue","ShopifyIntegration","initialized","setRefId","updateCartAttributes","interceptAddToCart","attributes","blossu_ref_id","interceptFetch","interceptFormSubmissions","interceptXHR","originalFetch","getRefId","logMessage","input","init","URL","currentRefId","includes","bodyString","items","Array","isArray","map","properties","call","e","form","target","action","querySelector","createElement","appendChild","originalOpen","XMLHttpRequest","prototype","open","originalSend","async","username","password","_blossu_url","parsed","ensureCartHasRefId","cart","json","getCartAttributes","getLineItemProperties","BlossuClient","referralInfo","shopify","trackingParam","cookieExpiryDays","autoTrack","platform","tracker","loadReferralInfo","autoTrackReferral","exposeToWindow","blossu","sendVerificationMessage","opener","postMessage","programId","version","pageview","getCode","hasReferral","clearReferral","signup","email","customerExternalId","metadata","sale","amount","currency","provider","getStripeClientReferenceId","getStripeMetadata","blossu_code","getPartnerInfo","programPath","Authorization","Error","getProgramSlug","getPlatform","getShopifyCartAttributes","getShopifyLineItemProperties","ensureShopifyCartHasRefId","defaultClient","getClient"],"mappings":"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"}
|
package/dist/blossu.js
CHANGED
|
@@ -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).Blossu={})}(this,(function(e){"use strict";const t="0.1.0",r="https://api.blossu.com",i="blossu_ref";function n(){return`bls_${Date.now().toString(36)}_${Math.random().toString(36).substring(2,10)}`}function o(e,t,r){if("undefined"==typeof document)return;const i=new Date;i.setTime(i.getTime()+24*r*60*60*1e3);const n="https:"===window.location.protocol?"; Secure":"";document.cookie=`${e}=${encodeURIComponent(t)}; expires=${i.toUTCString()}; path=/; SameSite=Lax${n}`}function s(e){if("undefined"==typeof document)return null;const t=`${e}=`,r=document.cookie.split(";");for(let e=0;e<r.length;e++){let i=r[e];for(;" "===i.charAt(0);)i=i.substring(1,i.length);if(0===i.indexOf(t))return decodeURIComponent(i.substring(t.length,i.length))}return null}function a(e){"undefined"!=typeof document&&(document.cookie=`${e}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;`)}function u(e){if("undefined"==typeof window)return null;return new URLSearchParams(window.location.search).get(e)}function l(e,t=i,r=30){const s=n(),a={code:e.toLowerCase(),refId:s,timestamp:Date.now()};return o(t,JSON.stringify(a),r),a}function c(e=i){const t=s(e);if(!t)return null;try{return JSON.parse(t)}catch{return null}}function f(e=i){a(e)}class d{constructor(e){this.processing=!1,this.timer=null,this.name=`blossu_queue_${e.name||"default"}`,this.maxAttempts=e.maxAttempts||10,this.baseDelay=e.baseDelay||1e3,this.maxDelay=e.maxDelay||3e4,this.debug=e.debug||!1,this.startProcessing(),"undefined"!=typeof window&&(window.addEventListener("online",(()=>this.startProcessing())),document.addEventListener("visibilitychange",(()=>{"visible"===document.visibilityState&&this.startProcessing()})))}log(...e){this.debug&&console.log("[Blossu:Queue]",...e)}getStorageKey(){return this.name}generateId(){return`${Date.now()}_${Math.random().toString(36).substring(2,9)}`}getQueue(){if("undefined"==typeof localStorage)return[];try{const e=localStorage.getItem(this.getStorageKey());return e?JSON.parse(e):[]}catch(e){return this.log("Error reading queue:",e),[]}}saveQueue(e){if("undefined"!=typeof localStorage)try{0===e.length?localStorage.removeItem(this.getStorageKey()):localStorage.setItem(this.getStorageKey(),JSON.stringify(e))}catch(e){this.log("Error saving queue:",e)}}calculateBackoff(e){const t=this.baseDelay*Math.pow(2,e-1),r=.3*Math.random()*t,i=Math.min(t+r,this.maxDelay);return Math.round(i)}push(e,t,r){const i=this.getQueue(),n={id:this.generateId(),event:e,endpoint:t,payload:r,attemptNumber:0,maxAttempts:this.maxAttempts,createdAt:Date.now(),nextRetryAt:Date.now()};i.push(n),this.saveQueue(i),this.log("Added to queue:",n.id,e),this.startProcessing()}async processItem(e){this.log("Processing item:",e.id,"attempt:",e.attemptNumber+1);try{const t=await fetch(e.endpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:e.payload,keepalive:!0});return t.ok?(this.log("Successfully sent:",e.id),!0):t.status>=400&&t.status<500&&408!==t.status&&429!==t.status?(this.log("Client error, not retrying:",e.id,t.status),!0):(this.log("Server error, will retry:",e.id,t.status),!1)}catch(t){return this.log("Network error, will retry:",e.id,t),!1}}async processQueue(){if(!this.processing)if("undefined"==typeof navigator||navigator.onLine){this.processing=!0;try{const e=this.getQueue();if(0===e.length)return void(this.processing=!1);const t=Date.now(),r=e.filter((e=>e.nextRetryAt<=t));if(0===r.length){const r=e.reduce(((e,t)=>t.nextRetryAt<e.nextRetryAt?t:e)),i=Math.max(0,r.nextRetryAt-t);return this.scheduleProcessing(i),void(this.processing=!1)}for(const e of r){e.attemptNumber++;const t=await this.processItem(e),r=this.getQueue(),i=r.findIndex((t=>t.id===e.id));if(-1!==i)if(t)r.splice(i,1),this.saveQueue(r);else if(e.attemptNumber>=e.maxAttempts)this.log("Max attempts reached, dropping:",e.id),r.splice(i,1),this.saveQueue(r);else{const t=this.calculateBackoff(e.attemptNumber);r[i].attemptNumber=e.attemptNumber,r[i].nextRetryAt=Date.now()+t,this.saveQueue(r),this.log("Scheduled retry in",t,"ms for:",e.id)}}const i=this.getQueue();if(i.length>0){const e=i.reduce(((e,t)=>t.nextRetryAt<e.nextRetryAt?t:e)),t=Math.max(0,e.nextRetryAt-Date.now());this.scheduleProcessing(t)}}finally{this.processing=!1}}else this.log("Offline, skipping processing")}scheduleProcessing(e){this.timer&&clearTimeout(this.timer),this.timer=setTimeout((()=>this.processQueue()),e)}startProcessing(){this.scheduleProcessing(0)}getQueueLength(){return this.getQueue().length}clear(){this.saveQueue([]),this.timer&&(clearTimeout(this.timer),this.timer=null)}}class h{constructor(e){this.config={apiUrl:e.apiUrl||r,publishableKey:e.publishableKey,programSlug:e.programSlug,debug:e.debug||!1,maxRetries:e.maxRetries},this.retryQueue=new d({name:e.programSlug,maxAttempts:e.maxRetries||10,debug:e.debug||!1})}log(...e){this.config.debug&&console.log("[Blossu]",...e)}getEndpoint(e){return`${this.config.apiUrl}/v1/track/${e}`}getUtmParams(){if("undefined"==typeof window)return{utmSource:"",utmMedium:"",utmCampaign:"",utmTerm:"",utmContent:""};try{const e=new URLSearchParams(window.location.search);return{utmSource:e.get("utm_source")||"",utmMedium:e.get("utm_medium")||"",utmCampaign:e.get("utm_campaign")||"",utmTerm:e.get("utm_term")||"",utmContent:e.get("utm_content")||""}}catch{return{utmSource:"",utmMedium:"",utmCampaign:"",utmTerm:"",utmContent:""}}}getMeta(){const e="undefined"!=typeof window,r=this.getUtmParams();return{url:e?window.location.href:"",referrer:e?document.referrer:"",userAgent:e?navigator.userAgent:"",language:e?navigator.language:"",timezone:e&&Intl?.DateTimeFormat?.()?.resolvedOptions?.()?.timeZone||"",timestamp:Date.now(),sdkVersion:t,utmSource:r.utmSource,utmMedium:r.utmMedium,utmCampaign:r.utmCampaign,utmTerm:r.utmTerm,utmContent:r.utmContent,windowWidth:e?window.innerWidth:0,windowHeight:e?window.innerHeight:0,screenWidth:e&&window.screen?.width||0,screenHeight:e&&window.screen?.height||0}}queueForRetry(e,t,r){this.log("Queueing for retry:",e),this.retryQueue.push(e,t,r)}async send(e,t){const r={event:e,data:t,meta:this.getMeta(),publishableKey:this.config.publishableKey};this.log("Sending event:",e,r);const i=this.getEndpoint(e),n=JSON.stringify(r);if("undefined"!=typeof navigator&&navigator.sendBeacon){const e=new Blob([n],{type:"application/json"});try{if(navigator.sendBeacon(i,e))return this.log("sendBeacon success"),!0;this.log("sendBeacon returned false (queue full), falling back to fetch")}catch(e){this.log("sendBeacon threw error, falling back to fetch:",e)}}try{const t=await fetch(i,{method:"POST",headers:{"Content-Type":"application/json"},body:n,keepalive:!0});return t.ok?(this.log("fetch success:",t.status),!0):t.status>=500||408===t.status||429===t.status?(this.log("Server error, queueing for retry:",t.status),this.queueForRetry(e,i,n),!1):(this.log("Client error, not retrying:",t.status),!1)}catch(t){return this.log("fetch error, queueing for retry:",t),this.queueForRetry(e,i,n),!1}}trackClick(e){return this.send("click",e)}trackSignup(e){return this.send("signup",e)}trackSale(e){return this.send("sale",e)}trackPageview(e){return this.send("pageview",e)}getQueueLength(){return this.retryQueue.getQueueLength()}clearQueue(){this.retryQueue.clear()}}class g{constructor(e=!1){this.refId=null,this.initialized=!1,this.debug=e}log(...e){this.debug&&console.log("[Blossu:Shopify]",...e)}setRefId(e){this.refId=e,this.updateCartAttributes(),this.initialized||(this.interceptAddToCart(),this.initialized=!0)}async updateCartAttributes(){if(this.refId)try{const e=await fetch("/cart/update.js",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({attributes:{blossu_ref_id:this.refId}})});e.ok?this.log("Updated cart attributes with refId:",this.refId):this.log("Failed to update cart attributes:",e.status)}catch(e){this.log("Failed to update cart attributes:",e)}}interceptAddToCart(){this.interceptFetch(),this.interceptFormSubmissions(),this.interceptXHR(),this.log("Interceptors initialized")}interceptFetch(){const e=window.fetch,t=()=>this.refId,r=(...e)=>this.log(...e);window.fetch=function(i,n){const o="string"==typeof i?i:i instanceof URL?i.href:i.url,s=t();if(o.includes("/cart/add")&&s&&n?.body)try{const e="string"==typeof n.body?n.body:null;if(e){const t=JSON.parse(e);t.items&&Array.isArray(t.items)?t.items=t.items.map((e=>({...e,properties:{...e.properties||{},blossu_ref_id:s}}))):t.id&&(t.properties={...t.properties||{},blossu_ref_id:s}),n.body=JSON.stringify(t),r("Injected refId into add-to-cart fetch request")}}catch{r("Could not parse add-to-cart body, skipping injection")}return e.call(window,i,n)}}interceptFormSubmissions(){const e=()=>this.refId,t=(...e)=>this.log(...e);document.addEventListener("submit",(r=>{const i=r.target,n=e();if(!i.action?.includes("/cart/add")||!n)return;let o=i.querySelector('input[name="properties[blossu_ref_id]"]');o||(o=document.createElement("input"),o.type="hidden",o.name="properties[blossu_ref_id]",i.appendChild(o)),o.value=n,t("Injected refId into form submission")}),!0)}interceptXHR(){const e=()=>this.refId,t=(...e)=>this.log(...e),r=XMLHttpRequest.prototype.open,i=XMLHttpRequest.prototype.send;XMLHttpRequest.prototype.open=function(e,t,i,n,o){return this._blossu_url="string"==typeof t?t:t.href,r.call(this,e,t,i??!0,n??null,o??null)},XMLHttpRequest.prototype.send=function(r){const n=e();if(this._blossu_url?.includes("/cart/add")&&n&&"string"==typeof r)try{const e=JSON.parse(r);e.items&&Array.isArray(e.items)?e.items=e.items.map((e=>({...e,properties:{...e.properties||{},blossu_ref_id:n}}))):e.id&&(e.properties={...e.properties||{},blossu_ref_id:n}),r=JSON.stringify(e),t("Injected refId into XHR add-to-cart request")}catch{t("Could not parse XHR body, skipping injection")}return i.call(this,r)}}async ensureCartHasRefId(){if(this.refId)try{const e=await fetch("/cart.js"),t=await e.json();t.attributes?.blossu_ref_id!==this.refId&&await this.updateCartAttributes()}catch(e){this.log("Failed to check cart:",e)}}getCartAttributes(){return this.refId?{blossu_ref_id:this.refId}:{}}getLineItemProperties(){return this.refId?{blossu_ref_id:this.refId}:{}}}class p{constructor(e){this.initialized=!1,this.referralInfo=null,this.shopify=null,this.config={publishableKey:e.publishableKey,programSlug:e.programSlug||"",apiUrl:e.apiUrl||r,trackingParam:e.trackingParam||"ref",cookieName:e.cookieName||i,cookieExpiryDays:e.cookieExpiryDays||30,debug:e.debug||!1,autoTrack:!1!==e.autoTrack,platform:e.platform||"default"},this.tracker=new h({apiUrl:this.config.apiUrl,publishableKey:this.config.publishableKey,programSlug:this.config.programSlug,debug:this.config.debug}),"shopify"===this.config.platform&&(this.shopify=new g(this.config.debug),this.log("Shopify platform integration enabled")),this.loadReferralInfo(),this.config.autoTrack&&this.autoTrackReferral(),this.exposeToWindow()}log(...e){this.config.debug&&console.log("[Blossu]",...e)}exposeToWindow(){"undefined"!=typeof window&&(window.blossu=this,this.referralInfo&&(window.blossu_ref_id=this.referralInfo.refId))}loadReferralInfo(){this.referralInfo=c(this.config.cookieName),this.referralInfo&&(this.log("Loaded referral info from cookie:",this.referralInfo),this.shopify&&this.shopify.setRefId(this.referralInfo.refId))}autoTrackReferral(){if("undefined"==typeof window)return;const e=u(this.config.trackingParam);e&&e!==this.referralInfo?.code?(this.log("Detected referral code in URL:",e),this.trackClick(e)):this.referralInfo&&(this.log("Tracking page view for existing referral:",this.referralInfo.code),this.pageview())}getRefId(){return this.referralInfo?.refId||null}getCode(){return this.referralInfo?.code||null}getReferralInfo(){return this.referralInfo}hasReferral(){return null!==this.referralInfo}clearReferral(){f(this.config.cookieName),this.referralInfo=null,"undefined"!=typeof window&&delete window.blossu_ref_id,this.log("Cleared referral info")}async trackClick(e){return this.referralInfo=l(e,this.config.cookieName,this.config.cookieExpiryDays),"undefined"!=typeof window&&(window.blossu_ref_id=this.referralInfo.refId),this.shopify&&this.shopify.setRefId(this.referralInfo.refId),this.log("Tracking click for code:",e,"refId:",this.referralInfo.refId),this.tracker.trackClick({code:this.referralInfo.code,refId:this.referralInfo.refId})}async signup(e={}){return this.referralInfo?(this.log("Tracking signup:",e),this.tracker.trackSignup({code:this.referralInfo.code,refId:this.referralInfo.refId,email:e.email,customerExternalId:e.customerExternalId,metadata:e.metadata})):(this.log("No referral info, skipping signup tracking"),!1)}async sale(e){return this.referralInfo?(this.log("Tracking sale:",e),this.tracker.trackSale({code:this.referralInfo.code,refId:this.referralInfo.refId,customerExternalId:e.customerExternalId,amount:e.amount,currency:e.currency,provider:e.provider||"custom",metadata:e.metadata})):(this.log("No referral info, skipping sale tracking"),!1)}async pageview(){return!!this.referralInfo&&this.tracker.trackPageview({code:this.referralInfo.code,refId:this.referralInfo.refId})}getStripeClientReferenceId(){return this.referralInfo?.refId||null}getStripeMetadata(){return this.referralInfo?{blossu_ref_id:this.referralInfo.refId,blossu_code:this.referralInfo.code}:{}}async getPartnerInfo(e){const t=this.config.programSlug?`/v1/public/programs/${this.config.programSlug}/referral/${encodeURIComponent(e)}`:`/v1/public/referral/${encodeURIComponent(e)}`,r=`${this.config.apiUrl}${t}`;try{const t=await fetch(r,{headers:{Authorization:`Bearer ${this.config.publishableKey}`}});if(!t.ok){if(404===t.status)return this.log("Partner info not found for code:",e),null;throw new Error(`HTTP error! status: ${t.status}`)}const i=await t.json();return this.log("Fetched partner info:",i),i}catch(e){return this.log("Error fetching partner info:",e),null}}getProgramSlug(){return this.config.programSlug}getPlatform(){return this.config.platform}getShopifyCartAttributes(){return this.referralInfo?{blossu_ref_id:this.referralInfo.refId}:{}}getShopifyLineItemProperties(){return this.referralInfo?{blossu_ref_id:this.referralInfo.refId}:{}}async ensureShopifyCartHasRefId(){this.shopify&&this.referralInfo&&await this.shopify.ensureCartHasRefId()}}let m=null;e.BlossuClient=p,e.COOKIE_EXPIRY_DAYS=30,e.COOKIE_NAME=i,e.DEFAULT_API_URL=r,e.ShopifyIntegration=g,e.TRACKING_PARAM="ref",e.Tracker=h,e.VERSION=t,e.clearReferralInfo=f,e.default=p,e.deleteCookie=a,e.generateRefId=n,e.getBrowserInfo=function(){return"undefined"==typeof navigator?{userAgent:"",language:"",timezone:""}:{userAgent:navigator.userAgent||"",language:navigator.language||"",timezone:Intl?.DateTimeFormat?.()?.resolvedOptions?.()?.timeZone||""}},e.getClient=function(){return m},e.getCookie=s,e.getPageInfo=function(){return"undefined"==typeof window||"undefined"==typeof document?{url:"",referrer:"",title:""}:{url:window.location.href,referrer:document.referrer||"",title:document.title||""}},e.getReferralInfo=c,e.getUrlParam=u,e.init=function(e){return m=new p(e),m},e.saveReferralInfo=l,e.setCookie=o,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).Blossu={})}(this,(function(e){"use strict";const t="0.1.0",r="https://api.blossu.com",i="blossu_ref";function n(){return`bls_${Date.now().toString(36)}_${Math.random().toString(36).substring(2,10)}`}function o(e,t,r){if("undefined"==typeof document)return;const i=new Date;i.setTime(i.getTime()+24*r*60*60*1e3);const n="https:"===window.location.protocol?"; Secure":"";document.cookie=`${e}=${encodeURIComponent(t)}; expires=${i.toUTCString()}; path=/; SameSite=Lax${n}`}function s(e){if("undefined"==typeof document)return null;const t=`${e}=`,r=document.cookie.split(";");for(let e=0;e<r.length;e++){let i=r[e];for(;" "===i.charAt(0);)i=i.substring(1,i.length);if(0===i.indexOf(t))return decodeURIComponent(i.substring(t.length,i.length))}return null}function a(e){"undefined"!=typeof document&&(document.cookie=`${e}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;`)}function u(e){if("undefined"==typeof window)return null;return new URLSearchParams(window.location.search).get(e)}function l(e,t=i,r=30){const s=n(),a={code:e.toLowerCase(),refId:s,timestamp:Date.now()};return o(t,JSON.stringify(a),r),a}function c(e=i){const t=s(e);if(!t)return null;try{return JSON.parse(t)}catch{return null}}function f(e=i){a(e)}class d{constructor(e){this.processing=!1,this.timer=null,this.name=`blossu_queue_${e.name||"default"}`,this.maxAttempts=e.maxAttempts||10,this.baseDelay=e.baseDelay||1e3,this.maxDelay=e.maxDelay||3e4,this.debug=e.debug||!1,this.startProcessing(),"undefined"!=typeof window&&(window.addEventListener("online",(()=>this.startProcessing())),document.addEventListener("visibilitychange",(()=>{"visible"===document.visibilityState&&this.startProcessing()})))}log(...e){this.debug&&console.log("[Blossu:Queue]",...e)}getStorageKey(){return this.name}generateId(){return`${Date.now()}_${Math.random().toString(36).substring(2,9)}`}getQueue(){if("undefined"==typeof localStorage)return[];try{const e=localStorage.getItem(this.getStorageKey());return e?JSON.parse(e):[]}catch(e){return this.log("Error reading queue:",e),[]}}saveQueue(e){if("undefined"!=typeof localStorage)try{0===e.length?localStorage.removeItem(this.getStorageKey()):localStorage.setItem(this.getStorageKey(),JSON.stringify(e))}catch(e){this.log("Error saving queue:",e)}}calculateBackoff(e){const t=this.baseDelay*Math.pow(2,e-1),r=.3*Math.random()*t,i=Math.min(t+r,this.maxDelay);return Math.round(i)}push(e,t,r){const i=this.getQueue(),n={id:this.generateId(),event:e,endpoint:t,payload:r,attemptNumber:0,maxAttempts:this.maxAttempts,createdAt:Date.now(),nextRetryAt:Date.now()};i.push(n),this.saveQueue(i),this.log("Added to queue:",n.id,e),this.startProcessing()}async processItem(e){this.log("Processing item:",e.id,"attempt:",e.attemptNumber+1);try{const t=await fetch(e.endpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:e.payload,keepalive:!0});return t.ok?(this.log("Successfully sent:",e.id),!0):t.status>=400&&t.status<500&&408!==t.status&&429!==t.status?(this.log("Client error, not retrying:",e.id,t.status),!0):(this.log("Server error, will retry:",e.id,t.status),!1)}catch(t){return this.log("Network error, will retry:",e.id,t),!1}}async processQueue(){if(!this.processing)if("undefined"==typeof navigator||navigator.onLine){this.processing=!0;try{const e=this.getQueue();if(0===e.length)return void(this.processing=!1);const t=Date.now(),r=e.filter((e=>e.nextRetryAt<=t));if(0===r.length){const r=e.reduce(((e,t)=>t.nextRetryAt<e.nextRetryAt?t:e)),i=Math.max(0,r.nextRetryAt-t);return this.scheduleProcessing(i),void(this.processing=!1)}for(const e of r){e.attemptNumber++;const t=await this.processItem(e),r=this.getQueue(),i=r.findIndex((t=>t.id===e.id));if(-1!==i)if(t)r.splice(i,1),this.saveQueue(r);else if(e.attemptNumber>=e.maxAttempts)this.log("Max attempts reached, dropping:",e.id),r.splice(i,1),this.saveQueue(r);else{const t=this.calculateBackoff(e.attemptNumber);r[i].attemptNumber=e.attemptNumber,r[i].nextRetryAt=Date.now()+t,this.saveQueue(r),this.log("Scheduled retry in",t,"ms for:",e.id)}}const i=this.getQueue();if(i.length>0){const e=i.reduce(((e,t)=>t.nextRetryAt<e.nextRetryAt?t:e)),t=Math.max(0,e.nextRetryAt-Date.now());this.scheduleProcessing(t)}}finally{this.processing=!1}}else this.log("Offline, skipping processing")}scheduleProcessing(e){this.timer&&clearTimeout(this.timer),this.timer=setTimeout((()=>this.processQueue()),e)}startProcessing(){this.scheduleProcessing(0)}getQueueLength(){return this.getQueue().length}clear(){this.saveQueue([]),this.timer&&(clearTimeout(this.timer),this.timer=null)}}class h{constructor(e){this.config={apiUrl:e.apiUrl||r,publishableKey:e.publishableKey,programSlug:e.programSlug,debug:e.debug||!1,maxRetries:e.maxRetries},this.retryQueue=new d({name:e.programSlug,maxAttempts:e.maxRetries||10,debug:e.debug||!1})}log(...e){this.config.debug&&console.log("[Blossu]",...e)}getEndpoint(e){return`${this.config.apiUrl}/v1/track/${e}`}getUtmParams(){if("undefined"==typeof window)return{utmSource:"",utmMedium:"",utmCampaign:"",utmTerm:"",utmContent:""};try{const e=new URLSearchParams(window.location.search);return{utmSource:e.get("utm_source")||"",utmMedium:e.get("utm_medium")||"",utmCampaign:e.get("utm_campaign")||"",utmTerm:e.get("utm_term")||"",utmContent:e.get("utm_content")||""}}catch{return{utmSource:"",utmMedium:"",utmCampaign:"",utmTerm:"",utmContent:""}}}getMeta(){const e="undefined"!=typeof window,r=this.getUtmParams();return{url:e?window.location.href:"",referrer:e?document.referrer:"",userAgent:e?navigator.userAgent:"",language:e?navigator.language:"",timezone:e&&Intl?.DateTimeFormat?.()?.resolvedOptions?.()?.timeZone||"",timestamp:Date.now(),sdkVersion:t,utmSource:r.utmSource,utmMedium:r.utmMedium,utmCampaign:r.utmCampaign,utmTerm:r.utmTerm,utmContent:r.utmContent,windowWidth:e?window.innerWidth:0,windowHeight:e?window.innerHeight:0,screenWidth:e&&window.screen?.width||0,screenHeight:e&&window.screen?.height||0}}queueForRetry(e,t,r){this.log("Queueing for retry:",e),this.retryQueue.push(e,t,r)}async send(e,t){const r={event:e,data:t,meta:this.getMeta(),publishableKey:this.config.publishableKey};this.log("Sending event:",e,r);const i=this.getEndpoint(e),n=JSON.stringify(r);if("undefined"!=typeof navigator&&navigator.sendBeacon){const e=new Blob([n],{type:"application/json"});try{if(navigator.sendBeacon(i,e))return this.log("sendBeacon success"),!0;this.log("sendBeacon returned false (queue full), falling back to fetch")}catch(e){this.log("sendBeacon threw error, falling back to fetch:",e)}}try{const t=await fetch(i,{method:"POST",headers:{"Content-Type":"application/json"},body:n,keepalive:!0});return t.ok?(this.log("fetch success:",t.status),!0):t.status>=500||408===t.status||429===t.status?(this.log("Server error, queueing for retry:",t.status),this.queueForRetry(e,i,n),!1):(this.log("Client error, not retrying:",t.status),!1)}catch(t){return this.log("fetch error, queueing for retry:",t),this.queueForRetry(e,i,n),!1}}trackClick(e){return this.send("click",e)}trackSignup(e){return this.send("signup",e)}trackSale(e){return this.send("sale",e)}trackPageview(e){return this.send("pageview",e)}getQueueLength(){return this.retryQueue.getQueueLength()}clearQueue(){this.retryQueue.clear()}}class g{constructor(e=!1){this.refId=null,this.initialized=!1,this.debug=e}log(...e){this.debug&&console.log("[Blossu:Shopify]",...e)}setRefId(e){this.refId=e,this.updateCartAttributes(),this.initialized||(this.interceptAddToCart(),this.initialized=!0)}async updateCartAttributes(){if(this.refId)try{const e=await fetch("/cart/update.js",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({attributes:{blossu_ref_id:this.refId}})});e.ok?this.log("Updated cart attributes with refId:",this.refId):this.log("Failed to update cart attributes:",e.status)}catch(e){this.log("Failed to update cart attributes:",e)}}interceptAddToCart(){this.interceptFetch(),this.interceptFormSubmissions(),this.interceptXHR(),this.log("Interceptors initialized")}interceptFetch(){const e=window.fetch,t=()=>this.refId,r=(...e)=>this.log(...e);window.fetch=function(i,n){const o="string"==typeof i?i:i instanceof URL?i.href:i.url,s=t();if(o.includes("/cart/add")&&s&&n?.body)try{const e="string"==typeof n.body?n.body:null;if(e){const t=JSON.parse(e);t.items&&Array.isArray(t.items)?t.items=t.items.map((e=>({...e,properties:{...e.properties||{},blossu_ref_id:s}}))):t.id&&(t.properties={...t.properties||{},blossu_ref_id:s}),n.body=JSON.stringify(t),r("Injected refId into add-to-cart fetch request")}}catch{r("Could not parse add-to-cart body, skipping injection")}return e.call(window,i,n)}}interceptFormSubmissions(){const e=()=>this.refId,t=(...e)=>this.log(...e);document.addEventListener("submit",(r=>{const i=r.target,n=e();if(!i.action?.includes("/cart/add")||!n)return;let o=i.querySelector('input[name="properties[blossu_ref_id]"]');o||(o=document.createElement("input"),o.type="hidden",o.name="properties[blossu_ref_id]",i.appendChild(o)),o.value=n,t("Injected refId into form submission")}),!0)}interceptXHR(){const e=()=>this.refId,t=(...e)=>this.log(...e),r=XMLHttpRequest.prototype.open,i=XMLHttpRequest.prototype.send;XMLHttpRequest.prototype.open=function(e,t,i,n,o){return this._blossu_url="string"==typeof t?t:t.href,r.call(this,e,t,i??!0,n??null,o??null)},XMLHttpRequest.prototype.send=function(r){const n=e();if(this._blossu_url?.includes("/cart/add")&&n&&"string"==typeof r)try{const e=JSON.parse(r);e.items&&Array.isArray(e.items)?e.items=e.items.map((e=>({...e,properties:{...e.properties||{},blossu_ref_id:n}}))):e.id&&(e.properties={...e.properties||{},blossu_ref_id:n}),r=JSON.stringify(e),t("Injected refId into XHR add-to-cart request")}catch{t("Could not parse XHR body, skipping injection")}return i.call(this,r)}}async ensureCartHasRefId(){if(this.refId)try{const e=await fetch("/cart.js"),t=await e.json();t.attributes?.blossu_ref_id!==this.refId&&await this.updateCartAttributes()}catch(e){this.log("Failed to check cart:",e)}}getCartAttributes(){return this.refId?{blossu_ref_id:this.refId}:{}}getLineItemProperties(){return this.refId?{blossu_ref_id:this.refId}:{}}}class p{constructor(e){this.initialized=!1,this.referralInfo=null,this.shopify=null,this.config={publishableKey:e.publishableKey,programSlug:e.programSlug||"",apiUrl:e.apiUrl||r,trackingParam:e.trackingParam||"ref",cookieName:e.cookieName||i,cookieExpiryDays:e.cookieExpiryDays||30,debug:e.debug||!1,autoTrack:!1!==e.autoTrack,platform:e.platform||"default"},this.tracker=new h({apiUrl:this.config.apiUrl,publishableKey:this.config.publishableKey,programSlug:this.config.programSlug,debug:this.config.debug}),"shopify"===this.config.platform&&(this.shopify=new g(this.config.debug),this.log("Shopify platform integration enabled")),this.loadReferralInfo(),this.config.autoTrack&&this.autoTrackReferral(),this.exposeToWindow()}log(...e){this.config.debug&&console.log("[Blossu]",...e)}exposeToWindow(){"undefined"!=typeof window&&(window.blossu=this,this.referralInfo&&(window.blossu_ref_id=this.referralInfo.refId),this.sendVerificationMessage())}sendVerificationMessage(){if("undefined"!=typeof window)try{const e=new URLSearchParams(window.location.search);"1"===e.get("blossu_verify")&&window.opener&&(this.log("Sending verification message to opener"),window.opener.postMessage({type:"BLOSSU_SCRIPT_LOADED",programId:this.config.programSlug,publishableKey:this.config.publishableKey,version:t,timestamp:Date.now()},"*"))}catch(e){this.log("Error sending verification message:",e)}}loadReferralInfo(){this.referralInfo=c(this.config.cookieName),this.referralInfo&&(this.log("Loaded referral info from cookie:",this.referralInfo),this.shopify&&this.shopify.setRefId(this.referralInfo.refId))}autoTrackReferral(){if("undefined"==typeof window)return;const e=u(this.config.trackingParam);e&&e!==this.referralInfo?.code?(this.log("Detected referral code in URL:",e),this.trackClick(e)):this.referralInfo&&(this.log("Tracking page view for existing referral:",this.referralInfo.code),this.pageview())}getRefId(){return this.referralInfo?.refId||null}getCode(){return this.referralInfo?.code||null}getReferralInfo(){return this.referralInfo}hasReferral(){return null!==this.referralInfo}clearReferral(){f(this.config.cookieName),this.referralInfo=null,"undefined"!=typeof window&&delete window.blossu_ref_id,this.log("Cleared referral info")}async trackClick(e){return this.referralInfo=l(e,this.config.cookieName,this.config.cookieExpiryDays),"undefined"!=typeof window&&(window.blossu_ref_id=this.referralInfo.refId),this.shopify&&this.shopify.setRefId(this.referralInfo.refId),this.log("Tracking click for code:",e,"refId:",this.referralInfo.refId),this.tracker.trackClick({code:this.referralInfo.code,refId:this.referralInfo.refId})}async signup(e={}){return this.referralInfo?(this.log("Tracking signup:",e),this.tracker.trackSignup({code:this.referralInfo.code,refId:this.referralInfo.refId,email:e.email,customerExternalId:e.customerExternalId,metadata:e.metadata})):(this.log("No referral info, skipping signup tracking"),!1)}async sale(e){return this.referralInfo?(this.log("Tracking sale:",e),this.tracker.trackSale({code:this.referralInfo.code,refId:this.referralInfo.refId,customerExternalId:e.customerExternalId,amount:e.amount,currency:e.currency,provider:e.provider||"custom",metadata:e.metadata})):(this.log("No referral info, skipping sale tracking"),!1)}async pageview(){return!!this.referralInfo&&this.tracker.trackPageview({code:this.referralInfo.code,refId:this.referralInfo.refId})}getStripeClientReferenceId(){return this.referralInfo?.refId||null}getStripeMetadata(){return this.referralInfo?{blossu_ref_id:this.referralInfo.refId,blossu_code:this.referralInfo.code}:{}}async getPartnerInfo(e){const t=this.config.programSlug?`/v1/public/programs/${this.config.programSlug}/referral/${encodeURIComponent(e)}`:`/v1/public/referral/${encodeURIComponent(e)}`,r=`${this.config.apiUrl}${t}`;try{const t=await fetch(r,{headers:{Authorization:`Bearer ${this.config.publishableKey}`}});if(!t.ok){if(404===t.status)return this.log("Partner info not found for code:",e),null;throw new Error(`HTTP error! status: ${t.status}`)}const i=await t.json();return this.log("Fetched partner info:",i),i}catch(e){return this.log("Error fetching partner info:",e),null}}getProgramSlug(){return this.config.programSlug}getPlatform(){return this.config.platform}getShopifyCartAttributes(){return this.referralInfo?{blossu_ref_id:this.referralInfo.refId}:{}}getShopifyLineItemProperties(){return this.referralInfo?{blossu_ref_id:this.referralInfo.refId}:{}}async ensureShopifyCartHasRefId(){this.shopify&&this.referralInfo&&await this.shopify.ensureCartHasRefId()}}let m=null;e.BlossuClient=p,e.COOKIE_EXPIRY_DAYS=30,e.COOKIE_NAME=i,e.DEFAULT_API_URL=r,e.ShopifyIntegration=g,e.TRACKING_PARAM="ref",e.Tracker=h,e.VERSION=t,e.clearReferralInfo=f,e.default=p,e.deleteCookie=a,e.generateRefId=n,e.getBrowserInfo=function(){return"undefined"==typeof navigator?{userAgent:"",language:"",timezone:""}:{userAgent:navigator.userAgent||"",language:navigator.language||"",timezone:Intl?.DateTimeFormat?.()?.resolvedOptions?.()?.timeZone||""}},e.getClient=function(){return m},e.getCookie=s,e.getPageInfo=function(){return"undefined"==typeof window||"undefined"==typeof document?{url:"",referrer:"",title:""}:{url:window.location.href,referrer:document.referrer||"",title:document.title||""}},e.getReferralInfo=c,e.getUrlParam=u,e.init=function(e){return m=new p(e),m},e.saveReferralInfo=l,e.setCookie=o,Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
2
2
|
//# sourceMappingURL=blossu.js.map
|
package/dist/blossu.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blossu.js","sources":["../src/constants.ts","../src/utils.ts","../src/retry-queue.ts","../src/tracker.ts","../src/shopify.ts","../src/blossu.ts"],"sourcesContent":[null,null,null,null,null,null],"names":["VERSION","DEFAULT_API_URL","COOKIE_NAME","generateRefId","Date","now","toString","Math","random","substring","setCookie","name","value","days","document","expires","setTime","getTime","secure","window","location","protocol","cookie","encodeURIComponent","toUTCString","getCookie","nameEQ","cookies","split","i","length","charAt","indexOf","decodeURIComponent","deleteCookie","getUrlParam","param","URLSearchParams","search","get","saveReferralInfo","code","cookieName","expiryDays","refId","info","toLowerCase","timestamp","JSON","stringify","getReferralInfo","parse","clearReferralInfo","RetryQueue","constructor","config","this","processing","timer","maxAttempts","baseDelay","maxDelay","debug","startProcessing","addEventListener","visibilityState","log","args","console","getStorageKey","generateId","getQueue","localStorage","data","getItem","error","saveQueue","queue","removeItem","setItem","calculateBackoff","attemptNumber","exponentialDelay","pow","jitter","delay","min","round","push","event","endpoint","payload","item","id","createdAt","nextRetryAt","processItem","response","fetch","method","headers","body","keepalive","ok","status","processQueue","navigator","onLine","readyItems","filter","nextItem","reduce","max","scheduleProcessing","success","currentQueue","index","findIndex","q","splice","backoff","remainingQueue","clearTimeout","setTimeout","getQueueLength","clear","Tracker","apiUrl","publishableKey","programSlug","maxRetries","retryQueue","getEndpoint","getUtmParams","utmSource","utmMedium","utmCampaign","utmTerm","utmContent","params","getMeta","isBrowser","utmParams","url","href","referrer","userAgent","language","timezone","Intl","DateTimeFormat","resolvedOptions","timeZone","sdkVersion","windowWidth","innerWidth","windowHeight","innerHeight","screenWidth","screen","width","screenHeight","height","queueForRetry","send","meta","sendBeacon","blob","Blob","type","trackClick","trackSignup","trackSale","trackPageview","clearQueue","ShopifyIntegration","initialized","setRefId","updateCartAttributes","interceptAddToCart","attributes","blossu_ref_id","interceptFetch","interceptFormSubmissions","interceptXHR","originalFetch","getRefId","logMessage","input","init","URL","currentRefId","includes","bodyString","items","Array","isArray","map","properties","call","e","form","target","action","querySelector","createElement","appendChild","originalOpen","XMLHttpRequest","prototype","open","originalSend","async","username","password","_blossu_url","parsed","ensureCartHasRefId","cart","json","getCartAttributes","getLineItemProperties","BlossuClient","referralInfo","shopify","trackingParam","cookieExpiryDays","autoTrack","platform","tracker","loadReferralInfo","autoTrackReferral","exposeToWindow","blossu","pageview","getCode","hasReferral","clearReferral","signup","email","customerExternalId","metadata","sale","amount","currency","provider","getStripeClientReferenceId","getStripeMetadata","blossu_code","getPartnerInfo","programPath","Authorization","Error","getProgramSlug","getPlatform","getShopifyCartAttributes","getShopifyLineItemProperties","ensureShopifyCartHasRefId","defaultClient","title"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"blossu.js","sources":["../src/constants.ts","../src/utils.ts","../src/retry-queue.ts","../src/tracker.ts","../src/shopify.ts","../src/blossu.ts"],"sourcesContent":[null,null,null,null,null,null],"names":["VERSION","DEFAULT_API_URL","COOKIE_NAME","generateRefId","Date","now","toString","Math","random","substring","setCookie","name","value","days","document","expires","setTime","getTime","secure","window","location","protocol","cookie","encodeURIComponent","toUTCString","getCookie","nameEQ","cookies","split","i","length","charAt","indexOf","decodeURIComponent","deleteCookie","getUrlParam","param","URLSearchParams","search","get","saveReferralInfo","code","cookieName","expiryDays","refId","info","toLowerCase","timestamp","JSON","stringify","getReferralInfo","parse","clearReferralInfo","RetryQueue","constructor","config","this","processing","timer","maxAttempts","baseDelay","maxDelay","debug","startProcessing","addEventListener","visibilityState","log","args","console","getStorageKey","generateId","getQueue","localStorage","data","getItem","error","saveQueue","queue","removeItem","setItem","calculateBackoff","attemptNumber","exponentialDelay","pow","jitter","delay","min","round","push","event","endpoint","payload","item","id","createdAt","nextRetryAt","processItem","response","fetch","method","headers","body","keepalive","ok","status","processQueue","navigator","onLine","readyItems","filter","nextItem","reduce","max","scheduleProcessing","success","currentQueue","index","findIndex","q","splice","backoff","remainingQueue","clearTimeout","setTimeout","getQueueLength","clear","Tracker","apiUrl","publishableKey","programSlug","maxRetries","retryQueue","getEndpoint","getUtmParams","utmSource","utmMedium","utmCampaign","utmTerm","utmContent","params","getMeta","isBrowser","utmParams","url","href","referrer","userAgent","language","timezone","Intl","DateTimeFormat","resolvedOptions","timeZone","sdkVersion","windowWidth","innerWidth","windowHeight","innerHeight","screenWidth","screen","width","screenHeight","height","queueForRetry","send","meta","sendBeacon","blob","Blob","type","trackClick","trackSignup","trackSale","trackPageview","clearQueue","ShopifyIntegration","initialized","setRefId","updateCartAttributes","interceptAddToCart","attributes","blossu_ref_id","interceptFetch","interceptFormSubmissions","interceptXHR","originalFetch","getRefId","logMessage","input","init","URL","currentRefId","includes","bodyString","items","Array","isArray","map","properties","call","e","form","target","action","querySelector","createElement","appendChild","originalOpen","XMLHttpRequest","prototype","open","originalSend","async","username","password","_blossu_url","parsed","ensureCartHasRefId","cart","json","getCartAttributes","getLineItemProperties","BlossuClient","referralInfo","shopify","trackingParam","cookieExpiryDays","autoTrack","platform","tracker","loadReferralInfo","autoTrackReferral","exposeToWindow","blossu","sendVerificationMessage","opener","postMessage","programId","version","pageview","getCode","hasReferral","clearReferral","signup","email","customerExternalId","metadata","sale","amount","currency","provider","getStripeClientReferenceId","getStripeMetadata","blossu_code","getPartnerInfo","programPath","Authorization","Error","getProgramSlug","getPlatform","getShopifyCartAttributes","getShopifyLineItemProperties","ensureShopifyCartHasRefId","defaultClient","title"],"mappings":"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"}
|
package/dist/blossu.min.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var Blossu=function(e){"use strict";const t="0.1.0",r="https://api.blossu.com",i="blossu_ref";function n(){return`bls_${Date.now().toString(36)}_${Math.random().toString(36).substring(2,10)}`}function s(e,t,r){if("undefined"==typeof document)return;const i=new Date;i.setTime(i.getTime()+24*r*60*60*1e3);const n="https:"===window.location.protocol?"; Secure":"";document.cookie=`${e}=${encodeURIComponent(t)}; expires=${i.toUTCString()}; path=/; SameSite=Lax${n}`}function o(e){if("undefined"==typeof document)return null;const t=`${e}=`,r=document.cookie.split(";");for(let e=0;e<r.length;e++){let i=r[e];for(;" "===i.charAt(0);)i=i.substring(1,i.length);if(0===i.indexOf(t))return decodeURIComponent(i.substring(t.length,i.length))}return null}function a(e){"undefined"!=typeof document&&(document.cookie=`${e}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;`)}function u(e){if("undefined"==typeof window)return null;return new URLSearchParams(window.location.search).get(e)}function l(e,t=i,r=30){const o=n(),a={code:e.toLowerCase(),refId:o,timestamp:Date.now()};return s(t,JSON.stringify(a),r),a}function c(e=i){const t=o(e);if(!t)return null;try{return JSON.parse(t)}catch{return null}}function f(e=i){a(e)}class d{constructor(e){this.processing=!1,this.timer=null,this.name=`blossu_queue_${e.name||"default"}`,this.maxAttempts=e.maxAttempts||10,this.baseDelay=e.baseDelay||1e3,this.maxDelay=e.maxDelay||3e4,this.debug=e.debug||!1,this.startProcessing(),"undefined"!=typeof window&&(window.addEventListener("online",(()=>this.startProcessing())),document.addEventListener("visibilitychange",(()=>{"visible"===document.visibilityState&&this.startProcessing()})))}log(...e){this.debug&&console.log("[Blossu:Queue]",...e)}getStorageKey(){return this.name}generateId(){return`${Date.now()}_${Math.random().toString(36).substring(2,9)}`}getQueue(){if("undefined"==typeof localStorage)return[];try{const e=localStorage.getItem(this.getStorageKey());return e?JSON.parse(e):[]}catch(e){return this.log("Error reading queue:",e),[]}}saveQueue(e){if("undefined"!=typeof localStorage)try{0===e.length?localStorage.removeItem(this.getStorageKey()):localStorage.setItem(this.getStorageKey(),JSON.stringify(e))}catch(e){this.log("Error saving queue:",e)}}calculateBackoff(e){const t=this.baseDelay*Math.pow(2,e-1),r=.3*Math.random()*t,i=Math.min(t+r,this.maxDelay);return Math.round(i)}push(e,t,r){const i=this.getQueue(),n={id:this.generateId(),event:e,endpoint:t,payload:r,attemptNumber:0,maxAttempts:this.maxAttempts,createdAt:Date.now(),nextRetryAt:Date.now()};i.push(n),this.saveQueue(i),this.log("Added to queue:",n.id,e),this.startProcessing()}async processItem(e){this.log("Processing item:",e.id,"attempt:",e.attemptNumber+1);try{const t=await fetch(e.endpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:e.payload,keepalive:!0});return t.ok?(this.log("Successfully sent:",e.id),!0):t.status>=400&&t.status<500&&408!==t.status&&429!==t.status?(this.log("Client error, not retrying:",e.id,t.status),!0):(this.log("Server error, will retry:",e.id,t.status),!1)}catch(t){return this.log("Network error, will retry:",e.id,t),!1}}async processQueue(){if(!this.processing)if("undefined"==typeof navigator||navigator.onLine){this.processing=!0;try{const e=this.getQueue();if(0===e.length)return void(this.processing=!1);const t=Date.now(),r=e.filter((e=>e.nextRetryAt<=t));if(0===r.length){const r=e.reduce(((e,t)=>t.nextRetryAt<e.nextRetryAt?t:e)),i=Math.max(0,r.nextRetryAt-t);return this.scheduleProcessing(i),void(this.processing=!1)}for(const e of r){e.attemptNumber++;const t=await this.processItem(e),r=this.getQueue(),i=r.findIndex((t=>t.id===e.id));if(-1!==i)if(t)r.splice(i,1),this.saveQueue(r);else if(e.attemptNumber>=e.maxAttempts)this.log("Max attempts reached, dropping:",e.id),r.splice(i,1),this.saveQueue(r);else{const t=this.calculateBackoff(e.attemptNumber);r[i].attemptNumber=e.attemptNumber,r[i].nextRetryAt=Date.now()+t,this.saveQueue(r),this.log("Scheduled retry in",t,"ms for:",e.id)}}const i=this.getQueue();if(i.length>0){const e=i.reduce(((e,t)=>t.nextRetryAt<e.nextRetryAt?t:e)),t=Math.max(0,e.nextRetryAt-Date.now());this.scheduleProcessing(t)}}finally{this.processing=!1}}else this.log("Offline, skipping processing")}scheduleProcessing(e){this.timer&&clearTimeout(this.timer),this.timer=setTimeout((()=>this.processQueue()),e)}startProcessing(){this.scheduleProcessing(0)}getQueueLength(){return this.getQueue().length}clear(){this.saveQueue([]),this.timer&&(clearTimeout(this.timer),this.timer=null)}}class h{constructor(e){this.config={apiUrl:e.apiUrl||r,publishableKey:e.publishableKey,programSlug:e.programSlug,debug:e.debug||!1,maxRetries:e.maxRetries},this.retryQueue=new d({name:e.programSlug,maxAttempts:e.maxRetries||10,debug:e.debug||!1})}log(...e){this.config.debug&&console.log("[Blossu]",...e)}getEndpoint(e){return`${this.config.apiUrl}/v1/track/${e}`}getUtmParams(){if("undefined"==typeof window)return{utmSource:"",utmMedium:"",utmCampaign:"",utmTerm:"",utmContent:""};try{const e=new URLSearchParams(window.location.search);return{utmSource:e.get("utm_source")||"",utmMedium:e.get("utm_medium")||"",utmCampaign:e.get("utm_campaign")||"",utmTerm:e.get("utm_term")||"",utmContent:e.get("utm_content")||""}}catch{return{utmSource:"",utmMedium:"",utmCampaign:"",utmTerm:"",utmContent:""}}}getMeta(){const e="undefined"!=typeof window,r=this.getUtmParams();return{url:e?window.location.href:"",referrer:e?document.referrer:"",userAgent:e?navigator.userAgent:"",language:e?navigator.language:"",timezone:e&&Intl?.DateTimeFormat?.()?.resolvedOptions?.()?.timeZone||"",timestamp:Date.now(),sdkVersion:t,utmSource:r.utmSource,utmMedium:r.utmMedium,utmCampaign:r.utmCampaign,utmTerm:r.utmTerm,utmContent:r.utmContent,windowWidth:e?window.innerWidth:0,windowHeight:e?window.innerHeight:0,screenWidth:e&&window.screen?.width||0,screenHeight:e&&window.screen?.height||0}}queueForRetry(e,t,r){this.log("Queueing for retry:",e),this.retryQueue.push(e,t,r)}async send(e,t){const r={event:e,data:t,meta:this.getMeta(),publishableKey:this.config.publishableKey};this.log("Sending event:",e,r);const i=this.getEndpoint(e),n=JSON.stringify(r);if("undefined"!=typeof navigator&&navigator.sendBeacon){const e=new Blob([n],{type:"application/json"});try{if(navigator.sendBeacon(i,e))return this.log("sendBeacon success"),!0;this.log("sendBeacon returned false (queue full), falling back to fetch")}catch(e){this.log("sendBeacon threw error, falling back to fetch:",e)}}try{const t=await fetch(i,{method:"POST",headers:{"Content-Type":"application/json"},body:n,keepalive:!0});return t.ok?(this.log("fetch success:",t.status),!0):t.status>=500||408===t.status||429===t.status?(this.log("Server error, queueing for retry:",t.status),this.queueForRetry(e,i,n),!1):(this.log("Client error, not retrying:",t.status),!1)}catch(t){return this.log("fetch error, queueing for retry:",t),this.queueForRetry(e,i,n),!1}}trackClick(e){return this.send("click",e)}trackSignup(e){return this.send("signup",e)}trackSale(e){return this.send("sale",e)}trackPageview(e){return this.send("pageview",e)}getQueueLength(){return this.retryQueue.getQueueLength()}clearQueue(){this.retryQueue.clear()}}class g{constructor(e=!1){this.refId=null,this.initialized=!1,this.debug=e}log(...e){this.debug&&console.log("[Blossu:Shopify]",...e)}setRefId(e){this.refId=e,this.updateCartAttributes(),this.initialized||(this.interceptAddToCart(),this.initialized=!0)}async updateCartAttributes(){if(this.refId)try{const e=await fetch("/cart/update.js",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({attributes:{blossu_ref_id:this.refId}})});e.ok?this.log("Updated cart attributes with refId:",this.refId):this.log("Failed to update cart attributes:",e.status)}catch(e){this.log("Failed to update cart attributes:",e)}}interceptAddToCart(){this.interceptFetch(),this.interceptFormSubmissions(),this.interceptXHR(),this.log("Interceptors initialized")}interceptFetch(){const e=window.fetch,t=()=>this.refId,r=(...e)=>this.log(...e);window.fetch=function(i,n){const s="string"==typeof i?i:i instanceof URL?i.href:i.url,o=t();if(s.includes("/cart/add")&&o&&n?.body)try{const e="string"==typeof n.body?n.body:null;if(e){const t=JSON.parse(e);t.items&&Array.isArray(t.items)?t.items=t.items.map((e=>({...e,properties:{...e.properties||{},blossu_ref_id:o}}))):t.id&&(t.properties={...t.properties||{},blossu_ref_id:o}),n.body=JSON.stringify(t),r("Injected refId into add-to-cart fetch request")}}catch{r("Could not parse add-to-cart body, skipping injection")}return e.call(window,i,n)}}interceptFormSubmissions(){const e=()=>this.refId,t=(...e)=>this.log(...e);document.addEventListener("submit",(r=>{const i=r.target,n=e();if(!i.action?.includes("/cart/add")||!n)return;let s=i.querySelector('input[name="properties[blossu_ref_id]"]');s||(s=document.createElement("input"),s.type="hidden",s.name="properties[blossu_ref_id]",i.appendChild(s)),s.value=n,t("Injected refId into form submission")}),!0)}interceptXHR(){const e=()=>this.refId,t=(...e)=>this.log(...e),r=XMLHttpRequest.prototype.open,i=XMLHttpRequest.prototype.send;XMLHttpRequest.prototype.open=function(e,t,i,n,s){return this._blossu_url="string"==typeof t?t:t.href,r.call(this,e,t,i??!0,n??null,s??null)},XMLHttpRequest.prototype.send=function(r){const n=e();if(this._blossu_url?.includes("/cart/add")&&n&&"string"==typeof r)try{const e=JSON.parse(r);e.items&&Array.isArray(e.items)?e.items=e.items.map((e=>({...e,properties:{...e.properties||{},blossu_ref_id:n}}))):e.id&&(e.properties={...e.properties||{},blossu_ref_id:n}),r=JSON.stringify(e),t("Injected refId into XHR add-to-cart request")}catch{t("Could not parse XHR body, skipping injection")}return i.call(this,r)}}async ensureCartHasRefId(){if(this.refId)try{const e=await fetch("/cart.js"),t=await e.json();t.attributes?.blossu_ref_id!==this.refId&&await this.updateCartAttributes()}catch(e){this.log("Failed to check cart:",e)}}getCartAttributes(){return this.refId?{blossu_ref_id:this.refId}:{}}getLineItemProperties(){return this.refId?{blossu_ref_id:this.refId}:{}}}class p{constructor(e){this.initialized=!1,this.referralInfo=null,this.shopify=null,this.config={publishableKey:e.publishableKey,programSlug:e.programSlug||"",apiUrl:e.apiUrl||r,trackingParam:e.trackingParam||"ref",cookieName:e.cookieName||i,cookieExpiryDays:e.cookieExpiryDays||30,debug:e.debug||!1,autoTrack:!1!==e.autoTrack,platform:e.platform||"default"},this.tracker=new h({apiUrl:this.config.apiUrl,publishableKey:this.config.publishableKey,programSlug:this.config.programSlug,debug:this.config.debug}),"shopify"===this.config.platform&&(this.shopify=new g(this.config.debug),this.log("Shopify platform integration enabled")),this.loadReferralInfo(),this.config.autoTrack&&this.autoTrackReferral(),this.exposeToWindow()}log(...e){this.config.debug&&console.log("[Blossu]",...e)}exposeToWindow(){"undefined"!=typeof window&&(window.blossu=this,this.referralInfo&&(window.blossu_ref_id=this.referralInfo.refId))}loadReferralInfo(){this.referralInfo=c(this.config.cookieName),this.referralInfo&&(this.log("Loaded referral info from cookie:",this.referralInfo),this.shopify&&this.shopify.setRefId(this.referralInfo.refId))}autoTrackReferral(){if("undefined"==typeof window)return;const e=u(this.config.trackingParam);e&&e!==this.referralInfo?.code?(this.log("Detected referral code in URL:",e),this.trackClick(e)):this.referralInfo&&(this.log("Tracking page view for existing referral:",this.referralInfo.code),this.pageview())}getRefId(){return this.referralInfo?.refId||null}getCode(){return this.referralInfo?.code||null}getReferralInfo(){return this.referralInfo}hasReferral(){return null!==this.referralInfo}clearReferral(){f(this.config.cookieName),this.referralInfo=null,"undefined"!=typeof window&&delete window.blossu_ref_id,this.log("Cleared referral info")}async trackClick(e){return this.referralInfo=l(e,this.config.cookieName,this.config.cookieExpiryDays),"undefined"!=typeof window&&(window.blossu_ref_id=this.referralInfo.refId),this.shopify&&this.shopify.setRefId(this.referralInfo.refId),this.log("Tracking click for code:",e,"refId:",this.referralInfo.refId),this.tracker.trackClick({code:this.referralInfo.code,refId:this.referralInfo.refId})}async signup(e={}){return this.referralInfo?(this.log("Tracking signup:",e),this.tracker.trackSignup({code:this.referralInfo.code,refId:this.referralInfo.refId,email:e.email,customerExternalId:e.customerExternalId,metadata:e.metadata})):(this.log("No referral info, skipping signup tracking"),!1)}async sale(e){return this.referralInfo?(this.log("Tracking sale:",e),this.tracker.trackSale({code:this.referralInfo.code,refId:this.referralInfo.refId,customerExternalId:e.customerExternalId,amount:e.amount,currency:e.currency,provider:e.provider||"custom",metadata:e.metadata})):(this.log("No referral info, skipping sale tracking"),!1)}async pageview(){return!!this.referralInfo&&this.tracker.trackPageview({code:this.referralInfo.code,refId:this.referralInfo.refId})}getStripeClientReferenceId(){return this.referralInfo?.refId||null}getStripeMetadata(){return this.referralInfo?{blossu_ref_id:this.referralInfo.refId,blossu_code:this.referralInfo.code}:{}}async getPartnerInfo(e){const t=this.config.programSlug?`/v1/public/programs/${this.config.programSlug}/referral/${encodeURIComponent(e)}`:`/v1/public/referral/${encodeURIComponent(e)}`,r=`${this.config.apiUrl}${t}`;try{const t=await fetch(r,{headers:{Authorization:`Bearer ${this.config.publishableKey}`}});if(!t.ok){if(404===t.status)return this.log("Partner info not found for code:",e),null;throw new Error(`HTTP error! status: ${t.status}`)}const i=await t.json();return this.log("Fetched partner info:",i),i}catch(e){return this.log("Error fetching partner info:",e),null}}getProgramSlug(){return this.config.programSlug}getPlatform(){return this.config.platform}getShopifyCartAttributes(){return this.referralInfo?{blossu_ref_id:this.referralInfo.refId}:{}}getShopifyLineItemProperties(){return this.referralInfo?{blossu_ref_id:this.referralInfo.refId}:{}}async ensureShopifyCartHasRefId(){this.shopify&&this.referralInfo&&await this.shopify.ensureCartHasRefId()}}let m=null;return e.BlossuClient=p,e.COOKIE_EXPIRY_DAYS=30,e.COOKIE_NAME=i,e.DEFAULT_API_URL=r,e.ShopifyIntegration=g,e.TRACKING_PARAM="ref",e.Tracker=h,e.VERSION=t,e.clearReferralInfo=f,e.default=p,e.deleteCookie=a,e.generateRefId=n,e.getBrowserInfo=function(){return"undefined"==typeof navigator?{userAgent:"",language:"",timezone:""}:{userAgent:navigator.userAgent||"",language:navigator.language||"",timezone:Intl?.DateTimeFormat?.()?.resolvedOptions?.()?.timeZone||""}},e.getClient=function(){return m},e.getCookie=o,e.getPageInfo=function(){return"undefined"==typeof window||"undefined"==typeof document?{url:"",referrer:"",title:""}:{url:window.location.href,referrer:document.referrer||"",title:document.title||""}},e.getReferralInfo=c,e.getUrlParam=u,e.init=function(e){return m=new p(e),m},e.saveReferralInfo=l,e.setCookie=s,Object.defineProperty(e,"__esModule",{value:!0}),e}({});
|
|
1
|
+
var Blossu=function(e){"use strict";const t="0.1.0",r="https://api.blossu.com",i="blossu_ref";function n(){return`bls_${Date.now().toString(36)}_${Math.random().toString(36).substring(2,10)}`}function s(e,t,r){if("undefined"==typeof document)return;const i=new Date;i.setTime(i.getTime()+24*r*60*60*1e3);const n="https:"===window.location.protocol?"; Secure":"";document.cookie=`${e}=${encodeURIComponent(t)}; expires=${i.toUTCString()}; path=/; SameSite=Lax${n}`}function o(e){if("undefined"==typeof document)return null;const t=`${e}=`,r=document.cookie.split(";");for(let e=0;e<r.length;e++){let i=r[e];for(;" "===i.charAt(0);)i=i.substring(1,i.length);if(0===i.indexOf(t))return decodeURIComponent(i.substring(t.length,i.length))}return null}function a(e){"undefined"!=typeof document&&(document.cookie=`${e}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;`)}function u(e){if("undefined"==typeof window)return null;return new URLSearchParams(window.location.search).get(e)}function l(e,t=i,r=30){const o=n(),a={code:e.toLowerCase(),refId:o,timestamp:Date.now()};return s(t,JSON.stringify(a),r),a}function c(e=i){const t=o(e);if(!t)return null;try{return JSON.parse(t)}catch{return null}}function f(e=i){a(e)}class d{constructor(e){this.processing=!1,this.timer=null,this.name=`blossu_queue_${e.name||"default"}`,this.maxAttempts=e.maxAttempts||10,this.baseDelay=e.baseDelay||1e3,this.maxDelay=e.maxDelay||3e4,this.debug=e.debug||!1,this.startProcessing(),"undefined"!=typeof window&&(window.addEventListener("online",(()=>this.startProcessing())),document.addEventListener("visibilitychange",(()=>{"visible"===document.visibilityState&&this.startProcessing()})))}log(...e){this.debug&&console.log("[Blossu:Queue]",...e)}getStorageKey(){return this.name}generateId(){return`${Date.now()}_${Math.random().toString(36).substring(2,9)}`}getQueue(){if("undefined"==typeof localStorage)return[];try{const e=localStorage.getItem(this.getStorageKey());return e?JSON.parse(e):[]}catch(e){return this.log("Error reading queue:",e),[]}}saveQueue(e){if("undefined"!=typeof localStorage)try{0===e.length?localStorage.removeItem(this.getStorageKey()):localStorage.setItem(this.getStorageKey(),JSON.stringify(e))}catch(e){this.log("Error saving queue:",e)}}calculateBackoff(e){const t=this.baseDelay*Math.pow(2,e-1),r=.3*Math.random()*t,i=Math.min(t+r,this.maxDelay);return Math.round(i)}push(e,t,r){const i=this.getQueue(),n={id:this.generateId(),event:e,endpoint:t,payload:r,attemptNumber:0,maxAttempts:this.maxAttempts,createdAt:Date.now(),nextRetryAt:Date.now()};i.push(n),this.saveQueue(i),this.log("Added to queue:",n.id,e),this.startProcessing()}async processItem(e){this.log("Processing item:",e.id,"attempt:",e.attemptNumber+1);try{const t=await fetch(e.endpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:e.payload,keepalive:!0});return t.ok?(this.log("Successfully sent:",e.id),!0):t.status>=400&&t.status<500&&408!==t.status&&429!==t.status?(this.log("Client error, not retrying:",e.id,t.status),!0):(this.log("Server error, will retry:",e.id,t.status),!1)}catch(t){return this.log("Network error, will retry:",e.id,t),!1}}async processQueue(){if(!this.processing)if("undefined"==typeof navigator||navigator.onLine){this.processing=!0;try{const e=this.getQueue();if(0===e.length)return void(this.processing=!1);const t=Date.now(),r=e.filter((e=>e.nextRetryAt<=t));if(0===r.length){const r=e.reduce(((e,t)=>t.nextRetryAt<e.nextRetryAt?t:e)),i=Math.max(0,r.nextRetryAt-t);return this.scheduleProcessing(i),void(this.processing=!1)}for(const e of r){e.attemptNumber++;const t=await this.processItem(e),r=this.getQueue(),i=r.findIndex((t=>t.id===e.id));if(-1!==i)if(t)r.splice(i,1),this.saveQueue(r);else if(e.attemptNumber>=e.maxAttempts)this.log("Max attempts reached, dropping:",e.id),r.splice(i,1),this.saveQueue(r);else{const t=this.calculateBackoff(e.attemptNumber);r[i].attemptNumber=e.attemptNumber,r[i].nextRetryAt=Date.now()+t,this.saveQueue(r),this.log("Scheduled retry in",t,"ms for:",e.id)}}const i=this.getQueue();if(i.length>0){const e=i.reduce(((e,t)=>t.nextRetryAt<e.nextRetryAt?t:e)),t=Math.max(0,e.nextRetryAt-Date.now());this.scheduleProcessing(t)}}finally{this.processing=!1}}else this.log("Offline, skipping processing")}scheduleProcessing(e){this.timer&&clearTimeout(this.timer),this.timer=setTimeout((()=>this.processQueue()),e)}startProcessing(){this.scheduleProcessing(0)}getQueueLength(){return this.getQueue().length}clear(){this.saveQueue([]),this.timer&&(clearTimeout(this.timer),this.timer=null)}}class h{constructor(e){this.config={apiUrl:e.apiUrl||r,publishableKey:e.publishableKey,programSlug:e.programSlug,debug:e.debug||!1,maxRetries:e.maxRetries},this.retryQueue=new d({name:e.programSlug,maxAttempts:e.maxRetries||10,debug:e.debug||!1})}log(...e){this.config.debug&&console.log("[Blossu]",...e)}getEndpoint(e){return`${this.config.apiUrl}/v1/track/${e}`}getUtmParams(){if("undefined"==typeof window)return{utmSource:"",utmMedium:"",utmCampaign:"",utmTerm:"",utmContent:""};try{const e=new URLSearchParams(window.location.search);return{utmSource:e.get("utm_source")||"",utmMedium:e.get("utm_medium")||"",utmCampaign:e.get("utm_campaign")||"",utmTerm:e.get("utm_term")||"",utmContent:e.get("utm_content")||""}}catch{return{utmSource:"",utmMedium:"",utmCampaign:"",utmTerm:"",utmContent:""}}}getMeta(){const e="undefined"!=typeof window,r=this.getUtmParams();return{url:e?window.location.href:"",referrer:e?document.referrer:"",userAgent:e?navigator.userAgent:"",language:e?navigator.language:"",timezone:e&&Intl?.DateTimeFormat?.()?.resolvedOptions?.()?.timeZone||"",timestamp:Date.now(),sdkVersion:t,utmSource:r.utmSource,utmMedium:r.utmMedium,utmCampaign:r.utmCampaign,utmTerm:r.utmTerm,utmContent:r.utmContent,windowWidth:e?window.innerWidth:0,windowHeight:e?window.innerHeight:0,screenWidth:e&&window.screen?.width||0,screenHeight:e&&window.screen?.height||0}}queueForRetry(e,t,r){this.log("Queueing for retry:",e),this.retryQueue.push(e,t,r)}async send(e,t){const r={event:e,data:t,meta:this.getMeta(),publishableKey:this.config.publishableKey};this.log("Sending event:",e,r);const i=this.getEndpoint(e),n=JSON.stringify(r);if("undefined"!=typeof navigator&&navigator.sendBeacon){const e=new Blob([n],{type:"application/json"});try{if(navigator.sendBeacon(i,e))return this.log("sendBeacon success"),!0;this.log("sendBeacon returned false (queue full), falling back to fetch")}catch(e){this.log("sendBeacon threw error, falling back to fetch:",e)}}try{const t=await fetch(i,{method:"POST",headers:{"Content-Type":"application/json"},body:n,keepalive:!0});return t.ok?(this.log("fetch success:",t.status),!0):t.status>=500||408===t.status||429===t.status?(this.log("Server error, queueing for retry:",t.status),this.queueForRetry(e,i,n),!1):(this.log("Client error, not retrying:",t.status),!1)}catch(t){return this.log("fetch error, queueing for retry:",t),this.queueForRetry(e,i,n),!1}}trackClick(e){return this.send("click",e)}trackSignup(e){return this.send("signup",e)}trackSale(e){return this.send("sale",e)}trackPageview(e){return this.send("pageview",e)}getQueueLength(){return this.retryQueue.getQueueLength()}clearQueue(){this.retryQueue.clear()}}class g{constructor(e=!1){this.refId=null,this.initialized=!1,this.debug=e}log(...e){this.debug&&console.log("[Blossu:Shopify]",...e)}setRefId(e){this.refId=e,this.updateCartAttributes(),this.initialized||(this.interceptAddToCart(),this.initialized=!0)}async updateCartAttributes(){if(this.refId)try{const e=await fetch("/cart/update.js",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({attributes:{blossu_ref_id:this.refId}})});e.ok?this.log("Updated cart attributes with refId:",this.refId):this.log("Failed to update cart attributes:",e.status)}catch(e){this.log("Failed to update cart attributes:",e)}}interceptAddToCart(){this.interceptFetch(),this.interceptFormSubmissions(),this.interceptXHR(),this.log("Interceptors initialized")}interceptFetch(){const e=window.fetch,t=()=>this.refId,r=(...e)=>this.log(...e);window.fetch=function(i,n){const s="string"==typeof i?i:i instanceof URL?i.href:i.url,o=t();if(s.includes("/cart/add")&&o&&n?.body)try{const e="string"==typeof n.body?n.body:null;if(e){const t=JSON.parse(e);t.items&&Array.isArray(t.items)?t.items=t.items.map((e=>({...e,properties:{...e.properties||{},blossu_ref_id:o}}))):t.id&&(t.properties={...t.properties||{},blossu_ref_id:o}),n.body=JSON.stringify(t),r("Injected refId into add-to-cart fetch request")}}catch{r("Could not parse add-to-cart body, skipping injection")}return e.call(window,i,n)}}interceptFormSubmissions(){const e=()=>this.refId,t=(...e)=>this.log(...e);document.addEventListener("submit",(r=>{const i=r.target,n=e();if(!i.action?.includes("/cart/add")||!n)return;let s=i.querySelector('input[name="properties[blossu_ref_id]"]');s||(s=document.createElement("input"),s.type="hidden",s.name="properties[blossu_ref_id]",i.appendChild(s)),s.value=n,t("Injected refId into form submission")}),!0)}interceptXHR(){const e=()=>this.refId,t=(...e)=>this.log(...e),r=XMLHttpRequest.prototype.open,i=XMLHttpRequest.prototype.send;XMLHttpRequest.prototype.open=function(e,t,i,n,s){return this._blossu_url="string"==typeof t?t:t.href,r.call(this,e,t,i??!0,n??null,s??null)},XMLHttpRequest.prototype.send=function(r){const n=e();if(this._blossu_url?.includes("/cart/add")&&n&&"string"==typeof r)try{const e=JSON.parse(r);e.items&&Array.isArray(e.items)?e.items=e.items.map((e=>({...e,properties:{...e.properties||{},blossu_ref_id:n}}))):e.id&&(e.properties={...e.properties||{},blossu_ref_id:n}),r=JSON.stringify(e),t("Injected refId into XHR add-to-cart request")}catch{t("Could not parse XHR body, skipping injection")}return i.call(this,r)}}async ensureCartHasRefId(){if(this.refId)try{const e=await fetch("/cart.js"),t=await e.json();t.attributes?.blossu_ref_id!==this.refId&&await this.updateCartAttributes()}catch(e){this.log("Failed to check cart:",e)}}getCartAttributes(){return this.refId?{blossu_ref_id:this.refId}:{}}getLineItemProperties(){return this.refId?{blossu_ref_id:this.refId}:{}}}class p{constructor(e){this.initialized=!1,this.referralInfo=null,this.shopify=null,this.config={publishableKey:e.publishableKey,programSlug:e.programSlug||"",apiUrl:e.apiUrl||r,trackingParam:e.trackingParam||"ref",cookieName:e.cookieName||i,cookieExpiryDays:e.cookieExpiryDays||30,debug:e.debug||!1,autoTrack:!1!==e.autoTrack,platform:e.platform||"default"},this.tracker=new h({apiUrl:this.config.apiUrl,publishableKey:this.config.publishableKey,programSlug:this.config.programSlug,debug:this.config.debug}),"shopify"===this.config.platform&&(this.shopify=new g(this.config.debug),this.log("Shopify platform integration enabled")),this.loadReferralInfo(),this.config.autoTrack&&this.autoTrackReferral(),this.exposeToWindow()}log(...e){this.config.debug&&console.log("[Blossu]",...e)}exposeToWindow(){"undefined"!=typeof window&&(window.blossu=this,this.referralInfo&&(window.blossu_ref_id=this.referralInfo.refId),this.sendVerificationMessage())}sendVerificationMessage(){if("undefined"!=typeof window)try{const e=new URLSearchParams(window.location.search);"1"===e.get("blossu_verify")&&window.opener&&(this.log("Sending verification message to opener"),window.opener.postMessage({type:"BLOSSU_SCRIPT_LOADED",programId:this.config.programSlug,publishableKey:this.config.publishableKey,version:t,timestamp:Date.now()},"*"))}catch(e){this.log("Error sending verification message:",e)}}loadReferralInfo(){this.referralInfo=c(this.config.cookieName),this.referralInfo&&(this.log("Loaded referral info from cookie:",this.referralInfo),this.shopify&&this.shopify.setRefId(this.referralInfo.refId))}autoTrackReferral(){if("undefined"==typeof window)return;const e=u(this.config.trackingParam);e&&e!==this.referralInfo?.code?(this.log("Detected referral code in URL:",e),this.trackClick(e)):this.referralInfo&&(this.log("Tracking page view for existing referral:",this.referralInfo.code),this.pageview())}getRefId(){return this.referralInfo?.refId||null}getCode(){return this.referralInfo?.code||null}getReferralInfo(){return this.referralInfo}hasReferral(){return null!==this.referralInfo}clearReferral(){f(this.config.cookieName),this.referralInfo=null,"undefined"!=typeof window&&delete window.blossu_ref_id,this.log("Cleared referral info")}async trackClick(e){return this.referralInfo=l(e,this.config.cookieName,this.config.cookieExpiryDays),"undefined"!=typeof window&&(window.blossu_ref_id=this.referralInfo.refId),this.shopify&&this.shopify.setRefId(this.referralInfo.refId),this.log("Tracking click for code:",e,"refId:",this.referralInfo.refId),this.tracker.trackClick({code:this.referralInfo.code,refId:this.referralInfo.refId})}async signup(e={}){return this.referralInfo?(this.log("Tracking signup:",e),this.tracker.trackSignup({code:this.referralInfo.code,refId:this.referralInfo.refId,email:e.email,customerExternalId:e.customerExternalId,metadata:e.metadata})):(this.log("No referral info, skipping signup tracking"),!1)}async sale(e){return this.referralInfo?(this.log("Tracking sale:",e),this.tracker.trackSale({code:this.referralInfo.code,refId:this.referralInfo.refId,customerExternalId:e.customerExternalId,amount:e.amount,currency:e.currency,provider:e.provider||"custom",metadata:e.metadata})):(this.log("No referral info, skipping sale tracking"),!1)}async pageview(){return!!this.referralInfo&&this.tracker.trackPageview({code:this.referralInfo.code,refId:this.referralInfo.refId})}getStripeClientReferenceId(){return this.referralInfo?.refId||null}getStripeMetadata(){return this.referralInfo?{blossu_ref_id:this.referralInfo.refId,blossu_code:this.referralInfo.code}:{}}async getPartnerInfo(e){const t=this.config.programSlug?`/v1/public/programs/${this.config.programSlug}/referral/${encodeURIComponent(e)}`:`/v1/public/referral/${encodeURIComponent(e)}`,r=`${this.config.apiUrl}${t}`;try{const t=await fetch(r,{headers:{Authorization:`Bearer ${this.config.publishableKey}`}});if(!t.ok){if(404===t.status)return this.log("Partner info not found for code:",e),null;throw new Error(`HTTP error! status: ${t.status}`)}const i=await t.json();return this.log("Fetched partner info:",i),i}catch(e){return this.log("Error fetching partner info:",e),null}}getProgramSlug(){return this.config.programSlug}getPlatform(){return this.config.platform}getShopifyCartAttributes(){return this.referralInfo?{blossu_ref_id:this.referralInfo.refId}:{}}getShopifyLineItemProperties(){return this.referralInfo?{blossu_ref_id:this.referralInfo.refId}:{}}async ensureShopifyCartHasRefId(){this.shopify&&this.referralInfo&&await this.shopify.ensureCartHasRefId()}}let m=null;return e.BlossuClient=p,e.COOKIE_EXPIRY_DAYS=30,e.COOKIE_NAME=i,e.DEFAULT_API_URL=r,e.ShopifyIntegration=g,e.TRACKING_PARAM="ref",e.Tracker=h,e.VERSION=t,e.clearReferralInfo=f,e.default=p,e.deleteCookie=a,e.generateRefId=n,e.getBrowserInfo=function(){return"undefined"==typeof navigator?{userAgent:"",language:"",timezone:""}:{userAgent:navigator.userAgent||"",language:navigator.language||"",timezone:Intl?.DateTimeFormat?.()?.resolvedOptions?.()?.timeZone||""}},e.getClient=function(){return m},e.getCookie=o,e.getPageInfo=function(){return"undefined"==typeof window||"undefined"==typeof document?{url:"",referrer:"",title:""}:{url:window.location.href,referrer:document.referrer||"",title:document.title||""}},e.getReferralInfo=c,e.getUrlParam=u,e.init=function(e){return m=new p(e),m},e.saveReferralInfo=l,e.setCookie=s,Object.defineProperty(e,"__esModule",{value:!0}),e}({});
|
|
2
2
|
//# sourceMappingURL=blossu.min.js.map
|
package/dist/blossu.min.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blossu.min.js","sources":["../src/constants.ts","../src/utils.ts","../src/retry-queue.ts","../src/tracker.ts","../src/shopify.ts","../src/blossu.ts"],"sourcesContent":[null,null,null,null,null,null],"names":["VERSION","DEFAULT_API_URL","COOKIE_NAME","generateRefId","Date","now","toString","Math","random","substring","setCookie","name","value","days","document","expires","setTime","getTime","secure","window","location","protocol","cookie","encodeURIComponent","toUTCString","getCookie","nameEQ","cookies","split","i","length","charAt","indexOf","decodeURIComponent","deleteCookie","getUrlParam","param","URLSearchParams","search","get","saveReferralInfo","code","cookieName","expiryDays","refId","info","toLowerCase","timestamp","JSON","stringify","getReferralInfo","parse","clearReferralInfo","RetryQueue","constructor","config","this","processing","timer","maxAttempts","baseDelay","maxDelay","debug","startProcessing","addEventListener","visibilityState","log","args","console","getStorageKey","generateId","getQueue","localStorage","data","getItem","error","saveQueue","queue","removeItem","setItem","calculateBackoff","attemptNumber","exponentialDelay","pow","jitter","delay","min","round","push","event","endpoint","payload","item","id","createdAt","nextRetryAt","processItem","response","fetch","method","headers","body","keepalive","ok","status","processQueue","navigator","onLine","readyItems","filter","nextItem","reduce","max","scheduleProcessing","success","currentQueue","index","findIndex","q","splice","backoff","remainingQueue","clearTimeout","setTimeout","getQueueLength","clear","Tracker","apiUrl","publishableKey","programSlug","maxRetries","retryQueue","getEndpoint","getUtmParams","utmSource","utmMedium","utmCampaign","utmTerm","utmContent","params","getMeta","isBrowser","utmParams","url","href","referrer","userAgent","language","timezone","Intl","DateTimeFormat","resolvedOptions","timeZone","sdkVersion","windowWidth","innerWidth","windowHeight","innerHeight","screenWidth","screen","width","screenHeight","height","queueForRetry","send","meta","sendBeacon","blob","Blob","type","trackClick","trackSignup","trackSale","trackPageview","clearQueue","ShopifyIntegration","initialized","setRefId","updateCartAttributes","interceptAddToCart","attributes","blossu_ref_id","interceptFetch","interceptFormSubmissions","interceptXHR","originalFetch","getRefId","logMessage","input","init","URL","currentRefId","includes","bodyString","items","Array","isArray","map","properties","call","e","form","target","action","querySelector","createElement","appendChild","originalOpen","XMLHttpRequest","prototype","open","originalSend","async","username","password","_blossu_url","parsed","ensureCartHasRefId","cart","json","getCartAttributes","getLineItemProperties","BlossuClient","referralInfo","shopify","trackingParam","cookieExpiryDays","autoTrack","platform","tracker","loadReferralInfo","autoTrackReferral","exposeToWindow","blossu","pageview","getCode","hasReferral","clearReferral","signup","email","customerExternalId","metadata","sale","amount","currency","provider","getStripeClientReferenceId","getStripeMetadata","blossu_code","getPartnerInfo","programPath","Authorization","Error","getProgramSlug","getPlatform","getShopifyCartAttributes","getShopifyLineItemProperties","ensureShopifyCartHasRefId","defaultClient","title"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"blossu.min.js","sources":["../src/constants.ts","../src/utils.ts","../src/retry-queue.ts","../src/tracker.ts","../src/shopify.ts","../src/blossu.ts"],"sourcesContent":[null,null,null,null,null,null],"names":["VERSION","DEFAULT_API_URL","COOKIE_NAME","generateRefId","Date","now","toString","Math","random","substring","setCookie","name","value","days","document","expires","setTime","getTime","secure","window","location","protocol","cookie","encodeURIComponent","toUTCString","getCookie","nameEQ","cookies","split","i","length","charAt","indexOf","decodeURIComponent","deleteCookie","getUrlParam","param","URLSearchParams","search","get","saveReferralInfo","code","cookieName","expiryDays","refId","info","toLowerCase","timestamp","JSON","stringify","getReferralInfo","parse","clearReferralInfo","RetryQueue","constructor","config","this","processing","timer","maxAttempts","baseDelay","maxDelay","debug","startProcessing","addEventListener","visibilityState","log","args","console","getStorageKey","generateId","getQueue","localStorage","data","getItem","error","saveQueue","queue","removeItem","setItem","calculateBackoff","attemptNumber","exponentialDelay","pow","jitter","delay","min","round","push","event","endpoint","payload","item","id","createdAt","nextRetryAt","processItem","response","fetch","method","headers","body","keepalive","ok","status","processQueue","navigator","onLine","readyItems","filter","nextItem","reduce","max","scheduleProcessing","success","currentQueue","index","findIndex","q","splice","backoff","remainingQueue","clearTimeout","setTimeout","getQueueLength","clear","Tracker","apiUrl","publishableKey","programSlug","maxRetries","retryQueue","getEndpoint","getUtmParams","utmSource","utmMedium","utmCampaign","utmTerm","utmContent","params","getMeta","isBrowser","utmParams","url","href","referrer","userAgent","language","timezone","Intl","DateTimeFormat","resolvedOptions","timeZone","sdkVersion","windowWidth","innerWidth","windowHeight","innerHeight","screenWidth","screen","width","screenHeight","height","queueForRetry","send","meta","sendBeacon","blob","Blob","type","trackClick","trackSignup","trackSale","trackPageview","clearQueue","ShopifyIntegration","initialized","setRefId","updateCartAttributes","interceptAddToCart","attributes","blossu_ref_id","interceptFetch","interceptFormSubmissions","interceptXHR","originalFetch","getRefId","logMessage","input","init","URL","currentRefId","includes","bodyString","items","Array","isArray","map","properties","call","e","form","target","action","querySelector","createElement","appendChild","originalOpen","XMLHttpRequest","prototype","open","originalSend","async","username","password","_blossu_url","parsed","ensureCartHasRefId","cart","json","getCartAttributes","getLineItemProperties","BlossuClient","referralInfo","shopify","trackingParam","cookieExpiryDays","autoTrack","platform","tracker","loadReferralInfo","autoTrackReferral","exposeToWindow","blossu","sendVerificationMessage","opener","postMessage","programId","version","pageview","getCode","hasReferral","clearReferral","signup","email","customerExternalId","metadata","sale","amount","currency","provider","getStripeClientReferenceId","getStripeMetadata","blossu_code","getPartnerInfo","programPath","Authorization","Error","getProgramSlug","getPlatform","getShopifyCartAttributes","getShopifyLineItemProperties","ensureShopifyCartHasRefId","defaultClient","title"],"mappings":"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"}
|