@revley/sandbox-checkout-package 0.1.999 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,10 +1,10 @@
1
- # Package for redirecting browser
2
-
3
- ### How to make a change
4
-
5
- #### TODO: make this a github action
6
-
7
- 1. Make the code change
8
- 2. update the package.json version number
9
- 3. run `npm run build`
10
- 4. run `npm publish --public`
1
+ # Package for redirecting browser
2
+
3
+ ### How to make a change
4
+
5
+ #### TODO: make this a github action
6
+
7
+ 1. Make the code change
8
+ 2. update the package.json version number
9
+ 3. run `npm run build`
10
+ 4. run `npm publish --public`
@@ -1 +1 @@
1
- "use strict";var R=Object.defineProperty;var E=Object.getOwnPropertyDescriptor;var U=Object.getOwnPropertyNames;var x=Object.prototype.hasOwnProperty;var A=(l,a,g,_)=>{if(a&&typeof a=="object"||typeof a=="function")for(let c of U(a))!x.call(l,c)&&c!==g&&R(l,c,{get:()=>a[c],enumerable:!(_=E(a,c))||_.enumerable});return l};var I=l=>A(R({},"__esModule",{value:!0}),l);var T={};module.exports=I(T);window.initRevleyCheckout=(l,a)=>{var v;if(window.__checkoutInterceptInstalled)return;window.__checkoutInterceptInstalled=!0;let g=[/^\/(?:cart\/)?checkout(?:[?#]|$)/i,/^\/checkouts\/[a-z0-9]{32}(?:[\/?#]|$)/i],_=!1,c=(...t)=>_?console.debug("[checkout-intercept]",...t):void 0,k=t=>t.replace(/\/+$/,""),L=t=>t.endsWith(".myshopify.com")||t===location.hostname;function P(t,n=location.origin){try{return t instanceof URL?t:new URL(String(t),n)}catch{return null}}function p(t){let n=P(t);if(!n||!L(n.hostname))return!1;let i=k(n.pathname),e=g.some(r=>r.test(i));return e&&c("detected checkout-like URL:",String(n)),e}async function m(){let n=await(await fetch("/cart.js")).json(),i=n.discount_codes||[],e=(n.items||[]).map(o=>({variantId:o==null?void 0:o.variant_id,quantity:(o==null?void 0:o.quantity)||0,sellingPlanAllocation:(o==null?void 0:o.selling_plan_allocation)||null})).filter(o=>!!o.variantId&&o.quantity>0),r={},u=["_fbp","_fbc","_fbq","_ig_","_igbp","_igshid","_igsh","_ig_visitor_id","_gclid","_gcl_au","_gcl_aw","_gcl_dc","_gcl_gb","_ttp","_tt_enable_cookie","_scid","_sctr","_pin_unauth","_pin_id","_twitter_ads_id","_li_ss","_uetsid","_uetvid","_amzn","_amzn_ads_","_yclid","_ycl_","_rdt_uid","_quora_","_tb_","_ob_","_criteo_","_adobe_","_ttd_","_dv360_","_fbcv","_shopify_pixel_"],f=o=>u.some(d=>o===d||o.startsWith(d)||o.includes(d));document.cookie&&document.cookie.split(";").forEach(o=>{let d=o.trim();if(d){let[b,...S]=d.split("="),w=S.join("=");b&&w&&f(b)&&(r[b]=w)}});let h=await(await fetch(`${a}/checkout`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({variants:e,storeId:l,cookies:r})})).text();if(console.log("checkoutUrl",h),h)location.assign(h);else{console.error("No checkout ID received from backend");return}}let y=!1;function s(t){return y||!p(t)?!1:(y=!0,m(),!0)}if(window.__isCheckoutLike=p,window.__maybeRedirect=s,!((v=window.Shopify)!=null&&v.designMode)){{let t=window.location,n=t.assign.bind(t),i=t.replace.bind(t);try{Object.defineProperty(t,"assign",{value:e=>{s(e)||n(e)},writable:!0,configurable:!0}),Object.defineProperty(t,"replace",{value:e=>{s(e)||i(e)},writable:!0,configurable:!0})}catch(e){c("Could not override location methods, relying on Service Worker:",e)}}{let t=window.open;window.open=function(n,i,e){return n&&s(n)?null:t.call(window,n,i,e)}}{let t=history.pushState.bind(history),n=history.replaceState.bind(history);history.pushState=function(i,e,r){if(!(r!=null&&s(r)))return t(i,e,r)},history.replaceState=function(i,e,r){if(!(r!=null&&s(r)))return n(i,e,r)},addEventListener("popstate",()=>void s(location.href),!0)}{let t=n=>n.metaKey||n.ctrlKey||n.shiftKey||n.altKey||n.button!==0;addEventListener("click",n=>{let i=n;if(i.defaultPrevented||t(i))return;let e=n.target;for(;e&&e.nodeType===1&&e.tagName!=="A";)e=e.parentElement;let r=e;!r||!r.href||p(r.href)&&(i.preventDefault(),i.stopPropagation(),m())},!0)}{let t=HTMLFormElement.prototype.submit;HTMLFormElement.prototype.submit=function(){try{let i=this.getAttribute("action")||"";if(s(i)||Array.from(this.elements).some(r=>(r==null?void 0:r.name)==="checkout")&&s("/checkout"))return}catch{}return t.call(this)},addEventListener("submit",n=>{try{let i=n.target,e=(i==null?void 0:i.getAttribute("action"))||"",r=Array.from((i==null?void 0:i.elements)||[]);(p(e)||r.some(u=>(u==null?void 0:u.name)==="checkout"))&&(n.preventDefault(),n.stopPropagation(),m())}catch{}},!0)}{let t=location.href;setInterval(()=>{location.href!==t&&(t=location.href,s(t))},250)}{let t=XMLHttpRequest.prototype.open;XMLHttpRequest.prototype.open=function(i,e,r,u,f){try{typeof e=="string"&&p(e)&&s(e)}catch{}return t.call(this,i,e,!!r,u,f)}}{let t=window.fetch.bind(window);window.fetch=function(i,e){try{let r=typeof i=="string"||i instanceof URL?String(i):i.url;r&&p(r)&&s(r)}catch{}return t(i,e)}}}};
1
+ "use strict";var T=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var S=Object.getOwnPropertyNames;var C=Object.prototype.hasOwnProperty;var I=(c,a,f,g)=>{if(a&&typeof a=="object"||typeof a=="function")for(let s of S(a))!C.call(c,s)&&s!==f&&T(c,s,{get:()=>a[s],enumerable:!(g=x(a,s))||g.enumerable});return c};var H=c=>I(T({},"__esModule",{value:!0}),c);var M={};module.exports=H(M);window.initRevleyCheckout=(c,a)=>{var k,v;if(window.__checkoutInterceptInstalled)return;window.__checkoutInterceptInstalled=!0;let f=[/^\/(?:cart\/)?checkout(?:[?#]|$)/i,/^\/checkouts\/[a-z0-9]{32}(?:[\/?#]|$)/i],g=!1,s=(...t)=>g?console.debug("[checkout-intercept]",...t):void 0,A=t=>t.replace(/\/+$/,""),U=t=>t.endsWith(".myshopify.com")||t===location.hostname;function b(t,i=location.origin){try{return t instanceof URL?t:new URL(String(t),i)}catch{return null}}function u(t){let i=b(t);if(!i||!U(i.hostname))return!1;let n=A(i.pathname),e=f.some(r=>r.test(n));return e&&s("detected checkout-like URL:",String(i)),e}async function _(){let i=await(await fetch("/cart.js")).json(),n={},e=["_fbp","_fbc","_fbq","_ig_","_igbp","_igshid","_igsh","_ig_visitor_id","_gclid","_gcl_au","_gcl_aw","_gcl_dc","_gcl_gb","_ttp","_tt_enable_cookie","_scid","_sctr","_pin_unauth","_pin_id","_twitter_ads_id","_li_ss","_uetsid","_uetvid","_amzn","_amzn_ads_","_yclid","_ycl_","_rdt_uid","_quora_","_tb_","_ob_","_criteo_","_adobe_","_ttd_","_dv360_","_fbcv","_shopify_pixel_"],r=p=>e.some(d=>p===d||p.startsWith(d)||p.includes(d));document.cookie&&document.cookie.split(";").forEach(p=>{let d=p.trim();if(d){let[h,...E]=d.split("="),P=E.join("=");h&&P&&r(h)&&(n[h]=P)}});let l=`gid://shopify/Cart/${i.token}`,m=await(await fetch(`${a}/checkout`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({storeId:c,cartId:l,cookies:n})})).text();if(console.log("checkoutUrl",m),!m){console.error("No checkout ID received from backend");return}let L=b(m);if(!L){console.error("Invalid checkout URL received from backend:",m);return}location.assign(L.href)}let y=!1;function o(t){return y||!u(t)?!1:(y=!0,_(),!0)}if(window.__isCheckoutLike=u,window.__maybeRedirect=o,(k=window.Shopify)!=null&&k.designMode)return;{let t=window.location,i=t.assign.bind(t),n=t.replace.bind(t);try{Object.defineProperty(t,"assign",{value:e=>{o(e)||i(e)},writable:!0,configurable:!0}),Object.defineProperty(t,"replace",{value:e=>{o(e)||n(e)},writable:!0,configurable:!0})}catch(e){s("Could not override location methods, relying on Service Worker:",e)}}{let t=window.open;window.open=function(i,n,e){return i&&o(i)?null:t.call(window,i,n,e)}}{let t=history.pushState.bind(history),i=history.replaceState.bind(history);history.pushState=function(n,e,r){if(!(r!=null&&o(r)))return t(n,e,r)},history.replaceState=function(n,e,r){if(!(r!=null&&o(r)))return i(n,e,r)},addEventListener("popstate",()=>void o(location.href),!0)}{let t=i=>i.metaKey||i.ctrlKey||i.shiftKey||i.altKey||i.button!==0;addEventListener("click",i=>{let n=i;if(n.defaultPrevented||t(n))return;let e=i.target;for(;e&&e.nodeType===1&&e.tagName!=="A";)e=e.parentElement;let r=e;!r||!r.href||u(r.href)&&(n.preventDefault(),n.stopPropagation(),_())},!0)}{let t=HTMLFormElement.prototype.submit;HTMLFormElement.prototype.submit=function(){try{if(w(this))return t.call(this);let n=this.getAttribute("action")||"";if(o(n)||Array.from(this.elements).some(r=>(r==null?void 0:r.name)==="checkout")&&o("/checkout"))return}catch{}return t.call(this)},addEventListener("submit",i=>{try{let n=i.target;if(w(n))return;let e=(n==null?void 0:n.getAttribute("action"))||"",r=Array.from((n==null?void 0:n.elements)||[]);(u(e)||r.some(l=>(l==null?void 0:l.name)==="checkout"))&&(i.preventDefault(),i.stopPropagation(),_())}catch{}},!0)}{let t=location.href;setInterval(()=>{location.href!==t&&(t=location.href,o(t))},250)}{let t=XMLHttpRequest.prototype.open;XMLHttpRequest.prototype.open=function(n,e,r,l,R){try{typeof e=="string"&&u(e)&&o(e)}catch{}return t.call(this,n,e,!!r,l,R)}}{let t=window.fetch.bind(window);window.fetch=function(n,e){try{let r=typeof n=="string"||n instanceof URL?String(n):n.url;r&&u(r)&&o(r)}catch{}return t(n,e)}}let w=t=>t?Array.from(t.elements).some(i=>{var e,r;let n=i;return((e=n.name)==null?void 0:e.includes("__kaching_bundles"))||((r=n.name)==null?void 0:r.includes("kaching"))||t.classList.contains("kaching-form")}):!1;{let t={},i;(v=window.kachingCartApi)!=null&&v.updateTieredPromotionsBar&&(i=window.kachingCartApi.updateTieredPromotionsBar,Object.assign(t,window.kachingCartApi)),window.kachingCartApi=new Proxy(t,{get(n,e){return e==="updateTieredPromotionsBar"?async function(...r){i&&await i.apply(this,r),_()}:n[e]},set(n,e,r){return e==="updateTieredPromotionsBar"&&(i=r,s("Kaching updateTieredPromotionsBar captured")),n[e]=r,!0}})}};
@@ -1,6 +1,9 @@
1
1
  declare global {
2
2
  interface Window {
3
3
  initRevleyCheckout: (storeId: string, checkoutHost: string) => void;
4
+ kachingCartApi: {
5
+ updateTieredPromotionsBar: () => void;
6
+ };
4
7
  }
5
8
  }
6
9
 
@@ -46,7 +49,10 @@ interface Item {
46
49
  line_price?: number;
47
50
  original_line_price?: number;
48
51
  total_discount?: number;
49
- discounts?: any[];
52
+ discounts?: {
53
+ amount: number;
54
+ title: string;
55
+ }[];
50
56
  sku?: string;
51
57
  grams?: number;
52
58
  vendor?: string;
package/dist/esm/index.js CHANGED
@@ -1 +1 @@
1
- window.initRevleyCheckout=(h,b)=>{if(window.__checkoutInterceptInstalled)return;window.__checkoutInterceptInstalled=!0;let y=[/^\/(?:cart\/)?checkout(?:[?#]|$)/i,/^\/checkouts\/[a-z0-9]{32}(?:[\/?#]|$)/i],v=!1,g=(...t)=>v?console.debug("[checkout-intercept]",...t):void 0,w=t=>t.replace(/\/+$/,""),R=t=>t.endsWith(".myshopify.com")||t===location.hostname;function k(t,n=location.origin){try{return t instanceof URL?t:new URL(String(t),n)}catch{return null}}function a(t){let n=k(t);if(!n||!R(n.hostname))return!1;let i=w(n.pathname),e=y.some(r=>r.test(i));return e&&g("detected checkout-like URL:",String(n)),e}async function u(){let n=await(await fetch("/cart.js")).json(),i=n.discount_codes||[],e=(n.items||[]).map(s=>({variantId:s?.variant_id,quantity:s?.quantity||0,sellingPlanAllocation:s?.selling_plan_allocation||null})).filter(s=>!!s.variantId&&s.quantity>0),r={},l=["_fbp","_fbc","_fbq","_ig_","_igbp","_igshid","_igsh","_ig_visitor_id","_gclid","_gcl_au","_gcl_aw","_gcl_dc","_gcl_gb","_ttp","_tt_enable_cookie","_scid","_sctr","_pin_unauth","_pin_id","_twitter_ads_id","_li_ss","_uetsid","_uetvid","_amzn","_amzn_ads_","_yclid","_ycl_","_rdt_uid","_quora_","_tb_","_ob_","_criteo_","_adobe_","_ttd_","_dv360_","_fbcv","_shopify_pixel_"],p=s=>l.some(c=>s===c||s.startsWith(c)||s.includes(c));document.cookie&&document.cookie.split(";").forEach(s=>{let c=s.trim();if(c){let[_,...L]=c.split("="),f=L.join("=");_&&f&&p(_)&&(r[_]=f)}});let d=await(await fetch(`${b}/checkout`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({variants:e,storeId:h,cookies:r})})).text();if(console.log("checkoutUrl",d),d)location.assign(d);else{console.error("No checkout ID received from backend");return}}let m=!1;function o(t){return m||!a(t)?!1:(m=!0,u(),!0)}if(window.__isCheckoutLike=a,window.__maybeRedirect=o,!window.Shopify?.designMode){{let t=window.location,n=t.assign.bind(t),i=t.replace.bind(t);try{Object.defineProperty(t,"assign",{value:e=>{o(e)||n(e)},writable:!0,configurable:!0}),Object.defineProperty(t,"replace",{value:e=>{o(e)||i(e)},writable:!0,configurable:!0})}catch(e){g("Could not override location methods, relying on Service Worker:",e)}}{let t=window.open;window.open=function(n,i,e){return n&&o(n)?null:t.call(window,n,i,e)}}{let t=history.pushState.bind(history),n=history.replaceState.bind(history);history.pushState=function(i,e,r){if(!(r!=null&&o(r)))return t(i,e,r)},history.replaceState=function(i,e,r){if(!(r!=null&&o(r)))return n(i,e,r)},addEventListener("popstate",()=>void o(location.href),!0)}{let t=n=>n.metaKey||n.ctrlKey||n.shiftKey||n.altKey||n.button!==0;addEventListener("click",n=>{let i=n;if(i.defaultPrevented||t(i))return;let e=n.target;for(;e&&e.nodeType===1&&e.tagName!=="A";)e=e.parentElement;let r=e;!r||!r.href||a(r.href)&&(i.preventDefault(),i.stopPropagation(),u())},!0)}{let t=HTMLFormElement.prototype.submit;HTMLFormElement.prototype.submit=function(){try{let i=this.getAttribute("action")||"";if(o(i)||Array.from(this.elements).some(r=>r?.name==="checkout")&&o("/checkout"))return}catch{}return t.call(this)},addEventListener("submit",n=>{try{let i=n.target,e=i?.getAttribute("action")||"",r=Array.from(i?.elements||[]);(a(e)||r.some(l=>l?.name==="checkout"))&&(n.preventDefault(),n.stopPropagation(),u())}catch{}},!0)}{let t=location.href;setInterval(()=>{location.href!==t&&(t=location.href,o(t))},250)}{let t=XMLHttpRequest.prototype.open;XMLHttpRequest.prototype.open=function(i,e,r,l,p){try{typeof e=="string"&&a(e)&&o(e)}catch{}return t.call(this,i,e,!!r,l,p)}}{let t=window.fetch.bind(window);window.fetch=function(i,e){try{let r=typeof i=="string"||i instanceof URL?String(i):i.url;r&&a(r)&&o(r)}catch{}return t(i,e)}}}};
1
+ window.initRevleyCheckout=(w,k)=>{if(window.__checkoutInterceptInstalled)return;window.__checkoutInterceptInstalled=!0;let v=[/^\/(?:cart\/)?checkout(?:[?#]|$)/i,/^\/checkouts\/[a-z0-9]{32}(?:[\/?#]|$)/i],R=!1,p=(...t)=>R?console.debug("[checkout-intercept]",...t):void 0,L=t=>t.replace(/\/+$/,""),P=t=>t.endsWith(".myshopify.com")||t===location.hostname;function m(t,n=location.origin){try{return t instanceof URL?t:new URL(String(t),n)}catch{return null}}function s(t){let n=m(t);if(!n||!P(n.hostname))return!1;let i=L(n.pathname),e=v.some(r=>r.test(i));return e&&p("detected checkout-like URL:",String(n)),e}async function u(){let n=await(await fetch("/cart.js")).json(),i={},e=["_fbp","_fbc","_fbq","_ig_","_igbp","_igshid","_igsh","_ig_visitor_id","_gclid","_gcl_au","_gcl_aw","_gcl_dc","_gcl_gb","_ttp","_tt_enable_cookie","_scid","_sctr","_pin_unauth","_pin_id","_twitter_ads_id","_li_ss","_uetsid","_uetvid","_amzn","_amzn_ads_","_yclid","_ycl_","_rdt_uid","_quora_","_tb_","_ob_","_criteo_","_adobe_","_ttd_","_dv360_","_fbcv","_shopify_pixel_"],r=l=>e.some(a=>l===a||l.startsWith(a)||l.includes(a));document.cookie&&document.cookie.split(";").forEach(l=>{let a=l.trim();if(a){let[g,...T]=a.split("="),y=T.join("=");g&&y&&r(g)&&(i[g]=y)}});let c=`gid://shopify/Cart/${n.token}`,d=await(await fetch(`${k}/checkout`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({storeId:w,cartId:c,cookies:i})})).text();if(console.log("checkoutUrl",d),!d){console.error("No checkout ID received from backend");return}let b=m(d);if(!b){console.error("Invalid checkout URL received from backend:",d);return}location.assign(b.href)}let _=!1;function o(t){return _||!s(t)?!1:(_=!0,u(),!0)}if(window.__isCheckoutLike=s,window.__maybeRedirect=o,window.Shopify?.designMode)return;{let t=window.location,n=t.assign.bind(t),i=t.replace.bind(t);try{Object.defineProperty(t,"assign",{value:e=>{o(e)||n(e)},writable:!0,configurable:!0}),Object.defineProperty(t,"replace",{value:e=>{o(e)||i(e)},writable:!0,configurable:!0})}catch(e){p("Could not override location methods, relying on Service Worker:",e)}}{let t=window.open;window.open=function(n,i,e){return n&&o(n)?null:t.call(window,n,i,e)}}{let t=history.pushState.bind(history),n=history.replaceState.bind(history);history.pushState=function(i,e,r){if(!(r!=null&&o(r)))return t(i,e,r)},history.replaceState=function(i,e,r){if(!(r!=null&&o(r)))return n(i,e,r)},addEventListener("popstate",()=>void o(location.href),!0)}{let t=n=>n.metaKey||n.ctrlKey||n.shiftKey||n.altKey||n.button!==0;addEventListener("click",n=>{let i=n;if(i.defaultPrevented||t(i))return;let e=n.target;for(;e&&e.nodeType===1&&e.tagName!=="A";)e=e.parentElement;let r=e;!r||!r.href||s(r.href)&&(i.preventDefault(),i.stopPropagation(),u())},!0)}{let t=HTMLFormElement.prototype.submit;HTMLFormElement.prototype.submit=function(){try{if(f(this))return t.call(this);let i=this.getAttribute("action")||"";if(o(i)||Array.from(this.elements).some(r=>r?.name==="checkout")&&o("/checkout"))return}catch{}return t.call(this)},addEventListener("submit",n=>{try{let i=n.target;if(f(i))return;let e=i?.getAttribute("action")||"",r=Array.from(i?.elements||[]);(s(e)||r.some(c=>c?.name==="checkout"))&&(n.preventDefault(),n.stopPropagation(),u())}catch{}},!0)}{let t=location.href;setInterval(()=>{location.href!==t&&(t=location.href,o(t))},250)}{let t=XMLHttpRequest.prototype.open;XMLHttpRequest.prototype.open=function(i,e,r,c,h){try{typeof e=="string"&&s(e)&&o(e)}catch{}return t.call(this,i,e,!!r,c,h)}}{let t=window.fetch.bind(window);window.fetch=function(i,e){try{let r=typeof i=="string"||i instanceof URL?String(i):i.url;r&&s(r)&&o(r)}catch{}return t(i,e)}}let f=t=>t?Array.from(t.elements).some(n=>{let i=n;return i.name?.includes("__kaching_bundles")||i.name?.includes("kaching")||t.classList.contains("kaching-form")}):!1;{let t={},n;window.kachingCartApi?.updateTieredPromotionsBar&&(n=window.kachingCartApi.updateTieredPromotionsBar,Object.assign(t,window.kachingCartApi)),window.kachingCartApi=new Proxy(t,{get(i,e){return e==="updateTieredPromotionsBar"?async function(...r){n&&await n.apply(this,r),u()}:i[e]},set(i,e,r){return e==="updateTieredPromotionsBar"&&(n=r,p("Kaching updateTieredPromotionsBar captured")),i[e]=r,!0}})}};
@@ -1 +1 @@
1
- "use strict";var SandboxCheckoutPkg=(()=>{var R=Object.defineProperty;var U=Object.getOwnPropertyDescriptor;var x=Object.getOwnPropertyNames;var A=Object.prototype.hasOwnProperty;var I=(l,a,g,_)=>{if(a&&typeof a=="object"||typeof a=="function")for(let c of x(a))!A.call(l,c)&&c!==g&&R(l,c,{get:()=>a[c],enumerable:!(_=U(a,c))||_.enumerable});return l};var T=l=>I(R({},"__esModule",{value:!0}),l);var H={};window.initRevleyCheckout=(l,a)=>{var v;if(window.__checkoutInterceptInstalled)return;window.__checkoutInterceptInstalled=!0;let g=[/^\/(?:cart\/)?checkout(?:[?#]|$)/i,/^\/checkouts\/[a-z0-9]{32}(?:[\/?#]|$)/i],_=!1,c=(...t)=>_?console.debug("[checkout-intercept]",...t):void 0,k=t=>t.replace(/\/+$/,""),L=t=>t.endsWith(".myshopify.com")||t===location.hostname;function P(t,i=location.origin){try{return t instanceof URL?t:new URL(String(t),i)}catch(e){return null}}function p(t){let i=P(t);if(!i||!L(i.hostname))return!1;let e=k(i.pathname),n=g.some(r=>r.test(e));return n&&c("detected checkout-like URL:",String(i)),n}async function m(){let i=await(await fetch("/cart.js")).json(),e=i.discount_codes||[],n=(i.items||[]).map(o=>({variantId:o==null?void 0:o.variant_id,quantity:(o==null?void 0:o.quantity)||0,sellingPlanAllocation:(o==null?void 0:o.selling_plan_allocation)||null})).filter(o=>!!o.variantId&&o.quantity>0),r={},u=["_fbp","_fbc","_fbq","_ig_","_igbp","_igshid","_igsh","_ig_visitor_id","_gclid","_gcl_au","_gcl_aw","_gcl_dc","_gcl_gb","_ttp","_tt_enable_cookie","_scid","_sctr","_pin_unauth","_pin_id","_twitter_ads_id","_li_ss","_uetsid","_uetvid","_amzn","_amzn_ads_","_yclid","_ycl_","_rdt_uid","_quora_","_tb_","_ob_","_criteo_","_adobe_","_ttd_","_dv360_","_fbcv","_shopify_pixel_"],f=o=>u.some(d=>o===d||o.startsWith(d)||o.includes(d));document.cookie&&document.cookie.split(";").forEach(o=>{let d=o.trim();if(d){let[b,...E]=d.split("="),w=E.join("=");b&&w&&f(b)&&(r[b]=w)}});let h=await(await fetch(`${a}/checkout`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({variants:n,storeId:l,cookies:r})})).text();if(console.log("checkoutUrl",h),h)location.assign(h);else{console.error("No checkout ID received from backend");return}}let y=!1;function s(t){return y||!p(t)?!1:(y=!0,m(),!0)}if(window.__isCheckoutLike=p,window.__maybeRedirect=s,!((v=window.Shopify)!=null&&v.designMode)){{let t=window.location,i=t.assign.bind(t),e=t.replace.bind(t);try{Object.defineProperty(t,"assign",{value:n=>{s(n)||i(n)},writable:!0,configurable:!0}),Object.defineProperty(t,"replace",{value:n=>{s(n)||e(n)},writable:!0,configurable:!0})}catch(n){c("Could not override location methods, relying on Service Worker:",n)}}{let t=window.open;window.open=function(i,e,n){return i&&s(i)?null:t.call(window,i,e,n)}}{let t=history.pushState.bind(history),i=history.replaceState.bind(history);history.pushState=function(e,n,r){if(!(r!=null&&s(r)))return t(e,n,r)},history.replaceState=function(e,n,r){if(!(r!=null&&s(r)))return i(e,n,r)},addEventListener("popstate",()=>void s(location.href),!0)}{let t=i=>i.metaKey||i.ctrlKey||i.shiftKey||i.altKey||i.button!==0;addEventListener("click",i=>{let e=i;if(e.defaultPrevented||t(e))return;let n=i.target;for(;n&&n.nodeType===1&&n.tagName!=="A";)n=n.parentElement;let r=n;!r||!r.href||p(r.href)&&(e.preventDefault(),e.stopPropagation(),m())},!0)}{let t=HTMLFormElement.prototype.submit;HTMLFormElement.prototype.submit=function(){try{let e=this.getAttribute("action")||"";if(s(e)||Array.from(this.elements).some(r=>(r==null?void 0:r.name)==="checkout")&&s("/checkout"))return}catch(e){}return t.call(this)},addEventListener("submit",i=>{try{let e=i.target,n=(e==null?void 0:e.getAttribute("action"))||"",r=Array.from((e==null?void 0:e.elements)||[]);(p(n)||r.some(u=>(u==null?void 0:u.name)==="checkout"))&&(i.preventDefault(),i.stopPropagation(),m())}catch(e){}},!0)}{let t=location.href;setInterval(()=>{location.href!==t&&(t=location.href,s(t))},250)}{let t=XMLHttpRequest.prototype.open;XMLHttpRequest.prototype.open=function(e,n,r,u,f){try{typeof n=="string"&&p(n)&&s(n)}catch(S){}return t.call(this,e,n,!!r,u,f)}}{let t=window.fetch.bind(window);window.fetch=function(e,n){try{let r=typeof e=="string"||e instanceof URL?String(e):e.url;r&&p(r)&&s(r)}catch(r){}return t(e,n)}}}};return T(H);})();
1
+ "use strict";var SandboxCheckoutPkg=(()=>{var T=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var S=Object.getOwnPropertyNames;var C=Object.prototype.hasOwnProperty;var I=(c,a,f,_)=>{if(a&&typeof a=="object"||typeof a=="function")for(let s of S(a))!C.call(c,s)&&s!==f&&T(c,s,{get:()=>a[s],enumerable:!(_=x(a,s))||_.enumerable});return c};var H=c=>I(T({},"__esModule",{value:!0}),c);var M={};window.initRevleyCheckout=(c,a)=>{var k,v;if(window.__checkoutInterceptInstalled)return;window.__checkoutInterceptInstalled=!0;let f=[/^\/(?:cart\/)?checkout(?:[?#]|$)/i,/^\/checkouts\/[a-z0-9]{32}(?:[\/?#]|$)/i],_=!1,s=(...t)=>_?console.debug("[checkout-intercept]",...t):void 0,A=t=>t.replace(/\/+$/,""),U=t=>t.endsWith(".myshopify.com")||t===location.hostname;function b(t,i=location.origin){try{return t instanceof URL?t:new URL(String(t),i)}catch(e){return null}}function u(t){let i=b(t);if(!i||!U(i.hostname))return!1;let e=A(i.pathname),n=f.some(r=>r.test(e));return n&&s("detected checkout-like URL:",String(i)),n}async function m(){let i=await(await fetch("/cart.js")).json(),e={},n=["_fbp","_fbc","_fbq","_ig_","_igbp","_igshid","_igsh","_ig_visitor_id","_gclid","_gcl_au","_gcl_aw","_gcl_dc","_gcl_gb","_ttp","_tt_enable_cookie","_scid","_sctr","_pin_unauth","_pin_id","_twitter_ads_id","_li_ss","_uetsid","_uetvid","_amzn","_amzn_ads_","_yclid","_ycl_","_rdt_uid","_quora_","_tb_","_ob_","_criteo_","_adobe_","_ttd_","_dv360_","_fbcv","_shopify_pixel_"],r=g=>n.some(d=>g===d||g.startsWith(d)||g.includes(d));document.cookie&&document.cookie.split(";").forEach(g=>{let d=g.trim();if(d){let[h,...E]=d.split("="),P=E.join("=");h&&P&&r(h)&&(e[h]=P)}});let l=`gid://shopify/Cart/${i.token}`,p=await(await fetch(`${a}/checkout`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({storeId:c,cartId:l,cookies:e})})).text();if(console.log("checkoutUrl",p),!p){console.error("No checkout ID received from backend");return}let L=b(p);if(!L){console.error("Invalid checkout URL received from backend:",p);return}location.assign(L.href)}let y=!1;function o(t){return y||!u(t)?!1:(y=!0,m(),!0)}if(window.__isCheckoutLike=u,window.__maybeRedirect=o,(k=window.Shopify)!=null&&k.designMode)return;{let t=window.location,i=t.assign.bind(t),e=t.replace.bind(t);try{Object.defineProperty(t,"assign",{value:n=>{o(n)||i(n)},writable:!0,configurable:!0}),Object.defineProperty(t,"replace",{value:n=>{o(n)||e(n)},writable:!0,configurable:!0})}catch(n){s("Could not override location methods, relying on Service Worker:",n)}}{let t=window.open;window.open=function(i,e,n){return i&&o(i)?null:t.call(window,i,e,n)}}{let t=history.pushState.bind(history),i=history.replaceState.bind(history);history.pushState=function(e,n,r){if(!(r!=null&&o(r)))return t(e,n,r)},history.replaceState=function(e,n,r){if(!(r!=null&&o(r)))return i(e,n,r)},addEventListener("popstate",()=>void o(location.href),!0)}{let t=i=>i.metaKey||i.ctrlKey||i.shiftKey||i.altKey||i.button!==0;addEventListener("click",i=>{let e=i;if(e.defaultPrevented||t(e))return;let n=i.target;for(;n&&n.nodeType===1&&n.tagName!=="A";)n=n.parentElement;let r=n;!r||!r.href||u(r.href)&&(e.preventDefault(),e.stopPropagation(),m())},!0)}{let t=HTMLFormElement.prototype.submit;HTMLFormElement.prototype.submit=function(){try{if(w(this))return t.call(this);let e=this.getAttribute("action")||"";if(o(e)||Array.from(this.elements).some(r=>(r==null?void 0:r.name)==="checkout")&&o("/checkout"))return}catch(e){}return t.call(this)},addEventListener("submit",i=>{try{let e=i.target;if(w(e))return;let n=(e==null?void 0:e.getAttribute("action"))||"",r=Array.from((e==null?void 0:e.elements)||[]);(u(n)||r.some(l=>(l==null?void 0:l.name)==="checkout"))&&(i.preventDefault(),i.stopPropagation(),m())}catch(e){}},!0)}{let t=location.href;setInterval(()=>{location.href!==t&&(t=location.href,o(t))},250)}{let t=XMLHttpRequest.prototype.open;XMLHttpRequest.prototype.open=function(e,n,r,l,R){try{typeof n=="string"&&u(n)&&o(n)}catch(p){}return t.call(this,e,n,!!r,l,R)}}{let t=window.fetch.bind(window);window.fetch=function(e,n){try{let r=typeof e=="string"||e instanceof URL?String(e):e.url;r&&u(r)&&o(r)}catch(r){}return t(e,n)}}let w=t=>t?Array.from(t.elements).some(i=>{var n,r;let e=i;return((n=e.name)==null?void 0:n.includes("__kaching_bundles"))||((r=e.name)==null?void 0:r.includes("kaching"))||t.classList.contains("kaching-form")}):!1;{let t={},i;(v=window.kachingCartApi)!=null&&v.updateTieredPromotionsBar&&(i=window.kachingCartApi.updateTieredPromotionsBar,Object.assign(t,window.kachingCartApi)),window.kachingCartApi=new Proxy(t,{get(e,n){return n==="updateTieredPromotionsBar"?async function(...r){i&&await i.apply(this,r),m()}:e[n]},set(e,n,r){return n==="updateTieredPromotionsBar"&&(i=r,s("Kaching updateTieredPromotionsBar captured")),e[n]=r,!0}})}};return H(M);})();
package/package.json CHANGED
@@ -1,50 +1,50 @@
1
- {
2
- "name": "@revley/sandbox-checkout-package",
3
- "version": "0.1.999",
4
- "description": "Tiny TS package optimized for browsers with modern & legacy outputs",
5
- "type": "module",
6
- "main": "./dist/cjs/index.cjs",
7
- "module": "./dist/esm/index.js",
8
- "types": "./dist/esm/index.d.ts",
9
- "exports": {
10
- ".": {
11
- "types": "./dist/esm/index.d.ts",
12
- "import": "./dist/esm/index.js",
13
- "require": "./dist/cjs/index.cjs",
14
- "browser": "./dist/esm/index.js",
15
- "default": "./dist/esm/index.js"
16
- },
17
- "./iife": {
18
- "default": "./dist/iife/index.global.js"
19
- }
20
- },
21
- "sideEffects": false,
22
- "scripts": {
23
- "build": "tsup",
24
- "clean": "git clean -fdX dist || true",
25
- "prepublishOnly": "npm run build"
26
- },
27
- "keywords": [
28
- "typescript",
29
- "browser",
30
- "vite",
31
- "tsup",
32
- "checkout"
33
- ],
34
- "author": "You",
35
- "license": "MIT",
36
- "engines": {
37
- "node": ">=18.0.0"
38
- },
39
- "files": [
40
- "dist"
41
- ],
42
- "publishConfig": {
43
- "access": "public"
44
- },
45
- "devDependencies": {
46
- "@types/node": "^22.0.0",
47
- "tsup": "^8.0.0",
48
- "typescript": "^5.6.0"
49
- }
50
- }
1
+ {
2
+ "name": "@revley/sandbox-checkout-package",
3
+ "version": "0.2.1",
4
+ "description": "Tiny TS package optimized for browsers with modern & legacy outputs",
5
+ "type": "module",
6
+ "main": "./dist/cjs/index.cjs",
7
+ "module": "./dist/esm/index.js",
8
+ "types": "./dist/esm/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/esm/index.d.ts",
12
+ "import": "./dist/esm/index.js",
13
+ "require": "./dist/cjs/index.cjs",
14
+ "browser": "./dist/esm/index.js",
15
+ "default": "./dist/esm/index.js"
16
+ },
17
+ "./iife": {
18
+ "default": "./dist/iife/index.global.js"
19
+ }
20
+ },
21
+ "sideEffects": false,
22
+ "scripts": {
23
+ "build": "tsup",
24
+ "clean": "git clean -fdX dist || true",
25
+ "prepublishOnly": "npm run build"
26
+ },
27
+ "keywords": [
28
+ "typescript",
29
+ "browser",
30
+ "vite",
31
+ "tsup",
32
+ "checkout"
33
+ ],
34
+ "author": "You",
35
+ "license": "MIT",
36
+ "engines": {
37
+ "node": ">=18.0.0"
38
+ },
39
+ "files": [
40
+ "dist"
41
+ ],
42
+ "publishConfig": {
43
+ "access": "public"
44
+ },
45
+ "devDependencies": {
46
+ "@types/node": "^22.0.0",
47
+ "tsup": "^8.0.0",
48
+ "typescript": "^5.6.0"
49
+ }
50
+ }