@whop/checkout
Version:
Embed Whop checkout on any website
1 lines • 15.9 kB
JavaScript
;function e(e,t){if(t==null||t>e.length)t=e.length;for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function t(e){if(Array.isArray(e))return e}function r(t){if(Array.isArray(t))return e(t)}function n(e){if(e===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return e}function o(e,t,r,n,o,i,u){try{var a=e[i](u);var c=a.value}catch(e){r(e);return}if(a.done){t(c)}else{Promise.resolve(c).then(n,o)}}function i(e){return function(){var t=this,r=arguments;return new Promise(function(n,i){var u=e.apply(t,r);function a(e){o(u,n,i,a,c,"next",e)}function c(e){o(u,n,i,a,c,"throw",e)}a(undefined)})}}function u(e,t,r){t=f(t);return E(e,x()?Reflect.construct(t,r||[],f(e).constructor):t.apply(e,r))}function a(e,t){if(!(e instanceof t)){throw new TypeError("Cannot call a class as a function")}}function c(e,t,r){if(x()){c=Reflect.construct}else{c=function e(e,t,r){var n=[null];n.push.apply(n,t);var o=Function.bind.apply(e,n);var i=new o;if(r)j(i,r.prototype);return i}}return c.apply(null,arguments)}function l(e,t,r){if(t in e){Object.defineProperty(e,t,{value:r,enumerable:true,configurable:true,writable:true})}else{e[t]=r}return e}function f(e){f=Object.setPrototypeOf?Object.getPrototypeOf:function e(e){return e.__proto__||Object.getPrototypeOf(e)};return f(e)}function s(e,t){if(typeof t!=="function"&&t!==null){throw new TypeError("Super expression must either be null or a function")}e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:true,configurable:true}});if(t)j(e,t)}function d(e){return Function.toString.call(e).indexOf("[native code]")!==-1}function p(e){if(typeof Symbol!=="undefined"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function v(e,t){var r=e==null?null:typeof Symbol!=="undefined"&&e[Symbol.iterator]||e["@@iterator"];if(r==null)return;var n=[];var o=true;var i=false;var u,a;try{for(r=r.call(e);!(o=(u=r.next()).done);o=true){n.push(u.value);if(t&&n.length===t)break}}catch(e){i=true;a=e}finally{try{if(!o&&r["return"]!=null)r["return"]()}finally{if(i)throw a}}return n}function m(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function y(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function h(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};var n=Object.keys(r);if(typeof Object.getOwnPropertySymbols==="function"){n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))}n.forEach(function(t){l(e,t,r[t])})}return e}function b(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);if(t){n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})}r.push.apply(r,n)}return r}function w(e,t){t=t!=null?t:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(e,Object.getOwnPropertyDescriptors(t))}else{b(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})}return e}function g(e,t){if(e==null)return{};var r=O(e,t);var n,o;if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o<i.length;o++){n=i[o];if(t.indexOf(n)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(e,n))continue;r[n]=e[n]}}return r}function O(e,t){if(e==null)return{};var r={};var n=Object.keys(e);var o,i;for(i=0;i<n.length;i++){o=n[i];if(t.indexOf(o)>=0)continue;r[o]=e[o]}return r}function E(e,t){if(t&&(_(t)==="object"||typeof t==="function")){return t}return n(e)}function j(e,t){j=Object.setPrototypeOf||function e(e,t){e.__proto__=t;return e};return j(e,t)}function P(e,r){return t(e)||v(e,r)||S(e,r)||m()}function k(e){return r(e)||p(e)||S(e)||y()}function _(e){"@swc/helpers - typeof";return e&&typeof Symbol!=="undefined"&&e.constructor===Symbol?"symbol":typeof e}function S(t,r){if(!t)return;if(typeof t==="string")return e(t,r);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor)n=t.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return e(t,r)}function C(e){var t=typeof Map==="function"?new Map:undefined;C=function e(e){if(e===null||!d(e))return e;if(typeof e!=="function"){throw new TypeError("Super expression must either be null or a function")}if(typeof t!=="undefined"){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return c(e,arguments,f(this).constructor)}r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:false,writable:true,configurable:true}});return j(r,e)};return C(e)}function x(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(x=function(){return!!e})()}function R(e,t){var r,n,o,i={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]},u=Object.create((typeof Iterator==="function"?Iterator:Object).prototype);return u.next=a(0),u["throw"]=a(1),u["return"]=a(2),typeof Symbol==="function"&&(u[Symbol.iterator]=function(){return this}),u;function a(e){return function(t){return c([e,t])}}function c(a){if(r)throw new TypeError("Generator is already executing.");while(u&&(u=0,a[0]&&(i=0)),i)try{if(r=1,n&&(o=a[0]&2?n["return"]:a[0]?n["throw"]||((o=n["return"])&&o.call(n),0):n.next)&&!(o=o.call(n,a[1])).done)return o;if(n=0,o)a=[a[0]&2,o.value];switch(a[0]){case 0:case 1:o=a;break;case 4:i.label++;return{value:a[1],done:false};case 5:i.label++;n=a[1];a=[0];continue;case 7:a=i.ops.pop();i.trys.pop();continue;default:if(!(o=i.trys,o=o.length>0&&o[o.length-1])&&(a[0]===6||a[0]===2)){i=0;continue}if(a[0]===3&&(!o||a[1]>o[0]&&a[1]<o[3])){i.label=a[1];break}if(a[0]===6&&i.label<o[1]){i.label=o[1];o=a;break}if(o&&i.label<o[2]){i.label=o[2];i.ops.push(a);break}if(o[2])i.ops.pop();i.trys.pop();continue}a=t.call(e,i)}catch(e){a=[6,e];n=0}finally{r=o=0}if(a[0]&5)throw a[1];return{value:a[0]?a[1]:void 0,done:true}}}var W=Object.create;var A=Object.defineProperty;var I=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames;var M=Object.getPrototypeOf,U=Object.prototype.hasOwnProperty;var L=function(e,t,r){return t in e?A(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r};var D=function(e,t){for(var r in t)A(e,r,{get:t[r],enumerable:!0})},q=function(e,t,r,n){var o=true,i=false,u=undefined;if(t&&(typeof t==="undefined"?"undefined":_(t))=="object"||typeof t=="function")try{var a=function(){var o=l.value;!U.call(e,o)&&o!==r&&A(e,o,{get:function(){return t[o]},enumerable:!(n=I(t,o))||n.enumerable})};for(var c=T(t)[Symbol.iterator](),l;!(o=(l=c.next()).done);o=true)a()}catch(e){i=true;u=e}finally{try{if(!o&&c.return!=null){c.return()}}finally{if(i){throw u}}}return e};var N=function(e,t,r){return r=e!=null?W(M(e)):{},q(t||!e||!e.__esModule?A(r,"default",{value:e,enumerable:!0}):r,e)},V=function(e){return q(A({},"__esModule",{value:!0}),e)};var z=function(e,t,r){return L(e,(typeof t==="undefined"?"undefined":_(t))!="symbol"?t+"":t,r)};var B={};D(B,{WhopCheckoutEmbed:function(){return eO},useCheckoutEmbedControls:function(){return ej}});module.exports=V(B);var F=N(require("react"));var G=/*#__PURE__*/function(e){s(t,e);function t(){a(this,t);var e;e=u(this,t,arguments);z(e,"type","WhopCheckoutError");return e}return t}(C(Error));var $=/*#__PURE__*/function(e){s(t,e);function t(e){a(this,t);var r;r=u(this,t,[e!==null&&e!==void 0?e:"Timeout waiting for embed response"]);z(r,"name","WhopCheckoutRpcTimeoutError");return r}return t}(G);var H=/*#__PURE__*/function(e){s(t,e);function t(){a(this,t);var e;e=u(this,t,arguments);z(e,"name","WhopCheckoutSetEmailError");return e}return t}(G);var J=["resize","center","complete","state","get-email-result","set-email-result"];function K(e){return _(e.data)=="object"&&e.data!==null&&"event"in e.data&&J.includes(e.data.event)}function Q(e,t){return K(e)&&e.data.event===t}var X=[];function Y(e){return X[e]||(X[e]=(e+256).toString(16).slice(1))}function Z(){var e=new Uint8Array(16);if((typeof crypto==="undefined"?"undefined":_(crypto))<"u"&&typeof crypto.getRandomValues=="function")crypto.getRandomValues(e);else for(var t=0;t<16;t++)e[t]=Math.random()*256|0;return e[6]=e[6]&15|64,e[8]=e[8]&63|128,Y(e[0])+Y(e[1])+Y(e[2])+Y(e[3])+"-"+Y(e[4])+Y(e[5])+"-"+Y(e[6])+Y(e[7])+"-"+Y(e[8])+Y(e[9])+"-"+Y(e[10])+Y(e[11])+Y(e[12])+Y(e[13])+Y(e[14])+Y(e[15])}function ee(e,t,r,n){var o=arguments.length>4&&arguments[4]!==void 0?arguments[4]:2e3;var i;var u=new URL(e.src).origin,a=Z();return(i=e.contentWindow)===null||i===void 0?void 0:i.postMessage(w(h({},t),{__scope:"whop-embedded-checkout",event_id:a}),u),new Promise(function(t,i){var u=setTimeout(function(){i(new $),window.removeEventListener("message",c)},o),c=function(o){if(o.source===e.contentWindow&&Q(o,r)&&o.data.event===r&&o.data.event_id===a){clearTimeout(u),window.removeEventListener("message",c);try{t(n(o.data))}catch(e){i(e)}}};window.addEventListener("message",c)})}function et(e,t){function r(r){r.source===e.contentWindow&&K(r)&&t(r.data)}return window.addEventListener("message",r),function(){window.removeEventListener("message",r)}}function er(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:2e3;return i(function(){return R(this,function(n){return[2,ee(e,{event:"set-email",email:t},"set-email-result",function(e){if(!e.ok)throw new H(e.error)},r)]})})()}function en(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:2e3;return i(function(){return R(this,function(r){return[2,ee(e,{event:"get-email"},"get-email-result",function(e){return e.email},t)]})})()}function eo(e,t){var r;var n=new URL(e.src).origin;(r=e.contentWindow)===null||r===void 0?void 0:r.postMessage({__scope:"whop-embedded-checkout",event:"submit"},n)}function ei(e,t,r,n,o,i,u,a,c,l,f,s,d,p){var v=new URL("/embedded/checkout/".concat(e,"/"),n!==null&&n!==void 0?n:"https://whop.com/");if(v.searchParams.set("h",window.location.origin),t&&v.searchParams.set("theme",t),r&&v.searchParams.set("session",r),o&&v.searchParams.set("hide_price","true"),i&&v.searchParams.set("skip_redirect","true"),f&&v.searchParams.set("hide_submit_button","true"),s&&v.searchParams.set("hide_tos","true"),d&&v.searchParams.set("email.hidden","1"),p&&v.searchParams.set("email.disabled","1"),u){var m=true,y=false,h=undefined,b=true,w=false,g=undefined;try{for(var O=Object.entries(u).sort(function(e,t){return e[0].localeCompare(t[0])})[Symbol.iterator](),E;!(b=(E=O.next()).done);b=true){var j=P(E.value,2),k=j[0],_=j[1];if(k.startsWith("utm_"))if(Array.isArray(_))try{for(var S=_[Symbol.iterator](),C;!(m=(C=S.next()).done);m=true){var x=C.value;v.searchParams.append(k,x)}}catch(e){y=true;h=e}finally{try{if(!m&&S.return!=null){S.return()}}finally{if(y){throw h}}}else v.searchParams.set(k,_)}}catch(e){w=true;g=e}finally{try{if(!b&&O.return!=null){O.return()}}finally{if(w){throw g}}}}if(a){var R=true,W=false,A=undefined,I=true,T=false,M=undefined;try{for(var U=Object.entries(a)[Symbol.iterator](),L;!(I=(L=U.next()).done);I=true){var D=P(L.value,2),q=D[0],N=D[1];if(N)try{for(var V=Object.entries(N)[Symbol.iterator](),z;!(R=(z=V.next()).done);R=true){var B=P(z.value,2),F=B[0],G=B[1];v.searchParams.set("style.".concat(q,".").concat(F),G.toString())}}catch(e){W=true;A=e}finally{try{if(!R&&V.return!=null){V.return()}}finally{if(W){throw A}}}}}catch(e){T=true;M=e}finally{try{if(!I&&U.return!=null){U.return()}}finally{if(T){throw M}}}}var $=true,H=false,J=undefined;if((c===null||c===void 0?void 0:c.email)&&v.searchParams.set("email",c.email),l)try{for(var K=Object.entries(l)[Symbol.iterator](),Q;!($=(Q=K.next()).done);$=true){var X=P(Q.value,2),Y=X[0],Z=X[1];Z&&v.searchParams.set("theme.".concat(Y),Z)}}catch(e){H=true;J=e}finally{try{if(!$&&K.return!=null){K.return()}}finally{if(H){throw J}}}return v.toString()}var eu=["allow-forms","allow-modals","allow-orientation-lock","allow-pointer-lock","allow-popups","allow-presentation","allow-same-origin","allow-scripts","allow-top-navigation","allow-top-navigation-by-user-activation","allow-downloads"],ea="document-domain; execution-while-not-rendered; execution-while-out-of-viewport; payment; paymentRequest; sync-script;";var ec=require("react");function el(){return function(){}}function ef(){return(0,ec.useSyncExternalStore)(el,function(){return!0},function(){return!1})}var es=["tomato","red","ruby","crimson","pink","plum","purple","violet","iris","cyan","teal","jade","green","grass","brown","blue","orange","indigo","sky","mint","yellow","amber","lime","lemon","magenta","gold","bronze","gray"];function ed(e){return e?es.includes(e):!1}var ep=require("react");var ev=require("react"),em=Symbol("none");function ey(e){var t=(0,ev.useRef)(em);return t.current===em&&(t.current=e()),t}function eh(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++){t[r]=arguments[r]}var n=ey(function(){return ei.apply(void 0,k(t))}),o=n.current;return o&&eb.apply(void 0,[o].concat(k(t))),o}function eb(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++){r[n-1]=arguments[n]}var o=P(r,12),i=o[0],u=o[1],a=o[2],c=o[3],l=o[4],f=o[5],s=o[6],d=o[7],p=o[8],v=o[9],m=o[10],y=o[11];var h=(0,ep.useMemo)(function(){return ei(i,u,a,void 0,l,f,s,d,p,v,m,y)},[i,u,a,l,f,s,d,p,v,m,y]);(0,ep.useEffect)(function(){e!==h&&process.env.NODE_ENV==="development"&&console.warn("[WhopCheckoutEmbed] iframeUrl changed from ".concat(e," to ").concat(h,". Updating props on the checkout embed is not supported. Please rerender the component."))},[e,h])}var ew=eu.join(" ");var eg=(0,F.forwardRef)(function(e,t){var r=e.planId,n=e.theme,o=e.sessionId,i=e.hidePrice,u=i===void 0?!1:i,a=e.skipRedirect,c=a===void 0?!1:a,l=e.onComplete,f=e.onStateChange,s=e.utm,d=e.styles,p=e.prefill,v=e.themeOptions,m=e.hideSubmitButton,y=m===void 0?!1:m,h=e.hideTermsAndConditions,b=h===void 0?!1:h,w=e.hideEmail,g=w===void 0?!1:w,O=e.disableEmail,E=O===void 0?!1:O;var j=(0,F.useMemo)(function(){return{accentColor:ed(v===null||v===void 0?void 0:v.accentColor)?v.accentColor:void 0}},[v===null||v===void 0?void 0:v.accentColor]),k=eh(r,n,o,void 0,u,c||!!l,s,d,p,j,y,b,g,E),_=(0,F.useRef)(null),S=P((0,F.useState)(480),2),C=S[0],x=S[1];return(0,F.useEffect)(function(){var e=_.current;if(e)return et(e,function(t){switch(t.event){case"resize":{x(t.height);break}case"center":{e.scrollIntoView({block:"center",inline:"center"});break}case"complete":{l&&l(t.plan_id,t.receipt_id);break}case"state":{f&&f(t.state);break}}})},[l,f]),t&&(typeof t=="function"?t({submit:function(e){_.current&&eo(_.current,e)},getEmail:function(e){if(!_.current)throw new Error("Whop embedded checkout frame not found");return en(_.current,e)},setEmail:function(e,t){if(!_.current)throw new Error("Whop embedded checkout frame not found");return er(_.current,e,t)}}):t.current={submit:function(e){_.current&&eo(_.current,e)},getEmail:function(e){if(!_.current)throw new Error("Whop embedded checkout frame not found");return en(_.current,e)},setEmail:function(e,t){if(!_.current)throw new Error("Whop embedded checkout frame not found");return er(_.current,e,t)}}),F.default.createElement("iframe",{ref:_,allow:ea,sandbox:ew,title:"Whop Embedded Checkout",src:k!==null&&k!==void 0?k:void 0,style:{border:"none",height:"".concat(C,"px"),width:"100%",overflow:"hidden"}})});eg.displayName="WhopCheckoutEmbedInner";var eO=(0,F.forwardRef)(function(e,t){var r=e.fallback,n=g(e,["fallback"]);return ef()?F.default.createElement(eg,w(h({},n),{ref:t})):r!==null&&r!==void 0?r:null});eO.displayName="WhopCheckoutEmbed";var eE=require("react");function ej(){return(0,eE.useRef)(null)}0&&(module.exports={WhopCheckoutEmbed:WhopCheckoutEmbed,useCheckoutEmbedControls:useCheckoutEmbedControls});