ouisys-engine 5.0.96 → 5.0.98

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/moFlow.js CHANGED
@@ -1,2 +1,2 @@
1
- import{__awaiter as t,__generator as r,__read as e,__assign as n}from"tslib";import{createAsyncThunk as o,createSlice as a}from"@reduxjs/toolkit";import{S as i,L as s,F as c,N as u}from"./RemoteDataState-lcf8PfJd.js";import{searchToObject as d}from"./searchToObject.js";import{s as l}from"./storeMsisdn-Cjq8_qYH.js";import{t as m}from"./tracker-DaaILhEr.js";import{c as f}from"./cleanSearchParams-Dl7ZDlew.js";import{i as v}from"./strategySlice-JTBaGYpl.js";import"pacman-client";import"uuid";import"./getConfig.js";import"./formatNumberToE164-Bd0VHMHJ.js";import"./api-CqJrSvqq.js";var p=function(t){return t((function(t){return t.moFlow.currentState}))};function y(t){var r=t.msisdnEntry;return function(t){return t.type,r(t.result)}}var S=function(n){var o=n.window,a=n.slug,i=n.country,s=n.msisdn,c=n.device,u=n.offer,d=n.rockmanId,l=n.extraParamsQs,m=n.search;return t(void 0,void 0,void 0,(function(){var t,n,v,p,y,S,h;return r(this,(function(r){switch(r.label){case 0:return o.api_ajax_url?[4,fetch(o.api_ajax_url).then((function(t){return t.json()}))]:[3,2];case 1:return n=r.sent(),[3,3];case 2:n=null,r.label=3;case 3:return t=n,m=f(m),v={action:"trigger-message",slug:a,country:i,msisdn:s,device:c,offerId:u,rockman_id:d,page:encodeURIComponent(null===(h=null==o?void 0:o.location)||void 0===h?void 0:h.href),sam_g_token:o.reCaptchaToken||"",language_code:o.languageCode||"",partner_form_action:(null==t?void 0:t.form_action)?encodeURIComponent(null==t?void 0:t.form_action):"",antifraud_id:o.antifraud_id||"",antifraud_id_js_code:o.antifraud_id_js_code||"",antifraud_id_js_link:o.antifraud_id_js_link||""},p=Object.entries(v).filter((function(t){var r=e(t,2);return r[0],r[1]})).map((function(t){var r=e(t,2),n=r[0],o=r[1];return"".concat(n,"=").concat(o)})).join("&"),y=o.DEV_BASE_URL||"",S="".concat(y,"/tallyman/v1/?").concat(p).concat(m?"&".concat(m):"","&").concat(l),[2,fetch(S).then((function(t){return t.json()}))]}}))}))};function h(e,o,a,i){var s,c;return t(this,void 0,void 0,(function(){var t;return r(this,(function(r){return t=n(n({},o||{}),{offer:null===(c=null===(s=e.pac_analytics)||void 0===s?void 0:s.visitor)||void 0===c?void 0:c.offer}),[2,w(e,t,a,i)]}))}))}function w(e,o,a,i){var s;return t(this,void 0,void 0,(function(){var t,c,u,d,l,m,f,v,p,y,h;return r(this,(function(r){switch(r.label){case 0:return t=o.slug,c=o.country,u=o.device,d=o.offer,l=e.location.search.substr(1)||"",m=i?"&".concat(Object.keys(i).map((function(t){return"".concat(t,"=").concat(i[t])})).join("&")):"",f=(null===(s=a.match(/\d+/gi))||void 0===s?void 0:s.join(""))||"",v=e.pac_analytics.visitor.rockmanId,[4,S({window:e,slug:t,country:c,msisdn:f,device:u,offer:d,rockmanId:v,search:l,extraParamsQs:m})];case 1:if(!1===(p=r.sent()).success)throw y="ALREADY SUBSCRIBED"===p.message?"AlreadySubscribed":"InvalidMSISDN",(h=new Error("".concat(y,":\n").concat(p.message))).type=y,h.productUrl=p.product_url?p.product_url:"",console.error(h),h;return[2,n(n({},p),{keyword:p.displayKeyword})]}}))}))}var _={currentState:{type:"MSISDNEntry",result:i({keyword:"TEST OK",shortcode:"777"})}},b={currentState:{type:"MSISDNEntry",result:c({errorType:"InvalidMSISDN",error:"Invalid Mobile Number"})}},j={currentState:{type:"MSISDNEntry",result:u()}},I=function(t){var r=d(t);if(!r["mock-flow"])return j;switch(r["current-state"]){case"msisdn-entry-failure-state":return b;case"msisdn-entry-success-state":return _;default:return console.error("Mock Flow not supported"),j}}(window),g=o("moFlow/submitMSISDNAction",(function(e,o){var a=e.window,s=e.msisdn,c=e.extraParams,u=o.getState,d=o.rejectWithValue;return t(void 0,void 0,void 0,(function(){var t,e,o,f,v,p,y,S;return r(this,(function(r){switch(r.label){case 0:if(t=u(),!(null===(S=null===(y=null===(p=null==t?void 0:t.strategy)||void 0===p?void 0:p.currentState)||void 0===y?void 0:y.data)||void 0===S?void 0:S.config))return[2,d({errorType:"UnexpectedState"})];e=t.strategy.currentState.data.config,r.label=1;case 1:return r.trys.push([1,5,,6]),m.advancedInFlow("tallyman.v1-mo","msisdn-submitted",{msisdn:s}),[4,h(a,e,s,c)];case 2:return o=r.sent(),m.advancedInFlow("tallyman.v1-mo","msisdn-submission-success",{msisdn:s}),c&&c.storeMsisdn&&"true"===c.storeMsisdn?[4,l(s).then((function(t){t&&t.data&&t.data.success?m.customEvent("Flow","advance-auto","msisdn-stored-success"):m.customEvent("Flow","advance-auto","msisdn-stored-failed")})).catch((function(t){m.customEvent("Flow","advance-auto","msisdn-stored-error",t)}))]:[3,4];case 3:r.sent(),r.label=4;case 4:return[2,{type:"MSISDNEntry",result:i(n({},o))}];case 5:switch(f=r.sent(),console.warn(f),v=void 0,f.type){case"AlreadySubscribed":v="AlreadySubscribed";break;case"InvalidMSISDN":v="InvalidMSISDN";break;default:v="UnknownError"}return m.recedeInFlow("tallyman.v1-mo","msisdn-submission-failure",{msisdn:s,errorType:v||"UnknownError"}),[2,d({errorType:v,productUrl:f.productUrl})];case 6:return[2]}}))}))})),k=o("moFlow/backToStartAction",(function(e,n){var o=n.dispatch,a=n.rejectWithValue;return t(void 0,void 0,void 0,(function(){return r(this,(function(t){try{m.recedeInFlow("tallyman.v1-mo","mo-state","requested to change phone number"),o(v())}catch(t){return console.warn(t),[2,a({errorType:"UnexpectedState"})]}return[2]}))}))})),E=a({name:"moFlow",initialState:I,reducers:{},extraReducers:function(t){t.addCase(g.pending,(function(t){t.currentState={type:"MSISDNEntry",result:s()}})).addCase(g.fulfilled,(function(t,r){t.currentState=r.payload})).addCase(g.rejected,(function(t,r){t.currentState={type:"MSISDNEntry",result:c(r.payload)}}))}}),M=E.reducer;E.actions;export{k as backToStartAction,y as moFlowMatch,M as moFlowReducer,g as submitMSISDNAction,p as useMoFlowState};
1
+ import{__awaiter as t,__generator as r,__read as e,__assign as n}from"tslib";import{createAsyncThunk as o,createSlice as a}from"@reduxjs/toolkit";import{S as i,L as s,F as c,N as u}from"./RemoteDataState-lcf8PfJd.js";import{searchToObject as d}from"./searchToObject.js";import{s as l}from"./storeMsisdn-Cjq8_qYH.js";import{t as m}from"./tracker-DaaILhEr.js";import{c as f}from"./cleanSearchParams-Dl7ZDlew.js";import{i as v}from"./strategySlice-BCQi9dgQ.js";import"pacman-client";import"uuid";import"./getConfig.js";import"./formatNumberToE164-Bd0VHMHJ.js";import"./api-CqJrSvqq.js";var p=function(t){return t((function(t){return t.moFlow.currentState}))};function y(t){var r=t.msisdnEntry;return function(t){return t.type,r(t.result)}}var S=function(n){var o=n.window,a=n.slug,i=n.country,s=n.msisdn,c=n.device,u=n.offer,d=n.rockmanId,l=n.extraParamsQs,m=n.search;return t(void 0,void 0,void 0,(function(){var t,n,v,p,y,S,h;return r(this,(function(r){switch(r.label){case 0:return o.api_ajax_url?[4,fetch(o.api_ajax_url).then((function(t){return t.json()}))]:[3,2];case 1:return n=r.sent(),[3,3];case 2:n=null,r.label=3;case 3:return t=n,m=f(m),v={action:"trigger-message",slug:a,country:i,msisdn:s,device:c,offerId:u,rockman_id:d,page:encodeURIComponent(null===(h=null==o?void 0:o.location)||void 0===h?void 0:h.href),sam_g_token:o.reCaptchaToken||"",language_code:o.languageCode||"",partner_form_action:(null==t?void 0:t.form_action)?encodeURIComponent(null==t?void 0:t.form_action):"",antifraud_id:o.antifraud_id||"",antifraud_id_js_code:o.antifraud_id_js_code||"",antifraud_id_js_link:o.antifraud_id_js_link||""},p=Object.entries(v).filter((function(t){var r=e(t,2);return r[0],r[1]})).map((function(t){var r=e(t,2),n=r[0],o=r[1];return"".concat(n,"=").concat(o)})).join("&"),y=o.DEV_BASE_URL||"",S="".concat(y,"/tallyman/v1/?").concat(p).concat(m?"&".concat(m):"","&").concat(l),[2,fetch(S).then((function(t){return t.json()}))]}}))}))};function h(e,o,a,i){var s,c;return t(this,void 0,void 0,(function(){var t;return r(this,(function(r){return t=n(n({},o||{}),{offer:null===(c=null===(s=e.pac_analytics)||void 0===s?void 0:s.visitor)||void 0===c?void 0:c.offer}),[2,w(e,t,a,i)]}))}))}function w(e,o,a,i){var s;return t(this,void 0,void 0,(function(){var t,c,u,d,l,m,f,v,p,y,h;return r(this,(function(r){switch(r.label){case 0:return t=o.slug,c=o.country,u=o.device,d=o.offer,l=e.location.search.substr(1)||"",m=i?"&".concat(Object.keys(i).map((function(t){return"".concat(t,"=").concat(i[t])})).join("&")):"",f=(null===(s=a.match(/\d+/gi))||void 0===s?void 0:s.join(""))||"",v=e.pac_analytics.visitor.rockmanId,[4,S({window:e,slug:t,country:c,msisdn:f,device:u,offer:d,rockmanId:v,search:l,extraParamsQs:m})];case 1:if(!1===(p=r.sent()).success)throw y="ALREADY SUBSCRIBED"===p.message?"AlreadySubscribed":"InvalidMSISDN",(h=new Error("".concat(y,":\n").concat(p.message))).type=y,h.productUrl=p.product_url?p.product_url:"",console.error(h),h;return[2,n(n({},p),{keyword:p.displayKeyword})]}}))}))}var _={currentState:{type:"MSISDNEntry",result:i({keyword:"TEST OK",shortcode:"777"})}},b={currentState:{type:"MSISDNEntry",result:c({errorType:"InvalidMSISDN",error:"Invalid Mobile Number"})}},j={currentState:{type:"MSISDNEntry",result:u()}},I=function(t){var r=d(t);if(!r["mock-flow"])return j;switch(r["current-state"]){case"msisdn-entry-failure-state":return b;case"msisdn-entry-success-state":return _;default:return console.error("Mock Flow not supported"),j}}(window),g=o("moFlow/submitMSISDNAction",(function(e,o){var a=e.window,s=e.msisdn,c=e.extraParams,u=o.getState,d=o.rejectWithValue;return t(void 0,void 0,void 0,(function(){var t,e,o,f,v,p,y,S;return r(this,(function(r){switch(r.label){case 0:if(t=u(),!(null===(S=null===(y=null===(p=null==t?void 0:t.strategy)||void 0===p?void 0:p.currentState)||void 0===y?void 0:y.data)||void 0===S?void 0:S.config))return[2,d({errorType:"UnexpectedState"})];e=t.strategy.currentState.data.config,r.label=1;case 1:return r.trys.push([1,5,,6]),m.advancedInFlow("tallyman.v1-mo","msisdn-submitted",{msisdn:s}),[4,h(a,e,s,c)];case 2:return o=r.sent(),m.advancedInFlow("tallyman.v1-mo","msisdn-submission-success",{msisdn:s}),c&&c.storeMsisdn&&"true"===c.storeMsisdn?[4,l(s).then((function(t){t&&t.data&&t.data.success?m.customEvent("Flow","advance-auto","msisdn-stored-success"):m.customEvent("Flow","advance-auto","msisdn-stored-failed")})).catch((function(t){m.customEvent("Flow","advance-auto","msisdn-stored-error",t)}))]:[3,4];case 3:r.sent(),r.label=4;case 4:return[2,{type:"MSISDNEntry",result:i(n({},o))}];case 5:switch(f=r.sent(),console.warn(f),v=void 0,f.type){case"AlreadySubscribed":v="AlreadySubscribed";break;case"InvalidMSISDN":v="InvalidMSISDN";break;default:v="UnknownError"}return m.recedeInFlow("tallyman.v1-mo","msisdn-submission-failure",{msisdn:s,errorType:v||"UnknownError"}),[2,d({errorType:v,productUrl:f.productUrl})];case 6:return[2]}}))}))})),k=o("moFlow/backToStartAction",(function(e,n){var o=n.dispatch,a=n.rejectWithValue;return t(void 0,void 0,void 0,(function(){return r(this,(function(t){try{m.recedeInFlow("tallyman.v1-mo","mo-state","requested to change phone number"),o(v())}catch(t){return console.warn(t),[2,a({errorType:"UnexpectedState"})]}return[2]}))}))})),E=a({name:"moFlow",initialState:I,reducers:{},extraReducers:function(t){t.addCase(g.pending,(function(t){t.currentState={type:"MSISDNEntry",result:s()}})).addCase(g.fulfilled,(function(t,r){t.currentState=r.payload})).addCase(g.rejected,(function(t,r){t.currentState={type:"MSISDNEntry",result:c(r.payload)}}))}}),M=E.reducer;E.actions;export{k as backToStartAction,y as moFlowMatch,M as moFlowReducer,g as submitMSISDNAction,p as useMoFlowState};
2
2
  //# sourceMappingURL=moFlow.js.map
@@ -1,2 +1,2 @@
1
- import{__awaiter as e,__generator as r,__assign as t}from"tslib";import{createAsyncThunk as n,createSlice as a}from"@reduxjs/toolkit";import{S as i,L as o,F as s,N as c}from"./RemoteDataState-lcf8PfJd.js";import{searchToObject as d}from"./searchToObject.js";import{s as u}from"./storeMsisdn-Cjq8_qYH.js";import{t as l}from"./tracker-DaaILhEr.js";import{t as m,i as f}from"./strategySlice-JTBaGYpl.js";import{c as v}from"./cleanSearchParams-Dl7ZDlew.js";import"pacman-client";import"uuid";import"./getConfig.js";import"./formatNumberToE164-Bd0VHMHJ.js";import"./api-CqJrSvqq.js";var p=function(e){return e((function(e){return e.moRedirFlow.currentState}))};function y(e){var r=e.msisdnEntry;return function(e){return e.type,r(e.result)}}var S=function(n){var a=n.window,i=n.slug,o=n.country,s=n.msisdn,c=n.device,d=n.offer,u=n.rockmanId,l=n.ip_range_name,m=n.search,f=n.extraParams,p=n.email,y=n.password;return e(void 0,void 0,void 0,(function(){var e,n,S,w,_,h,g,I,b;return r(this,(function(r){return m=v(m),e="&".concat(Object.keys(f).map((function(e){return f[e]?"".concat(e,"=").concat(f[e]):""})).filter(Boolean).join("&")),n=new URLSearchParams(t(t(t(t(t({action:"redirect",slug:i,country:o,device:c,offerId:d.toString(),rockman_id:u,page:encodeURIComponent(a.location.href),antifraud_id:a.antifraud_id||"",antifraud_id_js_code:a.antifraud_id_js_code||"",antifraud_id_js_link:a.antifraud_id_js_link||"",network_type:l?"":"wifi"},(null===(g=null===(h=null===(_=a.pac_analytics)||void 0===_?void 0:_.visitor)||void 0===h?void 0:h.page)||void 0===g?void 0:g.includes("agency"))&&{evinaTi:u}),(null===(b=null===(I=a.pac_analytics)||void 0===I?void 0:I.visitor)||void 0===b?void 0:b.ip)&&{client_ip:a.pac_analytics.visitor.ip}),a.securityProcessId&&{securityProcessId:a.securityProcessId}),a.languageCode&&{language_code:a.languageCode}),p&&y?{email:p,password:y}:{msisdn:s})).toString(),S=a.DEV_BASE_URL||"",w="".concat(S,"/tallyman/v1/?").concat(n).concat(e).concat(m?"&".concat(m):""),i.includes("za-mtn-beyondvr-r7")?[2,{success:!0,rockman_id:u,redirect_url:w}]:[2,fetch(w).then((function(e){return e.json()}))]}))}))};function w(n,a,i,o){return e(this,void 0,void 0,(function(){var e;return r(this,(function(r){return e=t({offer:n.pac_analytics.visitor.offer},a||{}),[2,_(n,e,i,o)]}))}))}function _(t,n,a,i){return e(this,void 0,void 0,(function(){var e,o,s,c,u,l,f,v,p,y,w,_,h,g,I;return r(this,(function(r){switch(r.label){case 0:return e=n.slug,o=n.country,s=n.device,c=n.offer,u=t.location.search.substr(1)||"",l=i||{},f=!1,("true"===(null==(v=d(t))?void 0:v.success)&&"1"===v["msisdn-alias"]||!0===t.is_encrypted_msisdn)&&(l.encrypted_msisdn="1"),"1"===l.encrypted_msisdn&&(f=!0),p=f?a||t.msisdn:a.match(/\d+/gi).join(""),y=t.pac_analytics.visitor,w=y.rockmanId,"ci"!==o?[3,2]:[4,m(y)];case 1:return _=r.sent(),[3,3];case 2:_=null,r.label=3;case 3:return[4,S({window:t,slug:e,country:o,msisdn:p,device:s,offer:c,rockmanId:w,ip_range_name:_,search:u,extraParams:l})];case 4:if(!1===(h=r.sent()).success)throw g="ALREADY SUBSCRIBED"===h.message?"AlreadySubscribed":"InvalidMSISDN",(I=new Error("".concat(g,":\n").concat(h.message))).type=g,console.error(I),I;return[2,h.redirect_url]}}))}))}var h={currentState:{type:"MSISDNEntry",result:i({href:"/product"})}},g={currentState:{type:"MSISDNEntry",result:s({errorType:"InvalidMSISDN",error:"Invalid Mobile Number"})}},I={currentState:{type:"MSISDNEntry",result:c()}},b=function(e){var r=d(e);if(!r["mock-flow"])return I;switch(r["current-state"]){case"msisdn-entry-failure-state":return g;case"msisdn-entry-success-state":return h;default:return console.error("Mock Flow not supported"),I}}(window),j=n("moRedirFlow/submitMSISDNAction",(function(t,n){var a=t.window,o=t.msisdn,s=t.extraParams,c=n.getState,d=n.rejectWithValue;return e(void 0,void 0,void 0,(function(){var e,t,n,m,f,v,p,y;return r(this,(function(r){switch(r.label){case 0:if(e=c(),!(null===(y=null===(p=null===(v=null==e?void 0:e.strategy)||void 0===v?void 0:v.currentState)||void 0===p?void 0:p.data)||void 0===y?void 0:y.config))return[2,d({errorType:"UnexpectedState"})];t=e.strategy.currentState.data.config,r.label=1;case 1:return r.trys.push([1,5,,6]),l.advancedInFlow("tallyman.v1-mo-redir","msisdn-submitted",{msisdn:o}),[4,w(a,t,o,s)];case 2:return n=r.sent(),l.advancedInFlow("tallyman.v1-mo-redir","msisdn-submission-success",{msisdn:o}),s&&s.storeMsisdn&&"true"===s.storeMsisdn?[4,u(o).then((function(e){e&&e.data&&e.data.success?l.customEvent("Flow","advance-auto","msisdn-stored-success"):l.customEvent("Flow","advance-auto","msisdn-stored-failed")})).catch((function(e){l.customEvent("Flow","advance-auto","msisdn-stored-error",e)}))]:[3,4];case 3:r.sent(),r.label=4;case 4:return[2,{type:"MSISDNEntry",result:i({href:n})}];case 5:switch(m=r.sent(),console.warn(m),f=void 0,m.type){case"AlreadySubscribed":f="AlreadySubscribed";break;case"InvalidMSISDN":f="InvalidMSISDN";break;default:f="UnknownError"}return l.recedeInFlow("tallyman.v1-mo-redir","msisdn-submission-failure",{msisdn:o,errorType:"UnknownError"}),[2,d({errorType:f,productUrl:m.productUrl})];case 6:return[2]}}))}))})),k=n("moRedirFlow/backToStartAction",(function(t,n){var a=n.dispatch,i=n.rejectWithValue;return e(void 0,void 0,void 0,(function(){return r(this,(function(e){try{l.recedeInFlow("tallyman.v1-mo-redir","mo-redir-state","requested to change phone number"),a(f())}catch(e){return console.warn(e),[2,i({errorType:"UnexpectedState"})]}return[2]}))}))})),E=a({name:"moRedirFlow",initialState:b,reducers:{},extraReducers:function(e){e.addCase(j.pending,(function(e){e.currentState={type:"MSISDNEntry",result:o()}})).addCase(j.fulfilled,(function(e,r){e.currentState=r.payload})).addCase(j.rejected,(function(e,r){e.currentState={type:"MSISDNEntry",result:s(r.payload)}}))}}),M=E.reducer;E.actions;export{k as backToStartAction,y as moRedirFlowMatch,M as moRedirFlowReducer,j as submitMSISDNAction,p as useMoRedirFlowState};
1
+ import{__awaiter as e,__generator as r,__assign as t}from"tslib";import{createAsyncThunk as n,createSlice as a}from"@reduxjs/toolkit";import{S as i,L as o,F as s,N as c}from"./RemoteDataState-lcf8PfJd.js";import{searchToObject as d}from"./searchToObject.js";import{s as u}from"./storeMsisdn-Cjq8_qYH.js";import{t as l}from"./tracker-DaaILhEr.js";import{t as m,i as f}from"./strategySlice-BCQi9dgQ.js";import{c as v}from"./cleanSearchParams-Dl7ZDlew.js";import"pacman-client";import"uuid";import"./getConfig.js";import"./formatNumberToE164-Bd0VHMHJ.js";import"./api-CqJrSvqq.js";var p=function(e){return e((function(e){return e.moRedirFlow.currentState}))};function y(e){var r=e.msisdnEntry;return function(e){return e.type,r(e.result)}}var S=function(n){var a=n.window,i=n.slug,o=n.country,s=n.msisdn,c=n.device,d=n.offer,u=n.rockmanId,l=n.ip_range_name,m=n.search,f=n.extraParams,p=n.email,y=n.password;return e(void 0,void 0,void 0,(function(){var e,n,S,w,_,h,g,I,b;return r(this,(function(r){return m=v(m),e="&".concat(Object.keys(f).map((function(e){return f[e]?"".concat(e,"=").concat(f[e]):""})).filter(Boolean).join("&")),n=new URLSearchParams(t(t(t(t(t({action:"redirect",slug:i,country:o,device:c,offerId:d.toString(),rockman_id:u,page:encodeURIComponent(a.location.href),antifraud_id:a.antifraud_id||"",antifraud_id_js_code:a.antifraud_id_js_code||"",antifraud_id_js_link:a.antifraud_id_js_link||"",network_type:l?"":"wifi"},(null===(g=null===(h=null===(_=a.pac_analytics)||void 0===_?void 0:_.visitor)||void 0===h?void 0:h.page)||void 0===g?void 0:g.includes("agency"))&&{evinaTi:u}),(null===(b=null===(I=a.pac_analytics)||void 0===I?void 0:I.visitor)||void 0===b?void 0:b.ip)&&{client_ip:a.pac_analytics.visitor.ip}),a.securityProcessId&&{securityProcessId:a.securityProcessId}),a.languageCode&&{language_code:a.languageCode}),p&&y?{email:p,password:y}:{msisdn:s})).toString(),S=a.DEV_BASE_URL||"",w="".concat(S,"/tallyman/v1/?").concat(n).concat(e).concat(m?"&".concat(m):""),i.includes("za-mtn-beyondvr-r7")?[2,{success:!0,rockman_id:u,redirect_url:w}]:[2,fetch(w).then((function(e){return e.json()}))]}))}))};function w(n,a,i,o){return e(this,void 0,void 0,(function(){var e;return r(this,(function(r){return e=t({offer:n.pac_analytics.visitor.offer},a||{}),[2,_(n,e,i,o)]}))}))}function _(t,n,a,i){return e(this,void 0,void 0,(function(){var e,o,s,c,u,l,f,v,p,y,w,_,h,g,I;return r(this,(function(r){switch(r.label){case 0:return e=n.slug,o=n.country,s=n.device,c=n.offer,u=t.location.search.substr(1)||"",l=i||{},f=!1,("true"===(null==(v=d(t))?void 0:v.success)&&"1"===v["msisdn-alias"]||!0===t.is_encrypted_msisdn)&&(l.encrypted_msisdn="1"),"1"===l.encrypted_msisdn&&(f=!0),p=f?a||t.msisdn:a.match(/\d+/gi).join(""),y=t.pac_analytics.visitor,w=y.rockmanId,"ci"!==o?[3,2]:[4,m(y)];case 1:return _=r.sent(),[3,3];case 2:_=null,r.label=3;case 3:return[4,S({window:t,slug:e,country:o,msisdn:p,device:s,offer:c,rockmanId:w,ip_range_name:_,search:u,extraParams:l})];case 4:if(!1===(h=r.sent()).success)throw g="ALREADY SUBSCRIBED"===h.message?"AlreadySubscribed":"InvalidMSISDN",(I=new Error("".concat(g,":\n").concat(h.message))).type=g,console.error(I),I;return[2,h.redirect_url]}}))}))}var h={currentState:{type:"MSISDNEntry",result:i({href:"/product"})}},g={currentState:{type:"MSISDNEntry",result:s({errorType:"InvalidMSISDN",error:"Invalid Mobile Number"})}},I={currentState:{type:"MSISDNEntry",result:c()}},b=function(e){var r=d(e);if(!r["mock-flow"])return I;switch(r["current-state"]){case"msisdn-entry-failure-state":return g;case"msisdn-entry-success-state":return h;default:return console.error("Mock Flow not supported"),I}}(window),j=n("moRedirFlow/submitMSISDNAction",(function(t,n){var a=t.window,o=t.msisdn,s=t.extraParams,c=n.getState,d=n.rejectWithValue;return e(void 0,void 0,void 0,(function(){var e,t,n,m,f,v,p,y;return r(this,(function(r){switch(r.label){case 0:if(e=c(),!(null===(y=null===(p=null===(v=null==e?void 0:e.strategy)||void 0===v?void 0:v.currentState)||void 0===p?void 0:p.data)||void 0===y?void 0:y.config))return[2,d({errorType:"UnexpectedState"})];t=e.strategy.currentState.data.config,r.label=1;case 1:return r.trys.push([1,5,,6]),l.advancedInFlow("tallyman.v1-mo-redir","msisdn-submitted",{msisdn:o}),[4,w(a,t,o,s)];case 2:return n=r.sent(),l.advancedInFlow("tallyman.v1-mo-redir","msisdn-submission-success",{msisdn:o}),s&&s.storeMsisdn&&"true"===s.storeMsisdn?[4,u(o).then((function(e){e&&e.data&&e.data.success?l.customEvent("Flow","advance-auto","msisdn-stored-success"):l.customEvent("Flow","advance-auto","msisdn-stored-failed")})).catch((function(e){l.customEvent("Flow","advance-auto","msisdn-stored-error",e)}))]:[3,4];case 3:r.sent(),r.label=4;case 4:return[2,{type:"MSISDNEntry",result:i({href:n})}];case 5:switch(m=r.sent(),console.warn(m),f=void 0,m.type){case"AlreadySubscribed":f="AlreadySubscribed";break;case"InvalidMSISDN":f="InvalidMSISDN";break;default:f="UnknownError"}return l.recedeInFlow("tallyman.v1-mo-redir","msisdn-submission-failure",{msisdn:o,errorType:"UnknownError"}),[2,d({errorType:f,productUrl:m.productUrl})];case 6:return[2]}}))}))})),k=n("moRedirFlow/backToStartAction",(function(t,n){var a=n.dispatch,i=n.rejectWithValue;return e(void 0,void 0,void 0,(function(){return r(this,(function(e){try{l.recedeInFlow("tallyman.v1-mo-redir","mo-redir-state","requested to change phone number"),a(f())}catch(e){return console.warn(e),[2,i({errorType:"UnexpectedState"})]}return[2]}))}))})),E=a({name:"moRedirFlow",initialState:b,reducers:{},extraReducers:function(e){e.addCase(j.pending,(function(e){e.currentState={type:"MSISDNEntry",result:o()}})).addCase(j.fulfilled,(function(e,r){e.currentState=r.payload})).addCase(j.rejected,(function(e,r){e.currentState={type:"MSISDNEntry",result:s(r.payload)}}))}}),M=E.reducer;E.actions;export{k as backToStartAction,y as moRedirFlowMatch,M as moRedirFlowReducer,j as submitMSISDNAction,p as useMoRedirFlowState};
2
2
  //# sourceMappingURL=moRedirFlow.js.map
@@ -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=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};
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,F;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===(F=null===(A=null==o?void 0:o.pac_analytics)||void 0===A?void 0:A.visitor)||void 0===F?void 0:F.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,T;return e(this,(function(e){switch(e.label){case 0:if(r=f(),v(o)["mock-flow"])return[2,I.currentState];if(!(null===(T=null===(j=null===(C=null==r?void 0:r.strategy)||void 0===C?void 0:C.currentState)||void 0===j?void 0:j.data)||void 0===T?void 0:T.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,10,,11]),!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,9]);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"),g?[4,w({currentRedirectUrl:g,country:c.country})]:[3,7];case 6:return U=e.sent(),[3,8];case 7:U=null,e.label=8;case 8:if(!(b=U))return d.recedeInFlow("tallyman.v1-one-click","get-redirect-url-failure",{errorType:"UnknownError"}),[2,p({errorType:"UnknownError",message:"Could not get rediredt url",error:"Could not get rediredt url"})];if(d.customEvent("Flow","advance-auto","redirect-success",{updated_redirect_url:b}),!(!0===l||!0===o.isAutoFraudScreener&&b))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=9;case 9:return[3,11];case 10:return k=e.sent(),console.warn(k),d.recedeInFlow("tallyman.v1-one-click","get-redirect-url-failure",{errorType:"UnknownError"}),[2,p({errorType:"UnknownError",message:k.message,error:k.toString()})];case 11: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 = 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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"}
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 = newRedirectUrl\n ? await addEmpelloToken({\n currentRedirectUrl: newRedirectUrl,\n country: config.country\n })\n : null;\n\n if (updated_redirect_url) {\n tracker.customEvent('Flow', 'advance-auto', 'redirect-success', { updated_redirect_url });\n\n if (autoRedirect === true || (window.isAutoFraudScreener === true && updated_redirect_url)) {\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 } else {\n tracker.recedeInFlow('tallyman.v1-one-click', 'get-redirect-url-failure', {\n errorType: 'UnknownError'\n });\n return rejectWithValue({\n errorType: 'UnknownError',\n message: 'Could not get rediredt url',\n error: 'Could not get rediredt url'\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","recedeInFlow","updated_redirect_url","warn","ex_1","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 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};
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-BCQi9dgQ.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
package/dist/strategy.js CHANGED
@@ -1,2 +1,2 @@
1
- export{R as RDS}from"./RemoteDataState-lcf8PfJd.js";import{P as t}from"./strategySlice-JTBaGYpl.js";export{i as identifyStrategy,a as selectOperatorAction,b as strategyReducer,s as submitMSISDNAction}from"./strategySlice-JTBaGYpl.js";import"tslib";import"@reduxjs/toolkit";import"./searchToObject.js";import"./getConfig.js";import"./tracker-DaaILhEr.js";import"pacman-client";import"uuid";import"./formatNumberToE164-Bd0VHMHJ.js";import"./api-CqJrSvqq.js";var e=function(t){return t((function(t){return t.strategy.currentState}))};function r(e){var r=e.identifyInitialState,o=e.identifyFlowByOperatorSelect,i=e.identifyFlowByMsisdn,s=e.pinFlow,a=e.moFlow,n=e.moRedirFlow,c=e.oneClickFlow,u=e.click2smsFlow,p=e.ussdFlow,l=e.creditCardFlow;return function(e){switch(e.type){case t.IDENTIFY_STRATEGY:return r();case t.IDENTIFY_FLOW_BY_OPERATOR_SELECT:return o();case t.IDENTIFY_FLOW_BY_MSISDN:return i(e.result);case t.PIN:return s();case t.MO:return a();case t.MO_REDIR:return n();case t.ONE_CLICK:return c();case t.CLICK2SMS:return u();case t.USSD:return p();case t.CREDIT_CARD:return l();default:throw new Error("Unexpected state type: ".concat(e.type))}}}export{t as PossibleTypes,r as strategy,e as useStrategyState};
1
+ export{R as RDS}from"./RemoteDataState-lcf8PfJd.js";import{P as t}from"./strategySlice-BCQi9dgQ.js";export{i as identifyStrategy,a as selectOperatorAction,b as strategyReducer,s as submitMSISDNAction}from"./strategySlice-BCQi9dgQ.js";import"tslib";import"@reduxjs/toolkit";import"./searchToObject.js";import"./getConfig.js";import"./tracker-DaaILhEr.js";import"pacman-client";import"uuid";import"./formatNumberToE164-Bd0VHMHJ.js";import"./api-CqJrSvqq.js";var e=function(t){return t((function(t){return t.strategy.currentState}))};function r(e){var r=e.identifyInitialState,o=e.identifyFlowByOperatorSelect,i=e.identifyFlowByMsisdn,s=e.pinFlow,a=e.moFlow,n=e.moRedirFlow,c=e.oneClickFlow,u=e.click2smsFlow,p=e.ussdFlow,l=e.creditCardFlow;return function(e){switch(e.type){case t.IDENTIFY_STRATEGY:return r();case t.IDENTIFY_FLOW_BY_OPERATOR_SELECT:return o();case t.IDENTIFY_FLOW_BY_MSISDN:return i(e.result);case t.PIN:return s();case t.MO:return a();case t.MO_REDIR:return n();case t.ONE_CLICK:return c();case t.CLICK2SMS:return u();case t.USSD:return p();case t.CREDIT_CARD:return l();default:throw new Error("Unexpected state type: ".concat(e.type))}}}export{t as PossibleTypes,r as strategy,e as useStrategyState};
2
2
  //# sourceMappingURL=strategy.js.map
@@ -0,0 +1,2 @@
1
+ import{__awaiter as e,__generator as o,__assign as r}from"tslib";import{createAsyncThunk as t,createSlice as n}from"@reduxjs/toolkit";import{N as i,S as l,L as s,F as a}from"./RemoteDataState-lcf8PfJd.js";import{searchToObject as d}from"./searchToObject.js";import{getConfig as u}from"./getConfig.js";import{q as c,t as f}from"./tracker-DaaILhEr.js";import{f as v}from"./formatNumberToE164-Bd0VHMHJ.js";import{i as p}from"./api-CqJrSvqq.js";var w;function m(r){return e(this,void 0,void 0,(function(){var e,t,n,i,l;return o(this,(function(o){switch(o.label){case 0:if(e=c(window.location.href,"mock-ip")||process.env.mock_ip,console.log("mockip",e),r.ip||"undefined"==typeof window)return[3,5];o.label=1;case 1:return o.trys.push([1,3,,4]),t=window.location.host,n=window.DEV_BASE_URL_IP||t,[4,fetch("https://".concat(n,"/api/v1/ip").concat(e?"?mock-ip=".concat(e):"")).then((function(e){return e.json()}))];case 2:return i=o.sent(),r.ip=i.ip,r.ip_range_name=i.ip_range_name,[2,i.ip_range_name];case 3:return l=o.sent(),console.warn("IP Lookup failed",l),[2,""];case 4:return[3,6];case 5:return[2,r.ip_range_name||""];case 6:return[2]}}))}))}!function(e){e.IDENTIFY_STRATEGY="IDENTIFY_STRATEGY",e.IDENTIFY_FLOW_BY_MSISDN="IDENTIFY_FLOW_BY_MSISDN",e.IDENTIFY_FLOW_BY_OPERATOR_SELECT="IDENTIFY_FLOW_BY_OPERATOR_SELECT",e.PIN="PIN",e.MO="MO",e.MO_REDIR="MO_REDIR",e.ONE_CLICK="ONE_CLICK",e.CLICK2SMS="CLICK2SMS",e.USSD="USSD",e.TPAY_HE="TPAY_HE",e.CREDIT_CARD="CREDIT_CARD"}(w||(w={}));var g={mo:w.MO,pin:w.PIN,oneClick:w.ONE_CLICK,moRedir:w.MO_REDIR,click2sms:w.CLICK2SMS,ussd:w.USSD,tpayHe:w.TPAY_HE,creditCard:w.CREDIT_CARD},y={mo:"Msisdn to sms",pin:"Pin",oneClick:"3G click",moRedir:"Redirect",click2sms:"Click to sms",tpayHe:"Pin",ussd:"Msisdn to sms"},E=function(e){return y[e]};function _(t){var n,i,l,s,a=t.window,d=t.internationalMSISDN,u=t.configs;return e(this,void 0,void 0,(function(){var t,c,f,v,w,m,g,y,E,_,S=this;return o(this,(function(h){switch(h.label){case 0:if(!d)throw(_=new Error("Error in submitMSISDN() identify action")).type="SEInvalidMSISDN",_;return t=(null===(n=d.match(/\d+/gi))||void 0===n?void 0:n.join(""))||"",c=null===(i=null==u?void 0:u.strategyConfigs)||void 0===i?void 0:i.default,f=c.flowConfig,v=null===(l=null==u?void 0:u.strategyConfigs)||void 0===l?void 0:l.operators,w=function(){return e(S,void 0,void 0,(function(){var e,r,n,i,l;return o(this,(function(o){switch(o.label){case 0:return e=f.slug,r=f.country,n=f.device,i=a.pac_analytics.visitor.rockmanId,l=a.pac_analytics.visitor.offer,[4,p({window:a,slug:e,country:r,msisdn:t,device:n,offer:l,rockmanId:i})];case 1:return[2,o.sent()]}}))}))},[4,w()];case 1:if(m=h.sent(),g=v[m.operator]?v[m.operator]:null,y=!1===m.success&&"Operator could not be found for the given MSISDN"===m.message,E=!1===m.success&&-1!==(null===(s=m.message)||void 0===s?void 0:s.indexOf("HLR did not find the operator for given MSISDN")),y||E)throw(_=new Error("Error in submitMSISDN() identify action")).type="FlowDetectFailed",_.msisdn=t,_;if(null!==g)return[2,r({operator:m.operator,default:c},g)];if(null===g)return[2,r({operator:m.operator},c)];throw(_=new Error("Error in submitMSISDN() identify action")).type="SEInvalidMSISDN",_}}))}))}function S(e){var o,t,n=e.configs,i=e.operator,l=null===(o=null==n?void 0:n.strategyConfigs)||void 0===o?void 0:o.default,s=null===(t=null==n?void 0:n.strategyConfigs)||void 0===t?void 0:t.operators;return r({operator:null==i?void 0:i.toUpperCase(),default:l},s[null==i?void 0:i.toUpperCase()])}function h(r){var t=r.window,n=r.configs;return e(this,void 0,void 0,(function(){var e;return o(this,(function(o){switch(o.label){case 0:return[4,m(t.pac_analytics.visitor)];case 1:return e=o.sent(),[2,S({configs:n,operator:e&&e.includes("_")?e.toUpperCase():""})]}}))}))}var I=function(){return{type:w.IDENTIFY_FLOW_BY_MSISDN,result:i()}},C=t("strategy/submitMSISDNAction",(function(r,t){var n=r.window,l=r.msisdn,s=t.rejectWithValue;return e(void 0,void 0,void 0,(function(){var e,r,t,a,d,c,v,p,w;return o(this,(function(o){switch(o.label){case 0:return o.trys.push([0,2,,3]),e=u(),[4,_({window:n,internationalMSISDN:l,configs:e})];case 1:return r=o.sent(),t=null==r?void 0:r.flow,a=E(t),d=null===(w=null==e?void 0:e.strategyConfigs)||void 0===w?void 0:w.default,c=null==d?void 0:d.flow,g[t]?(f.sendOptInFlowEvent(a),[2,{type:g[t],result:i(),data:{config:r.flowConfig,operator:r.operator,msisdn:l}}]):[2,{type:g[c],result:i(),data:{config:null==d?void 0:d.flowConfig}}];case 2:switch(v=o.sent(),p=void 0,v.type){case"SEAlreadySubscribed":p="AlreadySubscribed";break;case"SEInvalidMSISDN":p="InvalidMSISDN";break;default:p="UnknownError"}return[2,s({errorType:p,error:v,productUrl:v.productUrl})];case 3:return[2]}}))}))})),D=function(){var e=function(e){var o,r=e.configs,t=null===(o=null==r?void 0:r.strategyConfigs)||void 0===o?void 0:o.operators;return Object.keys(t)}({configs:u()});return{type:w.IDENTIFY_FLOW_BY_OPERATOR_SELECT,result:i(),data:{operators:e}}},T=t("strategy/selectOperatorAction",(function(r,t){var n=r.operator,l=t.rejectWithValue;return e(void 0,void 0,void 0,(function(){var e,r,t,s;return o(this,(function(o){try{return e=u(),r=S({configs:e,operator:n}),t=r.flow,s=E(t),f.sendOptInFlowEvent(s),[2,{type:g[t],result:i(),data:{config:r.flowConfig,operator:r.operator}}]}catch(e){return"UnkownError",[2,l({errorType:"UnkownError",error:e.toString()})]}return[2]}))}))})),O=function(r){return e(void 0,void 0,void 0,(function(){var e,t,n,l,s,a,d,c;return o(this,(function(o){switch(o.label){case 0:return o.trys.push([0,2,,3]),e=u(),[4,h({window:window,configs:e})];case 1:return t=o.sent(),n=null===(c=null==e?void 0:e.strategyConfigs)||void 0===c?void 0:c.default,l=null==n?void 0:n.flow,t.flow||"all-flows-detect-operator-by-ip-or-ask-mobile-number"!==r&&"all-flows-ask-mobile-number"!==r?t.flow||"all-flows-detect-operator-by-ip-or-ask-operator"!==r?(s=t.flow,g[s]?(a=E(s),f.sendOptInFlowEvent(a),[2,{type:g[s],result:i(),data:{config:t.flowConfig,operator:t.operator}}]):[2,{type:g[l],result:i(),data:{config:null==n?void 0:n.flowConfig}}]):[2,D()]:[2,I()];case 2:return d=o.sent(),console.error("error",d),[3,3];case 3:return[2]}}))}))},b=function(e,o){return{type:g[o]||w.PIN,result:i(),data:{config:e}}},N=function(r){var t=r.window;return e(void 0,void 0,void 0,(function(){var e,r,n,i,s;return o(this,(function(o){return e=u(),r=null==e?void 0:e.enableScriptTimer,n=e.strategyConfigs,i=null===(s=null==n?void 0:n.default)||void 0===s?void 0:s.flowConfig,[2,new Promise((function(e){var o,s,a,d;try{var c=null===(s=null===(o=null==t?void 0:t.pac_analytics)||void 0===o?void 0:o.visitor)||void 0===s?void 0:s.heMsisdn,p=null===(d=null===(a=null==t?void 0:t.pac_analytics)||void 0===a?void 0:a.visitor)||void 0===d?void 0:d.country;c&&p&&(c=v(c,p));var m,g=!1,y=!1;r&&(m=setTimeout((function(){var o;g||(y=!0,f.customEvent("Flow","recede-auto","msisdn-detection-failure",{errorType:"3 second timer expired"}),t.isPrelanderClicked=!0,e({type:w.PIN,result:l({}),data:{config:null===(o=null==n?void 0:n.default)||void 0===o?void 0:o.flowConfig}}))}),3e3));var E=function(o){var n=o.detail;if(c=null==n?void 0:n.msisdn,(null==n?void 0:n.msisdn)&&!(null==n?void 0:n.encrypted_msisdn)?(c=v(n.msisdn,p),t.msisdn=c):(t.msisdn=null==n?void 0:n.msisdn,t.is_encrypted_msisdn=null==n?void 0:n.encrypted_msisdn),r){if(!y){g=!0,clearTimeout(m),f.customEvent("Flow","advance-auto","msisdn-detected",{msisdn:c});var i=S({configs:u(),operator:null==n?void 0:n.operator_code});t.removeEventListener("he-success",E),t.removeEventListener("he-fail",_),e(R(i,c,null==n?void 0:n.operator_code,!0))}}else{f.customEvent("Flow","advance-auto","msisdn-detected",{msisdn:c,operator:null==n?void 0:n.operator_code});i=S({configs:u(),operator:null==n?void 0:n.operator_code});t.removeEventListener("he-success",E),t.removeEventListener("he-fail",_),e(R(i,c,null==n?void 0:n.operator_code,!0))}},_=function(){t.removeEventListener("he-success",E),t.removeEventListener("he-fail",_),e(b(i,null==n?void 0:n.default.flow))};if(t.addEventListener("he-success",E),t.addEventListener("he-fail",_),!(null==t?void 0:t.heScriptUrl))return f.customEvent("Flow","recede-auto","msisdn-detection-failure",{errorType:"Error he script url not set"}),void t.dispatchEvent(new Event("he-fail"));t.addEventListener("error",(function(e){var o,r;console.error("Global error:",null==e?void 0:e.error),f.customEvent("Flow","recede-auto","global-error",{errorMessage:null===(o=null==e?void 0:e.error)||void 0===o?void 0:o.message,errorStack:null===(r=null==e?void 0:e.error)||void 0===r?void 0:r.stack})}));var h=document.createElement("script");h.type="text/javascript",h.id="he-js-link",h.src="".concat(t.heScriptUrl),h.referrerPolicy="origin",document.head.appendChild(h),h.onerror=function(e){console.error("Error loading Header Enrichment script."),f.customEvent("Flow","recede-auto","msisdn-detection-failure",{errorType:"Error loading Header Enrichment script",errorMessage:e.message}),t.dispatchEvent(new Event("he-fail"))}}catch(o){console.error("Error in header enrichment:",o),e(b(i,null==n?void 0:n.default.flow))}}))]}))}))},R=function(e,o,r,t){var n,l;void 0===o&&(o=null),void 0===r&&(r=null);var s=null===(n=u().strategyConfigs)||void 0===n?void 0:n.default,a=null==s?void 0:s.flow,d=e.flow||(null===(l=e.default)||void 0===l?void 0:l.flow),c=E(d);return f.sendOptInFlowEvent(c),e.flow?{type:g[d],result:i(),data:{config:e.flowConfig,operator:e.operator,isHeaderEnrichmentSuccess:t}}:{type:g[a],result:i(),data:{config:null==s?void 0:s.flowConfig,operator:r,msisdn:o,isHeaderEnrichmentSuccess:t}}};window.tracker=f;var F={currentState:{type:w.IDENTIFY_STRATEGY,result:i(),data:void 0}},k=function(){var e=d(window);if(void 0!==e["mock-flow"])switch(void 0!==e.operator&&(window.operator=e.operator),e["mock-flow"]){case"pin":return{type:w.PIN,result:l({})};case"mo":return{type:w.MO,result:l({})};case"moredir":return{type:w.MO_REDIR,result:l({})};case"oneclick":return{type:w.ONE_CLICK,result:l({}),data:{subscription_url:e["subscription-url"]}};case"click2sms":return{type:w.CLICK2SMS,result:l({})};case"ussd":return{type:w.USSD,result:l({})};case"creditcard":return{type:w.CREDIT_CARD,result:l({})};default:throw new Error("(mockStrategyStateByUrlParam) Strategy Mock Flow not supported")}},L=t("strategy/identifyStrategy",(function(){return e(void 0,void 0,void 0,(function(){var r,t,n,s,a,c,p,m,y,_,h,C,T,b,R,F;return o(this,(function(L){switch(L.label){case 0:return r=u(),t=r.strategy,n=r.strategyConfigs,void 0!==(s=d(window))["mock-flow"]?[2,k()]:"1"===s.ui_show_default_flow?(a=null==n?void 0:n.default.flow,c=null===(m=null==n?void 0:n.default)||void 0===m?void 0:m.flowConfig,[2,{type:g[a],result:i(),data:{config:c}}]):s["show-pin-entry"]&&"1"===s["show-pin-entry"]||s["show-thank-you"]&&"1"===s["show-thank-you"]||s.show_custom_error&&"1"===s.show_custom_error?(p=S({configs:r,operator:s.operator}),[2,{type:w.PIN,result:l({}),data:{config:(null==p?void 0:p.flowConfig)||(null===(y=null==n?void 0:n.default)||void 0===y?void 0:y.flowConfig)}}]):t.includes("ask-operator")?[2,D()]:t.includes("detect-operator-by-ip")?[2,O(t)]:(null==t?void 0:t.includes("ask-mobile-number"))?[2,I()]:(null==t?void 0:t.includes("header-enrichment"))&&"header-enrichment-script"!==t?[4,e(void 0,void 0,void 0,(function(){var r,t,n,l,s,a,c,p,w,m,y,_;return o(this,(function(h){switch(h.label){case 0:r=u(),t=null==r?void 0:r.strategyConfigs.default,n=t.flow,h.label=1;case 1:return h.trys.push([1,5,,6]),l=d(window),(s=(null==l?void 0:l.msisdn)&&""!==(null==l?void 0:l.msisdn))&&f.customEvent("Flow","advance-auto","msisdn-detected",{msisdn:null==l?void 0:l.msisdn,operator:null==l?void 0:l.operator}),(null==l?void 0:l.operator)?"pin-header-enrichment"===r.strategy&&s?[2,{type:g[n],result:i(),data:{config:null==t?void 0:t.flowConfig,operator:(null==l?void 0:l.operator)||null,msisdn:(null==l?void 0:l.msisdn)||null,isHeaderEnrichmentSuccess:s}}]:(a=null,c=null,[4,S({operator:null==l?void 0:l.operator,configs:r})]):[2,{type:g[n],result:i(),data:{config:null==t?void 0:t.flowConfig}}];case 2:return p=h.sent(),w=p.flow||n,m=E(w),f.sendOptInFlowEvent(m),"oneClick"!==w?[3,4]:[4,e(void 0,void 0,void 0,(function(){var e,r,t,n,i,l,s,a,u,c,f,p,w,m,g;return o(this,(function(o){if("undefined"==typeof window)throw new Error("This function can only be run in a browser environment.");if("false"===(e=d(window)).success)throw new Error("Error in getRedirectUrl() identify-user action:\n".concat(e.message||"NotOn3g"));return(r=e.subscription_url||e.redirect_url)?(t=window.atob(r),n=new URL(t),i=new URLSearchParams(n.search),l=i.get("msisdn")||e.msisdn,s=i.get("operator")||e.operator,l&&(l=v(l,null===(w=null===(p=null===window||void 0===window?void 0:window.pac_analytics)||void 0===p?void 0:p.visitor)||void 0===w?void 0:w.country)),[2,{msisdn:l||"",operator:s||"",subscription_url:e.subscription_url?t:void 0,redirect_url:e.redirect_url?t:void 0}]):(console.error("No URL provided for redirection in the url params"),a=new URL(window.location.href),u=new URLSearchParams(a.search),c=u.get("msisdn")||e.msisdn,f=u.get("operator")||e.operator,c&&(c=v(c,null===(g=null===(m=null===window||void 0===window?void 0:window.pac_analytics)||void 0===m?void 0:m.visitor)||void 0===g?void 0:g.country)),[2,{msisdn:c||"",operator:f||""}])}))}))];case 3:y=h.sent(),a=(null==y?void 0:y.subscription_url)||null,c=(null==y?void 0:y.redirect_url)||null,h.label=4;case 4:return[2,{type:g[w],result:i(),data:{config:p.flowConfig,operator:p.operator,subscription_url:a||null,redirect_url:c||null,isHeaderEnrichmentSuccess:s}}];case 5:return _=h.sent(),console.error("error",_),[2,{type:g[n],result:i(),data:{config:null==t?void 0:t.flowConfig}}];case 6:return[2]}}))}))]:[3,2];case 1:return[2,L.sent()];case 2:switch(t){case"header-enrichment-script":return[2,N({window:window})];case"pin":return f.sendOptInFlowEvent("Pin"),[2,{type:w.PIN,result:l({}),data:{config:null===(_=null==n?void 0:n.default)||void 0===_?void 0:_.flowConfig}}];case"mo":return f.sendOptInFlowEvent("Msisdn to sms"),[2,{type:w.MO,result:l({}),data:{config:null===(h=null==n?void 0:n.default)||void 0===h?void 0:h.flowConfig}}];case"mo-redir":return[2,{type:w.MO_REDIR,result:l({}),data:{config:null===(C=null==n?void 0:n.default)||void 0===C?void 0:C.flowConfig}}];case"one-click":return f.sendOptInFlowEvent("Redirect"),[2,{type:w.ONE_CLICK,result:l({}),data:{config:null===(T=null==n?void 0:n.default)||void 0===T?void 0:T.flowConfig}}];case"click2sms":return f.sendOptInFlowEvent("Click to sms"),[2,{type:w.CLICK2SMS,result:l({}),data:{config:null===(b=null==n?void 0:n.default)||void 0===b?void 0:b.flowConfig}}];case"ussd":return f.sendOptInFlowEvent("USSD"),[2,{type:w.USSD,result:l({}),data:{config:null===(R=null==n?void 0:n.default)||void 0===R?void 0:R.flowConfig}}];case"credit-card":return f.sendOptInFlowEvent("Credit card"),[2,{type:w.CREDIT_CARD,result:l({}),data:{config:null===(F=null==n?void 0:n.default)||void 0===F?void 0:F.flowConfig}}];default:throw new Error("Strategy not supported")}}}))}))})),M=t("strategy/setStrategyExtraData",(function(r){var t=r.type,n=r.data;return e(void 0,void 0,void 0,(function(){return o(this,(function(e){return[2,{type:t,result:i(),data:n}]}))}))})),Y=n({name:"strategy",initialState:F,reducers:{},extraReducers:function(e){e.addCase(L.pending,(function(e){e.currentState={type:w.IDENTIFY_STRATEGY,result:s()}})).addCase(L.fulfilled,(function(e,o){e.currentState=o.payload})).addCase(L.rejected,(function(e,o){e.currentState={type:w.IDENTIFY_STRATEGY,result:a(o.error.message)}})).addCase(C.pending,(function(e){e.currentState={type:w.IDENTIFY_FLOW_BY_MSISDN,result:s()}})).addCase(C.fulfilled,(function(e,o){e.currentState=o.payload})).addCase(C.rejected,(function(e,o){e.currentState={type:w.IDENTIFY_FLOW_BY_MSISDN,result:a(o.payload)}})).addCase(M.fulfilled,(function(e,o){e.currentState=o.payload})).addCase(T.pending,(function(e){e.currentState={type:w.IDENTIFY_FLOW_BY_OPERATOR_SELECT,result:s()}})).addCase(T.fulfilled,(function(e,o){e.currentState=o.payload})).addCase(T.rejected,(function(e,o){e.currentState={type:w.IDENTIFY_FLOW_BY_OPERATOR_SELECT,result:a(o.payload)}}))}}).reducer;export{w as P,T as a,Y as b,M as c,L as i,C as s,m as t};
2
+ //# sourceMappingURL=strategySlice-BCQi9dgQ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strategySlice-BCQi9dgQ.js","sources":["../src/sharedFlowTypes/StrategyTypes.ts","../src/ips/tryGetIPRangeName.ts","../src/flows/strategy/main.ts","../src/flows/strategy/strategies/askMobileNumber.ts","../src/flows/strategy/strategies/askOperator.ts","../src/flows/strategy/strategies/detectOperatorByIp.ts","../src/flows/strategy/strategies/injectHeaderEnrichmentScript.ts","../src/flows/strategy/strategySlice.ts","../src/flows/strategy/strategies/headerEnrichment.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable camelcase */\nimport * as RDS from '../common-types/RemoteDataState';\nimport { IStrategyNames } from '../common-types/Strategy';\nimport { Click2smsFlowState } from './Click2smsTypes';\nimport { CreditCardFlowState } from './CreditCardTypes';\nimport { MoRedirFlowState } from './MoRedirTypes';\nimport { MoFlowState } from './MoTypes';\nimport { OneClickFlowState } from './OneClickTypes';\nimport { PinFlowState } from './PinTypes';\nimport { UssdFlowState } from './UssdTypes';\n\nexport type IIdentifyResult = {\n operator: string;\n flow?: string;\n success: boolean;\n rockman_id?: string;\n message?: string;\n};\n\nexport interface HEResult {\n msisdn: string;\n operator: string;\n subscription_url?: string;\n redirect_url?: string;\n}\n\nexport type ConfigDetails = {\n host: string;\n slug: string;\n country: string;\n device?: 'smart' | 'feature';\n queryString?: Array<[string, string]>;\n automaticallySubmitAllOperators?: boolean;\n operators?: string[];\n service: string;\n offer?: string;\n};\n\nexport type IConfig = {\n offer?: string;\n slug?: string;\n country?: string;\n host?: string;\n device?: 'smart' | 'feature';\n automaticallySubmitAllOperators?: boolean;\n operators?: string[];\n service?: string;\n serviceId?: string;\n queryString?: any;\n apiAction?: any;\n};\n\nexport type ISupportedFlows = 'pin' | 'mo' | 'oneClick' | 'click2sms' | 'moRedir' | 'ussd' | 'creditCard';\nexport type IFlow = {\n flow: ISupportedFlows;\n flowOnWifi?: ISupportedFlows;\n operator?: string;\n flowConfig: ConfigDetails;\n default?: IFlow;\n rockman_id?: string;\n};\n\nexport type StrategyConfig = {\n operators: {\n [key: string]: IFlow;\n };\n default: IFlow;\n isUseMsisdnPrefix?: boolean;\n};\n// export type IStrategy = IPinStrategy | IMoStrategy;\n\nexport type IStrategy = {\n strategy: IStrategyNames;\n country: string;\n strategyConfigs: StrategyConfig;\n};\n\nexport interface IHash {\n [key: string]: string;\n}\n\nexport type IDENTIFYMSISDNEntryErrorTypes = 'AlreadySubscribed' | 'UnknownError' | 'InvalidMSISDN';\n\nexport type IDENTIFYMSISDNEntryFailure = {\n errorType: IDENTIFYMSISDNEntryErrorTypes;\n error: unknown;\n};\n\nexport type IdentifyFlowOptionsResult = {\n config: IConfig;\n nextAction?: unknown;\n msisdn?: string;\n operator?: string;\n subscription_url?: string;\n redirect_url?: string;\n rockman_id?: string;\n isHeaderEnrichmentSuccess?: boolean;\n autoRedirect?: boolean;\n isUseMsisdnPrefix?: boolean;\n};\n\nexport type IDENTIFYMSISDNEntrySuccess = {};\nexport type OPERATORSelectFailure = {};\nexport type OPERATORSelectSuccess = IdentifyFlowOptionsResult;\n\nexport type IDETECTYOPERATOBYIPFailure = {};\nexport type IDETECTYOPERATOBYIPSuccess = IdentifyFlowOptionsResult;\n\nexport type IDENTIFY_OPERATOR_MSISDNEntrySuccess = IdentifyFlowOptionsResult;\n\nexport type IDENTIFY_FLOW_HESuccess = IdentifyFlowOptionsResult;\n\nexport type OPERATORSelectFlowIdentifyFailure = {};\nexport type OPERATORSelectFlowIdentifySuccess = {\n operators: Array<string>;\n msisdn?: string;\n nextAction: 'selectOperator';\n};\nexport type IDENTIFYFailure = {};\n\nexport type IDENTIFYSuccess = {};\n\nexport type IOperatorSelectFlowIdentifyPayload = {\n type: 'IDENTIFY_FLOW_BY_OPERATOR_SELECT';\n result: RDS.RemoteDataState<OPERATORSelectFlowIdentifyFailure, OPERATORSelectFlowIdentifySuccess>;\n};\n\n// export type IIdentifyByIPPayload= {\n// type:\"IDENTIFY_FLOW_BY_IP\"\n// result: RDS.RemoteDataState<IDENTIFYBYIPFailure, IDENTIFYBYIPSuccess>;\n// }\n\nexport type IDetectOperatorByIpPayload = {\n type: 'DETECT_OPERATOR_BY_IP';\n result: RDS.RemoteDataState<IDETECTYOPERATOBYIPFailure, IDETECTYOPERATOBYIPSuccess>;\n};\n\nexport enum PossibleTypes {\n IDENTIFY_STRATEGY = 'IDENTIFY_STRATEGY',\n IDENTIFY_FLOW_BY_MSISDN = 'IDENTIFY_FLOW_BY_MSISDN',\n IDENTIFY_FLOW_BY_OPERATOR_SELECT = 'IDENTIFY_FLOW_BY_OPERATOR_SELECT',\n PIN = 'PIN',\n MO = 'MO',\n MO_REDIR = 'MO_REDIR',\n ONE_CLICK = 'ONE_CLICK',\n CLICK2SMS = 'CLICK2SMS',\n USSD = 'USSD',\n TPAY_HE = 'TPAY_HE',\n CREDIT_CARD = 'CREDIT_CARD'\n}\n\nexport type IOperatorSelectPayload = {\n type: PossibleTypes;\n result: OPERATORSelectSuccess;\n};\n\nexport type ISubmitMsisdnPayload = {\n type: PossibleTypes;\n result: IDENTIFY_OPERATOR_MSISDNEntrySuccess;\n};\n\nexport type IIdentifyFlowByIpOperatorPayload = {\n type: PossibleTypes;\n result: IDENTIFY_OPERATOR_MSISDNEntrySuccess;\n};\n\nexport type IIdentifyFlowByHePayload = {\n type: PossibleTypes;\n result: IDENTIFY_FLOW_HESuccess;\n};\n\nexport type IIdentfyFlowByMsisdnNextAction = 'submitMSISDNAction' | 'loadOc2sms';\nexport type IIdentfyFlowByOperatorNextAction = 'submitMSISDNAction' | 'loadOc2sms';\nexport type IIdentfyFlowByIPOperatorNextAction = 'getRedirectUrlAction' | 'submitMSISDNAction';\n\nexport type IIdenyifyFlowByMsisdnSumbitNextData = {\n nextAction: IIdentfyFlowByMsisdnNextAction;\n msisdn?: string;\n operator?: string;\n};\n\nexport type IIdenyifyFlowByMsisdnPayload = {\n type: 'IDENTIFY_FLOW_BY_MSISDN';\n result: RDS.RemoteDataState<IDENTIFYMSISDNEntryFailure, IDENTIFYMSISDNEntrySuccess>;\n data: IIdenyifyFlowByMsisdnSumbitNextData;\n};\n\nexport type IIdenyifyStrategyPayload = {\n type: 'IDENTIFY_FLOW_BY_MSISDN';\n result: RDS.RemoteDataState<IDENTIFYMSISDNEntryFailure, IDENTIFYMSISDNEntrySuccess>;\n data: IIdenyifyFlowByMsisdnSumbitNextData;\n};\n\nexport type IStrategyCurrentState =\n | {\n type: 'IDENTIFY_STRATEGY';\n result: RDS.RemoteDataState<IDENTIFYFailure, IDENTIFYSuccess>;\n }\n | {\n type: 'IDENTIFY_FLOW_BY_OPERATOR_SELECT';\n result: OPERATORSelectFlowIdentifySuccess;\n }\n | {\n type: 'DETECT_OPERATOR_BY_IP';\n result: RDS.RemoteDataState<IDETECTYOPERATOBYIPFailure, IDETECTYOPERATOBYIPSuccess>;\n }\n | {\n type: 'HE_IDENTIFY';\n result: RDS.RemoteDataState<IDENTIFYFailure, IDENTIFYSuccess>;\n }\n | {\n type: 'OPERATOR_SELECT';\n result: RDS.RemoteDataState<OPERATORSelectFailure, OPERATORSelectSuccess>;\n config: IConfig;\n }\n | {\n type: 'IDENTIFY_FLOW_BY_MSISDN';\n result: RDS.RemoteDataState<IDENTIFYMSISDNEntryFailure, IDENTIFYMSISDNEntrySuccess>;\n nextData: IIdenyifyFlowByMsisdnSumbitNextData;\n }\n | {\n type: 'PIN';\n result: IdentifyFlowOptionsResult;\n }\n | {\n type: 'MO';\n result: IdentifyFlowOptionsResult;\n }\n | {\n type: 'USSD';\n result: IdentifyFlowOptionsResult;\n }\n | {\n type: 'MO_REDIR';\n result: IdentifyFlowOptionsResult;\n }\n | {\n type: 'ONE_CLICK';\n result: IdentifyFlowOptionsResult;\n }\n | {\n type: 'CLICK2SMS';\n result: IdentifyFlowOptionsResult;\n }\n | {\n type: 'TPAY_HE';\n result: IdentifyFlowOptionsResult;\n }\n | {\n type: 'CREDIT_CARD';\n result: IdentifyFlowOptionsResult;\n };\n\nexport type IStrategyIDentifyUserResult =\n | {\n success: 'true';\n rockman_id: string;\n msisdn: string;\n operator?: string;\n subscription_url?: string;\n redirect_url?: string;\n 'redirect-back'?: string;\n 'msisdn-alias'?: string;\n }\n | {\n success: 'false';\n rockman_id: string;\n message: string;\n 'redirect-back'?: string;\n };\n\nexport type IMockFlows = 'pin' | 'mo' | 'oneclick' | 'click2sms' | 'moredir' | 'ussd' | 'tpay' | 'creditcard';\n\nexport interface IMockFlowParams<T> {\n 'mock-flow': IMockFlows;\n 'current-state': T;\n 'show-pin-entry': '1' | '0';\n 'show-thank-you': '1' | '0';\n 'show-chain-link': '1' | '0';\n operator: string;\n msisdn?: string;\n 'subscription-url'?: string;\n show_custom_error?: string;\n product_url?: string;\n ui_show_default_flow?: '1' | '0';\n ui_show_pin_entry?: '1' | '0';\n}\n\nexport interface IScriptHeaderEnrichmentSuccess extends CustomEvent {\n detail: {\n msisdn: string;\n operator_code: string;\n subscription_url: boolean;\n encrypted_msisdn: boolean;\n };\n}\n\nexport interface ExtraStrategyData {\n isHeaderEnrichmentSuccess?: boolean;\n config?: ConfigDetails;\n msisdn?: string;\n rockman_id?: string;\n operator?: string;\n subscription_url?: string;\n redirect_url?: string;\n operators?: string[];\n}\nexport interface StrategyState {\n currentState: StrategyCurrentState;\n}\n\nexport interface StrategyCurrentState {\n type: PossibleTypes;\n result: RDS.RemoteDataState<any, any>;\n data?: ExtraStrategyData;\n}\n\nexport type IMockPinFlowStates = 'msisdn-state' | 'pin-state' | 'completed-state' | 'msisdn-failure-state';\n\nexport interface RootState {\n strategy?: StrategyState;\n pinFlow?: PinFlowState;\n moFlow?: MoFlowState;\n moRedirFlow?: MoRedirFlowState;\n click2smsFlow?: Click2smsFlowState;\n oneClickFlow?: OneClickFlowState;\n ussdFlow?: UssdFlowState;\n creditCardFlow?: CreditCardFlowState;\n}\n","/* eslint-disable no-param-reassign */\nimport { IVisitor } from '../common-types/IVisitor';\nimport queryString from '../pacman/queryString';\n\n// eslint-disable-next-line consistent-return\nexport default async function tryGetIPRangeName(visitor: IVisitor): Promise<string> {\n const mockip = queryString(window.location.href, 'mock-ip') || process.env.mock_ip;\n // eslint-disable-next-line no-console\n console.log('mockip', mockip);\n if (!visitor.ip && typeof window !== 'undefined') {\n try {\n const { host } = window.location;\n const newHost = window.DEV_BASE_URL_IP || host;\n const res = await fetch(`https://${newHost}/api/v1/ip${mockip ? `?mock-ip=${mockip}` : ''}`).then((x) =>\n x.json()\n );\n // return isIPInRange('37.200.146.28')\n visitor.ip = res.ip;\n visitor.ip_range_name = res.ip_range_name;\n return res.ip_range_name;\n } catch (ex) {\n console.warn('IP Lookup failed', ex);\n return '';\n }\n } else {\n return visitor.ip_range_name || '';\n }\n}\n","import { IError } from '../../common-types/IError';\nimport { IOptInFlowName } from '../../common-types/IOptInFlowName';\nimport { IStrategy, ISupportedFlows } from '../../common-types/Strategy';\nimport tryGetIPRangeName from '../../ips/tryGetIPRangeName';\nimport { HEResult, IConfig, IFlow, IIdentifyResult, PossibleTypes } from '../../sharedFlowTypes/StrategyTypes';\nimport { formatNumberToE164 } from '../../utilities/formatNumberToE164';\nimport { searchToObject } from '../../utilities/searchToObject';\nimport { identify } from './api';\n\nexport const flowMapping: Record<ISupportedFlows, PossibleTypes> = {\n mo: PossibleTypes.MO,\n pin: PossibleTypes.PIN,\n oneClick: PossibleTypes.ONE_CLICK,\n moRedir: PossibleTypes.MO_REDIR,\n click2sms: PossibleTypes.CLICK2SMS,\n ussd: PossibleTypes.USSD,\n tpayHe: PossibleTypes.TPAY_HE,\n creditCard: PossibleTypes.CREDIT_CARD\n};\n\n// @ts-ignore\nexport const trackerEventMapping: Record<ISupportedFlows, IOptInFlowName> = {\n mo: 'Msisdn to sms',\n pin: 'Pin',\n oneClick: '3G click',\n moRedir: 'Redirect',\n click2sms: 'Click to sms',\n tpayHe: 'Pin',\n ussd: 'Msisdn to sms'\n};\n\nexport const getTrackerEventName = (flowType: ISupportedFlows) => trackerEventMapping[flowType];\n\nexport async function determineFlowByMsidn({\n window,\n internationalMSISDN,\n configs\n}: {\n window: Window;\n internationalMSISDN: string;\n configs: IStrategy;\n}): Promise<IFlow> {\n if (!internationalMSISDN) {\n const submissionError = new Error(`Error in submitMSISDN() identify action`) as IError;\n submissionError.type = 'SEInvalidMSISDN';\n throw submissionError;\n }\n const msisdn = internationalMSISDN.match(/\\d+/gi)?.join('') || ''; // tallyman API expects international msisdn without unknown special character\n const defaultFlowConfig = configs?.strategyConfigs?.default;\n const config = defaultFlowConfig.flowConfig;\n const operatorsConfig = configs?.strategyConfigs?.operators;\n\n const indentifyFlow = async (): Promise<IIdentifyResult> => {\n const { slug, country, device } = config;\n const { rockmanId } = window.pac_analytics.visitor;\n const { offer } = window.pac_analytics.visitor;\n const flowOperatorResult: IIdentifyResult = await identify({\n window,\n slug,\n country,\n msisdn,\n device,\n offer,\n rockmanId\n });\n return flowOperatorResult;\n };\n const theResult = await indentifyFlow();\n\n const flow = operatorsConfig[theResult.operator] ? operatorsConfig[theResult.operator] : null;\n const cannotDetect =\n theResult.success === false && theResult.message === 'Operator could not be found for the given MSISDN';\n const hlrError =\n theResult.success === false && theResult.message?.indexOf('HLR did not find the operator for given MSISDN') !== -1;\n\n if (cannotDetect || hlrError) {\n const submissionError = new Error(`Error in submitMSISDN() identify action`) as IError & { msisdn: string };\n submissionError.type = 'FlowDetectFailed';\n submissionError.msisdn = msisdn;\n throw submissionError;\n } else if (flow !== null) {\n const flowObj = { operator: theResult.operator, default: defaultFlowConfig, ...flow };\n // @ts-ignore\n return flowObj;\n } else if (flow === null) {\n const flowObj = { operator: theResult.operator, ...defaultFlowConfig };\n // @ts-ignore\n return flowObj;\n } else {\n const submissionError = new Error(`Error in submitMSISDN() identify action`) as IError;\n submissionError.type = 'SEInvalidMSISDN';\n throw submissionError;\n }\n}\n\nexport function determineFlowByOperator({ configs, operator }: { configs: IStrategy; operator: string }): IFlow {\n const defaultFlowConfig = configs?.strategyConfigs?.default;\n const operatorsConfig = configs?.strategyConfigs?.operators;\n\n const flowObj = {\n operator: operator?.toUpperCase(),\n default: defaultFlowConfig,\n ...operatorsConfig[operator?.toUpperCase()]\n };\n // @ts-ignore\n return flowObj;\n}\n\nexport async function determineFlowByOperatorFromIp({\n window,\n configs\n}: {\n window: Window;\n configs: IStrategy;\n}): Promise<IFlow> {\n const operator = await tryGetIPRangeName(window.pac_analytics.visitor);\n const flowObj = determineFlowByOperator({\n configs,\n operator: operator && operator.includes('_') ? operator.toUpperCase() : ''\n });\n return flowObj;\n}\n\nexport function getOperators({ configs }: { configs: IStrategy }): Array<string> {\n const operatorsConfig = configs?.strategyConfigs?.operators;\n const operators = Object.keys(operatorsConfig);\n return operators;\n}\n\nexport const getHeaderEnrichmentResult = async (): Promise<HEResult> => {\n if (typeof window === 'undefined') {\n throw new Error('This function can only be run in a browser environment.');\n }\n\n const searchObj = searchToObject(window) as any; // Assumes the implementation of searchToObject\n if (searchObj.success === 'false') {\n throw new Error(`Error in getRedirectUrl() identify-user action:\\n${searchObj.message || 'NotOn3g'}`);\n }\n const resonseUrl = searchObj.subscription_url || searchObj.redirect_url;\n\n if (resonseUrl) {\n const decodedUrl = window.atob(resonseUrl);\n const newUrl = new URL(decodedUrl);\n const urlParams = new URLSearchParams(newUrl.search);\n\n let msisdn = urlParams.get('msisdn') || searchObj.msisdn;\n const operator = urlParams.get('operator') || searchObj.operator;\n\n if (msisdn) {\n msisdn = formatNumberToE164(msisdn, window?.pac_analytics?.visitor?.country);\n }\n\n return {\n msisdn: msisdn || '',\n operator: operator || '',\n subscription_url: searchObj.subscription_url ? decodedUrl : undefined,\n redirect_url: searchObj.redirect_url ? decodedUrl : undefined\n };\n }\n console.error('No URL provided for redirection in the url params');\n\n const newUrl = new URL(window.location.href);\n const urlParams = new URLSearchParams(newUrl.search);\n\n let msisdn = urlParams.get('msisdn') || searchObj.msisdn;\n const operator = urlParams.get('operator') || searchObj.operator;\n\n if (msisdn) {\n msisdn = formatNumberToE164(msisdn, window?.pac_analytics?.visitor?.country);\n }\n\n return {\n msisdn: msisdn || '',\n operator: operator || ''\n };\n};\n\nexport const subscribe: (_url: string) => Promise<string> = async (_url: string) =>\n // const result:ISubscribeResult = await fetch(url + \"&operator=kw_viva\").then((x)=>x.json())\n\n // if(false === result.success){\n // const subscribeError = new Error(`Error in subscribe() one-click-subscribe action:\\n${result.message}`) as IError & {type:string;}\n // subscribeError['type'] = \"SubscriptionError\";\n // throw subscribeError\n // }else{\n '/product';\n// }\n\nexport function mockConfig({ configs, flow }: { configs: IStrategy; flow: string }): IConfig {\n const defaultFlowConfig = configs?.strategyConfigs?.default;\n const operatorsConfig = configs?.strategyConfigs?.operators;\n const opArr = Object.keys(operatorsConfig);\n const r = opArr.filter((o) => operatorsConfig[o].flow === flow);\n const operator = r[0];\n const flowObj = { offer: '1', operator, default: defaultFlowConfig, ...operatorsConfig[operator] };\n\n return flowObj;\n}\n\n// export const mockedPinFlow: StrategyState = {\n// currentState: {\n// type: PossibleTypes.PIN,\n// result: RDS.NothingYet(),\n// data: {\n// config: mockConfig('pin')\n// }\n// }\n// };\n\n// export const mockedMoFlow: StrategyState = {\n// currentState: {\n// type: PossibleTypes.MO,\n// result: RDS.NothingYet(),\n// data: {\n// config: mockConfig('mo')\n// }\n// }\n// };\n\n// export const mockedUssdFlow: StrategyState = {\n// currentState: {\n// type: PossibleTypes.USSD,\n// result: RDS.NothingYet(),\n// data: {\n// config: mockConfig('ussd')\n// }\n// }\n// };\n\n// export const mockedMoRdirFlow: StrategyState = {\n// currentState: {\n// type: PossibleTypes.MO_REDIR,\n// result: RDS.NothingYet(),\n// data: {\n// config: mockConfig('moRedir')\n// }\n// }\n// };\n\n// export const mockedClick2smsFlow: StrategyState = {\n// currentState: {\n// type: PossibleTypes.CLICK2SMS,\n// result: RDS.NothingYet(),\n// data: {\n// config: mockConfig('click2sms')\n// }\n// }\n// };\n\n// export const mockedOneClickFlow: StrategyState = {\n// currentState: {\n// type: PossibleTypes.ONE_CLICK,\n// result: RDS.NothingYet(),\n// data: {\n// config: mockConfig('oneClick')\n// }\n// }\n// };\n\n// export const mockedCreditCardFlow: StrategyState = {\n// currentState: {\n// type: PossibleTypes.CREDIT_CARD,\n// result: RDS.NothingYet(),\n// data: {\n// config: mockConfig('creditCard')\n// }\n// }\n// };\n// export const mockedMOFlow : State = { type: \"MO\", result:moFlow(mockTracker, mockConfig(\"mo\"))}\n// export const mockedOneClickFlow : State = { type: \"ONECLICK\", result:oneClickFlow(mockTracker, mockConfig(\"oneClick\"), {\"testextraparams\":\"1\"})}\n// export const mockedClick2smsFlow : State = { type: \"CLICK2SMS\", result:click2smsFlow(mockTracker, mockConfig(\"click2sms\"))}\n// export const mockedMORedirFlow : State = { type: \"MOREDIR\", result:moRedirFlow(mockTracker, mockConfig(\"moRedir\"))}\n","import { createAsyncThunk } from '@reduxjs/toolkit';\nimport * as RDS from '../../../common-types/RemoteDataState';\nimport { getConfig } from '../../../utilities/getConfig';\nimport { tracker } from '../../../utilities/tracker';\n\nimport {\n IDENTIFYMSISDNEntryErrorTypes,\n ISupportedFlows,\n PossibleTypes,\n StrategyCurrentState\n} from '../../../sharedFlowTypes/StrategyTypes';\nimport { determineFlowByMsidn, flowMapping, getTrackerEventName } from '../main';\n\nexport const askMobileNumber = (): StrategyCurrentState => ({\n type: PossibleTypes.IDENTIFY_FLOW_BY_MSISDN,\n result: RDS.NothingYet()\n});\n\nexport const submitMSISDNAction = createAsyncThunk(\n 'strategy/submitMSISDNAction',\n async (\n {\n window,\n msisdn\n }: {\n window: Window;\n msisdn: string;\n isHeSuccess?: boolean;\n },\n { rejectWithValue }\n ) => {\n try {\n const configs = getConfig();\n const flowObj = await determineFlowByMsidn({ window, internationalMSISDN: msisdn, configs });\n const flowType = flowObj?.flow;\n const event = getTrackerEventName(flowType);\n const defaultConfig = configs?.strategyConfigs?.default;\n const defaultFlowType = defaultConfig?.flow as ISupportedFlows;\n\n if (!flowMapping[flowType]) {\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig\n }\n };\n }\n tracker.sendOptInFlowEvent(event);\n return {\n type: flowMapping[flowType],\n result: RDS.NothingYet(),\n data: {\n config: flowObj.flowConfig,\n operator: flowObj.operator,\n msisdn\n }\n };\n } catch (ex) {\n let errorType: IDENTIFYMSISDNEntryErrorTypes;\n switch (ex.type) {\n case 'SEAlreadySubscribed':\n errorType = 'AlreadySubscribed';\n break;\n case 'SEInvalidMSISDN':\n errorType = 'InvalidMSISDN';\n break;\n default:\n errorType = 'UnknownError';\n }\n return rejectWithValue({\n errorType,\n error: ex,\n productUrl: ex.productUrl\n });\n }\n }\n);\n","import { createAsyncThunk } from '@reduxjs/toolkit';\nimport * as RDS from '../../../common-types/RemoteDataState';\n\nimport { PossibleTypes, StrategyCurrentState } from '../../../sharedFlowTypes/StrategyTypes';\nimport { getConfig } from '../../../utilities/getConfig';\nimport { tracker } from '../../../utilities/tracker';\nimport { determineFlowByOperator, flowMapping, getOperators, getTrackerEventName } from '../main';\n\nexport const askOperator = (): StrategyCurrentState => {\n const configs = getConfig();\n const operators = getOperators({ configs });\n return {\n type: PossibleTypes.IDENTIFY_FLOW_BY_OPERATOR_SELECT,\n result: RDS.NothingYet(),\n data: {\n operators\n }\n };\n};\n\nexport const selectOperatorAction = createAsyncThunk(\n 'strategy/selectOperatorAction',\n async (\n {\n operator\n }: {\n operator: string;\n },\n { rejectWithValue }\n ) => {\n try {\n const configs = getConfig();\n\n const flowObj = determineFlowByOperator({\n configs,\n operator\n });\n\n const flowType = flowObj.flow;\n const event = getTrackerEventName(flowType);\n\n tracker.sendOptInFlowEvent(event);\n\n return {\n type: flowMapping[flowType],\n result: RDS.NothingYet(),\n data: {\n config: flowObj.flowConfig,\n operator: flowObj.operator\n }\n };\n } catch (ex) {\n const errorType = 'UnkownError';\n return rejectWithValue({\n errorType,\n error: ex.toString()\n });\n }\n }\n);\n","import * as RDS from '../../../common-types/RemoteDataState';\nimport { IStrategyNames, ISupportedFlows } from '../../../common-types/Strategy';\n\nimport { getConfig } from '../../../utilities/getConfig';\nimport { tracker } from '../../../utilities/tracker';\nimport { determineFlowByOperatorFromIp, flowMapping, getTrackerEventName } from '../main';\nimport { askMobileNumber } from './askMobileNumber';\nimport { askOperator } from './askOperator';\n\nconst detectOperatorByIp = async (strategy?: IStrategyNames) => {\n try {\n const configs = getConfig();\n\n const flowObj = await determineFlowByOperatorFromIp({\n window,\n configs\n });\n const defaultConfig = configs?.strategyConfigs?.default;\n const defaultFlowType = defaultConfig?.flow as ISupportedFlows;\n\n if (\n !flowObj.flow &&\n (strategy === 'all-flows-detect-operator-by-ip-or-ask-mobile-number' ||\n strategy === 'all-flows-ask-mobile-number')\n ) {\n return askMobileNumber();\n }\n\n if (!flowObj.flow && strategy === 'all-flows-detect-operator-by-ip-or-ask-operator') {\n return askOperator();\n }\n\n const flowType = flowObj.flow;\n if (!flowMapping[flowType]) {\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig\n }\n };\n }\n const event = getTrackerEventName(flowType);\n\n tracker.sendOptInFlowEvent(event);\n\n return {\n type: flowMapping[flowType],\n result: RDS.NothingYet(),\n data: {\n config: flowObj.flowConfig,\n operator: flowObj.operator\n }\n };\n } catch (ex) {\n console.error('error', ex);\n }\n};\n\nexport { detectOperatorByIp };\n","import * as RDS from '../../../common-types/RemoteDataState';\nimport {\n IConfig,\n IFlow,\n IScriptHeaderEnrichmentSuccess,\n ISupportedFlows,\n PossibleTypes\n} from '../../../sharedFlowTypes/StrategyTypes';\nimport { formatNumberToE164 } from '../../../utilities/formatNumberToE164';\nimport { getConfig } from '../../../utilities/getConfig';\nimport { tracker } from '../../../utilities/tracker';\nimport { determineFlowByOperator, flowMapping, getTrackerEventName } from '../main';\n\n/**\n * Creates a response object with the given parameters.\n *\n * @param {string} msisdn - The MSISDN (Mobile Station International Subscriber Directory Number).\n * @param {IConfig} config - The configuration object.\n * @param {string | null} operator - The operator (default: null).\n * @return {object} The response that sets the state.\n */\nconst createResponseObject = (config: IConfig, flow?: ISupportedFlows) => ({\n type: flowMapping[flow] || PossibleTypes.PIN,\n result: RDS.NothingYet(),\n data: {\n config\n }\n});\n\n/**\n * Injects header enrichment script based on the provided window object.\n *\n * @param {Window} window - The window object containing analytics visitor details.\n * @return {Promise} A promise that resolves based on specific events or timeouts.\n */\nconst injectHeaderEnrichmentScript = async ({ window }: { window: Window }) => {\n const configs = getConfig();\n const enableScriptTimer = configs?.enableScriptTimer;\n const { strategyConfigs } = configs;\n const config = strategyConfigs?.default?.flowConfig;\n\n return new Promise((resolve) => {\n try {\n let heMsisdn = window?.pac_analytics?.visitor?.heMsisdn;\n const country = window?.pac_analytics?.visitor?.country;\n\n if (heMsisdn && country) {\n heMsisdn = formatNumberToE164(heMsisdn, country);\n }\n\n let msisdnDetected = false;\n let timerExpired = false;\n let timerId: string | number | NodeJS.Timeout;\n\n if (enableScriptTimer) {\n timerId = setTimeout(() => {\n if (!msisdnDetected) {\n timerExpired = true;\n tracker.customEvent('Flow', 'recede-auto', 'msisdn-detection-failure', {\n errorType: '3 second timer expired'\n });\n\n window.isPrelanderClicked = true;\n resolve({\n type: PossibleTypes.PIN,\n result: RDS.Success({}),\n data: {\n config: strategyConfigs?.default?.flowConfig\n }\n });\n }\n }, 3000);\n }\n\n const onSuccess = (event: Event) => {\n const { detail } = event as IScriptHeaderEnrichmentSuccess;\n heMsisdn = detail?.msisdn;\n if (detail?.msisdn && !detail?.encrypted_msisdn) {\n heMsisdn = formatNumberToE164(detail.msisdn, country);\n window.msisdn = heMsisdn;\n } else {\n window.msisdn = detail?.msisdn;\n window.is_encrypted_msisdn = detail?.encrypted_msisdn;\n }\n\n if (enableScriptTimer) {\n if (!timerExpired) {\n msisdnDetected = true;\n clearTimeout(timerId);\n\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-detected', {\n msisdn: heMsisdn\n });\n const flowObj = determineFlowByOperator({\n configs: getConfig(),\n operator: detail?.operator_code\n });\n window.removeEventListener('he-success', onSuccess);\n window.removeEventListener('he-fail', onFail);\n resolve(headerEnrichmentScript(flowObj, heMsisdn, detail?.operator_code, true));\n }\n } else {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-detected', {\n msisdn: heMsisdn,\n operator: detail?.operator_code\n });\n const flowObj = determineFlowByOperator({\n configs: getConfig(),\n operator: detail?.operator_code\n });\n window.removeEventListener('he-success', onSuccess);\n window.removeEventListener('he-fail', onFail);\n resolve(headerEnrichmentScript(flowObj, heMsisdn, detail?.operator_code, true));\n }\n };\n\n const onFail = () => {\n window.removeEventListener('he-success', onSuccess);\n window.removeEventListener('he-fail', onFail);\n resolve(createResponseObject(config, strategyConfigs?.default.flow as ISupportedFlows));\n };\n\n window.addEventListener('he-success', onSuccess);\n window.addEventListener('he-fail', onFail);\n\n if (!window?.heScriptUrl) {\n tracker.customEvent('Flow', 'recede-auto', 'msisdn-detection-failure', {\n errorType: 'Error he script url not set'\n });\n window.dispatchEvent(new Event('he-fail'));\n return;\n }\n window.addEventListener('error', (event) => {\n console.error('Global error:', event?.error);\n tracker.customEvent('Flow', 'recede-auto', 'global-error', {\n errorMessage: event?.error?.message,\n errorStack: event?.error?.stack\n });\n });\n const script = document.createElement('script');\n script.type = 'text/javascript';\n script.id = 'he-js-link';\n script.src = `${window.heScriptUrl}`; // URL Comes from server\n script.referrerPolicy = 'origin';\n document.head.appendChild(script);\n\n script.onerror = (error: any) => {\n console.error('Error loading Header Enrichment script.');\n tracker.customEvent('Flow', 'recede-auto', 'msisdn-detection-failure', {\n errorType: 'Error loading Header Enrichment script',\n errorMessage: error.message\n });\n window.dispatchEvent(new Event('he-fail'));\n };\n } catch (err) {\n console.error('Error in header enrichment:', err);\n resolve(createResponseObject(config, strategyConfigs?.default.flow as ISupportedFlows));\n }\n });\n};\n\nconst headerEnrichmentScript = (\n flowObj: IFlow,\n msisdn: string | null = null,\n operator: string | null = null,\n isHeaderEnrichmentSuccess: boolean\n) => {\n const defaultConfig = getConfig().strategyConfigs?.default;\n const defaultFlowType = defaultConfig?.flow;\n const flowType = flowObj.flow || flowObj.default?.flow;\n const event = getTrackerEventName(flowType);\n\n tracker.sendOptInFlowEvent(event);\n\n if (!flowObj.flow) {\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig,\n operator,\n msisdn,\n isHeaderEnrichmentSuccess\n }\n };\n }\n\n return {\n type: flowMapping[flowType],\n result: RDS.NothingYet(),\n data: {\n config: flowObj.flowConfig,\n operator: flowObj.operator,\n isHeaderEnrichmentSuccess\n }\n };\n};\n\nexport { injectHeaderEnrichmentScript };\n","import { createAsyncThunk, createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport * as RDS from '../../common-types/RemoteDataState';\nimport { searchToObject } from '../../utilities/searchToObject';\n\nimport {\n IMockFlowParams,\n IMockPinFlowStates,\n ISupportedFlows,\n PossibleTypes,\n RootState,\n StrategyCurrentState,\n StrategyState\n} from '../../sharedFlowTypes/StrategyTypes';\nimport { getConfig } from '../../utilities/getConfig';\nimport { determineFlowByOperator, flowMapping } from './main';\nimport { askMobileNumber, submitMSISDNAction } from './strategies/askMobileNumber';\nimport { askOperator, selectOperatorAction } from './strategies/askOperator';\n\nimport { tracker } from '../../utilities/tracker';\nimport { detectOperatorByIp } from './strategies/detectOperatorByIp';\nimport { handleHeaderEnrichment } from './strategies/headerEnrichment';\nimport { injectHeaderEnrichmentScript } from './strategies/injectHeaderEnrichmentScript';\n\nwindow.tracker = tracker;\nconst initialState: StrategyState = {\n currentState: {\n type: PossibleTypes.IDENTIFY_STRATEGY,\n result: RDS.NothingYet(),\n data: undefined\n }\n};\n\nconst mockStrategyStateByUrlParam = (): StrategyCurrentState => {\n const search = searchToObject(window) as IMockFlowParams<any>;\n\n if (search['mock-flow'] !== undefined) {\n if (search.operator !== undefined) {\n window.operator = search.operator;\n }\n\n switch (search['mock-flow']) {\n case 'pin':\n return {\n type: PossibleTypes.PIN,\n result: RDS.Success({})\n };\n\n case 'mo':\n return {\n type: PossibleTypes.MO,\n result: RDS.Success({})\n };\n case 'moredir':\n return {\n type: PossibleTypes.MO_REDIR,\n result: RDS.Success({})\n };\n case 'oneclick':\n return {\n type: PossibleTypes.ONE_CLICK,\n result: RDS.Success({}),\n data: {\n subscription_url: search['subscription-url']\n }\n };\n case 'click2sms':\n return {\n type: PossibleTypes.CLICK2SMS,\n result: RDS.Success({})\n };\n case 'ussd':\n return {\n type: PossibleTypes.USSD,\n result: RDS.Success({})\n };\n case 'creditcard':\n return {\n type: PossibleTypes.CREDIT_CARD,\n result: RDS.Success({})\n };\n default:\n throw new Error('(mockStrategyStateByUrlParam) Strategy Mock Flow not supported');\n }\n }\n};\n\n/**\n * Identify Strategy\n * @returns {type: 'strategy/identifyStrategy', payload: {type: PossibleTypes.MO, result: IdentifyFlowOptionsResult}}\n * - Add type\n * - Makes a decision on which strategy to use in order to identify the flow\n * - Strategy could be asking user's phone number, selecting an operator etc\n * - all with the intension of getting the flow and its configuration\n * - Flows are usually tied to an operator in the pages config.json\n * - But they could also be single flows\n *\n */\n\nexport const identifyStrategy = createAsyncThunk('strategy/identifyStrategy', async () => {\n const configs = getConfig();\n const { strategy, strategyConfigs } = configs;\n // const { isUseMsisdnPrefix } = strategyConfigs;\n const search = searchToObject(window) as IMockFlowParams<IMockPinFlowStates>;\n if (search['mock-flow'] !== undefined) {\n return mockStrategyStateByUrlParam();\n }\n if (search.ui_show_default_flow === '1') {\n const flow = strategyConfigs?.default.flow as ISupportedFlows;\n const config = strategyConfigs?.default?.flowConfig;\n return {\n type: flowMapping[flow],\n result: RDS.NothingYet(),\n data: {\n config\n }\n };\n }\n if (\n (search['show-pin-entry'] && search['show-pin-entry'] === '1') ||\n (search['show-thank-you'] && search['show-thank-you'] === '1') ||\n (search.show_custom_error && search.show_custom_error === '1')\n ) {\n const flowObj = determineFlowByOperator({\n configs,\n operator: search.operator\n });\n const strategyResult: StrategyCurrentState = {\n type: PossibleTypes.PIN,\n result: RDS.Success({}),\n data: {\n config: flowObj?.flowConfig || strategyConfigs?.default?.flowConfig\n }\n };\n return strategyResult;\n }\n\n if (strategy.includes('ask-operator')) {\n return askOperator();\n }\n if (strategy.includes('detect-operator-by-ip')) {\n return detectOperatorByIp(strategy);\n }\n if (strategy?.includes('ask-mobile-number')) {\n return askMobileNumber();\n }\n\n if (strategy?.includes('header-enrichment') && strategy !== 'header-enrichment-script') {\n const n = await handleHeaderEnrichment();\n // @ts-ignore\n return n;\n }\n\n switch (strategy) {\n // REOVING THIS AS IT INJECTS UNUSED CODE\n case 'header-enrichment-script':\n // eslint-disable-next-line no-return-await\n return injectHeaderEnrichmentScript({\n window\n });\n case 'pin': {\n tracker.sendOptInFlowEvent('Pin');\n return {\n type: PossibleTypes.PIN,\n result: RDS.Success({}),\n data: {\n config: strategyConfigs?.default?.flowConfig\n }\n };\n }\n case 'mo':\n tracker.sendOptInFlowEvent('Msisdn to sms');\n return {\n type: PossibleTypes.MO,\n result: RDS.Success({}),\n data: {\n config: strategyConfigs?.default?.flowConfig\n }\n };\n case 'mo-redir':\n return {\n type: PossibleTypes.MO_REDIR,\n result: RDS.Success({}),\n data: {\n config: strategyConfigs?.default?.flowConfig\n }\n };\n case 'one-click':\n tracker.sendOptInFlowEvent('Redirect');\n return {\n type: PossibleTypes.ONE_CLICK,\n result: RDS.Success({}),\n data: {\n config: strategyConfigs?.default?.flowConfig\n }\n };\n case 'click2sms':\n tracker.sendOptInFlowEvent('Click to sms');\n return {\n type: PossibleTypes.CLICK2SMS,\n result: RDS.Success({}),\n data: {\n config: strategyConfigs?.default?.flowConfig\n }\n };\n case 'ussd':\n tracker.sendOptInFlowEvent('USSD');\n return {\n type: PossibleTypes.USSD,\n result: RDS.Success({}),\n data: {\n config: strategyConfigs?.default?.flowConfig\n }\n };\n case 'credit-card':\n // @ts-ignore\n tracker.sendOptInFlowEvent('Credit card');\n return {\n type: PossibleTypes.CREDIT_CARD,\n result: RDS.Success({}),\n data: {\n config: strategyConfigs?.default?.flowConfig\n }\n };\n default:\n throw new Error('Strategy not supported');\n }\n});\n\nexport const setStrategyExtraData = createAsyncThunk(\n 'strategy/setStrategyExtraData',\n async ({ type, data }: { type: PossibleTypes; data: any }) => ({\n type,\n result: RDS.NothingYet(),\n data\n })\n);\n\nexport const strategySlice = createSlice({\n name: 'strategy',\n initialState,\n reducers: {\n // Define synchronous reducers as needed\n },\n extraReducers: (builder) => {\n // @ts-ignore\n builder\n .addCase(identifyStrategy.pending, (state) => {\n state.currentState = {\n type: PossibleTypes.IDENTIFY_STRATEGY,\n result: RDS.Loading()\n };\n })\n // @ts-ignore\n .addCase(identifyStrategy.fulfilled, (state, action: PayloadAction<StrategyCurrentState>) => {\n state.currentState = action.payload;\n })\n .addCase(identifyStrategy.rejected, (state, action) => {\n state.currentState = {\n type: PossibleTypes.IDENTIFY_STRATEGY,\n result: RDS.Failure(action.error.message)\n };\n })\n .addCase(submitMSISDNAction.pending, (state) => {\n state.currentState = {\n type: PossibleTypes.IDENTIFY_FLOW_BY_MSISDN,\n result: RDS.Loading()\n };\n })\n .addCase(submitMSISDNAction.fulfilled, (state, action: PayloadAction<StrategyCurrentState>) => {\n state.currentState = action.payload;\n })\n .addCase(submitMSISDNAction.rejected, (state, action) => {\n state.currentState = {\n type: PossibleTypes.IDENTIFY_FLOW_BY_MSISDN,\n result: RDS.Failure(action.payload)\n };\n })\n .addCase(setStrategyExtraData.fulfilled, (state, action) => {\n state.currentState = action.payload;\n })\n .addCase(selectOperatorAction.pending, (state) => {\n state.currentState = {\n type: PossibleTypes.IDENTIFY_FLOW_BY_OPERATOR_SELECT,\n result: RDS.Loading()\n };\n })\n .addCase(selectOperatorAction.fulfilled, (state, action: PayloadAction<any>) => {\n state.currentState = action.payload;\n })\n .addCase(selectOperatorAction.rejected, (state, action) => {\n state.currentState = {\n type: PossibleTypes.IDENTIFY_FLOW_BY_OPERATOR_SELECT,\n result: RDS.Failure(action.payload)\n };\n });\n }\n});\n\nexport const selectStrategyState = (state: RootState) => state.strategy;\nexport const strategyReducer = strategySlice.reducer;\n","import * as RDS from '../../../common-types/RemoteDataState';\n\nimport { ISupportedFlows } from '../../../sharedFlowTypes/StrategyTypes';\nimport { getConfig } from '../../../utilities/getConfig';\nimport { searchToObject } from '../../../utilities/searchToObject';\nimport { tracker } from '../../../utilities/tracker';\nimport { determineFlowByOperator, flowMapping, getHeaderEnrichmentResult, getTrackerEventName } from '../main';\n\nconst handleHeaderEnrichment = async () => {\n const configs = getConfig();\n const defaultConfig = configs?.strategyConfigs.default;\n const defaultFlowType = defaultConfig.flow as ISupportedFlows;\n\n try {\n const search = searchToObject(window) as { operator: string; msisdn: string };\n const isHeaderEnrichmentSuccess = search?.msisdn && search?.msisdn !== '';\n if (isHeaderEnrichmentSuccess) {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-detected', {\n msisdn: search?.msisdn,\n operator: search?.operator\n });\n }\n if (!search?.operator) {\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig\n }\n };\n }\n\n if (configs.strategy === 'pin-header-enrichment' && isHeaderEnrichmentSuccess) {\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig,\n operator: search?.operator || null,\n msisdn: search?.msisdn || null,\n isHeaderEnrichmentSuccess\n }\n };\n }\n\n let subscription_url = null;\n let redirect_url = null;\n const flowObj = await determineFlowByOperator({\n operator: search?.operator,\n configs\n });\n const flowType = flowObj.flow || defaultFlowType;\n const event = getTrackerEventName(flowType);\n\n tracker.sendOptInFlowEvent(event);\n\n if (flowType === 'oneClick') {\n const heResult = await getHeaderEnrichmentResult();\n subscription_url = heResult?.subscription_url || null;\n redirect_url = heResult?.redirect_url || null;\n }\n\n return {\n type: flowMapping[flowType],\n result: RDS.NothingYet(),\n data: {\n config: flowObj.flowConfig,\n operator: flowObj.operator,\n subscription_url: subscription_url || null,\n redirect_url: redirect_url || null,\n isHeaderEnrichmentSuccess\n }\n };\n } catch (ex) {\n console.error('error', ex);\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig\n }\n };\n }\n};\n\nexport { handleHeaderEnrichment };\n"],"names":["PossibleTypes","tryGetIPRangeName","visitor","mockip","queryString","window","location","href","process","env","mock_ip","console","log","ip","host","newHost","DEV_BASE_URL_IP","fetch","concat","then","x","json","res","_a","sent","ip_range_name","warn","ex_1","flowMapping","mo","MO","pin","PIN","oneClick","ONE_CLICK","moRedir","MO_REDIR","click2sms","CLICK2SMS","ussd","USSD","tpayHe","TPAY_HE","creditCard","CREDIT_CARD","trackerEventMapping","getTrackerEventName","flowType","determineFlowByMsidn","internationalMSISDN","configs","submissionError","Error","type","msisdn","_b","match","join","defaultFlowConfig","_c","strategyConfigs","default","config","flowConfig","operatorsConfig","_d","operators","indentifyFlow","__awaiter","_this","slug","country","device","rockmanId","pac_analytics","offer","identify","theResult","_f","flow","operator","cannotDetect","success","message","hlrError","_e","indexOf","__assign","determineFlowByOperator","toUpperCase","determineFlowByOperatorFromIp","includes","askMobileNumber","IDENTIFY_FLOW_BY_MSISDN","result","RDS.NothingYet","submitMSISDNAction","createAsyncThunk","rejectWithValue","getConfig","flowObj","event_1","defaultConfig","defaultFlowType","tracker","sendOptInFlowEvent","data","errorType","error","productUrl","askOperator","Object","keys","getOperators","IDENTIFY_FLOW_BY_OPERATOR_SELECT","selectOperatorAction","ex","toString","detectOperatorByIp","strategy","createResponseObject","injectHeaderEnrichmentScript","enableScriptTimer","Promise","resolve","heMsisdn_1","heMsisdn","country_1","formatNumberToE164","timerId_1","msisdnDetected_1","timerExpired_1","setTimeout","customEvent","isPrelanderClicked","RDS.Success","onSuccess_1","event","detail","encrypted_msisdn","is_encrypted_msisdn","clearTimeout","operator_code","removeEventListener","onFail_1","headerEnrichmentScript","addEventListener","heScriptUrl","dispatchEvent","Event","errorMessage","errorStack","stack","script","document","createElement","id","src","referrerPolicy","head","appendChild","onerror","err","isHeaderEnrichmentSuccess","initialState","currentState","IDENTIFY_STRATEGY","undefined","mockStrategyStateByUrlParam","search","searchToObject","subscription_url","identifyStrategy","ui_show_default_flow","show_custom_error","redirect_url","searchObj","resonseUrl","decodedUrl","atob","newUrl_1","URL","urlParams_1","URLSearchParams","msisdn_1","get","operator_1","newUrl","urlParams","heResult","_k","_g","_h","_j","setStrategyExtraData","strategyReducer","createSlice","name","reducers","extraReducers","builder","addCase","pending","state","RDS.Loading","fulfilled","action","payload","rejected","RDS.Failure","reducer"],"mappings":"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"}
package/dist/ussdFlow.js CHANGED
@@ -1,2 +1,2 @@
1
- import{__awaiter as t,__generator as r,__assign as e,__read as n}from"tslib";import{createAsyncThunk as s,createSlice as o}from"@reduxjs/toolkit";import{S as a,L as i,F as c,N as u}from"./RemoteDataState-lcf8PfJd.js";import{checkSubscriptionHander as d}from"./checkSubscriptionHander.js";import{searchToObject as l}from"./searchToObject.js";import{s as m}from"./storeMsisdn-Cjq8_qYH.js";import{t as f}from"./tracker-DaaILhEr.js";import{i as p}from"./strategySlice-JTBaGYpl.js";import"./helpers-xPhGBX-B.js";import"pacman-client";import"uuid";import"./getConfig.js";import"./formatNumberToE164-Bd0VHMHJ.js";import"./api-CqJrSvqq.js";var v=function(t){return t((function(t){return t.ussdFlow.currentState}))};function S(t){var r=t.msisdnEntry;return function(t){return t.type,r(t.result)}}var y=function(s,o,a,i,c,u,d,l,m){return t(void 0,void 0,void 0,(function(){var t,f,p;return r(this,(function(r){return t=new URLSearchParams(e({action:"ussd",slug:o,country:a,msisdn:i,device:c,offerId:u.toString(),rockman_id:d},l&&{search:l})),m&&m.split("&").forEach((function(r){var e=n(r.split("="),2),s=e[0],o=e[1];s&&t.append(s,o)})),f=s.DEV_BASE_URL||"",p="".concat(f,"/tallyman/v1/?").concat(t.toString()),[2,fetch(p).then((function(t){return t.json()}))]}))}))};function h(n,s,o,a){return t(this,void 0,void 0,(function(){var t;return r(this,(function(r){return t=e({offer:n.pac_analytics.visitor.offer},s||{}),[2,w(n,t,o,a)]}))}))}function w(e,n,s,o){return t(this,void 0,void 0,(function(){var t,a,i,c,u,d,l,m,f,p,v;return r(this,(function(r){switch(r.label){case 0:return t=n.slug,a=n.country,i=n.device,c=n.offer,u=e.location.search.substr(1)||"",d=o?"&".concat(Object.keys(o).map((function(t){return"".concat(t,"=").concat(o[t])})).join("&")):"",l=s.match(/\d+/gi).join(""),m=e.pac_analytics.visitor.rockmanId,[4,y(e,t,a,l,i,c,m,u,d)];case 1:if(!1===(f=r.sent()).success)throw p="ALREADY SUBSCRIBED"===f.message?"AlreadySubscribed":"InvalidMSISDN",(v=new Error("".concat(p,":\n").concat(f.message))).type=p,console.error(v),v;return[2,f]}}))}))}var b={currentState:{type:"MSISDNEntry",result:a({keyword:"TEST OK",shortcode:"777"})}},I={currentState:{type:"MSISDNEntry",result:c({errorType:"InvalidMSISDN",error:"Invalid Mobile Number"})}},E={currentState:{type:"MSISDNEntry",result:u()}},j=function(t){var r=l(t);if(!r["mock-flow"])return E;switch(r["current-state"]){case"msisdn-entry-failure-state":return I;case"msisdn-entry-success-state":return b;default:return console.error("Mock Flow not supported"),E}}(window),g=s("ussdFlow/submitMSISDNAction",(function(n,s){var o=n.window,i=n.msisdn,c=n.extraParams,u=s.getState,l=s.rejectWithValue;return t(void 0,void 0,void 0,(function(){var t,n,s,p,v;return r(this,(function(r){switch(r.label){case 0:t=u(),n=t.strategy.currentState.data.config,r.label=1;case 1:return r.trys.push([1,5,,6]),f.advancedInFlow("tallyman.v1-ussd","msisdn-submitted",{msisdn:i}),[4,h(o,n,i,c)];case 2:return s=r.sent(),f.advancedInFlow("tallyman.v1-ussd","msisdn-submission-success",{msisdn:i}),c&&c.storeMsisdn&&"true"===c.storeMsisdn?[4,m(i).then((function(t){t&&t.data&&t.data.success?f.customEvent("Flow","advance-auto","msisdn-stored-success"):f.customEvent("Flow","advance-auto","msisdn-stored-failed")})).catch((function(t){f.customEvent("Flow","advance-auto","msisdn-stored-error",t)}))]:[3,4];case 3:r.sent(),r.label=4;case 4:return d({window:o,flow:"tallyman.v1-ussd",action:"sale",args:{msisdn:i}}),[2,{type:"MSISDNEntry",result:a(e({},s))}];case 5:switch(p=r.sent(),console.warn(p),v=void 0,p.type){case"AlreadySubscribed":v="AlreadySubscribed";break;case"InvalidMSISDN":v="InvalidMSISDN";break;default:v="UnknownError"}return f.recedeInFlow("tallyman.v1-ussd","msisdn-submission-failure",{msisdn:i,errorType:v||"UnknownError"}),[2,l({errorType:v,productUrl:p.productUrl})];case 6:return[2]}}))}))})),M=s("moRedirFlow/backToStartAction",(function(e,n){var s=n.dispatch,o=n.rejectWithValue;return t(void 0,void 0,void 0,(function(){return r(this,(function(t){try{f.recedeInFlow("tallyman.v1-ussd","ussd-state","requested to change phone number"),s(p())}catch(t){return console.warn(t),[2,o({errorType:"UnexpectedState"})]}return[2]}))}))})),D=o({name:"ussdFlow",initialState:j,reducers:{},extraReducers:function(t){t.addCase(g.pending,(function(t){t.currentState={type:"MSISDNEntry",result:i()}})).addCase(g.fulfilled,(function(t,r){t.currentState=r.payload})).addCase(g.rejected,(function(t,r){t.currentState={type:"MSISDNEntry",result:c(r.payload)}}))}}),k=D.reducer;D.actions;export{M as backToStartAction,g as submitMSISDNAction,v as useUssdFlowState,S as ussdFlowMatch,k as ussdFlowReducer};
1
+ import{__awaiter as t,__generator as r,__assign as e,__read as n}from"tslib";import{createAsyncThunk as s,createSlice as o}from"@reduxjs/toolkit";import{S as a,L as i,F as c,N as u}from"./RemoteDataState-lcf8PfJd.js";import{checkSubscriptionHander as d}from"./checkSubscriptionHander.js";import{searchToObject as l}from"./searchToObject.js";import{s as m}from"./storeMsisdn-Cjq8_qYH.js";import{t as f}from"./tracker-DaaILhEr.js";import{i as p}from"./strategySlice-BCQi9dgQ.js";import"./helpers-xPhGBX-B.js";import"pacman-client";import"uuid";import"./getConfig.js";import"./formatNumberToE164-Bd0VHMHJ.js";import"./api-CqJrSvqq.js";var v=function(t){return t((function(t){return t.ussdFlow.currentState}))};function S(t){var r=t.msisdnEntry;return function(t){return t.type,r(t.result)}}var y=function(s,o,a,i,c,u,d,l,m){return t(void 0,void 0,void 0,(function(){var t,f,p;return r(this,(function(r){return t=new URLSearchParams(e({action:"ussd",slug:o,country:a,msisdn:i,device:c,offerId:u.toString(),rockman_id:d},l&&{search:l})),m&&m.split("&").forEach((function(r){var e=n(r.split("="),2),s=e[0],o=e[1];s&&t.append(s,o)})),f=s.DEV_BASE_URL||"",p="".concat(f,"/tallyman/v1/?").concat(t.toString()),[2,fetch(p).then((function(t){return t.json()}))]}))}))};function h(n,s,o,a){return t(this,void 0,void 0,(function(){var t;return r(this,(function(r){return t=e({offer:n.pac_analytics.visitor.offer},s||{}),[2,w(n,t,o,a)]}))}))}function w(e,n,s,o){return t(this,void 0,void 0,(function(){var t,a,i,c,u,d,l,m,f,p,v;return r(this,(function(r){switch(r.label){case 0:return t=n.slug,a=n.country,i=n.device,c=n.offer,u=e.location.search.substr(1)||"",d=o?"&".concat(Object.keys(o).map((function(t){return"".concat(t,"=").concat(o[t])})).join("&")):"",l=s.match(/\d+/gi).join(""),m=e.pac_analytics.visitor.rockmanId,[4,y(e,t,a,l,i,c,m,u,d)];case 1:if(!1===(f=r.sent()).success)throw p="ALREADY SUBSCRIBED"===f.message?"AlreadySubscribed":"InvalidMSISDN",(v=new Error("".concat(p,":\n").concat(f.message))).type=p,console.error(v),v;return[2,f]}}))}))}var b={currentState:{type:"MSISDNEntry",result:a({keyword:"TEST OK",shortcode:"777"})}},I={currentState:{type:"MSISDNEntry",result:c({errorType:"InvalidMSISDN",error:"Invalid Mobile Number"})}},E={currentState:{type:"MSISDNEntry",result:u()}},j=function(t){var r=l(t);if(!r["mock-flow"])return E;switch(r["current-state"]){case"msisdn-entry-failure-state":return I;case"msisdn-entry-success-state":return b;default:return console.error("Mock Flow not supported"),E}}(window),g=s("ussdFlow/submitMSISDNAction",(function(n,s){var o=n.window,i=n.msisdn,c=n.extraParams,u=s.getState,l=s.rejectWithValue;return t(void 0,void 0,void 0,(function(){var t,n,s,p,v;return r(this,(function(r){switch(r.label){case 0:t=u(),n=t.strategy.currentState.data.config,r.label=1;case 1:return r.trys.push([1,5,,6]),f.advancedInFlow("tallyman.v1-ussd","msisdn-submitted",{msisdn:i}),[4,h(o,n,i,c)];case 2:return s=r.sent(),f.advancedInFlow("tallyman.v1-ussd","msisdn-submission-success",{msisdn:i}),c&&c.storeMsisdn&&"true"===c.storeMsisdn?[4,m(i).then((function(t){t&&t.data&&t.data.success?f.customEvent("Flow","advance-auto","msisdn-stored-success"):f.customEvent("Flow","advance-auto","msisdn-stored-failed")})).catch((function(t){f.customEvent("Flow","advance-auto","msisdn-stored-error",t)}))]:[3,4];case 3:r.sent(),r.label=4;case 4:return d({window:o,flow:"tallyman.v1-ussd",action:"sale",args:{msisdn:i}}),[2,{type:"MSISDNEntry",result:a(e({},s))}];case 5:switch(p=r.sent(),console.warn(p),v=void 0,p.type){case"AlreadySubscribed":v="AlreadySubscribed";break;case"InvalidMSISDN":v="InvalidMSISDN";break;default:v="UnknownError"}return f.recedeInFlow("tallyman.v1-ussd","msisdn-submission-failure",{msisdn:i,errorType:v||"UnknownError"}),[2,l({errorType:v,productUrl:p.productUrl})];case 6:return[2]}}))}))})),M=s("moRedirFlow/backToStartAction",(function(e,n){var s=n.dispatch,o=n.rejectWithValue;return t(void 0,void 0,void 0,(function(){return r(this,(function(t){try{f.recedeInFlow("tallyman.v1-ussd","ussd-state","requested to change phone number"),s(p())}catch(t){return console.warn(t),[2,o({errorType:"UnexpectedState"})]}return[2]}))}))})),D=o({name:"ussdFlow",initialState:j,reducers:{},extraReducers:function(t){t.addCase(g.pending,(function(t){t.currentState={type:"MSISDNEntry",result:i()}})).addCase(g.fulfilled,(function(t,r){t.currentState=r.payload})).addCase(g.rejected,(function(t,r){t.currentState={type:"MSISDNEntry",result:c(r.payload)}}))}}),k=D.reducer;D.actions;export{M as backToStartAction,g as submitMSISDNAction,v as useUssdFlowState,S as ussdFlowMatch,k as ussdFlowReducer};
2
2
  //# sourceMappingURL=ussdFlow.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ouisys-engine",
3
- "version": "5.0.96",
3
+ "version": "5.0.98",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "directories": "dist dev-tools",
@@ -1,2 +0,0 @@
1
- import{__awaiter as e,__generator as o,__assign as t}from"tslib";import{createAsyncThunk as r,createSlice as n}from"@reduxjs/toolkit";import{N as i,S as l,L as s,F as a}from"./RemoteDataState-lcf8PfJd.js";import{searchToObject as d}from"./searchToObject.js";import{getConfig as u}from"./getConfig.js";import{q as c,t as f}from"./tracker-DaaILhEr.js";import{f as v}from"./formatNumberToE164-Bd0VHMHJ.js";import{i as p}from"./api-CqJrSvqq.js";var w;function m(t){return e(this,void 0,void 0,(function(){var e,r,n,i,l;return o(this,(function(o){switch(o.label){case 0:if(e=c(window.location.href,"mock-ip")||process.env.mock_ip,console.log("mockip",e),t.ip||"undefined"==typeof window)return[3,5];o.label=1;case 1:return o.trys.push([1,3,,4]),r=window.location.host,n=window.DEV_BASE_URL_IP||r,[4,fetch("https://".concat(n,"/api/v1/ip").concat(e?"?mock-ip=".concat(e):"")).then((function(e){return e.json()}))];case 2:return i=o.sent(),t.ip=i.ip,t.ip_range_name=i.ip_range_name,[2,i.ip_range_name];case 3:return l=o.sent(),console.warn("IP Lookup failed",l),[2,""];case 4:return[3,6];case 5:return[2,t.ip_range_name||""];case 6:return[2]}}))}))}!function(e){e.IDENTIFY_STRATEGY="IDENTIFY_STRATEGY",e.IDENTIFY_FLOW_BY_MSISDN="IDENTIFY_FLOW_BY_MSISDN",e.IDENTIFY_FLOW_BY_OPERATOR_SELECT="IDENTIFY_FLOW_BY_OPERATOR_SELECT",e.PIN="PIN",e.MO="MO",e.MO_REDIR="MO_REDIR",e.ONE_CLICK="ONE_CLICK",e.CLICK2SMS="CLICK2SMS",e.USSD="USSD",e.TPAY_HE="TPAY_HE",e.CREDIT_CARD="CREDIT_CARD"}(w||(w={}));var g={mo:w.MO,pin:w.PIN,oneClick:w.ONE_CLICK,moRedir:w.MO_REDIR,click2sms:w.CLICK2SMS,ussd:w.USSD,tpayHe:w.TPAY_HE,creditCard:w.CREDIT_CARD},y={mo:"Msisdn to sms",pin:"Pin",oneClick:"3G click",moRedir:"Redirect",click2sms:"Click to sms",tpayHe:"Pin",ussd:"Msisdn to sms"},E=function(e){return y[e]};function _(r){var n,i,l,s,a=r.window,d=r.internationalMSISDN,u=r.configs;return e(this,void 0,void 0,(function(){var r,c,f,v,w,m,g,y,E,_,S=this;return o(this,(function(h){switch(h.label){case 0:if(!d)throw(_=new Error("Error in submitMSISDN() identify action")).type="SEInvalidMSISDN",_;return r=(null===(n=d.match(/\d+/gi))||void 0===n?void 0:n.join(""))||"",c=null===(i=null==u?void 0:u.strategyConfigs)||void 0===i?void 0:i.default,f=c.flowConfig,v=null===(l=null==u?void 0:u.strategyConfigs)||void 0===l?void 0:l.operators,w=function(){return e(S,void 0,void 0,(function(){var e,t,n,i,l;return o(this,(function(o){switch(o.label){case 0:return e=f.slug,t=f.country,n=f.device,i=a.pac_analytics.visitor.rockmanId,l=a.pac_analytics.visitor.offer,[4,p({window:a,slug:e,country:t,msisdn:r,device:n,offer:l,rockmanId:i})];case 1:return[2,o.sent()]}}))}))},[4,w()];case 1:if(m=h.sent(),g=v[m.operator]?v[m.operator]:null,y=!1===m.success&&"Operator could not be found for the given MSISDN"===m.message,E=!1===m.success&&-1!==(null===(s=m.message)||void 0===s?void 0:s.indexOf("HLR did not find the operator for given MSISDN")),y||E)throw(_=new Error("Error in submitMSISDN() identify action")).type="FlowDetectFailed",_.msisdn=r,_;if(null!==g)return[2,t({operator:m.operator,default:c},g)];if(null===g)return[2,t({operator:m.operator},c)];throw(_=new Error("Error in submitMSISDN() identify action")).type="SEInvalidMSISDN",_}}))}))}function S(e){var o,r,n=e.configs,i=e.operator,l=null===(o=null==n?void 0:n.strategyConfigs)||void 0===o?void 0:o.default,s=null===(r=null==n?void 0:n.strategyConfigs)||void 0===r?void 0:r.operators;return t({operator:null==i?void 0:i.toUpperCase(),default:l},s[null==i?void 0:i.toUpperCase()])}function h(t){var r=t.window,n=t.configs;return e(this,void 0,void 0,(function(){var e;return o(this,(function(o){switch(o.label){case 0:return[4,m(r.pac_analytics.visitor)];case 1:return e=o.sent(),[2,S({configs:n,operator:e&&e.includes("_")?e.toUpperCase():""})]}}))}))}var I=function(){return{type:w.IDENTIFY_FLOW_BY_MSISDN,result:i()}},C=r("strategy/submitMSISDNAction",(function(t,r){var n=t.window,l=t.msisdn,s=r.rejectWithValue;return e(void 0,void 0,void 0,(function(){var e,t,r,a,d,c,v,p,w;return o(this,(function(o){switch(o.label){case 0:return o.trys.push([0,2,,3]),e=u(),[4,_({window:n,internationalMSISDN:l,configs:e})];case 1:return t=o.sent(),r=null==t?void 0:t.flow,a=E(r),d=null===(w=null==e?void 0:e.strategyConfigs)||void 0===w?void 0:w.default,c=null==d?void 0:d.flow,g[r]?(f.sendOptInFlowEvent(a),[2,{type:g[r],result:i(),data:{config:t.flowConfig,operator:t.operator,msisdn:l}}]):[2,{type:g[c],result:i(),data:{config:null==d?void 0:d.flowConfig}}];case 2:switch(v=o.sent(),p=void 0,v.type){case"SEAlreadySubscribed":p="AlreadySubscribed";break;case"SEInvalidMSISDN":p="InvalidMSISDN";break;default:p="UnknownError"}return[2,s({errorType:p,error:v,productUrl:v.productUrl})];case 3:return[2]}}))}))})),D=function(){var e=function(e){var o,t=e.configs,r=null===(o=null==t?void 0:t.strategyConfigs)||void 0===o?void 0:o.operators;return Object.keys(r)}({configs:u()});return{type:w.IDENTIFY_FLOW_BY_OPERATOR_SELECT,result:i(),data:{operators:e}}},T=r("strategy/selectOperatorAction",(function(t,r){var n=t.operator,l=r.rejectWithValue;return e(void 0,void 0,void 0,(function(){var e,t,r,s;return o(this,(function(o){try{return e=u(),t=S({configs:e,operator:n}),r=t.flow,s=E(r),f.sendOptInFlowEvent(s),[2,{type:g[r],result:i(),data:{config:t.flowConfig,operator:t.operator}}]}catch(e){return"UnkownError",[2,l({errorType:"UnkownError",error:e.toString()})]}return[2]}))}))})),O=function(t){return e(void 0,void 0,void 0,(function(){var e,r,n,l,s,a,d,c;return o(this,(function(o){switch(o.label){case 0:return o.trys.push([0,2,,3]),e=u(),[4,h({window:window,configs:e})];case 1:return r=o.sent(),n=null===(c=null==e?void 0:e.strategyConfigs)||void 0===c?void 0:c.default,l=null==n?void 0:n.flow,r.flow||"all-flows-detect-operator-by-ip-or-ask-mobile-number"!==t&&"all-flows-ask-mobile-number"!==t?r.flow||"all-flows-detect-operator-by-ip-or-ask-operator"!==t?(s=r.flow,g[s]?(a=E(s),f.sendOptInFlowEvent(a),[2,{type:g[s],result:i(),data:{config:r.flowConfig,operator:r.operator}}]):[2,{type:g[l],result:i(),data:{config:null==n?void 0:n.flowConfig}}]):[2,D()]:[2,I()];case 2:return d=o.sent(),console.error("error",d),[3,3];case 3:return[2]}}))}))},N=function(e,o){return{type:g[o]||w.PIN,result:i(),data:{config:e}}},b=function(t){var r=t.window;return e(void 0,void 0,void 0,(function(){var e,t,n,i,s;return o(this,(function(o){return e=u(),t=null==e?void 0:e.enableScriptTimer,n=e.strategyConfigs,i=null===(s=null==n?void 0:n.default)||void 0===s?void 0:s.flowConfig,[2,new Promise((function(e){var o,s,a,d;try{var c=null===(s=null===(o=null==r?void 0:r.pac_analytics)||void 0===o?void 0:o.visitor)||void 0===s?void 0:s.heMsisdn,p=null===(d=null===(a=null==r?void 0:r.pac_analytics)||void 0===a?void 0:a.visitor)||void 0===d?void 0:d.country;c&&p&&(c=v(c,p));var m,g=!1,y=!1;t&&(m=setTimeout((function(){var o;g||(y=!0,f.customEvent("Flow","recede-auto","msisdn-detection-failure",{errorType:"3 second timer expired"}),r.isPrelanderClicked=!0,e({type:w.PIN,result:l({}),data:{config:null===(o=null==n?void 0:n.default)||void 0===o?void 0:o.flowConfig}}))}),3e3));var E=function(o){var n=o.detail;if(c=null==n?void 0:n.msisdn,(null==n?void 0:n.msisdn)&&!(null==n?void 0:n.encrypted_msisdn)?(c=v(n.msisdn,p),r.msisdn=c):(r.msisdn=null==n?void 0:n.msisdn,r.is_encrypted_msisdn=null==n?void 0:n.encrypted_msisdn),t){if(!y){g=!0,clearTimeout(m),f.customEvent("Flow","advance-auto","msisdn-detected",{msisdn:c});var i=S({configs:u(),operator:null==n?void 0:n.operator_code});r.removeEventListener("he-success",E),r.removeEventListener("he-fail",_),e(R(i,c,null==n?void 0:n.operator_code,!0))}}else{f.customEvent("Flow","advance-auto","msisdn-detected",{msisdn:c,operator:null==n?void 0:n.operator_code});i=S({configs:u(),operator:null==n?void 0:n.operator_code});r.removeEventListener("he-success",E),r.removeEventListener("he-fail",_),e(R(i,c,null==n?void 0:n.operator_code,!0))}},_=function(){r.removeEventListener("he-success",E),r.removeEventListener("he-fail",_),e(N(i,null==n?void 0:n.default.flow))};if(r.addEventListener("he-success",E),r.addEventListener("he-fail",_),!(null==r?void 0:r.heScriptUrl))return f.customEvent("Flow","recede-auto","msisdn-detection-failure",{errorType:"Error he script url not set"}),void r.dispatchEvent(new Event("he-fail"));var h=document.createElement("script");h.type="text/javascript",h.id="he-js-link",h.src="".concat(r.heScriptUrl),h.referrerPolicy="origin",document.head.appendChild(h),h.onerror=function(){console.error("Error loading Header Enrichment script."),f.customEvent("Flow","recede-auto","msisdn-detection-failure",{errorType:"Error loading Header Enrichment script."}),r.dispatchEvent(new Event("he-fail"))}}catch(o){console.error("Error in header enrichment:",o),e(N(i,null==n?void 0:n.default.flow))}}))]}))}))},R=function(e,o,t,r){var n,l;void 0===o&&(o=null),void 0===t&&(t=null);var s=null===(n=u().strategyConfigs)||void 0===n?void 0:n.default,a=null==s?void 0:s.flow,d=e.flow||(null===(l=e.default)||void 0===l?void 0:l.flow),c=E(d);return f.sendOptInFlowEvent(c),e.flow?{type:g[d],result:i(),data:{config:e.flowConfig,operator:e.operator,isHeaderEnrichmentSuccess:r}}:{type:g[a],result:i(),data:{config:null==s?void 0:s.flowConfig,operator:t,msisdn:o,isHeaderEnrichmentSuccess:r}}};window.tracker=f;var F={currentState:{type:w.IDENTIFY_STRATEGY,result:i(),data:void 0}},k=function(){var e=d(window);if(void 0!==e["mock-flow"])switch(void 0!==e.operator&&(window.operator=e.operator),e["mock-flow"]){case"pin":return{type:w.PIN,result:l({})};case"mo":return{type:w.MO,result:l({})};case"moredir":return{type:w.MO_REDIR,result:l({})};case"oneclick":return{type:w.ONE_CLICK,result:l({}),data:{subscription_url:e["subscription-url"]}};case"click2sms":return{type:w.CLICK2SMS,result:l({})};case"ussd":return{type:w.USSD,result:l({})};case"creditcard":return{type:w.CREDIT_CARD,result:l({})};default:throw new Error("(mockStrategyStateByUrlParam) Strategy Mock Flow not supported")}},L=r("strategy/identifyStrategy",(function(){return e(void 0,void 0,void 0,(function(){var t,r,n,s,a,c,p,m,y,_,h,C,T,N,R,F;return o(this,(function(L){switch(L.label){case 0:return t=u(),r=t.strategy,n=t.strategyConfigs,void 0!==(s=d(window))["mock-flow"]?[2,k()]:"1"===s.ui_show_default_flow?(a=null==n?void 0:n.default.flow,c=null===(m=null==n?void 0:n.default)||void 0===m?void 0:m.flowConfig,[2,{type:g[a],result:i(),data:{config:c}}]):s["show-pin-entry"]&&"1"===s["show-pin-entry"]||s["show-thank-you"]&&"1"===s["show-thank-you"]||s.show_custom_error&&"1"===s.show_custom_error?(p=S({configs:t,operator:s.operator}),[2,{type:w.PIN,result:l({}),data:{config:(null==p?void 0:p.flowConfig)||(null===(y=null==n?void 0:n.default)||void 0===y?void 0:y.flowConfig)}}]):r.includes("ask-operator")?[2,D()]:r.includes("detect-operator-by-ip")?[2,O(r)]:(null==r?void 0:r.includes("ask-mobile-number"))?[2,I()]:(null==r?void 0:r.includes("header-enrichment"))&&"header-enrichment-script"!==r?[4,e(void 0,void 0,void 0,(function(){var t,r,n,l,s,a,c,p,w,m,y,_;return o(this,(function(h){switch(h.label){case 0:t=u(),r=null==t?void 0:t.strategyConfigs.default,n=r.flow,h.label=1;case 1:return h.trys.push([1,5,,6]),l=d(window),(s=(null==l?void 0:l.msisdn)&&""!==(null==l?void 0:l.msisdn))&&f.customEvent("Flow","advance-auto","msisdn-detected",{msisdn:null==l?void 0:l.msisdn,operator:null==l?void 0:l.operator}),(null==l?void 0:l.operator)?"pin-header-enrichment"===t.strategy&&s?[2,{type:g[n],result:i(),data:{config:null==r?void 0:r.flowConfig,operator:(null==l?void 0:l.operator)||null,msisdn:(null==l?void 0:l.msisdn)||null,isHeaderEnrichmentSuccess:s}}]:(a=null,c=null,[4,S({operator:null==l?void 0:l.operator,configs:t})]):[2,{type:g[n],result:i(),data:{config:null==r?void 0:r.flowConfig}}];case 2:return p=h.sent(),w=p.flow||n,m=E(w),f.sendOptInFlowEvent(m),"oneClick"!==w?[3,4]:[4,e(void 0,void 0,void 0,(function(){var e,t,r,n,i,l,s,a,u;return o(this,(function(o){if("undefined"==typeof window)throw new Error("This function can only be run in a browser environment.");if("false"===(e=d(window)).success)throw new Error("Error in getRedirectUrl() identify-user action:\n".concat(e.message||"NotOn3g"));if(!(t=e.subscription_url||e.redirect_url))throw new Error("No URL provided for redirection");return r=window.atob(t),n=new URL(r),i=new URLSearchParams(n.search),l=i.get("msisdn")||e.msisdn,s=i.get("operator")||e.operator,l&&(l=v(l,null===(u=null===(a=null===window||void 0===window?void 0:window.pac_analytics)||void 0===a?void 0:a.visitor)||void 0===u?void 0:u.country)),[2,{msisdn:l||"",operator:s||"",subscription_url:e.subscription_url?r:void 0,redirect_url:e.redirect_url?r:void 0}]}))}))];case 3:y=h.sent(),a=(null==y?void 0:y.subscription_url)||null,c=(null==y?void 0:y.redirect_url)||null,h.label=4;case 4:return[2,{type:g[w],result:i(),data:{config:p.flowConfig,operator:p.operator,subscription_url:a||null,redirect_url:c||null,isHeaderEnrichmentSuccess:s}}];case 5:return _=h.sent(),console.error("error",_),[2,{type:g[n],result:i(),data:{config:null==r?void 0:r.flowConfig}}];case 6:return[2]}}))}))]:[3,2];case 1:return[2,L.sent()];case 2:switch(r){case"header-enrichment-script":return[2,b({window:window})];case"pin":return f.sendOptInFlowEvent("Pin"),[2,{type:w.PIN,result:l({}),data:{config:null===(_=null==n?void 0:n.default)||void 0===_?void 0:_.flowConfig}}];case"mo":return f.sendOptInFlowEvent("Msisdn to sms"),[2,{type:w.MO,result:l({}),data:{config:null===(h=null==n?void 0:n.default)||void 0===h?void 0:h.flowConfig}}];case"mo-redir":return[2,{type:w.MO_REDIR,result:l({}),data:{config:null===(C=null==n?void 0:n.default)||void 0===C?void 0:C.flowConfig}}];case"one-click":return f.sendOptInFlowEvent("Redirect"),[2,{type:w.ONE_CLICK,result:l({}),data:{config:null===(T=null==n?void 0:n.default)||void 0===T?void 0:T.flowConfig}}];case"click2sms":return f.sendOptInFlowEvent("Click to sms"),[2,{type:w.CLICK2SMS,result:l({}),data:{config:null===(N=null==n?void 0:n.default)||void 0===N?void 0:N.flowConfig}}];case"ussd":return f.sendOptInFlowEvent("USSD"),[2,{type:w.USSD,result:l({}),data:{config:null===(R=null==n?void 0:n.default)||void 0===R?void 0:R.flowConfig}}];case"credit-card":return f.sendOptInFlowEvent("Credit card"),[2,{type:w.CREDIT_CARD,result:l({}),data:{config:null===(F=null==n?void 0:n.default)||void 0===F?void 0:F.flowConfig}}];default:throw new Error("Strategy not supported")}}}))}))})),M=r("strategy/setStrategyExtraData",(function(t){var r=t.type,n=t.data;return e(void 0,void 0,void 0,(function(){return o(this,(function(e){return[2,{type:r,result:i(),data:n}]}))}))})),Y=n({name:"strategy",initialState:F,reducers:{},extraReducers:function(e){e.addCase(L.pending,(function(e){e.currentState={type:w.IDENTIFY_STRATEGY,result:s()}})).addCase(L.fulfilled,(function(e,o){e.currentState=o.payload})).addCase(L.rejected,(function(e,o){e.currentState={type:w.IDENTIFY_STRATEGY,result:a(o.error.message)}})).addCase(C.pending,(function(e){e.currentState={type:w.IDENTIFY_FLOW_BY_MSISDN,result:s()}})).addCase(C.fulfilled,(function(e,o){e.currentState=o.payload})).addCase(C.rejected,(function(e,o){e.currentState={type:w.IDENTIFY_FLOW_BY_MSISDN,result:a(o.payload)}})).addCase(M.fulfilled,(function(e,o){e.currentState=o.payload})).addCase(T.pending,(function(e){e.currentState={type:w.IDENTIFY_FLOW_BY_OPERATOR_SELECT,result:s()}})).addCase(T.fulfilled,(function(e,o){e.currentState=o.payload})).addCase(T.rejected,(function(e,o){e.currentState={type:w.IDENTIFY_FLOW_BY_OPERATOR_SELECT,result:a(o.payload)}}))}}).reducer;export{w as P,T as a,Y as b,M as c,L as i,C as s,m as t};
2
- //# sourceMappingURL=strategySlice-JTBaGYpl.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"strategySlice-JTBaGYpl.js","sources":["../src/sharedFlowTypes/StrategyTypes.ts","../src/ips/tryGetIPRangeName.ts","../src/flows/strategy/main.ts","../src/flows/strategy/strategies/askMobileNumber.ts","../src/flows/strategy/strategies/askOperator.ts","../src/flows/strategy/strategies/detectOperatorByIp.ts","../src/flows/strategy/strategies/injectHeaderEnrichmentScript.ts","../src/flows/strategy/strategySlice.ts","../src/flows/strategy/strategies/headerEnrichment.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable camelcase */\nimport * as RDS from '../common-types/RemoteDataState';\nimport { IStrategyNames } from '../common-types/Strategy';\nimport { Click2smsFlowState } from './Click2smsTypes';\nimport { CreditCardFlowState } from './CreditCardTypes';\nimport { MoRedirFlowState } from './MoRedirTypes';\nimport { MoFlowState } from './MoTypes';\nimport { OneClickFlowState } from './OneClickTypes';\nimport { PinFlowState } from './PinTypes';\nimport { UssdFlowState } from './UssdTypes';\n\nexport type IIdentifyResult = {\n operator: string;\n flow?: string;\n success: boolean;\n rockman_id?: string;\n message?: string;\n};\n\nexport interface HEResult {\n msisdn: string;\n operator: string;\n subscription_url?: string;\n redirect_url?: string;\n}\n\nexport type ConfigDetails = {\n host: string;\n slug: string;\n country: string;\n device?: 'smart' | 'feature';\n queryString?: Array<[string, string]>;\n automaticallySubmitAllOperators?: boolean;\n operators?: string[];\n service: string;\n offer?: string;\n};\n\nexport type IConfig = {\n offer?: string;\n slug?: string;\n country?: string;\n host?: string;\n device?: 'smart' | 'feature';\n automaticallySubmitAllOperators?: boolean;\n operators?: string[];\n service?: string;\n serviceId?: string;\n queryString?: any;\n apiAction?: any;\n};\n\nexport type ISupportedFlows = 'pin' | 'mo' | 'oneClick' | 'click2sms' | 'moRedir' | 'ussd' | 'creditCard';\nexport type IFlow = {\n flow: ISupportedFlows;\n flowOnWifi?: ISupportedFlows;\n operator?: string;\n flowConfig: ConfigDetails;\n default?: IFlow;\n rockman_id?: string;\n};\n\nexport type StrategyConfig = {\n operators: {\n [key: string]: IFlow;\n };\n default: IFlow;\n isUseMsisdnPrefix?: boolean;\n};\n// export type IStrategy = IPinStrategy | IMoStrategy;\n\nexport type IStrategy = {\n strategy: IStrategyNames;\n country: string;\n strategyConfigs: StrategyConfig;\n};\n\nexport interface IHash {\n [key: string]: string;\n}\n\nexport type IDENTIFYMSISDNEntryErrorTypes = 'AlreadySubscribed' | 'UnknownError' | 'InvalidMSISDN';\n\nexport type IDENTIFYMSISDNEntryFailure = {\n errorType: IDENTIFYMSISDNEntryErrorTypes;\n error: unknown;\n};\n\nexport type IdentifyFlowOptionsResult = {\n config: IConfig;\n nextAction?: unknown;\n msisdn?: string;\n operator?: string;\n subscription_url?: string;\n redirect_url?: string;\n rockman_id?: string;\n isHeaderEnrichmentSuccess?: boolean;\n autoRedirect?: boolean;\n isUseMsisdnPrefix?: boolean;\n};\n\nexport type IDENTIFYMSISDNEntrySuccess = {};\nexport type OPERATORSelectFailure = {};\nexport type OPERATORSelectSuccess = IdentifyFlowOptionsResult;\n\nexport type IDETECTYOPERATOBYIPFailure = {};\nexport type IDETECTYOPERATOBYIPSuccess = IdentifyFlowOptionsResult;\n\nexport type IDENTIFY_OPERATOR_MSISDNEntrySuccess = IdentifyFlowOptionsResult;\n\nexport type IDENTIFY_FLOW_HESuccess = IdentifyFlowOptionsResult;\n\nexport type OPERATORSelectFlowIdentifyFailure = {};\nexport type OPERATORSelectFlowIdentifySuccess = {\n operators: Array<string>;\n msisdn?: string;\n nextAction: 'selectOperator';\n};\nexport type IDENTIFYFailure = {};\n\nexport type IDENTIFYSuccess = {};\n\nexport type IOperatorSelectFlowIdentifyPayload = {\n type: 'IDENTIFY_FLOW_BY_OPERATOR_SELECT';\n result: RDS.RemoteDataState<OPERATORSelectFlowIdentifyFailure, OPERATORSelectFlowIdentifySuccess>;\n};\n\n// export type IIdentifyByIPPayload= {\n// type:\"IDENTIFY_FLOW_BY_IP\"\n// result: RDS.RemoteDataState<IDENTIFYBYIPFailure, IDENTIFYBYIPSuccess>;\n// }\n\nexport type IDetectOperatorByIpPayload = {\n type: 'DETECT_OPERATOR_BY_IP';\n result: RDS.RemoteDataState<IDETECTYOPERATOBYIPFailure, IDETECTYOPERATOBYIPSuccess>;\n};\n\nexport enum PossibleTypes {\n IDENTIFY_STRATEGY = 'IDENTIFY_STRATEGY',\n IDENTIFY_FLOW_BY_MSISDN = 'IDENTIFY_FLOW_BY_MSISDN',\n IDENTIFY_FLOW_BY_OPERATOR_SELECT = 'IDENTIFY_FLOW_BY_OPERATOR_SELECT',\n PIN = 'PIN',\n MO = 'MO',\n MO_REDIR = 'MO_REDIR',\n ONE_CLICK = 'ONE_CLICK',\n CLICK2SMS = 'CLICK2SMS',\n USSD = 'USSD',\n TPAY_HE = 'TPAY_HE',\n CREDIT_CARD = 'CREDIT_CARD'\n}\n\nexport type IOperatorSelectPayload = {\n type: PossibleTypes;\n result: OPERATORSelectSuccess;\n};\n\nexport type ISubmitMsisdnPayload = {\n type: PossibleTypes;\n result: IDENTIFY_OPERATOR_MSISDNEntrySuccess;\n};\n\nexport type IIdentifyFlowByIpOperatorPayload = {\n type: PossibleTypes;\n result: IDENTIFY_OPERATOR_MSISDNEntrySuccess;\n};\n\nexport type IIdentifyFlowByHePayload = {\n type: PossibleTypes;\n result: IDENTIFY_FLOW_HESuccess;\n};\n\nexport type IIdentfyFlowByMsisdnNextAction = 'submitMSISDNAction' | 'loadOc2sms';\nexport type IIdentfyFlowByOperatorNextAction = 'submitMSISDNAction' | 'loadOc2sms';\nexport type IIdentfyFlowByIPOperatorNextAction = 'getRedirectUrlAction' | 'submitMSISDNAction';\n\nexport type IIdenyifyFlowByMsisdnSumbitNextData = {\n nextAction: IIdentfyFlowByMsisdnNextAction;\n msisdn?: string;\n operator?: string;\n};\n\nexport type IIdenyifyFlowByMsisdnPayload = {\n type: 'IDENTIFY_FLOW_BY_MSISDN';\n result: RDS.RemoteDataState<IDENTIFYMSISDNEntryFailure, IDENTIFYMSISDNEntrySuccess>;\n data: IIdenyifyFlowByMsisdnSumbitNextData;\n};\n\nexport type IIdenyifyStrategyPayload = {\n type: 'IDENTIFY_FLOW_BY_MSISDN';\n result: RDS.RemoteDataState<IDENTIFYMSISDNEntryFailure, IDENTIFYMSISDNEntrySuccess>;\n data: IIdenyifyFlowByMsisdnSumbitNextData;\n};\n\nexport type IStrategyCurrentState =\n | {\n type: 'IDENTIFY_STRATEGY';\n result: RDS.RemoteDataState<IDENTIFYFailure, IDENTIFYSuccess>;\n }\n | {\n type: 'IDENTIFY_FLOW_BY_OPERATOR_SELECT';\n result: OPERATORSelectFlowIdentifySuccess;\n }\n | {\n type: 'DETECT_OPERATOR_BY_IP';\n result: RDS.RemoteDataState<IDETECTYOPERATOBYIPFailure, IDETECTYOPERATOBYIPSuccess>;\n }\n | {\n type: 'HE_IDENTIFY';\n result: RDS.RemoteDataState<IDENTIFYFailure, IDENTIFYSuccess>;\n }\n | {\n type: 'OPERATOR_SELECT';\n result: RDS.RemoteDataState<OPERATORSelectFailure, OPERATORSelectSuccess>;\n config: IConfig;\n }\n | {\n type: 'IDENTIFY_FLOW_BY_MSISDN';\n result: RDS.RemoteDataState<IDENTIFYMSISDNEntryFailure, IDENTIFYMSISDNEntrySuccess>;\n nextData: IIdenyifyFlowByMsisdnSumbitNextData;\n }\n | {\n type: 'PIN';\n result: IdentifyFlowOptionsResult;\n }\n | {\n type: 'MO';\n result: IdentifyFlowOptionsResult;\n }\n | {\n type: 'USSD';\n result: IdentifyFlowOptionsResult;\n }\n | {\n type: 'MO_REDIR';\n result: IdentifyFlowOptionsResult;\n }\n | {\n type: 'ONE_CLICK';\n result: IdentifyFlowOptionsResult;\n }\n | {\n type: 'CLICK2SMS';\n result: IdentifyFlowOptionsResult;\n }\n | {\n type: 'TPAY_HE';\n result: IdentifyFlowOptionsResult;\n }\n | {\n type: 'CREDIT_CARD';\n result: IdentifyFlowOptionsResult;\n };\n\nexport type IStrategyIDentifyUserResult =\n | {\n success: 'true';\n rockman_id: string;\n msisdn: string;\n operator?: string;\n subscription_url?: string;\n redirect_url?: string;\n 'redirect-back'?: string;\n 'msisdn-alias'?: string;\n }\n | {\n success: 'false';\n rockman_id: string;\n message: string;\n 'redirect-back'?: string;\n };\n\nexport type IMockFlows = 'pin' | 'mo' | 'oneclick' | 'click2sms' | 'moredir' | 'ussd' | 'tpay' | 'creditcard';\n\nexport interface IMockFlowParams<T> {\n 'mock-flow': IMockFlows;\n 'current-state': T;\n 'show-pin-entry': '1' | '0';\n 'show-thank-you': '1' | '0';\n 'show-chain-link': '1' | '0';\n operator: string;\n msisdn?: string;\n 'subscription-url'?: string;\n show_custom_error?: string;\n product_url?: string;\n ui_show_default_flow?: '1' | '0';\n ui_show_pin_entry?: '1' | '0';\n}\n\nexport interface IScriptHeaderEnrichmentSuccess extends CustomEvent {\n detail: {\n msisdn: string;\n operator_code: string;\n subscription_url: boolean;\n encrypted_msisdn: boolean;\n };\n}\n\nexport interface ExtraStrategyData {\n isHeaderEnrichmentSuccess?: boolean;\n config?: ConfigDetails;\n msisdn?: string;\n rockman_id?: string;\n operator?: string;\n subscription_url?: string;\n redirect_url?: string;\n operators?: string[];\n}\nexport interface StrategyState {\n currentState: StrategyCurrentState;\n}\n\nexport interface StrategyCurrentState {\n type: PossibleTypes;\n result: RDS.RemoteDataState<any, any>;\n data?: ExtraStrategyData;\n}\n\nexport type IMockPinFlowStates = 'msisdn-state' | 'pin-state' | 'completed-state' | 'msisdn-failure-state';\n\nexport interface RootState {\n strategy?: StrategyState;\n pinFlow?: PinFlowState;\n moFlow?: MoFlowState;\n moRedirFlow?: MoRedirFlowState;\n click2smsFlow?: Click2smsFlowState;\n oneClickFlow?: OneClickFlowState;\n ussdFlow?: UssdFlowState;\n creditCardFlow?: CreditCardFlowState;\n}\n","/* eslint-disable no-param-reassign */\nimport { IVisitor } from '../common-types/IVisitor';\nimport queryString from '../pacman/queryString';\n\n// eslint-disable-next-line consistent-return\nexport default async function tryGetIPRangeName(visitor: IVisitor): Promise<string> {\n const mockip = queryString(window.location.href, 'mock-ip') || process.env.mock_ip;\n // eslint-disable-next-line no-console\n console.log('mockip', mockip);\n if (!visitor.ip && typeof window !== 'undefined') {\n try {\n const { host } = window.location;\n const newHost = window.DEV_BASE_URL_IP || host;\n const res = await fetch(`https://${newHost}/api/v1/ip${mockip ? `?mock-ip=${mockip}` : ''}`).then((x) =>\n x.json()\n );\n // return isIPInRange('37.200.146.28')\n visitor.ip = res.ip;\n visitor.ip_range_name = res.ip_range_name;\n return res.ip_range_name;\n } catch (ex) {\n console.warn('IP Lookup failed', ex);\n return '';\n }\n } else {\n return visitor.ip_range_name || '';\n }\n}\n","import { IError } from '../../common-types/IError';\nimport { IOptInFlowName } from '../../common-types/IOptInFlowName';\nimport { IStrategy, ISupportedFlows } from '../../common-types/Strategy';\nimport tryGetIPRangeName from '../../ips/tryGetIPRangeName';\nimport { HEResult, IConfig, IFlow, IIdentifyResult, PossibleTypes } from '../../sharedFlowTypes/StrategyTypes';\nimport { formatNumberToE164 } from '../../utilities/formatNumberToE164';\nimport { searchToObject } from '../../utilities/searchToObject';\nimport { identify } from './api';\n\nexport const flowMapping: Record<ISupportedFlows, PossibleTypes> = {\n mo: PossibleTypes.MO,\n pin: PossibleTypes.PIN,\n oneClick: PossibleTypes.ONE_CLICK,\n moRedir: PossibleTypes.MO_REDIR,\n click2sms: PossibleTypes.CLICK2SMS,\n ussd: PossibleTypes.USSD,\n tpayHe: PossibleTypes.TPAY_HE,\n creditCard: PossibleTypes.CREDIT_CARD\n};\n\n// @ts-ignore\nexport const trackerEventMapping: Record<ISupportedFlows, IOptInFlowName> = {\n mo: 'Msisdn to sms',\n pin: 'Pin',\n oneClick: '3G click',\n moRedir: 'Redirect',\n click2sms: 'Click to sms',\n tpayHe: 'Pin',\n ussd: 'Msisdn to sms'\n};\n\nexport const getTrackerEventName = (flowType: ISupportedFlows) => trackerEventMapping[flowType];\n\nexport async function determineFlowByMsidn({\n window,\n internationalMSISDN,\n configs\n}: {\n window: Window;\n internationalMSISDN: string;\n configs: IStrategy;\n}): Promise<IFlow> {\n if (!internationalMSISDN) {\n const submissionError = new Error(`Error in submitMSISDN() identify action`) as IError;\n submissionError.type = 'SEInvalidMSISDN';\n throw submissionError;\n }\n const msisdn = internationalMSISDN.match(/\\d+/gi)?.join('') || ''; // tallyman API expects international msisdn without unknown special character\n const defaultFlowConfig = configs?.strategyConfigs?.default;\n const config = defaultFlowConfig.flowConfig;\n const operatorsConfig = configs?.strategyConfigs?.operators;\n\n const indentifyFlow = async (): Promise<IIdentifyResult> => {\n const { slug, country, device } = config;\n const { rockmanId } = window.pac_analytics.visitor;\n const { offer } = window.pac_analytics.visitor;\n const flowOperatorResult: IIdentifyResult = await identify({\n window,\n slug,\n country,\n msisdn,\n device,\n offer,\n rockmanId\n });\n return flowOperatorResult;\n };\n const theResult = await indentifyFlow();\n\n const flow = operatorsConfig[theResult.operator] ? operatorsConfig[theResult.operator] : null;\n const cannotDetect =\n theResult.success === false && theResult.message === 'Operator could not be found for the given MSISDN';\n const hlrError =\n theResult.success === false && theResult.message?.indexOf('HLR did not find the operator for given MSISDN') !== -1;\n\n if (cannotDetect || hlrError) {\n const submissionError = new Error(`Error in submitMSISDN() identify action`) as IError & { msisdn: string };\n submissionError.type = 'FlowDetectFailed';\n submissionError.msisdn = msisdn;\n throw submissionError;\n } else if (flow !== null) {\n const flowObj = { operator: theResult.operator, default: defaultFlowConfig, ...flow };\n // @ts-ignore\n return flowObj;\n } else if (flow === null) {\n const flowObj = { operator: theResult.operator, ...defaultFlowConfig };\n // @ts-ignore\n return flowObj;\n } else {\n const submissionError = new Error(`Error in submitMSISDN() identify action`) as IError;\n submissionError.type = 'SEInvalidMSISDN';\n throw submissionError;\n }\n}\n\nexport function determineFlowByOperator({ configs, operator }: { configs: IStrategy; operator: string }): IFlow {\n const defaultFlowConfig = configs?.strategyConfigs?.default;\n const operatorsConfig = configs?.strategyConfigs?.operators;\n\n const flowObj = {\n operator: operator?.toUpperCase(),\n default: defaultFlowConfig,\n ...operatorsConfig[operator?.toUpperCase()]\n };\n // @ts-ignore\n return flowObj;\n}\n\nexport async function determineFlowByOperatorFromIp({\n window,\n configs\n}: {\n window: Window;\n configs: IStrategy;\n}): Promise<IFlow> {\n const operator = await tryGetIPRangeName(window.pac_analytics.visitor);\n const flowObj = determineFlowByOperator({\n configs,\n operator: operator && operator.includes('_') ? operator.toUpperCase() : ''\n });\n return flowObj;\n}\n\nexport function getOperators({ configs }: { configs: IStrategy }): Array<string> {\n const operatorsConfig = configs?.strategyConfigs?.operators;\n const operators = Object.keys(operatorsConfig);\n return operators;\n}\n\nexport const getHeaderEnrichmentResult = async (): Promise<HEResult> => {\n if (typeof window === 'undefined') {\n throw new Error('This function can only be run in a browser environment.');\n }\n\n const searchObj = searchToObject(window) as any; // Assumes the implementation of searchToObject\n if (searchObj.success === 'false') {\n throw new Error(`Error in getRedirectUrl() identify-user action:\\n${searchObj.message || 'NotOn3g'}`);\n }\n const url = searchObj.subscription_url || searchObj.redirect_url;\n if (!url) {\n throw new Error('No URL provided for redirection');\n }\n\n const decodedUrl = window.atob(url);\n const newUrl = new URL(decodedUrl);\n const urlParams = new URLSearchParams(newUrl.search);\n\n let msisdn = urlParams.get('msisdn') || searchObj.msisdn;\n const operator = urlParams.get('operator') || searchObj.operator;\n\n if (msisdn) {\n msisdn = formatNumberToE164(msisdn, window?.pac_analytics?.visitor?.country);\n }\n\n return {\n msisdn: msisdn || '',\n operator: operator || '',\n subscription_url: searchObj.subscription_url ? decodedUrl : undefined,\n redirect_url: searchObj.redirect_url ? decodedUrl : undefined\n };\n};\n\nexport const subscribe: (_url: string) => Promise<string> = async (_url: string) =>\n // const result:ISubscribeResult = await fetch(url + \"&operator=kw_viva\").then((x)=>x.json())\n\n // if(false === result.success){\n // const subscribeError = new Error(`Error in subscribe() one-click-subscribe action:\\n${result.message}`) as IError & {type:string;}\n // subscribeError['type'] = \"SubscriptionError\";\n // throw subscribeError\n // }else{\n '/product';\n// }\n\nexport function mockConfig({ configs, flow }: { configs: IStrategy; flow: string }): IConfig {\n const defaultFlowConfig = configs?.strategyConfigs?.default;\n const operatorsConfig = configs?.strategyConfigs?.operators;\n const opArr = Object.keys(operatorsConfig);\n const r = opArr.filter((o) => operatorsConfig[o].flow === flow);\n const operator = r[0];\n const flowObj = { offer: '1', operator, default: defaultFlowConfig, ...operatorsConfig[operator] };\n\n return flowObj;\n}\n\n// export const mockedPinFlow: StrategyState = {\n// currentState: {\n// type: PossibleTypes.PIN,\n// result: RDS.NothingYet(),\n// data: {\n// config: mockConfig('pin')\n// }\n// }\n// };\n\n// export const mockedMoFlow: StrategyState = {\n// currentState: {\n// type: PossibleTypes.MO,\n// result: RDS.NothingYet(),\n// data: {\n// config: mockConfig('mo')\n// }\n// }\n// };\n\n// export const mockedUssdFlow: StrategyState = {\n// currentState: {\n// type: PossibleTypes.USSD,\n// result: RDS.NothingYet(),\n// data: {\n// config: mockConfig('ussd')\n// }\n// }\n// };\n\n// export const mockedMoRdirFlow: StrategyState = {\n// currentState: {\n// type: PossibleTypes.MO_REDIR,\n// result: RDS.NothingYet(),\n// data: {\n// config: mockConfig('moRedir')\n// }\n// }\n// };\n\n// export const mockedClick2smsFlow: StrategyState = {\n// currentState: {\n// type: PossibleTypes.CLICK2SMS,\n// result: RDS.NothingYet(),\n// data: {\n// config: mockConfig('click2sms')\n// }\n// }\n// };\n\n// export const mockedOneClickFlow: StrategyState = {\n// currentState: {\n// type: PossibleTypes.ONE_CLICK,\n// result: RDS.NothingYet(),\n// data: {\n// config: mockConfig('oneClick')\n// }\n// }\n// };\n\n// export const mockedCreditCardFlow: StrategyState = {\n// currentState: {\n// type: PossibleTypes.CREDIT_CARD,\n// result: RDS.NothingYet(),\n// data: {\n// config: mockConfig('creditCard')\n// }\n// }\n// };\n// export const mockedMOFlow : State = { type: \"MO\", result:moFlow(mockTracker, mockConfig(\"mo\"))}\n// export const mockedOneClickFlow : State = { type: \"ONECLICK\", result:oneClickFlow(mockTracker, mockConfig(\"oneClick\"), {\"testextraparams\":\"1\"})}\n// export const mockedClick2smsFlow : State = { type: \"CLICK2SMS\", result:click2smsFlow(mockTracker, mockConfig(\"click2sms\"))}\n// export const mockedMORedirFlow : State = { type: \"MOREDIR\", result:moRedirFlow(mockTracker, mockConfig(\"moRedir\"))}\n","import { createAsyncThunk } from '@reduxjs/toolkit';\nimport * as RDS from '../../../common-types/RemoteDataState';\nimport { getConfig } from '../../../utilities/getConfig';\nimport { tracker } from '../../../utilities/tracker';\n\nimport {\n IDENTIFYMSISDNEntryErrorTypes,\n ISupportedFlows,\n PossibleTypes,\n StrategyCurrentState\n} from '../../../sharedFlowTypes/StrategyTypes';\nimport { determineFlowByMsidn, flowMapping, getTrackerEventName } from '../main';\n\nexport const askMobileNumber = (): StrategyCurrentState => ({\n type: PossibleTypes.IDENTIFY_FLOW_BY_MSISDN,\n result: RDS.NothingYet()\n});\n\nexport const submitMSISDNAction = createAsyncThunk(\n 'strategy/submitMSISDNAction',\n async (\n {\n window,\n msisdn\n }: {\n window: Window;\n msisdn: string;\n isHeSuccess?: boolean;\n },\n { rejectWithValue }\n ) => {\n try {\n const configs = getConfig();\n const flowObj = await determineFlowByMsidn({ window, internationalMSISDN: msisdn, configs });\n const flowType = flowObj?.flow;\n const event = getTrackerEventName(flowType);\n const defaultConfig = configs?.strategyConfigs?.default;\n const defaultFlowType = defaultConfig?.flow as ISupportedFlows;\n\n if (!flowMapping[flowType]) {\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig\n }\n };\n }\n tracker.sendOptInFlowEvent(event);\n return {\n type: flowMapping[flowType],\n result: RDS.NothingYet(),\n data: {\n config: flowObj.flowConfig,\n operator: flowObj.operator,\n msisdn\n }\n };\n } catch (ex) {\n let errorType: IDENTIFYMSISDNEntryErrorTypes;\n switch (ex.type) {\n case 'SEAlreadySubscribed':\n errorType = 'AlreadySubscribed';\n break;\n case 'SEInvalidMSISDN':\n errorType = 'InvalidMSISDN';\n break;\n default:\n errorType = 'UnknownError';\n }\n return rejectWithValue({\n errorType,\n error: ex,\n productUrl: ex.productUrl\n });\n }\n }\n);\n","import { createAsyncThunk } from '@reduxjs/toolkit';\nimport * as RDS from '../../../common-types/RemoteDataState';\n\nimport { PossibleTypes, StrategyCurrentState } from '../../../sharedFlowTypes/StrategyTypes';\nimport { getConfig } from '../../../utilities/getConfig';\nimport { tracker } from '../../../utilities/tracker';\nimport { determineFlowByOperator, flowMapping, getOperators, getTrackerEventName } from '../main';\n\nexport const askOperator = (): StrategyCurrentState => {\n const configs = getConfig();\n const operators = getOperators({ configs });\n return {\n type: PossibleTypes.IDENTIFY_FLOW_BY_OPERATOR_SELECT,\n result: RDS.NothingYet(),\n data: {\n operators\n }\n };\n};\n\nexport const selectOperatorAction = createAsyncThunk(\n 'strategy/selectOperatorAction',\n async (\n {\n operator\n }: {\n operator: string;\n },\n { rejectWithValue }\n ) => {\n try {\n const configs = getConfig();\n\n const flowObj = determineFlowByOperator({\n configs,\n operator\n });\n\n const flowType = flowObj.flow;\n const event = getTrackerEventName(flowType);\n\n tracker.sendOptInFlowEvent(event);\n\n return {\n type: flowMapping[flowType],\n result: RDS.NothingYet(),\n data: {\n config: flowObj.flowConfig,\n operator: flowObj.operator\n }\n };\n } catch (ex) {\n const errorType = 'UnkownError';\n return rejectWithValue({\n errorType,\n error: ex.toString()\n });\n }\n }\n);\n","import * as RDS from '../../../common-types/RemoteDataState';\nimport { IStrategyNames, ISupportedFlows } from '../../../common-types/Strategy';\n\nimport { getConfig } from '../../../utilities/getConfig';\nimport { tracker } from '../../../utilities/tracker';\nimport { determineFlowByOperatorFromIp, flowMapping, getTrackerEventName } from '../main';\nimport { askMobileNumber } from './askMobileNumber';\nimport { askOperator } from './askOperator';\n\nconst detectOperatorByIp = async (strategy?: IStrategyNames) => {\n try {\n const configs = getConfig();\n\n const flowObj = await determineFlowByOperatorFromIp({\n window,\n configs\n });\n const defaultConfig = configs?.strategyConfigs?.default;\n const defaultFlowType = defaultConfig?.flow as ISupportedFlows;\n\n if (\n !flowObj.flow &&\n (strategy === 'all-flows-detect-operator-by-ip-or-ask-mobile-number' ||\n strategy === 'all-flows-ask-mobile-number')\n ) {\n return askMobileNumber();\n }\n\n if (!flowObj.flow && strategy === 'all-flows-detect-operator-by-ip-or-ask-operator') {\n return askOperator();\n }\n\n const flowType = flowObj.flow;\n if (!flowMapping[flowType]) {\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig\n }\n };\n }\n const event = getTrackerEventName(flowType);\n\n tracker.sendOptInFlowEvent(event);\n\n return {\n type: flowMapping[flowType],\n result: RDS.NothingYet(),\n data: {\n config: flowObj.flowConfig,\n operator: flowObj.operator\n }\n };\n } catch (ex) {\n console.error('error', ex);\n }\n};\n\nexport { detectOperatorByIp };\n","import * as RDS from '../../../common-types/RemoteDataState';\nimport {\n IConfig,\n IFlow,\n IScriptHeaderEnrichmentSuccess,\n ISupportedFlows,\n PossibleTypes\n} from '../../../sharedFlowTypes/StrategyTypes';\nimport { formatNumberToE164 } from '../../../utilities/formatNumberToE164';\nimport { getConfig } from '../../../utilities/getConfig';\nimport { tracker } from '../../../utilities/tracker';\nimport { determineFlowByOperator, flowMapping, getTrackerEventName } from '../main';\n\n/**\n * Creates a response object with the given parameters.\n *\n * @param {string} msisdn - The MSISDN (Mobile Station International Subscriber Directory Number).\n * @param {IConfig} config - The configuration object.\n * @param {string | null} operator - The operator (default: null).\n * @return {object} The response that sets the state.\n */\nconst createResponseObject = (config: IConfig, flow?: ISupportedFlows) => ({\n type: flowMapping[flow] || PossibleTypes.PIN,\n result: RDS.NothingYet(),\n data: {\n config\n }\n});\n\n/**\n * Injects header enrichment script based on the provided window object.\n *\n * @param {Window} window - The window object containing analytics visitor details.\n * @return {Promise} A promise that resolves based on specific events or timeouts.\n */\nconst injectHeaderEnrichmentScript = async ({ window }: { window: Window }) => {\n const configs = getConfig();\n const enableScriptTimer = configs?.enableScriptTimer;\n const { strategyConfigs } = configs;\n const config = strategyConfigs?.default?.flowConfig;\n\n return new Promise((resolve) => {\n try {\n let heMsisdn = window?.pac_analytics?.visitor?.heMsisdn;\n const country = window?.pac_analytics?.visitor?.country;\n\n if (heMsisdn && country) {\n heMsisdn = formatNumberToE164(heMsisdn, country);\n }\n\n let msisdnDetected = false;\n let timerExpired = false;\n let timerId: string | number | NodeJS.Timeout;\n\n if (enableScriptTimer) {\n timerId = setTimeout(() => {\n if (!msisdnDetected) {\n timerExpired = true;\n tracker.customEvent('Flow', 'recede-auto', 'msisdn-detection-failure', {\n errorType: '3 second timer expired'\n });\n\n window.isPrelanderClicked = true;\n resolve({\n type: PossibleTypes.PIN,\n result: RDS.Success({}),\n data: {\n config: strategyConfigs?.default?.flowConfig\n }\n });\n }\n }, 3000);\n }\n\n const onSuccess = (event: Event) => {\n const { detail } = event as IScriptHeaderEnrichmentSuccess;\n heMsisdn = detail?.msisdn;\n if (detail?.msisdn && !detail?.encrypted_msisdn) {\n heMsisdn = formatNumberToE164(detail.msisdn, country);\n window.msisdn = heMsisdn;\n } else {\n window.msisdn = detail?.msisdn;\n window.is_encrypted_msisdn = detail?.encrypted_msisdn;\n }\n\n if (enableScriptTimer) {\n if (!timerExpired) {\n msisdnDetected = true;\n clearTimeout(timerId);\n\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-detected', {\n msisdn: heMsisdn\n });\n const flowObj = determineFlowByOperator({\n configs: getConfig(),\n operator: detail?.operator_code\n });\n window.removeEventListener('he-success', onSuccess);\n window.removeEventListener('he-fail', onFail);\n resolve(headerEnrichmentScript(flowObj, heMsisdn, detail?.operator_code, true));\n }\n } else {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-detected', {\n msisdn: heMsisdn,\n operator: detail?.operator_code\n });\n const flowObj = determineFlowByOperator({\n configs: getConfig(),\n operator: detail?.operator_code\n });\n window.removeEventListener('he-success', onSuccess);\n window.removeEventListener('he-fail', onFail);\n resolve(headerEnrichmentScript(flowObj, heMsisdn, detail?.operator_code, true));\n }\n };\n\n const onFail = () => {\n window.removeEventListener('he-success', onSuccess);\n window.removeEventListener('he-fail', onFail);\n resolve(createResponseObject(config, strategyConfigs?.default.flow as ISupportedFlows));\n };\n\n window.addEventListener('he-success', onSuccess);\n window.addEventListener('he-fail', onFail);\n\n if (!window?.heScriptUrl) {\n tracker.customEvent('Flow', 'recede-auto', 'msisdn-detection-failure', {\n errorType: 'Error he script url not set'\n });\n window.dispatchEvent(new Event('he-fail'));\n return;\n }\n const script = document.createElement('script');\n script.type = 'text/javascript';\n script.id = 'he-js-link';\n script.src = `${window.heScriptUrl}`; // URL Comes from server\n script.referrerPolicy = 'origin';\n document.head.appendChild(script);\n\n script.onerror = () => {\n console.error('Error loading Header Enrichment script.');\n tracker.customEvent('Flow', 'recede-auto', 'msisdn-detection-failure', {\n errorType: 'Error loading Header Enrichment script.'\n });\n window.dispatchEvent(new Event('he-fail'));\n };\n } catch (err) {\n console.error('Error in header enrichment:', err);\n resolve(createResponseObject(config, strategyConfigs?.default.flow as ISupportedFlows));\n }\n });\n};\n\nconst headerEnrichmentScript = (\n flowObj: IFlow,\n msisdn: string | null = null,\n operator: string | null = null,\n isHeaderEnrichmentSuccess: boolean\n) => {\n const defaultConfig = getConfig().strategyConfigs?.default;\n const defaultFlowType = defaultConfig?.flow;\n const flowType = flowObj.flow || flowObj.default?.flow;\n const event = getTrackerEventName(flowType);\n\n tracker.sendOptInFlowEvent(event);\n\n if (!flowObj.flow) {\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig,\n operator,\n msisdn,\n isHeaderEnrichmentSuccess\n }\n };\n }\n\n return {\n type: flowMapping[flowType],\n result: RDS.NothingYet(),\n data: {\n config: flowObj.flowConfig,\n operator: flowObj.operator,\n isHeaderEnrichmentSuccess\n }\n };\n};\n\nexport { injectHeaderEnrichmentScript };\n","import { createAsyncThunk, createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport * as RDS from '../../common-types/RemoteDataState';\nimport { searchToObject } from '../../utilities/searchToObject';\n\nimport {\n IMockFlowParams,\n IMockPinFlowStates,\n ISupportedFlows,\n PossibleTypes,\n RootState,\n StrategyCurrentState,\n StrategyState\n} from '../../sharedFlowTypes/StrategyTypes';\nimport { getConfig } from '../../utilities/getConfig';\nimport { determineFlowByOperator, flowMapping } from './main';\nimport { askMobileNumber, submitMSISDNAction } from './strategies/askMobileNumber';\nimport { askOperator, selectOperatorAction } from './strategies/askOperator';\n\nimport { tracker } from '../../utilities/tracker';\nimport { detectOperatorByIp } from './strategies/detectOperatorByIp';\nimport { handleHeaderEnrichment } from './strategies/headerEnrichment';\nimport { injectHeaderEnrichmentScript } from './strategies/injectHeaderEnrichmentScript';\n\nwindow.tracker = tracker;\nconst initialState: StrategyState = {\n currentState: {\n type: PossibleTypes.IDENTIFY_STRATEGY,\n result: RDS.NothingYet(),\n data: undefined\n }\n};\n\nconst mockStrategyStateByUrlParam = (): StrategyCurrentState => {\n const search = searchToObject(window) as IMockFlowParams<any>;\n\n if (search['mock-flow'] !== undefined) {\n if (search.operator !== undefined) {\n window.operator = search.operator;\n }\n\n switch (search['mock-flow']) {\n case 'pin':\n return {\n type: PossibleTypes.PIN,\n result: RDS.Success({})\n };\n\n case 'mo':\n return {\n type: PossibleTypes.MO,\n result: RDS.Success({})\n };\n case 'moredir':\n return {\n type: PossibleTypes.MO_REDIR,\n result: RDS.Success({})\n };\n case 'oneclick':\n return {\n type: PossibleTypes.ONE_CLICK,\n result: RDS.Success({}),\n data: {\n subscription_url: search['subscription-url']\n }\n };\n case 'click2sms':\n return {\n type: PossibleTypes.CLICK2SMS,\n result: RDS.Success({})\n };\n case 'ussd':\n return {\n type: PossibleTypes.USSD,\n result: RDS.Success({})\n };\n case 'creditcard':\n return {\n type: PossibleTypes.CREDIT_CARD,\n result: RDS.Success({})\n };\n default:\n throw new Error('(mockStrategyStateByUrlParam) Strategy Mock Flow not supported');\n }\n }\n};\n\n/**\n * Identify Strategy\n * @returns {type: 'strategy/identifyStrategy', payload: {type: PossibleTypes.MO, result: IdentifyFlowOptionsResult}}\n * - Add type\n * - Makes a decision on which strategy to use in order to identify the flow\n * - Strategy could be asking user's phone number, selecting an operator etc\n * - all with the intension of getting the flow and its configuration\n * - Flows are usually tied to an operator in the pages config.json\n * - But they could also be single flows\n *\n */\n\nexport const identifyStrategy = createAsyncThunk('strategy/identifyStrategy', async () => {\n const configs = getConfig();\n const { strategy, strategyConfigs } = configs;\n // const { isUseMsisdnPrefix } = strategyConfigs;\n const search = searchToObject(window) as IMockFlowParams<IMockPinFlowStates>;\n if (search['mock-flow'] !== undefined) {\n return mockStrategyStateByUrlParam();\n }\n if (search.ui_show_default_flow === '1') {\n const flow = strategyConfigs?.default.flow as ISupportedFlows;\n const config = strategyConfigs?.default?.flowConfig;\n return {\n type: flowMapping[flow],\n result: RDS.NothingYet(),\n data: {\n config\n }\n };\n }\n if (\n (search['show-pin-entry'] && search['show-pin-entry'] === '1') ||\n (search['show-thank-you'] && search['show-thank-you'] === '1') ||\n (search.show_custom_error && search.show_custom_error === '1')\n ) {\n const flowObj = determineFlowByOperator({\n configs,\n operator: search.operator\n });\n const strategyResult: StrategyCurrentState = {\n type: PossibleTypes.PIN,\n result: RDS.Success({}),\n data: {\n config: flowObj?.flowConfig || strategyConfigs?.default?.flowConfig\n }\n };\n return strategyResult;\n }\n\n if (strategy.includes('ask-operator')) {\n return askOperator();\n }\n if (strategy.includes('detect-operator-by-ip')) {\n return detectOperatorByIp(strategy);\n }\n if (strategy?.includes('ask-mobile-number')) {\n return askMobileNumber();\n }\n\n if (strategy?.includes('header-enrichment') && strategy !== 'header-enrichment-script') {\n const n = await handleHeaderEnrichment();\n // @ts-ignore\n return n;\n }\n\n switch (strategy) {\n // REOVING THIS AS IT INJECTS UNUSED CODE\n case 'header-enrichment-script':\n // eslint-disable-next-line no-return-await\n return injectHeaderEnrichmentScript({\n window\n });\n case 'pin': {\n tracker.sendOptInFlowEvent('Pin');\n return {\n type: PossibleTypes.PIN,\n result: RDS.Success({}),\n data: {\n config: strategyConfigs?.default?.flowConfig\n }\n };\n }\n case 'mo':\n tracker.sendOptInFlowEvent('Msisdn to sms');\n return {\n type: PossibleTypes.MO,\n result: RDS.Success({}),\n data: {\n config: strategyConfigs?.default?.flowConfig\n }\n };\n case 'mo-redir':\n return {\n type: PossibleTypes.MO_REDIR,\n result: RDS.Success({}),\n data: {\n config: strategyConfigs?.default?.flowConfig\n }\n };\n case 'one-click':\n tracker.sendOptInFlowEvent('Redirect');\n return {\n type: PossibleTypes.ONE_CLICK,\n result: RDS.Success({}),\n data: {\n config: strategyConfigs?.default?.flowConfig\n }\n };\n case 'click2sms':\n tracker.sendOptInFlowEvent('Click to sms');\n return {\n type: PossibleTypes.CLICK2SMS,\n result: RDS.Success({}),\n data: {\n config: strategyConfigs?.default?.flowConfig\n }\n };\n case 'ussd':\n tracker.sendOptInFlowEvent('USSD');\n return {\n type: PossibleTypes.USSD,\n result: RDS.Success({}),\n data: {\n config: strategyConfigs?.default?.flowConfig\n }\n };\n case 'credit-card':\n // @ts-ignore\n tracker.sendOptInFlowEvent('Credit card');\n return {\n type: PossibleTypes.CREDIT_CARD,\n result: RDS.Success({}),\n data: {\n config: strategyConfigs?.default?.flowConfig\n }\n };\n default:\n throw new Error('Strategy not supported');\n }\n});\n\nexport const setStrategyExtraData = createAsyncThunk(\n 'strategy/setStrategyExtraData',\n async ({ type, data }: { type: PossibleTypes; data: any }) => ({\n type,\n result: RDS.NothingYet(),\n data\n })\n);\n\nexport const strategySlice = createSlice({\n name: 'strategy',\n initialState,\n reducers: {\n // Define synchronous reducers as needed\n },\n extraReducers: (builder) => {\n // @ts-ignore\n builder\n .addCase(identifyStrategy.pending, (state) => {\n state.currentState = {\n type: PossibleTypes.IDENTIFY_STRATEGY,\n result: RDS.Loading()\n };\n })\n // @ts-ignore\n .addCase(identifyStrategy.fulfilled, (state, action: PayloadAction<StrategyCurrentState>) => {\n state.currentState = action.payload;\n })\n .addCase(identifyStrategy.rejected, (state, action) => {\n state.currentState = {\n type: PossibleTypes.IDENTIFY_STRATEGY,\n result: RDS.Failure(action.error.message)\n };\n })\n .addCase(submitMSISDNAction.pending, (state) => {\n state.currentState = {\n type: PossibleTypes.IDENTIFY_FLOW_BY_MSISDN,\n result: RDS.Loading()\n };\n })\n .addCase(submitMSISDNAction.fulfilled, (state, action: PayloadAction<StrategyCurrentState>) => {\n state.currentState = action.payload;\n })\n .addCase(submitMSISDNAction.rejected, (state, action) => {\n state.currentState = {\n type: PossibleTypes.IDENTIFY_FLOW_BY_MSISDN,\n result: RDS.Failure(action.payload)\n };\n })\n .addCase(setStrategyExtraData.fulfilled, (state, action) => {\n state.currentState = action.payload;\n })\n .addCase(selectOperatorAction.pending, (state) => {\n state.currentState = {\n type: PossibleTypes.IDENTIFY_FLOW_BY_OPERATOR_SELECT,\n result: RDS.Loading()\n };\n })\n .addCase(selectOperatorAction.fulfilled, (state, action: PayloadAction<any>) => {\n state.currentState = action.payload;\n })\n .addCase(selectOperatorAction.rejected, (state, action) => {\n state.currentState = {\n type: PossibleTypes.IDENTIFY_FLOW_BY_OPERATOR_SELECT,\n result: RDS.Failure(action.payload)\n };\n });\n }\n});\n\nexport const selectStrategyState = (state: RootState) => state.strategy;\nexport const strategyReducer = strategySlice.reducer;\n","import * as RDS from '../../../common-types/RemoteDataState';\n\nimport { ISupportedFlows } from '../../../sharedFlowTypes/StrategyTypes';\nimport { getConfig } from '../../../utilities/getConfig';\nimport { searchToObject } from '../../../utilities/searchToObject';\nimport { tracker } from '../../../utilities/tracker';\nimport { determineFlowByOperator, flowMapping, getHeaderEnrichmentResult, getTrackerEventName } from '../main';\n\nconst handleHeaderEnrichment = async () => {\n const configs = getConfig();\n const defaultConfig = configs?.strategyConfigs.default;\n const defaultFlowType = defaultConfig.flow as ISupportedFlows;\n\n try {\n const search = searchToObject(window) as { operator: string; msisdn: string };\n const isHeaderEnrichmentSuccess = search?.msisdn && search?.msisdn !== '';\n if (isHeaderEnrichmentSuccess) {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-detected', {\n msisdn: search?.msisdn,\n operator: search?.operator\n });\n }\n if (!search?.operator) {\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig\n }\n };\n }\n\n if (configs.strategy === 'pin-header-enrichment' && isHeaderEnrichmentSuccess) {\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig,\n operator: search?.operator || null,\n msisdn: search?.msisdn || null,\n isHeaderEnrichmentSuccess\n }\n };\n }\n\n let subscription_url = null;\n let redirect_url = null;\n const flowObj = await determineFlowByOperator({\n operator: search?.operator,\n configs\n });\n const flowType = flowObj.flow || defaultFlowType;\n const event = getTrackerEventName(flowType);\n\n tracker.sendOptInFlowEvent(event);\n\n if (flowType === 'oneClick') {\n const heResult = await getHeaderEnrichmentResult();\n subscription_url = heResult?.subscription_url || null;\n redirect_url = heResult?.redirect_url || null;\n }\n\n return {\n type: flowMapping[flowType],\n result: RDS.NothingYet(),\n data: {\n config: flowObj.flowConfig,\n operator: flowObj.operator,\n subscription_url: subscription_url || null,\n redirect_url: redirect_url || null,\n isHeaderEnrichmentSuccess\n }\n };\n } catch (ex) {\n console.error('error', ex);\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig\n }\n };\n }\n};\n\nexport { handleHeaderEnrichment };\n"],"names":["PossibleTypes","tryGetIPRangeName","visitor","mockip","queryString","window","location","href","process","env","mock_ip","console","log","ip","host","newHost","DEV_BASE_URL_IP","fetch","concat","then","x","json","res","_a","sent","ip_range_name","warn","ex_1","flowMapping","mo","MO","pin","PIN","oneClick","ONE_CLICK","moRedir","MO_REDIR","click2sms","CLICK2SMS","ussd","USSD","tpayHe","TPAY_HE","creditCard","CREDIT_CARD","trackerEventMapping","getTrackerEventName","flowType","determineFlowByMsidn","internationalMSISDN","configs","submissionError","Error","type","msisdn","_b","match","join","defaultFlowConfig","_c","strategyConfigs","default","config","flowConfig","operatorsConfig","_d","operators","indentifyFlow","__awaiter","_this","slug","country","device","rockmanId","pac_analytics","offer","identify","theResult","_f","flow","operator","cannotDetect","success","message","hlrError","_e","indexOf","__assign","determineFlowByOperator","toUpperCase","determineFlowByOperatorFromIp","includes","askMobileNumber","IDENTIFY_FLOW_BY_MSISDN","result","RDS.NothingYet","submitMSISDNAction","createAsyncThunk","rejectWithValue","getConfig","flowObj","event_1","defaultConfig","defaultFlowType","tracker","sendOptInFlowEvent","data","errorType","error","productUrl","askOperator","Object","keys","getOperators","IDENTIFY_FLOW_BY_OPERATOR_SELECT","selectOperatorAction","ex","toString","detectOperatorByIp","strategy","createResponseObject","injectHeaderEnrichmentScript","enableScriptTimer","Promise","resolve","heMsisdn_1","heMsisdn","country_1","formatNumberToE164","timerId_1","msisdnDetected_1","timerExpired_1","setTimeout","customEvent","isPrelanderClicked","RDS.Success","onSuccess_1","event","detail","encrypted_msisdn","is_encrypted_msisdn","clearTimeout","operator_code","removeEventListener","onFail_1","headerEnrichmentScript","addEventListener","heScriptUrl","dispatchEvent","Event","script","document","createElement","id","src","referrerPolicy","head","appendChild","onerror","err","isHeaderEnrichmentSuccess","initialState","currentState","IDENTIFY_STRATEGY","undefined","mockStrategyStateByUrlParam","search","searchToObject","subscription_url","identifyStrategy","ui_show_default_flow","show_custom_error","redirect_url","searchObj","url","decodedUrl","atob","newUrl","URL","urlParams","URLSearchParams","get","heResult","_k","_g","_h","_j","setStrategyExtraData","strategyReducer","createSlice","name","reducers","extraReducers","builder","addCase","pending","state","RDS.Loading","fulfilled","action","payload","rejected","RDS.Failure","reducer"],"mappings":"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"}