@salla.sa/analytics 2.14.567 → 2.14.569
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/checkout.js +1 -1
- package/dist/esm/checkout.js +1 -1
- package/package.json +2 -2
- package/src/checkout/index.js +0 -24
package/dist/cjs/checkout.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("./chunks/uuid-DTU84VzH.js"),e=require("@jitsu/js"),i={get(t,e=null){const i="undefined"!=typeof window?window.initialData:null;if(!i||"object"!=typeof i)return e;let s=i;for(const i of t.split(".")){if(null==s||"object"!=typeof s||!(i in s))return e;s=s[i]}return void 0!==s?s:e}};const s="s-session-id";let n=null;function o(t){return`${t}_${i.get("store.id")}`}var r={SESSION_STORAGE_KEY:s,SESSION_TTL_MINUTES:30,resolve:()=>(n||(n=function(t,e=null){try{const i=localStorage.getItem(o(t));if(!i)return e;const s=JSON.parse(i);return s&&"object"==typeof s?(new Date).getTime()>s.expiry?(localStorage.removeItem(o(t)),e):s.value:e}catch(t){return e}}(s)||t.generateSessionId()),function(t,e,i=30){try{const s=(new Date).getTime()+60*i*1e3;localStorage.setItem(o(t),JSON.stringify({value:e,expiry:s}))}catch(t){}}(s,n),n)};class a{constructor(t){this.transaction=t}toSegment(){var t,e,i,s,n,o,r,a,d,c,l,u;return{event:"Checkout Started",properties:{checkout_id:null==(t=window.initialData)||null==(t=t.cart)?void 0:t.id,order_id:(null==(e=this.transaction)||null==(e=e.order_id)?void 0:e.toString())||"",cart_id:(null==(i=this.transaction)||null==(i=i.cart_id)?void 0:i.toString())||"",affiliation:(null==(s=this.transaction)?void 0:s.affiliation)||"",value:(null==(n=this.transaction)?void 0:n.value)||0,revenue:(null==(o=this.transaction)?void 0:o.revenue)||0,shipping:(null==(r=this.transaction)?void 0:r.shipping)||0,tax:(null==(a=this.transaction)?void 0:a.tax)||0,discount:(null==(d=this.transaction)?void 0:d.discount)||0,coupon:(null==(c=this.transaction)?void 0:c.coupon)||"",currency:(null==(l=this.transaction)?void 0:l.currency)||"",products:((null==(u=this.transaction)?void 0:u.products)||[]).map(t=>{var e;return{product_id:(null==t||null==(e=t.product_id)?void 0:e.toString())||"",sku:(null==t?void 0:t.sku)||"",name:(null==t?void 0:t.name)||"",price:(null==t?void 0:t.price)||0,quantity:(null==t?void 0:t.quantity)||0,category:(null==t?void 0:t.category)||"",url:(null==t?void 0:t.url)||"",image_url:(null==t?void 0:t.image_url)||""}})}}}}class d{constructor(t){this.transaction=t}toSegment(){return{event:"Payment Info Entered",properties:{order_id:this.transaction.order_id,payment_method:this.transaction.payment_method,checkout_id:this.transaction.checkout_id}}}}class c{constructor(t){this.details=t||{}}toSegment(){return{event:"Checkout Step Viewed",properties:{checkout_id:this.details.checkout_id,step:this.details.step,shipping_method:this.details.shipping_method,payment_method:this.details.payment_method}}}}class l{constructor(t){this.details=t||{}}toSegment(){return{event:"Checkout Step Completed",properties:{checkout_id:this.details.checkout_id,step:this.details.step,shipping_method:this.details.shipping_method,payment_method:this.details.payment_method}}}}class u{constructor(t){this.transaction=t}toSegment(){return{event:"Coupon Entered",properties:{cart_id:this.transaction.cart_id,order_id:this.transaction.order_id,coupon_id:this.transaction.coupon_id,value:this.transaction.value,currency:this.transaction.currency}}}}class h{constructor(t){this.transaction=t}toSegment(){return{event:"Coupon Applied",properties:{cart_id:this.transaction.cart_id,order_id:this.transaction.order_id,coupon_id:this.transaction.coupon_id,coupon_name:this.transaction.coupon_name,discount:this.transaction.discount,currency:this.transaction.currency}}}}class p{constructor(t){this.transaction=t}toSegment(){return{event:"Coupon Denied",properties:{cart_id:this.transaction.cart_id,order_id:this.transaction.order_id,coupon_id:this.transaction.coupon_id,coupon_name:this.transaction.coupon_name,reason:this.transaction.reason}}}}class m{constructor(t){this.transaction=t}toSegment(){return{event:"Coupon Removed",properties:{cart_id:this.transaction.cart_id,order_id:this.transaction.order_id,coupon_id:this.transaction.coupon_id,coupon_name:this.transaction.coupon_name,discount:this.transaction.discount,currency:this.transaction.currency}}}}class _{constructor(t){this.transaction=t}toSegment(){var t,e,i,s,n,o,r,a,d,c,l,u,h,p,m,_,v,y;return{event:"Address Added",properties:{checkout_id:this.transaction.cart_id,order_id:this.transaction.order_id,cart_id:this.transaction.cart_id,customer:{id:null==(t=this.transaction.customer)?void 0:t.id,name:(null==(e=this.transaction.customer)?void 0:e.first_name)+" "+(null==(i=this.transaction.customer)?void 0:i.last_name),mobile:null==(s=this.transaction.customer)?void 0:s.mobile,email:null==(n=this.transaction.customer)?void 0:n.email,gender:null==(o=this.transaction.customer)?void 0:o.gender},address:{local:null==(r=this.transaction.address)?void 0:r.local,street:null==(a=this.transaction.address)?void 0:a.street,postal_code:null==(d=this.transaction.address)?void 0:d.postal_code,short_address:null==(c=this.transaction.address)?void 0:c.short_address,region:{id:null==(l=this.transaction.address)||null==(l=l.region)?void 0:l.id,name:null==(u=this.transaction.address)||null==(u=u.region)?void 0:u.name},city:{id:null==(h=this.transaction.address)||null==(h=h.city)?void 0:h.id,name:null==(p=this.transaction.address)||null==(p=p.city)?void 0:p.name},country:{id:null==(m=this.transaction.address)||null==(m=m.country)?void 0:m.id,name:null==(_=this.transaction.address)||null==(_=_.country)?void 0:_.name},district:{id:null==(v=this.transaction.address)||null==(v=v.district)?void 0:v.id,name:null==(y=this.transaction.address)||null==(y=y.district)?void 0:y.name}}}}}}class v{constructor(t){this.transaction=t}toSegment(){var t,e,i,s,n,o,r,a,d,c,l,u,h,p,m,_,v,y;return{event:"Address Updated",properties:{checkout_id:this.transaction.cart_id,order_id:this.transaction.order_id,cart_id:this.transaction.cart_id,customer:{id:null==(t=this.transaction.customer)?void 0:t.id,name:(null==(e=this.transaction.customer)?void 0:e.first_name)+" "+(null==(i=this.transaction.customer)?void 0:i.last_name),mobile:null==(s=this.transaction.customer)?void 0:s.mobile,email:null==(n=this.transaction.customer)?void 0:n.email,gender:null==(o=this.transaction.customer)?void 0:o.gender},address:{local:null==(r=this.transaction.address)?void 0:r.local,street:null==(a=this.transaction.address)?void 0:a.street,postal_code:null==(d=this.transaction.address)?void 0:d.postal_code,short_address:null==(c=this.transaction.address)?void 0:c.short_address,region:{id:null==(l=this.transaction.address)||null==(l=l.region)?void 0:l.id,name:null==(u=this.transaction.address)||null==(u=u.region)?void 0:u.name},city:{id:null==(h=this.transaction.address)||null==(h=h.city)?void 0:h.id,name:null==(p=this.transaction.address)||null==(p=p.city)?void 0:p.name},country:{id:null==(m=this.transaction.address)||null==(m=m.country)?void 0:m.id,name:null==(_=this.transaction.address)||null==(_=_.country)?void 0:_.name},district:{id:null==(v=this.transaction.address)||null==(v=v.district)?void 0:v.id,name:null==(y=this.transaction.address)||null==(y=y.district)?void 0:y.name}}}}}}class y{constructor(t){this.transaction=t}toSegment(){var t,e,i,s,n,o,r,a;return{event:"Map Clicked",properties:{checkout_id:this.transaction.cart_id,order_id:this.transaction.order_id,cart_id:this.transaction.cart_id,customer:{id:null==(t=this.transaction.customer)?void 0:t.id,name:(null==(e=this.transaction.customer)?void 0:e.first_name)+" "+(null==(i=this.transaction.customer)?void 0:i.last_name),mobile:null==(s=this.transaction.customer)?void 0:s.mobile,email:null==(n=this.transaction.customer)?void 0:n.email,gender:null==(o=this.transaction.customer)?void 0:o.gender},address:{lat:null==(r=this.transaction.address)?void 0:r.lat,lng:null==(a=this.transaction.address)?void 0:a.lng}}}}}class g{constructor(t){this.details=t||{}}toSegment(){return{event:"Payment Submitted",properties:{checkout_id:this.details.checkout_id||i.get("cart.id"),payment_method:this.details.payment_method,gateway:this.details.gateway,is_order_free:this.details.is_order_free,cart_total:this.details.cart_total||i.get("cart.total_in_customer_currency",0),shipping_method:this.details.shipping_method,has_partial_payment:this.details.has_partial_payment||!1}}}}const f=/\b(?:\d[ -]?){13,19}\b/g,k=/[\w.+-]+@[\w-]+(\.[\w-]+)+/g,S=t=>t?String(t).replace(f,"[REDACTED]").replace(k,"[REDACTED]").slice(0,500):"",C=t=>t&&"object"==typeof t?Object.keys(t).map(e=>{const i=Array.isArray(t[e])?t[e][0]:t[e],s=i&&"object"==typeof i?i.message||JSON.stringify(i):i;return{field:e,message:S(s)}}):[];class w{constructor(t){this.details=t||{}}toSegment(){const t=this.details.error_fields||{},e=t&&"object"==typeof t?Object.keys(t):[];return{event:"Payment Failed",properties:{checkout_id:this.details.checkout_id||i.get("cart.id"),payment_method:this.details.payment_method,gateway:this.details.gateway,error_code:this.details.error_code,error_type:this.details.error_type,error_message:S(this.details.error_message),http_status:this.details.http_status,error_fields:e,field_errors:C(t)}}}}class x{constructor(t){this.details=t||{}}toSegment(){return{event:"Payment Succeeded",properties:{checkout_id:this.details.checkout_id||i.get("cart.id"),payment_method:this.details.payment_method,gateway:this.details.gateway,response_status:this.details.response_status,has_redirect:this.details.has_redirect||!1,redirect_url:this.details.redirect_url||null,order_id:this.details.order_id||null,cart_total:this.details.cart_total||i.get("cart.total_in_customer_currency",0)}}}}class P{constructor(t){this.details=t||{}}toSegment(){return{event:"Payment Pending",properties:{checkout_id:this.details.checkout_id||i.get("cart.id"),payment_method:this.details.payment_method,gateway:this.details.gateway,redirect_url:this.details.redirect_url||null,order_id:this.details.order_id||null,cart_total:this.details.cart_total||i.get("cart.total_in_customer_currency",0)}}}}var T=new class{constructor(){this.events={"Checkout Started":a,"Payment Info Entered":d,"Checkout Step Viewed":c,"Checkout Step Completed":l,"Coupon Entered":u,"Coupon Applied":h,"Coupon Denied":p,"Coupon Removed":m,"Address Added":_,"Address Updated":v,"Map Clicked":y,"Payment Submitted":g,"Payment Failed":w,"Payment Succeeded":x,"Payment Pending":P}}transform(t,e){const i=this.events[t];if(!i)return null;try{return new i(e).toSegment()}catch(t){return console.error("Failed to transform event:",t),null}}};exports.SessionService=r,exports.default=class{constructor(){this.history=[],this.customTrackers=[],this.context={},this.events=[],this._sessionId=null,this.mappedEvents={"payment::method_updated":"Payment Info Entered","checkout::step_viewed":"Checkout Step Viewed","checkout::step_completed":"Checkout Step Completed","coupon::applied":"Coupon Applied","coupon::denied":"Coupon Denied","coupon::entered":"Coupon Entered","coupon::removed":"Coupon Removed","address::added":"Address Added","address::updated":"Address Updated","map::clicked":"Map Clicked","payment::submitted":"Payment Submitted","payment::failed":"Payment Failed","payment::succeeded":"Payment Succeeded","payment::pending":"Payment Pending"};const t=i.get("config.jitsu",{}),s=i.get("store.url",null),{host:n,key:o}=t||{};this.analytics=null,n&&o&&(this.analytics=e.jitsuAnalytics({host:this.getAnalyticsHost(s),writeKey:o,cookieCapture:this.captureCookies(),fetch:this.customFetch}),this.events=i.get("config.jitsu.events",[]),i.get("config.jitsu.context.extra",{})&&this.setExtraContext(i.get("config.jitsu.context.extra",{})),this.initSessionId(),this.setSignedInCustomerTraits(),this.page())}setSignedInCustomerTraits(){const t=i.get("customer");t&&t.id&&this.setTraits(t)}setTraits(t){t&&this.setContext("traits",t)}initSessionId(){this._sessionId=r.resolve(),this.setContext("session_id",this._sessionId)}captureCookies(){return t.captureSallaCookies()}getAnalyticsHost(e){var i;return t.resolveAnalyticsHost(e,{documentOrigin:"undefined"!=typeof window?null==(i=window.location)?void 0:i.origin:null,log:console.log})}trackSallaEvent(t){var e;if("customer::identified"===t.type)return this.setTraits(t.detail);const i=null!=(e=this.mappedEvents[t.type])?e:t.type;if(this.analytics&&this.events.includes(i))try{if(!i)return;const e=T.transform(i,t.detail);e&&this.track(e.event,e.properties)}catch(t){console.log(t)}}track(t,e={}){return this.analytics?(e=this.finalPayload(e),this.analytics.track(t,e).then(i=>(this.pushEventToCustomTrackers("track",t,e),i)).then(()=>{this.history.push({action:"track",eventName:t,payload:e})}).catch(t=>Promise.reject(t))):Promise.resolve()}page(t={}){if(!this.analytics)return Promise.resolve();const e=this.finalPayload(t);return this.analytics.page(e).then(t=>(this.pushEventToCustomTrackers("page",e),t)).then(()=>{this.history.push({action:"page",payload:e})}).catch(t=>Promise.reject(t))}finalPayload(e={}){let s={session_id:r.resolve(),cart_id:i.get("cart.id")||e.cart_id||e.checkout_id||null};return this.setContext("version",i.get("config.jitsu.version",1)),this.setContext("store_id",i.get("config.store.id")),s.session_id&&this.setContext("session_id",s.session_id),e.event_id=e.event_id||t.generateSessionId(),t._extends({},s,e,{session_id:e.session_id||s.session_id,cart_id:e.cart_id||s.cart_id})}registerTracker(e){t.isValidTracker(e,this.customTrackers,console.log)&&(this.customTrackers.push(e),t.replayHistory(e,this.history))}pushEventToCustomTrackers(e,i,s={}){return t.pushEventToTrackers(this.customTrackers,e,i,s,console.log)}customFetch(e,i){var s,n;if(null==(s=window.navigator)||!s.sendBeacon)return fetch(e,t._extends({},i,{keepalive:!0}));const o=`${e}?writekey=${null==i||null==(n=i.headers)?void 0:n["X-Write-Key"]}`,r="string"==typeof(null==i?void 0:i.body)?null==i?void 0:i.body:JSON.stringify((null==i?void 0:i.body)||{}),a=new Blob([r],{type:"application/json"});return navigator.sendBeacon(o,a)?Promise.resolve(new Response('{"status":"sent_via_beacon"}',{status:200,headers:{"Content-Type":"application/json"}})):fetch(e,t._extends({},i,{keepalive:!0}))}setContext(t,e){var i;null==(i=this.analytics)||i.setContextProperty(t,e),this.context[t]=e}setExtraContext(e){t.applyExtraContext((t,e)=>this.setContext(t,e),e,console.log)}},exports.initialData=i,exports.sanitizeErrorMessage=S,exports.sanitizeFieldErrors=C;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("./chunks/uuid-DTU84VzH.js"),e=require("@jitsu/js"),i={get(t,e=null){const i="undefined"!=typeof window?window.initialData:null;if(!i||"object"!=typeof i)return e;let s=i;for(const i of t.split(".")){if(null==s||"object"!=typeof s||!(i in s))return e;s=s[i]}return void 0!==s?s:e}};const s="s-session-id";let n=null;function r(t){return`${t}_${i.get("store.id")}`}var o={SESSION_STORAGE_KEY:s,SESSION_TTL_MINUTES:30,resolve:()=>(n||(n=function(t,e=null){try{const i=localStorage.getItem(r(t));if(!i)return e;const s=JSON.parse(i);return s&&"object"==typeof s?(new Date).getTime()>s.expiry?(localStorage.removeItem(r(t)),e):s.value:e}catch(t){return e}}(s)||t.generateSessionId()),function(t,e,i=30){try{const s=(new Date).getTime()+60*i*1e3;localStorage.setItem(r(t),JSON.stringify({value:e,expiry:s}))}catch(t){}}(s,n),n)};class a{constructor(t){this.transaction=t}toSegment(){var t,e,i,s,n,r,o,a,d,c,l,u;return{event:"Checkout Started",properties:{checkout_id:null==(t=window.initialData)||null==(t=t.cart)?void 0:t.id,order_id:(null==(e=this.transaction)||null==(e=e.order_id)?void 0:e.toString())||"",cart_id:(null==(i=this.transaction)||null==(i=i.cart_id)?void 0:i.toString())||"",affiliation:(null==(s=this.transaction)?void 0:s.affiliation)||"",value:(null==(n=this.transaction)?void 0:n.value)||0,revenue:(null==(r=this.transaction)?void 0:r.revenue)||0,shipping:(null==(o=this.transaction)?void 0:o.shipping)||0,tax:(null==(a=this.transaction)?void 0:a.tax)||0,discount:(null==(d=this.transaction)?void 0:d.discount)||0,coupon:(null==(c=this.transaction)?void 0:c.coupon)||"",currency:(null==(l=this.transaction)?void 0:l.currency)||"",products:((null==(u=this.transaction)?void 0:u.products)||[]).map(t=>{var e;return{product_id:(null==t||null==(e=t.product_id)?void 0:e.toString())||"",sku:(null==t?void 0:t.sku)||"",name:(null==t?void 0:t.name)||"",price:(null==t?void 0:t.price)||0,quantity:(null==t?void 0:t.quantity)||0,category:(null==t?void 0:t.category)||"",url:(null==t?void 0:t.url)||"",image_url:(null==t?void 0:t.image_url)||""}})}}}}class d{constructor(t){this.transaction=t}toSegment(){return{event:"Payment Info Entered",properties:{order_id:this.transaction.order_id,payment_method:this.transaction.payment_method,checkout_id:this.transaction.checkout_id}}}}class c{constructor(t){this.details=t||{}}toSegment(){return{event:"Checkout Step Viewed",properties:{checkout_id:this.details.checkout_id,step:this.details.step,shipping_method:this.details.shipping_method,payment_method:this.details.payment_method}}}}class l{constructor(t){this.details=t||{}}toSegment(){return{event:"Checkout Step Completed",properties:{checkout_id:this.details.checkout_id,step:this.details.step,shipping_method:this.details.shipping_method,payment_method:this.details.payment_method}}}}class u{constructor(t){this.transaction=t}toSegment(){return{event:"Coupon Entered",properties:{cart_id:this.transaction.cart_id,order_id:this.transaction.order_id,coupon_id:this.transaction.coupon_id,value:this.transaction.value,currency:this.transaction.currency}}}}class h{constructor(t){this.transaction=t}toSegment(){return{event:"Coupon Applied",properties:{cart_id:this.transaction.cart_id,order_id:this.transaction.order_id,coupon_id:this.transaction.coupon_id,coupon_name:this.transaction.coupon_name,discount:this.transaction.discount,currency:this.transaction.currency}}}}class p{constructor(t){this.transaction=t}toSegment(){return{event:"Coupon Denied",properties:{cart_id:this.transaction.cart_id,order_id:this.transaction.order_id,coupon_id:this.transaction.coupon_id,coupon_name:this.transaction.coupon_name,reason:this.transaction.reason}}}}class m{constructor(t){this.transaction=t}toSegment(){return{event:"Coupon Removed",properties:{cart_id:this.transaction.cart_id,order_id:this.transaction.order_id,coupon_id:this.transaction.coupon_id,coupon_name:this.transaction.coupon_name,discount:this.transaction.discount,currency:this.transaction.currency}}}}class _{constructor(t){this.transaction=t}toSegment(){var t,e,i,s,n,r,o,a,d,c,l,u,h,p,m,_,v,y;return{event:"Address Added",properties:{checkout_id:this.transaction.cart_id,order_id:this.transaction.order_id,cart_id:this.transaction.cart_id,customer:{id:null==(t=this.transaction.customer)?void 0:t.id,name:(null==(e=this.transaction.customer)?void 0:e.first_name)+" "+(null==(i=this.transaction.customer)?void 0:i.last_name),mobile:null==(s=this.transaction.customer)?void 0:s.mobile,email:null==(n=this.transaction.customer)?void 0:n.email,gender:null==(r=this.transaction.customer)?void 0:r.gender},address:{local:null==(o=this.transaction.address)?void 0:o.local,street:null==(a=this.transaction.address)?void 0:a.street,postal_code:null==(d=this.transaction.address)?void 0:d.postal_code,short_address:null==(c=this.transaction.address)?void 0:c.short_address,region:{id:null==(l=this.transaction.address)||null==(l=l.region)?void 0:l.id,name:null==(u=this.transaction.address)||null==(u=u.region)?void 0:u.name},city:{id:null==(h=this.transaction.address)||null==(h=h.city)?void 0:h.id,name:null==(p=this.transaction.address)||null==(p=p.city)?void 0:p.name},country:{id:null==(m=this.transaction.address)||null==(m=m.country)?void 0:m.id,name:null==(_=this.transaction.address)||null==(_=_.country)?void 0:_.name},district:{id:null==(v=this.transaction.address)||null==(v=v.district)?void 0:v.id,name:null==(y=this.transaction.address)||null==(y=y.district)?void 0:y.name}}}}}}class v{constructor(t){this.transaction=t}toSegment(){var t,e,i,s,n,r,o,a,d,c,l,u,h,p,m,_,v,y;return{event:"Address Updated",properties:{checkout_id:this.transaction.cart_id,order_id:this.transaction.order_id,cart_id:this.transaction.cart_id,customer:{id:null==(t=this.transaction.customer)?void 0:t.id,name:(null==(e=this.transaction.customer)?void 0:e.first_name)+" "+(null==(i=this.transaction.customer)?void 0:i.last_name),mobile:null==(s=this.transaction.customer)?void 0:s.mobile,email:null==(n=this.transaction.customer)?void 0:n.email,gender:null==(r=this.transaction.customer)?void 0:r.gender},address:{local:null==(o=this.transaction.address)?void 0:o.local,street:null==(a=this.transaction.address)?void 0:a.street,postal_code:null==(d=this.transaction.address)?void 0:d.postal_code,short_address:null==(c=this.transaction.address)?void 0:c.short_address,region:{id:null==(l=this.transaction.address)||null==(l=l.region)?void 0:l.id,name:null==(u=this.transaction.address)||null==(u=u.region)?void 0:u.name},city:{id:null==(h=this.transaction.address)||null==(h=h.city)?void 0:h.id,name:null==(p=this.transaction.address)||null==(p=p.city)?void 0:p.name},country:{id:null==(m=this.transaction.address)||null==(m=m.country)?void 0:m.id,name:null==(_=this.transaction.address)||null==(_=_.country)?void 0:_.name},district:{id:null==(v=this.transaction.address)||null==(v=v.district)?void 0:v.id,name:null==(y=this.transaction.address)||null==(y=y.district)?void 0:y.name}}}}}}class y{constructor(t){this.transaction=t}toSegment(){var t,e,i,s,n,r,o,a;return{event:"Map Clicked",properties:{checkout_id:this.transaction.cart_id,order_id:this.transaction.order_id,cart_id:this.transaction.cart_id,customer:{id:null==(t=this.transaction.customer)?void 0:t.id,name:(null==(e=this.transaction.customer)?void 0:e.first_name)+" "+(null==(i=this.transaction.customer)?void 0:i.last_name),mobile:null==(s=this.transaction.customer)?void 0:s.mobile,email:null==(n=this.transaction.customer)?void 0:n.email,gender:null==(r=this.transaction.customer)?void 0:r.gender},address:{lat:null==(o=this.transaction.address)?void 0:o.lat,lng:null==(a=this.transaction.address)?void 0:a.lng}}}}}class g{constructor(t){this.details=t||{}}toSegment(){return{event:"Payment Submitted",properties:{checkout_id:this.details.checkout_id||i.get("cart.id"),payment_method:this.details.payment_method,gateway:this.details.gateway,is_order_free:this.details.is_order_free,cart_total:this.details.cart_total||i.get("cart.total_in_customer_currency",0),shipping_method:this.details.shipping_method,has_partial_payment:this.details.has_partial_payment||!1}}}}const k=/\b(?:\d[ -]?){13,19}\b/g,S=/[\w.+-]+@[\w-]+(\.[\w-]+)+/g,f=t=>t?String(t).replace(k,"[REDACTED]").replace(S,"[REDACTED]").slice(0,500):"",C=t=>t&&"object"==typeof t?Object.keys(t).map(e=>{const i=Array.isArray(t[e])?t[e][0]:t[e],s=i&&"object"==typeof i?i.message||JSON.stringify(i):i;return{field:e,message:f(s)}}):[];class x{constructor(t){this.details=t||{}}toSegment(){const t=this.details.error_fields||{},e=t&&"object"==typeof t?Object.keys(t):[];return{event:"Payment Failed",properties:{checkout_id:this.details.checkout_id||i.get("cart.id"),payment_method:this.details.payment_method,gateway:this.details.gateway,error_code:this.details.error_code,error_type:this.details.error_type,error_message:f(this.details.error_message),http_status:this.details.http_status,error_fields:e,field_errors:C(t)}}}}class w{constructor(t){this.details=t||{}}toSegment(){return{event:"Payment Succeeded",properties:{checkout_id:this.details.checkout_id||i.get("cart.id"),payment_method:this.details.payment_method,gateway:this.details.gateway,response_status:this.details.response_status,has_redirect:this.details.has_redirect||!1,redirect_url:this.details.redirect_url||null,order_id:this.details.order_id||null,cart_total:this.details.cart_total||i.get("cart.total_in_customer_currency",0)}}}}class E{constructor(t){this.details=t||{}}toSegment(){return{event:"Payment Pending",properties:{checkout_id:this.details.checkout_id||i.get("cart.id"),payment_method:this.details.payment_method,gateway:this.details.gateway,redirect_url:this.details.redirect_url||null,order_id:this.details.order_id||null,cart_total:this.details.cart_total||i.get("cart.total_in_customer_currency",0)}}}}var P=new class{constructor(){this.events={"Checkout Started":a,"Payment Info Entered":d,"Checkout Step Viewed":c,"Checkout Step Completed":l,"Coupon Entered":u,"Coupon Applied":h,"Coupon Denied":p,"Coupon Removed":m,"Address Added":_,"Address Updated":v,"Map Clicked":y,"Payment Submitted":g,"Payment Failed":x,"Payment Succeeded":w,"Payment Pending":E}}transform(t,e){const i=this.events[t];if(!i)return null;try{return new i(e).toSegment()}catch(t){return console.error("Failed to transform event:",t),null}}};exports.SessionService=o,exports.default=class{constructor(){this.history=[],this.customTrackers=[],this.context={},this.events=[],this._sessionId=null,this.mappedEvents={"payment::method_updated":"Payment Info Entered","checkout::step_viewed":"Checkout Step Viewed","checkout::step_completed":"Checkout Step Completed","coupon::applied":"Coupon Applied","coupon::denied":"Coupon Denied","coupon::entered":"Coupon Entered","coupon::removed":"Coupon Removed","address::added":"Address Added","address::updated":"Address Updated","map::clicked":"Map Clicked","payment::submitted":"Payment Submitted","payment::failed":"Payment Failed","payment::succeeded":"Payment Succeeded","payment::pending":"Payment Pending"};const t=i.get("config.jitsu",{}),s=i.get("store.url",null),{host:n,key:r}=t||{};this.analytics=null,n&&r&&(this.analytics=e.jitsuAnalytics({host:this.getAnalyticsHost(s),writeKey:r,cookieCapture:this.captureCookies()}),this.events=i.get("config.jitsu.events",[]),i.get("config.jitsu.context.extra",{})&&this.setExtraContext(i.get("config.jitsu.context.extra",{})),this.initSessionId(),this.setSignedInCustomerTraits(),this.page())}setSignedInCustomerTraits(){const t=i.get("customer");t&&t.id&&this.setTraits(t)}setTraits(t){t&&this.setContext("traits",t)}initSessionId(){this._sessionId=o.resolve(),this.setContext("session_id",this._sessionId)}captureCookies(){return t.captureSallaCookies()}getAnalyticsHost(e){var i;return t.resolveAnalyticsHost(e,{documentOrigin:"undefined"!=typeof window?null==(i=window.location)?void 0:i.origin:null,log:console.log})}trackSallaEvent(t){var e;if("customer::identified"===t.type)return this.setTraits(t.detail);const i=null!=(e=this.mappedEvents[t.type])?e:t.type;if(this.analytics&&this.events.includes(i))try{if(!i)return;const e=P.transform(i,t.detail);e&&this.track(e.event,e.properties)}catch(t){console.log(t)}}track(t,e={}){return this.analytics?(e=this.finalPayload(e),this.analytics.track(t,e).then(i=>(this.pushEventToCustomTrackers("track",t,e),i)).then(()=>{this.history.push({action:"track",eventName:t,payload:e})}).catch(t=>Promise.reject(t))):Promise.resolve()}page(t={}){if(!this.analytics)return Promise.resolve();const e=this.finalPayload(t);return this.analytics.page(e).then(t=>(this.pushEventToCustomTrackers("page",e),t)).then(()=>{this.history.push({action:"page",payload:e})}).catch(t=>Promise.reject(t))}finalPayload(e={}){let s={session_id:o.resolve(),cart_id:i.get("cart.id")||e.cart_id||e.checkout_id||null};return this.setContext("version",i.get("config.jitsu.version",1)),this.setContext("store_id",i.get("config.store.id")),s.session_id&&this.setContext("session_id",s.session_id),e.event_id=e.event_id||t.generateSessionId(),t._extends({},s,e,{session_id:e.session_id||s.session_id,cart_id:e.cart_id||s.cart_id})}registerTracker(e){t.isValidTracker(e,this.customTrackers,console.log)&&(this.customTrackers.push(e),t.replayHistory(e,this.history))}pushEventToCustomTrackers(e,i,s={}){return t.pushEventToTrackers(this.customTrackers,e,i,s,console.log)}setContext(t,e){var i;null==(i=this.analytics)||i.setContextProperty(t,e),this.context[t]=e}setExtraContext(e){t.applyExtraContext((t,e)=>this.setContext(t,e),e,console.log)}},exports.initialData=i,exports.sanitizeErrorMessage=f,exports.sanitizeFieldErrors=C;
|
|
2
2
|
//# sourceMappingURL=checkout.js.map
|
package/dist/esm/checkout.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{g as t,c as e,b as i,_ as s,i as n,r as o,p as r,a}from"./chunks/uuid-DYiDuXvB.js";import{jitsuAnalytics as d}from"@jitsu/js";var c={get(t,e=null){const i="undefined"!=typeof window?window.initialData:null;if(!i||"object"!=typeof i)return e;let s=i;for(const i of t.split(".")){if(null==s||"object"!=typeof s||!(i in s))return e;s=s[i]}return void 0!==s?s:e}};const l="s-session-id";let u=null;function h(t){return`${t}_${c.get("store.id")}`}var p={SESSION_STORAGE_KEY:l,SESSION_TTL_MINUTES:30,resolve:()=>(u||(u=function(t,e=null){try{const i=localStorage.getItem(h(t));if(!i)return e;const s=JSON.parse(i);return s&&"object"==typeof s?(new Date).getTime()>s.expiry?(localStorage.removeItem(h(t)),e):s.value:e}catch(t){return e}}(l)||t()),function(t,e,i=30){try{const s=(new Date).getTime()+60*i*1e3;localStorage.setItem(h(t),JSON.stringify({value:e,expiry:s}))}catch(t){}}(l,u),u)};class m{constructor(t){this.transaction=t}toSegment(){var t,e,i,s,n,o,r,a,d,c,l,u;return{event:"Checkout Started",properties:{checkout_id:null==(t=window.initialData)||null==(t=t.cart)?void 0:t.id,order_id:(null==(e=this.transaction)||null==(e=e.order_id)?void 0:e.toString())||"",cart_id:(null==(i=this.transaction)||null==(i=i.cart_id)?void 0:i.toString())||"",affiliation:(null==(s=this.transaction)?void 0:s.affiliation)||"",value:(null==(n=this.transaction)?void 0:n.value)||0,revenue:(null==(o=this.transaction)?void 0:o.revenue)||0,shipping:(null==(r=this.transaction)?void 0:r.shipping)||0,tax:(null==(a=this.transaction)?void 0:a.tax)||0,discount:(null==(d=this.transaction)?void 0:d.discount)||0,coupon:(null==(c=this.transaction)?void 0:c.coupon)||"",currency:(null==(l=this.transaction)?void 0:l.currency)||"",products:((null==(u=this.transaction)?void 0:u.products)||[]).map(t=>{var e;return{product_id:(null==t||null==(e=t.product_id)?void 0:e.toString())||"",sku:(null==t?void 0:t.sku)||"",name:(null==t?void 0:t.name)||"",price:(null==t?void 0:t.price)||0,quantity:(null==t?void 0:t.quantity)||0,category:(null==t?void 0:t.category)||"",url:(null==t?void 0:t.url)||"",image_url:(null==t?void 0:t.image_url)||""}})}}}}class _{constructor(t){this.transaction=t}toSegment(){return{event:"Payment Info Entered",properties:{order_id:this.transaction.order_id,payment_method:this.transaction.payment_method,checkout_id:this.transaction.checkout_id}}}}class v{constructor(t){this.details=t||{}}toSegment(){return{event:"Checkout Step Viewed",properties:{checkout_id:this.details.checkout_id,step:this.details.step,shipping_method:this.details.shipping_method,payment_method:this.details.payment_method}}}}class y{constructor(t){this.details=t||{}}toSegment(){return{event:"Checkout Step Completed",properties:{checkout_id:this.details.checkout_id,step:this.details.step,shipping_method:this.details.shipping_method,payment_method:this.details.payment_method}}}}class g{constructor(t){this.transaction=t}toSegment(){return{event:"Coupon Entered",properties:{cart_id:this.transaction.cart_id,order_id:this.transaction.order_id,coupon_id:this.transaction.coupon_id,value:this.transaction.value,currency:this.transaction.currency}}}}class f{constructor(t){this.transaction=t}toSegment(){return{event:"Coupon Applied",properties:{cart_id:this.transaction.cart_id,order_id:this.transaction.order_id,coupon_id:this.transaction.coupon_id,coupon_name:this.transaction.coupon_name,discount:this.transaction.discount,currency:this.transaction.currency}}}}class k{constructor(t){this.transaction=t}toSegment(){return{event:"Coupon Denied",properties:{cart_id:this.transaction.cart_id,order_id:this.transaction.order_id,coupon_id:this.transaction.coupon_id,coupon_name:this.transaction.coupon_name,reason:this.transaction.reason}}}}class S{constructor(t){this.transaction=t}toSegment(){return{event:"Coupon Removed",properties:{cart_id:this.transaction.cart_id,order_id:this.transaction.order_id,coupon_id:this.transaction.coupon_id,coupon_name:this.transaction.coupon_name,discount:this.transaction.discount,currency:this.transaction.currency}}}}class C{constructor(t){this.transaction=t}toSegment(){var t,e,i,s,n,o,r,a,d,c,l,u,h,p,m,_,v,y;return{event:"Address Added",properties:{checkout_id:this.transaction.cart_id,order_id:this.transaction.order_id,cart_id:this.transaction.cart_id,customer:{id:null==(t=this.transaction.customer)?void 0:t.id,name:(null==(e=this.transaction.customer)?void 0:e.first_name)+" "+(null==(i=this.transaction.customer)?void 0:i.last_name),mobile:null==(s=this.transaction.customer)?void 0:s.mobile,email:null==(n=this.transaction.customer)?void 0:n.email,gender:null==(o=this.transaction.customer)?void 0:o.gender},address:{local:null==(r=this.transaction.address)?void 0:r.local,street:null==(a=this.transaction.address)?void 0:a.street,postal_code:null==(d=this.transaction.address)?void 0:d.postal_code,short_address:null==(c=this.transaction.address)?void 0:c.short_address,region:{id:null==(l=this.transaction.address)||null==(l=l.region)?void 0:l.id,name:null==(u=this.transaction.address)||null==(u=u.region)?void 0:u.name},city:{id:null==(h=this.transaction.address)||null==(h=h.city)?void 0:h.id,name:null==(p=this.transaction.address)||null==(p=p.city)?void 0:p.name},country:{id:null==(m=this.transaction.address)||null==(m=m.country)?void 0:m.id,name:null==(_=this.transaction.address)||null==(_=_.country)?void 0:_.name},district:{id:null==(v=this.transaction.address)||null==(v=v.district)?void 0:v.id,name:null==(y=this.transaction.address)||null==(y=y.district)?void 0:y.name}}}}}}class w{constructor(t){this.transaction=t}toSegment(){var t,e,i,s,n,o,r,a,d,c,l,u,h,p,m,_,v,y;return{event:"Address Updated",properties:{checkout_id:this.transaction.cart_id,order_id:this.transaction.order_id,cart_id:this.transaction.cart_id,customer:{id:null==(t=this.transaction.customer)?void 0:t.id,name:(null==(e=this.transaction.customer)?void 0:e.first_name)+" "+(null==(i=this.transaction.customer)?void 0:i.last_name),mobile:null==(s=this.transaction.customer)?void 0:s.mobile,email:null==(n=this.transaction.customer)?void 0:n.email,gender:null==(o=this.transaction.customer)?void 0:o.gender},address:{local:null==(r=this.transaction.address)?void 0:r.local,street:null==(a=this.transaction.address)?void 0:a.street,postal_code:null==(d=this.transaction.address)?void 0:d.postal_code,short_address:null==(c=this.transaction.address)?void 0:c.short_address,region:{id:null==(l=this.transaction.address)||null==(l=l.region)?void 0:l.id,name:null==(u=this.transaction.address)||null==(u=u.region)?void 0:u.name},city:{id:null==(h=this.transaction.address)||null==(h=h.city)?void 0:h.id,name:null==(p=this.transaction.address)||null==(p=p.city)?void 0:p.name},country:{id:null==(m=this.transaction.address)||null==(m=m.country)?void 0:m.id,name:null==(_=this.transaction.address)||null==(_=_.country)?void 0:_.name},district:{id:null==(v=this.transaction.address)||null==(v=v.district)?void 0:v.id,name:null==(y=this.transaction.address)||null==(y=y.district)?void 0:y.name}}}}}}class P{constructor(t){this.transaction=t}toSegment(){var t,e,i,s,n,o,r,a;return{event:"Map Clicked",properties:{checkout_id:this.transaction.cart_id,order_id:this.transaction.order_id,cart_id:this.transaction.cart_id,customer:{id:null==(t=this.transaction.customer)?void 0:t.id,name:(null==(e=this.transaction.customer)?void 0:e.first_name)+" "+(null==(i=this.transaction.customer)?void 0:i.last_name),mobile:null==(s=this.transaction.customer)?void 0:s.mobile,email:null==(n=this.transaction.customer)?void 0:n.email,gender:null==(o=this.transaction.customer)?void 0:o.gender},address:{lat:null==(r=this.transaction.address)?void 0:r.lat,lng:null==(a=this.transaction.address)?void 0:a.lng}}}}}class b{constructor(t){this.details=t||{}}toSegment(){return{event:"Payment Submitted",properties:{checkout_id:this.details.checkout_id||c.get("cart.id"),payment_method:this.details.payment_method,gateway:this.details.gateway,is_order_free:this.details.is_order_free,cart_total:this.details.cart_total||c.get("cart.total_in_customer_currency",0),shipping_method:this.details.shipping_method,has_partial_payment:this.details.has_partial_payment||!1}}}}const T=/\b(?:\d[ -]?){13,19}\b/g,x=/[\w.+-]+@[\w-]+(\.[\w-]+)+/g,E=t=>t?String(t).replace(T,"[REDACTED]").replace(x,"[REDACTED]").slice(0,500):"",j=t=>t&&"object"==typeof t?Object.keys(t).map(e=>{const i=Array.isArray(t[e])?t[e][0]:t[e],s=i&&"object"==typeof i?i.message||JSON.stringify(i):i;return{field:e,message:E(s)}}):[];class A{constructor(t){this.details=t||{}}toSegment(){const t=this.details.error_fields||{},e=t&&"object"==typeof t?Object.keys(t):[];return{event:"Payment Failed",properties:{checkout_id:this.details.checkout_id||c.get("cart.id"),payment_method:this.details.payment_method,gateway:this.details.gateway,error_code:this.details.error_code,error_type:this.details.error_type,error_message:E(this.details.error_message),http_status:this.details.http_status,error_fields:e,field_errors:j(t)}}}}class I{constructor(t){this.details=t||{}}toSegment(){return{event:"Payment Succeeded",properties:{checkout_id:this.details.checkout_id||c.get("cart.id"),payment_method:this.details.payment_method,gateway:this.details.gateway,response_status:this.details.response_status,has_redirect:this.details.has_redirect||!1,redirect_url:this.details.redirect_url||null,order_id:this.details.order_id||null,cart_total:this.details.cart_total||c.get("cart.total_in_customer_currency",0)}}}}class D{constructor(t){this.details=t||{}}toSegment(){return{event:"Payment Pending",properties:{checkout_id:this.details.checkout_id||c.get("cart.id"),payment_method:this.details.payment_method,gateway:this.details.gateway,redirect_url:this.details.redirect_url||null,order_id:this.details.order_id||null,cart_total:this.details.cart_total||c.get("cart.total_in_customer_currency",0)}}}}var O=new class{constructor(){this.events={"Checkout Started":m,"Payment Info Entered":_,"Checkout Step Viewed":v,"Checkout Step Completed":y,"Coupon Entered":g,"Coupon Applied":f,"Coupon Denied":k,"Coupon Removed":S,"Address Added":C,"Address Updated":w,"Map Clicked":P,"Payment Submitted":b,"Payment Failed":A,"Payment Succeeded":I,"Payment Pending":D}}transform(t,e){const i=this.events[t];if(!i)return null;try{return new i(e).toSegment()}catch(t){return console.error("Failed to transform event:",t),null}}};class N{constructor(){this.history=[],this.customTrackers=[],this.context={},this.events=[],this._sessionId=null,this.mappedEvents={"payment::method_updated":"Payment Info Entered","checkout::step_viewed":"Checkout Step Viewed","checkout::step_completed":"Checkout Step Completed","coupon::applied":"Coupon Applied","coupon::denied":"Coupon Denied","coupon::entered":"Coupon Entered","coupon::removed":"Coupon Removed","address::added":"Address Added","address::updated":"Address Updated","map::clicked":"Map Clicked","payment::submitted":"Payment Submitted","payment::failed":"Payment Failed","payment::succeeded":"Payment Succeeded","payment::pending":"Payment Pending"};const t=c.get("config.jitsu",{}),e=c.get("store.url",null),{host:i,key:s}=t||{};this.analytics=null,i&&s&&(this.analytics=d({host:this.getAnalyticsHost(e),writeKey:s,cookieCapture:this.captureCookies(),fetch:this.customFetch}),this.events=c.get("config.jitsu.events",[]),c.get("config.jitsu.context.extra",{})&&this.setExtraContext(c.get("config.jitsu.context.extra",{})),this.initSessionId(),this.setSignedInCustomerTraits(),this.page())}setSignedInCustomerTraits(){const t=c.get("customer");t&&t.id&&this.setTraits(t)}setTraits(t){t&&this.setContext("traits",t)}initSessionId(){this._sessionId=p.resolve(),this.setContext("session_id",this._sessionId)}captureCookies(){return e()}getAnalyticsHost(t){var e;return i(t,{documentOrigin:"undefined"!=typeof window?null==(e=window.location)?void 0:e.origin:null,log:console.log})}trackSallaEvent(t){var e;if("customer::identified"===t.type)return this.setTraits(t.detail);const i=null!=(e=this.mappedEvents[t.type])?e:t.type;if(this.analytics&&this.events.includes(i))try{if(!i)return;const e=O.transform(i,t.detail);e&&this.track(e.event,e.properties)}catch(t){console.log(t)}}track(t,e={}){return this.analytics?(e=this.finalPayload(e),this.analytics.track(t,e).then(i=>(this.pushEventToCustomTrackers("track",t,e),i)).then(()=>{this.history.push({action:"track",eventName:t,payload:e})}).catch(t=>Promise.reject(t))):Promise.resolve()}page(t={}){if(!this.analytics)return Promise.resolve();const e=this.finalPayload(t);return this.analytics.page(e).then(t=>(this.pushEventToCustomTrackers("page",e),t)).then(()=>{this.history.push({action:"page",payload:e})}).catch(t=>Promise.reject(t))}finalPayload(e={}){let i={session_id:p.resolve(),cart_id:c.get("cart.id")||e.cart_id||e.checkout_id||null};return this.setContext("version",c.get("config.jitsu.version",1)),this.setContext("store_id",c.get("config.store.id")),i.session_id&&this.setContext("session_id",i.session_id),e.event_id=e.event_id||t(),s({},i,e,{session_id:e.session_id||i.session_id,cart_id:e.cart_id||i.cart_id})}registerTracker(t){n(t,this.customTrackers,console.log)&&(this.customTrackers.push(t),o(t,this.history))}pushEventToCustomTrackers(t,e,i={}){return r(this.customTrackers,t,e,i,console.log)}customFetch(t,e){var i,n;if(null==(i=window.navigator)||!i.sendBeacon)return fetch(t,s({},e,{keepalive:!0}));const o=`${t}?writekey=${null==e||null==(n=e.headers)?void 0:n["X-Write-Key"]}`,r="string"==typeof(null==e?void 0:e.body)?null==e?void 0:e.body:JSON.stringify((null==e?void 0:e.body)||{}),a=new Blob([r],{type:"application/json"});return navigator.sendBeacon(o,a)?Promise.resolve(new Response('{"status":"sent_via_beacon"}',{status:200,headers:{"Content-Type":"application/json"}})):fetch(t,s({},e,{keepalive:!0}))}setContext(t,e){var i;null==(i=this.analytics)||i.setContextProperty(t,e),this.context[t]=e}setExtraContext(t){a((t,e)=>this.setContext(t,e),t,console.log)}}export{p as SessionService,N as default,c as initialData,E as sanitizeErrorMessage,j as sanitizeFieldErrors};
|
|
1
|
+
import{g as t,c as e,b as i,_ as s,i as n,r as o,p as r,a}from"./chunks/uuid-DYiDuXvB.js";import{jitsuAnalytics as d}from"@jitsu/js";var c={get(t,e=null){const i="undefined"!=typeof window?window.initialData:null;if(!i||"object"!=typeof i)return e;let s=i;for(const i of t.split(".")){if(null==s||"object"!=typeof s||!(i in s))return e;s=s[i]}return void 0!==s?s:e}};const l="s-session-id";let u=null;function h(t){return`${t}_${c.get("store.id")}`}var p={SESSION_STORAGE_KEY:l,SESSION_TTL_MINUTES:30,resolve:()=>(u||(u=function(t,e=null){try{const i=localStorage.getItem(h(t));if(!i)return e;const s=JSON.parse(i);return s&&"object"==typeof s?(new Date).getTime()>s.expiry?(localStorage.removeItem(h(t)),e):s.value:e}catch(t){return e}}(l)||t()),function(t,e,i=30){try{const s=(new Date).getTime()+60*i*1e3;localStorage.setItem(h(t),JSON.stringify({value:e,expiry:s}))}catch(t){}}(l,u),u)};class m{constructor(t){this.transaction=t}toSegment(){var t,e,i,s,n,o,r,a,d,c,l,u;return{event:"Checkout Started",properties:{checkout_id:null==(t=window.initialData)||null==(t=t.cart)?void 0:t.id,order_id:(null==(e=this.transaction)||null==(e=e.order_id)?void 0:e.toString())||"",cart_id:(null==(i=this.transaction)||null==(i=i.cart_id)?void 0:i.toString())||"",affiliation:(null==(s=this.transaction)?void 0:s.affiliation)||"",value:(null==(n=this.transaction)?void 0:n.value)||0,revenue:(null==(o=this.transaction)?void 0:o.revenue)||0,shipping:(null==(r=this.transaction)?void 0:r.shipping)||0,tax:(null==(a=this.transaction)?void 0:a.tax)||0,discount:(null==(d=this.transaction)?void 0:d.discount)||0,coupon:(null==(c=this.transaction)?void 0:c.coupon)||"",currency:(null==(l=this.transaction)?void 0:l.currency)||"",products:((null==(u=this.transaction)?void 0:u.products)||[]).map(t=>{var e;return{product_id:(null==t||null==(e=t.product_id)?void 0:e.toString())||"",sku:(null==t?void 0:t.sku)||"",name:(null==t?void 0:t.name)||"",price:(null==t?void 0:t.price)||0,quantity:(null==t?void 0:t.quantity)||0,category:(null==t?void 0:t.category)||"",url:(null==t?void 0:t.url)||"",image_url:(null==t?void 0:t.image_url)||""}})}}}}class _{constructor(t){this.transaction=t}toSegment(){return{event:"Payment Info Entered",properties:{order_id:this.transaction.order_id,payment_method:this.transaction.payment_method,checkout_id:this.transaction.checkout_id}}}}class v{constructor(t){this.details=t||{}}toSegment(){return{event:"Checkout Step Viewed",properties:{checkout_id:this.details.checkout_id,step:this.details.step,shipping_method:this.details.shipping_method,payment_method:this.details.payment_method}}}}class y{constructor(t){this.details=t||{}}toSegment(){return{event:"Checkout Step Completed",properties:{checkout_id:this.details.checkout_id,step:this.details.step,shipping_method:this.details.shipping_method,payment_method:this.details.payment_method}}}}class g{constructor(t){this.transaction=t}toSegment(){return{event:"Coupon Entered",properties:{cart_id:this.transaction.cart_id,order_id:this.transaction.order_id,coupon_id:this.transaction.coupon_id,value:this.transaction.value,currency:this.transaction.currency}}}}class f{constructor(t){this.transaction=t}toSegment(){return{event:"Coupon Applied",properties:{cart_id:this.transaction.cart_id,order_id:this.transaction.order_id,coupon_id:this.transaction.coupon_id,coupon_name:this.transaction.coupon_name,discount:this.transaction.discount,currency:this.transaction.currency}}}}class k{constructor(t){this.transaction=t}toSegment(){return{event:"Coupon Denied",properties:{cart_id:this.transaction.cart_id,order_id:this.transaction.order_id,coupon_id:this.transaction.coupon_id,coupon_name:this.transaction.coupon_name,reason:this.transaction.reason}}}}class S{constructor(t){this.transaction=t}toSegment(){return{event:"Coupon Removed",properties:{cart_id:this.transaction.cart_id,order_id:this.transaction.order_id,coupon_id:this.transaction.coupon_id,coupon_name:this.transaction.coupon_name,discount:this.transaction.discount,currency:this.transaction.currency}}}}class C{constructor(t){this.transaction=t}toSegment(){var t,e,i,s,n,o,r,a,d,c,l,u,h,p,m,_,v,y;return{event:"Address Added",properties:{checkout_id:this.transaction.cart_id,order_id:this.transaction.order_id,cart_id:this.transaction.cart_id,customer:{id:null==(t=this.transaction.customer)?void 0:t.id,name:(null==(e=this.transaction.customer)?void 0:e.first_name)+" "+(null==(i=this.transaction.customer)?void 0:i.last_name),mobile:null==(s=this.transaction.customer)?void 0:s.mobile,email:null==(n=this.transaction.customer)?void 0:n.email,gender:null==(o=this.transaction.customer)?void 0:o.gender},address:{local:null==(r=this.transaction.address)?void 0:r.local,street:null==(a=this.transaction.address)?void 0:a.street,postal_code:null==(d=this.transaction.address)?void 0:d.postal_code,short_address:null==(c=this.transaction.address)?void 0:c.short_address,region:{id:null==(l=this.transaction.address)||null==(l=l.region)?void 0:l.id,name:null==(u=this.transaction.address)||null==(u=u.region)?void 0:u.name},city:{id:null==(h=this.transaction.address)||null==(h=h.city)?void 0:h.id,name:null==(p=this.transaction.address)||null==(p=p.city)?void 0:p.name},country:{id:null==(m=this.transaction.address)||null==(m=m.country)?void 0:m.id,name:null==(_=this.transaction.address)||null==(_=_.country)?void 0:_.name},district:{id:null==(v=this.transaction.address)||null==(v=v.district)?void 0:v.id,name:null==(y=this.transaction.address)||null==(y=y.district)?void 0:y.name}}}}}}class w{constructor(t){this.transaction=t}toSegment(){var t,e,i,s,n,o,r,a,d,c,l,u,h,p,m,_,v,y;return{event:"Address Updated",properties:{checkout_id:this.transaction.cart_id,order_id:this.transaction.order_id,cart_id:this.transaction.cart_id,customer:{id:null==(t=this.transaction.customer)?void 0:t.id,name:(null==(e=this.transaction.customer)?void 0:e.first_name)+" "+(null==(i=this.transaction.customer)?void 0:i.last_name),mobile:null==(s=this.transaction.customer)?void 0:s.mobile,email:null==(n=this.transaction.customer)?void 0:n.email,gender:null==(o=this.transaction.customer)?void 0:o.gender},address:{local:null==(r=this.transaction.address)?void 0:r.local,street:null==(a=this.transaction.address)?void 0:a.street,postal_code:null==(d=this.transaction.address)?void 0:d.postal_code,short_address:null==(c=this.transaction.address)?void 0:c.short_address,region:{id:null==(l=this.transaction.address)||null==(l=l.region)?void 0:l.id,name:null==(u=this.transaction.address)||null==(u=u.region)?void 0:u.name},city:{id:null==(h=this.transaction.address)||null==(h=h.city)?void 0:h.id,name:null==(p=this.transaction.address)||null==(p=p.city)?void 0:p.name},country:{id:null==(m=this.transaction.address)||null==(m=m.country)?void 0:m.id,name:null==(_=this.transaction.address)||null==(_=_.country)?void 0:_.name},district:{id:null==(v=this.transaction.address)||null==(v=v.district)?void 0:v.id,name:null==(y=this.transaction.address)||null==(y=y.district)?void 0:y.name}}}}}}class P{constructor(t){this.transaction=t}toSegment(){var t,e,i,s,n,o,r,a;return{event:"Map Clicked",properties:{checkout_id:this.transaction.cart_id,order_id:this.transaction.order_id,cart_id:this.transaction.cart_id,customer:{id:null==(t=this.transaction.customer)?void 0:t.id,name:(null==(e=this.transaction.customer)?void 0:e.first_name)+" "+(null==(i=this.transaction.customer)?void 0:i.last_name),mobile:null==(s=this.transaction.customer)?void 0:s.mobile,email:null==(n=this.transaction.customer)?void 0:n.email,gender:null==(o=this.transaction.customer)?void 0:o.gender},address:{lat:null==(r=this.transaction.address)?void 0:r.lat,lng:null==(a=this.transaction.address)?void 0:a.lng}}}}}class T{constructor(t){this.details=t||{}}toSegment(){return{event:"Payment Submitted",properties:{checkout_id:this.details.checkout_id||c.get("cart.id"),payment_method:this.details.payment_method,gateway:this.details.gateway,is_order_free:this.details.is_order_free,cart_total:this.details.cart_total||c.get("cart.total_in_customer_currency",0),shipping_method:this.details.shipping_method,has_partial_payment:this.details.has_partial_payment||!1}}}}const x=/\b(?:\d[ -]?){13,19}\b/g,E=/[\w.+-]+@[\w-]+(\.[\w-]+)+/g,b=t=>t?String(t).replace(x,"[REDACTED]").replace(E,"[REDACTED]").slice(0,500):"",A=t=>t&&"object"==typeof t?Object.keys(t).map(e=>{const i=Array.isArray(t[e])?t[e][0]:t[e],s=i&&"object"==typeof i?i.message||JSON.stringify(i):i;return{field:e,message:b(s)}}):[];class j{constructor(t){this.details=t||{}}toSegment(){const t=this.details.error_fields||{},e=t&&"object"==typeof t?Object.keys(t):[];return{event:"Payment Failed",properties:{checkout_id:this.details.checkout_id||c.get("cart.id"),payment_method:this.details.payment_method,gateway:this.details.gateway,error_code:this.details.error_code,error_type:this.details.error_type,error_message:b(this.details.error_message),http_status:this.details.http_status,error_fields:e,field_errors:A(t)}}}}class I{constructor(t){this.details=t||{}}toSegment(){return{event:"Payment Succeeded",properties:{checkout_id:this.details.checkout_id||c.get("cart.id"),payment_method:this.details.payment_method,gateway:this.details.gateway,response_status:this.details.response_status,has_redirect:this.details.has_redirect||!1,redirect_url:this.details.redirect_url||null,order_id:this.details.order_id||null,cart_total:this.details.cart_total||c.get("cart.total_in_customer_currency",0)}}}}class D{constructor(t){this.details=t||{}}toSegment(){return{event:"Payment Pending",properties:{checkout_id:this.details.checkout_id||c.get("cart.id"),payment_method:this.details.payment_method,gateway:this.details.gateway,redirect_url:this.details.redirect_url||null,order_id:this.details.order_id||null,cart_total:this.details.cart_total||c.get("cart.total_in_customer_currency",0)}}}}var O=new class{constructor(){this.events={"Checkout Started":m,"Payment Info Entered":_,"Checkout Step Viewed":v,"Checkout Step Completed":y,"Coupon Entered":g,"Coupon Applied":f,"Coupon Denied":k,"Coupon Removed":S,"Address Added":C,"Address Updated":w,"Map Clicked":P,"Payment Submitted":T,"Payment Failed":j,"Payment Succeeded":I,"Payment Pending":D}}transform(t,e){const i=this.events[t];if(!i)return null;try{return new i(e).toSegment()}catch(t){return console.error("Failed to transform event:",t),null}}};class N{constructor(){this.history=[],this.customTrackers=[],this.context={},this.events=[],this._sessionId=null,this.mappedEvents={"payment::method_updated":"Payment Info Entered","checkout::step_viewed":"Checkout Step Viewed","checkout::step_completed":"Checkout Step Completed","coupon::applied":"Coupon Applied","coupon::denied":"Coupon Denied","coupon::entered":"Coupon Entered","coupon::removed":"Coupon Removed","address::added":"Address Added","address::updated":"Address Updated","map::clicked":"Map Clicked","payment::submitted":"Payment Submitted","payment::failed":"Payment Failed","payment::succeeded":"Payment Succeeded","payment::pending":"Payment Pending"};const t=c.get("config.jitsu",{}),e=c.get("store.url",null),{host:i,key:s}=t||{};this.analytics=null,i&&s&&(this.analytics=d({host:this.getAnalyticsHost(e),writeKey:s,cookieCapture:this.captureCookies()}),this.events=c.get("config.jitsu.events",[]),c.get("config.jitsu.context.extra",{})&&this.setExtraContext(c.get("config.jitsu.context.extra",{})),this.initSessionId(),this.setSignedInCustomerTraits(),this.page())}setSignedInCustomerTraits(){const t=c.get("customer");t&&t.id&&this.setTraits(t)}setTraits(t){t&&this.setContext("traits",t)}initSessionId(){this._sessionId=p.resolve(),this.setContext("session_id",this._sessionId)}captureCookies(){return e()}getAnalyticsHost(t){var e;return i(t,{documentOrigin:"undefined"!=typeof window?null==(e=window.location)?void 0:e.origin:null,log:console.log})}trackSallaEvent(t){var e;if("customer::identified"===t.type)return this.setTraits(t.detail);const i=null!=(e=this.mappedEvents[t.type])?e:t.type;if(this.analytics&&this.events.includes(i))try{if(!i)return;const e=O.transform(i,t.detail);e&&this.track(e.event,e.properties)}catch(t){console.log(t)}}track(t,e={}){return this.analytics?(e=this.finalPayload(e),this.analytics.track(t,e).then(i=>(this.pushEventToCustomTrackers("track",t,e),i)).then(()=>{this.history.push({action:"track",eventName:t,payload:e})}).catch(t=>Promise.reject(t))):Promise.resolve()}page(t={}){if(!this.analytics)return Promise.resolve();const e=this.finalPayload(t);return this.analytics.page(e).then(t=>(this.pushEventToCustomTrackers("page",e),t)).then(()=>{this.history.push({action:"page",payload:e})}).catch(t=>Promise.reject(t))}finalPayload(e={}){let i={session_id:p.resolve(),cart_id:c.get("cart.id")||e.cart_id||e.checkout_id||null};return this.setContext("version",c.get("config.jitsu.version",1)),this.setContext("store_id",c.get("config.store.id")),i.session_id&&this.setContext("session_id",i.session_id),e.event_id=e.event_id||t(),s({},i,e,{session_id:e.session_id||i.session_id,cart_id:e.cart_id||i.cart_id})}registerTracker(t){n(t,this.customTrackers,console.log)&&(this.customTrackers.push(t),o(t,this.history))}pushEventToCustomTrackers(t,e,i={}){return r(this.customTrackers,t,e,i,console.log)}setContext(t,e){var i;null==(i=this.analytics)||i.setContextProperty(t,e),this.context[t]=e}setExtraContext(t){a((t,e)=>this.setContext(t,e),t,console.log)}}export{p as SessionService,N as default,c as initialData,b as sanitizeErrorMessage,A as sanitizeFieldErrors};
|
|
2
2
|
//# sourceMappingURL=checkout.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@salla.sa/analytics",
|
|
3
|
-
"version": "2.14.
|
|
3
|
+
"version": "2.14.569",
|
|
4
4
|
"description": "Salla unified analytics: Jitsu engine, event transformers and trackers for storefront (twilight) and checkout",
|
|
5
5
|
"main": "dist/cjs/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
@@ -63,5 +63,5 @@
|
|
|
63
63
|
"rollup-plugin-exclude-dependencies-from-bundle": "^1.1.24",
|
|
64
64
|
"rollup-plugin-version-injector": "^1.3.3"
|
|
65
65
|
},
|
|
66
|
-
"gitHead": "
|
|
66
|
+
"gitHead": "3c0815da0b6b3cfcb24245834f09ed9d96a29c14"
|
|
67
67
|
}
|
package/src/checkout/index.js
CHANGED
|
@@ -42,8 +42,6 @@ export default class Analytics {
|
|
|
42
42
|
host: this.getAnalyticsHost(storeUrl),
|
|
43
43
|
writeKey: writeKey,
|
|
44
44
|
cookieCapture: this.captureCookies(),
|
|
45
|
-
fetch: this.customFetch,
|
|
46
|
-
|
|
47
45
|
});
|
|
48
46
|
this.events = initialData.get('config.jitsu.events', []);
|
|
49
47
|
if (initialData.get('config.jitsu.context.extra', {})) {
|
|
@@ -188,28 +186,6 @@ export default class Analytics {
|
|
|
188
186
|
return pushEventToTrackers(this.customTrackers, action, eventName, payload, console.log);
|
|
189
187
|
}
|
|
190
188
|
|
|
191
|
-
customFetch(url, options) {
|
|
192
|
-
if (!window.navigator?.sendBeacon) {
|
|
193
|
-
return fetch(url, { ...options, keepalive: true });
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
const beaconUrl = `${url}?writekey=${options?.headers?.['X-Write-Key']}`;
|
|
197
|
-
const body = typeof options?.body === "string" ? options?.body : JSON.stringify(options?.body || {});
|
|
198
|
-
const blob = new Blob([body], { type: "application/json" });
|
|
199
|
-
|
|
200
|
-
const ok = navigator.sendBeacon(beaconUrl, blob);
|
|
201
|
-
if (!ok) {
|
|
202
|
-
// Beacon queue full or payload over quota — keepalive keeps the
|
|
203
|
-
// request alive through page navigation like a beacon would.
|
|
204
|
-
return fetch(url, { ...options, keepalive: true });
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
return Promise.resolve(new Response('{"status":"sent_via_beacon"}', {
|
|
208
|
-
status: 200,
|
|
209
|
-
headers: { "Content-Type": "application/json" }
|
|
210
|
-
}));
|
|
211
|
-
}
|
|
212
|
-
|
|
213
189
|
setContext(key, value){
|
|
214
190
|
this.analytics?.setContextProperty(key, value);
|
|
215
191
|
this.context[key] = value;
|