ouisys-engine 5.0.94 → 5.0.96

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.
@@ -1,2 +1,2 @@
1
- import{__awaiter as r,__generator as e,__assign as t,__read as n}from"tslib";import{createAsyncThunk as c,createSlice as o}from"@reduxjs/toolkit";import{S as a,L as i,F as u,N as s}from"./RemoteDataState-lcf8PfJd.js";import{u as l,t as d}from"./tracker-DaaILhEr.js";import{searchToObject as v}from"./searchToObject.js";import{b as f}from"./bupperizeCountry-CEtt0MKz.js";import{l as p}from"./loadScriptInnerHtml-B6v2-IGn.js";import{c as m}from"./cleanSearchParams-Dl7ZDlew.js";import"pacman-client";import"uuid";var _=function(r){return r((function(r){return r.oneClickFlow.currentState}))};function y(r){var e=r.getRedirectUrl,t=r.subscribe;return function(r){switch(r.type){case"GET_REDIRECT_URL":default:return e(r.result);case"SUBCRIBE_AJAX":return t(r.result)}}}function w(t){var n=t.currentRedirectUrl,c=t.country;return r(this,void 0,void 0,(function(){var r;return e(this,(function(e){switch(e.label){case 0:return"pe"!==c.toLowerCase()?[3,3]:[4,new Promise((function(r){var e=setInterval((function(){window.Empello&&(clearInterval(e),r())}),100)}))];case 1:return e.sent(),"undefined"!=typeof window&&window.Empello?[4,new Promise((function(r){var e;null===(e=window.Empello)||void 0===e||e.getToken((function(e){r(e)}))}))]:[3,3];case 2:return r=e.sent(),[2,l(n,"empello_token",r)];case 3:return[2,n]}}))}))}var E=function(c){var o=c.window,a=c.extraParams,i=c.search,u=c.url;return r(void 0,void 0,void 0,(function(){var r,c,s,l,d;return e(this,(function(e){switch(e.label){case 0:i=m(i),r=(null==o?void 0:o.tid)||"",c=(null==o?void 0:o.shouldBlock)?"false":"true",s=Object.entries(a||{}).map((function(r){var e=n(r,2),t=e[0],c=e[1];return"".concat(t,"=").concat(encodeURIComponent(c))})).join("&"),e.label=1;case 1:return e.trys.push([1,4,,5]),v=u,f=t({sam_evina_tid:r,antifraud_id:o.antifraud_id||"",antifraud_id_js_code:o.antifraud_id_js_code||"",antifraud_id_js_link:o.antifraud_id_js_link||"","is-clean-traffic":c},Object.fromEntries(new URLSearchParams(s))),p=new URLSearchParams(f).toString(),l="".concat(v,"&").concat(p),[4,fetch("".concat(l).concat(i?"&".concat(i):""))];case 2:return[4,e.sent().json()];case 3:return[2,e.sent()];case 4:throw d=e.sent(),console.error("Error fetching subscription:",d),d;case 5:return[2]}var v,f,p}))}))},h=function(r){var e=r,t="ouisys_callback_function".concat(Math.floor(1e4*Math.random()));return new Promise((function(n,c){window[t]=function(r){n(r)},e+=-1===e.indexOf("?")?"?":"&",e+="jsonp=".concat(t);var o=document.createElement("script");o.src=e,o.id=t,document.body.appendChild(o),o.onerror=function(){c(new Error("JSONP request to ".concat(r," failed")))}}))},R=function(c){var o=c.window,a=c.maybeConfig,i=c.extraParams;return r(void 0,void 0,void 0,(function(){var r,c,u,s,l,d,m,_,y,w,E,R,S,b,U,k,I,C,j,T,A,B;return e(this,(function(e){switch(e.label){case 0:if(void 0!==o)return[3,1];throw"javascript: console.error('SSR'); void 6";case 1:return r=a.country,c=a.slug,u=a.queryString,s=a.apiAction,l=void 0!==o&&o.tid?o.tid:"",d=o.pac_analytics.visitor.offer,m=o.location.search.substr(1),_=(m&&m.length>0?[m]:[]).concat((u||[]).map((function(r){var e=n(r,2),t=e[0],c=e[1];return"".concat(t,"=").concat(c)}))).join("&"),Object.keys(i).forEach((function(r,e){_.length>0&&(_+="&"),_="".concat(function(r,e,t){void 0===t&&(t="");var n=new RegExp("\\b(".concat(e,"=).*?(&|#|$)"));if(r.search(n)>=0)return r.replace(n,"$1".concat(t,"$2"));var c=r.replace(/[?#]$/,"");return"".concat(c+e,"=").concat(t,"&")}(_,r,i[r])).concat(1===e?"&":"")})),y=o.pac_analytics.visitor.rockmanId,"identify-user"!==s?[3,3]:(R=o.DEV_BASE_URL||"",b="".concat(R,"/tallyman/v1/?action=identify-user&country=").concat(f(r),"&slug=").concat(c,"&device=").concat("smart","&offerId=").concat(d,"&rockman_id=").concat(y,"&sam_evina_tid=").concat(l,"&").concat(_),[4,h(b)]);case 2:if(!1===(w=e.sent()).success)throw(k=new Error("Error in getRedirectUrl() identify-user action:\n".concat(w.message))).type="NotOn3g",k;return[2,{subscription_url:w.subscription_url||w.redirect_url,action:function(){return g(w.subscription_url,a)}}];case 3:return"he"!==s?[3,5]:(R=o.DEV_BASE_URL||"",b="".concat(R,"/tallyman/v1/?action=he&country=").concat(f(r),"&slug=").concat(c,"&device=").concat("smart","&offerId=").concat(d,"&rockman_id=").concat(y,"&sam_evina_tid=").concat(l,"&").concat(_),[4,fetch(b).then((function(r){return r.json()}))]);case 4:if(!1===(U=e.sent()).success)throw(k=new Error("Error in getRedirectUrl() identify-user action:\n".concat(U.message))).type="NotOn3g",k;return p(U.source),[2,{redirect_url:U.redirectUrlWithReplacedUniqid}];case 5:if("om"===r.toLowerCase()){if("false"===(E=v(o)).success)throw(k=new Error("Error in getRedirectUrl() identify-user")).type="NotOn3g",k;return[2,{redirect_url:E.redirect_url||E.url}]}return R=o.DEV_BASE_URL||"",S=t(t({action:"redirect",device:"smart",slug:c,offerId:d,country:f(r),rockman_id:y,sam_evina_tid:l,search:_},(null===(I=null==o?void 0:o.location)||void 0===I?void 0:I.href)&&{page:encodeURIComponent(null===(C=null==o?void 0:o.location)||void 0===C?void 0:C.href)}),(null===(T=null===(j=null==o?void 0:o.pac_analytics)||void 0===j?void 0:j.visitor)||void 0===T?void 0:T.ip)&&{ip_address:null===(B=null===(A=null==o?void 0:o.pac_analytics)||void 0===A?void 0:A.visitor)||void 0===B?void 0:B.ip}),b="".concat(R,"/tallyman/v1/?").concat(S.toString()),[4,fetch(b).then((function(r){return r.json()}))];case 6:if(!1===(U=e.sent()).success)throw(k=new Error("Error in getRedirectUrl() identify-user action:\n".concat(U.message))).type="NotOn3g",k;return[2,{redirect_url:U.redirect_url}];case 7:return[2]}}))}))},g=function(t,c,o){return r(void 0,void 0,void 0,(function(){var r,a,i,u,s;return e(this,(function(e){switch(e.label){case 0:return r=c.queryString,a=window.location.search.substr(1),i=(a&&a.length>0?[a]:[]).concat((r||[]).map((function(r){var e=n(r,2),t=e[0],c=e[1];return"".concat(t,"=").concat(c)}))).join("&"),[4,E({window:window,extraParams:o,search:i,url:t})];case 1:if(!1===(u=e.sent()).success)throw(s=new Error("Error in subscribe() one-click-subscribe action:\n".concat(u.message))).type="ALREADY SUBSCRIBED"===u.message?"AlreadySubscribed":"SubscriptionError",s.productUrl=u.product_url?u.product_url:"",s.message=u.message,s;return[2,u.product_url||u.redirect_url]}}))}))},S=function(t,c,o){return r(void 0,void 0,void 0,(function(){var r,a,i,u,s,l,d,v,p,m,_,y,w,E,h;return e(this,(function(e){return void 0===t?[2,"javascript: console.error('SSR'); void 6"]:(r=c.country,a=c.slug,i=c.queryString,u=t.pac_analytics.visitor.offer,s=t.location.search.substr(1),l=(s&&s.length>0?[s]:[]).concat((i||[]).map((function(r){var e=n(r,2),t=e[0],c=e[1];return"".concat(t,"=").concat(c)}))).join("&"),d=o?"&".concat(Object.keys(o).map((function(r){return"".concat(r,"=").concat(o[r])})).join("&")):"",v=t.location.href.split("/")[3].split("?")[0],p=void 0!==t&&t.tid?t.tid:"",m=(null===(w=null===(y=null==t?void 0:t.pac_analytics)||void 0===y?void 0:y.visitor)||void 0===w?void 0:w.bupperRedirectHost)?t.atob(null===(h=null===(E=null==t?void 0:t.pac_analytics)||void 0===E?void 0:E.visitor)||void 0===h?void 0:h.bupperRedirectHost):null,_=m||t.DEV_BASE_URL_BUPPER||"",[2,"".concat(_,"/").concat(f(r),"/").concat(a,"?offer=").concat(u,"&atmobirun=1&rockman_id=").concat(t.pac_analytics.visitor.rockmanId,"&redirPixels=").concat(t.location.host,"&sam_evina_tid=").concat(p,"&x-xcid=").concat(v).concat(d,"&").concat(l)])}))}))},b={currentState:{type:"GET_REDIRECT_URL",result:a({redirectUrl:"/product"})}},U={currentState:{type:"SUBCRIBE_AJAX",result:s()}},k={currentState:{type:"GET_REDIRECT_URL",result:s()}},I=function(r){var e=v(r);if(!e["mock-flow"])return k;switch(e["current-state"]){case"redirect-url-success-state":return b;case"subscribe-ajax-state":return U;default:return console.error("Mock Flow not supported"),k}}(window),C=c("oneClickFlow/getRedirectUrlAction",(function(n,c){var o=n.window,i=n.isGetRedirectBupperWay,u=n.extraParams,l=n.autoRedirect,f=c.getState,p=c.rejectWithValue;return r(void 0,void 0,void 0,(function(){var r,n,c,m,_,y,E,h,g,b,U,k,C,j;return e(this,(function(e){switch(e.label){case 0:if(r=f(),v(o)["mock-flow"])return[2,I.currentState];if(!(null===(j=null===(C=null===(k=null==r?void 0:r.strategy)||void 0===k?void 0:k.currentState)||void 0===C?void 0:C.data)||void 0===j?void 0:j.config))return[2,p({errorType:"UnexpectedState"})];n=r.strategy.currentState.data,c=n.config,m=n.subscription_url,_=n.redirect_url,y=n.operator,e.label=1;case 1:return e.trys.push([1,8,,9]),!0!==i?[3,4]:[4,S(o,c,t(t({},y&&{operator:y}),u))];case 2:return[4,w({currentRedirectUrl:e.sent(),country:c.country})];case 3:return E=e.sent(),d.customEvent("Flow","advance-auto","redirect-success",{redirect_url:E}),!0!==o.isAutoFraudScreener?!0===l?(d.advancedInFlow("tallyman.v1-one-click","click-redirect-url",{redirect_url:E}),setTimeout((function(){o.location.href=E}),0),[2,{type:"GET_REDIRECT_URL",result:a({redirectUrl:E})}]):[2,{type:"GET_REDIRECT_URL",result:a({redirectUrl:E})}]:(h=setInterval((function(){o.isEvinaSessionChecked&&(clearInterval(h),d.advancedInFlow("tallyman.v1-one-click","click-redirect-url",{redirect_url:E}),setTimeout((function(){o.location.href=E}),0))}),100),[3,7]);case 4:return m&&null!=m?[2,{type:"SUBCRIBE_AJAX",result:s()}]:_?(d.customEvent("Flow","advance-auto","redirect-success",{redirect_url:_}),[2,{type:"GET_REDIRECT_URL",result:a({redirectUrl:_})}]):(d.advancedInFlow("tallyman.v1-one-click","get-redirect-url"),[4,R({window:o,maybeConfig:c,extraParams:t(t({},y&&{operator:y}),u)})]);case 5:return g=e.sent().redirect_url,d.advancedInFlow("tallyman.v1-one-click","get-redirect-url-success"),[4,w({currentRedirectUrl:g,country:c.country})];case 6:if(b=e.sent(),d.customEvent("Flow","advance-auto","redirect-success",{updated_redirect_url:b}),!0!==l&&!0!==o.isAutoFraudScreener)return[2,{type:"GET_REDIRECT_URL",result:a({redirectUrl:b})}];d.advancedInFlow("tallyman.v1-one-click","click-redirect-url",{updated_redirect_url:b}),setTimeout((function(){o.location.href=b}),0),e.label=7;case 7:return[3,9];case 8:return U=e.sent(),console.warn(U),d.recedeInFlow("tallyman.v1-one-click","get-redirect-url-failure",{errorType:"UnknownError"}),[2,p({errorType:"UnknownError",message:U.message,error:U.toString()})];case 9:return[2]}}))}))})),j=c("oneClickFlow/subscribeUrlAction",(function(t,n){var c=t.window,o=t.autoRedirect,i=t.extraParams,u=n.getState,s=n.rejectWithValue;return r(void 0,void 0,void 0,(function(){var r,t,n,l,v,f,p,m,_;return e(this,(function(e){switch(e.label){case 0:if(r=u(),!(null===(_=null===(m=null===(p=null==r?void 0:r.strategy)||void 0===p?void 0:p.currentState)||void 0===m?void 0:m.data)||void 0===_?void 0:_.config))return[2,s({errorType:"UnexpectedState"})];t=r.strategy.currentState.data,n=t.subscription_url,l=t.config,e.label=1;case 1:return e.trys.push([1,3,,4]),d.advancedInFlow("tallyman.v1-one-click","click-subscribe"),[4,g(n,l,i)];case 2:return v=e.sent(),d.advancedInFlow("tallyman.v1-one-click","click-subscribe-success",{product_url:v}),!0===o&&(d.customEvent("Flow","advance-auto","click-product-url",{product_url:v}),c.location.href=v),[2,{type:"SUBCRIBE_AJAX",result:a({productUrl:v})}];case 3:return f=e.sent(),console.warn(f),d.recedeInFlow("tallyman.v1-one-click","click-subscribe-failure",{error:f.toString()}),[2,s({errorType:"UnknownError",error:f.toString(),productUrl:f.productUrl,message:f.message||""})];case 4:return[2]}}))}))})),T=o({name:"oneClickFlow",initialState:I,reducers:{},extraReducers:function(r){r.addCase(C.pending,(function(r){r.currentState={type:"GET_REDIRECT_URL",result:i()}})).addCase(C.fulfilled,(function(r,e){r.currentState=e.payload})).addCase(C.rejected,(function(r,e){r.currentState={type:"GET_REDIRECT_URL",result:u(e.payload)}})).addCase(j.pending,(function(r){r.currentState={type:"SUBCRIBE_AJAX",result:i()}})).addCase(j.fulfilled,(function(r,e){r.currentState=e.payload})).addCase(j.rejected,(function(r,e){r.currentState={type:"SUBCRIBE_AJAX",result:u(e.payload)}}))}}),A=T.reducer;T.actions;export{C as getRedirectUrlAction,y as oneClickFlowMatch,A as oneClickFlowReducer,j as subscribeUrlAction,_ as useOneClickFlowState};
1
+ import{__awaiter as r,__generator as e,__assign as t,__read as n}from"tslib";import{createAsyncThunk as c,createSlice as o}from"@reduxjs/toolkit";import{S as a,L as i,F as u,N as s}from"./RemoteDataState-lcf8PfJd.js";import{u as l,t as d}from"./tracker-DaaILhEr.js";import{searchToObject as v}from"./searchToObject.js";import{b as f}from"./bupperizeCountry-CEtt0MKz.js";import{l as p}from"./loadScriptInnerHtml-B6v2-IGn.js";import{c as m}from"./cleanSearchParams-Dl7ZDlew.js";import"pacman-client";import"uuid";var _=function(r){return r((function(r){return r.oneClickFlow.currentState}))};function y(r){var e=r.getRedirectUrl,t=r.subscribe;return function(r){switch(r.type){case"GET_REDIRECT_URL":default:return e(r.result);case"SUBCRIBE_AJAX":return t(r.result)}}}function w(t){var n=t.currentRedirectUrl,c=t.country;return r(this,void 0,void 0,(function(){var r;return e(this,(function(e){switch(e.label){case 0:return"pe"!==c.toLowerCase()?[3,3]:[4,new Promise((function(r){var e=setInterval((function(){window.Empello&&(clearInterval(e),r())}),100)}))];case 1:return e.sent(),"undefined"!=typeof window&&window.Empello?[4,new Promise((function(r){var e;null===(e=window.Empello)||void 0===e||e.getToken((function(e){r(e)}))}))]:[3,3];case 2:return r=e.sent(),[2,l(n,"empello_token",r)];case 3:return[2,n]}}))}))}var E=function(c){var o=c.window,a=c.extraParams,i=c.search,u=c.url;return r(void 0,void 0,void 0,(function(){var r,c,s,l,d;return e(this,(function(e){switch(e.label){case 0:i=m(i),r=(null==o?void 0:o.tid)||"",c=(null==o?void 0:o.shouldBlock)?"false":"true",s=Object.entries(a||{}).map((function(r){var e=n(r,2),t=e[0],c=e[1];return"".concat(t,"=").concat(encodeURIComponent(c))})).join("&"),e.label=1;case 1:return e.trys.push([1,4,,5]),v=u,f=t({sam_evina_tid:r,antifraud_id:o.antifraud_id||"",antifraud_id_js_code:o.antifraud_id_js_code||"",antifraud_id_js_link:o.antifraud_id_js_link||"","is-clean-traffic":c},Object.fromEntries(new URLSearchParams(s))),p=new URLSearchParams(f).toString(),l="".concat(v,"&").concat(p),[4,fetch("".concat(l).concat(i?"&".concat(i):""))];case 2:return[4,e.sent().json()];case 3:return[2,e.sent()];case 4:throw d=e.sent(),console.error("Error fetching subscription:",d),d;case 5:return[2]}var v,f,p}))}))},h=function(r){var e=r,t="ouisys_callback_function".concat(Math.floor(1e4*Math.random()));return new Promise((function(n,c){window[t]=function(r){n(r)},e+=-1===e.indexOf("?")?"?":"&",e+="jsonp=".concat(t);var o=document.createElement("script");o.src=e,o.id=t,document.body.appendChild(o),o.onerror=function(){c(new Error("JSONP request to ".concat(r," failed")))}}))},R=function(c){var o=c.window,a=c.maybeConfig,i=c.extraParams;return r(void 0,void 0,void 0,(function(){var r,c,u,s,l,d,m,_,y,w,E,R,S,b,U,k,I,C,j,T,A,B;return e(this,(function(e){switch(e.label){case 0:if(void 0!==o)return[3,1];throw"javascript: console.error('SSR'); void 6";case 1:return r=a.country,c=a.slug,u=a.queryString,s=a.apiAction,l=void 0!==o&&o.tid?o.tid:"",d=o.pac_analytics.visitor.offer,m=o.location.search.substr(1),_=(m&&m.length>0?[m]:[]).concat((u||[]).map((function(r){var e=n(r,2),t=e[0],c=e[1];return"".concat(t,"=").concat(c)}))).join("&"),Object.keys(i).forEach((function(r,e){_.length>0&&(_+="&"),_="".concat(function(r,e,t){void 0===t&&(t="");var n=new RegExp("\\b(".concat(e,"=).*?(&|#|$)"));if(r.search(n)>=0)return r.replace(n,"$1".concat(t,"$2"));var c=r.replace(/[?#]$/,"");return"".concat(c+e,"=").concat(t,"&")}(_,r,i[r])).concat(1===e?"&":"")})),y=o.pac_analytics.visitor.rockmanId,"identify-user"!==s?[3,3]:(R=o.DEV_BASE_URL||"",b="".concat(R,"/tallyman/v1/?action=identify-user&country=").concat(f(r),"&slug=").concat(c,"&device=").concat("smart","&offerId=").concat(d,"&rockman_id=").concat(y,"&sam_evina_tid=").concat(l,"&").concat(_),[4,h(b)]);case 2:if(!1===(w=e.sent()).success)throw(k=new Error("Error in getRedirectUrl() identify-user action:\n".concat(w.message))).type="NotOn3g",k;return[2,{subscription_url:w.subscription_url||w.redirect_url,action:function(){return g(w.subscription_url,a)}}];case 3:return"he"!==s?[3,5]:(R=o.DEV_BASE_URL||"",b="".concat(R,"/tallyman/v1/?action=he&country=").concat(f(r),"&slug=").concat(c,"&device=").concat("smart","&offerId=").concat(d,"&rockman_id=").concat(y,"&sam_evina_tid=").concat(l,"&").concat(_),[4,fetch(b).then((function(r){return r.json()}))]);case 4:if(!1===(U=e.sent()).success)throw(k=new Error("Error in getRedirectUrl() identify-user action:\n".concat(U.message))).type="NotOn3g",k;return p(U.source),[2,{redirect_url:U.redirectUrlWithReplacedUniqid}];case 5:if("om"===r.toLowerCase()){if("false"===(E=v(o)).success)throw(k=new Error("Error in getRedirectUrl() identify-user")).type="NotOn3g",k;return[2,{redirect_url:E.redirect_url||E.url}]}return R=o.DEV_BASE_URL||"",S=new URLSearchParams(t(t({action:"redirect",device:"smart",slug:c,offerId:d,country:f(r),rockman_id:y,sam_evina_tid:l,search:_},(null===(I=null==o?void 0:o.location)||void 0===I?void 0:I.href)&&{page:encodeURIComponent(null===(C=null==o?void 0:o.location)||void 0===C?void 0:C.href)}),(null===(T=null===(j=null==o?void 0:o.pac_analytics)||void 0===j?void 0:j.visitor)||void 0===T?void 0:T.ip)&&{ip_address:null===(B=null===(A=null==o?void 0:o.pac_analytics)||void 0===A?void 0:A.visitor)||void 0===B?void 0:B.ip})),b="".concat(R,"/tallyman/v1/?").concat(S.toString()),[4,fetch(b).then((function(r){return r.json()}))];case 6:if(!1===(U=e.sent()).success)throw(k=new Error("Error in getRedirectUrl() identify-user action:\n".concat(U.message))).type="NotOn3g",k;return[2,{redirect_url:U.redirect_url}];case 7:return[2]}}))}))},g=function(t,c,o){return r(void 0,void 0,void 0,(function(){var r,a,i,u,s;return e(this,(function(e){switch(e.label){case 0:return r=c.queryString,a=window.location.search.substr(1),i=(a&&a.length>0?[a]:[]).concat((r||[]).map((function(r){var e=n(r,2),t=e[0],c=e[1];return"".concat(t,"=").concat(c)}))).join("&"),[4,E({window:window,extraParams:o,search:i,url:t})];case 1:if(!1===(u=e.sent()).success)throw(s=new Error("Error in subscribe() one-click-subscribe action:\n".concat(u.message))).type="ALREADY SUBSCRIBED"===u.message?"AlreadySubscribed":"SubscriptionError",s.productUrl=u.product_url?u.product_url:"",s.message=u.message,s;return[2,u.product_url||u.redirect_url]}}))}))},S=function(t,c,o){return r(void 0,void 0,void 0,(function(){var r,a,i,u,s,l,d,v,p,m,_,y,w,E,h;return e(this,(function(e){return void 0===t?[2,"javascript: console.error('SSR'); void 6"]:(r=c.country,a=c.slug,i=c.queryString,u=t.pac_analytics.visitor.offer,s=t.location.search.substr(1),l=(s&&s.length>0?[s]:[]).concat((i||[]).map((function(r){var e=n(r,2),t=e[0],c=e[1];return"".concat(t,"=").concat(c)}))).join("&"),d=o?"&".concat(Object.keys(o).map((function(r){return"".concat(r,"=").concat(o[r])})).join("&")):"",v=t.location.href.split("/")[3].split("?")[0],p=void 0!==t&&t.tid?t.tid:"",m=(null===(w=null===(y=null==t?void 0:t.pac_analytics)||void 0===y?void 0:y.visitor)||void 0===w?void 0:w.bupperRedirectHost)?t.atob(null===(h=null===(E=null==t?void 0:t.pac_analytics)||void 0===E?void 0:E.visitor)||void 0===h?void 0:h.bupperRedirectHost):null,_=m||t.DEV_BASE_URL_BUPPER||"",[2,"".concat(_,"/").concat(f(r),"/").concat(a,"?offer=").concat(u,"&atmobirun=1&rockman_id=").concat(t.pac_analytics.visitor.rockmanId,"&redirPixels=").concat(t.location.host,"&sam_evina_tid=").concat(p,"&x-xcid=").concat(v).concat(d,"&").concat(l)])}))}))},b={currentState:{type:"GET_REDIRECT_URL",result:a({redirectUrl:"/product"})}},U={currentState:{type:"SUBCRIBE_AJAX",result:s()}},k={currentState:{type:"GET_REDIRECT_URL",result:s()}},I=function(r){var e=v(r);if(!e["mock-flow"])return k;switch(e["current-state"]){case"redirect-url-success-state":return b;case"subscribe-ajax-state":return U;default:return console.error("Mock Flow not supported"),k}}(window),C=c("oneClickFlow/getRedirectUrlAction",(function(n,c){var o=n.window,i=n.isGetRedirectBupperWay,u=n.extraParams,l=n.autoRedirect,f=c.getState,p=c.rejectWithValue;return r(void 0,void 0,void 0,(function(){var r,n,c,m,_,y,E,h,g,b,U,k,C,j;return e(this,(function(e){switch(e.label){case 0:if(r=f(),v(o)["mock-flow"])return[2,I.currentState];if(!(null===(j=null===(C=null===(k=null==r?void 0:r.strategy)||void 0===k?void 0:k.currentState)||void 0===C?void 0:C.data)||void 0===j?void 0:j.config))return[2,p({errorType:"UnexpectedState"})];n=r.strategy.currentState.data,c=n.config,m=n.subscription_url,_=n.redirect_url,y=n.operator,e.label=1;case 1:return e.trys.push([1,8,,9]),!0!==i?[3,4]:[4,S(o,c,t(t({},y&&{operator:y}),u))];case 2:return[4,w({currentRedirectUrl:e.sent(),country:c.country})];case 3:return E=e.sent(),d.customEvent("Flow","advance-auto","redirect-success",{redirect_url:E}),!0!==o.isAutoFraudScreener?!0===l?(d.advancedInFlow("tallyman.v1-one-click","click-redirect-url",{redirect_url:E}),setTimeout((function(){o.location.href=E}),0),[2,{type:"GET_REDIRECT_URL",result:a({redirectUrl:E})}]):[2,{type:"GET_REDIRECT_URL",result:a({redirectUrl:E})}]:(h=setInterval((function(){o.isEvinaSessionChecked&&(clearInterval(h),d.advancedInFlow("tallyman.v1-one-click","click-redirect-url",{redirect_url:E}),setTimeout((function(){o.location.href=E}),0))}),100),[3,7]);case 4:return m&&null!=m?[2,{type:"SUBCRIBE_AJAX",result:s()}]:_?(d.customEvent("Flow","advance-auto","redirect-success",{redirect_url:_}),[2,{type:"GET_REDIRECT_URL",result:a({redirectUrl:_})}]):(d.advancedInFlow("tallyman.v1-one-click","get-redirect-url"),[4,R({window:o,maybeConfig:c,extraParams:t(t({},y&&{operator:y}),u)})]);case 5:return g=e.sent().redirect_url,d.advancedInFlow("tallyman.v1-one-click","get-redirect-url-success"),[4,w({currentRedirectUrl:g,country:c.country})];case 6:if(b=e.sent(),d.customEvent("Flow","advance-auto","redirect-success",{updated_redirect_url:b}),!0!==l&&!0!==o.isAutoFraudScreener)return[2,{type:"GET_REDIRECT_URL",result:a({redirectUrl:b})}];d.advancedInFlow("tallyman.v1-one-click","click-redirect-url",{updated_redirect_url:b}),setTimeout((function(){o.location.href=b}),0),e.label=7;case 7:return[3,9];case 8:return U=e.sent(),console.warn(U),d.recedeInFlow("tallyman.v1-one-click","get-redirect-url-failure",{errorType:"UnknownError"}),[2,p({errorType:"UnknownError",message:U.message,error:U.toString()})];case 9:return[2]}}))}))})),j=c("oneClickFlow/subscribeUrlAction",(function(t,n){var c=t.window,o=t.autoRedirect,i=t.extraParams,u=n.getState,s=n.rejectWithValue;return r(void 0,void 0,void 0,(function(){var r,t,n,l,v,f,p,m,_;return e(this,(function(e){switch(e.label){case 0:if(r=u(),!(null===(_=null===(m=null===(p=null==r?void 0:r.strategy)||void 0===p?void 0:p.currentState)||void 0===m?void 0:m.data)||void 0===_?void 0:_.config))return[2,s({errorType:"UnexpectedState"})];t=r.strategy.currentState.data,n=t.subscription_url,l=t.config,e.label=1;case 1:return e.trys.push([1,3,,4]),d.advancedInFlow("tallyman.v1-one-click","click-subscribe"),[4,g(n,l,i)];case 2:return v=e.sent(),d.advancedInFlow("tallyman.v1-one-click","click-subscribe-success",{product_url:v}),!0===o&&(d.customEvent("Flow","advance-auto","click-product-url",{product_url:v}),c.location.href=v),[2,{type:"SUBCRIBE_AJAX",result:a({productUrl:v})}];case 3:return f=e.sent(),console.warn(f),d.recedeInFlow("tallyman.v1-one-click","click-subscribe-failure",{error:f.toString()}),[2,s({errorType:"UnknownError",error:f.toString(),productUrl:f.productUrl,message:f.message||""})];case 4:return[2]}}))}))})),T=o({name:"oneClickFlow",initialState:I,reducers:{},extraReducers:function(r){r.addCase(C.pending,(function(r){r.currentState={type:"GET_REDIRECT_URL",result:i()}})).addCase(C.fulfilled,(function(r,e){r.currentState=e.payload})).addCase(C.rejected,(function(r,e){r.currentState={type:"GET_REDIRECT_URL",result:u(e.payload)}})).addCase(j.pending,(function(r){r.currentState={type:"SUBCRIBE_AJAX",result:i()}})).addCase(j.fulfilled,(function(r,e){r.currentState=e.payload})).addCase(j.rejected,(function(r,e){r.currentState={type:"SUBCRIBE_AJAX",result:u(e.payload)}}))}}),A=T.reducer;T.actions;export{C as getRedirectUrlAction,y as oneClickFlowMatch,A as oneClickFlowReducer,j as subscribeUrlAction,_ as useOneClickFlowState};
2
2
  //# sourceMappingURL=oneClickFlow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"oneClickFlow.js","sources":["../src/flows/oneClickFlow/hooks/useOneClickFlowState.ts","../src/flows/oneClickFlow/match.ts","../src/utilities/addEmpelloToken.ts","../src/utilities/replaceUrlParam.ts","../src/flows/oneClickFlow/api.ts","../src/flows/oneClickFlow/main.ts","../src/flows/oneClickFlow/oneClickFlowSlice.ts"],"sourcesContent":["import { useSelector as IuseSelector } from 'react-redux';\nimport { RootState } from '../../../sharedFlowTypes/StrategyTypes';\n\nexport const useOneClickFlowState = (useSelector: typeof IuseSelector) => {\n const currentState = useSelector((state: RootState) => state.oneClickFlow.currentState);\n return currentState;\n};\n","import * as RDS from '../../common-types/RemoteDataState';\nimport {\n IGETREDIRECTURLFailure,\n IGETREDIRECTURLSuccess,\n OneClickFlowCurrentState,\n SubscribeFailure,\n SubscribeSuccess\n} from '../../sharedFlowTypes/OneClickTypes';\n\nfunction oneClickFlowMatch<R>({\n getRedirectUrl,\n subscribe\n}: {\n getRedirectUrl: (rds: RDS.RemoteDataState<IGETREDIRECTURLFailure, IGETREDIRECTURLSuccess>) => R;\n subscribe?: (rds: RDS.RemoteDataState<SubscribeFailure, SubscribeSuccess>) => R;\n}): (state: OneClickFlowCurrentState) => R {\n return (state) => {\n switch (state.type) {\n case 'GET_REDIRECT_URL':\n return getRedirectUrl(state.result);\n case 'SUBCRIBE_AJAX':\n return subscribe(state.result);\n default:\n // TODO - this should be an error or something\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return getRedirectUrl(state.result);\n }\n };\n}\n\nexport { oneClickFlowMatch };\n","import { updateUrlParameter } from '../pacman/queryString';\n\nexport async function addEmpelloToken({\n currentRedirectUrl,\n country\n}: {\n currentRedirectUrl: string;\n country: string;\n}) {\n if (country.toLowerCase() === 'pe') {\n // Empello script is added on server\n\n await new Promise<void>((resolve) => {\n // check if empello script is loaded and available\n const checkEmpelloAvailability = setInterval(() => {\n if (window.Empello) {\n clearInterval((checkEmpelloAvailability as unknown) as number);\n resolve();\n }\n }, 100);\n });\n if (typeof window !== 'undefined' && window.Empello) {\n // call getToken function from empello\n const token = await new Promise<string>((resolve) => {\n window.Empello?.getToken((empelloToken: string) => {\n resolve(empelloToken);\n });\n });\n\n const url = updateUrlParameter(currentRedirectUrl, 'empello_token', token);\n return url;\n }\n }\n\n return currentRedirectUrl;\n}\n","export const replaceUrlParam = (url: string, paramName: string, paramValue = '') => {\n const pattern = new RegExp(`\\\\b(${paramName}=).*?(&|#|$)`);\n if (url.search(pattern) >= 0) {\n return url.replace(pattern, `$1${paramValue}$2`);\n }\n const newUrl = url.replace(/[?#]$/, '');\n return `${newUrl + paramName}=${paramValue}&`;\n};\n","import { IHash } from '../../common-types/IHash';\nimport { cleanSearchParams } from '../../utilities/cleanSearchParams';\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nexport const getRedirectAPI = () => {};\n\nconst getUrlWithParams = (baseURL: string, params: IHash) => {\n const queryParams = new URLSearchParams(params).toString();\n return `${baseURL}&${queryParams}`;\n};\n\nexport const oneClickSubscribe = async ({\n window,\n extraParams,\n search,\n url\n}: {\n window: Window;\n extraParams?: IHash;\n search: string;\n url: string;\n}) => {\n // Remove conflicting params from url\n search = cleanSearchParams(search);\n const evinaTid = window?.tid || '';\n const isCleanTraffic = window?.shouldBlock ? 'false' : 'true';\n\n const extraParamsQs = Object.entries(extraParams || {})\n .map(([key, value]) => `${key}=${encodeURIComponent(value)}`)\n .join('&');\n\n try {\n const resultUrl = getUrlWithParams(url, {\n sam_evina_tid: evinaTid,\n antifraud_id: window.antifraud_id || '',\n // More specific antifraud IDs will eventuallly replace antifraud_id\n // https://www.notion.so/sammedia/KW-Agency-Globocom-KW-ENTERTAINMENT-STORE-GAMESOLUTELY-GLING-Landing-Page-Test-a9841b14218b42709ffb1a2d41428275?d=f2a8d09b1e8c4fd4bdab69ab5dda1f25\n antifraud_id_js_code: window.antifraud_id_js_code || '',\n antifraud_id_js_link: window.antifraud_id_js_link || '',\n 'is-clean-traffic': isCleanTraffic,\n ...Object.fromEntries(new URLSearchParams(extraParamsQs))\n });\n\n const response = await fetch(`${resultUrl}${search ? `&${search}` : ''}`);\n const result = await response.json();\n return result;\n } catch (error) {\n console.error('Error fetching subscription:', error);\n throw error; // Rethrow or handle error as needed\n }\n};\n","import { IError } from '../../common-types/IError';\nimport { IHash } from '../../common-types/IHash';\nimport { IIDentifyUserResult, ILinkExtraParams, ISubscribeResult } from '../../sharedFlowTypes/OneClickTypes';\nimport { IConfig } from '../../sharedFlowTypes/StrategyTypes';\nimport { bupperizeCountry } from '../../utilities/bupperizeCountry';\nimport { loadScriptInnerHtml } from '../../utilities/loadScriptInnerHtml';\nimport { replaceUrlParam } from '../../utilities/replaceUrlParam';\nimport { searchToObject } from '../../utilities/searchToObject';\nimport { oneClickSubscribe } from './api';\n\nexport const additionalQueryString = `msisdnSubmitted=Y&legalCheckbox=Y&incentivizedCheckbox=Y&op_confirmCheckbox=N`;\n\nconst fetchJsonp: <T>(_url: string) => Promise<T> = (_url: string) => {\n let url = _url;\n const ouisys_callback_function = `ouisys_callback_function${Math.floor(Math.random() * 10000)}`;\n return new Promise((resolve, reject) => {\n // @ts-ignore\n window[ouisys_callback_function] = (arg) => {\n resolve(arg);\n };\n\n url += url.indexOf('?') === -1 ? '?' : '&';\n url += `jsonp=${ouisys_callback_function}`;\n const script = document.createElement('script');\n script.src = url;\n script.id = ouisys_callback_function;\n document.body.appendChild(script);\n\n // Caught if got 404/500\n script.onerror = () => {\n reject(new Error(`JSONP request to ${_url} failed`));\n };\n });\n};\n\nexport const getRedirectUrl = async ({\n window,\n maybeConfig,\n extraParams\n}: {\n window: Window;\n maybeConfig: IConfig;\n extraParams?: ILinkExtraParams;\n}): Promise<{\n subscription_url?: string;\n redirect_url?: string;\n action?: () => Promise<string>;\n}> => {\n if (typeof window === 'undefined') {\n // eslint-disable-next-line no-throw-literal, no-script-url\n throw \"javascript: console.error('SSR'); void 6\";\n } else {\n const { country, slug, queryString, apiAction } = maybeConfig;\n const evinaTid = typeof window !== 'undefined' && window.tid ? window.tid : '';\n\n const { offer } = window.pac_analytics.visitor;\n const s = window.location.search.substr(1);\n // @ts-ignore\n let search = (!!s && s.length > 0 ? [s] : []).concat((queryString || []).map(([k, v]) => `${k}=${v}`)).join('&');\n\n Object.keys(extraParams).forEach((element, index) => {\n // Check if search already has query parameters\n if (search.length > 0) {\n // If there are existing parameters, add '&' before appending the new one\n search += '&';\n }\n search = `${replaceUrlParam(search, element, extraParams[element])}${index === 1 ? '&' : ''}`;\n });\n const { rockmanId } = window.pac_analytics.visitor;\n\n if (apiAction === 'identify-user') {\n const host = (window as Window).DEV_BASE_URL || '';\n const url = `${host}/tallyman/v1/?action=identify-user&country=${bupperizeCountry(\n country\n )}&slug=${slug}&device=${'smart'}&offerId=${offer}&rockman_id=${rockmanId}&sam_evina_tid=${evinaTid}&${search}`;\n const result = await fetchJsonp<IIDentifyUserResult>(url);\n if (result.success === false) {\n const identifyError = new Error(`Error in getRedirectUrl() identify-user action:\\n${result.message}`) as IError;\n identifyError.type = 'NotOn3g';\n throw identifyError;\n } else {\n return {\n subscription_url: result.subscription_url || result.redirect_url,\n action: () => subscribe(result.subscription_url, maybeConfig)\n };\n }\n } else if (apiAction === 'he') {\n const host = (window as Window).DEV_BASE_URL || '';\n const url = `${host}/tallyman/v1/?action=he&country=${bupperizeCountry(\n country\n )}&slug=${slug}&device=${'smart'}&offerId=${offer}&rockman_id=${rockmanId}&sam_evina_tid=${evinaTid}&${search}`;\n const result = await fetch(url).then((x) => x.json());\n if (result.success === false) {\n const identifyError = new Error(`Error in getRedirectUrl() identify-user action:\\n${result.message}`) as IError;\n identifyError.type = 'NotOn3g';\n throw identifyError;\n } else {\n loadScriptInnerHtml(result.source);\n return { redirect_url: result.redirectUrlWithReplacedUniqid };\n }\n } else {\n if (country.toLowerCase() === 'om') {\n const searchObj = searchToObject(window) as {\n redirect_url: string;\n url: string;\n msisdn: string;\n success: 'true' | 'false';\n };\n if (searchObj.success === 'false') {\n const identifyError = new Error(`Error in getRedirectUrl() identify-user`) as IError;\n identifyError.type = 'NotOn3g';\n throw identifyError;\n } else {\n return { redirect_url: searchObj.redirect_url || searchObj.url };\n }\n }\n const host = (window as Window).DEV_BASE_URL || '';\n\n const params = {\n action: 'redirect',\n device: 'smart',\n slug,\n offerId: offer,\n country: bupperizeCountry(country),\n rockman_id: rockmanId,\n sam_evina_tid: evinaTid,\n search,\n ...(window?.location?.href && { page: encodeURIComponent(window?.location?.href) }),\n ...(window?.pac_analytics?.visitor?.ip && { ip_address: window?.pac_analytics?.visitor?.ip })\n };\n\n const url = `${host}/tallyman/v1/?${params.toString()}`;\n const result = await fetch(url).then((x) => x.json());\n\n if (result.success === false) {\n const identifyError = new Error(`Error in getRedirectUrl() identify-user action:\\n${result.message}`) as IError;\n identifyError.type = 'NotOn3g';\n throw identifyError;\n } else {\n return { redirect_url: result.redirect_url };\n }\n }\n }\n};\n\nexport const subscribe: (url: string, maybeConfig: IConfig, extraParams?: IHash) => Promise<string> = async (\n url: string,\n maybeConfig: IConfig,\n extraParams?: IHash\n) => {\n const { queryString } = maybeConfig;\n const s = window.location.search.substr(1);\n // @ts-ignore\n const search = (!!s && s.length > 0 ? [s] : []).concat((queryString || []).map(([k, v]) => `${k}=${v}`)).join('&');\n\n const result: ISubscribeResult = await oneClickSubscribe({\n window,\n extraParams,\n search,\n url\n });\n\n if (result.success === false) {\n const subscribeError = new Error(`Error in subscribe() one-click-subscribe action:\\n${result.message}`) as {\n productUrl: string;\n } & IError;\n subscribeError.type = result.message === 'ALREADY SUBSCRIBED' ? 'AlreadySubscribed' : 'SubscriptionError';\n subscribeError.productUrl = result.product_url ? result.product_url : '';\n subscribeError.message = result.message;\n throw subscribeError;\n } else {\n return result.product_url || result.redirect_url;\n }\n};\n\nexport const getRedirectUrlBupperWay = async (\n window: Window,\n maybeConfig: IConfig,\n extraParams?: ILinkExtraParams\n): Promise<string> => {\n if (typeof window === 'undefined') {\n // eslint-disable-next-line no-script-url\n return \"javascript: console.error('SSR'); void 6\";\n }\n const { country, slug, queryString } = maybeConfig;\n const { offer } = window.pac_analytics.visitor;\n const s = window.location.search.substr(1);\n // @ts-ignore\n const search = (!!s && s.length > 0 ? [s] : []).concat((queryString || []).map(([k, v]) => `${k}=${v}`)).join('&');\n const extraParamsQs = !extraParams\n ? ''\n : `&${Object.keys(extraParams)\n .map((k) => `${k}=${extraParams[k]}`)\n .join('&')}`;\n\n // one click flow must use http not https\n const xcid = window.location.href.split('/')[3].split('?')[0];\n const evinaTid = typeof window !== 'undefined' && window.tid ? window.tid : '';\n\n const baseHostBupper = window?.pac_analytics?.visitor?.bupperRedirectHost\n ? window.atob(window?.pac_analytics?.visitor?.bupperRedirectHost)\n : null;\n const host = baseHostBupper || (window as Window).DEV_BASE_URL_BUPPER || '';\n\n return `${host}/${bupperizeCountry(country)}/${slug}?offer=${offer}&atmobirun=1&rockman_id=${\n window.pac_analytics.visitor.rockmanId\n }&redirPixels=${window.location.host}&sam_evina_tid=${evinaTid}&x-xcid=${xcid}${extraParamsQs}&${search}`;\n};\n","import { createAsyncThunk, createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport { IHash } from '../../common-types/IHash';\nimport * as RDS from '../../common-types/RemoteDataState';\nimport {\n AJAXSUBSCRIBEState,\n GETREDIRECTUrlState,\n IGETREDIRECTURLFailure,\n OneClickFlowState,\n SubscribeFailure\n} from '../../sharedFlowTypes/OneClickTypes';\nimport { IMockFlowParams, RootState } from '../../sharedFlowTypes/StrategyTypes';\nimport { addEmpelloToken } from '../../utilities/addEmpelloToken';\nimport { searchToObject } from '../../utilities/searchToObject';\nimport { tracker } from '../../utilities/tracker';\nimport { getRedirectUrl, getRedirectUrlBupperWay, subscribe } from './main';\n\nexport const mockedRedirectUrlSuccessState: OneClickFlowState = {\n currentState: {\n type: 'GET_REDIRECT_URL',\n // @ts-ignore\n result: RDS.Success<IGETREDIRECTURLFailure, IGETREDIRECTURLSuccess>({ redirectUrl: '/product' })\n }\n};\n\nexport const mockedSubscribeAjaxState: OneClickFlowState = {\n currentState: {\n type: 'SUBCRIBE_AJAX',\n // @ts-ignore\n result: RDS.NothingYet()\n }\n};\n\nconst defaultInitialState: OneClickFlowState = {\n currentState: {\n type: 'GET_REDIRECT_URL',\n result: RDS.NothingYet()\n }\n};\n\nconst setInitialState = (window: Window) => {\n const search = searchToObject(window) as IMockFlowParams<any>;\n if (search['mock-flow']) {\n switch (search['current-state']) {\n case 'redirect-url-success-state':\n return mockedRedirectUrlSuccessState;\n case 'subscribe-ajax-state':\n return mockedSubscribeAjaxState;\n default:\n console.error('Mock Flow not supported');\n return defaultInitialState;\n }\n } else {\n return defaultInitialState;\n }\n};\n\nconst initialState = setInitialState(window);\n\ninterface GetRedirectUrlArgs {\n window: Window;\n extraParams?: IHash;\n autoRedirect?: boolean;\n isGetRedirectBupperWay?: boolean;\n ignoreUrlParams?: boolean;\n}\n/**\n * getRedirectUrlAction\n * @returns {type: ' 'oneClickFlow/getRedirectUrlAction', payload: {type: PossibleTypes, result: GETREDIRECTUrlState}}\n \n * Calls redirect api to get a redirect url for the user to be redirected to\n * Can also create a bupper redirect url\n */\nexport const getRedirectUrlAction = createAsyncThunk<\n GETREDIRECTUrlState,\n GetRedirectUrlArgs,\n {\n rejectValue: IGETREDIRECTURLFailure;\n }\n>(\n 'oneClickFlow/getRedirectUrlAction',\n // @ts-ignore\n async ({ window, isGetRedirectBupperWay, extraParams, autoRedirect }, { getState, rejectWithValue }) => {\n const state: RootState = getState();\n const search = searchToObject(window) as IMockFlowParams<any>;\n if (search['mock-flow']) {\n return initialState.currentState;\n }\n if (!state?.strategy?.currentState?.data?.config) {\n return rejectWithValue({\n errorType: 'UnexpectedState'\n });\n }\n\n const { config, subscription_url, redirect_url, operator } = state.strategy.currentState.data;\n try {\n if (isGetRedirectBupperWay === true) {\n const redirectUrl = await getRedirectUrlBupperWay(window, config, {\n ...(operator && { operator }),\n ...extraParams\n });\n\n // add empellow token for specific country\n const updatedRedirectUrl = await addEmpelloToken({\n currentRedirectUrl: redirectUrl,\n country: config.country\n });\n\n tracker.customEvent('Flow', 'advance-auto', 'redirect-success', { redirect_url: updatedRedirectUrl });\n if (window.isAutoFraudScreener === true) {\n // Wait for Evina to Check Fraud First\n const timer = setInterval(() => {\n if (window.isEvinaSessionChecked) {\n clearInterval(timer);\n tracker.advancedInFlow('tallyman.v1-one-click', 'click-redirect-url', {\n redirect_url: updatedRedirectUrl\n });\n setTimeout(() => {\n window.location.href = updatedRedirectUrl;\n }, 0);\n }\n }, 100);\n } else if (autoRedirect === true) {\n tracker.advancedInFlow('tallyman.v1-one-click', 'click-redirect-url', { redirect_url: updatedRedirectUrl });\n setTimeout(() => {\n window.location.href = updatedRedirectUrl;\n }, 0);\n return {\n type: 'GET_REDIRECT_URL',\n result: RDS.Success({\n redirectUrl: updatedRedirectUrl\n })\n };\n } else {\n return {\n type: 'GET_REDIRECT_URL',\n result: RDS.Success({\n redirectUrl: updatedRedirectUrl\n })\n };\n }\n } else {\n if (subscription_url && subscription_url != null) {\n return {\n type: 'SUBCRIBE_AJAX',\n result: RDS.NothingYet()\n };\n }\n if (redirect_url) {\n tracker.customEvent('Flow', 'advance-auto', 'redirect-success', { redirect_url });\n return {\n type: 'GET_REDIRECT_URL',\n result: RDS.Success({\n redirectUrl: redirect_url\n })\n };\n }\n\n tracker.advancedInFlow('tallyman.v1-one-click', 'get-redirect-url');\n const { redirect_url: newRedirectUrl } = await getRedirectUrl({\n window,\n maybeConfig: config,\n extraParams: {\n ...(operator && { operator }),\n ...extraParams\n }\n });\n tracker.advancedInFlow('tallyman.v1-one-click', 'get-redirect-url-success');\n\n // add empellow token for specific country\n const updated_redirect_url = await addEmpelloToken({\n currentRedirectUrl: newRedirectUrl,\n country: config.country\n });\n\n tracker.customEvent('Flow', 'advance-auto', 'redirect-success', { updated_redirect_url });\n\n if (autoRedirect === true || window.isAutoFraudScreener === true) {\n tracker.advancedInFlow('tallyman.v1-one-click', 'click-redirect-url', { updated_redirect_url });\n\n setTimeout(() => {\n // eslint-disable-next-line camelcase\n window.location.href = updated_redirect_url;\n }, 0);\n } else {\n return {\n type: 'GET_REDIRECT_URL',\n result: RDS.Success({\n redirectUrl: updated_redirect_url\n })\n };\n }\n }\n } catch (ex) {\n console.warn(ex);\n tracker.recedeInFlow('tallyman.v1-one-click', 'get-redirect-url-failure', {\n errorType: 'UnknownError'\n });\n return rejectWithValue({\n errorType: 'UnknownError',\n message: ex.message,\n error: ex.toString()\n });\n }\n }\n);\n\n/**\n * subscribeUrlAction\n * @returns {type: ' 'oneClickFlow/submitMSISDNAction', payload: {type: PossibleTypes.MO, result: PINEntryState}}\n \n * Calls oneclick subscripe api to subscribe the user\n * Returns a product url\n */\ninterface OneClickSubscribeArgs {\n window: Window;\n autoRedirect?: boolean;\n extraParams?: IHash;\n}\nexport const subscribeUrlAction = createAsyncThunk<\n AJAXSUBSCRIBEState,\n OneClickSubscribeArgs,\n {\n rejectValue: SubscribeFailure;\n }\n>('oneClickFlow/subscribeUrlAction', async ({ window, autoRedirect, extraParams }, { getState, rejectWithValue }) => {\n const state: RootState = getState();\n if (!state?.strategy?.currentState?.data?.config) {\n return rejectWithValue({\n errorType: 'UnexpectedState'\n });\n }\n const { subscription_url, config } = state.strategy.currentState.data;\n try {\n // Start Call to Subscribe ajax\n tracker.advancedInFlow('tallyman.v1-one-click', 'click-subscribe');\n const product_url = await subscribe(subscription_url, config, extraParams);\n tracker.advancedInFlow('tallyman.v1-one-click', 'click-subscribe-success', { product_url });\n // End Call to Subscribe ajax\n\n if (autoRedirect === true) {\n tracker.customEvent('Flow', 'advance-auto', 'click-product-url', { product_url });\n window.location.href = product_url;\n }\n return {\n type: 'SUBCRIBE_AJAX',\n result: RDS.Success({\n productUrl: product_url\n })\n };\n } catch (ex) {\n console.warn(ex);\n\n tracker.recedeInFlow('tallyman.v1-one-click', 'click-subscribe-failure', { error: ex.toString() });\n\n return rejectWithValue({\n errorType: 'UnknownError',\n error: ex.toString(),\n productUrl: ex.productUrl,\n message: ex.message || ''\n });\n }\n});\n\nconst oneClickFlowSlice = createSlice({\n name: 'oneClickFlow',\n initialState,\n reducers: {},\n extraReducers: (builder) => {\n builder\n .addCase(getRedirectUrlAction.pending, (state) => {\n state.currentState = { type: 'GET_REDIRECT_URL', result: RDS.Loading() };\n })\n .addCase(getRedirectUrlAction.fulfilled, (state, action: PayloadAction<GETREDIRECTUrlState>) => {\n state.currentState = action.payload;\n })\n .addCase(getRedirectUrlAction.rejected, (state, action: PayloadAction<IGETREDIRECTURLFailure>) => {\n state.currentState = {\n type: 'GET_REDIRECT_URL',\n result: RDS.Failure(action.payload)\n };\n })\n .addCase(subscribeUrlAction.pending, (state) => {\n state.currentState = { type: 'SUBCRIBE_AJAX', result: RDS.Loading() };\n })\n .addCase(subscribeUrlAction.fulfilled, (state, action: PayloadAction<AJAXSUBSCRIBEState>) => {\n state.currentState = action.payload;\n })\n .addCase(subscribeUrlAction.rejected, (state, action: PayloadAction<SubscribeFailure>) => {\n state.currentState = {\n type: 'SUBCRIBE_AJAX',\n result: RDS.Failure(action.payload)\n };\n });\n }\n});\n\n// Export reducers and actions\nexport const { reducer: oneClickFlowReducer, actions: oneClickFlowActions } = oneClickFlowSlice;\n\n// If you have selectors or thunks related to this slice, export them as named exports as well\nexport const selectOneClickFlowState = (state: any) => state.oneClickFlow;\n"],"names":["useOneClickFlowState","useSelector","state","oneClickFlow","currentState","oneClickFlowMatch","_a","getRedirectUrl","subscribe","type","result","addEmpelloToken","currentRedirectUrl","country","toLowerCase","Promise","resolve","checkEmpelloAvailability","setInterval","window","Empello","clearInterval","_b","sent","getToken","empelloToken","token","updateUrlParameter","oneClickSubscribe","extraParams","search","url","cleanSearchParams","evinaTid","tid","isCleanTraffic","shouldBlock","extraParamsQs","Object","entries","map","__read","key","value","concat","encodeURIComponent","join","baseURL","params","sam_evina_tid","antifraud_id","antifraud_id_js_code","antifraud_id_js_link","fromEntries","URLSearchParams","queryParams","toString","resultUrl","fetch","json","console","error","error_1","fetchJsonp","_url","ouisys_callback_function","Math","floor","random","reject","arg","indexOf","script","document","createElement","src","id","body","appendChild","onerror","Error","maybeConfig","slug","queryString","apiAction","offer","pac_analytics","visitor","s","location","substr","search_1","length","k","v","keys","forEach","element","index","paramName","paramValue","pattern","RegExp","replace","newUrl","replaceUrlParam","rockmanId","host","DEV_BASE_URL","bupperizeCountry","result_1","_h","success","identifyError","message","subscription_url","redirect_url","action","then","x","loadScriptInnerHtml","source","redirectUrlWithReplacedUniqid","searchObj","searchToObject","__assign","device","offerId","rockman_id","href","page","_c","_e","_d","ip","ip_address","_g","_f","__awaiter","subscribeError","productUrl","product_url","getRedirectUrlBupperWay","xcid","split","baseHostBupper","bupperRedirectHost","atob","DEV_BASE_URL_BUPPER","mockedRedirectUrlSuccessState","RDS.Success","redirectUrl","mockedSubscribeAjaxState","RDS.NothingYet","defaultInitialState","initialState","setInitialState","getRedirectUrlAction","createAsyncThunk","isGetRedirectBupperWay","autoRedirect","getState","rejectWithValue","strategy","data","config","errorType","operator","updatedRedirectUrl_1","tracker","customEvent","isAutoFraudScreener","advancedInFlow","setTimeout","timer_1","isEvinaSessionChecked","newRedirectUrl","updated_redirect_url_1","updated_redirect_url","warn","ex_1","recedeInFlow","subscribeUrlAction","ex_2","oneClickFlowSlice","createSlice","name","reducers","extraReducers","builder","addCase","pending","RDS.Loading","fulfilled","payload","rejected","RDS.Failure","oneClickFlowReducer","reducer","actions"],"mappings":"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"}
1
+ {"version":3,"file":"oneClickFlow.js","sources":["../src/flows/oneClickFlow/hooks/useOneClickFlowState.ts","../src/flows/oneClickFlow/match.ts","../src/utilities/addEmpelloToken.ts","../src/utilities/replaceUrlParam.ts","../src/flows/oneClickFlow/api.ts","../src/flows/oneClickFlow/main.ts","../src/flows/oneClickFlow/oneClickFlowSlice.ts"],"sourcesContent":["import { useSelector as IuseSelector } from 'react-redux';\nimport { RootState } from '../../../sharedFlowTypes/StrategyTypes';\n\nexport const useOneClickFlowState = (useSelector: typeof IuseSelector) => {\n const currentState = useSelector((state: RootState) => state.oneClickFlow.currentState);\n return currentState;\n};\n","import * as RDS from '../../common-types/RemoteDataState';\nimport {\n IGETREDIRECTURLFailure,\n IGETREDIRECTURLSuccess,\n OneClickFlowCurrentState,\n SubscribeFailure,\n SubscribeSuccess\n} from '../../sharedFlowTypes/OneClickTypes';\n\nfunction oneClickFlowMatch<R>({\n getRedirectUrl,\n subscribe\n}: {\n getRedirectUrl: (rds: RDS.RemoteDataState<IGETREDIRECTURLFailure, IGETREDIRECTURLSuccess>) => R;\n subscribe?: (rds: RDS.RemoteDataState<SubscribeFailure, SubscribeSuccess>) => R;\n}): (state: OneClickFlowCurrentState) => R {\n return (state) => {\n switch (state.type) {\n case 'GET_REDIRECT_URL':\n return getRedirectUrl(state.result);\n case 'SUBCRIBE_AJAX':\n return subscribe(state.result);\n default:\n // TODO - this should be an error or something\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return getRedirectUrl(state.result);\n }\n };\n}\n\nexport { oneClickFlowMatch };\n","import { updateUrlParameter } from '../pacman/queryString';\n\nexport async function addEmpelloToken({\n currentRedirectUrl,\n country\n}: {\n currentRedirectUrl: string;\n country: string;\n}) {\n if (country.toLowerCase() === 'pe') {\n // Empello script is added on server\n\n await new Promise<void>((resolve) => {\n // check if empello script is loaded and available\n const checkEmpelloAvailability = setInterval(() => {\n if (window.Empello) {\n clearInterval((checkEmpelloAvailability as unknown) as number);\n resolve();\n }\n }, 100);\n });\n if (typeof window !== 'undefined' && window.Empello) {\n // call getToken function from empello\n const token = await new Promise<string>((resolve) => {\n window.Empello?.getToken((empelloToken: string) => {\n resolve(empelloToken);\n });\n });\n\n const url = updateUrlParameter(currentRedirectUrl, 'empello_token', token);\n return url;\n }\n }\n\n return currentRedirectUrl;\n}\n","export const replaceUrlParam = (url: string, paramName: string, paramValue = '') => {\n const pattern = new RegExp(`\\\\b(${paramName}=).*?(&|#|$)`);\n if (url.search(pattern) >= 0) {\n return url.replace(pattern, `$1${paramValue}$2`);\n }\n const newUrl = url.replace(/[?#]$/, '');\n return `${newUrl + paramName}=${paramValue}&`;\n};\n","import { IHash } from '../../common-types/IHash';\nimport { cleanSearchParams } from '../../utilities/cleanSearchParams';\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nexport const getRedirectAPI = () => {};\n\nconst getUrlWithParams = (baseURL: string, params: IHash) => {\n const queryParams = new URLSearchParams(params).toString();\n return `${baseURL}&${queryParams}`;\n};\n\nexport const oneClickSubscribe = async ({\n window,\n extraParams,\n search,\n url\n}: {\n window: Window;\n extraParams?: IHash;\n search: string;\n url: string;\n}) => {\n // Remove conflicting params from url\n search = cleanSearchParams(search);\n const evinaTid = window?.tid || '';\n const isCleanTraffic = window?.shouldBlock ? 'false' : 'true';\n\n const extraParamsQs = Object.entries(extraParams || {})\n .map(([key, value]) => `${key}=${encodeURIComponent(value)}`)\n .join('&');\n\n try {\n const resultUrl = getUrlWithParams(url, {\n sam_evina_tid: evinaTid,\n antifraud_id: window.antifraud_id || '',\n // More specific antifraud IDs will eventuallly replace antifraud_id\n // https://www.notion.so/sammedia/KW-Agency-Globocom-KW-ENTERTAINMENT-STORE-GAMESOLUTELY-GLING-Landing-Page-Test-a9841b14218b42709ffb1a2d41428275?d=f2a8d09b1e8c4fd4bdab69ab5dda1f25\n antifraud_id_js_code: window.antifraud_id_js_code || '',\n antifraud_id_js_link: window.antifraud_id_js_link || '',\n 'is-clean-traffic': isCleanTraffic,\n ...Object.fromEntries(new URLSearchParams(extraParamsQs))\n });\n\n const response = await fetch(`${resultUrl}${search ? `&${search}` : ''}`);\n const result = await response.json();\n return result;\n } catch (error) {\n console.error('Error fetching subscription:', error);\n throw error; // Rethrow or handle error as needed\n }\n};\n","import { IError } from '../../common-types/IError';\nimport { IHash } from '../../common-types/IHash';\nimport { IIDentifyUserResult, ILinkExtraParams, ISubscribeResult } from '../../sharedFlowTypes/OneClickTypes';\nimport { IConfig } from '../../sharedFlowTypes/StrategyTypes';\nimport { bupperizeCountry } from '../../utilities/bupperizeCountry';\nimport { loadScriptInnerHtml } from '../../utilities/loadScriptInnerHtml';\nimport { replaceUrlParam } from '../../utilities/replaceUrlParam';\nimport { searchToObject } from '../../utilities/searchToObject';\nimport { oneClickSubscribe } from './api';\n\nexport const additionalQueryString = `msisdnSubmitted=Y&legalCheckbox=Y&incentivizedCheckbox=Y&op_confirmCheckbox=N`;\n\nconst fetchJsonp: <T>(_url: string) => Promise<T> = (_url: string) => {\n let url = _url;\n const ouisys_callback_function = `ouisys_callback_function${Math.floor(Math.random() * 10000)}`;\n return new Promise((resolve, reject) => {\n // @ts-ignore\n window[ouisys_callback_function] = (arg) => {\n resolve(arg);\n };\n\n url += url.indexOf('?') === -1 ? '?' : '&';\n url += `jsonp=${ouisys_callback_function}`;\n const script = document.createElement('script');\n script.src = url;\n script.id = ouisys_callback_function;\n document.body.appendChild(script);\n\n // Caught if got 404/500\n script.onerror = () => {\n reject(new Error(`JSONP request to ${_url} failed`));\n };\n });\n};\n\nexport const getRedirectUrl = async ({\n window,\n maybeConfig,\n extraParams\n}: {\n window: Window;\n maybeConfig: IConfig;\n extraParams?: ILinkExtraParams;\n}): Promise<{\n subscription_url?: string;\n redirect_url?: string;\n action?: () => Promise<string>;\n}> => {\n if (typeof window === 'undefined') {\n // eslint-disable-next-line no-throw-literal, no-script-url\n throw \"javascript: console.error('SSR'); void 6\";\n } else {\n const { country, slug, queryString, apiAction } = maybeConfig;\n const evinaTid = typeof window !== 'undefined' && window.tid ? window.tid : '';\n\n const { offer } = window.pac_analytics.visitor;\n const s = window.location.search.substr(1);\n // @ts-ignore\n let search = (!!s && s.length > 0 ? [s] : []).concat((queryString || []).map(([k, v]) => `${k}=${v}`)).join('&');\n\n Object.keys(extraParams).forEach((element, index) => {\n // Check if search already has query parameters\n if (search.length > 0) {\n // If there are existing parameters, add '&' before appending the new one\n search += '&';\n }\n search = `${replaceUrlParam(search, element, extraParams[element])}${index === 1 ? '&' : ''}`;\n });\n const { rockmanId } = window.pac_analytics.visitor;\n\n if (apiAction === 'identify-user') {\n const host = (window as Window).DEV_BASE_URL || '';\n const url = `${host}/tallyman/v1/?action=identify-user&country=${bupperizeCountry(\n country\n )}&slug=${slug}&device=${'smart'}&offerId=${offer}&rockman_id=${rockmanId}&sam_evina_tid=${evinaTid}&${search}`;\n const result = await fetchJsonp<IIDentifyUserResult>(url);\n if (result.success === false) {\n const identifyError = new Error(`Error in getRedirectUrl() identify-user action:\\n${result.message}`) as IError;\n identifyError.type = 'NotOn3g';\n throw identifyError;\n } else {\n return {\n subscription_url: result.subscription_url || result.redirect_url,\n action: () => subscribe(result.subscription_url, maybeConfig)\n };\n }\n } else if (apiAction === 'he') {\n const host = (window as Window).DEV_BASE_URL || '';\n const url = `${host}/tallyman/v1/?action=he&country=${bupperizeCountry(\n country\n )}&slug=${slug}&device=${'smart'}&offerId=${offer}&rockman_id=${rockmanId}&sam_evina_tid=${evinaTid}&${search}`;\n const result = await fetch(url).then((x) => x.json());\n if (result.success === false) {\n const identifyError = new Error(`Error in getRedirectUrl() identify-user action:\\n${result.message}`) as IError;\n identifyError.type = 'NotOn3g';\n throw identifyError;\n } else {\n loadScriptInnerHtml(result.source);\n return { redirect_url: result.redirectUrlWithReplacedUniqid };\n }\n } else {\n if (country.toLowerCase() === 'om') {\n const searchObj = searchToObject(window) as {\n redirect_url: string;\n url: string;\n msisdn: string;\n success: 'true' | 'false';\n };\n if (searchObj.success === 'false') {\n const identifyError = new Error(`Error in getRedirectUrl() identify-user`) as IError;\n identifyError.type = 'NotOn3g';\n throw identifyError;\n } else {\n return { redirect_url: searchObj.redirect_url || searchObj.url };\n }\n }\n const host = (window as Window).DEV_BASE_URL || '';\n\n const params = new URLSearchParams({\n action: 'redirect',\n device: 'smart',\n slug,\n offerId: offer,\n country: bupperizeCountry(country),\n rockman_id: rockmanId,\n sam_evina_tid: evinaTid,\n search,\n ...(window?.location?.href && { page: encodeURIComponent(window?.location?.href) }),\n ...(window?.pac_analytics?.visitor?.ip && { ip_address: window?.pac_analytics?.visitor?.ip })\n });\n\n const url = `${host}/tallyman/v1/?${params.toString()}`;\n const result = await fetch(url).then((x) => x.json());\n\n if (result.success === false) {\n const identifyError = new Error(`Error in getRedirectUrl() identify-user action:\\n${result.message}`) as IError;\n identifyError.type = 'NotOn3g';\n throw identifyError;\n } else {\n return { redirect_url: result.redirect_url };\n }\n }\n }\n};\n\nexport const subscribe: (url: string, maybeConfig: IConfig, extraParams?: IHash) => Promise<string> = async (\n url: string,\n maybeConfig: IConfig,\n extraParams?: IHash\n) => {\n const { queryString } = maybeConfig;\n const s = window.location.search.substr(1);\n // @ts-ignore\n const search = (!!s && s.length > 0 ? [s] : []).concat((queryString || []).map(([k, v]) => `${k}=${v}`)).join('&');\n\n const result: ISubscribeResult = await oneClickSubscribe({\n window,\n extraParams,\n search,\n url\n });\n\n if (result.success === false) {\n const subscribeError = new Error(`Error in subscribe() one-click-subscribe action:\\n${result.message}`) as {\n productUrl: string;\n } & IError;\n subscribeError.type = result.message === 'ALREADY SUBSCRIBED' ? 'AlreadySubscribed' : 'SubscriptionError';\n subscribeError.productUrl = result.product_url ? result.product_url : '';\n subscribeError.message = result.message;\n throw subscribeError;\n } else {\n return result.product_url || result.redirect_url;\n }\n};\n\nexport const getRedirectUrlBupperWay = async (\n window: Window,\n maybeConfig: IConfig,\n extraParams?: ILinkExtraParams\n): Promise<string> => {\n if (typeof window === 'undefined') {\n // eslint-disable-next-line no-script-url\n return \"javascript: console.error('SSR'); void 6\";\n }\n const { country, slug, queryString } = maybeConfig;\n const { offer } = window.pac_analytics.visitor;\n const s = window.location.search.substr(1);\n // @ts-ignore\n const search = (!!s && s.length > 0 ? [s] : []).concat((queryString || []).map(([k, v]) => `${k}=${v}`)).join('&');\n const extraParamsQs = !extraParams\n ? ''\n : `&${Object.keys(extraParams)\n .map((k) => `${k}=${extraParams[k]}`)\n .join('&')}`;\n\n // one click flow must use http not https\n const xcid = window.location.href.split('/')[3].split('?')[0];\n const evinaTid = typeof window !== 'undefined' && window.tid ? window.tid : '';\n\n const baseHostBupper = window?.pac_analytics?.visitor?.bupperRedirectHost\n ? window.atob(window?.pac_analytics?.visitor?.bupperRedirectHost)\n : null;\n const host = baseHostBupper || (window as Window).DEV_BASE_URL_BUPPER || '';\n\n return `${host}/${bupperizeCountry(country)}/${slug}?offer=${offer}&atmobirun=1&rockman_id=${\n window.pac_analytics.visitor.rockmanId\n }&redirPixels=${window.location.host}&sam_evina_tid=${evinaTid}&x-xcid=${xcid}${extraParamsQs}&${search}`;\n};\n","import { createAsyncThunk, createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport { IHash } from '../../common-types/IHash';\nimport * as RDS from '../../common-types/RemoteDataState';\nimport {\n AJAXSUBSCRIBEState,\n GETREDIRECTUrlState,\n IGETREDIRECTURLFailure,\n OneClickFlowState,\n SubscribeFailure\n} from '../../sharedFlowTypes/OneClickTypes';\nimport { IMockFlowParams, RootState } from '../../sharedFlowTypes/StrategyTypes';\nimport { addEmpelloToken } from '../../utilities/addEmpelloToken';\nimport { searchToObject } from '../../utilities/searchToObject';\nimport { tracker } from '../../utilities/tracker';\nimport { getRedirectUrl, getRedirectUrlBupperWay, subscribe } from './main';\n\nexport const mockedRedirectUrlSuccessState: OneClickFlowState = {\n currentState: {\n type: 'GET_REDIRECT_URL',\n // @ts-ignore\n result: RDS.Success<IGETREDIRECTURLFailure, IGETREDIRECTURLSuccess>({ redirectUrl: '/product' })\n }\n};\n\nexport const mockedSubscribeAjaxState: OneClickFlowState = {\n currentState: {\n type: 'SUBCRIBE_AJAX',\n // @ts-ignore\n result: RDS.NothingYet()\n }\n};\n\nconst defaultInitialState: OneClickFlowState = {\n currentState: {\n type: 'GET_REDIRECT_URL',\n result: RDS.NothingYet()\n }\n};\n\nconst setInitialState = (window: Window) => {\n const search = searchToObject(window) as IMockFlowParams<any>;\n if (search['mock-flow']) {\n switch (search['current-state']) {\n case 'redirect-url-success-state':\n return mockedRedirectUrlSuccessState;\n case 'subscribe-ajax-state':\n return mockedSubscribeAjaxState;\n default:\n console.error('Mock Flow not supported');\n return defaultInitialState;\n }\n } else {\n return defaultInitialState;\n }\n};\n\nconst initialState = setInitialState(window);\n\ninterface GetRedirectUrlArgs {\n window: Window;\n extraParams?: IHash;\n autoRedirect?: boolean;\n isGetRedirectBupperWay?: boolean;\n ignoreUrlParams?: boolean;\n}\n/**\n * getRedirectUrlAction\n * @returns {type: ' 'oneClickFlow/getRedirectUrlAction', payload: {type: PossibleTypes, result: GETREDIRECTUrlState}}\n \n * Calls redirect api to get a redirect url for the user to be redirected to\n * Can also create a bupper redirect url\n */\nexport const getRedirectUrlAction = createAsyncThunk<\n GETREDIRECTUrlState,\n GetRedirectUrlArgs,\n {\n rejectValue: IGETREDIRECTURLFailure;\n }\n>(\n 'oneClickFlow/getRedirectUrlAction',\n // @ts-ignore\n async ({ window, isGetRedirectBupperWay, extraParams, autoRedirect }, { getState, rejectWithValue }) => {\n const state: RootState = getState();\n const search = searchToObject(window) as IMockFlowParams<any>;\n if (search['mock-flow']) {\n return initialState.currentState;\n }\n if (!state?.strategy?.currentState?.data?.config) {\n return rejectWithValue({\n errorType: 'UnexpectedState'\n });\n }\n\n const { config, subscription_url, redirect_url, operator } = state.strategy.currentState.data;\n try {\n if (isGetRedirectBupperWay === true) {\n const redirectUrl = await getRedirectUrlBupperWay(window, config, {\n ...(operator && { operator }),\n ...extraParams\n });\n\n // add empellow token for specific country\n const updatedRedirectUrl = await addEmpelloToken({\n currentRedirectUrl: redirectUrl,\n country: config.country\n });\n\n tracker.customEvent('Flow', 'advance-auto', 'redirect-success', { redirect_url: updatedRedirectUrl });\n if (window.isAutoFraudScreener === true) {\n // Wait for Evina to Check Fraud First\n const timer = setInterval(() => {\n if (window.isEvinaSessionChecked) {\n clearInterval(timer);\n tracker.advancedInFlow('tallyman.v1-one-click', 'click-redirect-url', {\n redirect_url: updatedRedirectUrl\n });\n setTimeout(() => {\n window.location.href = updatedRedirectUrl;\n }, 0);\n }\n }, 100);\n } else if (autoRedirect === true) {\n tracker.advancedInFlow('tallyman.v1-one-click', 'click-redirect-url', { redirect_url: updatedRedirectUrl });\n setTimeout(() => {\n window.location.href = updatedRedirectUrl;\n }, 0);\n return {\n type: 'GET_REDIRECT_URL',\n result: RDS.Success({\n redirectUrl: updatedRedirectUrl\n })\n };\n } else {\n return {\n type: 'GET_REDIRECT_URL',\n result: RDS.Success({\n redirectUrl: updatedRedirectUrl\n })\n };\n }\n } else {\n if (subscription_url && subscription_url != null) {\n return {\n type: 'SUBCRIBE_AJAX',\n result: RDS.NothingYet()\n };\n }\n if (redirect_url) {\n tracker.customEvent('Flow', 'advance-auto', 'redirect-success', { redirect_url });\n return {\n type: 'GET_REDIRECT_URL',\n result: RDS.Success({\n redirectUrl: redirect_url\n })\n };\n }\n\n tracker.advancedInFlow('tallyman.v1-one-click', 'get-redirect-url');\n const { redirect_url: newRedirectUrl } = await getRedirectUrl({\n window,\n maybeConfig: config,\n extraParams: {\n ...(operator && { operator }),\n ...extraParams\n }\n });\n tracker.advancedInFlow('tallyman.v1-one-click', 'get-redirect-url-success');\n\n // add empellow token for specific country\n const updated_redirect_url = await addEmpelloToken({\n currentRedirectUrl: newRedirectUrl,\n country: config.country\n });\n\n tracker.customEvent('Flow', 'advance-auto', 'redirect-success', { updated_redirect_url });\n\n if (autoRedirect === true || window.isAutoFraudScreener === true) {\n tracker.advancedInFlow('tallyman.v1-one-click', 'click-redirect-url', { updated_redirect_url });\n\n setTimeout(() => {\n // eslint-disable-next-line camelcase\n window.location.href = updated_redirect_url;\n }, 0);\n } else {\n return {\n type: 'GET_REDIRECT_URL',\n result: RDS.Success({\n redirectUrl: updated_redirect_url\n })\n };\n }\n }\n } catch (ex) {\n console.warn(ex);\n tracker.recedeInFlow('tallyman.v1-one-click', 'get-redirect-url-failure', {\n errorType: 'UnknownError'\n });\n return rejectWithValue({\n errorType: 'UnknownError',\n message: ex.message,\n error: ex.toString()\n });\n }\n }\n);\n\n/**\n * subscribeUrlAction\n * @returns {type: ' 'oneClickFlow/submitMSISDNAction', payload: {type: PossibleTypes.MO, result: PINEntryState}}\n \n * Calls oneclick subscripe api to subscribe the user\n * Returns a product url\n */\ninterface OneClickSubscribeArgs {\n window: Window;\n autoRedirect?: boolean;\n extraParams?: IHash;\n}\nexport const subscribeUrlAction = createAsyncThunk<\n AJAXSUBSCRIBEState,\n OneClickSubscribeArgs,\n {\n rejectValue: SubscribeFailure;\n }\n>('oneClickFlow/subscribeUrlAction', async ({ window, autoRedirect, extraParams }, { getState, rejectWithValue }) => {\n const state: RootState = getState();\n if (!state?.strategy?.currentState?.data?.config) {\n return rejectWithValue({\n errorType: 'UnexpectedState'\n });\n }\n const { subscription_url, config } = state.strategy.currentState.data;\n try {\n // Start Call to Subscribe ajax\n tracker.advancedInFlow('tallyman.v1-one-click', 'click-subscribe');\n const product_url = await subscribe(subscription_url, config, extraParams);\n tracker.advancedInFlow('tallyman.v1-one-click', 'click-subscribe-success', { product_url });\n // End Call to Subscribe ajax\n\n if (autoRedirect === true) {\n tracker.customEvent('Flow', 'advance-auto', 'click-product-url', { product_url });\n window.location.href = product_url;\n }\n return {\n type: 'SUBCRIBE_AJAX',\n result: RDS.Success({\n productUrl: product_url\n })\n };\n } catch (ex) {\n console.warn(ex);\n\n tracker.recedeInFlow('tallyman.v1-one-click', 'click-subscribe-failure', { error: ex.toString() });\n\n return rejectWithValue({\n errorType: 'UnknownError',\n error: ex.toString(),\n productUrl: ex.productUrl,\n message: ex.message || ''\n });\n }\n});\n\nconst oneClickFlowSlice = createSlice({\n name: 'oneClickFlow',\n initialState,\n reducers: {},\n extraReducers: (builder) => {\n builder\n .addCase(getRedirectUrlAction.pending, (state) => {\n state.currentState = { type: 'GET_REDIRECT_URL', result: RDS.Loading() };\n })\n .addCase(getRedirectUrlAction.fulfilled, (state, action: PayloadAction<GETREDIRECTUrlState>) => {\n state.currentState = action.payload;\n })\n .addCase(getRedirectUrlAction.rejected, (state, action: PayloadAction<IGETREDIRECTURLFailure>) => {\n state.currentState = {\n type: 'GET_REDIRECT_URL',\n result: RDS.Failure(action.payload)\n };\n })\n .addCase(subscribeUrlAction.pending, (state) => {\n state.currentState = { type: 'SUBCRIBE_AJAX', result: RDS.Loading() };\n })\n .addCase(subscribeUrlAction.fulfilled, (state, action: PayloadAction<AJAXSUBSCRIBEState>) => {\n state.currentState = action.payload;\n })\n .addCase(subscribeUrlAction.rejected, (state, action: PayloadAction<SubscribeFailure>) => {\n state.currentState = {\n type: 'SUBCRIBE_AJAX',\n result: RDS.Failure(action.payload)\n };\n });\n }\n});\n\n// Export reducers and actions\nexport const { reducer: oneClickFlowReducer, actions: oneClickFlowActions } = oneClickFlowSlice;\n\n// If you have selectors or thunks related to this slice, export them as named exports as well\nexport const selectOneClickFlowState = (state: any) => state.oneClickFlow;\n"],"names":["useOneClickFlowState","useSelector","state","oneClickFlow","currentState","oneClickFlowMatch","_a","getRedirectUrl","subscribe","type","result","addEmpelloToken","currentRedirectUrl","country","toLowerCase","Promise","resolve","checkEmpelloAvailability","setInterval","window","Empello","clearInterval","_b","sent","getToken","empelloToken","token","updateUrlParameter","oneClickSubscribe","extraParams","search","url","cleanSearchParams","evinaTid","tid","isCleanTraffic","shouldBlock","extraParamsQs","Object","entries","map","__read","key","value","concat","encodeURIComponent","join","baseURL","params","sam_evina_tid","antifraud_id","antifraud_id_js_code","antifraud_id_js_link","fromEntries","URLSearchParams","queryParams","toString","resultUrl","fetch","json","console","error","error_1","fetchJsonp","_url","ouisys_callback_function","Math","floor","random","reject","arg","indexOf","script","document","createElement","src","id","body","appendChild","onerror","Error","maybeConfig","slug","queryString","apiAction","offer","pac_analytics","visitor","s","location","substr","search_1","length","k","v","keys","forEach","element","index","paramName","paramValue","pattern","RegExp","replace","newUrl","replaceUrlParam","rockmanId","host","DEV_BASE_URL","bupperizeCountry","result_1","_h","success","identifyError","message","subscription_url","redirect_url","action","then","x","loadScriptInnerHtml","source","redirectUrlWithReplacedUniqid","searchObj","searchToObject","__assign","device","offerId","rockman_id","href","page","_c","_e","_d","ip","ip_address","_g","_f","__awaiter","subscribeError","productUrl","product_url","getRedirectUrlBupperWay","xcid","split","baseHostBupper","bupperRedirectHost","atob","DEV_BASE_URL_BUPPER","mockedRedirectUrlSuccessState","RDS.Success","redirectUrl","mockedSubscribeAjaxState","RDS.NothingYet","defaultInitialState","initialState","setInitialState","getRedirectUrlAction","createAsyncThunk","isGetRedirectBupperWay","autoRedirect","getState","rejectWithValue","strategy","data","config","errorType","operator","updatedRedirectUrl_1","tracker","customEvent","isAutoFraudScreener","advancedInFlow","setTimeout","timer_1","isEvinaSessionChecked","newRedirectUrl","updated_redirect_url_1","updated_redirect_url","warn","ex_1","recedeInFlow","subscribeUrlAction","ex_2","oneClickFlowSlice","createSlice","name","reducers","extraReducers","builder","addCase","pending","RDS.Loading","fulfilled","payload","rejected","RDS.Failure","oneClickFlowReducer","reducer","actions"],"mappings":"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"}
package/dist/pinFlow.js CHANGED
@@ -1,2 +1,2 @@
1
- import{__awaiter as r,__generator as e,__read as n,__assign as t}from"tslib";import{createAsyncThunk as i,createSlice as a}from"@reduxjs/toolkit";import{N as o,L as s,S as c,F as u}from"./RemoteDataState-lcf8PfJd.js";import{i as d,c as l,P as p}from"./strategySlice-JTBaGYpl.js";import{searchToObject as f}from"./searchToObject.js";import{s as v}from"./storeMsisdn-Cjq8_qYH.js";import{t as m}from"./tracker-DaaILhEr.js";import{b as y}from"./bupperizeCountry-CEtt0MKz.js";import{l as S,r as w,a as _}from"./helpers-xPhGBX-B.js";import{l as h}from"./loadScriptInnerHtml-B6v2-IGn.js";import{c as g}from"./cleanSearchParams-Dl7ZDlew.js";import"./getConfig.js";import"./formatNumberToE164-Bd0VHMHJ.js";import"./api-CqJrSvqq.js";import"pacman-client";import"uuid";var I=function(r){return r((function(r){return r.pinFlow.currentState}))};function b(r){var e=r.msisdnEntry,n=r.pinEntry;return function(r){switch(r.type){case"MSISDNEntry":return e(r.result);case"PINEntry":return n(r.result,r.data);default:throw new Error("Invalid State")}}}var k=function(r){return"be"===r?"undefined"!=typeof window&&!0===window.shouldBlock?"&is-clean-traffic=false":"&is-clean-traffic=true":""},E=function(t){var i=t.window,a=t.country,o=t.slug,s=t.device,c=t.offer,u=t.msisdn,d=t.rockmanId,l=t.extraParams,p=t.search,f=t.uniqid,v=t.evinaTid;return r(void 0,void 0,void 0,(function(){var r,t,m,y,S,w,_;return e(this,(function(e){return r=k(a),t="&".concat(Object.keys(l).map((function(r){return l[r]?"".concat(r,"=").concat(l[r]):""})).filter(Boolean).join("&")),p=g(p),m={action:"trigger-pin",country:a,slug:o,device:s,offerId:c,msisdn:u,rockman_id:d,sam_evina_tid:v,page:encodeURIComponent(null===(_=null==i?void 0:i.location)||void 0===_?void 0:_.href),language_code:i.languageCode||"",partner_transaction_id:i.partner_transaction_id||"",partner_timestamp:i.partner_timestamp||"",partner_cid:i.partner_cid||"",uniqid:f||"",antifraud_id:i.antifraud_id||"",antifraud_id_js_code:i.antifraud_id_js_code||"",antifraud_id_js_link:i.antifraud_id_js_link||"",zain_antifraud_id:i.zain_antifraud_id||"",korek_antifraud_id:i.korek_antifraud_id||""},y=Object.entries(m).filter((function(r){var e=n(r,2);return e[0],e[1]})).map((function(r){var e=n(r,2),t=e[0],i=e[1];return"".concat(t,"=").concat(i)})).join("&"),S=i.DEV_BASE_URL||"",w="".concat(S,"/tallyman/v1/?").concat(y).concat(r).concat(t).concat(p?"&".concat(p):""),[2,fetch(w).then((function(r){return r.json()}))]}))}))},U=function(t){var i=t.window,a=t.country,o=t.slug,s=t.device,c=t.offer,u=t.rockmanId,d=t.pin,l=t.extraParams,p=t.uniqid,f=t.evinaTid,v=t.search;return r(void 0,void 0,void 0,(function(){var r,t,m,S,w,_,h;return e(this,(function(e){return r=k(a),t="&".concat(Object.keys(l).map((function(r){return"".concat(r,"=").concat(l[r])})).join("&")),v=g(v),m={action:"verify-pin",country:y(a),slug:o,device:s,offerId:c,rockman_id:u,pin:d,page:encodeURIComponent(null===(h=null==i?void 0:i.location)||void 0===h?void 0:h.href),language_code:i.languageCode||"",ClickID:i.antifraud_click_id||"",partner_cid:i.partner_cid||"",sam_evina_tid:f,uniqid:p,antifraud_id_js_code:i.antifraud_id_js_code||"",antifraud_id_js_link:i.antifraud_id_js_link||"",zain_antifraud_id:i.zain_antifraud_id||"",korek_antifraud_id:i.korek_antifraud_id||""},S=Object.entries(m).filter((function(r){var e=n(r,2);return e[0],e[1]})).map((function(r){var e=n(r,2),t=e[0],i=e[1];return"".concat(t,"=").concat(i)})).join("&"),w=i.DEV_BASE_URL||"",_="".concat(w,"/tallyman/v1/?").concat(S).concat(r).concat(t).concat(v?"&".concat(v):""),[2,fetch(_).then((function(r){return r.json()}))]}))}))},N=function(n){var i=n.window,a=n.country,o=n.slug,s=n.device,c=n.offer,u=n.rockmanId,d=n.operator,l=n.uniqid;return r(void 0,void 0,void 0,(function(){var r,n,p,f,v;return e(this,(function(e){return r=i.location.href,n=i.pac_analytics.visitor.ip,p=new URLSearchParams(t(t({action:"mcp-shield",country:a,slug:o,device:s,offerId:c.toString(),rockman_id:u,client_lpu:r},d&&{operator:d}),l&&{uniqid:l})),n&&p.append("client_ip",n),f=i.DEV_BASE_URL||"",v="".concat(f,"/tallyman/v1/?").concat(p.toString()),[2,fetch(v).then((function(r){return r.json()}))]}))}))};function j(n,i,a,o){return r(this,void 0,void 0,(function(){var r;return e(this,(function(e){return!0===(r=t({offer:n.pac_analytics.visitor.offer},i||{})).automaticallySubmitAllOperators&&r.operators&&r.operators.length>0?[2,M(n,r,a,r.operators,o)]:[2,D(n,r,a,o)]}))}))}var P="";function D(n,i,a,o){return r(this,void 0,void 0,(function(){var r,s,c,u,d,l,p,v,m,y,S,w,_,g,I,b,k,U;return e(this,(function(e){switch(e.label){case 0:if(!a)throw(r=new Error("Error in submitMSISDN() trigger-pin action")).type="InvalidMSISDN",r;return s=o||{},c=!1,("true"===(null==(u=f(n))?void 0:u.success)&&"1"===u["msisdn-alias"]||!0===n.skip_validation)&&(s["skip-validation"]="1"),"1"===s["skip-validation"]&&(c=!0),d=c?a||n.msisdn:a.match(/\d+/gi).join(""),l=n.pac_analytics.visitor.rockmanId,p=i.slug,v=i.country,m=i.device,y=i.offer,S=n.location.search.substr(1)||"",w=P&&""!==P?"&mcpUniqid=".concat(P):"",_=void 0!==n&&n.tid?n.tid:"",[4,E({window:n,country:v,slug:p,device:m,offer:y,msisdn:d,rockmanId:l,extraParams:s,search:S,uniqid:w,evinaTid:_})];case 1:if(!1!==(g=e.sent()).success)return[3,2];switch((I=new Error("Error in submitMSISDN() trigger-pin action:\n".concat(g.message))).message=g.message,!0){case g.message.includes("ALREADY SUBSCRIBED"):I.type="AlreadySubscribed";break;case g.message.includes("invalid"):I.type="InvalidMSISDN";break;default:I.type=null}throw I.productUrl=g.product_url?g.product_url:"",console.error(I),I;case 2:if(n.operator=g.operator,b={kw:{kw_viva:"kw_viva"},k2:{k2_viva:"k2_viva"},bh:{bh_viva:"bh_viva"}},!(v&&g.operator&&(b[v.toLowerCase()]&&b[v.toLowerCase()][g.operator.toLowerCase()]||"iq"===v.toLowerCase()))||n.isCallBlockApi||n.Empello)return[3,6];e.label=3;case 3:return e.trys.push([3,5,,6]),[4,N({window:n,country:v,slug:p,device:m,offer:y,rockmanId:l,operator:g.operator,uniqid:w})];case 4:return!1===(k=e.sent()).success?console.warn(k.message):(h(k.source),P=k.uniqid),[3,6];case 5:return U=e.sent(),console.warn(U),[3,6];case 6:return g.javascript&&h(g.javascript),[2,t({type:"SingleMSISDNSubmissionResult",pin:g.pin,uniqidResult:P,operator:g.operator,redirectUrl:null==g?void 0:g.redirect_to_url},(null==g?void 0:g.userType)?{userType:null==g?void 0:g.userType}:{})]}}))}))}function M(n,i,a,o,s){return r(this,void 0,void 0,(function(){var c,u,d=this;return e(this,(function(l){switch(l.label){case 0:return[4,Promise.all(o.map((function(o){return r(d,void 0,void 0,(function(){var r,c;return e(this,(function(e){switch(e.label){case 0:return e.trys.push([0,2,,3]),[4,D(n,i,a,t(t({},s),{operator:o}))];case 1:return r=e.sent(),[2,w(t(t({},r),{operator:o}))];case 2:return c=e.sent(),[2,S(c)];case 3:return[2]}}))}))})))];case 1:if(c=l.sent(),u=c.find((function(r){var e;return"left"===r.type&&"AlreadySubscribed"===(null===(e=r.value)||void 0===e?void 0:e.type)})),c.every((function(r){return"left"===r.type})))throw c[0].value;if(u)throw u.value;return[2,{type:"MultiOperatorMSISDNSubmissionResult"}]}}))}))}function C(t,i,a,o){return r(this,void 0,void 0,(function(){var s,c,u,d,l,p,v,m,S,w,h,g,I,b,k,E,N;return e(this,(function(j){switch(j.label){case 0:if(t.hostCountry&&t.hostSlug&&(a.country=t.hostCountry,a.slug=t.hostSlug),s=a.slug,c=a.country,u=a.device,d=t.pac_analytics.visitor.offer,l=o||{},"true"===(null==(p=f(t))?void 0:p.success)&&"1"===p["msisdn-alias"]&&(l["skip-validation"]="1"),v=t.pac_analytics.visitor.rockmanId,!i)throw(m=new Error("Error in submitMSISDN() verify-pin action:\n Pin Cannot Be Empty")).type="InvalidPIN",m;return S=""!==P?"&mcpUniqid=".concat(P):"",w=void 0!==t&&t.tid?t.tid:"",h=t.location.search.substr(1)||"",[4,U({window:t,country:c,slug:s,device:u,offer:d,rockmanId:v,pin:i,extraParams:l,uniqid:S,evinaTid:w,search:h})];case 1:if(!1!==(g=j.sent()).success)return[3,2];throw I={"pin does not match":"InvalidPIN","mcp blocked":"SessionBlocked",expired_pin:"ExpiredPIN",insufficient_balance:"InsufficientBalance"}[g.message],(E=new Error("Error in submitMSISDN() verify-pin action:\n".concat(I))).type=I||"InvalidPIN",E.message=g.message,console.error(E),E;case 2:return!0!==g.async?[3,4]:g.product_url&&""!==g.product_url&&"es"===(null==c?void 0:c.toLowerCase())?[2,{gatewayRedirectUrl:g.product_url}]:(b=function(){return function(t){var i=t.window,a=t.country,o=t.slug,s=t.device,c=t.offer,u=t.rockmanId;return r(void 0,void 0,void 0,(function(){var r,t,d,l;return e(this,(function(e){return r={action:"check-subscription",country:y(a),slug:o,device:s,offerId:c,rockman_id:u},t=Object.entries(r).filter((function(r){var e=n(r,2);return e[0],null!=e[1]})).map((function(r){var e=n(r,2),t=e[0],i=e[1];return"".concat(t,"=").concat(encodeURIComponent(i))})).join("&"),d=i.DEV_BASE_URL||"",l="".concat(d,"/tallyman/v1/?").concat(t),[2,fetch(l).then((function(r){return r.json()}))]}))}))}({window:t,country:c,slug:s,device:u,offer:d,rockmanId:v,extraParams:o})},[4,_(b,100,(function(r){return r.success||"invalid_pin"===r.message}),0)]);case 3:if(!0===(k=j.sent()).success)return N="ALREADY SUBSCRIBED"===g.message,[2,{productUrl:k.product_url||null,isAlreadySubscribed:N}];throw(E=new Error("Error in submitMSISDN() verify-pin action:\n".concat(k.message))).type="InvalidPIN",E.message=k.message,E;case 4:return N="ALREADY SUBSCRIBED"===g.message,[2,{productUrl:g.product_url||null,isAlreadySubscribed:N}]}}))}))}var R={currentState:{type:"PINEntry",result:o(),data:{actualPIN:"",msisdn:"",operator:"",pinMaxLength:4}}},A={currentState:{type:"PINEntry",result:c({finalUrl:"/product"}),data:{actualPIN:"",msisdn:"",operator:"",pinMaxLength:4}}},F={currentState:{type:"MSISDNEntry",result:u({errorType:"InvalidMSISDN",error:"Invalid Mobile Number"})}},T={currentState:{type:"MSISDNEntry",result:o()}},B=function(r){var e=f(r),n=new Event("onPinPage"),t=e.ui_show_pin_entry&&"1"===e.ui_show_pin_entry||e["show-pin-entry"]&&"1"===e["show-pin-entry"],i=e["show-thank-you"]&&"1"===e["show-thank-you"],a="1"===(null==e?void 0:e.show_custom_error),s={currentState:{type:"MSISDNEntry",result:u({errorType:"SomethingWentWrong",error:null})}},d={currentState:{type:"PINEntry",result:c({finalUrl:(null==e?void 0:e.product_url)||""}),data:{msisdn:(null==e?void 0:e.msisdn)||"",operator:(null==e?void 0:e.operator)||""}}},l={currentState:{type:"PINEntry",result:o(),data:{msisdn:(null==e?void 0:e.msisdn)||"",operator:(null==e?void 0:e.operator)||""}}};if(t)return null==r||r.dispatchEvent(n),l;if(i)return d;if(a)return s;if(!e["mock-flow"])return T;switch(e["current-state"]){case"msisdn-failure-state":return F;case"pin-state":return null==r||r.dispatchEvent(n),R;case"completed-state":return A;default:return console.error("Mock Flow not supported"),T}}(window),x=i("pinFlow/submitMSISDNAction",(function(n,i){var a=n.window,c=n.msisdn,u=n.extraParams,d=i.getState,f=i.dispatch,y=i.rejectWithValue;return r(void 0,void 0,void 0,(function(){var r,n,i,S,w,_,h,g,I,b,k,E,U,N,P,D,M,C,R,A;return e(this,(function(e){switch(e.label){case 0:if(r=d(),!(null===(M=null===(D=null===(P=null==r?void 0:r.strategy)||void 0===P?void 0:P.currentState)||void 0===D?void 0:D.data)||void 0===M?void 0:M.config))return[2,y({errorType:"UnexpectedState"})];n=r.strategy.currentState.data,i=n.config,S=n.isHeaderEnrichmentSuccess,w=null===(C=r.pinFlow)||void 0===C?void 0:C.currentState,e.label=1;case 1:if(e.trys.push([1,5,,6]),"ps"===(null==i?void 0:i.country.toLowerCase())&&(null==i?void 0:i.slug.includes("shemaroo"))&&"+970"===V(null==i?void 0:i.country,c)&&(c=c.replace("970","972")),"tpay"===(null==(_=null===(A=null===(R=null==a?void 0:a.pac_analytics)||void 0===R?void 0:R.visitor)||void 0===A?void 0:A.genericJsLinkResult)?void 0:_.gateway)){if(m.advancedInFlow("tallyman.v1-pin","msisdn-submitted",{msisdn:c}),j(a,i,c),a.msisdn=c,a.callConfirm)try{return a.callConfirm(),[2,t(t({},w),{type:"MSISDNEntry",result:s()})]}catch(r){return h="Confirm function not found",m.recedeInFlow("tallyman.v1-pin","msisdn-submission-failure",{msisdn:c,errorType:"UnknownError",error:r.toString(),message:r.message,productUrl:r.productUrl}),[2,y({errorType:"UnknownError",error:h,message:h,productUrl:null})]}return g="Confirm function not found",m.recedeInFlow("tallyman.v1-pin","msisdn-submission-failure",{msisdn:c,errorType:"UnknownError",error:g,message:g,productUrl:null}),[2,y({errorType:"UnknownError",error:g,message:g,productUrl:null})]}return m.advancedInFlow("tallyman.v1-pin","msisdn-submitted",{msisdn:c}),[4,j(a,i,c)];case 2:return I=e.sent(),m.advancedInFlow("tallyman.v1-pin","msisdn-submission-success",{msisdn:c}),"SingleMSISDNSubmissionResult"===I.type&&I.redirectUrl&&(m.advancedInFlow("tallyman.v1-pin","msisdn-submission-success",{msisdn:c}),m.customEvent("Flow","advance-auto","msisdn-redirect",{redirectUrl:I.redirectUrl}),a.location.href=I.redirectUrl),u&&u.storeMsisdn&&"true"===u.storeMsisdn?[4,v(c).then((function(r){r&&r.data&&r.data.success?m.customEvent("Flow","advance-auto","msisdn-stored-success"):m.customEvent("Flow","advance-auto","msisdn-stored-failed")})).catch((function(r){m.customEvent("Flow","advance-auto","msisdn-stored-error",r)}))]:[3,4];case 3:e.sent(),e.label=4;case 4:return b="SingleMSISDNSubmissionResult"===I.type?I.operator:"",k={SA_MOBILY:6,SA_STC:4,SA_ZAIN:4},E=new Event("onPinPage"),null==a||a.dispatchEvent(E),[2,t(t({},w),{type:"PINEntry",result:o(),data:t({actualPIN:"SingleMSISDNSubmissionResult"===I.type?I.pin:null,msisdn:c,operator:b,pinMaxLength:""!==b&&k[b]?k[b]:null,isHeaderEnrichmentSuccess:S},"SingleMSISDNSubmissionResult"===I.type&&(null==I?void 0:I.userType)?{userType:I.userType}:{})})];case 5:switch(U=e.sent(),console.warn(U),N=void 0,U.type){case"AlreadySubscribed":N="AlreadySubscribed";break;case"InvalidMSISDN":N="InvalidMSISDN";break;default:N="UnknownError"}return m.recedeInFlow("tallyman.v1-pin","msisdn-submission-failure",{msisdn:c,errorType:N,error:U.toString(),message:U.message,productUrl:U.productUrl}),S&&f(l({type:p.PIN,data:{isHeaderEnrichmentSuccess:!1,config:i}})),[2,y({errorType:N,error:U.toString(),message:U.message,productUrl:U.productUrl})];case 6:return[2]}}))}))})),L=i("pinFlow/submitPinAction",(function(n,i){var a=n.window,o=n.msisdn,s=n.pin,u=n.extraParams,d=i.getState,l=i.rejectWithValue;return r(void 0,void 0,void 0,(function(){var r,n,i,p,f,y,S,w,_,h;return e(this,(function(e){switch(e.label){case 0:if(r=d(),!(null===(_=null===(w=null===(S=null==r?void 0:r.strategy)||void 0===S?void 0:S.currentState)||void 0===w?void 0:w.data)||void 0===_?void 0:_.config))return[2,l({errorType:"UnexpectedState"})];n=r.strategy.currentState.data.config,i=null===(h=r.pinFlow)||void 0===h?void 0:h.currentState,e.label=1;case 1:return e.trys.push([1,5,,6]),m.advancedInFlow("tallyman.v1-pin","pin-submitted",{msisdn:o,pin:s}),[4,C(a,s,n,u)];case 2:return p=e.sent(),m.advancedInFlow("tallyman.v1-pin","pin-submission-success",{msisdn:o,pin:s,finalUrl:p.productUrl}),p.gatewayRedirectUrl&&""!==p.gatewayRedirectUrl&&(m.advancedInFlow("tallyman.v1-pin","gateway-redirect",{msisdn:o,pin:s,gatewayRedirectUrl:p.gatewayRedirectUrl}),a.location.href=p.gatewayRedirectUrl),u&&u.storeMsisdn&&"true"===u.storeMsisdn?[4,v(o).then((function(r){r&&r.data&&r.data.success?m.customEvent("Flow","advance-auto","msisdn-stored-success"):m.customEvent("Flow","advance-auto","msisdn-stored-failed")})).catch((function(r){m.customEvent("Flow","advance-auto","msisdn-stored-error",r)}))]:[3,4];case 3:e.sent(),e.label=4;case 4:return[2,t(t({},i),{type:"PINEntry",result:c({finalUrl:p.productUrl,isAlreadySubscribed:p.isAlreadySubscribed||!1})})];case 5:switch(f=e.sent(),console.warn(f),y=void 0,f.type){case"AlreadySubscribed":y="AlreadySubscribed";break;case"InvalidPIN":y="InvalidPIN";break;case"SessionBlocked":y="SessionBlocked";break;case"ExpiredPIN":y="ExpiredPIN";break;case"InsufficientBalance":y="InsufficientBalance";break;default:y="UnknownError"}return m.recedeInFlow("tallyman.v1-pin","pin-submission-failure",{msisdn:o,pin:s,errorType:y,error:f.toString(),message:f.message,productUrl:f.productUrl}),setTimeout((function(){f.productUrl&&(a.location.href=f.productUrl)}),0),[2,l({errorType:y,error:f.toString(),message:f.message,productUrl:f.productUrl})];case 6:return[2]}}))}))})),q=i("pinFlow/backToStartAction",(function(n,t){var i=t.dispatch,a=t.rejectWithValue;return r(void 0,void 0,void 0,(function(){return e(this,(function(r){try{m.recedeInFlow("tallyman.v1-pin","pin-state","requested to change phone number"),i(d())}catch(r){return console.warn(r),[2,a({errorType:"UnexpectedState"})]}return[2]}))}))})),O={PS:"970"},V=function(r,e){if(!r||!e)return"";var n=r.toUpperCase(),t=O[n];return t?"+".concat(t):(console.error("Country code not found for",r),"")},z=a({name:"pinFlow",initialState:B,reducers:{},extraReducers:function(r){r.addCase(x.pending,(function(r){r.currentState={type:"MSISDNEntry",result:s(),data:r.currentState.data}})).addCase(x.fulfilled,(function(r,e){r.currentState=e.payload})).addCase(x.rejected,(function(r,e){r.currentState={type:"MSISDNEntry",result:u(e.payload),data:r.currentState.data}})).addCase(L.pending,(function(r){r.currentState={type:"PINEntry",result:s(),data:r.currentState.data}})).addCase(L.fulfilled,(function(r,e){r.currentState=e.payload})).addCase(L.rejected,(function(r,e){r.currentState={type:"PINEntry",result:u(e.payload),data:r.currentState.data}}))}}),W=z.reducer;z.actions;export{q as backToStartAction,b as pinFlowMatch,W as pinFlowReducer,x as submitMSISDNAction,L as submitPinAction,I as usePinFlowState};
1
+ import{__awaiter as r,__generator as e,__read as n,__assign as t}from"tslib";import{createAsyncThunk as i,createSlice as a}from"@reduxjs/toolkit";import{N as o,L as s,S as c,F as u}from"./RemoteDataState-lcf8PfJd.js";import{i as d,c as l,P as p}from"./strategySlice-JTBaGYpl.js";import{searchToObject as f}from"./searchToObject.js";import{s as v}from"./storeMsisdn-Cjq8_qYH.js";import{t as m}from"./tracker-DaaILhEr.js";import{b as y}from"./bupperizeCountry-CEtt0MKz.js";import{l as S,r as w,a as _}from"./helpers-xPhGBX-B.js";import{l as g}from"./loadScriptInnerHtml-B6v2-IGn.js";import{c as h}from"./cleanSearchParams-Dl7ZDlew.js";import"./getConfig.js";import"./formatNumberToE164-Bd0VHMHJ.js";import"./api-CqJrSvqq.js";import"pacman-client";import"uuid";var I=function(r){return r((function(r){return r.pinFlow.currentState}))};function b(r){var e=r.msisdnEntry,n=r.pinEntry;return function(r){switch(r.type){case"MSISDNEntry":return e(r.result);case"PINEntry":return n(r.result,r.data);default:throw new Error("Invalid State")}}}var E=function(r){return"be"===r?"undefined"!=typeof window&&!0===window.shouldBlock?"&is-clean-traffic=false":"&is-clean-traffic=true":""},k=function(t){var i=t.window,a=t.country,o=t.slug,s=t.device,c=t.offer,u=t.msisdn,d=t.rockmanId,l=t.extraParams,p=t.search,f=t.uniqid,v=t.evinaTid;return r(void 0,void 0,void 0,(function(){var r,t,m,y,S,w,_;return e(this,(function(e){return r=E(a),t="&".concat(Object.keys(l).map((function(r){return l[r]?"".concat(r,"=").concat(l[r]):""})).filter(Boolean).join("&")),p=h(p),m={action:"trigger-pin",country:a,slug:o,device:s,offerId:c,msisdn:u,rockman_id:d,sam_evina_tid:v,page:encodeURIComponent(null===(_=null==i?void 0:i.location)||void 0===_?void 0:_.href),language_code:i.languageCode||"",partner_transaction_id:i.partner_transaction_id||"",partner_timestamp:i.partner_timestamp||"",partner_cid:i.partner_cid||"",uniqid:f||"",antifraud_id:i.antifraud_id||"",antifraud_id_js_code:i.antifraud_id_js_code||"",antifraud_id_js_link:i.antifraud_id_js_link||"",zain_antifraud_id:i.zain_antifraud_id||"",korek_antifraud_id:i.korek_antifraud_id||""},y=Object.entries(m).filter((function(r){var e=n(r,2);return e[0],e[1]})).map((function(r){var e=n(r,2),t=e[0],i=e[1];return"".concat(t,"=").concat(i)})).join("&"),S=i.DEV_BASE_URL||"",w="".concat(S,"/tallyman/v1/?").concat(y).concat(r).concat(t).concat(p?"&".concat(p):""),[2,fetch(w).then((function(r){return r.json()}))]}))}))},U=function(t){var i=t.window,a=t.country,o=t.slug,s=t.device,c=t.offer,u=t.rockmanId,d=t.pin,l=t.extraParams,p=t.uniqid,f=t.evinaTid,v=t.search;return r(void 0,void 0,void 0,(function(){var r,t,m,S,w,_,g;return e(this,(function(e){return r=E(a),t="&".concat(Object.keys(l).map((function(r){return"".concat(r,"=").concat(l[r])})).join("&")),v=h(v),m={action:"verify-pin",country:y(a),slug:o,device:s,offerId:c,rockman_id:u,pin:d,page:encodeURIComponent(null===(g=null==i?void 0:i.location)||void 0===g?void 0:g.href),language_code:i.languageCode||"",ClickID:i.antifraud_click_id||"",partner_cid:i.partner_cid||"",sam_evina_tid:f,uniqid:p,antifraud_id_js_code:i.antifraud_id_js_code||"",antifraud_id_js_link:i.antifraud_id_js_link||"",zain_antifraud_id:i.zain_antifraud_id||"",korek_antifraud_id:i.korek_antifraud_id||""},S=Object.entries(m).filter((function(r){var e=n(r,2);return e[0],e[1]})).map((function(r){var e=n(r,2),t=e[0],i=e[1];return"".concat(t,"=").concat(i)})).join("&"),w=i.DEV_BASE_URL||"",_="".concat(w,"/tallyman/v1/?").concat(S).concat(r).concat(t).concat(v?"&".concat(v):""),[2,fetch(_).then((function(r){return r.json()}))]}))}))},N=function(n){var i=n.window,a=n.country,o=n.slug,s=n.device,c=n.offer,u=n.rockmanId,d=n.operator,l=n.uniqid;return r(void 0,void 0,void 0,(function(){var r,n,p,f,v;return e(this,(function(e){return r=i.location.href,n=i.pac_analytics.visitor.ip,p=new URLSearchParams(t(t({action:"mcp-shield",country:a,slug:o,device:s,offerId:c.toString(),rockman_id:u,client_lpu:r},d&&{operator:d}),l&&{uniqid:l})),n&&p.append("client_ip",n),f=i.DEV_BASE_URL||"",v="".concat(f,"/tallyman/v1/?").concat(p.toString()),[2,fetch(v).then((function(r){return r.json()}))]}))}))};function j(n,i,a,o){return r(this,void 0,void 0,(function(){var r;return e(this,(function(e){return!0===(r=t({offer:n.pac_analytics.visitor.offer},i||{})).automaticallySubmitAllOperators&&r.operators&&r.operators.length>0?[2,M(n,r,a,r.operators,o)]:[2,D(n,r,a,o)]}))}))}var P="";function D(n,i,a,o){return r(this,void 0,void 0,(function(){var r,s,c,u,d,l,p,v,m,y,S,w,_,h,I,b,E,U;return e(this,(function(e){switch(e.label){case 0:if(!a)throw(r=new Error("Error in submitMSISDN() trigger-pin action")).type="InvalidMSISDN",r;return s=o||{},c=!1,("true"===(null==(u=f(n))?void 0:u.success)&&"1"===u["msisdn-alias"]||!0===n.skip_validation)&&(s["skip-validation"]="1"),"1"===s["skip-validation"]&&(c=!0),d=c?a||n.msisdn:a.match(/\d+/gi).join(""),l=n.pac_analytics.visitor.rockmanId,p=i.slug,v=i.country,m=i.device,y=i.offer,S=n.location.search.substr(1)||"",w=P&&""!==P?"&mcpUniqid=".concat(P):"",_=void 0!==n&&n.tid?n.tid:"",[4,k({window:n,country:v,slug:p,device:m,offer:y,msisdn:d,rockmanId:l,extraParams:s,search:S,uniqid:w,evinaTid:_})];case 1:if(!1!==(h=e.sent()).success)return[3,2];switch((I=new Error("Error in submitMSISDN() trigger-pin action:\n".concat(h.message))).message=h.message,!0){case h.message.includes("ALREADY SUBSCRIBED"):I.type="AlreadySubscribed";break;case h.message.includes("invalid"):I.type="InvalidMSISDN";break;default:I.type=null}throw I.productUrl=h.product_url?h.product_url:"",console.error(I),I;case 2:if(n.operator=h.operator,b={kw:{kw_viva:"kw_viva"},k2:{k2_viva:"k2_viva"},bh:{bh_viva:"bh_viva"}},!(v&&h.operator&&(b[v.toLowerCase()]&&b[v.toLowerCase()][h.operator.toLowerCase()]||"iq"===v.toLowerCase()))||n.isCallBlockApi||n.Empello)return[3,6];e.label=3;case 3:return e.trys.push([3,5,,6]),[4,N({window:n,country:v,slug:p,device:m,offer:y,rockmanId:l,operator:h.operator,uniqid:w})];case 4:return!1===(E=e.sent()).success?console.warn(E.message):(g(E.source),P=E.uniqid),[3,6];case 5:return U=e.sent(),console.warn(U),[3,6];case 6:return h.javascript&&g(h.javascript),[2,t({type:"SingleMSISDNSubmissionResult",pin:h.pin,uniqidResult:P,operator:h.operator,redirectUrl:null==h?void 0:h.redirect_to_url},(null==h?void 0:h.userType)?{userType:null==h?void 0:h.userType}:{})]}}))}))}function M(n,i,a,o,s){return r(this,void 0,void 0,(function(){var c,u,d=this;return e(this,(function(l){switch(l.label){case 0:return[4,Promise.all(o.map((function(o){return r(d,void 0,void 0,(function(){var r,c;return e(this,(function(e){switch(e.label){case 0:return e.trys.push([0,2,,3]),[4,D(n,i,a,t(t({},s),{operator:o}))];case 1:return r=e.sent(),[2,w(t(t({},r),{operator:o}))];case 2:return c=e.sent(),[2,S(c)];case 3:return[2]}}))}))})))];case 1:if(c=l.sent(),u=c.find((function(r){var e;return"left"===r.type&&"AlreadySubscribed"===(null===(e=r.value)||void 0===e?void 0:e.type)})),c.every((function(r){return"left"===r.type})))throw c[0].value;if(u)throw u.value;return[2,{type:"MultiOperatorMSISDNSubmissionResult"}]}}))}))}function C(t,i,a,o){return r(this,void 0,void 0,(function(){var s,c,u,d,l,p,v,m,S,w,g,h,I,b,E,k,N;return e(this,(function(j){switch(j.label){case 0:if(t.hostCountry&&t.hostSlug&&(a.country=t.hostCountry,a.slug=t.hostSlug),s=a.slug,c=a.country,u=a.device,d=t.pac_analytics.visitor.offer,l=o||{},"true"===(null==(p=f(t))?void 0:p.success)&&"1"===p["msisdn-alias"]&&(l["skip-validation"]="1"),v=t.pac_analytics.visitor.rockmanId,!i)throw(m=new Error("Error in submitMSISDN() verify-pin action:\n Pin Cannot Be Empty")).type="InvalidPIN",m;return S=""!==P?"&mcpUniqid=".concat(P):"",w=void 0!==t&&t.tid?t.tid:"",g=t.location.search.substr(1)||"",[4,U({window:t,country:c,slug:s,device:u,offer:d,rockmanId:v,pin:i,extraParams:l,uniqid:S,evinaTid:w,search:g})];case 1:if(!1!==(h=j.sent()).success)return[3,2];throw I={"pin does not match":"InvalidPIN","mcp blocked":"SessionBlocked",expired_pin:"ExpiredPIN",insufficient_balance:"InsufficientBalance"}[h.message],(k=new Error("Error in submitMSISDN() verify-pin action:\n".concat(I))).type=I||"InvalidPIN",k.message=h.message,console.error(k),k;case 2:return!0!==h.async?[3,4]:h.product_url&&""!==h.product_url&&"es"===(null==c?void 0:c.toLowerCase())?[2,{gatewayRedirectUrl:h.product_url}]:(b=function(){return function(t){var i=t.window,a=t.country,o=t.slug,s=t.device,c=t.offer,u=t.rockmanId;return r(void 0,void 0,void 0,(function(){var r,t,d,l;return e(this,(function(e){return r={action:"check-subscription",country:y(a),slug:o,device:s,offerId:c,rockman_id:u},t=Object.entries(r).filter((function(r){var e=n(r,2);return e[0],null!=e[1]})).map((function(r){var e=n(r,2),t=e[0],i=e[1];return"".concat(t,"=").concat(encodeURIComponent(i))})).join("&"),d=i.DEV_BASE_URL||"",l="".concat(d,"/tallyman/v1/?").concat(t),[2,fetch(l).then((function(r){return r.json()}))]}))}))}({window:t,country:c,slug:s,device:u,offer:d,rockmanId:v,extraParams:o})},[4,_(b,100,(function(r){return r.success||"invalid_pin"===r.message}),0)]);case 3:if(!0===(E=j.sent()).success)return N="ALREADY SUBSCRIBED"===h.message,[2,{productUrl:E.product_url||null,isAlreadySubscribed:N}];throw(k=new Error("Error in submitMSISDN() verify-pin action:\n".concat(E.message))).type="InvalidPIN",k.message=E.message,k;case 4:return N="ALREADY SUBSCRIBED"===h.message,[2,{productUrl:h.product_url||null,isAlreadySubscribed:N}]}}))}))}var T={currentState:{type:"PINEntry",result:o(),data:{actualPIN:"",msisdn:"",operator:"",pinMaxLength:4}}},R={currentState:{type:"PINEntry",result:c({finalUrl:"/product"}),data:{actualPIN:"",msisdn:"",operator:"",pinMaxLength:4}}},A={currentState:{type:"MSISDNEntry",result:u({errorType:"InvalidMSISDN",error:"Invalid Mobile Number"})}},F={currentState:{type:"MSISDNEntry",result:o()}},B=function(r){var e=f(r),n=new Event("onPinPage"),t=e.ui_show_pin_entry&&"1"===e.ui_show_pin_entry||e["show-pin-entry"]&&"1"===e["show-pin-entry"],i=e["show-thank-you"]&&"1"===e["show-thank-you"],a="1"===(null==e?void 0:e.show_custom_error),s={currentState:{type:"MSISDNEntry",result:u({errorType:"SomethingWentWrong",error:null})}},d={currentState:{type:"PINEntry",result:c({finalUrl:(null==e?void 0:e.product_url)||""}),data:{msisdn:(null==e?void 0:e.msisdn)||"",operator:(null==e?void 0:e.operator)||""}}},l={currentState:{type:"PINEntry",result:o(),data:{msisdn:(null==e?void 0:e.msisdn)||"",operator:(null==e?void 0:e.operator)||""}}};if(t)return null==r||r.dispatchEvent(n),l;if(i)return d;if(a)return s;if(!e["mock-flow"])return F;switch(e["current-state"]){case"msisdn-failure-state":return A;case"pin-state":return null==r||r.dispatchEvent(n),T;case"completed-state":return R;default:return console.error("Mock Flow not supported"),F}}(window),x=i("pinFlow/submitMSISDNAction",(function(n,i){var a=n.window,c=n.msisdn,u=n.extraParams,d=i.getState,f=i.dispatch,y=i.rejectWithValue;return r(void 0,void 0,void 0,(function(){var r,n,i,S,w,_,g,h,I,b,E,k,U,N,P,D,M,C,T,R;return e(this,(function(e){switch(e.label){case 0:if(r=d(),!(null===(M=null===(D=null===(P=null==r?void 0:r.strategy)||void 0===P?void 0:P.currentState)||void 0===D?void 0:D.data)||void 0===M?void 0:M.config))return[2,y({errorType:"UnexpectedState"})];n=r.strategy.currentState.data,i=n.config,S=n.isHeaderEnrichmentSuccess,w=null===(C=r.pinFlow)||void 0===C?void 0:C.currentState,e.label=1;case 1:if(e.trys.push([1,5,,6]),"ps"===(null==i?void 0:i.country.toLowerCase())&&(null==i?void 0:i.slug.includes("shemaroo"))&&"+970"===V(null==i?void 0:i.country,c)&&(c=c.replace("970","972")),"tpay"===(null==(_=null===(R=null===(T=null==a?void 0:a.pac_analytics)||void 0===T?void 0:T.visitor)||void 0===R?void 0:R.genericJsLinkResult)?void 0:_.gateway)){if(m.advancedInFlow("tallyman.v1-pin","msisdn-submitted",{msisdn:c}),j(a,i,c),a.msisdn=c,a.callConfirm)try{return a.callConfirm(),[2,t(t({},w),{type:"MSISDNEntry",result:s()})]}catch(r){return g="Confirm function not found",m.recedeInFlow("tallyman.v1-pin","msisdn-submission-failure",{msisdn:c,errorType:"TPayUnknownError",error:(null==r?void 0:r.toString())||"Error calling window.callConfirm function",message:r.message}),[2,y({errorType:"TPayUnknownError",error:g,message:g})]}return h="Confirm function not found",m.recedeInFlow("tallyman.v1-pin","msisdn-submission-failure",{msisdn:c,errorType:"TPayUnknownError",error:h,message:h}),[2,y({errorType:"TPayUnknownError",error:h,message:h})]}return m.advancedInFlow("tallyman.v1-pin","msisdn-submitted",{msisdn:c}),[4,j(a,i,c)];case 2:return I=e.sent(),m.advancedInFlow("tallyman.v1-pin","msisdn-submission-success",{msisdn:c}),"SingleMSISDNSubmissionResult"===I.type&&I.redirectUrl&&(m.advancedInFlow("tallyman.v1-pin","msisdn-submission-success",{msisdn:c}),m.customEvent("Flow","advance-auto","msisdn-redirect",{redirectUrl:I.redirectUrl}),a.location.href=I.redirectUrl),u&&u.storeMsisdn&&"true"===u.storeMsisdn?[4,v(c).then((function(r){r&&r.data&&r.data.success?m.customEvent("Flow","advance-auto","msisdn-stored-success"):m.customEvent("Flow","advance-auto","msisdn-stored-failed")})).catch((function(r){m.customEvent("Flow","advance-auto","msisdn-stored-error",r)}))]:[3,4];case 3:e.sent(),e.label=4;case 4:return b="SingleMSISDNSubmissionResult"===I.type?I.operator:"",E={SA_MOBILY:6,SA_STC:4,SA_ZAIN:4},k=new Event("onPinPage"),null==a||a.dispatchEvent(k),[2,t(t({},w),{type:"PINEntry",result:o(),data:t({actualPIN:"SingleMSISDNSubmissionResult"===I.type?I.pin:null,msisdn:c,operator:b,pinMaxLength:""!==b&&E[b]?E[b]:null,isHeaderEnrichmentSuccess:S},"SingleMSISDNSubmissionResult"===I.type&&(null==I?void 0:I.userType)?{userType:I.userType}:{})})];case 5:switch(U=e.sent(),console.warn(U),N=void 0,U.type){case"AlreadySubscribed":N="AlreadySubscribed";break;case"InvalidMSISDN":N="InvalidMSISDN";break;default:N="UnknownError"}return m.recedeInFlow("tallyman.v1-pin","msisdn-submission-failure",{msisdn:c,errorType:N,error:U.toString(),message:U.message,productUrl:U.productUrl}),S&&f(l({type:p.PIN,data:{isHeaderEnrichmentSuccess:!1,config:i}})),[2,y({errorType:N,error:U.toString(),message:U.message,productUrl:U.productUrl})];case 6:return[2]}}))}))})),L=i("pinFlow/submitPinAction",(function(n,i){var a=n.window,o=n.msisdn,s=n.pin,u=n.extraParams,d=i.getState,l=i.rejectWithValue;return r(void 0,void 0,void 0,(function(){var r,n,i,p,f,y,S,w,_,g;return e(this,(function(e){switch(e.label){case 0:if(r=d(),!(null===(_=null===(w=null===(S=null==r?void 0:r.strategy)||void 0===S?void 0:S.currentState)||void 0===w?void 0:w.data)||void 0===_?void 0:_.config))return[2,l({errorType:"UnexpectedState"})];n=r.strategy.currentState.data.config,i=null===(g=r.pinFlow)||void 0===g?void 0:g.currentState,e.label=1;case 1:return e.trys.push([1,5,,6]),m.advancedInFlow("tallyman.v1-pin","pin-submitted",{msisdn:o,pin:s}),[4,C(a,s,n,u)];case 2:return p=e.sent(),m.advancedInFlow("tallyman.v1-pin","pin-submission-success",{msisdn:o,pin:s,finalUrl:p.productUrl}),p.gatewayRedirectUrl&&""!==p.gatewayRedirectUrl&&(m.advancedInFlow("tallyman.v1-pin","gateway-redirect",{msisdn:o,pin:s,gatewayRedirectUrl:p.gatewayRedirectUrl}),a.location.href=p.gatewayRedirectUrl),u&&u.storeMsisdn&&"true"===u.storeMsisdn?[4,v(o).then((function(r){r&&r.data&&r.data.success?m.customEvent("Flow","advance-auto","msisdn-stored-success"):m.customEvent("Flow","advance-auto","msisdn-stored-failed")})).catch((function(r){m.customEvent("Flow","advance-auto","msisdn-stored-error",r)}))]:[3,4];case 3:e.sent(),e.label=4;case 4:return[2,t(t({},i),{type:"PINEntry",result:c({finalUrl:p.productUrl,isAlreadySubscribed:p.isAlreadySubscribed||!1})})];case 5:switch(f=e.sent(),console.warn(f),y=void 0,f.type){case"AlreadySubscribed":y="AlreadySubscribed";break;case"InvalidPIN":y="InvalidPIN";break;case"SessionBlocked":y="SessionBlocked";break;case"ExpiredPIN":y="ExpiredPIN";break;case"InsufficientBalance":y="InsufficientBalance";break;default:y="UnknownError"}return m.recedeInFlow("tallyman.v1-pin","pin-submission-failure",{msisdn:o,pin:s,errorType:y,error:f.toString(),message:f.message,productUrl:f.productUrl}),setTimeout((function(){f.productUrl&&(a.location.href=f.productUrl)}),0),[2,l({errorType:y,error:f.toString(),message:f.message,productUrl:f.productUrl})];case 6:return[2]}}))}))})),q=i("pinFlow/backToStartAction",(function(n,t){var i=t.dispatch,a=t.rejectWithValue;return r(void 0,void 0,void 0,(function(){return e(this,(function(r){try{m.recedeInFlow("tallyman.v1-pin","pin-state","requested to change phone number"),i(d())}catch(r){return console.warn(r),[2,a({errorType:"UnexpectedState"})]}return[2]}))}))})),O={PS:"970"},V=function(r,e){if(!r||!e)return"";var n=r.toUpperCase(),t=O[n];return t?"+".concat(t):(console.error("Country code not found for",r),"")},z=a({name:"pinFlow",initialState:B,reducers:{},extraReducers:function(r){r.addCase(x.pending,(function(r){r.currentState={type:"MSISDNEntry",result:s(),data:r.currentState.data}})).addCase(x.fulfilled,(function(r,e){r.currentState=e.payload})).addCase(x.rejected,(function(r,e){r.currentState={type:"MSISDNEntry",result:u(e.payload),data:r.currentState.data}})).addCase(L.pending,(function(r){r.currentState={type:"PINEntry",result:s(),data:r.currentState.data}})).addCase(L.fulfilled,(function(r,e){r.currentState=e.payload})).addCase(L.rejected,(function(r,e){r.currentState={type:"PINEntry",result:u(e.payload),data:r.currentState.data}}))}}),W=z.reducer;z.actions;export{q as backToStartAction,b as pinFlowMatch,W as pinFlowReducer,x as submitMSISDNAction,L as submitPinAction,I as usePinFlowState};
2
2
  //# sourceMappingURL=pinFlow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pinFlow.js","sources":["../src/flows/pinFlow/hooks/usePinFlowState.ts","../src/flows/pinFlow/match.ts","../src/sharedApi/checkSubscription.ts","../src/flows/pinFlow/api.ts","../src/flows/pinFlow/main.ts","../src/flows/pinFlow/pinFlowSlice.ts"],"sourcesContent":["import { useSelector as IuseSelector } from 'react-redux';\nimport { RootState } from '../../../sharedFlowTypes/StrategyTypes';\n\nexport const usePinFlowState = (useSelector: typeof IuseSelector) => {\n const currentState = useSelector((state: RootState) => state.pinFlow.currentState);\n return currentState;\n};\n","import * as RDS from '../../common-types/RemoteDataState';\nimport {\n IMsisdnSumbitNextData,\n MSISDNEntryFailure,\n MSISDNEntrySuccess,\n PINEntryFailure,\n PINEntrySuccess,\n PinFlowCurrentState\n} from '../../sharedFlowTypes/PinTypes';\n\nfunction pinFlowMatch<R>({\n msisdnEntry,\n pinEntry\n}: {\n msisdnEntry: (rds: RDS.RemoteDataState<MSISDNEntryFailure, MSISDNEntrySuccess>) => R;\n pinEntry: (rds: RDS.RemoteDataState<PINEntryFailure, PINEntrySuccess>, nextData: IMsisdnSumbitNextData) => R;\n}): (state: PinFlowCurrentState) => R {\n return (state) => {\n switch (state.type) {\n case 'MSISDNEntry':\n return msisdnEntry(state.result);\n case 'PINEntry':\n return pinEntry(state.result, state.data);\n default:\n throw new Error('Invalid State');\n }\n };\n}\n\nexport { pinFlowMatch };\n","import { ICheckSubscriptionResult } from '../common-types/ICheckSubscriptionResult';\nimport { IHash } from '../common-types/IHash';\nimport { bupperizeCountry } from '../utilities/bupperizeCountry';\n\nconst checkSubscription = async ({\n window,\n country,\n slug,\n device,\n offer,\n rockmanId\n}: {\n window: Window;\n country: string;\n slug: string;\n device: string;\n offer: string;\n rockmanId: string;\n extraParams?: IHash; // Marked as optional if currently unused\n}): Promise<ICheckSubscriptionResult> => {\n const params = {\n action: 'check-subscription',\n country: bupperizeCountry(country),\n slug,\n device,\n offerId: offer,\n rockman_id: rockmanId\n };\n\n const queryString = Object.entries(params)\n .filter(([_, value]) => value !== undefined && value !== null)\n .map(([key, value]) => `${key}=${encodeURIComponent(value)}`)\n .join('&');\n\n const host = window.DEV_BASE_URL || '';\n const url = `${host}/tallyman/v1/?${queryString}`;\n return fetch(url).then((response) => response.json());\n};\n\nexport { checkSubscription };\n","import { IHash, IMcpShieldResult, IMSISDNSubmissionResult, IPINSubmissionResult } from '../../sharedFlowTypes/PinTypes';\nimport { bupperizeCountry } from '../../utilities/bupperizeCountry';\nimport { cleanSearchParams } from '../../utilities/cleanSearchParams';\n\nconst checkIsCleanTraffic = (country: string): string => {\n if (country === 'be') {\n if (typeof window !== 'undefined' && window.shouldBlock === true) {\n return '&is-clean-traffic=false';\n }\n return '&is-clean-traffic=true';\n }\n return '';\n};\nconst triggerPin = async ({\n window,\n country,\n slug,\n device,\n offer,\n msisdn,\n rockmanId,\n extraParams,\n search,\n uniqid,\n evinaTid\n}: {\n window?: Window;\n country: string;\n slug: string;\n device: 'smart' | 'feature';\n offer: string;\n msisdn: string;\n rockmanId: string;\n extraParams: IHash;\n search: string;\n uniqid?: string;\n evinaTid?: string;\n}): Promise<IMSISDNSubmissionResult> => {\n const cleanTrafficString = checkIsCleanTraffic(country);\n const extraParamsQs = `&${Object.keys(extraParams)\n .map((k) => (extraParams[k] ? `${k}=${extraParams[k]}` : ''))\n .filter(Boolean)\n .join('&')}`;\n\n // Remove conflicting params from url\n search = cleanSearchParams(search);\n\n // Base parameters object\n const params = {\n action: 'trigger-pin',\n country,\n slug,\n device,\n offerId: offer,\n msisdn,\n rockman_id: rockmanId,\n sam_evina_tid: evinaTid,\n page: encodeURIComponent(window?.location?.href),\n language_code: window.languageCode || '',\n partner_transaction_id: window.partner_transaction_id || '',\n partner_timestamp: window.partner_timestamp || '',\n partner_cid: window.partner_cid || '',\n uniqid: uniqid || '',\n\n antifraud_id: window.antifraud_id || '',\n // More specific antifraud IDs will eventuallly replace antifraud_id\n // https://www.notion.so/sammedia/KW-Agency-Globocom-KW-ENTERTAINMENT-STORE-GAMESOLUTELY-GLING-Landing-Page-Test-a9841b14218b42709ffb1a2d41428275?d=f2a8d09b1e8c4fd4bdab69ab5dda1f25\n antifraud_id_js_code: window.antifraud_id_js_code || '',\n antifraud_id_js_link: window.antifraud_id_js_link || '',\n zain_antifraud_id: window.zain_antifraud_id || '',\n korek_antifraud_id: window.korek_antifraud_id || ''\n };\n\n // Convert params object to query string\n const queryString = Object.entries(params)\n .filter(([_, value]) => value)\n .map(([key, value]) => `${key}=${value}`)\n .join('&');\n const host = window.DEV_BASE_URL || '';\n const url = `${host}/tallyman/v1/?${queryString}${cleanTrafficString}${extraParamsQs}${search ? `&${search}` : ''}`;\n\n return fetch(url).then((x) => x.json());\n};\n\nconst verifyPin = async ({\n window,\n country,\n slug,\n device,\n offer,\n rockmanId,\n pin,\n extraParams,\n uniqid,\n evinaTid,\n search\n}: {\n window: Window;\n country: string;\n slug: string;\n device: string;\n offer: string;\n rockmanId: string;\n pin: string;\n extraParams: IHash;\n uniqid: string;\n evinaTid: string;\n search: string;\n}): Promise<IPINSubmissionResult> => {\n const cleanTrafficString = checkIsCleanTraffic(country);\n const extraParamsQs = `&${Object.keys(extraParams)\n .map((k) => `${k}=${extraParams[k]}`)\n .join('&')}`;\n // Remove conflicting params from url\n search = cleanSearchParams(search);\n // Base parameters object\n const params = {\n action: 'verify-pin',\n country: bupperizeCountry(country),\n slug,\n device,\n offerId: offer,\n rockman_id: rockmanId,\n pin,\n page: encodeURIComponent(window?.location?.href),\n language_code: window.languageCode || '',\n ClickID: window.antifraud_click_id || '',\n partner_cid: window.partner_cid || '',\n sam_evina_tid: evinaTid,\n uniqid,\n // More specific antifraud IDs will eventuallly replace antifraud_id\n // https://www.notion.so/sammedia/KW-Agency-Globocom-KW-ENTERTAINMENT-STORE-GAMESOLUTELY-GLING-Landing-Page-Test-a9841b14218b42709ffb1a2d41428275?d=f2a8d09b1e8c4fd4bdab69ab5dda1f25\n antifraud_id_js_code: window.antifraud_id_js_code || '',\n antifraud_id_js_link: window.antifraud_id_js_link || '',\n zain_antifraud_id: window.zain_antifraud_id || '',\n korek_antifraud_id: window.korek_antifraud_id || ''\n };\n\n // Convert params object to query string\n const queryString = Object.entries(params)\n .filter(([_, value]) => value)\n .map(([key, value]) => `${key}=${value}`)\n .join('&');\n\n const host = window.DEV_BASE_URL || '';\n const url = `${host}/tallyman/v1/?${queryString}${cleanTrafficString}${extraParamsQs}${search ? `&${search}` : ''}`;\n\n return fetch(url).then((x) => x.json());\n};\n\nconst mcpShield = async ({\n window,\n country,\n slug,\n device,\n offer,\n rockmanId,\n operator,\n uniqid\n}: {\n window: Window;\n country: string;\n slug: string;\n device: string;\n offer: string;\n rockmanId: string;\n operator?: string;\n uniqid?: string;\n}): Promise<IMcpShieldResult> => {\n const pageUrl = window.location.href;\n const ipAdd = window.pac_analytics.visitor.ip;\n\n const params = new URLSearchParams({\n action: 'mcp-shield',\n country,\n slug,\n device,\n offerId: offer.toString(),\n rockman_id: rockmanId,\n client_lpu: pageUrl,\n ...(operator && { operator }),\n ...(uniqid && { uniqid })\n });\n\n // Conditionally add client_ip if it exists\n if (ipAdd) {\n params.append('client_ip', ipAdd);\n }\n\n const host = window.DEV_BASE_URL || '';\n const url = `${host}/tallyman/v1/?${params.toString()}`;\n\n return fetch(url).then((x) => x.json());\n};\n\nexport { triggerPin, verifyPin, mcpShield };\n","import { ICheckSubscriptionResult } from '../../common-types/ICheckSubscriptionResult';\nimport { IError } from '../../common-types/IError';\nimport { checkSubscription } from '../../sharedApi/checkSubscription';\nimport {\n IHash,\n IMcpShieldResult,\n IMSISDNSubmissionResult,\n IPINSubmissionResult,\n MultiOperatorMSISDNSubmissionResult,\n SingleMSISDNSubmissionResult\n} from '../../sharedFlowTypes/PinTypes';\nimport { IConfig, IStrategyIDentifyUserResult } from '../../sharedFlowTypes/StrategyTypes';\nimport { left, loop, right } from '../../utilities/helpers';\nimport { loadScriptInnerHtml } from '../../utilities/loadScriptInnerHtml';\nimport { searchToObject } from '../../utilities/searchToObject';\nimport { mcpShield, triggerPin, verifyPin } from './api';\n\nexport default async function submitMSISDN(\n window: Window,\n maybeConfig: IConfig,\n internationalMSISDN: string,\n extraParams?: IHash\n): Promise<SingleMSISDNSubmissionResult | MultiOperatorMSISDNSubmissionResult> {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const config: IConfig = { offer: window.pac_analytics.visitor.offer, ...(maybeConfig || {}) };\n if (config.automaticallySubmitAllOperators === true && !!config.operators && config.operators.length > 0) {\n return submitMSISDNForMultipleOperators(window, config, internationalMSISDN, config.operators, extraParams);\n }\n return submitMSISDNOnce(window, config, internationalMSISDN, extraParams);\n}\n\nlet uniqidResult = '';\n// eslint-disable-next-line consistent-return\nexport async function loadMcpShield(window: Window, config: IConfig): Promise<IMcpShieldResult> {\n if (config) {\n const { slug, country, device } = config;\n\n const { offer } = window.pac_analytics.visitor;\n const { rockmanId } = window.pac_analytics.visitor;\n\n try {\n const mcpShieldResult: IMcpShieldResult = await mcpShield({ window, country, slug, device, offer, rockmanId });\n if (mcpShieldResult.success === false) {\n console.warn(mcpShieldResult.message);\n } else {\n loadScriptInnerHtml(mcpShieldResult.source);\n uniqidResult = mcpShieldResult.uniqid;\n return mcpShieldResult;\n }\n } catch (err) {\n console.warn(err);\n }\n }\n}\n\nasync function submitMSISDNOnce(\n window: Window,\n config: IConfig,\n internationalMSISDN: string,\n extraParams?: IHash\n): Promise<SingleMSISDNSubmissionResult> {\n if (!internationalMSISDN) {\n const submissionError = new Error(`Error in submitMSISDN() trigger-pin action`) as IError & { type: string };\n submissionError.type = 'InvalidMSISDN';\n throw submissionError;\n }\n const newExtraParams = extraParams || {};\n let isSkipValidation = false;\n const searchObj = searchToObject(window) as IStrategyIDentifyUserResult;\n // @ts-ignore\n if ((searchObj?.success === 'true' && searchObj['msisdn-alias'] === '1') || window.skip_validation === true) {\n // Search param is set to 1 for header enrichment when the msisdn is masked\n newExtraParams['skip-validation'] = '1';\n }\n\n if (newExtraParams['skip-validation'] === '1') {\n isSkipValidation = true;\n }\n\n const msisdn = isSkipValidation ? internationalMSISDN || window.msisdn : internationalMSISDN.match(/\\d+/gi).join(''); // tallyman API expects international msisdn without any special character\n const { rockmanId } = window.pac_analytics.visitor;\n\n const { slug, country, device, offer } = config;\n\n const search = window.location.search.substr(1) || '';\n const uniqid = !!uniqidResult && uniqidResult !== '' ? `&mcpUniqid=${uniqidResult}` : '';\n const evinaTid = typeof window !== 'undefined' && window.tid ? window.tid : '';\n\n const result: IMSISDNSubmissionResult = await triggerPin({\n window,\n country,\n slug,\n device,\n offer,\n msisdn,\n rockmanId,\n extraParams: newExtraParams,\n search,\n uniqid,\n evinaTid\n });\n\n if (result.success === false) {\n const error = new Error(`Error in submitMSISDN() trigger-pin action:\\n${result.message}`) as IError & {\n type: string;\n productUrl: string;\n };\n error.message = result.message;\n switch (true) {\n case result.message.includes('ALREADY SUBSCRIBED'):\n error.type = 'AlreadySubscribed';\n break;\n case result.message.includes('invalid'):\n error.type = 'InvalidMSISDN';\n break;\n default:\n error.type = null;\n }\n // error.type = result.message === 'ALREADY SUBSCRIBED' ? 'AlreadySubscribed' : 'InvalidMSISDN';\n error.productUrl = result.product_url ? result.product_url : '';\n console.error(error);\n throw error;\n } else {\n window.operator = result.operator; // currently used on server for KW_STC if present dont call empello for Shemaroo\n const codesWithMcpShied: { [key: string]: { [key: string]: string } } = {\n kw: {\n kw_viva: 'kw_viva'\n },\n k2: {\n k2_viva: 'k2_viva'\n },\n bh: {\n bh_viva: 'bh_viva'\n }\n };\n if (\n country &&\n result.operator &&\n ((codesWithMcpShied[country.toLowerCase()] &&\n codesWithMcpShied[country.toLowerCase()][result.operator.toLowerCase()]) ||\n country.toLowerCase() === 'iq') &&\n !window.isCallBlockApi &&\n !window.Empello // set on server https://www.notion.so/sammedia/KW-Agency-Shemaroo-STC-integration-1a114991683d4af79eb01a4d96789f30\n ) {\n try {\n const mcpShieldResult: IMcpShieldResult = await mcpShield({\n window,\n country,\n slug,\n device,\n offer,\n rockmanId,\n operator: result.operator,\n uniqid\n });\n if (mcpShieldResult.success === false) {\n console.warn(mcpShieldResult.message);\n } else {\n loadScriptInnerHtml(mcpShieldResult.source);\n uniqidResult = mcpShieldResult.uniqid;\n }\n } catch (err) {\n console.warn(err);\n }\n }\n\n if (result.javascript) {\n loadScriptInnerHtml(result.javascript);\n }\n\n return {\n type: 'SingleMSISDNSubmissionResult',\n pin: result.pin,\n uniqidResult,\n operator: result.operator,\n redirectUrl: result?.redirect_to_url, // For pin redirect empello\n ...(result?.userType ? { userType: result?.userType } : {}) // For Peru user plan if prepaid or postpaid\n };\n }\n}\n\nasync function submitMSISDNForMultipleOperators(\n window: Window,\n config: IConfig,\n internationalMSISDN: string,\n operators: string[],\n extraParams?: IHash\n): Promise<MultiOperatorMSISDNSubmissionResult> {\n const results = await Promise.all(\n operators.map(async (o) => {\n try {\n const singleResult = await submitMSISDNOnce(window, config, internationalMSISDN, {\n ...extraParams,\n operator: o\n });\n return right({ ...singleResult, operator: o });\n } catch (error) {\n return left(error);\n }\n })\n );\n\n const alreadySubscribed = results.find((r: any) => r.type === 'left' && r.value?.type === 'AlreadySubscribed');\n\n if (results.every((r) => r.type === 'left')) {\n // no submission worked\n throw results[0].value;\n } else if (alreadySubscribed) {\n throw alreadySubscribed.value;\n } else {\n return {\n type: 'MultiOperatorMSISDNSubmissionResult'\n };\n }\n}\n\nexport async function submitPIN(\n window: Window,\n pin: string,\n config: IConfig,\n extraParams: IHash\n): Promise<{ productUrl?: string; isAlreadySubscribed?: boolean; gatewayRedirectUrl?: string }> {\n if (window.hostCountry && window.hostSlug) {\n config.country = window.hostCountry;\n config.slug = window.hostSlug;\n }\n const { slug, country, device } = config;\n const { offer } = window.pac_analytics.visitor;\n\n const newExtraParams = extraParams || {};\n const searchObj = searchToObject(window) as any;\n if (searchObj?.success === 'true' && searchObj['msisdn-alias'] === '1') {\n newExtraParams['skip-validation'] = '1';\n }\n\n const { rockmanId } = window.pac_analytics.visitor;\n\n if (!pin) {\n const emptyPinError = new Error(`Error in submitMSISDN() verify-pin action:\\n Pin Cannot Be Empty`) as IError & {\n type: string;\n };\n emptyPinError.type = 'InvalidPIN';\n throw emptyPinError;\n }\n const uniqid = uniqidResult !== '' ? `&mcpUniqid=${uniqidResult}` : '';\n const evinaTid = typeof window !== 'undefined' && window.tid ? window.tid : '';\n const search = window.location.search.substr(1) || '';\n\n const pinResult: IPINSubmissionResult = await verifyPin({\n window,\n country,\n slug,\n device,\n offer,\n rockmanId,\n pin,\n extraParams: newExtraParams,\n uniqid,\n evinaTid,\n search\n });\n if (pinResult.success === false) {\n const pinErrorTypeMap: { [key: string]: string } = {\n 'pin does not match': 'InvalidPIN',\n 'mcp blocked': 'SessionBlocked',\n expired_pin: 'ExpiredPIN',\n insufficient_balance: 'InsufficientBalance'\n };\n const errorMessage = pinErrorTypeMap[pinResult.message as string];\n const pinError = new Error(`Error in submitMSISDN() verify-pin action:\\n${errorMessage}`) as IError & {\n type: string;\n };\n pinError.type = errorMessage || 'InvalidPIN';\n pinError.message = pinResult.message;\n console.error(pinError);\n throw pinError;\n } else if (pinResult.async === true) {\n // Needed for ES https://www.notion.so/sammedia/ES-OnMobile-Movistar-Direct-Ouisys-Integration-XR-Academy-ca60b176b0ea40a7b170e5d9e7deb491\n if (pinResult.product_url && pinResult.product_url !== '' && country?.toLowerCase() === 'es') {\n return { gatewayRedirectUrl: pinResult.product_url };\n }\n const check: () => Promise<ICheckSubscriptionResult> = () =>\n checkSubscription({ window, country, slug, device, offer, rockmanId, extraParams });\n\n const checkResult: ICheckSubscriptionResult = await loop(\n check,\n 100,\n (r) => r.success || r.message === 'invalid_pin',\n 0\n );\n if (checkResult.success === true) {\n const isAlreadySubscribed = pinResult.message === 'ALREADY SUBSCRIBED';\n return { productUrl: checkResult.product_url || null, isAlreadySubscribed };\n }\n const pinError = new Error(`Error in submitMSISDN() verify-pin action:\\n${checkResult.message}`) as IError & {\n type: string;\n };\n pinError.type = 'InvalidPIN';\n pinError.message = checkResult.message;\n\n throw pinError;\n } else {\n const isAlreadySubscribed = pinResult.message === 'ALREADY SUBSCRIBED';\n return { productUrl: pinResult.product_url || null, isAlreadySubscribed };\n }\n}\n","import { createAsyncThunk, createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport * as RDS from '../../common-types/RemoteDataState';\nimport {\n IHash,\n MSISDNEntryErrorTypes,\n MSISDNEntryFailure,\n MSISDNEntryState,\n MSISDNEntrySuccess,\n PINEntryErrorTypes,\n PINEntryFailure,\n PINEntryState,\n PINEntrySuccess,\n PinFlowState\n} from '../../sharedFlowTypes/PinTypes';\nimport { IMockFlowParams, PossibleTypes, RootState } from '../../sharedFlowTypes/StrategyTypes';\nimport { searchToObject } from '../../utilities/searchToObject';\nimport { storeMsisdn } from '../../utilities/storeMsisdn';\nimport { tracker } from '../../utilities/tracker';\nimport { identifyStrategy, setStrategyExtraData } from '../strategy/strategySlice';\nimport submitMSISDN, { submitPIN } from './main';\n\nconst mockedPINState: PinFlowState = {\n currentState: {\n type: 'PINEntry',\n result: RDS.NothingYet<PINEntryFailure, PINEntrySuccess>(),\n data: {\n actualPIN: '',\n msisdn: '',\n operator: '',\n pinMaxLength: 4\n }\n }\n};\n\nconst mockedCompletedState: PinFlowState = {\n currentState: {\n type: 'PINEntry',\n result: RDS.Success<PINEntryFailure, PINEntrySuccess>({ finalUrl: '/product' }),\n data: {\n actualPIN: '',\n msisdn: '',\n operator: '',\n pinMaxLength: 4\n }\n }\n};\n\nconst mockedMSISDNEntryFailure: PinFlowState = {\n currentState: {\n type: 'MSISDNEntry',\n result: RDS.Failure<MSISDNEntryFailure, MSISDNEntrySuccess>({\n errorType: 'InvalidMSISDN',\n error: 'Invalid Mobile Number'\n })\n }\n};\n\n// Define the initial state\nconst defaultInitialState: PinFlowState = {\n currentState: {\n type: 'MSISDNEntry',\n result: RDS.NothingYet()\n }\n};\n\n/**\n * Sets the initial state of the pin flow based on the search parameters in the URL or the default state.\n *\n * @param {Window} window - The window object.\n * @return {PinFlowState} The initial state of the pin flow.\n */\nconst setInitialState = (window: Window) => {\n const search = searchToObject(window) as IMockFlowParams<any>;\n const pinPageEvent = new Event('onPinPage');\n const isPinEntryStep =\n (search.ui_show_pin_entry && search.ui_show_pin_entry === '1') ||\n (search['show-pin-entry'] && search['show-pin-entry'] === '1');\n const isShowThankYouStep = search['show-thank-you'] && search['show-thank-you'] === '1';\n const isShowCustomError = search?.show_custom_error === '1';\n\n const msisdnError: PinFlowState = {\n currentState: {\n type: 'MSISDNEntry',\n result: RDS.Failure<MSISDNEntryFailure, MSISDNEntrySuccess>({\n errorType: 'SomethingWentWrong',\n error: null\n })\n }\n };\n\n const thankYouState: PinFlowState = {\n currentState: {\n type: 'PINEntry',\n result: RDS.Success<PINEntryFailure, PINEntrySuccess>({\n finalUrl: search?.product_url || ''\n }),\n // @ts-ignore\n data: {\n msisdn: search?.msisdn || '',\n operator: search?.operator || ''\n }\n }\n };\n\n const initalPinEntryState: PinFlowState = {\n currentState: {\n type: 'PINEntry',\n result: RDS.NothingYet(),\n // @ts-ignore\n data: {\n msisdn: search?.msisdn || '',\n operator: search?.operator || ''\n }\n }\n };\n if (isPinEntryStep) {\n // Needed for shemroo the handler is injected on server\n window?.dispatchEvent(pinPageEvent);\n return initalPinEntryState;\n }\n if (isShowThankYouStep) {\n return thankYouState;\n }\n if (isShowCustomError) {\n return msisdnError;\n }\n\n if (search['mock-flow']) {\n switch (search['current-state']) {\n case 'msisdn-failure-state':\n return mockedMSISDNEntryFailure;\n case 'pin-state':\n // Needed for shemroo the handler is injected on server\n window?.dispatchEvent(pinPageEvent);\n return mockedPINState;\n case 'completed-state':\n return mockedCompletedState;\n default:\n console.error('Mock Flow not supported');\n return defaultInitialState;\n }\n } else {\n return defaultInitialState;\n }\n};\n\nconst initialState = setInitialState(window);\n\n/**\n * submitMSISDNAction\n * @returns {type: ' 'pinFlow/submitMSISDNAction', payload: {type: PossibleTypes.MO, result: PINEntryState}}\n \n * Calls trigger-pin api that sends a pin to the user\n * Sets state to show pin entry\n */\ninterface SubmitMSISDNArgs {\n window: Window;\n msisdn: string;\n extraParams?: IHash;\n}\nexport const submitMSISDNAction = createAsyncThunk<\n PINEntryState | MSISDNEntryState,\n SubmitMSISDNArgs,\n {\n rejectValue: MSISDNEntryFailure; // Type for rejectWithValue\n }\n>('pinFlow/submitMSISDNAction', async ({ window, msisdn, extraParams }, { getState, dispatch, rejectWithValue }) => {\n const state: RootState = getState();\n if (!state?.strategy?.currentState?.data?.config) {\n return rejectWithValue({\n errorType: 'UnexpectedState'\n });\n }\n const { config, isHeaderEnrichmentSuccess } = state.strategy.currentState.data;\n const pinFlowCurrentState = state.pinFlow?.currentState;\n try {\n /**\n * Palestine calling code is +970\n * But there was a request to have it as +972 only for gateway shemaroo\n */\n // Start PS Calling code temp fix\n if (config?.country.toLowerCase() === 'ps' && config?.slug.includes('shemaroo')) {\n const prefix = getInputValuePrefix(config?.country, msisdn);\n if (prefix === '+970') {\n msisdn = msisdn.replace('970', '972');\n }\n }\n // END PS Calling code temp fix\n\n const jsLinkResult = window?.pac_analytics?.visitor?.genericJsLinkResult;\n\n // If the flow is TPAY the above trigger pin will only do tracking on the backend and not actually request a pin from gateway\n // The code below handles that request\n if (jsLinkResult?.gateway === 'tpay') {\n tracker.advancedInFlow('tallyman.v1-pin', 'msisdn-submitted', { msisdn });\n submitMSISDN(window, config, msisdn); // trigger pin call requested here by Adrian for BE tracking\n window.msisdn = msisdn;\n if (window.callConfirm) {\n try {\n window.callConfirm();\n return {\n ...pinFlowCurrentState,\n type: 'MSISDNEntry',\n result: RDS.Loading()\n };\n } catch (ex) {\n // Catch any unexpected errors\n const errorMsg = 'Confirm function not found';\n tracker.recedeInFlow('tallyman.v1-pin', 'msisdn-submission-failure', {\n msisdn,\n errorType: 'UnknownError',\n error: ex.toString(),\n message: ex.message,\n productUrl: ex.productUrl\n });\n return rejectWithValue({\n errorType: 'UnknownError',\n error: errorMsg,\n message: errorMsg,\n productUrl: null\n });\n }\n }\n // Catch any unexpected errors\n const errorMsg = 'Confirm function not found';\n tracker.recedeInFlow('tallyman.v1-pin', 'msisdn-submission-failure', {\n msisdn,\n errorType: 'UnknownError',\n error: errorMsg,\n message: errorMsg,\n productUrl: null\n });\n return rejectWithValue({\n errorType: 'UnknownError',\n error: errorMsg,\n message: errorMsg,\n productUrl: null\n });\n\n // END TPAY TRIGGER PIN\n }\n\n // Start Trigger Pin\n tracker.advancedInFlow('tallyman.v1-pin', 'msisdn-submitted', { msisdn });\n const msisdnSubmissionResult = await submitMSISDN(window, config, msisdn);\n tracker.advancedInFlow('tallyman.v1-pin', 'msisdn-submission-success', { msisdn });\n // End Trigger Pin\n\n /**\n * Some flows require us to redirect to a url after trigger pin to check for fraud\n * The url will then do some processing and return back to ouisys with\n * extra param in the url that will tell us to show pin entry step or error\n */\n\n // Start Pin Redirect\n if (msisdnSubmissionResult.type === 'SingleMSISDNSubmissionResult' && msisdnSubmissionResult.redirectUrl) {\n tracker.advancedInFlow('tallyman.v1-pin', 'msisdn-submission-success', { msisdn });\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-redirect', {\n redirectUrl: msisdnSubmissionResult.redirectUrl\n });\n window.location.href = msisdnSubmissionResult.redirectUrl;\n }\n // End Pin Redirect\n\n // Start handle store msisdn\n if (extraParams && extraParams.storeMsisdn && extraParams.storeMsisdn === 'true') {\n await storeMsisdn(msisdn)\n .then((data: any) => {\n if (data && data.data && data.data.success) {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-success');\n } else {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-failed');\n }\n })\n .catch((error) => {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-error', error);\n });\n }\n // End handle store msisdn\n\n const operator: string =\n msisdnSubmissionResult.type === 'SingleMSISDNSubmissionResult' ? msisdnSubmissionResult.operator : '';\n\n const pinMaxLengthByOp: { [key: string]: number } = {\n SA_MOBILY: 6,\n SA_STC: 4,\n SA_ZAIN: 4\n };\n\n /**\n * onPinPage\n * some scripts on the server need to be injected on pin page/view\n * This event will be handled on server\n */\n const pinPageEvent = new Event('onPinPage');\n window?.dispatchEvent(pinPageEvent);\n\n return {\n ...pinFlowCurrentState,\n type: 'PINEntry',\n result: RDS.NothingYet(),\n data: {\n actualPIN: msisdnSubmissionResult.type === 'SingleMSISDNSubmissionResult' ? msisdnSubmissionResult.pin : null,\n msisdn,\n operator,\n pinMaxLength: operator !== '' && pinMaxLengthByOp[operator] ? pinMaxLengthByOp[operator] : null,\n isHeaderEnrichmentSuccess,\n ...(msisdnSubmissionResult.type === 'SingleMSISDNSubmissionResult' && msisdnSubmissionResult?.userType\n ? { userType: msisdnSubmissionResult.userType }\n : {})\n }\n };\n // END NORMAL TRIGGER PIN\n } catch (ex) {\n console.warn(ex);\n let errorType: MSISDNEntryErrorTypes;\n switch (ex.type) {\n case 'AlreadySubscribed':\n errorType = 'AlreadySubscribed';\n break;\n case 'InvalidMSISDN':\n errorType = 'InvalidMSISDN';\n break;\n default:\n errorType = 'UnknownError';\n }\n\n tracker.recedeInFlow('tallyman.v1-pin', 'msisdn-submission-failure', {\n msisdn,\n errorType,\n error: ex.toString(),\n message: ex.message,\n productUrl: ex.productUrl\n });\n\n if (isHeaderEnrichmentSuccess) {\n dispatch(\n setStrategyExtraData({\n type: PossibleTypes.PIN,\n data: {\n isHeaderEnrichmentSuccess: false,\n config\n }\n })\n );\n }\n\n return rejectWithValue({\n errorType,\n error: ex.toString(),\n message: ex.message,\n productUrl: ex.productUrl\n });\n }\n});\n\n/**\n * submitPinAction\n * @returns {type: ' 'pinFlow/submitMSISDNAction', payload: {type: 'PINEntry', result: RDS.NothingYet()}}\n \n * Calls verify-pin api that check if the user enters a valid pin\n * Sets state to show thank you page if pin is valid\n */\ninterface SubmitPINArgs {\n window: Window;\n msisdn: string;\n pin: string;\n extraParams?: IHash;\n}\n\nexport const submitPinAction = createAsyncThunk<\n PINEntryState,\n SubmitPINArgs,\n {\n rejectValue: PINEntryFailure; // Type for rejectWithValue\n }\n>('pinFlow/submitPinAction', async ({ window, msisdn, pin, extraParams }, { getState, rejectWithValue }) => {\n const state: RootState = getState();\n\n if (!state?.strategy?.currentState?.data?.config) {\n return rejectWithValue({\n errorType: 'UnexpectedState'\n });\n }\n const { config } = state.strategy.currentState.data;\n const pinFlowCurrentState = state.pinFlow?.currentState;\n try {\n tracker.advancedInFlow('tallyman.v1-pin', 'pin-submitted', { msisdn, pin });\n const result = await submitPIN(window, pin, config, extraParams);\n tracker.advancedInFlow('tallyman.v1-pin', 'pin-submission-success', {\n msisdn,\n pin,\n finalUrl: result.productUrl\n });\n\n /**\n * Gateway redirect\n * Value returned in this case is actually the gateway url instead of the product url\n * More details on this ticket:\n * https://www.notion.so/sammedia/ES-OnMobile-Movistar-Direct-Ouisys-Integration-XR-Academy-ca60b176b0ea40a7b170e5d9e7deb491\n */\n // Start Gateway redirect\n if (result.gatewayRedirectUrl && result.gatewayRedirectUrl !== '') {\n tracker.advancedInFlow('tallyman.v1-pin', 'gateway-redirect', {\n msisdn,\n pin,\n gatewayRedirectUrl: result.gatewayRedirectUrl\n });\n window.location.href = result.gatewayRedirectUrl;\n }\n // End Gateway redirect\n\n // if storeMsisdn is true, encrypt msisdn and save it in cookie, localStorage, and zürch\n if (extraParams && extraParams.storeMsisdn && extraParams.storeMsisdn === 'true') {\n await storeMsisdn(msisdn)\n .then((data: any) => {\n if (data && data.data && data.data.success) {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-success');\n } else {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-failed');\n }\n })\n .catch((error) => {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-error', error);\n });\n }\n // End store msisdn\n\n return {\n ...pinFlowCurrentState,\n type: 'PINEntry',\n result: RDS.Success<PINEntryFailure, PINEntrySuccess>({\n finalUrl: result.productUrl,\n isAlreadySubscribed: result.isAlreadySubscribed || false\n })\n };\n } catch (ex) {\n console.warn(ex);\n let errorType: PINEntryErrorTypes;\n switch (ex.type) {\n case 'AlreadySubscribed':\n errorType = 'AlreadySubscribed';\n break;\n case 'InvalidPIN':\n errorType = 'InvalidPIN';\n break;\n case 'SessionBlocked':\n errorType = 'SessionBlocked';\n break;\n case 'ExpiredPIN':\n errorType = 'ExpiredPIN';\n break;\n case 'InsufficientBalance':\n errorType = 'InsufficientBalance';\n break;\n default:\n errorType = 'UnknownError';\n break;\n }\n tracker.recedeInFlow('tallyman.v1-pin', 'pin-submission-failure', {\n msisdn,\n pin,\n errorType,\n error: ex.toString(),\n message: ex.message,\n productUrl: ex.productUrl\n });\n // Redirect to the product url if returned in the exception\n setTimeout(() => {\n if (ex.productUrl) {\n window.location.href = ex.productUrl;\n }\n }, 0);\n\n return rejectWithValue({\n errorType,\n error: ex.toString(),\n message: ex.message,\n productUrl: ex.productUrl\n });\n }\n});\n\nexport const backToStartAction = createAsyncThunk<\n any,\n any,\n {\n rejectValue: any; // Type for rejectWithValue\n }\n>('pinFlow/backToStartAction', async (_, { dispatch, rejectWithValue }) => {\n try {\n tracker.recedeInFlow('tallyman.v1-pin', 'pin-state', 'requested to change phone number');\n dispatch(identifyStrategy());\n } catch (ex) {\n console.warn(ex);\n return rejectWithValue({\n errorType: 'UnexpectedState'\n });\n }\n});\n\ntype CountryCodeMap = { [country: string]: string };\n\nconst countryCodes: CountryCodeMap = {\n PS: '970'\n // Add other countries and codes here\n};\n\nconst getInputValuePrefix = (country: string, international: string): string => {\n if (!country || !international) return '';\n\n // Convert the country to uppercase and retrieve the country code\n const normalizedCountry = country.toUpperCase();\n const countryCode = countryCodes[normalizedCountry];\n\n // Check if the country code exists in the mapping\n if (!countryCode) {\n console.error('Country code not found for', country);\n return '';\n }\n\n return `+${countryCode}`;\n};\n\n// Define your slice\nconst pinFlowSlice = createSlice({\n name: 'pinFlow',\n initialState,\n reducers: {},\n extraReducers: (builder) => {\n builder\n .addCase(submitMSISDNAction.pending, (state) => {\n state.currentState = { type: 'MSISDNEntry', result: RDS.Loading(), data: state.currentState.data };\n })\n .addCase(submitMSISDNAction.fulfilled, (state, action: PayloadAction<PINEntryState | MSISDNEntryState>) => {\n state.currentState = action.payload;\n })\n .addCase(submitMSISDNAction.rejected, (state, action: PayloadAction<MSISDNEntryFailure>) => {\n state.currentState = {\n type: 'MSISDNEntry',\n result: RDS.Failure(action.payload),\n data: state.currentState.data\n };\n })\n .addCase(submitPinAction.pending, (state) => {\n state.currentState = { type: 'PINEntry', result: RDS.Loading(), data: state.currentState.data };\n })\n .addCase(submitPinAction.fulfilled, (state, action: PayloadAction<PINEntryState>) => {\n state.currentState = action.payload;\n })\n .addCase(submitPinAction.rejected, (state, action: PayloadAction<PINEntryFailure>) => {\n state.currentState = { type: 'PINEntry', result: RDS.Failure(action.payload), data: state.currentState.data };\n });\n }\n});\n\nexport const { reducer: pinFlowReducer, actions: pinFlowActions } = pinFlowSlice;\n\nexport const selectPinFlowState = (state: any) => state.pinFlow;\n"],"names":["usePinFlowState","useSelector","state","pinFlow","currentState","pinFlowMatch","_a","msisdnEntry","pinEntry","type","result","data","Error","checkIsCleanTraffic","country","window","shouldBlock","triggerPin","slug","device","offer","msisdn","rockmanId","extraParams","search","uniqid","evinaTid","cleanTrafficString","extraParamsQs","concat","Object","keys","map","k","filter","Boolean","join","cleanSearchParams","params","action","offerId","rockman_id","sam_evina_tid","page","encodeURIComponent","_b","location","href","language_code","languageCode","partner_transaction_id","partner_timestamp","partner_cid","antifraud_id","antifraud_id_js_code","antifraud_id_js_link","zain_antifraud_id","korek_antifraud_id","queryString","entries","__read","key","value","host","DEV_BASE_URL","url","fetch","then","x","json","verifyPin","pin","bupperizeCountry","ClickID","antifraud_click_id","mcpShield","operator","pageUrl","ipAdd","pac_analytics","visitor","ip","URLSearchParams","__assign","toString","client_lpu","append","submitMSISDN","maybeConfig","internationalMSISDN","config","automaticallySubmitAllOperators","operators","length","submitMSISDNForMultipleOperators","submitMSISDNOnce","uniqidResult","submissionError","newExtraParams","isSkipValidation","searchObj","searchToObject","success","skip_validation","match","substr","tid","sent","error","message","includes","productUrl","product_url","console","codesWithMcpShied","kw","kw_viva","k2","k2_viva","bh","bh_viva","toLowerCase","isCallBlockApi","Empello","mcpShieldResult","warn","loadScriptInnerHtml","source","err_2","javascript","redirectUrl","redirect_to_url","userType","Promise","all","o","__awaiter","_this","singleResult","right","left","error_1","results","alreadySubscribed","find","r","every","submitPIN","hostCountry","hostSlug","emptyPinError","pinResult","errorMessage","expired_pin","insufficient_balance","pinError","async","gatewayRedirectUrl","check","response","checkSubscription","loop","checkResult","isAlreadySubscribed","mockedPINState","RDS.NothingYet","actualPIN","pinMaxLength","mockedCompletedState","RDS.Success","finalUrl","mockedMSISDNEntryFailure","RDS.Failure","errorType","defaultInitialState","initialState","pinPageEvent","Event","isPinEntryStep","ui_show_pin_entry","isShowThankYouStep","isShowCustomError","show_custom_error","msisdnError","thankYouState","initalPinEntryState","dispatchEvent","setInitialState","submitMSISDNAction","createAsyncThunk","getState","dispatch","rejectWithValue","_f","_d","strategy","_e","_c","isHeaderEnrichmentSuccess","pinFlowCurrentState","_g","getInputValuePrefix","replace","jsLinkResult","_j","_h","genericJsLinkResult","gateway","tracker","advancedInFlow","callConfirm","RDS.Loading","ex","errorMsg_1","recedeInFlow","errorMsg","msisdnSubmissionResult","_k","customEvent","storeMsisdn","catch","pinMaxLengthByOp","SA_MOBILY","SA_STC","SA_ZAIN","ex_1","setStrategyExtraData","PossibleTypes","PIN","submitPinAction","ex_2","setTimeout","backToStartAction","_","identifyStrategy","countryCodes","PS","international","normalizedCountry","toUpperCase","countryCode","pinFlowSlice","createSlice","name","reducers","extraReducers","builder","addCase","pending","fulfilled","payload","rejected","pinFlowReducer","reducer","actions"],"mappings":"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"}
1
+ {"version":3,"file":"pinFlow.js","sources":["../src/flows/pinFlow/hooks/usePinFlowState.ts","../src/flows/pinFlow/match.ts","../src/sharedApi/checkSubscription.ts","../src/flows/pinFlow/api.ts","../src/flows/pinFlow/main.ts","../src/flows/pinFlow/pinFlowSlice.ts"],"sourcesContent":["import { useSelector as IuseSelector } from 'react-redux';\nimport { RootState } from '../../../sharedFlowTypes/StrategyTypes';\n\nexport const usePinFlowState = (useSelector: typeof IuseSelector) => {\n const currentState = useSelector((state: RootState) => state.pinFlow.currentState);\n return currentState;\n};\n","import * as RDS from '../../common-types/RemoteDataState';\nimport {\n IMsisdnSumbitNextData,\n MSISDNEntryFailure,\n MSISDNEntrySuccess,\n PINEntryFailure,\n PINEntrySuccess,\n PinFlowCurrentState\n} from '../../sharedFlowTypes/PinTypes';\n\nfunction pinFlowMatch<R>({\n msisdnEntry,\n pinEntry\n}: {\n msisdnEntry: (rds: RDS.RemoteDataState<MSISDNEntryFailure, MSISDNEntrySuccess>) => R;\n pinEntry: (rds: RDS.RemoteDataState<PINEntryFailure, PINEntrySuccess>, nextData: IMsisdnSumbitNextData) => R;\n}): (state: PinFlowCurrentState) => R {\n return (state) => {\n switch (state.type) {\n case 'MSISDNEntry':\n return msisdnEntry(state.result);\n case 'PINEntry':\n return pinEntry(state.result, state.data);\n default:\n throw new Error('Invalid State');\n }\n };\n}\n\nexport { pinFlowMatch };\n","import { ICheckSubscriptionResult } from '../common-types/ICheckSubscriptionResult';\nimport { IHash } from '../common-types/IHash';\nimport { bupperizeCountry } from '../utilities/bupperizeCountry';\n\nconst checkSubscription = async ({\n window,\n country,\n slug,\n device,\n offer,\n rockmanId\n}: {\n window: Window;\n country: string;\n slug: string;\n device: string;\n offer: string;\n rockmanId: string;\n extraParams?: IHash; // Marked as optional if currently unused\n}): Promise<ICheckSubscriptionResult> => {\n const params = {\n action: 'check-subscription',\n country: bupperizeCountry(country),\n slug,\n device,\n offerId: offer,\n rockman_id: rockmanId\n };\n\n const queryString = Object.entries(params)\n .filter(([_, value]) => value !== undefined && value !== null)\n .map(([key, value]) => `${key}=${encodeURIComponent(value)}`)\n .join('&');\n\n const host = window.DEV_BASE_URL || '';\n const url = `${host}/tallyman/v1/?${queryString}`;\n return fetch(url).then((response) => response.json());\n};\n\nexport { checkSubscription };\n","import { IHash, IMcpShieldResult, IMSISDNSubmissionResult, IPINSubmissionResult } from '../../sharedFlowTypes/PinTypes';\nimport { bupperizeCountry } from '../../utilities/bupperizeCountry';\nimport { cleanSearchParams } from '../../utilities/cleanSearchParams';\n\nconst checkIsCleanTraffic = (country: string): string => {\n if (country === 'be') {\n if (typeof window !== 'undefined' && window.shouldBlock === true) {\n return '&is-clean-traffic=false';\n }\n return '&is-clean-traffic=true';\n }\n return '';\n};\nconst triggerPin = async ({\n window,\n country,\n slug,\n device,\n offer,\n msisdn,\n rockmanId,\n extraParams,\n search,\n uniqid,\n evinaTid\n}: {\n window?: Window;\n country: string;\n slug: string;\n device: 'smart' | 'feature';\n offer: string;\n msisdn: string;\n rockmanId: string;\n extraParams: IHash;\n search: string;\n uniqid?: string;\n evinaTid?: string;\n}): Promise<IMSISDNSubmissionResult> => {\n const cleanTrafficString = checkIsCleanTraffic(country);\n const extraParamsQs = `&${Object.keys(extraParams)\n .map((k) => (extraParams[k] ? `${k}=${extraParams[k]}` : ''))\n .filter(Boolean)\n .join('&')}`;\n\n // Remove conflicting params from url\n search = cleanSearchParams(search);\n\n // Base parameters object\n const params = {\n action: 'trigger-pin',\n country,\n slug,\n device,\n offerId: offer,\n msisdn,\n rockman_id: rockmanId,\n sam_evina_tid: evinaTid,\n page: encodeURIComponent(window?.location?.href),\n language_code: window.languageCode || '',\n partner_transaction_id: window.partner_transaction_id || '',\n partner_timestamp: window.partner_timestamp || '',\n partner_cid: window.partner_cid || '',\n uniqid: uniqid || '',\n\n antifraud_id: window.antifraud_id || '',\n // More specific antifraud IDs will eventuallly replace antifraud_id\n // https://www.notion.so/sammedia/KW-Agency-Globocom-KW-ENTERTAINMENT-STORE-GAMESOLUTELY-GLING-Landing-Page-Test-a9841b14218b42709ffb1a2d41428275?d=f2a8d09b1e8c4fd4bdab69ab5dda1f25\n antifraud_id_js_code: window.antifraud_id_js_code || '',\n antifraud_id_js_link: window.antifraud_id_js_link || '',\n zain_antifraud_id: window.zain_antifraud_id || '',\n korek_antifraud_id: window.korek_antifraud_id || ''\n };\n\n // Convert params object to query string\n const queryString = Object.entries(params)\n .filter(([_, value]) => value)\n .map(([key, value]) => `${key}=${value}`)\n .join('&');\n const host = window.DEV_BASE_URL || '';\n const url = `${host}/tallyman/v1/?${queryString}${cleanTrafficString}${extraParamsQs}${search ? `&${search}` : ''}`;\n\n return fetch(url).then((x) => x.json());\n};\n\nconst verifyPin = async ({\n window,\n country,\n slug,\n device,\n offer,\n rockmanId,\n pin,\n extraParams,\n uniqid,\n evinaTid,\n search\n}: {\n window: Window;\n country: string;\n slug: string;\n device: string;\n offer: string;\n rockmanId: string;\n pin: string;\n extraParams: IHash;\n uniqid: string;\n evinaTid: string;\n search: string;\n}): Promise<IPINSubmissionResult> => {\n const cleanTrafficString = checkIsCleanTraffic(country);\n const extraParamsQs = `&${Object.keys(extraParams)\n .map((k) => `${k}=${extraParams[k]}`)\n .join('&')}`;\n // Remove conflicting params from url\n search = cleanSearchParams(search);\n // Base parameters object\n const params = {\n action: 'verify-pin',\n country: bupperizeCountry(country),\n slug,\n device,\n offerId: offer,\n rockman_id: rockmanId,\n pin,\n page: encodeURIComponent(window?.location?.href),\n language_code: window.languageCode || '',\n ClickID: window.antifraud_click_id || '',\n partner_cid: window.partner_cid || '',\n sam_evina_tid: evinaTid,\n uniqid,\n // More specific antifraud IDs will eventuallly replace antifraud_id\n // https://www.notion.so/sammedia/KW-Agency-Globocom-KW-ENTERTAINMENT-STORE-GAMESOLUTELY-GLING-Landing-Page-Test-a9841b14218b42709ffb1a2d41428275?d=f2a8d09b1e8c4fd4bdab69ab5dda1f25\n antifraud_id_js_code: window.antifraud_id_js_code || '',\n antifraud_id_js_link: window.antifraud_id_js_link || '',\n zain_antifraud_id: window.zain_antifraud_id || '',\n korek_antifraud_id: window.korek_antifraud_id || ''\n };\n\n // Convert params object to query string\n const queryString = Object.entries(params)\n .filter(([_, value]) => value)\n .map(([key, value]) => `${key}=${value}`)\n .join('&');\n\n const host = window.DEV_BASE_URL || '';\n const url = `${host}/tallyman/v1/?${queryString}${cleanTrafficString}${extraParamsQs}${search ? `&${search}` : ''}`;\n\n return fetch(url).then((x) => x.json());\n};\n\nconst mcpShield = async ({\n window,\n country,\n slug,\n device,\n offer,\n rockmanId,\n operator,\n uniqid\n}: {\n window: Window;\n country: string;\n slug: string;\n device: string;\n offer: string;\n rockmanId: string;\n operator?: string;\n uniqid?: string;\n}): Promise<IMcpShieldResult> => {\n const pageUrl = window.location.href;\n const ipAdd = window.pac_analytics.visitor.ip;\n\n const params = new URLSearchParams({\n action: 'mcp-shield',\n country,\n slug,\n device,\n offerId: offer.toString(),\n rockman_id: rockmanId,\n client_lpu: pageUrl,\n ...(operator && { operator }),\n ...(uniqid && { uniqid })\n });\n\n // Conditionally add client_ip if it exists\n if (ipAdd) {\n params.append('client_ip', ipAdd);\n }\n\n const host = window.DEV_BASE_URL || '';\n const url = `${host}/tallyman/v1/?${params.toString()}`;\n\n return fetch(url).then((x) => x.json());\n};\n\nexport { triggerPin, verifyPin, mcpShield };\n","import { ICheckSubscriptionResult } from '../../common-types/ICheckSubscriptionResult';\nimport { IError } from '../../common-types/IError';\nimport { checkSubscription } from '../../sharedApi/checkSubscription';\nimport {\n IHash,\n IMcpShieldResult,\n IMSISDNSubmissionResult,\n IPINSubmissionResult,\n MultiOperatorMSISDNSubmissionResult,\n SingleMSISDNSubmissionResult\n} from '../../sharedFlowTypes/PinTypes';\nimport { IConfig, IStrategyIDentifyUserResult } from '../../sharedFlowTypes/StrategyTypes';\nimport { left, loop, right } from '../../utilities/helpers';\nimport { loadScriptInnerHtml } from '../../utilities/loadScriptInnerHtml';\nimport { searchToObject } from '../../utilities/searchToObject';\nimport { mcpShield, triggerPin, verifyPin } from './api';\n\nexport default async function submitMSISDN(\n window: Window,\n maybeConfig: IConfig,\n internationalMSISDN: string,\n extraParams?: IHash\n): Promise<SingleMSISDNSubmissionResult | MultiOperatorMSISDNSubmissionResult> {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const config: IConfig = { offer: window.pac_analytics.visitor.offer, ...(maybeConfig || {}) };\n if (config.automaticallySubmitAllOperators === true && !!config.operators && config.operators.length > 0) {\n return submitMSISDNForMultipleOperators(window, config, internationalMSISDN, config.operators, extraParams);\n }\n return submitMSISDNOnce(window, config, internationalMSISDN, extraParams);\n}\n\nlet uniqidResult = '';\n// eslint-disable-next-line consistent-return\nexport async function loadMcpShield(window: Window, config: IConfig): Promise<IMcpShieldResult> {\n if (config) {\n const { slug, country, device } = config;\n\n const { offer } = window.pac_analytics.visitor;\n const { rockmanId } = window.pac_analytics.visitor;\n\n try {\n const mcpShieldResult: IMcpShieldResult = await mcpShield({ window, country, slug, device, offer, rockmanId });\n if (mcpShieldResult.success === false) {\n console.warn(mcpShieldResult.message);\n } else {\n loadScriptInnerHtml(mcpShieldResult.source);\n uniqidResult = mcpShieldResult.uniqid;\n return mcpShieldResult;\n }\n } catch (err) {\n console.warn(err);\n }\n }\n}\n\nasync function submitMSISDNOnce(\n window: Window,\n config: IConfig,\n internationalMSISDN: string,\n extraParams?: IHash\n): Promise<SingleMSISDNSubmissionResult> {\n if (!internationalMSISDN) {\n const submissionError = new Error(`Error in submitMSISDN() trigger-pin action`) as IError & { type: string };\n submissionError.type = 'InvalidMSISDN';\n throw submissionError;\n }\n const newExtraParams = extraParams || {};\n let isSkipValidation = false;\n const searchObj = searchToObject(window) as IStrategyIDentifyUserResult;\n // @ts-ignore\n if ((searchObj?.success === 'true' && searchObj['msisdn-alias'] === '1') || window.skip_validation === true) {\n // Search param is set to 1 for header enrichment when the msisdn is masked\n newExtraParams['skip-validation'] = '1';\n }\n\n if (newExtraParams['skip-validation'] === '1') {\n isSkipValidation = true;\n }\n\n const msisdn = isSkipValidation ? internationalMSISDN || window.msisdn : internationalMSISDN.match(/\\d+/gi).join(''); // tallyman API expects international msisdn without any special character\n const { rockmanId } = window.pac_analytics.visitor;\n\n const { slug, country, device, offer } = config;\n\n const search = window.location.search.substr(1) || '';\n const uniqid = !!uniqidResult && uniqidResult !== '' ? `&mcpUniqid=${uniqidResult}` : '';\n const evinaTid = typeof window !== 'undefined' && window.tid ? window.tid : '';\n\n const result: IMSISDNSubmissionResult = await triggerPin({\n window,\n country,\n slug,\n device,\n offer,\n msisdn,\n rockmanId,\n extraParams: newExtraParams,\n search,\n uniqid,\n evinaTid\n });\n\n if (result.success === false) {\n const error = new Error(`Error in submitMSISDN() trigger-pin action:\\n${result.message}`) as IError & {\n type: string;\n productUrl: string;\n };\n error.message = result.message;\n switch (true) {\n case result.message.includes('ALREADY SUBSCRIBED'):\n error.type = 'AlreadySubscribed';\n break;\n case result.message.includes('invalid'):\n error.type = 'InvalidMSISDN';\n break;\n default:\n error.type = null;\n }\n // error.type = result.message === 'ALREADY SUBSCRIBED' ? 'AlreadySubscribed' : 'InvalidMSISDN';\n error.productUrl = result.product_url ? result.product_url : '';\n console.error(error);\n throw error;\n } else {\n window.operator = result.operator; // currently used on server for KW_STC if present dont call empello for Shemaroo\n const codesWithMcpShied: { [key: string]: { [key: string]: string } } = {\n kw: {\n kw_viva: 'kw_viva'\n },\n k2: {\n k2_viva: 'k2_viva'\n },\n bh: {\n bh_viva: 'bh_viva'\n }\n };\n if (\n country &&\n result.operator &&\n ((codesWithMcpShied[country.toLowerCase()] &&\n codesWithMcpShied[country.toLowerCase()][result.operator.toLowerCase()]) ||\n country.toLowerCase() === 'iq') &&\n !window.isCallBlockApi &&\n !window.Empello // set on server https://www.notion.so/sammedia/KW-Agency-Shemaroo-STC-integration-1a114991683d4af79eb01a4d96789f30\n ) {\n try {\n const mcpShieldResult: IMcpShieldResult = await mcpShield({\n window,\n country,\n slug,\n device,\n offer,\n rockmanId,\n operator: result.operator,\n uniqid\n });\n if (mcpShieldResult.success === false) {\n console.warn(mcpShieldResult.message);\n } else {\n loadScriptInnerHtml(mcpShieldResult.source);\n uniqidResult = mcpShieldResult.uniqid;\n }\n } catch (err) {\n console.warn(err);\n }\n }\n\n if (result.javascript) {\n loadScriptInnerHtml(result.javascript);\n }\n\n return {\n type: 'SingleMSISDNSubmissionResult',\n pin: result.pin,\n uniqidResult,\n operator: result.operator,\n redirectUrl: result?.redirect_to_url, // For pin redirect empello\n ...(result?.userType ? { userType: result?.userType } : {}) // For Peru user plan if prepaid or postpaid\n };\n }\n}\n\nasync function submitMSISDNForMultipleOperators(\n window: Window,\n config: IConfig,\n internationalMSISDN: string,\n operators: string[],\n extraParams?: IHash\n): Promise<MultiOperatorMSISDNSubmissionResult> {\n const results = await Promise.all(\n operators.map(async (o) => {\n try {\n const singleResult = await submitMSISDNOnce(window, config, internationalMSISDN, {\n ...extraParams,\n operator: o\n });\n return right({ ...singleResult, operator: o });\n } catch (error) {\n return left(error);\n }\n })\n );\n\n const alreadySubscribed = results.find((r: any) => r.type === 'left' && r.value?.type === 'AlreadySubscribed');\n\n if (results.every((r) => r.type === 'left')) {\n // no submission worked\n throw results[0].value;\n } else if (alreadySubscribed) {\n throw alreadySubscribed.value;\n } else {\n return {\n type: 'MultiOperatorMSISDNSubmissionResult'\n };\n }\n}\n\nexport async function submitPIN(\n window: Window,\n pin: string,\n config: IConfig,\n extraParams: IHash\n): Promise<{ productUrl?: string; isAlreadySubscribed?: boolean; gatewayRedirectUrl?: string }> {\n if (window.hostCountry && window.hostSlug) {\n config.country = window.hostCountry;\n config.slug = window.hostSlug;\n }\n const { slug, country, device } = config;\n const { offer } = window.pac_analytics.visitor;\n\n const newExtraParams = extraParams || {};\n const searchObj = searchToObject(window) as any;\n if (searchObj?.success === 'true' && searchObj['msisdn-alias'] === '1') {\n newExtraParams['skip-validation'] = '1';\n }\n\n const { rockmanId } = window.pac_analytics.visitor;\n\n if (!pin) {\n const emptyPinError = new Error(`Error in submitMSISDN() verify-pin action:\\n Pin Cannot Be Empty`) as IError & {\n type: string;\n };\n emptyPinError.type = 'InvalidPIN';\n throw emptyPinError;\n }\n const uniqid = uniqidResult !== '' ? `&mcpUniqid=${uniqidResult}` : '';\n const evinaTid = typeof window !== 'undefined' && window.tid ? window.tid : '';\n const search = window.location.search.substr(1) || '';\n\n const pinResult: IPINSubmissionResult = await verifyPin({\n window,\n country,\n slug,\n device,\n offer,\n rockmanId,\n pin,\n extraParams: newExtraParams,\n uniqid,\n evinaTid,\n search\n });\n if (pinResult.success === false) {\n const pinErrorTypeMap: { [key: string]: string } = {\n 'pin does not match': 'InvalidPIN',\n 'mcp blocked': 'SessionBlocked',\n expired_pin: 'ExpiredPIN',\n insufficient_balance: 'InsufficientBalance'\n };\n const errorMessage = pinErrorTypeMap[pinResult.message as string];\n const pinError = new Error(`Error in submitMSISDN() verify-pin action:\\n${errorMessage}`) as IError & {\n type: string;\n };\n pinError.type = errorMessage || 'InvalidPIN';\n pinError.message = pinResult.message;\n console.error(pinError);\n throw pinError;\n } else if (pinResult.async === true) {\n // Needed for ES https://www.notion.so/sammedia/ES-OnMobile-Movistar-Direct-Ouisys-Integration-XR-Academy-ca60b176b0ea40a7b170e5d9e7deb491\n if (pinResult.product_url && pinResult.product_url !== '' && country?.toLowerCase() === 'es') {\n return { gatewayRedirectUrl: pinResult.product_url };\n }\n const check: () => Promise<ICheckSubscriptionResult> = () =>\n checkSubscription({ window, country, slug, device, offer, rockmanId, extraParams });\n\n const checkResult: ICheckSubscriptionResult = await loop(\n check,\n 100,\n (r) => r.success || r.message === 'invalid_pin',\n 0\n );\n if (checkResult.success === true) {\n const isAlreadySubscribed = pinResult.message === 'ALREADY SUBSCRIBED';\n return { productUrl: checkResult.product_url || null, isAlreadySubscribed };\n }\n const pinError = new Error(`Error in submitMSISDN() verify-pin action:\\n${checkResult.message}`) as IError & {\n type: string;\n };\n pinError.type = 'InvalidPIN';\n pinError.message = checkResult.message;\n\n throw pinError;\n } else {\n const isAlreadySubscribed = pinResult.message === 'ALREADY SUBSCRIBED';\n return { productUrl: pinResult.product_url || null, isAlreadySubscribed };\n }\n}\n","import { createAsyncThunk, createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport * as RDS from '../../common-types/RemoteDataState';\nimport {\n IHash,\n MSISDNEntryErrorTypes,\n MSISDNEntryFailure,\n MSISDNEntryState,\n MSISDNEntrySuccess,\n PINEntryErrorTypes,\n PINEntryFailure,\n PINEntryState,\n PINEntrySuccess,\n PinFlowState\n} from '../../sharedFlowTypes/PinTypes';\nimport { IMockFlowParams, PossibleTypes, RootState } from '../../sharedFlowTypes/StrategyTypes';\nimport { searchToObject } from '../../utilities/searchToObject';\nimport { storeMsisdn } from '../../utilities/storeMsisdn';\nimport { tracker } from '../../utilities/tracker';\nimport { identifyStrategy, setStrategyExtraData } from '../strategy/strategySlice';\nimport submitMSISDN, { submitPIN } from './main';\n\nconst mockedPINState: PinFlowState = {\n currentState: {\n type: 'PINEntry',\n result: RDS.NothingYet<PINEntryFailure, PINEntrySuccess>(),\n data: {\n actualPIN: '',\n msisdn: '',\n operator: '',\n pinMaxLength: 4\n }\n }\n};\n\nconst mockedCompletedState: PinFlowState = {\n currentState: {\n type: 'PINEntry',\n result: RDS.Success<PINEntryFailure, PINEntrySuccess>({ finalUrl: '/product' }),\n data: {\n actualPIN: '',\n msisdn: '',\n operator: '',\n pinMaxLength: 4\n }\n }\n};\n\nconst mockedMSISDNEntryFailure: PinFlowState = {\n currentState: {\n type: 'MSISDNEntry',\n result: RDS.Failure<MSISDNEntryFailure, MSISDNEntrySuccess>({\n errorType: 'InvalidMSISDN',\n error: 'Invalid Mobile Number'\n })\n }\n};\n\n// Define the initial state\nconst defaultInitialState: PinFlowState = {\n currentState: {\n type: 'MSISDNEntry',\n result: RDS.NothingYet()\n }\n};\n\n/**\n * Sets the initial state of the pin flow based on the search parameters in the URL or the default state.\n *\n * @param {Window} window - The window object.\n * @return {PinFlowState} The initial state of the pin flow.\n */\nconst setInitialState = (window: Window) => {\n const search = searchToObject(window) as IMockFlowParams<any>;\n const pinPageEvent = new Event('onPinPage');\n const isPinEntryStep =\n (search.ui_show_pin_entry && search.ui_show_pin_entry === '1') ||\n (search['show-pin-entry'] && search['show-pin-entry'] === '1');\n const isShowThankYouStep = search['show-thank-you'] && search['show-thank-you'] === '1';\n const isShowCustomError = search?.show_custom_error === '1';\n\n const msisdnError: PinFlowState = {\n currentState: {\n type: 'MSISDNEntry',\n result: RDS.Failure<MSISDNEntryFailure, MSISDNEntrySuccess>({\n errorType: 'SomethingWentWrong',\n error: null\n })\n }\n };\n\n const thankYouState: PinFlowState = {\n currentState: {\n type: 'PINEntry',\n result: RDS.Success<PINEntryFailure, PINEntrySuccess>({\n finalUrl: search?.product_url || ''\n }),\n // @ts-ignore\n data: {\n msisdn: search?.msisdn || '',\n operator: search?.operator || ''\n }\n }\n };\n\n const initalPinEntryState: PinFlowState = {\n currentState: {\n type: 'PINEntry',\n result: RDS.NothingYet(),\n // @ts-ignore\n data: {\n msisdn: search?.msisdn || '',\n operator: search?.operator || ''\n }\n }\n };\n if (isPinEntryStep) {\n // Needed for shemroo the handler is injected on server\n window?.dispatchEvent(pinPageEvent);\n return initalPinEntryState;\n }\n if (isShowThankYouStep) {\n return thankYouState;\n }\n if (isShowCustomError) {\n return msisdnError;\n }\n\n if (search['mock-flow']) {\n switch (search['current-state']) {\n case 'msisdn-failure-state':\n return mockedMSISDNEntryFailure;\n case 'pin-state':\n // Needed for shemroo the handler is injected on server\n window?.dispatchEvent(pinPageEvent);\n return mockedPINState;\n case 'completed-state':\n return mockedCompletedState;\n default:\n console.error('Mock Flow not supported');\n return defaultInitialState;\n }\n } else {\n return defaultInitialState;\n }\n};\n\nconst initialState = setInitialState(window);\n\n/**\n * submitMSISDNAction\n * @returns {type: ' 'pinFlow/submitMSISDNAction', payload: {type: PossibleTypes.MO, result: PINEntryState}}\n \n * Calls trigger-pin api that sends a pin to the user\n * Sets state to show pin entry\n */\ninterface SubmitMSISDNArgs {\n window: Window;\n msisdn: string;\n extraParams?: IHash;\n}\nexport const submitMSISDNAction = createAsyncThunk<\n PINEntryState | MSISDNEntryState,\n SubmitMSISDNArgs,\n {\n rejectValue: MSISDNEntryFailure; // Type for rejectWithValue\n }\n>('pinFlow/submitMSISDNAction', async ({ window, msisdn, extraParams }, { getState, dispatch, rejectWithValue }) => {\n const state: RootState = getState();\n if (!state?.strategy?.currentState?.data?.config) {\n return rejectWithValue({\n errorType: 'UnexpectedState'\n });\n }\n const { config, isHeaderEnrichmentSuccess } = state.strategy.currentState.data;\n const pinFlowCurrentState = state.pinFlow?.currentState;\n try {\n /**\n * Palestine calling code is +970\n * But there was a request to have it as +972 only for gateway shemaroo\n */\n // Start PS Calling code temp fix\n if (config?.country.toLowerCase() === 'ps' && config?.slug.includes('shemaroo')) {\n const prefix = getInputValuePrefix(config?.country, msisdn);\n if (prefix === '+970') {\n msisdn = msisdn.replace('970', '972');\n }\n }\n // END PS Calling code temp fix\n\n const jsLinkResult = window?.pac_analytics?.visitor?.genericJsLinkResult;\n\n // If the flow is TPAY the above trigger pin will only do tracking on the backend and not actually request a pin from gateway\n // The code below handles that request\n if (jsLinkResult?.gateway === 'tpay') {\n tracker.advancedInFlow('tallyman.v1-pin', 'msisdn-submitted', { msisdn });\n submitMSISDN(window, config, msisdn); // trigger pin call requested here by Adrian for BE tracking\n window.msisdn = msisdn;\n if (window.callConfirm) {\n try {\n window.callConfirm();\n return {\n ...pinFlowCurrentState,\n type: 'MSISDNEntry',\n result: RDS.Loading()\n };\n } catch (ex) {\n // Catch any unexpected errors\n const errorMsg = 'Confirm function not found';\n tracker.recedeInFlow('tallyman.v1-pin', 'msisdn-submission-failure', {\n msisdn,\n errorType: 'TPayUnknownError',\n error: ex?.toString() || 'Error calling window.callConfirm function',\n message: ex.message\n });\n return rejectWithValue({\n errorType: 'TPayUnknownError',\n error: errorMsg,\n message: errorMsg\n });\n }\n }\n // Catch any unexpected errors\n const errorMsg = 'Confirm function not found';\n tracker.recedeInFlow('tallyman.v1-pin', 'msisdn-submission-failure', {\n msisdn,\n errorType: 'TPayUnknownError',\n error: errorMsg,\n message: errorMsg\n });\n return rejectWithValue({\n errorType: 'TPayUnknownError',\n error: errorMsg,\n message: errorMsg\n });\n\n // END TPAY TRIGGER PIN\n }\n\n // Start Trigger Pin\n tracker.advancedInFlow('tallyman.v1-pin', 'msisdn-submitted', { msisdn });\n const msisdnSubmissionResult = await submitMSISDN(window, config, msisdn);\n tracker.advancedInFlow('tallyman.v1-pin', 'msisdn-submission-success', { msisdn });\n // End Trigger Pin\n\n /**\n * Some flows require us to redirect to a url after trigger pin to check for fraud\n * The url will then do some processing and return back to ouisys with\n * extra param in the url that will tell us to show pin entry step or error\n */\n\n // Start Pin Redirect\n if (msisdnSubmissionResult.type === 'SingleMSISDNSubmissionResult' && msisdnSubmissionResult.redirectUrl) {\n tracker.advancedInFlow('tallyman.v1-pin', 'msisdn-submission-success', { msisdn });\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-redirect', {\n redirectUrl: msisdnSubmissionResult.redirectUrl\n });\n window.location.href = msisdnSubmissionResult.redirectUrl;\n }\n // End Pin Redirect\n\n // Start handle store msisdn\n if (extraParams && extraParams.storeMsisdn && extraParams.storeMsisdn === 'true') {\n await storeMsisdn(msisdn)\n .then((data: any) => {\n if (data && data.data && data.data.success) {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-success');\n } else {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-failed');\n }\n })\n .catch((error) => {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-error', error);\n });\n }\n // End handle store msisdn\n\n const operator: string =\n msisdnSubmissionResult.type === 'SingleMSISDNSubmissionResult' ? msisdnSubmissionResult.operator : '';\n\n const pinMaxLengthByOp: { [key: string]: number } = {\n SA_MOBILY: 6,\n SA_STC: 4,\n SA_ZAIN: 4\n };\n\n /**\n * onPinPage\n * some scripts on the server need to be injected on pin page/view\n * This event will be handled on server\n */\n const pinPageEvent = new Event('onPinPage');\n window?.dispatchEvent(pinPageEvent);\n\n return {\n ...pinFlowCurrentState,\n type: 'PINEntry',\n result: RDS.NothingYet(),\n data: {\n actualPIN: msisdnSubmissionResult.type === 'SingleMSISDNSubmissionResult' ? msisdnSubmissionResult.pin : null,\n msisdn,\n operator,\n pinMaxLength: operator !== '' && pinMaxLengthByOp[operator] ? pinMaxLengthByOp[operator] : null,\n isHeaderEnrichmentSuccess,\n ...(msisdnSubmissionResult.type === 'SingleMSISDNSubmissionResult' && msisdnSubmissionResult?.userType\n ? { userType: msisdnSubmissionResult.userType }\n : {})\n }\n };\n // END NORMAL TRIGGER PIN\n } catch (ex) {\n console.warn(ex);\n let errorType: MSISDNEntryErrorTypes;\n switch (ex.type) {\n case 'AlreadySubscribed':\n errorType = 'AlreadySubscribed';\n break;\n case 'InvalidMSISDN':\n errorType = 'InvalidMSISDN';\n break;\n default:\n errorType = 'UnknownError';\n }\n\n tracker.recedeInFlow('tallyman.v1-pin', 'msisdn-submission-failure', {\n msisdn,\n errorType,\n error: ex.toString(),\n message: ex.message,\n productUrl: ex.productUrl\n });\n\n if (isHeaderEnrichmentSuccess) {\n dispatch(\n setStrategyExtraData({\n type: PossibleTypes.PIN,\n data: {\n isHeaderEnrichmentSuccess: false,\n config\n }\n })\n );\n }\n\n return rejectWithValue({\n errorType,\n error: ex.toString(),\n message: ex.message,\n productUrl: ex.productUrl\n });\n }\n});\n\n/**\n * submitPinAction\n * @returns {type: ' 'pinFlow/submitMSISDNAction', payload: {type: 'PINEntry', result: RDS.NothingYet()}}\n \n * Calls verify-pin api that check if the user enters a valid pin\n * Sets state to show thank you page if pin is valid\n */\ninterface SubmitPINArgs {\n window: Window;\n msisdn: string;\n pin: string;\n extraParams?: IHash;\n}\n\nexport const submitPinAction = createAsyncThunk<\n PINEntryState,\n SubmitPINArgs,\n {\n rejectValue: PINEntryFailure; // Type for rejectWithValue\n }\n>('pinFlow/submitPinAction', async ({ window, msisdn, pin, extraParams }, { getState, rejectWithValue }) => {\n const state: RootState = getState();\n\n if (!state?.strategy?.currentState?.data?.config) {\n return rejectWithValue({\n errorType: 'UnexpectedState'\n });\n }\n const { config } = state.strategy.currentState.data;\n const pinFlowCurrentState = state.pinFlow?.currentState;\n try {\n tracker.advancedInFlow('tallyman.v1-pin', 'pin-submitted', { msisdn, pin });\n const result = await submitPIN(window, pin, config, extraParams);\n tracker.advancedInFlow('tallyman.v1-pin', 'pin-submission-success', {\n msisdn,\n pin,\n finalUrl: result.productUrl\n });\n\n /**\n * Gateway redirect\n * Value returned in this case is actually the gateway url instead of the product url\n * More details on this ticket:\n * https://www.notion.so/sammedia/ES-OnMobile-Movistar-Direct-Ouisys-Integration-XR-Academy-ca60b176b0ea40a7b170e5d9e7deb491\n */\n // Start Gateway redirect\n if (result.gatewayRedirectUrl && result.gatewayRedirectUrl !== '') {\n tracker.advancedInFlow('tallyman.v1-pin', 'gateway-redirect', {\n msisdn,\n pin,\n gatewayRedirectUrl: result.gatewayRedirectUrl\n });\n window.location.href = result.gatewayRedirectUrl;\n }\n // End Gateway redirect\n\n // if storeMsisdn is true, encrypt msisdn and save it in cookie, localStorage, and zürch\n if (extraParams && extraParams.storeMsisdn && extraParams.storeMsisdn === 'true') {\n await storeMsisdn(msisdn)\n .then((data: any) => {\n if (data && data.data && data.data.success) {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-success');\n } else {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-failed');\n }\n })\n .catch((error) => {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-error', error);\n });\n }\n // End store msisdn\n\n return {\n ...pinFlowCurrentState,\n type: 'PINEntry',\n result: RDS.Success<PINEntryFailure, PINEntrySuccess>({\n finalUrl: result.productUrl,\n isAlreadySubscribed: result.isAlreadySubscribed || false\n })\n };\n } catch (ex) {\n console.warn(ex);\n let errorType: PINEntryErrorTypes;\n switch (ex.type) {\n case 'AlreadySubscribed':\n errorType = 'AlreadySubscribed';\n break;\n case 'InvalidPIN':\n errorType = 'InvalidPIN';\n break;\n case 'SessionBlocked':\n errorType = 'SessionBlocked';\n break;\n case 'ExpiredPIN':\n errorType = 'ExpiredPIN';\n break;\n case 'InsufficientBalance':\n errorType = 'InsufficientBalance';\n break;\n default:\n errorType = 'UnknownError';\n break;\n }\n tracker.recedeInFlow('tallyman.v1-pin', 'pin-submission-failure', {\n msisdn,\n pin,\n errorType,\n error: ex.toString(),\n message: ex.message,\n productUrl: ex.productUrl\n });\n // Redirect to the product url if returned in the exception\n setTimeout(() => {\n if (ex.productUrl) {\n window.location.href = ex.productUrl;\n }\n }, 0);\n\n return rejectWithValue({\n errorType,\n error: ex.toString(),\n message: ex.message,\n productUrl: ex.productUrl\n });\n }\n});\n\nexport const backToStartAction = createAsyncThunk<\n any,\n any,\n {\n rejectValue: any; // Type for rejectWithValue\n }\n>('pinFlow/backToStartAction', async (_, { dispatch, rejectWithValue }) => {\n try {\n tracker.recedeInFlow('tallyman.v1-pin', 'pin-state', 'requested to change phone number');\n dispatch(identifyStrategy());\n } catch (ex) {\n console.warn(ex);\n return rejectWithValue({\n errorType: 'UnexpectedState'\n });\n }\n});\n\ntype CountryCodeMap = { [country: string]: string };\n\nconst countryCodes: CountryCodeMap = {\n PS: '970'\n // Add other countries and codes here\n};\n\nconst getInputValuePrefix = (country: string, international: string): string => {\n if (!country || !international) return '';\n\n // Convert the country to uppercase and retrieve the country code\n const normalizedCountry = country.toUpperCase();\n const countryCode = countryCodes[normalizedCountry];\n\n // Check if the country code exists in the mapping\n if (!countryCode) {\n console.error('Country code not found for', country);\n return '';\n }\n\n return `+${countryCode}`;\n};\n\n// Define your slice\nconst pinFlowSlice = createSlice({\n name: 'pinFlow',\n initialState,\n reducers: {},\n extraReducers: (builder) => {\n builder\n .addCase(submitMSISDNAction.pending, (state) => {\n state.currentState = { type: 'MSISDNEntry', result: RDS.Loading(), data: state.currentState.data };\n })\n .addCase(submitMSISDNAction.fulfilled, (state, action: PayloadAction<PINEntryState | MSISDNEntryState>) => {\n state.currentState = action.payload;\n })\n .addCase(submitMSISDNAction.rejected, (state, action: PayloadAction<MSISDNEntryFailure>) => {\n state.currentState = {\n type: 'MSISDNEntry',\n result: RDS.Failure(action.payload),\n data: state.currentState.data\n };\n })\n .addCase(submitPinAction.pending, (state) => {\n state.currentState = { type: 'PINEntry', result: RDS.Loading(), data: state.currentState.data };\n })\n .addCase(submitPinAction.fulfilled, (state, action: PayloadAction<PINEntryState>) => {\n state.currentState = action.payload;\n })\n .addCase(submitPinAction.rejected, (state, action: PayloadAction<PINEntryFailure>) => {\n state.currentState = { type: 'PINEntry', result: RDS.Failure(action.payload), data: state.currentState.data };\n });\n }\n});\n\nexport const { reducer: pinFlowReducer, actions: pinFlowActions } = pinFlowSlice;\n\nexport const selectPinFlowState = (state: any) => state.pinFlow;\n"],"names":["usePinFlowState","useSelector","state","pinFlow","currentState","pinFlowMatch","_a","msisdnEntry","pinEntry","type","result","data","Error","checkIsCleanTraffic","country","window","shouldBlock","triggerPin","slug","device","offer","msisdn","rockmanId","extraParams","search","uniqid","evinaTid","cleanTrafficString","extraParamsQs","concat","Object","keys","map","k","filter","Boolean","join","cleanSearchParams","params","action","offerId","rockman_id","sam_evina_tid","page","encodeURIComponent","_b","location","href","language_code","languageCode","partner_transaction_id","partner_timestamp","partner_cid","antifraud_id","antifraud_id_js_code","antifraud_id_js_link","zain_antifraud_id","korek_antifraud_id","queryString","entries","__read","key","value","host","DEV_BASE_URL","url","fetch","then","x","json","verifyPin","pin","bupperizeCountry","ClickID","antifraud_click_id","mcpShield","operator","pageUrl","ipAdd","pac_analytics","visitor","ip","URLSearchParams","__assign","toString","client_lpu","append","submitMSISDN","maybeConfig","internationalMSISDN","config","automaticallySubmitAllOperators","operators","length","submitMSISDNForMultipleOperators","submitMSISDNOnce","uniqidResult","submissionError","newExtraParams","isSkipValidation","searchObj","searchToObject","success","skip_validation","match","substr","tid","sent","error","message","includes","productUrl","product_url","console","codesWithMcpShied","kw","kw_viva","k2","k2_viva","bh","bh_viva","toLowerCase","isCallBlockApi","Empello","mcpShieldResult","warn","loadScriptInnerHtml","source","err_2","javascript","redirectUrl","redirect_to_url","userType","Promise","all","o","__awaiter","_this","singleResult","right","left","error_1","results","alreadySubscribed","find","r","every","submitPIN","hostCountry","hostSlug","emptyPinError","pinResult","errorMessage","expired_pin","insufficient_balance","pinError","async","gatewayRedirectUrl","check","response","checkSubscription","loop","checkResult","isAlreadySubscribed","mockedPINState","RDS.NothingYet","actualPIN","pinMaxLength","mockedCompletedState","RDS.Success","finalUrl","mockedMSISDNEntryFailure","RDS.Failure","errorType","defaultInitialState","initialState","pinPageEvent","Event","isPinEntryStep","ui_show_pin_entry","isShowThankYouStep","isShowCustomError","show_custom_error","msisdnError","thankYouState","initalPinEntryState","dispatchEvent","setInitialState","submitMSISDNAction","createAsyncThunk","getState","dispatch","rejectWithValue","_f","_d","strategy","_e","_c","isHeaderEnrichmentSuccess","pinFlowCurrentState","_g","getInputValuePrefix","replace","jsLinkResult","_j","_h","genericJsLinkResult","gateway","tracker","advancedInFlow","callConfirm","RDS.Loading","ex","errorMsg_1","recedeInFlow","errorMsg","msisdnSubmissionResult","_k","customEvent","storeMsisdn","catch","pinMaxLengthByOp","SA_MOBILY","SA_STC","SA_ZAIN","ex_1","setStrategyExtraData","PossibleTypes","PIN","submitPinAction","ex_2","setTimeout","backToStartAction","_","identifyStrategy","countryCodes","PS","international","normalizedCountry","toUpperCase","countryCode","pinFlowSlice","createSlice","name","reducers","extraReducers","builder","addCase","pending","fulfilled","payload","rejected","pinFlowReducer","reducer","actions"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ouisys-engine",
3
- "version": "5.0.94",
3
+ "version": "5.0.96",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "directories": "dist dev-tools",